Multilenguaje en CodeIgniter 4

Cómo trabajar los idiomas en CodeIgniter. Cómo tener tu aplicación preparada para ser traducida a varios idiomas. Multilenguaje en CodeIgniter 4.

Tutorial CodeIgniter 4

Para poder tener una aplicación en varios idiomas en CodeIgniter, hay que seguir tres pasos. Vamos a ver en esta pequeña guía cómo ponerlo en marcha, pero será en otro artículo donde veamos cómo cambiar de idioma a otro idioma. por lo pronto vamos a prepararlo todo.

Paso 1: Crear ficheros idiomas

Vamos a la carpeta siguiente:

/app/Language/

Dentro de esta carpeta, crearemos tantas carpetas como idiomas necesitemos. Las carpetas pueden tener el nombre que queráis, pero debe coincidir con el idioma.

Un ejemplo sería:

/app/Language/es/
/app/Language/en/
/app/Language/ca/

Pero también podríamos crearlas de la siguiente manera:

/app/Language/espanol/
/app/Language/english/
/app/Language/catala/

Por comodidad, siempre utilizo la primera versión. Lo único que cambiará és cómo llamaremos a los ficheros… por lo que como vas simple sea, mejor.

Ahora creamos dentro los fichero que contendrán las traducciones. Podéis crear todos los que necesitéis. Yo crearé uno como ejemplo.

/app/Language/es/Translate.php
/app/Language/en/Translate.php
/app/Language/ca/Translate.php

Fijaos que los ficheros Translate.php, deben empezar en mayúscula.

Paso 2: Ponemos traducciones en ficheros creados

Dentro de estos ficheros, deberemos poner los literales a traducir.

El castellano:

/* Fichero: /app/Language/es/Translate.php */
<?php
return [
    "home"      => "Inicio",
    "siguiente"      => "siguiente"
];
?>

El fichero inglés

/* Fichero: /app/Language/en/Translate.php */
<?php
return [
    "home"      => "Home",
    "siguiente"      => "next"
];
?>

El fichero en catalán

/* Fichero: /app/Language/ca/Translate.php */
<?php
return [
    "home"      => "Inici",
    "siguiente"      => "següent"
];
?>

Fijaos la estructura que se sigue igual en los tres ficheros de las tres carpetas correspondients a los tres idiomas.

Paso 3: Definir idioma por defecto

Ahora vamos a definir el idioma por defecto. Nos vamos al fichero de configuración de CodeIgniter:

/app/Config/App.php

Dentro de este fichero busquemos y cambiemos las siguientes variables:

/* Fichero : /app/Config/App.php */
[...]

public $defaultLocale = 'en';

[...]

De esta manera, indicamos a CodeIgniter que coja el inglés como idioma predeterminado. Fijaos que coincide con las carpetas creadas !!!

Paso 4: Escribir en las vistas los textos a traducir

Ahora ya tenemos los ficheros de traducción, y un idioma definido como determinado. Ahora vamos a las vistas para poner lo necesario para que imprima el texto deseado según el idioma:

/* Fichero : /app/Views/welcome_message.php */

[...]

<footer>
	<div class="copyrights">
		<p><?php echo lang('Translate.home'); ?></p>
		<p><?php echo lang('Translate.siguiente'); ?></p>
	</div>
</footer>

[...]

Si os fijáis, CodeIgniter como le hemos indicado en el fichero de configuración que utilice el en, irá a la carpeta en. Ahora, en la vista escribimos:

<?php echo lang('Translate.home'); ?>

En el que se indica el fichero a coger (Translate), y el literal a traducir (home).

Pues eso es todo para que entendáis la estructura inicial para trabajar con idiomas. En el próximo artículo, veremos como ir cambiando de idioma.

Espero que os haya sido de utilidad el artículo para trabajar el multilenguaje en CodeIgniter 4.


Más información