(gawk.info.gz) I18N Example

Info Catalog (gawk.info.gz) Translator i18n (gawk.info.gz) Internationalization (gawk.info.gz) Gawk I18N
 
 10.5 A Simple Internationalization Example
 ==========================================
 
 Now let's look at a step-by-step example of how to internationalize and
 localize a simple `awk' program, using `guide.awk' as our original
 source:
 
      BEGIN {
          TEXTDOMAIN = "guide"
          bindtextdomain(".")  # for testing
          print _"Don't Panic"
          print _"The Answer Is", 42
          print "Pardon me, Zaphod who?"
      }
 
 Run `gawk --gen-pot' to create the `.pot' file:
 
      $ gawk --gen-pot -f guide.awk > guide.pot
 
 This produces:
 
      #: guide.awk:4
      msgid "Don't Panic"
      msgstr ""
 
      #: guide.awk:5
      msgid "The Answer Is"
      msgstr ""
 
    This original portable object template file is saved and reused for
 each language into which the application is translated.  The `msgid' is
 the original string and the `msgstr' is the translation.
 
      NOTE: Strings not marked with a leading underscore do not appear
      in the `guide.pot' file.
 
    Next, the messages must be translated.  Here is a translation to a
 hypothetical dialect of English, called "Mellow":(1)
 
      $ cp guide.pot guide-mellow.po
      ADD TRANSLATIONS TO guide-mellow.po ...
 
 Following are the translations:
 
      #: guide.awk:4
      msgid "Don't Panic"
      msgstr "Hey man, relax!"
 
      #: guide.awk:5
      msgid "The Answer Is"
      msgstr "Like, the scoop is"
 
    The next step is to make the directory to hold the binary message
 object file and then to create the `guide.mo' file.  The directory
 layout shown here is standard for GNU `gettext' on GNU/Linux systems.
 Other versions of `gettext' may use a different layout:
 
      $ mkdir en_US en_US/LC_MESSAGES
 
    The `msgfmt' utility does the conversion from human-readable `.po'
 file to machine-readable `.mo' file.  By default, `msgfmt' creates a
 file named `messages'.  This file must be renamed and placed in the
 proper directory so that `gawk' can find it:
 
      $ msgfmt guide-mellow.po
      $ mv messages en_US/LC_MESSAGES/guide.mo
 
    Finally, we run the program to test it:
 
      $ gawk -f guide.awk
      -| Hey man, relax!
      -| Like, the scoop is 42
      -| Pardon me, Zaphod who?
 
    If the three replacement functions for `dcgettext()', `dcngettext()'
 and `bindtextdomain()' ( I18N Portability) are in a file named
 `libintl.awk', then we can run `guide.awk' unchanged as follows:
 
      $ gawk --posix -f guide.awk -f libintl.awk
      -| Don't Panic
      -| The Answer Is 42
      -| Pardon me, Zaphod who?
 
    ---------- Footnotes ----------
 
    (1) Perhaps it would be better if it were called "Hippy." Ah, well.
 
Info Catalog (gawk.info.gz) Translator i18n (gawk.info.gz) Internationalization (gawk.info.gz) Gawk I18N
automatically generated by info2html