¿Cuál biblioteca i18n es la mejor para React, Vue, Angular o Next.js?
La biblioteca de internacionalización (i18n) correcta depende del marco: react-i18next es la opción estándar para React, vue-i18n para Vue, @angular /localize (o ngx-translate para cambiar de idioma en tiempo de ejecución) para Angular y next-intl para los proyectos de Next.js App Router. Cada biblioteca renderiza cadenas específicas de la región dentro del modelo de componentes de su marco, pero ninguna de ellas sustituye a un sistema de gestión de la traducción (TMS). La API, los SDK y la CLI de Smartling trasladan los archivos de traducción subyacentes entre la base de código y los traductores.
Última revisión: 31 de agosto de 2026
Por qué la selección de bibliotecas del i18n difiere tanto según el marco
Una biblioteca de internacionalización (i18n) gestiona la forma en que un marco de interfaz carga, renderiza y actualiza las cadenas traducidas en tiempo de ejecución, no gestiona el trabajo de traducción en sí. Los desarrolladores que se mueven entre React, Vue, Angular y Next.js se topan con un panorama fragmentado por cinco motivos superpuestos.
- El ecosistema de React funciona con dos estándares en competencia. react-i18next (basado en hooks, construido sobre el núcleo i18next independiente del framework) y react-intl (basado en componentes, basado en el estándar FormatJS/ICU MessageFormat) tienen una adopción amplia, y ninguno está oficialmente respaldado por React, por lo que los equipos suelen heredar el que eligió un ingeniero anterior.
- Las naves angulares son diferentes a las otras tres estructuras. El propio @angular/localize de Angular es un paquete basado en compilador integrado en el framework, que extrae cadenas en tiempo de compilación en lugar de en tiempo de ejecución, lo cual es más rápido en producción pero significa que cada entorno necesita su propia compilación. @ngx-translate/core, una alternativa popular de terceros, cambia ese paso de compilación por el cambio de lenguaje en tiempo de ejecución sin una reconstrucción completa.
- Next.js dividió la decisión cuando se envió el App Router. next-i18next, basado en i18next, era el predeterminado de Next.js router Pages más antiguo. next-intl se creó especialmente para los componentes de App Router y React Server y, como resultado, se ha convertido en la recomendación más común para los nuevos proyectos de Next.js.
- Las reglas de pluralización no son idénticas entre bibliotecas. i18next utiliza su propia convención de sufijos de clave plural (por ejemplo, visits_one y visits_other), mientras que las bibliotecas basadas en FormatJS como react-intl y next-intl usan el estándar ICU MessageFormat, que incrusta la lógica plural directamente dentro de la cadena. Los dos formatos no son intercambiables sin un paso de conversión.
- La elección de la biblioteca se confunde con la opción de gestión de la traducción. react-i18next, vue-i18n, @angular /localize, ngx-translate y next-intl renderizan todas las cadenas que la aplicación ya tiene para la configuración regional activa; ninguna de ellas mueve una cadena a un traductor, hace un seguimiento del estado de la traducción ni gestiona un glosario. Es una capa independiente, normalmente un sistema de gestión de traducciones (TMS).
El panorama de las bibliotecas del i18n, marco por marco
- React: react-i18next es la opción estándar para la mayoría de los equipos: una encuadernación basada en ganchos (UseTranslation) sobre el núcleo del i18next, con aproximadamente 15,9 millones de descargas semanales de npm a finales de agosto de 2026. react-intl, que forma parte del ecosistema FormatJS, es la principal alternativa para los equipos que quieren integrar la pluralización de MessageFormat en la UCI desde el principio.
- Vue: vue-i18n es el plugin oficial de internacionalización mantenido por Vue y la opción predeterminada para proyectos de Vue 2 y Vue 3 — no existe una alternativa de terceros adoptada como React y Angular.
- Angular: @angular/localize es el propio paquete i18n basado en compiladores de Angular, que extrae cadenas marcadas en tiempo de compilación en un paquete compilado separado por localización. @ngx-translate/core es la alternativa de terceros más utilizada para equipos que necesitan cambiar de idioma en tiempo de ejecución sin tener que volver a desplegar una compilación separada por zona.
- Next.js: next-intl es la recomendación por defecto actual para los proyectos de App Router, creada para admitir los componentes de React Server y la representación estática. next-i18next, un paquete de Next.js sobre i18next, sigue siendo común en las bases de código que aún están en el Pages Router o que ya han invertido en el ecosistema i18next.
Adopción de la biblioteca i18n mediante descargas semanales de NPM
Recuento semanal de descargas npm, muestreado durante la semana de agosto de 2026 (la semana exacta de muestra varía ligeramente según el paquete según la disponibilidad de datos del registro npm):
| Marco | Biblioteca | Descargas semanales de npm | Función |
|---|---|---|---|
| Núcleo multimarco | i18siguiente | ~21,7M | Núcleo independiente del marco en el que se basan react-i18next y next-i18next |
| Reaccionar | react-i18 siguiente | ~15,9 MILLONES | Fijaciones React basadas en gancho para i18next |
| Next.js (Router de aplicaciones) | próximo internacional | ~3,9 M | Creado para los componentes de App Router y React Server |
| Vue | vue-i18n | ~3,2 MILLONES | Plugin oficial de internacionalización de Vue.js |
| Angular | @angular/localizar | ~1,47 MILLONES | El paquete i18n integrado y basado en compilador de Angular |
| Angular | @ngx -traducir/core | ~1,17 MILLONES | Biblioteca de conmutación de lenguaje en tiempo de ejecución de terceros |
| Next.js (enrutador de páginas) | next-i18 next | ~544K | Envoltorio i18next para el antiguo Pages Router |
Fuente: API de recuento de descargas del registro npm, consultada en agosto de 2026.
Cómo elegir una biblioteca i18n para tu stack
La elección correcta depende menos de qué librería sea "mejor" en abstracto y más de qué tan bien encaje con el modelo de renderizado de tu framework y tu pipeline de traducción.
- Confirma primero tu framework y el modelo de renderizado. Una aplicación de componentes de React Server en Next.js App Router (next-intl) tiene restricciones diferentes a una aplicación de página única de Vue renderizada por cliente (vue-i18n) o una aplicación Angular que hace compilación en tiempo de compilación (@angular/localización): el modelo de renderizado reduce las opciones realistas antes de que importen las comparaciones de funcionalidades.
- Decida el formato del mensaje con antelación. Elegir entre la convención de claves plurales de i18next y el estándar MessageFormat de la ICU (utilizado por react-intl, next-intl y FormatJS por lo general) antes de escribir las claves de traducción evita una difícil migración a mitad del proyecto más adelante.
- Valora la madurez del ecosistema, no solo las listas de características. Las descargas semanales de npm, el tiempo de respuesta de los problemas en GitHub y la cadencia de lanzamiento son indicadores prácticos de cuánto apoyo de la comunidad y cuántas respuestas existentes tendrás cuando algo se rompa en producción.
- Comprueba qué formato de archivo espera la biblioteca frente a lo que puede producir tu pipeline de traducción. La mayoría de estas librerías consumen archivos JSON planos o anidados; confirma que tu sistema o proceso de gestión de traducción puede generar JSON en el formato plural o ICU que requiera tu biblioteca elegida antes de comprometerte con él.
- Planifique la forma en que los archivos traducidos se mueven entre su base de código y sus traductores como parte de la CI/CD, no como una exportación manual única. Un conector de repositorio, un guion paso a paso o una llamada directa a la API son los tres patrones más comunes, y elegir uno antes evita que se forme el hábito de barajar archivos manualmente por defecto.
Este enfoque se adapta a equipos que...
- Estás construyendo una aplicación de página única o una interfaz basada en componentes en React, Vue o Angular y necesitas una forma de ejecutar para renderizar cadenas específicas de la zona.
- Ya he elegido un framework y necesito elegir la biblioteca i18n que coincida y tiene un framework idiomático en lugar de construir una lógica de carga de cadenas personalizada.
- Planea soportar más de uno o dos lenguajes, el punto en el que las cadenas codificadas o los objetos de búsqueda ad hoc dejan de escalar.
- Necesitan pluralización, interpolación y formato de números y fechas con conciencia de la localidad gestionados por una biblioteca en lugar de código personalizado.
- Ya tengo, o estamos construyendo hacia ella, una canalización de traducción que pueda suministrar archivos de recursos JSON por localidad de forma continua.
Cuando esto puede no ser la prioridad adecuada
- Productos en fase muy temprana que validan un MVP del mercado único, en los que invertir en una biblioteca completa del i18n antes de adaptarse al mercado de productos añade gastos de ingeniería sin beneficios a corto plazo.
- Sitios de marketing estáticos o páginas basadas en contenido, en los que un enfoque de traducción basado en proxy o a nivel de CMS puede ser mejor que conectar una biblioteca i18n de JavaScript al código de la aplicación.
- Equipos que aún no han externalizado cadenas orientadas al usuario de su base de código — la elección de la librería i18n es una decisión secundaria hasta que se complete ese trabajo de extracción.
Lista de evaluación: preguntas que debe hacer antes de elegir una biblioteca del i18n
¿La biblioteca soporta el modelo de renderizado actual de tu framework?
Confirme la compatibilidad con React Server Components, la API de composición de Vue 3, el sistema de compilación de Angular o el de Next.js App Router específicamente, no solo el marco en términos generales.
¿El plural y la convención de formato de mensajes de la biblioteca coinciden con lo que puede producir tu pipeline de traducción?
Las claves plurales al estilo i18next y ICU MessageFormat no son intercambiables sin un paso de conversión, así que confirma cuál genera tu sistema o proceso de gestión de traducciones.
¿Qué tan activa es el mantenimiento y la comunidad de la biblioteca?
Compruebe las fechas de lanzamiento recientes, el recuento de números abiertos y las descargas semanales de NPM como indicador del apoyo que tendrá cuando llegue a un límite.
¿Cómo se moverán los archivos traducidos entre su base de código y sus traductores?
Decida si esa transferencia se realiza a través de un conector de repositorio, una llamada directa a la API o al SDK o una exportación manual antes de entrar varios cientos de cadenas en el proyecto.
¿La estrategia de tamaño y carga de los paquetes de la biblioteca se ajusta a su presupuesto de rendimiento?
Compare los paquetes de traducción sincrónicos con los de carga lenta, especialmente para las aplicaciones que admiten muchas configuraciones regionales a la vez.
Dónde encaja Smartling junto a tu biblioteca i18n
react-i18next, vue-i18n, @angular /localize, ngx-translate y next-intl resuelven el mismo problema limitado: renderizar la cadena correcta para la configuración regional activa dentro de su aplicación. Ninguno de ellos traduce nada, rastrea las cadenas que aún necesitan traducción ni gestiona un glosario y una guía de estilo en todos los idiomas; esa capa pertenece a un sistema de gestión de traducciones (TMS) como Smartling.
Smartling soporta análisis directo de ICU MessageFormat en archivos JSON, Java, XML de Android y YAML, que cubre la sintaxis de plural e interpolación utilizada por react-intl, next-intl y otras bibliotecas basadas en FormatJS. Para librerías basadas en i18next como react-i18next y next-i18next, el formato nativo de clave plural de i18next no es analizado directamente por Smartling, pero la extensión ICU MessageFormat de Smartling para i18next cierra esa brecha, por lo que los equipos no tienen que convertir manualmente cadenas de plural al moverse entre las dos convenciones.
Para mover archivos entre una base de código y un flujo de trabajo de traducción, el Conector de Repositorio de Smartling se integra con GitHub y GitLab en modos de Pull Request, Single Branch o On-Demand: detecta archivos de recursos nuevos o modificados, los sube para su traducción y entrega las traducciones completadas como pull request que pasa por la misma revisión de código que cualquier otro cambio de código. En cambio, los equipos que construyen una pipeline personalizada pueden usar directamente la API REST de Smartling, junto con sus SDKs de Java, Node.js y Python — el SDK de Java ofrece la cobertura más amplia de la API, mientras que Node.js y Python cubren las APIs de Jobs and Files más utilizadas — o la CLI de Smartling, que automatiza tareas como subir y descargar archivos de traducción como parte de una pipeline de compilación o despliegue.
¿Listo para ver a Smartling en acción?
Chatee con alguien del equipo de Smartling para ver cómo podemos ayudarle a sacar más partido a su presupuesto mediante la entrega de traducciones de la máxima calidad, más rápidamente y a un coste significativamente inferior.