Latte, noescape bez pisania parametru

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

Ahoj, chcem dosiahnuť jednoduchý preklad webu (Kdyby/Translation) tym že pri každý text z translatoru vygenerujem tlačidlo ktoré by otvorilo popup kde by sa konkrétny text prepísal.

cez presenter to ide a normalne to genruje html:

echo $this->translator->translate('messages.homepage.hello');

ale v latte sa to escapuje:

{_messages.homepage.hello}

treba pridať

{_messages.homepage.hello |noescape}

nikde som nenašiel ako to vypnúť globalne pre všetky lattečka bez toho aby tam bolo nutne písať parameter noescape

nejaké nápady ako to riešiť ?

Jan Mikeš
Člen | 771
+
+1
-

Řešil jsem asi podobnou situaci jako popisuješ – pro běžného uživatele se zobrazí pouze přeložený text, pro přihlášeného administrátora se za přeloženým textem zobrazuje button s linkem na editaci textu (je již jedno jestli to je popup nebo o co jde).

Vyřešil jsem to tak, že mám více implementací translatoru, běžný uživatel dostává „obyčejný“ translator, který vrací pouze string, a „EditorTranslator“ místo stringu vrací instanci Nette\Utils\Html, kterou latte rovnou vykreslí a nepotřebuje escapovat každý překlad.

S trochou fantazie, by to mohlo fungovat i u tebe.

Editoval Lexi (15. 9. 2016 0:00)

CZechBoY
Člen | 3608
+
0
-

Máš v překladu HTML? Nešlo by do instance Html předat text z překladače?

edit: Jo ty chceš asi přidat nějakej svůj html kod za překlad…
Co takhle upravit filtr translate a appendovat nějaký Html nebo třeba vykreslit form?

Editoval CZechBoY (15. 9. 2016 0:18)

leaff
Člen | 10
+
0
-

super, funguje

máš ešte nejaké nápady ako to riešiť pri formulároch a odkazoch ?

inak ďakujem za tak rýchlu reakciu :)