Skip to main content
AI agent network visualization

翻译 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)

工作原理

How i18n Agent works: Install, Translate, Done
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

或点击选择文件

目标语言

无需注册即时估价

常见问题

开发者?

安装 CLI 工具,2 分钟内完成第一个文件的翻译。

安装 CLI 工具

企业团队?

仍受困于 TMS 合同?欢迎与我们讨论迁移方案。