00001 <?php
00002
00003 require_once( dirname(__FILE__).'/../LanguageConverter.php' );
00004 require_once( dirname(__FILE__).'/LanguageZh.php' );
00005
00009 class GanConverter extends LanguageConverter {
00010
00011 function __construct($langobj, $maincode,
00012 $variants=array(),
00013 $variantfallbacks=array(),
00014 $flags = array(),
00015 $manualLevel = array() ) {
00016 $this->mDescCodeSep = ':';
00017 $this->mDescVarSep = ';';
00018 parent::__construct($langobj, $maincode,
00019 $variants,
00020 $variantfallbacks,
00021 $flags,
00022 $manualLevel);
00023 $names = array(
00024 'gan' => '原文',
00025 'gan-hans' => '简体',
00026 'gan-hant' => '繁體',
00027 );
00028 $this->mVariantNames = array_merge($this->mVariantNames,$names);
00029 }
00030
00031 function loadDefaultTables() {
00032 require( dirname(__FILE__)."/../../includes/ZhConversion.php" );
00033 $this->mTables = array(
00034 'gan-hans' => new ReplacementArray( $zh2Hans ),
00035 'gan-hant' => new ReplacementArray( $zh2Hant ),
00036 'gan' => new ReplacementArray
00037 );
00038 }
00039
00040
00041
00042
00043
00044 function markNoConversion($text, $noParse = false) {
00045 return $text;
00046 }
00047
00048 function convertCategoryKey( $key ) {
00049 return $this->autoConvert( $key, 'gan' );
00050 }
00051 }
00052
00059 class LanguageGan extends LanguageZh {
00060
00061 function __construct() {
00062 global $wgHooks;
00063 parent::__construct();
00064
00065 $variants = array('gan','gan-hans','gan-hant');
00066 $variantfallbacks = array(
00067 'gan' => array('gan-hans','gan-hant'),
00068 'gan-hans' => array('gan'),
00069 'gan-hant' => array('gan'),
00070 );
00071 $ml=array(
00072 'gan' => 'disable',
00073 );
00074
00075 $this->mConverter = new GanConverter( $this, 'gan',
00076 $variants, $variantfallbacks,
00077 array(),
00078 $ml);
00079
00080 $wgHooks['ArticleSaveComplete'][] = $this->mConverter;
00081 }
00082
00083 # this should give much better diff info
00084 function segmentForDiff( $text ) {
00085 return preg_replace(
00086 "/([\\xc0-\\xff][\\x80-\\xbf]*)/e",
00087 "' ' .\"$1\"", $text);
00088 }
00089
00090 function unsegmentForDiff( $text ) {
00091 return preg_replace(
00092 "/ ([\\xc0-\\xff][\\x80-\\xbf]*)/e",
00093 "\"$1\"", $text);
00094 }
00095
00096
00097 function normalizeForSearch( $string, $autoVariant = 'gan-hans' ) {
00098
00099 return parent::normalizeForSearch( $string, $autoVariant );
00100 }
00101
00102 function convertForSearchResult( $termsArray ) {
00103 $terms = implode( '|', $termsArray );
00104 $terms = self::convertDoubleWidth( $terms );
00105 $terms = implode( '|', $this->mConverter->autoConvertToAllVariants( $terms ) );
00106 $ret = array_unique( explode('|', $terms) );
00107 return $ret;
00108 }
00109 }