Drupal 8 Multilingual Initiative

The Drupal 8 Multilingual Initiative (D8MI) is aimed at making language support more advanced and widespread both in built-in core functionality and by providing (better) APIs for contributed modules to build in language support themselves. The main problems attacked are (a) insufficient and inconsistent base APIs for language (b) missing language support on some entity types and configuration (c) missing automation for interface translation. The overall architecture plan looks like the following:

D8MI overview
High level architecture overview for Drupal 8 language support

Interface translationContent language and translationConfig language and translationbase language functionality

We don't start from scratch of course, so we need to consider what is there in Drupal 7 and where do we want to get from there to Drupal 8 by keeping user data intact and gradually migrating user settings and data to the new system as we go. The Drupal 7 functionality is somewhat chaotic and spans many core modules (yellow), contrib modules (orange) and even Drupal distributions (blue):

D8MI Drupal 7 overview
Drupal 7 feature and module mapping

Localized DrupalLocaleContent translationEntity translationTranslation overviewTtileInternationalizationAdmin language

The Drupal 8 plan is to cover this functionality need introducing most features from the above mentioned modules in core well distributed in an easy to understand fashion. Breaking down to modules, language.module would provide base language handling and negotiation. Modules themselves would do language assignment for nodes, comments, etc. Then the interface translation code itself will keep on as its own service for all modules to rely on:

D8MI Drupal 8 overview
Drupal 8 feature and module mapping

Interface translationContent language and translationConfiguration language/translationBase language features

More details of this breakdown are documented on the subpages and on the issues themselves. Further resources about the initiative:

The current top priority tasks are marked with 'D8MI' and 'sprint' in the drupal.org issue queue (based on the good practice introduced by Jacine in the HTML5 initiative). Below is a pull-out of just those tasks to help you figure out what you'd like to work on.

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=sprint%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
#258785: Provide more flexible settings for initial language on content types
feature requestnormalneeds worklanguage-contentNeeds tests
#1156576: Language negotiation is undocumented
bug reportnormalneeds workdocumentationlanguage-baseneeds backport to D7negotiation
Assigned to Ryan Weal
#1232120: Improve documentation of field multiple language system
taskmajorneeds workIssue summary initiativelanguage-contentneeds backport to D7tfdxtranslatable fields
Assigned to Ryan Weal
#1452188: New UI for string translation
feature requestnormalneeds worklanguage-uineeds accessibility reviewNeeds usability review
Assigned to perusio
#1471432: Rework language_list(), let people use more special languages
tasknormalneeds worklanguage-base
Assigned to kalman.hosszu
#1570346: Let Symfony Translation component handle language messages
feature requestnormalneeds worklanguage-base
Assigned to clemens.tolboom
#1448330: Implement internationalization of configuration [no patch]
taskcriticalConfiguration systemlanguage-config
#1572394: Language detection by domain only works on port 80
bug reportnormallanguage-base
Assigned to attiks
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=sprint%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
#1495648: Introduce entity language support
7.x-devtaskmajorNeeds backport to 7.x
#1498674: Define node translation schema
taskmajorpostponedlanguage-content
#1552236: Move user language tests to user module
tasknormalfixedlanguage-baseNovice

Thanks to #

a1russell adamdicarlo AdrianB agentrickard akahn akejoha Alan D. alberto56 Albert Volkman alduya alexanderpas Alex UA alex_b amateescu Amitaibu anavarre andremolnar Andrew Schulman Andreyy andypost animelion Anselm Heaton Antton arianek Aron Novak Artusamak aspilicious attiks babasse05 balagan balintk BarisW bcn beberlei beejeebus BenK bensemmel Berdir bfroehle bjaspan Bodo Maass bojanz Bojhan Boobaa boombatower boran Boriss brantwynn brianV bsherwood c31ck c960657 caktux casey catch cburschka cha0s Charles Belov chrispomeroy chx ckng CKoch clashar claudiu.cristea clemens.tolboom colan cosmicdreams Countzero cpelham Crell csg cweagans cwgordon7 Cyberwolf dado Daemon_Byte DamienMcKenna Damien Tournoud danillonunes das-peter Dave Reid David Lesieur David Strauss David_Rothstein dawehner dboulet dcmistry dddave delmarr desbeers dimduj dixon_ DjebbZ dmitrig01 Dmitriy.trt dodorama donquixote douggreen dpearceMN drewish Dries drifter dropcube droplet drubage drupaljoe drupalvino dtarc duellj dvinegla dww Désiré e2thex eaton ebeyrent EclipseGc effulgentsia eigentor el22or elcuco elfur emarchak eojthebrave ericduran erno ershov.andrey Everett Zufelt evolvingweb ezra-g fabsor fago Fannon fastangel fgm fietserwin Fleshgrinder Frando franskuipers franz Freso fubhy fwalch Gabriel Radic Garrett Albright gaspaio gbentley geerlingguy Georgii Gerhard Killesreiter giorgio79 GiorgosK good_man greggles grendzy gumanist gusgsm1 guygg hairqles Hanno hansfn hass Haza hefox heyrocker hinikato HnLn hswong3i IceCreamYou2 idflood Ignacio Sánchez iliphil indytechcook infowonders intuited izmeez j.somers Jacine jackhutton jamiehollern jamienotweet janusman Jaza jcisio Jeff Burnz Jelle_S jenlampton jherencia jhodgdon jmesam joachim johnv jonaswouters JonMcL Jon Pugh joris.verschueren Jose Reyero jrglasgow jschrab jthorson JuliaKM jwilson3 kaakuu kalman.hosszu KarenS keith.smith kevee kika killes@www.drop.org klausi klonos kompressaur Kristen Pol ksenzee kwinters lambic langworthy larowlan LarsKramer Lars Toomre legendm33066 lelizondo lilou LittleViking litwol loganfsmyth lonelyrobot lotyrin lslinnet lsmith77 marcel66 marcingy marcushenningsen marcvangend markus_petrux martin_q matason mattyoung mbyrnes mermenggc mfb mgifford mhlut Michelle mikeryan mikewink mikey_p mikl Mirabuck mirocow mitchell mjreich mlncn moshe weitzman mr.baileys mrsinguyen mustafau my-family NancyDru naught101 nbz neclimdul nedjo neochief nevets nicholosophy nielsvm nkschaefer nod_ nonsie Noyz no_commit_credit omar omercioglu OnkelTem oriol_e9g Owen Barton Pasqualle pdrake perusio pfrenssen pillarsdotnet pixelite pkiraly plach Plascual podarok Pol pounard pp pwolanin q0rban quazardous Ranko rasskull rdickert redndahead reglogge renat rfay rlmumford Roberto Gerola Robin Millette Robin Monks Rob Loach rocket_nova roderik rooby rupl rvilar rwt Ryan Weal Sborsody Schnitzel scor SeanBannister SebCorbin Seldaek Sephi77 sethiele seutje Shellingfox shuklasp silverdog silverwing Simon Georges Soul88 sourcesoft sreynen Stefan Nagtegaal steinmb stella stevepurkiss sun sun.core Sutharsan svendecabooter Sweetchuck swentel sylvain_a tarmstrong te-brian thamas thePanz theunraveler thomastorfs Thomas_Zahreddin tim.plunkett timmillwood timofey tkoleary tobiasb toemaz tomsm Tor Arne Thune TR tstoeckler tsvenson Ujin Unsupported Projects valokettu Vapes voxpelli walkah weakqueen99 webchick WilliamB willvincent wmostrey wojtha Xano xecstasyx xjm xmacinfo yched YesCT yhager yohannbzh yoroy z.stolar zilverdistel zirvap zkday Zoltán Balogh zroger

Based on participation in all D8MI issues (font size) using a quasi-logarithmic scale and on recent activity (boldness). Excludes the initiative lead, Gábor Hojtsy.