From: Philip Tzou Date: Wed, 16 Feb 2011 14:18:43 +0000 (+0000) Subject: Follow r77452, r80492. Avoid to find sub-languages when load css/js messages. X-Git-Tag: 1.31.0-rc.0~31975 X-Git-Url: https://git.cyclocoop.org/%7B%24admin_url%7Dmembres/supprimer.php?a=commitdiff_plain;h=9babe5aa4f96c31c3d6813f59a99b0d8939cffc7;p=lhc%2Fweb%2Fwiklou.git Follow r77452, r80492. Avoid to find sub-languages when load css/js messages. --- diff --git a/includes/MessageCache.php b/includes/MessageCache.php index 0650f1f29c..69cffe45c6 100644 --- a/includes/MessageCache.php +++ b/includes/MessageCache.php @@ -576,17 +576,6 @@ class MessageCache { return false; } - $lang = wfGetLangObj( $langcode ); - if ( !$lang ) { - throw new MWException( "Bad lang code $langcode given" ); - } - - // Don't change getPreferredVariant() to getCode() / mCode, for - // more details, see the comment in Language::getMessage(). - $langcode = $lang->getPreferredVariant(); - - $message = false; - # Normalise title-case input (with some inlining) $lckey = str_replace( ' ', '_', $key ); if ( ord( $key ) < 128 ) { @@ -597,6 +586,31 @@ class MessageCache { $uckey = $wgContLang->ucfirst( $lckey ); } + $lang = wfGetLangObj( $langcode ); + if ( !$lang ) { + throw new MWException( "Bad lang code $langcode given" ); + } + + /** + * Find a suitable sub-language to present the message to user, + * but prevent doing it if the message is for css/js. + * + * Some language like Chinese has multiple variant languages. Only + * getPreferredVariant() (in LanguageConverter) could return such + * sub-language. It won't effect other languages without variants. + */ + $title = Title::newFromText( $uckey, NS_MEDIAWIKI ); + if ( !$title->isCssOrJsPage() ) { + $langcode = $lang->getPreferredVariant(); + if ( $langcode != $lang->getCode() ) { + $lang = wfGetLangObj( $langcode ); + } + } else { + $langcode = $lang->getCode(); + } + + $message = false; + /** * Record each message request, but only once per request. * This information is not used unless $wgAdaptiveMessageCache diff --git a/languages/Language.php b/languages/Language.php index 10bb29db79..76d8fd9fc1 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -1613,21 +1613,11 @@ class Language { } function getMessage( $key ) { - // Don't change getPreferredVariant() to getCode() / mCode, because: - - // 1. Some language like Chinese has multiple variant languages. Only - // getPreferredVariant() (in LanguageConverter) could return a - // sub-language which would be more suitable for the user. - // 2. To languages without multiple variants, getPreferredVariant() - // (in FakeConverter) functions exactly same as getCode() / mCode, - // it won't break anything. - - // The same below. - return self::$dataCache->getSubitem( $this->getPreferredVariant(), 'messages', $key ); + return self::$dataCache->getSubitem( $this->mCode, 'messages', $key ); } function getAllMessages() { - return self::$dataCache->getItem( $this->getPreferredVariant(), 'messages' ); + return self::$dataCache->getItem( $this->mCode, 'messages' ); } function iconv( $in, $out, $string ) {