ローカル翻訳

Next.jsアプリのローカル翻訳を設定する

概要

このガイドでは、CDNを使用するのではなく、Next.jsアプリに翻訳を保存する方法を紹介します。 これにより、翻訳はアプリのバンドル内に存在します。 これにより、読み込み時間が速くなり、外部インフラストラクチャへの依存を避けることができます。

このドキュメントでは、(1) ローカル翻訳とは何か、どのように機能するかを説明し、 (2) Next.jsアプリのローカル翻訳を設定する方法を示します。


ローカル翻訳とは何ですか?

ローカル翻訳は、CDN(コンテンツ配信ネットワーク)から取得されるのではなく、アプリのバンドルに保存されます。

例えば、gtx-cli translate コマンドをCDプロセスに追加したとします。 これにより、アプリの翻訳を含むJSONファイルが生成されます。 最終ステップは、これらの翻訳をAPIから取り出し、アプリに組み込むことです。

これを行う方法は2つあります:

  • アプリのバンドル内に: 翻訳が生成された後、それらをアプリのバンドルに追加します。
  • CDN内(デフォルト): 実行時にCDNから翻訳を取得します。

利点は何ですか?

読み込み時間の短縮: ローカル翻訳はアプリから直接提供されるため、 CDNから提供される翻訳よりも速く読み込まれます。

外部サービスへの依存なし: アプリが翻訳を読み込む能力は、CDNの可用性に依存しません。

欠点は何ですか?

バンドルサイズの増加: ローカル翻訳はアプリのバンドルサイズを増加させます。 これにより、初回の読み込みが若干遅くなる可能性があります。

ロケール管理: ロケールのサポートを追加または削除するには、毎回アプリを再デプロイする必要があります。

コンテンツ管理: ロケール管理と同様に、翻訳を変更したい場合(例:他の言語での表現が気に入らない場合)、 新しい翻訳でアプリを再デプロイする必要があります。


セットアップ

前提条件

クイックスタートガイドに従っていることを確認してください。

手順

./src 配下に loadTranslations.js ファイルを以下の内容で追加してください。

src/loadTranslations.js
export default async function loadTranslations(locale) {
  const t = await import(`../public/_gt/${locale}.json`);
  return t.default;
}

次のコマンドを実行し、GT CDN に翻訳を保存するかどうか尋ねられたら「No」を選択してください。

npx gtx-cli configure

その後、translate コマンドを実行します。

npx gtx-cli translate

以上です!これでアプリはローカルファイルからのみ翻訳を読み込むようになります。


注意

  • ローカル翻訳は、CDNから翻訳を取得する代わりの方法です。
  • loadTranslations() をカスタマイズすることで、データベースや独自のCDNなど、他のソースから翻訳を読み込むこともできます。
  • gtx-cli configure コマンドは、ローカル翻訳を使用するように gt.config.json ファイルを設定します。詳細は gt.config.json を参照してください。

メモ

  • ローカル翻訳は、CDNから翻訳を取得する代替手段です。
  • loadTranslations()をカスタマイズして、データベースや独自のCDNなど、他のソースから翻訳をロードすることもできます。

このページについて