Kdyby/Translation nefunguje v presenteru, v šabloně ano
- ojas273
- Člen | 5
Ahoj,
prosím o radu. Mám implementován Kdyby/Translation a nepřekládá mi fráze v presenteru ani formuláři. V šabloně ovšem po zavolání např. {_ ui.home} funguje.
V BasePresenteru mám injektovaný Translation
/** @persistent */
public $locale;
/** @var \Kdyby\Translation\Translator @inject */
public $translator;
Když si potom v některém z rozšířených presenterů zavolám
echo $this->translator->translate("Hello world");
Tak mi to vrátí tuto frázi a ne přeloženou.
Neon soubor vypadá následovně:
"Hello world" : Ahoj světe!
home: Úvod
Neřešil to už někdy někdo? Nevím si s tím už rady.
Díky moc!
- Barvoj
- Člen | 60
Proč v šabloně používáš jako klíč ui.home což je nějaká konstanta a v presenteru Hello world což je normální text?
S kdyby\translation nemám moc zkušeností, ale když jsem naposledy jako klíče používal běžný text, tak jsem přišel na to, že se soubor s překlady MUSÍ jmenovat messages.
Kdyby\translation totiž ten překladový klíč rozdělí podle teček a to první bere jako jméno souboru.. takže ui.home si vyloží jako soubor ui.cs.neon (pro češtinu) a v něm hledá klíč home
Hello world ale žádnou tečku neobsahuje, takže z toho nelze jméno souboru zjistit, tak se použije defaultní messages.cs.neon a tam se hledá klíč Hello world.
Předpokládám že tvůj soubor s překlady se jmenuje ui.<jazyk>.neon? Přejmenuj ho tedy na messages.<jazyk>.neon a mělo by to fungovat.
Editoval Barvoj (24. 8. 2016 11:01)