La CLI de Lingo.dev traduce archivos estáticos de tu repositorio —Markdown, MDX, Markdoc, JSON, YAML, subtítulos y más— con un motor de localización configurado. Apúntala a tu contenido, ejecútala una vez y obtén los archivos traducidos junto a los originales.
Tipos de contenido compatibles#
| Tipo de contenido | Formato | Bucket de la CLI | Ruta de ejemplo |
|---|---|---|---|
| Documentación | Markdown | markdown | docs/[locale]/getting-started.md |
| Documentación | MDX | mdx | docs/[locale]/getting-started.mdx |
| Documentación | Markdoc | markdoc | docs/[locale]/getting-started.mdoc |
| Datos estructurados | JSON | json | data/[locale].json |
| Datos estructurados | YAML | yaml | data/[locale].yaml |
| Artículos de blog | Markdown / MDX | markdown / mdx | blog/[locale]/post-slug.md |
| Subtítulos | SRT | srt | subs/[locale]/intro.srt |
| Subtítulos | VTT | vtt | subs/[locale]/intro.vtt |
| Hojas de cálculo | CSV | csv-per-locale | data/[locale].csv |
| Cadenas de configuración | Properties | properties | lang/[locale].properties |
| Cadenas de configuración | Gettext PO | po | locale/[locale]/messages.po |
| Texto sin formato | TXT | txt | content/[locale]/readme.txt |
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 determina qué modelo LLM, glosario, voz de marca e instrucciones se aplican. Crea uno en el panel de Lingo.dev y genera una clave de API.
Sitios de documentación#
La mayoría de los frameworks de documentación organizan el contenido traducido en directorios por idioma. Los buckets markdown, mdx y markdoc de la CLI traducen estos archivos conservando el frontmatter, los bloques de código y la sintaxis de los componentes.
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"markdown": {
"include": ["docs/[locale]/getting-started.md"]
},
"mdx": {
"include": ["docs/[locale]/setup.mdx"]
}
}
}Ajusta el patrón include para adaptarlo a la convención de directorios de tu framework:
| Framework | Convención de directorio por idioma | Referencia |
|---|---|---|
| Docusaurus | i18n/[locale]/docusaurus-plugin-content-docs/current/ | Guía de i18n de Docusaurus |
| Nextra | Páginas por idioma o diccionarios JSON | Documentación de Nextra |
| Hugo | content/[locale]/ | Guía multilingüe de Hugo |
| Astro | src/content/[locale]/ o diccionarios JSON | Guía de i18n de Astro |
| VitePress | Prefijo de directorio [locale]/ | i18n de VitePress |
| MkDocs | docs/ por idioma con el plugin de i18n | Plugin de i18n de MkDocs |
Componentes MDX
El bucket mdx conserva la sintaxis de los componentes JSX durante la traducción. Los componentes personalizados, como <Callout>, <Tabs> y <CodeBlock>, se mantienen intactos: solo se traduce el contenido de texto que contienen.
Datos estructurados#
Los archivos JSON y YAML se traducen con los buckets json y yaml. Usa claves bloqueadas para evitar que se modifiquen valores no traducibles, como ID, URL o indicadores de configuración.
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"json": {
"include": ["content/[locale].json"],
"lockedKeys": ["id", "slug", "url"]
},
"yaml": {
"include": ["data/[locale].yaml"]
}
}
}En los archivos YAML que usan el código de idioma como clave raíz —algo habitual en Rails y Hugo— usa en su lugar el bucket yaml-root-key: lee desde la clave del idioma de origen y escribe en las claves de los idiomas de destino dentro del mismo archivo.
Subtítulos#
Los archivos de subtítulos SRT y VTT se traducen con los buckets srt y vtt. La CLI conserva todos los datos de temporización, los índices de las pistas y las etiquetas de formato: solo se traduce el contenido de texto.
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"srt": {
"include": ["subs/[locale]/intro.srt"]
}
}
}Trabajo con grandes volúmenes de contenido#
Los repositorios de contenido estático pueden contener miles de archivos. La CLI lo gestiona de forma eficiente mediante tres mecanismos:
| Mecanismo | Cómo ayuda |
|---|---|
| Lockfile | Registra las huellas SHA-256 del contenido de origen. En ejecuciones posteriores, solo se traducen los archivos nuevos o modificados. |
| Procesamiento en paralelo | Distribuye la traducción entre varios workers en paralelo. Configúralo con run --concurrency 20. |
| Ejecuciones dirigidas | Procesa un bucket o un idioma específico: run --bucket markdown o run --target-locale es. |
