Remove unnecessary and broken converGrammar override
[lhc/web/wiklou.git] / languages / classes / LanguageGan.php
index 20a45f8..f454105 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
+<?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(),
+                                                               $markup=array(),
+                                                               $flags = array(),
+                                                               $manualLevel = array() ) {
+               $this->mDescCodeSep = ':';
+               $this->mDescVarSep = ';';
+               parent::__construct($langobj, $maincode,
+                                                                       $variants,
+                                                                       $variantfallbacks,
+                                                                       $markup,
+                                                                       $flags,
+                                                                       $manualLevel);
+               $names = array(
+                       'gan'      => '原文',
+                       'gan-hans' => '简体',
+                       'gan-hant' => '繁體',
+               );
+               $this->mVariantNames = array_merge($this->mVariantNames,$names);
+               $this->loadNamespaceTables();
+       }
+       
+       function loadNamespaceTables() {
+               global $wgMetaNamespace;
+               $nsproject     = $wgMetaNamespace;
+               $projecttable  = array(
+                       'Wikipedia'       => '维基百科',
+                       'Wikisource'      => '维基文库',
+                       'Wikinews'        => '维基新闻',
+                       'Wiktionary'      => '维基词典',
+                       'Wikibooks'       => '维基教科书',
+                       'Wikiquote'       => '维基语录',
+               );
+               $this->mNamespaceTables['gan-hans'] = array(
+                       'Media'          => '媒体',
+                       'Special'        => '特殊',
+                       'Talk'           => '談詑',
+                       'User'           => '用户',
+                       'User talk'      => '用户談詑',
+                       $nsproject
+                                       => isset($projecttable[$nsproject]) ? 
+                                               $projecttable[$nsproject] : $nsproject,
+                       $nsproject . ' talk'
+                                       => isset($projecttable[$nsproject]) ?
+                                               $projecttable[$nsproject] . '談詑' : $nsproject . '談詑',
+                       'File'           => '文件',
+                       'File talk'      => '文件談詑',
+                       'MediaWiki'      => 'MediaWiki',
+                       'MediaWiki talk' => 'MediaWiki談詑',
+                       'Template'       => '模板',
+                       'Template talk'  => '模板談詑',
+                       'Help'           => '帮助',
+                       'Help talk'      => '帮助談詑',
+                       'Category'       => '分类',
+                       'Category talk'  => '分类談詑',
+               );
+               $this->mNamespaceTables['gan-hant'] = array_merge($this->mNamespaceTables['gan-hans']);
+               $this->mNamespaceTables['gan-hant']['File'] = '檔案';
+               $this->mNamespaceTables['gan-hant']['File talk'] = '檔案談詑';
+               $this->mNamespaceTables['gan'] = array_merge($this->mNamespaceTables['gan-hans']);
+       }
+
+       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(),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 stripForSearch( $string ) {
+               wfProfileIn( __METHOD__ );
+
+               // eventually this should be a word segmentation
+               // for now just treat each character as a word
+               // @fixme only do this for Han characters...
+               $t = preg_replace(
+                               "/([\\xc0-\\xff][\\x80-\\xbf]*)/",
+                               " $1", $string);
+
+        //always convert to gan-hans before indexing. it should be
+               //better to use gan-hans for search, since conversion from
+               //Traditional to Simplified is less ambiguous than the
+               //other way around
+
+               $t = $this->mConverter->autoConvert($t, 'gan-hans');
+               $t = parent::stripForSearch( $t );
+               wfProfileOut( __METHOD__ );
+               return $t;
+
+       }
+
+       function convertForSearchResult( $termsArray ) {
+               $terms = implode( '|', $termsArray );
+               $terms = implode( '|', $this->mConverter->autoConvertToAllVariants( $terms ) );
+               $ret = array_unique( explode('|', $terms) );
+               return $ret;
+       }
 }
\ No newline at end of file