http://www.mediawiki.org/wiki/Special:Code/MediaWiki/77452

Revision: 77452
Author:   philip
Date:     2010-11-30 03:04:47 +0000 (Tue, 30 Nov 2010)
Log Message:
-----------
Select a friendly sub-language while acquiring system messages if the uselang 
has multiple variants available for use.

Modified Paths:
--------------
    trunk/phase3/includes/MessageCache.php
    trunk/phase3/languages/Language.php

Modified: trunk/phase3/includes/MessageCache.php
===================================================================
--- trunk/phase3/includes/MessageCache.php      2010-11-30 02:45:10 UTC (rev 
77451)
+++ trunk/phase3/includes/MessageCache.php      2010-11-30 03:04:47 UTC (rev 
77452)
@@ -550,7 +550,7 @@
                        throw new MWException( "Bad lang code $langcode given" 
);
                }
 
-               $langcode = $lang->getCode();
+               $langcode = $lang->getCodeForMessage();
 
                $message = false;
 

Modified: trunk/phase3/languages/Language.php
===================================================================
--- trunk/phase3/languages/Language.php 2010-11-30 02:45:10 UTC (rev 77451)
+++ trunk/phase3/languages/Language.php 2010-11-30 03:04:47 UTC (rev 77452)
@@ -1545,11 +1545,11 @@
        }
 
        function getMessage( $key ) {
-               return self::$dataCache->getSubitem( $this->mCode, 'messages', 
$key );
+               return self::$dataCache->getSubitem( 
$this->getCodeForMessage(), 'messages', $key );
        }
 
        function getAllMessages() {
-               return self::$dataCache->getItem( $this->mCode, 'messages' );
+               return self::$dataCache->getItem( $this->getCodeForMessage(), 
'messages' );
        }
 
        function iconv( $in, $out, $string ) {
@@ -2764,6 +2764,18 @@
        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;


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to