Routovanie s prekladmi presentera v závislosti od jazyka
- minimal
- Člen | 12
Ahojte,
rád by som sa opýtal ako by ste riešili nasledujúci problém.
Mám vytvorenú takúto routu:
$frontendRouter[] = new Route('[<locale=sk en|cs|sk>/]blog',
[
'presenter' => 'Blog',
'action' => 'default',
]);
Teda môžu existovať nasledujúce url:
www.localhost.sk/blog
www.localhost.sk/en/blog
www.localhost.sk/cs/blog
Potreboval by som tieto URL staticky preložiť v závislosti od jazyka
napríklad takto:
www.localhost.sk/blog
www.localhost.sk/en/articles
www.localhost.sk/cs/clanky
Našiel som sekciu v dokumentácii https://doc.nette.org/…tion/routing#… a však nepodarilo sa mi z toho nič funkčné vysmoliť.
Ďakujem veľmi pekne za každú pomoc.
- Polki
- Člen | 553
$sections = [
'cs' => 'clanky',
'sk' => 'blog',
'en' => 'articles',
];
$router->addRoute('[<locale=sk en|cs|sk>/]<section clanky|blog|articles>', [
'presenter' => 'Blog',
'action' => 'default',
null => [
Route::FILTER_IN => function (array $params) use ($sections) {
$params['section'] = $sections[$params['locale'] ?? 'sk'];
return $params;
},
Route::FILTER_OUT => function (array $params) use ($sections) {
$params['section'] = $sections[$params['locale'] ?? 'sk'];
return $params;
},
],
]);
Editoval Polki (24. 7. 2021 5:13)