帮助:高级字词转换语法

| ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
|
中文维基百科的字词转换机制是由MediaWiki的LanguageConverter实现的,其中提供了丰富的手动设置语法供用户选择。
用语
中文维基百科的字词转换系统虽然使用多时,但一直缺少一套较完整的用语用于人们沟通和学习。因为中文圈在这方面的文章和著述甚少,所以用语大量来自英文。用语来源有 HTML2.0 规格书(即是 rfc1866 )中的 Terms 一节、为 HTML5 而设的《HTML: The Markup Language Reference》中的 HTML syntax 一节、《Extensible Markup Language (XML) 1.0 (Fifth Edition)》、英文维基百科(en:HTML_elements、en:HTML……)、MediaWiki软件的源代码(LanguageConverter、LanguageZh),用语译法来源有 Google Help (不使用标示为“自动翻译的文章”的文章)、微软 MSDN library (只使用标示为“人为翻译”的文章)、 Google 图书搜索、 Google Google web 搜索等等。
维基标记(wikimarkup),或称维基文字(wikitext、维基文本)、维基代码(wikicode),是一种标记语言,各种功能通过标记(markup)来使用。在 HTML 和 XML 用语中,界定出文档中的元素的标记称为标签(tag),除此之外,标记还可以是字符引用、实体引用、注释、 DOCTYPE 宣告等,亦即任何字符资料(亦即纯文字)以外的源代码皆为标记。wikitext 还没有清晰的定义,规范化的工作还在进行中,哪些标记才是标签还不清楚。此文暂时把转换语法的标记称为标签。
手动转换语法的转换标签的语法大致有以下几种:
-{text}-
-{ flag | variant1 : text1 ; variant2 : text2 ; }-
-{ flag1 ; flag2 | from => variant : to ; }-
界定符号
界定,即delimit,或译分界、分隔,大陆多译作定界,指以界定符号/界定字符(delimiter)指明出纯文字或资料流中分开的独立区域之间的边界。纯粹的 delimiter 起语法作用,语义极弱,相当于自然人类语文的标点符号。标记语言因使用了各种明确的界定符号,便于人脑和电脑静态分析而见长。“-{”、“}-”为界定出转换标签的界定符号。转换标签内的垂线“|”为分隔出旗标列表和对应(map)规则的界定符号。旗标列表内的“;”为分隔各个旗标的界定符号。
旗标
旗标,即 flag ,为一种语法构造,用于要求转换标签的可选行为或甚至改变转换标签的整个动作。分为一般旗标和语种旗标。当没有在旗标列表中使用任何旗标,则为空旗标。现时转换标签所支持的一般旗标有 A 、 H 、 T 、 D 、 R 、 N 、 - ,和只用于转换程序内部而无法以语法直接指定的 S 和 + 旗标。
没有使用旗标列表
为没有使用垂线分隔出旗标列表时的情况,依据是否能从转换标签的内容中剖析(parse)出对应规则(mapping rule)分为两种处理方式。如果剖析出对应规则的话,则为 S 旗标转换,即是寻常的显示字词转换方式(S stands for show)。如果剖析不出任何对应规则的话,则为 R 旗标转换,即是停用字词转换,显示原文(R stands for raw)。
空旗标
或称空旗标列表,为当旗标列表留空,没有使用任何一个标旗时的说法。处理方式跟没有使用旗标列表一样,只不过这时依据的是垂线右则的内容。如果垂线右则的内容剖析不出任何对应规则的话,则为 R 旗标转换,即是停用字词转换,显示原文(R stands for raw)。
原文
这里指不使用转换器的情况下会显示出的版本。在维基百科编辑文章时在编辑器显示的即为源代码版本的原文。 MediaWiki 的、中文维基百科所使用的字词转换系统的做法是,由原文转换为某个指定的字词模式,而不是由某一种语言转成另一种语言。直至现时为止, 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.php的getVariantsFallbacks
方法定义,各个语种的后援语种顺序如下:
语种 | 后援语种 | ||
---|---|---|---|
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-hant | zh-mo | zh-tw |
zh-mo | zh-hant | zh-hk | zh-tw |
zh-my | zh-hans | zh-sg | zh-cn |
zh-sg | zh-hans | zh-cn | zh-my |
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-hans:计算机; zh-hant:電腦;}-
|
双向转换输出结果
|
|||||||||||||||
单向转换 | 实现单向转换,可带有转换标签,主要用于新增全文转换规则,比双向转换效率高 |
|
单向转换输出结果
|
单向转换不带继承特性,如左例中“简体”和“马新简体”并未转换用词。使用zh-hans亦只会应用到“简体”而不会应用“大陆简体”。 | ||||||||||||||
禁止字词转换 | 同时禁止繁简和地区词的转换 |
|
禁止字词转换输出结果
|
这种写法将完全禁止字词转换,在某些场合(如只需禁止地区词转换)或不适用 | ||||||||||||||
禁止地区词转换 | 禁止被切断的地区词转换,但允许个别字之繁简转换 |
|
禁止地区词转换输出结果
|
还有另一种组合转换标签的方式也可以实现同样的功能,并且便于在模板中使用,详见后文 |
转换标签
常用标签
-{A|...}-
, -{H|...}-
的实际效用是从插入此标签起新增这个规则,而 -{-|...}-
是从插入此标签起删除这个规则,仅在插入后才发生作用,并非真的从头到尾全文转换。因此 {{NoteTA}} 必须放置于文章开头。User:Cewbot/log/20191129/configuration 会尝试将 -{A|...}-
, -{H|...}-
合并至 {{NoteTA}}。
标签 | 功能 | 示例 | 备注 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
源码 | 输出结果 | |||||||||||||||||
H | 添加全文转换规则,并隐藏H转换文本 |
|
H转换输出结果
|
“简体”和“繁体”下并不会转换用词模式,而只会转换纯粹的简繁体 | ||||||||||||||
A | 添加全文转换规则,并输出A转换解析文本 |
|
A转换输出结果
|
注意和H转换对比结果 | ||||||||||||||
- | 移除全文转换规则 |
|
H转换、-转换配合的输出结果
|
测试1和测试2有差异 | ||||||||||||||
T | 强制覆盖页面原有标题 |
(假定页面原始标题为“汤姆·汉克斯”) |
T转换输出结果(显示在页面标题处)
|
|||||||||||||||
D | 描述转换规则 |
|
D转换输出结果
|
组合转换标签
标签 | 功能 | 示例 | 备注 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
源码 | 输出结果 | |||||||||||||||||
zh zh-hans zh-hant zh-cn zh-hk zh-sg zh-tw |
限制要显示的语言的有效范围[1]。 |
|
组合转换输出结果
|
除了测试1和测试2之间有差异外,跟上方使用 H 标签作转换的例子之间也有差异[1]
测试1若为zh;zh-hans;zh-hant则显示转换后的 |
不转换的内容
自动转换程序会自动规避“程序码”类的标签,包括<pre>...</pre>
、<code>...</code>
两种。如果要将前两种用于条目内的程序范例,可以使用空转换标签-{}-
强制启用转换。
注释
参见
- mw:Writing systems/Syntax - 此页面“语法”部分的英文翻译