Twig翻译包含参数的字符串

时间:2016-12-27 09:46:21

标签: symfony twig

在我的Twig项目中,我使用.yaml文件中的翻译。我需要翻译的文本可以在.html.twig文件中找到,例如说

"我的翻译文本包含要翻译的{{parameter}}。"

我知道我可以用关键字替换整个字符串,例如 - to_translate%parameter%to_translate2,我可以使用我的.yaml文件中的翻译

to_translate:"我的翻译文本包含" to_translate2:"翻译"

参数将被传递。但是,如何在不破坏这么多部分的句子的情况下这样做呢?

2 个答案:

答案 0 :(得分:3)

也许我没有得到你的观点,但你可以添加任意数量的参数吗?

Yaml文件:

my_translation_key: Hello %firstname%, %lastname%, welcome here !

在Twig:

{{ 'my_translation_key' | trans({
        '%firstname%': 'John',
        '%lastname%': 'Doe'
    }) }}

如果您想要的是在翻译中获得嵌套块,您可以尝试这样的事情:

Yaml文件:

my_translation_key: Hello %firstname%, %lastname%, %welcome% !
welcome_block: welcome %where%

在Twig:

{% set welcome = 'welcome_block' | trans({'%where%': 'here'}) %}
{{ 'my_translation_key' | trans({
        '%firstname%': 'John',
        '%lastname%': 'Doe',
        '%welcome%': welcome
    }) }}

答案 1 :(得分:1)

也许你应该试试这个:

{{ ('My text for translation contains a '~parameter)|trans }}

Documentation中:

  

〜:将所有操作数转换为字符串并连接它们。 {{"您好" ~name> 〜"!"会返回(假设名字是' John')Hello John!。