DEV Community

Johan Garcia
Johan Garcia

Posted on

Internacionalización en Aplicaciones React con i18next

Cada dia el mundo esta conectado, ofrecer contenido accesible en múltiples idiomas se ha convertido en una necesidad fundamental para aplicaciones modernas. En este artículo, abordaremos cómo implementar internacionalización en aplicaciones React utilizando i18next, una biblioteca flexible y poderosa para la gestión de traducciones.

¿Qué es la internacionalización de aplicaciones web?

Con la internacionalización (i18n) damos la capacidad a nuestras aplicaciones de ser adaptables a diferentes idiomas y regiones sin la necesidad de realizar cambios en su código fuente.

Esto incluye la traducción de textos, la adaptación de formatos de fecha, moneda, números y cualquier otro aspecto que varíe según la localización cultural de los usuarios.

¿Qué es i18next y por qué utilizarlo?

i18next es una solución popular de internacionalización que simplifica la gestión de traducciones en aplicaciones web, móviles y de escritorio. Ofrece soporte para:

  • Carga dinámica de idiomas.
  • Interpolación de variables en textos.
  • Gestor de recursos centralizado para traducciones.
  • Cambio de idioma en tiempo real.

Existen otras opciones a i18next, como lo son react-intl, LinguiJS, Polyglot.js, MessageFormat.js y Globalize, pero nos centraremos en i18next, ya que es una librería muy popular, cuenta con un buen número de descargas semanales en npm.js y destaca por su simplicidad a la hora de ser configurada en una aplicación de React.js.

A lo largo de este artículo, exploraremos cómo configurar y utilizar i18next en una aplicación React paso a paso.

Instalación y configuración

Comenzaremos instalando i18next junto con su paquete adaptador para React:

npm install

Una vez instalados los paquetes necesarios para la configuración de i18next, configuraremos la instancia principal de i18next en un archivo dedicado, por ejemplo, i18n.js.

i18n.js.

Ahora crearemos los archivos que van a contener nuestras traducciones (es.json y en.json). Para ello, crearemos una carpeta en la raíz de nuestro proyecto React.js llamada locale.

folder tree

es.JSON

es.JSON

en.JSON

en.JSON

Configurar el proveedor global

Para que las traducciones sean accesibles en toda la aplicación, envolveremos el componente principal con el proveedor I18nextProvider. Este paso se realiza en el archivo principal, como index.jsx.

index.jsx

Con esta configuración, todas las traducciones estarán disponibles en los componentes React.

Uso en componentes

Para traducir textos en los componentes, utilizaremos el hook useTranslation que proporciona react-i18next.

Uso en componentes

En este ejemplo, t es la función que busca las traducciones en el idioma actual.

Cambiar de idioma

Podemos implementar una funcionalidad para cambiar el idioma de la aplicación en tiempo real utilizando el método changeLanguage de la instancia de i18next:

changinglanguage

Con esto, los usuarios podrán alternar entre idiomas sin recargar la aplicación.

Conclusión

En este artículo, hemos explorado los fundamentos para implementar internacionalización con i18next en una aplicación React. Hemos configurado el entorno para que funcione con I18nextProvider, pero existen enfoques diferentes, como Context API o HOC (Higher-Order Component). Si desean explorar estos acercamientos, pueden consultarlos en la documentación de react-i18next.

Top comments (0)