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.

  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 :)

Ot@s
Backer | 476
+
0
-

Ad 1.
Kapitola volitelné sekvence v routování.

Ad 2.
Kapitola transformace a překlady. Ve fóru je taky dost zmínek.

h4kuna
Backer | 740
+
0
-

Jen taková myšlenka: když už je url /en/title a /cs/predmet tak se ptám má ten příznak jazyka smysl? Už jen /title říká že to je anglicky. Je to k zamyšlení nevím jak z hlediska seo. Ale já se snažím jazykové příznaky vyhazovat kromě homepage toho jazyka. tam mi zůstáva /en.

Teyras
Člen | 81
+
0
-

h4kuna napsal(a):

Jen taková myšlenka: když už je url /en/title a /cs/predmet tak se ptám má ten příznak jazyka smysl? Už jen /title říká že to je anglicky. Je to k zamyšlení nevím jak z hlediska seo. Ale já se snažím jazykové příznaky vyhazovat kromě homepage toho jazyka. tam mi zůstáva /en.

Okrajový případ – slovo, které se píše anglicky i česky stejně, ale má jiný význam. Když vypustíš z URL jazyk, hodně věcí si tím ztížíš, zvlášť když začneš používat třeba slug ;)

Jakub Kontra
Člen | 30
+
0
-

Díky lidi, jsem teď mimo republiku a mám stíženej přístup k netu něco jsem našel – https://pla.nette.org/…ru-ve-filtru ..
Každopádně díky :)

raketoplan2005
Člen | 147
+
0
-

JimmyBlack: To řešení na pla.nette.org si právě myslím že není pro můj/náš problém, který linkuješ ve svém úvodním postu. Používám totiž gettextový translator a nevím jak bych měl získat z přeloženého řetězce ten originální.

Editoval raketoplan2005 (24. 8. 2012 1:21)