MediaWiki  REL1_20
LanguageGan.php
Go to the documentation of this file.
00001 <?php
00024 require_once( __DIR__ . '/../LanguageConverter.php' );
00025 require_once( __DIR__ . '/LanguageZh.php' );
00026 
00030 class GanConverter extends LanguageConverter {
00031 
00040         function __construct( $langobj, $maincode,
00041                                                                 $variants = array(),
00042                                                                 $variantfallbacks = array(),
00043                                                                 $flags = array(),
00044                                                                 $manualLevel = array() ) {
00045                 $this->mDescCodeSep = ':';
00046                 $this->mDescVarSep = ';';
00047                 parent::__construct( $langobj, $maincode,
00048                                                                         $variants,
00049                                                                         $variantfallbacks,
00050                                                                         $flags,
00051                                                                         $manualLevel );
00052                 $names = array(
00053                         'gan'      => '原文',
00054                         'gan-hans' => '简体',
00055                         'gan-hant' => '繁體',
00056                 );
00057                 $this->mVariantNames = array_merge( $this->mVariantNames, $names );
00058         }
00059 
00060         function loadDefaultTables() {
00061                 require( __DIR__ . "/../../includes/ZhConversion.php" );
00062                 $this->mTables = array(
00063                         'gan-hans' => new ReplacementArray( $zh2Hans ),
00064                         'gan-hant' => new ReplacementArray( $zh2Hant ),
00065                         'gan'      => new ReplacementArray
00066                 );
00067         }
00068 
00079         function markNoConversion( $text, $noParse = false ) {
00080                 return $text;
00081         }
00082 
00087         function convertCategoryKey( $key ) {
00088                 return $this->autoConvert( $key, 'gan' );
00089         }
00090 }
00091 
00098 class LanguageGan extends LanguageZh {
00099 
00100         function __construct() {
00101                 global $wgHooks;
00102                 parent::__construct();
00103 
00104                 $variants = array( 'gan', 'gan-hans', 'gan-hant' );
00105                 $variantfallbacks = array(
00106                         'gan'      => array( 'gan-hans', 'gan-hant' ),
00107                         'gan-hans' => array( 'gan' ),
00108                         'gan-hant' => array( 'gan' ),
00109                 );
00110                 $ml = array(
00111                         'gan'      => 'disable',
00112                 );
00113 
00114                 $this->mConverter = new GanConverter( $this, 'gan',
00115                                                                 $variants, $variantfallbacks,
00116                                                                 array(),
00117                                                                 $ml );
00118 
00119                 $wgHooks['ArticleSaveComplete'][] = $this->mConverter;
00120         }
00121 
00128         function segmentForDiff( $text ) {
00129                 return preg_replace(
00130                         "/([\\xc0-\\xff][\\x80-\\xbf]*)/e",
00131                         "' ' .\"$1\"", $text );
00132         }
00133 
00138         function unsegmentForDiff( $text ) {
00139                 return preg_replace(
00140                         "/ ([\\xc0-\\xff][\\x80-\\xbf]*)/e",
00141                         "\"$1\"", $text );
00142         }
00143 
00151         function normalizeForSearch( $string, $autoVariant = 'gan-hans' ) {
00152                 // LanguageZh::normalizeForSearch
00153                 return parent::normalizeForSearch( $string, $autoVariant );
00154         }
00155 
00160         function convertForSearchResult( $termsArray ) {
00161                 $terms = implode( '|', $termsArray );
00162                 $terms = self::convertDoubleWidth( $terms );
00163                 $terms = implode( '|', $this->mConverter->autoConvertToAllVariants( $terms ) );
00164                 $ret = array_unique( explode( '|', $terms ) );
00165                 return $ret;
00166         }
00167 }