8

最初の出力は、翻訳されていない文字列です。

{{ chart.name~'.short'|trans({}, "charts") }}

これは機能します(出力する必要があるのと同じテキストですchart.name~'.short'):

{{ 'charts.region.area.short'|trans({}, "charts") }}

私は何かが足りないのですか?Twigで動的テキストを翻訳することは不可能のようですか?

編集:変数の設定作業(なぜ?):

{% set name = chart.name ~ '.short' %}
{{ name|trans({}, "charts") }}
4

2 に答える 2

29

Symfony / Twigはそれを翻訳.shortし、の内容と連結しようとしていchart.nameます。期待される出力を取得するには、括弧を使用します。

{{ (chart.name~'.short')|trans({}, "charts") }}
于 2011-10-11T20:35:01.207 に答える
0

symfony2で多言語を小枝に使用する場合、次のことを行う必要があります。

リクエストロケールを設定します。これにより、trantwigタグが単語を翻訳するロケールが提供されます。

私がしたことは次のとおりです。

1-コントローラー部分:

 $this->getRequest()->setLocale('es_AR');   //setting the locale to spanish in Argentina

 return $this->render('LoginLoginBundle:Default:welcome.html.twig');   //render a twig file

2-小枝ファイルには

<h2>{% trans %} hello {% endtrans %}</h2>

小枝タグtransを使用してコードを作成する場合は、この方法で使用するか、{%trans hello%}が機能しなくなるため{{"Text"|trans}}を使用します。

3-ファイルmesseges.es.ymlで私が得た

こんにちは:ホラ

これは、単語を翻訳するために行われます

{%trans%} hello {%endtrans%}

、または、好きな人のhelloワードを変更して、messeges.es.ymlファイルで変更できます。例:1:ロケールがスペイン語に設定されている場合、HolaはHolaをもたらします。それ以外の場合は、1をもたらします。

于 2013-05-17T17:09:39.430 に答える