| 1 |
745 |
simons |
Notes on the GNU Translation Project
|
| 2 |
|
|
************************************
|
| 3 |
|
|
|
| 4 |
|
|
GNU is going international! The GNU Translation Project is a way to
|
| 5 |
|
|
get maintainers, translators and users all together, so GNU will
|
| 6 |
|
|
gradually become able to speak many native languages. A few packages
|
| 7 |
|
|
already provide native language translation for their messages.
|
| 8 |
|
|
|
| 9 |
|
|
If you found this `ABOUT-NLS' file inside a GNU distribution, you
|
| 10 |
|
|
may assume that the distributed package does use GNU `gettext'
|
| 11 |
|
|
internally, itself available at your nearest GNU archive site. But you
|
| 12 |
|
|
do not need to install GNU `gettext' prior to configuring, installing
|
| 13 |
|
|
or using this package with messages translated.
|
| 14 |
|
|
|
| 15 |
|
|
Installers will find here some useful hints. These notes also
|
| 16 |
|
|
explain how users should proceed for getting the programs to use the
|
| 17 |
|
|
available translations. They tell how people wanting to contribute and
|
| 18 |
|
|
work at translations should contact the appropriate team.
|
| 19 |
|
|
|
| 20 |
|
|
When reporting bugs in the `intl/' directory or bugs which may be
|
| 21 |
|
|
related 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 |
|
|
|
| 25 |
|
|
One advise in advance
|
| 26 |
|
|
=====================
|
| 27 |
|
|
|
| 28 |
|
|
If you want to exploit the full power of the GNU `gettext' package
|
| 29 |
|
|
you should configure it using
|
| 30 |
|
|
|
| 31 |
|
|
--with-gnu-gettext.
|
| 32 |
|
|
|
| 33 |
|
|
No existing implementation at this point provides so many useful
|
| 34 |
|
|
features (such as locale alias or message inheritance). It is also not
|
| 35 |
|
|
possible to provide this additional functionality on top of a catgets
|
| 36 |
|
|
implementation.
|
| 37 |
|
|
|
| 38 |
|
|
Future versions of GNU `gettext' will very likely provide even more
|
| 39 |
|
|
functionality. So it might be a good idea to change to GNU `gettext'
|
| 40 |
|
|
as soon as possible.
|
| 41 |
|
|
|
| 42 |
|
|
INSTALL Matters
|
| 43 |
|
|
===============
|
| 44 |
|
|
|
| 45 |
|
|
Some GNU packages are "localizable" when properly installed; the
|
| 46 |
|
|
programs they contain can be made to speak your own native language.
|
| 47 |
|
|
Most such packages use GNU `gettext'. Other packages have their own
|
| 48 |
|
|
ways to internationalization, predating GNU `gettext'.
|
| 49 |
|
|
|
| 50 |
|
|
By default, this package will be installed to allow translation of
|
| 51 |
|
|
messages. It will automatically detect whether the system provides
|
| 52 |
|
|
usable `catgets' or `gettext' functions. If neither is available, the
|
| 53 |
|
|
GNU `gettext' own library will be used. However, installers may use
|
| 54 |
|
|
special options at configuration time for changing this behaviour. The
|
| 55 |
|
|
commands:
|
| 56 |
|
|
|
| 57 |
|
|
./configure --with-gnu-gettext
|
| 58 |
|
|
./configure --disable-nls
|
| 59 |
|
|
|
| 60 |
|
|
will respectively bypass system `catgets' or `gettext' to use GNU
|
| 61 |
|
|
`gettext', or else, totally disable translation of messages.
|
| 62 |
|
|
|
| 63 |
|
|
When you already have GNU `gettext' installed on your system and run
|
| 64 |
|
|
configure without an option for your new package, configure will
|
| 65 |
|
|
probably detect the previously built and installed `libintl.a' file and
|
| 66 |
|
|
will decide to use this. This might be not what is desirable. You
|
| 67 |
|
|
should use the more recent version of the GNU `gettext' library. I.e.
|
| 68 |
|
|
if the file `intl/VERSION' shows that the library which comes with this
|
| 69 |
|
|
package is more recent, you should use
|
| 70 |
|
|
|
| 71 |
|
|
./configure --with-gnu-gettext
|
| 72 |
|
|
|
| 73 |
|
|
to prevent auto-detection.
|
| 74 |
|
|
|
| 75 |
|
|
Internationalized packages have usually many `po/LL.po' files, where
|
| 76 |
|
|
LL gives an ISO 639 two-letter code identifying the language. Unless
|
| 77 |
|
|
translations are disabled, all those available are installed together
|
| 78 |
|
|
with the package. However, the environment variable `LINGUAS' may be
|
| 79 |
|
|
set, prior to configuration, to limit the installed set. `LINGUAS'
|
| 80 |
|
|
should then contain a space separated list of two-letter codes, stating
|
| 81 |
|
|
which languages are allowed.
|
| 82 |
|
|
|
| 83 |
|
|
Using This Package
|
| 84 |
|
|
==================
|
| 85 |
|
|
|
| 86 |
|
|
As a user, if your language has been installed for this package, you
|
| 87 |
|
|
only have to set the `LANG' environment variable to the appropriate
|
| 88 |
|
|
ISO 639 `LL' two-letter code prior to using the programs in the
|
| 89 |
|
|
package. For example, let's suppose that you speak German. At the
|
| 90 |
|
|
shell prompt, merely execute `setenv LANG de' (in `csh') or
|
| 91 |
|
|
`export LANG; LANG=de' (in `sh'). This can be done from your `.login'
|
| 92 |
|
|
or `.profile' file, once and for all. Packages which are not
|
| 93 |
|
|
internationalized will merely ignore the setting of this variable.
|
| 94 |
|
|
|
| 95 |
|
|
Translating Teams
|
| 96 |
|
|
=================
|
| 97 |
|
|
|
| 98 |
|
|
The GNU `gettext' tool set contains *everything* maintainers need
|
| 99 |
|
|
for internationalizing their packages for messages. It also contains
|
| 100 |
|
|
quite useful tools for helping translators at localizing messages to
|
| 101 |
|
|
their native language, once a package has already been
|
| 102 |
|
|
internationalized.
|
| 103 |
|
|
|
| 104 |
|
|
To achieve the GNU Translation Project, we need many interested
|
| 105 |
|
|
people who like their own language and write it well, and who are also
|
| 106 |
|
|
able to synergize with other translators speaking the same language.
|
| 107 |
|
|
Each translating team has its own mailing list, courtesy of Linux
|
| 108 |
|
|
International. You may reach your translating team at the address
|
| 109 |
|
|
`LL@li.org', replacing LL by the two-letter ISO 639 code for your
|
| 110 |
|
|
language. Language codes are *not* the same as country codes given in
|
| 111 |
|
|
ISO 3166. The following translating teams exist, as of November 1995:
|
| 112 |
|
|
|
| 113 |
|
|
Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en',
|
| 114 |
|
|
Esperanto `eo', Finnish `fi', French `fr', Irish `ga', German
|
| 115 |
|
|
`de', Greek `el', Italian `it', Japanese `ja', Indonesian `in',
|
| 116 |
|
|
Norwegian `no', Persian `fa', Polish `pl', Portuguese `pt',
|
| 117 |
|
|
Russian `ru', Spanish `es', Swedish `sv', Telugu `te' and Turkish
|
| 118 |
|
|
`tr'.
|
| 119 |
|
|
|
| 120 |
|
|
For example, you may reach the Chinese translating team by writing to
|
| 121 |
|
|
`zh@li.org'.
|
| 122 |
|
|
|
| 123 |
|
|
If you'd like to volunteer to *work* at translating messages, you
|
| 124 |
|
|
should become a member of the translating team for your own language.
|
| 125 |
|
|
The subscribing address is *not* the same as the list itself, it has
|
| 126 |
|
|
`-request' appended. For example, Swedish people can send a message to
|
| 127 |
|
|
`sv-request@li.org', having this message body:
|
| 128 |
|
|
|
| 129 |
|
|
subscribe
|
| 130 |
|
|
|
| 131 |
|
|
Keep in mind that team members should be interested in *working* at
|
| 132 |
|
|
translations, or at solving translational difficulties, rather than
|
| 133 |
|
|
merely lurking around. If your team does not exist yet and you want to
|
| 134 |
|
|
start one, please write to `gnu-translation@prep.ai.mit.edu'; you will
|
| 135 |
|
|
then reach the GNU coordinator for all translator teams.
|
| 136 |
|
|
|
| 137 |
|
|
The English team is special. It works at improving and uniformizing
|
| 138 |
|
|
the terminology used in GNU. Proven linguistic skill are praised more
|
| 139 |
|
|
than programming skill, here. For the time being, please avoid
|
| 140 |
|
|
subscribing to the English team unless explicitely invited to do so.
|
| 141 |
|
|
|
| 142 |
|
|
Available Packages
|
| 143 |
|
|
==================
|
| 144 |
|
|
|
| 145 |
|
|
Languages are not equally supported in all GNU packages. The
|
| 146 |
|
|
following matrix shows the current state of GNU internationalization,
|
| 147 |
|
|
as of November 1995. Listed are: internationalized packages, and
|
| 148 |
|
|
languages for which work is in progress, or about to start.
|
| 149 |
|
|
|
| 150 |
|
|
See note cs de en fr it ja nl no pt sv
|
| 151 |
|
|
\ .-------------------------------.
|
| 152 |
|
|
chess (1) | X / X |
|
| 153 |
|
|
clisp | X X X |
|
| 154 |
|
|
diffutils (2) | / . |
|
| 155 |
|
|
fileutils | . / |
|
| 156 |
|
|
flex (3) | / . |
|
| 157 |
|
|
m4 | - / - - . - |
|
| 158 |
|
|
gettext | X / X X X |
|
| 159 |
|
|
ptx | - / - - |
|
| 160 |
|
|
recode | - / - - - |
|
| 161 |
|
|
sh-utils | . / . |
|
| 162 |
|
|
sharutils | X / X X X X X |
|
| 163 |
|
|
tar | X / X - X X |
|
| 164 |
|
|
textutils | . / . |
|
| 165 |
|
|
wdiff | - - / - - |
|
| 166 |
|
|
`-------------------------------'
|
| 167 |
|
|
cs de en fr it ja nl no pt sv
|
| 168 |
|
|
|
| 169 |
|
|
The interpretation legend and notes are:
|
| 170 |
|
|
|
| 171 |
|
|
`/'
|
| 172 |
|
|
There is no PO file, this package merely defaults to this language.
|
| 173 |
|
|
|
| 174 |
|
|
`.'
|
| 175 |
|
|
The effort of localizing this package has been undertaken by
|
| 176 |
|
|
someone, or by a translating team, and work is, or should be in
|
| 177 |
|
|
progress.
|
| 178 |
|
|
|
| 179 |
|
|
`-'
|
| 180 |
|
|
A PO file for this package and this language is completed and is
|
| 181 |
|
|
currently available in a pretest release, or is all ready for
|
| 182 |
|
|
inclusion in the next release of this package.
|
| 183 |
|
|
|
| 184 |
|
|
`X'
|
| 185 |
|
|
The localization of this package to this particular language is
|
| 186 |
|
|
fully completed, and now distributed through an official release.
|
| 187 |
|
|
|
| 188 |
|
|
(1)
|
| 189 |
|
|
This package is translated to specific languages by methods
|
| 190 |
|
|
predating GNU `gettext'. Translations are all kept on disk files,
|
| 191 |
|
|
and sources contain numbers where one normally expects strings.
|
| 192 |
|
|
|
| 193 |
|
|
(2)
|
| 194 |
|
|
This package is planned to switch to GNU `gettext'. For the time
|
| 195 |
|
|
being, it uses temporary means for internationalization.
|
| 196 |
|
|
|
| 197 |
|
|
(3)
|
| 198 |
|
|
This package has its translatable strings marked, but does not use
|
| 199 |
|
|
GNU `gettext'. A convenience patch may be available separately.
|
| 200 |
|
|
|
| 201 |
|
|
If November 1995 seems to be old, you may fetch a more recent copy
|
| 202 |
|
|
of this `ABOUT-NLS' file on most GNU archive sites.
|
| 203 |
|
|
|