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
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 Suchánek
- Člen | 404
@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)