Problem

The current process of manually importing translations by means of po files is not an optimal user experience and requires many individual steps which are not self explanatory. Think you run a site with 40 modules and 3 foreign languages. You'll need to download 123 (3*40 for contrib and 3 for core) translation files and check them for updates manually.

Goal

An automated process to import and update interface translations when a site is installed, build and maintained. The functionality provided by Localization Update module is therefore required to be in Drupal core.

Sub-issues

#1029554: Translations update feature user experience
#1260586: Consolidate .po file import to one directory
#1189184: OOP & PSR-0-ify gettext .po file parsing and generation
#1627006: Collect project information for translation update
#1632384: Import available language list from translation server
#1635084: Track import status of files in the locale .po file directory
#1742894: Get status of local and remote translation files
#1804688: Download and import interface translations
#1804702: Display interface translation status
#1848490: Import translations automatically during installation
#1998056: Automatically update interface translations using cron

Follow-up issues

#1293252: locale_language_insert() and locale_language_update() should only have local cache side effects
#1774024: Create helper function to find release info for a project (follow-up issue to locale collect project information)
#1774032: standardize gettext, .po, po terminology (follow-up issue to locale collect project information)
#1777106: Make check for out of date project update information more robust for sites that are not running cron regularly (follow-up)
#1777126: Have locale and update module share/reuse code for version name parsing
#1787520: Translations not imported on installation
#1832946: Create a small project API to be used by Update and Locale
#1834298: Unify name space in Locale module
#1842362: Replace locale_project table and improve caching
#1842380: Convert $source object to a TranslatableProject class
#1861360: Refactor localization update test so people can just enable the test module to test
#1861930: Use "Drupal translations website" instead of Drupal translation server or Community translation server
#1861934: Rework help text for UI translations and importing po files
#1884996: Progress of Import translations automatically during installation goes to warp speed at the end after 60%
#2021749: Core should not force latest version number translations on sites

Details

The below state diagram describes the processes involved in this automated process.
The following use cases should be supported:

  • Install Drupal with one language other than English
  • Install Drupal as part of an installation profile with one or multiple languages
  • Add/remove/update modules
  • Add/remove/update languages
  • Update interface translations manually and automatically (cron)
  • Use local po files and/or remote translation server as translation source.
  • Respect existing local translations and/or translation changes when importing and updating

Comments

Title:Ingrate l10n_update functionality in coreIntegrate l10n_update functionality in core

Fix title typo :)

subscribing

I've documented how this fits to overall Druapl 8 plans at http://groups.drupal.org/node/161589.

subscribe

Title:Integrate l10n_update functionality in coreMETA: Integrate l10n_update functionality in core

subscribe

subscribing

Now that #1260586: Consolidate .po file import to one directory landed, I've submitted #1329410: Extend update data collection to support localization update as a good next step to work on for this. Please help there!

Status:Active» Closed (duplicate)
Issue tags:-D8MI+D8MI-meta

Dismantling meta issues to clean up the D8MI issue list. (Working on a better overview for the issues).

Issue summary:View changes

Add sub-issue

Status:Closed (duplicate)» Active
Issue tags:+sprint, +language-ui

Re-opening the issue as meta issue for the Localization Update integration currently being worked on during the D8MI sprint in Barcelona.

Issue tags:-D8MI-meta+D8MI

Use D8MI so it shows up on our board too.

Issue summary:View changes

Rewritten issue summary

Issue summary:View changes

Updated issue summary.

All patches are introduces new variables so we need consistency in naming for #1714462: Convert language negotiation settings to configuration system

Issue tags:-D8MI, -sprint+D8MI-meta

Now #1627006: Collect project information for translation update is committed, but there is some important followup work going on there. #1742894: Get status of local and remote translation files is being worked on. Help there is appreciated.

Issue tags:+D8MI

Add back lost D8MI tag. Removal of sprint tag was intentional so we can focus on the specific tasks.

Issue summary:View changes

Reference to #1742894 (new issue) added.

All right, all sub-issues listed above are done! #champagne :)

Any issues missing? :)

Awesome awesome work, guys!

Issue summary:View changes

Updated status

Issue summary:View changes

Added follow-up issues.

Issue summary:View changes

Cron issue added to list of sub issues.

Issue summary:View changes

Updated issue summary.

Issue summary:View changes

Updated issue summary.

I was very tempted of adding D8MI tags to #2045977: Bring l10n_update commands in Drush core, but that's a Drush issue. So just catching your attention there in the meanwhile.