]> gcc.gnu.org Git - gcc.git/blame - texinfo/ABOUT-NLS
Initial revision
[gcc.git] / texinfo / ABOUT-NLS
CommitLineData
1eb3e844
JL
1Notes on the GNU Translation Project
2************************************
3
4 GNU is going international! The GNU Translation Project is a way to
5get maintainers, translators, and users all together, so that GNU will
6gradually become able to speak many languages. A few packages already
7provide translations for their messages.
8
9 If you found this `ABOUT-NLS' file inside a GNU distribution, you
10may assume that the distributed package does use GNU `gettext'
11internally, itself available at your nearest GNU archive site. But you
12do *not* need to install GNU `gettext' prior to configuring, installing
13or using this package with messages translated.
14
15 Installers will find here some useful hints. These notes also
16explain how users should proceed for getting the programs to use the
17available translations. They tell how people wanting to contribute and
18work at translations should contact the appropriate team.
19
20 When reporting bugs in the `intl/' directory or bugs which may be
21related to internationalization, you should tell about the version of
22`gettext' which is used. The information can be found in the
23`intl/VERSION' file, in internationalized packages.
24
25One advise in advance
26=====================
27
28 If you want to exploit the full power of internationalization, you
29should configure it using
30
31 ./configure --with-included-gettext
32
33to force usage of internationalizing routines provided within this
34package, despite the existence of internationalizing capabilities in
35the operating system where this package is being installed. So far, no
36prior implementation provides as many useful features (such as locale
37alias or message inheritance). It is also not possible to offer this
38additional functionality on top of a `catgets' implementation. Future
39versions of GNU `gettext' will very likely convey even more
40functionality. So it might be a good idea to change to GNU `gettext'
41as soon as possible.
42
43INSTALL Matters
44===============
45
46 Some GNU packages are "localizable" when properly installed; the
47programs they contain can be made to speak your own native language.
48Most such packages use GNU `gettext'. Other packages have their own
49ways to internationalization, predating GNU `gettext'.
50
51 By default, this package will be installed to allow translation of
52messages. It will automatically detect whether the system provides
53usable `catgets' (if using this is selected by the installer) or
54`gettext' functions. If neither is available, the GNU `gettext' own
55library will be used. This library is wholly contained within this
56package, usually in the `intl/' subdirectory, so prior installation of
57the GNU `gettext' package is *not* required. Installers may use
58special options at configuration time for changing the default
59behaviour. The commands:
60
61 ./configure --with-included-gettext
62 ./configure --with-catgets
63 ./configure --disable-nls
64
65will respectively bypass any pre-existing `catgets' or `gettext' to use
66the internationalizing routines provided within this package, enable
67the use of the `catgets' functions (if found on the locale system), or
68else, *totally* disable translation of messages.
69
70 When you already have GNU `gettext' installed on your system and run
71configure without an option for your new package, `configure' will
72probably detect the previously built and installed `libintl.a' file and
73will decide to use this. This might be not what is desirable. You
74should use the more recent version of the GNU `gettext' library. I.e.
75if the file `intl/VERSION' shows that the library which comes with this
76package is more recent, you should use
77
78 ./configure --with-included-gettext
79
80to prevent auto-detection.
81
82 By default the configuration process will not test for the `catgets'
83function and therefore they will not be used. The reasons are already
84given above: the emulation on top of `catgets' cannot provide all the
85extensions provided by the GNU `gettext' library. If you nevertheless
86want to use the `catgets' functions use
87
88 ./configure --with-catgets
89
90to enable the test for `catgets' (this causes no harm if `catgets' is
91not available on your system). If you really select this option we
92would like to hear about the reasons because we cannot think of any
93good one ourself.
94
95 Internationalized packages have usually many `po/LL.po' files, where
96LL gives an ISO 639 two-letter code identifying the language. Unless
97translations have been forbidden at `configure' time by using the
98`--disable-nls' switch, all available translations are installed
99together with the package. However, the environment variable `LINGUAS'
100may be set, prior to configuration, to limit the installed set.
101`LINGUAS' should then contain a space separated list of two-letter
102codes, stating which languages are allowed.
103
104Using This Package
105==================
106
107 As a user, if your language has been installed for this package, you
108only have to set the `LANG' environment variable to the appropriate
109ISO 639 `LL' two-letter code prior to using the programs in the
110package. For example, let's suppose that you speak German. At the
111shell prompt, merely execute `setenv LANG de' (in `csh'),
112`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash'). This
113can be done from your `.login' or `.profile' file, once and for all.
114
115 An operating system might already offer message localization for
116many of its programs, while other programs (whether GNU or not) have
117been installed locally with the full capabilities of GNU `gettext'.
118Just using `gettext' extended syntax for `LANG' would break proper
119localization of already available operating system programs. In this
120case, users should set both `LANGUAGE' and `LANG' variables in their
121environment, as programs using GNU `gettext' give preference to
122`LANGUAGE'. For example, some Swedish users would rather read
123translations in German than English for when Swedish is not available.
124This is easily accomplished by setting `LANGUAGE' to `sv:de' while
125leaving `LANG' to `sv'.
126
127Translating Teams
128=================
129
130 For the GNU Translation Project to be a success, we need interested
131people who like their own language and write it well, and who are also
132able to synergize with other translators speaking the same language.
133Each translation team has its own mailing list, courtesy of Linux
134International. You may reach your translation team at the address
135`LL@li.org', replacing LL by the two-letter ISO 639 code for your
136language. Language codes are *not* the same as the country codes given
137in ISO 3166. The following translation teams exist, as of February
1381997:
139
140 Arabic `ar', Chinese `zh', Czech `cs', Danish `da', Dutch `nl',
141 English `en', Esperanto `eo', Finnish `fi', French `fr', German
142 `de', Greek `el', Hebrew `he', Hungarian `hu', Irish `ga', Italian
143 `it', Indonesian `id', Japanese `ja', Korean `ko', Latin `la',
144 Norwegian `no', Persian `fa', Polish `pl', Portuguese `pt',
145 Russian `ru', Slovenian `sl', Spanish `es', Swedish `sv', Telugu
146 `te', Turkish `tr' and Ukrainian `uk'.
147
148For example, you may reach the Chinese translation team by writing to
149`zh@li.org'.
150
151 If you'd like to volunteer to *work* at translating messages, you
152should become a member of the translating team for your own language.
153The subscribing address is *not* the same as the list itself, it has
154`-request' appended. For example, speakers of Swedish can send a
155message to `sv-request@li.org', having this message body:
156
157 subscribe
158
159 Keep in mind that team members are expected to participate
160*actively* in translations, or at solving translational difficulties,
161rather than merely lurking around. If your team does not exist yet and
162you want to start one, or if you are unsure about what to do or how to
163get started, please write to `gnu-translation@gnu.ai.mit.edu' to reach
164the GNU coordinator for all translator teams.
165
166 The English team is special. It works at improving and uniformizing
167the terminology used in GNU. Proven linguistic skill are praised more
168than programming skill, here. For the time being, please avoid
169subscribing to the English team unless explicitly invited to do so.
170
171Available Packages
172==================
173
174 Languages are not equally supported in all GNU packages. The
175following matrix shows the current state of GNU internationalization,
176as of February 1997. The matrix shows, in regard of each package, for
177which languages PO files have been submitted to translation
178coordination.
179
180 Ready PO files cs de en es fi fr ja ko nl no pl pt sl sv
181 .-------------------------------------------.
182 bash | [] [] [] | 3
183 bison | [] [] [] | 3
184 clisp | [] [] [] | 3
185 cpio | [] [] [] [] [] | 5
186 diffutils | [] [] [] [] | 4
187 enscript | [] [] [] [] [] | 5
188 fileutils | [] [] [] [] [] [] [] [] | 8
189 findutils | [] [] [] [] [] [] [] | 7
190 flex | [] [] [] | 3
191 gcal | [] [] [] | 3
192 gettext | [] [] [] [] [] [] [] [] [] [] | 11
193 grep | [] [] [] [] [] [] [] [] | 8
194 hello | [] [] [] [] [] [] [] [] [] [] | 10
195 id-utils | [] [] | 2
196 indent | [] [] | 2
197 libc | [] [] [] [] [] [] [] | 7
198 m4 | [] [] [] [] [] | 5
199 make | [] [] [] [] [] [] | 6
200 music | [] | 1
201 ptx | [] [] [] [] [] [] [] [] | 8
202 recode | [] [] [] [] [] [] [] [] | 8
203 sh-utils | [] [] [] [] [] | 5
204 sharutils | [] [] [] [] [] | 5
205 tar | [] [] [] [] [] [] [] [] [] | 9
206 texinfo | | 0
207 textutils | [] [] [] [] [] [] | 6
208 wdiff | [] [] [] [] [] [] [] [] | 8
209 `-------------------------------------------'
210 14 languages cs de en es fi fr ja ko nl no pl pt sl sv
211 27 packages 1 22 1 14 1 25 1 10 20 7 14 7 7 15 145
212
213 Some counters in the preceding matrix are higher than the number of
214visible blocks let us expect. This is because a few extra PO files are
215used for implementing regional variants of languages, or language
216dialects.
217
218 For a PO file in the matrix above to be effective, the package to
219which it applies should also have been internationalized and
220distributed as such by its maintainer. There might be an observable
221lag between the mere existence a PO file and its wide availability in a
222GNU distribution.
223
224 If February 1997 seems to be old, you may fetch a more recent copy
225of this `ABOUT-NLS' file on most GNU archive sites.
226
This page took 0.049117 seconds and 5 git commands to generate.