Bring Drupal 8 to all in
their native languages
SebCorbin
Gábor Hojtsy
Drupal.org session track
First of all...
The main purpose of this talk:
translating the interface of Drupal and
its modules.
➔ Present the current
infrastructure/process
➔ Where we are for D8 support
➔ Make the work of the translators
easier, and more recognized
Localization aka l10n
This is about translating the content of
your Drupal site. Don’t worry, if you
mixed up the subjects, this
presentation may still be useful ;)
Multilingual will happen at 14:15
today, room 117
Internationalization aka i18n
≠
How does it work?
It all started with the t() function
These source strings are extracted from Drupal and its modules
using Potx and are grouped into *.po source files.
$text = t(
"@name's blog",
array('@name' => format_username($account)),
array('context' => 'Verb')
);
Then translate as any open source project does...
These .po source files can be translated with any Translation editor
(e.g. POEdit or https://localise.biz/free/poeditor) and imported back in your
Drupal site to be stored in locale_sources and locale_target tables.
Another option is to use the l10n_client module to directly edit the
translations on your site.
But we are a community, so we have localize.d.o
This site executes Potx on every release that is made on Drupal.org, and offers
a tool far more performant and flexible than a single editor:
● cross releases translations
● cross projects translations
● multiple translation groups handling
● translations reviews
● automatic downloads of translation on your site using the l10n_update
module or Drupal 8 core (yay!)
You and your site
drupal.org
localize.drupal.org
l10n_server connector
ftp.drupal.org
releases.tsv
l10n_packager
l10n_update or D8 core
.po files
The community
potx
l10n_community
+
l10n_groups (og)
l10n_client
l10n_remote
l10n_client
.po files
Great news!
Issue created 01-02-2012
localize.drupal.org is now D7-powered!
Site ported 11-08-2015
Thanks a lot to Gabor Hojtsy, SebCorbin, dashoxa, droplet, hass, Balu Ertl,
podarok, frederickjh, s_leu, laurentchardin
Thank also the Drupal Association: japerry, drumm, basic, opdavies
2nd great news!
Drupal 8 core now ships with automatic
downloads of core and contrib translations
(even during install)
Thanks to Gabor Hojtsy, herom, Sutharsan, miro_dietiker, ksenzee, duaelfr
Some numbers...
Current statistics
■ 112 translation groups
■ 6040 contributors
■ 1 187 443 translations recorded
■ 593 431 strings to translate
■ 364 669 suggestions awaiting approval
■ 1 359 969 files scanned
Developer statistics
■ 8 531 144 lines to match
file/line/type/project/release (1 237 MB)
■ 1 991 389 translated strings input by users
(suggestions or translations)
■ Overall database size: 6 GB
■ l10n_*-related tables : ~3 GB
Our current status
Drupal 8 compatibility is nearly done, 3 issues remaining:
2 criticals:
- Support for Drupal 8 shipped configuration translatables with
external dependencies (affects contrib)
- D8: TranslationWrapper class renamed to TranslatableString
A “minor”:
- Use a more sensible format for Yaml translation pattern
definition.
Potx
All good, now in Drupal 8 core.
The interface of Drupal 8 has been backported to a new 7.x-2.x
branch
l10_update
8.x-1.x : New UX based on Tour module
Main issues:
- Is far off in terms of D8 API
- Won’t highlight variable-based string (wut has fallback)
- Doesn’t actually save/send anything right now
Your help is needed!
l10_client
6.x-3.x: now discontinued, but has a lot of interesting remaining
issues that could get ported
7.x-1.x: now powering localize.d.o, can accept features requests
l10_server
How to improve?
On the Drupal site side, it’s gettings better (l10n_update), but:
■ Localization community needs more recognition
We need gamification by statistics, badges, ...
■ Infrastructure handling more and more strings
Need to archive old data, be able to identify old strings, improve search performance
■ Translation interface needs a revamp
Why not translate in apps like l10n_client?
■ The community aspects needs a push
Activity streams, glossary handling
An example: Transifex
■ Dead-simple interface (AJAX)
■ Fast, visual search
■ Suggestions, history, glossary,
comments on strings
■ Mass review, search & replace
■ Activity stream, announcements
Glossary
■ Currently an external French site
■ Votes on glossary suggestions
■ Exported via JSON
■ Displayed on localize.drupal.org
https://docs.google.
com/spreadsheets/d/1AvuH8HfBxSx1SPmFIGs6Ue1hmDoVbMWKs
cWi_qY6_yE/edit#gid=0
Questions?
Reactions?
Sprint: Friday
https://www.flickr.
com/photos/amazeelabs/9965814443/in/fav
es-38914559@N03/
Sprint with the Community on Friday.
We have tasks for every skillset.
Mentors are available for new contributors.
An optional Friday morning workshop for
first-time sprinters will help you get set up.
Follow @drupalmentoring.
Bring drupal 8 to all in their native languages

Bring drupal 8 to all in their native languages

  • 2.
    Bring Drupal 8to all in their native languages SebCorbin Gábor Hojtsy Drupal.org session track
  • 3.
    First of all... Themain purpose of this talk: translating the interface of Drupal and its modules. ➔ Present the current infrastructure/process ➔ Where we are for D8 support ➔ Make the work of the translators easier, and more recognized Localization aka l10n This is about translating the content of your Drupal site. Don’t worry, if you mixed up the subjects, this presentation may still be useful ;) Multilingual will happen at 14:15 today, room 117 Internationalization aka i18n ≠
  • 4.
  • 5.
    It all startedwith the t() function These source strings are extracted from Drupal and its modules using Potx and are grouped into *.po source files. $text = t( "@name's blog", array('@name' => format_username($account)), array('context' => 'Verb') );
  • 6.
    Then translate asany open source project does... These .po source files can be translated with any Translation editor (e.g. POEdit or https://localise.biz/free/poeditor) and imported back in your Drupal site to be stored in locale_sources and locale_target tables. Another option is to use the l10n_client module to directly edit the translations on your site.
  • 7.
    But we area community, so we have localize.d.o This site executes Potx on every release that is made on Drupal.org, and offers a tool far more performant and flexible than a single editor: ● cross releases translations ● cross projects translations ● multiple translation groups handling ● translations reviews ● automatic downloads of translation on your site using the l10n_update module or Drupal 8 core (yay!)
  • 8.
    You and yoursite drupal.org localize.drupal.org l10n_server connector ftp.drupal.org releases.tsv l10n_packager l10n_update or D8 core .po files The community potx l10n_community + l10n_groups (og) l10n_client l10n_remote l10n_client .po files
  • 9.
    Great news! Issue created01-02-2012 localize.drupal.org is now D7-powered! Site ported 11-08-2015 Thanks a lot to Gabor Hojtsy, SebCorbin, dashoxa, droplet, hass, Balu Ertl, podarok, frederickjh, s_leu, laurentchardin Thank also the Drupal Association: japerry, drumm, basic, opdavies
  • 10.
    2nd great news! Drupal8 core now ships with automatic downloads of core and contrib translations (even during install) Thanks to Gabor Hojtsy, herom, Sutharsan, miro_dietiker, ksenzee, duaelfr
  • 11.
  • 12.
    Current statistics ■ 112translation groups ■ 6040 contributors ■ 1 187 443 translations recorded ■ 593 431 strings to translate ■ 364 669 suggestions awaiting approval ■ 1 359 969 files scanned
  • 13.
    Developer statistics ■ 8531 144 lines to match file/line/type/project/release (1 237 MB) ■ 1 991 389 translated strings input by users (suggestions or translations) ■ Overall database size: 6 GB ■ l10n_*-related tables : ~3 GB
  • 14.
  • 15.
    Drupal 8 compatibilityis nearly done, 3 issues remaining: 2 criticals: - Support for Drupal 8 shipped configuration translatables with external dependencies (affects contrib) - D8: TranslationWrapper class renamed to TranslatableString A “minor”: - Use a more sensible format for Yaml translation pattern definition. Potx
  • 16.
    All good, nowin Drupal 8 core. The interface of Drupal 8 has been backported to a new 7.x-2.x branch l10_update
  • 17.
    8.x-1.x : NewUX based on Tour module Main issues: - Is far off in terms of D8 API - Won’t highlight variable-based string (wut has fallback) - Doesn’t actually save/send anything right now Your help is needed! l10_client
  • 18.
    6.x-3.x: now discontinued,but has a lot of interesting remaining issues that could get ported 7.x-1.x: now powering localize.d.o, can accept features requests l10_server
  • 19.
  • 20.
    On the Drupalsite side, it’s gettings better (l10n_update), but: ■ Localization community needs more recognition We need gamification by statistics, badges, ... ■ Infrastructure handling more and more strings Need to archive old data, be able to identify old strings, improve search performance ■ Translation interface needs a revamp Why not translate in apps like l10n_client? ■ The community aspects needs a push Activity streams, glossary handling
  • 21.
    An example: Transifex ■Dead-simple interface (AJAX) ■ Fast, visual search ■ Suggestions, history, glossary, comments on strings ■ Mass review, search & replace ■ Activity stream, announcements
  • 22.
    Glossary ■ Currently anexternal French site ■ Votes on glossary suggestions ■ Exported via JSON ■ Displayed on localize.drupal.org
  • 23.
  • 24.
  • 25.
    Sprint: Friday https://www.flickr. com/photos/amazeelabs/9965814443/in/fav es-38914559@N03/ Sprint withthe Community on Friday. We have tasks for every skillset. Mentors are available for new contributors. An optional Friday morning workshop for first-time sprinters will help you get set up. Follow @drupalmentoring.