jazyk podle koncovky domeny
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- vosy
- Člen | 532
ahoj, pokousim se udelat rozpoznavani jazyku dle koncovky domeny
v routeru mam:
$frontRouter[] = new Route('//<subdomena>.czm_n232_v1.<lang=loc-cz loc-cz|loc-com|loc-de|loc-ru|loc-pl|loc-rum>/<presenter>/<action>/<id>',
array(
'presenter'=>'Homepage',
'action'=>'default',
'id'=>NULL,
'lang'=> array(
Route::FILTER_TABLE=>array(
'loc-cz'=>'cs',
'loc-com'=>'en',
'loc-de'=>'de',
'loc-pl'=>'pl',
'loc-ru'=>'ru',
'loc-rum'=>'rum',
)
)
)
);
coz se jazyk rozpozna dobre, ale kdyz chci vytvorit menu jazyku tak mi to zlobi.
v sablone mam:
{foreach $presenter->menuLangItemsArr as $k1=>$v1}
<a n:href="this, lang => $k1" title="{$title}" class="{$activeCss}"><span>{$v1['label']}</span></a>
{/foreach}
kdy menuLangItemsArr nabyva hodnot {cs,en,de,pl,ru,rum} vysledek je Invalid link: No route for Front:Homepage:default(lang=cs)
v config.neon mam pouze:
extensions:
translation: Kdyby\Translation\DI\TranslationExtension
Editoval vosy (19. 2. 2016 8:48)
- vosy
- Člen | 532
tak jsem to trochu poupravil:
{foreach $presenter->menuLangItemsArr as $k1=>$v1}
<a n:href="changeLocale!, $k1" title="{$title}" class="{$activeCss}"><span>{$v1['label']}</span></a>
{/foreach}
a
/* HANDLES */
public function handleChangeLocale($lang)
{
$this->translatorSession->setLocale($lang);
$this->redirect('this');
}
problem podobny
Invalid link: No route for Front:Homepage:default(lang=ru, do=changeLocale)
- vosy
- Člen | 532
Tak jsem zjistil ze me zlobi napsana routa
FUNGUJE:
$frontRouter[] = new Route('//www.czm_n232_v1.<locale loc-cz|loc-de|loc-com|loc-ru|loc-pl|loc-rum>/<presenter>/<action>/<id>',
array(
'locale' => 'en',
'presenter'=>'Homepage',
'action'=>'default',
'id'=>NULL,
'locale'=> array(
Route::FILTER_TABLE=>array(
'loc-cz'=>'cs',
'loc-com'=>'en',
'loc-de'=>'de',
'loc-pl'=>'pl',
'loc-ru'=>'ru',
'loc-rum'=>'rum',
)
)
)
);
NEFUNGUJE
$frontRouter[] = new Route('//<subdom>.czm_n232_v1.<locale loc-cz|loc-de|loc-com|loc-ru|loc-pl|loc-rum>/<presenter>/<action>/<id>',
array(
'subdom'=>'www',
'locale' => 'en',
'presenter'=>'Homepage',
'action'=>'default',
'id'=>NULL,
'locale'=> array(
Route::FILTER_TABLE=>array(
'loc-cz'=>'cs',
'loc-com'=>'en',
'loc-de'=>'de',
'loc-pl'=>'pl',
'loc-ru'=>'ru',
'loc-rum'=>'rum',
)
)
)
);
takze problem je v <subdom>. v route ale jak to napsat :) subdomena muze byt jakakoliv
chyba
Invalid link: No route for Front:Homepage:default(locale=loc-cz)
Editoval vosy (19. 2. 2016 10:45)