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
Crea un archivo i18n.json que le indique a la CLI dónde están tus archivos de traducción y qué idiomas debe generar. El tipo de bucket debe coincidir con el formato de recursos de tu framework.
Ejecuta las traducciones
Ejecuta npx lingo.dev@latest run 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#
Cada ejecución de la CLI envía el contenido a través de un motor de localización, es decir, la configuración que determina 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.
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#
react-i18next carga traducciones desde archivos JSON y ofrece un hook useTranslation que asigna claves a cadenas traducidas en tiempo de ejecución.
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"json": {
"include": ["public/locales/[locale]/translation.json"]
}
}
}Frameworks del lado del servidor#
Laravel incluye localización integrada que carga traducciones desde archivos PHP organizados por directorio de idioma.
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"php": {
"include": ["lang/[locale]/messages.php"]
}
}
}Ejecución de traducciones#
Con i18n.json configurado, traduce todos los archivos de recursos con un solo comando:
npx lingo.dev@latest runLa CLI lee tus archivos del idioma de origen, calcula qué cambió desde la última ejecución usando el lockfile, traduce solo el delta y escribe los resultados en los archivos del idioma de destino. Las traducciones existentes se conservan: la CLI solo completa las cadenas faltantes o actualizadas.
Apunta a un idioma o bucket específico cuando trabajes solo en una parte:
npx lingo.dev@latest run --target-locale es
npx lingo.dev@latest run --bucket json