Agent Skills
返回列表
💻

PO 文件翻译器(中文版)

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_00c9b356/chenlin-po-translator-zh。

技能介绍

要解决的问题

gettext 的 .po 文件同时承载两样东西:待翻译的源文本,和程序运行时依赖的骨架。msgctxt、flags 决定条目如何被解析,%s、%1$s、{name} 这些占位符会被代码在运行时填充。翻译时一旦动了它们,轻则界面直接显示成 %s,重则抛出 IndexError 崩在用户面前。传统做法是给模型套一层 XML 批处理索引、把文件切成小块省 token,代价是切片边界一旦落到多行字符串中间,条目就废了。这个技能反其道而行:整份 .po 直接读进去,不做索引。

核心能力

  • 只动译文:产出 msgstr,msgid、msgctxt、注释与 flags 一律原样保留。
  • 占位符校验:译完逐条核对两侧占位符的种类与数量必须一致,对不上就停下该条并回显差异。
  • 术语表硬约束:给定术语表时,表内译法优先级高于自由翻译,同一概念全文统一。
  • 上下文消歧:用 msgctxt 区分同名不同义的词条。
  • fuzzy 保守处理:保留 #, fuzzy 标记不静默删除,仅在用户明确要求时移除。
  • 条目不增不减:不合并、不拆分、不省略。

关键步骤

  1. 识别输入:贴入文本直接解析,给路径就用 Read 读入。
  2. 加载术语表(如有)。
  3. 逐条翻译,遇 msgctxt 消歧,遇 fuzzy 走保守路由。
  4. 占位符校验。
  5. 输出完整 .po 文本,用户要求写回时用 Edit/Write 落盘。

中文 UI 的本地化差异

  • 简洁优先:按钮和菜单常用 2–4 字,不用「请对文件进行保存」这类啰嗦译法。
  • 标点本地化:用全角标点,但菜单项和按钮末尾通常不加句号,标题与提示句才加。
  • 语气中性友好:Cannot → 「无法」而非「不能」,Failed to → 「未能」而非「失败于」。
  • %s 周围去空格:与英文源最大的差异点,也是机器翻译最常翻车处。File %s saved → 文件%s已保存,去掉空格但保留 %s 本身。

适用边界

  • 只做 .po 翻译,写代码、改架构、跑测试这类越界请求会被礼貌拒绝。
  • 默认目标语言为中文,仅在本轮明确指定时切换。
  • 非 UTF-8 或出现乱码的文件不强行翻译,先请求确认编码。
  • 超过 200 条的大文件分批处理,单批失败只重跑该批,单条异常标记 fuzzy 后继续。

使用场景

  • 接手英文开源项目,需要把 .po 里所有空的 msgstr 补成中文
  • 上游仓库新增一批英文字符串,要为 .po 新条目补上中文译文
  • 同一词条 Open 在菜单和正文中含义不同,需按 msgctxt 分别确定译法
  • 团队提供统一术语表,要求全文中同一术语必须使用表内指定译法

适合人员

  • 独立开源开发者,需要给自己的工具补上中文本地化
  • 维护多语言 CLI 或桌面工具的开发者,定期处理 .po 新增条目
  • 本地化团队翻译工程师,需要守住术语一致性与占位符安全