diff options
author | Bruno Haible <bruno@clisp.org> | 2001-11-30 15:24:16 +0000 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2009-06-21 23:31:23 +0200 |
commit | 88498d7b70cffdf8f74768c9d5f477637261da47 (patch) | |
tree | 2b6878d994ebfd6d0be10f081f23d21644f92d9b | |
parent | 43a1454038bf0d52dba9c99a797b3ae499fc1423 (diff) | |
download | external_gettext-88498d7b70cffdf8f74768c9d5f477637261da47.zip external_gettext-88498d7b70cffdf8f74768c9d5f477637261da47.tar.gz external_gettext-88498d7b70cffdf8f74768c9d5f477637261da47.tar.bz2 |
Automatically generated.
-rw-r--r-- | doc/gettext.info-6 | 1137 | ||||
-rw-r--r-- | doc/gettext.info-7 | 2352 | ||||
-rw-r--r-- | doc/gettext_15.html | 523 | ||||
-rw-r--r-- | doc/gettext_16.html | 745 | ||||
-rw-r--r-- | po/cs.gmo | bin | 0 -> 10416 bytes | |||
-rw-r--r-- | po/et.gmo | bin | 0 -> 10295 bytes | |||
-rw-r--r-- | po/gl.gmo | bin | 0 -> 10520 bytes | |||
-rw-r--r-- | po/id.gmo | bin | 0 -> 6746 bytes | |||
-rw-r--r-- | po/it.gmo | bin | 0 -> 7084 bytes | |||
-rw-r--r-- | po/ru.gmo | bin | 0 -> 11002 bytes | |||
-rw-r--r-- | po/sk.gmo | bin | 0 -> 10509 bytes | |||
-rw-r--r-- | po/zh.gmo | bin | 0 -> 9060 bytes |
12 files changed, 4757 insertions, 0 deletions
diff --git a/doc/gettext.info-6 b/doc/gettext.info-6 new file mode 100644 index 0000000..e31199b --- /dev/null +++ b/doc/gettext.info-6 @@ -0,0 +1,1137 @@ +This is gettext.info, produced by makeinfo version 4.0 from +gettext.texi. + +INFO-DIR-SECTION GNU Gettext Utilities +START-INFO-DIR-ENTRY +* Gettext: (gettext). GNU gettext utilities. +* gettextize: (gettext)gettextize Invocation. Prepare a package for gettext. +* msgfmt: (gettext)msgfmt Invocation. Make MO files out of PO files. +* msgmerge: (gettext)msgmerge Invocation. Update two PO files into one. +* xgettext: (gettext)xgettext Invocation. Extract strings into a PO file. +END-INFO-DIR-ENTRY + + This file provides documentation for GNU `gettext' utilities. It +also serves as a reference for the free Translation Project. + + Copyright (C) 1995, 1996, 1997, 1998, 2001 Free Software Foundation, +Inc. + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that +the entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above conditions for modified +versions, except that this permission notice may be stated in a +translation approved by the Foundation. + + +File: gettext.info, Node: Trans Intro 1, Next: Discussions, Prev: Trans Intro 0, Up: Translators + +Introduction 1 +============== + + This is now official, GNU is going international! Here is the +announcement submitted for the January 1995 GNU Bulletin: + + A handful of GNU packages have already been adapted and provided + with message translations for several languages. Translation + teams have begun to organize, using these packages as a starting + point. But there are many more packages and many languages for + which we have no volunteer translators. If you'd like to + volunteer to work at translating messages, please send mail to + `translation@iro.umontreal.ca' indicating what language(s) you can + work on. + + This document should answer many questions for those who are curious +about the process or would like to contribute. Please at least skim +over it, hoping to cut down a little of the high volume of e-mail +generated by this collective effort towards internationalization of +free software. + + Most free programming which is widely shared is done in English, and +currently, English is used as the main communicating language between +national communities collaborating to free software. This very document +is written in English. This will not change in the foreseeable future. + + However, there is a strong appetite from national communities for +having more software able to write using national language and habits, +and there is an on-going effort to modify free software in such a way +that it becomes able to do so. The experiments driven so far raised an +enthusiastic response from pretesters, so we believe that +internationalization of free software is dedicated to succeed. + + For suggestion clarifications, additions or corrections to this +document, please e-mail to `translation@iro.umontreal.ca'. + + +File: gettext.info, Node: Discussions, Next: Organization, Prev: Trans Intro 1, Up: Translators + +Discussions +=========== + + Facing this internationalization effort, a few users expressed their +concerns. Some of these doubts are presented and discussed, here. + + * Smaller groups + + Some languages are not spoken by a very large number of people, so + people speaking them sometimes consider that there may not be all + that much demand such versions of free software packages. + Moreover, many people being _into computers_, in some countries, + generally seem to prefer English versions of their software. + + On the other end, people might enjoy their own language a lot, and + be very motivated at providing to themselves the pleasure of + having their beloved free software speaking their mother tongue. + They do themselves a personal favor, and do not pay that much + attention to the number of people beneficiating of their work. + + * Misinterpretation + + Other users are shy to push forward their own language, seeing in + this some kind of misplaced propaganda. Someone thought there + must be some users of the language over the networks pestering + other people with it. + + But any spoken language is worth localization, because there are + people behind the language for whom the language is important and + dear to their hearts. + + * Odd translations + + The biggest problem is to find the right translations so that + everybody can understand the messages. Translations are usually a + little odd. Some people get used to English, to the extent they + may find translations into their own language "rather pushy, + obnoxious and sometimes even hilarious." As a French speaking + man, I have the experience of those instruction manuals for goods, + so poorly translated in French in Korea or Taiwan... + + The fact is that we sometimes have to create a kind of national + computer culture, and this is not easy without the collaboration of + many people liking their mother tongue. This is why translations + are better achieved by people knowing and loving their own + language, and ready to work together at improving the results they + obtain. + + * Dependencies over the GPL or LGPL + + Some people wonder if using GNU `gettext' necessarily brings their + package under the protective wing of the GNU General Public + License or the GNU Library General Public License, when they do + not want to make their program free, or want other kinds of + freedom. The simplest answer is "normally not". + + The GNU `gettext' library, i.e. the contents of `libintl', is + covered by the GNU Library General Public License. The rest of + the GNU `gettext' package is covered by the GNU General Public + License. + + The mere marking of localizable strings in a package, or + conditional inclusion of a few lines for initialization, is not + really including GPL'ed or LGPL'ed code. However, since the + localization routines in `libintl' are under the LGPL, the LGPL + needs to be considered. It gives the right to distribute the + complete unmodified source of `libintl' even with non-free + programs. It also gives the right to use `libintl' as a shared + library, even for non-free programs. But it gives the right to + use `libintl' as a static library or to incorporate `libintl' into + another library only to free software. + + + +File: gettext.info, Node: Organization, Next: Information Flow, Prev: Discussions, Up: Translators + +Organization +============ + + On a larger scale, the true solution would be to organize some kind +of fairly precise set up in which volunteers could participate. I gave +some thought to this idea lately, and realize there will be some touchy +points. I thought of writing to Richard Stallman to launch such a +project, but feel it might be good to shake out the ideas between +ourselves first. Most probably that Linux International has some +experience in the field already, or would like to orchestrate the +volunteer work, maybe. Food for thought, in any case! + + I guess we have to setup something early, somehow, that will help +many possible contributors of the same language to interlock and avoid +work duplication, and further be put in contact for solving together +problems particular to their tongue (in most languages, there are many +difficulties peculiar to translating technical English). My Swedish +contributor acknowledged these difficulties, and I'm well aware of them +for French. + + This is surely not a technical issue, but we should manage so the +effort of locale contributors be maximally useful, despite the national +team layer interface between contributors and maintainers. + + The Translation Project needs some setup for coordinating language +coordinators. Localizing evolving programs will surely become a +permanent and continuous activity in the free software community, once +well started. The setup should be minimally completed and tested +before GNU `gettext' becomes an official reality. The e-mail address +`translation@iro.umontreal.ca' has been setup for receiving offers from +volunteers and general e-mail on these topics. This address reaches +the Translation Project coordinator. + +* Menu: + +* Central Coordination:: Central Coordination +* National Teams:: National Teams +* Mailing Lists:: Mailing Lists + + +File: gettext.info, Node: Central Coordination, Next: National Teams, Prev: Organization, Up: Organization + +Central Coordination +-------------------- + + I also think GNU will need sooner than it thinks, that someone setup +a way to organize and coordinate these groups. Some kind of group of +groups. My opinion is that it would be good that GNU delegates this +task to a small group of collaborating volunteers, shortly. Perhaps in +`gnu.announce' a list of this national committee's can be published. + + My role as coordinator would simply be to refer to Ulrich any German +speaking volunteer interested to localization of free software +packages, and maybe helping national groups to initially organize, +while maintaining national registries for until national groups are +ready to take over. In fact, the coordinator should ease volunteers to +get in contact with one another for creating national teams, which +should then select one coordinator per language, or country +(regionalized language). If well done, the coordination should be +useful without being an overwhelming task, the time to put delegations +in place. + + +File: gettext.info, Node: National Teams, Next: Mailing Lists, Prev: Central Coordination, Up: Organization + +National Teams +-------------- + + I suggest we look for volunteer coordinators/editors for individual +languages. These people will scan contributions of translation files +for various programs, for their own languages, and will ensure high and +uniform standards of diction. + + From my current experience with other people in these days, those who +provide localizations are very enthusiastic about the process, and are +more interested in the localization process than in the program they +localize, and want to do many programs, not just one. This seems to +confirm that having a coordinator/editor for each language is a good +idea. + + We need to choose someone who is good at writing clear and concise +prose in the language in question. That is hard--we can't check it +ourselves. So we need to ask a few people to judge each others' +writing and select the one who is best. + + I announce my prerelease to a few dozen people, and you would not +believe all the discussions it generated already. I shudder to think +what will happen when this will be launched, for true, officially, +world wide. Who am I to arbitrate between two Czekolsovak users +contradicting each other, for example? + + I assume that your German is not much better than my French so that +I would not be able to judge about these formulations. What I would +suggest is that for each language there is a group for people who +maintain the PO files and judge about changes. I suspect there will be +cultural differences between how such groups of people will behave. +Some will have relaxed ways, reach consensus easily, and have anyone of +the group relate to the maintainers, while others will fight to death, +organize heavy administrations up to national standards, and use strict +channels. + + The German team is putting out a good example. Right now, they are +maybe half a dozen people revising translations of each other and +discussing the linguistic issues. I do not even have all the names. +Ulrich Drepper is taking care of coordinating the German team. He +subscribed to all my pretest lists, so I do not even have to warn him +specifically of incoming releases. + + I'm sure, that is a good idea to get teams for each language working +on translations. That will make the translations better and more +consistent. + +* Menu: + +* Sub-Cultures:: Sub-Cultures +* Organizational Ideas:: Organizational Ideas + + +File: gettext.info, Node: Sub-Cultures, Next: Organizational Ideas, Prev: National Teams, Up: National Teams + +Sub-Cultures +............ + + Taking French for example, there are a few sub-cultures around +computers which developed diverging vocabularies. Picking volunteers +here and there without addressing this problem in an organized way, +soon in the project, might produce a distasteful mix of +internationalized programs, and possibly trigger endless quarrels among +those who really care. + + Keeping some kind of unity in the way French localization of +internationalized programs is achieved is a difficult (and delicate) +job. Knowing the latin character of French people (:-), if we take this +the wrong way, we could end up nowhere, or spoil a lot of energies. +Maybe we should begin to address this problem seriously _before_ GNU +`gettext' become officially published. And I suspect that this means +soon! + + +File: gettext.info, Node: Organizational Ideas, Prev: Sub-Cultures, Up: National Teams + +Organizational Ideas +.................... + + I expect the next big changes after the official release. Please +note that I use the German translation of the short GPL message. We +need to set a few good examples before the localization goes out for +true in the free software community. Here are a few points to discuss: + + * Each group should have one FTP server (at least one master). + + * The files on the server should reflect the latest version (of + course!) and it should also contain a RCS directory with the + corresponding archives (I don't have this now). + + * There should also be a ChangeLog file (this is more useful than the + RCS archive but can be generated automatically from the later by + Emacs). + + * A "core group" should judge about questionable changes (for now + this group consists solely by me but I ask some others + occasionally; this also seems to work). + + + +File: gettext.info, Node: Mailing Lists, Prev: National Teams, Up: Organization + +Mailing Lists +------------- + + If we get any inquiries about GNU `gettext', send them on to: + + `translation@iro.umontreal.ca' + + The `*-pretest' lists are quite useful to me, maybe the idea could +be generalized to many GNU, and non-GNU packages. But each maintainer +his/her way! + + Franc,ois, we have a mechanism in place here at `gnu.ai.mit.edu' to +track teams, support mailing lists for them and log members. We have a +slight preference that you use it. If this is OK with you, I can get +you clued in. + + Things are changing! A few years ago, when Daniel Fekete and I +asked for a mailing list for GNU localization, nested at the FSF, we +were politely invited to organize it anywhere else, and so did we. For +communicating with my pretesters, I later made a handful of mailing +lists located at iro.umontreal.ca and administrated by `majordomo'. +These lists have been _very_ dependable so far... + + I suspect that the German team will organize itself a mailing list +located in Germany, and so forth for other countries. But before they +organize for true, it could surely be useful to offer mailing lists +located at the FSF to each national team. So yes, please explain me +how I should proceed to create and handle them. + + We should create temporary mailing lists, one per country, to help +people organize. Temporary, because once regrouped and structured, it +would be fair the volunteers from country bring back _their_ list in +there and manage it as they want. My feeling is that, in the long run, +each team should run its own list, from within their country. There +also should be some central list to which all teams could subscribe as +they see fit, as long as each team is represented in it. + + +File: gettext.info, Node: Information Flow, Prev: Organization, Up: Translators + +Information Flow +================ + + There will surely be some discussion about this messages after the +packages are finally released. If people now send you some proposals +for better messages, how do you proceed? Jim, please note that right +now, as I put forward nearly a dozen of localizable programs, I receive +both the translations and the coordination concerns about them. + + If I put one of my things to pretest, Ulrich receives the +announcement and passes it on to the German team, who make last minute +revisions. Then he submits the translation files to me _as the +maintainer_. For free packages I do not maintain, I would not even +hear about it. This scheme could be made to work for the whole +Translation Project, I think. For security reasons, maybe Ulrich +(national coordinators, in fact) should update central registry kept at +the Translation Project (Jim, me, or Len's recruits) once in a while. + + In December/January, I was aggressively ready to internationalize +all of GNU, giving myself the duty of one small GNU package per week or +so, taking many weeks or months for bigger packages. But it does not +work this way. I first did all the things I'm responsible for. I've +nothing against some missionary work on other maintainers, but I'm also +loosing a lot of energy over it--same debates over again. + + And when the first localized packages are released we'll get a lot of +responses about ugly translations :-). Surely, and we need to have +beforehand a fairly good idea about how to handle the information flow +between the national teams and the package maintainers. + + Please start saving somewhere a quick history of each PO file. I +know for sure that the file format will change, allowing for comments. +It would be nice that each file has a kind of log, and references for +those who want to submit comments or gripes, or otherwise contribute. +I sent a proposal for a fast and flexible format, but it is not +receiving acceptance yet by the GNU deciders. I'll tell you when I +have more information about this. + + +File: gettext.info, Node: Maintainers, Next: Programming Languages, Prev: Translators, Up: Top + +The Maintainer's View +********************* + + The maintainer of a package has many responsibilities. One of them +is ensuring that the package will install easily on many platforms, and +that the magic we described earlier (*note Users::) will work for +installers and end users. + + Of course, there are many possible ways by which GNU `gettext' might +be integrated in a distribution, and this chapter does not cover them +in all generality. Instead, it details one possible approach which is +especially adequate for many free software distributions following GNU +standards, or even better, Gnits standards, because GNU `gettext' is +purposely for helping the internationalization of the whole GNU +project, and as many other good free packages as possible. So, the +maintainer's view presented here presumes that the package already has +a `configure.in' file and uses GNU Autoconf. + + Nevertheless, GNU `gettext' may surely be useful for free packages +not following GNU standards and conventions, but the maintainers of such +packages might have to show imagination and initiative in organizing +their distributions so `gettext' work for them in all situations. +There are surely many, out there. + + Even if `gettext' methods are now stabilizing, slight adjustments +might be needed between successive `gettext' versions, so you should +ideally revise this chapter in subsequent releases, looking for changes. + +* Menu: + +* Flat and Non-Flat:: Flat or Non-Flat Directory Structures +* Prerequisites:: Prerequisite Works +* gettextize Invocation:: Invoking the `gettextize' Program +* Adjusting Files:: Files You Must Create or Alter + + +File: gettext.info, Node: Flat and Non-Flat, Next: Prerequisites, Prev: Maintainers, Up: Maintainers + +Flat or Non-Flat Directory Structures +===================================== + + Some free software packages are distributed as `tar' files which +unpack in a single directory, these are said to be "flat" distributions. +Other free software packages have a one level hierarchy of +subdirectories, using for example a subdirectory named `doc/' for the +Texinfo manual and man pages, another called `lib/' for holding +functions meant to replace or complement C libraries, and a +subdirectory `src/' for holding the proper sources for the package. +These other distributions are said to be "non-flat". + + We cannot say much about flat distributions. A flat directory +structure has the disadvantage of increasing the difficulty of updating +to a new version of GNU `gettext'. Also, if you have many PO files, +this could somewhat pollute your single directory. Also, GNU +`gettext''s libintl sources consist of C sources, shell scripts, `sed' +scripts and complicated Makefile rules, which don't fit well into an +existing flat structure. For these reasons, we recommend to use +non-flat approach in this case as well. + + Maybe because GNU `gettext' itself has a non-flat structure, we have +more experience with this approach, and this is what will be described +in the remaining of this chapter. Some maintainers might use this as +an opportunity to unflatten their package structure. + + +File: gettext.info, Node: Prerequisites, Next: gettextize Invocation, Prev: Flat and Non-Flat, Up: Maintainers + +Prerequisite Works +================== + + There are some works which are required for using GNU `gettext' in +one of your package. These works have some kind of generality that +escape the point by point descriptions used in the remainder of this +chapter. So, we describe them here. + + * Before attempting to use `gettextize' you should install some + other packages first. Ensure that recent versions of GNU `m4', + GNU Autoconf and GNU `gettext' are already installed at your site, + and if not, proceed to do this first. If you got to install these + things, beware that GNU `m4' must be fully installed before GNU + Autoconf is even _configured_. + + To further ease the task of a package maintainer the `automake' + package was designed and implemented. GNU `gettext' now uses this + tool and the `Makefile's in the `intl/' and `po/' therefore know + about all the goals necessary for using `automake' and `libintl' + in one project. + + Those four packages are only needed to you, as a maintainer; the + installers of your own package and end users do not really need + any of GNU `m4', GNU Autoconf, GNU `gettext', or GNU `automake' + for successfully installing and running your package, with messages + properly translated. But this is not completely true if you + provide internationalized shell scripts within your own package: + GNU `gettext' shall then be installed at the user site if the end + users want to see the translation of shell script messages. + + * Your package should use Autoconf and have a `configure.in' or + `configure.ac' file. If it does not, you have to learn how. The + Autoconf documentation is quite well written, it is a good idea + that you print it and get familiar with it. + + * Your C sources should have already been modified according to + instructions given earlier in this manual. *Note Sources::. + + * Your `po/' directory should receive all PO files submitted to you + by the translator teams, each having `LL.po' as a name. This is + not usually easy to get translation work done before your package + gets internationalized and available! Since the cycle has to + start somewhere, the easiest for the maintainer is to start with + absolutely no PO files, and wait until various translator teams + get interested in your package, and submit PO files. + + + It is worth adding here a few words about how the maintainer should +ideally behave with PO files submissions. As a maintainer, your role is +to authentify the origin of the submission as being the representative +of the appropriate translating teams of the Translation Project (forward +the submission to `translation@iro.umontreal.ca' in case of doubt), to +ensure that the PO file format is not severely broken and does not +prevent successful installation, and for the rest, to merely to put +these PO files in `po/' for distribution. + + As a maintainer, you do not have to take on your shoulders the +responsibility of checking if the translations are adequate or +complete, and should avoid diving into linguistic matters. Translation +teams drive themselves and are fully responsible of their linguistic +choices for the Translation Project. Keep in mind that translator +teams are _not_ driven by maintainers. You can help by carefully +redirecting all communications and reports from users about linguistic +matters to the appropriate translation team, or explain users how to +reach or join their team. The simplest might be to send them the +`ABOUT-NLS' file. + + Maintainers should _never ever_ apply PO file bug reports +themselves, short-cutting translation teams. If some translator has +difficulty to get some of her points through her team, it should not be +an issue for her to directly negotiate translations with maintainers. +Teams ought to settle their problems themselves, if any. If you, as a +maintainer, ever think there is a real problem with a team, please +never try to _solve_ a team's problem on your own. + + +File: gettext.info, Node: gettextize Invocation, Next: Adjusting Files, Prev: Prerequisites, Up: Maintainers + +Invoking the `gettextize' Program +================================= + + Some files are consistently and identically needed in every package +internationalized through GNU `gettext'. As a matter of convenience, +the `gettextize' program puts all these files right in your package. +This program has the following synopsis: + + gettextize [ OPTION... ] [ DIRECTORY ] + +and accepts the following options: + +`-c' +`--copy' + Copy the needed files instead of making symbolic links. Using + links would allow the package to always use the latest `gettext' + code available on the system, but it might disturb some mechanism + the maintainer is used to apply to the sources. Because running + `gettextize' is easy there shouldn't be problems with using copies. + +`-f' +`--force' + Force replacement of files which already exist. + +`--intl' + Install the libintl sources in a subdirectory named `intl/'. This + libintl will be used to provide internationalization on systems + that don't have GNU libintl installed. If this option is omitted, + the call to `AM_GNU_GETTEXT' in `configure.in' should read: + `AM_GNU_GETTEXT([external])', and internationalization will not be + enabled on systems lacking GNU gettext. + +`-h' +`--help' + Display this help and exit. + +`--version' + Output version information and exit. + + If DIRECTORY is given, this is the top level directory of a package +to prepare for using GNU `gettext'. If not given, it is assumed that +the current directory is the top level directory of such a package. + + The program `gettextize' provides the following files. However, no +existing file will be replaced unless the option `--force' (`-f') is +specified. + + 1. The `ABOUT-NLS' file is copied in the main directory of your + package, the one being at the top level. This file gives the main + indications about how to install and use the Native Language + Support features of your program. You might elect to use a more + recent copy of this `ABOUT-NLS' file than the one provided through + `gettextize', if you have one handy. You may also fetch a more + recent copy of file `ABOUT-NLS' from Translation Project sites, + and from most GNU archive sites. + + 2. A `po/' directory is created for eventually holding all + translation files, but initially only containing the file + `po/Makefile.in.in' from the GNU `gettext' distribution. (beware + the double `.in' in the file name) and a few auxiliary files. If + the `po/' directory already exists, it will be preserved along + with the files it contains, and only `Makefile.in.in' and the + auxiliary files will be overwritten. + + 3. Only of `--intl' has been specified: A `intl/' directory is + created and filled with most of the files originally in the + `intl/' directory of the GNU `gettext' distribution. Also, if + option `--force' (`-f') is given, the `intl/' directory is emptied + first. + + + If your site support symbolic links, `gettextize' will not actually +copy the files into your package, but establish symbolic links instead. +This avoids duplicating the disk space needed in all packages. Merely +using the `-h' option while creating the `tar' archive of your +distribution will resolve each link by an actual copy in the +distribution archive. So, to insist, you really should use `-h' option +with `tar' within your `dist' goal of your main `Makefile.in'. + + It is interesting to understand that most new files for supporting +GNU `gettext' facilities in one package go in `intl/' and `po/' +subdirectories. One distinction between these two directories is that +`intl/' is meant to be completely identical in all packages using GNU +`gettext', while all newly created files, which have to be different, +go into `po/'. There is a common `Makefile.in.in' in `po/', because +the `po/' directory needs its own `Makefile', and it has been designed +so it can be identical in all packages. + + +File: gettext.info, Node: Adjusting Files, Prev: gettextize Invocation, Up: Maintainers + +Files You Must Create or Alter +============================== + + Besides files which are automatically added through `gettextize', +there are many files needing revision for properly interacting with GNU +`gettext'. If you are closely following GNU standards for Makefile +engineering and auto-configuration, the adaptations should be easier to +achieve. Here is a point by point description of the changes needed in +each. + + So, here comes a list of files, each one followed by a description of +all alterations it needs. Many examples are taken out from the GNU +`gettext' 0.11-pre2 distribution itself. You may indeed refer to the +source code of the GNU `gettext' package, as it is intended to be a +good example and master implementation for using its own functionality. + +* Menu: + +* po/POTFILES.in:: `POTFILES.in' in `po/' +* po/LINGUAS:: `LINGUAS' in `po/' +* po/Makevars:: `Makefile' pieces in `po/' +* configure.in:: `configure.in' at top level +* config.guess:: `config.guess', `config.sub' at top level +* aclocal:: `aclocal.m4' at top level +* acconfig:: `acconfig.h' at top level +* Makefile:: `Makefile.in' at top level +* src/Makefile:: `Makefile.in' in `src/' + + +File: gettext.info, Node: po/POTFILES.in, Next: po/LINGUAS, Prev: Adjusting Files, Up: Adjusting Files + +`POTFILES.in' in `po/' +---------------------- + + The `po/' directory should receive a file named `POTFILES.in'. This +file tells which files, among all program sources, have marked strings +needing translation. Here is an example of such a file: + + # List of source files containing translatable strings. + # Copyright (C) 1995 Free Software Foundation, Inc. + + # Common library files + lib/error.c + lib/getopt.c + lib/xmalloc.c + + # Package source files + src/gettext.c + src/msgfmt.c + src/xgettext.c + +Hash-marked comments and white lines are ignored. All other lines list +those source files containing strings marked for translation (*note +Mark Keywords::), in a notation relative to the top level of your whole +distribution, rather than the location of the `POTFILES.in' file itself. + + +File: gettext.info, Node: po/LINGUAS, Next: po/Makevars, Prev: po/POTFILES.in, Up: Adjusting Files + +`LINGUAS' in `po/' +------------------ + + The `po/' directory should also receive a file named `LINGUAS'. +This file contains the list of available translations. It is a +whitespace separated list. Hash-marked comments and white lines are +ignored. Here is an example file: + + # Set of available languages. + de fr + +This example means that German and French PO files are available, so +that these languages are currently supported by your package. If you +want to further restrict, at installation time, the set of installed +languages, this should not be done by modifying the `LINGUAS' file, but +rather by using the `LINGUAS' environment variable (*note Installers::). + + +File: gettext.info, Node: po/Makevars, Next: configure.in, Prev: po/LINGUAS, Up: Adjusting Files + +`Makefile' pieces in `po/' +-------------------------- + + The `po/' directory also has a file named `Makevars'. It can be +left unmodified if your package has a single message domain and, +accordingly, a single `po/' directory. Only packages which have +multiple `po/' directories at different locations need to adjust the +three variables defined in `Makevars'. + + `po/Makevars' gets inserted into the `po/Makefile' when the latter +is created. At the same time, all files called `Rules-*' in the `po/' +directory get appended to the `po/Makefile'. They present an +opportunity to add rules for special PO files to the Makefile, without +needing to mess with `po/Makefile.in.in'. + + GNU gettext comes with a `Rules-quot' file, containing rules for +building catalogs `en@quot.po' and `en@boldquot.po'. The effect of +`en@quot.po' is that people who set their `LANGUAGE' environment +variable to `en@quot' will get messages with proper looking symmetric +Unicode quotation marks instead of abusing the ASCII grave accent and +the ASCII apostrophe for indicating quotations. To enable this catalog, +simply add `en@quot' to the `po/LINGUAS' file. The effect of +`en@boldquot.po' is that people who set `LANGUAGE' to `en@boldquot' +will get not only proper quotation marks, but also the quoted text will +be shown in a bold font on terminals and consoles. This catalog is +useful only for command-line programs, not GUI programs. To enable it, +similarly add `en@boldquot' to the `po/LINGUAS' file. + + +File: gettext.info, Node: configure.in, Next: config.guess, Prev: po/Makevars, Up: Adjusting Files + +`configure.in' at top level +--------------------------- + + `configure.in' or `configure.ac' - this is the source from which +`autoconf' generates the `configure' script. + + 1. Declare the package and version. + + This is done by a set of lines like these: + + PACKAGE=gettext + VERSION=0.11-pre2 + AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") + AC_DEFINE_UNQUOTED(VERSION, "$VERSION") + AC_SUBST(PACKAGE) + AC_SUBST(VERSION) + + Of course, you replace `gettext' with the name of your package, + and `0.11-pre2' by its version numbers, exactly as they should + appear in the packaged `tar' file name of your distribution + (`gettext-0.11-pre2.tar.gz', here). + + 2. Check for internationalization support. + + Here is the main `m4' macro for triggering internationalization + support. Just add this line to `configure.in': + + AM_GNU_GETTEXT + + This call is purposely simple, even if it generates a lot of + configure time checking and actions. + + If you have suppressed the `intl/' subdirectory by calling + `gettextize' without `--intl' option, this call should read + + AM_GNU_GETTEXT([external]) + + 3. Have output files created. + + The `AC_OUTPUT' directive, at the end of your `configure.in' file, + needs to be modified in two ways: + + AC_OUTPUT([EXISTING CONFIGURATION FILES intl/Makefile po/Makefile.in], + [EXISTING ADDITIONAL ACTIONS]) + + The modification to the first argument to `AC_OUTPUT' asks for + substitution in the `intl/' and `po/' directories. Note the `.in' + suffix used for `po/' only. This is because the distributed file + is really `po/Makefile.in.in'. + + If you have suppressed the `intl/' subdirectory by calling + `gettextize' without `--intl' option, then you don't need to add + `intl/Makefile' to the `AC_OUTPUT' line. + + + +File: gettext.info, Node: config.guess, Next: aclocal, Prev: configure.in, Up: Adjusting Files + +`config.guess', `config.sub' at top level +----------------------------------------- + + If you don't have suppressed the `intl/' subdirectory, you need to +add the GNU `config.guess' and `config.sub' files to your distribution. +They are needed because the `intl/' directory has platform dependent +support for determining the locale's character encoding and therefore +needs to identify the platform. + + You can obtain the newest version of `config.guess' and `config.sub' +from `ftp://ftp.gnu.org/pub/gnu/config/'. Less recent versions are +also contained in the GNU `automake' and GNU `libtool' packages. + + Normally, `config.guess' and `config.sub' are put at the top level +of a distribution. But it is also possible to put them in a +subdirectory, altogether with other configuration support files like +`install-sh', `ltconfig', `ltmain.sh', `mkinstalldirs' or `missing'. +All you need to do, other than moving the files, is to add the +following line to your `configure.in'. + + AC_CONFIG_AUX_DIR([SUBDIR]) + + +File: gettext.info, Node: aclocal, Next: acconfig, Prev: config.guess, Up: Adjusting Files + +`aclocal.m4' at top level +------------------------- + + If you do not have an `aclocal.m4' file in your distribution, the +simplest is to concatenate the files `codeset.m4', `gettext.m4', +`glibc21.m4', `iconv.m4', `isc-posix.m4', `lcmessage.m4', `progtest.m4' +from GNU `gettext''s `m4/' directory into a single file. If you have +suppressed the `intl/' directory, only `gettext.m4', `iconv.m4', +`progtest.m4' need to be concatenated. + + If you already have an `aclocal.m4' file, then you will have to +merge the said macro files into your `aclocal.m4'. Note that if you +are upgrading from a previous release of GNU `gettext', you should most +probably _replace_ the macros (`AM_GNU_GETTEXT', etc.), as they usually +change a little from one release of GNU `gettext' to the next. Their +contents may vary as we get more experience with strange systems out +there. + + These macros check for the internationalization support functions +and related informations. Hopefully, once stabilized, these macros +might be integrated in the standard Autoconf set, because this piece of +`m4' code will be the same for all projects using GNU `gettext'. + + +File: gettext.info, Node: acconfig, Next: Makefile, Prev: aclocal, Up: Adjusting Files + +`acconfig.h' at top level +------------------------- + + Earlier GNU `gettext' releases required to put definitions for +`ENABLE_NLS', `HAVE_GETTEXT' and `HAVE_LC_MESSAGES', `HAVE_STPCPY', +`PACKAGE' and `VERSION' into an `acconfig.h' file. This is not needed +any more; you can remove them from your `acconfig.h' file unless your +package uses them independently from the `intl/' directory. + + +File: gettext.info, Node: Makefile, Next: src/Makefile, Prev: acconfig, Up: Adjusting Files + +`Makefile.in' at top level +-------------------------- + + Here are a few modifications you need to make to your main, top-level +`Makefile.in' file. + + 1. Add the following lines near the beginning of your `Makefile.in', + so the `dist:' goal will work properly (as explained further down): + + PACKAGE = @PACKAGE@ + VERSION = @VERSION@ + + 2. Add file `ABOUT-NLS' to the `DISTFILES' definition, so the file + gets distributed. + + 3. Wherever you process subdirectories in your `Makefile.in', be sure + you also process dir subdirectories `intl' and `po'. Special + rules in the `Makefiles' take care for the case where no + internationalization is wanted. + + If you are using Makefiles, either generated by automake, or + hand-written so they carefully follow the GNU coding standards, + the effected goals for which the new subdirectories must be + handled include `installdirs', `install', `uninstall', `clean', + `distclean'. + + Here is an example of a canonical order of processing. In this + example, we also define `SUBDIRS' in `Makefile.in' for it to be + further used in the `dist:' goal. + + SUBDIRS = doc intl lib src @POSUB@ + + Note that you must arrange for `make' to descend into the `intl' + directory before descending into other directories containing code + which make use of the `libintl.h' header file. For this reason, + here we mention `intl' before `lib' and `src'. + + 4. A delicate point is the `dist:' goal, as both `intl/Makefile' and + `po/Makefile' will later assume that the proper directory has been + set up from the main `Makefile'. Here is an example at what the + `dist:' goal might look like: + + distdir = $(PACKAGE)-$(VERSION) + dist: Makefile + rm -fr $(distdir) + mkdir $(distdir) + chmod 777 $(distdir) + for file in $(DISTFILES); do \ + ln $$file $(distdir) 2>/dev/null || cp -p $$file $(distdir); \ + done + for subdir in $(SUBDIRS); do \ + mkdir $(distdir)/$$subdir || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $@) || exit 1; \ + done + tar chozf $(distdir).tar.gz $(distdir) + rm -fr $(distdir) + + + +File: gettext.info, Node: src/Makefile, Prev: Makefile, Up: Adjusting Files + +`Makefile.in' in `src/' +----------------------- + + Some of the modifications made in the main `Makefile.in' will also +be needed in the `Makefile.in' from your package sources, which we +assume here to be in the `src/' subdirectory. Here are all the +modifications needed in `src/Makefile.in': + + 1. In view of the `dist:' goal, you should have these lines near the + beginning of `src/Makefile.in': + + PACKAGE = @PACKAGE@ + VERSION = @VERSION@ + + 2. If not done already, you should guarantee that `top_srcdir' gets + defined. This will serve for `cpp' include files. Just add the + line: + + top_srcdir = @top_srcdir@ + + 3. You might also want to define `subdir' as `src', later allowing + for almost uniform `dist:' goals in all your `Makefile.in'. At + list, the `dist:' goal below assume that you used: + + subdir = src + + 4. The `main' function of your program will normally call + `bindtextdomain' (see *note Triggering::), like this: + + bindtextdomain (PACKAGE, LOCALEDIR); + + To make LOCALEDIR known to the program, add the following lines to + Makefile.in: + + datadir = @datadir@ + localedir = $(datadir)/locale + DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ + + Note that `@datadir@' defaults to `$(prefix)/share', thus + `$(localedir)' defaults to `$(prefix)/share/locale'. + + 5. You should ensure that the final linking will use `@INTLLIBS@' as + a library. An easy way to achieve this is to manage that it gets + into `LIBS', like this: + + LIBS = @INTLLIBS@ @LIBS@ + + In most packages internationalized with GNU `gettext', one will + find a directory `lib/' in which a library containing some helper + functions will be build. (You need at least the few functions + which the GNU `gettext' Library itself needs.) However some of + the functions in the `lib/' also give messages to the user which + of course should be translated, too. Taking care of this, the + support library (say `libsupport.a') should be placed before + `@INTLLIBS@' and `@LIBS@' in the above example. So one has to + write this: + + LIBS = ../lib/libsupport.a @INTLLIBS@ @LIBS@ + + 6. You should also ensure that directory `intl/' will be searched for + C preprocessor include files in all circumstances. So, you have to + manage so both `-I../intl' and `-I$(top_srcdir)/intl' will be + given to the C compiler. + + 7. Your `dist:' goal has to conform with others. Here is a + reasonable definition for it: + + distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) + dist: Makefile $(DISTFILES) + for file in $(DISTFILES); do \ + ln $$file $(distdir) 2>/dev/null || cp -p $$file $(distdir); \ + done + + + +File: gettext.info, Node: Programming Languages, Next: Conclusion, Prev: Maintainers, Up: Top + +Other Programming Languages +*************************** + + While the presentation of `gettext' focuses mostly on C and +implicitly applies to C++ as well, its scope is far broader than that: +Many programming languages, scripting languages and other textual data +like GUI resources or package descriptions can make use of the gettext +approach. + +* Menu: + +* Language Implementors:: The Language Implementor's View +* Programmers for other Languages:: The Programmer's View +* Translators for other Languages:: The Translator's View +* List of Programming Languages:: Individual Programming Languages +* List of Data Formats:: Internationalizable Data + + +File: gettext.info, Node: Language Implementors, Next: Programmers for other Languages, Prev: Programming Languages, Up: Programming Languages + +The Language Implementor's View +=============================== + + All programming and scripting languages that have the notion of +strings are eligible to supporting `gettext'. Supporting `gettext' +means the following: + + 1. You should add to the language a syntax for translatable strings. + In principle, a function call of `gettext' would do, but a + shorthand syntax helps keeping the legibility of internationalized + programs. For example, in C we use the syntax `_("string")', in + bash we use the syntax `$"string"', and in GNU awk we use the + shorthand `_"string"'. + + 2. You should arrange that evaluation of such a translatable string at + runtime calls the `gettext' function, or performs equivalent + processing. + + 3. Similarly, you should make the functions `ngettext', `dcgettext', + `dcngettext' available from within the language. These functions + are less often used, but are nevertheless necessary for particular + purposes: `ngettext' for correct plural handling, and `dcgettext' + and `dcngettext' for obeying other locale environment variables + than `LC_MESSAGES', such as `LC_TIME' or `LC_MONETARY'. For these + latter functions, you need to make the `LC_*' constants, available + in the C header `<locale.h>', referenceable from within the + language, usually either as enumeration values or as strings. + + 4. You should allow the programmer to designate a message domain, + either by making the `textdomain' function available from within + the language, or by introducing a magic variable called + `TEXTDOMAIN'. Similarly, you should allow the programmer to + designate where to search for message catalogs, by providing + access to the `bindtextdomain' function. + + 5. You should either perform a `setlocale (LC_ALL, "")' call during + the startup of your language runtime, or allow the programmer to + do so. Remember that gettext will act as a no-op if the + `LC_MESSAGES' and `LC_CTYPE' locale facets are not both set. + + 6. A programmer should have a way to extract translatable strings + from a program into a PO file. The GNU `xgettext' program is being + extended to support very different programming languages. Please + contact the GNU `gettext' maintainers to help them doing this. If + the string extractor is best integrated into your language's + parser, GNU `xgettext' can function as a front end to your string + extractor. + + 7. The language's library should have a string formatting facility + where the arguments of a format string are denoted by a positional + number or a name. This is needed because for some languages and + some messages with more than one substitutable argument, the + translation will need to output the substituted arguments in + different order. *Note c-format::. + + 8. If the language has more than one implementation, and not all of + the implementations use `gettext', but the programs should be + portable across implementations, you should provide a no-i18n + emulation, that makes the other implementations accept programs + written for yours, without actually translating the strings. + + 9. To help the programmer in the task of marking translatable strings, + which is usually performed using the Emacs PO mode, you are + welcome to contact the GNU `gettext' maintainers, so they can add + support for your language to `po-mode.el'. + + On the implementation side, three approaches are possible, with +different effects on portability and copyright: + + * You may integrate the GNU `gettext''s `intl/' directory in your + package, as described in *Note Maintainers::. This allows you to + have internationalization on all kinds of platforms. Note that + when you then distribute your package, it legally falls under the + GNU General Public License, and the GNU project will be glad about + your contribution to the Free Software pool. + + * You may link against GNU `gettext' functions if they are found in + the C library. For example, an autoconf test for `gettext()' and + `ngettext()' will detect this situation. For the moment, this test + will succeed on GNU systems and not on other platforms. No severe + copyright restrictions apply. + + * You may emulate or reimplement the GNU `gettext' functionality. + This has the advantage of full portability and no copyright + restrictions, but also the drawback that you have to reimplement + the GNU `gettext' features (such as the `LANGUAGE' environment + variable, the locale aliases database, the automatic charset + conversion, and plural handling). + + +File: gettext.info, Node: Programmers for other Languages, Next: Translators for other Languages, Prev: Language Implementors, Up: Programming Languages + +The Programmer's View +===================== + + For the programmer, the general procedure is the same as for the C +language. The Emacs PO mode supports other languages, and the GNU +`xgettext' string extractor recognizes other languages based on the +file extension or a command-line option. In some languages, +`setlocale' is not needed because it is already performed by the +underlying language runtime. + + +File: gettext.info, Node: Translators for other Languages, Next: List of Programming Languages, Prev: Programmers for other Languages, Up: Programming Languages + +The Translator's View +===================== + + The translator works exactly as in the C language case. The only +difference is that when translating format strings, she has to be aware +of the language's particular syntax for positional arguments in format +strings. + diff --git a/doc/gettext.info-7 b/doc/gettext.info-7 new file mode 100644 index 0000000..30197ad --- /dev/null +++ b/doc/gettext.info-7 @@ -0,0 +1,2352 @@ +This is gettext.info, produced by makeinfo version 4.0 from +gettext.texi. + +INFO-DIR-SECTION GNU Gettext Utilities +START-INFO-DIR-ENTRY +* Gettext: (gettext). GNU gettext utilities. +* gettextize: (gettext)gettextize Invocation. Prepare a package for gettext. +* msgfmt: (gettext)msgfmt Invocation. Make MO files out of PO files. +* msgmerge: (gettext)msgmerge Invocation. Update two PO files into one. +* xgettext: (gettext)xgettext Invocation. Extract strings into a PO file. +END-INFO-DIR-ENTRY + + This file provides documentation for GNU `gettext' utilities. It +also serves as a reference for the free Translation Project. + + Copyright (C) 1995, 1996, 1997, 1998, 2001 Free Software Foundation, +Inc. + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that +the entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above conditions for modified +versions, except that this permission notice may be stated in a +translation approved by the Foundation. + + +File: gettext.info, Node: List of Programming Languages, Next: List of Data Formats, Prev: Translators for other Languages, Up: Programming Languages + +Individual Programming Languages +================================ + +* Menu: + +* C:: C, C++, Objective C +* sh:: sh - Shell Script +* bash:: bash - Bourne-Again Shell Script +* Python:: Python +* Common Lisp:: GNU clisp - Common Lisp +* clisp C:: GNU clisp C sources +* Emacs Lisp:: Emacs Lisp +* librep:: librep +* Smalltalk:: GNU Smalltalk +* Java:: Java +* gawk:: GNU awk +* Pascal:: Pascal - Free Pascal Compiler +* wxWindows:: wxWindows library +* YCP:: YCP - YaST2 scripting language +* Perl:: Perl +* PHP:: PHP Hypertext Preprocessor +* Pike:: Pike + + +File: gettext.info, Node: C, Next: sh, Prev: List of Programming Languages, Up: List of Programming Languages + +C, C++, Objective C +------------------- + +RPMs + gcc, gpp, gobjc, glibc, gettext + +File extension + For C: `c', `h'. + For C++: `C', `c++', `cc', `cxx', `cpp', `hpp'. + For Objective C: `m'. + +String syntax + `"abc"' + +gettext shorthand + `_("abc")' + +gettext/ngettext functions + `gettext', `dgettext', `dcgettext', `ngettext', `dngettext', + `dcngettext' + +textdomain + `textdomain' function + +bindtextdomain + `bindtextdomain' function + +setlocale + Programmer must call `setlocale (LC_ALL, "")' + +Prerequisite + `#include <libintl.h>' + `#include <locale.h>' + `#define _(string) gettext (string)' + +Use or emulate GNU gettext + Use + +Extractor + `xgettext -k_' + +Formatting with positions + `fprintf "%2$d %1$d"' (POSIX but not C 99) + +Portability + autoconf (gettext.m4) and #if ENABLE_NLS + +po-mode marking + yes + + +File: gettext.info, Node: sh, Next: bash, Prev: C, Up: List of Programming Languages + +sh - Shell Script +----------------- + +RPMs + bash, gettext + +File extension + `sh' + +String syntax + `"abc"', `'abc'', `abc' + +gettext shorthand + `"`gettext "abc"`"' + +gettext/ngettext functions + `gettext', `ngettext' programs + +textdomain + environment variable `TEXTDOMAIN' + +bindtextdomain + environment variable `TEXTDOMAINDIR' + +setlocale + automatic + +Prerequisite + -- + +Use or emulate GNU gettext + use + +Extractor + -- + +Formatting with positions + -- + +Portability + -- + +po-mode marking + -- + + +File: gettext.info, Node: bash, Next: Python, Prev: sh, Up: List of Programming Languages + +bash - Bourne-Again Shell Script +-------------------------------- + +RPMs + bash 2.0 or newer, gettext + +File extension + `sh' + +String syntax + `"abc"', `'abc'', `abc' + +gettext shorthand + `$"abc"' + +gettext/ngettext functions + `gettext', `ngettext' programs + +textdomain + environment variable `TEXTDOMAIN' + +bindtextdomain + environment variable `TEXTDOMAINDIR' + +setlocale + automatic + +Prerequisite + -- + +Use or emulate GNU gettext + use + +Extractor + `bash --dump-po-strings' + +Formatting with positions + -- + +Portability + -- + +po-mode marking + -- + + +File: gettext.info, Node: Python, Next: Common Lisp, Prev: bash, Up: List of Programming Languages + +Python +------ + +RPMs + python + +File extension + `py' + +String syntax + `'abc'', `u'abc'', `r'abc'', `ur'abc'', + `"abc"', `u"abc"', `r"abc"', `ur"abc"', + `'''abc'''', `u'''abc'''', `r'''abc'''', `ur'''abc'''', + `"""abc"""', `u"""abc"""', `r"""abc"""', `ur"""abc"""' + +gettext shorthand + `_('abc')' etc. + +gettext/ngettext functions + `gettext.gettext', `gettext.dgettext', also `ugettext' + +textdomain + `gettext.textdomain' function, or `gettext.install(DOMAIN)' + function + +bindtextdomain + `gettext.bindtextdomain' function, or + `gettext.install(DOMAIN,LOCALEDIR)' function + +setlocale + not used by the gettext emulation + +Prerequisite + `import gettext' + +Use or emulate GNU gettext + emulate. Bug: uses only the first found .mo file, not all of them + +Extractor + pygettext.py + +Formatting with positions + `'...%(ident)d...' % { 'ident': value }' + +Portability + fully portable + +po-mode marking + -- + + +File: gettext.info, Node: Common Lisp, Next: clisp C, Prev: Python, Up: List of Programming Languages + +GNU clisp - Common Lisp +----------------------- + +RPMs + clisp 2.28 or newer + +File extension + `lisp' + +String syntax + `"abc"' + +gettext shorthand + `(_ "abc")', `(ENGLISH "abc")' + +gettext/ngettext functions + `i18n:gettext', `i18n:ngettext' + +textdomain + `i18n:textdomain' + +bindtextdomain + `i18n:textdomaindir' + +setlocale + automatic + +Prerequisite + -- + +Use or emulate GNU gettext + use + +Extractor + `clisp-xgettext' + +Formatting with positions + `format "~1@*~D ~0@*~D"' + +Portability + On platforms without gettext, no translation. + +po-mode marking + -- + + +File: gettext.info, Node: clisp C, Next: Emacs Lisp, Prev: Common Lisp, Up: List of Programming Languages + +GNU clisp C sources +------------------- + +RPMs + clisp + +File extension + `d' + +String syntax + `"abc"' + +gettext shorthand + `ENGLISH ? "abc" : ""' + `GETTEXT("abc")' + `GETTEXTL("abc")' + +gettext/ngettext functions + `clgettext', `clgettextl' + +textdomain + -- + +bindtextdomain + -- + +setlocale + automatic + +Prerequisite + `#include "lispbibl.c"' + +Use or emulate GNU gettext + use + +Extractor + `clisp-xgettext' + +Formatting with positions + `fprintf "%2$d %1$d"' (POSIX but not C 99) + +Portability + On platforms without gettext, no translation. + +po-mode marking + -- + + +File: gettext.info, Node: Emacs Lisp, Next: librep, Prev: clisp C, Up: List of Programming Languages + +Emacs Lisp +---------- + +RPMs + emacs, xemacs + +File extension + `el' + +String syntax + `"abc"' + +gettext shorthand + `(_"abc")' + +gettext/ngettext functions + `gettext', `dgettext' (xemacs only) + +textdomain + `domain' special form (xemacs only) + +bindtextdomain + `bind-text-domain' function (xemacs only) + +setlocale + automatic + +Prerequisite + -- + +Use or emulate GNU gettext + use + +Extractor + xpot + +Formatting with positions + `format "%2$d %1$d"' + +Portability + Only XEmacs. Without `I18N3' defined at build time, no translation. + +po-mode marking + -- + + +File: gettext.info, Node: librep, Next: Smalltalk, Prev: Emacs Lisp, Up: List of Programming Languages + +librep +------ + +RPMs + librep + +File extension + `jl' + +String syntax + `"abc"' + +gettext shorthand + `(_"abc")' + +gettext/ngettext functions + `gettext' + +textdomain + `textdomain' function + +bindtextdomain + `bindtextdomain' function + +setlocale + -- + +Prerequisite + `(require 'rep.i18n.gettext)' + +Use or emulate GNU gettext + use + +Extractor + `rep-xgettext' + +Formatting with positions + `format "%2$d %1$d"' + +Portability + On platforms without gettext, no translation. + +po-mode marking + -- + + +File: gettext.info, Node: Smalltalk, Next: Java, Prev: librep, Up: List of Programming Languages + +GNU Smalltalk +------------- + +RPMs + smalltalk + +File extension + `st' + +String syntax + `''abc''' + +gettext shorthand + `NLS? ''abc''' + `self? ''abc''' + +gettext/ngettext functions + `LcMessagesDomain>>#at:', `LcMessagesDomain>>#at:plural:with:' + +textdomain + `LcMessages>>#?' (returns a `LcMessagesDomain' object). + Example: `Locale default messages ? 'gettext'' + +bindtextdomain + `LcMessages>>#domain:directory:' (returns a `LcMessagesDomain' + object) + +setlocale + You can obtain any `Locale' object from `Locale' class methods + such as `#fromString:' or `#default'. + Example: `Locale default messages' gives the `LcMessages' object + for the default locale. + +Prerequisite + The gettext code is contained in the `I18N' package. + +Use or emulate GNU gettext + emulate + +Extractor + -- + +Formatting with positions + `'%1 %2' bindWith: 'Hello' with: 'world'' + +Portability + fully portable + +po-mode marking + -- + + +File: gettext.info, Node: Java, Next: gawk, Prev: Smalltalk, Up: List of Programming Languages + +Java +---- + +RPMs + java, java2 + +File extension + `java' + +String syntax + "abc" + +gettext shorthand + _("abc") + +gettext/ngettext functions + `GettextResource.gettext', `GettextResource.ngettext' + +textdomain + --, use `ResourceBundle.getResource' instead + +bindtextdomain + --, use CLASSPATH instead + +setlocale + automatic + +Prerequisite + -- + +Use or emulate GNU gettext + --, uses a Java specific message catalog format + +Extractor + `xgettext -k_' + +Formatting with positions + `MessageFormat.format "{1,number} {0,number}"' + +Portability + fully portable + +po-mode marking + -- + + Before marking strings as internationalizable, uses of the string +concatenation operator need to be converted to `MessageFormat' +applications. For example, `"file "+filename+" not found"' becomes +`MessageFormat.format("file {0} not found", new Object[] { filename })'. +Only after this is done, can the strings be marked and extracted. + + GNU gettext uses the native Java internationalization mechanism, +namely `ResourceBundle's. To convert a PO file to a ResourceBundle, the +`msgfmt' program can be used with the option `--java' or `--java2'. To +convert a ResourceBundle back to a PO file, the `msgunfmt' program can +be used with the option `--java'. + + Two different programmatic APIs can be used to access +ResourceBundles. Note that both APIs work with all kinds of +ResourceBundles, whether GNU gettext generated classes, or other +`.class' or `.properties' files. + + 1. The `java.util.ResourceBundle' API. + + In particular, its `getString' function returns a string + translation. Note that a missing translation yields a + `MissingResourceException'. + + This has the advantage of being the standard API. And it does not + require any additional libraries, only the `msgfmt' generated + `.class' files. But it cannot do plural handling, even if the + resource was generated from a PO file with plural handling. + + 2. The `gnu.gettext.GettextResource' API. + + Reference documentation in Javadoc 1.1 style format is in the + javadoc1 directory (javadoc1/tree.html) and in Javadoc 2 style + format in the javadoc2 directory (javadoc2/index.html). + + Its `gettext' function returns a string translation. Note that when + a translation is missing, the MSGID argument is returned unchanged. + + This has the advantage of having the `ngettext' function for plural + handling. + + To use this API, one needs the `libintl.jar' file which is part of + the GNU gettext package and distributed under the LGPL. + + +File: gettext.info, Node: gawk, Next: Pascal, Prev: Java, Up: List of Programming Languages + +GNU awk +------- + +RPMs + gawk 3.1 or newer + +File extension + `awk' + +String syntax + `"abc"' + +gettext shorthand + `_"abc"' + +gettext/ngettext functions + `dcgettext' + +textdomain + `TEXTDOMAIN' variable + +bindtextdomain + `bindtextdomain' function + +setlocale + automatic, but missing `setlocale (LC_MESSAGES, "")' in gawk-3.1.0 + +Prerequisite + -- + +Use or emulate GNU gettext + use + +Extractor + `gawk --gen-po' + +Formatting with positions + `printf "%2$d %1$d"' (GNU awk only) + +Portability + On platforms without gettext, no translation. On non-GNU awks, + you must define `dcgettext' and `bindtextdomain' yourself. + +po-mode marking + -- + + +File: gettext.info, Node: Pascal, Next: wxWindows, Prev: gawk, Up: List of Programming Languages + +Pascal - Free Pascal Compiler +----------------------------- + +RPMs + fpk + +File extension + `pp', `pas' + +String syntax + `'abc'' + +gettext shorthand + automatic + +gettext/ngettext functions + --, use `ResourceString' data type instead + +textdomain + --, use `TranslateResourceStrings' function instead + +bindtextdomain + --, use `TranslateResourceStrings' function instead + +setlocale + automatic, but uses only LANG, not LC_MESSAGES or LC_ALL + +Prerequisite + `{$mode delphi}' or `{$mode objfpc}' + `uses gettext;' + +Use or emulate GNU gettext + emulate partially + +Extractor + `ppc386' followed by `xgettext' or `rstconv' + +Formatting with positions + `uses sysutils;' + `format "%1:d %0:d"' + +Portability + ? + +po-mode marking + -- + + The Pascal compiler has special support for the `ResourceString' data +type. It generates a `.rst' file. This is then converted to a `.pot' +file by use of `xgettext' or `rstconv'. At runtime, a `.mo' file +corresponding to translations of this `.pot' file can be loaded using +the `TranslateResourceStrings' function in the `gettext' unit. + + +File: gettext.info, Node: wxWindows, Next: YCP, Prev: Pascal, Up: List of Programming Languages + +wxWindows library +----------------- + +RPMs + wxGTK, gettext + +File extension + `cpp' + +String syntax + `"abc"' + +gettext shorthand + `_("abc")' + +gettext/ngettext functions + `wxLocale::GetString', `wxGetTranslation' + +textdomain + `wxLocale::AddCatalog' + +bindtextdomain + `wxLocale::AddCatalogLookupPathPrefix' + +setlocale + `wxLocale::Init', `wxSetLocale' + +Prerequisite + `#include <wx/intl.h>' + +Use or emulate GNU gettext + emulate, see `include/wx/intl.h' and `src/common/intl.cpp' + +Extractor + `xgettext' + +Formatting with positions + -- + +Portability + fully portable + +po-mode marking + yes + + +File: gettext.info, Node: YCP, Next: Perl, Prev: wxWindows, Up: List of Programming Languages + +YCP - YaST2 scripting language +------------------------------ + +RPMs + libycp, libycp-devel, yast2-core-translator + +File extension + `ycp' + +String syntax + `"abc"' + +gettext shorthand + `_("abc")' + +gettext/ngettext functions + `_()' with 1 or 3 arguments + +textdomain + `textdomain' statement + +bindtextdomain + -- + +setlocale + -- + +Prerequisite + -- + +Use or emulate GNU gettext + use maps instead + +Extractor + `xgettext' + +Formatting with positions + `sformat "%2 %1"' + +Portability + fully portable + +po-mode marking + -- + + +File: gettext.info, Node: Perl, Next: PHP, Prev: YCP, Up: List of Programming Languages + +Perl +---- + +RPMs + perl, perl-gettext + +File extension + `pl', `PL' + +String syntax + `"abc"' + +gettext shorthand + -- + +gettext/ngettext functions + `gettext', `dgettext', `dcgettext' + +textdomain + `textdomain' function + +bindtextdomain + `bindtextdomain' function + +setlocale + Use `setlocale (LC_ALL, "");' + +Prerequisite + `use POSIX;' + `use Locale::gettext;' + +Use or emulate GNU gettext + use + +Extractor + ? + +Formatting with positions + -- + +Portability + ? + +po-mode marking + -- + + +File: gettext.info, Node: PHP, Next: Pike, Prev: Perl, Up: List of Programming Languages + +PHP Hypertext Preprocessor +-------------------------- + +RPMs + mod_php4, phplib, phpdoc + +File extension + `php', `php3', `php4' + +String syntax + `"abc"' + +gettext shorthand + `_("abc")' + +gettext/ngettext functions + `gettext', `dgettext', `dcgettext' + +textdomain + `textdomain' function + +bindtextdomain + `bindtextdomain' function + +setlocale + `setlocale' function + +Prerequisite + -- + +Use or emulate GNU gettext + use + +Extractor + -- + +Formatting with positions + -- + +Portability + On platforms without gettext, the functions are not available. + +po-mode marking + -- + + +File: gettext.info, Node: Pike, Prev: PHP, Up: List of Programming Languages + +Pike +---- + +RPMs + roxen + +File extension + `pike' + +String syntax + `"abc"' + +gettext shorthand + -- + +gettext/ngettext functions + `gettext', `dgettext', `dcgettext' + +textdomain + `textdomain' function + +bindtextdomain + `bindtextdomain' function + +setlocale + `setlocale' function + +Prerequisite + `import Locale.Gettext;' + +Use or emulate GNU gettext + use + +Extractor + -- + +Formatting with positions + -- + +Portability + On platforms without gettext, the functions are not available. + +po-mode marking + -- + + +File: gettext.info, Node: List of Data Formats, Prev: List of Programming Languages, Up: Programming Languages + +Internationalizable Data +======================== + + Here is a list of other data formats which can be internationalized +using GNU gettext. + +* Menu: + +* POT:: POT - Portable Object Template +* RST:: Resource String Table + + +File: gettext.info, Node: POT, Next: RST, Prev: List of Data Formats, Up: List of Data Formats + +POT - Portable Object Template +------------------------------ + +RPMs + gettext + +File extension + `pot', `po' + +Extractor + `xgettext' + + +File: gettext.info, Node: RST, Prev: POT, Up: List of Data Formats + +Resource String Table +--------------------- + +RPMs + fpk + +File extension + `rst' + +Extractor + `xgettext', `rstconv' + + +File: gettext.info, Node: Conclusion, Next: Language Codes, Prev: Programming Languages, Up: Top + +Concluding Remarks +****************** + + We would like to conclude this GNU `gettext' manual by presenting an +history of the Translation Project so far. We finally give a few +pointers for those who want to do further research or readings about +Native Language Support matters. + +* Menu: + +* History:: History of GNU `gettext' +* References:: Related Readings + + +File: gettext.info, Node: History, Next: References, Prev: Conclusion, Up: Conclusion + +History of GNU `gettext' +======================== + + Internationalization concerns and algorithms have been informally +and casually discussed for years in GNU, sometimes around GNU `libc', +maybe around the incoming `Hurd', or otherwise (nobody clearly +remembers). And even then, when the work started for real, this was +somewhat independently of these previous discussions. + + This all began in July 1994, when Patrick D'Cruze had the idea and +initiative of internationalizing version 3.9.2 of GNU `fileutils'. He +then asked Jim Meyering, the maintainer, how to get those changes +folded into an official release. That first draft was full of +`#ifdef's and somewhat disconcerting, and Jim wanted to find nicer +ways. Patrick and Jim shared some tries and experimentations in this +area. Then, feeling that this might eventually have a deeper impact on +GNU, Jim wanted to know what standards were, and contacted Richard +Stallman, who very quickly and verbally described an overall design for +what was meant to become `glocale', at that time. + + Jim implemented `glocale' and got a lot of exhausting feedback from +Patrick and Richard, of course, but also from Mitchum DSouza (who wrote +a `catgets'-like package), Roland McGrath, maybe David MacKenzie, +Franc,ois Pinard, and Paul Eggert, all pushing and pulling in various +directions, not always compatible, to the extent that after a couple of +test releases, `glocale' was torn apart. + + While Jim took some distance and time and became dad for a second +time, Roland wanted to get GNU `libc' internationalized, and got Ulrich +Drepper involved in that project. Instead of starting from `glocale', +Ulrich rewrote something from scratch, but more conformant to the set +of guidelines who emerged out of the `glocale' effort. Then, Ulrich +got people from the previous forum to involve themselves into this new +project, and the switch from `glocale' to what was first named +`msgutils', renamed `nlsutils', and later `gettext', became officially +accepted by Richard in May 1995 or so. + + Let's summarize by saying that Ulrich Drepper wrote GNU `gettext' in +April 1995. The first official release of the package, including PO +mode, occurred in July 1995, and was numbered 0.7. Other people +contributed to the effort by providing a discussion forum around +Ulrich, writing little pieces of code, or testing. These are quoted in +the `THANKS' file which comes with the GNU `gettext' distribution. + + While this was being done, Franc,ois adapted half a dozen of GNU +packages to `glocale' first, then later to `gettext', putting them in +pretest, so providing along the way an effective user environment for +fine tuning the evolving tools. He also took the responsibility of +organizing and coordinating the Translation Project. After nearly a +year of informal exchanges between people from many countries, +translator teams started to exist in May 1995, through the creation and +support by Patrick D'Cruze of twenty unmoderated mailing lists for that +many native languages, and two moderated lists: one for reaching all +teams at once, the other for reaching all willing maintainers of +internationalized free software packages. + + Franc,ois also wrote PO mode in June 1995 with the collaboration of +Greg McGary, as a kind of contribution to Ulrich's package. He also +gave a hand with the GNU `gettext' Texinfo manual. + + In 1997, Ulrich Drepper released the GNU libc 2.0, which included the +`gettext', `textdomain' and `bindtextdomain' functions. + + In 2000, Ulrich Drepper added plural form handling (the `ngettext' +function) to GNU libc. Later, in 2001, he released GNU libc 2.2.x, +which is the first free C library with full internationalization +support. + + Ulrich being quite busy in his role of General Maintainer of GNU +libc, he handed over the GNU `gettext' maintenance to Bruno Haible in +2000. Bruno added the plural form handling to the tools as well, added +support for UTF-8 and CJK locales, and wrote a few new tools for +manipulating PO files. + + +File: gettext.info, Node: References, Prev: History, Up: Conclusion + +Related Readings +================ + + Eugene H. Dorr (`dorre@well.com') maintains an interesting +bibliography on internationalization matters, called +`Internationalization Reference List', which is available as: + ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/i18n-books.txt + + Michael Gschwind (`mike@vlsivie.tuwien.ac.at') maintains a +Frequently Asked Questions (FAQ) list, entitled `Programming for +Internationalisation'. This FAQ discusses writing programs which can +handle different language conventions, character sets, etc.; and is +applicable to all character set encodings, with particular emphasis on +ISO 8859-1. It is regularly published in Usenet groups +`comp.unix.questions', `comp.std.internat', +`comp.software.international', `comp.lang.c', `comp.windows.x', +`comp.std.c', `comp.answers' and `news.answers'. The home location of +this document is: + ftp://ftp.vlsivie.tuwien.ac.at/pub/8bit/ISO-programming + + Patrick D'Cruze (`pdcruze@li.org') wrote a tutorial about NLS +matters, and Jochen Hein (`Hein@student.tu-clausthal.de') took over the +responsibility of maintaining it. It may be found as: + ftp://sunsite.unc.edu/pub/Linux/utils/nls/catalogs/Incoming/... + ...locale-tutorial-0.8.txt.gz + +This site is mirrored in: + ftp://ftp.ibp.fr/pub/linux/sunsite/ + + A French version of the same tutorial should be findable at: + ftp://ftp.ibp.fr/pub/linux/french/docs/ + +together with French translations of many Linux-related documents. + + +File: gettext.info, Node: Language Codes, Next: Country Codes, Prev: Conclusion, Up: Top + +Language Codes +************** + + The ISO 639 standard defines two character codes for many languages. +All abbreviations for languages used in the Translation Project should +come from this standard. + +`aa' + Afar. + +`ab' + Abkhazian. + +`ae' + Avestan. + +`af' + Afrikaans. + +`am' + Amharic. + +`ar' + Arabic. + +`as' + Assamese. + +`ay' + Aymara. + +`az' + Azerbaijani. + +`ba' + Bashkir. + +`be' + Byelorussian; Belarusian. + +`bg' + Bulgarian. + +`bh' + Bihari. + +`bi' + Bislama. + +`bn' + Bengali; Bangla. + +`bo' + Tibetan. + +`br' + Breton. + +`bs' + Bosnian. + +`ca' + Catalan. + +`ce' + Chechen. + +`ch' + Chamorro. + +`co' + Corsican. + +`cs' + Czech. + +`cu' + Church Slavic. + +`cv' + Chuvash. + +`cy' + Welsh. + +`da' + Danish. + +`de' + German. + +`dz' + Dzongkha; Bhutani. + +`el' + Greek. + +`en' + English. + +`eo' + Esperanto. + +`es' + Spanish. + +`et' + Estonian. + +`eu' + Basque. + +`fa' + Persian. + +`fi' + Finnish. + +`fj' + Fijian; Fiji. + +`fo' + Faroese. + +`fr' + French. + +`fy' + Frisian. + +`ga' + Irish. + +`gd' + Scots; Gaelic. + +`gl' + Gallegan; Galician. + +`gn' + Guarani. + +`gu' + Gujarati. + +`gv' + Manx. + +`ha' + Hausa (?). + +`he' + Hebrew (formerly iw). + +`hi' + Hindi. + +`ho' + Hiri Motu. + +`hr' + Croatian. + +`hu' + Hungarian. + +`hy' + Armenian. + +`hz' + Herero. + +`ia' + Interlingua. + +`id' + Indonesian (formerly in). + +`ie' + Interlingue. + +`ik' + Inupiak. + +`is' + Icelandic. + +`it' + Italian. + +`iu' + Inuktitut. + +`ja' + Japanese. + +`jw' + Javanese. + +`ka' + Georgian. + +`ki' + Kikuyu. + +`kj' + Kuanyama. + +`kk' + Kazakh. + +`kl' + Kalaallisut; Greenlandic. + +`km' + Khmer; Cambodian. + +`kn' + Kannada. + +`ko' + Korean. + +`ks' + Kashmiri. + +`ku' + Kurdish. + +`kv' + Komi. + +`kw' + Cornish. + +`ky' + Kirghiz. + +`la' + Latin. + +`lb' + Letzeburgesch. + +`ln' + Lingala. + +`lo' + Lao; Laotian. + +`lt' + Lithuanian. + +`lv' + Latvian; Lettish. + +`mg' + Malagasy. + +`mh' + Marshall. + +`mi' + Maori. + +`mk' + Macedonian. + +`ml' + Malayalam. + +`mn' + Mongolian. + +`mo' + Moldavian. + +`mr' + Marathi. + +`ms' + Malay. + +`mt' + Maltese. + +`my' + Burmese. + +`na' + Nauru. + +`nb' + Norwegian Bokmaal. + +`nd' + Ndebele, North. + +`ne' + Nepali. + +`ng' + Ndonga. + +`nl' + Dutch. + +`nn' + Norwegian Nynorsk. + +`no' + Norwegian. + +`nr' + Ndebele, South. + +`nv' + Navajo. + +`ny' + Chichewa; Nyanja. + +`oc' + Occitan; Provenc,al. + +`om' + (Afan) Oromo. + +`or' + Oriya. + +`os' + Ossetian; Ossetic. + +`pa' + Panjabi; Punjabi. + +`pi' + Pali. + +`pl' + Polish. + +`ps' + Pashto, Pushto. + +`pt' + Portuguese. + +`qu' + Quechua. + +`rm' + Rhaeto-Romance. + +`rn' + Rundi; Kirundi. + +`ro' + Romanian. + +`ru' + Russian. + +`rw' + Kinyarwanda. + +`sa' + Sanskrit. + +`sc' + Sardinian. + +`sd' + Sindhi. + +`se' + Northern Sami. + +`sg' + Sango; Sangro. + +`si' + Sinhalese. + +`sk' + Slovak. + +`sl' + Slovenian. + +`sm' + Samoan. + +`sn' + Shona. + +`so' + Somali. + +`sq' + Albanian. + +`sr' + Serbian. + +`ss' + Swati; Siswati. + +`st' + Sesotho; Sotho, Southern. + +`su' + Sundanese. + +`sv' + Swedish. + +`sw' + Swahili. + +`ta' + Tamil. + +`te' + Telugu. + +`tg' + Tajik. + +`th' + Thai. + +`ti' + Tigrinya. + +`tk' + Turkmen. + +`tl' + Tagalog. + +`tn' + Tswana; Setswana. + +`to' + Tonga (?). + +`tr' + Turkish. + +`ts' + Tsonga. + +`tt' + Tatar. + +`tw' + Twi. + +`ty' + Tahitian. + +`ug' + Uighur. + +`uk' + Ukrainian. + +`ur' + Urdu. + +`uz' + Uzbek. + +`vi' + Vietnamese. + +`vo' + Volapu"k; Volapuk. + +`wo' + Wolof. + +`xh' + Xhosa. + +`yi' + Yiddish (formerly ji). + +`yo' + Yoruba. + +`za' + Zhuang. + +`zh' + Chinese. + +`zu' + Zulu. + + +File: gettext.info, Node: Country Codes, Prev: Language Codes, Up: Top + +Country Codes +************* + + The ISO 3166 standard defines two character codes for many countries +and territories. All abbreviations for countries used in the +Translation Project should come from this standard. + +`AD' + Andorra. + +`AE' + United Arab Emirates. + +`AF' + Afghanistan. + +`AG' + Antigua and Barbuda. + +`AI' + Anguilla. + +`AL' + Albania. + +`AM' + Armenia. + +`AN' + Netherlands Antilles. + +`AO' + Angola. + +`AQ' + Antarctica. + +`AR' + Argentina. + +`AS' + Samoa (American). + +`AT' + Austria. + +`AU' + Australia. + +`AW' + Aruba. + +`AZ' + Azerbaijan. + +`BA' + Bosnia and Herzegovina. + +`BB' + Barbados. + +`BD' + Bangladesh. + +`BE' + Belgium. + +`BF' + Burkina Faso. + +`BG' + Bulgaria. + +`BH' + Bahrain. + +`BI' + Burundi. + +`BJ' + Benin. + +`BM' + Bermuda. + +`BN' + Brunei. + +`BO' + Bolivia. + +`BR' + Brazil. + +`BS' + Bahamas. + +`BT' + Bhutan. + +`BV' + Bouvet Island. + +`BW' + Botswana. + +`BY' + Belarus. + +`BZ' + Belize. + +`CA' + Canada. + +`CC' + Cocos (Keeling) Islands. + +`CD' + Congo (Dem. Rep.). + +`CF' + Central African Rep.. + +`CG' + Congo (Rep.). + +`CH' + Switzerland. + +`CI' + Cote d'Ivoire. + +`CK' + Cook Islands. + +`CL' + Chile. + +`CM' + Cameroon. + +`CN' + China. + +`CO' + Colombia. + +`CR' + Costa Rica. + +`CU' + Cuba. + +`CV' + Cape Verde. + +`CX' + Christmas Island. + +`CY' + Cyprus. + +`CZ' + Czech Republic. + +`DE' + Germany. + +`DJ' + Djibouti. + +`DK' + Denmark. + +`DM' + Dominica. + +`DO' + Dominican Republic. + +`DZ' + Algeria. + +`EC' + Ecuador. + +`EE' + Estonia. + +`EG' + Egypt. + +`EH' + Western Sahara. + +`ER' + Eritrea. + +`ES' + Spain. + +`ET' + Ethiopia. + +`FI' + Finland. + +`FJ' + Fiji. + +`FK' + Falkland Islands. + +`FM' + Micronesia. + +`FO' + Faeroe Islands. + +`FR' + France. + +`GA' + Gabon. + +`GB' + Britain (UK). + +`GD' + Grenada. + +`GE' + Georgia. + +`GF' + French Guiana. + +`GH' + Ghana. + +`GI' + Gibraltar. + +`GL' + Greenland. + +`GM' + Gambia. + +`GN' + Guinea. + +`GP' + Guadeloupe. + +`GQ' + Equatorial Guinea. + +`GR' + Greece. + +`GS' + South Georgia and the South Sandwich Islands. + +`GT' + Guatemala. + +`GU' + Guam. + +`GW' + Guinea-Bissau. + +`GY' + Guyana. + +`HK' + Hong Kong. + +`HM' + Heard Island and McDonald Islands. + +`HN' + Honduras. + +`HR' + Croatia. + +`HT' + Haiti. + +`HU' + Hungary. + +`ID' + Indonesia. + +`IE' + Ireland. + +`IL' + Israel. + +`IN' + India. + +`IO' + British Indian Ocean Territory. + +`IQ' + Iraq. + +`IR' + Iran. + +`IS' + Iceland. + +`IT' + Italy. + +`JM' + Jamaica. + +`JO' + Jordan. + +`JP' + Japan. + +`KE' + Kenya. + +`KG' + Kyrgyzstan. + +`KH' + Cambodia. + +`KI' + Kiribati. + +`KM' + Comoros. + +`KN' + St Kitts and Nevis. + +`KP' + Korea (North). + +`KR' + Korea (South). + +`KW' + Kuwait. + +`KY' + Cayman Islands. + +`KZ' + Kazakhstan. + +`LA' + Laos. + +`LB' + Lebanon. + +`LC' + St Lucia. + +`LI' + Liechtenstein. + +`LK' + Sri Lanka. + +`LR' + Liberia. + +`LS' + Lesotho. + +`LT' + Lithuania. + +`LU' + Luxembourg. + +`LV' + Latvia. + +`LY' + Libya. + +`MA' + Morocco. + +`MC' + Monaco. + +`MD' + Moldova. + +`MG' + Madagascar. + +`MH' + Marshall Islands. + +`MK' + Macedonia. + +`ML' + Mali. + +`MM' + Myanmar (Burma). + +`MN' + Mongolia. + +`MO' + Macao. + +`MP' + Northern Mariana Islands. + +`MQ' + Martinique. + +`MR' + Mauritania. + +`MS' + Montserrat. + +`MT' + Malta. + +`MU' + Mauritius. + +`MV' + Maldives. + +`MW' + Malawi. + +`MX' + Mexico. + +`MY' + Malaysia. + +`MZ' + Mozambique. + +`NA' + Namibia. + +`NC' + New Caledonia. + +`NE' + Niger. + +`NF' + Norfolk Island. + +`NG' + Nigeria. + +`NI' + Nicaragua. + +`NL' + Netherlands. + +`NO' + Norway. + +`NP' + Nepal. + +`NR' + Nauru. + +`NU' + Niue. + +`NZ' + New Zealand. + +`OM' + Oman. + +`PA' + Panama. + +`PE' + Peru. + +`PF' + French Polynesia. + +`PG' + Papua New Guinea. + +`PH' + Philippines. + +`PK' + Pakistan. + +`PL' + Poland. + +`PM' + St Pierre and Miquelon. + +`PN' + Pitcairn. + +`PR' + Puerto Rico. + +`PS' + Palestine. + +`PT' + Portugal. + +`PW' + Palau. + +`PY' + Paraguay. + +`QA' + Qatar. + +`RE' + Reunion. + +`RO' + Romania. + +`RU' + Russia. + +`RW' + Rwanda. + +`SA' + Saudi Arabia. + +`SB' + Solomon Islands. + +`SC' + Seychelles. + +`SD' + Sudan. + +`SE' + Sweden. + +`SG' + Singapore. + +`SH' + St Helena. + +`SI' + Slovenia. + +`SJ' + Svalbard and Jan Mayen. + +`SK' + Slovakia. + +`SL' + Sierra Leone. + +`SM' + San Marino. + +`SN' + Senegal. + +`SO' + Somalia. + +`SR' + Suriname. + +`ST' + Sao Tome and Principe. + +`SV' + El Salvador. + +`SY' + Syria. + +`SZ' + Swaziland. + +`TC' + Turks and Caicos Is. + +`TD' + Chad. + +`TF' + French Southern and Antarctic Lands. + +`TG' + Togo. + +`TH' + Thailand. + +`TJ' + Tajikistan. + +`TK' + Tokelau. + +`TM' + Turkmenistan. + +`TN' + Tunisia. + +`TO' + Tonga. + +`TP' + East Timor. + +`TR' + Turkey. + +`TT' + Trinidad and Tobago. + +`TV' + Tuvalu. + +`TW' + Taiwan. + +`TZ' + Tanzania. + +`UA' + Ukraine. + +`UG' + Uganda. + +`UM' + US minor outlying islands. + +`US' + United States. + +`UY' + Uruguay. + +`UZ' + Uzbekistan. + +`VA' + Vatican City. + +`VC' + St Vincent. + +`VE' + Venezuela. + +`VG' + Virgin Islands (UK). + +`VI' + Virgin Islands (US). + +`VN' + Vietnam. + +`VU' + Vanuatu. + +`WF' + Wallis and Futuna. + +`WS' + Samoa (Western). + +`YE' + Yemen. + +`YT' + Mayotte. + +`YU' + Yugoslavia. + +`ZA' + South Africa. + +`ZM' + Zambia. + +`ZW' + Zimbabwe. + + diff --git a/doc/gettext_15.html b/doc/gettext_15.html new file mode 100644 index 0000000..932a986 --- /dev/null +++ b/doc/gettext_15.html @@ -0,0 +1,523 @@ +<HTML> +<HEAD> +<!-- This HTML file has been created by texi2html 1.52a + from gettext.texi on 30 November 2001 --> + +<TITLE>GNU gettext utilities - A Language Codes</TITLE> +</HEAD> +<BODY> +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_14.html">previous</A>, <A HREF="gettext_16.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +<P><HR><P> + + +<H1><A NAME="SEC208" HREF="gettext_toc.html#TOC208">A Language Codes</A></H1> + +<P> +The ISO 639 standard defines two character codes for many languages. +All abbreviations for languages used in the Translation Project should +come from this standard. + +</P> +<DL COMPACT> + +<DT><SAMP>`aa´</SAMP> +<DD> +Afar. +<DT><SAMP>`ab´</SAMP> +<DD> +Abkhazian. +<DT><SAMP>`ae´</SAMP> +<DD> +Avestan. +<DT><SAMP>`af´</SAMP> +<DD> +Afrikaans. +<DT><SAMP>`am´</SAMP> +<DD> +Amharic. +<DT><SAMP>`ar´</SAMP> +<DD> +Arabic. +<DT><SAMP>`as´</SAMP> +<DD> +Assamese. +<DT><SAMP>`ay´</SAMP> +<DD> +Aymara. +<DT><SAMP>`az´</SAMP> +<DD> +Azerbaijani. +<DT><SAMP>`ba´</SAMP> +<DD> +Bashkir. +<DT><SAMP>`be´</SAMP> +<DD> +Byelorussian; Belarusian. +<DT><SAMP>`bg´</SAMP> +<DD> +Bulgarian. +<DT><SAMP>`bh´</SAMP> +<DD> +Bihari. +<DT><SAMP>`bi´</SAMP> +<DD> +Bislama. +<DT><SAMP>`bn´</SAMP> +<DD> +Bengali; Bangla. +<DT><SAMP>`bo´</SAMP> +<DD> +Tibetan. +<DT><SAMP>`br´</SAMP> +<DD> +Breton. +<DT><SAMP>`bs´</SAMP> +<DD> +Bosnian. +<DT><SAMP>`ca´</SAMP> +<DD> +Catalan. +<DT><SAMP>`ce´</SAMP> +<DD> +Chechen. +<DT><SAMP>`ch´</SAMP> +<DD> +Chamorro. +<DT><SAMP>`co´</SAMP> +<DD> +Corsican. +<DT><SAMP>`cs´</SAMP> +<DD> +Czech. +<DT><SAMP>`cu´</SAMP> +<DD> +Church Slavic. +<DT><SAMP>`cv´</SAMP> +<DD> +Chuvash. +<DT><SAMP>`cy´</SAMP> +<DD> +Welsh. +<DT><SAMP>`da´</SAMP> +<DD> +Danish. +<DT><SAMP>`de´</SAMP> +<DD> +German. +<DT><SAMP>`dz´</SAMP> +<DD> +Dzongkha; Bhutani. +<DT><SAMP>`el´</SAMP> +<DD> +Greek. +<DT><SAMP>`en´</SAMP> +<DD> +English. +<DT><SAMP>`eo´</SAMP> +<DD> +Esperanto. +<DT><SAMP>`es´</SAMP> +<DD> +Spanish. +<DT><SAMP>`et´</SAMP> +<DD> +Estonian. +<DT><SAMP>`eu´</SAMP> +<DD> +Basque. +<DT><SAMP>`fa´</SAMP> +<DD> +Persian. +<DT><SAMP>`fi´</SAMP> +<DD> +Finnish. +<DT><SAMP>`fj´</SAMP> +<DD> +Fijian; Fiji. +<DT><SAMP>`fo´</SAMP> +<DD> +Faroese. +<DT><SAMP>`fr´</SAMP> +<DD> +French. +<DT><SAMP>`fy´</SAMP> +<DD> +Frisian. +<DT><SAMP>`ga´</SAMP> +<DD> +Irish. +<DT><SAMP>`gd´</SAMP> +<DD> +Scots; Gaelic. +<DT><SAMP>`gl´</SAMP> +<DD> +Gallegan; Galician. +<DT><SAMP>`gn´</SAMP> +<DD> +Guarani. +<DT><SAMP>`gu´</SAMP> +<DD> +Gujarati. +<DT><SAMP>`gv´</SAMP> +<DD> +Manx. +<DT><SAMP>`ha´</SAMP> +<DD> +Hausa (?). +<DT><SAMP>`he´</SAMP> +<DD> +Hebrew (formerly iw). +<DT><SAMP>`hi´</SAMP> +<DD> +Hindi. +<DT><SAMP>`ho´</SAMP> +<DD> +Hiri Motu. +<DT><SAMP>`hr´</SAMP> +<DD> +Croatian. +<DT><SAMP>`hu´</SAMP> +<DD> +Hungarian. +<DT><SAMP>`hy´</SAMP> +<DD> +Armenian. +<DT><SAMP>`hz´</SAMP> +<DD> +Herero. +<DT><SAMP>`ia´</SAMP> +<DD> +Interlingua. +<DT><SAMP>`id´</SAMP> +<DD> +Indonesian (formerly in). +<DT><SAMP>`ie´</SAMP> +<DD> +Interlingue. +<DT><SAMP>`ik´</SAMP> +<DD> +Inupiak. +<DT><SAMP>`is´</SAMP> +<DD> +Icelandic. +<DT><SAMP>`it´</SAMP> +<DD> +Italian. +<DT><SAMP>`iu´</SAMP> +<DD> +Inuktitut. +<DT><SAMP>`ja´</SAMP> +<DD> +Japanese. +<DT><SAMP>`jw´</SAMP> +<DD> +Javanese. +<DT><SAMP>`ka´</SAMP> +<DD> +Georgian. +<DT><SAMP>`ki´</SAMP> +<DD> +Kikuyu. +<DT><SAMP>`kj´</SAMP> +<DD> +Kuanyama. +<DT><SAMP>`kk´</SAMP> +<DD> +Kazakh. +<DT><SAMP>`kl´</SAMP> +<DD> +Kalaallisut; Greenlandic. +<DT><SAMP>`km´</SAMP> +<DD> +Khmer; Cambodian. +<DT><SAMP>`kn´</SAMP> +<DD> +Kannada. +<DT><SAMP>`ko´</SAMP> +<DD> +Korean. +<DT><SAMP>`ks´</SAMP> +<DD> +Kashmiri. +<DT><SAMP>`ku´</SAMP> +<DD> +Kurdish. +<DT><SAMP>`kv´</SAMP> +<DD> +Komi. +<DT><SAMP>`kw´</SAMP> +<DD> +Cornish. +<DT><SAMP>`ky´</SAMP> +<DD> +Kirghiz. +<DT><SAMP>`la´</SAMP> +<DD> +Latin. +<DT><SAMP>`lb´</SAMP> +<DD> +Letzeburgesch. +<DT><SAMP>`ln´</SAMP> +<DD> +Lingala. +<DT><SAMP>`lo´</SAMP> +<DD> +Lao; Laotian. +<DT><SAMP>`lt´</SAMP> +<DD> +Lithuanian. +<DT><SAMP>`lv´</SAMP> +<DD> +Latvian; Lettish. +<DT><SAMP>`mg´</SAMP> +<DD> +Malagasy. +<DT><SAMP>`mh´</SAMP> +<DD> +Marshall. +<DT><SAMP>`mi´</SAMP> +<DD> +Maori. +<DT><SAMP>`mk´</SAMP> +<DD> +Macedonian. +<DT><SAMP>`ml´</SAMP> +<DD> +Malayalam. +<DT><SAMP>`mn´</SAMP> +<DD> +Mongolian. +<DT><SAMP>`mo´</SAMP> +<DD> +Moldavian. +<DT><SAMP>`mr´</SAMP> +<DD> +Marathi. +<DT><SAMP>`ms´</SAMP> +<DD> +Malay. +<DT><SAMP>`mt´</SAMP> +<DD> +Maltese. +<DT><SAMP>`my´</SAMP> +<DD> +Burmese. +<DT><SAMP>`na´</SAMP> +<DD> +Nauru. +<DT><SAMP>`nb´</SAMP> +<DD> +Norwegian Bokmål. +<DT><SAMP>`nd´</SAMP> +<DD> +Ndebele, North. +<DT><SAMP>`ne´</SAMP> +<DD> +Nepali. +<DT><SAMP>`ng´</SAMP> +<DD> +Ndonga. +<DT><SAMP>`nl´</SAMP> +<DD> +Dutch. +<DT><SAMP>`nn´</SAMP> +<DD> +Norwegian Nynorsk. +<DT><SAMP>`no´</SAMP> +<DD> +Norwegian. +<DT><SAMP>`nr´</SAMP> +<DD> +Ndebele, South. +<DT><SAMP>`nv´</SAMP> +<DD> +Navajo. +<DT><SAMP>`ny´</SAMP> +<DD> +Chichewa; Nyanja. +<DT><SAMP>`oc´</SAMP> +<DD> +Occitan; Provençal. +<DT><SAMP>`om´</SAMP> +<DD> +(Afan) Oromo. +<DT><SAMP>`or´</SAMP> +<DD> +Oriya. +<DT><SAMP>`os´</SAMP> +<DD> +Ossetian; Ossetic. +<DT><SAMP>`pa´</SAMP> +<DD> +Panjabi; Punjabi. +<DT><SAMP>`pi´</SAMP> +<DD> +Pali. +<DT><SAMP>`pl´</SAMP> +<DD> +Polish. +<DT><SAMP>`ps´</SAMP> +<DD> +Pashto, Pushto. +<DT><SAMP>`pt´</SAMP> +<DD> +Portuguese. +<DT><SAMP>`qu´</SAMP> +<DD> +Quechua. +<DT><SAMP>`rm´</SAMP> +<DD> +Rhaeto-Romance. +<DT><SAMP>`rn´</SAMP> +<DD> +Rundi; Kirundi. +<DT><SAMP>`ro´</SAMP> +<DD> +Romanian. +<DT><SAMP>`ru´</SAMP> +<DD> +Russian. +<DT><SAMP>`rw´</SAMP> +<DD> +Kinyarwanda. +<DT><SAMP>`sa´</SAMP> +<DD> +Sanskrit. +<DT><SAMP>`sc´</SAMP> +<DD> +Sardinian. +<DT><SAMP>`sd´</SAMP> +<DD> +Sindhi. +<DT><SAMP>`se´</SAMP> +<DD> +Northern Sami. +<DT><SAMP>`sg´</SAMP> +<DD> +Sango; Sangro. +<DT><SAMP>`si´</SAMP> +<DD> +Sinhalese. +<DT><SAMP>`sk´</SAMP> +<DD> +Slovak. +<DT><SAMP>`sl´</SAMP> +<DD> +Slovenian. +<DT><SAMP>`sm´</SAMP> +<DD> +Samoan. +<DT><SAMP>`sn´</SAMP> +<DD> +Shona. +<DT><SAMP>`so´</SAMP> +<DD> +Somali. +<DT><SAMP>`sq´</SAMP> +<DD> +Albanian. +<DT><SAMP>`sr´</SAMP> +<DD> +Serbian. +<DT><SAMP>`ss´</SAMP> +<DD> +Swati; Siswati. +<DT><SAMP>`st´</SAMP> +<DD> +Sesotho; Sotho, Southern. +<DT><SAMP>`su´</SAMP> +<DD> +Sundanese. +<DT><SAMP>`sv´</SAMP> +<DD> +Swedish. +<DT><SAMP>`sw´</SAMP> +<DD> +Swahili. +<DT><SAMP>`ta´</SAMP> +<DD> +Tamil. +<DT><SAMP>`te´</SAMP> +<DD> +Telugu. +<DT><SAMP>`tg´</SAMP> +<DD> +Tajik. +<DT><SAMP>`th´</SAMP> +<DD> +Thai. +<DT><SAMP>`ti´</SAMP> +<DD> +Tigrinya. +<DT><SAMP>`tk´</SAMP> +<DD> +Turkmen. +<DT><SAMP>`tl´</SAMP> +<DD> +Tagalog. +<DT><SAMP>`tn´</SAMP> +<DD> +Tswana; Setswana. +<DT><SAMP>`to´</SAMP> +<DD> +Tonga (?). +<DT><SAMP>`tr´</SAMP> +<DD> +Turkish. +<DT><SAMP>`ts´</SAMP> +<DD> +Tsonga. +<DT><SAMP>`tt´</SAMP> +<DD> +Tatar. +<DT><SAMP>`tw´</SAMP> +<DD> +Twi. +<DT><SAMP>`ty´</SAMP> +<DD> +Tahitian. +<DT><SAMP>`ug´</SAMP> +<DD> +Uighur. +<DT><SAMP>`uk´</SAMP> +<DD> +Ukrainian. +<DT><SAMP>`ur´</SAMP> +<DD> +Urdu. +<DT><SAMP>`uz´</SAMP> +<DD> +Uzbek. +<DT><SAMP>`vi´</SAMP> +<DD> +Vietnamese. +<DT><SAMP>`vo´</SAMP> +<DD> +Volapük; Volapuk. +<DT><SAMP>`wo´</SAMP> +<DD> +Wolof. +<DT><SAMP>`xh´</SAMP> +<DD> +Xhosa. +<DT><SAMP>`yi´</SAMP> +<DD> +Yiddish (formerly ji). +<DT><SAMP>`yo´</SAMP> +<DD> +Yoruba. +<DT><SAMP>`za´</SAMP> +<DD> +Zhuang. +<DT><SAMP>`zh´</SAMP> +<DD> +Chinese. +<DT><SAMP>`zu´</SAMP> +<DD> +Zulu. +</DL> + +<P><HR><P> +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_14.html">previous</A>, <A HREF="gettext_16.html">next</A>, <A HREF="gettext_16.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>. +</BODY> +</HTML> diff --git a/doc/gettext_16.html b/doc/gettext_16.html new file mode 100644 index 0000000..1e6332c --- /dev/null +++ b/doc/gettext_16.html @@ -0,0 +1,745 @@ +<HTML> +<HEAD> +<!-- This HTML file has been created by texi2html 1.52a + from gettext.texi on 30 November 2001 --> + +<TITLE>GNU gettext utilities - B Country Codes</TITLE> +</HEAD> +<BODY> +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_15.html">previous</A>, next, last section, <A HREF="gettext_toc.html">table of contents</A>. +<P><HR><P> + + +<H1><A NAME="SEC209" HREF="gettext_toc.html#TOC209">B Country Codes</A></H1> + +<P> +The ISO 3166 standard defines two character codes for many countries +and territories. All abbreviations for countries used in the Translation +Project should come from this standard. + +</P> +<DL COMPACT> + +<DT><SAMP>`AD´</SAMP> +<DD> +Andorra. +<DT><SAMP>`AE´</SAMP> +<DD> +United Arab Emirates. +<DT><SAMP>`AF´</SAMP> +<DD> +Afghanistan. +<DT><SAMP>`AG´</SAMP> +<DD> +Antigua and Barbuda. +<DT><SAMP>`AI´</SAMP> +<DD> +Anguilla. +<DT><SAMP>`AL´</SAMP> +<DD> +Albania. +<DT><SAMP>`AM´</SAMP> +<DD> +Armenia. +<DT><SAMP>`AN´</SAMP> +<DD> +Netherlands Antilles. +<DT><SAMP>`AO´</SAMP> +<DD> +Angola. +<DT><SAMP>`AQ´</SAMP> +<DD> +Antarctica. +<DT><SAMP>`AR´</SAMP> +<DD> +Argentina. +<DT><SAMP>`AS´</SAMP> +<DD> +Samoa (American). +<DT><SAMP>`AT´</SAMP> +<DD> +Austria. +<DT><SAMP>`AU´</SAMP> +<DD> +Australia. +<DT><SAMP>`AW´</SAMP> +<DD> +Aruba. +<DT><SAMP>`AZ´</SAMP> +<DD> +Azerbaijan. +<DT><SAMP>`BA´</SAMP> +<DD> +Bosnia and Herzegovina. +<DT><SAMP>`BB´</SAMP> +<DD> +Barbados. +<DT><SAMP>`BD´</SAMP> +<DD> +Bangladesh. +<DT><SAMP>`BE´</SAMP> +<DD> +Belgium. +<DT><SAMP>`BF´</SAMP> +<DD> +Burkina Faso. +<DT><SAMP>`BG´</SAMP> +<DD> +Bulgaria. +<DT><SAMP>`BH´</SAMP> +<DD> +Bahrain. +<DT><SAMP>`BI´</SAMP> +<DD> +Burundi. +<DT><SAMP>`BJ´</SAMP> +<DD> +Benin. +<DT><SAMP>`BM´</SAMP> +<DD> +Bermuda. +<DT><SAMP>`BN´</SAMP> +<DD> +Brunei. +<DT><SAMP>`BO´</SAMP> +<DD> +Bolivia. +<DT><SAMP>`BR´</SAMP> +<DD> +Brazil. +<DT><SAMP>`BS´</SAMP> +<DD> +Bahamas. +<DT><SAMP>`BT´</SAMP> +<DD> +Bhutan. +<DT><SAMP>`BV´</SAMP> +<DD> +Bouvet Island. +<DT><SAMP>`BW´</SAMP> +<DD> +Botswana. +<DT><SAMP>`BY´</SAMP> +<DD> +Belarus. +<DT><SAMP>`BZ´</SAMP> +<DD> +Belize. +<DT><SAMP>`CA´</SAMP> +<DD> +Canada. +<DT><SAMP>`CC´</SAMP> +<DD> +Cocos (Keeling) Islands. +<DT><SAMP>`CD´</SAMP> +<DD> +Congo (Dem. Rep.). +<DT><SAMP>`CF´</SAMP> +<DD> +Central African Rep.. +<DT><SAMP>`CG´</SAMP> +<DD> +Congo (Rep.). +<DT><SAMP>`CH´</SAMP> +<DD> +Switzerland. +<DT><SAMP>`CI´</SAMP> +<DD> +Cote d'Ivoire. +<DT><SAMP>`CK´</SAMP> +<DD> +Cook Islands. +<DT><SAMP>`CL´</SAMP> +<DD> +Chile. +<DT><SAMP>`CM´</SAMP> +<DD> +Cameroon. +<DT><SAMP>`CN´</SAMP> +<DD> +China. +<DT><SAMP>`CO´</SAMP> +<DD> +Colombia. +<DT><SAMP>`CR´</SAMP> +<DD> +Costa Rica. +<DT><SAMP>`CU´</SAMP> +<DD> +Cuba. +<DT><SAMP>`CV´</SAMP> +<DD> +Cape Verde. +<DT><SAMP>`CX´</SAMP> +<DD> +Christmas Island. +<DT><SAMP>`CY´</SAMP> +<DD> +Cyprus. +<DT><SAMP>`CZ´</SAMP> +<DD> +Czech Republic. +<DT><SAMP>`DE´</SAMP> +<DD> +Germany. +<DT><SAMP>`DJ´</SAMP> +<DD> +Djibouti. +<DT><SAMP>`DK´</SAMP> +<DD> +Denmark. +<DT><SAMP>`DM´</SAMP> +<DD> +Dominica. +<DT><SAMP>`DO´</SAMP> +<DD> +Dominican Republic. +<DT><SAMP>`DZ´</SAMP> +<DD> +Algeria. +<DT><SAMP>`EC´</SAMP> +<DD> +Ecuador. +<DT><SAMP>`EE´</SAMP> +<DD> +Estonia. +<DT><SAMP>`EG´</SAMP> +<DD> +Egypt. +<DT><SAMP>`EH´</SAMP> +<DD> +Western Sahara. +<DT><SAMP>`ER´</SAMP> +<DD> +Eritrea. +<DT><SAMP>`ES´</SAMP> +<DD> +Spain. +<DT><SAMP>`ET´</SAMP> +<DD> +Ethiopia. +<DT><SAMP>`FI´</SAMP> +<DD> +Finland. +<DT><SAMP>`FJ´</SAMP> +<DD> +Fiji. +<DT><SAMP>`FK´</SAMP> +<DD> +Falkland Islands. +<DT><SAMP>`FM´</SAMP> +<DD> +Micronesia. +<DT><SAMP>`FO´</SAMP> +<DD> +Faeroe Islands. +<DT><SAMP>`FR´</SAMP> +<DD> +France. +<DT><SAMP>`GA´</SAMP> +<DD> +Gabon. +<DT><SAMP>`GB´</SAMP> +<DD> +Britain (UK). +<DT><SAMP>`GD´</SAMP> +<DD> +Grenada. +<DT><SAMP>`GE´</SAMP> +<DD> +Georgia. +<DT><SAMP>`GF´</SAMP> +<DD> +French Guiana. +<DT><SAMP>`GH´</SAMP> +<DD> +Ghana. +<DT><SAMP>`GI´</SAMP> +<DD> +Gibraltar. +<DT><SAMP>`GL´</SAMP> +<DD> +Greenland. +<DT><SAMP>`GM´</SAMP> +<DD> +Gambia. +<DT><SAMP>`GN´</SAMP> +<DD> +Guinea. +<DT><SAMP>`GP´</SAMP> +<DD> +Guadeloupe. +<DT><SAMP>`GQ´</SAMP> +<DD> +Equatorial Guinea. +<DT><SAMP>`GR´</SAMP> +<DD> +Greece. +<DT><SAMP>`GS´</SAMP> +<DD> +South Georgia and the South Sandwich Islands. +<DT><SAMP>`GT´</SAMP> +<DD> +Guatemala. +<DT><SAMP>`GU´</SAMP> +<DD> +Guam. +<DT><SAMP>`GW´</SAMP> +<DD> +Guinea-Bissau. +<DT><SAMP>`GY´</SAMP> +<DD> +Guyana. +<DT><SAMP>`HK´</SAMP> +<DD> +Hong Kong. +<DT><SAMP>`HM´</SAMP> +<DD> +Heard Island and McDonald Islands. +<DT><SAMP>`HN´</SAMP> +<DD> +Honduras. +<DT><SAMP>`HR´</SAMP> +<DD> +Croatia. +<DT><SAMP>`HT´</SAMP> +<DD> +Haiti. +<DT><SAMP>`HU´</SAMP> +<DD> +Hungary. +<DT><SAMP>`ID´</SAMP> +<DD> +Indonesia. +<DT><SAMP>`IE´</SAMP> +<DD> +Ireland. +<DT><SAMP>`IL´</SAMP> +<DD> +Israel. +<DT><SAMP>`IN´</SAMP> +<DD> +India. +<DT><SAMP>`IO´</SAMP> +<DD> +British Indian Ocean Territory. +<DT><SAMP>`IQ´</SAMP> +<DD> +Iraq. +<DT><SAMP>`IR´</SAMP> +<DD> +Iran. +<DT><SAMP>`IS´</SAMP> +<DD> +Iceland. +<DT><SAMP>`IT´</SAMP> +<DD> +Italy. +<DT><SAMP>`JM´</SAMP> +<DD> +Jamaica. +<DT><SAMP>`JO´</SAMP> +<DD> +Jordan. +<DT><SAMP>`JP´</SAMP> +<DD> +Japan. +<DT><SAMP>`KE´</SAMP> +<DD> +Kenya. +<DT><SAMP>`KG´</SAMP> +<DD> +Kyrgyzstan. +<DT><SAMP>`KH´</SAMP> +<DD> +Cambodia. +<DT><SAMP>`KI´</SAMP> +<DD> +Kiribati. +<DT><SAMP>`KM´</SAMP> +<DD> +Comoros. +<DT><SAMP>`KN´</SAMP> +<DD> +St Kitts and Nevis. +<DT><SAMP>`KP´</SAMP> +<DD> +Korea (North). +<DT><SAMP>`KR´</SAMP> +<DD> +Korea (South). +<DT><SAMP>`KW´</SAMP> +<DD> +Kuwait. +<DT><SAMP>`KY´</SAMP> +<DD> +Cayman Islands. +<DT><SAMP>`KZ´</SAMP> +<DD> +Kazakhstan. +<DT><SAMP>`LA´</SAMP> +<DD> +Laos. +<DT><SAMP>`LB´</SAMP> +<DD> +Lebanon. +<DT><SAMP>`LC´</SAMP> +<DD> +St Lucia. +<DT><SAMP>`LI´</SAMP> +<DD> +Liechtenstein. +<DT><SAMP>`LK´</SAMP> +<DD> +Sri Lanka. +<DT><SAMP>`LR´</SAMP> +<DD> +Liberia. +<DT><SAMP>`LS´</SAMP> +<DD> +Lesotho. +<DT><SAMP>`LT´</SAMP> +<DD> +Lithuania. +<DT><SAMP>`LU´</SAMP> +<DD> +Luxembourg. +<DT><SAMP>`LV´</SAMP> +<DD> +Latvia. +<DT><SAMP>`LY´</SAMP> +<DD> +Libya. +<DT><SAMP>`MA´</SAMP> +<DD> +Morocco. +<DT><SAMP>`MC´</SAMP> +<DD> +Monaco. +<DT><SAMP>`MD´</SAMP> +<DD> +Moldova. +<DT><SAMP>`MG´</SAMP> +<DD> +Madagascar. +<DT><SAMP>`MH´</SAMP> +<DD> +Marshall Islands. +<DT><SAMP>`MK´</SAMP> +<DD> +Macedonia. +<DT><SAMP>`ML´</SAMP> +<DD> +Mali. +<DT><SAMP>`MM´</SAMP> +<DD> +Myanmar (Burma). +<DT><SAMP>`MN´</SAMP> +<DD> +Mongolia. +<DT><SAMP>`MO´</SAMP> +<DD> +Macao. +<DT><SAMP>`MP´</SAMP> +<DD> +Northern Mariana Islands. +<DT><SAMP>`MQ´</SAMP> +<DD> +Martinique. +<DT><SAMP>`MR´</SAMP> +<DD> +Mauritania. +<DT><SAMP>`MS´</SAMP> +<DD> +Montserrat. +<DT><SAMP>`MT´</SAMP> +<DD> +Malta. +<DT><SAMP>`MU´</SAMP> +<DD> +Mauritius. +<DT><SAMP>`MV´</SAMP> +<DD> +Maldives. +<DT><SAMP>`MW´</SAMP> +<DD> +Malawi. +<DT><SAMP>`MX´</SAMP> +<DD> +Mexico. +<DT><SAMP>`MY´</SAMP> +<DD> +Malaysia. +<DT><SAMP>`MZ´</SAMP> +<DD> +Mozambique. +<DT><SAMP>`NA´</SAMP> +<DD> +Namibia. +<DT><SAMP>`NC´</SAMP> +<DD> +New Caledonia. +<DT><SAMP>`NE´</SAMP> +<DD> +Niger. +<DT><SAMP>`NF´</SAMP> +<DD> +Norfolk Island. +<DT><SAMP>`NG´</SAMP> +<DD> +Nigeria. +<DT><SAMP>`NI´</SAMP> +<DD> +Nicaragua. +<DT><SAMP>`NL´</SAMP> +<DD> +Netherlands. +<DT><SAMP>`NO´</SAMP> +<DD> +Norway. +<DT><SAMP>`NP´</SAMP> +<DD> +Nepal. +<DT><SAMP>`NR´</SAMP> +<DD> +Nauru. +<DT><SAMP>`NU´</SAMP> +<DD> +Niue. +<DT><SAMP>`NZ´</SAMP> +<DD> +New Zealand. +<DT><SAMP>`OM´</SAMP> +<DD> +Oman. +<DT><SAMP>`PA´</SAMP> +<DD> +Panama. +<DT><SAMP>`PE´</SAMP> +<DD> +Peru. +<DT><SAMP>`PF´</SAMP> +<DD> +French Polynesia. +<DT><SAMP>`PG´</SAMP> +<DD> +Papua New Guinea. +<DT><SAMP>`PH´</SAMP> +<DD> +Philippines. +<DT><SAMP>`PK´</SAMP> +<DD> +Pakistan. +<DT><SAMP>`PL´</SAMP> +<DD> +Poland. +<DT><SAMP>`PM´</SAMP> +<DD> +St Pierre and Miquelon. +<DT><SAMP>`PN´</SAMP> +<DD> +Pitcairn. +<DT><SAMP>`PR´</SAMP> +<DD> +Puerto Rico. +<DT><SAMP>`PS´</SAMP> +<DD> +Palestine. +<DT><SAMP>`PT´</SAMP> +<DD> +Portugal. +<DT><SAMP>`PW´</SAMP> +<DD> +Palau. +<DT><SAMP>`PY´</SAMP> +<DD> +Paraguay. +<DT><SAMP>`QA´</SAMP> +<DD> +Qatar. +<DT><SAMP>`RE´</SAMP> +<DD> +Reunion. +<DT><SAMP>`RO´</SAMP> +<DD> +Romania. +<DT><SAMP>`RU´</SAMP> +<DD> +Russia. +<DT><SAMP>`RW´</SAMP> +<DD> +Rwanda. +<DT><SAMP>`SA´</SAMP> +<DD> +Saudi Arabia. +<DT><SAMP>`SB´</SAMP> +<DD> +Solomon Islands. +<DT><SAMP>`SC´</SAMP> +<DD> +Seychelles. +<DT><SAMP>`SD´</SAMP> +<DD> +Sudan. +<DT><SAMP>`SE´</SAMP> +<DD> +Sweden. +<DT><SAMP>`SG´</SAMP> +<DD> +Singapore. +<DT><SAMP>`SH´</SAMP> +<DD> +St Helena. +<DT><SAMP>`SI´</SAMP> +<DD> +Slovenia. +<DT><SAMP>`SJ´</SAMP> +<DD> +Svalbard and Jan Mayen. +<DT><SAMP>`SK´</SAMP> +<DD> +Slovakia. +<DT><SAMP>`SL´</SAMP> +<DD> +Sierra Leone. +<DT><SAMP>`SM´</SAMP> +<DD> +San Marino. +<DT><SAMP>`SN´</SAMP> +<DD> +Senegal. +<DT><SAMP>`SO´</SAMP> +<DD> +Somalia. +<DT><SAMP>`SR´</SAMP> +<DD> +Suriname. +<DT><SAMP>`ST´</SAMP> +<DD> +Sao Tome and Principe. +<DT><SAMP>`SV´</SAMP> +<DD> +El Salvador. +<DT><SAMP>`SY´</SAMP> +<DD> +Syria. +<DT><SAMP>`SZ´</SAMP> +<DD> +Swaziland. +<DT><SAMP>`TC´</SAMP> +<DD> +Turks and Caicos Is. +<DT><SAMP>`TD´</SAMP> +<DD> +Chad. +<DT><SAMP>`TF´</SAMP> +<DD> +French Southern and Antarctic Lands. +<DT><SAMP>`TG´</SAMP> +<DD> +Togo. +<DT><SAMP>`TH´</SAMP> +<DD> +Thailand. +<DT><SAMP>`TJ´</SAMP> +<DD> +Tajikistan. +<DT><SAMP>`TK´</SAMP> +<DD> +Tokelau. +<DT><SAMP>`TM´</SAMP> +<DD> +Turkmenistan. +<DT><SAMP>`TN´</SAMP> +<DD> +Tunisia. +<DT><SAMP>`TO´</SAMP> +<DD> +Tonga. +<DT><SAMP>`TP´</SAMP> +<DD> +East Timor. +<DT><SAMP>`TR´</SAMP> +<DD> +Turkey. +<DT><SAMP>`TT´</SAMP> +<DD> +Trinidad and Tobago. +<DT><SAMP>`TV´</SAMP> +<DD> +Tuvalu. +<DT><SAMP>`TW´</SAMP> +<DD> +Taiwan. +<DT><SAMP>`TZ´</SAMP> +<DD> +Tanzania. +<DT><SAMP>`UA´</SAMP> +<DD> +Ukraine. +<DT><SAMP>`UG´</SAMP> +<DD> +Uganda. +<DT><SAMP>`UM´</SAMP> +<DD> +US minor outlying islands. +<DT><SAMP>`US´</SAMP> +<DD> +United States. +<DT><SAMP>`UY´</SAMP> +<DD> +Uruguay. +<DT><SAMP>`UZ´</SAMP> +<DD> +Uzbekistan. +<DT><SAMP>`VA´</SAMP> +<DD> +Vatican City. +<DT><SAMP>`VC´</SAMP> +<DD> +St Vincent. +<DT><SAMP>`VE´</SAMP> +<DD> +Venezuela. +<DT><SAMP>`VG´</SAMP> +<DD> +Virgin Islands (UK). +<DT><SAMP>`VI´</SAMP> +<DD> +Virgin Islands (US). +<DT><SAMP>`VN´</SAMP> +<DD> +Vietnam. +<DT><SAMP>`VU´</SAMP> +<DD> +Vanuatu. +<DT><SAMP>`WF´</SAMP> +<DD> +Wallis and Futuna. +<DT><SAMP>`WS´</SAMP> +<DD> +Samoa (Western). +<DT><SAMP>`YE´</SAMP> +<DD> +Yemen. +<DT><SAMP>`YT´</SAMP> +<DD> +Mayotte. +<DT><SAMP>`YU´</SAMP> +<DD> +Yugoslavia. +<DT><SAMP>`ZA´</SAMP> +<DD> +South Africa. +<DT><SAMP>`ZM´</SAMP> +<DD> +Zambia. +<DT><SAMP>`ZW´</SAMP> +<DD> +Zimbabwe. +</DL> + +<P><HR><P> +Go to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_15.html">previous</A>, next, last section, <A HREF="gettext_toc.html">table of contents</A>. +</BODY> +</HTML> diff --git a/po/cs.gmo b/po/cs.gmo Binary files differnew file mode 100644 index 0000000..5977667 --- /dev/null +++ b/po/cs.gmo diff --git a/po/et.gmo b/po/et.gmo Binary files differnew file mode 100644 index 0000000..00c8700 --- /dev/null +++ b/po/et.gmo diff --git a/po/gl.gmo b/po/gl.gmo Binary files differnew file mode 100644 index 0000000..587b57d --- /dev/null +++ b/po/gl.gmo diff --git a/po/id.gmo b/po/id.gmo Binary files differnew file mode 100644 index 0000000..1e49279 --- /dev/null +++ b/po/id.gmo diff --git a/po/it.gmo b/po/it.gmo Binary files differnew file mode 100644 index 0000000..07129b7 --- /dev/null +++ b/po/it.gmo diff --git a/po/ru.gmo b/po/ru.gmo Binary files differnew file mode 100644 index 0000000..ae7152b --- /dev/null +++ b/po/ru.gmo diff --git a/po/sk.gmo b/po/sk.gmo Binary files differnew file mode 100644 index 0000000..b53bbc8 --- /dev/null +++ b/po/sk.gmo diff --git a/po/zh.gmo b/po/zh.gmo Binary files differnew file mode 100644 index 0000000..518f625 --- /dev/null +++ b/po/zh.gmo |