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]