如何使用变量处理twig文件中的翻译?

Arp*_*wat 41 translation bundles code-translation symfony twig

我有一个twig文件和一个yml,我在其中定义了用于翻译的变量,例如.:

YML文件 -
variable.for.translation: Disponible, para tí

树枝文件的内容 -

<h2>"Hola, Follow {{ variableName }} en Twitter</h2>  
Run Code Online (Sandbox Code Playgroud)

我想为变量做一个变量

Hola, Follow {{ variableName }} en Twitter
Run Code Online (Sandbox Code Playgroud)

在翻译文件中(即我的yml文件).
目前我这样做:
在YML中 -

follow.us.twitter: Hola, Follow 

follow.us.twitter1: en Twitter 
Run Code Online (Sandbox Code Playgroud)

在Twig -

<h2>{{ "follow.us.twitter"|trans([], "workend") }} {{ variableName }} {{ "follow.us.twitter1"|trans([], "workend") }}</h2> 
Run Code Online (Sandbox Code Playgroud)

它的工作正常,但问题是我现在在树枝上有3个变量太多了:

 1. follow.us.twitter
 2. follow.us.twitter1
 3. {{ variableName }}
Run Code Online (Sandbox Code Playgroud)

我尝试用1变量做到:

follow.us.in.twitter : Hola, Follow {{ variableName }} en Twitter 
and  
<h2>{{ "follow.us.in.twitter"|trans([], "workend") }}</h2>
Run Code Online (Sandbox Code Playgroud)

但它没有奏效问题是我正在使用的变量ie {{variableName}}.
有没有办法处理预定义的变量并在翻译文件中定义?
谢谢你的时间.

小智 75

你正在走上正轨,你错过的只是将variableName作为参数传递给你的Twig文件中的 trans():

<h2>{{ "follow.us.in.twitter"|trans({'%someVariable%': someVariable}, "workend") }}</h2>
Run Code Online (Sandbox Code Playgroud)

现在你在Yml文件中的消息应该是:

follow.us.in.twitter: Hola, Follow %someVariable% en Twitter
Run Code Online (Sandbox Code Playgroud)

这应该工作.有关更多详细信息和清晰度,请参阅以下内容: Symfony Book

祝好运.