¡Cómo Soporto Más de 100 Idiomas en Mi App de React...y Tú También Puedes!

This ad is not shown to multipass and full ticket holders
React Summit
React Summit 2026
June 11 - 15, 2026
Amsterdam & Online
The biggest React conference worldwide
Upcoming event
React Summit 2026
React Summit 2026
June 11 - 15, 2026. Amsterdam & Online
Learn more
Bookmark
SlidesGithub
Rate this content
Sentry
Promoted
Code breaks, fix it faster

Crashes, slowdowns, regressions in prod. Seer by Sentry unifies traces, replays, errors, profiles to find root causes fast.

¿Tu app de React sirve a una audiencia global, pero solo está disponible en inglés? Cambiemos eso. En esta charla, te mostraré cómo i18n puede convertirse en una parte automática de tu flujo de trabajo CI/CD, permitiendo a tu equipo, sin importar su tamaño, entregar tu app de React en más de 100 idiomas diferentes sin ningún esfuerzo adicional.

This talk has been presented at React Summit US 2024, check out the latest edition of this React Conference.

Richard Carrigan
Richard Carrigan
28 min
22 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Soy Richard Kerrigan y te mostraré cómo agregar soporte multilingüe a tus apps de React. Necesitamos una forma de soportar otros idiomas en nuestros sitios web y aplicaciones web sin afectar la productividad del equipo. Exploraremos una solución de bajo costo utilizando IA y automatización. Cuando mi equipo comenzó a abordar este problema, miramos Azure y encontramos el servicio Azure AI Translator, que ofrece tanto traducción de texto ad-hoc como traducción de documentos. Las características clave incluyen soporte de idioma para más de 100 idiomas y dialectos, un nivel gratuito generoso, Traducción Automática Neuronal para precisión, y la capacidad de usar glosarios personalizados. Diseñando un flujo de trabajo para traducir contenido JSON en tiempo de ejecución o incorporando el proceso de traducción en el flujo de trabajo CICD para archivos HTML o Markdown. Explorando cómo traducir archivos HTML dentro de una tubería CICD. Configuración del servicio de traducción y cuenta de almacenamiento. Construcción y despliegue de la aplicación de función. Configuración de la traducción al español con un glosario en formato CSV para la traducción de archivos. Enviando una solicitud al traductor y recibiendo el archivo traducido. Discutiendo el problema de los sitios web que no ofrecen contenido en idiomas adicionales. Destacando los beneficios de Azure AI Translator y sus alternativas. Mostrando diferentes versiones de la app para traducir contenido JSON, HTML y markdown. Comprobando el progreso del flujo de trabajo, despliegue de recursos de Azure y función, y traducción de archivos markdown. Explicación rápida de infraestructura como código y opciones de despliegue. Cambiar de idioma muestra el título traducido y el extracto mientras se mantiene el formato original.

1. Introduction and Problem Statement

Short description:

Soy Richard Kerrigan y te mostraré cómo agregar soporte multilingüe a tus aplicaciones de React. Necesitamos una forma de soportar otros idiomas en nuestros sitios web y aplicaciones web sin afectar la productividad del equipo. Exploraremos una solución de bajo costo utilizando IA y automatización.

Soy Richard Kerrigan y estoy emocionado de estar aquí hoy para mostrarte cómo puedes agregar soporte multilingüe a tus aplicaciones de React. Antes de sumergirnos en el tema de hoy, permíteme hacer algunos anuncios rápidos. Punto número 1. Aunque trabajo en Microsoft, de ninguna manera estoy afiliado al equipo de Azure AI, ni estoy buscando convencerte de adoptar Azure como tu proveedor de servicios en la nube. Como verás al final de esta charla, mi objetivo es demostrar una posible solución para traducir automáticamente el contenido de aplicaciones web de sitios web a otros idiomas y dialectos. Pero absolutamente podrías construir algo similar usando AWS, GCP u otro proveedor de servicios en la nube que ofrezca un servicio de traducción de documentos.

Punto número 2. Ya existen bibliotecas como React, IATN que te permiten traducir contenido estático como tu página de inicio, encabezado, pie de página, etc. a otros idiomas usando las traducciones que proporcionas. Las soluciones que te presentaré hoy son para traducir automáticamente el contenido dinámico, como publicaciones de blog creadas por los creadores de contenido de tu equipo o incluso por los usuarios finales.

Bien, con esos anuncios fuera del camino, vamos a sumergirnos. Primero, establezcamos claramente el problema que estamos tratando de resolver. El problema que estamos tratando de resolver es que la mayoría de los sitios web, aplicaciones web, solo publican contenido en un idioma, lo cual no es conveniente para los usuarios y no es inclusivo para las personas para quienes ese idioma no es su idioma principal. En otras palabras, necesitamos una forma de soportar otros idiomas y dialectos en nuestros sitios web y aplicaciones web, sin afectar negativamente la productividad de nuestro equipo. Ahora, hay varias maneras en que podríamos abordar la solución del problema, dependiendo de los recursos que tengamos disponibles. Pero para el propósito de esta charla, asumamos que no tenemos mucho presupuesto para dedicar a esta función, ni tenemos un equipo que pueda traducir contenido para nosotros. Así que nuestra solución debe ser de bajo costo y requerir interacción humana solo para validar los resultados. Este es un caso de uso fantástico para la IA y la automatización.

2. Azure AI Translator and Workflow Design

Short description:

Cuando mi equipo comenzó a abordar este problema, miramos Azure y encontramos el servicio Azure AI Translator, que ofrece tanto traducción de texto ad-hoc como traducción de documentos. Las características clave incluyen soporte de idioma para más de 100 idiomas y dialectos, un nivel gratuito generoso, Traducción Automática Neuronal para precisión, y la capacidad de usar glosarios personalizados. Las limitaciones incluyen el manejo de tipos de archivos específicos y el formato para ciertos idiomas. Dependiendo de cómo se almacene el contenido, hay tres opciones para la traducción, con un ejemplo proporcionado para traducir contenido JSON.

Cuando mi equipo comenzó a abordar este problema, por razones obvias, miramos Azure primero. A través de esa investigación, encontré el servicio Azure AI Translator. Este servicio no solo permite la traducción de texto ad-hoc, donde envías texto directamente a través del traductor y devuelve el texto traducido como JSON, sino que también ofrece traducción de documentos, que toma como entrada uno o más archivos de un contenedor de almacenamiento de blobs, los traduce y produce los archivos traducidos en un contenedor de almacenamiento de blobs diferente.

Además, el servicio Azure AI Translator tiene algunas características clave que finalmente nos convencieron de que era la opción adecuada para nuestras necesidades. La primera característica clave que fue importante para nosotros fue el soporte de idiomas. Mi equipo en Microsoft dirige un programa de mejora de habilidades y reciclaje que opera en todo el mundo. Por lo tanto, es importante para nosotros que cualquier solución multilingüe pueda acomodar cualquier idioma o dialecto que queramos soportar. Con más de 100 idiomas y dialectos diferentes soportados, incluso incluyendo Klingon, Azure AI Translator fue definitivamente la elección correcta para nosotros. La siguiente característica clave para nosotros fue el costo. Azure AI Translator tiene un nivel gratuito generoso de hasta 2 millones de caracteres traducidos por mes. Así que dependiendo de la cantidad de contenido en tu sitio y con qué frecuencia traduces tu contenido, es posible que ni siquiera incurras en un costo.

Otra característica importante es la precisión. Azure AI Translator utiliza lo que llaman Traducción Automática Neuronal, o NMT, que, en sus propias palabras, es una mejora sobre los enfoques anteriores de Traducción Automática Estadística, SMT, ya que utiliza muchas más dimensiones para representar tokens, como palabras, morfemas y puntuación, del texto fuente y objetivo. Además, explican que usando el enfoque NMT, la traducción tomará en contexto la oración completa, en lugar de solo una ventana deslizante de pocas palabras que usa SMT y producirá traducciones más fluidas y con apariencia de traducción humana. Para nosotros, esto significa traducciones más contextualmente precisas, lo que significa menos ajustes, si es que se necesitan.

Esto es lo que hace posible para nosotros integrar traducciones en nuestro flujo de trabajo CICD. La última característica clave para nosotros es la capacidad de usar glosarios personalizados para ajustar el proceso de traducción, lo cual es útil para omitir la traducción de terminología específica de la industria y o texto relacionado con la marca, así como para asegurar que ciertas palabras o frases se traduzcan de una manera que retenga el significado original. No todo es color de rosa, sin embargo, así que también quería tomar un momento para señalar algunas de las limitaciones de Azure AI Translator. Aunque el servicio puede manejar muchos tipos de archivos diferentes, actualmente no puede manejar MVX o JSX TSX, por lo que tu contenido necesitará ser obtenido por separado de estos archivos para ser traducido. Otra limitación es que todas las respuestas de traducción se devuelven como texto horizontal, de izquierda a derecha, o de derecha a izquierda, por lo que es posible que necesites agregar lógica de renderizado si deseas mostrar contenido en un formato vertical para los idiomas aplicables.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Entendiendo la Arquitectura Fiber de React
React Advanced 2022React Advanced 2022
29 min
Entendiendo la Arquitectura Fiber de React
Top Content
This Talk explores React's internal jargon, specifically fiber, which is an internal unit of work for rendering and committing. Fibers facilitate efficient updates to elements and play a crucial role in the reconciliation process. The work loop, complete work, and commit phase are essential steps in the rendering process. Understanding React's internals can help with optimizing code and pull request reviews. React 18 introduces the work loop sync and async functions for concurrent features and prioritization. Fiber brings benefits like async rendering and the ability to discard work-in-progress trees, improving user experience.
Thinking Like an Architect
Node Congress 2025Node Congress 2025
31 min
Thinking Like an Architect
Top Content
In modern software development, architecture is more than just selecting the right tech stack; it involves decision-making, trade-offs, and considering the context of the business and organization. Understanding the problem space and focusing on users' needs are essential. Architectural flexibility is key, adapting the level of granularity and choosing between different approaches. Holistic thinking, long-term vision, and domain understanding are crucial for making better decisions. Effective communication, inclusion, and documentation are core skills for architects. Democratizing communication, prioritizing value, and embracing adaptive architectures are key to success.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
El Lado Oscuro de los Micro-Frontends
React Advanced 2025React Advanced 2025
29 min
El Lado Oscuro de los Micro-Frontends
In the Talk, various key points were discussed regarding micro-front-end architecture. These included challenges with micro-intents, common mistakes in system design, the differences between micro-intents and components, granularity in software architecture, optimizing micro-front-end architecture, efficient routing and deployment strategies, edge computing strategies, global state and data sharing optimization, managing data context, governance and fitness functions, architectural testing, adaptive growth, value of micro-frontends, repository selection, repo structures, and web component usage.

Workshops on related topic

IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Masterclass de alto rendimiento Next.js
React Summit 2022React Summit 2022
50 min
Masterclass de alto rendimiento Next.js
Workshop
Michele Riva
Michele Riva
Next.js es un marco convincente que facilita muchas tareas al proporcionar muchas soluciones listas para usar. Pero tan pronto como nuestra aplicación necesita escalar, es esencial mantener un alto rendimiento sin comprometer el mantenimiento y los costos del servidor. En este masterclass, veremos cómo analizar el rendimiento de Next.js, el uso de recursos, cómo escalarlo y cómo tomar las decisiones correctas al escribir la arquitectura de la aplicación.
Model Context Protocol (MCP) Deep Dive: 2-Hour Interactive Masterclass
AI Coding Summit 2025AI Coding Summit 2025
86 min
Model Context Protocol (MCP) Deep Dive: 2-Hour Interactive Masterclass
Workshop
Stepan Suvorov
Stepan Suvorov
Únete a una sesión enfocada de 2 horas que cubre el propósito de MCP, su arquitectura, implementación práctica de servidores y direcciones futuras. Diseñado para desarrolladores y arquitectos de sistemas que buscan integrar datos contextuales con modelos de ML de manera efectiva. Agenda:- Introducción & ¿Por qué MCP? Desafíos clave que MCP resuelve y beneficios principales.- Profundización en la Arquitectura: componentes, interacciones, principios de escalabilidad. - Construyendo tu propio Servidor MCP: recorrido guiado con fragmentos de código y mejores prácticas; demostración en vivo o revisión de código.- Futuro de los Desarrollos de MCP: potenciales mejoras, tendencias emergentes, escenarios del mundo real.
Puntos Clave:- Comprensión clara del razonamiento detrás de MCP.- Perspectiva sobre patrones de diseño y consideraciones de escalado.- Pasos prácticos para implementar un servidor prototipo.- Conciencia de las tendencias futuras y cómo aplicar MCP en proyectos. 
Concurrencia de Node Con la Fuerza de un Toro Con BullMQ
Node Congress 2026Node Congress 2026
95 min
Concurrencia de Node Con la Fuerza de un Toro Con BullMQ
Workshop
Edy Silva
Douglas Marques
2 authors
La naturaleza concurrente de Node ya es poderosa, pero a menudo necesitamos sacar trabajo del servidor principal por varias razones. En este trabajo, exploraremos algunos escenarios en los que el trabajo se empuja inteligentemente a otro proceso de Node para resolver.
Una vez que usamos una cola para distribuir cargas de trabajo, necesitamos identificar la naturaleza del trabajo a realizar. Para trabajos intensivos en I/O o CPU, el primero ya está perfectamente cubierto por un solo proceso de Node.js; necesitaremos ajustar la configuración del trabajador para que coincida con los recursos disponibles y el rendimiento.