Nette překlady – nefungují plurály
- David Krupička
- Člen | 45
Zdravím, dávám do kdyby/translatoru výpis plurálů ale vypisuje se mi celý text. Používám https://github.com/…/en/index.md a takto vypadá homepagePresenter:
echo $this->translator->translate('messages.homepage.applesCount', ['count'=>10]);
takto messages.en_US.neon
homepage:
applesCount: 'There is one apple|There are %count% apples'
Výpis ale vypadá takto: There is one apple|There are 10 apples Místo toho, aby mi to vypsalo jedno nebo druhé to vypisuje oboje. Nevíte čím to může být?
Editoval David Krupička (23. 12. 2015 20:20)
- Myiyk
- Člen | 321
Nevím jak jsi přišel na tu syntaxi zápisu překladu, ale má to být takhle
{0} There are no apples|{1} There is one apple|]1,Inf[ There are %count% apples
zdroj http://symfony.com/…slation.html#…
edit
hmm, jak se dívám na testy, tak je možná i syntaxe bez těch čísel
Editoval Myiyk (23. 12. 2015 20:37)
- David Krupička
- Člen | 45
Pokud tam ty čísla dám podle syntaxe ze zdroje tak mi to vypíše i ty čísla, to už jsem taky zkoušel právě.
- jiri.pudil
- Nette Blogger | 1032
Zkus
echo $this->translator->translate('messages.homepage.applesCount', 10);
(počet jako přímý argument, ne v poli)
Editoval jiri.pudil (23. 12. 2015 21:15)
- Mysteria
- Člen | 797
Já to mám takto:
info: '{0} Publikoval %0% %1% dne %2% a byl ohodnocen %3% body.|{1} Publikoval %0% %1% dne %2% a byl ohodnocen %3% bodem.|[2,+Inf] Publikoval %0% %1% dne %2% a byl ohodnocen %3% body.'
{_info $comment->review, [$country, $comment->name, $comment->timestamp->format('d. m. Y H:i'), $comment->review]}
// První $comment->review je pro určení, který plurál se vezme a v poli jsou pak jednotlivé parametry
- David Krupička
- Člen | 45
Uvozovky okolo nefungují.
Problém byl v tom, že jsem neměl ošetřené kolik je count a co se má k čemu přiřadit. Doplnil jsem složené závorky a už to běží jak má. Ale pokud ošetřím například {0} a {1} tak pro 10 to bude vypisovat celý řetězec. Pokud nepřidám Inf.
Každopádně díky za pomoc.
Editoval David Krupička (27. 12. 2015 20:37)