2011-10-18 11 views
8

Kiedy robiłem zwykły PHP, byłem po prostu w ten sposób:Symfony2 + Gałązka, zmienna w zamian tłumaczenia „A wiadomości musi być prosty tekst”

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

Teraz z gałązka, muszę użyć tagu trans . Więc mam kopiuj/wklej documentation example, a oto mój pełny szablon:

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

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

Dlaczego Symfony zwrócić następujący exeption?

komunikat musi być prosty tekst w "MyAppBundle :: home.html.twig"

500 Internal Server Error - Twig_Error_Syntax

Odpowiedz

11

Dokładna składnia przekładów jest nieco inna w Symfony2 niż w samodzielnej gałązce. Będziesz chciał zapoznać się z dokumentacją Symfony2 dotyczącą tłumaczeń w szablonach gałązek, znalezioną pod numerem here. Poprawna składnia będzie wyglądać mniej więcej tak:

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

Hej dzięki! Znalazłem również tę składnię: {{'welcome.message' | trans ({'% titre%': name})}} – FMaz008

+0

Ta sama sytuacja jest w samodzielnej gałązce. To działa, dziękuję. – umpirsky

21

Jednym brakuje trochę z poprzedniej odpowiedzi jest „z” części, która jest potrzebna do zrobienia zastąpienie zmiennej części wiadomości.

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

Powinna to być wybrana odpowiedź – Simon

+0

Zgodnie z bieżącymi dokumentami nie ma potrzeby używania części 'with', zobacz http://symfony.com/doc/current/translation.html#twig-templates – hchr

Powiązane problemy