viac jazykov

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

Podla toho, co som sa docital na fore, by sa zmena jazyka aplikacie mala menit tymto sposobom:
odkaz v sablone

{plink this array('lang' => 'en')}

co vygeneruje neplatny odkaz. musel som pouzit toto:

{$presenter->link('this', array('lang' => 'en'))}

co uz vygeneruje spravny odkaz s paremetrom lang v url.
po kliknuti na tento odkaz by som cakal, ze jazyk aplikacie sa zmeni na en.
v base presenteri mam

<?php
abstract class BasePresenter extends Presenter
{
/** @persitent */
  public static $lang;
}
?>

co ako som sa docital by malo zabezpecit prenos jazykoveho parametra do aplikacie aj do generovanych odkazov, ale bohuzial sa tak nedeje. vsetky vygenerovane odkazy su bez parametra lang.

co robim zle?

pouzivam nette 0.92 pre php5.2

kravčo
Člen | 721
+
0
-

Tieto veci sú popísané v dokumentácii.

správne treba odkaz v šablóne zapísať:

{plink this 'lang' => 'en'}

Bez obaľovania parametrov poľom!

správne značenie perzistentného parametra je:

abstract class BasePresenter extends Presenter
{
    /** @persistent */
    public $lang;
}

Kľúčové slovo je "@persistent" a perzistentný parameter rozhodne nemá byť statický

Editoval kravčo (28. 9. 2009 16:56)

redhead
Člen | 1313
+
0
-

a ještě předhlédnutá chyba: je to @persistent ne @persitent (chybělo jedno písmenko s)

Editoval redhead (28. 9. 2009 14:39)

bazo
Člen | 620
+
0
-

dik, ten odkaz na zmenu jazyka sa generuje teraz spravne.

static som tam pridal lebo som skusal ci to nahodou nepojde a zabudol som to zmazat.

@redhead: kopiroval som to z fora vecer a to, ze mi tam chyba s som si fakt nevsimol za celu noc.

diky teraz to uz funguje!