有哪些不同的gettext文件格式?

时间:2010-12-01 22:22:08

标签: gettext

我开始尝试翻译C程序中一些最常用的文本条目 使用gettext,但是当我深入研究这个时,我得到了一些 对所有不同的文件格式感到困惑 因为功能似乎有些重叠?

我想了解不同格式

  • .po
  • .pot
  • .mo
  • .gmo
  • (我排除的其他格式?)

并学习

  • 什么是正常的工作流程?
  • 此文件格式包含哪些内容?
  • 通常使用哪些工具?
  • 什么“相反”的方向转换是可能的(1)?

(1) 我知道msgunfmt可以从.mo转换为.po,但是因为.mo就是 最终结束格式我认为这不是一个无损的过程。即如果 我将hello1.mo转换为hello2.po,然后从hello2.po转换 到hello3.mo,我假设hello1.mo和hello3.mo将包含 相同的语言字符串,但有一些元信息 一路上会丢失,对吗?

1 个答案:

答案 0 :(得分:13)

我可能错了,但是:

.pot - 人类可读的gettext模板文件 - 你会给翻译者(人?)。

.po - 基于POT的人类可读的gettext翻译文件 - 这是翻译人员给你回复的内容。

.mo - PHP在进行实际翻译时使用的机器可读代码(字节码?)。这种格式是你提供给php的。它是大多数程序都能理解的通用格式,但它可能不支持所有gnu gettext功能。这就是gmo到位的地方。

.gmo - 以.gmo结尾的文件实际上是MO文件,当知道这些文件使用GNU格式时。


您可以使用poedit来处理.pot - > .po - >的.mo

more info

P.S。话虽如此 - 只有程序员才会将PO或XML等格式称为人类可读的。 另外 - 你可能不需要将.mo转换为.po ......好吧。至少这对我来说似乎不是一个常见的场景:)