Grav: varios idiomas

Multi-Language se define como el uso de diferentes idiomas en su sitio web. Aprenderemos diferentes procedimientos que le ayudarán a utilizar varios idiomas en su sitio Grav.

Conceptos básicos de varios idiomas

Básicamente, Grav necesita un archivo .md para la representación de cualquier página. Cuando habilita la compatibilidad con varios idiomas, buscará un archivo comodefault.en.md o default.fr.md..

Configuración de idioma

Primero debe establecer alguna configuración básica de idioma en su user/config/system.yamlarchivo. archivo.

Language:
   Supported:
      - en
      - Fr

Al hacer esto, ha habilitado la compatibilidad con varios idiomas en Grav. En el código anterior,en significa idioma inglés y frsignifica francés. Esto significa que su sitio admitirá estos dos idiomas. Aquí el idioma predeterminado es en (inglés) . Si escribe Fr (francés) primero, ese será su idioma predeterminado.

Páginas en varios idiomas

Si su idioma predeterminado está configurado como English, entonces Grav buscará default.en.mdarchivo. Si ese archivo no se encuentra, entonces Grav busca otro idioma que haya configurado. Si no se encuentran los dos idiomas, busca eldefault.md archivo.

Example

archivo default.en.md

---
title: Home
---

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

El código anterior generará la siguiente salida:

Para el francés como idioma predeterminado, el archivo default.fr.md será:

---
titre: Accueil
---

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

El código anterior generará la siguiente salida:

Idioma activo a través de URL

Si desea actualizar una URL de su sitio web con un código de idioma, siga estos pasos:

Example

Si desea que su sitio esté en inglés, escriba la siguiente línea en su navegador:

http://www.mysite.com/en

Si desea que su sitio esté en francés, escriba la siguiente línea en su navegador:

http://www.mysite.com/fr

Idioma activo a través del navegador

Grav tiene la capacidad de obtener http_accept_languagevalorarlos y compararlos con el lenguaje admitido actual. Si desea que esto funcione, habilite suuser/system.yaml archivo en la sección de idioma como -

language :
   http_accept_language : true

Página de inicio basada en el idioma

Para tener una página de inicio basada en el idioma, debe habilitar el siguiente código en su site.yaml archivo -

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

De esta forma, Grav averiguará qué idioma utilizar de los idiomas activos.

El siguiente código obligará a Grav a redirigirlo a su ruta de idioma predeterminada. Y la opción include_route obliga a agregar el código de idioma en su url comohttp://www.mysite.com/en/home

languages:
   home_redirect:
      include_lang: true
      include_route: false

Plantillas Twig basadas en idiomas

Si su archivo es default.en.md , entonces Grav buscará un archivo twig como default.html.twig . Cuando necesite un archivo twig específico de un idioma, debe cargarlo en el nivel raíz de la carpeta del idioma. Si su tema actual está entemplates/default.html.twig debes crear un templates/en/ carpeta y coloque su carpeta específica en inglés en ella como: templates/en/default.html.twig

Selector de idioma

El complemento de cambio de idioma está disponible en Grav Package Manager (GPM) .

Traducciones a través de Twig

Utilice el filtro twig y la función t () . Ambos funcionan de manera similar. Si tiene otro archivo twig, entonces le permite traducir desde una matriz.

Traducciones de idiomas de temas y complementos

Proporcione sus traducciones en complementos y temas creando un languages.yaml archivo en la raíz de su tema o complemento (/user/plugins/error/languages.yaml) y debe contener todos los idiomas admitidos.

Anulaciones de traducción

Si desea anular la traducción, debe poner el par de valores en el archivo de idioma en su carpeta usuario / idiomas / .

Avanzado

Environment – Based Language Handling

Es posible dirigir a los usuarios a la versión correcta de su sitio según la URL. Si la URL de su sitio eshttp://english.yoursite.com, un alias para tu estándar http://www.yoursite.com, luego puede crear una configuración como /user/english.yoursite.com/config/system.yaml..

languages:
   supported:
      - fr
      - en

Utiliza el orden de los idiomas invertido. En el código anterior, fr es el idioma predeterminado. Si cambia el orden manteniendo en en la parte superior y fr en la parte inferior, en se convierte en el idioma predeterminado.

Rutas de alias de idioma

Es muy difícil cambiar entre diferentes versiones de idiomas de la misma página, puede usar el Page.rawRoute()método en su objeto de página. Obtiene la misma ruta sin procesar para las traducciones de diferentes idiomas de una sola página. Ponga el código de idioma al frente para obtener una ruta adecuada.

Si está en una página en francés con una ruta personalizada de:

/ma-page-francaise-personnalisee

La página en inglés tiene la ruta personalizada de -

/my-custom-french-page

Obtienes la página sin procesar de la página en francés y eso podría ser:

/blog/custom/my-page

Luego, simplemente agregue el idioma que desee, que será su nueva URL.

/en/blog/custom/my-page

Soporte de traducciones

Grav proporciona un mecanismo simple para proporcionar traducciones en Twig a través de PHP para su uso en temas y complementos. Está habilitado por defecto y usaenidioma si no se define un idioma específico. Para habilitar o deshabilitar, vaya al archivo system.yaml y realice los cambios.

languages:
   translations: true

Puede proporcionar traducciones de muchas formas y en diferentes lugares. El primer lugar es la carpeta del sistema / idiomas. Los archivos deben crearse enen.yaml, fr.yaml, etc. formato. Cada archivo yaml debe constar de una matriz o matrices anidadas de pares de claves.

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

Puede activar el almacenamiento basado en sesiones del idioma activo. Para habilitar debe tenersession : enables : true en system.yaml y habilite la configuración de idioma.

languages:
   session_store_active: true

Language Switcher

Instale un complemento de cambio de idioma de GPM.

Setup with language specific domains

Tener una configuración de manejo de idioma basada en el entorno para asignar idiomas predeterminados. Agregue esta opción a su system.yaml; debe establecerse en verdadero.

pages.redirect_default_route: true

Agregue lo siguiente a su .htaccess archivar y elegir los slugs de idioma y los nombres de dominio de acuerdo con sus requisitos.

# 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]