ABOUT-GCC-NLS 2.13 KB
Newer Older
Jeff Law committed
1 2 3 4 5 6
Notes on GCC's Native Language Support

By and large, only diagnostic messages have been internationalized.
Some work remains in other areas; for example, GCC does not yet allow
non-ASCII letters in identifiers.

7 8
Not all of GCC's diagnostic messages have been internationalized. Programs
like `enquire' and `genattr' (in fact all gen* programs) are not
9 10 11 12
internationalized, as their users are GCC maintainers who typically need
to be able to read English anyway; internationalizing them would thus
entail needless work for the human translators. Messages used for
debugging, such as used in dumped tables, should also not be translated.
Jeff Law committed
13 14

The GCC library should not contain any messages that need
15 16
internationalization, because it operates below the internationalization
library.
Jeff Law committed
17

18 19
Currently, the only language translation supplied is en_UK (British
English).
Jeff Law committed
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38

Unlike some other GNU programs, the GCC sources contain few instances
of explicit translation calls like _("string").  Instead, the
diagnostic printing routines automatically translate their arguments.
For example, GCC source code should not contain calls like `error
(_("unterminated comment"))'; it should contain calls like `error
("unterminated comment")' instead, as it is the `error' function's
responsibility to translate the message before the user sees it.

By convention, any function parameter in the GCC sources whose name
ends in `msgid' is expected to be a message requiring translation.
For example, the `error' function's first parameter is named `msgid'.
GCC's exgettext script uses this convention to determine which
function parameter strings need to be translated.  The exgettext
script also assumes that any occurrence of `%eMSGID}' on a source
line, where MSGID does not contain `%' or `}', corresponds to a
message MSGID that requires translation; this is needed to identify
diagnostics in GCC spec strings.

39
If you modify source files, you'll need at least version 0.10.37 of the
40 41
GNU gettext package to propagate the modifications to the translation
tables.
42

43 44 45
After having built and installed these gettext tools, you have to
configure GCC with --enable-maintainer-mode to get the master catalog
rebuilt.