Grav - Multi langue
Le multilinguisme est défini comme l'utilisation de différentes langues sur votre site Web. Nous allons apprendre différentes procédures qui vous aideront à utiliser plusieurs langues dans votre site Grav.
Bases de plusieurs langues
Fondamentalement, Grav a besoin d'un fichier .md pour la représentation de n'importe quelle page. Lorsque vous activez la prise en charge multilingue, il recherchera un fichier tel quedefault.en.md ou default.fr.md..
Configuration de la langue
Vous devez d'abord configurer une configuration de langue de base dans votre user/config/system.yamlfichier. fichier.
Language:
Supported:
- en
- Fr
En faisant cela, vous avez activé la prise en charge multilingue dans Grav. Dans le code ci-dessus,en signifie langue anglaise et frsignifie français. Cela signifie que votre site prendra en charge ces deux langues. Ici, la langue par défaut est en (anglais) . Si vous écrivez d'abord Fr (français) , cela devient votre langue par défaut.
Pages en plusieurs langues
Si votre langue par défaut est définie comme English, puis Grav recherchera default.en.mdfichier. Si ce fichier n'est pas trouvé, Grav recherche une autre langue que vous avez définie. Si les deux langues ne sont pas trouvées, il recherche ledefault.md fichier.
Example
fichier default.en.md
---
title: Home
---
# Grav is Running!
## You have installed **Grav** successfully
Le code ci-dessus générera la sortie suivante -
![](https://assets.edu.lat/grav/images/grav-multi-languages/grav-multi-languages-image3.jpg)
Pour le français comme langue par défaut, le fichier default.fr.md sera -
---
titre: Accueil
---
# Grav est en marche!
## Vous avez installé ** ** Grav succès
Le code ci-dessus générera la sortie suivante -
![](https://assets.edu.lat/grav/images/grav-multi-languages/grav-multi-languages-image2.jpg)
Langue active via URL
Si vous souhaitez mettre à jour une URL vers votre site Web avec un code de langue, procédez comme suit:
Example
Si vous souhaitez que votre site soit en anglais, saisissez la ligne ci-dessous dans votre navigateur -
http://www.mysite.com/en
Si vous souhaitez que votre site soit en français, saisissez la ligne ci-dessous dans votre navigateur -
http://www.mysite.com/fr
Langue active via le navigateur
Grav a la capacité d'obtenir le http_accept_languagevaleur et comparez-les pour présenter la langue prise en charge. Si vous souhaitez que cela fonctionne, activez votreuser/system.yaml fichier dans la section langue comme -
language :
http_accept_language : true
Page d'accueil basée sur la langue
Pour avoir une page d'accueil basée sur la langue, vous devez activer le code suivant dans votre site.yaml fichier -
home:
aliases:
en: /homepage
fr: /page-d-accueil
De cette façon, Grav découvrira quelle langue utiliser parmi les langues actives.
Le code suivant forcera Grav à vous rediriger vers votre itinéraire de langue par défaut. Et l' option include_route oblige à ajouter le code de langue dans votre URL commehttp://www.mysite.com/en/home
languages:
home_redirect:
include_lang: true
include_route: false
Modèles Twig basés sur la langue
Si votre fichier est default.en.md , alors Grav recherchera un fichier twig comme default.html.twig . Lorsque vous avez besoin d'un fichier twig spécifique à une langue, vous devez le télécharger à la racine du dossier de langue. Si votre thème actuel est entemplates/default.html.twig vous devez créer un templates/en/ dossier et placez-y votre dossier spécifique à l'anglais comme suit: templates/en/default.html.twig
Changeur de langue
Le plugin de changement de langue est disponible sur Grav Package Manager (GPM) .
Traductions via Twig
Utilisez le filtre brindille et la fonction t () . Les deux fonctionnent de manière similaire. Si vous avez un autre fichier twig, il vous permet de traduire à partir d'un tableau.
Traductions de plugins et de langues de thème
Fournissez vos traductions dans des plugins et des thèmes en créant un languages.yaml à la racine de votre thème ou plugin (/user/plugins/error/languages.yaml) et doit contenir toutes les langues prises en charge.
Remplacements de traduction
Si vous souhaitez remplacer la traduction, vous devez placer la paire de valeurs dans le fichier de langue dans votre dossier utilisateur / langues / .
Avancée
Environment – Based Language Handling
Il est possible de diriger les utilisateurs vers la version correcte de votre site en fonction de l'URL. Si l'URL de votre site esthttp://english.yoursite.com, un alias pour votre standard http://www.yoursite.com, vous pouvez alors créer une configuration comme /user/english.yoursite.com/config/system.yaml..
languages:
supported:
- fr
- en
Il utilise l'ordre des langues inversé. Dans le code ci-dessus, fr est la langue par défaut. Si vous modifiez l'ordre en gardant en en haut et fr en bas, alors en devient la langue par défaut.
Itinéraires d'alias de langue
Il est très difficile de basculer entre les différentes versions linguistiques d'une même page, vous pouvez utiliser le Page.rawRoute()méthode sur votre objet de page. Il obtient le même itinéraire brut pour différentes traductions linguistiques d'une seule page. Mettez le code de langue à l'avant pour obtenir un itinéraire approprié.
Si vous êtes sur la page en français avec un itinéraire personnalisé de -
/ma-page-francaise-personnalisee
La page anglaise a l'itinéraire personnalisé de -
/my-custom-french-page
Vous obtenez la page brute de la page française et cela pourrait être -
/blog/custom/my-page
Ensuite, ajoutez simplement la langue de votre choix qui sera votre nouvelle URL.
/en/blog/custom/my-page
Assistance aux traductions
Grav fournit un mécanisme simple pour fournir des traductions dans Twig via PHP à utiliser dans les thèmes et les plugins. Il est activé par défaut et utiliseenlangue si aucune langue spécifique n'est définie. Pour activer ou désactiver, accédez au fichier system.yaml et effectuez les modifications.
languages:
translations: true
Vous pouvez fournir des traductions de différentes manières et à différents endroits. Le premier emplacement est le dossier système / langues. Les fichiers doivent être créés dansen.yaml, fr.yaml, etc. format. Chaque fichier yaml doit être constitué d'un tableau ou de tableaux imbriqués de paires de clés.
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
Vous pouvez activer le stockage basé sur la session de la langue active. Pour activer, vous devez avoirsession : enables : true dans system.yaml et activez le paramètre de langue.
languages:
session_store_active: true
Language Switcher
Installez un plugin de changement de langue à partir de GPM.
Setup with language specific domains
Avoir une configuration de gestion des langues basée sur l'environnement pour attribuer des langues par défaut. Ajoutez cette option à votre system.yaml; il doit être défini sur true.
pages.redirect_default_route: true
Ajoutez ce qui suit à votre .htaccess fichier et choisissez les slugs de langue et les noms de domaine en fonction de vos besoins.
# 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]