Config

withGTConfig()

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

概要

withGTConfig()gt-nextライブラリを設定するための主要な方法です。 NextConfigオブジェクトを直接ラップします。

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

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

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

レガシー

initGT()gt-nextライブラリを設定するレガシーな方法です。関数コールバックを返し、それがNextConfigオブジェクトで呼び出されます。 両方の関数のプロパティは同じですが、withGTPropsではNextConfigも渡す必要があるという例外があります。

withGTConfig()を使用して以下を行います:

  • サポートされる言語とデフォルトロケール(フォールバック言語とも呼ばれる)を設定する
  • GTサービスにアクセスするためのAPIキーとプロジェクトIDを設定する
  • 読み込み動作を設定する
  • タイムアウト設定を構成する
  • カスタムエンドポイントを設定する
  • 翻訳動作、キャッシュ、リクエストバッチ処理をカスタマイズする
  • SWCプラグインを通じてビルド時検証を設定する

翻訳機能を有効にするには、next.config.jsファイルでwithGTConfig()を使用する必要があります。

リファレンス

デフォルトでは、withGTConfig()next.config.jsファイルと同じディレクトリにあるgt.config.jsonファイルを探します。

このJSONファイルが読み込まれ、withGTConfig()に渡された設定とマージされます。

設定ファイルの詳細については、gt.config.jsonリファレンスを参照してください。

CLIツールはgt.config.jsonファイルからのみ設定を読み取るため、 アプリの設定の信頼できる情報源としてgt.config.jsonファイルを使用することを推奨します。

gt.config.jsonファイルにない追加の設定オプションは、withGTConfig()にpropsとして直接渡すことができます。

必須Props

PropTypeDefault
nextConfig?
NextConfig
-

推奨Props

PropTypeDefault
description??
string
undefined
locales??
string[]
undefined
defaultLocale??
string
locales[0] || 'en'
Prop説明
defaultLocaleアプリケーションのデフォルトロケール。何も指定されていない場合、英語がフォールバック言語になります。
localesアプリケーションでサポートされるロケールの限定リスト。サポートされていないリクエストを受信した場合、リスト内のブラウザの次の優先言語にリルートします。一致するものが見つからない場合はdefaultLocaleにフォールバックします。
descriptionサイトの自然言語による説明で、翻訳を支援するために使用されます。

高度なProps

PropTypeDefault
dynamicStringCheckLogLevel??
"error" | "warn" | "off"
"warn"
dynamicJsxCheckLogLevel??
"error" | "warn" | "off"
"warn"
dictionary??
string
-
maxBatchSize??
number
25
batchInterval??
number
50
maxConcurrentRequests??
number
100
renderSettings??
RenderSettings
-
cacheExpiryTime??
number
60000
cacheUrl??
string
-
runtimeUrl??
string
-
preferredModelProvider??
"anthropic" | "openai"
-
devApiKey??
string
-
apiKey??
string
-
projectId??
string
-
PropDescription
projectIdプロジェクトID。ここで指定するか、環境変数として設定できます。
apiKey推奨されませんが、APIキー。ここで指定できます。環境変数として設定することも可能です。
devApiKey推奨されませんが、開発用APIキー。ここで指定できます。環境変数として設定することも可能です。
preferredModelProvider優先するAIモデルプロバイダー。現在はAnthropicまたはOpenAIのみが利用可能です。空白のままにしておくと、翻訳ごとに最適なプロバイダーを自動選択します。使用量が多い期間やプロバイダーが無効になっている場合、優先プロバイダーの使用は保証されません。
runtimeUrlGT APIのベースURL。自動翻訳を無効にするには、空文字列に設定します。
cacheUrlキャッシュされた翻訳の保存先URL。カスタムキャッシュサーバーを指すようにカスタマイズできます。
cacheExpiryTimeローカルキャッシュされた翻訳の有効期限(ミリ秒)。
renderSettingsランタイム翻訳の読み込み動作を指定するオブジェクト。
maxConcurrentRequestsGT APIに対する同時翻訳リクエストの最大数。
maxBatchSize一度のリクエストでバッチ処理する翻訳の最大数。
batchIntervalバッチ翻訳リクエスト間の間隔(ミリ秒)。リクエスト送信頻度の制御に使用されます。
dictionary辞書の設定ファイルパス(オプション)。i18nと同様に、カスタムパスを指定する文字列を受け入れます。dictionary.js(または.jsx.ts.tsxなど)という名前で、ルートまたはsrcフォルダに配置された辞書がデフォルトでサポートされます。
dynamicJsxCheckLogLevel翻訳コンポーネント内の未ラップ動的コンテンツの検証を制御します。ビルドを失敗させる場合は"error"、警告を表示する場合は"warn"、チェックを無効にする場合は"off"に設定します。
dynamicStringCheckLogLevel文字列リテラルの使用を確認するための翻訳関数引数の検証を制御します。ビルドを失敗させる場合は"error"、警告を表示する場合は"warn"、チェックを無効にする場合は"off"に設定します。

戻り値

指定されたGT設定でNext.js設定オブジェクトを拡張する関数(NextConfig) => NextConfig

例外

projectIdが不足してデフォルトURLが使用されている場合、またはAPIキーが必要だが不足している場合にErrorをスローします。


レンダリング設定

レンダリング設定は、翻訳が読み込まれている間の挙動を制御します。 これは、実行時に行われる翻訳にのみ適用されます。 翻訳がキャッシュされている場合、応答時間が非常に短いため、読み込み挙動を設定する必要はありません。

PropTypeDefault
timout?
number
8000
method?
"skeleton" | "replace" | "default"
default
Prop説明
methodページをレンダリングする際に使用される方法。skeletonreplacedefault から選択できます。
timeoutメソッドがタイムアウトするまでのミリ秒単位の時間。デフォルトは8000ミリ秒です。

レンダリング方法

  • 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 = {
  // Your other next.js configurations
};

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

ビルド時バリデーション

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

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

const nextConfig = {
  // Your other next.js configurations
};

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

注意事項

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

次のステップ

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