メインコンテンツへスキップ
バージョン: 3.5.2

i18n - Git の使用

翻訳戦略の候補として、翻訳ファイルを Git(またはその他のバージョン管理システム (VCS))でバージョン管理する方法があります。

トレードオフ

この戦略には利点があります

  • 簡単に開始できます: i18n フォルダを Git にコミットするだけです
  • 開発者にとって簡単です: Git、GitHub、プルリクエストは一般的な開発者ツールです
  • 無料です(Git を既に使用している場合は追加費用なし)
  • 摩擦が少ないです: 外部のツールに登録する必要はありません
  • やりがいがあります: コントリビューターは、履歴が明確になることを喜ぶでしょう

しかし、Git の使用にはいくつかの欠点もあります

  • 非開発者にとって難しいです: Git とプルリクエストを習得していません
  • プロの翻訳者にとって難しいです: SaaS 翻訳ソフトウェアと高度な機能を使用することに慣れています
  • 維持が困難です: 翻訳ファイルを未翻訳ファイルと同期しておく必要があります
注記

いくつかの大規模な技術プロジェクト(React、Vue.js、MDN、TypeScript、Nuxt.js など)では、翻訳に Git を使用しています。

これらのシステムに関するメモとリンクについては、Docusaurus i18n RFC を参照してください。

初期化

これは、新しく初期化された英語の Docusaurus ウェブサイトをフランス語に翻訳するために Git を使用する方法のチュートリアルです。i18n チュートリアルを既に完了していることを前提としています。

Docusaurus サイトの準備

新しい Docusaurus サイトを初期化します

npx create-docusaurus@latest website classic

フランス語のサイト設定を追加します

docusaurus.config.js
export default {
i18n: {
defaultLocale: 'en',
locales: ['en', 'fr'],
},
themeConfig: {
navbar: {
items: [
// ...
{
type: 'localeDropdown',
position: 'left',
},
// ...
],
},
},
// ...
};

ホームページを翻訳します

src/pages/index.js
import React from 'react';
import Translate from '@docusaurus/Translate';
import Layout from '@theme/Layout';

export default function Home() {
return (
<Layout>
<h1 style={{margin: 20}}>
<Translate description="The homepage main heading">
Welcome to my Docusaurus translated site!
</Translate>
</h1>
</Layout>
);
}

i18n フォルダの初期化

write-translations CLI コマンドを使用して、フランス語ロケール用の JSON 翻訳ファイルを初期化します

npm run write-translations -- --locale fr

1 translations written at i18n/fr/code.json
11 translations written at i18n/fr/docusaurus-theme-classic/footer.json
4 translations written at i18n/fr/docusaurus-theme-classic/navbar.json
3 translations written at i18n/fr/docusaurus-plugin-content-docs/current.json
ヒント

--messagePrefix '(fr) ' オプションを使用して、未翻訳の文字列を目立たせます。

Hello(fr) Hello と表示され、翻訳が不足していることが明確になります。

未翻訳の Markdown ファイルをフランス語フォルダにコピーします

mkdir -p i18n/fr/docusaurus-plugin-content-docs/current
cp -r docs/** i18n/fr/docusaurus-plugin-content-docs/current

mkdir -p i18n/fr/docusaurus-plugin-content-blog
cp -r blog/** i18n/fr/docusaurus-plugin-content-blog

mkdir -p i18n/fr/docusaurus-plugin-content-pages
cp -r src/pages/**.md i18n/fr/docusaurus-plugin-content-pages
cp -r src/pages/**.mdx i18n/fr/docusaurus-plugin-content-pages

これらのファイルをすべて Git に追加します。

ファイルの翻訳

i18n/fr の Markdown ファイルと JSON ファイルを翻訳し、翻訳をコミットします。

これで、フランス語でサイトを起動し、翻訳を確認できるようになります

npm run start -- --locale fr

ローカルまたは CI でサイトをビルドすることもできます

npm run build
# or
npm run build -- --locale fr

繰り返し

サポートする必要がある各ロケールに対して、同じ手順を繰り返します。

保守

特に Markdown ドキュメントの場合、翻訳ファイルを元のファイルと整合性を保つことは困難です。

Markdown 翻訳

未翻訳の Markdown ドキュメントを編集する場合、対応する翻訳ファイルを維持する責任があります。残念ながら、これを行うための良い方法はありません。

翻訳されたサイトの整合性を保つために、website/docs/doc1.md ドキュメントを編集した場合は、i18n/fr/docusaurus-plugin-content-docs/current/doc1.md にこれらの編集内容をバックポートする必要があります。

JSON 翻訳

JSON 翻訳ファイルを維持するために、write-translations CLI コマンドを再度実行できます

npm run write-translations -- --locale fr

新しい翻訳が追加され、既存の翻訳は上書きされません。

ヒント

--override オプションを使用して翻訳をリセットします。

編集 URL のローカライズ

ユーザーが/fr/doc1 のページを参照している場合、編集ボタンはデフォルトでwebsite/docs/doc1.md のローカライズされていないドキュメントにリンクします。

翻訳は Git にあり、ドキュメントとブログプラグインのeditLocalizedFiles: true オプションを使用できます。

編集ボタンは、i18n/fr/docusaurus-plugin-content-docs/current/doc1.md のローカライズされたドキュメントにリンクします。