Help:高级字词转换语法

字词转换
主页讨论
轉換請求
错误修复请求
地区词候选
轉換介紹
字詞轉換處理讨论
  繁简处理讨论
  地区词处理讨论
  公共轉換組讨论
帮助文档
繁简与地区词处理讨论
  转换原理讨论
  手工轉換讨论
  高级语法讨论
  用字模式选择说明
相關模板
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-hanszh-cnzh-sgzh-my
zh-hantzh-twzh-hkzh-mo
zh-cnzh-hanszh-sgzh-my
zh-hkzh-mozh-hantzh-tw
zh-mozh-hkzh-hantzh-tw
zh-myzh-sgzh-hanszh-cn
zh-sgzh-myzh-hanszh-cn
zh-twzh-hantzh-hkzh-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 ,但程式作實上只是不轉換時的內容,即是預設的內容。)

参见编辑