|
Documentación
Reservar una demoPlataforma
PlataformaMCPCLIAPIFlujos de trabajo
Guías
Registro de cambios

Localización

  • Resumen
  • API de traducción
  • Localización de aplicaciones web
  • Localización de apps móviles
  • iOS con catálogos de cadenas
  • Android con strings.xml
  • Localización de emails
  • Contenido estático (p. ej., .md, .json)
  • Next.js con Markdoc
  • Rails con i18n

Flujos de trabajo

  • Configuración del motor con MCP
  • Triaje de Jira
  • CI/CD

Localización de apps móviles

La CLI de Lingo.dev traduce archivos nativos de recursos móviles —Xcode .strings, XML de Android, ARB de Flutter y JSON de React Native— con un motor de localización configurado. Cada plataforma tiene un tipo de bucket específico que entiende el formato de archivo, conserva la estructura y gestiona los plurales de forma nativa.

Resumen de plataformas#

PlataformaFormato nativoBucket de la CLIRuta de archivo habitual
iOS (Xcode).stringsxcode-strings[locale].lproj/Localizable.strings
iOS (Xcode).stringsdictxcode-stringsdict[locale].lproj/Localizable.stringsdict
iOS (Xcode).xcstringsxcode-xcstringsLocalizable.xcstrings
Androidstrings.xmlandroidapp/src/main/res/values-[locale]/strings.xml
Flutter.arbflutterlib/l10n/app_[locale].arb
React Native.jsonjsonsrc/locales/[locale].json

Requisitos previos#

Cada ejecución de la CLI envía el contenido a través de un motor de localización: la configuración que determina qué modelo LLM, glosario, voz de marca e instrucciones se aplican. Crea uno en el panel de Lingo.dev y genera una API key.

Configura tu plataforma#

Xcode admite tres formatos de localización. Usa el que mejor encaje con la configuración de tu proyecto.

String Catalogs (.xcstrings): el formato moderno de Xcode, introducido en Xcode 15. Un único archivo JSON contiene todos los idiomas, y Xcode lo actualiza automáticamente cuando añades nuevas cadenas. La CLI modifica este archivo directamente; no necesita ningún marcador de posición [locale].

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "xcode-xcstrings": {
      "include": ["MyApp/Localizable.xcstrings"]
    }
  }
}

Archivos heredados .strings: un archivo por idioma en directorios [locale].lproj/. Si tu proyecto también usa .stringsdict para los plurales, añade ambos buckets.

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "xcode-strings": {
      "include": ["MyApp/[locale].lproj/Localizable.strings"]
    },
    "xcode-stringsdict": {
      "include": ["MyApp/[locale].lproj/Localizable.stringsdict"]
    }
  }
}

Consulta la documentación de localización de Apple para configurar la infraestructura de internacionalización de Xcode.

Ejecutar traducciones#

Traduce todos los archivos de recursos con un solo comando:

bash
npx lingo.dev@latest run

La CLI lee los archivos del idioma de origen, calcula qué ha cambiado desde la última ejecución mediante el lockfile, traduce solo el delta y escribe los resultados en los archivos del idioma de destino.

Apunta a una plataforma concreta cuando tu proyecto incluya varios tipos de recursos:

bash
npx lingo.dev@latest run --bucket android
npx lingo.dev@latest run --bucket xcode-xcstrings

Plurales y convenciones de cada plataforma#

Cada plataforma móvil gestiona los plurales de forma distinta: iOS usa .stringsdict o las reglas de String Catalog, Android usa elementos XML <plurals> y Flutter usa ICU MessageFormat en archivos ARB. La CLI conserva la estructura plural nativa de cada plataforma durante la traducción y genera las categorías de plural correctas para cada idioma de destino.

Notas para traductores

Las cadenas de móvil suelen ser breves y muy dependientes del contexto. Usa notas para traductores en los archivos .xcstrings de Xcode para dar al motor de localización contexto sobre dónde aparece una cadena: «texto de botón en el flujo de pago» se traduce de forma distinta a «elemento del menú de navegación».

Guías detalladas por plataforma#

iOS con String Catalogs
Guía completa de Xcode .xcstrings con CLI y GitHub Actions
Android con strings.xml
Guía completa de recursos XML de Android con CLI y GitHub Actions

Siguientes pasos#

Formatos compatibles
Referencia completa de todos los formatos de archivo móviles y tipos de bucket
Glosarios
Protege nombres de marca y términos técnicos para que no se traduzcan
Flujos de trabajo de CI/CD
Automatiza las traducciones móviles en cada push
Bloqueo de claves
Copia valores concretos sin traducirlos

¿Te ha resultado útil esta página?

Max PrilutskiyMax Prilutskiy·Actualizado hace 4 meses·4 min de lectura