Lokalizace názvu presenteru v URL

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

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/)…