API changes
language_types_get_configurable
We have dropped the $stored parameter since the info is stored in a configuration object.
-function language_types_get_configurable($stored = TRUE) {
+function language_types_get_configurable() {
language_types_set
We are now passing in the array of configurable language types.
-function language_types_set() {
+function language_types_set(array $configurable_language_types) {
UI changes
Language negotiation settings
Simplifies the detection and selection page, also only shows one language switcher block when that is appropriate.
Only display the User interface language type and then provides a UI to be able to specialise other language types. Now you need to check a checkbox to be able to override the language negotiation settings for a given language type to make them differ to the settings from User interface.
Language switcher blocks
There will be a language switcher block for each language type with the override checkbox.
If there is no other language type, a part from the User interface, then the language switcher block for the User interface language type changes its title to Language switcher.
Screenshots
There are 2 languages enabled: English (at installation time) and Catalan.
Language enabled + ET disabled
Language selection

Block list

Language enabled + ET enabled
Without customizing Content Language
Language selection

Block list

Customizing Content Language
Language selection

Block list
