Twig 翻译一个包含参数的字符串

Dim*_*ica 2 symfony twig

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

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

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

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

并且参数将被传递。但是,如何在不将句子分成这么多部分的情况下做到这一点?

Phi*_*RLE 6

也许我没有明白您的意思,但是您可以根据需要添加任意数量的参数?

yaml文件:

my_translation_key: Hello %firstname%, %lastname%, welcome here !
Run Code Online (Sandbox Code Playgroud)

在树枝中:

{{ 'my_translation_key' | trans({
        '%firstname%': 'John',
        '%lastname%': 'Doe'
    }) }}
Run Code Online (Sandbox Code Playgroud)

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

yaml文件:

my_translation_key: Hello %firstname%, %lastname%, %welcome% !
welcome_block: welcome %where%
Run Code Online (Sandbox Code Playgroud)

在树枝中:

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