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