Ignore user language settings that aren't listed in language config; we'll then fall back to current autodetection. This prevents the surprises where your profile suddenly switches to Arabic because it was selected by default due to lack of a match in the drop-down box.
This commit is contained in:
parent
2fb76eec62
commit
f987273f11
12
lib/util.php
12
lib/util.php
|
@ -91,8 +91,16 @@ function common_language()
|
||||||
if (_have_config() && common_logged_in()) {
|
if (_have_config() && common_logged_in()) {
|
||||||
$user = common_current_user();
|
$user = common_current_user();
|
||||||
$user_language = $user->language;
|
$user_language = $user->language;
|
||||||
if ($user_language)
|
|
||||||
return $user_language;
|
if ($user->language) {
|
||||||
|
// Validate -- we don't want to end up with a bogus code
|
||||||
|
// left over from some old junk.
|
||||||
|
foreach (common_config('site', 'languages') as $code => $info) {
|
||||||
|
if ($info['lang'] == $user_language) {
|
||||||
|
return $user_language;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Otherwise, find the best match for the languages requested by the
|
// Otherwise, find the best match for the languages requested by the
|
||||||
|
|
Loading…
Reference in New Issue
Block a user