Vicejazykova webova Stranka
- Piticu
- Člen | 93
Ahoj vsem. Snazim se udelat jeden vicejazykovy web (resp. cestina a rumunstina). Pridal jsem do do routovani jazyk :
$router[] = new Route('[<lang [a-z]{2}>/]<presenter>/<action>[/<id>]', 'Homepage:default');
Napriklad odkaz localhost/nette/quickstart/www/cs/ funguje akorad kdyz vypisu $basePath mi vypise pouze /nette/quickstart/www.
Jak se mam dostat k te zkratce jazyku z URL? Chci pak udelat select z databaze, kde lang = cs/ro (zalezi co bude v URL). Dekuji
Editoval Piticu (18. 6. 2016 11:38)
- Jan Mikeš
- Člen | 771
Vytvor si persistentni parametr v basepresenteru a s tim nasledne muzes pracovat v celem svem projektu:
abstract class BasePresenter extends Nette\Application\UI\Presenter
{
/** @persistent */
public $lang;
protected function startup()
{
parent::startup();
$this->lang; // promenna z url
}
}
Btw, pokud vis, ze chces pracovat pouze s temito 2 jazyky, muzes v routeru omezit hodnoty pouze na tyto 2:
$router[] = new Route('[<lang cs|ro>/]<presenter>/<action>[/<id>]', 'Homepage:default');
Pokud by jsi k tomu chtel jeste navic i vychozi hodnotu, pri neuvedeni lang nastavit na cs tak by to vypadalo takto:
$router[] = new Route('[<lang=cs cs|ro>/]<presenter>/<action>[/<id>]', 'Homepage:default');
Router nasledne nepovoli jine hodnoty nez en/ro v promenne lang.
Editoval Lexi (18. 6. 2016 11:44)
- Piticu
- Člen | 93
Lexi napsal(a):
Vytvor si persistentni parametr v basepresenteru a s tim nasledne muzes pracovat v celem svem projektu:
abstract class BasePresenter extends Nette\Application\UI\Presenter { /** @persistent */ public $lang; protected function startup() { parent::startup(); $this->lang; // promenna z url } }
Btw, pokud vis, ze chces pracovat pouze s temito 2 jazyky, muzes v routeru omezit hodnoty pouze na tyto 2:
$router[] = new Route('[<lang cs|ro>/]<presenter>/<action>[/<id>]', 'Homepage:default');
Pokud by jsi k tomu chtel jeste navic i vychozi hodnotu, pri neuvedeni lang nastavit na cs tak by to vypadalo takto:
$router[] = new Route('[<lang=cs cs|ro>/]<presenter>/<action>[/<id>]', 'Homepage:default');
Router nasledne nepovoli jine hodnoty nez en/ro v promenne lang.
Dekuji. Presne tohle jsem potreboval.
@Lexi Mam jeste dotaz. Nasel jsem ted tutorial na youtube kde se vytvari
vicejazycny web s Kdyby/Translation. Je lepsi pouzit Kdyby/Translation?
Editoval Piticu (18. 6. 2016 12:39)