Localize.drupal.org has long been the central hub for translating Drupal core and its modules, themes and distributions. In this session, we'll discuss how the site supports Drupal 8 (and where its lacking) as well as best practices for translation teams to organize the work on Drupal 8 and its contributed projects.
2. Bring Drupal 8 to all in
their native languages
SebCorbin
Gábor Hojtsy
Drupal.org session track
3. 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
≠
5. 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')
);
6. 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.
7. 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!)
8. 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
9. 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
10. 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
15. 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
16. 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
17. 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
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
20. 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
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 an external French site
■ Votes on glossary suggestions
■ Exported via JSON
■ Displayed on localize.drupal.org