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

Localización

  • Resumen
  • API de traducción
  • Localización de apps web
  • Localización de apps móviles
  • iOS con String Catalogs
  • 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 de recursos móviles nativos —Xcode .strings, Android XML, Flutter ARB y React Native JSON— 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 maneja los plurales de forma nativa.

Resumen de plataformas#

PlataformaFormato nativoBucket de 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 define qué modelo de 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 se ajuste a la configuración de tu proyecto.

String Catalogs (.xcstrings): el formato moderno de Xcode, introducido en Xcode 15. Un solo archivo JSON contiene todos los idiomas, y Xcode lo actualiza automáticamente cuando agregas nuevas cadenas. La CLI modifica este archivo directamente; no hace falta el placeholder [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 dentro de directorios [locale].lproj/. Si tu proyecto también usa .stringsdict para plurales, agrega 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 i18n de Xcode.

Ejecuta las 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é cambió desde la última ejecución con el lockfile, traduce solo el delta y escribe los resultados en los archivos del idioma de destino.

Apunta a una plataforma específica 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 maneja las formas 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 plurales correctas para cada idioma de destino.

Notas para traductores

Las cadenas móviles suelen ser cortas y depender mucho del contexto. Usa notas para traductores en archivos .xcstrings de Xcode para darle al motor de localización contexto sobre dónde aparece una cadena: "etiqueta de botón en el flujo de pago" se traduce distinto de "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 archivos 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 específicos sin traducirlos

¿Te resultó útil esta página?

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