MO 到 PO 转换器
将 GNU gettext 二进制 .mo 文件反编译回可读的 .po 翻译源。完全在浏览器中运行 — 无需上传。
输入
选择 .mo 文件。文件在本地解码 — 永不上传。
输出
使用此工具的更多方式
REST API
curl -X POST https://api.iotools.cloud/v1/tool/mo-to-po \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"file": "data:application/octet-stream;base64,3hIElQAAAAA…"
}'替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。
让 AI 代理执行
Use the IOTools `mo-to-po` tool (MO to PO Converter) on this input:
YOUR_INPUT_HERE将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。
嵌入式小组件
<iframe
src="https://iotools.cloud/embed/mo-to-po/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="MO 到 PO 转换器 — 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>把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。
| 每次 API/MCP 调用费用 | 5 积分起 |
|---|
也可通过
使用指南
.mo(Machine Object)文件是 GNU gettext 翻译目录的编译二进制形式 — 这是 PHP、Python、glibc 和 WordPress 在运行时实际加载的格式。它在代码中读取速度快,但手动编辑毫无用处。此转换器将 .mo 文件反编译回纯文本 .po 源,因此您可以无需安装 gettext 或 PHP/Python 工具链即可读取或编辑翻译。
使用方法
上传您的 .mo 文件 — 该文件完全在浏览器中解码,永远不会离开浏览器。反编译的 .po 源会立即出现;复制它或下载为 messages.po。
支持的功能
- 两种字节序 —
.mo文件可以是小端序或大端序,具体取决于编译它的计算机。两者都从文件的魔数自动检测,就像msgunfmt和所有其他真实 gettext 读取器一样。 - 复数形式 — GNU gettext 的 NUL 连接二进制复数编码被拆分回
msgid_plural和索引的msgstr[0]、msgstr[1]等...。 - 消息上下文 — 编译的
msgctxt密钥被拆分回其自己的msgctxt行,与pgettext()/_x()编译的内容匹配。 - 多行输出 — 长翻译字符串(最明显的是带有
Content-Type/Plural-Forms元数据的目录标题)按msgunfmt格式化的方式跨引用继续行进行换行,而不是一行难以阅读的长文本。
编译中丢失的内容
.mo 文件不包含模糊标记或注释 — msgfmt 在编译时会删除它们,翻译人员注释、源文件引用和 #, fuzzy 标志在二进制文件中会完全消失。反编译无法恢复从未编译过的内容,因此输出只是干净的 msgid/msgstr 对。
隐私
一切都发生在客户端 — 读取二进制 .mo 容器和将其呈现为 .po 文本都在浏览器中运行。没有任何内容上传到服务器。
输出看起来与我的原始 .po 文件不相同
这是预期的。.mo 编译的设计本身有损失(见上文)— 模糊标记、注释和源引用不会在来回过程中保留,条目返回时按 msgfmt 存储它们的方式排序,而不是按原始文件的顺序。
我需要反向操作,从可编辑的 .po 到编译的 .mo
使用 PO 到 MO 转换器 — 此工具的精确反向,也完全在客户端运行。
对于编辑其他结构化翻译/配置格式,请参阅 Java 属性文件格式化程序。