
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 skills are praised more than 176: programming skills, 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 October 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_2 | | 284: iso_4217 | [] | 285: iso_639 | [] [] | 286: jpilot | [] | 287: jtag | | 288: jwhois | | 289: kbd | [] [] [] [] | 290: keytouch | | 291: keytouch-editor | | 292: keytouch-keyboa... | | 293: latrine | () | 294: ld | [] | 295: leafpad | [] [] [] [] [] | 296: libc | [] [] [] [] [] | 297: libexif | [] | 298: libextractor | [] | 299: libgpewidget | [] [] [] | 300: libgpg-error | [] | 301: libgphoto2 | [] [] | 302: libgphoto2_port | [] [] | 303: libgsasl | | 304: libiconv | [] [] | 305: libidn | [] [] | 306: lifelines | [] () | 307: lilypond | [] | 308: lingoteach | | 309: lynx | [] [] [] [] | 310: m4 | [] [] [] [] | 311: mailutils | [] | 312: make | [] [] | 313: man-db | [] () [] [] | 314: minicom | [] [] [] | 315: mysecretdiary | [] [] | 316: nano | [] [] [] | 317: nano_1_0 | [] () [] [] | 318: opcodes | [] | 319: parted | | 320: pilot-qof | [] | 321: psmisc | [] | 322: pwdutils | | 323: python | | 324: qof | | 325: radius | [] | 326: recode | [] [] [] [] [] [] | 327: rpm | [] [] | 328: screem | | 329: scrollkeeper | [] [] [] [] [] [] [] [] | 330: sed | [] [] [] | 331: sh-utils | [] [] | 332: shared-mime-info | [] [] [] [] | 333: sharutils | [] [] [] [] [] [] | 334: shishi | | 335: silky | | 336: skencil | [] () | 337: sketch | [] () | 338: solfege | | 339: soundtracker | [] [] | 340: sp | [] | 341: stardict | [] | 342: system-tools-ba... | [] [] [] [] [] [] [] [] [] | 343: tar | [] | 344: texinfo | [] [] [] | 345: textutils | [] [] [] | 346: tin | () () | 347: tp-robot | [] | 348: tuxpaint | [] [] [] [] [] | 349: unicode-han-tra... | | 350: unicode-transla... | | 351: util-linux | [] [] [] [] | 352: vorbis-tools | [] [] [] [] | 353: wastesedge | () | 354: wdiff | [] [] [] [] | 355: wget | [] [] | 356: xchat | [] [] [] [] [] [] | 357: xkeyboard-config | | 358: xpad | [] [] | 359: +----------------------------------------------------+ 360: af am ar az be bg bs ca cs cy da de el en en_GB eo 361: 10 0 1 2 9 22 1 42 41 2 60 95 16 1 17 16 362: 363: es et eu fa fi fr ga gl gu he hi hr hu id is it 364: +--------------------------------------------------+ 365: GNUnet | | 366: a2ps | [] [] [] () | 367: aegis | | 368: ant-phone | [] | 369: anubis | [] | 370: ap-utils | [] [] | 371: aspell | [] [] [] | 372: bash | [] [] [] | 373: batchelor | [] [] | 374: bfd | [] | 375: bibshelf | [] [] [] | 376: binutils | [] [] [] | 377: bison | [] [] [] [] [] [] | 378: bison-runtime | [] [] [] [] [] | 379: bluez-pin | [] [] [] [] [] | 380: cflow | [] | 381: clisp | [] [] | 382: console-tools | | 383: coreutils | [] [] [] [] [] [] | 384: cpio | [] [] [] | 385: cpplib | [] [] | 386: cryptonit | [] | 387: darkstat | [] () [] [] [] | 388: dialog | [] [] [] [] [] [] [] [] | 389: diffutils | [] [] [] [] [] [] [] [] [] | 390: doodle | [] [] | 391: e2fsprogs | [] [] [] | 392: enscript | [] [] [] | 393: error | [] [] [] [] [] | 394: fetchmail | [] | 395: fileutils | [] [] [] [] [] [] | 396: findutils | [] [] [] [] | 397: flex | [] [] [] | 398: fslint | [] | 399: gas | [] [] | 400: gawk | [] [] [] [] | 401: gbiff | [] | 402: gcal | [] [] | 403: gcc | [] | 404: gettext-examples | [] [] [] [] [] [] | 405: gettext-runtime | [] [] [] [] [] [] | 406: gettext-tools | [] [] [] | 407: gimp-print | [] [] | 408: gip | [] [] [] | 409: gliv | () | 410: glunarclock | [] [] [] | 411: gmult | [] [] [] | 412: gnubiff | () () | 413: gnucash | () () () | 414: gnucash-glossary | [] [] | 415: gnuedu | [] | 416: gnulib | [] [] [] [] [] [] [] [] | 417: gnunet-gtk | | 418: gnutls | | 419: gpe-aerial | [] [] | 420: gpe-beam | [] [] | 421: gpe-calendar | | 422: gpe-clock | [] [] [] [] | 423: gpe-conf | [] | 424: gpe-contacts | [] [] | 425: gpe-edit | [] [] [] [] | 426: gpe-filemanager | [] | 427: gpe-go | [] [] [] | 428: gpe-login | [] [] [] | 429: gpe-ownerinfo | [] [] [] [] [] | 430: gpe-package | [] | 431: gpe-sketchbook | [] [] | 432: gpe-su | [] [] [] [] | 433: gpe-taskmanager | [] [] [] | 434: gpe-timesheet | [] [] [] [] | 435: gpe-today | [] [] [] [] | 436: gpe-todo | [] | 437: gphoto2 | [] [] [] [] [] | 438: gprof | [] [] [] [] | 439: gpsdrive | () () [] () | 440: gramadoir | [] [] | 441: grep | [] [] [] [] [] [] [] [] [] [] [] [] | 442: gretl | [] [] [] | 443: gsasl | [] [] | 444: gss | [] | 445: gst-plugins | [] [] [] | 446: gst-plugins-base | [] [] | 447: gst-plugins-good | [] [] [] | 448: gstreamer | [] [] [] | 449: gtick | [] | 450: gtkam | [] [] [] [] | 451: gtkorphan | [] [] | 452: gtkspell | [] [] [] [] [] [] | 453: gutenprint | [] | 454: hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | 455: id-utils | [] [] [] [] [] | 456: impost | [] [] | 457: indent | [] [] [] [] [] [] [] [] [] [] | 458: iso_3166 | [] [] [] | 459: iso_3166_2 | [] | 460: iso_4217 | [] [] [] [] | 461: iso_639 | [] [] [] [] [] | 462: jpilot | [] [] | 463: jtag | [] | 464: jwhois | [] [] [] [] [] | 465: kbd | [] [] | 466: keytouch | [] | 467: keytouch-editor | [] | 468: keytouch-keyboa... | [] | 469: latrine | [] [] [] | 470: ld | [] [] | 471: leafpad | [] [] [] [] [] [] | 472: libc | [] [] [] [] [] | 473: libexif | [] | 474: libextractor | [] | 475: libgpewidget | [] [] [] [] [] | 476: libgpg-error | | 477: libgphoto2 | [] [] [] | 478: libgphoto2_port | [] [] | 479: libgsasl | [] [] | 480: libiconv | [] [] | 481: libidn | [] [] | 482: lifelines | () | 483: lilypond | [] | 484: lingoteach | [] [] [] | 485: lynx | [] [] [] | 486: m4 | [] [] [] [] | 487: mailutils | [] [] | 488: make | [] [] [] [] [] [] [] [] | 489: man-db | () | 490: minicom | [] [] [] [] | 491: mysecretdiary | [] [] [] | 492: nano | [] [] [] [] [] [] | 493: nano_1_0 | [] [] [] [] [] | 494: opcodes | [] [] [] [] | 495: parted | [] [] [] [] | 496: pilot-qof | | 497: psmisc | [] [] [] | 498: pwdutils | | 499: python | | 500: qof | [] | 501: radius | [] [] | 502: recode | [] [] [] [] [] [] [] [] | 503: rpm | [] [] | 504: screem | | 505: scrollkeeper | [] [] [] | 506: sed | [] [] [] [] [] | 507: sh-utils | [] [] [] [] [] [] [] | 508: shared-mime-info | [] [] [] [] [] [] | 509: sharutils | [] [] [] [] [] [] [] [] | 510: shishi | | 511: silky | [] | 512: skencil | [] [] | 513: sketch | [] [] | 514: solfege | [] | 515: soundtracker | [] [] [] | 516: sp | [] | 517: stardict | [] | 518: system-tools-ba... | [] [] [] [] [] [] [] [] | 519: tar | [] [] [] [] [] [] [] | 520: texinfo | [] [] | 521: textutils | [] [] [] [] [] | 522: tin | [] () | 523: tp-robot | [] [] [] [] | 524: tuxpaint | [] [] | 525: unicode-han-tra... | | 526: unicode-transla... | [] [] | 527: util-linux | [] [] [] [] [] [] [] | 528: vorbis-tools | [] [] | 529: wastesedge | () | 530: wdiff | [] [] [] [] [] [] [] [] | 531: wget | [] [] [] [] [] [] [] [] | 532: xchat | [] [] [] [] [] [] [] [] | 533: xkeyboard-config | [] [] [] [] | 534: xpad | [] [] [] | 535: +--------------------------------------------------+ 536: es et eu fa fi fr ga gl gu he hi hr hu id is it 537: 88 22 14 2 40 115 61 14 1 8 1 6 59 31 0 52 538: 539: ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no 540: +-------------------------------------------------+ 541: GNUnet | | 542: a2ps | () [] [] () | 543: aegis | () | 544: ant-phone | [] | 545: anubis | [] [] [] | 546: ap-utils | [] | 547: aspell | [] [] | 548: bash | [] | 549: batchelor | [] [] | 550: bfd | | 551: bibshelf | [] | 552: binutils | | 553: bison | [] [] [] | 554: bison-runtime | [] [] [] | 555: bluez-pin | [] [] [] | 556: cflow | | 557: clisp | [] | 558: console-tools | | 559: coreutils | [] | 560: cpio | | 561: cpplib | [] | 562: cryptonit | [] | 563: darkstat | [] [] | 564: dialog | [] [] | 565: diffutils | [] [] [] | 566: doodle | | 567: e2fsprogs | [] | 568: enscript | [] | 569: error | [] | 570: fetchmail | [] [] | 571: fileutils | [] [] | 572: findutils | [] | 573: flex | [] [] | 574: fslint | [] [] | 575: gas | | 576: gawk | [] [] | 577: gbiff | [] | 578: gcal | | 579: gcc | | 580: gettext-examples | [] [] | 581: gettext-runtime | [] [] [] | 582: gettext-tools | [] [] | 583: gimp-print | [] [] | 584: gip | [] [] | 585: gliv | [] | 586: glunarclock | [] [] | 587: gmult | [] [] | 588: gnubiff | | 589: gnucash | () () | 590: gnucash-glossary | [] | 591: gnuedu | | 592: gnulib | [] [] [] [] | 593: gnunet-gtk | | 594: gnutls | | 595: gpe-aerial | [] | 596: gpe-beam | [] | 597: gpe-calendar | [] | 598: gpe-clock | [] [] [] | 599: gpe-conf | [] [] | 600: gpe-contacts | [] | 601: gpe-edit | [] [] [] | 602: gpe-filemanager | [] [] | 603: gpe-go | [] [] [] | 604: gpe-login | [] [] [] | 605: gpe-ownerinfo | [] [] | 606: gpe-package | [] [] | 607: gpe-sketchbook | [] [] | 608: gpe-su | [] [] [] | 609: gpe-taskmanager | [] [] [] [] | 610: gpe-timesheet | [] | 611: gpe-today | [] [] | 612: gpe-todo | [] | 613: gphoto2 | [] [] | 614: gprof | | 615: gpsdrive | () () () | 616: gramadoir | () | 617: grep | [] [] [] [] | 618: gretl | | 619: gsasl | [] | 620: gss | | 621: gst-plugins | [] | 622: gst-plugins-base | | 623: gst-plugins-good | [] | 624: gstreamer | [] | 625: gtick | | 626: gtkam | [] | 627: gtkorphan | [] | 628: gtkspell | [] [] | 629: gutenprint | | 630: hello | [] [] [] [] [] [] | 631: id-utils | [] | 632: impost | | 633: indent | [] [] | 634: iso_3166 | [] | 635: iso_3166_2 | [] | 636: iso_4217 | [] [] [] | 637: iso_639 | [] [] | 638: jpilot | () () () | 639: jtag | | 640: jwhois | [] | 641: kbd | [] | 642: keytouch | [] | 643: keytouch-editor | | 644: keytouch-keyboa... | | 645: latrine | [] | 646: ld | | 647: leafpad | [] [] | 648: libc | [] [] [] [] [] | 649: libexif | | 650: libextractor | | 651: libgpewidget | [] | 652: libgpg-error | | 653: libgphoto2 | [] | 654: libgphoto2_port | [] | 655: libgsasl | [] | 656: libiconv | | 657: libidn | [] [] | 658: lifelines | [] | 659: lilypond | | 660: lingoteach | [] | 661: lynx | [] [] | 662: m4 | [] [] | 663: mailutils | | 664: make | [] [] [] | 665: man-db | () | 666: minicom | [] | 667: mysecretdiary | [] | 668: nano | [] [] [] | 669: nano_1_0 | [] [] [] | 670: opcodes | [] | 671: parted | [] [] | 672: pilot-qof |