Fluxo de Trabalho de Manutenção de Tradução
Para comandos de documentação geral (build, deploy, screenshots, geração de README), consulte Ferramentas de Documentação.
Visão geral
A documentação utiliza o Docusaurus i18n com o inglês como o locale padrão. A documentação fonte reside em docs/; as traduções são escritas em i18n/{locale}/. Locales suportados: en-GB (padrão), fr, de, es, pt-BR, hi-Latn, zh-Hans.
Tradução por IA para a interface do aplicativo, markdown/JSON do Docusaurus e ativos SVG é gerenciada por ai-i18n-tools a partir da raiz do repositório, configurada em ai-i18n-tools.config.json (não dentro de documentation/). Defina OPENROUTER_API_KEY ao executar comandos de tradução.
Quando a documentação em inglês mudar
- Edite a fonte em
documentation/docs/(somente em inglês). - Strings da interface do Docusaurus (rótulos de tema, barra de navegação, etc.): se necessário, execute
pnpm write-translationsemdocumentation/para que oi18n/en/*.jsondetecte as novas chaves. - IDs de títulos:
pnpm write-heading-ids(dedocumentation/). - Traduza a partir da raiz do repositório (ou use os atalhos abaixo a partir de
documentation/):pnpm i18n:extract— atualizasrc/locales/strings.jsona partir det('…')no aplicativo Next.js.pnpm i18n:translate:docs— traduz markdown/JSON paradocumentation/i18n/conforme a configuração.pnpm i18n:translate:svg— traduz SVGs emdocumentation/static/imgconforme configurado.- Ou execute tudo:
pnpm i18n:translate.
- Compilação:
cd documentation && pnpm build(todas as localidades).
A partir de dentro de documentation/, os mesmos fluxos são conectados como pnpm translate → raiz i18n:translate, além de pnpm translate:docs, translate:ui, translate:svg, translate:status, i18n:extract, i18n:sync.
Glossário
- Terminologia da interface para documentação é definida por
glossary.uiGlossaryemai-i18n-tools.config.json, apontando parasrc/locales/strings.json(o catálogo gerado porpnpm i18n:extract). - Substituições ficam em
documentation/glossary-user.csv(glossary.userGlossaryna configuração). Veja a documentação de glossário do ai-i18n-tools para o formato das colunas. - Gere um modelo CSV:
pnpm i18n:glossary-generate(raiz).
Cache
O cache de tradução para o ai-i18n-tools está em .translation-cache/ na raiz do repositório (cacheDir em ai-i18n-tools.config.json). Ele é ignorado pelo git. Use pnpm i18n:status e as opções --force / cache da CLI conforme a documentação do ai-i18n-tools quando precisar de uma atualização completa.
IDs de títulos e âncoras
Use IDs explícitos para que os links permaneçam estáveis entre os idiomas:
## This is a heading \{#this-is-a-heading}
cd documentation
pnpm write-heading-ids
Listas de ignorados
Use .translate-ignore na raiz do repositório (mesma ideia do .gitignore) para caminhos que o tradutor de documentos deve ignorar, caso você adicione um ao seu fluxo de trabalho.
Tema JSON do Docusaurus
pnpm write-translations extrai as strings da interface do Docusaurus para documentation/i18n/en/. A etapa translate-docs do ai-i18n-tools (com markdownOutput.style: "docusaurus") preenche os JSON traduzidos em cada localidade ao lado do markdown, conforme ai-i18n-tools.config.json.
Solução de Problemas
OPENROUTER_API_KEYnão definido — exporte-o ou adicione ao.env.localna raiz do repositório.- Modelo / qualidade — ajuste
openrouter.translationModelse opções relacionadas emai-i18n-tools.config.json. - Glossário — edite
documentation/glossary-user.csvou regenere as strings da interface e execute novamente extract + translate.
Adicionando um novo idioma
- Adicione a localidade ao
i18n.localese aolocaleConfigsdo Docusaurus emdocumentation/docusaurus.config.ts. - Adicione a mesma localidade ao
targetLocalesemai-i18n-tools.config.json(raiz do repositório). - Execute
pnpm i18n:generate-ui-languagesna raiz, depois os comandospnpm i18n:extract/ translate conforme necessário.