Chciałbym to zrobić:symfony 'trans' domeny wewnątrz Twig szablonu
$this->get('translator')->trans('notice.unregistered', array(), 'index');
Wewnątrz Gałązka szablon, więc nie mam przekazać to jako argument. W jaki sposób?
Chciałbym to zrobić:symfony 'trans' domeny wewnątrz Twig szablonu
$this->get('translator')->trans('notice.unregistered', array(), 'index');
Wewnątrz Gałązka szablon, więc nie mam przekazać to jako argument. W jaki sposób?
Rozwiązaniem jest:
{% trans from "domain" %}text{% endtrans %}
Można również zrobić za pomocą filtra trans:
{{ 'translationkey'|trans({},'domain') }}
to nie działa, gdy używasz go do tłumaczenia łańcuchów ze zmiennych. –
Max, musisz zrobić coś złego. Działa to również dla zmiennych (zobacz: http://symfony.com/doc/current/book/translation.html#twig-templates eg np. {{Message | trans ({'% name%': 'Fabien'}, " app ")}}'). – flu
To na pewno działa! Nawet ze zmiennymi. – naitsirch
Możesz dodać niestandardowe funkcje do zmiany domeny wewnątrz szablonów.
Dodaj swoje funkcje:
$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);
Następnie użyj go:
{% set originalDomain = get_textdomain() %}
{{ set_textdomain('errors') }}
{% trans "My error message" %}
{{ set_textdomain(originalDomain) }}
jak można to zrobić z filtrem trans za pomocą rury, zamiast bloku? – krishna