PO 转 MO 转换器
将 GNU gettext .po 翻译源文件编译为二进制 .mo 文件,适用于 PHP、Python、WordPress 或任何基于 gettext 的应用程序。完全在您的浏览器中运行 — 无需上传。
输入
读取为 UTF-8 文本并直接插入上方的框中。
输出
使用指南
.po 文件是 GNU gettext 翻译中可人工编辑的部分 — 纯文本,每个字符串对应一个 msgid/msgstr 对。但是,实际在运行时加载翻译的任何东西都不会直接读取它:PHP、Python、glibc 和 WordPress 都期望编译后的二进制 .mo(Machine Object)格式,通常由命令行工具 msgfmt 生成。此转换器在您的浏览器中执行相同的编译步骤,因此您可以从 .po 转到 .mo,无需安装 gettext 或 PHP/Python 工具链。
如何使用
将您的 .po 文件内容粘贴到文本框中,或直接上传文件 — 无论哪种方式,文件都不会离开您的浏览器。单击 编译为 MO 并下载生成的 messages.mo。
支持的功能
- 多行字符串 — 跨多个引用行的
msgid/msgstr会被重新连接,就像msgfmt一样。 - 复数形式 —
msgid_plural和索引化msgstr[0]、msgstr[1]等被编译为 gettext 的 NUL 连接二进制复数编码,因此ngettext()/_n()查找正确工作。 - 消息上下文 —
msgctxt被折叠到编译后的密钥中,完全按照pgettext()/_x()的期望。 - 模糊和未翻译的条目被跳过,与
msgfmt的默认行为相匹配(无--use-fuzzy)。标记为#, fuzzy的字符串是翻译者尚未确认的粗略机器猜测 — 将其作为真正的翻译发送会比回退到原始文本更糟,因此它被排除在已编译的目录之外而不是被信任。 - 过时条目(
#~前缀,由msgmerge在字符串从源消失时留下)被删除,就像真正的编译一样。
隐私
一切都在客户端进行 — .po 文本的解析和二进制 .mo 文件的组装都在您的浏览器中运行。没有任何东西被上传到服务器。
为什么我的翻译字符串没有在 .mo 文件中显示?
检查它在 .po 文件中是否被标记为 #, fuzzy。模糊字符串被意图地从已编译的目录中排除(见上文) — 一旦您确认翻译是正确的,请删除 fuzzy 标志,然后重新编译。
已编译的文件可以在 WordPress 中使用吗?
可以 — WordPress(以及任何其他 PHP gettext/Gettext_PO 消费者)读取标准 .mo 文件。使用预期的文件名 <textdomain>-<locale>.mo 将已编译的文件放在您的主题或插件的 languages/ 文件夹中。
我需要走另一条路,从已编译的 .mo 回到可编辑的 .po
那是一个单独的反编译步骤 — 计划中有一个 MO 到 PO 工具。与此同时,大多数识别 gettext 的编辑器(Poedit、gettext 自己的 msgunfmt)可以直接打开 .mo 文件。
对于编辑其他结构化翻译/配置格式,请参阅 Java Properties 文件格式化程序。
使用此工具的更多方式
REST API
curl -X POST https://api.iotools.cloud/v1/tool/po-to-mo \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"po": "#\nmsgid \"\"\nmsgstr \"\"\n\"Content-Type: text/plain; …"
}'替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。
让 AI 代理执行
Use the IOTools `po-to-mo` tool (PO to MO Converter) on this input:
YOUR_INPUT_HERE将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。
嵌入式小组件
<iframe
src="https://iotools.cloud/embed/po-to-mo/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="PO 转 MO 转换器 — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。
| 每次调用费用 | 5 积分起 |
|---|