El 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. Solo apúntalo a tu contenido, ejecútalo una vez y obtén los archivos traducidos junto a los originales.
Tipos de contenido compatibles#
| Tipo de contenido | Formato | Bucket del 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 plano | TXT | txt | content/[locale]/readme.txt |
Requisitos previos#
Cada ejecución del 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 del CLI traducen estos archivos sin alterar el frontmatter, los bloques de código ni 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 que coincida con la convención de directorios de tu framework:
| Framework | Convención de directorios 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 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 dentro de ellos.
Datos estructurados#
Los archivos JSON y YAML se traducen con los buckets json y yaml. Usa locked keys para evitar que se modifiquen valores no traducibles, como ID, URL o flags 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"]
}
}
}Para archivos YAML que usan el código de idioma como clave raíz —algo común en Rails y Hugo— usa 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. El CLI conserva todos los tiempos, índices de cues y 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"]
}
}
}Cómo trabajar con grandes volúmenes de contenido#
Los repositorios de contenido estático pueden contener miles de archivos. El CLI lo maneja de forma eficiente con tres mecanismos:
| Mecanismo | Cómo ayuda |
|---|---|
| Lockfile | Registra huellas SHA-256 del contenido fuente. En ejecuciones posteriores, solo los archivos nuevos o modificados activan la traducción. |
| Procesamiento en paralelo | Distribuye la traducción entre workers concurrentes. Configúralo con run --concurrency 20. |
| Ejecuciones dirigidas | Procesa un bucket o idioma específico: run --bucket markdown o run --target-locale es. |
