Lightweight browser-based CAT tool — translation memory + termbase + fuzzy matching, zero dependencies, data never leaves your machine.
一个给自己用的"迷你 Trados / memoQ":导入已有的试译内容与术语表,建立翻译记忆库;新翻译的内容自动匹配记忆库与术语库。专为 10 万字以内的个人翻译项目设计(当前项目约 3.5 万字,个人部分约 1.2 万字)。
🔗 在线使用(零后端,数据不出浏览器):https://tanyaqiongcode.github.io/mini-cat/
| Trados / memoQ | MateCat / Weblate | Mini-CAT | |
|---|---|---|---|
| 安装 | 重型桌面软件 | 需自建服务器(PHP/MySQL、Django) | 双击网页即用 |
| 数据 | 本地/云 | 上传到服务器 | 全在本机浏览器(IndexedDB) |
| 适用规模 | 大型项目 | 持续本地化 | ≤10 万字个人项目 |
| 费用 | 商业授权 | 开源但运维成本 | 零依赖、零成本 |
对未出版书稿的翻译来说,"内容不出本机"是硬需求——Mini-CAT 没有任何后端,全部逻辑与数据都在浏览器里;只有可选的"联网查阅"(发送查询关键词)和端侧 MT(浏览器可能下载语言模型,文本不上传)会产生网络请求,不使用这两项时不发出任何网络请求。
- 记忆库(TM):导入 TMX 1.4 / docx 对照表 / xlsx 双语表 / CSV / TSV / JSONL / 双栏粘贴(自动段落对齐);导出 TMX / CSV / JSONL,可回流 Trados、memoQ 或语料库仓库
- ICE 101% 上下文匹配:前一句也精确命中时升级为 101% 并优先自动填入(memoQ/Trados 惯例)
- 端侧 MT 建议(实验):Chrome 138+ 内置翻译 API,模型在本机运行、文本不上传;不支持的浏览器自动隐藏按钮
- 术语库(TB):导入 xlsx / TBX-Basic / CSV / TSV(自动识别"中文术语/最终译法"等列);译文写作时在原文中高亮命中术语,悬停显示译法与定义;导出 TBX / CSV
- Word 文档直接导入:单语 docx(如翻译底本)自动提取段落切分;双语 docx 支持左右对照表格、段落交替、先中后英三种结构(自动检测 + 手动指定)
- 审校留痕(多人协作,多轮修订):修订历史(V1→V2→V2.1→V3…含作者与日期)、导入修订(审校人用 Word 修订模式改稿后回传,工具自动识别修订人与日期——来自 w:ins/w:del 署名,兜底读文件属性;导师/专家的 Word 批注自动导入批注模块);导出 Word 原生修订模式 + Word 批注 + 修订对照表(xlsx/csv)——审校过程完整可追溯
- 联网术语查阅:侧栏输入关键词,自动聚合中文/英文/日文维基百科(带精确/相关性分级)、大都会艺术博物馆藏名(馆方高亮优先)、Internet Archive 书目;一键直达 Google(全部/图片/Books/Scholar)、术语在线(全国科技名词委)、故宫数字文物库、近代文献人名辞典等权威库。任何候选译名都须经人工点击"设为英文译法"才写入术语库(自动标注来源与日期)——依据国社科申报要求,工具不自动生成译文
- 自动匹配:新原文按句切分后自动匹配——100% 精确匹配直接填入译文,模糊匹配(95–99 / 75–94 / 50–74%)在候选面板中一键采用
- 语料检索(Concordance):在全部记忆库中按关键词检索中英对照用例
- 译后自动入库:段落确认后自动写入记忆库(memoQ 式自动学习),重复句对自动去重
- 交付导出(范围可选):纯译文(按原文段落自动重建,docx/txt)、中英对照·段落式(docx,中文段+斜体英文段)、句句对照表格(docx/xlsx/csv,「序号|中文|英文」三列,与项目交付件同款)——另附双语 HTML 对照表
- 项目统计:段落进度、中英字/词数、匹配率分布(101/100/95-99/模糊/无)——写翻译实践报告时的过程数据直接可用
- 多项目:按项目隔离记忆库与术语库;JSON 全量备份/恢复,拖拽 .json 到页面即可恢复,超过 7 天未备份自动提醒
方式一(最简单):下载本仓库,双击 index.html。
方式二(GitHub Pages,推荐):直接访问 https://tanyaqiongcode.github.io/mini-cat/——本仓库已开启 Pages,点开即用。fork 后请在 Settings → Pages 选 main 分支根目录自行开启。
方式三(本地服务器):
python3 -m http.server 8765
# 打开 http://127.0.0.1:8765第一次使用:① 导入记忆库(可直接用 sample/sample_tm.tmx 体验)→ ② 导入术语库(sample/sample_termbase.csv)→ ③ 导入原文(粘贴中文即可)→ 开始翻译。确认段落时译文自动入库。
本工具按该语料库仓库的文件格式设计:corpus/parallel/porcelain_zh_en.tmx|csv|jsonl 直接导入记忆库,termbase/porcelain_termbase.csv|tbx 直接导入术语库(自动取"2026最终译法",空缺回退"2025英文译法");导出的 TMX/JSONL/TBX 可直接回流仓库。
借鉴 OmegaT(编辑距离相似度)与 MateCat(匹配分级)的通行做法:
- 归一化:全半角统一、空白折叠、大小写归一;中文再去空格
- 候选海选:字符 bigram 倒排索引,按共享比例取前 120 条(避免全库两两比对)
- 粗筛:长度比 < 0.34 或 bigram Dice 系数 < 0.18 直接排除
- 精算:有界 Levenshtein 归一化编辑距离(提前放弃),标点差异轻罚
- 分级:100%(精确)/ 95–99 / 75–94 / 50–74(模糊)/ 无
实测规模:4,000 条记忆 × 400 段新原文 ≈ 2 秒(见 tests/bench.js)。ICE(101%)判定:记忆条目记录前一句语境(prevNorm),新段落的前文与其一致时,精确匹配升级为 101% 并优先自动填入。
- 无后端、无账号、无埋点;翻译数据(记忆库/术语库/句段/批注/修订历史)仅存于本机浏览器 IndexedDB
- "联网查阅"功能会向维基百科(zh/en/ja)、Met Museum、Internet Archive 发送查询关键词,不发送句段、译文或记忆库内容;端侧 MT 由浏览器在本机翻译,首次使用时浏览器可能联网下载语言模型(不上传文本);其余功能无网络请求
- 清除浏览器数据会删除记忆库——定期用「备份」导出 JSON(工具在超过 7 天未备份时会提醒)
- 备份 JSON 含全部翻译记忆与术语,请视为敏感数据妥善保管;恢复时与现有数据合并去重,外来记录 ID 一律丢弃、结构经消毒校验(防跨库覆盖与注入)
- 换电脑/换浏览器:备份 JSON 拖拽进页面即完成迁移
句段上方的「拆分句对」可把一条中英句对拆成两条:分别在原文、译文的只读文本框内点击拆分位置,核对两条预览后确认。原文两侧都须有内容;译文可以在开头或末尾拆分,把完整译文暂留在其中一侧,另一侧待补译。不会按字符比例猜测双语边界。
「与下一句合并」合并工作区中实际相邻的两条句对(不是筛选后显示的下一条),提交前可核对预览。默认保留已有空白,同段中文直接相接、英文用空格连接,跨段落保留换行;也可选择直接相接。由同一次拆分产生的相邻两半重新合并时,默认精确保留原字符串。
两种操作都保留译文局部格式并自动保存,调整后的句对需要重新确认。旧修订与批注保存在「调整前记录」,不会错误归属于新的句对;JSON 备份也保留这些记录。调整不删除或改写记忆库里的旧条目,需另行审查过时的记忆。历史档案每条句对最多 100 份,超限时阻止操作而不是截断。
顶部「撤销句对调整」保留本次会话最近 20 次调整。刷新或切换项目后撤销栈清空;调整后若已有其他编辑,会阻止覆盖式撤销以保护新内容。正式处理前仍建议导出备份。普通交付与修订导出使用当前句对;完整调整前档案仅在页面查看和 JSON 备份中保留。
在译文中选中文字,用句段上方工具栏设置加粗、斜体、下划线、上标、下标或清除格式。快捷键为 Ctrl/Cmd+B、I、U;Ctrl/Cmd+Z 撤销,Ctrl/Cmd+Shift+Z 重做。格式自动保存,备份 JSON 保留格式;既有纯文本项目无需迁移。外部粘贴按纯文本处理,避免导入不可信 HTML。
纯译文 DOCX、中英对照 DOCX、句句对照 DOCX 和 HTML 交付件保留格式。TXT、CSV、XLSX 和翻译记忆数据仍使用纯文本。带格式的修订痕迹以整段删除/插入保留前后版本的格式,不将格式修改伪装成逐词文字差异。
打开侧栏「术语库」→「扫描句段,提取候选术语」。工具在本机扫描当前项目全部已有译文的中英句段(至少 3 对),使用 n-gram、C-value/PMI 和共现投票产生候选,最多展示排名前 300 条、每页 50 条。未译句段跳过,已有术语排除。统计译名可能错误,必须结合例句修改并逐条勾选后才入库;不会自动确认任何候选。确定后的术语随原有 CSV/TBX 导出,也随项目备份保存。可导出 candidates.json 与 decisions.json 留存复核记录。
提取器无需 API 密钥、不上传语料、无付费服务。小语料或单次出现的词可能没有统计译名,不会编造;对于错误候选取消勾选即可。扫描在独立 Worker 中进行,超时 60 秒终止;单句超过 2 万字符、总计超过 200 万字符时要求拆分,避免卡住编辑器。
统计引擎复用 bilingual-term-extract(MIT,版权声明包含在 js/term-engine.js)。需要更新引擎时运行 node scripts/bundle-term-engine.cjs <该工具源码目录>;用户复核替代自动 LLM 精筛。格式数据只保存允许的文本标记,不保存任意 HTML。
运行时零依赖、无构建步骤;开发测试使用 Node.js 20+、linkedom 与 Playwright:
npm ci
npm test # 所有单元测试与规模基准
npx playwright install chromium
npm run test:browser # 隔离浏览器与 IndexedDB,不读取个人浏览器资料架构与设计取舍见 docs/architecture.md。
修订导入时,相同原文按文件内出现顺序对应工作区内出现顺序。请保持同文段落的顺序,且包含该原文的全部重复段落;数量不一致会拒绝导入,不能可靠判断的局部修订不会自动覆盖首段。Word 批注跟随所在行匹配。
- .xls(旧二进制格式)不支持,请另存为 .xlsx;旧版浏览器(无 DecompressionStream)读取 docx/xlsx 需 Chrome/Edge 80+、Safari 16.4+
- 端侧 MT 建议仅在 Chrome 138+ 且本机有 zh→en 语言包时可用,其他浏览器自动隐藏(不影响其余功能)
- 数据存于浏览器 IndexedDB:换电脑或换浏览器用「备份」导出 JSON,在新机器拖拽进页面即完成迁移
MIT License.
