Nadezhda Ivanоvna Vyukova <niva@xxxxxxxxxxxx> 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 http://gcc.gnu.org/bugs/ . Thanks. Ian