|
Documentación
Reservar una demoPlataforma
PlataformaMCPCLIAPIFlujos de trabajo
Guías
Registro de cambios

Localización

  • Resumen
  • API de traducción
  • Localización de aplicaciones web
  • Localización de apps móviles
  • iOS con catálogos de cadenas
  • Android con strings.xml
  • Localización de emails
  • Contenido estático (p. ej., .md, .json)
  • Next.js con Markdoc
  • Rails con i18n

Flujos de trabajo

  • Configuración del motor con MCP
  • Triaje de Jira
  • CI/CD

Localización de contenido estático

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#

La CLI detecta el formato de cada archivo por su extensión; no hay ningún tipo de bucket que configurar. El idioma va en la ruta (content/en/x.md pasa a ser content/de/x.md), así que no hace falta el marcador [locale].

Tipo de contenidoFormatoRuta de ejemplo
DocumentaciónMarkdowndocs/en/getting-started.md
DocumentaciónMDXdocs/en/getting-started.mdx
DocumentaciónMarkdocdocs/en/getting-started.mdoc
Datos estructuradosJSONdata/en.json
Datos estructuradosYAMLdata/en.yaml
Artículos de blogMarkdown / MDXblog/en/post-slug.md
LocalizaciónGettext POlocale/en/messages.po
LocalizaciónXLIFFlocale/en.xliff
SubtítulosSRTsubs/en/intro.srt

Consulta la Referencia de formatos para ver la lista completa de tipos de archivo compatibles.

Aún no compatible con la nueva CLI

CSV (csv-per-locale), subtítulos VTT, archivos de texto sin formato .txt y .properties de Java todavía no son compatibles con la nueva CLI. Por ahora, mantén esos archivos en la legacy CLI y consulta el registro de cambios para conocer las novedades.

Requisitos previos#

En cada ejecución, el contenido pasa por 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, después, configura la CLI (Node 22+):

bash
npm install -g @lingo.dev/cli
lingo login
lingo init
lingo link

lingo init y lingo link crean .lingo/config.json, conectando la CLI con tu organización y tu motor. Haz commit de este archivo para que todos los entornos compartan la misma configuración.

json
{
  "orgId": "org_abc123",
  "engineId": "eng_abc123",
  "sourceLocale": "en",
  "targetLocales": ["es", "fr", "de", "ja"],
  "files": [{ "pattern": "docs/en/getting-started.md" }]
}

En CI, omite lingo login y proporciona LINGO_API_KEY como variable de entorno. Puedes generar una desde las API keys.

Sitios de documentación#

La mayoría de los frameworks de documentación organizan el contenido traducido en directorios por idioma. Añade un patrón por archivo fuente (o un glob) a files. La CLI conserva el frontmatter, los bloques de código y la sintaxis de los componentes mientras traduce Markdown, MDX y Markdoc.

json
{
  "orgId": "org_abc123",
  "engineId": "eng_abc123",
  "sourceLocale": "en",
  "targetLocales": ["es", "fr", "de", "ja"],
  "files": [
    { "pattern": "docs/en/getting-started.md" },
    { "pattern": "docs/en/setup.mdx" }
  ]
}

Lanza la primera traducción para rellenar todos los idiomas de destino:

bash
lingo push --backfill-missing

En ejecuciones posteriores, lingo push traduce solo lo que ha cambiado. Usa lingo pull para recuperar traducciones generadas en otro lugar.

Ajusta la ruta de origen para que encaje con la convención de directorios de tu framework:

FrameworkConvención de directorio por idiomaReferencia
Docusaurusi18n/[locale]/docusaurus-plugin-content-docs/current/Guía de i18n de Docusaurus
NextraPáginas por idioma o diccionarios JSONDocumentación de Nextra
Hugocontent/[locale]/Guía multilingüe de Hugo
Astrosrc/content/[locale]/ o diccionarios JSONGuía de i18n de Astro
VitePressPrefijo de directorio [locale]/i18n de VitePress
MkDocsdocs/ por idioma con el plugin de i18nPlugin de i18n de MkDocs

Componentes MDX

La traducción de MDX conserva la sintaxis de los componentes JSX. Los componentes personalizados como <Callout>, <Tabs> y <CodeBlock> pasan sin cambios; solo se traduce el contenido de texto que contienen.

Datos estructurados#

Los archivos JSON y YAML se traducen automáticamente según su extensión. Usa controles de claves para evitar que se modifiquen valores no traducibles (ID, URL e indicadores de configuración).

json
{
  "orgId": "org_abc123",
  "engineId": "eng_abc123",
  "sourceLocale": "en",
  "targetLocales": ["es", "fr", "de", "ja"],
  "files": [
    { "pattern": "content/en.json" },
    { "pattern": "data/en.yaml" }
  ]
}

El YAML genérico no necesita un campo format. Solo yaml-openapi, yaml-root-key y android requieren un "format" explícito en la entrada del archivo.

YAML con clave raíz de idioma

Los archivos YAML que usan el código de idioma como clave raíz (habitual en Rails y Hugo) necesitan un "format": "yaml-root-key" explícito: la clave raíz se reescribe al idioma de destino. Consulta la Referencia de formatos.

Subtítulos#

Los archivos de subtítulos SRT se traducen según su extensión. La CLI conserva todos los datos de temporización, los índices de las entradas y las etiquetas de formato; solo se traduce el contenido de texto.

json
{
  "orgId": "org_abc123",
  "engineId": "eng_abc123",
  "sourceLocale": "en",
  "targetLocales": ["es", "fr", "de", "ja"],
  "files": [{ "pattern": "subs/en/intro.srt" }]
}

VTT aún no compatible

Los subtítulos WebVTT (.vtt) todavía no son compatibles con la nueva CLI. Mantén los archivos VTT en la CLI heredada y sigue el registro de cambios para enterarte de las novedades.

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:

MecanismoCómo ayuda
Estado de ejecución.lingo/lock.json hace seguimiento de las huellas del contenido fuente, así que lingo push solo traduce los archivos nuevos o modificados. Haz commit de este archivo; se regenera en cada push.
Paralelización en el servidorEl motor paraleliza la traducción por ti; no hay ninguna opción de concurrencia que ajustar.
Ejecuciones específicasLimita una ejecución a archivos concretos con un glob: lingo push "docs/en/**".

Para comprobar que las traducciones están al día sin escribir archivos —útil como control en CI—, ejecuta lingo check.

Siguientes pasos#

Formatos compatibles
Referencia completa de todos los formatos de archivo que la CLI puede traducir
Proyectos de ejemplo
Repositorios de Markdown, MDX, Markdoc y OpenAPI listos para usar, con la configuración y las traducciones ya incluidas
Controles de claves
Evita que se traduzcan valores concretos
GitHub App
Automatiza la traducción de contenido estático en cada push
Estado de ejecución
Cómo funciona el seguimiento incremental de traducciones con .lingo/lock.json

¿Te ha resultado útil esta página?

Max PrilutskiyMax Prilutskiy·Actualizado hace 8 días·5 min de lectura