Software Internationalization Challenges and Solutions

Rate this content
Bookmark

Cada desarrollador sabe que i18n es doloroso. Encontramos la cura en forma de control de versiones. 

Hablaremos sobre: 
- ¿cuál es el problema *real* con i18n?
- ¿cómo resolver el problema de orquestación?
- demostración de colaboración e2e entre desarrolladores, diseñadores y traductores

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

Samuel Stroschein
Samuel Stroschein
14 min
21 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
En esta charla, aprenderás sobre el problema de internacionalizar software y cómo el Lake Exchange Control System lo resuelve. Internacionalizar software implica adaptarlo para diferentes mercados y demografías, lo que incluye diseño, traducciones y monedas. El objetivo es permitir que cualquier empresa de software se globalice en un día. El desafío radica en la coordinación requerida entre desarrolladores, diseñadores, traductores y otros interesados. El proceso actual involucra un pipeline complejo y procesos manuales para la entrega de traducciones. La clave para resolver este desafío es un formato de archivo interoperable y un sistema de control de cambios llamado Lix, que permite la colaboración y automatización. Lix tendrá un pre-lanzamiento público el 16 de diciembre, seguido por la especificación de archivo .inlang en el primer trimestre de 2025.

1. Introduction to Internationalizing Software

Short description:

En esta charla, aprenderás sobre el problema de la internacionalización del software y cómo el Lake Exchange Control System lo resuelve. Internacionalizar software implica adaptarlo para diferentes mercados y demografías, lo que incluye diseño, traducciones y monedas. El objetivo es permitir que cualquier empresa de software se globalice en un día.

Muy bien, soy Samuel, y después de esta charla, vas a saber cuál es el verdadero problema con la internacionalización del software y cómo algo llamado el Lake Exchange Control System es capaz de resolver este gigantesco problema que ha existido durante décadas.

Comencemos por el principio. ¿Qué era E1N del software? Significa que estás adaptando tu producto de software para diferentes mercados y demografías. Eso significa diseño, mensajes, traducciones, pagos y monedas. Usualmente lo haces porque quieres expandirte a diferentes mercados, pero no solo es expandirse a diferentes mercados. Puede ser que seas una empresa estadounidense y quieras dirigirte a la población de habla hispana en los EE.UU.

de manera más efectiva. Para hacerlo, tienes que internacionalizar, cambiar el diseño, implementar traducciones, yada yada. Ahora, en ambos casos, ya sea expansión global o dirigirse a una demografía en un mercado específico de manera más efectiva, todo se reduce al dinero. Por supuesto que sí. ¿Por qué? Bueno, si puedo dirigirme a las personas de manera más efectiva, más dinero. Si puedo expandirme a diferentes países, eso significa más clientes, más dinero.

2. Challenges of Internationalization Coordination

Short description:

Hay una herramienta que permite a las empresas adaptar su software a múltiples mercados en un día. El problema con la internacionalización es la coordinación requerida entre desarrolladores, diseñadores, traductores y otras partes interesadas. Involucra un proceso complejo y manual para la entrega de traducciones. El proceso incluye el uso de un editor de traducción asistida por computadora y la coordinación con diseñadores para ajustes de la interfaz de usuario.

Esa es una declaración audaz. Eres una empresa alemana, por ejemplo, y hay una herramienta que te permite adaptar tu pieza de software al mercado estadounidense, mercado brasileño, mercado indio, mercado chino, todo en un día. Ese es el objetivo, eso es para lo que tenemos que encontrar una solución, y en eso hemos estado trabajando durante los últimos dos años.

Ahora, ¿por qué hacemos esto de nuevo? Bueno, te ayudamos a adquirir más clientes, llevar tu producto al mundo, y en última instancia ayudarte a ganar más dinero. Esa es una gran propuesta de negocio.

Bien, ¿cuál es el problema real con la internacionalización? ¿Por qué hemos estado trabajando en ello durante más de dos años y la propuesta de negocio tiene tanto sentido, así que pensarías que ya existe algo por ahí, ¿verdad? La respuesta es no, porque el problema está algo oculto.

Verás, todos creen que la internacionalización es bastante simple. Haces algunas traducciones, aceptas una moneda diferente, tal vez ajustas el diseño. Es bastante simple, ¿verdad? La respuesta es sí. Si lo miras de forma aislada, eso no es realmente complicado. Lo que es complicado, sin embargo, es que todo necesita ser coordinado. La internacionalización del software es un problema de coordinación donde terminas con un proceso como este, donde de repente te das cuenta de que necesitas coordinar los esfuerzos de internacionalización entre desarrolladores, diseñadores, traductores, auditores, gerentes de producto y todos los demás que tocan el producto en un proceso que puede volverse extremadamente complejo extremadamente rápido.

Así que pasemos por ello como un ejemplo. Imagina que eres un desarrollador ahora mismo, y estás implementando una nueva pantalla de inicio de sesión. Lo que piensas como desarrollador es, la internacionalización es simple, ¿verdad? Solo necesito implementar algunas funciones T, llamarlas en mi código, y lo que hacen es buscar un mensaje en un archivo JSON, y eso es todo. Eso es internacionalización, ¿verdad? Bueno, para el desarrollador en este caso, sí, eso es probablemente todo. Pero entonces, ¿qué sucede después, verdad? La pantalla de inicio de sesión está implementada. ¿Dónde están las traducciones? Bueno, no existen en este punto. Así que tiene que haber alguien que le diga a los traductores, tienes que empezar a trabajar. Aquí es donde ya se desmorona porque ¿quién les dice que el traductor necesita empezar a trabajar? Es un proceso manual.

De acuerdo, por ahora, es un proceso manual. Los traductores se ponen a trabajar, ¿y qué es esto? Están trabajando en una aplicación diferente. Nunca había visto eso antes. Así que este es un editor CAT, editor de traducción asistida por computadora, y proporciona a los traductores una interfaz de usuario para crear traducciones. Suena simple, ¿verdad? Pero, ¿cómo llegan las traducciones del desarrollador al traductor y luego de vuelta al desarrollador? Hay un paso de entrega manual que incluye importar y exportar todas las traducciones de todas esas dos herramientas. Así que la biblioteca E1N y el editor CAT. Ya estás viendo que, oh, mierda, sí, tenemos mucho que coordinar. Pero, por supuesto, no termina ahí porque una vez que los traductores han terminado, ¿qué sucede después, verdad? Lo más probable es que los diseñadores necesiten revisarlo. Los diseñadores necesitan saber si las traducciones ahora están desbordadas y necesitan ajustar las interfaces de usuario. Así que todo el juego comienza de nuevo.

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.
Enrutamiento en React 18 y más allá
React Summit 2022React Summit 2022
20 min
Enrutamiento en React 18 y más allá
Top Content
Routing in React 18 brings a native app-like user experience and allows applications to transition between different environments. React Router and Next.js have different approaches to routing, with React Router using component-based routing and Next.js using file system-based routing. React server components provide the primitives to address the disadvantages of multipage applications while maintaining the same user experience. Improving navigation and routing in React involves including loading UI, pre-rendering parts of the screen, and using server components for more performant experiences. Next.js and Remix are moving towards a converging solution by combining component-based routing with file system routing.
Sistemas de Diseño: Caminando la Línea Entre Flexibilidad y Consistencia
React Advanced 2021React Advanced 2021
47 min
Sistemas de Diseño: Caminando la Línea Entre Flexibilidad y Consistencia
Top Content
The Talk discusses the balance between flexibility and consistency in design systems. It explores the API design of the ActionList component and the customization options it offers. The use of component-based APIs and composability is emphasized for flexibility and customization. The Talk also touches on the ActionMenu component and the concept of building for people. The Q&A session covers topics such as component inclusion in design systems, API complexity, and the decision between creating a custom design system or using a component library.
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.

Workshops on related topic

Domina los Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Domina los Patrones de JavaScript
Top Content
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Durante esta masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debería conocer. A través de ejercicios prácticos, ejemplos del mundo real y discusiones interactivas, los asistentes profundizarán su comprensión de las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables. Al final de la masterclass, los participantes ganarán una nueva confianza en su capacidad para escribir código JavaScript de alta calidad que resista el paso del tiempo.
Puntos Cubiertos:
1. Introducción a los Patrones de JavaScript2. Patrones Fundamentales3. Patrones de Creación de Objetos4. Patrones de Comportamiento5. Patrones Arquitectónicos6. Ejercicios Prácticos y Estudios de Caso
Cómo Ayudará a los Desarrolladores:
- Obtener una comprensión profunda de los patrones de JavaScript y sus aplicaciones en escenarios del mundo real- Aprender las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables- Mejorar las habilidades de resolución de problemas y la legibilidad del código- Mejorar la colaboración y la comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento de la carrera y las oportunidades de avance en la industria del software
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.
React Patterns Made Simple
React Day Berlin 2024React Day Berlin 2024
62 min
React Patterns Made Simple
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Aprende patrones de React ampliamente utilizados, incluyendo HOCs, Compound Components, Provider Patterns, Functions as Child, y Portals, para escribir código más limpio y eficiente y crear aplicaciones escalables y mantenibles.Visión general En esta masterclass, los espectadores aprenderán sobre patrones clave de React que pueden hacer su código más eficiente, legible y mantenible. Presentaremos cada patrón, explicaremos cómo funciona y demostraremos ejemplos prácticos. Al final de la sesión, los participantes tendrán una comprensión sólida de cómo usar estos patrones en sus proyectos.Objetivos de aprendizajeHOCs Compound Components Provider Patterns Functions as Child Portals Modularidad Mantenibilidad Aplicación en el mundo real.
Llevando tu aplicación web a nativa con Capacitor
JSNation 2023JSNation 2023
111 min
Llevando tu aplicación web a nativa con Capacitor
WorkshopFree
Mike Hartington
Mike Hartington
Entonces, tienes una increíble aplicación web que has construido y quieres llevarla de tu navegador web a la App Store. Seguro, hay muchas opciones aquí, pero la mayoría requerirá que mantengas aplicaciones separadas para cada plataforma. Quieres que tu código base sea lo más cercano posible en la Web, Android e iOS. Afortunadamente, con Capacitor, puedes tomar tu aplicación web existente y crear rápidamente aplicaciones nativas para iOS y Android para distribuir en tu App Store favorita.
Contenido: Este masterclass está dirigido a desarrolladores principiantes que tienen una aplicación web existente o están interesados en el desarrollo móvil. Repasaremos:- ¿Qué es Capacitor?- ¿Cómo se compara con otras soluciones multiplataforma?- Usando Capacitor para construir una aplicación nativa utilizando tu código web existente- Organizando nuestra aplicación para su distribución en tiendas de aplicaciones móviles con convenciones de nombres, iconos, pantallas de inicio y más
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.