說明:高級字詞轉換語法
| ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
|
中文維基百科的字詞轉換機制是由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 - 此頁面「語法」部分的英文翻譯