laravel-langman

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:

Aplicación multi-idioma en Laravel 5.1

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

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