Help:高级字词转换语法
| ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
|
中文维基百科的字词转换機制是由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 - 此页面“语法”部分的英文翻译