W Symfony/Twig, mógłbym używać znaczników, używając procentów w przetłumaczonym bloku. Na przykład:Użyj symboli zastępczych w tłumaczeniu przy użyciu znaczników
Hello {{nickname}}
staną
{% trans %}Hello %nickname%{% endtrans %}
to działa zgodnie z oczekiwaniami. Tablica z symbolami zastępczymi, które przekazuję do Twig, jest automatycznie odwzorowywana na% placeHolder%. Brak dodatkowej pracy. Tak to działa z mojego tablicy PHP od istoty Kontroler:
Array('nickname' => 'rolandow')
Kiedy chcę użyć pseudonimu wewnątrz bloku translacji, wszystko co musisz zrobić, to otaczają go w procentach%. Niestety, wydaje się, że to nie działa, gdy przekazuję go do trans
.
Teraz chciałbym przetłumaczyć cały blok tekstu za pomocą tagów. Nie rozumiem, jak mogę wykorzystać tagi w tłumaczeniu. Więc moja gałązka będzie wyglądać mniej więcej tak:
{{ say.hello|trans }}
I moje tłumaczenie snippet
<trans-unit id="1">
<source>say.hello</source>
<target>Hello %nickName%, how are you doing today? lots-of-text-here</target>
</trans-unit>
mam to działa za pomocą tego w moim szablonu, ale czuje się jak robić rzeczy dwa razy. Teraz muszę ponownie umieścić tablicę symboli zastępczych w funkcji trans. Na przykład:
{{ say.hello|trans('%nickName%' : nickName) }}
Jeśli chcę używać innych znaczników, które są podane na gałązka w moim kontrolera, muszę przekazać je do tłumacza, jak również. Nie mogę po prostu przekazać kompletnej tablicy?
Czy rzeczywiście buduje tablicę jak '$ tagów = array ('% nick%' => "luke") w twoim kontrolerze? Jeśli tak, możesz po prostu zrobić '{{say.hello | trans (tags)}}' – Luke
Lub zadeklarować zmienną 'tags' używając słowa kluczowego Twig' set'. – eagleoneraptor
@Luke, nie tablica jest jak tablica ("pseudonim" => "luke"). To jest rzeczywiście mój punkt, wydaje się, że nadmiarowe kodowanie przebiega przez tablicę i dodaje wartości procentowe. Miałem nadzieję, że jest lepszy sposób na zrobienie tego. Zdaję sobie sprawę, że teraz robienie tego w kontrolerze jest o wiele lepszym miejscem niż w szablonie. – rolandow