Agregar Localizacion (i18n) basado en configuracion del navegador
Es un topico bastante interesante y que se alcanza de distintas formas.
- En el lado del cliente, tenemos librerias que nos proveen de helpers sencillos para poder reutilizarlos y escribir los mensajes
- En el lado del servidor lo mismo, hay librerias y formas de hacerlo por framework
Sin embargo, al estar trabajando bajo una comunicacion cliente-servidor con una API, como podemos lograr esto?
Pues hay varias formas, la primera es que todas las peticiones que vienen desde un navegador tienen el header Accept-Language el cual puede tomar valores como es-ES,es;q=0.9 o en-US,en;q=0.5, estos son de mucha ayuda para, por request, colocar el nombre de los mensajes, app, etc.
Otra forma es hacerlo guardando un campo de preferencias por usuario a nivel base de datos y con un middleware obtener los datos traducidos de cada uno de ellos
Lo mas viable es agregar un middleware que escucha al header Accept-Language y que retorna el mensaje adecuado para cada uno de ellos utilizando algun helper del framework, en laravel seria App::setLocale.