Interface language translation

This is one of the three pillars of the Drupal 8 Multilingual Initiative and focuses on the core functionality of locale.module from Drupal 7 relating to interface language translation. Think the backend behind t(), format_plural() and friends.

Although there is some support to establish an entirely new system for storing and referencing translatable strings (see http://groups.drupal.org/node/154394), there are much bigger problems in the other two pillars of the initiative to solve, so to set a reasonable target, we plan to keep t() and format_plural() as-is and instead focus this pillar on user problems like making it easier to pull in translations and developer problems like easier to grok APIs and decoupling of intertwined subcomponents.

In short this pillar of the initiative works off of English source strings at all times, which come from module/theme/distribution source code files. The strings are stored in the database and are made available for translation on the user interface. For community contributed projects, the strings are pre-parsed and made translatable on localize.drupal.org. The pre-translated text should be possible to be fed to Drupal 8 sites with just core automatically from localize.drupal.org like Drupal 7 with the added l10n_update module.

The main focus of planned changes are:

  • Fix bugs for the API and improve performance (speed up lookups, fix plural storage and lookup, etc)
  • Provide an API for the interface translations
  • Consolidate the .po file source directories that can be all around Drupal to one central directory
  • Automate the discovery and download of files to that central directory (integrate l10n_update module
    in core)
  • Decouple this system from configuration translation (remove support for textgroups), with upgrade path in the contributed i18n module where the feature was actually used
  • Improve the built-in editing interface for interface translations
  • Make this available under a new and more logical name like interface_translation.module or somesuch
Legend:
Critical issue
Major issue
Current top priority

Currently in the works for Drupal 8

See all these issues also at http://drupal.org/project/issues/search/drupal?issue_tags=language-ui%2C+D8MI&issue_tags_op=and. This view of issues is automatically cached and might be out of date up to two hours at times.

To doTo reviewTo be committed
#1452188: New UI for string translation
feature requestnormalneeds workneeds accessibility reviewNeeds usability reviewsprint
Assigned to perusio
#1220964: Number field prefix/suffix get t()'ed through format_plural()
bug reportnormalneeds worklanguage-contentneeds backport to D7
Legend:
Critical issue
Major issue
Current top priority

Other related issues

See all these issues also at http://drupal.org/project/issues/search/drupal?issue_tags=language-ui%2C+D8MI&issue_tags_op=and. This view of issues is automatically cached and might be out of date up to two hours at times.

BackportPostponedClosed
#655048: Plural formula information blanked when importing a poorly-formed .po file
6.x-devbug reportnormalclosed (fixed)Needs backport to 6.x
#746240: Race condition in locale() - duplicates in {locales_source}
6.x-devbug reportnormal7.13 release notesNeeds backport to 7.x
#1191614: Make t() formatter available as its own function
7.x-devfeature requestnormalclosed (fixed)API addition
#1213510: A modern t()
feature requestnormalpostponedAPI changeNeeds benchmarks
Assigned to sun
#532512: Plural string storage is broken, editing UI is missing
bug reportcriticalclosed (fixed)D8 upgrade pathNeeds tests
Assigned to andypost
#1336170: Add locale module to upgrade tests
taskcriticalclosed (fixed)D8 upgrade pathlanguage-base
Assigned to rvilar
#1188430: Rip out textgroup support from locale module
taskmajorclosed (fixed)Issue summary initiativelanguage-config
#1222072: Split translation editing functionality out of locale.admin.inc and locale.inc
tasknormalclosed (fixed)Framework InitiativeIssue summary initiativelocale-split
#1223502: Update for ripping out textgroup support in Drupal locale module
tasknormalclosed (duplicate)D8 upgrade pathlanguage-config
#1260520: Apply language_save and language_load to the locale management UI
tasknormalclosed (duplicate)language-base
Assigned to svendecabooter
#1261034: Can we add hook_locale_alter ?
support requestnormalclosed (works as designed)
#1445004: Implement customized translation bit on translations
tasknormalclosed (fixed)localization update