Título
Subtítulo
Título
Párrafo 1
Párrafo 2
Párrafo 3
Título
Párrafo 1
Párrafo 2
Párrafo 3
Título
Subtítulo
Identificadores de configuración regional (BCP 47)
Las etiquetas BCP 47, como «en-US» o «zh-Hans-CN», codifican el idioma, el alfabeto y la región. Constituyen la base de todo sistema de internacionalización y determinan qué traducciones, formatos y reglas se aplican.
Unicode y UTF-8
Unicode asigna un punto de código único a cada carácter de cada alfabeto. UTF-8 es la codificación predominante en la web y garantiza que el texto se muestre correctamente independientemente del idioma.
Claves de traducción
Las claves de traducción son identificadores fijos que se asocian a cadenas específicas de cada configuración regional. Separan el código fuente del contenido traducible, lo que permite el desarrollo y la traducción en paralelo.
Pluralización (UCI)
Las lenguas tienen diferentes reglas para el plural: el inglés tiene dos formas, mientras que el árabe tiene seis. ICU MessageFormat gestiona los plurales, el género y determinadas expresiones mediante una única sintaxis.
Asistencia técnica de RTL
El árabe, el hebreo y otros alfabetos se leen de derecha a izquierda. La compatibilidad con RTL requiere invertir los diseños, voltear los iconos y utilizar propiedades lógicas de CSS en lugar de las propiedades «left» y «right».
Fecha / Número / Moneda
Las fechas, los números y las divisas varían según la configuración regional. La API Intl y bibliotecas como date-fns ofrecen un formato adaptado a la configuración regional, de modo que 1.000,50 se muestra como 1.000,50 en alemán.
Título
Subtítulo
JSON
Es la opción más popular para aplicaciones web (React, Vue, Angular). Es legible para el ser humano y admite el anidamiento para crear estructuras de claves organizadas. No cuenta con un estándar de pluralización integrado, por lo que bibliotecas como ICU MessageFormat cubren esa necesidad.
XLIFF
Estándar del sector basado en XML para el intercambio de traducciones entre herramientas. Compatible con todas las plataformas profesionales de gestión de traducciones (TMS). Aunque resulta algo prolijo, ofrece numerosas funciones, con soporte integrado para notas, seguimiento del estado y metadatos.
PO/POT (Gettext)
Formato clásico de código abierto utilizado en los ecosistemas de Python, PHP y Ruby. Compatibilidad integrada con el plural, con una sintaxis específica para las formas plurales. Ampliamente compatible con traductores y herramientas de traducción.
ARB
El paquete de recursos de la aplicación es el formato estándar de Flutter y Dart. Se basa en JSON y es compatible con la sintaxis de mensajes ICU, lo que permite el uso nativo de plurales y menús desplegables. Lo utiliza la herramienta gen-l10n de Flutter.
.strings / .stringsdict
Formatos nativos de la plataforma Apple para el desarrollo en iOS y macOS. El archivo .strings gestiona pares clave-valor sencillos, mientras que el archivo .stringsdict utiliza la estructura XML de los archivos plist para las reglas de pluralización.
.resx
Formato de archivo de recursos .NET utilizado en aplicaciones de C# y VB.NET. Basado en XML y con una sólida integración con las herramientas de Visual Studio. Admite recursos tipados para cadenas, imágenes y otros activos.
Título
Subtítulo
Revise su código fuente
Identifique todas las cadenas de texto fijas, los formatos de fecha y los patrones dependientes de la configuración regional. Determine qué componentes y páginas contienen texto visible para el usuario que sea necesario extraer.
Externalizar cadenas
Traslade todo el texto destinado a los usuarios a archivos de recursos estructurados (JSON, XLIFF o PO). Sustituya las cadenas en línea por llamadas a funciones de traducción que hagan referencia a claves.
Elija sus herramientas
Seleccione una biblioteca de internacionalización (i18n) para su marco de trabajo, un sistema de gestión de traducciones (TMS) para la colaboración y decida si desea utilizar flujos de trabajo de traducción realizados por personas, por IA o híbridos.
Integrar y enviar
Integre su biblioteca de internacionalización (i18n) en el enrutamiento y la visualización, conecte su sistema de gestión de traducciones (TMS) a la integración continua y la entrega continua (CI/CD) para una sincronización automática, e implemente paquetes de configuración regional a través de una red de distribución de contenidos (CDN) para una entrega rápida.
Título
Subtítulo
Integración para Desarrolladores
Evalúe las herramientas CLI, el soporte de SDK, los flujos de trabajo basados en Git y los hooks de CI/CD. Las mejores plataformas TMS se integran directamente en su canal de desarrollo para que las traducciones se mantengan sincronizadas con los cambios de código automáticamente.
Memoria de Traducción
La memoria de traducción almacena traducciones previamente aprobadas y las sugiere para cadenas similares o idénticas. Esto reduce el costo de traducción, acelera los tiempos de entrega y mantiene la coherencia en todo su producto.
Funciones de Colaboración
Busque flujos de revisión, comentarios en línea, glosarios compartidos y cadenas de aprobación. Estas funciones permiten que traductores, revisores y desarrolladores trabajen juntos sin cuellos de botella ni malentendidos.
IA y Automatización
Las plataformas TMS modernas ofrecen sugerencias de traducción automática, verificaciones de calidad automatizadas, operaciones en lote y enrutamiento inteligente. Los flujos de trabajo asistidos por IA reducen el esfuerzo manual mientras mantienen la calidad de la traducción.
Título
Subtítulo
React
Patrones de react-intl, react-i18next y FormatJS
Next.js
Localización (i18n) del enrutador de aplicaciones, el middleware y los componentes del servidor
Vue
La API de composición de vue-i18n y la integración con SFC
Angular
i18n, ngx-translate y Transloco integrados
Svelte
svelte-i18n, el enrutamiento de SvelteKit y los almacenes
Flutter
el paquete «intl», los archivos ARB y las herramientas de gen-l10n
React Native
i18next, la localización de Expo y los módulos nativos
Nuxt
Módulo @nuxtjs/i18n con redireccionamiento automático
Título
Subtítulo
Concatenación de cadenas
La construcción de frases mediante la concatenación de fragmentos no funciona en idiomas con un orden de las palabras diferente. En su lugar, utilice ICU MessageFormat con marcadores de posición.
Cadenas de texto fijas
Incluir texto destinado a los usuarios directamente en el código fuente hace que la traducción sea imposible sin modificar el código. Externalice todas las cadenas desde el primer momento.
Ignorar los plurales
El sencillo «if/else» para singular y plural solo funciona en inglés. Muchos idiomas tienen múltiples formas de plural que requieren reglas de plural de la ICU adecuadas.
Una traducción a posteriori
Incorporar la internacionalización tras el lanzamiento implica una costosa refactorización. Diseñar teniendo en cuenta la internacionalización desde el principio ahorra tiempo y evita la deuda arquitectónica.
Título
Subtítulo
- Todas las cadenas destinadas al usuario se han trasladado a archivos de recursos
- Se ha implementado la detección de la configuración regional (navegador, URL, preferencias del usuario)
- La pluralización se gestiona mediante ICU MessageFormat para todos los idiomas de destino
- El formato de fecha, hora, números y moneda utiliza la API Intl o su equivalente
- Compatibilidad con el diseño RTL probada con propiedades lógicas de CSS
- Configuración de la configuración regional alternativa para las traducciones que faltan
- Las claves de traducción siguen una convención de nomenclatura coherente
- El proceso de integración continua comprueba que no haya claves de traducción que falten o que no se utilicen
Título
Subtítulo
- Pseudo
- Visual
- Automatizado
- Lingüística
- Expansión
Título
Subtítulo
¿Cuál es la diferencia entre i18n y L10n?
La internacionalización (i18n) es el proceso técnico de diseñar software para que sea compatible con múltiples idiomas y regiones. La localización (L10n) es el proceso de adaptación de dicho software a una configuración regional específica, lo que incluye traducir el texto, ajustar los formatos y garantizar la adecuación cultural. La i18n se lleva a cabo una sola vez en el código fuente; la L10n se realiza para cada configuración regional que se admita.
¿Qué biblioteca de internacionalización debería utilizar?
La mejor biblioteca depende del marco de trabajo que utilice. En el caso de React, react-intl (FormatJS) y react-i18next son las más utilizadas. Los desarrolladores de Vue suelen utilizar vue-i18n. Angular cuenta con compatibilidad integrada con la internacionalización, además de opciones de la comunidad como Transloco. Los proyectos de Svelte utilizan svelte-i18n. Evalúe cada opción teniendo en cuenta el tamaño del paquete, la compatibilidad con ICU y su grado de integración con su modelo de renderizado.
¿En cuántos idiomas debería lanzar el producto?
Empiece por dos o tres idiomas de gran impacto, basándose en sus datos de usuarios actuales o en estudios de mercado sobre su público objetivo. Esto le permitirá validar su arquitectura de internacionalización, su flujo de trabajo de traducción y su proceso de control de calidad a una escala manejable. Amplíe a otros idiomas una vez que cuente con un proceso fiable, utilizando datos analíticos para priorizar qué configuraciones regionales añadir a continuación.
¿Puedo utilizar la traducción automática en mi aplicación?
Un enfoque híbrido funciona bien: utilice la traducción automática para los borradores iniciales y el contenido de gran volumen y baja importancia, y luego encargue a revisores humanos que perfeccionen las cadenas de texto en las que la calidad es fundamental, como los textos de marketing, los mensajes de error y los textos legales. La traducción automática neuronal moderna ha mejorado considerablemente, pero la revisión humana sigue siendo esencial para captar los matices, la voz de la marca y la precisión cultural.
¿Qué es la pseudolocalización?
La pseudolocalización es una técnica de prueba que sustituye el texto por caracteres acentuados o ampliados (por ejemplo, convirtiendo «Hello» en «[~Hellllo~]») sin alterar el significado. Ayuda a los desarrolladores a detectar cadenas codificadas de forma rígida, truncamientos de texto y problemas de maquetación antes de que se disponga de traducciones reales. La mayoría de las bibliotecas de internacionalización y las herramientas de gestión de traducciones admiten la generación automática de resultados pseudolocalizados.
¿Cómo gestiono la localización de contenido dinámico?
Utilice los marcadores de posición de ICU MessageFormat para la interpolación (por ejemplo, «Hola, {name}») en lugar de concatenar cadenas de caracteres. Para los plurales, utilice la sintaxis de plural de ICU, que se adapta a las reglas de cada idioma. Evite construir frases a partir de fragmentos, ya que el orden de las palabras varía según el idioma. Para el texto enriquecido, utilice marcadores de posición etiquetados que permitan a los traductores reordenar los elementos HTML sin alterar el marcado.