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

hlo*_*dal 12 gettext

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

我想概述一下不同的格式

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

并学习

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

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

Sta*_*ann 13

我错了但是:

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

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

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

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


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

更多信息

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

  • Upvote只是为了"只有程序员会将PO或XML等格式称为人类可读的",经常被遗忘但非常真实 (2认同)