Con las funciones que ofrece Laravel de manera nativa para el manejo de la localización, es decir, el lugar donde está siendo consumida la aplicación y con esto, poder ofrecer otro servicio, como lo es el de la traducción de textos de manera automática en base a la localización o por selección del usuario. En este apartado, veremos implementar ambos temas.
Laravel proporciona dos formas de gestionar cadenas de traducción que son las empleadas para mostrar los textos traducidos de nuestra aplicación en diferentes idiomas; en ambos casos, debemos de crear una carpeta para almacenar los mismos:
/lang
En donde creamos nuestro archivos de traducción ya sean PHP:
/lang
/en
messages.php
/es
messages.php
O en JSONs:
/lang
en.json
es.json
En el libro, usaremos el formato de los archivos en PHP; puedes crear tantos como quieras y modularizar los mensajes según nuestras preferencias.
Finalmente, somos nosotros los que debemos de definir las cadenas traducidas y personalizar las mismas cambiando el texto predefinido por la aplicación y creando las propias; mediante la pareja de clave/valor, de indica la clave y la traducción; por ejemplo:
return [
'welcome' => 'Welcome to our application!',
];
De forma predeterminada, al momento de crear un proyecto en Laravel no incluye la carpeta de lang; para generarla, tenemos el siguiente comando de artisan:
$ php artisan lang:publish
El comando lang:publish creará el directorio lang en su aplicación y publicará el conjunto predeterminado de archivos de idioma utilizados por Laravel:
Las cadenas de texto para las traducciones se almacenan en archivos en la carpeta de lang, en estos archivos, se almacenan textos que son internos a Laravel y provistos por nosotros:
/lang
/en
messages.php
/es
messages.php
Creemos los siguientes:
lang/en/messages.php
<?php
return [
'welcome' => 'Welcome to our application!',
];
lang/es/messages.php
<?php
return [
'welcome' => 'Bienvenido a nuestra aplicación!',
];
Y los empleamos a lo largo de la aplicación:
echo __('messages.welcome')
Como puedes apreciar, debemos de colocar el nombre del archivo y la clave como clave para la función de __() la cual devuelve el texto traducido; este esquema, lo podemos emplear tanto en el controlador y similar como en la vista.
- Andrés Cruz
Este material forma parte de mi curso y libro completo; puedes adquirirlos desde el apartado de libros y/o cursos Curso y Libro Laravel 11 con Tailwind Vue 3, introducción a Jetstream Livewire e Inerta desde cero - 2025.
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter
Acepto recibir anuncios de interes sobre este Blog.
!Cursos desde!
10$
En Udemy
Quedan 3d 00:44!
!Cursos desde!
4$
En Academia
Ver los cursos!Libros desde!
1$
Ver los libros