Symfony2+Twig, variable en la traducción return "Un mensaje debe ser un texto simple"

StackOverflow https://stackoverflow.com/questions/7811162

  •  26-10-2019
  •  | 
  •  

Pregunta

Cuando estaba haciendo PHP simple, simplemente estaba haciendo esto:

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

Ahora con Twig, debo usar la etiqueta trans. Así que he copiado/pegado el ejemplo de documentación, y aquí está mi plantilla completa:

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

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

¿Por qué Symfony devuelve la siguiente exepción?

Un mensaje debe ser un texto simple en "MyAppbundle :: Home.html.twig"

500 Error de servidor interno - TWIG_ERROR_SYNTAX

¿Fue útil?

Solución

La sintaxis precisa para las traducciones es un poco diferente en Symfony2 que en la ramita independiente. Querrás consultar la documentación de Symfony2 para traducciones en plantillas de ramas, encontrado aquí. La sintaxis correcta se vería algo así:

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

Otros consejos

Una broca que falta con la respuesta anterior es la parte "con" que se necesita para hacer el reemplazo de la parte variable del mensaje.

{% trans with {'%name%':name} %}Hello %name%!{% endtrans %}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top