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, {
  // 追加の options 設定
});

レガシー

initGTgt-next ライブラリを設定する従来方式です。コールバック関数を返し、その関数を NextConfig オブジェクトに対して呼び出します。 両関数のプロパティは同一ですが、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バッチ翻訳リクエスト間の間隔(ミリ秒)。リクエスト送信レートの制御に役立ちます。
dictionarydictionary のオプション設定ファイルパス。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メソッドがタイムアウトするまでの時間(ミリ秒)。デフォルトは 8000ms。

レンダリング方法

  • skeleton: フラグメントを描画します。
  • replace: 待機中はデフォルト言語のコンテンツを表示します。
  • default: 同じ言語の locale(例:en-USen-GB)では replace と同様に動作します。異なる言語の locale(例: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 は Next.js アプリに GT の翻訳機能を統合し、ルートの設定ファイルで必ず使用してください。
  • apiKeyprojectId などのパラメータは、設定内で直接指定することも、環境変数として設定することもできます。
  • renderSettings_batchInterval などの高度なパラメータにより、翻訳の動作とパフォーマンスを細かく制御できます。

次のステップ

このガイドはいかがですか?