1 1 Notes on the Free Translation Project
2 ***************************************
4 Free software is going international! The Free Translation Project is
5 a way to get maintainers of free software, translators, and users all
6 together, so that free software will gradually become able to speak many
7 languages. A few packages already provide translations for their
10 If you found this `ABOUT-NLS' file inside a distribution, you may
11 assume that the distributed package does use GNU `gettext' internally,
12 itself available at your nearest GNU archive site. But you do _not_
13 need to install GNU `gettext' prior to configuring, installing or using
14 this package with messages translated.
16 Installers will find here some useful hints. These notes also
17 explain how users should proceed for getting the programs to use the
18 available translations. They tell how people wanting to contribute and
19 work on translations can contact the appropriate team.
21 1.1 Quick configuration advice
22 ==============================
29 Some packages are "localizable" when properly installed; the programs
30 they contain can be made to speak your own native language. Most such
31 packages use GNU `gettext'. Other packages have their own ways to
32 internationalization, predating GNU `gettext'.
34 By default, this package will be installed to allow translation of
35 messages. It will automatically detect whether the system already
36 provides the GNU `gettext' functions. If not, the package will not
38 Installers may use special options at configuration time for changing
39 the default behaviour. The command:
41 ./configure --disable-nls
43 will, _totally_ disable translation of messages.
45 Internationalized packages usually have many `po/LL.po' files, where
46 LL gives an ISO 639 two-letter code identifying the language. Unless
47 translations have been forbidden at `configure' time by using the
48 `--disable-nls' switch, all available translations are installed
49 together with the package. However, the environment variable `LINGUAS'
50 may be set, prior to configuration, to limit the installed set.
51 `LINGUAS' should then contain a space separated list of two-letter
52 codes, stating which languages are allowed.
54 1.3 Using This Package
55 ======================
57 As a user, if your language has been installed for this package, you
58 only have to set the `LANG' environment variable to the appropriate
59 `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
60 and `CC' is an ISO 3166 two-letter country code. For example, let's
61 suppose that you speak German and live in Germany. At the shell
62 prompt, merely execute `setenv LANG de_DE' (in `csh'),
63 `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
64 This can be done from your `.login' or `.profile' file, once and for
67 You might think that the country code specification is redundant.
68 But in fact, some languages have dialects in different countries. For
69 example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
70 country code serves to distinguish the dialects.
72 The locale naming convention of `LL_CC', with `LL' denoting the
73 language and `CC' denoting the country, is the one use on systems based
74 on GNU libc. On other systems, some variations of this scheme are
75 used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
76 locales supported by your system for your country by running the command
77 `locale -a | grep '^LL''.
79 Not all programs have translations for all languages. By default, an
80 English message is shown in place of a nonexistent translation. If you
81 understand other languages, you can set up a priority list of languages.
82 This is done through a different environment variable, called
83 `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
84 for the purpose of message handling, but you still need to have `LANG'
85 set to the primary language; this is required by other parts of the
86 system libraries. For example, some Swedish users who would rather
87 read translations in German than English for when Swedish is not
88 available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
90 Special advice for Norwegian users: The language code for Norwegian
91 bokma*l changed from `no' to `nb' recently (in 2003). During the
92 transition period, while some message catalogs for this language are
93 installed under `nb' and some older ones under `no', it's recommended
94 for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
95 older translations are used.
97 In the `LANGUAGE' environment variable, but not in the `LANG'
98 environment variable, `LL_CC' combinations can be abbreviated as `LL'
99 to denote the language's main dialect. For example, `de' is equivalent
100 to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
101 (Portuguese as spoken in Portugal) in this context.
103 1.4 Translating Teams
104 =====================
106 For the Free Translation Project to be a success, we need interested
107 people who like their own language and write it well, and who are also
108 able to synergize with other translators speaking the same language.
109 Each translation team has its own mailing list. The up-to-date list of
110 teams can be found at the Free Translation Project's homepage,
111 `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
114 If you'd like to volunteer to _work_ at translating messages, you
115 should become a member of the translating team for your own language.
116 The subscribing address is _not_ the same as the list itself, it has
117 `-request' appended. For example, speakers of Swedish can send a
118 message to `sv-request@li.org', having this message body:
122 Keep in mind that team members are expected to participate
123 _actively_ in translations, or at solving translational difficulties,
124 rather than merely lurking around. If your team does not exist yet and
125 you want to start one, or if you are unsure about what to do or how to
126 get started, please write to `translation@iro.umontreal.ca' to reach the
127 coordinator for all translator teams.
129 The English team is special. It works at improving and uniformizing
130 the terminology in use. Proven linguistic skill are praised more than
131 programming skill, here.
133 1.5 Available Packages
134 ======================
136 Languages are not equally supported in all packages. The following
137 matrix shows the current state of internationalization, as of June
138 2006. The matrix shows, in regard of each package, for which languages
139 PO files have been submitted to translation coordination, with a
140 translation percentage of at least 50%.
142 Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB eo
143 +----------------------------------------------------+
145 a2ps | [] [] [] [] [] |
150 aspell | [] [] [] [] |
158 bluez-pin | [] [] [] [] [] |
161 console-tools | [] [] |
162 coreutils | [] [] [] [] |
166 darkstat | [] () [] |
167 dialog | [] [] [] [] [] [] |
168 diffutils | [] [] [] [] [] [] |
171 enscript | [] [] [] [] |
172 error | [] [] [] [] |
173 fetchmail | [] [] () [] |
175 findutils | [] [] [] |
183 gettext-examples | [] [] [] [] |
184 gettext-runtime | [] [] [] [] |
185 gettext-tools | [] [] |
186 gimp-print | [] [] [] [] |
193 gnucash-glossary | [] () |
195 gnulib | [] [] [] [] [] [] |
200 gpe-calendar | [] [] |
208 gpe-ownerinfo | [] [] |
210 gpe-sketchbook | [] [] |
212 gpe-taskmanager | [] [] |
216 gphoto2 | [] [] [] [] |
220 grep | [] [] [] [] [] [] |
224 gst-plugins | [] [] [] [] |
225 gst-plugins-base | [] [] [] |
226 gst-plugins-good | [] [] [] [] [] [] [] |
227 gstreamer | [] [] [] [] [] [] [] |
231 gtkspell | [] [] [] [] |
233 hello | [] [] [] [] [] |
238 iso_3166_1 | [] [] [] [] [] |
249 keytouch-keyboa... | |
252 leafpad | [] [] [] [] [] |
253 libc | [] [] [] [] [] |
256 libgpewidget | [] [] [] |
259 libgphoto2_port | [] [] |
270 man-db | [] () [] [] |
272 mysecretdiary | [] [] |
274 nano_1_0 | [] () [] [] |
283 recode | [] [] [] [] [] [] |
286 scrollkeeper | [] [] [] [] [] [] [] [] |
289 shared-mime-info | [] [] [] |
290 sharutils | [] [] [] [] [] [] |
296 soundtracker | [] [] |
299 system-tools-ba... | [] [] [] [] [] [] [] [] [] |
302 textutils | [] [] [] |
305 tuxpaint | [] [] [] [] [] |
306 unicode-han-tra... | |
307 unicode-transla... | |
308 util-linux | [] [] [] [] |
309 vorbis-tools | [] [] [] [] |
311 wdiff | [] [] [] [] |
313 xchat | [] [] [] [] [] |
316 +----------------------------------------------------+
317 af am ar az be bg bs ca cs cy da de el en en_GB eo
318 11 0 1 2 8 20 1 42 43 2 62 97 18 1 16 13
320 es et eu fa fi fr ga gl gu he hi hr hu id is it
321 +--------------------------------------------------+
332 bibshelf | [] [] [] |
333 binutils | [] [] [] |
334 bison | [] [] [] [] [] [] |
335 bison-runtime | [] [] [] [] [] |
336 bluez-pin | [] [] [] [] [] |
340 coreutils | [] [] [] [] [] [] |
344 darkstat | [] () [] [] [] |
345 dialog | [] [] [] [] [] [] [] [] |
346 diffutils | [] [] [] [] [] [] [] [] [] |
348 e2fsprogs | [] [] [] |
349 enscript | [] [] [] |
350 error | [] [] [] [] [] |
352 fileutils | [] [] [] [] [] [] |
353 findutils | [] [] [] [] |
361 gettext-examples | [] [] [] [] [] |
362 gettext-runtime | [] [] [] [] [] [] |
363 gettext-tools | [] [] [] |
367 glunarclock | [] [] [] |
371 gnucash-glossary | [] [] |
373 gnulib | [] [] [] [] [] [] [] [] |
378 gpe-calendar | [] [] [] [] |
379 gpe-clock | [] [] [] [] |
381 gpe-contacts | [] [] |
382 gpe-edit | [] [] [] [] |
383 gpe-filemanager | [] |
385 gpe-login | [] [] [] |
386 gpe-ownerinfo | [] [] [] [] [] |
388 gpe-sketchbook | [] [] |
389 gpe-su | [] [] [] [] |
390 gpe-taskmanager | [] [] [] |
391 gpe-timesheet | [] [] [] [] |
392 gpe-today | [] [] [] [] |
394 gphoto2 | [] [] [] [] [] |
395 gprof | [] [] [] [] |
396 gpsdrive | () () [] () |
398 grep | [] [] [] [] [] [] [] [] [] [] [] [] |
402 gst-plugins | [] [] [] |
403 gst-plugins-base | [] [] |
404 gst-plugins-good | [] [] [] |
405 gstreamer | [] [] [] |
406 gtick | [] [] [] [] [] |
407 gtkam | [] [] [] [] |
409 gtkspell | [] [] [] [] [] [] |
411 hello | [] [] [] [] [] [] [] [] [] [] [] [] [] |
412 id-utils | [] [] [] [] [] |
414 indent | [] [] [] [] [] [] [] [] [] [] |
415 iso_3166 | [] [] [] |
416 iso_3166_1 | [] [] [] [] [] [] [] |
419 iso_4217 | [] [] [] [] |
420 iso_639 | [] [] [] [] [] |
423 jwhois | [] [] [] [] [] |
426 keytouch-editor | [] |
427 keytouch-keyboa... | [] |
430 leafpad | [] [] [] [] [] [] |
431 libc | [] [] [] [] [] |
434 libgpewidget | [] [] [] [] [] |
437 libgphoto2_port | [] [] |
443 lingoteach | [] [] [] |
447 make | [] [] [] [] [] [] [] [] |
449 minicom | [] [] [] [] |
450 mysecretdiary | [] [] [] |
451 nano | [] () [] [] [] [] |
452 nano_1_0 | [] [] [] [] [] |
453 opcodes | [] [] [] [] |
461 recode | [] [] [] [] [] [] [] [] |
464 scrollkeeper | [] [] [] |
465 sed | [] [] [] [] [] |
466 sh-utils | [] [] [] [] [] [] [] |
467 shared-mime-info | [] [] [] [] [] [] |
468 sharutils | [] [] [] [] [] [] [] [] |
474 soundtracker | [] [] [] |
477 system-tools-ba... | [] [] [] [] [] [] [] [] |
478 tar | [] [] [] [] [] |
480 textutils | [] [] [] [] [] |
482 tp-robot | [] [] [] |
484 unicode-han-tra... | |
485 unicode-transla... | [] [] |
486 util-linux | [] [] [] [] [] [] [] |
487 vorbis-tools | [] [] |
489 wdiff | [] [] [] [] [] [] [] [] |
490 wget | [] [] [] [] [] [] [] [] |
491 xchat | [] [] [] [] [] [] [] [] |
492 xkeyboard-config | [] [] [] [] |
494 +--------------------------------------------------+
495 es et eu fa fi fr ga gl gu he hi hr hu id is it
496 89 21 16 2 41 118 59 14 1 8 1 6 60 30 0 52
498 ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no
499 +--------------------------------------------------+
513 bison-runtime | [] [] [] |
514 bluez-pin | [] [] [] |
524 diffutils | [] [] [] |
539 gettext-examples | [] [] |
540 gettext-runtime | [] [] [] |
541 gettext-tools | [] [] |
545 glunarclock | [] [] |
549 gnucash-glossary | [] |
551 gnulib | [] [] [] [] |
561 gpe-filemanager | [] |
566 gpe-sketchbook | [] [] |
568 gpe-taskmanager | [] [] [] |
574 gpsdrive | () () () |
582 gst-plugins-good | [] |
589 hello | [] [] [] [] [] [] [] [] |
597 iso_4217 | [] [] [] |
605 keytouch-keyboa... | [] |
609 libc | [] [] [] [] [] |
615 libgphoto2_port | [] |
630 nano_1_0 | [] [] [] |
642 scrollkeeper | [] [] [] [] |
645 shared-mime-info | [] [] [] [] [] |
655 system-tools-ba... | [] [] [] [] |
658 textutils | [] [] [] |
662 unicode-han-tra... | |
663 unicode-transla... | |
669 xchat | [] [] [] [] |
670 xkeyboard-config | [] |
672 +--------------------------------------------------+
673 ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no
674 40 24 2 1 1 3 1 2 3 21 0 15 1 102 6 3
676 nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta
677 +------------------------------------------------------+
679 a2ps | () [] [] [] [] [] [] |
690 bison | [] [] [] [] [] |
691 bison-runtime | [] [] [] [] |
692 bluez-pin | [] [] [] [] [] [] [] [] [] |
696 coreutils | [] [] [] [] |
700 darkstat | [] [] [] [] [] [] |
701 dialog | [] [] [] [] [] [] [] [] [] |
702 diffutils | [] [] [] [] [] [] |
705 enscript | [] [] [] [] [] |
706 error | [] [] [] [] |
707 fetchmail | [] [] [] |
708 fileutils | [] [] [] [] [] |
709 findutils | [] [] [] [] [] [] |
710 flex | [] [] [] [] [] |
711 fslint | [] [] [] [] |
717 gettext-examples | [] [] [] [] [] [] [] [] |
718 gettext-runtime | [] [] [] [] [] [] [] [] |
719 gettext-tools | [] [] [] [] [] [] [] |
723 glunarclock | [] [] [] [] [] [] |
724 gmult | [] [] [] [] |
727 gnucash-glossary | [] [] [] |
729 gnulib | [] [] [] [] [] |
732 gpe-aerial | [] [] [] [] [] [] [] |
733 gpe-beam | [] [] [] [] [] [] [] |
734 gpe-calendar | [] [] [] [] [] [] [] [] |
735 gpe-clock | [] [] [] [] [] [] [] [] |
736 gpe-conf | [] [] [] [] [] [] [] |
737 gpe-contacts | [] [] [] [] [] |
738 gpe-edit | [] [] [] [] [] [] [] [] |
739 gpe-filemanager | [] [] |
740 gpe-go | [] [] [] [] [] [] |
741 gpe-login | [] [] [] [] [] [] [] [] |
742 gpe-ownerinfo | [] [] [] [] [] [] [] [] |
743 gpe-package | [] [] |
744 gpe-sketchbook | [] [] [] [] [] [] [] [] |
745 gpe-su | [] [] [] [] [] [] [] [] |
746 gpe-taskmanager | [] [] [] [] [] [] [] [] |
747 gpe-timesheet | [] [] [] [] [] [] [] [] |
748 gpe-today | [] [] [] [] [] [] [] [] |
749 gpe-todo | [] [] [] [] |
750 gphoto2 | [] [] [] [] [] |
752 gpsdrive | [] [] [] |
754 grep | [] [] [] [] [] [] [] [] |
758 gst-plugins | [] [] [] [] |
759 gst-plugins-base | [] |
760 gst-plugins-good | [] [] [] [] |
761 gstreamer | [] [] [] |
763 gtkam | [] [] [] [] |
765 gtkspell | [] [] [] [] [] [] [] [] |
767 hello | [] [] [] [] [] [] [] [] |
768 id-utils | [] [] [] [] |
770 indent | [] [] [] [] [] [] |
771 iso_3166 | [] [] [] [] [] [] |
772 iso_3166_1 | [] [] [] [] |
774 iso_3166_3 | [] [] [] [] |
775 iso_4217 | [] [] [] [] |
776 iso_639 | [] [] [] [] |
779 jwhois | [] [] [] [] |
782 keytouch-editor | [] |
783 keytouch-keyboa... | [] |
786 leafpad | [] [] [] [] [] [] |
787 libc | [] [] [] [] [] |
789 libextractor | [] [] |
790 libgpewidget | [] [] [] [] [] [] [] |
791 libgpg-error | [] [] |
793 libgphoto2_port | [] [] |
794 libgsasl | [] [] [] [] |
801 m4 | [] [] [] [] [] |
802 mailutils | [] [] [] [] |
805 minicom | [] [] [] [] [] |
806 mysecretdiary | [] [] [] [] |
808 nano_1_0 | [] [] [] [] |
817 recode | [] [] [] [] [] [] [] |
820 scrollkeeper | [] [] [] [] [] [] [] |
821 sed | [] [] [] [] [] [] [] [] [] |
822 sh-utils | [] [] [] |
823 shared-mime-info | [] [] [] [] [] |
824 sharutils | [] [] [] [] |
830 soundtracker | [] [] |
832 stardict | [] [] [] |
833 system-tools-ba... | [] [] [] [] [] [] [] [] [] |
834 tar | [] [] [] [] [] |
835 texinfo | [] [] [] [] |
836 textutils | [] [] [] |
839 tuxpaint | [] [] [] [] [] |
840 unicode-han-tra... | |
841 unicode-transla... | |
842 util-linux | [] [] [] [] |
843 vorbis-tools | [] [] |
845 wdiff | [] [] [] [] [] [] |
847 xchat | [] [] [] [] [] [] [] |
848 xkeyboard-config | [] [] |
850 +------------------------------------------------------+
851 nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta
852 0 2 3 58 31 53 5 76 72 5 42 48 12 51 128 2
854 tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu
855 +---------------------------------------------------+
859 ant-phone | [] [] | 6
860 anubis | [] [] [] | 11
862 aspell | [] [] [] | 14
864 batchelor | [] [] | 9
867 binutils | [] [] [] | 9
868 bison | [] [] [] | 19
869 bison-runtime | [] [] [] | 15
870 bluez-pin | [] [] [] [] [] [] | 28
873 console-tools | [] [] | 5
874 coreutils | [] [] | 17
876 cpplib | [] [] [] [] | 11
878 darkstat | [] () () | 15
879 dialog | [] [] [] [] [] | 30
880 diffutils | [] [] [] [] | 28
882 e2fsprogs | [] [] | 10
883 enscript | [] [] [] | 16
884 error | [] [] [] [] | 18
885 fetchmail | [] [] | 12
886 fileutils | [] [] [] | 18
887 findutils | [] [] [] | 17
895 gettext-examples | [] [] [] [] [] | 24
896 gettext-runtime | [] [] [] [] [] | 26
897 gettext-tools | [] [] [] [] [] | 19
898 gimp-print | [] [] | 12
901 glunarclock | [] [] [] | 15
902 gmult | [] [] [] [] | 15
905 gnucash-glossary | [] [] | 9
907 gnulib | [] [] [] [] [] | 28
910 gpe-aerial | [] [] | 14
911 gpe-beam | [] [] | 14
912 gpe-calendar | [] [] [] [] | 19
913 gpe-clock | [] [] [] [] | 20
914 gpe-conf | [] [] | 14
915 gpe-contacts | [] [] | 10
916 gpe-edit | [] [] [] [] | 19
917 gpe-filemanager | [] | 5
919 gpe-login | [] [] [] [] [] | 20
920 gpe-ownerinfo | [] [] [] [] | 20
922 gpe-sketchbook | [] [] | 16
923 gpe-su | [] [] [] | 19
924 gpe-taskmanager | [] [] [] | 19
925 gpe-timesheet | [] [] [] [] | 18
926 gpe-today | [] [] [] [] [] | 20
928 gphoto2 | [] [] [] [] | 20
932 grep | [] [] [] [] | 33
936 gst-plugins | [] [] [] | 15
937 gst-plugins-base | [] [] [] | 9
938 gst-plugins-good | [] [] [] | 18
939 gstreamer | [] [] [] | 17
943 gtkspell | [] [] [] [] [] [] | 26
945 hello | [] [] [] [] [] | 39
946 id-utils | [] [] | 14
948 indent | [] [] [] [] | 25
949 iso_3166 | [] [] [] | 15
950 iso_3166_1 | [] [] | 20
952 iso_3166_3 | [] [] | 9
953 iso_4217 | [] [] | 14
955 jpilot | [] [] [] [] | 7
957 jwhois | [] [] [] | 13
960 keytouch-editor | | 2
961 keytouch-keyboa... | [] | 4
964 leafpad | [] [] [] [] | 23
967 libextractor | [] | 5
968 libgpewidget | [] [] [] | 19
969 libgpg-error | [] | 4
971 libgphoto2_port | [] [] [] | 10
984 mysecretdiary | [] [] | 12
986 nano_1_0 | [] [] [] | 18
988 parted | [] [] [] | 9
995 recode | [] [] [] | 25
998 scrollkeeper | [] [] [] [] | 26
1001 shared-mime-info | [] [] [] [] | 23
1002 sharutils | [] [] [] | 23
1008 soundtracker | [] [] | 9
1010 stardict | [] [] [] [] | 11
1011 system-tools-ba... | [] [] [] [] [] [] [] | 37
1012 tar | [] [] [] [] | 17
1013 texinfo | [] [] [] | 15
1014 textutils | [] [] [] | 17
1016 tp-robot | [] [] [] | 9
1017 tuxpaint | [] [] [] | 16
1018 unicode-han-tra... | | 0
1019 unicode-transla... | | 2
1020 util-linux | [] [] [] | 20
1021 vorbis-tools | [] [] | 11
1024 wget | [] [] [] | 19
1025 xchat | [] [] [] [] | 28
1026 xkeyboard-config | [] [] [] [] | 11
1027 xpad | [] [] [] | 14
1028 +---------------------------------------------------+
1029 77 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu
1030 172 domains 0 1 1 78 39 0 135 14 1 50 1 52 0 2040
1032 Some counters in the preceding matrix are higher than the number of
1033 visible blocks let us expect. This is because a few extra PO files are
1034 used for implementing regional variants of languages, or language
1037 For a PO file in the matrix above to be effective, the package to
1038 which it applies should also have been internationalized and
1039 distributed as such by its maintainer. There might be an observable
1040 lag between the mere existence a PO file and its wide availability in a
1043 If June 2006 seems to be old, you may fetch a more recent copy of
1044 this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
1045 matrix with full percentage details can be found at
1046 `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
1048 1.6 Using `gettext' in new packages
1049 ===================================
1051 If you are writing a freely available program and want to
1052 internationalize it you are welcome to use GNU `gettext' in your
1053 package. Of course you have to respect the GNU Library General Public
1054 License which covers the use of the GNU `gettext' library. This means
1055 in particular that even non-free programs can use `libintl' as a shared
1056 library, whereas only free software can use `libintl' as a static
1057 library or use modified versions of `libintl'.
1059 Once the sources are changed appropriately and the setup can handle
1060 the use of `gettext' the only thing missing are the translations. The
1061 Free Translation Project is also available for packages which are not
1062 developed inside the GNU project. Therefore the information given above
1063 applies also for every other Free Software Project. Contact
1064 `translation@iro.umontreal.ca' to make the `.pot' files available to
1065 the translation teams.