Skip to content

Docusaurus統合

Docusaurus ドキュメント サイトでは、init -t ui-docusaurusdocsOutput.style: "docusaurus" を使用します。プリセットは、docs[] ブロックを docusaurusCatalogDir で作成し、translate-docs でページの Markdown と Docusaurus シェルの JSON を 1 つのコマンドで翻訳できるようにします。

Documents、実行可能な examples/docusaurus-docs デモ、およびネストされたDocusaurusドキュメント、フラットなREADME、SVGアセットを組み合わせたNext.jsアプリである examples/nextjs-app も参照してください。

クイックスタート

bash
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 build

features.translateDocsを有効にし、docs[].docusaurusCatalogDirを設定して、ドキュメントページとサイトのクローム(ナビバー、フッター、テーマ文字列)を翻訳する場合は、Docusaurusプロジェクトでdocusaurus write-translationsを実行します。@docusaurus/*をアップグレードしたり、ナビバー/フッター/テーマのラベルを変更した場合は、translate-docsまたはsyncを再実行して、シェルのJSONを各ロケールフォルダーに翻訳します。

ページレイアウト

英語のマークダウンとMDXは、Docusaurusのdocs/フォルダー(例:docs-site/docs/)の下にあります。翻訳されたコピーは、各ロケールのプラグインコンテンツツリーに書き込まれます。

text
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.md

docs[] ブロックを1つ設定します:

json
{
  "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がコンテンツルートとして使用する同じフォルダーに設定します。outputDiri18n/の下にある各ロケールフォルダーの親フォルダーに設定します。

Docusaurusのi18nを接続します。targetLocalesai-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をそのフォルダーにポイントします。

json
{
  "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
  • シェルJSONi18n/en/から同期ロケールフォルダへのナビバー、フッター、テーマ/プラグインカタログ

DocusaurusシェルJSONをjson[]に配置しないでください。代わりに、ドキュメントでdocs[].docusaurusCatalogDirを使用します。

サンプルプロジェクト

examples/docusaurus-docsdocs/ に英語ソース、i18n/<locale>/docusaurus-plugin-content-docs/current/ にコミットされた翻訳、さらに翻訳されたシェルJSONがあります。ロケールドロップダウンが機能するように、ポート3100で pnpm start を実行し(ビルド + サーブ)、英語のみのホットリロードには pnpm dev を使用してください。

同じリポジトリレイアウトでのUI文字列、SVG翻訳、およびフラットなREADMEについては、examples/nextjs-app(ポート3040でのネストされた docs-site/)を参照してください。

MITライセンスの下で公開されています。