Docusaurus統合
Docusaurus ドキュメント サイトでは、init -t ui-docusaurus と docsOutput.style: "docusaurus" を使用します。プリセットは、docs[] ブロックを docusaurusCatalogDir で作成し、translate-docs でページの Markdown と Docusaurus シェルの JSON を 1 つのコマンドで翻訳できるようにします。
Documents、実行可能な examples/docusaurus-docs デモ、およびネストされたDocusaurusドキュメント、フラットなREADME、SVGアセットを組み合わせたNext.jsアプリである examples/nextjs-app も参照してください。
クイックスタート
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 buildfeatures.translateDocsを有効にし、docs[].docusaurusCatalogDirを設定して、ドキュメントページとサイトのクローム(ナビバー、フッター、テーマ文字列)を翻訳する場合は、Docusaurusプロジェクトでdocusaurus write-translationsを実行します。@docusaurus/*をアップグレードしたり、ナビバー/フッター/テーマのラベルを変更した場合は、translate-docsまたはsyncを再実行して、シェルのJSONを各ロケールフォルダーに翻訳します。
ページレイアウト
英語のマークダウンとMDXは、Docusaurusのdocs/フォルダー(例:docs-site/docs/)の下にあります。翻訳されたコピーは、各ロケールのプラグインコンテンツツリーに書き込まれます。
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.mddocs[] ブロックを1つ設定します:
{
"contentPaths": ["docs-site/docs/"],
"outputDir": "docs-site/i18n",
"docusaurusCatalogDir": "docs-site/i18n/en",
"addFrontmatter": true,
"docsOutput": {
"style": "docusaurus",
"docsRoot": "docs-site/docs"
}
}contentPathsを英語の.md/.mdxファイルとディレクトリにポイントします。docsRootをDocusaurusがコンテンツルートとして使用する同じフォルダーに設定します。outputDirをi18n/の下にある各ロケールフォルダーの親フォルダーに設定します。
Docusaurusのi18nを接続します。targetLocalesをai-i18n-tools.config.jsonに、locales配列をdocusaurus.config.jsに合わせます。各localeConfigs[locale].pathは、i18n/の下にあるフォルダ名(例:path: "fr" for i18n/fr/)と一致する必要があります。
シェル文字列(write-translations)
Docusaurusのナビバー、フッター、検索プレースホルダー、他のテーマ/プラグインラベルは、マークダウンから抽出されません。Docusaurusプロジェクトでdocusaurus write-translationsを実行して、デフォルトのロケールフォルダー(通常i18n/en/)の下にJSONカタログを生成します。次に、docs[].docusaurusCatalogDirをそのフォルダーにポイントします。
{
"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"
}
}
]
}docusaurusCatalogDirが設定され、features.translateDocsが有効になっている場合、translate-docsは次の両方を翻訳します。
- ドキュメントページ —
contentPathsからi18n/<locale>/docusaurus-plugin-content-docs/current/へのマークダウン/MDX - シェルJSON —
i18n/en/から同期ロケールフォルダへのナビバー、フッター、テーマ/プラグインカタログ
DocusaurusシェルJSONをjson[]に配置しないでください。代わりに、ドキュメントでdocs[].docusaurusCatalogDirを使用します。
サンプルプロジェクト
examples/docusaurus-docs — docs/ に英語ソース、i18n/<locale>/docusaurus-plugin-content-docs/current/ にコミットされた翻訳、さらに翻訳されたシェルJSONがあります。ロケールドロップダウンが機能するように、ポート3100で pnpm start を実行し(ビルド + サーブ)、英語のみのホットリロードには pnpm dev を使用してください。
同じリポジトリレイアウトでのUI文字列、SVG翻訳、およびフラットなREADMEについては、examples/nextjs-app(ポート3040でのネストされた docs-site/)を参照してください。