Configuration language and translation

This is one of the three pillars of the Drupal 8 Multilingual Initiative (D8MI) and deals with configuration language assignment and translation. For the definition of this pillar, we use "configuration" for anything that does not use entities and is not part of the built-in user interface (which is generated with t(), format_plural and friends).

There are plans in the Drupal 8 Configuration Management Initiative (CMI) to introduce an XML based configuration format that would be stored in the file system for easier deployment and versioning and in an active storage (such as database) for quick access. Drupal core historically does a poor job supporting language and translation for configuration, especially that configuration is usually stored in all kinds of ways and formats. However, with Drupal 8, if we can succeed with the introduction of one common configuration storage / retrieval format, we can tap into that to add language/translation support.

Our current hope is that Drupal 8 will use the CMI format for all of its configuration needs, so we can implement a common language support / translation system there. Drupal 7 and before supported so called textgroups in the locale module to provide a string translation storage mechanism, however, that proved to be both fragile, bad for developer experience and not very good for usability either. Therefore we are removing textgroups altogether. (A migration path for the Drupal 8 structures is planned to be provided in contributed modules such as Internationalization module).

The aim of this pillar of the initiative is to work with the Configuration Management Initiative to come up with solutions to mark configuration pieces with languages as well as add translation support to them.

More information on the Configuration Management Initiative:

  1. CMI home:
  2. Architecture document:
  3. Internationalization discussion: