The message parameter to cp_parser_error is called "message" rather than "msgid", so the messages don't get in the message catalog. Much the same applies to several other functions in the C++ parser: cp_parser_require, cp_parser_name_lookup_error, cp_parser_non_integral_constant_expression all take English arguments that aren't marked for translation and may not end up getting passed to _() in all cases. cp_parser_require also concatenates the argument with the string "expected ". The type_definition_forbidden_message structure member has a similar problem.
-- Summary: C++ parser i18n problems Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jsm28 at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18249