withGTConfig
withGTConfig()(旧称:initGT())のAPIリファレンス
概要
withGTConfig は gt-next ライブラリを構成するための主要な手段です。
NextConfig オブジェクトを直接ラップします。
import { withGTConfig } from 'gt-next/config';
const nextConfig = {
// 既存の next.config.js
}
export default withGTConfig(nextConfig, {
// 追加の options 設定
});レガシー
initGT は gt-next ライブラリを設定する従来方式です。コールバック関数を返し、その関数を NextConfig オブジェクトに対して呼び出します。
両関数のプロパティは同一ですが、withGTProps のみ NextConfig の受け渡しが必須です。
withGTConfig を使用すると、次のことができます:
- サポートする言語と既定の
locale(フォールバック言語)を設定する。 - GT サービスにアクセスするための API Keys とプロジェクト ID を設定する。
- ローディング動作を設定する。
timeout設定を構成する。- カスタムエンドポイントを設定する。
- 翻訳動作、キャッシュ、リクエストのバッチ処理をカスタマイズする。
- SWC プラグインによるビルド時の検証を構成する。
翻訳機能を有効化するには、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 に含まれない追加の options は、props として withGTConfig に直接渡すことができます。
必須の Props
Prop
Type
推奨プロップス
Prop
Type
| Prop | Description |
|---|---|
defaultLocale | アプリケーションの既定のロケール。指定がない場合は英語がフォールバック言語になります。 |
locales | アプリケーションでサポートするロケールの限定リスト。サポート外のリクエストを受け取った場合は、リスト内でブラウザの次に優先される言語へリダイレクトします。一致が見つからない場合は defaultLocale にフォールバックします。 |
description | 翻訳を支援するために使用される、サイトの自然言語による説明。 |
高度なプロップ
Prop
Type
| 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 | 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
| Prop | Description |
|---|---|
method | ページのレンダリング方法。skeleton、replace、default から選択します。 |
timeout | メソッドがタイムアウトするまでの時間(ミリ秒)。デフォルトは 8000ms。 |
レンダリング方法
skeleton: フラグメントを描画します。replace: 待機中はデフォルト言語のコンテンツを表示します。default: 同じ言語の locale(例:en-USとen-GB)では replace と同様に動作します。異なる言語の locale(例: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 = {
// その他の Next.js の設定
};
export default withGTConfig(nextConfig, {
renderSettings: {
method: 'skeleton',
timeout: 10000,
},
});ビルド時の検証
この例では、SWC プラグインを設定し、動的コンテンツの違反を警告ではなくビルドエラーとして扱うようにします。
import { withGTConfig } from 'gt-next/config';
const nextConfig = {
// その他の Next.js の設定
};
export default withGTConfig(nextConfig, {
// 動的な JSX の違反がある場合はビルドを失敗させる
dynamicJsxCheckLogLevel: 'error',
// 動的な文字列の違反には警告を出す
dynamicStringCheckLogLevel: 'warn',
});注意事項
withGTConfigは Next.js アプリに GT の翻訳機能を統合し、ルートの設定ファイルで必ず使用してください。apiKeyやprojectIdなどのパラメータは、設定内で直接指定することも、環境変数として設定することもできます。renderSettingsや_batchIntervalなどの高度なパラメータにより、翻訳の動作とパフォーマンスを細かく制御できます。
次のステップ
このガイドはいかがですか?