# gt-next: General Translation Next.js SDK: withGTConfig
URL: https://generaltranslation.com/fr/docs/next/api/config/with-gt-config.mdx
---
title: withGTConfig
description: Référence de l’API de `withGTConfig()`, anciennement `initGT()`
---
## Vue d’ensemble
`withGTConfig` est la méthode principale pour configurer la bibliothèque `gt-next`.
Elle encapsule directement un objet `NextConfig`.
```js title="next.config.mjs"
import { withGTConfig } from 'gt-next/config';
const nextConfig = {
// votre next.config.js existant
}
export default withGTConfig(nextConfig, {
// Options de configuration supplémentaires
});
```
**Ancienne méthode**
`initGT` est l’ancienne méthode de configuration de la bibliothèque `gt-next`. Elle renvoie une fonction de rappel, ensuite appliquée à l’objet `NextConfig`.
Les prop des deux fonctions sont identiques, à ceci près que `withGTProps` exige également le passage de `NextConfig`.
Utilisez `withGTConfig` pour :
* Configurer les langues prises en charge et le paramètre régional par défaut (c.-à-d. la langue de repli).
* Définir les clés API et les ID de projet pour accéder aux services GT.
* Définir le comportement de chargement.
* Configurer les délais d’expiration.
* Configurer des points de terminaison personnalisés.
* Personnaliser le comportement de traduction, la mise en cache et le regroupement des requêtes.
* Configurer la validation au build via le plugin SWC.
`withGTConfig` doit être utilisé dans votre fichier `next.config.js` pour activer les fonctionnalités de traduction.
## Référence
Par défaut, `withGTConfig` recherche un fichier `gt.config.json` dans le même répertoire que votre fichier `next.config.js`.
Ce fichier JSON sera chargé et fusionné avec la configuration transmise à `withGTConfig`.
Consultez la référence [gt.config.json](/docs/next/api/config/gt-config-json) pour en savoir plus sur le fichier de configuration.
L’outil CLI lit uniquement la configuration du fichier `gt.config.json`. Nous
vous recommandons donc d’utiliser le fichier `gt.config.json` comme source de vérité pour votre application.
Des options de configuration supplémentaires absentes du fichier `gt.config.json` peuvent être transmises directement à `withGTConfig` en tant que props.
### Props requises
### Props recommandées
| Prop | Description |
| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `defaultLocale` | Paramètre régional par défaut de l'application. L'anglais sera la langue de repli si aucun n'est spécifié. |
| `locales` | Liste fermée des paramètres régionaux pris en charge par l'application. Si une requête non prise en charge est reçue, elle sera redirigée vers le paramètre régional suivant préféré du navigateur dans la liste. Utilise `defaultLocale` comme valeur de repli si aucune correspondance n'est trouvée. |
| `description` | Description du site en langage naturel, utilisée pour faciliter la traduction. |
### Prop avancées
| Propriété | Description |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `projectId` | Identifiant du projet, à renseigner ici ou via une variable d’environnement. |
| `apiKey` | Bien que ce ne soit pas recommandé, vous pouvez renseigner ici une clé API. Elle peut aussi être fournie via une variable d’environnement. |
| `devApiKey` | Bien que ce ne soit pas recommandé, vous pouvez renseigner ici une clé API de développement. Elle peut aussi être fournie via une variable d’environnement. |
| `preferredModelProvider` | Votre fournisseur de modèles d’IA privilégié. À l’heure actuelle, seuls [Anthropic](https://anthropic.com) et [OpenAI](https://openai.com) sont pris en charge. Laissez ce champ vide et nous déterminerons le meilleur fournisseur au cas par cas pour chaque traduction. En période de forte utilisation ou lorsqu’un fournisseur est désactivé, nous ne pouvons pas garantir que votre fournisseur préféré sera utilisé. |
| `runtimeUrl` | URL de base de l’API GT. Pour désactiver la traduction automatique, définissez cette valeur sur une chaîne vide. |
| `cacheUrl` | URL où sont stockées les traductions mises en cache. Peut être personnalisée pour pointer vers un serveur de cache spécifique. |
| `cacheExpiryTime` | Délai, en millisecondes, avant expiration des traductions mises en cache localement. |
| `renderSettings` | Objet qui définit le comportement de chargement des traductions en exécution. |
| `maxConcurrentRequests` | Nombre maximal de requêtes de traduction simultanées autorisées vers l’API GT. |
| `maxBatchSize` | Nombre maximal de traductions à regrouper avant d’envoyer une requête. |
| `batchInterval` | Intervalle, en millisecondes, entre les requêtes de traduction groupées. Permet de contrôler la cadence d’envoi des requêtes. |
| `dictionary` | Chemin de fichier de configuration facultatif pour le dictionnaire. Comme `i18n`, il accepte une chaîne pour spécifier un chemin personnalisé. Les dictionnaires nommés `dictionary.js` (ou `.jsx`, `.ts`, `.tsx`, etc.) et placés à la racine ou dans le dossier `src` sont pris en charge par défaut. |
### Retourne
Un objet `NextConfig` enrichi avec les paramètres GT spécifiés.
### Exceptions
Lève une `Error` si `projectId` est manquant et que les URL par défaut sont utilisées, ou si la clé d’API est requise mais absente.
***
## Paramètres de rendu
Les paramètres de rendu contrôlent le comportement des traductions pendant leur chargement.
Cela s’applique uniquement aux traductions effectuées à l’exécution.
Si la traduction est mise en cache, le temps de réponse est trop faible pour justifier un état de chargement.
| Prop | Description |
| --------- | ----------------------------------------------------------------------------------------------- |
| `method` | La méthode utilisée pour afficher la page. Les options sont `skeleton`, `replace` et `default`. |
| `timeout` | Le délai en millisecondes avant expiration de la méthode. La valeur par défaut est de 8000 ms. |
### Méthodes de rendu
* `skeleton` : Affiche un fragment.
* `replace` : Affiche le contenu dans la langue par défaut pendant l’attente.
* `default` : Pour les paramètres régionaux utilisant la même langue (c.-à-d. `en-US` et `en-GB`), se comporte comme `replace`. Pour les paramètres régionaux utilisant des langues différentes (c.-à-d. `en-US` et `fr`), se comporte comme `skeleton`.
### Délai d’expiration
Les délais d’expiration ne s’appliquent qu’aux traductions à l’exécution, c’est-à-dire à celles qui doivent être effectuées à la demande faute d’avoir été mises en cache.
Les délais d’expiration sont fixés à 8 secondes par défaut.
Ce choix de conception vise à s’adapter aux utilisateurs de Vercel, dont les fonctions serverless ont un délai d’expiration par défaut de 10 secondes avec l’offre gratuite.
***
## Exemples
### Paramètres de rendu
Cet exemple configure `gt-next` pour afficher un écran de chargement squelette pendant le chargement des traductions.
Si la traduction prend plus de 8 secondes, la méthode dépassera le délai d’attente et affichera le contenu dans la langue par défaut.
```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 = {
// Vos autres configurations Next.js
};
export default withGTConfig(nextConfig, {
renderSettings: {
method: 'skeleton',
timeout: 10000,
},
});
```
***
## Remarques
* `withGTConfig` intègre les fonctionnalités de traduction de GT à votre application Next.js et doit être utilisé dans le fichier de configuration racine.
* Des paramètres comme `apiKey` et `projectId` peuvent être définis directement dans la configuration ou via des variables d’environnement.
* Des paramètres avancés comme `renderSettings` et `_batchInterval` permettent de contrôler finement le comportement et les performances de traduction.
## Prochaines étapes
* Ajoutez [la traduction à votre processus de déploiement continu](/docs/next/tutorials/quickdeploy).