维基百科:字詞轉換處理/公共轉換組
| ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
|
对于一些主题、领域相同和相似的条目,其中需要被转换的内容是大同小异的,可以把這些多个条目中要用到的共同轉換字詞單獨建立一個轉換組。通过在页面的{{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:字詞轉換處理/公共轉換組/重複字詞報告