c++/7084: locale dependant ICE
Martin v. Loewis
martin@v.loewis.de
Fri Jun 21 04:47:00 GMT 2002
I'm forwarding this to the French translator, Michel Robitaille.
Michel, can you please correct these errors and submit a new catalog?
> This would be a bug in fr.po:
>
> | #: cp/call.c:2834
> | msgid "%s for `%T %s' operator"
> | msgstr "%s pour l'opérateur «%T %s»"
> |
> | #: cp/call.c:2837
> | msgid "%s for `%T [%T]' operator"
> | msgstr "%s pour l'opérateur «%T [%T]»"
> |
> | #: cp/call.c:2842
> | msgid "%s for `%T %s %T' operator"
> | msgstr "%s pour l'opérateur «%t [%T]»"
> |
> | #: cp/call.c:2845
> | msgid "%s for `%s %T' operator"
> | msgstr "%s pour l'opérateur «%t [%T]»"
>
> You will notice that the translations do not match the messages, and
> that the escape sequences are wrong: in particular, a %t has
> appeared. This is not a defined %-escape, so we abort in the middle
> of generating the error message, which triggers the "ré-entée" message.
>
> Correct entries, presumably, would read
>
> | #: cp/call.c:2834
> | msgid "%s for `%T %s' operator"
> | msgstr "%s pour l'opérateur «%T %s»"
> |
> | #: cp/call.c:2837
> | msgid "%s for `%T [%T]' operator"
> | msgstr "%s pour l'opérateur «%T [%T]»"
> |
> | #: cp/call.c:2842
> | msgid "%s for `%T %s %T' operator"
> | msgstr "%s pour l'opérateur «%T %s %T»"
> |
> | #: cp/call.c:2845
> | msgid "%s for `%s %T' operator"
> | msgstr "%s pour l'opérateur «%s %T»"
>
> I am not sure what the protocol is for fixing such bugs. The
> corrections need to make it back to the translation project somehow,
> and the .po files need to be audited for other occurrences of this
> problem (why didn't msgfmt bitch?)
Because the messages are not marked c-format, and use format
specifiers that are not supported in C. I think the only option is to
implement a custom checker, as a post processor.
Regards,
Martin
More information about the Gcc-bugs
mailing list