A CLI do Lingo.dev traduz arquivos estáticos no seu repositório — Markdown, MDX, Markdoc, JSON, YAML, legendas e muito mais — com um engine de localização configurado. Basta apontar para o seu conteúdo, executar uma vez e obter os arquivos traduzidos ao lado dos arquivos de origem.
Tipos de conteúdo compatíveis#
| Tipo de conteúdo | Formato | Bucket da CLI | Exemplo de caminho |
|---|---|---|---|
| Documentação | Markdown | markdown | docs/[locale]/getting-started.md |
| Documentação | MDX | mdx | docs/[locale]/getting-started.mdx |
| Documentação | Markdoc | markdoc | docs/[locale]/getting-started.mdoc |
| Dados estruturados | JSON | json | data/[locale].json |
| Dados estruturados | YAML | yaml | data/[locale].yaml |
| Posts de blog | Markdown / MDX | markdown / mdx | blog/[locale]/post-slug.md |
| Legendas | SRT | srt | subs/[locale]/intro.srt |
| Legendas | VTT | vtt | subs/[locale]/intro.vtt |
| Planilhas | CSV | csv-per-locale | data/[locale].csv |
| Strings de configuração | Properties | properties | lang/[locale].properties |
| Strings de configuração | Gettext PO | po | locale/[locale]/messages.po |
| Texto simples | TXT | txt | content/[locale]/readme.txt |
Pré-requisitos#
Cada execução da CLI envia o conteúdo por um engine de localização — a configuração que define qual modelo de LLM, glossário, voz da marca e instruções serão aplicados. Crie um no dashboard do Lingo.dev e gere uma chave de API.
Sites de documentação#
A maioria dos frameworks de documentação organiza o conteúdo traduzido em diretórios por idioma. Os buckets markdown, mdx e markdoc da CLI traduzem esses arquivos preservando frontmatter, blocos de código e sintaxe de 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"]
}
}
}Ajuste o padrão include para seguir a convenção de diretórios do seu framework:
| Framework | Convenção de diretório por idioma | Referência |
|---|---|---|
| Docusaurus | i18n/[locale]/docusaurus-plugin-content-docs/current/ | guia de i18n do Docusaurus |
| Nextra | Páginas por idioma ou dicionários JSON | documentação do Nextra |
| Hugo | content/[locale]/ | guia multilíngue do Hugo |
| Astro | src/content/[locale]/ ou dicionários JSON | guia de i18n do Astro |
| VitePress | Prefixo de diretório [locale]/ | i18n do VitePress |
| MkDocs | docs/ por idioma com plugin de i18n | plugin de i18n do MkDocs |
Componentes MDX
O bucket mdx preserva a sintaxe de componentes JSX durante a tradução. Componentes personalizados como <Callout>, <Tabs> e <CodeBlock> passam intactos — apenas o conteúdo textual dentro deles é traduzido.
Dados estruturados#
Arquivos JSON e YAML são traduzidos com os buckets json e yaml. Use chaves bloqueadas para evitar que valores não traduzíveis (IDs, URLs, flags de configuração) sejam alterados.
{
"$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 arquivos YAML que usam o código do idioma como chave raiz — algo comum em Rails e Hugo — use o bucket yaml-root-key em vez disso. Ele lê a chave do idioma de origem e grava nas chaves dos idiomas de destino dentro do mesmo arquivo.
Legendas#
Arquivos de legenda SRT e VTT são traduzidos com os buckets srt e vtt. A CLI preserva todos os dados de tempo, índices de cue e tags de formatação — apenas o conteúdo textual é traduzido.
{
"$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"]
}
}
}Trabalhando com grandes volumes de conteúdo#
Repositórios de conteúdo estático podem conter milhares de arquivos. A CLI lida com isso com eficiência por meio de três mecanismos:
| Mecanismo | Como ajuda |
|---|---|
| Lockfile | Rastreia fingerprints SHA-256 do conteúdo de origem. Em execuções seguintes, apenas arquivos novos ou modificados acionam a tradução. |
| Processamento paralelo | Distribui a tradução entre workers simultâneos. Configure com run --concurrency 20. |
| Execuções direcionadas | Processe um bucket ou idioma específico: run --bucket markdown ou run --target-locale es. |
