diff options
Diffstat (limited to 'languages/classes/LanguageZh.php')
-rw-r--r-- | languages/classes/LanguageZh.php | 56 |
1 files changed, 33 insertions, 23 deletions
diff --git a/languages/classes/LanguageZh.php b/languages/classes/LanguageZh.php index bcdf7dd8..337783a6 100644 --- a/languages/classes/LanguageZh.php +++ b/languages/classes/LanguageZh.php @@ -3,24 +3,28 @@ * @addtogroup Language */ require_once( dirname(__FILE__).'/../LanguageConverter.php' ); -require_once( dirname(__FILE__).'/LanguageZh_cn.php' ); +require_once( dirname(__FILE__).'/LanguageZh_hans.php' ); class ZhConverter extends LanguageConverter { function loadDefaultTables() { require( dirname(__FILE__)."/../../includes/ZhConversion.php" ); $this->mTables = array( - 'zh-cn' => new ReplacementArray( $zh2CN ), - 'zh-tw' => new ReplacementArray( $zh2TW ), - 'zh-sg' => new ReplacementArray( array_merge($zh2CN, $zh2SG) ), - 'zh-hk' => new ReplacementArray( array_merge($zh2TW, $zh2HK) ), - 'zh' => new ReplacementArray + 'zh-hans' => new ReplacementArray( $zh2Hans ), + 'zh-hant' => new ReplacementArray( $zh2Hant ), + 'zh-cn' => new ReplacementArray( array_merge($zh2Hans, $zh2CN) ), + 'zh-tw' => new ReplacementArray( array_merge($zh2Hant, $zh2TW) ), + 'zh-sg' => new ReplacementArray( array_merge($zh2Hans, $zh2SG) ), + 'zh-hk' => new ReplacementArray( array_merge($zh2Hant, $zh2HK) ), + 'zh' => new ReplacementArray ); } function postLoadTables() { - $this->mTables['zh-sg']->merge( $this->mTables['zh-cn'] ); - $this->mTables['zh-hk']->merge( $this->mTables['zh-tw'] ); - } + $this->mTables['zh-cn']->merge( $this->mTables['zh-hans'] ); + $this->mTables['zh-tw']->merge( $this->mTables['zh-hant'] ); + $this->mTables['zh-sg']->merge( $this->mTables['zh-hans'] ); + $this->mTables['zh-hk']->merge( $this->mTables['zh-hant'] ); + } /* there shouldn't be any latin text in Chinese conversion, so no need to mark anything. @@ -31,26 +35,33 @@ class ZhConverter extends LanguageConverter { } function convertCategoryKey( $key ) { - return $this->autoConvert( $key, 'zh-cn' ); + return $this->autoConvert( $key, 'zh' ); } } /* class that handles both Traditional and Simplified Chinese - right now it only distinguish zh_cn, zh_tw, zh_sg and zh_hk. + right now it only distinguish zh_hans, zh_hant, zh_cn, zh_tw, zh_sg and zh_hk. */ -class LanguageZh extends LanguageZh_cn { +class LanguageZh extends LanguageZh_hans { function __construct() { global $wgHooks; parent::__construct(); - $this->mConverter = new ZhConverter($this, 'zh', - array('zh', 'zh-cn', 'zh-tw', 'zh-sg', 'zh-hk'), - array('zh'=>'zh-cn', - 'zh-cn'=>'zh-sg', - 'zh-sg'=>'zh-cn', - 'zh-tw'=>'zh-hk', - 'zh-hk'=>'zh-tw')); + + $variants = array('zh', 'zh-hans', 'zh-hant', 'zh-cn', 'zh-tw', 'zh-sg', 'zh-hk'); + $variantfallbacks = array( + 'zh' => 'zh-hans', + 'zh-hans' => 'zh', + 'zh-hant' => 'zh', + 'zh-cn' => 'zh-hans', + 'zh-sg' => 'zh-hans', + 'zh-tw' => 'zh-hant', + 'zh-hk' => 'zh-hant', + ); + + $this->mConverter = new ZhConverter( $this, 'zh', $variants, $variantfallbacks ); + $wgHooks['ArticleSaveComplete'][] = $this->mConverter; } @@ -79,12 +90,12 @@ class LanguageZh extends LanguageZh_cn { "/([\\xc0-\\xff][\\x80-\\xbf]*)/e", "' ' .\"$1\"", $string); - //always convert to zh-cn before indexing. it should be - //better to use zh-cn for search, since conversion from + //always convert to zh-hans before indexing. it should be + //better to use zh-hans for search, since conversion from //Traditional to Simplified is less ambiguous than the //other way around - $t = $this->mConverter->autoConvert($t, 'zh-cn'); + $t = $this->mConverter->autoConvert($t, 'zh-hans'); $t = parent::stripForSearch( $t ); wfProfileOut( $fname ); return $t; @@ -99,4 +110,3 @@ class LanguageZh extends LanguageZh_cn { } } - |