gettext: Creating Compendia

 
 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