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

Rate this content
Bookmark
SlidesGithub

¿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.
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.
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
React Summit 2022React Summit 2022
17 min
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
Top Content
Today's Talk discusses building flexible, resilient, and future-proof React components using composition and configuration approaches. The composition approach allows for flexibility without excessive conditional logic by using multiple components and passing props. The context API can be used for variant styling, allowing for appropriate styling and class specification. Adding variants and icons is made easy by consuming the variant context. The composition and configuration approaches can be combined for the best of both worlds.
Patrones de Arquitectura Remix
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Patrones de Arquitectura Remix
Top Content
This Talk introduces the Remix architecture patterns for web applications, with over 50% of participants using Remix professionally. The migration from single page applications to Remix involves step-by-step refactoring and offers flexibility in deployment options. Scalability can be achieved by distributing the database layer and implementing application caching. The backend for frontend pattern simplifies data fetching, and Remix provides real-time capabilities for collaborative features through WebSocket servers and Server-SendEvents.

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.