Follow up r77452. Follow mark's suggest to remove getCodeForMessage() and explain...
authorPhilip Tzou <philip@users.mediawiki.org>
Tue, 18 Jan 2011 07:59:53 +0000 (07:59 +0000)
committerPhilip Tzou <philip@users.mediawiki.org>
Tue, 18 Jan 2011 07:59:53 +0000 (07:59 +0000)
includes/MessageCache.php
languages/Language.php

index 1cccf78..3256bf9 100644 (file)
@@ -550,7 +550,9 @@ class MessageCache {
                        throw new MWException( "Bad lang code $langcode given" );
                }
 
-               $langcode = $lang->getCodeForMessage();
+               // Don't change getPreferredVariant() to getCode() / mCode, for
+               // more details, see the comment in Language::getMessage().
+               $langcode = $lang->getPreferredVariant();
 
                $message = false;
 
index f36654d..6cfee8f 100644 (file)
@@ -1568,11 +1568,21 @@ class Language {
        }
 
        function getMessage( $key ) {
-               return self::$dataCache->getSubitem( $this->getCodeForMessage(), 'messages', $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 );
        }
 
        function getAllMessages() {
-               return self::$dataCache->getItem( $this->getCodeForMessage(), 'messages' );
+               return self::$dataCache->getItem( $this->getPreferredVariant(), 'messages' );
        }
 
        function iconv( $in, $out, $string ) {
@@ -2789,18 +2799,6 @@ class Language {
        function getCode() {
                return $this->mCode;
        }
-       
-       /**
-        * Get langcode for message
-        * Some language, like Chinese (zh, without any suffix), has multiple
-        * interface languages, we could choose a better one for user.
-        * Inherit class can override this function if necessary.
-        *
-        * @return string
-        */
-       function getCodeForMessage() {
-               return $this->getPreferredVariant();
-       }
 
        function setCode( $code ) {
                $this->mCode = $code;