Integração com Docusaurus
Use init -t ui-docusaurus e docsOutput.style: "docusaurus" para sites de documentação Docusaurus. O preset estrutura um bloco docs[] com docusaurusCatalogDir para que translate-docs possa traduzir tanto o markdown da página quanto o JSON shell do Docusaurus em um único comando.
Consulte também Documentos, a demonstração executável examples/docusaurus-docs e examples/nextjs-app para um aplicativo Next.js combinado com documentos Docusaurus aninhados, README simples e ativos SVG.
Início rápido
ai-i18n-tools init -t ui-docusaurus [-P <provider>]
# edit ai-i18n-tools.config.json (targetLocales, providers, contentPaths, docusaurusCatalogDir)
pnpm run i18n:sync # or: ai-i18n-tools sync
cd docs-site && pnpm build # or: cd examples/docusaurus-docs && pnpm buildHabilite features.translateDocs e defina docs[].docusaurusCatalogDir ao traduzir tanto as páginas de documentação quanto o "chrome" do site (barra de navegação, rodapé, strings do tema). Execute docusaurus write-translations em seu projeto Docusaurus ao atualizar @docusaurus/* ou alterar rótulos da barra de navegação/rodapé/tema — então execute novamente translate-docs ou sync para que o JSON shell seja traduzido para cada pasta de localidade.
Layout da página
Markdown e MDX em inglês ficam na pasta docs/ do seu Docusaurus (por exemplo, docs-site/docs/). Cópias traduzidas são gravadas na árvore de conteúdo do plugin de cada localidade:
docs-site/docs/getting-started.md
→ docs-site/i18n/de/docusaurus-plugin-content-docs/current/getting-started.md
docs-site/docs/guide/quick-start.md
→ docs-site/i18n/fr/docusaurus-plugin-content-docs/current/guide/quick-start.mdConfigure um bloco docs[]:
{
"contentPaths": ["docs-site/docs/"],
"outputDir": "docs-site/i18n",
"docusaurusCatalogDir": "docs-site/i18n/en",
"addFrontmatter": true,
"docsOutput": {
"style": "docusaurus",
"docsRoot": "docs-site/docs"
}
}Aponte contentPaths para seus arquivos e diretórios .md / .mdx em inglês. Defina docsRoot para a mesma pasta que o Docusaurus usa como sua raiz de conteúdo. Defina outputDir para o pai de cada pasta de localidade em i18n/.
Conecte a internacionalização do Docusaurus: mantenha targetLocales em ai-i18n-tools.config.json alinhado com o array locales em docusaurus.config.js. Cada localeConfigs[locale].path deve corresponder ao nome da pasta em i18n/ (por exemplo, path: "fr" para i18n/fr/).
Strings Shell (write-translations)
A barra de navegação, rodapé, placeholder de pesquisa e outros rótulos de tema/plugin do Docusaurus não são extraídos do markdown. Execute docusaurus write-translations em seu projeto Docusaurus para gerar catálogos JSON na pasta de localidade padrão (geralmente i18n/en/). Em seguida, aponte docs[].docusaurusCatalogDir para essa pasta:
{
"features": {
"translateDocs": true
},
"docs": [
{
"description": "Docusaurus pages + shell JSON",
"contentPaths": ["docs-site/docs/"],
"outputDir": "docs-site/i18n",
"docusaurusCatalogDir": "docs-site/i18n/en",
"docsOutput": {
"style": "docusaurus",
"docsRoot": "docs-site/docs"
}
}
]
}Quando docusaurusCatalogDir é definido e features.translateDocs está habilitado, translate-docs traduz ambos:
- Páginas de documentação — markdown/MDX de
contentPathsparai18n/<locale>/docusaurus-plugin-content-docs/current/ - JSON Shell — catálogos de barra de navegação, rodapé e tema/plugin de
i18n/en/para pastas de localidade irmãs
Não coloque o JSON shell do Docusaurus em json[]; use docs[].docusaurusCatalogDir com Documentos em vez disso.
Projeto de exemplo
examples/docusaurus-docs — Fontes em inglês em docs/, traduções confirmadas em i18n/<locale>/docusaurus-plugin-content-docs/current/, mais JSON de shell traduzido. Execute pnpm start na porta 3100 (compilar + servir) para que o menu suspenso de localidade funcione; use pnpm dev para recarregamento a quente somente em inglês.
Para strings de UI, tradução SVG e um README simples no mesmo layout de repositório, consulte examples/nextjs-app (docs-site/ aninhado na porta 3040).