Laravel tiene una estructura que nos permite incorporar archivos de tropicalización o localización, con estos archivos podemos ajustar el contenido para sea visto en varios idiomas, con ello solo tendremos que cargar un archivo con las traducciones.
Crear los archivos de idiomas
La instalación estándar de Laravel debe habernos dejado una carpeta llamada lang dentro de la carpeta app, ahí debemos crear si no existen ya, las carpetas “en”, “es”, “de”, correspondientes para inglés, español y alemán respectivamente.
Dentro de cada una de estas 3 carpetas vamos a crear un archivo llamado localized.php de esta forma podremos colocar el contenido de cada idioma, veamos que llevará cada uno:
En el archivo localized.php que está en la carpeta “en” vamos a colocar lo siguiente:
<?php return array( 'saludo' => 'Good morning :nombre', 'cortesia' => 'Nice to meet you!', 'despedida' => 'Goodbye, see you tomorrow.', );
En el mismo archivo pero de la carpeta “es” iría lo siguiente:
<?php return array( 'saludo' => 'Buenos días :nombre', 'cortesia' => 'Gusto en conocerlo', 'despedida' => 'Hasta mañana.', );
Finalmente vamos con la carpeta “de” que corresponde al alemán.
<?php return array( 'saludo' => 'Guten morgen :name', 'cortesia' => 'Es freut mich!', 'despedida' => 'Tag. Bis bald.', );
Lo que podemos destacar es que hemos creado 3 arrays que contienen los mismos elementos, solo que el contenido de estos elementos es diferente en función del idioma.
Generar las rutas
Ahora vamos a generar las rutas adecuadas para servir los idiomas en nuestras vistas. En primera instancia debemos crear la ruta que nos permita acceder a una vista de elección de idiomas, luego otra ruta que reciba el idioma elegido y lo establezca, veamos entonces:
Luego vamos a hacer una ruta que construya una sesión con el idioma electo por el usuario, en caso que no haya una sesión se tomará el idioma español por defecto, veamos:
Ahora debemos crear las vistas, iniciaremos con la vista de elección de idioma, está la vamos a crear en una nueva carpeta llamada idiomas dentro de app/views y se llamará elegir.php, su contenido es sencillo, un formulario con un elemento de selección con los 3 idiomas, veamos:
Ahora vamos a crear la vista localized que activamos en las rutas, en la misma carpeta app/views/idiomas vamos a generar un archivo llamado localized.php, dentro lo que haremos será llamar a los elementos del array que habíamos construido al inicio del tutorial, la idea es que imprima el contenido según el idioma elegido en la pantalla elegir.php.
Con esto según el idioma que tengamos obtendremos un saludo diferente, si recordamos en los arrays en el elemento saludo habíamos dejado algo que se llamaba :nombre, esto es un placeholder que nos permite insertar un contenido de forma dinámica, por eso en nuestra última vista cuando llamamos a ese elemento le pasamos una array con un elemento nombre.
Si hemos sido observadores vimos que dejamos por fuera el idioma alemán del selector, esta va a ser la práctica que deben realizar para afirmar los conocimientos, incluir el idioma alemán y hacer que funcione.
De esta forma finalizamos este tutorial, donde ya sabemos incluir varios idiomas en nuestras aplicaciones en Laravel.