I started trying to translate a few of the most used text entries in a C program using gettext, but when digging into this I got a little bit confused about all the different file formats since there seems to be some overlap in functionality?

I would like get an overview of the different formats

  • .po
  • .pot
  • .mo
  • .gmo
  • (other formats I have excluded?)

and learn

  • What is the normal workflow?
  • What does this file format contain?
  • What tools are typically used?
  • What "opposite" direction conversions are possible (1)?

(1) I know that msgunfmt can convert from .mo to .po, but since .mo is the final end format I assume this is not a lossless process. I.e. if I convert from hello1.mo to hello2.po and then convert from hello2.po to hello3.mo, I assume that hello1.mo and hello3.mo will contain identical language strings but that some meta information will be lost along the way, right?

Edit
Report