Template:Tc

来自Terraria Wiki
跳转至: 导航搜索
Template-info.svg 文档 以下文档内容来自模板:Tc/doc。 (edit | history)
Warning-Logo.png

该模本是中文wiki的基础模板之一,被嵌入到 几乎所有 模板和页面中,修改时一定要极其小心

模板简述

该模板以标准译名数据库为基准提供自动翻译功能,使各类名词的翻译能够统一处理。 同时,为{{item link}}、{{il2l}}、{{il2c}}、{{Npc infobox}}等大量模板提供透明自动翻译支持。

模板以标准匹配为基础,配合一些变体情况处理,尽可能在使用中提供合理的灵活度。

模板的已经过仔细的性能优化,单个页面内使用上万次不会引发问题,可以放心使用。

如何使用

常规用法:

{{Tc|英文}}

例:

输入 输出
{{Tc|Copper Shortsword}} 铜短剑
{{Tc|Banners (Enemy)}} 敌怪旗

针对页面标题,将英文wiki标题转为中文: {{Tc|英文|pagename=yes}}

由于英文翻译为中文时有多词同译的情况,可能导致两个英文页面标题翻译为同样的中文,此时需要额外进行消冲突处理,此用法即用于处理此种情况。 例如,英文 wiki 中同时有 MushroomsMushroom 两个页面,但是直接翻译中文均为“蘑菇”,因此需要将其中之一加后缀做消冲突处理:

输入 输出
{{Tc|Mushroom}} 蘑菇
{{Tc|Mushrooms}} 蘑菇
{{Tc|Mushroom|pagename=yes}} 蘑菇(物品)
{{Tc|Mushrooms|pagename=yes}} 蘑菇

当{{Tc}}的结果是用于链接至其他页面时应当考虑使用此参数。

处理流程

匹配按照以下流程处理:

  1. 首先尝试进行精确匹配(按大小写不敏感方式),如果词库中存在完全匹配,则直接使用相应词条。如果指定了 pagename=yes,在这一步还会额外套用标题消冲突数据库进行必要的额外消冲突处理。
  2. 若上一步没成功,则检查前面是否有 the/a/an 冠词,如果有,话则将冠词脱掉后再次尝试进行精确匹配(不再考虑标题消冲突问题),如果依然未能匹配成功,将脱冠词后的版本做为待译文本进入后继流程。
  3. 若上一步没成功,尝试判定是否为复数形式,转为单数形式之后再次尝试匹配(按照 -s -es -ies 的顺序进行匹配和处理,-ies会自动处理为-y。其他一些不规则复数不做处理,需要直接进入标准词库。
  4. 若上一步仍未成功,进行后缀判定,尝试将词条的最后一个单词视为后缀,拆分为 主内容+后缀 的格式,主内容套用标准数据库,后缀套用后缀数据库,二者同时有翻译时生效。例如 Surface (Biome) 会处理为 地表(生物群落),Buggy Head 会处理为 蚜虫头部。允许后面再跟上一个数字,例如 Buggy Head 2 处理为 蚜虫头部2, Buggy 2 处理为 蚜虫2
  5. 若还未成功,尝试进行前缀判定,将第一个单词视为前缀,拆分为 前缀+主词条,主内容套用标准数据库,前缀套用前缀数据库。主要进行某些极为常用的形容词/副词前缀判定。某些待翻译内容可能同时符合上一条和本条的判定,此时以上一条优先。
  6. 以上全部尝试失败则原样(依照传入的参数,包括大小写等均为原样)返回。

注意事项:

  • 所有匹配都是按大小写不敏感方式进行。
    • 但如果翻译失败是按输入的大小写返回的。基于种种考虑,调用时参数请尽可能使用正确合理的大小写。
  • 除了脱冠词处理外,后继的各种扩展处理不会互相叠加。
  • 需要注意 -f 的复数(-ves)视为不规则复数,不会自动处理,需要直接加入标准词库。例如 werewolf(werewolves) 和 leaf(leaves)。这主要是因为-ves还可能是-fe的复数,另外部分是基于性能的考量。
  • 特定词条可能适配多种扩展处理,例如 Basic Block,既能视为 basic+后缀block,也能视为 前缀basic+block,此类情况按以上处理顺序先生效的为准。
  • 由于脱冠词处理先于后继扩展处理进行,个别情况下,词条可能在经过 脱冠词+扩展处理 之后命中匹配,但结果却并非预期。例如,The Corruptions(The Corruption的复数)预期结果为“腐化之地”,但依据处理流程会被先脱冠词再处理复数而以Corruption进行匹配,得到“腐化”。但此类情况总是可以通过将词条和正确翻译直接加入标准翻译词库来解决。

例子:

变体自动处理

输入 输出 备注
{{Tc|Copper Shortsword}} 铜短剑 直接精确匹配成功
{{Tc|a Book}} 词库中只有 Book 词条,脱冠词后匹配成功
{{Tc|Books}} 词库中只有 Book 词条,自动复数处理成功(-s)
{{Tc|Thorny Bushes}} 多刺灌木 词库中只有 Thorny Bush 词条,自动复数处理成功(-es)
{{Tc|Butterflies}} 蝴蝶 词库中只有 Butterfly 词条,自动复数处理成功(-ies)
{{Tc|the Butterflies}} 蝴蝶 脱冠词+自动复数处理双重生效
{{Tc|Buggy Body}} 蚜虫身体 后缀处理成功,自动拆分为主词条 Buggy 与后缀 Body 分别处理
{{Tc| Surface (Biome) }} 地表(生物群落) 后缀处理成功,拆分为主词条 Surface 与后缀 (Biome) 分别套用翻译。
{{Tc| Snow (Underground) }} Snow (Underground) 后缀处理不成功:拆分为主词条 Snow 与后缀 (Underground) 分别处理,而扩展库中没有 (Underground)。
{{Tc|Buggy 2}} 蚜虫2 后面带数字:自动拆分为主词条 Buggy 与 数字编号 2 分别处理
{{Tc|Phantasm Dragon Body 4 }} 幻影弓龙身体4 后缀同时带数字:自动拆分为主词条 Phantasm Dragon 与后缀 Body 加上数字编号 4 分别处理
{{Tc|Basic Weapon}} 基本武器 前缀处理:拆分为前缀 basic 和主词条 Weapon 分别判定处理。
{{Tc|Basic Buggy Body}} Basic Buggy Body 各种扩展处理不会互相叠加,此例需要 后缀处理+前缀处理。
{{Tc|Basic Buggies}} Basic Buggies 各种扩展处理不会互相叠加,此例需要 复数处理+前缀处理。
{{Tc|Basic Block}} 基本物块 前后缀均有定义的情况下,优先匹配后缀。

添加临时词条定义

有时在单个页面上有一些词汇反复出现,但因为种种原因主词条库不包含此词汇。此时可以用在页面上定义临时词条:

{{Tc/define|英文原文(大小写不敏感)|中文翻译(大小写敏感)}}

定义之后即可在tc中正常使用此词条。

注意:

  • 英文原文参数无视大小写。中文参数则会按输入的样子原样呈现。
  • 临时词条定义如果和主数据库重复,则不会覆盖主数据库定义。这是为了保持主数据库翻译的权威性,也便于后继扩充升级。
    • 临时词条如果互相重复,也遵循不覆盖原则,先定义的有效。
  • 临时词条定义也套用附加处理。
  • 临时词条定义仅限于单个页面内部有效,自定义之处开始,到页面结束。所谓“单个页面”指的是“根页面”,即访问的url所对应的那个页面。如果在一个模板中定义了临时词条,那么调用此模板的页面中在模板之后此临时词条依然有效。

例,以下代码序列及结果:

临时词条定义

输入(按顺序) 输出(按顺序) 备注
{{Tc|keke}} keke 此词条此时尚无无定义
{{Tc/define|keke|蛤蛤}} 定义临时词条,无可见输出
{{Tc|keke}} 蛤蛤 定义后此词条即可使用
{{Tc|the keke block}} 蛤蛤块 也可以正常套用额外扩展处理
{{Tc/define|keke|克克}} 重复定义,也无可见输出
{{Tc|keke}} 蛤蛤 重复定义无效
{{Tc|Book}} 主词条数据库有定义
{{Tc/define|book|书本}} 重复定义,无可见输出
{{Tc|Book}} 重复定义无效

翻译表维护

对照数据存放于模板Tc/db中,有新的翻译增加条目即可(注意英文需要为小写)。

条目重复定义不会出错(但会增加不必要的负载)。注意:在db内部如果出现重复定义,后定义的覆盖先定义的,这和后继添加临时定义不一样。