# gt-next: General Translation Next.js SDK: withGTConfig
URL: https://generaltranslation.com/ja/docs/next/api/config/with-gt-config.mdx
---
title: withGTConfig
description: withGTConfig() のAPIリファレンス(旧称 initGT())
---
## 概要
`withGTConfig` は、`gt-next` ライブラリを設定するための主な方法です。
`NextConfig` オブジェクトを直接ラップします。
```js title="next.config.mjs"
import { withGTConfig } from 'gt-next/config';
const nextConfig = {
// 既存のnext.config.js
}
export default withGTConfig(nextConfig, {
// 追加の設定オプション
});
```
**レガシー**
`initGT` は、`gt-next` ライブラリを設定する従来の方法です。これは関数コールバックを返し、そのコールバックを `NextConfig` オブジェクトに対して呼び出します。
2 つの関数の引数は同じですが、`withGTProps` では `NextConfig` も渡す必要がある点だけが異なります。
`withGTConfig` では、次のことができます:
* サポートする言語とデフォルトのロケール (フォールバック言語) を設定する。
* GT サービスにアクセスするための API キーとプロジェクト ID を設定する。
* 読み込み動作を設定する。
* タイムアウト設定を構成する。
* カスタムエンドポイントを設定する。
* 翻訳動作、キャッシュ、リクエストのバッチ処理をカスタマイズする。
* SWC プラグインによるビルド時の検証を構成する。
翻訳機能を有効にするには、`next.config.js` ファイルで `withGTConfig` を使用する必要があります。
## リファレンス
デフォルトでは、`withGTConfig` は `next.config.js` ファイルと同じディレクトリにある `gt.config.json` ファイルを探します。
この JSON ファイルは読み込まれ、`withGTConfig` に渡した設定とマージされます。
設定ファイルの詳細については、[gt.config.json](/docs/next/api/config/gt-config-json) リファレンスを参照してください。
CLI ツールは `gt.config.json` ファイルからのみ設定を読み込むため、
アプリの単一の信頼できる情報源として `gt.config.json` ファイルを使用することを推奨します。
`gt.config.json` ファイルに含まれない追加の設定オプションは、プロパティ として `withGTConfig` に直接渡せます。
### 必須の プロパティ
### 推奨されるプロパティ
| Prop | Description |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `defaultLocale` | アプリケーションのデフォルトのロケールです。指定がない場合は、英語がフォールバック言語になります。 |
| `locales` | アプリケーションでサポートするロケールの限定リストです。サポート対象外のリクエストを受け取った場合は、リスト内でブラウザが次に優先する言語へリルートされます。一致するものが見つからない場合は `defaultLocale` にフォールバックします。 |
| `description` | サイトの自然言語による説明です。翻訳を補助するために使用されます。 |
### 高度な プロパティ
| プロパティ | 説明 |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `projectId` | プロジェクト ID。ここで指定することも、環境変数で指定することもできます。 |
| `apiKey` | 推奨はされませんが、ここで API キーを指定できます。環境変数で指定することもできます。 |
| `devApiKey` | 推奨はされませんが、ここで開発用 API キーを指定できます。環境変数で指定することもできます。 |
| `preferredModelProvider` | 優先的に使用したい AI モデルプロバイダです。現在有効なのは [Anthropic](https://anthropic.com) または [OpenAI](https://openai.com) のみです。空欄のままにすると、翻訳ごとに最適なプロバイダを自動的に選択します。利用が集中している場合やプロバイダが無効化されている場合は、希望するプロバイダが使われることを保証できません。 |
| `runtimeUrl` | GT API のベース URL です。自動翻訳を無効にするには、これを空文字列に設定します。 |
| `cacheUrl` | キャッシュされた翻訳の保存先 URL です。カスタムのキャッシュサーバーを指すように変更できます。 |
| `cacheExpiryTime` | ローカルにキャッシュされた翻訳の有効期限が切れるまでの時間 (ミリ秒) です。 |
| `renderSettings` | runtime 翻訳の読み込み動作を指定するオブジェクトです。 |
| `maxConcurrentRequests` | GT API に対して同時に実行できる翻訳リクエストの最大数です。 |
| `maxBatchSize` | リクエスト送信前に 1 つのバッチにまとめる翻訳の最大数です。 |
| `batchInterval` | バッチ化された翻訳リクエストを送信する間隔 (ミリ秒) です。リクエストの送信頻度を制御するのに役立ちます。 |
| `dictionary` | 辞書用の任意の設定ファイルパスです。`i18n` と同様に、カスタムパスを指定する文字列を受け取ります。`dictionary.js` (または `.jsx`、`.ts`、`.tsx` など) という名前で、ルートまたは `src` フォルダに配置された辞書はデフォルトでサポートされます。 |
### 戻り値
指定した GT 設定を適用して拡張した `NextConfig` オブジェクト。
### 例外
`projectId` が指定されておらずデフォルト URL が使用されている場合、または API キーが必要なのに指定されていない場合は、`Error` をスローします。
***
## レンダリング設定
レンダリング設定 は、翻訳の読み込み中の表示動作を制御します。
これは、runtime で行われる翻訳にのみ適用されます。
翻訳がキャッシュされている場合、読み込み中の表示が必要になるほど応答時間は長くありません。
| Prop | Description |
| --------- | -------------------------------------------------------------- |
| `method` | ページのレンダリングに使用する方式です。指定できる値は `skeleton`、`replace`、`default` です。 |
| `timeout` | 方式がタイムアウトするまでの時間 (ミリ秒) です。デフォルトは 8000 ms です。 |
### レンダリング方式
* `skeleton`: フラグメントをレンダリングします。
* `replace`: 待機中はデフォルト言語のコンテンツを表示します。
* `default`: 同じ言語のロケール (例: `en-US` と `en-GB`) では `replace` と同様に動作します。異なる言語のロケール (例: `en-US` と `fr`) では `skeleton` と同様に動作します。
### タイムアウト
タイムアウトは、runtime 翻訳、またはキャッシュされておらずオンデマンドで実行する必要がある翻訳にのみ適用されます。
タイムアウトはデフォルトで 8 秒に設定されています。
これは、無料プランではサーバーレス関数のデフォルトのタイムアウトが 10 秒である Vercel ユーザーに配慮した設計です。
***
## 例
### レンダリング設定
この例では、翻訳の読み込みを待っている間、`gt-next` がスケルトンをレンダリングするよう設定します。
翻訳に 8 秒以上かかると、このメソッドはタイムアウトし、デフォルト言語のコンテンツをレンダリングします。
```json title="gt.config.json"
{
"defaultLocale": "en-US",
"locales": ["en-US", "es", "fr"],
}
```
```js title="next.config.mjs" copy
import { withGTConfig } from 'gt-next/config';
const nextConfig = {
// その他のNext.js設定
};
export default withGTConfig(nextConfig, {
renderSettings: {
method: 'skeleton',
timeout: 10000,
},
});
```
***
## 注記
* `withGTConfig` は GT の翻訳機能を Next.js アプリに統合するためのもので、ルートの設定ファイルで使用する必要があります。
* `apiKey` や `projectId` などのパラメータは、設定内で直接指定することも、環境変数として設定することもできます。
* `renderSettings` や `_batchInterval` などの高度なパラメータを使用すると、翻訳の挙動やパフォーマンスを細かく制御できます。
## 次のステップ
* [CD プロセスに翻訳を組み込む](/docs/next/tutorials/quickdeploy)。