Jak správně na multijazyčnost?

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

Zdravím,

jak správně multijazyčné aplikace? Zkoušel jsem něco s routy, hodit si nepovinný lang na začátek routy + překladovou tabulku, ale mám problém s plink. Plink mi nesprávně utváří url (při en stejně vytvoří podle cs). Jak tedy správně na to?

Aurielle
Člen | 1281
+
0
-

Právě kvůli tomuhle jsem si napsal vlastní překladovou tabulku a musel ohnout Route, aby to vůbec chodilo… :D

JakubJarabica
Gold Partner | 184
+
0
-

Keď som v routách používal <lang> a mal ho ako persistentný parameter v BasePresenteri, všetko fungovalo skvele. Bolo to na staršej verzii Nette(0.9.5 myslím), no nevšimol som si, že by sa odvtedy niečo v tomto smere menilo.

Ani
Člen | 226
+
0
-

Lang musí být jako pesistent v presenteru. Když jsem psal, že by bylo fajn ovlivnit to na úrovni routy, tak tam někdo psal jaká je to blbost…

arron
Člen | 464
+
0
-

Ani napsal(a):

Lang musí být jako pesistent v presenteru. Když jsem psal, že by bylo fajn ovlivnit to na úrovni routy, tak tam někdo psal jaká je to blbost…

A porad si to myslim :-) Uz jenom proto, ze routa se ma proste starat o routovani a nejake peristentni parametry ji uz z principu maji byt ukradene. Navic peristentni parametr se musi nekam ukladat a fakt si nedovedu predstavit zpusob, jak budu rikat route, ze ten parametr ma ulozit do BasePresenteru (nebo kamkoliv jinam). Mno, ale je to samozrejme jenom nazor :-)

jtousek
Člen | 951
+
0
-

@arron: Výborně, krásně jsi popsal jak se to dělat nemá a i jsi to dobře zdůvodnil. Mohl by ses pls také podělit o to, jak se to dělat má? :-P

arron
Člen | 464
+
0
-

No jestli mas na mysli tento konkretni problem, tak reseni je vyse, ze jo :-)

Jestli mas na mysli peristentni parametry obecne, tak jejich implementace mi prijde zcela v poradku…

(ale jo, priznavam se, predchozi prispevek byl opravdu lehce OT :-) )

Editoval arron (8. 11. 2010 20:29)

jtousek
Člen | 951
+
0
-

@arron:

Perzistentní parametry jsem nikdy nepoužil, protože jsem nepochopil úplně přesně, jak fungují. Spíš než dokumentace mi v tomhle chybí příklad jejich použití.

Tím výše máš na mysli to, co napsal JAM3SoN?

arron
Člen | 464
+
0
-

No, mel jsem spis na mysli kombinaci vsech tech prispevku, ale v zasade ano:-)

Prijde mi, ze je to docela dobre popsane v dokumentaci

Funguje to v zasade tak, ze promena (rozumnej property tridy) presenteru oznacena jako @persistent se automaticky predava v url (pokud ma jinou hodnotu nez je definovana jako vychozi). Cili na nej nemusis myslet pri psani odkazu v template. To je v zasade vsechno (snad jsem postihnul tu zakladni myslenku :-) ).

redhead
Člen | 1313
+
0
-

Doplním: přenáší se (zachovává se v url) napříč presenterem (včetně všech jeho views) a i presentery dědící od nějakého presenteru, kde je ona @persistent proměnná deklarovaná.

jtousek
Člen | 951
+
0
-

Díky vám oběma za vysvětlení. :) Ještě se zeptám na pár dotazů:

Perzistentní parametr tedy musím definovat v šabloně pouze když odkazuji z jiného presenteru anebo když chci změnit jeho hodnotu, je to tak? Kdy se ten perzistentní parametr ztratí? Ztratí se např. když zmáčknu F5?

norbe
Backer | 405
+
0
-

Perzistentní parametr se ztratí v případě, že přejdeš na presenter, který ho nemá definovaný, jelikož se přenáší v URL, F5 ho rozhodně neodstraní… Uvádět se musí, jak říkáš, když chceš změnit jeho hodnotu (při odkazování z jiného presenteru ji uvádět nemusíš, pokud nechceš použít jinou nežvýchozí hodnotu).

arron
Člen | 464
+
0
-

@redhead: jo, to jsem tam taky mohl dopsat, dik :-)

Kdyz se odkazujes z jineho presenteru, tak bud ho uvedes explicitne u odkazu, pokud chces, aby mel nejakou Tebou definovanou hodnotu, anebo bude mit vychozi hodnotu. Ten persistentni parametr se neztrati. Pokud bude mit jinou hodnotu, nez je vychozi, tak se bude (v ramci presenteru, ve kterem je definovany, a od neho zdedenych) prenaset automaticky v url (takze F5 ho nerozhodi :-) ). Pokud mu priradis vychozi hodnotu, tak ho v url neuvidis, ale samozrejme v tom presenteru ho mit budes :-)

Edit: A byl jsem pomalej ;-)

Editoval arron (8. 11. 2010 21:54)

redhead
Člen | 1313
+
0
-

Navíc jmenuje se to právě „persistent“ proto, že přetrvává mezi requesty (jednoho presenteru nebo děděných od stejného presenteru) :))