blob: 1d994662db0dc1348366ae8a48064c3119ed4054 [file] [log] [blame]
Theodore Ts'oa1774c32000-02-08 22:05:28 +00001E2fsprogs-specific notes
2************************
3
41) NLS support is not enabled by default. In order to get NLS
5 support, use the --enable-nls option when running configure.
6
72) The intl and po directories aren't linked into the main makefile
8 subdirectories.
9
103) The documentation for gettext is abysmal. I hope everything is
11right, but I make no guarantees; the NLS integration is still in
12testing. (This is why it's disabled by default.)
13
144) This ABOUT-NLS file was obtained from ftp.gnu.org in February,
152000. Apparently this is the most recent version as of this writing,
16even though it was apparently last modified in August, 1998.
17
18
19
Theodore Ts'oe4355072000-02-08 21:54:15 +000020Notes on the Free Translation Project
21*************************************
22
23 Free software is going international! The Free Translation Project
24is a way to get maintainers of free software, translators, and users all
25together, so that will gradually become able to speak many languages.
26A few packages already provide translations for their messages.
27
28 If you found this `ABOUT-NLS' file inside a distribution, you may
29assume that the distributed package does use GNU `gettext' internally,
30itself available at your nearest GNU archive site. But you do *not*
31need to install GNU `gettext' prior to configuring, installing or using
32this package with messages translated.
33
34 Installers will find here some useful hints. These notes also
35explain how users should proceed for getting the programs to use the
36available translations. They tell how people wanting to contribute and
37work at translations should contact the appropriate team.
38
39 When reporting bugs in the `intl/' directory or bugs which may be
40related to internationalization, you should tell about the version of
41`gettext' which is used. The information can be found in the
42`intl/VERSION' file, in internationalized packages.
43
Theodore Ts'o78f93512000-04-03 13:31:09 +000044One piece of advise in advance
45==============================
Theodore Ts'oe4355072000-02-08 21:54:15 +000046
47 If you want to exploit the full power of internationalization, you
48should configure it using
49
50 ./configure --with-included-gettext
51
52to force usage of internationalizing routines provided within this
53package, despite the existence of internationalizing capabilities in the
54operating system where this package is being installed. So far, only
55the `gettext' implementation in the GNU C library version 2 provides as
56many features (such as locale alias or message inheritance) as the
57implementation here. It is also not possible to offer this additional
58functionality on top of a `catgets' implementation. Future versions of
59GNU `gettext' will very likely convey even more functionality. So it
60might be a good idea to change to GNU `gettext' as soon as possible.
61
62 So you need not provide this option if you are using GNU libc 2 or
63you have installed a recent copy of the GNU gettext package with the
64included `libintl'.
65
66INSTALL Matters
67===============
68
69 Some packages are "localizable" when properly installed; the
70programs they contain can be made to speak your own native language.
71Most such packages use GNU `gettext'. Other packages have their own
72ways to internationalization, predating GNU `gettext'.
73
74 By default, this package will be installed to allow translation of
75messages. It will automatically detect whether the system provides
76usable `catgets' (if using this is selected by the installer) or
77`gettext' functions. If neither is available, the GNU `gettext' own
78library will be used. This library is wholly contained within this
79package, usually in the `intl/' subdirectory, so prior installation of
80the GNU `gettext' package is *not* required. Installers may use
81special options at configuration time for changing the default
82behaviour. The commands:
83
84 ./configure --with-included-gettext
85 ./configure --with-catgets
86 ./configure --disable-nls
87
88will respectively bypass any pre-existing `catgets' or `gettext' to use
89the internationalizing routines provided within this package, enable
90the use of the `catgets' functions (if found on the locale system), or
91else, *totally* disable translation of messages.
92
93 When you already have GNU `gettext' installed on your system and run
94configure without an option for your new package, `configure' will
95probably detect the previously built and installed `libintl.a' file and
96will decide to use this. This might be not what is desirable. You
97should use the more recent version of the GNU `gettext' library. I.e.
98if the file `intl/VERSION' shows that the library which comes with this
99package is more recent, you should use
100
101 ./configure --with-included-gettext
102
103to prevent auto-detection.
104
105 By default the configuration process will not test for the `catgets'
106function and therefore they will not be used. The reasons are already
107given above: the emulation on top of `catgets' cannot provide all the
108extensions provided by the GNU `gettext' library. If you nevertheless
109want to use the `catgets' functions use
110
111 ./configure --with-catgets
112
113to enable the test for `catgets' (this causes no harm if `catgets' is
114not available on your system). If you really select this option we
115would like to hear about the reasons because we cannot think of any
116good one ourself.
117
118 Internationalized packages have usually many `po/LL.po' files, where
119LL gives an ISO 639 two-letter code identifying the language. Unless
120translations have been forbidden at `configure' time by using the
121`--disable-nls' switch, all available translations are installed
122together with the package. However, the environment variable `LINGUAS'
123may be set, prior to configuration, to limit the installed set.
124`LINGUAS' should then contain a space separated list of two-letter
125codes, stating which languages are allowed.
126
127Using This Package
128==================
129
130 As a user, if your language has been installed for this package, you
131only have to set the `LANG' environment variable to the appropriate
132ISO 639 `LL' two-letter code prior to using the programs in the
133package. For example, let's suppose that you speak German. At the
134shell prompt, merely execute `setenv LANG de' (in `csh'),
135`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash'). This
136can be done from your `.login' or `.profile' file, once and for all.
137
138 An operating system might already offer message localization for
139many of its programs, while other programs have been installed locally
140with the full capabilities of GNU `gettext'. Just using `gettext'
141extended syntax for `LANG' would break proper localization of already
142available operating system programs. In this case, users should set
143both `LANGUAGE' and `LANG' variables in their environment, as programs
144using GNU `gettext' give preference to `LANGUAGE'. For example, some
145Swedish users would rather read translations in German than English for
146when Swedish is not available. This is easily accomplished by setting
147`LANGUAGE' to `sv:de' while leaving `LANG' to `sv'.
148
149Translating Teams
150=================
151
152 For the Free Translation Project to be a success, we need interested
153people who like their own language and write it well, and who are also
154able to synergize with other translators speaking the same language.
155Each translation team has its own mailing list, courtesy of Linux
156International. You may reach your translation team at the address
157`LL@li.org', replacing LL by the two-letter ISO 639 code for your
158language. Language codes are *not* the same as the country codes given
159in ISO 3166. The following translation teams exist, as of August 1998:
160
161 Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en',
162 Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian
163 `hu', Irish `ga', Italian `it', Indonesian `id', Japanese `ja',
164 Korean `ko', Latin `la', Norwegian `no', Persian `fa', Polish
165 `pl', Portuguese `pt', Russian `ru', Slovenian `sl', Spanish `es',
166 Swedish `sv', and Turkish `tr'.
167
168For example, you may reach the Chinese translation team by writing to
169`zh@li.org'.
170
171 If you'd like to volunteer to *work* at translating messages, you
172should become a member of the translating team for your own language.
173The subscribing address is *not* the same as the list itself, it has
174`-request' appended. For example, speakers of Swedish can send a
175message to `sv-request@li.org', having this message body:
176
177 subscribe
178
179 Keep in mind that team members are expected to participate
180*actively* in translations, or at solving translational difficulties,
181rather than merely lurking around. If your team does not exist yet and
182you want to start one, or if you are unsure about what to do or how to
183get started, please write to `translation@iro.umontreal.ca' to reach the
184coordinator for all translator teams.
185
186 The English team is special. It works at improving and uniformizing
187the terminology in use. Proven linguistic skill are praised more than
188programming skill, here.
189
190Available Packages
191==================
192
193 Languages are not equally supported in all packages. The following
194matrix shows the current state of internationalization, as of August
1951998. The matrix shows, in regard of each package, for which languages
196PO files have been submitted to translation coordination.
197
198 Ready PO files cs da de el en es fi fr it
199 .----------------------------.
200 bash | [] [] |
201 bison | [] [] |
202 clisp | [] [] [] [] |
203 cpio | [] [] [] |
204 diffutils | [] [] [] |
205 enscript | [] [] [] [] |
206 fileutils | [] [] [] [] |
207 findutils | [] [] [] [] |
208 flex | [] [] |
209 gcal | [] [] |
210 gettext | [] [] [] [] [] |
211 grep | [] [] [] [] |
212 hello | [] [] [] [] [] |
213 id-utils | [] [] |
214 indent | [] [] |
215 libc | [] [] [] |
216 m4 | [] [] |
217 make | [] [] [] |
218 music | [] |
219 ptx | [] [] [] |
220 recode | [] [] [] [] |
221 sed | |
222 sh-utils | [] [] [] |
223 sharutils | [] [] [] [] [] |
224 tar | [] [] [] [] |
225 texinfo | [] [] [] |
226 textutils | [] [] [] [] |
227 wdiff | [] [] [] [] |
228 wget | [] [] [] [] |
229 `----------------------------'
230 cs da de el en es fi fr it
231 7 4 26 4 1 18 1 26 4
232
233 ja ko nl no pl pt ru sl sv
234 .----------------------------.
235 bash | [] | 3
236 bison | [] | 3
237 clisp | | 4
238 cpio | [] [] [] | 6
239 diffutils | [] [] | 5
240 enscript | [] [] | 6
241 fileutils | [] [] [] [] [] [] [] | 11
242 findutils | [] [] [] [] [] | 9
243 flex | [] [] | 4
244 gcal | [] [] [] | 5
245 gettext | [] [] [] [] [] [] [] | 13
246 grep | [] [] [] [] [] [] [] | 11
247 hello | [] [] [] [] [] [] [] | 12
248 id-utils | [] | 3
249 indent | [] [] [] | 5
250 libc | [] [] [] [] [] | 8
251 m4 | [] [] [] [] | 6
252 make | [] [] [] | 6
253 music | [] | 2
254 ptx | [] [] [] [] [] | 8
255 recode | [] [] [] [] [] | 9
256 sed | | 0
257 sh-utils | [] [] [] [] [] | 8
258 sharutils | [] [] | 7
259 tar | [] [] [] [] [] [] [] | 11
260 texinfo | [] | 4
261 textutils | [] [] [] [] [] | 9
262 wdiff | [] [] [] [] | 8
263 wget | [] | 5
264 `----------------------------'
265 18 teams ja ko nl no pl pt ru sl sv
266 29 domains 1 12 21 11 19 7 5 7 17 191
267
268 Some counters in the preceding matrix are higher than the number of
269visible blocks let us expect. This is because a few extra PO files are
270used for implementing regional variants of languages, or language
271dialects.
272
273 For a PO file in the matrix above to be effective, the package to
274which it applies should also have been internationalized and
275distributed as such by its maintainer. There might be an observable
276lag between the mere existence a PO file and its wide availability in a
277distribution.
278
279 If August 1998 seems to be old, you may fetch a more recent copy of
280this `ABOUT-NLS' file on most GNU archive sites.
281
282Using `gettext' in new packages
283===============================
284
285 If you are writing a freely available program and want to
286internationalize it you are welcome to use GNU `gettext' in your
287package. Of course the GNU Public License applies to your sources from
288then if you include `gettext' directly in your distribution on but
289since you are writing free software anyway this is no restriction.
290
291 Once the sources are change appropriately and the setup can handle to
292use of `gettext' the only thing missing are the translations. The Free
293Translation Project is also available for packages which are not
294developed inside the GNU project. Therefore the information given above
295applies also for every other Free Software Project. Contact
296`translation@iro.umontreal.ca' to make the `.pot' files available to
297the translation teams.
298