Saltar al contenido

¿Cómo traducir con pluralización en Twig?

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *