维基百科:字词转换处理/公共转换组

字词转换
主页 讨论
转换请求
错误修复请求
地区词候选
转换介绍
字词转换处理 讨论
  繁简处理 讨论
  地区词处理 讨论
  公共转换组 讨论
帮助文档
繁简与地区词处理 讨论
  转换原理 讨论
  手工转换 讨论
  高级语法 讨论
  用字模式选择说明
相关模板
NoteTA 全文字词转换
CGroup 公共转换组列表
Lan 界面文字转换
地区用词 地区词模板
地区用词2 高级地区词模板
各地中文名 地区用词信息框
查看 - 讨论 - 编辑 - 变动

对于一些主题、领域相同和相似的条目,其中需要被转换的内容是大同小异的,可以把这些多个条目中要用到的共同转换字词单独创建一个转换组。通过在页面的{{NoteTA}}模板中指定组名,实现该页应用这一公共组的地区词转换,所有应用该公共转换组的页面都可以不用单独维护,实现同步维护的目的。公共转换组的方便程度处于全局转换与全文转换之间,而过度转换程度也处于这两者之间。

必须注意的是,使用公共转换组时应避免繁简混杂、或以繁/简体打出简/繁体用词,例如“朝鮮/北韩”(此处特指平壤政权)、“視頻/视讯”(名从主人的专有名词除外)、“操作系統/作业系统”等,那么系统可能无法作出正确的转换。如果为单纯繁简转换较可能成功,但使用繁体打出简体词汇(或反之),则转换通常注定失败,尤其后者的情况基本上属于繁简破坏的一种。

说明

编辑

创建一个公共转换组时,要依据这一组大多数词汇在多个条目中被转换的可能性,而不应依据转换词汇的类别。比如,各国现任领导人的姓名转换,存在复用的可能性非常低,就不应当创建这样类别的公共组。

公共组转换中的转换内容可由普通用户所控制,而它所影响到的范围也没有全局转换这么大。公共组转换甚至可以用来填补在全局转换中受限制的二字转换。一个典型的例子是“數位=>数码”的转换:对于全局转换来说,在非电脑和信息技术相关的条目中,“數位”的后侧极有可能会搭配“人士”并组成“數位人士”一词,这样便会导致“数码人士”的过度转换结果产生。然而,在电脑和信息技术的公共组转换中,所涉及到的条目大多是技术类型的条目,其中有许多本来就应该被转换的“數位”词语,同时,技术性的内容也导致“數位人士”的用法几乎不会出现。

Lua版创建

编辑

你可以随时创建公共转换组。在应用noteTA模板时,如果需要的公共转换组还不存在,直接在G1参数填写这个转换组名称并保存。应用该noteTA模板的页面就会在转换说明中自动出现一个提示,点击提示中的链接并依照提示即可创建它。

也可以直接在下方填入组名后创建,但名称不可以是doceditintrolistpreload,然后就可以在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:字词转换处理/公共转换组/各页面包含字词

转换组名单

编辑