Vicejazykova webova Stranka

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

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
+
0
-

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
+
0
-

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)