Base language features

Drupal 7 did not differentiate base language features from interface translation and in many cases content language assignment and config translation. The plan for Drupal 8 is to have a dedicated language.module as well as APIs that support working with the base language system. Major parts of this include:

  • Introduction of language.module (to include language listing/configuration and negotiation)
  • Simplification of language configuration to make it easier to use
  • APIs for language like language_save(), language_load(), etc. as well as their corresponding hooks
  • Standardize and document negotiation APIs
  • Move language as the first step of the installer
  • Standardize on 'langcode' for language codes in the API and schema

Language awareness (assignment) is moving to the respective modules, so for example node module can take language in itself when language functionality is enabled.

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-base%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
#540228: Implement a UTF8-safe wordwrap()
bug reportnormalneeds workneeds backport to D6needs backport to D7Needs tests
#1156576: Language negotiation is undocumented
bug reportnormalactivedocumentationneeds backport to D7negotiation
#1164682: Switch Language Links Need Language Identifier
bug reportnormalneeds workaccessibilitywcag2
#1222194: Rename global $language to $language_interface
tasknormalneeds workAPI clean-upnegotiation
#1280996: New language_select element type for form API
tasknormalneeds workDXmontreal
Assigned to tarmstrong
#1294946: Language detection based on session doesn't work with URL aliases
bug reportnormalneeds workNeeds backport to 7.xnegotiation
Assigned to good_man
#1272840: Add upgrade path for language domains and validation
tasknormalNeeds testsnegotiationsprintUsability
Assigned to pp
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-base%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
#673020: Tests for adding the Content-Language HTTP header to the generated page
7.x-devbug reportnormalneeds workneeds backport to D7sprint
#1250800: Language domain should work regardless of ports or protocols
7.x-devbug reportcriticalneeds workneeds backport to D7negotiationsprint
#381994: Machine-name fields are always in Latin characters, and should therefore always be LTR
6.x-devbug reportnormalpatch (to be ported)needs backport to D6needs backport to D7
#1314384: Remember the provider that selected the language for later use
7.x-devfeature requestnormalAPI additionneeds backport to D7needs testnegotiation
#1218650: Separate language and locale. Proper languages for content translation.
feature requestnormalpostponed (maintainer needs more info)
#1260918: Convert language globals to contexts
tasknormalpostponedmontrealnegotiationWSCCI
Assigned to plach
#1336170: Add locale module to upgrade tests
taskcriticalclosed (fixed)D8 upgrade pathlanguage-ui
Assigned to rvilar
#1215716: Introduce locale_language_save()
taskmajorclosed (fixed)API changeAPI clean-up
#1301040: Move language listing functionality from locale.module to a new language.module
taskmajorclosed (fixed)API clean-up
Assigned to Gábor Hojtsy
#533924: Allow different language types to be enabled separately
feature requestnormalclosed (duplicate)i18n sprinttranslatable fields
#1216094: We call too many things 'language', clean that up
tasknormalclosed (fixed)API clean-uplangcodeterminology
#1219196: Move negotiation settings out to their own include file
tasknormalclosed (works as designed)locale-splitnegotiation
#1231402: Drupal does not use ISO language codes, iso.inc is misleading
tasknormalclosed (fixed)API clean-upFramework Initiativehtml5Usability
#1232116: Language type constants are missing proper documentation
bug reportnormalclosed (duplicate)needs backport to D7negotiation
#1234848: language_list() doc is missing return value
bug reportnormalclosed (fixed)needs backport to D7
#1260520: Apply language_save and language_load to the locale management UI
tasknormalclosed (duplicate)language-ui
Assigned to svendecabooter
#1260528: Introduce API to delete languages
tasknormalclosed (fixed)
Assigned to tarmstrong
#1260716: Improve language onboarding user experience
tasknormalclosed (fixed)API changelangcodemontrealUsability
Assigned to Gábor Hojtsy
#1260860: Rework language list admin user interface
tasknormalclosed (fixed)montrealUsability
#1265700: Little modernization of language_default()
tasknormalclosed (fixed)API clean-up
#1266318: Make English a first class language
feature requestnormalclosed (fixed)montrealUsability
#1280524: Simplify/clarify language negotiation configuration workflow
tasknormalclosed (duplicate)montrealnegotiationUsability
#1280530: Decouple domain/path negotiation setup from language configuration
tasknormalclosed (fixed)montrealnegotiationUsability
Assigned to loganfsmyth
#1280600: Rename languages table to language
tasknormalclosed (duplicate)montreal
Assigned to lambic
#1293304: Break up locale.module, but how?
tasknormalfixedFramework InitiativeIncreases learning curve
#1301148: Stop pretending we have configuration translation for languages
tasknormalclosed (fixed)API clean-uplanguage-configUsability
#1387586: Rename drupal_multilingual() to language_multilingual()
tasknormalclosed (fixed)API changeAPI clean-upNovice