Stylize languages/*, languages/classes/*, but not languages/messages/*
[lhc/web/wiklou.git] / languages / classes / LanguageGan.php
index 20a45f8..da5e1d2 100644 (file)
-<?php\r
-\r
-require_once( dirname(__FILE__).'/../LanguageConverter.php' );\r
-require_once( dirname(__FILE__).'/LanguageZh.php' );\r
-\r
-/**\r
- * @ingroup Language\r
- */\r
-class GanConverter extends LanguageConverter {\r
-\r
-       function __construct($langobj, $maincode,\r
-                                                               $variants=array(),\r
-                                                               $variantfallbacks=array(),\r
-                                                               $markup=array(),\r
-                                                               $flags = array(),\r
-                                                               $manualLevel = array() ) {\r
-               $this->mDescCodeSep = ':';\r
-               $this->mDescVarSep = ';';\r
-               parent::__construct($langobj, $maincode,\r
-                                                                       $variants,\r
-                                                                       $variantfallbacks,\r
-                                                                       $markup,\r
-                                                                       $flags,\r
-                                                                       $manualLevel);\r
-               $names = array(\r
-                       'gan'      => '原文',\r
-                       'gan-hans' => '简体',\r
-                       'gan-hant' => '繁體',\r
-               );\r
-               $this->mVariantNames = array_merge($this->mVariantNames,$names);\r
-               $this->loadNamespaceTables();\r
-       }\r
-       \r
-       function loadNamespaceTables() {\r
-               global $wgMetaNamespace;\r
-               $nsproject     = $wgMetaNamespace;\r
-               $projecttable  = array(\r
-                       'Wikipedia'       => '维基百科',\r
-                       'Wikisource'      => '维基文库',\r
-                       'Wikinews'        => '维基新闻',\r
-                       'Wiktionary'      => '维基词典',\r
-                       'Wikibooks'       => '维基教科书',\r
-                       'Wikiquote'       => '维基语录',\r
-               );\r
-               $this->mNamespaceTables['gan-hans'] = array(\r
-                       'Media'          => '媒体',\r
-                       'Special'        => '特殊',\r
-                       'Talk'           => '談詑',\r
-                       'User'           => '用户',\r
-                       'User talk'      => '用户談詑',\r
-                       $nsproject\r
-                                       => isset($projecttable[$nsproject]) ? \r
-                                               $projecttable[$nsproject] : $nsproject,\r
-                       $nsproject . ' talk'\r
-                                       => isset($projecttable[$nsproject]) ?\r
-                                               $projecttable[$nsproject] . '談詑' : $nsproject . '談詑',\r
-                       'File'           => '文件',\r
-                       'File talk'      => '文件談詑',\r
-                       'MediaWiki'      => 'MediaWiki',\r
-                       'MediaWiki talk' => 'MediaWiki談詑',\r
-                       'Template'       => '模板',\r
-                       'Template talk'  => '模板談詑',\r
-                       'Help'           => '帮助',\r
-                       'Help talk'      => '帮助談詑',\r
-                       'Category'       => '分类',\r
-                       'Category talk'  => '分类談詑',\r
-               );\r
-               $this->mNamespaceTables['gan-hant'] = array_merge($this->mNamespaceTables['gan-hans']);\r
-               $this->mNamespaceTables['gan-hant']['File'] = '檔案';\r
-               $this->mNamespaceTables['gan-hant']['File talk'] = '檔案談詑';\r
-               $this->mNamespaceTables['gan'] = array_merge($this->mNamespaceTables['gan-hans']);\r
-       }\r
-\r
-       function loadDefaultTables() {\r
-               require( dirname(__FILE__)."/../../includes/ZhConversion.php" );\r
-               $this->mTables = array(\r
-                       'gan-hans' => new ReplacementArray( $zh2Hans ),\r
-                       'gan-hant' => new ReplacementArray( $zh2Hant ),\r
-                       'gan'      => new ReplacementArray\r
-               );\r
-       }\r
-\r
-       /* there shouldn't be any latin text in Chinese conversion, so no need\r
-          to mark anything.\r
-          $noParse is there for compatibility with LanguageConvert::markNoConversion\r
-        */\r
-       function markNoConversion($text, $noParse = false) {\r
-               return $text;\r
-       }\r
-\r
-       function convertCategoryKey( $key ) {\r
-               return $this->autoConvert( $key, 'gan' );\r
-       }\r
-}\r
-\r
-/**\r
- * class that handles both Traditional and Simplified Chinese\r
- * right now it only distinguish gan_hans, gan_hant.\r
- *\r
- * @ingroup Language\r
- */\r
-class LanguageGan extends LanguageZh {\r
-\r
-       function __construct() {\r
-               global $wgHooks;\r
-               parent::__construct();\r
-\r
-               $variants = array('gan','gan-hans','gan-hant');\r
-               $variantfallbacks = array(\r
-                       'gan'      => array('gan-hans','gan-hant'),\r
-                       'gan-hans' => array('gan'),\r
-                       'gan-hant' => array('gan'),\r
-               );\r
-               $ml=array(\r
-                       'gan'      => 'disable',\r
-               );\r
-\r
-               $this->mConverter = new GanConverter( $this, 'gan',\r
-                                                               $variants, $variantfallbacks,\r
-                                                               array(),array(),\r
-                                                               $ml);\r
-\r
-               $wgHooks['ArticleSaveComplete'][] = $this->mConverter;\r
-       }\r
-\r
-       # this should give much better diff info\r
-       function segmentForDiff( $text ) {\r
-               return preg_replace(\r
-                       "/([\\xc0-\\xff][\\x80-\\xbf]*)/e",\r
-                       "' ' .\"$1\"", $text);\r
-       }\r
-\r
-       function unsegmentForDiff( $text ) {\r
-               return preg_replace(\r
-                       "/ ([\\xc0-\\xff][\\x80-\\xbf]*)/e",\r
-                       "\"$1\"", $text);\r
-       }\r
-\r
-       // word segmentation\r
-       function stripForSearch( $string ) {\r
-               wfProfileIn( __METHOD__ );\r
-\r
-               // eventually this should be a word segmentation\r
-               // for now just treat each character as a word\r
-               // @fixme only do this for Han characters...\r
-               $t = preg_replace(\r
-                               "/([\\xc0-\\xff][\\x80-\\xbf]*)/",\r
-                               " $1", $string);\r
-\r
-        //always convert to gan-hans before indexing. it should be\r
-               //better to use gan-hans for search, since conversion from\r
-               //Traditional to Simplified is less ambiguous than the\r
-               //other way around\r
-\r
-               $t = $this->mConverter->autoConvert($t, 'gan-hans');\r
-               $t = parent::stripForSearch( $t );\r
-               wfProfileOut( __METHOD__ );\r
-               return $t;\r
-\r
-       }\r
-\r
-       function convertForSearchResult( $termsArray ) {\r
-               $terms = implode( '|', $termsArray );\r
-               $terms = implode( '|', $this->mConverter->autoConvertToAllVariants( $terms ) );\r
-               $ret = array_unique( explode('|', $terms) );\r
-               return $ret;\r
-       }\r
-}
\ No newline at end of file
+<?php
+
+require_once( dirname( __FILE__ ) . '/../LanguageConverter.php' );
+require_once( dirname( __FILE__ ) . '/LanguageZh.php' );
+
+/**
+ * @ingroup Language
+ */
+class GanConverter extends LanguageConverter {
+
+       function __construct( $langobj, $maincode,
+                                                               $variants = array(),
+                                                               $variantfallbacks = array(),
+                                                               $flags = array(),
+                                                               $manualLevel = array() ) {
+               $this->mDescCodeSep = ':';
+               $this->mDescVarSep = ';';
+               parent::__construct( $langobj, $maincode,
+                                                                       $variants,
+                                                                       $variantfallbacks,
+                                                                       $flags,
+                                                                       $manualLevel );
+               $names = array(
+                       'gan'      => '原文',
+                       'gan-hans' => '简体',
+                       'gan-hant' => '繁體',
+               );
+               $this->mVariantNames = array_merge( $this->mVariantNames, $names );
+       }
+
+       function loadDefaultTables() {
+               require( dirname( __FILE__ ) . "/../../includes/ZhConversion.php" );
+               $this->mTables = array(
+                       'gan-hans' => new ReplacementArray( $zh2Hans ),
+                       'gan-hant' => new ReplacementArray( $zh2Hant ),
+                       'gan'      => new ReplacementArray
+               );
+       }
+
+       /* 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;
+       }
+
+       function convertCategoryKey( $key ) {
+               return $this->autoConvert( $key, 'gan' );
+       }
+}
+
+/**
+ * class that handles both Traditional and Simplified Chinese
+ * right now it only distinguish gan_hans, gan_hant.
+ *
+ * @ingroup Language
+ */
+class LanguageGan extends LanguageZh {
+
+       function __construct() {
+               global $wgHooks;
+               parent::__construct();
+
+               $variants = array( 'gan', 'gan-hans', 'gan-hant' );
+               $variantfallbacks = array(
+                       'gan'      => array( 'gan-hans', 'gan-hant' ),
+                       'gan-hans' => array( 'gan' ),
+                       'gan-hant' => array( 'gan' ),
+               );
+               $ml = array(
+                       'gan'      => 'disable',
+               );
+
+               $this->mConverter = new GanConverter( $this, 'gan',
+                                                               $variants, $variantfallbacks,
+                                                               array(),
+                                                               $ml );
+
+               $wgHooks['ArticleSaveComplete'][] = $this->mConverter;
+       }
+
+       # this should give much better diff info
+       function segmentForDiff( $text ) {
+               return preg_replace(
+                       "/([\\xc0-\\xff][\\x80-\\xbf]*)/e",
+                       "' ' .\"$1\"", $text );
+       }
+
+       function unsegmentForDiff( $text ) {
+               return preg_replace(
+                       "/ ([\\xc0-\\xff][\\x80-\\xbf]*)/e",
+                       "\"$1\"", $text );
+       }
+
+       // word segmentation
+       function normalizeForSearch( $string, $autoVariant = 'gan-hans' ) {
+               // LanguageZh::normalizeForSearch
+               return parent::normalizeForSearch( $string, $autoVariant );
+       }
+
+       function convertForSearchResult( $termsArray ) {
+               $terms = implode( '|', $termsArray );
+               $terms = self::convertDoubleWidth( $terms );
+               $terms = implode( '|', $this->mConverter->autoConvertToAllVariants( $terms ) );
+               $ret = array_unique( explode( '|', $terms ) );
+               return $ret;
+       }
+}