Nastavenie jazykove mutacie v aplikacii

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

Zdravim,

potrebujem poradit ako ne lokalizacie/preklady ?
spravil som si vlastny model Translator a viem si nahradzat texty v template atd, ale ako si viem zmenit jazykovu mutaciu v celej aplikacii ?

dakujem

redman
Člen | 7
+
0
-

Ved to vsetko mam nastavene :)

ale nejde mi preroutovat na iny jazyk, resp vsetko mam nastavene ale neprepisuje mi linky na /sk cs/

rout mam:
`$container->router[] = new Route(‚<lang (sk|en)>/<presenter>/<action>/<id>[/<seo>]‘, array(
‚presenter‘ ⇒ ‚Homepage‘,
‚action‘ ⇒ ‚default‘,
‚id‘ ⇒ NULL,
‚lang‘⇒ ‚sk‘
));`

linky:
`<a n:href=„User:password“>Zmena hesla</a> `

v base presentery mam nastavene public $lang;
do odkazov mi stale pridava len sk/ aj ked si kliknem na projekt/en tak linky mam stale projekt/sk

dakujem

vvoody
Člen | 910
+
0
-

aj persistent?

/** @persistent */
public $lang = "sk";
redman
Člen | 7
+
0
-

uz ano, to som zabudol dakujem :)

ale este sa chcem spytat ako prepasujem lang premenu do translate funckie mojej ?

vytvoril som si v models/MyTranslator
ktory mi vracia preklady, ale ako zistim aky je aktualny jazyk v tomto modely ?

vvoody
Člen | 910
+
0
-

redman napsal(a):

..ako zistim aky je aktualny jazyk v tomto modely ?

lang je normalny parameter requestu, takze v presenteri:

$this->getParam('lang');

Editoval vvoody (27. 6. 2012 18:02)

redman
Člen | 7
+
0
-

hmm ani tak mi to nejde nakolko
class MyTranslator implements Nette\Localization\ITranslator

mam tuto classu v models …

viete ako na to ?
este ma napadaju session

Jan Endel
Člen | 1016
+
0
-

musíš to tomu modelu říct, jaký jazyk má použít, a chudák si na params nešáhne, třebas přes setter:

public function setLanguage($language) {
	$this->language = $language;
}
redman
Člen | 7
+
0
-

No ok, ale tomu setteru ako predam parameter language ?? :)
problem mam proste dostat do models/MyTranslator.php premenu aktualneho jazyka.
dakujem

Jan Endel
Člen | 1016
+
0
-

ve startupu basePresenteru:

protected function startup() {
	parent::startup();
	$this->context->myTranslator->setLanguage($this->getParam('lang'));
}
redman
Člen | 7
+
0
-

Dakujem velmi pekne,
vyriesil som to cez __construct, neviem ci to je najlepsie riesenie ale funguje to.