Lokalizace názvu presenteru v URL
- jann
- Člen | 30
Zdravím, mám následující problém:
Mám několikajazyčný web (v ukázce jen 2 jazyky). Jazyk mám uložený
v perzistentní proměnné.
Vše mi funguje, ale chtěl bych docílit následujícího:
Zadám URL /cs/prihlasit/ a pak v url změním
cs za en a chci, aby se samo změnilo
prihlasit za in. Uvažoval jsem, že bych do
každé překladové tabulky nacpal všechny jazykové verze a tu správnou
nechal vždy na posledním místě. To by fungovalo, ale nevím jestli to je
nějak efektivní/správné řešení a jestli to třeba nebude nějak
pomalé…
<?php
Route::addStyle('lang', NULL);
Route::setStyleProperty('lang', Route::PATTERN, 'cs|en');
Route::addStyle('#cs-presenter', 'presenter');
Route::addStyle('#en-presenter', 'presenter');
Route::setStyleProperty('#en-presenter', Route::FILTER_TABLE, array(
'home' => 'Homepage',
'in' => 'Login',
));
Route::setStyleProperty('#cs-presenter', Route::FILTER_TABLE, array(
'uvod' => 'Homepage',
'prihlasit' => 'Login',
));
$router[] = new Route('cs/<presenter #cs-presenter>/<action>/<id>',array(
'lang' => 'cs',
'presenter' => 'Homepage',
'action' => 'default',
'id' => NULL,
));
$router[] = new Route('en/<presenter #en-presenter>/<action>/<id>',array(
'lang' => 'en',
'presenter' => 'Homepage',
'action' => 'default',
'id' => NULL,
));
?>
Taky jsem si všiml, že to co chci pro některé názvy funguje. Netuším proč. Například pokud použiji takovou překladovou tabulku:
<?php
Route::setStyleProperty('#en-presenter', Route::FILTER_TABLE, array(
'home' => 'Homepage',
'log-in' => 'Login',
));
?>
Tak po zadání /cs/log-in/ se to automaticky presmeruje na /cs/prihlasit/ ale naopak to nefunguje (/en/prihlasit/ na /en/log-in/)…