3 <!-- This HTML file has been created by texi2html 1.52a
4 from gettext.texi on 23 May 2005 -->
6 <TITLE>GNU gettext utilities -
14 Concluding Remarks
</TITLE>
9 Go to the
<A HREF=
"gettext_1.html">first
</A>,
<A HREF=
"gettext_13.html">previous
</A>,
<A HREF=
"gettext_15.html">next
</A>,
<A HREF=
"gettext_22.html">last
</A> section,
<A HREF=
"gettext_toc.html">table of contents
</A>.
13 <H1><A NAME=
"SEC287" HREF=
"gettext_toc.html#TOC287">14 Concluding Remarks
</A></H1>
16 We would like to conclude this GNU
<CODE>gettext
</CODE> manual by presenting
17 an history of the Translation Project so far. We finally give
18 a few pointers for those who want to do further research or readings
19 about Native Language Support matters.
25 <H2><A NAME=
"SEC288" HREF=
"gettext_toc.html#TOC288">14.1 History of GNU
<CODE>gettext
</CODE></A></H2>
27 <A NAME=
"IDX1160"></A>
31 Internationalization concerns and algorithms have been informally
32 and casually discussed for years in GNU, sometimes around GNU
33 <CODE>libc
</CODE>, maybe around the incoming
<CODE>Hurd
</CODE>, or otherwise
34 (nobody clearly remembers). And even then, when the work started for
35 real, this was somewhat independently of these previous discussions.
39 This all began in July
1994, when Patrick D'Cruze had the idea and
40 initiative of internationalizing version
3.9.2 of GNU
<CODE>fileutils
</CODE>.
41 He then asked Jim Meyering, the maintainer, how to get those changes
42 folded into an official release. That first draft was full of
43 <CODE>#ifdef
</CODE>s and somewhat disconcerting, and Jim wanted to find
44 nicer ways. Patrick and Jim shared some tries and experimentations
45 in this area. Then, feeling that this might eventually have a deeper
46 impact on GNU, Jim wanted to know what standards were, and contacted
47 Richard Stallman, who very quickly and verbally described an overall
48 design for what was meant to become
<CODE>glocale
</CODE>, at that time.
52 Jim implemented
<CODE>glocale
</CODE> and got a lot of exhausting feedback
53 from Patrick and Richard, of course, but also from Mitchum DSouza
54 (who wrote a
<CODE>catgets
</CODE>-like package), Roland McGrath, maybe David
55 MacKenzie, Fran
çois Pinard, and Paul Eggert, all pushing and
56 pulling in various directions, not always compatible, to the extent
57 that after a couple of test releases,
<CODE>glocale
</CODE> was torn apart.
58 In particular, Paul Eggert -- always keeping an eye on developments
59 in Solaris -- advocated the use of the
<CODE>gettext
</CODE> API over
60 <CODE>glocale
</CODE>'s
<CODE>catgets
</CODE>-based API.
64 While Jim took some distance and time and became dad for a second
65 time, Roland wanted to get GNU
<CODE>libc
</CODE> internationalized, and
66 got Ulrich Drepper involved in that project. Instead of starting
67 from
<CODE>glocale
</CODE>, Ulrich rewrote something from scratch, but
68 more conformant to the set of guidelines who emerged out of the
69 <CODE>glocale
</CODE> effort. Then, Ulrich got people from the previous
70 forum to involve themselves into this new project, and the switch
71 from
<CODE>glocale
</CODE> to what was first named
<CODE>msgutils
</CODE>, renamed
72 <CODE>nlsutils
</CODE>, and later
<CODE>gettext
</CODE>, became officially accepted
73 by Richard in May
1995 or so.
77 Let's summarize by saying that Ulrich Drepper wrote GNU
<CODE>gettext
</CODE>
78 in April
1995. The first official release of the package, including
79 PO mode, occurred in July
1995, and was numbered
0.7. Other people
80 contributed to the effort by providing a discussion forum around
81 Ulrich, writing little pieces of code, or testing. These are quoted
82 in the
<CODE>THANKS
</CODE> file which comes with the GNU
<CODE>gettext
</CODE>
87 While this was being done, Fran
çois adapted half a dozen of
88 GNU packages to
<CODE>glocale
</CODE> first, then later to
<CODE>gettext
</CODE>,
89 putting them in pretest, so providing along the way an effective
90 user environment for fine tuning the evolving tools. He also took
91 the responsibility of organizing and coordinating the Translation
92 Project. After nearly a year of informal exchanges between people from
93 many countries, translator teams started to exist in May
1995, through
94 the creation and support by Patrick D'Cruze of twenty unmoderated
95 mailing lists for that many native languages, and two moderated
96 lists: one for reaching all teams at once, the other for reaching
97 all willing maintainers of internationalized free software packages.
101 Fran
çois also wrote PO mode in June
1995 with the collaboration
102 of Greg McGary, as a kind of contribution to Ulrich's package.
103 He also gave a hand with the GNU
<CODE>gettext
</CODE> Texinfo manual.
107 In
1997, Ulrich Drepper released the GNU libc
2.0, which included the
108 <CODE>gettext
</CODE>,
<CODE>textdomain
</CODE> and
<CODE>bindtextdomain
</CODE> functions.
112 In
2000, Ulrich Drepper added plural form handling (the
<CODE>ngettext
</CODE>
113 function) to GNU libc. Later, in
2001, he released GNU libc
2.2.x,
114 which is the first free C library with full internationalization support.
118 Ulrich being quite busy in his role of General Maintainer of GNU libc,
119 he handed over the GNU
<CODE>gettext
</CODE> maintenance to Bruno Haible in
120 2000. Bruno added the plural form handling to the tools as well, added
121 support for UTF-
8 and CJK locales, and wrote a few new tools for
122 manipulating PO files.
127 <H2><A NAME=
"SEC289" HREF=
"gettext_toc.html#TOC289">14.2 Related Readings
</A></H2>
129 <A NAME=
"IDX1161"></A>
130 <A NAME=
"IDX1162"></A>
134 Eugene H. Dorr (
<TT>`dorre@well.com
´</TT>) maintains an interesting
135 bibliography on internationalization matters, called
136 <CITE>Internationalization Reference List
</CITE>, which is available as:
139 ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/i18n-books.txt
143 Michael Gschwind (
<TT>`mike@vlsivie.tuwien.ac.at
´</TT>) maintains a
144 Frequently Asked Questions (FAQ) list, entitled
<CITE>Programming for
145 Internationalisation
</CITE>. This FAQ discusses writing programs which
146 can handle different language conventions, character sets, etc.;
147 and is applicable to all character set encodings, with particular
148 emphasis on ISO
8859-
1. It is regularly published in Usenet
149 groups
<TT>`comp.unix.questions
´</TT>,
<TT>`comp.std.internat
´</TT>,
150 <TT>`comp.software.international
´</TT>,
<TT>`comp.lang.c
´</TT>,
151 <TT>`comp.windows.x
´</TT>,
<TT>`comp.std.c
´</TT>,
<TT>`comp.answers
´</TT>
152 and
<TT>`news.answers
´</TT>. The home location of this document is:
155 ftp://ftp.vlsivie.tuwien.ac.at/pub/
8bit/ISO-programming
159 Patrick D'Cruze (
<TT>`pdcruze@li.org
´</TT>) wrote a tutorial about NLS
160 matters, and Jochen Hein (
<TT>`Hein@student.tu-clausthal.de
´</TT>) took
161 over the responsibility of maintaining it. It may be found as:
164 ftp://sunsite.unc.edu/pub/Linux/utils/nls/catalogs/Incoming/...
165 ...locale-tutorial-
0.8.txt.gz
169 This site is mirrored in:
172 ftp://ftp.ibp.fr/pub/linux/sunsite/
176 A French version of the same tutorial should be findable at:
179 ftp://ftp.ibp.fr/pub/linux/french/docs/
183 together with French translations of many Linux-related documents.
187 Go to the
<A HREF=
"gettext_1.html">first
</A>,
<A HREF=
"gettext_13.html">previous
</A>,
<A HREF=
"gettext_15.html">next
</A>,
<A HREF=
"gettext_22.html">last
</A> section,
<A HREF=
"gettext_toc.html">table of contents
</A>.