Establecer el idioma de la sesión según el perfil del usuario

world-flags-buttons-594x288

En esta sencilla entrada quiero dejarles la forma para establecer el idioma del usuario en la sesión con Symfony y FOSUserBundle.

La idea es que en el perfil del usuario se añada un campo donde se pregunte el idioma predeterminado que quiere usar el usuario, el formulario de registro seria más o menos así:

Formulario de registro

El campo locale es el que se almacenará y lo tomará Symfony en la sesión.

Ahora, la idea es crear dos Listener en el proyecto, el primero es LocaleListener que trae el atributo locale de la sesión y se similar a esto:

El segundo listener UserLocaleListener y lo que hace es traer el parámetro locale del perfil del usuario y se ve así:

Y por último nos queda agregar este par de servicios en services.yml

Y eso es todo!

Les dejó los gist de los tres archivos:

services.ymlLocaleListener.phpUserLocaleListener

Una aclaración, esto lo ví en algún lado, no es de mi autoría, así que si alguien sabe del dueño por favor me informa para darle el crédito.

Saludos!

Deja un comentario