diff options
Diffstat (limited to 'languages/classes/LanguageZh.php')
-rw-r--r-- | languages/classes/LanguageZh.php | 91 |
1 files changed, 68 insertions, 23 deletions
diff --git a/languages/classes/LanguageZh.php b/languages/classes/LanguageZh.php index 337783a6..3d162a8e 100644 --- a/languages/classes/LanguageZh.php +++ b/languages/classes/LanguageZh.php @@ -1,35 +1,69 @@ <?php -/** - * @addtogroup Language - */ + require_once( dirname(__FILE__).'/../LanguageConverter.php' ); require_once( dirname(__FILE__).'/LanguageZh_hans.php' ); +/** + * @ingroup Language + */ class ZhConverter extends LanguageConverter { + + function __construct($langobj, $maincode, + $variants=array(), + $variantfallbacks=array(), + $markup=array(), + $flags = array(), + $manualLevel = array() ) { + $this->mDescCodeSep = ':'; + $this->mDescVarSep = ';'; + parent::__construct($langobj, $maincode, + $variants, + $variantfallbacks, + $markup, + $flags, + $manualLevel); + $names = array( + 'zh' => '原文', + 'zh-hans' => '简体', + 'zh-hant' => '繁體', + 'zh-cn' => '大陆', + 'zh-tw' => '台灣', + 'zh-hk' => '香港', + 'zh-mo' => '澳門', + 'zh-sg' => '新加坡', + 'zh-my' => '大马', + ); + $this->mVariantNames = array_merge($this->mVariantNames,$names); + } + function loadDefaultTables() { require( dirname(__FILE__)."/../../includes/ZhConversion.php" ); $this->mTables = array( '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-mo' => new ReplacementArray( array_merge($zh2Hant, $zh2HK) ), + 'zh-my' => new ReplacementArray( array_merge($zh2Hans, $zh2SG) ), + 'zh-sg' => new ReplacementArray( array_merge($zh2Hans, $zh2SG) ), + 'zh-tw' => new ReplacementArray( array_merge($zh2Hant, $zh2TW) ), 'zh' => new ReplacementArray ); } function postLoadTables() { $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'] ); + $this->mTables['zh-mo']->merge( $this->mTables['zh-hant'] ); + $this->mTables['zh-my']->merge( $this->mTables['zh-hans'] ); + $this->mTables['zh-sg']->merge( $this->mTables['zh-hans'] ); + $this->mTables['zh-tw']->merge( $this->mTables['zh-hant'] ); } /* there shouldn't be any latin text in Chinese conversion, so no need to mark anything. $noParse is there for compatibility with LanguageConvert::markNoConversion - */ + */ function markNoConversion($text, $noParse = false) { return $text; } @@ -39,33 +73,44 @@ class ZhConverter extends LanguageConverter { } } - -/* class that handles both Traditional and Simplified Chinese - right now it only distinguish zh_hans, zh_hant, zh_cn, zh_tw, zh_sg and zh_hk. -*/ +/** + * class that handles both Traditional and Simplified Chinese + * right now it only distinguish zh_hans, zh_hant, zh_cn, zh_tw, zh_sg and zh_hk. + * + * @ingroup Language + */ class LanguageZh extends LanguageZh_hans { function __construct() { global $wgHooks; parent::__construct(); - $variants = array('zh', 'zh-hans', 'zh-hant', 'zh-cn', 'zh-tw', 'zh-sg', 'zh-hk'); + $variants = array('zh','zh-hans','zh-hant','zh-cn','zh-hk','zh-mo','zh-my','zh-sg','zh-tw'); $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', + 'zh' => array('zh-hans','zh-hant','zh-cn','zh-tw','zh-hk','zh-sg','zh-mo','zh-my'), + 'zh-hans' => array('zh-cn','zh-sg','zh-my'), + 'zh-hant' => array('zh-tw','zh-hk','zh-mo'), + 'zh-cn' => array('zh-hans','zh-sg','zh-my'), + 'zh-sg' => array('zh-hans','zh-cn','zh-my'), + 'zh-my' => array('zh-hans','zh-sg','zh-cn'), + 'zh-tw' => array('zh-hant','zh-hk','zh-mo'), + 'zh-hk' => array('zh-hant','zh-mo','zh-tw'), + 'zh-mo' => array('zh-hant','zh-hk','zh-tw'), + ); + $ml=array( + 'zh' => 'disable', + 'zh-hans' => 'unidirectional', + 'zh-hant' => 'unidirectional', ); - $this->mConverter = new ZhConverter( $this, 'zh', $variants, $variantfallbacks ); + $this->mConverter = new ZhConverter( $this, 'zh', + $variants, $variantfallbacks, + array(),array(), + $ml); $wgHooks['ArticleSaveComplete'][] = $this->mConverter; } - # this should give much better diff info function segmentForDiff( $text ) { return preg_replace( @@ -108,5 +153,5 @@ class LanguageZh extends LanguageZh_hans { $ret = array_unique( explode('|', $terms) ); return $ret; } - } + |