Sometimes it is necessary to manipulate PO files in a way that is better
performed automatically than by hand. GNU
gettext includes a
complete set of tools for this purpose.
When merging two packages into a single package, the resulting POT file
will be the concatenation of the two packages’ POT files. Thus the
maintainer must concatenate the two existing package translations into
a single translation catalog, for each language. This is best performed
msgcat’. It is then the translators’ duty to deal with any
possible conflicts that arose during the merge.
When a translator takes over the translation job from another translator,
but she uses a different character encoding in her locale, she will
convert the catalog to her character encoding. This is best done through
When a maintainer takes a source file with tagged messages from another
package, he should also take the existing translations for this source
file (and not let the translators do the same job twice). One way to do
this is through ‘
msggrep’, another is to create a POT file for
that source file and use ‘
When a translator wants to adjust some translation catalog for a special
dialect or orthography — for example, German as written in Switzerland
versus German as written in Germany — she needs to apply some text
processing to every message in the catalog. The tool for doing this is
Another use of
msgfilter is to produce approximately the POT file for
which a given PO file was made. This can be done through a filter command
msgfilter sed -e d | sed -e '/^# /d'’. Note that the original
POT file may have had different comments and different plural message counts,
that’s why it’s better to use the original POT file if available.
When a translator wants to check her translations, for example according
to orthography rules or using a non-interactive spell checker, she can do
so using the ‘
When third party tools create PO or POT files, sometimes duplicates cannot
be avoided. But the GNU
gettext tools give an error when they
encounter duplicate msgids in the same file and in the same domain.
To merge duplicates, the ‘
msguniq’ program can be used.
msgcomm’ is a more general tool for keeping or throwing away
duplicates, occurring in different files.
msgcmp’ can be used to check whether a translation catalog is
msgattrib’ can be used to select and extract only the fuzzy
or untranslated messages of a translation catalog.
msgen’ is useful as a first step for preparing English translation
catalogs. It copies each message’s msgid to its msgstr.
Finally, for those applications where all these various programs are not
sufficient, a library ‘
libgettextpo’ is provided that can be used to
write other specialized programs that process PO files.
|• msgcat Invocation:||Invoking the |
|• msgconv Invocation:||Invoking the |
|• msggrep Invocation:||Invoking the |
|• msgfilter Invocation:||Invoking the |
|• msguniq Invocation:||Invoking the |
|• msgcomm Invocation:||Invoking the |
|• msgcmp Invocation:||Invoking the |
|• msgattrib Invocation:||Invoking the |
|• msgen Invocation:||Invoking the |
|• msgexec Invocation:||Invoking the |
|• Colorizing:||Highlighting parts of PO files|
|• Other tools:||Other tools for manipulating PO files|
|• libgettextpo:||Writing your own programs that process PO files|