Multilenguaje en Kirby CMS
Guía de idiomas para tu proyecto web
Kirby CMS es un gestor de contenido para desarrollar proyectos web autoadministrables. Existen requerimientos por parte de los clientes para un sitio web con múltiples idiomas, debido a que su marca o negocio son internacionales. Kirby contiene una solución bastante ágil y amigable para construir una página web con varios idiomas.
🔍 Es importante mencionar antes de iniciar con los primeros pasos de desarrollo, definir si el proyecto requiere múltiples lenguajes desde
un inicio. Debido a que si se realiza más adelante puede generar conflictos
con el contenido actual.
Configuración
El primer paso para activar múltiples idiomas en tu proyecto es agregar la siguiente línea de código en el archivo config que se encuentra en la siguiente ruta:
<?php
// 📁 site/config/config.php
return [
'languages' => true,
];
?>
Una vez activada la opción de idiomas pasaremos a definir los lenguajes que utilizaremos. Para ello necesitamos crear una carpeta llamada languages, la cual almacenará los archivos de cada lenguaje que usaremos.
Por ejemplo:
Si requerimos de utilizar dos idiomas como el español e inglés, crearemos dos archivos en la carpeta languages como se muestra a continuación.
📁 site/languages/
|–– es.php
|-- en.php
Una vez que creamos los archivos continuaremos con añadir la configuración de cada idioma, la cual contiene algunos valores que podemos modificar.
Es importante establecer cuál es el idioma primario por default, con el fin de poder identificar el lenguaje principal y tomar los demás idiomas como secundarios. También contamos con la opción de elegir la URL para cada idioma y optar por el enlace que más nos convenga para temas de posicionamiento.
<?php
// 📁 site/languages/es.php
return [
'code' => 'es',
'default' => true,
'direction' => 'ltr',
'locale' => [
'LC_ALL' => 'es_ES'
],
'name' => 'Español',
'translations' => [
//
],
'url' => '/'
];
?>
Variables
En un proyecto web multilingüe se pueden utilizar variables específicas para palabras muy simples como lo son botones, campos de un formulario, etiquetas y títulos del pie de página. Estas variables se necesitan agregar de forma manual en su respectivo archivo que se encuentra guardado en la carpeta de site/languages.
<?php
// 📁 site/languages/es.php
return [
'code' => 'es',
'default' => true,
'direction' => 'ltr',
'url' => '/'
'locale' => [
'LC_ALL' => 'es_ES'
],
'translations' => [
'change' => 'Cambiar',
'confirm' => 'OK',
'copy' => 'Copiar',
'create' => 'Crear'
]
];
Para usar las variables en las plantillas del proyecto tenemos que mandarlas llamar de la siguiente manera.
<button type="submit" name="change" class="button">
<?= t('change') ?>
</button>
Cambio de idioma
El usuario tiene que disponer de la opción de cambio de idioma de una manera fácil y sencilla la cual siempre necesita estar visible durante la navegación del sitio web. Para ello es necesario mostrar las opciones de la siguiente manera.
<nav class="languages">
<ul role="options">
<?php foreach($kirby->languages() as $language): ?>
<li <?php e($kirby->language() == $language, ' class="is--active"')?>
role="option">
<a href="<?= $language->url() ?>" hreflang="<?php echo $language->code() ?>">
<?= html($language->name()) ?>
</a>
</li>
<?php endforeach ?>
</ul>
</nav>
Conclusión
El mejor escenario para desarrollar un sitio web con múltiples idiomas es iniciar con la información del idioma principal del proyecto. Una vez que esté aprobada podemos continuar con la traducción del contenido para los demás idiomas.
Recordemos que Kirby CMS no traduce la información del sitio web en automático es por ello que se requiere subir la versión de cada idioma. No es necesario duplicar el sitio web y complicar tu proyecto porque podemos tener todo centralizado en un solo proyecto facilitando la administración y actualización de contenido.