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