gettext.info-9   [plain text]


Dies ist gettext.info, hergestellt von Makeinfo Version 4.3 aus
gettext.texi.

INFO-DIR-SECTION GNU Gettext Utilities
START-INFO-DIR-ENTRY
* gettext: (gettext).                          GNU gettext utilities.
* autopoint: (gettext)autopoint Invocation.    Copy gettext infrastructure.
* gettextize: (gettext)gettextize Invocation.  Prepare a package for gettext.
* msgattrib: (gettext)msgattrib Invocation.    Select part of a PO file.
* msgcat: (gettext)msgcat Invocation.          Combine several PO files.
* msgcmp: (gettext)msgcmp Invocation.          Compare a PO file and template.
* msgcomm: (gettext)msgcomm Invocation.        Match two PO files.
* msgconv: (gettext)msgconv Invocation.        Convert PO file to encoding.
* msgen: (gettext)msgen Invocation.            Create an English PO file.
* msgexec: (gettext)msgexec Invocation.        Process a PO file.
* msgfilter: (gettext)msgfilter Invocation.    Pipe a PO file through a filter.
* msgfmt: (gettext)msgfmt Invocation.          Make MO files out of PO files.
* msggrep: (gettext)msggrep Invocation.        Select part of a PO file.
* msginit: (gettext)msginit Invocation.        Create a fresh PO file.
* msgmerge: (gettext)msgmerge Invocation.      Update a PO file from template.
* msgunfmt: (gettext)msgunfmt Invocation.      Uncompile MO file into PO file.
* msguniq: (gettext)msguniq Invocation.        Unify duplicates for PO file.
* xgettext: (gettext)xgettext Invocation.      Extract strings into a PO file.
* ISO639: (gettext)Language Codes.             ISO 639 language codes.
* ISO3166: (gettext)Country Codes.             ISO 3166 country codes.
END-INFO-DIR-ENTRY

   This file provides documentation for GNU `gettext' utilities.  It
also serves as a reference for the free Translation Project.

   Copyright (C) 1995-1998, 2001-2003 Free Software Foundation, Inc.

   Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.

   Permission is granted to copy and distribute modified versions of
this manual under the conditions for verbatim copying, provided that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.

   Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be stated in a
translation approved by the Foundation.


File: gettext.info,  Node: Interpolation I,  Next: Interpolation II,  Prev: Quote-like Expressions,  Up: Perl

Invalid Uses Of String Interpolation
....................................

   Perl is capable of interpolating variables into strings.  This offers
some nice features in localized programs but can also lead to problems.

   A common error is a construct like the following:

     print gettext "This is the program $0!\n";

   Perl will interpolate at runtime the value of the variable `$0' into
the argument of the `gettext()' function.  Hence, this argument is not
a string constant but a variable argument (`$0' is a global variable
that holds the name of the Perl script being executed).  The
interpolation is performed by Perl before the string argument is passed
to `gettext()' and will therefore depend on the name of the script
which can only be determined at runtime.  Consequently, it is almost
impossible that a translation can be looked up at runtime (except if by
accident the interpolated string is found in the message catalog).

   The `xgettext' program will therefore terminate parsing with a fatal
error if it encounters a variable inside of an extracted string.  In
general, this will happen for all kinds of string interpolations that
cannot be safely performed at compile time.  If you absolutely know
what you are doing, you can always circumvent this behavior:

     my $know_what_i_am_doing = "This is program $0!\n";
     print gettext $know_what_i_am_doing;

   Since the parser only recognizes strings and quote-like expressions,
but not variables or other terms, the above construct will be accepted.
You will have to find another way, however, to let your original
string make it into your message catalog.

   If invoked with the option `--extract-all', resp. `-a', variable
interpolation will be accepted.  Rationale: You will generally use this
option in order to prepare your sources for internationalization.

   Please see the manual page `man perlop' for details of strings and
quote-like expressions that are subject to interpolation and those that
are not.  Safe interpolations (that will not lead to a fatal error) are:

   * the escape sequences `\t' (tab, HT, TAB), `\n' (newline, NL), `\r'
     (return, CR), `\f' (form feed, FF), `\b' (backspace, BS), `\a'
     (alarm, bell, BEL), and `\e' (escape, ESC).

   * octal chars, like `\033'
     Note that octal escapes in the range of 400-777 are translated
     into a UTF-8 representation, regardless of the presence of the
     `use utf8' pragma.

   * hex chars, like `\x1b'

   * wide hex chars, like `\x263a'
     Note that this escape is translated into a UTF-8 representation,
     regardless of the presence of the `use utf8' pragma.

   * control chars, like `\c[' (CTRL-[)

   * named Unicode chars, like `\N{LATIN CAPITAL LETTER C WITH CEDILLA}'
     Note that this escape is translated into a UTF-8 representation,
     regardless of the presence of the `use utf8' pragma.

   The following escapes are considered partially safe:

   * `\l' lowercase next char

   * `\u' uppercase next char

   * `\L' lowercase till \E

   * `\U' uppercase till \E

   * `\E' end case modification

   * `\Q' quote non-word characters till \E


   These escapes are only considered safe if the string consists of
ASCII characters only.  Translation of characters outside the range
defined by ASCII is locale-dependent and can only be performed at
runtime.

   Except for the modifier `\Q', these translations, albeit valid, are
generally useless and only obfuscate your sources.  If a translation
can be safely performed at compile time you can just as well write what
you mean.


File: gettext.info,  Node: Interpolation II,  Next: Parentheses,  Prev: Interpolation I,  Up: Perl

Valid Uses Of String Interpolation
..................................

   Perl is often used to generate sources for other programming
languages or arbitrary file formats.  Web applications that output HTML
code make a prominent example for such usage.

   You will often come across situations where you want to intersperse
code written in the target (programming) language with translatable
messages, like in the following HTML example:

     print gettext <<EOF;
     <h1>My Homepage</h1>
     <script language="JavaScript"><!--
     for (i = 0; i < 100; ++i) {
         alert ("Thank you so much for visiting my homepage!");
     }
     //--></script>
     EOF

   If you exaggerate with constructs like the above, you will run the
risk that the translators of your package will look out for a less
challenging project.  You should consider an alternative expression:

     print <<EOF;
     <h1>$gettext{"My Homepage"}</h1>
     <script language="JavaScript"><!--
     for (i = 0; i < 100; ++i) {
         alert ("$gettext{'Thank you so much for visiting my homepage!'}");
     }
     //--></script>
     EOF

   The resulting PO file will begrudgingly improve in terms of
readability.

   You can interpolate hash lookups in all strings or quote-like
expressions that are subject to interpolation (see the manual page `man
perlop' for details).  Double interpolation is invalid, however:

     # TRANSLATORS: Replace "the earth" with the name of your planet.
     print gettext qq{Welcome to $gettext->{"the earth"}};

   The quoted string is recognized as an argument to `xgettext' in the
first place, and checked for invalid variable interpolation.  The
dollar sign will therefore terminate the parser with an "invalid
interpolation" error.

   It is valid to interpolate hash lookups in regular expressions:

     if ($var =~ /$gettext{"the earth"}/) {
        print gettext "Match!\n";
     }
     s/$gettext{"U. S. A."}/$gettext{"U. S. A."} $gettext{"(dial +0)"}/g;


File: gettext.info,  Node: Parentheses,  Next: Long Lines,  Prev: Interpolation II,  Up: Perl

When To Use Parentheses
.......................

   In Perl, parentheses around function arguments are mostly optional.
`xgettext' will always assume that all recognized keywords (except for
hashs and hash references) are names of properly prototyped functions,
and will (hopefully) only require parentheses where Perl itself
requires them.  All constructs in the following example are therefore
ok to use:

     print gettext ("Hello World!\n");
     print gettext "Hello World!\n";
     print dgettext ($package => "Hello World!\n");
     print dgettext $package, "Hello World!\n";
     
     # The "fat comma" => turns the left-hand side argument into a
     # single-quoted string!
     print dgettext smellovision => "Hello World!\n";
     
     # The following assignment only works with prototyped functions.
     # Otherwise, the functions will act as "greedy" list operators and
     # eat up all following arguments.
     my $anonymous_hash = {
        planet => gettext "earth",
        cakes => ngettext "one cake", "several cakes", $n,
        still => $works,
     };
     # The same without fat comma:
     my $other_hash = {
        'planet', gettext "earth",
        'cakes', ngettext "one cake", "several cakes", $n,
        'still', $works,
     };
     
     # Parentheses are only significant for the first argument.
     print dngettext 'package', ("one cake", "several cakes", $n), $discarded;


File: gettext.info,  Node: Long Lines,  Next: Perl Pitfalls,  Prev: Parentheses,  Up: Perl

How To Grok with Long Lines
...........................

   The necessity of long messages can often lead to a cumbersome or
unreadable coding style.  Perl has several options that may prevent you
from writing unreadable code, and `xgettext' does its best to do
likewise.  This is where the dot operator (the string concatenation
operator) may come in handy:

     print gettext ("This is a very long"
                    . " message that is still"
                    . " readable, because"
                    . " it is split into"
                    . " multiple lines.\n");

   Perl is smart enough to concatenate these constant string fragments
into one long string at compile time, and so is `xgettext'.  You will
only find one long message in the resulting POT file.

   If embedded newline characters are not an issue, or even desired, you
may also insert newline characters inside quoted strings wherever you
feel like it:

     print gettext ("<em>In HTML output
     embedded newlines are generally no
     problem, since adjacent whitespace
     is always rendered into a single
     space character.</em>");

   You may also consider to use here documents:

     print gettext <<EOF;
     <em>In HTML output
     embedded newlines are generally no
     problem, since adjacent whitespace
     is always rendered into a single
     space character.</em>
     EOF

   Please do not forget, that the line breaks are real, i. e. they
translate into newline characters that will consequently show up in the
resulting POT file.


File: gettext.info,  Node: Perl Pitfalls,  Prev: Long Lines,  Up: Perl

Bugs, Pitfalls, And Things That Do Not Work
...........................................

   The foregoing sections should have proven that `xgettext' is quite
smart in extracting translatable strings from Perl sources.  Yet, some
more or less exotic constructs that could be expected to work, actually
do not work.

   One of the more relevant limitations can be found in the
implementation of variable interpolation inside quoted strings.  Only
simple hash lookups can be used there:

     print <<EOF;
     $gettext{"The dot operator"
               . " does not work"
               . "here!"}
     Likewise, you cannot @{[ gettext ("interpolate function calls") ]}
     inside quoted strings or quote-like expressions.
     EOF

   This is valid Perl code and will actually trigger invocations of the
`gettext' function at runtime.  Yet, the Perl parser in `xgettext' will
fail to recognize the strings.  A less obvious example can be found in
the interpolation of regular expressions:

     s/<!--START_OF_WEEK-->/gettext ("Sunday")/e;

   The modifier `e' will cause the substitution to be interpreted as an
evaluable statement.  Consequently, at runtime the function `gettext()'
is called, but again, the parser fails to extract the string "Sunday".
Use a temporary variable as a simple workaround if you really happen to
need this feature:

     my $sunday = gettext "Sunday";
     s/<!--START_OF_WEEK-->/$sunday/;

   Hash slices would also be handy but are not recognized:

     my @weekdays = @gettext{'Sunday', 'Monday', 'Tuesday', 'Wednesday',
                             'Thursday', 'Friday', 'Saturday'};
     # Or even:
     @weekdays = @gettext{qw (Sunday Monday Tuesday Wednesday Thursday
                              Friday Saturday) };

   This is perfectly valid usage of the tied hash `%gettext' but the
strings are not recognized and therefore will not be extracted.

   Another caveat of the current version is its rudimentary support for
non-ASCII characters in identifiers.  You may encounter serious
problems if you use identifiers with characters outside the range of
'A'-'Z', 'a'-'z', '0'-'9' and the underscore '_'.

   Maybe some of these missing features will be implemented in future
versions, but since you can always make do without them at minimal
effort, these todos have very low priority.


File: gettext.info,  Node: PHP,  Next: Pike,  Prev: Perl,  Up: List of Programming Languages

PHP Hypertext Preprocessor
--------------------------

RPMs
     mod_php4, mod_php4-core, phplib, phpdoc

File extension
     `php', `php3', `php4'

String syntax
     `"abc"', `'abc''

gettext shorthand
     `_("abc")'

gettext/ngettext functions
     `gettext', `dgettext', `dcgettext'

textdomain
     `textdomain' function

bindtextdomain
     `bindtextdomain' function

setlocale
     Programmer must call `setlocale (LC_ALL, "")'

Prerequisite
     --

Use or emulate GNU gettext
     use

Extractor
     `xgettext'

Formatting with positions
     `printf "%2\$d %1\$d"'

Portability
     On platforms without gettext, the functions are not available.

po-mode marking
     --


File: gettext.info,  Node: Pike,  Prev: PHP,  Up: List of Programming Languages

Pike
----

RPMs
     roxen

File extension
     `pike'

String syntax
     `"abc"'

gettext shorthand
     --

gettext/ngettext functions
     `gettext', `dgettext', `dcgettext'

textdomain
     `textdomain' function

bindtextdomain
     `bindtextdomain' function

setlocale
     `setlocale' function

Prerequisite
     `import Locale.Gettext;'

Use or emulate GNU gettext
     use

Extractor
     --

Formatting with positions
     --

Portability
     On platforms without gettext, the functions are not available.

po-mode marking
     --


File: gettext.info,  Node: List of Data Formats,  Prev: List of Programming Languages,  Up: Programming Languages

Internationalizable Data
========================

   Here is a list of other data formats which can be internationalized
using GNU gettext.

* Menu:

* POT::                         POT - Portable Object Template
* RST::                         Resource String Table
* Glade::                       Glade - GNOME user interface description


File: gettext.info,  Node: POT,  Next: RST,  Prev: List of Data Formats,  Up: List of Data Formats

POT - Portable Object Template
------------------------------

RPMs
     gettext

File extension
     `pot', `po'

Extractor
     `xgettext'


File: gettext.info,  Node: RST,  Next: Glade,  Prev: POT,  Up: List of Data Formats

Resource String Table
---------------------

RPMs
     fpk

File extension
     `rst'

Extractor
     `xgettext', `rstconv'


File: gettext.info,  Node: Glade,  Prev: RST,  Up: List of Data Formats

Glade - GNOME user interface description
----------------------------------------

RPMs
     glade, libglade, glade2, libglade2, intltool

File extension
     `glade', `glade2'

Extractor
     `xgettext', `libglade-xgettext', `xml-i18n-extract',
     `intltool-extract'


File: gettext.info,  Node: Conclusion,  Next: Language Codes,  Prev: Programming Languages,  Up: Top

Concluding Remarks
******************

   We would like to conclude this GNU `gettext' manual by presenting an
history of the Translation Project so far.  We finally give a few
pointers for those who want to do further research or readings about
Native Language Support matters.

* Menu:

* History::                     History of GNU `gettext'
* References::                  Related Readings


File: gettext.info,  Node: History,  Next: References,  Prev: Conclusion,  Up: Conclusion

History of GNU `gettext'
========================

   Internationalization concerns and algorithms have been informally
and casually discussed for years in GNU, sometimes around GNU `libc',
maybe around the incoming `Hurd', or otherwise (nobody clearly
remembers).  And even then, when the work started for real, this was
somewhat independently of these previous discussions.

   This all began in July 1994, when Patrick D'Cruze had the idea and
initiative of internationalizing version 3.9.2 of GNU `fileutils'.  He
then asked Jim Meyering, the maintainer, how to get those changes
folded into an official release.  That first draft was full of
`#ifdef's and somewhat disconcerting, and Jim wanted to find nicer
ways.  Patrick and Jim shared some tries and experimentations in this
area.  Then, feeling that this might eventually have a deeper impact on
GNU, Jim wanted to know what standards were, and contacted Richard
Stallman, who very quickly and verbally described an overall design for
what was meant to become `glocale', at that time.

   Jim implemented `glocale' and got a lot of exhausting feedback from
Patrick and Richard, of course, but also from Mitchum DSouza (who wrote
a `catgets'-like package), Roland McGrath, maybe David MacKenzie,
Franc,ois Pinard, and Paul Eggert, all pushing and pulling in various
directions, not always compatible, to the extent that after a couple of
test releases, `glocale' was torn apart.

   While Jim took some distance and time and became dad for a second
time, Roland wanted to get GNU `libc' internationalized, and got Ulrich
Drepper involved in that project.  Instead of starting from `glocale',
Ulrich rewrote something from scratch, but more conformant to the set
of guidelines who emerged out of the `glocale' effort.  Then, Ulrich
got people from the previous forum to involve themselves into this new
project, and the switch from `glocale' to what was first named
`msgutils', renamed `nlsutils', and later `gettext', became officially
accepted by Richard in May 1995 or so.

   Let's summarize by saying that Ulrich Drepper wrote GNU `gettext' in
April 1995.  The first official release of the package, including PO
mode, occurred in July 1995, and was numbered 0.7.  Other people
contributed to the effort by providing a discussion forum around
Ulrich, writing little pieces of code, or testing.  These are quoted in
the `THANKS' file which comes with the GNU `gettext' distribution.

   While this was being done, Franc,ois adapted half a dozen of GNU
packages to `glocale' first, then later to `gettext', putting them in
pretest, so providing along the way an effective user environment for
fine tuning the evolving tools.  He also took the responsibility of
organizing and coordinating the Translation Project.  After nearly a
year of informal exchanges between people from many countries,
translator teams started to exist in May 1995, through the creation and
support by Patrick D'Cruze of twenty unmoderated mailing lists for that
many native languages, and two moderated lists: one for reaching all
teams at once, the other for reaching all willing maintainers of
internationalized free software packages.

   Franc,ois also wrote PO mode in June 1995 with the collaboration of
Greg McGary, as a kind of contribution to Ulrich's package.  He also
gave a hand with the GNU `gettext' Texinfo manual.

   In 1997, Ulrich Drepper released the GNU libc 2.0, which included the
`gettext', `textdomain' and `bindtextdomain' functions.

   In 2000, Ulrich Drepper added plural form handling (the `ngettext'
function) to GNU libc.  Later, in 2001, he released GNU libc 2.2.x,
which is the first free C library with full internationalization
support.

   Ulrich being quite busy in his role of General Maintainer of GNU
libc, he handed over the GNU `gettext' maintenance to Bruno Haible in
2000.  Bruno added the plural form handling to the tools as well, added
support for UTF-8 and CJK locales, and wrote a few new tools for
manipulating PO files.


File: gettext.info,  Node: References,  Prev: History,  Up: Conclusion

Related Readings
================

   Eugene H. Dorr (`dorre@well.com') maintains an interesting
bibliography on internationalization matters, called
`Internationalization Reference List', which is available as:
     ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/i18n-books.txt

   Michael Gschwind (`mike@vlsivie.tuwien.ac.at') maintains a
Frequently Asked Questions (FAQ) list, entitled `Programming for
Internationalisation'.  This FAQ discusses writing programs which can
handle different language conventions, character sets, etc.; and is
applicable to all character set encodings, with particular emphasis on
ISO 8859-1.  It is regularly published in Usenet groups
`comp.unix.questions', `comp.std.internat',
`comp.software.international', `comp.lang.c', `comp.windows.x',
`comp.std.c', `comp.answers' and `news.answers'.  The home location of
this document is:
     ftp://ftp.vlsivie.tuwien.ac.at/pub/8bit/ISO-programming

   Patrick D'Cruze (`pdcruze@li.org') wrote a tutorial about NLS
matters, and Jochen Hein (`Hein@student.tu-clausthal.de') took over the
responsibility of maintaining it.  It may be found as:
     ftp://sunsite.unc.edu/pub/Linux/utils/nls/catalogs/Incoming/...
          ...locale-tutorial-0.8.txt.gz

This site is mirrored in:
     ftp://ftp.ibp.fr/pub/linux/sunsite/

   A French version of the same tutorial should be findable at:
     ftp://ftp.ibp.fr/pub/linux/french/docs/

together with French translations of many Linux-related documents.


File: gettext.info,  Node: Language Codes,  Next: Country Codes,  Prev: Conclusion,  Up: Top

Language Codes
**************

   The ISO 639 standard defines two character codes for many languages.
All abbreviations for languages used in the Translation Project should
come from this standard.

`aa'
     Afar.

`ab'
     Abkhazian.

`ae'
     Avestan.

`af'
     Afrikaans.

`am'
     Amharic.

`ar'
     Arabic.

`as'
     Assamese.

`ay'
     Aymara.

`az'
     Azerbaijani.

`ba'
     Bashkir.

`be'
     Byelorussian; Belarusian.

`bg'
     Bulgarian.

`bh'
     Bihari.

`bi'
     Bislama.

`bn'
     Bengali; Bangla.

`bo'
     Tibetan.

`br'
     Breton.

`bs'
     Bosnian.

`ca'
     Catalan.

`ce'
     Chechen.

`ch'
     Chamorro.

`co'
     Corsican.

`cs'
     Czech.

`cu'
     Church Slavic.

`cv'
     Chuvash.

`cy'
     Welsh.

`da'
     Danish.

`de'
     German.

`dz'
     Dzongkha; Bhutani.

`el'
     Greek.

`en'
     English.

`eo'
     Esperanto.

`es'
     Spanish.

`et'
     Estonian.

`eu'
     Basque.

`fa'
     Persian.

`fi'
     Finnish.

`fj'
     Fijian; Fiji.

`fo'
     Faroese.

`fr'
     French.

`fy'
     Frisian.

`ga'
     Irish.

`gd'
     Scots; Gaelic.

`gl'
     Gallegan; Galician.

`gn'
     Guarani.

`gu'
     Gujarati.

`gv'
     Manx.

`ha'
     Hausa (?).

`he'
     Hebrew (formerly iw).

`hi'
     Hindi.

`ho'
     Hiri Motu.

`hr'
     Croatian.

`hu'
     Hungarian.

`hy'
     Armenian.

`hz'
     Herero.

`ia'
     Interlingua.

`id'
     Indonesian (formerly in).

`ie'
     Interlingue.

`ik'
     Inupiak.

`io'
     Ido.

`is'
     Icelandic.

`it'
     Italian.

`iu'
     Inuktitut.

`ja'
     Japanese.

`jv'
     Javanese.

`ka'
     Georgian.

`ki'
     Kikuyu.

`kj'
     Kuanyama.

`kk'
     Kazakh.

`kl'
     Kalaallisut; Greenlandic.

`km'
     Khmer; Cambodian.

`kn'
     Kannada.

`ko'
     Korean.

`ks'
     Kashmiri.

`ku'
     Kurdish.

`kv'
     Komi.

`kw'
     Cornish.

`ky'
     Kirghiz.

`la'
     Latin.

`lb'
     Letzeburgesch.

`ln'
     Lingala.

`lo'
     Lao; Laotian.

`lt'
     Lithuanian.

`lv'
     Latvian; Lettish.

`mg'
     Malagasy.

`mh'
     Marshall.

`mi'
     Maori.

`mk'
     Macedonian.

`ml'
     Malayalam.

`mn'
     Mongolian.

`mo'
     Moldavian.

`mr'
     Marathi.

`ms'
     Malay.

`mt'
     Maltese.

`my'
     Burmese.

`na'
     Nauru.

`nb'
     Norwegian Bokmaal.

`nd'
     Ndebele, North.

`ne'
     Nepali.

`ng'
     Ndonga.

`nl'
     Dutch.

`nn'
     Norwegian Nynorsk.

`no'
     Norwegian.

`nr'
     Ndebele, South.

`nv'
     Navajo.

`ny'
     Chichewa; Nyanja.

`oc'
     Occitan; Provenc,al.

`om'
     (Afan) Oromo.

`or'
     Oriya.

`os'
     Ossetian; Ossetic.

`pa'
     Panjabi; Punjabi.

`pi'
     Pali.

`pl'
     Polish.

`ps'
     Pashto, Pushto.

`pt'
     Portuguese.

`qu'
     Quechua.

`rm'
     Rhaeto-Romance.

`rn'
     Rundi; Kirundi.

`ro'
     Romanian.

`ru'
     Russian.

`rw'
     Kinyarwanda.

`sa'
     Sanskrit.

`sc'
     Sardinian.

`sd'
     Sindhi.

`se'
     Northern Sami.

`sg'
     Sango; Sangro.

`si'
     Sinhalese.

`sk'
     Slovak.

`sl'
     Slovenian.

`sm'
     Samoan.

`sn'
     Shona.

`so'
     Somali.

`sq'
     Albanian.

`sr'
     Serbian.

`ss'
     Swati; Siswati.

`st'
     Sesotho; Sotho, Southern.

`su'
     Sundanese.

`sv'
     Swedish.

`sw'
     Swahili.

`ta'
     Tamil.

`te'
     Telugu.

`tg'
     Tajik.

`th'
     Thai.

`ti'
     Tigrinya.

`tk'
     Turkmen.

`tl'
     Tagalog.

`tn'
     Tswana; Setswana.

`to'
     Tonga (?).

`tr'
     Turkish.

`ts'
     Tsonga.

`tt'
     Tatar.

`tw'
     Twi.

`ty'
     Tahitian.

`ug'
     Uighur.

`uk'
     Ukrainian.

`ur'
     Urdu.

`uz'
     Uzbek.

`vi'
     Vietnamese.

`vo'
     Volapu"k; Volapuk.

`wa'
     Walloon.

`wo'
     Wolof.

`xh'
     Xhosa.

`yi'
     Yiddish (formerly ji).

`yo'
     Yoruba.

`za'
     Zhuang.

`zh'
     Chinese.

`zu'
     Zulu.


File: gettext.info,  Node: Country Codes,  Next: Program Index,  Prev: Language Codes,  Up: Top

Country Codes
*************

   The ISO 3166 standard defines two character codes for many countries
and territories.  All abbreviations for countries used in the
Translation Project should come from this standard.

`AD'
     Andorra.

`AE'
     United Arab Emirates.

`AF'
     Afghanistan.

`AG'
     Antigua and Barbuda.

`AI'
     Anguilla.

`AL'
     Albania.

`AM'
     Armenia.

`AN'
     Netherlands Antilles.

`AO'
     Angola.

`AQ'
     Antarctica.

`AR'
     Argentina.

`AS'
     Samoa (American).

`AT'
     Austria.

`AU'
     Australia.

`AW'
     Aruba.

`AZ'
     Azerbaijan.

`BA'
     Bosnia and Herzegovina.

`BB'
     Barbados.

`BD'
     Bangladesh.

`BE'
     Belgium.

`BF'
     Burkina Faso.

`BG'
     Bulgaria.

`BH'
     Bahrain.

`BI'
     Burundi.

`BJ'
     Benin.

`BM'
     Bermuda.

`BN'
     Brunei.

`BO'
     Bolivia.

`BR'
     Brazil.

`BS'
     Bahamas.

`BT'
     Bhutan.

`BV'
     Bouvet Island.

`BW'
     Botswana.

`BY'
     Belarus.

`BZ'
     Belize.

`CA'
     Canada.

`CC'
     Cocos (Keeling) Islands.

`CD'
     Congo (Dem. Rep.).

`CF'
     Central African Rep..

`CG'
     Congo (Rep.).

`CH'
     Switzerland.

`CI'
     Cote d'Ivoire.

`CK'
     Cook Islands.

`CL'
     Chile.

`CM'
     Cameroon.

`CN'
     China.

`CO'
     Colombia.

`CR'
     Costa Rica.

`CU'
     Cuba.

`CV'
     Cape Verde.

`CX'
     Christmas Island.

`CY'
     Cyprus.

`CZ'
     Czech Republic.

`DE'
     Germany.

`DJ'
     Djibouti.

`DK'
     Denmark.

`DM'
     Dominica.

`DO'
     Dominican Republic.

`DZ'
     Algeria.

`EC'
     Ecuador.

`EE'
     Estonia.

`EG'
     Egypt.

`EH'
     Western Sahara.

`ER'
     Eritrea.

`ES'
     Spain.

`ET'
     Ethiopia.

`FI'
     Finland.

`FJ'
     Fiji.

`FK'
     Falkland Islands.

`FM'
     Micronesia.

`FO'
     Faeroe Islands.

`FR'
     France.

`GA'
     Gabon.

`GB'
     Britain (UK).

`GD'
     Grenada.

`GE'
     Georgia.

`GF'
     French Guiana.

`GH'
     Ghana.

`GI'
     Gibraltar.

`GL'
     Greenland.

`GM'
     Gambia.

`GN'
     Guinea.

`GP'
     Guadeloupe.

`GQ'
     Equatorial Guinea.

`GR'
     Greece.

`GS'
     South Georgia and the South Sandwich Islands.

`GT'
     Guatemala.

`GU'
     Guam.

`GW'
     Guinea-Bissau.

`GY'
     Guyana.

`HK'
     Hong Kong.

`HM'
     Heard Island and McDonald Islands.

`HN'
     Honduras.

`HR'
     Croatia.

`HT'
     Haiti.

`HU'
     Hungary.

`ID'
     Indonesia.

`IE'
     Ireland.

`IL'
     Israel.

`IN'
     India.

`IO'
     British Indian Ocean Territory.

`IQ'
     Iraq.

`IR'
     Iran.

`IS'
     Iceland.

`IT'
     Italy.

`JM'
     Jamaica.

`JO'
     Jordan.

`JP'
     Japan.

`KE'
     Kenya.

`KG'
     Kyrgyzstan.

`KH'
     Cambodia.

`KI'
     Kiribati.

`KM'
     Comoros.

`KN'
     St Kitts and Nevis.

`KP'
     Korea (North).

`KR'
     Korea (South).

`KW'
     Kuwait.

`KY'
     Cayman Islands.

`KZ'
     Kazakhstan.

`LA'
     Laos.

`LB'
     Lebanon.

`LC'
     St Lucia.

`LI'
     Liechtenstein.

`LK'
     Sri Lanka.

`LR'
     Liberia.

`LS'
     Lesotho.

`LT'
     Lithuania.

`LU'
     Luxembourg.

`LV'
     Latvia.

`LY'
     Libya.

`MA'
     Morocco.

`MC'
     Monaco.

`MD'
     Moldova.

`MG'
     Madagascar.

`MH'
     Marshall Islands.

`MK'
     Macedonia.

`ML'
     Mali.

`MM'
     Myanmar (Burma).

`MN'
     Mongolia.

`MO'
     Macao.

`MP'
     Northern Mariana Islands.

`MQ'
     Martinique.

`MR'
     Mauritania.

`MS'
     Montserrat.

`MT'
     Malta.

`MU'
     Mauritius.

`MV'
     Maldives.

`MW'
     Malawi.

`MX'
     Mexico.

`MY'
     Malaysia.

`MZ'
     Mozambique.

`NA'
     Namibia.

`NC'
     New Caledonia.

`NE'
     Niger.

`NF'
     Norfolk Island.

`NG'
     Nigeria.

`NI'
     Nicaragua.

`NL'
     Netherlands.

`NO'
     Norway.

`NP'
     Nepal.

`NR'
     Nauru.

`NU'
     Niue.

`NZ'
     New Zealand.

`OM'
     Oman.

`PA'
     Panama.

`PE'
     Peru.

`PF'
     French Polynesia.

`PG'
     Papua New Guinea.

`PH'
     Philippines.

`PK'
     Pakistan.

`PL'
     Poland.

`PM'
     St Pierre and Miquelon.

`PN'
     Pitcairn.

`PR'
     Puerto Rico.

`PS'
     Palestine.

`PT'
     Portugal.

`PW'
     Palau.

`PY'
     Paraguay.

`QA'
     Qatar.

`RE'
     Reunion.

`RO'
     Romania.

`RU'
     Russia.

`RW'
     Rwanda.

`SA'
     Saudi Arabia.

`SB'
     Solomon Islands.

`SC'
     Seychelles.

`SD'
     Sudan.

`SE'
     Sweden.

`SG'
     Singapore.

`SH'
     St Helena.

`SI'
     Slovenia.

`SJ'
     Svalbard and Jan Mayen.

`SK'
     Slovakia.

`SL'
     Sierra Leone.

`SM'
     San Marino.

`SN'
     Senegal.

`SO'
     Somalia.

`SR'
     Suriname.

`ST'
     Sao Tome and Principe.

`SV'
     El Salvador.

`SY'
     Syria.

`SZ'
     Swaziland.

`TC'
     Turks and Caicos Is.

`TD'
     Chad.

`TF'
     French Southern and Antarctic Lands.

`TG'
     Togo.

`TH'
     Thailand.

`TJ'
     Tajikistan.

`TK'
     Tokelau.

`TM'
     Turkmenistan.

`TN'
     Tunisia.

`TO'
     Tonga.

`TP'
     East Timor.

`TR'
     Turkey.

`TT'
     Trinidad and Tobago.

`TV'
     Tuvalu.

`TW'
     Taiwan.

`TZ'
     Tanzania.

`UA'
     Ukraine.

`UG'
     Uganda.

`UM'
     US minor outlying islands.

`US'
     United States.

`UY'
     Uruguay.

`UZ'
     Uzbekistan.

`VA'
     Vatican City.

`VC'
     St Vincent.

`VE'
     Venezuela.

`VG'
     Virgin Islands (UK).

`VI'
     Virgin Islands (US).

`VN'
     Vietnam.

`VU'
     Vanuatu.

`WF'
     Wallis and Futuna.

`WS'
     Samoa (Western).

`YE'
     Yemen.

`YT'
     Mayotte.

`YU'
     Yugoslavia.

`ZA'
     South Africa.

`ZM'
     Zambia.

`ZW'
     Zimbabwe.


File: gettext.info,  Node: Program Index,  Next: Option Index,  Prev: Country Codes,  Up: Top

Program Index
*************

* Menu:

* autopoint:                             autopoint Invocation.
* gettext <1>:                           bash.
* gettext:                               sh.
* gettextize:                            gettextize Invocation.
* msgattrib:                             msgattrib Invocation.
* msgcat:                                msgcat Invocation.
* msgcmp:                                msgcmp Invocation.
* msgcomm:                               msgcomm Invocation.
* msgconv:                               msgconv Invocation.
* msgen:                                 msgen Invocation.
* msgexec:                               msgexec Invocation.
* msgfilter:                             msgfilter Invocation.
* msgfmt:                                msgfmt Invocation.
* msggrep:                               msggrep Invocation.
* msginit:                               msginit Invocation.
* msgmerge:                              msgmerge Invocation.
* msgunfmt:                              msgunfmt Invocation.
* msguniq:                               msguniq Invocation.
* ngettext <1>:                          bash.
* ngettext:                              sh.
* xgettext:                              xgettext Invocation.