术语表编写指南

感谢您为 AO3 汉化插件编写术语表!
一份精心编撰的术语表可以极大地提升 AI 翻译的准确性和一致性。为了让脚本能够正确解析和使用您创建的术语表,请遵循以下格式和编写规范。

一、文件基本格式

  1. 文件类型:必须是纯文本文件,推荐使用 .txt 后缀。
  2. 文件编码:必须使用 UTF-8 编码。
  3. 结构:一个在线术语表文件由多个主要部分组成,包括:元数据区词条通用词条禁翻词条正则表达式
  4. 注释:以 // 开头的行将被脚本忽略,可用于添加说明、整理分类词条等。

二、元数据区

这部分位于文件开头,用于描述术语表的基本信息。

  • 格式:每条信息占一行,格式为 键:值
  • 必填字段
    • 版本号必须提供。用于版本控制。当您更新词条后,请务必提升版本号(例如从 1.0.0 改为 1.0.1),这样脚本才能检测到更新。
    • 维护者:术语表的创建者或维护者的名称。
  • 可选字段
    • 更新时间:最后一次修改的日期。

示例

// 元数据区
版本号:1.0.1
维护者:V-Lipset
更新时间:2025-09-22

三、翻译词条区

这是用于定义翻译规则的核心部分,分为两个区域以适应不同需求。区域之间必须由 词条通用词条 这样的标题行分隔。

1. 词条

  • 用途:用于定义需要严格区分大小写的词汇。非常适合人名、专有缩写、品牌等大小写具有特定含义的词。
  • 规则:脚本只会匹配与原文大小写完全一致的词。例如,定义 Hypatia 不会匹配到 hypatia
  • 示例Hypatia:伊帕希娅

2. 通用词条

  • 用途:用于定义不区分大小写的通用词汇或概念。
  • 规则:脚本会匹配该词的所有大小写形式。例如,定义 Hypercube 会同时匹配 HypercubehypercubeHyPerCube,和 HYPERCUBE
  • 示例Hypercube:异方晶

3. 多词条关联定义

此定义方式可以在 词条通用词条 两个区域内使用,其大小写敏感性取决于它所在的区域。

  • 格式原文部分1 原文部分2 = 译文部分1 译文部分2
  • 核心规则:使用 = 作为分隔符;原文和译文的部分数量必须完全一致,并用空格隔开。
  • 自动处理:脚本会自动识别所有词序组合(统一翻译为指定译文),并分别翻译其组成部分。
  • 示例1:在 词条 区定义 Wakaba Mutsumi = 若叶 睦,脚本会自动生成以下区分大小写的规则:
    • Wakaba Mutsumi若叶睦
    • Mutsumi Wakaba若叶睦(自动处理词序,输出结果不变)
    • Wakaba若叶
    • Mutsumi
  • 示例2:在 词条 区定义 Elvira Stewart = 艾尔维拉·斯图尔特,脚本会自动生成以下区分大小写的规则:
    • Elvira Stewart艾尔维拉·斯图尔特
    • Stewart Elvira艾尔维拉·斯图尔特(自动处理词序,输出结果不变)
    • Elvira艾尔维拉
    • Stewart斯图尔特

四、禁翻词条区

这是一个独立的区域,用于列出您希望在AI翻译过程中 保持原文、不被翻译 的词汇。

  • 标记:使用 禁翻词条 作为区域标题。
  • 格式:每行一个词条,或用逗号分隔多个词条。
  • 规则:此区域的词条匹配是 区分大小写 的,以提供最精确的保护。

五、正则表达式区

在此区域下,可使用正则表达式定义复杂的查找和替换规则,为处理特定模式的文本提供了极大的灵活性。

  • 标记:使用 正则表达式 作为区域标题。
  • 格式正则表达式: 替换后的文本
  • 规则:脚本将直接使用您提供的正则表达式模式进行全局匹配和替换。
  • 示例Wachm(a|ä)nn(er)?: 守卫
    • Wachmnn:匹配固定的部分。
    • (a|ä):使用 |来匹配单数形式的 a 或复数形式的 ä
    • (er)?:使用 ?来匹配复数形式中可能出现的后缀 er
    • 通过这一条规则,脚本就能准确匹配 WachmannWachmänner,并将它们统一翻译为守卫
  • 警告:正则表达式功能非常强大,但也极具风险。一个编写不当的表达式可能会严重影响浏览器性能,甚至导致页面卡死。请仅在您完全理解正则表达式并经过充分测试后才使用此功能。

六、通用规则

  • 复数自动处理:所有词条都能自动匹配其常见复数形式(-s-es-ies)。
  • 分隔符灵活匹配:如果定义了一个包含空格的词条(例如 Dis City),将能自动匹配 Dis CityDis-City。反之亦然。
  • 注意:以上 2 条通用规则均不作用于正则表达式区。

七、完整文件示例

下面是一个完整的 .txt 术语表文件示例,展示了所有功能:

版本号:1.0.1
维护者:V-Lipset
更新时间:2025-09-22

// 编写时,请至少包含“词条”、“通用词条”、“禁翻词条”、“正则表达式”这 4 个部分中的 1 个

词条
// 此区域区分大小写,用于翻译人名等专有名词
Wakaba Mutsumi = 若叶 睦
Elvira Stewart = 艾尔维拉·斯图尔特
Hypatia:伊帕希娅
Dis City:狄斯城

通用词条
// 此区域不区分大小写,用于翻译通用概念
Hypercube:异方晶
Sinner:禁闭者

禁翻词条
// 此区域区分大小写,用于保持原文
EDGE
HUSH

正则表达式
// 匹配德语中 "Wachmann" 的单数和复数形式
Wachm(a|ä)nn(er)?: 守卫

八、优先级与最佳实践

  1. 功能分层与对比: 本地设置与在线术语表在功能上有所不同,以满足从快速配置到精细控制的不同需求。

    功能/规则本地设置在线术语表大小写敏感性
    词条支持支持区分大小写
    通用词条不支持支持不区分大小写
    禁翻词条支持支持区分大小写
    正则表达式不支持支持\
    :=规则支持支持\
    复数自动处理支持支持\
    分隔符灵活匹配支持支持\
  2. 优先级顺序

    • 本地禁翻词条>本地翻译词条>在线禁翻词条>在线翻译词条>在线通用词条 > 在线正则表达式。
    • 后导入的在线术语表>先导入的在线术语表。
  3. 长词优先:在同一优先级层级内,脚本会自动优先匹配更长的词条。例如,如果您同时定义了 DisDis City,脚本在遇到 Dis City 时会优先匹配后者。

  4. 版本管理:每次更新在线术语表后,请务必提升 版本号 字段。这是脚本判断是否需要下载更新的关键。