22

I am working on a (my first) Drupal 8 project witch is a multilingual site. Drupal 8 really delivers in terms of native support for content translation. However, I have a few strings set directly in some if the theme .Twig template files printed out like ex.

{{ 'Read more'|trans }}

I am really stuck on where to handle the translation for strings like these within the Drupal 8 installation.

What steps do I need to take to be able to translate these strings into the language currently selected for on the site? Do I need any additional modules other than the ones included in Drupal 8 core?

Steps I have taken:

  • Activated the Content Translation & Interface Translation modules
  • Added Twig strings like {{ 'Read more'|trans }}
  • Flushed cache and refreshed pages containing the strings
  • Checked admin/config/regional/translate for the strings with no result
  • 2
    Have you tried use |t instead of |trans? – Vagner Feb 24 '16 at 12:45
  • @Vagner I have added the strings as shown in my question, where the string is suffixed with |trans – Henkealg Feb 24 '16 at 12:53
27

You need to visit the page in a language that is not English to have them picked up. That should be enough.

  • 1
    Figures that it should be so easy. I have reloaded the page in several languages but not in the one where i had this problem. Just as you said the strings are translatable once you visit the page using that language setting. Thanks! – Henkealg Feb 25 '16 at 7:09
13

You can use the {% trans %} Twig tag, available in Drupal 8:

{% trans %}
  Submitted by {{ author.username }} on {{ node.created }}
{% endtrans %}

See the following link for more details: http://getlevelten.com/blog/mark-carver/drupal-8-twig-templates-and-translations

  • Thank you for your reply. I have read through that article as well but unfortunately it does not cover where I handle the translation for the strings added to the template files using {% trans %} or |trans, or |t. :S – Henkealg Feb 24 '16 at 12:56
  • Thanks for the post. This work for me. After adding this code: {% trans %} Categories {% endtrans %} I cleared the cache and go to admin/config/regional/translate page. Where I searched my keyword "Categories" and get a textfield for translating the word in French (as an example) language. After this, I get the translated word in required place. – Arti Prasad May 28 '18 at 6:41
  • Worked for me too! – Achraf JEDAY Dec 3 '18 at 16:12
6

Use the t filter:

{{ 'translate me'|t }}

https://www.drupal.org/docs/8/theming/twig/filters-modifying-variables-in-twig-templates

0

It seem Drupal see custom translated strings as "User interface translation". To translate those install "User interface translation" extend and then you find "User interface translation" in cunfiguration. There is long list of strings but your strings should located in last section.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.