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

Reply via email to