From bc389ff9341d8efec367b2b07c2d1b55be11b8d0 Mon Sep 17 00:00:00 2001 From: Alexandre Hannud Abdo Date: Fri, 23 May 2014 10:16:03 -0300 Subject: [PATCH] Language selection: case-insensitive and system language Fixed ignoring HTTP_ACCEPT_LANGUAGE tags that had uppercase characters. Fixed defining a->language too soon to ever get the system lang --- include/language.php | 3 +-- index.php | 5 ++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/include/language.php b/include/language.php index cfaa855dd..855d94505 100644 --- a/include/language.php +++ b/include/language.php @@ -43,8 +43,6 @@ function get_browser_language() { arsort($langs, SORT_NUMERIC); } } - else - $langs['en'] = 1; return $langs; } @@ -65,6 +63,7 @@ function get_best_language() { if(isset($langs) && count($langs)) { foreach ($langs as $lang => $v) { + $lang = strtolower($lang); if(file_exists("view/$lang") && is_dir("view/$lang")) { $preferred = $lang; break; diff --git a/index.php b/index.php index 5f0ff9834..5a9ec1026 100755 --- a/index.php +++ b/index.php @@ -27,9 +27,6 @@ $a->install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? fal @include(".htconfig.php"); -$a->language = get_best_language(); - - /** * * Try to open the database; @@ -54,6 +51,7 @@ if(! $a->install) { load_hooks(); call_hooks('init_1'); + $a->language = get_best_language(); load_translation_table($a->language); // Force the cookie to be secure (https only) if this site is SSL enabled. Must be done before session_start(). @@ -69,6 +67,7 @@ if(! $a->install) { } else { // load translations but do not check plugins as we have no database + $a->language = get_best_language(); load_translation_table($a->language,true); }