2011-10-07 17 views

risposta

23

La soluzione è:

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

come faresti con filtro trans usando il tubo, al posto di blocco? – krishna

52

si può anche fare utilizzando il filtro trans:

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

non funziona quando lo si utilizza per tradurre stringhe da variabili. –

+2

Max stai facendo qualcosa di sbagliato. Funziona anche per variabili (vedi: http://symfony.com/doc/current/book/translation.html#twig-templates ad esempio '{{message | trans ({'% name%': 'Fabien'}," app ")}}'). – flu

+0

Funziona definitivamente! Anche con variabili. – naitsirch

5

È possibile aggiungere funzioni personalizzate a cambiare i domini all'interno dei vostri modelli.

Aggiungere le funzioni:

$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); 

quindi utilizzarlo:

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