O'Reilly logo

Linux in a Nutshell, 6th Edition by Robert Love, Stephen Figgins, Ellen Siever, Arnold Robbins

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Internationalization

You can internationalize your programs if you use gawk. This consists of choosing a text domain for your program, marking strings that are to be translated, and, if necessary, using the bindtextdomain( ), dcgettext( ), and dcngettext( ) functions.

Localizing your program consists of extracting the marked strings, creating translations, and compiling and installing the translations in the proper place. Full details are given in sed & awk by Dale Dougherty and Arnold Robbins (O’Reilly).

The internationalization features in gawk use GNU gettext. You may need to install the GNU gettext tools to create translations if your system doesn’t already have them. Here is a very brief outline of the steps involved:

  1. Set TEXTDOMAIN to your text domain in a BEGIN block:

    BEGIN { TEXTDOMAIN = "whizprog" }
  2. Mark all strings to be translated by prepending a leading underscore:

    printf(_"whizprog: can't open /dev/telepath (%s)\n",
                      dcgettext(ERRNO)) > "/dev/stderr"
  3. Extract the strings with the --gen-po option:

    $ gawk --gen-po -f whizprog.awk > whizprog.pot
  4. Copy the file for translating, and make the translations:

    $ cp whizprog.pot esperanto.po
    $ ed esperanto.po
  5. Use the msgfmt program from GNU gettext to compile the translations. The binary format allows fast lookup of the translations at runtime. The default output is a file named messages:

    $ msgfmt esperanto.po
    $ mv messages esperanto.mo
  6. Install the file in the standard location. This is usually done at program installation. The location can vary ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required