manpagez: man pages & more
info gettext
Home | html | info | man

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

© manpagez.com 2000-2026
Individual documents may contain additional copyright information.