Config

withGTConfig()

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

概要

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

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

const nextConfig = {
    // your existing next.config.js
}

export default withGTConfig(nextConfig, {
  // Additional configuration options
});

レガシー

initGT() は、gt-next ライブラリを設定する従来の方法です。これは関数コールバックを返し、その後 NextConfig オブジェクトに対して呼び出されます。 両方の関数のプロップスは同じですが、withGTProps では NextConfig も渡す必要がある点が異なります。

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

  • サポートする言語とデフォルトロケール(いわゆるフォールバック言語)の設定
  • GTサービスへアクセスするためのAPIキーやプロジェクトIDの設定
  • ローディング動作の設定
  • タイムアウト設定の構成
  • カスタムエンドポイントの設定
  • 翻訳動作、キャッシュ、リクエストのバッチ処理のカスタマイズ

翻訳機能を有効にするには、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ファイルにない追加の設定オプションは、propsとしてwithGTConfig()に直接渡すことができます。

必須Props

PropTypeDefault
nextConfig?
NextConfig
-

推奨Props

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

高度なProps

PropTypeDefault
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フォルダに配置されたものがデフォルトでサポートされます。

Returns

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

Exceptions

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,
  },
});

注意事項

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

次のステップ

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