Re: [Openstack-i18n] Czech translation error
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@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@gmail.com> wrote on 2016/01/07 01:44:42:
From: Akihiro Motoki <amotoki@gmail.com> To: "openstack-i18n@lists.openstack.org" <Openstack-i18n@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@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-i18n
Bug reported https://bugs.launchpad.net/horizon/+bug/1532092 Best regards Ying Chun Guo (Daisy) Akihiro Motoki <amotoki@gmail.com> wrote on 2016/01/07 19:28:59:
From: Akihiro Motoki <amotoki@gmail.com> To: Ying Chun Guo/China/IBM@IBMCN Cc: "openstack-i18n@lists.openstack.org" <Openstack-i18n@lists.openstack.org> Date: 2016/01/07 19:30 Subject: Re: [Openstack-i18n] Czech translation error
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@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@gmail.com> wrote on 2016/01/07 01:44:42:
From: Akihiro Motoki <amotoki@gmail.com> To: "openstack-i18n@lists.openstack.org" <Openstack-i18n@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@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-i18n
Patch submitted: https://review.openstack.org/265101 On 08/01/16 14:24, Ying Chun Guo wrote:
Bug reported
https://bugs.launchpad.net/horizon/+bug/1532092
Best regards Ying Chun Guo (Daisy)
Akihiro Motoki <amotoki@gmail.com> wrote on 2016/01/07 19:28:59:
From: Akihiro Motoki <amotoki@gmail.com> To: Ying Chun Guo/China/IBM@IBMCN Cc: "openstack-i18n@lists.openstack.org" <Openstack-i18n@lists.openstack.org> Date: 2016/01/07 19:30 Subject: Re: [Openstack-i18n] Czech translation error
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@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@gmail.com> wrote on 2016/01/07 01:44:42:
From: Akihiro Motoki <amotoki@gmail.com> To: "openstack-i18n@lists.openstack.org" <Openstack-i18n@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@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-i18n
_______________________________________________ Openstack-i18n mailing list Openstack-i18n@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-i18n
participants (3)
-
Akihiro Motoki
-
Tom Fifield
-
Ying Chun Guo