Solución:
Usaría una solución como esta:
messages.en.xliff:
<trans-unit id="1">
<source>some.translation.key</source>
<target>{0} no.attendee|{1} one attendee|{2} two attendees|{3} three attendees|]3,Inf] many attendees</target>
</trans-unit>
Plantilla de ramita:
{{ 'some.translation.key'|transchoice(count) }}
Si necesita poner algunos argumentos, debe pasarlos como segundo argumento.
Aquí está el prototipo del filtro:
public function transchoice($message, $count, array $arguments = array(), $domain = "messages", $locale = null)
Encontré esto en la documentación de Symfony:
Symfony2 proporciona etiquetas Twig especializadas (trans y transchoice) para ayudar con la traducción de mensajes de bloques de texto estáticos:
{% trans %}Hello %name%{% endtrans %}
{% transchoice count %}
{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples
{% endtranschoice %}
La etiqueta transchoice obtiene automáticamente la variable% count% del contexto actual y la pasa al traductor. Este mecanismo solo funciona cuando usa un marcador de posición siguiendo el patrón% var%.
Este tema es bastante antiguo, pero te sugiero que hagas algo así:
En tus mensajes.LOCALE.yml
you.translaction.key: "{1}1 Comment|]1,Inf]%count% Comments"
En tu plantilla de ramitas
{% set count = 2 %}
{% transchoice count with {'%count%': count} %}you.translaction.key{% endtranschoice %}
Salud,
Simón
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)