withGTConfig
withGTConfig()(旧称: initGT())のAPIリファレンス
概要
withGTConfig は gt-next ライブラリを設定するための主な手段です。
NextConfig オブジェクトを直接ラップします。
import { withGTConfig } from 'gt-next/config';
const nextConfig = {
    // 既存のnext.config.jsの設定
}
export default withGTConfig(nextConfig, {
  // 追加の設定オプション
});レガシー
initGT は gt-next ライブラリを設定するためのレガシーな方法です。コールバック関数を返し、その関数を NextConfig オブジェクトに対して呼び出します。
両者の関数で受け取る props は同じですが、withGTProps の場合は NextConfig を引数として渡す必要がある点が例外です。
withGTConfig でできること:
- サポートする言語と既定の locale(フォールバック言語)を設定。
- GT サービスにアクセスするための API Keys とプロジェクト ID を設定。
- ローディング時の挙動を設定。
- timeout の設定を構成。
- カスタムエンドポイントを設定。
- 翻訳の挙動、キャッシュ、リクエストのバッチ処理をカスタマイズ。
- SWC プラグインによるビルド時検証を構成。
翻訳機能を有効にするには、withGTConfig を next.config.js に記述して使用する必要があります。
リファレンス
デフォルトでは、withGTConfig は next.config.js と同じディレクトリにある gt.config.json ファイルを探します。
この JSON ファイルは読み込まれ、withGTConfig に渡された設定とマージされます。
設定ファイルの詳細については、gt.config.json のリファレンスを参照してください。
CLI ツールは gt.config.json ファイルからのみ設定を読み取るため、
アプリの単一の信頼できる情報源として gt.config.json を使用することを推奨します。
gt.config.json に含まれていない追加の設定 options は、props として withGTConfig に直接渡せます。
必須の Props
Prop
Type
推奨プロップ
Prop
Type
| Prop | Description | 
|---|---|
| defaultLocale | アプリケーションの既定のロケール。指定がない場合は英語がフォールバック言語になります。 | 
| locales | アプリケーションがサポートするロケールの排他的リスト。未サポートのリクエストを受けた場合は、リスト内でブラウザーの次の優先言語へリダイレクトします。一致が見つからない場合は defaultLocaleにフォールバックします。 | 
| description | 翻訳を支援するために用いられる、サイトの自然言語での説明。 | 
高度なプロップス
Prop
Type
| Prop | Description | 
|---|---|
| projectId | プロジェクトID。ここに指定するか、環境変数で設定できます。 | 
| apiKey | 推奨はしませんが、APIキーをここに含めることもできます。環境変数として設定することも可能です。 | 
| devApiKey | 推奨はしませんが、開発用のAPIキーをここに含めることもできます。環境変数として設定することも可能です。 | 
| preferredModelProvider | 優先するAIモデルプロバイダー。現在は Anthropic または OpenAI のみ対応。未指定の場合は翻訳ごとに最適なプロバイダーを自動選択します。高負荷時やプロバイダー停止時には希望のプロバイダーが使われない場合があります。 | 
| runtimeUrl | GT API のベースURL。自動翻訳を無効化するには空文字列を設定します。 | 
| cacheUrl | 翻訳キャッシュの保存先URL。独自のキャッシュサーバーを指すようにカスタマイズできます。 | 
| cacheExpiryTime | ローカルキャッシュされた翻訳の有効期限(ミリ秒)。 | 
| renderSettings | ランタイム翻訳の読み込み動作を指定するオブジェクト。 | 
| maxConcurrentRequests | GT API への同時翻訳リクエストの最大数。 | 
| maxBatchSize | リクエスト送信前にまとめる翻訳の最大件数。 | 
| batchInterval | バッチ送信する翻訳リクエスト間の間隔(ミリ秒)。送信レートの制御に役立ちます。 | 
| dictionary | 任意の dictionary の設定ファイルパス。 i18nと同様に、カスタムパスを指定する文字列を受け付けます。dictionary.js(または.jsx,.ts,.tsxなど)という名称で、プロジェクトルートまたはsrcフォルダに置かれたものはデフォルトでサポートされます。 | 
| dynamicJsxCheckLogLevel | 翻訳コンポーネント内のラップされていない動的コンテンツの検証レベルを制御します。ビルドを失敗させるには "error"、警告を表示するには"warn"、チェックを無効化するには"off"を設定します。 | 
| dynamicStringCheckLogLevel | 文字列リテラルの使用を保証するために、翻訳関数の引数の検証レベルを制御します。ビルドを失敗させるには "error"、警告を表示するには"warn"、チェックを無効化するには"off"を設定します。 | 
戻り値
指定した GT の設定で Next.js の設定オブジェクトを拡張する (NextConfig) => NextConfig 関数。
例外
デフォルトのURLを使用している状態で projectId が未設定の場合、または APIキー が必須なのに未設定の場合に、Error をスローします。
レンダリング設定
レンダリング設定は、翻訳の読み込み中の挙動を制御します。 これはランタイムで実行される翻訳にのみ適用されます。 翻訳がキャッシュされている場合は、応答が十分に速いため、読み込み時の挙動を設ける必要はありません。
Prop
Type
| Prop | Description | 
|---|---|
| method | ページのレンダリング方式。 skeleton、replace、defaultから選択可能です。 | 
| timeout | メソッドがタイムアウトするまでの時間(ミリ秒)。既定は 8000 ms です。 | 
レンダリング方法
- skeleton: フラグメントを描画します。
- replace: 待機中はデフォルト言語のコンテンツを表示します。
- default: 同一言語のロケール(例:- en-USと- en-GB)では replace と同様に動作し、異なる言語のロケール(例:- en-USと- fr)では skeleton と同様に動作します。
タイムアウト
タイムアウトは、キャッシュされておらずオンデマンドで実行する必要があるランタイム翻訳にのみ適用されます。
タイムアウトの既定値は8秒です。 これは、無料プランでサーバーレス関数のデフォルトのタイムアウトが10秒に設定されている Vercel ユーザーに配慮した設計です。
例
レンダリング設定
この例では、翻訳の読み込み中にスケルトンを表示するように gt-next を設定します。
翻訳の読み込みに8秒以上かかると、メソッドはタイムアウトし、既定の言語コンテンツを表示します。
{
  "defaultLocale": "en-US",
  "locales": ["en-US", "es", "fr"],
}import { withGTConfig } from 'gt-next/config';
const nextConfig = {
  // その他のNext.js設定
};
export default withGTConfig(nextConfig, {
  renderSettings: {
    method: 'skeleton',
    timeout: 10000,
  },
});ビルド時の検証
この例では、SWC プラグインを設定し、動的コンテンツの違反を警告ではなくビルドエラーとして扱うようにします。
import { withGTConfig } from 'gt-next/config';
const nextConfig = {
  // その他のNext.js設定
};
export default withGTConfig(nextConfig, {
  // 動的JSX違反時にビルドを失敗させる
  dynamicJsxCheckLogLevel: 'error',
  // 動的文字列違反時に警告を出す  
  dynamicStringCheckLogLevel: 'warn',
});注意事項
- withGTConfigは GT の翻訳機能を Next.js アプリに統合するもので、ルートの設定ファイルで必ず使用する必要があります。
- apiKeyや- projectIdなどのパラメータは、設定内で直接指定するか、環境変数として設定できます。
- renderSettingsや- _batchIntervalといった高度なパラメータにより、翻訳の動作やパフォーマンスをきめ細かく制御できます。
次のステップ
このガイドはどうでしたか?

