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
+
0
-

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
+
0
-

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
+
0
-

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)