Language setting fixes:

- switch 'en_US' to 'en', fixes the "admin panel switches to Arabic" bug
- tweak setting descriptions to clarify that most of the time we'll be using browser language
- add a backend switch to disable language detection (should this be exposed to ui?)
This commit is contained in:
Brion Vibber 2010-03-03 12:08:07 -08:00
parent c82efb7fd8
commit 0881eba80e
4 changed files with 12 additions and 8 deletions

View File

@ -277,8 +277,8 @@ class SiteAdminPanelForm extends AdminForm
$this->unli(); $this->unli();
$this->li(); $this->li();
$this->out->dropdown('language', _('Language'), $this->out->dropdown('language', _('Default language'),
get_nice_language_list(), _('Default site language'), get_nice_language_list(), _('Site language when autodetection from browser settings is not available'),
false, $this->value('language')); false, $this->value('language'));
$this->unli(); $this->unli();

View File

@ -253,6 +253,7 @@ function main()
$user = common_current_user(); $user = common_current_user();
// initialize language env // initialize language env
common_log(LOG_DEBUG, "XXX: WAIII");
common_init_language(); common_init_language();

View File

@ -40,7 +40,8 @@ $default =
'logdebug' => false, 'logdebug' => false,
'fancy' => false, 'fancy' => false,
'locale_path' => INSTALLDIR.'/locale', 'locale_path' => INSTALLDIR.'/locale',
'language' => 'en_US', 'language' => 'en',
'langdetect' => true,
'languages' => get_all_languages(), 'languages' => get_all_languages(),
'email' => 'email' =>
array_key_exists('SERVER_ADMIN', $_SERVER) ? $_SERVER['SERVER_ADMIN'] : null, array_key_exists('SERVER_ADMIN', $_SERVER) ? $_SERVER['SERVER_ADMIN'] : null,

View File

@ -105,12 +105,14 @@ function common_language()
// Otherwise, find the best match for the languages requested by the // Otherwise, find the best match for the languages requested by the
// user's browser... // user's browser...
if (common_config('site', 'langdetect')) {
$httplang = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : null; $httplang = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : null;
if (!empty($httplang)) { if (!empty($httplang)) {
$language = client_prefered_language($httplang); $language = client_prefered_language($httplang);
if ($language) if ($language)
return $language; return $language;
} }
}
// Finally, if none of the above worked, use the site's default... // Finally, if none of the above worked, use the site's default...
return common_config('site', 'language'); return common_config('site', 'language');