Kompletní lokalizace aplikace
- SvvimX
- Člen | 65
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.
- SvvimX
- Člen | 65
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
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
GettextExtractor
zvládne i flashMessage. Jen je potřeba pro to přidat nastavení:
php gettext-extractor.php -kphp:flashMessage:1 ...
.
- SvvimX
- Člen | 65
@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ě.