La CLI de Lingo.dev traduce los archivos de recursos de tu aplicación web —JSON, YAML, XLIFF, PO o PHP— con 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 cuentan con una biblioteca de i18n que carga las traducciones desde archivos de recursos: JSON en React, XLIFF en Angular, PO en Django, etc. La CLI traduce esos archivos directamente para que el framework incorpore las traducciones sin tocar el código.
Configura i18n en tu framework
Usa la biblioteca oficial de i18n de tu framework para añadir rutas según el idioma, una función de traducción y archivos de recursos en el idioma de origen. En cada sección de frameworks más abajo encontrarás un enlace a la guía oficial de configuración.
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; después, ejecuta lingo link para vincular tu organización y tu motor. La CLI detecta automáticamente el formato de cada archivo por su extensión, así que no hace falta indicar ningún tipo de bucket. Haz commit de .lingo/config.json.
Ejecuta las traducciones
Ejecuta lingo push y la CLI traducirá tus archivos de recursos con el motor de localización: las reglas del glosario, la voz de marca y la selección del modelo se aplican automáticamente.
Requisitos previos#
Instala la CLI e inicia sesión:
npm install -g @lingo.dev/cli
lingo loginLa CLI requiere Node.js 22+. En CI, omite el inicio de sesión interactivo y pasa una clave con --api-key o mediante 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 determina 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 escribe el orgId y el engineId del motor en .lingo/config.json.
Configuración asistida por IA
El i18n MCP puede generar 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 sigue una lista de 13 pasos para configurar las rutas, los archivos de traducción y un selector de idioma.
Frameworks de JavaScript#
El segmento de idioma de 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 proporciona un hook useTranslation que asigna claves a cadenas traducidas en tiempo de ejecución.
{
"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.
{
"orgId": "org_...",
"engineId": "eng_...",
"sourceLocale": "en",
"targetLocales": ["es", "fr", "de", "ja"],
"files": [{ "pattern": "lang/en/messages.php" }]
}Ejecutar traducciones#
Con .lingo/config.json configurado, traduce todos los archivos de recursos con un solo comando:
lingo pushLa CLI lee tus archivos del idioma de origen, calcula qué ha cambiado desde la última ejecución usando 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: la CLI solo rellena las cadenas que faltan o se han actualizado.
En la primera ejecución, o después de añadir un nuevo idioma de destino, tradúcelo todo desde cero:
lingo push --backfill-missingLimita una ejecución a un subconjunto de archivos pasando un glob:
lingo push "messages/**"Para obtener las traducciones más recientes en otro entorno (por ejemplo, en otra máquina o en un paso de compilación) sin traducir, ejecuta lingo pull. Usa lingo check como control de despliegue para verificar que las traducciones están al día.
