Existuje nástroj pro kompletní překlady Nette aplikací?
- Patrik Votoček
- Člen | 2221
Odkládal jsem to co jen to šlo ale už to moc nejde co nevydět to budu muset řešit. Jak řešíte automatické získávání textů které je potřeba přeložit? Ano vím že tu je https://forum.nette.org/…i-lokalizace ale ten asi neřeší překlady pro Nette\Form a DataGrid od romana. A tak se ptám existuje kompletní řešení překladů v nette? Nebo jak to kdo z vás řeší?
- Jakub Šulák
- Člen | 222
Většina lidí to řeší ZendTranslatorem, který upraví tak aby implementovat rozhraní ITranslatator (pouze metoda tranlate()).
- Patrik Votoček
- Člen | 2221
Asi jsme se nepochopily. To jak předat soubor s peřeklady pro nette aplikaci vím ale mě jde o to jak získat řetězce které je potřeba přeložit. (RAW data pro překlad). Kdyby to pořád někdo nechápal jak to myslím tak uvedu příklad gettextu. Mám ve zdrojaku:
...
$form->addText('name', "Name: ")->addRule(Form::FILLED, "Name must be filled");
$form->setTranslator($translator);
...
A já potřebuji automatizovaně získat text „Name must be filled“.
Abych ho mohl přidat do *.po
souboru. Jak jsem psal v prvním
příspěvku tak tohle
umí získat řetězce (RAW data) z _()
funkcí a
{_''}
curly makra. Ale asi to neumí získat z formu a datagridu.
A o to mě de. Jak získávat řetězce pro které potřebuji vytvořit
překlad. Snad už je to lépe pochopitelné.
- Patrik Votoček
- Člen | 2221
To by šlo ale je tu jeden problém musel bych testovat všechny možné stavy aplikace. A pak je tu pár řetězců které i tak nedostanu (chybové hlášky) jelikož je aplikace napsána tak že se ty chyby snaží eliminovat.
- jasir
- Člen | 746
... $form->addText('name', "Name: ")->addRule(Form::FILLED, "Name must be filled"); $form->setTranslator($translator); ...
A já potřebuji automatizovaně získat text „Name must be filled“. Abych ho mohl přidat do
*.po
souboru. Jak jsem psal v prvním příspěvku tak tohle umí získat řetězce (RAW data) z_()
funkcí a{_''}
curly makra. Ale asi to neumí získat z formu a datagridu. A o to mě de. Jak získávat řetězce pro které potřebuji vytvořit překlad. Snad už je to lépe pochopitelné.
Nějak nechápu, tohle je špatně?
... $form->addText('name', "Name: ")->addRule(Form::FILLED, _("Name must be filled")); $form->setTranslator($translator); ...
Takhle si to poedit vyzobne a hotovo, ne?
Editoval jasir (23. 6. 2009 18:34)
- Patrik Votoček
- Člen | 2221
R2D2 napsal(a):
by sis musel pořádně psát testy, které by prošly všechny stavy :)
Testy píšu ale na UI ne. Dělá tu vůbec někdo? Že by psal testy na UI? Já testuju jenom modely případně konvertory/exportery/importery atd. Ale testy na UI vážně nemám…
jasir napsal(a):
Nějak nechápu, tohle je špatně?
... $form->addText('name', "Name: ")->addRule(Form::FILLED, _("Name must be filled")); $form->setTranslator($translator); ...
Takhle si to poedit vyzobne a hotovo, ne?
Kdybych to řešíl takto tak je pak
$form->setTranslator($translator);
. A to mě nepříde
moc čisté.
- jasir
- Člen | 746
jasir napsal(a):
Nějak nechápu, tohle je špatně?
... $form->addText('name', "Name: ")->addRule(Form::FILLED, _("Name must be filled")); $form->setTranslator($translator); ...
Takhle si to poedit vyzobne a hotovo, ne?
Kdybych to řešíl takto tak je pak
$form->setTranslator($translator);
. A to mě nepříde moc čisté.
Fakt tomu nerozumím, asi mi něco uniká… Co je špatného na tom nastavit
pro aplikaci jeden translator a ten všude používat? A k překladu jen:
_("...")
a {_..}
?
Editoval jasir (23. 6. 2009 19:29)
- romansklenar
- Člen | 655
Myslím vrtáku, že pokud to chceš mít automatizované, tak se
u formulářů nevyhneš tomu buď si napsat nějaký vlastní parser nebo
používat _("...")
jak radí jasir.
Rozumím, že se ti
$form->addText('name', _("Name: "))->addRule(Form::FILLED, _("Name must be filled"));
nelíbí, když se formuláři dá nastavit přímo translator, ale bohužel…
řek bych, že je to určitá daň za lenost, když už to chceš mít
automatizované :)
- timbulko
- Člen | 85
Napadá ma spôsob, že by si si spravil nejaký script ktorý ti z mysql vyselektuje všetky potrebné hodnoty a uloží do nejakého súboru v tvare, ktorý poedit zoberie. Alebo ukladať preklady priamo do mysql s prefixom daného jazyka pri názve tabuliek alebo riadkov (cs_text, en_text, cs_title, en_title, …).
- ic
- Člen | 430
Napsal bych to sem: https://forum.nette.org/…i-lokalizace ale tohle vlákno muselo být uzavřeno z důvodu zachování kontinuity vesmítu, ale tady se ostatně taky mluví o poedit-u…
Totož narazil jsem na to, že mi nechce najít v šabloně řetězec který
obsahuje slovo misinterpreted
nebo i řetězec tvořený jen
tímto slovem… prostě jako by tam neexistoval.
Mohl by to někdo prosím také jen pro zajímavost zkusit?
Zajímalo by mě jestli má s tímto slovem Poedit nějaký problém.