In Symfony/Twig, potrei usare i tag usando percentuali nel mio blocco tradotto. Per esempio:Utilizzare i segnaposti nella traduzione usando i tag
Hello {{nickname}}
sarebbe diventato
{% trans %}Hello %nickname%{% endtrans %}
Questo funziona come previsto. L'array con segnaposto che ho passato a Twig, viene automaticamente mappato su% placeHolder%. Nessun lavoro extra coinvolto. Quindi, questo funziona con il mio array PHP dall'essere controllore:
Array('nickname' => 'rolandow')
Quando voglio usare il soprannome all'interno del blocco di traduzione, tutto quello che devo fare è lo circondano con percentuali%. Sfortunatamente, questo non sembra funzionare quando lo passo a trans
.
Ora mi piacerebbe tradurre un intero blocco di testo, usando i tag. Non riesco a capire come posso usare i tag nella mia traduzione. Quindi, il mio ramoscello sarebbe simile a questa:
{{ say.hello|trans }}
E la mia traduzione snippet
<trans-unit id="1">
<source>say.hello</source>
<target>Hello %nickName%, how are you doing today? lots-of-text-here</target>
</trans-unit>
ho ottenuto che funziona utilizzando questo nel mio modello, ma ci si sente come fare le cose due volte. Ora ho bisogno di mettere di nuovo la matrice di segnaposto nella funzione trans. Per esempio:
{{ say.hello|trans('%nickName%' : nickName) }}
Se voglio usare altri tag che sono date a ramoscello nel mio controller, ho bisogno di passare loro al traduttore pure. Non posso semplicemente passare l'array completo in qualche modo?
Sei in realtà la costruzione di una matrice come '$ tags = array ('% soprannome%' => 'luke') 'nel tuo controller? Se è così puoi semplicemente fare '{{say.hello | trans (tag)}}' – Luke
Oppure dichiarare la variabile 'tags' usando la parola chiave' set' Twig. – eagleoneraptor
@Luke, no la matrice è come array ('nickname' => 'luke'). Questo è in realtà il mio punto, sembra una codifica ridondante per scorrere attraverso l'array e aggiungere le percentuali. Speravo che ci fosse un modo migliore per farlo. Realizzo ora che fare questo nel controller è un posto molto migliore rispetto al modello. – rolandow