Jak přepínat jazykové verze v contributte / translation?
- Allconius
- Člen | 317
Ahoj, mám v aplikaci nastavenou contributte/translation (https://github.com/…cs/README.md#…), ale nevím jak přepnout jazyk . V common.neon mám:
<?php
translation:
locales:
whitelist: [en, cs, sk]
default: cs
fallback: [cs]
dirs:
- %appDir%/lang
?>
když změním „cs“ na „en“ tak mám stránky v angličtině, ale nevím jak to přepnu uživatelsky v šabloně ? Nebo musím mít 2 kopie aplikace s rozdílným common.neon pro cs a en verzi ?
- David Matějka
- Moderator | 6445
viz ta sekce locale resolvers. nejcasteji se pouziva locale v routeru, takze
budes mit neco
jako new Route('<locale cs|en|sk>/<presenter>/<action>')
- Allconius
- Člen | 317
David Matějka napsal(a):
viz ta sekce locale resolvers. nejcasteji se pouziva locale v routeru, takze budes mit neco jako
new Route('<locale cs|en|sk>/<presenter>/<action>')
ok, super, funguje toto:
<?php
$router->addRoute('[<locale=cs cs|en>/]<presenter>/<action>[/<id>]', 'Homepage:default');
?>
nevíš jak dostanu ten překlad i do formuláře ? V šabloně je to jasný tam mám třeba:
<?php
<h3>{_language.registrace.nadpis}</h3>
?>
ale když v presenteru do formu dám:
<?php
$form->addText('jmeno', 'language.registrace.jmeno', 25, 50)
->setRequired('Zadejte Vaše jméno.');
?>
tak se mi místo překladu jen vypíše ten text „language.registrace.jmeno“
- Allconius
- Člen | 317
David Matějka napsal(a):
form má metodu setTranslator
A je možné používat latte i s lokalizací ? Mám tam např:
<?php
<a href="{$basePath}{if ($locale<>'cs')}/{$locale}{/if}/">
?>
jde tam nějak dostat tu proměnnou $locale ? Např.
<?php
<a n:href="{$locale}/Homepage:">
?>
a v případě přesměrování v presenteru ?
<?php
$this->redirect('Sign:in');
?>
jak udělat aby to šlo na anglickou mutaci a ne na default „cs“ ?
- David Matějka
- Moderator | 6445
je to normalni parametr, stejne jako treba id. takze
treba n:href="Homepage: locale => en"
- Allconius
- Člen | 317
Je možné nějak nastavit aby se mi měnil presenter u přepínání jazyků podle aktuální stránky ? Tzn. „Homepage:“ by byla proměnná v závislosti na presenteru, který ji zobrazil ?
<?php
<div class="jazyky">
<div class="jazyk"><a n:href="Homepage:"><img src="{$basePath}/img/flag_cs.png" alt="CS" /></a></div>
<div class="jazyk"><a n:href="Homepage: locale => en"><img src="{$basePath}/img/flag_en.png" alt="EN" /></a></div>
<div class="jazyk"><a n:href="Homepage: locale => ru"><img src="{$basePath}/img/flag_ru.png" alt="RU" /></a></div>
</div>
?>
- CZechBoY
- Člen | 3608
Můžeš zkusit this
<div class="jazyky">
<div class="jazyk"><a n:href="this, locale => cs"><img src="{$basePath}/img/flag_cs.png" alt="CS" /></a></div>
<div class="jazyk"><a n:href="this, locale => en"><img src="{$basePath}/img/flag_en.png" alt="EN" /></a></div>
<div class="jazyk"><a n:href="this, locale => ru"><img src="{$basePath}/img/flag_ru.png" alt="RU" /></a></div>
</div>
- Allconius
- Člen | 317
CZechBoY napsal(a):
Můžeš zkusit
this
<div class="jazyky"> <div class="jazyk"><a n:href="this, locale => cs"><img src="{$basePath}/img/flag_cs.png" alt="CS" /></a></div> <div class="jazyk"><a n:href="this, locale => en"><img src="{$basePath}/img/flag_en.png" alt="EN" /></a></div> <div class="jazyk"><a n:href="this, locale => ru"><img src="{$basePath}/img/flag_ru.png" alt="RU" /></a></div> </div>
funguje, super, díky moc :-)