aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.0/gcc/ABOUT-GCC-NLS
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.4.0/gcc/ABOUT-GCC-NLS')
-rw-r--r--gcc-4.4.0/gcc/ABOUT-GCC-NLS49
1 files changed, 49 insertions, 0 deletions
diff --git a/gcc-4.4.0/gcc/ABOUT-GCC-NLS b/gcc-4.4.0/gcc/ABOUT-GCC-NLS
new file mode 100644
index 000000000..8107d583e
--- /dev/null
+++ b/gcc-4.4.0/gcc/ABOUT-GCC-NLS
@@ -0,0 +1,49 @@
+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.
+
+Not all of GCC's diagnostic messages have been internationalized. Programs
+like `genattr' (in fact all gen* programs) are not 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.
+
+The GCC library should not contain any messages that need
+internationalization, because it operates below the internationalization
+library.
+
+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.
+If the parameter name ends with `gmsgid', it is assumed to be a GCC
+diagnostics format string requiring translation, if it ends with
+`cmsgid', it is assumed to be a format string for `printf' family
+of functions, requiring a translation.
+For example, the `error' function's first parameter is named `gmsgid'.
+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.
+The `G_(GMSGID)' macro defined in intl.h can be used to mark GCC diagnostics
+format strings as requiring translation, but other than that it is a
+no-op at runtime.
+
+If you modify source files, you'll need at least version 0.14.15 of the
+GNU gettext package to propagate the modifications to the translation
+tables.
+
+After having built and installed these gettext tools, you have to
+configure GCC with --enable-maintainer-mode to get the master catalog
+rebuilt.