contributte/translation jak vypsat aktuálně zvolený jazyk?
- motorcb
- Člen | 552
Zdravím. Používám contributte/translation pro překlady v šablonách, vše super, díky!
Nyní bych potřeboval v action vědět, jaký má uživatel jazyk a pro každý jazyk trochu modyfikovat zobrazovaná data. Jde to?
Do presenteru jsem si injectnul ITranslator, ale u něj nevidím žádný atribut, který by mi dal aktuálně zvolený jazyk :-(
/** @var Nette\Localization\ITranslator @inject */
public $translator;
Jde z $translator zjistit aktuálně zvolený jazyk? Nebo jak na to
v presenteru?
Díky
- Tommy7777
- Člen | 13
Pre zobrazenie dát je potrebné router nastavit:
Príklad:
$router->addRoute('[<locale= cs|en>/]<presenter>/<action>[/<id>]', "Homepage:default");
$router->addRoute('/<locale= cs|en>/<urlseo>', 'Article:default');
A prepínanie jazyka takto v latte:
<div id="lang">
<a n:href="Homepage:default locale=>cs"><img src=...></a>
<a n:href="Homepage:default locale=>en"><img src=...></a>
</div>
A vypisanie jazyka by som riesil tak ako vyssie pisali
$lang = $this->translator->getLocale();
//a nasledne
$this->template->lang = $lang;
Potom v danom latte k premenným pristupuješ tatko: {$lang} pr: <p> Jazyk, ktorý používam je {$lang} </p>
Alebo ked si chces kontrolne skontrolovať tak skus toto:
$lang = $this->translator->getLocale();
dump($lang);
die();
Na stránke ti to vypíše čo je v danej premennej, pre vlastnú kontrolu. V programovaní a v ďalšej práci na projektoch sa ti to bude určite hodiť
Editoval Tommy7777 (18. 12. 2021 10:21)