2016-05-12 8 views
2

ich möchte die tatsächliche Sprache, die auf einem Drupal 8 Website in einem Knoten gewählt wird, und starten Sie eine If-Anfrage, wenn z. Die Sprache ist "en", um etwas zu veröffentlichen.Drupal 8 und Twig bekommen Sprache

das ist, was ich bereits versucht habe:

{% global language %} 
{% set lang_name = language %} 
{{ lang_name }} 

und

{{ app.session.locale }} 
{{ app.request.locale }} 

aber es funktioniert nicht. kann mir jemand einen Hinweis geben, wie ich die Sprache via Zweig auf Drupal 8 bekommen kann oder ist das überhaupt nicht möglich?

Antwort

4

In Ihrer XXX.theme Datei:

function XXX_preprocess_node(&$variables) { 
    $language = \Drupal::languageManager()->getCurrentLanguage()->getId(); 
    $variables['language'] = $language; 
} 

in Ihrem Knoten Vorlage:

{{ language }} 
+0

hej! Danke für deine Antwort. Ich habe keine ".theme" -Datei, aber ich habe eine in den "Themes" erstellt -> "custom" -> "xxx_theme" -> "xxx.theme". muss ich etwas anderes in Betracht ziehen oder drupal fügt diese Datei automatisch hinzu? – paul

+0

Der "xxx" war als Platzhalter für Ihren Themennamen gedacht. Hier ist ein Beispiel für eine Theme-Ordner-Struktur: https://www.drupal.org/theme-guide/8/folder-structure –

+0

ich weiß. aber muss ich etwas tun, das drupal diese neue ".theme" datei registriert oder wird das automatisch passieren? weil die obige Sprachabfrage für mich im Moment nicht funktioniert. Keine Sprache ID oder Name wird in dem Knoten angezeigt. – paul

0

Ich glaube, Sie müssen $ Sprache in PHP setzen, bevor {% global language %} in Zweig mit:

$language = \Drupal::languageManager()->getCurrentLanguage()->getId(); 
+0

hej spill, vielen Dank für Ihre anwser. Weißt du, wo ich diese Zeile hinzufügen muss? – paul

0

Für die Sprach-ID können Sie verwenden:

{{ language.getId() }} 

Für Sprache Name:

{{ language.getName() }} 

Zum Beispiel:

{% if language.getId() == 'sr' %} 
    <p>Zdravo svete!</p> 
{% elseif language.getId() == 'hu' %} 
    <p>Helló világ!</p> 
{% else %} 
    <p>Hello world!</p> 
{% endif %}