2012-06-05 3 views
2

я перевожу следующий ключ в activity.fr.ymlSymfony2 перевод с transchoice

user.list.link: '{1}et %count% autre|]1,Inf[voir les %count% autres' 

использованием tranchoice

<a href="{{ moreLink }}" >{% transchoice count from "activity" %}user.list.link{% endtranschoice %}</a> 

и я получаю следующую ошибку

An exception has been thrown during the rendering of a template ("Unable to choose a translation.")

Я думаю, перевод был найден иначе я бы не стал получить сообщение об ошибке Невозможно выбрать перевод, но сам ключ.

Также все другие ключи от одной и той же ямлы, даже другие траншеи, хорошо переведены.

Я следовал за doc и попытался добавить with {'%count%': count} без успеха.

У кого-то есть представление о том, что здесь не так? Заранее благодарен

ответ

5

Синтаксис был точным, но значение pass, так как% count% не могло быть отрицательным, ни равным 0, потому что в плюрализированной строке не было {0} defintion. Итак, у меня был тест, чтобы убедиться, что значение> = 0, и изменило строку как это, и она исправляет ее.

user.list.link: '{0}|{1}et %count% autre|]1,Inf[voir les %count% autres' 
1

Вам необходимо передать параметр, используемый для определения перевода, который будет выбран.

Посмотрите на следующем примере найдено in the doc:

{% transchoice count with {'%name%': 'Fabien'} from "app" %} 
    {0} There is no apples|{1} There is one apple|]1,Inf] There are %count% apples 
{% endtranschoice %} 

адаптированный к вашему примеру:

{% transchoice count with {'%count%': count} from "activity" %} 
    user.list.link 
{% endtranschoice %} 

Если он не работает, может быть, ваш перевод не найден. Таким образом, symfony использует ваш ключ как резерв и не может определить правильный выбор, потому что ваш ключ не поддерживает это.

Чтобы проверить это, попробуйте использовать ключ как это:

user.list.link | user.list.link.many 

Не забудьте использовать один и тот же ключ в каталоге деятельности.

+0

Я думаю, что был найден перевод, иначе я бы не стал получать ошибку «Невозможно выбрать перевод», но сам ключ. – svassr

+0

, добавив ваше предложение '{% transchoice count with {'% count%': count} from" activity "%} user.list.link.link | user.list.many {% endtranschoice%}' Я получаю ' user.list.link.many' вместо строки в шаблоне – svassr

+0

Если перевод не найден, это ключ, который используется. И невозможно выбрать перевод с таким ключом. Возможно, ошибка связана с пробелами между вашим переводом и в моем примере. Попробуйте 'user.list.link | user.list.link.many'. (И, конечно, используйте то же самое в своем каталоге и очистите свой кеш.) –