From: Philip Tzou Date: Fri, 6 Feb 2009 13:21:11 +0000 (+0000) Subject: 1. Namespace translation for Chinese Language. X-Git-Tag: 1.31.0-rc.0~43006 X-Git-Url: http://git.cyclocoop.org/url?a=commitdiff_plain;h=9b9bbbc4852afc6eb9322f633daf250e2963f86e;p=lhc%2Fweb%2Fwiklou.git 1. Namespace translation for Chinese Language. 2. New function to convert namespace text for display. (only applies on wiki with LanguageConverter class) --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 773fd53050..2486cff79e 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -84,6 +84,8 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN class "mw-searchresult" * (bug 15283) Interwiki imports can now fetch included templates * Treat svn:// URLs as external links by default +* New function to convert namespace text for display (only applies on wiki with + LanguageConverter class) === Bug fixes in 1.15 === * (bug 16968) Special:Upload no longer throws useless warnings. diff --git a/languages/LanguageConverter.php b/languages/LanguageConverter.php index 701381ab49..957acecbad 100644 --- a/languages/LanguageConverter.php +++ b/languages/LanguageConverter.php @@ -23,6 +23,7 @@ class LanguageConverter { var $mTables; var $mManualAddTables; var $mManualRemoveTables; + var $mNamespaceTables; var $mTitleDisplay=''; var $mDoTitleConvert=true, $mDoContentConvert=true; var $mManualLevel; // 'bidirectional' 'unidirectional' 'disable' for each variants @@ -89,6 +90,7 @@ class LanguageConverter { :'bidirectional'; $this->mManualAddTables[$v] = array(); $this->mManualRemoveTables[$v] = array(); + $this->mNamespaceTables[$v] = array(); } } @@ -425,12 +427,28 @@ class LanguageConverter { $parser->mOutput->setTitleText( $this->mTitleDisplay ); return $text; } + + /** + * convert namespace + * @param string $title the title included namespace + * @return array of string + * @private + */ + function convertNamespace( $title, $variant ) { + $splittitle = explode( ':', $title ); + if (count($splittitle) < 2) + return $title; + if ( isset( $this->mNamespaceTables[$variant][$splittitle[0]] ) ) + $splittitle[0] = $this->mNamespaceTables[$variant][$splittitle[0]]; + $ret = implode(':', $splittitle ); + return $ret; + } /** - * convert title + * convert title * @private */ - function convertTitle( $text ){ + function convertTitle( $text, $variant ){ global $wgDisableTitleConversion, $wgUser; // check for global param and __NOTC__ tag @@ -452,7 +470,8 @@ class LanguageConverter { if ( $isredir == 'no' || $action == 'edit' || $action == 'submit' || $linkconvert == 'no' ) { return $text; } else { - $this->mTitleDisplay = $this->convert($text); + $text = $this->convertNamespace( $text, $variant ); + $this->mTitleDisplay = $this->convert( $text ); return $this->mTitleDisplay; } } @@ -488,10 +507,11 @@ class LanguageConverter { if( $mw->matchStart( $text ) ) return $text; + $plang = $this->getPreferredVariant(); + // for title convertion - if ( $isTitle ) return $this->convertTitle( $text ); + if ( $isTitle ) return $this->convertTitle( $text, $plang ); - $plang = $this->getPreferredVariant(); $tarray = StringUtils::explode( $this->mMarkup['end'], $text ); $text = ''; diff --git a/languages/classes/LanguageZh.php b/languages/classes/LanguageZh.php index 093626909b..645c682049 100644 --- a/languages/classes/LanguageZh.php +++ b/languages/classes/LanguageZh.php @@ -34,6 +34,53 @@ 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() { diff --git a/languages/messages/MessagesZh.php b/languages/messages/MessagesZh.php index 137baff055..eaece746a9 100644 --- a/languages/messages/MessagesZh.php +++ b/languages/messages/MessagesZh.php @@ -4,12 +4,34 @@ * @ingroup Language * @file * + * @author Philip */ # Stub message file for converter code "zh" $fallback = 'zh-hans'; +$namespaceNames = array( + NS_MEDIA => 'Media', + NS_SPECIAL => 'Special', + NS_MAIN => '', + NS_TALK => 'Talk', + NS_USER => 'User', + NS_USER_TALK => 'User_talk', + # NS_PROJECT set by $wgMetaNamespace + NS_PROJECT_TALK => '$1_talk', + NS_FILE => 'File', + NS_FILE_TALK => 'File_talk', + NS_MEDIAWIKI => 'MediaWiki', + NS_MEDIAWIKI_TALK => 'MediaWiki_talk', + NS_TEMPLATE => 'Template', + NS_TEMPLATE_TALK => 'Template_talk', + NS_HELP => 'Help', + NS_HELP_TALK => 'Help_talk', + NS_CATEGORY => 'Category', + NS_CATEGORY_TALK => 'Category_talk' +); + $namespaceAliases = array( '媒体' => NS_MEDIA, '媒體' => NS_MEDIA, @@ -34,22 +56,39 @@ $namespaceAliases = array( '文件' => NS_FILE, '图像对话' => NS_FILE_TALK, '圖像對話' => NS_FILE_TALK, + '图像讨论' => NS_FILE_TALK, + '圖像討論' => NS_FILE_TALK, '档案对话' => NS_FILE_TALK, '檔案對話' => NS_FILE_TALK, - '文件对話' => NS_FILE_TALK, + '档案讨论' => NS_FILE_TALK, + '檔案討論' => NS_FILE_TALK, + '文件对话' => NS_FILE_TALK, '文件對話' => NS_FILE_TALK, + '文件讨论' => NS_FILE_TALK, + '文件討論' => NS_FILE_TALK, '模板' => NS_TEMPLATE, - '模板讨论'=> NS_TEMPLATE_TALK, - "樣板" => NS_TEMPLATE, - "樣板討論" => NS_TEMPLATE_TALK, + '样板' => NS_TEMPLATE, + '樣板' => NS_TEMPLATE, + '模板对话' => NS_TEMPLATE_TALK, + '模板對話' => NS_TEMPLATE_TALK, + '模板讨论' => NS_TEMPLATE_TALK, + '模板討論' => NS_TEMPLATE_TALK, + '样板对话' => NS_TEMPLATE_TALK, + '樣板對話' => NS_TEMPLATE_TALK, + '样板讨论' => NS_TEMPLATE_TALK, + '樣板討論' => NS_TEMPLATE_TALK, '帮助' => NS_HELP, - '帮助讨论'=> NS_HELP_TALK, - "幫助" => NS_HELP, - "幫助討論" => NS_HELP_TALK, + '幫助' => NS_HELP, + '帮助对话' => NS_HELP_TALK, + '幫助對話' => NS_HELP_TALK, + '帮助讨论' => NS_HELP_TALK, + '幫助討論' => NS_HELP_TALK, '分类' => NS_CATEGORY, + '分類' => NS_CATEGORY, + '分类对话'=> NS_CATEGORY_TALK, + '分類對話' => NS_CATEGORY_TALK, '分类讨论'=> NS_CATEGORY_TALK, - "分類" => NS_CATEGORY, - "分類討論" => NS_CATEGORY_TALK, + '分類討論' => NS_CATEGORY_TALK, ); $messages = array( diff --git a/languages/messages/MessagesZh_hans.php b/languages/messages/MessagesZh_hans.php index bbe642f043..05a7f9e623 100644 --- a/languages/messages/MessagesZh_hans.php +++ b/languages/messages/MessagesZh_hans.php @@ -10,27 +10,28 @@ * @author O * @author Shinjiman * @author Wmr89502270 + * @author Philip */ $namespaceNames = array( - NS_MEDIA => 'Media', - NS_SPECIAL => 'Special', + NS_MEDIA => '媒体', + NS_SPECIAL => '特殊', NS_MAIN => '', - NS_TALK => 'Talk', - NS_USER => 'User', - NS_USER_TALK => 'User_talk', + NS_TALK => '讨论', + NS_USER => '用户', + NS_USER_TALK => '用户讨论', # NS_PROJECT set by $wgMetaNamespace - NS_PROJECT_TALK => '$1_talk', - NS_FILE => 'File', - NS_FILE_TALK => 'File_talk', + NS_PROJECT_TALK => '$1讨论', + NS_FILE => '文件', + NS_FILE_TALK => '文件讨论', NS_MEDIAWIKI => 'MediaWiki', - NS_MEDIAWIKI_TALK => 'MediaWiki_talk', - NS_TEMPLATE => 'Template', - NS_TEMPLATE_TALK => 'Template_talk', - NS_HELP => 'Help', - NS_HELP_TALK => 'Help_talk', - NS_CATEGORY => 'Category', - NS_CATEGORY_TALK => 'Category_talk' + NS_MEDIAWIKI_TALK => 'MediaWiki讨论', + NS_TEMPLATE => '模板', + NS_TEMPLATE_TALK => '模板讨论', + NS_HELP => '帮助', + NS_HELP_TALK => '帮助讨论', + NS_CATEGORY => '分类', + NS_CATEGORY_TALK => '分类讨论' ); $namespaceAliases = array( @@ -49,13 +50,19 @@ $namespaceAliases = array( 'Image' => NS_FILE, 'Image_talk' => NS_FILE_TALK, '图像对话' => NS_FILE_TALK, + '图像讨论' => NS_FILE_TALK, '档案对话' => NS_FILE_TALK, + '档案讨论' => NS_FILE_TALK, '文件对话' => NS_FILE_TALK, + '文件讨论' => NS_FILE_TALK, '模板' => NS_TEMPLATE, + '模板对话'=> NS_TEMPLATE_TALK, '模板讨论'=> NS_TEMPLATE_TALK, '帮助' => NS_HELP, + '帮助对话'=> NS_HELP_TALK, '帮助讨论'=> NS_HELP_TALK, '分类' => NS_CATEGORY, + '分类对话'=> NS_CATEGORY_TALK, '分类讨论'=> NS_CATEGORY_TALK, ); diff --git a/languages/messages/MessagesZh_hant.php b/languages/messages/MessagesZh_hant.php index f654696a5e..a68d8d3156 100644 --- a/languages/messages/MessagesZh_hant.php +++ b/languages/messages/MessagesZh_hant.php @@ -9,37 +9,40 @@ * @author Shinjiman * @author Skjackey tse * @author Wrightbus + * @author Philip */ $fallback = 'zh-hans'; $namespaceNames = array( - NS_MEDIA => 'Media', - NS_SPECIAL => 'Special', + NS_MEDIA => '媒體', + NS_SPECIAL => '特殊', NS_MAIN => '', - NS_TALK => 'Talk', - NS_USER => 'User', - NS_USER_TALK => 'User_talk', + NS_TALK => '討論', + NS_USER => '用戶', + NS_USER_TALK => '用戶討論', # NS_PROJECT set by $wgMetaNamespace - NS_PROJECT_TALK => '$1_talk', - NS_FILE => 'File', - NS_FILE_TALK => 'File_talk', + NS_PROJECT_TALK => '$1討論', + NS_FILE => '檔案', + NS_FILE_TALK => '檔案討論', NS_MEDIAWIKI => 'MediaWiki', - NS_MEDIAWIKI_TALK => 'MediaWiki_talk', - NS_TEMPLATE => 'Template', - NS_TEMPLATE_TALK => 'Template_talk', - NS_HELP => 'Help', - NS_HELP_TALK => 'Help_talk', - NS_CATEGORY => 'Category', - NS_CATEGORY_TALK => 'Category_talk' + NS_MEDIAWIKI_TALK => 'MediaWiki討論', + NS_TEMPLATE => '模板', + NS_TEMPLATE_TALK => '模板討論', + NS_HELP => '幫助', + NS_HELP_TALK => '幫助討論', + NS_CATEGORY => '分類', + NS_CATEGORY_TALK => '分類討論' ); $namespaceAliases = array( "媒體" => NS_MEDIA, "特殊" => NS_SPECIAL, "對話" => NS_TALK, + "討論" => NS_USER_TALK, "用戶" => NS_USER, "用戶對話" => NS_USER_TALK, + "用戶討論" => NS_USER_TALK, # This has never worked so it's unlikely to annoy anyone if I disable it -- TS #"{{SITENAME}}_對話" => NS_PROJECT_TALK "圖像" => NS_FILE, @@ -48,13 +51,22 @@ $namespaceAliases = array( 'Image' => NS_FILE, 'Image_talk' => NS_FILE_TALK, "圖像對話" => NS_FILE_TALK, + "圖像討論" => NS_FILE_TALK, "檔案對話" => NS_FILE_TALK, + "檔案討論" => NS_FILE_TALK, "文件對話" => NS_FILE_TALK, + "文件討論" => NS_FILE_TALK, "樣板" => NS_TEMPLATE, + "模板" => NS_TEMPLATE, + "樣板對話" => NS_TEMPLATE_TALK, "樣板討論" => NS_TEMPLATE_TALK, + "模板對話" => NS_TEMPLATE_TALK, + "模板討論" => NS_TEMPLATE_TALK, "幫助" => NS_HELP, + "幫助對話" => NS_HELP_TALK, "幫助討論" => NS_HELP_TALK, "分類" => NS_CATEGORY, + "分類對話" => NS_CATEGORY_TALK, "分類討論" => NS_CATEGORY_TALK, );