summaryrefslogtreecommitdiffstats
path: root/doc/gettext.info-7
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2001-11-30 15:24:16 +0000
committerBruno Haible <bruno@clisp.org>2009-06-21 23:31:23 +0200
commit88498d7b70cffdf8f74768c9d5f477637261da47 (patch)
tree2b6878d994ebfd6d0be10f081f23d21644f92d9b /doc/gettext.info-7
parent43a1454038bf0d52dba9c99a797b3ae499fc1423 (diff)
downloadexternal_gettext-88498d7b70cffdf8f74768c9d5f477637261da47.zip
external_gettext-88498d7b70cffdf8f74768c9d5f477637261da47.tar.gz
external_gettext-88498d7b70cffdf8f74768c9d5f477637261da47.tar.bz2
Automatically generated.
Diffstat (limited to 'doc/gettext.info-7')
-rw-r--r--doc/gettext.info-72352
1 files changed, 2352 insertions, 0 deletions
diff --git a/doc/gettext.info-7 b/doc/gettext.info-7
new file mode 100644
index 0000000..30197ad
--- /dev/null
+++ b/doc/gettext.info-7
@@ -0,0 +1,2352 @@
+This is gettext.info, produced by makeinfo version 4.0 from
+gettext.texi.
+
+INFO-DIR-SECTION GNU Gettext Utilities
+START-INFO-DIR-ENTRY
+* Gettext: (gettext). GNU gettext utilities.
+* gettextize: (gettext)gettextize Invocation. Prepare a package for gettext.
+* msgfmt: (gettext)msgfmt Invocation. Make MO files out of PO files.
+* msgmerge: (gettext)msgmerge Invocation. Update two PO files into one.
+* xgettext: (gettext)xgettext Invocation. Extract strings into a PO file.
+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, 1996, 1997, 1998, 2001 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: List of Programming Languages, Next: List of Data Formats, Prev: Translators for other Languages, Up: Programming Languages
+
+Individual Programming Languages
+================================
+
+* Menu:
+
+* C:: C, C++, Objective C
+* sh:: sh - Shell Script
+* bash:: bash - Bourne-Again Shell Script
+* Python:: Python
+* Common Lisp:: GNU clisp - Common Lisp
+* clisp C:: GNU clisp C sources
+* Emacs Lisp:: Emacs Lisp
+* librep:: librep
+* Smalltalk:: GNU Smalltalk
+* Java:: Java
+* gawk:: GNU awk
+* Pascal:: Pascal - Free Pascal Compiler
+* wxWindows:: wxWindows library
+* YCP:: YCP - YaST2 scripting language
+* Perl:: Perl
+* PHP:: PHP Hypertext Preprocessor
+* Pike:: Pike
+
+
+File: gettext.info, Node: C, Next: sh, Prev: List of Programming Languages, Up: List of Programming Languages
+
+C, C++, Objective C
+-------------------
+
+RPMs
+ gcc, gpp, gobjc, glibc, gettext
+
+File extension
+ For C: `c', `h'.
+ For C++: `C', `c++', `cc', `cxx', `cpp', `hpp'.
+ For Objective C: `m'.
+
+String syntax
+ `"abc"'
+
+gettext shorthand
+ `_("abc")'
+
+gettext/ngettext functions
+ `gettext', `dgettext', `dcgettext', `ngettext', `dngettext',
+ `dcngettext'
+
+textdomain
+ `textdomain' function
+
+bindtextdomain
+ `bindtextdomain' function
+
+setlocale
+ Programmer must call `setlocale (LC_ALL, "")'
+
+Prerequisite
+ `#include <libintl.h>'
+ `#include <locale.h>'
+ `#define _(string) gettext (string)'
+
+Use or emulate GNU gettext
+ Use
+
+Extractor
+ `xgettext -k_'
+
+Formatting with positions
+ `fprintf "%2$d %1$d"' (POSIX but not C 99)
+
+Portability
+ autoconf (gettext.m4) and #if ENABLE_NLS
+
+po-mode marking
+ yes
+
+
+File: gettext.info, Node: sh, Next: bash, Prev: C, Up: List of Programming Languages
+
+sh - Shell Script
+-----------------
+
+RPMs
+ bash, gettext
+
+File extension
+ `sh'
+
+String syntax
+ `"abc"', `'abc'', `abc'
+
+gettext shorthand
+ `"`gettext "abc"`"'
+
+gettext/ngettext functions
+ `gettext', `ngettext' programs
+
+textdomain
+ environment variable `TEXTDOMAIN'
+
+bindtextdomain
+ environment variable `TEXTDOMAINDIR'
+
+setlocale
+ automatic
+
+Prerequisite
+ --
+
+Use or emulate GNU gettext
+ use
+
+Extractor
+ --
+
+Formatting with positions
+ --
+
+Portability
+ --
+
+po-mode marking
+ --
+
+
+File: gettext.info, Node: bash, Next: Python, Prev: sh, Up: List of Programming Languages
+
+bash - Bourne-Again Shell Script
+--------------------------------
+
+RPMs
+ bash 2.0 or newer, gettext
+
+File extension
+ `sh'
+
+String syntax
+ `"abc"', `'abc'', `abc'
+
+gettext shorthand
+ `$"abc"'
+
+gettext/ngettext functions
+ `gettext', `ngettext' programs
+
+textdomain
+ environment variable `TEXTDOMAIN'
+
+bindtextdomain
+ environment variable `TEXTDOMAINDIR'
+
+setlocale
+ automatic
+
+Prerequisite
+ --
+
+Use or emulate GNU gettext
+ use
+
+Extractor
+ `bash --dump-po-strings'
+
+Formatting with positions
+ --
+
+Portability
+ --
+
+po-mode marking
+ --
+
+
+File: gettext.info, Node: Python, Next: Common Lisp, Prev: bash, Up: List of Programming Languages
+
+Python
+------
+
+RPMs
+ python
+
+File extension
+ `py'
+
+String syntax
+ `'abc'', `u'abc'', `r'abc'', `ur'abc'',
+ `"abc"', `u"abc"', `r"abc"', `ur"abc"',
+ `'''abc'''', `u'''abc'''', `r'''abc'''', `ur'''abc'''',
+ `"""abc"""', `u"""abc"""', `r"""abc"""', `ur"""abc"""'
+
+gettext shorthand
+ `_('abc')' etc.
+
+gettext/ngettext functions
+ `gettext.gettext', `gettext.dgettext', also `ugettext'
+
+textdomain
+ `gettext.textdomain' function, or `gettext.install(DOMAIN)'
+ function
+
+bindtextdomain
+ `gettext.bindtextdomain' function, or
+ `gettext.install(DOMAIN,LOCALEDIR)' function
+
+setlocale
+ not used by the gettext emulation
+
+Prerequisite
+ `import gettext'
+
+Use or emulate GNU gettext
+ emulate. Bug: uses only the first found .mo file, not all of them
+
+Extractor
+ pygettext.py
+
+Formatting with positions
+ `'...%(ident)d...' % { 'ident': value }'
+
+Portability
+ fully portable
+
+po-mode marking
+ --
+
+
+File: gettext.info, Node: Common Lisp, Next: clisp C, Prev: Python, Up: List of Programming Languages
+
+GNU clisp - Common Lisp
+-----------------------
+
+RPMs
+ clisp 2.28 or newer
+
+File extension
+ `lisp'
+
+String syntax
+ `"abc"'
+
+gettext shorthand
+ `(_ "abc")', `(ENGLISH "abc")'
+
+gettext/ngettext functions
+ `i18n:gettext', `i18n:ngettext'
+
+textdomain
+ `i18n:textdomain'
+
+bindtextdomain
+ `i18n:textdomaindir'
+
+setlocale
+ automatic
+
+Prerequisite
+ --
+
+Use or emulate GNU gettext
+ use
+
+Extractor
+ `clisp-xgettext'
+
+Formatting with positions
+ `format "~1@*~D ~0@*~D"'
+
+Portability
+ On platforms without gettext, no translation.
+
+po-mode marking
+ --
+
+
+File: gettext.info, Node: clisp C, Next: Emacs Lisp, Prev: Common Lisp, Up: List of Programming Languages
+
+GNU clisp C sources
+-------------------
+
+RPMs
+ clisp
+
+File extension
+ `d'
+
+String syntax
+ `"abc"'
+
+gettext shorthand
+ `ENGLISH ? "abc" : ""'
+ `GETTEXT("abc")'
+ `GETTEXTL("abc")'
+
+gettext/ngettext functions
+ `clgettext', `clgettextl'
+
+textdomain
+ --
+
+bindtextdomain
+ --
+
+setlocale
+ automatic
+
+Prerequisite
+ `#include "lispbibl.c"'
+
+Use or emulate GNU gettext
+ use
+
+Extractor
+ `clisp-xgettext'
+
+Formatting with positions
+ `fprintf "%2$d %1$d"' (POSIX but not C 99)
+
+Portability
+ On platforms without gettext, no translation.
+
+po-mode marking
+ --
+
+
+File: gettext.info, Node: Emacs Lisp, Next: librep, Prev: clisp C, Up: List of Programming Languages
+
+Emacs Lisp
+----------
+
+RPMs
+ emacs, xemacs
+
+File extension
+ `el'
+
+String syntax
+ `"abc"'
+
+gettext shorthand
+ `(_"abc")'
+
+gettext/ngettext functions
+ `gettext', `dgettext' (xemacs only)
+
+textdomain
+ `domain' special form (xemacs only)
+
+bindtextdomain
+ `bind-text-domain' function (xemacs only)
+
+setlocale
+ automatic
+
+Prerequisite
+ --
+
+Use or emulate GNU gettext
+ use
+
+Extractor
+ xpot
+
+Formatting with positions
+ `format "%2$d %1$d"'
+
+Portability
+ Only XEmacs. Without `I18N3' defined at build time, no translation.
+
+po-mode marking
+ --
+
+
+File: gettext.info, Node: librep, Next: Smalltalk, Prev: Emacs Lisp, Up: List of Programming Languages
+
+librep
+------
+
+RPMs
+ librep
+
+File extension
+ `jl'
+
+String syntax
+ `"abc"'
+
+gettext shorthand
+ `(_"abc")'
+
+gettext/ngettext functions
+ `gettext'
+
+textdomain
+ `textdomain' function
+
+bindtextdomain
+ `bindtextdomain' function
+
+setlocale
+ --
+
+Prerequisite
+ `(require 'rep.i18n.gettext)'
+
+Use or emulate GNU gettext
+ use
+
+Extractor
+ `rep-xgettext'
+
+Formatting with positions
+ `format "%2$d %1$d"'
+
+Portability
+ On platforms without gettext, no translation.
+
+po-mode marking
+ --
+
+
+File: gettext.info, Node: Smalltalk, Next: Java, Prev: librep, Up: List of Programming Languages
+
+GNU Smalltalk
+-------------
+
+RPMs
+ smalltalk
+
+File extension
+ `st'
+
+String syntax
+ `''abc'''
+
+gettext shorthand
+ `NLS? ''abc'''
+ `self? ''abc'''
+
+gettext/ngettext functions
+ `LcMessagesDomain>>#at:', `LcMessagesDomain>>#at:plural:with:'
+
+textdomain
+ `LcMessages>>#?' (returns a `LcMessagesDomain' object).
+ Example: `Locale default messages ? 'gettext''
+
+bindtextdomain
+ `LcMessages>>#domain:directory:' (returns a `LcMessagesDomain'
+ object)
+
+setlocale
+ You can obtain any `Locale' object from `Locale' class methods
+ such as `#fromString:' or `#default'.
+ Example: `Locale default messages' gives the `LcMessages' object
+ for the default locale.
+
+Prerequisite
+ The gettext code is contained in the `I18N' package.
+
+Use or emulate GNU gettext
+ emulate
+
+Extractor
+ --
+
+Formatting with positions
+ `'%1 %2' bindWith: 'Hello' with: 'world''
+
+Portability
+ fully portable
+
+po-mode marking
+ --
+
+
+File: gettext.info, Node: Java, Next: gawk, Prev: Smalltalk, Up: List of Programming Languages
+
+Java
+----
+
+RPMs
+ java, java2
+
+File extension
+ `java'
+
+String syntax
+ "abc"
+
+gettext shorthand
+ _("abc")
+
+gettext/ngettext functions
+ `GettextResource.gettext', `GettextResource.ngettext'
+
+textdomain
+ --, use `ResourceBundle.getResource' instead
+
+bindtextdomain
+ --, use CLASSPATH instead
+
+setlocale
+ automatic
+
+Prerequisite
+ --
+
+Use or emulate GNU gettext
+ --, uses a Java specific message catalog format
+
+Extractor
+ `xgettext -k_'
+
+Formatting with positions
+ `MessageFormat.format "{1,number} {0,number}"'
+
+Portability
+ fully portable
+
+po-mode marking
+ --
+
+ Before marking strings as internationalizable, uses of the string
+concatenation operator need to be converted to `MessageFormat'
+applications. For example, `"file "+filename+" not found"' becomes
+`MessageFormat.format("file {0} not found", new Object[] { filename })'.
+Only after this is done, can the strings be marked and extracted.
+
+ GNU gettext uses the native Java internationalization mechanism,
+namely `ResourceBundle's. To convert a PO file to a ResourceBundle, the
+`msgfmt' program can be used with the option `--java' or `--java2'. To
+convert a ResourceBundle back to a PO file, the `msgunfmt' program can
+be used with the option `--java'.
+
+ Two different programmatic APIs can be used to access
+ResourceBundles. Note that both APIs work with all kinds of
+ResourceBundles, whether GNU gettext generated classes, or other
+`.class' or `.properties' files.
+
+ 1. The `java.util.ResourceBundle' API.
+
+ In particular, its `getString' function returns a string
+ translation. Note that a missing translation yields a
+ `MissingResourceException'.
+
+ This has the advantage of being the standard API. And it does not
+ require any additional libraries, only the `msgfmt' generated
+ `.class' files. But it cannot do plural handling, even if the
+ resource was generated from a PO file with plural handling.
+
+ 2. The `gnu.gettext.GettextResource' API.
+
+ Reference documentation in Javadoc 1.1 style format is in the
+ javadoc1 directory (javadoc1/tree.html) and in Javadoc 2 style
+ format in the javadoc2 directory (javadoc2/index.html).
+
+ Its `gettext' function returns a string translation. Note that when
+ a translation is missing, the MSGID argument is returned unchanged.
+
+ This has the advantage of having the `ngettext' function for plural
+ handling.
+
+ To use this API, one needs the `libintl.jar' file which is part of
+ the GNU gettext package and distributed under the LGPL.
+
+
+File: gettext.info, Node: gawk, Next: Pascal, Prev: Java, Up: List of Programming Languages
+
+GNU awk
+-------
+
+RPMs
+ gawk 3.1 or newer
+
+File extension
+ `awk'
+
+String syntax
+ `"abc"'
+
+gettext shorthand
+ `_"abc"'
+
+gettext/ngettext functions
+ `dcgettext'
+
+textdomain
+ `TEXTDOMAIN' variable
+
+bindtextdomain
+ `bindtextdomain' function
+
+setlocale
+ automatic, but missing `setlocale (LC_MESSAGES, "")' in gawk-3.1.0
+
+Prerequisite
+ --
+
+Use or emulate GNU gettext
+ use
+
+Extractor
+ `gawk --gen-po'
+
+Formatting with positions
+ `printf "%2$d %1$d"' (GNU awk only)
+
+Portability
+ On platforms without gettext, no translation. On non-GNU awks,
+ you must define `dcgettext' and `bindtextdomain' yourself.
+
+po-mode marking
+ --
+
+
+File: gettext.info, Node: Pascal, Next: wxWindows, Prev: gawk, Up: List of Programming Languages
+
+Pascal - Free Pascal Compiler
+-----------------------------
+
+RPMs
+ fpk
+
+File extension
+ `pp', `pas'
+
+String syntax
+ `'abc''
+
+gettext shorthand
+ automatic
+
+gettext/ngettext functions
+ --, use `ResourceString' data type instead
+
+textdomain
+ --, use `TranslateResourceStrings' function instead
+
+bindtextdomain
+ --, use `TranslateResourceStrings' function instead
+
+setlocale
+ automatic, but uses only LANG, not LC_MESSAGES or LC_ALL
+
+Prerequisite
+ `{$mode delphi}' or `{$mode objfpc}'
+ `uses gettext;'
+
+Use or emulate GNU gettext
+ emulate partially
+
+Extractor
+ `ppc386' followed by `xgettext' or `rstconv'
+
+Formatting with positions
+ `uses sysutils;'
+ `format "%1:d %0:d"'
+
+Portability
+ ?
+
+po-mode marking
+ --
+
+ The Pascal compiler has special support for the `ResourceString' data
+type. It generates a `.rst' file. This is then converted to a `.pot'
+file by use of `xgettext' or `rstconv'. At runtime, a `.mo' file
+corresponding to translations of this `.pot' file can be loaded using
+the `TranslateResourceStrings' function in the `gettext' unit.
+
+
+File: gettext.info, Node: wxWindows, Next: YCP, Prev: Pascal, Up: List of Programming Languages
+
+wxWindows library
+-----------------
+
+RPMs
+ wxGTK, gettext
+
+File extension
+ `cpp'
+
+String syntax
+ `"abc"'
+
+gettext shorthand
+ `_("abc")'
+
+gettext/ngettext functions
+ `wxLocale::GetString', `wxGetTranslation'
+
+textdomain
+ `wxLocale::AddCatalog'
+
+bindtextdomain
+ `wxLocale::AddCatalogLookupPathPrefix'
+
+setlocale
+ `wxLocale::Init', `wxSetLocale'
+
+Prerequisite
+ `#include <wx/intl.h>'
+
+Use or emulate GNU gettext
+ emulate, see `include/wx/intl.h' and `src/common/intl.cpp'
+
+Extractor
+ `xgettext'
+
+Formatting with positions
+ --
+
+Portability
+ fully portable
+
+po-mode marking
+ yes
+
+
+File: gettext.info, Node: YCP, Next: Perl, Prev: wxWindows, Up: List of Programming Languages
+
+YCP - YaST2 scripting language
+------------------------------
+
+RPMs
+ libycp, libycp-devel, yast2-core-translator
+
+File extension
+ `ycp'
+
+String syntax
+ `"abc"'
+
+gettext shorthand
+ `_("abc")'
+
+gettext/ngettext functions
+ `_()' with 1 or 3 arguments
+
+textdomain
+ `textdomain' statement
+
+bindtextdomain
+ --
+
+setlocale
+ --
+
+Prerequisite
+ --
+
+Use or emulate GNU gettext
+ use maps instead
+
+Extractor
+ `xgettext'
+
+Formatting with positions
+ `sformat "%2 %1"'
+
+Portability
+ fully portable
+
+po-mode marking
+ --
+
+
+File: gettext.info, Node: Perl, Next: PHP, Prev: YCP, Up: List of Programming Languages
+
+Perl
+----
+
+RPMs
+ perl, perl-gettext
+
+File extension
+ `pl', `PL'
+
+String syntax
+ `"abc"'
+
+gettext shorthand
+ --
+
+gettext/ngettext functions
+ `gettext', `dgettext', `dcgettext'
+
+textdomain
+ `textdomain' function
+
+bindtextdomain
+ `bindtextdomain' function
+
+setlocale
+ Use `setlocale (LC_ALL, "");'
+
+Prerequisite
+ `use POSIX;'
+ `use Locale::gettext;'
+
+Use or emulate GNU gettext
+ use
+
+Extractor
+ ?
+
+Formatting with positions
+ --
+
+Portability
+ ?
+
+po-mode marking
+ --
+
+
+File: gettext.info, Node: PHP, Next: Pike, Prev: Perl, Up: List of Programming Languages
+
+PHP Hypertext Preprocessor
+--------------------------
+
+RPMs
+ mod_php4, phplib, phpdoc
+
+File extension
+ `php', `php3', `php4'
+
+String syntax
+ `"abc"'
+
+gettext shorthand
+ `_("abc")'
+
+gettext/ngettext functions
+ `gettext', `dgettext', `dcgettext'
+
+textdomain
+ `textdomain' function
+
+bindtextdomain
+ `bindtextdomain' function
+
+setlocale
+ `setlocale' function
+
+Prerequisite
+ --
+
+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: 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
+
+
+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, Prev: POT, Up: List of Data Formats
+
+Resource String Table
+---------------------
+
+RPMs
+ fpk
+
+File extension
+ `rst'
+
+Extractor
+ `xgettext', `rstconv'
+
+
+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.
+
+`is'
+ Icelandic.
+
+`it'
+ Italian.
+
+`iu'
+ Inuktitut.
+
+`ja'
+ Japanese.
+
+`jw'
+ 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.
+
+`wo'
+ Wolof.
+
+`xh'
+ Xhosa.
+
+`yi'
+ Yiddish (formerly ji).
+
+`yo'
+ Yoruba.
+
+`za'
+ Zhuang.
+
+`zh'
+ Chinese.
+
+`zu'
+ Zulu.
+
+
+File: gettext.info, Node: Country Codes, 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.
+
+