2011-10-07 11 views

Respuesta

23

La solución es:

{% trans from "domain" %}text{% endtrans %} 
+2

¿cómo lo haría con filtro de trans utilizando tubería, en lugar de bloque? – krishna

52

También puede hacer uso de filtro de trans:

{{ 'translationkey'|trans({},'domain') }} 
+0

no funciona cuando lo está usando para traducir cadenas de variables. –

+2

Max debe estar haciendo algo mal. Esto también funciona para las variables (ver: http://symfony.com/doc/current/book/translation.html#twig-templates, por ejemplo '{{message | trans ({'% name%': 'Fabien'}," aplicación ")}}'). – flu

+0

Esto definitivamente funciona! Incluso con variables. – naitsirch

5

Puede agregar funciones personalizadas a cambiar de dominio dentro de sus plantillas.

Añadir sus funciones:

$getTextdomain = new Twig_SimpleFunction('get_textdomain', function() { 
    return textdomain(NULL); 
}); 
$setTextdomain = new Twig_SimpleFunction('set_textdomain', function ($domain) { 
    textdomain($domain); 
}); 

$twig->addFunction($getTextdomain); 
$twig->addFunction($setTextdomain); 

luego usarlo:

{% set originalDomain = get_textdomain() %} 
{{ set_textdomain('errors') }} 
{% trans "My error message" %} 
{{ set_textdomain(originalDomain) }} 
Cuestiones relacionadas