|
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 web

La CLI de Lingo.dev traduce los archivos de recursos de tu app web —JSON, YAML, XLIFF, PO o PHP— a través de un motor de localización configurado. Configura i18n en tu framework, apunta la CLI a tus archivos de traducción y ejecútala.

Cómo funciona#

Todos los frameworks web tienen una librería de i18n que carga traducciones desde archivos de recursos: JSON para React, XLIFF para Angular, PO para Django, y así sucesivamente. La CLI traduce esos archivos directamente, para que el framework tome las traducciones sin necesidad de hacer cambios en el código.

1

Configura i18n en tu framework

Usa la librería oficial de i18n de tu framework para agregar enrutamiento según el idioma, una función de traducción y archivos de recursos en el idioma de origen. En cada sección de framework más abajo encontrarás un enlace a la guía oficial de configuración.

2

Configura la CLI

Ejecuta lingo init para crear un .lingo/config.json con tus idiomas de origen y destino, además de los patrones de archivo que quieres traducir. Luego ejecuta lingo link para vincular tu organización y motor. El CLI detecta automáticamente el formato de cada archivo según su extensión, así que no hace falta indicar ningún tipo de bucket. Haz commit de .lingo/config.json.

3

Ejecuta las traducciones

Ejecuta lingo push y la CLI traducirá tus archivos de recursos a través del motor de localización; las reglas del glosario, la voz de marca y la selección de modelo se aplican automáticamente.

Requisitos previos#

Instala el CLI y autentícate:

bash
npm install -g @lingo.dev/cli
lingo login

El CLI requiere Node.js 22+. En CI, omite el inicio de sesión interactivo y pasa una clave con --api-key o con la variable de entorno LINGO_API_KEY.

Cada ejecución de 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 y reglas se aplican. Crea uno en el panel de Lingo.dev y genera una API key. lingo link guarda el orgId y la engineId del motor en .lingo/config.json.

Configuración asistida por IA

El i18n MCP puede crear automáticamente toda la infraestructura de i18n de tu framework. Conéctalo a Claude Code, Cursor o GitHub Copilot y escribe "Set up i18n"; el agente seguirá una lista de 13 pasos para configurar el enrutamiento, los archivos de traducción y un selector de idioma.

Frameworks de JavaScript#

El segmento de idioma en cada pattern se sustituye según el idioma de destino: public/locales/en/translation.json pasa a ser public/locales/de/translation.json, y así sucesivamente. La ruta de origen debe incluir el código del idioma de origen.

react-i18next carga traducciones desde archivos JSON y ofrece un hook useTranslation que asigna claves a cadenas traducidas en tiempo de ejecución.

json
{
  "orgId": "org_...",
  "engineId": "eng_...",
  "sourceLocale": "en",
  "targetLocales": ["es", "fr", "de", "ja"],
  "files": [{ "pattern": "public/locales/en/translation.json" }]
}

Frameworks del lado del servidor#

Laravel incluye localización integrada que carga traducciones desde archivos PHP organizados por directorio de idioma.

json
{
  "orgId": "org_...",
  "engineId": "eng_...",
  "sourceLocale": "en",
  "targetLocales": ["es", "fr", "de", "ja"],
  "files": [{ "pattern": "lang/en/messages.php" }]
}

Ejecución de traducciones#

Con .lingo/config.json ya configurado, traduce todos los archivos de recursos con un solo comando:

bash
lingo push

El CLI lee los archivos del idioma de origen, calcula qué cambió desde la última ejecución con el lockfile (.lingo/lock.json, versionado junto con tu configuración), traduce solo el delta y escribe los resultados en los archivos del idioma de destino. Las traducciones existentes se conservan: el CLI solo completa las cadenas que faltan o se actualizaron.

En la primera ejecución, o después de agregar un nuevo idioma de destino, tradúcelo todo desde cero:

bash
lingo push --backfill-missing

Limita una ejecución a un subconjunto de archivos pasando un glob:

bash
lingo push "messages/**"

Para traer las traducciones más recientes en otro entorno (por ejemplo, en otra máquina o en un paso de compilación) sin traducir nada, ejecuta lingo pull. Usa lingo check como compuerta de despliegue para verificar que las traducciones estén al día.

Siguientes pasos#

Proyectos de ejemplo
Repositorios funcionales de React, Next.js, Laravel y Rails con la configuración y las traducciones ya incluidas en el repositorio
Configuración de la CLI
Referencia completa de .lingo/config.json: archivos, códigos de idioma y opciones avanzadas
Formatos compatibles
Todos los formatos de archivo que el CLI puede traducir
GitHub App
Automatiza las traducciones en cada push: del lado del servidor, sin runner ni secretos
i18n MCP
Configuración de i18n asistida por IA para tu framework

¿Te resultó útil esta página?

Max PrilutskiyMax Prilutskiy·Actualizado hace 8 días·5 min de lectura