
翻译 PO 文件而不丢失复数形式
msgid 保持不变,每种语言的复数形式都准确无误,注释得到保留。让 gettext 工作流更快完成。
普通 PO 翻译工具忽略了 PO 的独特之处
PO 文件不只是键值对。它包含因语言而异的复数形式、用于消除歧义的消息上下文、译员注释和源文件引用。大多数翻译工具却只把它当作扁平文本文件。
不同语言的 nplurals 和复数公式不同,通用工具会使用错误的复数数量
用于消除歧义的 msgctxt 上下文会被忽略或翻译
译员注释(#.)和源文件引用(#:)会被删除
字符编码请求头和 PO 元数据会被损坏
源文件(英语)
messages.pot
#: src/components/Cart.tsx:42
#. Translator: shown when cart is empty
msgid "Your cart is empty"
msgstr ""
#: src/components/Cart.tsx:55
msgid "item"
msgid_plural "items"
msgstr[0] ""
msgstr[1] ""
#: src/components/Auth.tsx:12
msgctxt "button"
msgid "Sign in"
msgstr ""译文(西班牙语)
es/LC_MESSAGES/messages.po
#: src/components/Cart.tsx:42
#. Translator: shown when cart is empty
msgid "Your cart is empty"
msgstr "Tu carrito está vacío"
#: src/components/Cart.tsx:55
msgid "item"
msgid_plural "items"
msgstr[0] "artículo"
msgstr[1] "artículos"
#: src/components/Auth.tsx:12
msgctxt "button"
msgid "Sign in"
msgstr "Iniciar sesión"i18n Agent 会保留哪些内容
特定语言的复数形式
为每种目标语言使用正确的 nplurals 和复数公式,无需手动配置复数形式。
消息上下文
保留 msgctxt 以消除歧义。例如,表示河岸和金融机构的 "bank" 都能获得正确译文。
注释与引用
译员注释(#.)、提取的注释(#:)和标志(#,)都会完整保留
PO 元数据
根据目标语言正确设置请求头(Content-Type、Plural-Forms、charset)
兼容您的技术栈
WordPress / WP-CLI
Django
PHP (gettext)
Python (gettext / Babel)
C/C++ (GNU gettext)
Ruby (gettext gem)
工作原理

1
2
3
terminal
$translate_filesrc/messages/en.json
--target["de", "ja", "es"]
Done.3 languages, 142 keys translated.
无需手动复制粘贴,无需提取字符串,直接获得翻译文件。
立即试用 i18n Agent
将翻译文件拖放到此处
JSON, YAML, PO, XML, CSV, Markdown, Properties
或点击选择文件
目标语言
无需注册即时估价
常见问题
企业团队?
仍受困于 TMS 合同?欢迎与我们讨论迁移方案。