多个TransChoice用法

时间:2018-05-14 05:55:15

标签: symfony twig translate

我有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   可报告的活动是真实的。

那么,问题:多个翻译的任何其他解决方案?

0 个答案:

没有答案