Kdyby/Translation nefunguje přepnutí jazyka
- petrhanz
- Člen | 6
Zdravím, dostal jsem za úkol připravit podporu více jazyků v existujícím projektu, který je napsaný v Nette 2.4. Podařilo se mi zprovoznit Kdyby/Translation až na jeden malý detail. Stále mám nastavený jazyk aj i když mám v url en. Routu mám upravenou podle dokumentace. Mám i soubory se slovníky a nehází to žádnou chybu jen se jazyk nepřepne. Poradí někdo prosím?
- adioverride
- Člen | 26
Ahoj,
asi by to chtělo trošku „vidět pod pokličku“. Když zašleš ukázku jak
to implementuješ tak ti je někdo schopen poradit.
A. :)
- petrhanz
- Člen | 6
Ukázka implementace
1. router
$router[] = new Route('[<locale=cs cs|en>/]<presenter>/<action>', "Homepage:default");
2. config.neon
extensions:
translation: Kdyby\Translation\DI\TranslationExtension
translation:
default: cs
fallback: [cs_CZ, cs]
Slovníky mám vytvořené. Jazyk chci přepnout v url adrese. V Tracy překlad vidím, ale i když dám parametr cs zůstává v Tracy en a bere se anglický slovník. Jak z toho prosím ven? Potřebuji aby se při parametru en vzal anglický slovník a při cs český. Čeština by měla být i výchozí.
Editoval petrhanz (9. 3. 2023 14:32)
- petrhanz
- Člen | 6
Pepino napsal(a):
@petrhanz https://github.com/…/en/index.md#… četls?
Díky za tip. Bohužel jsem šel přesně podle návodu ale slovník mi to nechce vzít jiný než anglický.
- petrhanz
- Člen | 6
Pepino napsal(a):
@petrhanz ukaž jak to máš v BasePresenteru nebo co používáš. Asi ti tam někde chybí
$this->translator->setLocale($this->locale);
Tak to bude v tom.
BasePresenter
abstract class BasePresenter extends Nette\Application\UI\Presenter
{
/** @persistent */
public $locale;
/** @var \Kdyby\Translation\Translator @inject */
public $translator;
public function __connstruct() {
$this->translator->setLocale($this->locale);
}
}
a HomepagePresenter
public function construct()
{
parent::construct();
}
Myslel jsem si že v BasePresenteru nastavím a ostatní presentery podědí. Ale očividně ne. Když to vložím do HomepagePresenter tak to funguje. Zatím to zkouším na prázdném projektu.