Polyglot
你的应用和网站文案支持 43 种语言,由你自己的模型翻译,并逐条校对。
- Linux or macOS
- Python 3.9+
- Local LLM
- 6 file formats

功能介绍
Polyglot 会获取你的应用和网站已有的英文字符串,使用你自己运行的模型,将它们翻译成多达 42 种其他语言,并写入各平台期望的文件和文件夹中。每个字符串返回时都会经过检查:如果占位符、标签或你保留的名称丢失,或者译文不符合该语言的书写系统,该字符串会被重新请求;如果仍然失败,则将其排除并报告,而不是发布损坏的内容。
- 你使用的格式。JSON 消息文件(i18next、vue-i18n、next-intl、react-intl)、Flutter ARB、Android strings.xml、Apple .strings、gettext .po 和 Markdown 文档,写入 values-de、de.lproj、app_de.arb 或 locale/de。
- 逐字符串检查。 %1$s、{name}、{{count}}、HTML 标签、换行符、URL 和你保留的名称必须原样返回;使用正确的书写系统,没有空值或失控的回答,没有遗留的英文。
- 真实的复数形式。 俄语有单数、少数、多数和其他四种形式,阿拉伯语有六种形式,日语只有一种形式:Android 复数和 ICU 消息遵循每种语言自身的规则。
- 仅处理变更。 每个正确的翻译都会被记住,因此编辑一个英文字符串只发送一个字符串,而不是整个文件。
- 你的语气和术语。 产品描述、语气、永不翻译的名称和术语表会包含在每个请求中,你的注释也会作为备注一并传递。
- 你的模型,你的机器。 任何 OpenAI-compatible 服务器:vLLM、llama.cpp、Ollama 或 LM Studio,或者如果你愿意,也可以使用托管 API。没有按词计费。
在真实模型上测试
- 真实模型、六种格式、五种脚本:一个包含 70 个字符串的示例应用,涵盖 JSON、Flutter ARB、Android、Apple .strings、gettext 和 Markdown 格式,翻译为德语、俄语、日语、阿拉伯语和西班牙语,使用由 vLLM 在我们自有机器上托管的开源 Qwen 模型(Qwen3.8-Flash-Next,量化为 4 位):在繁忙的共享服务器上,7.5 分钟内,350 个字符串中有 346 个通过了输入检查。
- 未通过的四个是我们检查机制的错误,而非模型的错误:一个德语外来词、一个电子邮件地址和一个日语复数消息。我们修复了检查机制;下一次运行仅发送这四个字符串,并在 45 秒内写入了全部 350 个字符串。
- 复数形式一次正确: 俄语的单数、少数、多数和其他,阿拉伯语的六种形式,日语的单一形式。
- 全部 42 种语言:将示例中的 22 条 Web 字符串翻译成 Polyglot 支持的所有语言,从阿姆哈拉语到繁体中文:15 分钟内完成 924 条字符串中的 924 条。
- 检查无法发现的问题:在高棉语中,“You are offline”被翻译成了“you are online”。译文的高棉语非常地道,因此通过了检查。这就是为什么文档建议对最重要的字符串请母语人士把关。
套件包含哪些内容
翻译器
批量发送至您的模型,进行检查,指出问题并重试,具备翻译记忆功能,支持并行处理多种语言。
六种格式
读写器可保留各平台的转义字符、文件夹结构和复数规则。
检查工具
可独立使用:将您已有的译文与其英文源文进行比对检查。
示例应用
一个小型应用,包含全部六种格式及其配置,供您在使用自己的项目之前试用。
系统要求
- Linux 或 macOS,配备 Python 3.9 或更新版本;无需通过 pip 安装任何内容。
- 一个 OpenAI-compatible 模型服务器,配备多语言指令模型;我们使用的是开源 Qwen 模型(Qwen3.8-Flash-Next,量化为 4 位)。
须知
- 检查工具能发现导致应用崩溃的问题,但无法发现语义错误:请让母语人士阅读您的商品详情页、付费墙和法律文本。
- 此版本中,gettext 复数条目仍保留为英文。
- 速度取决于您的模型。
- 检查工具免费且开源:GitHub 上的 translation-checks。套件增加了翻译器、六种格式、复数形式、翻译记忆以及一年的更新。
常见问题
支持哪些语言?
从英文翻译成以下语言:阿拉伯语、阿姆哈拉语、保加利亚语、捷克语、德语、希腊语、西班牙语、波斯语、芬兰语、菲律宾语、法语、苏格兰盖尔语、希伯来语、海地克里奥尔语、匈牙利语、亚美尼亚语、印尼语、意大利语、日语、高棉语、卡纳达语、韩语、马其顿语、马来语、荷兰语、挪威语、奥罗莫语、旁遮普语、波兰语、葡萄牙语(巴西)、罗马尼亚语、俄语、斯洛伐克语、斯洛文尼亚语、塞尔维亚语、瑞典语、泰语、土耳其语、乌克兰语、越南语以及简体中文和繁体中文。
需要 GPU 吗?
Polyglot 本身不需要;这取决于您的模型服务器。小型模型可以在 CPU 上运行,但速度较慢;使用 GPU 处理多语言的大文件只需几分钟。
模型翻译错误的字符串会怎样处理?
系统会单独重新请求该字符串,并指明具体问题。如果仍然失败,则将其从文件中剔除,因此您的应用会显示该字符串的英文原文,并在运行日志中列出该字符串及其失败原因。不会写入任何有问题的内容。
可以使用托管 API 吗?
可以:任何提供 OpenAI-compatible 聊天端点的服务均可。将其基础 URL 和模型名称填入 polyglot.json,并将密钥保存在文件中。
已更新: