Whamcloud - gitweb
ABOUT-NLS, ChangeLog:
[tools/e2fsprogs.git] / ABOUT-NLS
1 E2fsprogs-specific notes
2 ************************
3
4 1)  NLS support is not enabled by default.  In order to get NLS
5         support, use the --enable-nls option when running configure.
6
7 2)  The intl and po directories aren't linked into the main makefile
8         subdirectories.
9
10 3)  The documentation for gettext is abysmal.  I hope everything is
11 right, but I make no guarantees; the NLS integration is still in
12 testing.  (This is why it's disabled by default.)
13
14 4)  This ABOUT-NLS file was obtained from ftp.gnu.org in February,
15 2000.  Apparently this is the most recent version as of this writing,
16 even though it was apparently last modified in August, 1998.
17
18
19
20 Notes on the Free Translation Project
21 *************************************
22
23    Free software is going international!  The Free Translation Project
24 is a way to get maintainers of free software, translators, and users all
25 together, so that will gradually become able to speak many languages.
26 A few packages already provide translations for their messages.
27
28    If you found this `ABOUT-NLS' file inside a distribution, you may
29 assume that the distributed package does use GNU `gettext' internally,
30 itself available at your nearest GNU archive site.  But you do *not*
31 need to install GNU `gettext' prior to configuring, installing or using
32 this package with messages translated.
33
34    Installers will find here some useful hints.  These notes also
35 explain how users should proceed for getting the programs to use the
36 available translations.  They tell how people wanting to contribute and
37 work at translations should contact the appropriate team.
38
39    When reporting bugs in the `intl/' directory or bugs which may be
40 related 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
44 One piece of advise in advance
45 ==============================
46
47    If you want to exploit the full power of internationalization, you
48 should configure it using
49
50      ./configure --with-included-gettext
51
52 to force usage of internationalizing routines provided within this
53 package, despite the existence of internationalizing capabilities in the
54 operating system where this package is being installed.  So far, only
55 the `gettext' implementation in the GNU C library version 2 provides as
56 many features (such as locale alias or message inheritance) as the
57 implementation here.  It is also not possible to offer this additional
58 functionality on top of a `catgets' implementation.  Future versions of
59 GNU `gettext' will very likely convey even more functionality.  So it
60 might 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
63 you have installed a recent copy of the GNU gettext package with the
64 included `libintl'.
65
66 INSTALL Matters
67 ===============
68
69    Some packages are "localizable" when properly installed; the
70 programs they contain can be made to speak your own native language.
71 Most such packages use GNU `gettext'.  Other packages have their own
72 ways to internationalization, predating GNU `gettext'.
73
74    By default, this package will be installed to allow translation of
75 messages.  It will automatically detect whether the system provides
76 usable `catgets' (if using this is selected by the installer) or
77 `gettext' functions.  If neither is available, the GNU `gettext' own
78 library will be used.  This library is wholly contained within this
79 package, usually in the `intl/' subdirectory, so prior installation of
80 the GNU `gettext' package is *not* required.  Installers may use
81 special options at configuration time for changing the default
82 behaviour.  The commands:
83
84      ./configure --with-included-gettext
85      ./configure --with-catgets
86      ./configure --disable-nls
87
88 will respectively bypass any pre-existing `catgets' or `gettext' to use
89 the internationalizing routines provided within this package, enable
90 the use of the `catgets' functions (if found on the locale system), or
91 else, *totally* disable translation of messages.
92
93    When you already have GNU `gettext' installed on your system and run
94 configure without an option for your new package, `configure' will
95 probably detect the previously built and installed `libintl.a' file and
96 will decide to use this.  This might be not what is desirable.  You
97 should use the more recent version of the GNU `gettext' library.  I.e.
98 if the file `intl/VERSION' shows that the library which comes with this
99 package is more recent, you should use
100
101      ./configure --with-included-gettext
102
103 to prevent auto-detection.
104
105    By default the configuration process will not test for the `catgets'
106 function and therefore they will not be used.  The reasons are already
107 given above: the emulation on top of `catgets' cannot provide all the
108 extensions provided by the GNU `gettext' library.  If you nevertheless
109 want to use the `catgets' functions use
110
111      ./configure --with-catgets
112
113 to enable the test for `catgets' (this causes no harm if `catgets' is
114 not available on your system).  If you really select this option we
115 would like to hear about the reasons because we cannot think of any
116 good one ourself.
117
118    Internationalized packages have usually many `po/LL.po' files, where
119 LL gives an ISO 639 two-letter code identifying the language.  Unless
120 translations have been forbidden at `configure' time by using the
121 `--disable-nls' switch, all available translations are installed
122 together with the package.  However, the environment variable `LINGUAS'
123 may be set, prior to configuration, to limit the installed set.
124 `LINGUAS' should then contain a space separated list of two-letter
125 codes, stating which languages are allowed.
126
127 Using This Package
128 ==================
129
130    As a user, if your language has been installed for this package, you
131 only have to set the `LANG' environment variable to the appropriate
132 ISO 639 `LL' two-letter code prior to using the programs in the
133 package.  For example, let's suppose that you speak German.  At the
134 shell prompt, merely execute `setenv LANG de' (in `csh'),
135 `export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash').  This
136 can be done from your `.login' or `.profile' file, once and for all.
137
138    An operating system might already offer message localization for
139 many of its programs, while other programs have been installed locally
140 with the full capabilities of GNU `gettext'.  Just using `gettext'
141 extended syntax for `LANG' would break proper localization of already
142 available operating system programs.  In this case, users should set
143 both `LANGUAGE' and `LANG' variables in their environment, as programs
144 using GNU `gettext' give preference to `LANGUAGE'.  For example, some
145 Swedish users would rather read translations in German than English for
146 when Swedish is not available.  This is easily accomplished by setting
147 `LANGUAGE' to `sv:de' while leaving `LANG' to `sv'.
148
149 Translating Teams
150 =================
151
152    For the Free Translation Project to be a success, we need interested
153 people who like their own language and write it well, and who are also
154 able to synergize with other translators speaking the same language.
155 Each translation team has its own mailing list, courtesy of Linux
156 International.  You may reach your translation team at the address
157 `LL@li.org', replacing LL by the two-letter ISO 639 code for your
158 language.  Language codes are *not* the same as the country codes given
159 in 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
168 For 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
172 should become a member of the translating team for your own language.
173 The subscribing address is *not* the same as the list itself, it has
174 `-request' appended.  For example, speakers of Swedish can send a
175 message 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,
181 rather than merely lurking around.  If your team does not exist yet and
182 you want to start one, or if you are unsure about what to do or how to
183 get started, please write to `translation@iro.umontreal.ca' to reach the
184 coordinator for all translator teams.
185
186    The English team is special.  It works at improving and uniformizing
187 the terminology in use.  Proven linguistic skill are praised more than
188 programming skill, here.
189
190 Available Packages
191 ==================
192
193    Languages are not equally supported in all packages.  The following
194 matrix shows the current state of internationalization, as of August
195 1998.  The matrix shows, in regard of each package, for which languages
196 PO 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
269 visible blocks let us expect.  This is because a few extra PO files are
270 used for implementing regional variants of languages, or language
271 dialects.
272
273    For a PO file in the matrix above to be effective, the package to
274 which it applies should also have been internationalized and
275 distributed as such by its maintainer.  There might be an observable
276 lag between the mere existence a PO file and its wide availability in a
277 distribution.
278
279    If August 1998 seems to be old, you may fetch a more recent copy of
280 this `ABOUT-NLS' file on most GNU archive sites.
281
282 Using `gettext' in new packages
283 ===============================
284
285    If you are writing a freely available program and want to
286 internationalize it you are welcome to use GNU `gettext' in your
287 package.  Of course the GNU Public License applies to your sources from
288 then if you include `gettext' directly in your distribution on but
289 since you are writing free software anyway this is no restriction.
290
291    Once the sources are change appropriately and the setup can handle to
292 use of `gettext' the only thing missing are the translations.  The Free
293 Translation Project is also available for packages which are not
294 developed inside the GNU project.  Therefore the information given above
295 applies also for every other Free Software Project.  Contact
296 `translation@iro.umontreal.ca' to make the `.pot' files available to
297 the translation teams.
298