1.1 The Purpose of GNU `gettext'
Usually, programs are written and documented in English, and use
English at execution time to interact with users. This is true not
only of GNU software, but also of a great deal of proprietary and free
software. Using a common language is quite handy for communication
between developers, maintainers and users from all countries. On the
other hand, most people are less comfortable with English than with
their own native language, and would prefer to use their mother tongue
for day to day's work, as far as possible. Many would simply _love_ to
see their computer screen showing a lot less of English, and far more
of their own language.
However, to many people, this dream might appear so far fetched that
they may believe it is not even worth spending time thinking about it.
They have no confidence at all that the dream might ever become true.
Yet some have not lost hope, and have organized themselves. The
Translation Project is a formalization of this hope into a workable
structure, which has a good chance to get all of us nearer the
achievement of a truly multi-lingual set of programs.
GNU `gettext' is an important step for the Translation Project, as
it is an asset on which we may build many other steps. This package
offers to programmers, translators and even users, a well integrated
set of tools and documentation. Specifically, the GNU `gettext'
utilities are a set of tools that provides a framework within which
other free packages may produce multi-lingual messages. These tools
* A set of conventions about how programs should be written to
support message catalogs.
* A directory and file naming organization for the message catalogs
* A runtime library supporting the retrieval of translated messages.
* A few stand-alone programs to massage in various ways the sets of
translatable strings, or already translated strings.
* A library supporting the parsing and creation of files containing
* A special mode for Emacs(1) which helps preparing these sets and
bringing them up to date.
GNU `gettext' is designed to minimize the impact of
internationalization on program sources, keeping this impact as small
and hardly noticeable as possible. Internationalization has better
chances of succeeding if it is very light weighted, or at least, appear
to be so, when looking at program sources.
The Translation Project also uses the GNU `gettext' distribution as
a vehicle for documenting its structure and methods. This goes beyond
the strict technicalities of documenting the GNU `gettext' proper. By
so doing, translators will find in a single place, as far as possible,
all they need to know for properly doing their translating work. Also,
this supplemental documentation might also help programmers, and even
curious users, in understanding how GNU `gettext' is related to the
remainder of the Translation Project, and consequently, have a glimpse
at the _big picture_.
---------- Footnotes ----------
(1) In this manual, all mentions of Emacs refers to either GNU Emacs
or to XEmacs, which people sometimes call FSF Emacs and Lucid Emacs,
automatically generated by