Kompletní lokalizace aplikace

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

Ahoj,

je toho sice na fóru dost, ale všechny příspěvky jsou poměrně staré. Proto se ptám, co mám použít na komplet překlad aplikace?

Zkusil jsem NetteTranslator https://forum.nette.org/…lation-panel
Problém je, že nějak sám nenajde fráze pro překlad, až když se na webu „objeví“. Takže bych nejdřív musel nasimulovat všechny flash Message abych je mohl přeložit?

Pak jsem to zkoušel zkombinovat s GettextExtractor v2 https://forum.nette.org/…extractor-v2
Ten sice dokáže z kódu najít překlady, ale také není dokonalý. setAtribute placeHolder u formulářů nenajde.
flashMessage to také nenajde, musím předávat flassMessage jako flashMessage ( __ ( text ) ) což by mi asi nevadilo ale pak zase nemůžu využít automatického překladu flashMessage pomocí Nette translatoru.

Co tedy na překlady, co je nejlepší? Z Wordpresu jsem zvyklý využívat PoEdit a .po .mo soubory, přijde mi to dobré. Sháním tedy něco podobného.

Melmen
Člen | 132
+
0
-

v Kuchařce je návod na zprovoznění Translatoru ;)

SvvimX
Člen | 65
+
0
-

Viděl jsem, použil jsem. To ale neřeší můj problém: Nette Translator nevytáhne soubor .po se všemi frázemi. FlashMessage to nevytáhne, dokud je nenasimuluji.

GetTextExtractor v2 flash Message také nevytáhne.

Co na to používáte vy a jak? Přece nejsem první, kdo potřebuje více jazyčný web.

Tomáš Votruba
Moderator | 1114
+
0
-

Přímé řešení mne nenapadá, nicméně by ti mohlo pomoci – je to otázka max. 10 minut u třeba 20 presenterů – hodit všechny fm do presenteru, kde si je už Translator vytáhne.

Také jsem zkoušel najít nějaký gettext, který by prošel presentery, ale vzhledem k časové neefektivitě jsem rozhodl pro zmíněné řešení.

voda
Člen | 561
+
0
-

GettextExtractor zvládne i flashMessage. Jen je potřeba pro to přidat nastavení: php gettext-extractor.php -kphp:flashMessage:1 ....

SvvimX
Člen | 65
+
0
-

@voda nějak jsem se s ním pral, tak na něj ještě kouknu
@Schmutzka NetteTranslator mi hází chybu u registračního formuláře vsprintf to few arguments, četl jsem, že je to tím, když fráze obsahují slova s % jako třeba %label a podobně. Nebo Login musí mít %d znaků.
Je někde nějaký fix?

Ještě se ale zeptám na toto:

Jsem ochoten ve skriptech psát u všech frází, které chci přeložit __ ( text ). Stejně mám problém s flashMessagemi, které se skládají například jako sprintf ( text, params ); nette translator (pokud do base presenteru přidám překldáání flashMessage podle kuchařky) pak najde až složenou zprávu, což je špatně.

Nebylo by tedy nejlepší, abych v presenterech a klidně i ve formulářích používal __ ( text ) v late pak makro, pomocí gettextextractoru si vytáhnul všechny tyto fráze ze skriptů, předpokládám, že by to už neměl být takový problém získat vše co je __ ( ) plus makra šablon, přeložit pomocí poeditu a pak využít třeba i netteTranslator?
Takového něco neexistuje? To by mohlo řešit konečně problém celé lokalizace. Sice to v presenterech znamená psát __ ( ) ale to zas není taková překážka. Ve wordpressu se to takto dělá běžně.