SuperAPI AI 工具集

fill-translations

写作与研究

查看项目

更新于 10-15 23:44

技能介绍

用途:维护 Karakeep Web 应用的多语言翻译。字符串位于 apps/web/lib/i18n/locales/<locale>/translation.json,采用嵌套 i18next JSON,en 为唯一基准。新功能通常只往 en 加键,其他语言会逐渐落后。

主要能力:目录中的 i18n.mjs 将每个 locale 与 en 对比,报告三类问题——MISSING(en 有而 locale 缺失或为空)、OUTDATED(en 值在 locale 上次翻译后发生变化,依据两文件的 git 历史与工作区判断,可捕获未提交的 en 修改)、OBSOLETE(locale 有但 en 已无,通常是删除或改名)。复数遵循 i18next 的 _one/_other 后缀,并按 Intl.PluralRules 的 CLDR 类别要求各语言形式,如阿拉伯语需 _zero/_one/_two/_few/_many/_other,日语只需 _other。

使用方式:在仓库根目录运行 node .agents/skills/fill-translations/i18n.mjs report 查看汇总与详情,可用 --locales de,fr 限定语言,--json 输出机器可读结果。翻译时把每个 locale 的 "dotted.key": "translation" 扁平 JSON 写到 $TMPDIR,例如 $TMPDIR/i18n-de.json,覆盖所有 MISSING 与 OUTDATED 键;约 30 个 locale,可拆分给并行子代理。规则:以当前 en 值为准,复用该 locale 已有术语、正式程度与大小写风格;保留 {{placeholders}} 与 <1>…</1> 等编号标签结构(标签内内容需翻译);产品名 Karakeep、快捷键与技术词(URL、API、RSS、OAuth)不译;标点风格与 en 一致;OUTDATED 键必须写入值,即使只改标点;复数组按各语言语法填写每个缺失形式;en_US 复制 en 值并用美式拼写;zhtw 为繁体中文,zh 为简体中文,nb_NO 为挪威博克马尔语;OBSOLETE 键若为改名且含义未变,可复用旧译文。应用命令:node .agents/skills/fill-translations/i18n.mjs apply de $TMPDIR/i18n-de.json --prune,apply 会把新键插到对应 en 兄弟键旁并按仓库格式(2 空格 JSON、末尾换行)写回,--prune 删除 OBSOLETE 键,删除前需确认键确实未被使用,可 grep apps/web 检查。验证:再次运行 report 并执行 git diff --stat apps/web/lib/i18n/locales,目标为各 locale 0 missing、0 obsolete,仅保留有意不改的 OUTDATED;检查是否有未翻译的复制键与占位符损坏,可用资料中给出的 node 脚本列出占位符不匹配项(跳过 _zero/_one)。提交使用 i18n: 前缀,如 i18n: fill missing translations。

限制:仅适用于该仓库的 i18n 目录结构与 i18next 格式;动态拼接的键需以 en 为参照判断;资料未提供其他平台或收费信息。