¿Qué son I18n y L10n?
Internacionalización (I18n) es el proceso de ingeniería de diseñar software para que pueda adaptarse a diferentes idiomas y regiones sin cambios de código. El “18” se refiere a las 18 letras entre la “I” y la “n” en “internationalization”.
Localización (L10n) es el proceso de adaptar una aplicación internacionalizada para un locale específico — traducir texto, ajustar formatos de fecha/número, manejar convenciones culturales y cumplir regulaciones locales.
Piensa en I18n como construir un auto con tablero intercambiable (volante puede ir a izquierda o derecha, instrumentos muestran km o millas). L10n es configurar ese auto para un país específico.
I18n vs L10n Testing
| Aspecto | Testing I18n | Testing L10n |
|---|---|---|
| Enfoque | ¿El código soporta múltiples locales? | ¿La adaptación específica es correcta? |
| Cuándo | Durante desarrollo | Después de traducción |
| Prueba | Externalización de strings, encoding, formatos | Calidad de traducción, apropiación cultural |
| Quién | Desarrolladores y QA | Traductores, hablantes nativos, QA |
Qué Probar: Problemas de I18n
Externalización de Strings
Todo texto visible debe estar en archivos de recursos, no hardcodeado.
Cómo probar: Usar pseudo-localización, buscar strings hardcodeados en código fuente, verificar que mensajes de error, tooltips y emails estén externalizados.
Malo: "Bienvenido, " + userName + "! Tienes " + count + " mensajes."
Bueno: i18n("welcome_message", {name: userName, count: count})
Encoding de Caracteres (UTF-8)
Cómo probar: Ingresar caracteres de varios scripts: chino (中文), árabe (العربية), japonés (日本語). Probar emoji 👋🌍. Verificar almacenamiento y visualización correcta. Probar búsqueda con caracteres no-latinos.
Formatos de Fecha, Hora y Número
| Formato | EE.UU. | Alemania | Japón | Arabia |
|---|---|---|---|---|
| Fecha | 03/19/2026 | 19.03.2026 | 2026/03/19 | ١٩/٠٣/٢٠٢٦ |
| Número | 1,234.56 | 1.234,56 | 1,234.56 | ١٬٢٣٤٫٥٦ |
| Moneda | $1,234.56 | 1.234,56 € | ¥1,234 | ١٬٢٣٤٫٥٦ ر.س |
Expansión y Contracción de Texto
Las traducciones son frecuentemente más largas que el inglés original:
| Idioma | Expansión promedio desde inglés |
|---|---|
| Alemán | +30% |
| Español | +20% |
| Finlandés | +30-40% |
| Chino | -50% |
| Japonés | -30% |
Cómo probar: Verificar que elementos UI manejan texto más largo sin romper layout, que texto no se trunca sin elipsis, probar con pseudo-localización que expande 30-40%.
Idiomas de Derecha a Izquierda (RTL)
Árabe, hebreo, farsi y urdu se leen de derecha a izquierda. Esto afecta todo el layout.
Qué cambia: Alineación de texto se invierte, layout se espeja, barras de progreso se llenan de derecha a izquierda, texto bidireccional.
Cómo probar: Cambiar a idioma RTL, verificar que el layout se espeje correctamente, comprobar que números y texto inglés incrustado se muestren correctamente.
Moneda
- Símbolo y formato correcto por locale
- Posición del símbolo varía (€10 en Francia, 10€ en Alemania)
- Algunas monedas sin decimales (JPY, KRW)
Sensibilidad Cultural
- Colores tienen diferentes significados por cultura
- Imágenes e íconos deben ser culturalmente apropiados
- Formatos de nombre y dirección varían por país
Pseudo-Localización
Transforma texto en inglés a versión acentuada legible que simula efectos de traducción.
Original: “Save Changes” Pseudo-localizado: “[Šàvé Çĥàñĝéš!!!!!!]”
Agrega: caracteres acentuados (revelan problemas de encoding), expansión de texto ~40% (revela truncamiento), corchetes (revelan concatenación de strings).
Ejercicio: Checklist de L10n para App Multi-Idioma
Crea un checklist completo de testing de L10n para una aplicación web que debe soportar inglés, español, alemán, árabe y japonés.
Contexto
Plataforma e-commerce B2C con: listados de productos, carrito, checkout con pago, perfiles de usuario, emails y chat de soporte.
Tarea
Crea un checklist cubriendo todas las dimensiones de L10n/I18n con casos de prueba específicos para cada idioma soportado.
Pista: Piensa en Cada Punto de Contacto
Considera: texto de UI, formularios, fechas/horas, monedas, emails, PDFs, búsqueda, ordenamiento, errores, notificaciones y contenido generado por usuarios. Árabe requiere atención especial para layout RTL.
Solución: Checklist Completo de L10n
1. Externalización de Strings
- Pseudo-localización — todo el texto UI transformado
- Plantillas de email en los 5 idiomas
- Mensajes de error traducidos
- Facturas PDF en el locale del cliente
- Notificaciones push/SMS localizadas
2. Encoding de Caracteres
- Perfil con nombre alemán (Müller, Größe)
- Reseña de producto en japonés
- Búsqueda con caracteres árabes
- Export CSV con contenido multi-idioma
3. Formatos de Fecha/Hora/Número
- EN: March 19, 2026 / $1,234.56
- ES: 19 de marzo de 2026 / $1.234,56
- DE: 19. März 2026 / 1.234,56 €
- AR: ١٩ مارس ٢٠٢٦ / ١٬٢٣٤٫٥٦ ر.س
- JA: 2026年3月19日 / ¥1,234
- Zonas horarias muestran hora local del usuario
4. Expansión de Texto
- Menú de navegación en alemán (+30%) — sin overflow
- Etiquetas de botones en español — sin truncamiento
- Headers de tabla en todos los idiomas — columnas se adaptan
- Layout móvil con texto alemán expandido
5. Layout RTL (Árabe)
- Layout completo se espeja correctamente
- Carrito fluye derecha a izquierda
- Pasos de checkout progresan derecha a izquierda
- Texto bidireccional (precio árabe con numerales) correcto
- Íconos de navegación espejados
- Etiquetas de formulario alineadas a la derecha
6. Moneda
- USD: $1,234.56 / EUR: 1.234,56 € / JPY: ¥1,234 (sin decimales)
- Posición del símbolo correcta por locale
- Ordenamiento por precio funciona entre monedas
7. Sensibilidad Cultural
- Imágenes apropiadas para todos los mercados
- Formulario de dirección adapta por país
- Formato de teléfono soporta formatos internacionales
8. Ordenamiento y Colación
- Ordenamiento alfabético correcto en alemán (ä después de a)
- Ordenamiento japonés usa colación correcta
- Búsqueda árabe encuentra con/sin diacríticos
- Ordenamiento español maneja ñ correctamente
Total: 45+ casos de prueba en 8 dimensiones.
Tips Profesionales
- Pseudo-Localiza en CI/CD: Integra pseudo-localización en tu pipeline. Ejecuta tests E2E con strings pseudo-localizados para detectar problemas de layout automáticamente.
- Prueba con Hablantes Nativos: Las herramientas automatizadas no detectan traducciones torpes o insensibilidad cultural. Que hablantes nativos revisen en contexto.
- Separa Testing I18n de L10n: Primero I18n (¿el código soporta localización?) antes de L10n (¿la localización específica es correcta?).
- Usa ICU MessageFormat: En lugar de concatenar strings, usa ICU MessageFormat para manejar plurales, género y variables. Maneja las enormes diferencias gramaticales entre idiomas.
- No Olvides Contenido de Usuarios: Los usuarios ingresarán texto en cualquier idioma. Verifica que búsqueda, ordenamiento y visualización funcionen con contenido multi-idioma.