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 -

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 -

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]