帮助:高级字词转换语法
| ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
|
中文维基百科的字词转换机制是由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_elements、en:HTML……)、MediaWiki软件的源代码(LanguageConverter、LanguageZh),用语译法来源有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)到另一个语言模式来获得可能的显示输出。
备援语言
[编辑]当字词转换发现没有某变体的全文转换定义时,会查阅备援变体(英语: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-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:部落格;}-
测试:博客、網誌、部落格
|
H转换输出结果
|
“简体”和“繁体”下并不会转换用词模式,而只会转换纯粹的简繁体 | ||||||||||||||||||
A | 添加全文转换规则,并输出A转换解析文本 |
-{A|zh-cn:博客; zh-hk:網誌; zh-my:部落格; zh-tw:部落格;}-
测试:博客、網誌、部落格
|
A转换输出结果
|
注意和H转换对比结果 | ||||||||||||||||||
- | 移除全文转换规则 |
-{H|zh-cn:博客; zh-hk:網誌; zh-my:部落格; zh-tw:部落格;}-
测试1:博客、網誌、部落格
-{-|zh-cn:博客; zh-hk:網誌; zh-my:部落格; zh-tw:部落格;}-
测试2:博客、網誌、部落格
|
H转换、-转换配合的输出结果
|
测试1和测试2有差异 | ||||||||||||||||||
T | 强制覆盖页面原有标题 |
-{T|zh-cn:宠儿 (电影); zh-hk:爭寵; zh-sg:真宠; zh-tw:真寵;}-
(假定页面原始标题为“真寵”) |
T转换输出结果(显示在页面标题处)
|
|||||||||||||||||||
D | 描述转换规则 |
-{D|zh-cn:宠儿; zh-hk:爭寵; zh-sg:真宠; zh-tw:真寵;}-
|
D转换输出结果
|
组合转换标签
[编辑]标签 | 功能 | 示例 | 备注 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
源码 | 输出结果 | |||||||||||||||||||||
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则显示转换后的 |
不转换的内容
[编辑]自动转换程序会自动规避“程序码”类的标签,包括<pre>...</pre>
、<code>...</code>
两种。如果要将前两种用于条目内的程序范例,可以使用空转换标签-{}-
强制启用转换。
注释
[编辑]参见
[编辑]- mw:Writing systems/Syntax - 此页面“语法”部分的英文翻译