Cuando trabajas con aplicaciones multi-idioma en Laravel, mantener al día las traducciones resulta ser algo confuso y en ocasiones puede que se nos olvide agregar alguna traducción. laravel-langman (Language Manager) es un paquete que facilita la sincronización de los archivos de idiomas y permite crear las traducciones correspondientes, todo esto desde la consola haciendo uso de artisan.
Para más información sobre el manejo de aplicaciones multi-idioma en Laravel puedes visitar el siguiente tutorial:
Instalación
Puedes instalar este paquete vía Composer:
$ composer require themsaid/laravel-langman
Una vez instalado, debes agregar el ServiceProvider al archivo config/app.php en la sección de «providers»:
Themsaid\Langman\LangmanServiceProvider::class
Finalmente, para copiar los archivos del paquete necesarios a nuestra aplicación se ejecuta:
php artisan vendor:publish --provider="Themsaid\Langman\LangmanServiceProvider"
Trabajando con laravel-langman
Podemos verificar si las llaves en cada uno de los archivos de idioma están sincronizadas correctamente, para ello usamos:
$ php artisan langman:sync Reading translation keys from views... Done!
La sincronización se refiere a que cada llave se encuentre en todos los diferentes idiomas de la aplicación.
Para verificar que llaves tenemos en cada uno de los archivos de idiomas, por ejemplo auth.php (este archivo se crea de forma automática al instalar un nuevo proyecto de laravel dentro de /resources/lang/en)
$ php artisan langman:show auth +----------+----------------------------------------------------------------+-------------+ | key | en | es | +----------+----------------------------------------------------------------+-------------+ | failed | These credentials do not match our records. | MISSING | | throttle | Too many login attempts. Please try again in :seconds seconds. | MISSING | +----------+----------------------------------------------------------------+-------------+
Como puedes ver, no hay traducción al español para «failed» y «throttle».
Para traducir una llave en específico puedes usar:
php artisan langman:show auth auth.failed.es translation: []: > Las credenciales no coinciden con nuestros registros
El archivo resources/lang/es/auth.php debe existir, de lo contrario este comando arroja una excepción.
Luego puedes verificar nuevamente las traducciones para este archivo:
$ php artisan langman:show auth +----------+----------------------------------------------------------------+------------------------------------------------------+ | key | en | es | +----------+----------------------------------------------------------------+------------------------------------------------------+ | failed | These credentials do not match our records. | Las credenciales no coinciden con nuestros registros | | throttle | Too many login attempts. Please try again in :seconds seconds. | MISSING | | 0 | MISSING | 1 |
Puedes eliminar una llave con:
$ php artisan langman:remove users.name
Si tus archivos de traducciones son demasiado largos y has olvidado el nombre de una llave, puedes buscar registros de la siguiente manera:
$ php artisan langman:find 'credenciales' +-------------+---------------------------------------------+------------------------------------------------------+ | key | en | es | +-------------+---------------------------------------------+------------------------------------------------------+ | auth.failed | These credentials do not match our records. | Las credenciales no coinciden con nuestros registros | +-------------+---------------------------------------------+------------------------------------------------------+
Puedes encontrar este paquete en github: https://github.com/themsaid/laravel-langman
Es una herramienta muy útil y en extremo sencilla de usar, en unos cuantos minutos ya puedes estar configurando los archivos de idiomas de tu aplicación como nunca antes.
Si estas trabajando en proyectos multi-idioma, no esperes más, prueba este tutorial y danos tu opinión en la sección de comentarios.
Material recomendado
- Instalación y uso de componentes para Laravel
- Curso de creación de componentes para PHP y Laravel
- Aplicación multi-idioma en Laravel 5.1
- Cómo usar el componente de traducciones de Laravel
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.
Lección anterior Como integrar Google reCAPTCHA en formularios de login y registro de Laravel 5.2 Lección siguiente Cómo crear un proyecto de Laravel con PhpStorm