Začarovaný kruh překladů pravidel

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

Ahoj,

jelikož se teď snažím vytvořit nějaké komplexní řešení překladů formulářových pravidel, tak jsem narazil na situaci, která pravděpodobně nemá řešení. Budu rád když se nad tím zkusíte zamyslet a popřípadě mi poradíte jak by se to dalo řešit.

Příklad č.1

label:
	name: "Jméno"
alert:
	required: "%label nesmí být prázdný"
1. možnost
$this->addText('name','label.name')
	 ->setRequired('alert.required'); //vypíše label.name nesmí být prázdný

2.možnost
$label = $this->translator->translate('label.name');
$this->addText('name',$label)
	 ->setRequired('alert.required'); //tuto metodu momentálně používám a funguje, nicméně mám setnutý translator na celý formulář a jelikož je label už přeložený tak vzniká error v překladu (nenalezený překlad pro key: "Jméno")

Příklad č.2

label:
	name: "Jméno"
alert:
	required: "%element% nesmí být prázdný"
$nameLabel = 'label.name';
$this->addText('name',$nameLabel)
     ->setRequired($translator->translate('alert.required',['element'=>$translator->translate($nameLabel)])) //také funguje, ale zase nemůže nalézt langKey: "Jméno nesmí být prázdný"

Takže jsem vlastně zjistil, že pokaždé vznikne nějaký error v hledání překladů, jelikož je nastavený i translator pro celý form..

Jak řešíte překlady pravidel vy ? Díky za tipy.

Editoval kleinpetr (13. 11. 2015 0:23)

CZechBoY
Člen | 3608
+
0
-

Normálně dělej formulář jakobys neměl překladač. Potom si tam překladač nastav a přelož texty.
Mrkni taky co se ti posílá na překlad do překladačský funkce.

btw. máme stejnou tečkovou notaci na projektu :D

kleinpetr
Člen | 480
+
0
-

Teď jsem tě moc nepochopil.. Proč mám dělat form jakoby bez překladače ? Takže mám jakoby psát pro každý prvek alert zvlášť např: alert.email: „Email je ve špatném formátu“.. To mě samozřejmě napadlo jako první, ale chtěl jsem to takové více obecné, ale zkrátka jsem nepřišel na to jak dopřeložit i ten label aby nevznikal nikde error.