维基百科:字词转换处理/公共转换组
| ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
|
对于一些主题、领域相同和相似的条目,其中需要被转换的内容是大同小异的,可以把这些多个条目中要用到的共同转换字词单独创建一个转换组。通过在页面的{{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:字词转换处理/公共转换组/重复字词报告