File: gettext.info, Node: Creating Compendia, Next: Using Compendia, Up: Compendium 9.9.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’. 9.9.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’. 9.9.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
