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