2011-10-18 14 views
8

我在做純PHP,我只是這樣做:用嫩枝的Symfony2 +枝條,在翻譯返回變量「的消息必須是一個簡單的文本」

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

現在,我必須使用反式標籤。所以我複製/粘貼documentation example,這是我的完整的模板:

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

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

爲什麼Symfony的返回以下exeption?

,郵件必須在 「MyAppBundle :: home.html.twig」

500內部服務器錯誤一個簡單的文本 - Twig_Error_Syntax

回答

11

對翻譯的準確語法是有點不同Symfony2比它在獨立的Twig中。您需要查看Symfony2文檔以獲取樹枝模板中的翻譯,找到here。正確的語法看起來是這樣的:與以前的答案

{% trans %}Hello %name%!{% endtrans %} 
+3

嘿謝謝!我也發現這個語法:{{'welcome.message'| trans({'%titre%':name})}} – FMaz008

+0

同樣的情況出現在獨立的Twig中。這工作,謝謝。 – umpirsky

21

一人失蹤位是「有」,即做更換消息的可變部分的所需部分。

{% trans with {'%name%':name} %}Hello %name%!{% endtrans %} 
+4

這應該是選定的答案 – Simon

+0

根據目前的文檔,不需要使用'with'部分,請參閱http://symfony.com/doc/current/translation.html#twig-templates – hchr