Kdyby/Translation a multijazycne routovani

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

Ahoj,

potreboval bych nasmerovat a idealne i poradit, jak poresit mujtijazycne routovani s pouzitim Kdyby/Translation.

Rozhodne nechci jazyk v URL!

Potrebuji neco co poresi nasledujici priklad nejak chytreji a s nejakou tou logikou:

$router[] = new Route('account/login', 'Login:default');
$router[] = new Route('ucet/prihlaseni', 'Login:default');

Pokud uzivatel s lokalnim nastavenim na anglictinu zavola www.example.com/ucet/prihlaseni, potrebuju, aby se to samo preroutovalo na www.example.com/account/login

Diky za cokoliv,

@flexroad

Jan Endel
Člen | 1016
+
0
-

To není to co se @flexroad ptal.

nytech
Člen | 10
+
0
-

Jak to ze neni? Routovani je tam pekne popsane… Podle mne by stacilo pouzit FILTER::IN/OUT a vytvorit funkci, ktera by se o to postarala…

Jan Endel
Člen | 1016
+
0
-

Tohle filtry celé neuděláš, na tohle je třeba napsat vlastní router a routu.

Jan Suchánek
Člen | 404
+
0
-

@Jan Endel a to nejde pomocí FILTER_IN a FILTER_OUT?

// $router[] = new Route('<module [acount|uzivatel]>/<presenter [login|prihlaseni]', .. nebo cokoliv jiného
// $router[] = new Route('<module>/<presenter>/<action>', .. nebo cokoliv jiného
$router[] = new Route('account/login', [
	NULL => [
		Route::FILTER_IN => function($params) // use($service)
		{
			… // zjistit presenter a action podle url
		},
		Route::FILTER_OUT => function($params) // use($service)
		{
				… // pomocí služby zjistit lang a vrátit správné url podle parametrů
		},
	],
	'presenter' => 'Login',
	'action' => 'default',
]);

nebo

$router[] = new Route('<module>/<presenter>/<action>', [
	NULL => [
		Route::FILTER_IN => $service->filterIn,
		Route::FILTER_OUT => $service->filterOut,
	],
	'presenter' => 'Login',
	'action' => 'default',
]);

a service pro router předávat v configu továrničce na routy. Service by již pořešilo co má uživatel za lang nastavené.

Editoval jenicek (13. 8. 2014 15:52)