From: Philip Tzou Date: Tue, 6 Jul 2010 05:00:15 +0000 (+0000) Subject: 1. Fix the underline bug in the title(namespace) conversion, which displayed title... X-Git-Tag: 1.31.0-rc.0~36248 X-Git-Url: http://git.cyclocoop.org/fichier?a=commitdiff_plain;h=279a29cdc122edd461a5205611b963d43790cf49;p=lhc%2Fweb%2Fwiklou.git 1. Fix the underline bug in the title(namespace) conversion, which displayed title like "User_talk:Example". 2. Improve the function of namespace conversion. Allow admins to custom namespace conversion in MediaWiki's messages([[MediaWiki:conversion-nsX]]). --- diff --git a/languages/LanguageConverter.php b/languages/LanguageConverter.php index f0a4f460b2..efde3a3f60 100644 --- a/languages/LanguageConverter.php +++ b/languages/LanguageConverter.php @@ -20,7 +20,6 @@ class LanguageConverter { var $mVariants, $mVariantFallbacks, $mVariantNames; var $mTablesLoaded = false; var $mTables; - var $mNamespaceTables; // 'bidirectional' 'unidirectional' 'disable' for each variant var $mManualLevel; var $mCacheKey; @@ -87,7 +86,6 @@ class LanguageConverter { } else { $this->mManualLevel[$v] = 'bidirectional'; } - $this->mNamespaceTables[$v] = array(); $this->mFlags[$v] = $v; } } @@ -548,12 +546,18 @@ class LanguageConverter { */ public function convertTitle( $title ) { $variant = $this->getPreferredVariant(); - if ( $title->getNamespace() === NS_MAIN ) { + $index = $title->getNamespace(); + if ( $index === NS_MAIN ) { $text = ''; } else { - $text = $title->getNsText(); - if ( isset( $this->mNamespaceTables[$variant][$text] ) ) { - $text = $this->mNamespaceTables[$variant][$text]; + // first let's check if a message has given us a converted name + $nsConvKey = 'conversion-ns' . $index; + $text = wfMsgForContentNoTrans( $nsConvKey ); + if ( $text == '<' . htmlspecialchars( $nsConvKey ) . '>' ) { + // the message does not exist, try retrieve it from the current + // variant's namespace names. + $langObj = $this->mLangObj->factory( $variant ); + $text = $langObj->getFormattedNsText( $index ); } $text .= ':'; } diff --git a/languages/classes/LanguageGan.php b/languages/classes/LanguageGan.php index 3c8b5fdb1f..54202e48fa 100644 --- a/languages/classes/LanguageGan.php +++ b/languages/classes/LanguageGan.php @@ -26,47 +26,6 @@ class GanConverter extends LanguageConverter { '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() { diff --git a/languages/classes/LanguageZh.php b/languages/classes/LanguageZh.php index 4a73c66581..0b88dbb2f2 100644 --- a/languages/classes/LanguageZh.php +++ b/languages/classes/LanguageZh.php @@ -32,53 +32,6 @@ class ZhConverter extends LanguageConverter { 'zh-my' => '大马', ); $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['zh-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['zh-hant'] = array_merge($this->mNamespaceTables['zh-hans']); - $this->mNamespaceTables['zh-hant']['File'] = '檔案'; - $this->mNamespaceTables['zh-hant']['File talk'] = '檔案討論'; - $this->mNamespaceTables['zh'] = array_merge($this->mNamespaceTables['zh-hans']); - $this->mNamespaceTables['zh-cn'] = array_merge($this->mNamespaceTables['zh-hans']); - $this->mNamespaceTables['zh-hk'] = array_merge($this->mNamespaceTables['zh-hant']); - $this->mNamespaceTables['zh-mo'] = array_merge($this->mNamespaceTables['zh-hant']); - $this->mNamespaceTables['zh-my'] = array_merge($this->mNamespaceTables['zh-hans']); - $this->mNamespaceTables['zh-sg'] = array_merge($this->mNamespaceTables['zh-hans']); - $this->mNamespaceTables['zh-tw'] = array_merge($this->mNamespaceTables['zh-hant']); } function loadDefaultTables() {