维基百科:字詞轉換處理/公共轉換組

本页使用了标题或全文手工转换
维基百科,自由的百科全书
字词转换
主页 讨论
轉換請求
错误修复请求
地区词候选
轉換介紹
字詞轉換處理 讨论
  繁简处理 讨论
  地区词处理 讨论
  公共轉換組 讨论
帮助文档
繁简与地区词处理 讨论
  转换原理 讨论
  手工轉換 讨论
  高级语法 讨论
  显示模式选择说明
相關模板
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:字詞轉換處理/公共轉換組/各頁面包含字詞

转换组名单