OSDN Git Service

2007-11-05 H.J. Lu <hongjiu.lu@intel.com>
[pf3gnuchains/gcc-fork.git] / gcc / ABOUT-GCC-NLS
index e6e1527..8107d58 100644 (file)
@@ -5,19 +5,16 @@ 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
 non-ASCII letters in identifiers.
 
 Not all of GCC's diagnostic messages have been internationalized. Programs
-like `enquire' and `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.
+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.
 
 
 The GCC library should not contain any messages that need
 internationalization, because it operates below the internationalization
 library.
 
-Currently, the only language translation supplied is en_UK (British
-English).
-
 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.
 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.
@@ -28,15 +25,22 @@ 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.
 
 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'.
+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.
 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.10.37 of the
+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.
 
 GNU gettext package to propagate the modifications to the translation
 tables.