Config

withGTConfig

withGTConfig()(旧称: initGT())のAPIリファレンス

概要

withGTConfiggt-next ライブラリを設定するための主な手段です。 NextConfig オブジェクトを直接ラップします。

next.config.mjs
import { withGTConfig } from 'gt-next/config';

const nextConfig = {
    // 既存のnext.config.jsの設定
}

export default withGTConfig(nextConfig, {
  // 追加の設定オプション
});

レガシー

initGTgt-next ライブラリを設定するためのレガシーな方法です。コールバック関数を返し、その関数を NextConfig オブジェクトに対して呼び出します。 両者の関数で受け取る props は同じですが、withGTProps の場合は NextConfig を引数として渡す必要がある点が例外です。

withGTConfig でできること:

  • サポートする言語と既定の locale(フォールバック言語)を設定。
  • GT サービスにアクセスするための API Keys とプロジェクト ID を設定。
  • ローディング時の挙動を設定。
  • timeout の設定を構成。
  • カスタムエンドポイントを設定。
  • 翻訳の挙動、キャッシュ、リクエストのバッチ処理をカスタマイズ。
  • SWC プラグインによるビルド時検証を構成。

翻訳機能を有効にするには、withGTConfignext.config.js に記述して使用する必要があります。

リファレンス

デフォルトでは、withGTConfignext.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

PropDescription
defaultLocaleアプリケーションの既定のロケール。指定がない場合は英語がフォールバック言語になります。
localesアプリケーションがサポートするロケールの排他的リスト。未サポートのリクエストを受けた場合は、リスト内でブラウザーの次の優先言語へリダイレクトします。一致が見つからない場合は defaultLocale にフォールバックします。
description翻訳を支援するために用いられる、サイトの自然言語での説明。

高度なプロップス

Prop

Type

PropDescription
projectIdプロジェクトID。ここに指定するか、環境変数で設定できます。
apiKey推奨はしませんが、APIキーをここに含めることもできます。環境変数として設定することも可能です。
devApiKey推奨はしませんが、開発用のAPIキーをここに含めることもできます。環境変数として設定することも可能です。
preferredModelProvider優先するAIモデルプロバイダー。現在は Anthropic または OpenAI のみ対応。未指定の場合は翻訳ごとに最適なプロバイダーを自動選択します。高負荷時やプロバイダー停止時には希望のプロバイダーが使われない場合があります。
runtimeUrlGT API のベースURL。自動翻訳を無効化するには空文字列を設定します。
cacheUrl翻訳キャッシュの保存先URL。独自のキャッシュサーバーを指すようにカスタマイズできます。
cacheExpiryTimeローカルキャッシュされた翻訳の有効期限(ミリ秒)。
renderSettingsランタイム翻訳の読み込み動作を指定するオブジェクト。
maxConcurrentRequestsGT 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

PropDescription
methodページのレンダリング方式。skeletonreplacedefault から選択可能です。
timeoutメソッドがタイムアウトするまでの時間(ミリ秒)。既定は 8000 ms です。

レンダリング方法

  • skeleton: フラグメントを描画します。
  • replace: 待機中はデフォルト言語のコンテンツを表示します。
  • default: 同一言語のロケール(例: en-USen-GB)では replace と同様に動作し、異なる言語のロケール(例: en-USfr)では skeleton と同様に動作します。

タイムアウト

タイムアウトは、キャッシュされておらずオンデマンドで実行する必要があるランタイム翻訳にのみ適用されます。

タイムアウトの既定値は8秒です。 これは、無料プランでサーバーレス関数のデフォルトのタイムアウトが10秒に設定されている Vercel ユーザーに配慮した設計です。


レンダリング設定

この例では、翻訳の読み込み中にスケルトンを表示するように gt-next を設定します。 翻訳の読み込みに8秒以上かかると、メソッドはタイムアウトし、既定の言語コンテンツを表示します。

gt.config.json
{
  "defaultLocale": "en-US",
  "locales": ["en-US", "es", "fr"],
}
next.config.mjs
import { withGTConfig } from 'gt-next/config';

const nextConfig = {
  // その他のNext.js設定
};

export default withGTConfig(nextConfig, {
  renderSettings: {
    method: 'skeleton',
    timeout: 10000,
  },
});

ビルド時の検証

この例では、SWC プラグインを設定し、動的コンテンツの違反を警告ではなくビルドエラーとして扱うようにします。

next.config.mjs
import { withGTConfig } from 'gt-next/config';

const nextConfig = {
  // その他のNext.js設定
};

export default withGTConfig(nextConfig, {
  // 動的JSX違反時にビルドを失敗させる
  dynamicJsxCheckLogLevel: 'error',
  // 動的文字列違反時に警告を出す  
  dynamicStringCheckLogLevel: 'warn',
});

注意事項

  • withGTConfig は GT の翻訳機能を Next.js アプリに統合するもので、ルートの設定ファイルで必ず使用する必要があります。
  • apiKeyprojectId などのパラメータは、設定内で直接指定するか、環境変数として設定できます。
  • renderSettings_batchInterval といった高度なパラメータにより、翻訳の動作やパフォーマンスをきめ細かく制御できます。

次のステップ

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

withGTConfig