This issue is a feature request issue, which goes hand-in-hand with a separate bug issue.
I was forced to create two issues discussing the same problem, because the original issue () was closed by classifying my bug report as a "design issue". Now the bug report and feature request can be handled separately.
I many countries, like here in Finland, there are several official languages. I was planning on providing my users the option of choosing either Finnish or Swedish as the UI language, and thought that the language selection box on the user's profile page would allow exactly that. But I can't.
An existing code block in language_initialize() already implements this requested feature. Unfortunately, due to a programming error, the language negotation logic overrides this code always.
I am not sure, what conclusion should be made based on this. There are at least two ways to see it:
1) When planning the internationalization improvements for Drupal 6, a design choice was made to prevent the end-user from choosing the language for UI strings.
2) When the language negotiation was added in Drupal 6, the old user-optionality was supposed to work, but since nobody found the bug before RTM, and because the documentation now dictates how things work, this feature has been disabled.
According to Gabor et al., this has been a design choice.
Could somebody who has been in charge of this design choice, tell me and others, how on earth are we supposed to build multi-language sites without using the language negotitation systems, since it is not suitable for many: Domain or path prefixes mess up the site, makes it impossible to use permanent links, most users don't know how to use the browser's language options and even those who do, often want to make the language selection on the site anyway.
I think the design choice is a very bad one, and it could be fixed using a very simple patch. I don't understand what harm is done by allowing similar language option in Drupal 6 that works very well in Drupal 5. The new language negotation can co-exist quite nicely with the old logic.
PASSED: [[SimpleTest]]: [MySQL] 17,900 pass(es). View
PASSED: [[SimpleTest]]: [MySQL] 17,538 pass(es). View
FAILED: [[SimpleTest]]: [MySQL] Unable to apply patch language_negotiation-282191-149.patch. View
Passed on all environments. View
Failed on MySQL 5.0 InnoDB, with: 17,273 pass(es), 1 fail(s), and 0 exception(es). View