我有transchoice的用法,我需要为字符串中的多个项目翻译字符串。作为一个简单的例子,我想翻译一个关于我库存的数字水果的字符串。目前我可以这样做:
translate.string: '{0}No fruit|{1}One piece of fruit|]1.Inf[%count% pieces of fruit'
在我的yaml翻译文件中,然后翻译为
{{ 'translate.string|transchoice(5) }}
在树枝上。一切都好。
但是,当我按类型分离水果时,我怎么能这样做,并希望翻译香蕉,橘子,葡萄和苹果。目前我只看到了只有一种类型被转移给了transchoice的可能性,其余的作为参数。有没有人在单个翻译字符串中看到多个transchoice的翻译。我确实有这个问题的解决方案,但希望看到任何其他可能改善我的解决方案的解决方案。
我已经覆盖了Synfony Translator,提供了一个解决方案,可以将transchoice编号更改为数组,并根据此示例进行翻译:
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
和twig看起来像{{ '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
枝条
{{ 'help'|transchoice([48, 9]) }}
结果
可能的学生仅限于课程中选定的成绩 这个活动属于哪个。您目前有9名学生已分配 有48名可能的学生。如果是,则可报告将设置为true 可报告的活动是真实的。
那么,问题:多个翻译的任何其他解决方案?