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