|
Documentação
Agende uma demoPlataforma
PlataformaMCPCLIAPIWorkflows
Guias
Changelog

Localização

  • Visão geral
  • API de Tradução
  • Localização de apps web
  • Localização de aplicativos mobile
  • iOS com String Catalogs
  • Android com strings.xml
  • Localização de e-mails
  • Conteúdo estático (ex.: .md, .json)
  • Next.js com Markdoc
  • Rails com i18n

Workflows

  • Configuração do engine com MCP
  • Triagem no Jira
  • CI/CD

Localização de Conteúdo Estático

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#

A CLI detecta o formato de cada arquivo pela extensão — não há nenhum tipo de bucket para configurar. O idioma fica no caminho (content/en/x.md vira content/de/x.md), então não é preciso usar o placeholder [locale].

Tipo de conteúdoFormatoExemplo de caminho
DocumentaçãoMarkdowndocs/en/getting-started.md
DocumentaçãoMDXdocs/en/getting-started.mdx
DocumentaçãoMarkdocdocs/en/getting-started.mdoc
Dados estruturadosJSONdata/en.json
Dados estruturadosYAMLdata/en.yaml
Posts de blogMarkdown / MDXblog/en/post-slug.md
LocalizaçãoGettext POlocale/en/messages.po
LocalizaçãoXLIFFlocale/en.xliff
LegendasSRTsubs/en/intro.srt

Consulte a Referência de formatos para ver a lista completa de tipos de arquivo compatíveis.

Ainda não compatível com a nova CLI

CSV (csv-per-locale), legendas VTT, .txt em texto simples e .properties em Java ainda não têm suporte na nova CLI. Por enquanto, mantenha esses arquivos na CLI legada e acompanhe o changelog para novidades.

Pré-requisitos#

Cada execução 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 regras serão aplicados. Crie um no dashboard do Lingo.dev e, em seguida, configure o CLI (Node 22+):

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

lingo init e lingo link criam .lingo/config.json, conectando a CLI à sua organização e à sua engine. Faça commit desse arquivo para que todos os ambientes compartilhem a mesma configuração.

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

Em CI, ignore lingo login e forneça LINGO_API_KEY como variável de ambiente. Gere uma em chaves de API.

Sites de documentação#

A maioria dos frameworks de documentação organiza o conteúdo traduzido em diretórios por idioma. Adicione um padrão por arquivo de origem (ou um glob) a files. A CLI preserva frontmatter, blocos de código e a sintaxe dos componentes ao traduzir Markdown, MDX e 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" }
  ]
}

Execute a primeira tradução para preencher todos os idiomas de destino:

bash
lingo push --backfill-missing

Nas execuções seguintes, lingo push traduz apenas o que mudou. Use lingo pull para buscar traduções produzidas em outro lugar.

Ajuste o caminho de origem para seguir a convenção de diretórios do seu framework:

FrameworkConvenção de diretório por idiomaReferência
Docusaurusi18n/[locale]/docusaurus-plugin-content-docs/current/guia de i18n do Docusaurus
NextraPáginas por idioma ou dicionários JSONdocumentação do Nextra
Hugocontent/[locale]/guia multilíngue do Hugo
Astrosrc/content/[locale]/ ou dicionários JSONguia de i18n do Astro
VitePressPrefixo de diretório [locale]/i18n do VitePress
MkDocsdocs/ por idioma com plugin de i18nplugin de i18n do MkDocs

Componentes MDX

A tradução de MDX preserva a sintaxe dos componentes JSX. Componentes personalizados como <Callout>, <Tabs> e <CodeBlock> passam sem alterações — apenas o conteúdo de texto dentro deles é traduzido.

Dados estruturados#

Arquivos JSON e YAML são traduzidos automaticamente com base na extensão. Use controles de chave para evitar que valores não traduzíveis (IDs, URLs, flags de configuração) sejam alterados.

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

YAML genérico não precisa de um campo format. Apenas yaml-openapi, yaml-root-key e android exigem um "format" explícito na entrada do arquivo.

YAML com chave raiz de idioma

Arquivos YAML que usam o código do idioma como chave raiz (comum no Rails e no Hugo) precisam de um "format": "yaml-root-key" explícito — a chave raiz é reescrita para o idioma de destino. Consulte a Referência de formatos.

Legendas#

Arquivos de legenda SRT são traduzidos com base na extensão. A CLI preserva todos os dados de tempo, índices de cue e tags de formatação — apenas o conteúdo de texto é traduzido.

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

VTT ainda não compatível

Legendas WebVTT (.vtt) ainda não são compatíveis com a nova CLI. Por enquanto, mantenha os arquivos VTT na CLI legada e acompanhe o changelog para novidades.

Trabalhando com grandes volumes de conteúdo#

Repositórios de conteúdo estático podem ter milhares de arquivos. A CLI lida com isso com eficiência:

MecanismoComo ajuda
Estado da execução.lingo/lock.json rastreia as fingerprints do conteúdo de origem, então lingo push traduz apenas arquivos novos ou modificados. Faça commit dele; ele é regenerado a cada push.
Paralelismo no servidorA engine paraleliza a tradução para você — não há nenhuma flag de concorrência para ajustar.
Execuções direcionadasRestrinja a execução a arquivos específicos com um glob: lingo push "docs/en/**".

Para verificar se as traduções estão atualizadas sem gravar arquivos — útil como gate de CI — execute lingo check.

Próximos passos#

Formatos compatíveis
Referência completa de todos os formatos de arquivo que a CLI consegue traduzir
Projetos de exemplo
Repositórios funcionais de Markdown, MDX, Markdoc e OpenAPI com a configuração e as traduções já versionadas
Controles de chave
Evite que valores específicos sejam traduzidos
App do GitHub
Automatize a tradução de conteúdo estático a cada push
Estado da execução
Como funciona o rastreamento incremental de tradução com .lingo/lock.json

Esta página foi útil?

Max PrilutskiyMax Prilutskiy·Atualizado há 8 dias·4 min de leitura