本番環境と開発環境

本番環境と開発環境の違い

概要

gt-react は、React アプリケーションが実行される環境によって動作が異なります。

NODE_ENV 環境変数を確認して環境を判別します。

本番環境での挙動

環境変数

本番環境で許可される環境変数は、GT_PROJECT_IDNEXT_PUBLIC_GT_PROJECT_ID のようなプレフィックス付きのものを含む)のみです。

APIキーが環境変数として設定されている場合、gt-react は Error をスローします。これは、API Keys がクライアントに露出しないようにするためです。

翻訳の読み込み動作

本番環境では、デフォルトで gt-react プロバイダーが General Translation の CDN から翻訳を読み込みます。

loadTranslations 関数でローカルの翻訳などのカスタム読み込みを設定している場合は、gt-react はそちらを使用します。

本番環境では、翻訳のホットリロードは無効です。

開発時の挙動

環境変数

開発はローカルで行われ、外部ユーザーには公開されないため、gt-reactNEXT_PUBLIC_VITE_(または同様の)プレフィックスが付いていても、General Translation の任意の環境変数を受け付けます。

翻訳の読み込み動作

開発環境では、gt-react プロバイダはまず本番環境と同様の方法で翻訳を読み込みます。 これらの翻訳はメモリに保持されます。

デフォルトとは異なる言語で(useGT<T>、または useTranslations を使用する)コンポーネントをレンダリングする場合、gt-react プロバイダは次の処理を行います。

  1. 対象のコンテンツについて、有効な保存済み翻訳が見つかった場合は、その翻訳をレンダリングします。
  2. 翻訳が見つからない場合は、General Translation API を介してコンテンツを動的に翻訳しようとします。
  3. 翻訳後は、その翻訳をレンダリングし、将来の利用のためにメモリへ保存します。
  4. 翻訳がタイムアウトした場合はフォールバックとして元のコンテンツをレンダリングします。

当社の API は開発時の翻訳を短時間内部キャッシュするため、同じ翻訳が再度要求された場合はキャッシュから提供されます。

これらの翻訳はプロジェクト単位で分離されており、他のプロジェクトの翻訳と混在することはありません。 さらに、キャッシュは開発セッションごとに固有であるため、キャッシュ済みの翻訳が本番環境で使用されることはありません。

gt-react は、useGT<T>、または useTranslations を使用するコンポーネントの変更を検知し、当社の API を介して変更されたコンテンツを動的に翻訳します。

本番用と開発用の API Keys

gt-react の本番時と開発時での動作を区別しやすくするため、「Production API Keys」と「Development API Keys」という概念を設けています。

本番環境のAPI Keys

本番環境のAPIキーは、gtx-api- で始まるAPIキーです。

本番環境のAPIキーが指定されると、gt-react本番時の動作セクションに記載のとおりに動作します。

つまり、Reactアプリを開発モードで実行していても、本番環境のAPIキーを指定すると、gt-react は本番環境と同様に振る舞います。 翻訳のホットリロードは無効になり、未翻訳のコンポーネントは元のコンテンツをそのままレンダリングします。

この挙動以外では、gt-react は本番環境のAPIキーを使用しません。

本番リリース時に本番用のAPIキーを別途作成していただく理由は、CLIツールが参照するのが本番環境のAPI Keysのみであるためです。

CLIツールは「production」カテゴリとして課金とレート制限を適用します。

開発用 API Keys

開発用の APIキーは、gtx-dev- で始まります。

開発用 APIキーが指定されていると、gt-react開発時の動作セクションのとおりに動作します。

開発用 APIキーを使用する場合、課金およびレート制限は「development」カテゴリとして適用されます。

開発用 APIキーで作成された翻訳は保存されず、本番環境では利用できません。

開発時の翻訳は、本番リリース前にアプリケーションをテストするためのものです。

このガイドはどうでしたか?

本番環境と開発環境