Drupal TWIG, diferents formes de traduir.

Després de buscar, una vegada més, com resoldre una traducció al sistema de plantilles de Drupal 8, se’m va ocórrer que seria bo tenir sempre una nota a mà amb les diferents maneres de fer una traducció en branca. Comencem

La més coneguda i simple, apliquem el filtre | t a la cadena de text:

    {{ 'Hello World!'|t }}

També podem utilitzar el filtre | trans, però aquest és més útil quan el fem servir com a bloc:

    {% trans %}Hello World!{% endtrans %}

És evident que aquesta forma s'utilitza més codi per realitzar el mateix que l'anterior, així que la manera bloc se sol utilitzar quan necessitem incloure html o variables juntament amb la cadena de text:

    {% trans %}Hello World! {{ date }}{% endtrans %}

I, sobretot, l'utilitzem quan volem traduir un text que pot tenir forma plural:

    {% trans %}

         Hello World!

    {% plural count %}

        Hello {{ count }} Worlds!

    {% endtrans %}

I una variant més que ens permet | trans és utilitzar contextos, amb els quals podem traduir una mateixa cadena de text de dues formes diferents, en dues situacions diferents:

    {% trans with {'context': 'home', 'langcode': 'es'} %}

        Hello World!

    {% endtrans %}

    {% trans with {'context': 'node', 'langcode': 'es'} %}

        Hello World!

    {% endtrans %}

Podem també guardar la traducció que ens proporciona el filtre | t en una variable:

    {% set my_text = 'Hello World!'|t %}

    {{ my_text }}

I aquesta mateixa fórmula la podríem fer servir en format bloc si volem afegir alguna cosa més que la cadena de text:

    {% set my_text_html %}

        {{ 'Hello World!'|t }} <strong>{{date}}</strong>

    {% endset %}

    {{ my_text_html }}

Com ja vam veure en un post anterior, aquest format pot ser útil quan afegim un enllaç a TWIG en què volem que el text tingui html.

Encara que si només ens cal traduir una cadena de text per a un enllaç, la posarem directament a l'enllaç:

    {{ link('Hello World!'|t, 'internal:/', {'class':['hello-world__link']}) }}

Espero que aquest resum sigui d'ajuda per als que han de treballar diàriament amb les traduccions en Twig.