維基百科:字詞轉換處理/公共轉換組
| ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
|
對於一些主題、領域相同和相似的條目,其中需要被轉換的內容是大同小異的,可以把這些多個條目中要用到的共同轉換字詞單獨建立一個轉換組。藉由在頁面的{{NoteTA}}模板中指定組名,啟動該頁應用這一公共組的地區詞轉換,所有應用該公共轉換組的頁面都可以不用單獨維護,達成同步維護的目的。公共轉換組的方便程度處於全域轉換與全文轉換之間,而過度轉換程度也處於這兩者之間。
必須注意的是,使用公共轉換組時應避免繁簡混雜、或以繁/簡體打出簡/繁體用詞,例如「朝鮮/北韩」(此處特指平壤政權)、「視頻/视讯」(名從主人的專有名詞除外)、「操作系統/作业系统」等,那麼系統可能無法作出正確的轉換。如果為單純繁簡轉換較可能成功,但使用繁體打出簡體詞彙(或反之),則轉換通常註定失敗,尤其後者的情況基本上屬於繁簡破壞的一種。
說明
編輯建立一個公共轉換組時,要依據這一組大多數詞彙在多個條目中被轉換的可能性,而不應依據轉換詞彙的類別。比如,各國現任領導人的姓名轉換,存在複用的可能性非常低,就不應當建立這樣類別的公共組。
公共組轉換中的轉換內容可由普通用戶所控制,而它所影響到的範圍也沒有全域轉換這麼大。公共組轉換甚至可以用來填補在全域轉換中受限制的二字轉換。一個典型的例子是「數位=>数码」的轉換:對於全域轉換來說,在非電腦和資訊科技相關的條目中,「數位」的後側極有可能會搭配「人士」並組成「數位人士」一詞,這樣便會導致「数码人士」的過度轉換結果產生。然而,在電腦和資訊科技的公共組轉換中,所涉及到的條目大多是技術類型的條目,其中有許多本來就應該被轉換的「數位」詞語,同時,技術性的內容也導致「數位人士」的用法幾乎不會出現。
Lua版建立
編輯有機械人使用本專案頁
如欲移動、刪除或修改此專案頁而無法向下相容,並會影響機械人運作,請先通知機械人操作者,謝謝您。相關的機械人:User:cewbot/log/20191129/configuration |
你可以隨時建立公共轉換組。在應用noteTA模板時,如果需要的公共轉換組還不存在,直接在G1參數填寫這個轉換組名稱並儲存。應用該noteTA模板的頁面就會在轉換說明中自動出現一個提示,點擊提示中的連結並依照提示即可建立它。
也可以直接在下方填入組名後建立,但名稱不可以是doc、editintro、list與preload,然後就可以在noteTA模板組參數中使用了。
新組建立後,請順便添加到公共組的列表中。 新組建立後先以以下方式註明公共轉換組名稱:
-- 用法: Item('原文', '轉換規則')
local Item = require('Module:CGroup/core').Item;
return {
name = '(假設該頁叫 Module:CGroup/xxx 那此處就填入 xxx 以此類推)',
description = '(公共轉換組描述,若是從模板轉來的直接使用模板來的描述)',
content = {
接着在content = {
以下開始輸入字詞轉換規則。
每條字詞轉換規則的傳統寫法如下:
{ type = 'item', original = '原文', rule = 'zh-cn:大陆简体;zh-my:大马简体;zh-sg:新加坡简体;zh-tw:臺灣正體;zh-hk:香港繁體;zh-mo:澳門繁體;' },
其中original表示原文,rule為用於全文轉換的規則。兩者皆僅可用字串,否則會造成機械人無法辨識。
如果要加入額外的文字加以說明,可以另起一行輸入:
{ type = 'text', text = [=[
== 標題文字 ==
注解一
]=] },
--以上格式可避免與維基代碼 [[ ]] 發生衝突
--還可以在開頭使用兩個橫槓(--)來注解
--或是在每條轉換後使用兩個橫槓(--)來注解
--此處填入字詞轉換規則
{ type = 'item', original = '原文', rule = 'zh-cn:大陆简体;zh-my:大马简体;zh-sg新加坡简体;zh-tw:臺灣正體;zh-hk:香港繁體;zh-mo:澳門繁體;' }, -- 註解二
{ type = 'text', text = [[
注解二
]] },
另外,部分符號及維基代碼在模組中可能會被當成代碼解析而出錯,如遇此情況,可以考慮換成標準HTML代碼。
{ type = 'item', original = 'Hund's Rule' , rule = 'zh-cn:洪德规则; zh-tw:洪德定則;' },
{ type = 'item', original = '<i>Fortune</i>', rule = '財星=>zh-cn:财富;財星=>zh-hk:財富;財星=>zh-mo:財富;' },
也可以使用反斜線避免
{ type = 'item', original = 'Hund\'s Rule', rule = 'zh-cn:洪德规则; zh-tw:洪德定則;' },
{ type = 'item', original = '\'\'Fortune\'\'', rule = '財星=>zh-cn:财富;財星=>zh-hk:財富;財星=>zh-mo:財富;' },
結尾時須要輸入:
},
}
如果original、rule等屬性的內容包含單引號'而無"(雙引號),可以單獨將兩側的引號換成雙引號而避免使用難看、影響頁內尋找的反斜線。
如果需要,可以使用description(或簡寫desc)屬性向讀者提供該條規則的說明,說明會顯示在「NoteTA檢視器」小工具的提供內容中。不過因為路徑很深、不太常用,絕大多數讀者可能不會注意到,而對於編者,在公共轉換組原始碼中以Lua註解(--
開頭)表示可能是個好主意。
簡潔寫法
編輯基於2021年3月在Wikipedia:互助客棧/技術進行的討論,目前絕大多數公共轉換組已使用一個輔助函數(語法糖)簡化規則的內容,避免大量的重複定義影響原始碼版式和干擾閱讀。常用的輔助函數如下:
local Item = require('Module:CGroup/core').Item;
-- Item(o, r)
- o
- original,原文。僅可用字串,否則會造成機械人無法辨識。若無此屬性,應使用
nil
而非空字串(''
),空字串在Lua語言中的if陳述式判斷時為真,這會導致NoteTA檢視器顯示一個「原文:」。 - r
- rule,用於全文轉換的規則,必填。僅可用字串,否則會造成機械人無法辨識。
描述請用註解代替。
如有必要,您仍可在轉換組中使用上文提到的傳統寫法。
須注意因處理 Wikipedia:字詞轉換處理/公共轉換組/* 的cewbot採用JavaScript來解析lua,採用特殊語法將造成機械人無法辨識。
別名
編輯因為CGROUP名稱區分繁簡體、地區詞和大小寫,對於未建立的不同變體或大小寫,NoteTa會提示「尚未創建」,添加別名以方便在{{noteTA}}的參數中使用。
假設你已建立了一個名為XXX的公共轉換組,如果要建立別名YYY,只需要建立一個[[Module:CGroup/YYY]]的頁面,並輸入以下文字即可:
return require( 'Module:CGroup/XXX' );
別名建立後,在{{noteTA}}裏組參數呼叫別名與呼叫組名效果是一樣的。上例中{{noteTA|G1=YYY}}等同{{noteTA|G1=XXX}}。
可以使用正則表達式將原本條目裏面的noteTA快速取代成LUA格式,將[|][0-9]*[=]((.)*)\n
取代成{ type = 'item', rule = '$1', original = ' ' },
其中original留空白是給取代完成後填入原文的。然後將其填入公共轉換組裏面。
模板轉模組則是把{{Cl\|((.)*)}}
取代成{ type = 'item', rule = '$1', original = ' ' },
以及<noinclude>(.*)</noinclude>
取代成{ type = 'text', text = [=[$1]=] },
維護公共轉換組
編輯部分較舊和轉換數量少的公共轉換組仍使用模板的方式維護,以下僅供模板維護的參考。
- 注意:模板版使用mediawiki的頁巢狀原理實現,轉換組頁面命名空間為「Template」,並作為Template:CGroup的子頁;Lua版使用mediawiki的Lua模組實現,轉換組頁面命名空間為「Module」,並作為Module:CGroup的子頁。兩者並不相同,不可對調使用。
模板式轉換組在包含狀態下(移除noinclude,包括includeonly)應使用以下代碼:
- 第一行為{{CGroupH}}模板,其name參數為轉換組的頁面名(CGroup/後的部分),desc參數為轉換組名字(顯示用)。
- 隨後每行有且僅有一個{{CItemHidden}}或其他等效模板,如{{CItem}}(目前重新導向到{{CItemHidden}})、{{CItemLan}}等,描述一條轉換規則,其間不應有多餘的文字或空行。
- 最後以{{CGroupF}}結束。
所有不需顯示的輔助資訊,如參考分章節等,請使用<noinclude></noinclude>包裹。
Wikipedia:字詞轉換處理/公共轉換組/各頁面包含字詞
- 應可經過整合以減少重複的詞彙:Wikipedia:字詞轉換處理/公共轉換組/重複字詞報告