Content language and translation

This is one of the three pillars of the Drupal 8 Multilingual Initiative and refers to data stored within entities and using the field system.

Drupal 7 introduced field language support and with the contributed Entity translation module allows for nodes and other types of entities to be translated in-place (inside the entity). Drupal 7 also kept the Content translation core module introduced with Drupal 6 which only works with nodes and uses a set of nodes to maintain translations of the same content. Both approaches have issues however. The node set based solution is not applied to other entity types and poses problems for data shared among the nodes and for relations of the nodes with other data. The field translation solution also suffers from not all entity types having direct language support (in core), some data pieces not being fields (title, status flag, author, etc), no user interface in core and last but not least bad developer experience for translatable fields.

The biggest problem however is that there are two systems, people need to choose between them and developers need to code against both. So the primary plan for Drupal 8 is to unify content language support (and translation) on the general entity and field level building on field translation. By making the non-fields support language and extending language assignment to more entity types, we should be able to reproduce the node set based solution's advantages with the new system as well without the need to choose or develop against two systems.

A detailed plan for content language support can be found at The top priorities briefly are:

  1. Improve the developer experience of field languages considerably
  2. Introduce language support for data that is not (yet) fields: title, status, author, etc.
  3. Add language assignment to entities that don't currently support that: taxonomy, files, etc.
  4. Introduce new content translation module based on field translation with the above improvements
  5. Remove existing content translation module and provide a migration path for all existing data
  6. Provide better summaries and overviews of translation status on core administration pages