Wie übersetze ich Strings in Twig-Vorlagen?

31

Ich arbeite an einem (meinem ersten) Drupal 8-Projekt, bei dem es sich um eine mehrsprachige Website handelt. Drupal 8 bietet wirklich native Unterstützung für die Übersetzung von Inhalten. Allerdings habe ich ein paar Zeichenketten direkt in einige gesetzt, wenn das Thema .Twig-Vorlagendateien wie zB ex ausgedruckt werden.

{{ 'Read more'|trans }}

Ich weiß wirklich nicht, wo ich die Übersetzung für solche Zeichenfolgen in der Drupal 8-Installation durchführen soll.

Welche Schritte muss ich unternehmen, um diese Zeichenfolgen in die Sprache zu übersetzen, für die auf der Website aktuell ausgewählt ist? Benötige ich zusätzliche Module, die nicht im Drupal 8 Core enthalten sind?

Schritte, die ich unternommen habe:

  • Aktiviert die Module Content Translation & Interface Translation
  • Twig-Strings wie {{'Read more' | trans}} hinzugefügt
  • Cache geleert und Seiten mit den Zeichenfolgen aktualisiert
  • Überprüfte admin / config / regional / translate für die Zeichenfolgen ohne Ergebnis
Henkealg
quelle
3
Haben Sie versucht, |tstatt zu verwenden |trans?
Vagner
@Vagner Ich habe die Zeichenfolgen wie in meiner Frage gezeigt hinzugefügt, wobei die Zeichenfolge
Henkealg

Antworten:

34

Sie müssen die Seite in einer anderen Sprache als Englisch besuchen, um sie abholen zu können. Das sollte genug sein.

Berdir
quelle
1
Zahlen, dass es so einfach sein soll. Ich habe die Seite in mehreren Sprachen neu geladen, aber nicht in der, in der ich dieses Problem hatte. Wie Sie bereits sagten, sind die Zeichenfolgen übersetzbar, sobald Sie die Seite mit dieser Spracheinstellung besuchen. Vielen Dank!
Henkealg
15

Sie können das {% trans %}Twig-Tag verwenden, das in Drupal 8 verfügbar ist:

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

Weitere Informationen finden Sie unter folgendem Link: http://getlevelten.com/blog/mark-carver/drupal-8-twig-templates-and-translations

dinopmi
quelle
Danke für Ihre Antwort. Ich habe diesen Artikel auch gelesen, aber leider wird nicht behandelt, wo ich die Übersetzung für die Zeichenfolgen handhabe, die mit {% trans%} oder | trans oder | t zu den Vorlagendateien hinzugefügt wurden. : S
Henkealg
Danke für den Beitrag. Diese Arbeit für mich. Nach dem Hinzufügen des folgenden Codes: {% trans%} Kategorien {% endtrans%} Ich habe den Cache geleert und gehe zur Seite admin / config / regional / translate. Hier habe ich nach meinem Suchbegriff "Kategorien" gesucht und ein Textfeld zum Übersetzen des Wortes in die französische Sprache (als Beispiel) erhalten. Danach erhalte ich das übersetzte Wort an der gewünschten Stelle.
Arbeitete auch für mich!
Achraf JEDAY
2

Hier ist ein Beispiel, das ich verwendet habe, in dem die Sprache explizit angegeben ist, sowie ein Kontext. Auf diese Weise konnte ich den Stich "von" zweimal übersetzen, da er auf Englisch "von" oder "von" bedeutete.

{{ 'von'|t([],{'langcode': currentLanguageCode,'context':'Seitenzahl PDF' }) }}

Rafael
quelle
1

Es scheint, dass Drupal benutzerdefinierte übersetzte Zeichenfolgen als "Übersetzung der Benutzeroberfläche" ansieht. Um diese zu übersetzen, installiere "User Interface Translation" und finde dann in der Konfiguration "User Interface Translation". Es gibt eine lange Liste von Zeichenfolgen, aber Ihre Zeichenfolgen sollten sich im letzten Abschnitt befinden.

Toukonen
quelle
1

Dieser hat mir geholfen

{{ 'Read more'|trans }}

Danach besuchen Sie die Seite in einer Sprache, die nicht Originalsprache ist, um sie von Drupal abholen zu lassen.

/admin/config/regional/translate

das ist alles.

Hmad AmEdur
quelle