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.
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.
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.
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:
npm install -g @lingo.dev/cli
lingo loginEl 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.
{
"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" }]
}Ejecución de traducciones#
Con .lingo/config.json ya configurado, traduce todos los archivos de recursos con un solo comando:
lingo pushEl 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:
lingo push --backfill-missingLimita una ejecución a un subconjunto de archivos pasando un glob:
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.
