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