From 3e8af172d636cc7ca3a9e2301b928f6ca79b9eb2 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 5 May 2010 17:30:42 -0700 Subject: Add ?uselang=xx language override option (only valid, locally-enabled languages supported, just as with headers and user settings). Great aid for debugging & translation testing --- lib/util.php | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) (limited to 'lib/util.php') diff --git a/lib/util.php b/lib/util.php index e7ea9df61..e15c69f95 100644 --- a/lib/util.php +++ b/lib/util.php @@ -138,23 +138,38 @@ function common_timezone() return common_config('site', 'timezone'); } +function common_valid_language($lang) +{ + if ($lang) { + // 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'] == $lang) { + return true; + } + } + } + return false; +} + function common_language() { + // Allow ?uselang=xx override, very useful for debugging + // and helping translators check usage and context. + if (isset($_GET['uselang'])) { + $uselang = strval($_GET['uselang']); + if (common_valid_language($uselang)) { + return $uselang; + } + } // If there is a user logged in and they've set a language preference // then return that one... if (_have_config() && common_logged_in()) { $user = common_current_user(); - $user_language = $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; - } - } + + if (common_valid_language($user->language)) { + return $user->language; } } -- cgit v1.2.3-54-g00ecf