Bugzilla – Bug 129313
GNU gettext: wrong plural form definition for the Czech language
Last modified: 2008-09-02 18:07:37 UTC
GNU gettext uses this plural form definition for the Czech language: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2) I believe it is wrong and should be changed for following reasons: 1) http://www.ujc.cas.cz/poradna/odpo.html#dveste (czech only, sorry) It enforces a language rule, which is not mandatory since 1970'. It is not incorrect (its use is still optional), however it sounds somewhat archaic today. According to the language institute of the Academy of Sciences of the Czech Republic (the czech link above) it is: "more common and more natural to NOT use this rule" 2) Its use induces problems. Many (probably most) translators do not expect use of this rule. Then they translate the first plural form as it would be used only for singular (1 item exactly), not using a variable "%n" but literal string as "1", "one" or similar. Then, bugs like this one happen: http://bugs.kde.org/show_bug.cgi?id=114283 I propose following definition (modern Czech language, not inducing described problems): nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;
Please report this to the upstream maintainer Bruno Haible <bruno@clisp.org>. We'll pick it up if he decides to follow your proposal.
reported upstream
Thanks for the detailed report and rationale. The change that you propose is already integrated in GNU gettext since 0.14.2. I can see from http://ftp.opensuse.org/pub/opensuse/distribution/SL-10.0-OSS/inst-source/suse/src/ that SUSE LINUX 10.0 comes with gettext 0.14.3. In order to investigate why you see this problem although, from looking at the version numbers, it should already be fixed, it would be helpful 1) to state a procedure how to reproduce the problem, 2) to show the output of "msginit --version".
oh, i see, i have used an older version i got confused because the manual at http://www.gnu.org/software/gettext/manual/html_mono/gettext.html#SEC150 is not updated (as well as many mirrors with the software)
(in SUSE Linux 10, the handling of Czech plurals is still wrong because of KDE bug http://bugs.kde.org/show_bug.cgi?id=114688 which is not dependent on gettext)
Because the LATER and REMIND resolutions have been removed, the resolution of this bug has changed from LATER to WONTFIX. If this bug needs to be reconsidered, reopen it and set a future "Target Milestone for Fix."