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-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:部落格;}-

测试:博客、網誌、部落格
“简体”和“繁體”下并不会转换用词模式,而只会转换纯粹的简繁体
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 ,但程式作實上只是不轉換時的內容,即是預設的內容。)

参见