* Simplify a bit MessageCache::get(), don't load all valid languages name if the...
authorAlexandre Emsenhuber <ialex@users.mediawiki.org>
Thu, 24 Apr 2008 13:02:32 +0000 (13:02 +0000)
committerAlexandre Emsenhuber <ialex@users.mediawiki.org>
Thu, 24 Apr 2008 13:02:32 +0000 (13:02 +0000)
* do the same in wfMsgGetKey()

includes/GlobalFunctions.php
includes/MessageCache.php

index 72742e8..7497b22 100644 (file)
@@ -460,10 +460,20 @@ function wfMsgGetKey( $key, $useDB, $langCode = false, $transform = true ) {
                        $message = $wgMessageCache->transform( $message );
                }
        } else {
-               if( $forContent ) {
+               if( $langCode === true ) {
                        $lang = &$wgContLang;
-               } else {
+               } elseif( $langCode === false ) {
                        $lang = &$wgLang;
+               } else {
+                       $validCodes = array_keys( Language::getLanguageNames() );
+                       if( in_array( $langCode, $validCodes ) ) {
+                               # $langcode corresponds to a valid language.
+                               $lang = Language::factory( $langCode );
+                       } else {
+                               # $langcode is a string, but not a valid language code; use content language.
+                               $lang =& $wgContLang;
+                               wfDebug( 'Invalid language code passed to wfMsgGetKey, falling back to content language.' );
+                       }
                }
 
                # MessageCache::get() does this already, Language::getMessage() doesn't
index c1e6c09..bbea94a 100644 (file)
@@ -411,28 +411,25 @@ class MessageCache {
        function get( $key, $useDB = true, $langcode = true, $isFullKey = false ) {
                global $wgContLanguageCode, $wgContLang, $wgLang;
 
-               $validCodes = array_keys( Language::getLanguageNames() );
-
                # Identify which language to get or create a language object for.
-               if( $langcode === $wgContLang->getCode() ) {
+               if( $langcode === $wgContLang->getCode() || $langcode === true ) {
                        # $langcode is the language code of the wikis content language object.
+                       # or it is a boolean and value is true
                        $lang =& $wgContLang;
-               } elseif( $langcode === $wgLang->getCode() ) {
+               } elseif( $langcode === $wgLang->getCode() || $langcode === false ) {
                        # $langcode is the language code of user language object.
-                       $lang =& $wgLang;
-               } elseif( in_array( $langcode, $validCodes ) ) {
-                       # $langcode corresponds to a valid language.
-                       $lang = Language::factory( $langcode );
-               } elseif( is_string( $langcode ) ) {
-                       # $langcode is a string, but not a valid language code; use content language.
-                       $lang =& $wgContLang;
-                       wfDebug( 'Invalid language code passed to MessageCache::get, falling back to content language.' );
-               } elseif( !$langcode ) {
-                       # $langcode is set to false, use the user language (fallback for old parameters).
+                       # or it was a boolean and value is false
                        $lang =& $wgLang;
                } else {
-                       # $language is set to true, use the content language (fallback for old parameters).
-                       $lang =& $wgContLang;
+                       $validCodes = array_keys( Language::getLanguageNames() );
+                       if( in_array( $langcode, $validCodes ) ) {
+                               # $langcode corresponds to a valid language.
+                               $lang = Language::factory( $langcode );
+                       } else {
+                               # $langcode is a string, but not a valid language code; use content language.
+                               $lang =& $wgContLang;
+                               wfDebug( 'Invalid language code passed to MessageCache::get, falling back to content language.' );
+                       }
                }
 
                $langcode = $lang->getCode();