帮助:高级字词转换语法

本页使用了标题或全文手工转换
维基百科,自由的百科全书
字词转换
主页 讨论
转换请求
错误修复请求
地区词候选
转换介绍
字词转换处理 讨论
  繁简处理 讨论
  地区词处理 讨论
  公共转换组 讨论
帮助文档
繁简与地区词处理 讨论
  转换原理 讨论
  手工转换 讨论
  高级语法 讨论
  显示模式选择说明
相关模板
NoteTA 全文字词转换
CGroup 公共转换组列表
Lan 界面文字转换
地区用词 地区词模板
地区用词2 进阶地区词模板
各地中文名 地区用词信息框
查看 - 讨论 - 编辑 - 变动

中文维基百科的字词转换机制是由MediaWiki的LanguageConverter实现的,其中提供了丰富的手动设置语法供用户选择。

用语

中文维基百科的字词转换系统虽然使用多时,但一直缺少一套较完整的用语用于人们沟通和学习。因为中文圈在这方面的文章和著述甚少,所以用语大量来自英文。用语来源有HTML2.0规格书(即是RFC 1866)中的 Terms 一节、为HTML5而设的《HTML: The Markup Language Reference》中的 HTML syntax一节、《Extensible Markup Language (XML) 1.0 (Fifth Edition)》、英文维基百科(en:HTML_elementsen:HTML……)、MediaWiki软件的源代码(LanguageConverterLanguageZh),用语译法来源有Google Help(不使用标示为“自动翻译的文章”的文章)、微软MSDN library(只使用标示为“人为翻译”的文章)、Google图书搜索、Google搜索等等。

Wikitext(维基文本,又称Wiki标记语言)是一种标记语言,各种功能通过标记(markup)来使用。在HTML和XML用语中,界定出文档中的元素的标记称为标签(tag),除此之外,标记还可以是字符引用、实体引用、注释、DOCTYPE宣告等,亦即任何字符资料(亦即纯文字)以外的源代码皆为标记。Wikitext还没有清晰的定义,规范化的工作还在进行中,哪些标记才是标签还不清楚。此文暂时把转换语法的标记称为标签。

手动转换语法的转换标签的语法大致有以下几种:

<!-- 不转换 -->
-{不转换的内容}-

<!-- 一般转换语法,*代表任一旗标 -->
-{*|zh-cn:大陆简体显示文字;zh-hk:香港繁體顯示文字;zh-mo:澳門繁體顯示文字;zh-my:大马简体显示文字;zh-sg:新加坡简体显示文字;zh-tw:臺灣正體顯示文字;}-

<!-- 单向转换 -->
-{*|原文字=>zh-cn:大陆简体显示文字;原文字=>zh-hk:香港繁體顯示文字;原文字=>zh-mo:澳門繁體顯示文字;原文字=>zh-my:大马简体显示文字;原文字=>zh-sg:新加坡简体显示文字;原文字=>zh-tw:臺灣正體顯示文字;}-

<!-- 组合转换 -->
-{zh;zh-hans;zh-hant|原文字}-

界定符号

界定(英语:delimit),或译分界、分隔,大陆多译作定界,指以界定符号/界定字符(英语:delimiter)指明出纯文字或资料流中分开的独立区域之间的边界。纯粹的 delimiter 起语法作用,语义极弱,相当于自然人类语文的标点符号。标记语言因使用了各种明确的界定符号,便于人脑和电脑静态分析而见长。“-{”、“}-”为界定出转换标签的界定符号。转换标签内的垂线“|”为分隔出旗标列表和对应(map)规则的界定符号。旗标列表内的“;”为分隔各个旗标的界定符号。

旗标

旗标(英语:flag),为一种语法构造,用于要求转换标签的可选行为或甚至改变转换标签的整个动作。分为一般旗标和语种旗标。当没有在旗标列表中使用任何旗标,则为空旗标。现时转换标签所支持的一般旗标有A、H、T、D、R、N、-,和只用于转换程序内部而无法以语法直接指定的S和+旗标。

没有使用旗标列表

为没有使用垂线分隔出旗标列表时的情况,依据是否能从转换标签的内容中剖析(英语:parse)出对应规则(英语:mapping rule)分为两种处理方式。如果剖析出对应规则的话,则为S旗标转换,即是寻常的显示字词转换方式(S代表show,即“显示”)。如果剖析不出任何对应规则的话,则为R旗标转换,即是停用字词转换,显示原文(R代表raw,即“原始”)。

空旗标

或称空旗标列表,为当旗标列表留空,没有使用任何一个标旗时的说法。处理方式跟没有使用旗标列表一样,只不过这时依据的是垂线右则的内容。如果垂线右则的内容剖析不出任何对应规则的话,则为R旗标转换,即是停用字词转换,显示原文。

原文

这里指不使用转换器的情况下会显示出的版本。在维基百科编辑文章时在编辑器显示的即为源代码版本的原文。MediaWiki的、中文维基百科所使用的字词转换系统的做法是,由原文转换为某个指定的字词模式,而不是由某一种语言转成另一种语言。

语种

原文为variant,为变种、变体之意,在不同领域有不同译法,在这里暂译为语种,政治正确的叫法为用字模式。在转换标签的语法以语言代码填写。

语言代码

原文为language code,简称code,现时转换标签的语法所支持的语言代码有zh、zh-hant、zh-hans、zh-tw、zh-cn、zh-hk、zh-sg、zh-mo、zh-my,原zh-my以zh-sg代替涵盖,于2018年拆分。意思如下表:

代码 语言 备注
zh 中文 “zh”为“中”字的普通话拼音的声母。
zh-hans 简体 ISO 15924代码。“han”为“汉”字的普通话拼音的英文译法,s为“Simplified Chinese”的首字母。
zh-hant 繁体 ISO 15924代码。“han”为“汉”字的普通话拼音的英文译法,t为“Traditional Chinese”的首字母。
zh-cn 大陆简体 cn为中国(China,特指中国大陆)的ISO 3166-2国家地区代码
zh-hk 香港繁体 hk为香港(Hong Kong)的国家地区代码。
zh-mo 澳门繁体 mo为澳门(Macau)的国家地区代码。
zh-my 大马简体 my为马来西亚(Malaysia)的国家地区代码。
zh-sg 新加坡简体 sg为新加坡(Singapore)的国家地区代码。马来西亚跟新加坡原用“马新简体”模式涵盖。
zh-tw 台湾正体 tw为台湾(Taiwan)的国家地区代码。

主语言代码

原文main language code,简称main code。MediaWiki的每个字词转换器都有个主要语言代码,做为回传语种时最后的默认值,如果某个语种没有设置后援语言,则也使用主要语言代码做为它的后援语言。每个语种的维基百科所使用的语言代码即为它的主要语言代码,中文维基百科的为zh。另一方面,MediaWiki的某些语言版本,例如中文维基百科所使用的中文版,以主要语言代码作为原文模式的语言代码。

手动等级

后退


后援语言

当字词转换发现没有某语种的全文转换定义时,会查阅后援语种(英语:fallback language variant)的规则进行替补。

ZhConverter.phpgetVariantsFallbacks方法定义,各个语种的后援语种顺序如下:

语种 后援语种
zh-hans zh-cn zh-sg zh-my
zh-hant zh-tw zh-hk zh-mo
zh-cn zh-hans zh-sg zh-my
zh-hk zh-mo zh-hant zh-tw
zh-mo zh-hk zh-hant zh-tw
zh-my zh-sg zh-hans zh-cn
zh-sg zh-my zh-hans zh-cn
zh-tw zh-hant zh-hk zh-mo

zh的后援语种则依序为zh-hans、zh-hant、zh-cn、zh-tw、zh-hk、zh-sg、zh-mo、zh-my。

全文转换

全语种全文转换

语种旗标

Action

指转换规则的动作。

Display

默认转换表格

语法

基本语法

称谓 功能 示例 备注
源码 输出结果
双向转换 实现双向转换,可带有转换标签,为手动转换语法中最常用的功能
-{zh-cn:计算机; zh-sg:电脑; zh-my:电脑; zh-hant:電腦;}-
单向转换 实现单向转换,可带有转换标签,主要用于新增全文转换规则,比双向转换效率高
-{H|巨集=>zh-cn:;}-

测试:巨集、宏
单向转换不带继承特性,如左例中“简体”、“大马简体”、“新加坡简体”并未转换用词。使用zh-hans亦只会应用到“简体”而不会应用“大陆简体”。
禁止字词转换 同时禁止繁简和地区词的转换
-{简体字繁體字}-
这种写法将完全禁止字词转换,在某些场合(如只需禁止地区词转换)或不适用
禁止地区词转换 禁止被切断的地区词转换,但允许个别字之繁简转换
-{}-韓、北朝-{}-

(假定系统转换表中有“北韓”和“北朝鲜”的对应规则)
还有另一种组合转换标签的方式也可以实现同样的功能,并且便于在模板中使用,详见后文

转换标签

常用标签

-{A|...}-, -{H|...}- 的实际效用是从插入此标签起新增这个规则,而 -{-|...}- 是从插入此标签起删除这个规则,仅在插入后才发生作用,并非真的从头到尾全文转换。因此{{NoteTA}}必须置于除标题外全部需要转换的字词之上,一般位于序言(及信息框)之上,亦可简单理解为文章开头;不过,如欲消歧义顶注模板中相应字词免遭转换,则{{NoteTA}}应当置于消歧义顶注模板之下。User:Cewbot/log/20191129/configuration会尝试将 -{A|...}-, -{H|...}-合并至{{NoteTA}}。

标签 功能 示例 备注
源码 输出结果
H 添加全文转换规则,并隐藏H转换文本
-{H|zh-cn:博客; zh-hk:網誌; zh-my:部落格; zh-tw:部落格;}-

测试:博客、網誌、部落格
“简体”和“繁体”下并不会转换用词模式,而只会转换纯粹的简繁体
A 添加全文转换规则,并输出A转换解析文本
-{A|zh-cn:博客; zh-hk:網誌; zh-my:部落格; zh-tw:部落格;}-

测试:博客、網誌、部落格
注意和H转换对比结果
- 移除全文转换规则
-{H|zh-cn:博客; zh-hk:網誌; zh-my:部落格; zh-tw:部落格;}-

测试1:博客、網誌、部落格

-{-|zh-cn:博客; zh-hk:網誌; zh-my:部落格; zh-tw:部落格;}-

测试2:博客、網誌、部落格
测试1和测试2有差异
T 强制覆盖页面原有标题
-{T|zh-cn:宠儿 (电影); zh-hk:爭寵; zh-sg:真宠; zh-tw:真寵;}-

(假定页面原始标题为“真寵”)

D 描述转换规则
-{D|zh-cn:宠儿; zh-hk:爭寵; zh-sg:真宠; zh-tw:真寵;}-

组合转换标签

标签 功能 示例 备注
源码 输出结果
zh
zh-hans
zh-hant
zh-cn
zh-hk
zh-mo
zh-my
zh-sg
zh-tw
限制要显示的语言的有效范围[1]
-{H|zh-cn:博客; zh-hk:網誌; zh-my:部落格; zh-tw:部落格;}-

测试1:-{zh;zh-hans;zh-hant|博客、網誌、部落格}-

测试2:-{zh;zh-my;zh-hk|博客、網誌、部落格}-
除了测试1和测试2之间有差异外,跟上方使用 H 标签作转换的例子之间也有差异[1]

测试1若为zh;zh-hans;zh-hant则显示转换后的文字,否则单纯显示不转换的文字。有沿溯(fallback)的限制,MediaWiki 1.15新增功能。此功能可用于需要避免地区词转换,但允许繁简转换的场合。比如{{Infobox Film}}中的各地片名部分。

不转换的内容

自动转换程序会自动规避“程序码”类的标签,包括<pre>...</pre><code>...</code>两种。如果要将前两种用于条目内的程序范例,可以使用空转换标签-{}-强制启用转换。

注释

  1. ^ 1.0 1.1 这为配搭后退(fallback)机制来限制所显示语言的一种显示方式,不会完全强制显示某种特定的语言。当要显示的语言在有效范围之外时,用后退(fallback)机制,在原先要显示的语言的后援语言当中选取在有效范围中的语言,把要显示的语言改为那语言。如果原先要显示的语言和其后援语言皆没有一种是在有效范围之内,则以原文显示,这时为 R 标旗的显示方式。(注:虽然叫 zh ,但程序作实上只是不转换时的内容,即是默认的内容。)

参见