2 require_once( "LanguageZh_cn.php");
3 require_once( "LanguageZh_tw.php");
5 /* caching the conversion tables */
6 $zh2TW = $wgMemc->get($key1 = "$wgDBname:zhConvert:tw");
7 $zh2CN = $wgMemc->get($key2 = "$wgDBname:zhConvert:cn");
8 $zh2SG = $wgMemc->get($key3 = "$wgDBname:zhConvert:sg");
9 $zh2HK = $wgMemc->get($key4 = "$wgDBname:zhConvert:hk");
10 if(empty($zhSimp2Trad) ||
empty($zhTrad2Simp)) {
11 require_once("includes/ZhConversion.php");
12 $wgMemc->set($key1, $zh2TW);
13 $wgMemc->set($key2, $zh2CN);
14 $wgMemc->set($key3, $zh2SG);
15 $wgMemc->set($key4, $zh2HK);
18 /* class that handles both Traditional and Simplified Chinese
19 right now it only distinguish zh_cn and zh_tw (actuall, zh_cn and
20 non-zh_cn), will add support for zh_sg, zh_hk, etc, later.
22 class LanguageZh
extends LanguageZh_cn
{
24 var $mZhLanguageCode=false;
26 function LanguageZh() {
27 $this->mZhLanguageCode
= $this->getPreferredVariant();
31 get preferred language variants. eventually this will check the
32 user's preference setting as well, once the language option in
33 the setting pages is finalized.
35 function getPreferredVariant() {
38 if($this->mZhLanguageCode
)
39 return $this->mZhLanguageCode
;
41 // get language variant preference for logged in users
42 if($wgUser->getID()!=0) {
43 $this->mZhLanguageCode
= $wgUser->getOption('variant');
46 // see if some zh- variant is set in the http header,
47 $this->mZhLanguageCode
="zh-cn";
48 $header = str_replace( '_', '-', strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"]));
49 $zh = strstr($header, 'zh-');
51 $this->mZhLanguageCode
= substr($zh,0,5);
54 return $this->mZhLanguageCode
;
58 /* the Simplified/Traditional conversion stuff */
60 function zh2tw($text) {
62 return strtr($text, $zh2TW);
65 function zh2cn($text) {
67 return strtr($text, $zh2CN);
70 function zh2sg($text) {
71 global $zh2SG, $zh2CN;
72 return strtr(strtr($text, $zh2CN), $zh2SG);
75 function zh2hk($text) {
76 global $zh2HK, $zh2TW;
77 return strtr(strtr($text, $zh2TW), $zh2HK);
80 function autoConvert($text, $toVariant=false) {
82 $toVariant = $this->getPreferredVariant();
84 wfProfileIn( $fname );
88 $t = $this->zh2cn($text);
91 $t = $this->zh2tw($text);
94 $t = $this->zh2sg($text);
97 $t = $this->zh2hk($text);
100 wfProfileOut( $fname );
104 function getVariants() {
105 return array("zh-cn", "zh-tw", "zh-sg", "zh-hk");