Implementing multilingual / translatable configuration / Status / Summary

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

Since the configuration system in Drupal 8 is being fully reworked, we are working on implementing on top of the new system a flexible / pluggable system for configuration translation.

This will allow us to translate configuration values in Drupal 8 for any object stored in the config system, from Variables to Node types to Contact forms.

Features that we need to be implemented, most of them in the configuration system, step by step:

  1. Metadata: Configuration metadata that can be used to decide which configuration values are translatable / must be translated
  2. Overrides: Runtime overrides in Config objects for the locale system to override values depending on language
  3. Storage: Add realm concept to StorageInterface objects so different sets of values (per language in our case) can be saved/updated/loaded
  4. Pluggable configuration helpers / hook system for translating Config objects or responding to configuration changes
  5. Context: Support for some kind of local context in configuration objects for being able to use multiple languages in the same page request
  6. Workflow: Update translation deployment workflow, string extraction, etc

The meta issue, and the big patch, that will try to keep the big picture up to date
Implement multilingual configuration with plugins and Dependency Injection (DI).

Patches that need review

Small improvements to Config object. Better config overrides,.
Add metadata for configuration in YML files

Other patches that need work and updates

Implement plugins and storage realms for configuration