Source by @elisebouet

Multilenguaje en Kirby CMS

Guía de idiomas para tu proyecto web

Jorge Fco.™
3 min readJan 22, 2024

--

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.

--

--