Gettext/Creating-Compendia
Next: Using Compendia, Up: Compendium [Contents][Index]
8.4.1 Creating Compendia
Basically every PO file consisting of translated entries only can be declared as a valid compendium. Often the translator wants to have special compendia; let’s consider two cases: concatenating PO files and extracting a message subset from a PO file.
8.4.1.1 Concatenate PO Files
To concatenate several valid PO files into one compendium file you can
use ‘msgcomm
’ or ‘msgcat
’ (the latter preferred):
msgcat -o compendium.po file1.po file2.po
By default, msgcat
will accumulate divergent translations
for the same string. Those occurrences will be marked as fuzzy
and highly visible decorated; calling msgcat
on
file1.po
:
#: src/hello.c:200 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Comunicar `bugs' a <%s>.\n"
and file2.po
:
#: src/bye.c:100 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Comunicar \"bugs\" a <%s>.\n"
will result in:
#: src/hello.c:200 src/bye.c:100 #, fuzzy, c-format msgid "Report bugs to <%s>.\n" msgstr "" "#-#-#-#-# file1.po #-#-#-#-#\n" "Comunicar `bugs' a <%s>.\n" "#-#-#-#-# file2.po #-#-#-#-#\n" "Comunicar \"bugs\" a <%s>.\n"
The translator will have to resolve this “conflict” manually; she
has to decide whether the first or the second version is appropriate
(or provide a new translation), to delete the “marker lines”, and
finally to remove the fuzzy
mark.
If the translator knows in advance the first found translation of a
message is always the best translation she can make use to the
‘--use-first
’ switch:
msgcat --use-first -o compendium.po file1.po file2.po
A good compendium file must not contain fuzzy
or untranslated
entries. If input files are “dirty” you must preprocess the input
files or postprocess the result using ‘msgattrib --translated --no-fuzzy
’.
8.4.1.2 Extract a Message Subset from a PO File
Nobody wants to translate the same messages again and again; thus you
may wish to have a compendium file containing getopt.c
messages.
To extract a message subset (e.g., all getopt.c
messages) from an
existing PO file into one compendium file you can use ‘msggrep
’:
msggrep --location src/getopt.c -o compendium.po file.po
Next: Using Compendia, Up: Compendium [Contents][Index]