| 113 | | ISO 639 `LL' two-letter code prior to using the programs in the |
| 114 | | package. For example, let's suppose that you speak German. At the |
| 115 | | shell prompt, merely execute `setenv LANG de' (in `csh'), |
| 116 | | `export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash'). This |
| 117 | | can be done from your `.login' or `.profile' file, once and for all. |
| 118 | | |
| 119 | | An operating system might already offer message localization for |
| 120 | | many of its programs, while other programs have been installed locally |
| 121 | | with the full capabilities of GNU `gettext'. Just using `gettext' |
| 122 | | extended syntax for `LANG' would break proper localization of already |
| 123 | | available operating system programs. In this case, users should set |
| 124 | | both `LANGUAGE' and `LANG' variables in their environment, as programs |
| 125 | | using GNU `gettext' give preference to `LANGUAGE'. For example, some |
| 126 | | Swedish users would rather read translations in German than English for |
| 127 | | when Swedish is not available. This is easily accomplished by setting |
| 128 | | `LANGUAGE' to `sv:de' while leaving `LANG' to `sv'. |
| | 103 | `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, |
| | 104 | and `CC' is an ISO 3166 two-letter country code. For example, let's |
| | 105 | suppose that you speak German and live in Germany. At the shell |
| | 106 | prompt, merely execute `setenv LANG de_DE' (in `csh'), |
| | 107 | `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). |
| | 108 | This can be done from your `.login' or `.profile' file, once and for |
| | 109 | all. |
| | 110 | |
| | 111 | You might think that the country code specification is redundant. |
| | 112 | But in fact, some languages have dialects in different countries. For |
| | 113 | example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The |
| | 114 | country code serves to distinguish the dialects. |
| | 115 | |
| | 116 | Not all programs have translations for all languages. By default, an |
| | 117 | English message is shown in place of a nonexistent translation. If you |
| | 118 | understand other languages, you can set up a priority list of languages. |
| | 119 | This is done through a different environment variable, called |
| | 120 | `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' |
| | 121 | for the purpose of message handling, but you still need to have `LANG' |
| | 122 | set to the primary language; this is required by other parts of the |
| | 123 | system libraries. For example, some Swedish users who would rather |
| | 124 | read translations in German than English for when Swedish is not |
| | 125 | available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. |
| | 126 | |
| | 127 | In the `LANGUAGE' environment variable, but not in the `LANG' |
| | 128 | environment variable, `LL_CC' combinations can be abbreviated as `LL' |
| | 129 | to denote the language's main dialect. For example, `de' is equivalent |
| | 130 | to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' |
| | 131 | (Portuguese as spoken in Portugal) in this context. |
| 136 | | Each translation team has its own mailing list, courtesy of Linux |
| 137 | | International. You may reach your translation team at the address |
| 138 | | `LL@li.org', replacing LL by the two-letter ISO 639 code for your |
| 139 | | language. Language codes are *not* the same as the country codes given |
| 140 | | in ISO 3166. The following translation teams exist, as of December |
| 141 | | 1997: |
| 142 | | |
| 143 | | Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en', |
| 144 | | Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian |
| 145 | | `hu', Irish `ga', Italian `it', Indonesian `id', Japanese `ja', |
| 146 | | Korean `ko', Latin `la', Norwegian `no', Persian `fa', Polish |
| 147 | | `pl', Portuguese `pt', Russian `ru', Slovenian `sl', Spanish `es', |
| 148 | | Swedish `sv', and Turkish `tr'. |
| 149 | | |
| 150 | | For example, you may reach the Chinese translation team by writing to |
| 151 | | `zh@li.org'. |
| 152 | | |
| 153 | | If you'd like to volunteer to *work* at translating messages, you |
| | 139 | Each translation team has its own mailing list. The up-to-date list of |
| | 140 | teams can be found at the Free Translation Project's homepage, |
| | 141 | `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" |
| | 142 | area. |
| | 143 | |
| | 144 | If you'd like to volunteer to _work_ at translating messages, you |
| 176 | | matrix shows the current state of internationalization, as of December |
| 177 | | 1997. The matrix shows, in regard of each package, for which languages |
| 178 | | PO files have been submitted to translation coordination. |
| 179 | | |
| 180 | | Ready PO files cs da de en es fi fr it ja ko nl no pl pt ru sl sv |
| 181 | | .----------------------------------------------------. |
| 182 | | bash | [] [] [] | 3 |
| 183 | | bison | [] [] [] | 3 |
| 184 | | clisp | [] [] [] [] | 4 |
| 185 | | cpio | [] [] [] [] [] [] | 6 |
| 186 | | diffutils | [] [] [] [] [] | 5 |
| 187 | | enscript | [] [] [] [] [] [] | 6 |
| 188 | | fileutils | [] [] [] [] [] [] [] [] [] [] | 10 |
| 189 | | findutils | [] [] [] [] [] [] [] [] [] | 9 |
| 190 | | flex | [] [] [] [] | 4 |
| 191 | | gcal | [] [] [] [] [] | 5 |
| 192 | | gettext | [] [] [] [] [] [] [] [] [] [] [] | 12 |
| 193 | | grep | [] [] [] [] [] [] [] [] [] [] | 10 |
| 194 | | hello | [] [] [] [] [] [] [] [] [] [] [] | 11 |
| 195 | | id-utils | [] [] [] | 3 |
| 196 | | indent | [] [] [] [] [] | 5 |
| 197 | | libc | [] [] [] [] [] [] [] | 7 |
| 198 | | m4 | [] [] [] [] [] [] | 6 |
| 199 | | make | [] [] [] [] [] [] | 6 |
| 200 | | music | [] [] | 2 |
| 201 | | ptx | [] [] [] [] [] [] [] [] | 8 |
| 202 | | recode | [] [] [] [] [] [] [] [] [] | 9 |
| 203 | | sh-utils | [] [] [] [] [] [] [] [] | 8 |
| 204 | | sharutils | [] [] [] [] [] [] | 6 |
| 205 | | tar | [] [] [] [] [] [] [] [] [] [] [] | 11 |
| 206 | | texinfo | [] [] [] | 3 |
| 207 | | textutils | [] [] [] [] [] [] [] [] [] | 9 |
| 208 | | wdiff | [] [] [] [] [] [] [] [] | 8 |
| 209 | | `----------------------------------------------------' |
| 210 | | 17 languages cs da de en es fi fr it ja ko nl no pl pt ru sl sv |
| 211 | | 27 packages 6 4 25 1 18 1 26 2 1 12 20 9 19 7 4 7 17 179 |
| | 167 | matrix shows the current state of internationalization, as of September |
| | 168 | 2001. The matrix shows, in regard of each package, for which languages |
| | 169 | PO files have been submitted to translation coordination, with a |
| | 170 | translation percentage of at least 50%. |
| | 171 | |
| | 172 | Ready PO files bg cs da de el en eo es et fi fr gl he hr id it ja |
| | 173 | +----------------------------------------------------+ |
| | 174 | a2ps | [] [] [] | |
| | 175 | bash | [] [] [] [] | |
| | 176 | bfd | | |
| | 177 | binutils | [] | |
| | 178 | bison | [] [] [] [] [] | |
| | 179 | clisp | [] [] [] [] | |
| | 180 | cpio | [] [] [] [] [] | |
| | 181 | diffutils | [] [] [] [] [] [] [] | |
| | 182 | enscript | [] [] | |
| | 183 | error | [] [] | |
| | 184 | fetchmail | | |
| | 185 | fileutils | [] [] [] [] [] [] [] [] | |
| | 186 | findutils | [] [] [] [] [] [] [] [] | |
| | 187 | flex | [] [] [] | |
| | 188 | freetype | | |
| | 189 | gas | | |
| | 190 | gawk | [] [] | |
| | 191 | gcal | | |
| | 192 | gcc | | |
| | 193 | gettext | [] [] [] [] [] [] [] [] [] [] | |
| | 194 | gnupg | [] [] [] [] [] [] [] | |
| | 195 | gprof | | |
| | 196 | grep | [] [] [] [] [] [] [] [] | |
| | 197 | hello | [] [] [] [] [] [] [] [] [] [] [] | |
| | 198 | id-utils | [] [] [] | |
| | 199 | indent | [] [] [] [] [] | |
| | 200 | jpilot | [] | |
| | 201 | kbd | | |
| | 202 | ld | [] | |
| | 203 | libc | [] [] [] [] [] [] [] [] | |
| | 204 | lilypond | [] | |
| | 205 | lynx | [] [] [] [] | |
| | 206 | m4 | [] [] [] [] [] [] [] [] | |
| | 207 | make | [] [] [] [] [] [] | |
| | 208 | mysecretdiary | [] | |
| | 209 | nano | [] [] [] | |
| | 210 | opcodes | | |
| | 211 | parted | [] [] [] | |
| | 212 | ptx | [] [] [] [] [] [] [] | |
| | 213 | python | | |
| | 214 | recode | [] [] [] [] [] [] [] [] [] | |
| | 215 | sed | [] [] [] [] [] [] [] [] [] [] [] [] | |
| | 216 | sh-utils | [] [] [] [] [] [] [] [] [] [] | |
| | 217 | sharutils | [] [] [] [] [] [] [] [] | |
| | 218 | sketch | | |
| | 219 | soundtracker | [] [] [] | |
| | 220 | sp | | |
| | 221 | tar | [] [] [] [] [] [] [] [] | |
| | 222 | texinfo | [] [] [] [] [] [] | |
| | 223 | textutils | [] [] [] [] [] [] [] [] | |
| | 224 | util-linux | [] [] | |
| | 225 | wdiff | [] [] [] | |
| | 226 | wget | [] [] [] [] [] [] [] [] [] [] | |
| | 227 | +----------------------------------------------------+ |
| | 228 | bg cs da de el en eo es et fi fr gl he hr id it ja |
| | 229 | 0 14 24 32 11 1 8 23 13 1 33 22 4 0 7 9 18 |
| | 230 | |
| | 231 | ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh |
| | 232 | +----------------------------------------------------+ |
| | 233 | a2ps | [] [] [] | 6 |
| | 234 | bash | | 4 |
| | 235 | bfd | | 0 |
| | 236 | binutils | | 1 |
| | 237 | bison | [] | 6 |
| | 238 | clisp | [] | 5 |
| | 239 | cpio | [] [] [] [] [] | 10 |
| | 240 | diffutils | [] [] [] [] | 11 |
| | 241 | enscript | [] [] [] | 5 |
| | 242 | error | [] [] | 4 |
| | 243 | fetchmail | | 0 |
| | 244 | fileutils | [] [] [] [] [] [] [] [] [] | 17 |
| | 245 | findutils | [] [] [] [] [] [] [] [] | 16 |
| | 246 | flex | [] [] [] | 6 |
| | 247 | freetype | | 0 |
| | 248 | gas | | 0 |
| | 249 | gawk | [] | 3 |
| | 250 | gcal | | 0 |
| | 251 | gcc | | 0 |
| | 252 | gettext | [] [] [] [] [] [] [] [] | 18 |
| | 253 | gnupg | [] [] [] | 10 |
| | 254 | gprof | | 0 |
| | 255 | grep | [] [] [] [] | 12 |
| | 256 | hello | [] [] [] [] [] [] [] [] [] [] [] | 22 |
| | 257 | id-utils | [] [] [] | 6 |
| | 258 | indent | [] [] [] [] [] [] [] | 12 |
| | 259 | jpilot | | 1 |
| | 260 | kbd | [] | 1 |
| | 261 | ld | | 1 |
| | 262 | libc | [] [] [] [] [] [] [] [] | 16 |
| | 263 | lilypond | [] [] | 3 |
| | 264 | lynx | [] [] [] [] | 8 |
| | 265 | m4 | [] [] [] [] | 12 |
| | 266 | make | [] [] [] [] [] [] | 12 |
| | 267 | mysecretdiary | | 1 |
| | 268 | nano | [] | 4 |
| | 269 | opcodes | [] | 1 |
| | 270 | parted | [] [] | 5 |
| | 271 | ptx | [] [] [] [] [] [] [] [] | 15 |
| | 272 | python | | 0 |
| | 273 | recode | [] [] [] [] | 13 |
| | 274 | sed | [] [] [] [] [] [] [] | 19 |
| | 275 | sh-utils | [] [] [] [] [] [] [] [] [] [] [] | 21 |
| | 276 | sharutils | [] [] [] | 11 |
| | 277 | sketch | | 0 |
| | 278 | soundtracker | | 3 |
| | 279 | sp | | 0 |
| | 280 | tar | [] [] [] [] [] [] [] | 15 |
| | 281 | texinfo | [] | 7 |
| | 282 | textutils | [] [] [] [] [] [] [] [] | 16 |
| | 283 | util-linux | [] [] | 4 |
| | 284 | wdiff | [] [] [] [] | 7 |
| | 285 | wget | [] [] [] [] [] [] [] | 17 |
| | 286 | +----------------------------------------------------+ |
| | 287 | 33 teams ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh |
| | 288 | 53 domains 9 1 6 20 0 6 17 1 13 25 10 11 23 21 2 2 387 |
| 224 | | If December 1997 seems to be old, you may fetch a more recent copy |
| 225 | | of this `ABOUT-NLS' file on most GNU archive sites. |
| 226 | | |
| | 301 | If September 2001 seems to be old, you may fetch a more recent copy |
| | 302 | of this `ABOUT-NLS' file on most GNU archive sites. The most |
| | 303 | up-to-date matrix with full percentage details can be found at |
| | 304 | `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. |
| | 305 | |
| | 306 | Using `gettext' in new packages |
| | 307 | =============================== |
| | 308 | |
| | 309 | If you are writing a freely available program and want to |
| | 310 | internationalize it you are welcome to use GNU `gettext' in your |
| | 311 | package. Of course you have to respect the GNU Library General Public |
| | 312 | License which covers the use of the GNU `gettext' library. This means |
| | 313 | in particular that even non-free programs can use `libintl' as a shared |
| | 314 | library, whereas only free software can use `libintl' as a static |
| | 315 | library or use modified versions of `libintl'. |
| | 316 | |
| | 317 | Once the sources are changed appropriately and the setup can handle |
| | 318 | to use of `gettext' the only thing missing are the translations. The |
| | 319 | Free Translation Project is also available for packages which are not |
| | 320 | developed inside the GNU project. Therefore the information given above |
| | 321 | applies also for every other Free Software Project. Contact |
| | 322 | `translation@iro.umontreal.ca' to make the `.pot' files available to |
| | 323 | the translation teams. |
| | 324 | |