[kde-russian] Fwd: c-formatted strings in rkward__analysis.po
Yuri Chornoivan
yurchor на ukr.net
Пн Дек 8 18:08:28 MSK 2014
написане Mon, 08 Dec 2014 15:32:35 +0200, Juliette Tux
<juliette.tux на gmail.com>:
> Это опять мы, пинджаки.
>
> У меня такой случай с "#, c-format" в пошке встретился в lxpanel (
> http://mirror.rosalab.ru/rosa/server/6.6/repository/SRPMS/extra/release/lxpanel-0.6.1-1.res6.src.rpm
> ), причём кое-что из помеченного как c-format интерфейс подхватывает на
> русском, кое-что упорно хочет показывать только на инглише. Пошка вот
> тут:
> http://pastebin.com/dZwRsyMP
> Можно более подробно на пальцах пояснить, что куда вставлять, чтобы
> правильно собрать?
Насколько я могу судить, в оригинальном архиве с форматированием PO всё в
порядке.
Вкратце, идея такова:
1. В коде на C/C++/JS есть какое-нибудь сообщение с символом «%».
Например, «95% corresponds to a 5% level of significance".
2. Внутренний обработчик xgettext считает, что «%» — начало форматирования
(«%с»). Поэтому на все переводы, не содержащие «%с» ругается как на
неправильные. В тексте PO такие сообщения отмечаются комментарием «#,
c-format».
3. Вставляем в код непосредственно перед строчкой с сообщением комментарий
для xgettext: «//xgettext:no-c-format». Всё приходит в норму. Теперь в
тексте PO такие сообщение отмечено комментарием «#, no-c-format». Можно
переводить.
Я не вижу, где могут быть проблемы в lxpanel.pot. Если переводы не
загружаются, то причина в чём-то другом. Например, где-то не хватает
#include <gi18n.h>
С уважением,
Юрий
> ---------- Forwarded message ----------
> From: Yuri Chornoivan <yurchor на ukr.net>
> Date: 5 December 2014 at 08:26
> Subject: Re: c-formatted strings in rkward__analysis.po
> To: "kde-i18n-doc на kde.org" <kde-i18n-doc на kde.org>
>
>
> написане Thu, 04 Dec 2014 22:38:48 +0200, Thomas Friedrichsmeier <
> thomas.friedrichsmeier на ruhr-uni-bochum.de>:
>
>
> Hi,
>>
>> On Thursday 04 December 2014 21:39:14 Yuri Chornoivan wrote:
>>
>>> Due to some subtle peculiarities of xgettext processing some extracted
>>> strings (those with '%') are now wrongly c-formatted which prevents
>>> them
>>> from to be translated well.
>>>
>>
>> I see.
>>
>> It is usually enough to add "xgettext:no-c-format" for such messages
>> to be
>>> processed right, but it is evidently not the case this time (tested).
>>>
>>
>> I guess that's because the extraction script just strips all comments
>> that
>> don't start with i18n: or translators:.
>>
>> Is there any way to post-process the file to replace #, c-format with
>> #,
>>> no-c-format ?
>>>
>>
>> I've tried smartening up the extraction script to insert /*
>> xgettext:no-c-
>> format */ in front of the calls in question (after all comment
>> stripping).
>> This seems to produce the desired result. Please test.
>>
>> Thanks!
>> Thomas
>>
>
> Now it works as expected. Many thanks for your work.
>
> Best regards,
> Yuri
>
>
Подробная информация о списке рассылки kde-russian