У меня есть использование для transchoice, где мне нужно перевести строку для нескольких элементов в строке. В качестве упрощенного примера я хочу перевести строку о количестве фруктов, которые у меня есть в наличии. На данный момент я могу сделать:
translate.string: '{0}No fruit|{1}One piece of fruit|]1.Inf[%count% pieces of fruit'
в моем файле перевода yaml, затем переведите как
{{ 'translate.string|transchoice(5) }}
в ветке Все хорошо.
Но как я могу это сделать, когда я разделяю фрукты по типу и хочу перевести бананы, апельсины, виноград и яблоки. В настоящий момент я вижу только возможность выбора одного из типов для выбора, а остальные - в качестве параметров. Кто-нибудь видел перевод для нескольких transchoice в одной строке перевода. У меня есть решение этой проблемы, но я хочу увидеть другие решения, которые могут улучшить мое решение.
Я переопределил Synfony Translator, чтобы предоставить решение, которое изменяет номер траншоса на массив и переводит в соответствии с этим примером:
translate.setting: |
%0%, %1%, %2% and %3%.
{0}No bananas|{1}One banana|]1.Inf[%count% bananas
{0}No oranges|{1}One orange|]1.Inf[%count% oranges
{0}No grades|{1}One kilogram of grapes|]1.Inf[%count% kilograms of grapes
{0}No apples|{1}One apple|]1.Inf[%count% apples
и веточка выглядит как {{ 'translate.string'|transchoice([4,6,2,3]) }}
приведет к:
4 банана, 6 апельсинов, 2 килограмма винограда и 3 яблока.
Более сложный пример:
help: |
Possible students are limited to the selected !!!form_grade!!! in the course to which this activity belongs. You currently %1% of %0%. Reportable will be set to true if the activity reportable is true.
{0}no possible students|{1}one possible student|]1,Inf[%count% possible students
{0}have no students allocated|{1}have one student allocated|]1,Inf[have %count% students allocated
Twig
{{ 'help'|transchoice([48, 9]) }}
Результаты в
Возможные студенты ограничены выбранной оценкой в курсе
которому принадлежит эта деятельность. В настоящее время у вас есть 9 студентов
из 48 возможных студентов. Reportable будет установлен в true, если
Активность является достоверной.
Итак, Вопрос: есть ли другие решения для множественных множественных переводов?