Многократное использование TransChoice - PullRequest
0 голосов
/ 14 мая 2018

У меня есть использование для 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, если Активность является достоверной.

Итак, Вопрос: есть ли другие решения для множественных множественных переводов?

...