http://www.mediawiki.org/wiki/Special:Code/MediaWiki/82246
Revision: 82246 Author: philip Date: 2011-02-16 14:18:43 +0000 (Wed, 16 Feb 2011) Log Message: ----------- Follow r77452, r80492. Avoid to find sub-languages when load css/js messages. Modified Paths: -------------- trunk/phase3/includes/MessageCache.php trunk/phase3/languages/Language.php Modified: trunk/phase3/includes/MessageCache.php =================================================================== --- trunk/phase3/includes/MessageCache.php 2011-02-16 14:05:26 UTC (rev 82245) +++ trunk/phase3/includes/MessageCache.php 2011-02-16 14:18:43 UTC (rev 82246) @@ -576,17 +576,6 @@ 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,7 +586,32 @@ $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 * is enabled. Modified: trunk/phase3/languages/Language.php =================================================================== --- trunk/phase3/languages/Language.php 2011-02-16 14:05:26 UTC (rev 82245) +++ trunk/phase3/languages/Language.php 2011-02-16 14:18:43 UTC (rev 82246) @@ -1613,21 +1613,11 @@ } 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 ) { _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs