Jazykové verze /cs/predmet , /en/title

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

Zdravím,

mám pár dotazů ohledně tvorby jazykových verzí webu.

Potřeboval bych url ve tvaru /cs/o-firme/
/en/about-company

za předpokladu překladu pomocí toho překladače od vrtaka – pokud je to možné, velice se mi překladač líbí like++ ..

  1. Persistentní parametr
  • Jak docílit toho, aby mi ten parametr v url zůstal? /cs/ nebo /en/
  1. Překlad url adres

Jak tedy sestrojit filter in z níže odkazu?

$container->router[] = new Route('<lang>/<presenter>/<action>[/<id>]', array(
    'presenter' => array(
        Route::VALUE => 'Front:Homepage',
        Route::FILTER_OUT => function ($str) use ($container) {
            return $container->translator->translate($str);
        },
    ),
    'action' => 'default',
    'id' => NULL,
));

BasePresenter

	/** @persistent */
	public $lang = "cs"; // umožní změnu přes adresu

	public function startup()
	{
		parent::startup();
	}

	public function createTemplate($class = NULL)
	{
	    $template = parent::createTemplate($class);

	    // pokud není nastaven, použijeme defaultní z configu
	    if(!isset($this->lang)) {
	        $this->lang = $this->context->parameters["lang"];
	    }

	    $this->context->translator->setLang($this->lang); // nastavíme jazyk
	    $template->setTranslator($this->context->translator);

	    return $template;
	}

Díky moc za radu :)

Editoval JimmyBlack (19. 8. 2012 22:42)