[Openstack-i18n] Czech translation error

Akihiro Motoki amotoki at gmail.com
Thu Jan 7 11:28:59 UTC 2016


I am not sure it is a bug of the source string. It works as the source language.
The similar example is shown in the gettext documentation I quoted in
the first mail.

Apart from the warning you mentioned, after we change msgstr[0] to contain %s
in a translation, the error disappears.
IMHO, it is a bug of GNU gettext.

On the other hand, I agree it is less confusing if the source string
contains %s.
Feel free to file a bug to horizon with a background.

Akihiro

2016-01-07 18:19 GMT+09:00 Ying Chun Guo <guoyingc at cn.ibm.com>:
> Hi, Akihiro
>
> It is a bug in the source code, isn't it ?
> I don't see the translations are wrong.
>
> msgid is "Instance launched."
> We cannot simply add %s to msgstr[0].
> Zanata will report a warning: Unexpected variable: %s
>
> I think the source string "Instance launched." should add %s firstly.
> "Instance launched." should be changed to "Instance %s launched."
> And then, the translation msgstr[0] should add %s correspondingly.
>
> Best regards
> Ying Chun Guo (Daisy)
>
>
> Akihiro Motoki <amotoki at gmail.com> wrote on 2016/01/07 01:44:42:
>
>> From: Akihiro Motoki <amotoki at gmail.com>
>> To: "openstack-i18n at lists.openstack.org"
>> <Openstack-i18n at lists.openstack.org>
>> Date: 2016/01/07 01:46
>> Subject: [Openstack-i18n] Czech translation error
>
>>
>> Hi Czech language team and i18n Zanata admin,
>>
>> Horizon translation import is broken due to Czech translation.
>> This blocks all translation imports of horizon.
>> Could you fix it?
>>
>> https://review.openstack.org/#/c/259677
>>
>> The error is like this:
>> http://logs.openstack.org/77/259677/15/check/gate-horizon-dsvm-
>> integration/e5ed03e/logs/devstacklog.txt.gz#_2016-01-02_17_55_04_608
>> 2016-01-02 17:55:04.608 | CommandError: Execution of msgfmt failed:
>> /opt/stack/new/horizon/openstack_dashboard/locale/cs/LC_MESSAGES/
>> djangojs.po:655:
>> number of format specifications in 'msgid_plural' and 'msgstr[0]' does
>> not match
>> 2016-01-02 17:55:04.608 | msgfmt: found 1 fatal error
>>
>> The error point is:
>> https://review.openstack.org/#/c/259677/15/openstack_dashboard/
>> locale/cs/LC_MESSAGES/djangojs.po
>>
>> I think we need to add %s to msgstr[0] to avoid msgfmt error.
>>
>> #, python-format
>> msgid "Instance launched."
>> msgid_plural "%s instances launched."
>> msgstr[0] "Instance spuštěna.
>> msgstr[1] "Spuštěny %s instance."
>> msgstr[2] "Spuštěno %s instancí."
>>
>>
>> BTW, I am not sure this is valid according to GNU gettext documentation
>> [1],
>> but msgfmt actually does not support this form.
>> In the example of [1], msgid does not contain %s but all msgstr[n] contain
>> %s.
>> Although there is no explicit description, %s must be contained in all
>> msgstr[n].
>> To avoid confusion, it is better to contain %s in 'msgid' (singular
>> form) as well.
>>
>> [1] https://www.gnu.org/software/gettext/manual/html_node/
>> Translating-plural-forms.html
>>
>>
>> Akihiro
>>
>> _______________________________________________
>> Openstack-i18n mailing list
>> Openstack-i18n at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-i18n
>



More information about the Openstack-i18n mailing list