Skip to main content
LINE / Airbnb / Change.org / KakaoTalk

Consultoría de internacionalización: corregir lo que falla, planificar lo que viene

Ya sabes que la i18n es difícil. He visto los síntomas: diseños RTL que se desmoronan, texto en alemán que desborda los botones, respuestas de la API en el idioma equivocado y traducciones que se desincronizan a las pocas semanas del lanzamiento. No vendo soluciones mágicas. Te ayudo a desenredar el lío concreto en el que se encuentra tu equipo y a crear sistemas que no se rompan de la misma forma dos veces.

«Deberíamos haber planificado esto antes»

El peaje de la arquitectura que estás pagando ahora mismo

Lanzaste tu producto en inglés. Funcionó. Luego añadiste francés «solo para la página de inicio». Ahora estás aquí porque:

Tu base de código tiene comprobaciones de lang= dispersas en 47 archivos

Los gestores de producto preguntan «¿podemos hacer pruebas A/B del texto?» y los de ingeniería responden «no sin reescribirlo todo».

Tienes tres flujos de trabajo de traducción distintos y ninguno funciona de forma fiable.

Lo que he visto fallar:

  • Equipos que pasan más de 6 meses adaptando i18n a una aplicación Next.js porque las cadenas estaban escritas a fuego en los componentes.
  • Los archivos de traducción se desincronizan porque los desarrolladores no saben qué archivo tienen que actualizar
  • Períodos de «congelación de la localización» antes de los lanzamientos porque nadie confía en el proceso de traducción
  • Resistencia a modificar cualquier contenido traducido porque el flujo de trabajo es muy tedioso

En qué ayudo:

  • Estrategias de refactorización que permiten adoptar i18n de forma incremental (no exijo «parar todo y reescribir desde cero»)
  • Diseño de procesos para mantener las traducciones sincronizadas sin bloquear el desarrollo
  • Revisiones de arquitectura para identificar dónde fallará tu enfoque actual con más de 10 idiomas

La i18n es arquitectura, no una funcionalidad. Intentar añadirla después es como decidir que tu casa necesita un sótano después de haberla construido.

Te ayudo a cavar ese sótano… o a decidir si realmente lo necesitas.

RTL lo rompe todo

Tu interfaz no se diseñó para árabe, hebreo ni urdu

Cambiaste a dir="rtl" y viste cómo tu diseño saltaba por los aires:

Los desplegables se abren en la dirección equivocada
Los iconos apuntan en la dirección equivocada
Los diseños con Flexbox se colapsan o generan superposiciones extrañas
Los tooltips aparecen fuera de la pantalla
Los elementos flotantes ignoran por completo la dirección del texto.

Lo que he visto:

  • Sistemas de diseño con más de 200 componentes en los que solo 12 gestionan correctamente RTL
  • Equipos que usan float: left en lugar de propiedades lógicas, lo que genera errores RTL en cada nueva funcionalidad
  • Popovers y modales que requieren ajustes RTL específicos para cada componente
  • Frameworks que dicen ser compatibles con RTL, pero que solo invierten la dirección del diseño y rompen la lógica de posicionamiento

En qué ayudo:

  • Migración a propiedades lógicas de CSS (margin-inline-start en lugar de margin-left)
  • Auditorías de sistemas de diseño para detectar minas RTL antes del lanzamiento
  • Orientación específica por framework (Tailwind, shadcn, MUI) para estilos RTL-first

Corregir a mano los errores RTL en cada componente es insostenible. Hago que el soporte RTL sea sistemático, en vez de estar apagando fuegos constantemente.

«El texto en alemán nos reventó el botón»

Una interfaz que no se diseñó pensando en la traducción

El inglés encaja. El alemán no. Tu diseño asumía:

Las etiquetas de los botones tienen ~10 caracteresLos nombres de usuario caben en una columna de 200 pxLos mensajes de error ocupan una sola línea

Luego lo tradujiste al alemán, finés o tailandés y descubriste:

Botones que se cortan a mitad de palabra

Tablas con desplazamiento horizontal en cada fila

Texto que acaba formando bloques ilegibles

El texto no latino se trunca porque los contenedores tienen anchos fijos

En qué ayudo:

  • Patrones de interfaz elásticos que se adaptan a la longitud del contenido
  • Planificación del presupuesto de caracteres (el alemán se expande un 30 %, el tailandés no usa espacios)
  • Sistemas tipográficos que admiten CJK, árabe y devanagari sin romperse

Te ayudo a crear una interfaz que sobreviva a la traducción, antes de que hayas pagado por 10.000 palabras que no encajan.

No necesitas una charla sobre por qué es importante la internacionalización. Necesitas a alguien que haya depurado popovers RTL a las 2 de la mañana, que haya discutido con producto sobre límites de caracteres y que haya diseñado pipelines de traducción que funcionen de verdad.

Las trampas de las que nadie te avisó

Batallitas de equipos que ya han pasado por ello

Esto no es teoría. Son cosas que fallaron en producción:

El infierno de la pluralización

Inglés: «1 elemento» frente a «2 elementos»

Polaco: «1 przedmiot» / «2 przedmioty» / «5 przedmiotów» (3 formas de plural)

Árabe: 6 formas de plural

Tu lógica count === 1 ? 'item' : 'items' ya no funciona.

El caos de fechas y horas

Formateaste las fechas con toLocaleDateString(). Y los usuarios de Japón vieron «2025年2月9日» en sus exportaciones CSV y Excel petó.

Desajuste de idioma en la API

Tu frontend solicita francés. Tu API devuelve inglés porque el token de autenticación no incluye el locale. Resultado: una interfaz con idiomas mezclados y usuarios que creen que es un fallo.

Pruebas de pseudolocalización

No probaste con [Ţĥîś îś ţéśţ ţéẋţ ţĥàţ éẋþàñðś 30 %] antes de pasar a producción. Ahora tu sitio en polaco es inutilizable.

La suposición invisible

Diste por hecho que las cadenas son lo único que necesita traducción. Luego te topaste con fechas, números, divisas, ordenación, búsqueda… todo tiene un comportamiento específico según la configuración regional.

En qué ayudo:

  • Implementación de ICU MessageFormat (gestiona plurales, género y contexto)
  • Patrones de i18n en la API (negociación de idioma, estrategias de fallback)
  • Procesos de control de calidad que detectan estos problemas antes de que lo hagan las agencias de traducción

El flujo de trabajo es lo más difícil

¿Cómo mantienes 8 idiomas sincronizados cuando despliegas a diario?

La tecnología ya la tienes resuelta. Ahora estás atascado con el proceso:

1

Los desarrolladores fusionan código con nuevas cadenas en inglés. Las traducciones se retrasan 2 semanas. Los usuarios ven una interfaz traducida a medias.

2

No sabes qué cadenas se pueden eliminar sin riesgo (¿se usan? ¿están traducidas? ¿están en proceso con una agencia?)

3

Producto quiere actualizar el texto. Nadie sabe si cambiar «Submit» por «Send» romperá 12 idiomas.

4

Los archivos de traducción pasan semanas sin sincronizarse con producción

Preguntas que me hacen los equipos:

«¿Debería devolver nuestra API el contenido traducido o dejar que el frontend lo gestione?»
«¿Cómo versionamos las traducciones?»
«¿Cuál es la fuente de referencia: Figma, el código base o la herramienta de traducción?»
«¿Cómo evitamos que los desarrolladores lancen funcionalidades solo en inglés?»

Lo que he visto fallar:

  • Archivos de traducción subidos a git que divergen de las cadenas en producción
  • Avisos de «No tocar el archivo en español» porque nadie sabe qué se puede cambiar sin riesgo.
  • Funcionalidades lanzadas en inglés y traducidas 6 meses después (si es que se traducen)

En qué ayudo:

  • Diseño del pipeline de traducción (cuándo usar bibliotecas i18n, cuándo usar un TMS y cuándo usar IA)
  • Flujos de trabajo en Git para mantener sincronizadas las cadenas fuente y las traducciones
  • Automatización que bloquea los PR si las cadenas nuevas no están marcadas para traducción

La tecnología tiene solución. El flujo de trabajo es el obstáculo. Diseño flujos de trabajo que no requieren esfuerzos heroicos para mantenerlos.

Equipos con los que he trabajado

Productos globales, experiencia regional

Logotipo de LINE (Japan, Taiwan, Thailand)

LINE (Japan, Taiwan, Thailand)

Plataforma de mensajería que opera en 3 mercados principales del este de Asia. He trabajado en retos específicos de gestión de caracteres CJK, integración en el ecosistema de la plataforma y las distintas expectativas de experiencia de usuario en Japón, Taiwán y Tailandia.

Logotipo de KakaoTalk (South Korea)

KakaoTalk (South Korea)

La plataforma de mensajería líder en Corea. Abordé requisitos de producto específicos del mercado coreano, como las expectativas de formalidad lingüística en la interfaz y las necesidades de integración con la plataforma.

Logotipo de Change.org (196 countries, 20+ priority languages)

Change.org (196 countries, 20+ priority languages)

Plataforma global de peticiones, donde la velocidad y la calidad del contenido importan por igual. Ayudé a definir el flujo de trabajo de traducción para contenido político y social generado por usuarios en diversos mercados.

Logotipo de Airbnb (220+ countries, 60+ languages)

Airbnb (220+ countries, 60+ languages)

Mercado global con requisitos complejos de internacionalización. Asesoré sobre los retos relacionados con la confianza y la seguridad en múltiples idiomas, así como la adaptación cultural de los conceptos de la plataforma en distintos mercados.

Logotipo de Intercom (30+ languages, global B2B SaaS)

Intercom (30+ languages, global B2B SaaS)

Plataforma de comunicación con clientes que presta servicio a empresas globales. He trabajado en la internacionalización de productos para herramientas de soporte en tiempo real y en la localización de bases de conocimiento.

Logotipo de Lilith Games (China, Japan, Korea, US, EU)

Lilith Games (China, Japan, Korea, US, EU)

Editora de juegos para móvil con títulos distribuidos a nivel mundial. Afronté retos específicos de cada mercado en localización de contenido y requisitos regionales de las plataformas.

Mercados en los que he lanzado:

Asia Oriental (Japón, Corea, China):

Tipografía CJK, integración en el ecosistema de la plataforma y compatibilidad con texto vertical

Sudeste Asiático (Tailandia, Vietnam, Indonesia):

Compatibilidad con múltiples escrituras, expectativas de usuario centradas en el móvil

MENA (regiones de habla árabe):

Requisitos de diseño RTL, expectativas de registro formal frente a coloquial, adaptación cultural del contenido

Europa:

24 idiomas oficiales, lanzamientos de producto en varios países

Américas:

Variaciones regionales del idioma (español de Latinoamérica frente al de España, portugués de Brasil), mercados bilingües

He visto de primera mano lo que funciona y lo que falla en estos mercados; no desde la teoría, sino tras haber lanzado productos de los que dependen usuarios reales.

Vamos a corregir lo que está fallando

No necesitas una charla sobre por qué es importante la internacionalización. Necesitas a alguien que haya depurado popovers RTL a las 2 de la mañana, que haya discutido con producto sobre límites de caracteres y que haya diseñado pipelines de traducción que funcionen de verdad.

Revisión de arquitectura y estrategia (1-2 semanas):

Te digo qué fallará cuando añadas tus próximos 3 idiomas y cuánto costará corregirlo

Acompañamiento en el lanzamiento al mercado (4-8 semanas):

Vas a lanzarte en Japón/MENA/UE y necesitas expertos que ya lo hayan hecho

Colaboración continua:

Consultoría integrada a medida que pasas de 2 a 20 idiomas

Nada de teoría. Yo hago triaje, hojas de ruta y lanzamientos.