Post on 13-Feb-2017
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 l10nThis 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
≠
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.orglocalize.drupal.org
l10n_server connector
ftp.drupal.org
releases.tsv
l10n_packager
l10n_update or D8 core
.po files
The community
potxl10n_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, laurentchardinThank 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
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
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
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/1AvuH8HfBxSx1SPmFIGs6Ue1hmDoVbMWKscWi_qY6_yE/edit#gid=0
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.