From 6a6482ab0c711adcf16ad780cd4246ca49e75552 Mon Sep 17 00:00:00 2001 From: Alexandre Emsenhuber Date: Thu, 24 Apr 2008 13:02:32 +0000 Subject: [PATCH] * Simplify a bit MessageCache::get(), don't load all valid languages name if the value passed is boolean * do the same in wfMsgGetKey() --- includes/GlobalFunctions.php | 14 ++++++++++++-- includes/MessageCache.php | 29 +++++++++++++---------------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/includes/GlobalFunctions.php b/includes/GlobalFunctions.php index 72742e84fc..7497b22009 100644 --- a/includes/GlobalFunctions.php +++ b/includes/GlobalFunctions.php @@ -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 diff --git a/includes/MessageCache.php b/includes/MessageCache.php index c1e6c09b17..bbea94abe0 100644 --- a/includes/MessageCache.php +++ b/includes/MessageCache.php @@ -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(); -- 2.20.1