本番環境と開発環境
本番環境と開発環境の違い
概要
gt-react
はReactアプリケーションが実行されている環境によって動作が異なります。
環境はNODE_ENV
環境変数をチェックすることで検出されます。
本番環境での動作
環境変数
本番環境では、受け入れられる環境変数は GT_PROJECT_ID
(または NEXT_PUBLIC_GT_PROJECT_ID
などのプレフィックスが付いたバージョン)のみです。
APIキーが環境変数として提供された場合、gt-react
はエラーをスローします。これは、APIキーがクライアントに公開されるのを防ぐためです。
翻訳の読み込み動作
本番環境では、gt-react
プロバイダーはデフォルトで General Translation CDN から翻訳を読み込もうとします。
loadTranslations
関数を通じてローカル翻訳などのカスタム翻訳読み込み動作を設定している場合、gt-react
はそれを代わりに使用します。
本番環境であるため、翻訳のホットリロードは無効になっています。
開発時の動作
環境変数
開発はローカルで行われ、外部ユーザーに公開されないため、gt-react
はNEXT_PUBLIC_
、VITE_
(または類似のもの)でプレフィックスされていても、すべてのGeneral Translation環境変数を受け入れます。
翻訳読み込み動作
開発時、gt-react
プロバイダーは最初に本番環境と同じ方法で翻訳を読み込もうとします。
これらの翻訳はメモリに読み込まれます。
デフォルト言語とは異なる言語で(useGT()
、<T>
、またはuseTranslations()
を使用する)コンポーネントをレンダリングする際、gt-react
プロバイダーは以下を実行します:
- 指定されたコンテンツに対して有効で保存された翻訳を検出した場合、その翻訳をレンダリングします。
- 翻訳が見つからない場合、General Translation APIを介してコンテンツを動的に翻訳しようとします。
- 翻訳後、翻訳がレンダリングされ、将来の使用のためにメモリに保存されます。
- 翻訳がタイムアウトした場合、フォールバックして元のコンテンツをレンダリングします。
私たちのAPIは開発時の翻訳を短期間内部的にキャッシュするため、同じ翻訳が再度リクエストされた場合、キャッシュから提供されます。
これらの翻訳はプロジェクトレベルで分離されているため、他のプロジェクトの翻訳と混同されることはありません。 さらに、キャッシュは開発セッション固有であるため、キャッシュされた翻訳は本番環境では使用されません。
gt-react
はuseGT()
、<T>
、またはuseTranslations()
を使用するコンポーネントの変更を検出し、私たちのAPIを介して変更されたコンテンツを動的に翻訳します。
本番環境と開発環境のAPIキー
gt-react
の本番環境と開発環境の動作を区別するために、「本番環境APIキー」と「開発環境APIキー」という概念があります。
本番環境APIキー
本番環境APIキーは、gtx-api-
で始まるAPIキーです。
本番環境APIキーが提供されると、gt-react
は本番環境の動作セクションで説明されているように動作します。
つまり、Reactアプリケーションを開発モードで実行している場合でも、本番環境APIキーを提供すると、gt-react
は本番環境にいるかのように動作します。
翻訳のホットリロードは無効になり、翻訳のないコンポーネントは元のコンテンツをレンダリングします。
この動作以外に、gt-react
は本番環境APIキーを一切利用しません。
本番環境にデプロイする際に別の本番環境APIキーを作成するよう求める理由は、CLIツールが本番環境APIキーにのみアクセスするためです。
CLIツールは「本番環境」カテゴリを使用して課金とレート制限を適用します。
開発環境APIキー
開発環境APIキーは、gtx-dev-
で始まるAPIキーです。
開発環境APIキーが提供されると、gt-react
は開発環境の動作セクションで説明されているように動作します。
開発環境APIキーを使用する場合、「開発環境」カテゴリを使用して課金とレート制限が適用されます。
開発環境APIキーで作成された翻訳は保存されず、本番環境では使用できません。
開発環境の翻訳の目的は、本番環境にデプロイする前にアプリケーションをテストできるようにすることです。
このガイドはいかがですか?