c_parse_error combines a string passed in with another part of a sentence. Combining sentence fragments cannot work with i18n. The source code must contain all the full sentences output even though this bulks up the source by needing 8 different "expected .. before ..." in the error function call for every parser error: only that way can all the sentences be translated properly. Making each call pass eight arguments rather than one is fortunately a fairly mechanical change, as the new arguments are derived from the existing one in a fixed way.
(Formerly part of comment#7 in bug 17852.) -- Summary: c_parse_error 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=18248