withGTConfig()
withGTConfig() の API リファレンス(旧名:initGT())
概要
withGTConfig()
はgt-next
ライブラリを設定するための主要な方法です。
NextConfig
オブジェクトを直接ラップします。
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
Prop | Type | Default |
---|---|---|
nextConfig? | NextConfig | - |
推奨Props
Prop | Type | Default |
---|---|---|
description?? | string | undefined |
locales?? | string[] | undefined |
defaultLocale?? | string | locales[0] || 'en' |
Prop | 説明 |
---|---|
defaultLocale | アプリケーションのデフォルトロケール。何も指定されていない場合、英語がフォールバック言語になります。 |
locales | アプリケーションでサポートされるロケールの限定リスト。サポートされていないリクエストを受信した場合、リスト内のブラウザの次の優先言語にリルートします。一致するものが見つからない場合はdefaultLocale にフォールバックします。 |
description | サイトの自然言語による説明で、翻訳を支援するために使用されます。 |
高度なProps
Prop | Type | Default |
---|---|---|
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 | - |
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 | 辞書の設定ファイルパス(オプション)。i18n と同様に、カスタムパスを指定する文字列を受け入れます。dictionary.js (または.jsx 、.ts 、.tsx など)という名前で、ルートまたはsrc フォルダに配置された辞書がデフォルトでサポートされます。 |
dynamicJsxCheckLogLevel | 翻訳コンポーネント内の未ラップ動的コンテンツの検証を制御します。ビルドを失敗させる場合は"error" 、警告を表示する場合は"warn" 、チェックを無効にする場合は"off" に設定します。 |
dynamicStringCheckLogLevel | 文字列リテラルの使用を確認するための翻訳関数引数の検証を制御します。ビルドを失敗させる場合は"error" 、警告を表示する場合は"warn" 、チェックを無効にする場合は"off" に設定します。 |
戻り値
指定されたGT設定でNext.js設定オブジェクトを拡張する関数(NextConfig) => NextConfig
。
例外
projectId
が不足してデフォルトURLが使用されている場合、またはAPIキーが必要だが不足している場合にError
をスローします。
レンダリング設定
レンダリング設定は、翻訳が読み込まれている間の挙動を制御します。 これは、実行時に行われる翻訳にのみ適用されます。 翻訳がキャッシュされている場合、応答時間が非常に短いため、読み込み挙動を設定する必要はありません。
Prop | Type | Default |
---|---|---|
timout? | number | 8000 |
method? | "skeleton" | "replace" | "default" | default |
Prop | 説明 |
---|---|
method | ページをレンダリングする際に使用される方法。skeleton 、replace 、default から選択できます。 |
timeout | メソッドがタイムアウトするまでのミリ秒単位の時間。デフォルトは8000ミリ秒です。 |
レンダリング方法
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 = {
// Your other next.js configurations
};
export default withGTConfig(nextConfig, {
renderSettings: {
method: 'skeleton',
timeout: 10000,
},
});
ビルド時バリデーション
この例では、動的コンテンツの違反を警告ではなくビルドエラーとして扱うようにSWCプラグインを設定します。
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 アプリに統合し、ルートの設定ファイルで使用する必要があります。apiKey
やprojectId
などのパラメータは、設定内で直接指定するか、環境変数として設定できます。renderSettings
や_batchInterval
などの高度なパラメータを使うことで、翻訳の動作やパフォーマンスを細かく制御できます。
次のステップ
このガイドはいかがですか?