Aplicación multi idioma en Codeigniter 4

Aplicación multi idioma en Codeigniter 4
Desarrollar una aplicación con soporte multi idioma en Codeigniter 4 es cosa de niños, y eso no significa que no sea potente, todo lo contrario.

La nueva versión de Codeigniter utiliza la clase MessageFormatter y el formato ICU, gracias a eso podemos crear cosas realmente complejas para nuestras traducciones, prácticamente sin límites, lo vamos a ver.

Los problemas de desarrollar aplicaciones multi idioma es que para hacerlo bien tenemos que tener en cuenta muchas cosas, la principal de ellas probablemente es que necesitemos utilizar comodines que sean reemplazados por valores dinámicos.

Pues no te preocupes, vas a tener todo lo que puedas necesitar y más, no olvidemos que la creación de un sitio multi idioma puede acarrear mucho trabajo extra, entre las más complejas el manejo de la currency de cada country, en Codeigniter 4 no tendrás problema para manejar esa información.

Rutas con soporte multi idioma en Codeigniter 4

Algo muy interesante que nace en Codeigniter 4 es el comodín {locale} que tenemos disponible en las rutas, por ejemplo, si queremos que nuestra aplicación pueda establecer el locale de la aplicación simplemente debemos hacer lo siguiente en el archivo application\Config\Routes.php.

Ahora la aplicación una vez encuentre la ruta tudominio.com/es/products irá a buscar todos los archivos de traducción del directorio application\Language\es, si el idioma seleccionado no está configurado cogerá el que hemos configurado por defecto, sencillamente genial.

Configurar la localización en Codeigniter 4

Para poder configurar el soporte de localización en Codeigniter 4 simplemente debemos abrir el archivo application\Config\App.php y modificar lo siguiente.

La propiedad $defaultLocale representa el lenguaje y la ubicación por defecto de todos nuestros usuarios.

Si quieres más información acerca de la propiedad $negotiateLocale te recomiendo esta lectura la cual es muy interesante y está escrita por el desarrollador principal de Codeigniter 4, Lonnie Ezell.

La propiedad $supportedLocales nos permite definir las ubicaciones disponibles para traducir nuestra aplicación.

Por lo tanto, con la configuración que hemos aplicado nuestra aplicación podrá interceptar el header Accept-Language con el objeto Request y así identificar el lenguaje del usuario, tendremos la aplicación en español por defecto y los locales disponibles serán español e inglés.

Archivos de traducción en Codeigniter 4

Los archivos de traducción en Codeigniter 4 están ubicados por defecto en el directorio application/Language, dentro de ese directorio tendremos un directorio para cada idioma, es, en, fr etc.

Organizar nuestras traducciones es muy sencillo ya que simplemente debemos colocar los archivos que queramos dentro de cada directorio que represente un idioma, por ejemplo, para las traducciones de los errores de formularios en español lo idea sería crear un archivo de la siguiente forma, application\Language\es\formsErrors.php, veremos que acceder a ese archivo será muy sencillo.

Soporte multi idioma en Codeigniter 4

Ahora que ya sabemos cómo podemos organizar nuestros archivos vamos a crear un archivo llamado dates.php dentro de application\Language\es con el siguiente código, aquí tendremos traducidas y formateadas las fechas.

Si has trabajado con versiones anteriores de Codeigniter te puede sonar, pero no del todo, Codeigniter 4 utiliza la clase MessageFormatter para formatear las traducciones con la siguiente línea.

El primer argumento es el idioma seleccionado, el segundo la template utilizada, para la key shortTime sería “La hora actual es {0, time, short}.” y el último los argumentos, para este caso vamos a utilizar la función time cómo veremos.

Y eso en español nos devolverá “La hora actual es 20:06”, no necesitamos hacer nada más, pero vamos a ver cómo utilizar todas las traducciones de ese archivo para entenderlo mejor.

¿Genial verdad?, puedes ver que para acceder a los archivos de traducción simplemente tenemos que utilizar el nombre del archivo, en este caso Dates, un punto y la traducción que deseemos utilizar, así de sencillo.

Crea otro archivo en el directorio de traducciones llamado App.php y añade el siguiente código.

Podemos ver que aquí tenemos más patrones, spellout(deletrear), ordinal(números ordinales), plural, number y currency, ¿cómo podemos utilizar estas traducciones?, simplemente utiliza el siguiente código.

Y de momento eso es todo, cómo puedes ver, Codeigniter 4 se está tomando muy en serio el desarrollo de la versión 4 y trata de falicitar la vida del programador pero a su vez añadir cosas muy potentes para que nuestro trabajo sea profesional y sencillo, en este caso queda claro que el soporte multi idioma en Codeigniter 4 es potente, no se puede pedir más..

Añade un comentario

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies
Curso Avanzado de Datatables
¿Quieres más información?