Jak rozjet Kdyby/Translation
- Petr Hanák
- Člen | 10
Ahoj,
potřeboval bych pomoc s Kdyby/Translation – postupoval jsem podle návodu,
ale jediné co zobrazuje je „homepage.hello“. Abych eliminoval chyby, tak to
testuji v čistém nette sandboxu, smazání cache nepomohlo.
- Filip Procházka
- Moderator | 4668
Cos to tam v to vendoru vymyslel za obskurditu? Proč prostě nepoužiješ composer?
- David Matějka
- Moderator | 6445
@Tirus91: composer rozhodne neinstaluje zavislosti do vendor/others :)
- Filip Procházka
- Moderator | 4668
@Tirus91 smaž celej vendor/
a
composer.lock
a v rootu projektu spusť
composer require kdyby/translation:~1.1
- Petr Hanák
- Člen | 10
Tak jsem to nakonec vyřešil – chyba byla v přesunutém
bootstrap.php
– Kdyby
pak nenašlo jazyky.
@Filip Procházka: Je snad jedno kam tu třídu (resp.
balíček) dám, nebo ne? Nette
stejně projde celý vendor a
hledá třídy.
- Filip Procházka
- Moderator | 4668
@Petr Hanák není to jedno, účelem composeru je aby ses o tohle vůbec nemusel starat. Abys vůbec neřešil co ve složce vendor je. A autoloading vendoru taky řeší composer, to nemá dělat Nette.
- Tirus91
- Člen | 199
jj, tak už to mám :) ale už jen do toho dostat vše co jsem napsal :) teď mi to hlásí, že nemůže najít HomepagePresenter, ale i přesto, že o něm nemám nikde zmínku :(
Tak snad funkční.. Ještě nějak udělat abych měl někde zdroj těch mutací :(
jak na to vůbec? kde se mi vytvoří PO/MO soubor?
Editoval Tirus91 (24. 3. 2014 20:06)
- Filip Procházka
- Moderator | 4668
@Tirus91: Přečti si prosím dokumentaci, vše důležité najdeš v ní.
Implementoval jsem přehled načtených resources do translation panelu, mělo by to pomoct s odhalováním chyb proč se něco nepřekládá, což tady čtu celkem často.
- Filip Procházka
- Moderator | 4668
@xjurny
translation:
dirs:
- %appDir%/AdminModule/lang
- %appDir%/FrontModule/lang
- %appDir%/lang
Případně můžeš použít i compiler provider – ITranslationProvider
- xjurny
- Člen | 3
Filip Procházka napsal(a):
@xjurny
translation: dirs: - %appDir%/AdminModule/lang - %appDir%/FrontModule/lang - %appDir%/lang
Případně můžeš použít i compiler provider – ITranslationProvider
Díky
- Tirus91
- Člen | 199
Vše mi nyní funguje až na produkci. Jakmile zapnu produkci, tak obdržím internal error a do error logu se zapíše
[2014-03-25 18-41-14] Fatal error: Call to a member function addPanel() on a non-object in /web/sss/www/vendor/kdyby/translation/src/Kdyby/Translation/Diagnostics/Panel.php:117 @ http://sss/ @@ exception-2014-03-24-23-33-38-4afb2011c83f78ed9218af118893e0c5.html
zatím jsem si to vyřešil tímto
...
public static function register(Translator $translator) {
$panel = new static($translator);
/** @var Panel $panel */
$translator->injectPanel($panel);
if (Nette\Diagnostics\Debugger::$bar instanceof \Nette\Diagnostics\Bar) {
Nette\Diagnostics\Debugger::$bar->addPanel($panel, 'kdyby.translation');
}
return $panel;
}
Editoval Tirus91 (25. 3. 2014 19:12)
- Filip Procházka
- Moderator | 4668
@Tirus91 nejde, protože taková věc nedává smysl :) Musíš je načíst abys věděl co v nich je, skládají se z nich ty slovníky.
V produkčním módu se to kompiluje do cache, tedy tímhle bych se vůbec nezabýval, je to celkem efektivní. Ty neony se zkompilují do PHP polí, takže se to naparsuje jenom jednou a pak čte z cache… díky tomu že se to kompiluje do PHP to pak může cachovat opcode cache :)
- Tomáš Votruba
- Moderator | 1114
@Tirus91: To není feature, ale issue. Tedy něco, co by bylo fajn implementovat, ale ještě to není.
Více o tom, jak se používají issues na Githubu