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]