I18n fue la Pieza que Faltaba: Permite que más del 70% de los Usuarios en el Mundo Accedan a tus Aplicaciones

Rate this content
Bookmark

La accesibilidad, una mejor DX y el rendimiento reciben mucha atención ya que mejoran significativamente la UX. Además, brinda satisfacción a los desarrolladores al ver las mejoras significativas. Pero, ¿qué hay de la internacionalización? Un dato curioso: más del 70% de los usuarios en el mundo acceden a contenido no inglés. En esta charla, te mostraré más datos sorprendentes sobre la internacionalización y cuáles son los enfoques escalables. Verás ejemplos con bibliotecas para frameworks con diferentes lógicas para implementar diferentes diseños de internacionalización.

This talk has been presented at JSNation 2023, check out the latest edition of this JavaScript Conference.

FAQ

I18n, que es un acrónimo de 'internacionalización', juega un papel crucial en hacer que las aplicaciones sean accesibles para más del 70% de los usuarios en el mundo al permitir la adaptación de software a diferentes idiomas y regiones sin requerir cambios en la estructura del código.

Según la experiencia compartida por Maya y discutida por Erys Erczeki, algunos de los desafíos incluyen el costo de reaprender el uso de la biblioteca de internacionalización y el problema de que el texto localizado no siempre coincide con las claves de I18n en las pruebas.

El inglés se utiliza solo en un 25.9% en Internet, mientras que Asia lidera con más de la mitad de los usuarios de Internet a nivel mundial.

Los métodos incluyen la detección de la ubicación a partir de la dirección IP, respetar la configuración de idiomas del navegador del usuario, y la identificación mediante la URL, como los subdirectorios localizados que son más limpios y amigables para el usuario.

Erys utiliza I18next, un paquete npm para Remix, que incluye configurar archivos de traducción, definir idiomas soportados, y asegurar que las traducciones se carguen antes de la hidratación para interactividad.

Erys muestra una integración con Storyblock donde se utiliza un enfoque de traducción a nivel de carpeta, permitiendo contenido localizado y rutas dinámicas adaptadas a diferentes idiomas visualmente organizadas en carpetas separadas.

La internacionalización es fundamental para mejorar la experiencia del usuario (UX) y la interfaz de usuario (UI), ayudando a que las aplicaciones sean más inclusivas y accesibles globalmente, lo que a su vez puede influir positivamente en el rendimiento general.

Arisa Fukuzaki
Arisa Fukuzaki
13 min
05 Jun, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La charla de hoy explora el impacto de I18n y DEX para los desarrolladores, los desafíos de I18n y la importancia de comprender diferentes enfoques. Se discute cómo determinar idiomas y regiones utilizando la dirección IP, la configuración del navegador y los patrones de URL. La charla también cubre la carga de traducciones, el uso del i18xProvider y la solución de problemas como los parámetros de URL y el mantenimiento de archivos de traducción. Además, se explora la conexión con un Sistema de Gestión de Contenidos, la implementación de traducción a nivel de carpeta y la utilización de fragmentos de código para rutas dinámicas.

1. Introducción a I18n y su impacto

Short description:

Hoy vamos a ver cómo I18n hace que las aplicaciones sean accesibles para más del 70% de los usuarios. Exploraremos el impacto de I18n y DEX para los desarrolladores, la lógica fundamental y cómo funciona con Remix. La internacionalización (I18n) tiene sus desafíos, incluyendo un costo de reaprendizaje y una falta de coincidencia entre el texto localizado y las claves de I18n. Sin embargo, los números hablan por sí mismos. Con 5.07 mil millones de usuarios de Internet y el inglés representando solo el 25.9%, comprender diferentes enfoques de I18n mejorará su DX actual.

Hola a todos. Gracias por ver mi charla. Mi nombre es Erys Erczeki. Soy un ingeniero de Deferral que trabaja en Storyblock. Hoy vamos a ver juntos cómo I18n tiene un impacto y hace que tus aplicaciones sean accesibles para más del 70% de los usuarios en el mundo.

Pasemos a la siguiente diapositiva. Y aquí están las tres conclusiones de mi charla. En primer lugar, vamos a ver el impacto de I18n y DEX para los desarrolladores. Y vamos a ver la lógica fundamental. Por último, vamos a ver cómo funciona con Remix.

Hay un par de notas. Esta charla es, en primer lugar, para los desarrolladores que implementan la internacionalización. En segundo lugar, Remix e I18n son temas de discusión en curso. Si estás interesado en unirte a las discusiones, aquí está el enlace. Y me aseguraré de compartir mis diapositivas en las redes sociales. Así que tendrás acceso a todas las fuentes que voy a compartir.

Así que la internacionalización. I18n es, en primer lugar, un acrónimo de internacionalización. Y veamos un poco de la experiencia del desarrollador con I18n. Así que aquí está mi amiga, Maya. Ella compartió conmigo su experiencia en Twitter diciendo que hay un costo de reaprendizaje de cómo usar la biblioteca de internacionalización cada vez. Y también hay otro problema, diría yo, que el texto localizado no coincide con las claves de I18n en las pruebas. Así que según su opinión, o no solo la suya, pero basado en eso, parece que no es la mejor DX. Así que basándonos en la DX actual de I18n que tienes, hablemos de los números y los hechos.

Así que empezando por el número total de usuarios en el mundo, en realidad hay 5.07 mil millones de usuarios que utilizan Internet. Y sorprendentemente, el inglés se utiliza solo en un 25.9% en Internet. Y Asia lidera con más de la mitad de los usuarios de Internet a nivel mundial. Así que todos los números son enormes, ¿verdad? Y no podemos simplemente ignorar estos números masivos. Y al conocer los diferentes enfoques con más opciones, en realidad se resolverá

2. Determinando Idiomas y Ejemplos de Framework

Short description:

Existen tres formas de determinar idiomas y regiones: dirección IP, configuración del navegador y patrones de URL. El ejemplo de Remix I18next utiliza un paquete npm, mientras que el enfoque del sistema de gestión de contenido combina diferentes sistemas. Los archivos de configuración de I18next definen los idiomas admitidos, el idioma de respaldo y los espacios de nombres. Los archivos de configuración del lado del cliente y del servidor aseguran que las traducciones se carguen antes de la hidratación.

tu actual I18nDX. Así que hablemos de la lógica fundamental. Hay tres formas de determinar los idiomas y las regiones. En primer lugar, está la forma de detectar la ubicación a partir de la dirección IP, que no vamos a cubrir en esta charla. Pero en segundo lugar, aquí está el ejemplo de respetar a los usuarios, ya sabes, como se configura en la configuración de su navegador, ya sabes, como qué idiomas elegir. Y por último, hay una forma de identificarlo en la URL. Y voy a mostrarte los tres patterns para identificar las URL. El patrón uno es diferenciar, ya sabes, por dominios, pero no seguirá la misma política de origen. El patrón dos es usar los parámetros de la URL, pero no parece amigable para el usuario, ¿verdad? Y el último patrón es subdirectorios localizados. Esto se ve mucho más limpio y amigable para el usuario. Así que pasemos a los ejemplos de framework , en general hay dos enfoques para elegir. El primer enfoque sería utilizar unnpm paquete que está relacionado con I18next. Y el otro enfoque es con una combinación del sistema de gestión de contenido. Esta charla trata sobre el Remix, así que voy a mostrarte el ejemplo de Remix I18next primero. Y pasemos a mostrarte el ejemplo del sistema de gestión de contenido . Remix I18next es un paquete npm para Remix que utiliza I18next. El primer paso sería crear los archivos de traducción. En este caso, tengo un idioma predeterminado en inglés que dice saludo hola y traducido, ya sabes, como el archivo de traducción saludo dice hola en japonés, y creemos el archivo de configuración de I18next. Entonces aquí, lo que estoy definiendo son los idiomas admitidos, el idioma de respaldo y el espacio de nombres predeterminado. Así que este espacio de nombres común es en realidad lo que le di los nombres a estos archivos de traducción. Pasando a, ya sabes, el otro archivo llamado I18nextserver.js. Entonces aquí, lo que estoy haciendo es importar lo que configuramos en el archivo de configuración de I18next, y ya sabes, del archivo anterior, lo que configuramos, los valores son en realidad matrices en las cadenas. Así que los iteramos desde el archivo de configuración de la diapositiva anterior. Y el resto lo configuramos la ruta del archivo de traducción. Así que lo siguiente es crear los archivos de configuración del lado del cliente y del lado del servidor. Por el tiempo que tengo, me voy a centrar en el lado del cliente, pero no te preocupes, el lado del servidor, ya sabes, los archivos de configuración se ven prácticamente iguales con algunas diferencias. Así que el archivo entry.client.jsx. Lo que quiero que prestes atención es a la línea de código resaltada en naranja, ya sabes, que es una API llamada i18xProvider. Así que con esto, al usar esta API, queremos asegurarnos de que las traducciones se carguen antes de que ocurra la hidratación. Y vamos a ver por qué juntos en una de las siguientes diapositivas. Y luego, ya sabes, envolvemos el componente del navegador de remix entre el componente i18xProvider. Así que también vamos a ver las razones en una de las siguientes diapositivas.

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

Cómo localizar y personalizar contenido con Sanity.io y Next.js
React Advanced 2021React Advanced 2021
8 min
Cómo localizar y personalizar contenido con Sanity.io y Next.js
Sanity.io provides a content platform for structured content that replaces traditional CMS. Their solution allows businesses to structure and query content anywhere using the Sanity studio and open source React application. The talk focuses on solving the challenge of sending personalized data to users in a static website environment using Next.js Vercel for hosting and Sanity for content querying and delivery. The Sanity studio allows for modeling pages, articles, and banners, with banners being shown to visitors based on their country. The solution involves using Grok queries to fetch the right banner based on country information, demonstrating personalization based on localization and dynamic content querying.
End-to-end i18n
React Advanced 2021React Advanced 2021
26 min
End-to-end i18n
Thanks for joining my talk on end-to-end internationalization. I'll walk you through internationalizing a React app, covering translated strings, currency and date formatting, translator management, and injecting translated strings back into the app. The constants used throughout the app define localization settings and translations. The React Intel library is used for managing translations, and custom functions are created for consistent date and number formatting. The translation process involves extracting strings, using tools like PO Edit, and compiling the translated strings into JSON files for the React app.
Construyendo aplicaciones JS con internacionalización (i18n) en mente
JSNation 2022JSNation 2022
21 min
Construyendo aplicaciones JS con internacionalización (i18n) en mente
This Talk discusses building JavaScript apps with internationalization in mind, addressing issues such as handling different name formats, using Unicode for compatibility, character encoding bugs, localization and translation solutions, testing in different languages, accommodating translated text in layouts, cultural considerations, and the importance of enabling different languages for users. The speaker also mentions various open source tools for internationalization. The Talk concludes with a reminder to avoid assumptions and embrace diversity in the World Wide Web.
Codificación de emojis, Unicode e internacionalización
JSNation Live 2020JSNation Live 2020
34 min
Codificación de emojis, Unicode e internacionalización
This Talk explores the UTF-8 encoding and its relationship with emojis. It discusses the history of encoding, the birth of Unicode, and the importance of considering global usage when building software products. The Talk also covers JavaScript's encoding issues with Unicode and the use of the string.prototype.normalize method. It highlights the addition of emoji support in Unicode, the variation and proposal process for emojis, and the importance of transparency in emoji encoding. The Talk concludes with the significance of diverse emojis, the recommendation of UTF-8 for web development, and the need to understand encoding and decoding in app architecture.
Internacionalizando React
React Summit Remote Edition 2021React Summit Remote Edition 2021
29 min
Internacionalizando React
The Talk discusses the challenges of adding and maintaining new languages in a React application and suggests ways to make the process easier. It defines internationalization as the process of architecting an application for localization and explains that localization involves adapting the content and experience for a specific locale. The speaker recommends using libraries for internationalization and provides resources for learning more about the topic. The Talk also addresses edge cases and difficulties with multiple dialects or languages, translation processes, and right-to-left CSS libraries.
Localización para casos de uso del mundo real: Aprendizajes clave de la incorporación de marcas globales
React Summit 2022React Summit 2022
8 min
Localización para casos de uso del mundo real: Aprendizajes clave de la incorporación de marcas globales
I'm going to talk about localisation in the real world and how Sanity, a platform for structured content, focuses on content as data and flexible internationalization. Sanity allows for multiple languages in different markets, providing customization options for content visibility based on location. The platform offers a flexible approach to content creation and customization, allowing organizations to internationalize their content based on their specific needs. With Sanity's query language and the brand new version of Sanity Studio, developers have more flexibility than ever before.

Workshops on related topic

Localizando tu sitio web de Remix
React Summit 2023React Summit 2023
154 min
Localizando tu sitio web de Remix
WorkshopFree
Harshil Agrawal
Harshil Agrawal
El contenido localizado te ayuda a conectarte con tu audiencia en su idioma preferido. No solo te ayuda a hacer crecer tu negocio, sino que también ayuda a tu audiencia a comprender mejor tus ofertas. En este masterclass, obtendrás una introducción a la localización y aprenderás cómo implementar la localización en tu sitio web de Remix alimentado por Contentful.
Tabla de contenidos:- Introducción a la localización- Introducción a Contentful- Localización en Contentful- Introducción a Remix- Configuración de un nuevo proyecto de Remix- Renderización de contenido en el sitio web- Implementación de la localización en el sitio web de Remix- Recapitulación- Próximos pasos