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
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++ ..
- Persistentní parametr
- Jak docílit toho, aby mi ten parametr v url zůstal? /cs/ nebo /en/
- 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)