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

Posted

技术标签:

【中文标题】如何使用变量处理树枝文件中的翻译?【英文标题】:How to handle Translation in twig file using variables? 【发布时间】:2012-02-02 08:10:51 【问题描述】:

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

例如:

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

Twig 文件的内容 -

<h2>"Hola, Follow  variableName  en Twitter</h2>  

我想为

做一个变量
Hola, Follow  variableName  en Twitter

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

follow.us.twitter: Hola, Follow 

follow.us.twitter1: en Twitter 

在树枝上 -

<h2> "follow.us.twitter"|trans([], "workend")   variableName   "follow.us.twitter1"|trans([], "workend") </h2> 

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

 1. follow.us.twitter
 2. follow.us.twitter1
 3.  variableName 

我试着用一个变量来做,像这样:

follow.us.in.twitter : Hola, Follow  variableName  en Twitter 
and  
<h2> "follow.us.in.twitter"|trans([], "workend") </h2>

但它没有用。问题是 我正在使用的变量,即 variableName

有没有办法处理一个预定义的变量并在翻译文件中定义它?

【问题讨论】:

【参考方案1】:

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

<h2> "follow.us.in.twitter"|trans('%someVariable%': someVariable, "workend") </h2>

现在您在 Yml 文件中的信息应该是:

follow.us.in.twitter: Hola, Follow %someVariable% en Twitter

这应该可行。 有关更多详细信息和清晰度,您可以参考以下内容: Symfony Book

祝你好运。

【讨论】:

如果我将许多参数传递给 twig,Twig 不能只使用整个数组而不将它们定义为 trans 吗?因此,如果我有: reminder.Email|trans('%firstName%' : firstName, '%lastName%' : lastName, '%siteUrl%' : siteUrl) 为什么不能只映射整个数组,它将用于将 %var% 替换为 var? 如果换成这个会更好.. '%variableName%': variableName ===> '%variableName%': variableValue

以上是关于如何使用变量处理树枝文件中的翻译?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查树枝中的变量是不是等于零并定义值

如何通过预处理主题功能将树枝文件中的块限制为内容类型中的某些页面?

如何访问树枝中的动态变量名?

将页面变量获取到奏鸣曲树枝模板

编辑树枝文件后如何重建网站?

如何检查表单字段中是不是有呈现控制器的树枝模板中的数据