Re: =?utf-8?Q?Mie=C5=A1anie_prekladov_jedn?= =?utf-8?B?b3Ruw6lobyBhIG1ub8W+bsOpaG8gxI3DrXNsYS4=?= (plural forms)



On Thu, Feb 09, 2012 at 03:58:44PM +0100, Marcel Telka wrote:
> On Thu, Feb 09, 2012 at 11:06:13AM +0100, Marian Cavojsky wrote:
> > On Wed, Feb 08, 2012 at 01:24:54PM +0100, Marian Cavojsky wrote:
> > > 
> > > Takže zostáva otázka, či:
> > > - je niekto schopný pretlačiť do gettext-u, aby sa tento kontext v tomto
> > >   prípade vytváral automaticky.
> > > - budeme tlačiť na vývojárov, aby tieto reťazce označovali kontextom
> > >   (Znamená to cielené vyhľadávanie a požadovanie opráv, vývajári nás
> > >   budú mať plné zuby, alebo nás začnú ignorovať s takýmito požiadavkami)
> > > - Zmeníme plural-forms, tak aby jednotné číslo vychádzalo na index 0,
> > >   ale to zas znamená preklontrolovať všetky preklady a poopravovať ich
> > >   podľa nového plural-forms. (Miešanie, že by sa taký plural-forms
> > >   používal len tam kde je to nutné by bolo ešte zložitejšie, lebo by sme
> > >   žili rozdvojený život)
> > 
> > Mal som debatu s koordinátorom a ten sa vyjadril, že bod 2 je pre neho
> > jediné možné riešenie.
> > 
> > Zatiaľ som zadal bug pre modul gnome-settings-daemon:
> > https://bugzilla.gnome.org/show_bug.cgi?id=669732
> > 
> > P.S.: I keď ja som stále presvedčený, že je to chyba v gettext-e.
> 
> Aj ja si myslím, že to je chyba v gettexte. Mohol by som sa pokúsiť to opraviť
> v Solarise, ale to nám asi veľmi nepomôže. Resp. mne by to pomohlo, ale
> ostatným asi nie. :-) Na druhej strane, keď to budem mať opravené, tak by sme
> mohli mať aspoň niečo konkrétne v rukách, čo by sme sa mohli pokúsiť pretlačiť
> do upstreamu.

Našiel som ešte jeden zaujímavý problém. Pokiaľ sa nájde preklad, tak druhý
parameter v ngettext() je úplne ignorovaný.

Príklad (potrebné súbory sú v prílohe):

$ make
one -> MANY
one, many -> ONE, MANY
one, more -> ONE, MANY         <-------------
one -> one
one, many -> one, many
one, more -> one, more
$

A dokonca ani xgettext nehlási žiaden problém. Chcelo by to aspoň warning.

$ xgettext test.c 
$

Testoval som to s gettextom 0.16.1. Novší teraz nemám poruke.
Ak máte niekto novší gettext, prosím skúste to.

Ďakujem.

-- 
+-------------------------------------------+
| Marcel Telka   e-mail:   marcel telka sk  |
|                homepage: http://telka.sk/ |
|                jabber:   marcel jabber sk |
+-------------------------------------------+
GCC=/usr/sfw/bin/gcc
MSGFMT=/usr/gnu/bin/msgfmt
LL=en_US

all:
	@$(GCC) -Wall -o test test.c
	@mkdir -p $(LL)/LC_MESSAGES
	@$(MSGFMT) -o $(LL)/LC_MESSAGES/test.mo test.po
	@LC_ALL=$(LL) ./test
	@LC_ALL=C ./test

clean:
	@rm -rf test $(LL)
#include <locale.h>
#include <libintl.h>
#include <stdio.h>

int
main(void)
{
	setlocale(LC_MESSAGES, "");
	bindtextdomain("test", ".");
	textdomain("test");

	printf("one -> %s\n", gettext("one"));

	printf("one, many -> %s, %s\n",
	    ngettext("one", "many", 1),
	    ngettext("one", "many", 2));

	printf("one, more -> %s, %s\n",
	    ngettext("one", "more", 1),
	    ngettext("one", "more", 2));

	return 0;
}
msgid ""
msgstr ""
"Project-Id-Version: test\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n==1);\n"

#, c-format
msgid "one"
msgid_plural "many"
msgstr[0] "MANY"
msgstr[1] "ONE"


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