GNOME Bugzilla – Bug 669732
Incorrect result of translation when identical strings are used both in single and plural-forms msgids
Last modified: 2012-06-14 10:08:55 UTC
In po file translations are mixed for single and plural forms strings. Translation of single form string leads to wrong translation because of incorrect usage of plural-form formula. The msgstr[0] is used instead of msgstr[1], see Plural-Forms definition for Slovak language. Developers of gettext commends using context to avoid such ambiguities: http://lists.gnu.org/archive/html/bug-gettext/2012-02/msg00003.html Please add context to such strings: Strings: #: ../plugins/keyboard/keyboard.gnome-settings-plugin.in.h:1 #: ../plugins/power/gpm-common.c:585 ../plugins/power/gpm-common.c:872 msgid "Keyboard" msgid_plural "Keyboards" single form is in: ../plugins/power/gpm-common.c:872 ../plugins/keyboard/keyboard.gnome-settings-plugin.in.h:1 #: ../plugins/mouse/mouse.gnome-settings-plugin.in.h:1 #: ../plugins/power/gpm-common.c:581 ../plugins/power/gpm-common.c:848 msgid "Mouse" msgid_plural "Mice" single form is in: ../plugins/mouse/mouse.gnome-settings-plugin.in.h:1 ../plugins/power/gpm-common.c:848 #: ../plugins/power/gpm-common.c:565 ../plugins/power/gpm-common.c:757 msgid "AC adapter" msgid_plural "AC adapters" single form is in: ../plugins/power/gpm-common.c:757 #: ../plugins/power/gpm-common.c:569 ../plugins/power/gpm-common.c:793 msgid "Laptop battery" msgid_plural "Laptop batteries" single form is in: ../plugins/power/gpm-common.c:793 #: ../plugins/power/gpm-common.c:573 ../plugins/power/gpm-common.c:817 msgid "UPS" msgid_plural "UPSs" single form is in: ../plugins/power/gpm-common.c:817 #: ../plugins/power/gpm-common.c:577 ../plugins/power/gpm-common.c:824 msgid "Monitor" msgid_plural "Monitors" single form is in: ../plugins/power/gpm-common.c:824 #: ../plugins/power/gpm-common.c:589 ../plugins/power/gpm-common.c:896 msgid "PDA" msgid_plural "PDAs" single form is in: ../plugins/power/gpm-common.c:896 #: ../plugins/power/gpm-common.c:593 ../plugins/power/gpm-common.c:920 msgid "Cell phone" msgid_plural "Cell phones" single form is in: ../plugins/power/gpm-common.c:920 #: ../plugins/power/gpm-common.c:598 ../plugins/power/gpm-common.c:945 msgid "Media player" msgid_plural "Media players" single form is in: ../plugins/power/gpm-common.c:945 #: ../plugins/power/gpm-common.c:602 ../plugins/power/gpm-common.c:969 msgid "Tablet" msgid_plural "Tablets" single form is in: ../plugins/power/gpm-common.c:969 #: ../plugins/power/gpm-common.c:606 ../plugins/power/gpm-common.c:993 msgid "Computer" msgid_plural "Computers" single form is in: ../plugins/power/gpm-common.c:993
(In reply to comment #0) > Translation of single form string leads to wrong translation because of > incorrect usage of plural-form formula. How exactly is it incorrectly used? Any specific example? > The msgstr[0] is used instead of msgstr[1] For which exact case? Providing one example and explaining what exactly happens would be welcome...
Created attachment 216372 [details] [review] Power: Avoid duplicate translations It confuses our tools if we have the same msgid both in gettext() and ngettext(), so be a bit more clever here. Bonus: save 40 lines of code.
Review of attachment 216372 [details] [review]: Too right. It's "power" not "Power" though in the commit subject.
The following fix has been pushed: ceeaf91 power: Avoid duplicate translations
Created attachment 216399 [details] [review] power: Avoid duplicate translations It confuses our tools if we have the same msgid both in gettext() and ngettext(), so be a bit more clever here. Bonus: save 40 lines of code.