9

プレーンな PHP を実行していたときは、単純に次のようにしていました。

printf(_("Hello %s !"), $name);

Twig では、trans タグを使用する必要があります。だから私はドキュメンテーションの例をコピーして貼り付けました。ここに私の完全なテンプレートがあります:

{% extends 'MyAppBundle::layout.html.twig' %}

{% block content %}
    <h1>
        {% trans %}
            Hello {{ name }}!
        {% endtrans %}
    </h1>
{% endblock %}

Symfony が次の例外を返すのはなぜですか?

メッセージは「MyAppBundle::home.html.twig」の単純なテキストでなければなりません

500 内部サーバー エラー - Twig_Error_Syntax

4

3 に答える 3

21

前の回答で欠落しているビットの 1 つは、メッセージの変数部分の置換を行うために必要な「with」部分です。

{% trans with {'%name%':name} %}Hello %name%!{% endtrans %}
于 2011-10-21T00:09:30.057 に答える
11

翻訳の正確な構文は、Symfony2 ではスタンドアロンの Twig とは少し異なります。twig テンプレートの翻訳については、こちらにある Symfony2 のドキュメントを参照してください。正しい構文は次のようになります。

{% trans %}Hello %name%!{% endtrans %}
于 2011-10-18T17:34:50.950 に答える