Nefunguje translator u formulare

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
MelkorNemesis
Člen | 36
+
0
-

Ahoj, uz dva dny se trapim s prekladem aplikace.

Pouzivam NetteGettextExtractor a GetTextTranslator.

Sablony se mi uspesne prekladaji, ale problem mam u formularu.

class EshopForm extends AppForm {


    public function  __construct(IComponentContainer $parent = NULL, $name = NULL) {
        parent::__construct($parent, $name);

        $this->setTranslator(new GettextTranslator('../app/locale/translation.mo', 'cs'));
    }
}

Nastavim si translator, vytvorim soubor *.po, udelam z nej *.mo. A php mi porad hlasi u kazdeho labelu

Parse error: syntax error, unexpected ';' in /Users/michalsevcik/Sites/igi/libs/Eshop/GettextTranslator-v0.3.php(59) : eval()'d code on line 1
Notice: Undefined variable: plural in /Users/michalsevcik/Sites/igi/libs/Eshop/GettextTranslator-v0.3.php on line 60
Notice: Undefined index: in /Users/michalsevcik/Sites/igi/libs/Eshop/GettextTranslator-v0.3.php on line 208
Notice: Undefined index: in /Users/michalsevcik/Sites/igi/libs/Eshop/GettextTranslator-v0.3.php on line 217

pritom co sem koukal, tak v *.mo souboru ty indexy pro formular jsou.

Muze mi nekdo poradit co s tim? Prosel sem vsechny mozne diskuze, ale nikde o tom nic neni.

Diky a jsem s pozdravem, Michal Sevcik

despiq
Člen | 320
+
0
-

NetteGettextExtractor neexportuje pluraly, alespon ne ceske tzn trojite, vlastne myslim ze ani dvojite

v nastaveni pluralu je pak taky chyba, chybej tam zavorky ma to bejt
nplurals=3; plural=(n==1) ? 0 : ((n>=2 && n<=4) ? 1 : 2);

pokud te ale pluraly netankujou tak prestan pouzivat %d a mas to

MelkorNemesis
Člen | 36
+
0
-

Plural tam je jeden – navic spatne pouzity. Ale o to nejde, ten to tusim nejak zchramstlo.

Ale kde by se u formularovych prvku vzaly pluraly?

Ten formular vypada takhle

$this->addText('name', 'Název skupiny')
            ->addRule(Form::FILLED, 'Název skupiny nesmí být prázdný!')
        ;

        $this->addCheckbox('visibility', ' Viditelnost');

        $this->addText('priority', 'Priorita');

      	$this->addSubmit('send', 'Upravit');

on si to nejak sam neprelozi, kdyz udelam $this->addText(‚name‘, $this->translator->translate(‚Název skupiny‘)), tak to jede. Ale to je uplne zbytecne a funkce setTranslator() ztraci vyznam, ne? Doufam, ze to ma prekladat automaticky.

despiq
Člen | 320
+
0
-

ten parse error co tam mas je eval nastaveni pluralu v mo souboru

MelkorNemesis
Člen | 36
+
0
-

No ja vidim, ze to je chyba pluralu, ale tu chybu to hlasi pouze u formularu. Dyt ono si to z tech formularu samo vytahne texty na preklad a pak se je to snazi samo aplikovat, tak proc to na me rve? Ja nikde zadny plural nenastavil.

Jeste prilozim obrazek s celou situaci, kdyby nekoho napadlo, proc to tak skarede krici.

*.mo je samozrejme vygenerovany znovu bez pluralu (byl jen jeden).
"":http://skitch.com/…anslation.po