Home | History | Annotate | Line # | Download | only in doc
      1 <HTML>
      2 <HEAD>
      3 <!-- This HTML file has been created by texi2html 1.52b
      4      from gettext.texi on 27 November 2006 -->
      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>
     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>
     12 
     13 
     14 <H1><A NAME="SEC296" HREF="gettext_toc.html#TOC296">16  Concluding Remarks</A></H1>
     15 
     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.
     21 
     22 </P>
     23 
     24 
     25 
     26 <H2><A NAME="SEC297" HREF="gettext_toc.html#TOC297">16.1  History of GNU <CODE>gettext</CODE></A></H2>
     27 <P>
     28 <A NAME="IDX1199"></A>
     29 
     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.
     37 
     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.
     50 
     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.
     62 
     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.
     75 
     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.
     85 
     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.
     99 
    100 </P>
    101 <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.
    105 
    106 </P>
    107 <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.
    110 
    111 </P>
    112 <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.
    116 
    117 </P>
    118 <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.
    124 
    125 </P>
    126 
    127 
    128 <H2><A NAME="SEC298" HREF="gettext_toc.html#TOC298">16.2  Related Readings</A></H2>
    129 <P>
    130 <A NAME="IDX1200"></A>
    131 <A NAME="IDX1201"></A>
    132 
    133 </P>
    134 <P>
    135 <STRONG> NOTE: </STRONG> This documentation section is outdated and needs to be
    136 revised.
    137 
    138 </P>
    139 <P>
    140 Eugene H. Dorr (<TT>&lsquo;dorre (a] well.com&rsquo;</TT>) maintains an interesting
    141 bibliography on internationalization matters, called
    142 <CITE>Internationalization Reference List</CITE>, which is available as:
    143 
    144 <PRE>
    145 ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/i18n-books.txt
    146 </PRE>
    147 
    148 <P>
    149 Michael Gschwind (<TT>&lsquo;mike (a] 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:
    159 
    160 <PRE>
    161 ftp://ftp.vlsivie.tuwien.ac.at/pub/8bit/ISO-programming
    162 </PRE>
    163 
    164 <P>
    165 Patrick D'Cruze (<TT>&lsquo;pdcruze (a] li.org&rsquo;</TT>) wrote a tutorial about NLS
    166 matters, and Jochen Hein (<TT>&lsquo;Hein (a] student.tu-clausthal.de&rsquo;</TT>) took
    167 over the responsibility of maintaining it.  It may be found as:
    168 
    169 <PRE>
    170 ftp://sunsite.unc.edu/pub/Linux/utils/nls/catalogs/Incoming/...
    171      ...locale-tutorial-0.8.txt.gz
    172 </PRE>
    173 
    174 <P>
    175 This site is mirrored in:
    176 
    177 <PRE>
    178 ftp://ftp.ibp.fr/pub/linux/sunsite/
    179 </PRE>
    180 
    181 <P>
    182 A French version of the same tutorial should be findable at:
    183 
    184 <PRE>
    185 ftp://ftp.ibp.fr/pub/linux/french/docs/
    186 </PRE>
    187 
    188 <P>
    189 together with French translations of many Linux-related documents.
    190 
    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>
    196