Grav - Mehrsprachig

Mehrsprachig ist definiert als die Verwendung verschiedener Sprachen auf Ihrer Website. Wir lernen verschiedene Verfahren kennen, mit denen Sie mehrere Sprachen auf Ihrer Grav-Site verwenden können.

Grundlagen für mehrere Sprachen

Grundsätzlich benötigt Grav eine .md- Datei für die Darstellung einer beliebigen Seite. Wenn Sie die mehrsprachige Unterstützung aktivieren, wird nach einer Datei wie gesuchtdefault.en.md oder default.fr.md..

Sprachkonfiguration

Sie müssen zuerst eine grundlegende Sprachkonfiguration in Ihrem einrichten user/config/system.yamlDatei. Datei.

Language:
   Supported:
      - en
      - Fr

Auf diese Weise haben Sie die mehrsprachige Unterstützung in Grav aktiviert. Im obigen Codeen bedeutet englische Sprache und frbedeutet Französisch. Dies bedeutet, dass Ihre Site diese beiden Sprachen unterstützt. Hier ist die Standardsprache en (Englisch) . Wenn Sie zuerst Fr (Französisch) schreiben , wird dies Ihre Standardsprache.

Mehrere Sprachseiten

Wenn Ihre Standardsprache als festgelegt ist English, dann wird Grav suchen default.en.mdDatei. Wenn diese Datei nicht gefunden wird, sucht Grav nach einer anderen Sprache, die Sie festgelegt haben. Wenn nicht beide Sprachen gefunden werden, sucht es nach demdefault.md Datei.

Example

default.en.md Datei

---
title: Home
---

# Grav is Running!
## You have installed **Grav** successfully

Der obige Code generiert die folgende Ausgabe:

Für Französisch als Standardsprache lautet die Datei default.fr.md -

---
titre: Accueil
---

# Grav est en marche!
## Vous avez installé ** ** Grav succès

Der obige Code generiert die folgende Ausgabe:

Aktive Sprache über URL

Wenn Sie eine URL zu Ihrer Website mit einem Sprachcode aktualisieren möchten, gehen Sie folgendermaßen vor:

Example

Wenn Sie möchten, dass Ihre Website auf Englisch ist, geben Sie die folgende Zeile in Ihren Browser ein -

http://www.mysite.com/en

Wenn Sie möchten, dass Ihre Website auf Französisch ist, geben Sie die folgende Zeile in Ihren Browser ein -

http://www.mysite.com/fr

Aktive Sprache über Browser

Grav hat die Fähigkeit, die zu bekommen http_accept_languagebewerten und vergleichen Sie sie, um die unterstützte Sprache zu präsentieren. Wenn dies funktionieren soll, aktivieren Sie Ihreuser/system.yaml Datei im Sprachabschnitt als -

language :
   http_accept_language : true

Sprachbasierte Homepage

Um eine sprachbasierte Homepage zu haben, müssen Sie den folgenden Code in Ihrer aktivieren site.yaml Datei -

home:
   aliases:
      en: /homepage
      fr: /page-d-accueil

Auf diese Weise findet Grav aus den aktiven Sprachen heraus, welche Sprache verwendet werden soll.

Der folgende Code zwingt Grav, Sie zu Ihrer Standard-Sprachroute umzuleiten. Und die Option include_route erzwingt das Hinzufügen des Sprachcodes zu Ihrer URL wiehttp://www.mysite.com/en/home

languages:
   home_redirect:
      include_lang: true
      include_route: false

Sprachbasierte Zweigvorlagen

Wenn Ihre Datei default.en.md ist , sucht Grav nach einer Zweigdatei als default.html.twig . Wenn Sie eine sprachspezifische Zweigdatei benötigen, müssen Sie diese auf der Stammebene des Sprachordners hochladen. Wenn Ihr aktuelles Thema in isttemplates/default.html.twig Sie müssen eine erstellen templates/en/ Ordner und legen Sie Ihren englischspezifischen Ordner darin ab als: templates/en/default.html.twig

Sprach Wechsler

Das Sprachumschalter-Plugin ist im Grav Package Manager (GPM) verfügbar .

Übersetzungen über Twig

Verwenden Sie den Zweigfilter und die Funktion t () . Beide funktionieren ähnlich. Wenn Sie eine andere Zweigdatei haben, können Sie aus einem Array übersetzen.

Plugin- und Themensprachenübersetzungen

Stellen Sie Ihre Übersetzungen in Plugins und Themen bereit, indem Sie eine erstellen languages.yaml Datei im Stammverzeichnis Ihres Themas oder Plugins (/user/plugins/error/languages.yaml) und muss alle unterstützten Sprachen enthalten.

Überschreibungen überschreiben

Wenn Sie die Übersetzung überschreiben möchten, müssen Sie das Wertepaar in die Sprachdatei in Ihrem Ordner user / language / einfügen.

Fortgeschrittene

Environment – Based Language Handling

Es ist möglich, Benutzer gemäß der URL zur richtigen Version Ihrer Website weiterzuleiten. Wenn Ihre Website-URL isthttp://english.yoursite.com, ein Alias ​​für Ihren Standard http://www.yoursite.com, dann können Sie eine Konfiguration erstellen als /user/english.yoursite.com/config/system.yaml..

languages:
   supported:
      - fr
      - en

Es wird die umgekehrte Sprachreihenfolge verwendet. Im obigen Code ist fr die Standardsprache. Wenn Sie die Reihenfolge ändern, indem Sie en oben und fr unten halten, wird en zur Standardsprache.

Sprachaliasrouten

Es ist sehr schwierig, zwischen verschiedenen Sprachversionen derselben Seite zu wechseln Page.rawRoute()Methode auf Ihrem Seitenobjekt. Es erhält dieselbe Rohroute für verschiedene Sprachübersetzungen einer einzelnen Seite. Setzen Sie den Sprachcode in den Vordergrund, um eine korrekte Route zu erhalten.

Wenn Sie auf einer französischen Seite mit einer benutzerdefinierten Route von - sind

/ma-page-francaise-personnalisee

Die englische Seite hat die benutzerdefinierte Route von -

/my-custom-french-page

Sie erhalten die Rohseite der französischen Seite und das könnte sein -

/blog/custom/my-page

Fügen Sie dann einfach die gewünschte Sprache hinzu, die Ihre neue URL sein wird.

/en/blog/custom/my-page

Übersetzungsunterstützung

Grav bietet einen einfachen Mechanismus für die Bereitstellung von Übersetzungen in Twig über PHP, die in Themen und Plugins verwendet werden können. Es ist standardmäßig aktiviert und verwendetenSprache, wenn keine bestimmte Sprache definiert ist. Gehen Sie zum Aktivieren oder Deaktivieren zur Datei system.yaml und nehmen Sie die Änderungen vor.

languages:
   translations: true

Sie können Übersetzungen auf viele Arten und an verschiedenen Orten bereitstellen. Der erste Platz ist der System- / Sprachordner. Dateien müssen in erstellt werdenen.yaml, fr.yamlusw. Format. Jede yaml-Datei muss aus einem Array oder verschachtelten Arrays von Schlüsselpaaren bestehen.

SITE_NAME: My Blog Site
HEADER:
   MAIN_TEXT: Welcome to my new blog site
   SUB_TEXT: Check back daily for the latest news

Session Based Active Language

Sie können den sitzungsbasierten Speicher der aktiven Sprache aktivieren. Um zu aktivieren, müssen Sie habensession : enables : true in system.yaml und aktivieren Sie die Spracheinstellung.

languages:
   session_store_active: true

Language Switcher

Installieren Sie ein Sprachumschalt-Plugin von GPM.

Setup with language specific domains

Umgebungsbasierte Sprachbehandlungskonfiguration zum Zuweisen von Standardsprachen. Fügen Sie diese Option Ihrer system.yaml hinzu. es muss auf true gesetzt werden.

pages.redirect_default_route: true

Fügen Sie Folgendes zu Ihrem hinzu .htaccess Datei und wählen Sie die Sprach-Slugs und Domain-Namen gemäß Ihren Anforderungen.

# http://www.cheat-sheets.org/saved-copy/mod_rewrite_cheat_sheet.pdf
# http://www.workingwith.me.uk/articles/scripting/mod_rewrite

# handle top level e.g. http://Grav-site.com/de
RewriteRule ^en/?$ "http://Grav-site.com" [R = 301, L]
RewriteRule ^de/?$ "http://Grav-site.de" [R = 301, L]

# handle sub pages, exclude admin path
RewriteCond %{REQUEST_URI} !(admin) [NC]
RewriteRule ^en/(.*)$ "http://Grav-site.com/$1" [R = 301, L]
RewriteCond %{REQUEST_URI} !(admin) [NC]
RewriteRule ^de/(.*)$ "http://Grav-site.de/$1" [R = 301, L]