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 http://groups.drupal.org/node/197848 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
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-content%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
#1232120: Improve documentation of field multiple language system
taskmajorneeds workIssue summary initiativeneeds backport to D7sprinttfdxtranslatable fields
Assigned to Ryan Weal
#1260640: Improve field language API DX
taskcriticalneeds workAPI additionmontrealneeds backport to D7tfdxtranslatable fields
#1279652: Add search feature on the node listing admin page
feature requestmajoractivecore searchmontrealUsability
#293318: Make Aggregator feeds into entities
feature requestnormalneeds work
#430886: Make blocks entities
feature requestnormalneeds workAPI clean-upConfiguration systemEntity systemUsability
Assigned to indytechcook
#916388: Convert menu links and menus into entities
tasknormalactiveEntity systemtokenWSCCIxmlsitemap
Assigned to Dave Reid
#1188388: META: Move the entity translation UI into core
feature requestnormalactiveEntity systemtranslatable fields
#1220964: Number field prefix/suffix get t()'ed through format_plural()
bug reportnormalneeds worklanguage-uineeds backport to D7
#1498880: Introduce a form language switcher
tasknormalactivelanguage-config
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-content%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
#1164852: Inconsistencies in field language handling
7.x-devbug reportcriticalclosed (fixed)needs backport to D7Needs change notificationNeeds testsRelease blockertranslatable fields
#404116: Provide default choices on poll translations
6.x-devbug reportminorpatch (to be ported)needs backport to D6needs backport to D7Novice
Assigned to c31ck
#1074672: Allow language select to be rearranged inside node form
7.x-devfeature requestnormalNeeds backport to 7.x
Assigned to claudiu.cristea
#1188394: Make title behave as a field (again)
feature requestmajorpostponedEntity systemtranslatable fields
#540294: Move node language settings from Locale to Node module
taskmajorclosed (fixed)Framework Initiative
#1184944: Make entities classed objects, introduce CRUD support
taskmajorclosed (fixed)DX (Developer Experience)Entity system
#1439692: Rename field language properties to langcode
bug reportmajorclosed (fixed)langcodetranslatable fields
Assigned to catch
#1018602: Move entity system to a module
tasknormalclosed (fixed)API clean-upConfiguration systemFramework InitiativeIssue summary initiative
#1164926: Nodes need to have languages specified separately for accessibility
bug reportnormalclosed (fixed)accessibilityhtml5I10nwcag
#1345970: Rename "Translate" tab to "Translations"
tasknormalclosed (fixed)#d7ux#d8uxneeds backport to D7
#1410096: Convert comment language code schema to langcode
tasknormalclosed (fixed)langcode
Assigned to Gábor Hojtsy
#1439680: Rename $user language property to langcode
tasknormalclosed (duplicate)langcode
Assigned to kalman.hosszu
#1439686: Rename $node language property to langcode
tasknormalclosed (fixed)langcode
Assigned to tstoeckler
#1444966: Add langcode property in taxonomy schema
feature requestnormalclosed (duplicate)langcode
Assigned to csg
#1444992: Add langcode property in file schema
feature requestnormalclosed (duplicate)langcodeMedia Initiative

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • To post pieces of code, surround them with <code>...</code> tags. For PHP code, you can use <?php ... ?>, which will also colour it based on syntax.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.