]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Add ?uselang=xx language override option (only valid, locally-enabled languages suppo...
authorBrion Vibber <brion@pobox.com>
Thu, 6 May 2010 00:30:42 +0000 (17:30 -0700)
committerBrion Vibber <brion@pobox.com>
Thu, 6 May 2010 00:30:42 +0000 (17:30 -0700)
Great aid for debugging & translation testing

lib/util.php

index e7ea9df61395264cbabb84d3f3794d701c60fda6..e15c69f950d21aa8714bdd12e9024bf3b94cced2 100644 (file)
@@ -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;
         }
     }