跳到主要内容

PO 转 MO 转换器

将 GNU gettext .po 翻译源文件编译为二进制 .mo 文件,适用于 PHP、Python、WordPress 或任何基于 gettext 的应用程序。完全在您的浏览器中运行 — 无需上传。

输入

Drop a file or browse
One file · text

读取为 UTF-8 文本并直接插入上方的框中。

输出

Your compiled .mo file will appear here to download.
这对您有帮助吗?

使用指南

.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 文件格式化程序

gettextpo filemo filemsgfmttranslation filei18nl10nlocalizationwordpress translationcompile po

使用此工具的更多方式

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 积分起

也可通过

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。