=?UTF-8?B?UmU6IE1pZcWhYW5pZSBwcmVrbGFkb3YgamVkbm90bsOpaG8gYSBtbm/Fvm7DqWhvIMSN?= =?UTF-8?B?w61zbGEuIChwbHVyYWwgZm9ybXMp?=



2012/1/31 Marian Cavojsky <cavo+gnomei18n cavo sk>:
> Zdravím vospolok.
>
> Všimol som si pri už dvoch moduloch (konkrétne evolution a
> gnome-settings-daemon) že sa miešajú preklady jednoduchých reťazcov a
> reťazcov s množným číslom. Neviem, či niekto vie, či to už generátory
> takto vytvárajú, alebo to takto párujú ručne. Neviem či to vysvetlujem
> zrozumiteľne, tak jeden príklad:
>
> modul gnome-settings-daemon:
> #. TRANSLATORS: system power cord
> #: ../plugins/power/gpm-common.c:565 ../plugins/power/gpm-common.c:757
> msgid "AC adapter"
> msgid_plural "AC adapters"
> msgstr[0] "Napájacie šnúry"
> msgstr[1] "Napájacia šnúra"
> msgstr[2] "Napájacie šnúry"
>
> S množným číslom:
> ../plugins/power/gpm-common.c:565
>                text = ngettext ("AC adapter", "AC adapters", number);
>
> Bez množného čísla:
> ../plugins/power/gpm-common.c:757
>                return _("AC adapter");
>
> Keďže máme vzorec postavený ako máme:
> "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
>
> Tak
> msgstr[0] je pre 0, 5 a viac prvkov
> msgstr[1] je pre jeden prvok
> msgstr[2] je pre 2 až 4 prvky
>
> Lenže pri takomto miešaní sa pri preklade bez množného čísla použije
> natvrdo msgstr[0], čo nie je korektný preklad.
>
> Otázka znie, či tlačiť na tvorcov po súborov, aby nemiešali tieto dva
> rôzne typy prekladov, prípadne aby sa korektne pri tom miešaní vyberal
> správny preklad podľa vzorca, alebo čo je teraz asi najjednoduchšie
> zmeníme vzorec pre výpočet msgstr.
>
> Keď sa to rozhodovalo v roku 2003 som bol za tento vzorec, ale nevedel
> som, že to môže robiť takéto problémy. Predpokladám, že vtedy neboli
> neboli, ale postupom vyvoja gettext vznikli, len sme ich hneď nazačiatku
> nezaregistrovali.
>
> Rád by som si prečítal vaše názor ako z toho vyklučkovať.

Ahoj,

o tomto probléme som nevedel.

Spomenul si dve možné riešenia:
1) zmeniť náš vzorec plural-forms na
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 2 : 1;\n"
2) presviedčať tvorcov aplikácií, aby nepoužívali zároveň ngettext
("XY", ...) a _("XY")

Myslím, že je ešte tretie riešenie, a to 3) nahlásiť bug do gettextu,
aby v prípade výskytu msgid_plural bolo povolené aj duplicitné msgid.
To je samozrejme beh na dlhšiu trať.

Momentálne považujem za najrozumnejšie v takto postihnutých moduloch
použiť alternatívny vzorec plural-forms (1), aspoň kým nebude niektoré
z riešení (2) či (3) finalizované alebo (1) dohodnuté ako riešenie.

Osobne si myslím, že snažiť sa o (2) nie je realistické.

S pozdravom
~~helix84


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]