It is impossible to provide translations of some messages

Ian Lance Taylor
Tue Dec 13 14:58:00 GMT 2011

Nadezhda Ivanоvna Vyukova <> writes:

> ../DefUser.h:154: ошибка: expected identifier or '(' before numeric constant
> ../DefUser.h:49: ошибка: expected declaration specifiers or '...' before
> numeric constant 
> ../DefUser.h:49: ошибка: expected identifier or '(' before '}' token 
> ../wizard.c:7: ошибка: expected declaration or statement at end of
> input 
> I have explored the reasons of the problem and found out the following.
> 1. Messages issued with functions c_parser_require,
> c_parser_require_keyword, c_parser_skip_until_found (c-parser.c)
> are not present in gcc/po/gcc.pot. I've run make gcc.pot,
> but they were still absent.
> (IMO this problem was solved in later versions of gcc.)
> 2. But even when I added these messages to ru.po
> the listed above error messages were still not translated.
> That's because the function c_parse_error (in c-common.c)
> calls "error (message)" where "message" is concatenation of two strings.
> Even if each string is present in a PO file their concatenation
> cannot be translated.
> 3. I have tried to use _() for both substrings being catenated
> in c_parse_error but this gave a wrong output even with LC_ALL=C.

Please open a bug report for this so that the overall problem can be
fixed in current releases.  See .  Thanks.


More information about the Gcc-help mailing list