
1: 1 Notes on the Free Translation Project 2: *************************************** 3: 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 8: messages. 9: 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. 15: 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. 20: 21: When reporting bugs in the `intl/' directory or bugs which may be 22: related to internationalization, you should tell about the version of 23: `gettext' which is used. The information can be found in the 24: `intl/VERSION' file, in internationalized packages. 25: 26: 1.1 Quick configuration advice 27: ============================== 28: 29: If you want to exploit the full power of internationalization, you 30: should configure it using 31: 32: ./configure --with-included-gettext 33: 34: to force usage of internationalizing routines provided within this 35: package, despite the existence of internationalizing capabilities in the 36: operating system where this package is being installed. So far, only 37: the `gettext' implementation in the GNU C library version 2 provides as 38: many features (such as locale alias, message inheritance, automatic 39: charset conversion or plural form handling) as the implementation here. 40: It is also not possible to offer this additional functionality on top 41: of a `catgets' implementation. Future versions of GNU `gettext' will 42: very likely convey even more functionality. So it might be a good idea 43: to change to GNU `gettext' as soon as possible. 44: 45: So you need _not_ provide this option if you are using GNU libc 2 or 46: you have installed a recent copy of the GNU gettext package with the 47: included `libintl'. 48: 49: 1.2 INSTALL Matters 50: =================== 51: 52: Some packages are "localizable" when properly installed; the programs 53: they contain can be made to speak your own native language. Most such 54: packages use GNU `gettext'. Other packages have their own ways to 55: internationalization, predating GNU `gettext'. 56: 57: By default, this package will be installed to allow translation of 58: messages. It will automatically detect whether the system already 59: provides the GNU `gettext' functions. If not, the included GNU 60: `gettext' library will be used. This library is wholly contained 61: within this package, usually in the `intl/' subdirectory, so prior 62: installation of the GNU `gettext' package is _not_ required. 63: Installers may use special options at configuration time for changing 64: the default behaviour. The commands: 65: 66: ./configure --with-included-gettext 67: ./configure --disable-nls 68: 69: will, respectively, bypass any pre-existing `gettext' to use the 70: internationalizing routines provided within this package, or else, 71: _totally_ disable translation of messages. 72: 73: When you already have GNU `gettext' installed on your system and run 74: configure without an option for your new package, `configure' will 75: probably detect the previously built and installed `libintl.a' file and 76: will decide to use this. This might not be desirable. You should use 77: the more recent version of the GNU `gettext' library. I.e. if the file 78: `intl/VERSION' shows that the library which comes with this package is 79: more recent, you should use 80: 81: ./configure --with-included-gettext 82: 83: to prevent auto-detection. 84: 85: The configuration process will not test for the `catgets' function 86: and therefore it will not be used. The reason is that even an 87: emulation of `gettext' on top of `catgets' could not provide all the 88: extensions of the GNU `gettext' library. 89: 90: Internationalized packages usually have many `po/LL.po' files, where 91: LL gives an ISO 639 two-letter code identifying the language. Unless 92: translations have been forbidden at `configure' time by using the 93: `--disable-nls' switch, all available translations are installed 94: together with the package. However, the environment variable `LINGUAS' 95: may be set, prior to configuration, to limit the installed set. 96: `LINGUAS' should then contain a space separated list of two-letter 97: codes, stating which languages are allowed. 98: 99: 1.3 Using This Package 100: ====================== 101: 102: As a user, if your language has been installed for this package, you 103: only have to set the `LANG' environment variable to the appropriate 104: `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, 105: and `CC' is an ISO 3166 two-letter country code. For example, let's 106: suppose that you speak German and live in Germany. At the shell 107: prompt, merely execute `setenv LANG de_DE' (in `csh'), 108: `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). 109: This can be done from your `.login' or `.profile' file, once and for 110: all. 111: 112: You might think that the country code specification is redundant. 113: But in fact, some languages have dialects in different countries. For 114: example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The 115: country code serves to distinguish the dialects. 116: 117: The locale naming convention of `LL_CC', with `LL' denoting the 118: language and `CC' denoting the country, is the one use on systems based 119: on GNU libc. On other systems, some variations of this scheme are 120: used, such as `LL' or `LL_CC.ENCODING'. You can get the list of 121: locales supported by your system for your language by running the 122: command `locale -a | grep '^LL''. 123: 124: Not all programs have translations for all languages. By default, an 125: English message is shown in place of a nonexistent translation. If you 126: understand other languages, you can set up a priority list of languages. 127: This is done through a different environment variable, called 128: `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' 129: for the purpose of message handling, but you still need to have `LANG' 130: set to the primary language; this is required by other parts of the 131: system libraries. For example, some Swedish users who would rather 132: read translations in German than English for when Swedish is not 133: available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. 134: 135: Special advice for Norwegian users: The language code for Norwegian 136: bokma*l changed from `no' to `nb' recently (in 2003). During the 137: transition period, while some message catalogs for this language are 138: installed under `nb' and some older ones under `no', it's recommended 139: for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and 140: older translations are used. 141: 142: In the `LANGUAGE' environment variable, but not in the `LANG' 143: environment variable, `LL_CC' combinations can be abbreviated as `LL' 144: to denote the language's main dialect. For example, `de' is equivalent 145: to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' 146: (Portuguese as spoken in Portugal) in this context. 147: 148: 1.4 Translating Teams 149: ===================== 150: 151: For the Free Translation Project to be a success, we need interested 152: people who like their own language and write it well, and who are also 153: able to synergize with other translators speaking the same language. 154: Each translation team has its own mailing list. The up-to-date list of 155: teams can be found at the Free Translation Project's homepage, 156: `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" 157: area. 158: 159: If you'd like to volunteer to _work_ at translating messages, you 160: should become a member of the translating team for your own language. 161: The subscribing address is _not_ the same as the list itself, it has 162: `-request' appended. For example, speakers of Swedish can send a 163: message to `sv-request@li.org', having this message body: 164: 165: subscribe 166: 167: Keep in mind that team members are expected to participate 168: _actively_ in translations, or at solving translational difficulties, 169: rather than merely lurking around. If your team does not exist yet and 170: you want to start one, or if you are unsure about what to do or how to 171: get started, please write to `translation@iro.umontreal.ca' to reach the 172: coordinator for all translator teams. 173: 174: The English team is special. It works at improving and uniformizing 175: the terminology in use. Proven linguistic skill are praised more than 176: programming skill, here. 177: 178: 1.5 Available Packages 179: ====================== 180: 181: Languages are not equally supported in all packages. The following 182: matrix shows the current state of internationalization, as of July 183: 2006. The matrix shows, in regard of each package, for which languages 184: PO files have been submitted to translation coordination, with a 185: translation percentage of at least 50%. 186: 187: Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB eo 188: +----------------------------------------------------+ 189: GNUnet | [] | 190: a2ps | [] [] [] [] [] | 191: aegis | () | 192: ant-phone | () | 193: anubis | [] | 194: ap-utils | | 195: aspell | [] [] [] [] | 196: bash | [] [] [] | 197: batchelor | [] | 198: bfd | | 199: bibshelf | [] | 200: binutils | [] | 201: bison | [] [] | 202: bison-runtime | [] | 203: bluez-pin | [] [] [] [] [] | 204: cflow | [] | 205: clisp | [] [] | 206: console-tools | [] [] | 207: coreutils | [] [] [] [] | 208: cpio | | 209: cpplib | [] [] [] | 210: cryptonit | [] | 211: darkstat | [] () [] | 212: dialog | [] [] [] [] [] [] | 213: diffutils | [] [] [] [] [] [] | 214: doodle | [] | 215: e2fsprogs | [] [] | 216: enscript | [] [] [] [] | 217: error | [] [] [] [] | 218: fetchmail | [] [] () [] | 219: fileutils | [] [] | 220: findutils | [] [] [] | 221: flex | [] [] [] | 222: fslint | [] | 223: gas | | 224: gawk | [] [] [] | 225: gbiff | [] | 226: gcal | [] | 227: gcc | [] | 228: gettext-examples | [] [] [] [] [] | 229: gettext-runtime | [] [] [] [] [] | 230: gettext-tools | [] [] | 231: gimp-print | [] [] [] [] | 232: gip | [] | 233: gliv | [] | 234: glunarclock | [] | 235: gmult | [] [] | 236: gnubiff | () | 237: gnucash | () () [] | 238: gnucash-glossary | [] () | 239: gnuedu | | 240: gnulib | [] [] [] [] [] [] | 241: gnunet-gtk | | 242: gnutls | | 243: gpe-aerial | [] [] | 244: gpe-beam | [] [] | 245: gpe-calendar | [] [] | 246: gpe-clock | [] [] | 247: gpe-conf | [] [] | 248: gpe-contacts | | 249: gpe-edit | [] | 250: gpe-filemanager | | 251: gpe-go | [] | 252: gpe-login | [] [] | 253: gpe-ownerinfo | [] [] | 254: gpe-package | | 255: gpe-sketchbook | [] [] | 256: gpe-su | [] [] | 257: gpe-taskmanager | [] [] | 258: gpe-timesheet | [] | 259: gpe-today | [] [] | 260: gpe-todo | | 261: gphoto2 | [] [] [] [] | 262: gprof | [] [] | 263: gpsdrive | () () | 264: gramadoir | [] [] | 265: grep | [] [] [] [] [] [] | 266: gretl | | 267: gsasl | | 268: gss | | 269: gst-plugins | [] [] [] [] | 270: gst-plugins-base | [] [] [] | 271: gst-plugins-good | [] [] [] [] [] [] [] | 272: gstreamer | [] [] [] [] [] [] [] | 273: gtick | [] () | 274: gtkam | [] [] [] | 275: gtkorphan | [] [] | 276: gtkspell | [] [] [] [] | 277: gutenprint | [] | 278: hello | [] [] [] [] [] | 279: id-utils | [] [] | 280: impost | | 281: indent | [] [] [] | 282: iso_3166 | [] [] | 283: iso_3166_1 | [] [] [] [] [] | 284: iso_3166_2 | | 285: iso_3166_3 | [] | 286: iso_4217 | [] | 287: iso_639 | [] [] | 288: jpilot | [] | 289: jtag | | 290: jwhois | | 291: kbd | [] [] [] [] | 292: keytouch | | 293: keytouch-editor | | 294: keytouch-keyboa... | | 295: latrine | () | 296: ld | [] | 297: leafpad | [] [] [] [] [] | 298: libc | [] [] [] [] [] | 299: libexif | [] | 300: libextractor | [] | 301: libgpewidget | [] [] [] | 302: libgpg-error | [] | 303: libgphoto2 | [] [] | 304: libgphoto2_port | [] [] | 305: libgsasl | | 306: libiconv | [] [] | 307: libidn | [] [] | 308: lifelines | [] () | 309: lilypond | [] | 310: lingoteach | | 311: lynx | [] [] [] [] | 312: m4 | [] [] [] [] | 313: mailutils | [] | 314: make | [] [] | 315: man-db | [] () [] [] | 316: minicom | [] [] [] | 317: mysecretdiary | [] [] | 318: nano | [] [] () [] | 319: nano_1_0 | [] () [] [] | 320: opcodes | [] | 321: parted | | 322: pilot-qof | [] | 323: psmisc | [] | 324: pwdutils | | 325: python | | 326: qof | | 327: radius | [] | 328: recode | [] [] [] [] [] [] | 329: rpm | [] [] | 330: screem | | 331: scrollkeeper | [] [] [] [] [] [] [] [] | 332: sed | [] [] [] | 333: sh-utils | [] [] | 334: shared-mime-info | [] [] [] | 335: sharutils | [] [] [] [] [] [] | 336: shishi | | 337: silky | | 338: skencil | [] () | 339: sketch | [] () | 340: solfege | | 341: soundtracker | [] [] | 342: sp | [] | 343: stardict | [] | 344: system-tools-ba... | [] [] [] [] [] [] [] [] [] | 345: tar | [] | 346: texinfo | [] [] [] | 347: textutils | [] [] [] | 348: tin | () () | 349: tp-robot | [] | 350: tuxpaint | [] [] [] [] [] | 351: unicode-han-tra... | | 352: unicode-transla... | | 353: util-linux | [] [] [] [] | 354: vorbis-tools | [] [] [] [] | 355: wastesedge | () | 356: wdiff | [] [] [] [] | 357: wget | [] [] | 358: xchat | [] [] [] [] [] | 359: xkeyboard-config | | 360: xpad | [] [] | 361: +----------------------------------------------------+ 362: af am ar az be bg bs ca cs cy da de el en en_GB eo 363: 11 0 1 2 8 21 1 42 43 2 62 99 18 1 16 16 364: 365: es et eu fa fi fr ga gl gu he hi hr hu id is it 366: +--------------------------------------------------+ 367: GNUnet | | 368: a2ps | [] [] [] () | 369: aegis | | 370: ant-phone | [] | 371: anubis | [] | 372: ap-utils | [] [] | 373: aspell | [] [] [] | 374: bash | [] [] [] | 375: batchelor | [] [] | 376: bfd | [] | 377: bibshelf | [] [] [] | 378: binutils | [] [] [] | 379: bison | [] [] [] [] [] [] | 380: bison-runtime | [] [] [] [] [] | 381: bluez-pin | [] [] [] [] [] | 382: cflow | | 383: clisp | [] [] | 384: console-tools | | 385: coreutils | [] [] [] [] [] [] | 386: cpio | [] [] [] | 387: cpplib | [] [] | 388: cryptonit | [] | 389: darkstat | [] () [] [] [] | 390: dialog | [] [] [] [] [] [] [] [] | 391: diffutils | [] [] [] [] [] [] [] [] [] | 392: doodle | [] [] | 393: e2fsprogs | [] [] [] | 394: enscript | [] [] [] | 395: error | [] [] [] [] [] | 396: fetchmail | [] | 397: fileutils | [] [] [] [] [] [] | 398: findutils | [] [] [] [] | 399: flex | [] [] [] | 400: fslint | [] | 401: gas | [] [] | 402: gawk | [] [] [] [] | 403: gbiff | [] | 404: gcal | [] [] | 405: gcc | [] | 406: gettext-examples | [] [] [] [] [] | 407: gettext-runtime | [] [] [] [] [] [] | 408: gettext-tools | [] [] [] | 409: gimp-print | [] [] | 410: gip | [] [] [] | 411: gliv | () | 412: glunarclock | [] [] [] | 413: gmult | [] [] [] | 414: gnubiff | () () | 415: gnucash | () () () | 416: gnucash-glossary | [] [] | 417: gnuedu | [] | 418: gnulib | [] [] [] [] [] [] [] [] | 419: gnunet-gtk | | 420: gnutls | | 421: gpe-aerial | [] [] | 422: gpe-beam | [] [] | 423: gpe-calendar | [] [] [] [] | 424: gpe-clock | [] [] [] [] | 425: gpe-conf | [] | 426: gpe-contacts | [] [] | 427: gpe-edit | [] [] [] [] | 428: gpe-filemanager | [] | 429: gpe-go | [] [] [] | 430: gpe-login | [] [] [] | 431: gpe-ownerinfo | [] [] [] [] [] | 432: gpe-package | [] | 433: gpe-sketchbook | [] [] | 434: gpe-su | [] [] [] [] | 435: gpe-taskmanager | [] [] [] | 436: gpe-timesheet | [] [] [] [] | 437: gpe-today | [] [] [] [] | 438: gpe-todo | [] | 439: gphoto2 | [] [] [] [] [] | 440: gprof | [] [] [] [] | 441: gpsdrive | () () [] () | 442: gramadoir | [] [] | 443: grep | [] [] [] [] [] [] [] [] [] [] [] [] | 444: gretl | [] [] [] | 445: gsasl | [] | 446: gss | [] | 447: gst-plugins | [] [] [] | 448: gst-plugins-base | [] [] | 449: gst-plugins-good | [] [] [] | 450: gstreamer | [] [] [] | 451: gtick | [] [] [] [] [] | 452: gtkam | [] [] [] [] | 453: gtkorphan | [] [] | 454: gtkspell | [] [] [] [] [] [] | 455: gutenprint | [] | 456: hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | 457: id-utils | [] [] [] [] [] | 458: impost | [] [] | 459: indent | [] [] [] [] [] [] [] [] [] [] | 460: iso_3166 | [] [] [] | 461: iso_3166_1 | [] [] [] [] [] [] [] | 462: iso_3166_2 | [] | 463: iso_3166_3 | [] | 464: iso_4217 | [] [] [] [] | 465: iso_639 | [] [] [] [] [] | 466: jpilot | [] [] | 467: jtag | [] | 468: jwhois | [] [] [] [] [] | 469: kbd | [] [] | 470: keytouch | [] | 471: keytouch-editor | [] | 472: keytouch-keyboa... | [] | 473: latrine | [] [] [] | 474: ld | [] [] | 475: leafpad | [] [] [] [] [] [] | 476: libc | [] [] [] [] [] | 477: libexif | [] | 478: libextractor | [] | 479: libgpewidget | [] [] [] [] [] | 480: libgpg-error | | 481: libgphoto2 | [] [] [] | 482: libgphoto2_port | [] [] | 483: libgsasl | [] [] | 484: libiconv | [] | 485: libidn | [] [] | 486: lifelines | () | 487: lilypond | [] | 488: lingoteach | [] [] [] | 489: lynx | [] [] [] | 490: m4 | [] [] [] [] | 491: mailutils | [] [] | 492: make | [] [] [] [] [] [] [] [] | 493: man-db | () | 494: minicom | [] [] [] [] | 495: mysecretdiary | [] [] [] | 496: nano | [] () [] [] [] [] | 497: nano_1_0 | [] [] [] [] [] | 498: opcodes | [] [] [] [] | 499: parted | [] [] [] [] | 500: pilot-qof | | 501: psmisc | [] [] [] | 502: pwdutils | | 503: python | | 504: qof | | 505: radius | [] [] | 506: recode | [] [] [] [] [] [] [] [] | 507: rpm | [] [] | 508: screem | | 509: scrollkeeper | [] [] [] | 510: sed | [] [] [] [] [] | 511: sh-utils | [] [] [] [] [] [] [] | 512: shared-mime-info | [] [] [] [] [] [] | 513: sharutils | [] [] [] [] [] [] [] [] | 514: shishi | | 515: silky | [] | 516: skencil | [] [] | 517: sketch | [] [] | 518: solfege | [] | 519: soundtracker | [] [] [] | 520: sp | [] | 521: stardict | [] | 522: system-tools-ba... | [] [] [] [] [] [] [] [] | 523: tar | [] [] [] [] [] [] | 524: texinfo | [] [] | 525: textutils | [] [] [] [] [] | 526: tin | [] () | 527: tp-robot | [] [] [] [] | 528: tuxpaint | [] [] | 529: unicode-han-tra... | | 530: unicode-transla... | [] [] | 531: util-linux | [] [] [] [] [] [] [] | 532: vorbis-tools | [] [] | 533: wastesedge | () | 534: wdiff | [] [] [] [] [] [] [] [] | 535: wget | [] [] [] [] [] [] [] [] | 536: xchat | [] [] [] [] [] [] [] [] | 537: xkeyboard-config | [] [] [] [] | 538: xpad | [] [] [] | 539: +--------------------------------------------------+ 540: es et eu fa fi fr ga gl gu he hi hr hu id is it 541: 89 21 16 2 41 119 61 14 1 8 1 6 61 30 0 53 542: 543: ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no 544: +--------------------------------------------------+ 545: GNUnet | | 546: a2ps | () [] [] () | 547: aegis | () | 548: ant-phone | [] | 549: anubis | [] [] [] | 550: ap-utils | [] | 551: aspell | [] [] | 552: bash | [] | 553: batchelor | [] [] | 554: bfd | | 555: bibshelf | [] | 556: binutils | | 557: bison | [] [] [] | 558: bison-runtime | [] [] [] | 559: bluez-pin | [] [] [] | 560: cflow | | 561: clisp | [] | 562: console-tools | | 563: coreutils | [] | 564: cpio | | 565: cpplib | [] | 566: cryptonit | [] | 567: darkstat | [] [] | 568: dialog | [] [] | 569: diffutils | [] [] [] | 570: doodle | | 571: e2fsprogs | [] | 572: enscript | [] | 573: error | [] | 574: fetchmail | [] [] | 575: fileutils | [] [] | 576: findutils | [] | 577: flex | [] [] | 578: fslint | [] [] | 579: gas | | 580: gawk | [] [] | 581: gbiff | [] | 582: gcal | | 583: gcc | | 584: gettext-examples | [] [] | 585: gettext-runtime | [] [] [] | 586: gettext-tools | [] [] | 587: gimp-print | [] [] | 588: gip | [] [] | 589: gliv | [] | 590: glunarclock | [] [] | 591: gmult | [] [] | 592: gnubiff | | 593: gnucash | () () | 594: gnucash-glossary | [] | 595: gnuedu | | 596: gnulib | [] [] [] [] | 597: gnunet-gtk | | 598: gnutls | | 599: gpe-aerial | [] | 600: gpe-beam | [] | 601: gpe-calendar | [] | 602: gpe-clock | [] [] | 603: gpe-conf | [] [] | 604: gpe-contacts | [] | 605: gpe-edit | [] [] | 606: gpe-filemanager | [] | 607: gpe-go | [] [] | 608: gpe-login | [] [] | 609: gpe-ownerinfo | [] | 610: gpe-package | [] | 611: gpe-sketchbook | [] [] | 612: gpe-su | [] [] | 613: gpe-taskmanager | [] [] [] | 614: gpe-timesheet | [] | 615: gpe-today | [] | 616: gpe-todo | | 617: gphoto2 | [] [] | 618: gprof | | 619: gpsdrive | () () () | 620: gramadoir | () | 621: grep | [] [] [] | 622: gretl | | 623: gsasl | [] | 624: gss | | 625: gst-plugins | [] | 626: gst-plugins-base | | 627: gst-plugins-good | [] | 628: gstreamer | [] | 629: gtick | [] | 630: gtkam | [] | 631: gtkorphan | [] | 632: gtkspell | [] [] | 633: gutenprint | | 634: hello | [] [] [] [] [] [] [] [] | 635: id-utils | [] | 636: impost | | 637: indent | [] [] | 638: iso_3166 | [] | 639: iso_3166_1 | [] [] | 640: iso_3166_2 | [] | 641: iso_3166_3 | [] | 642: iso_4217 | [] [] [] | 643: iso_639 | [] [] | 644: jpilot | () () () | 645: jtag | | 646: jwhois | [] | 647: kbd | [] | 648: keytouch | [] | 649: keytouch-editor | | 650: keytouch-keyboa... | | 651: latrine | [] | 652: ld | | 653: leafpad | [] [] | 654: libc | [] [] [] [] [] | 655: libexif | | 656: libextractor | | 657: libgpewidget | [] | 658: libgpg-error |