withGTConfig
Référence de l’API pour withGTConfig(), précédemment initGT()
Présentation
withGTConfig est le moyen principal de configurer la bibliothèque gt-next.
Il encapsule directement un objet NextConfig.
import { withGTConfig } from 'gt-next/config';
const nextConfig = {
    // votre next.config.js existant
}
export default withGTConfig(nextConfig, {
  // Options de configuration supplémentaires
});Ancien
initGT est l’ancienne méthode pour configurer la bibliothèque gt-next. Elle renvoie une fonction de rappel qui est ensuite appelée sur l’objet NextConfig.
Les propriétés des deux fonctions sont identiques, à l’exception de withGTProps qui nécessite également de passer NextConfig.
Utilisez withGTConfig pour :
- Configurer les langues prises en charge et la locale par défaut (langue de secours).
- Définir les API Keys et les IDs de projet pour accéder aux services GT.
- Définir le comportement de chargement.
- Configurer les paramètres de délai d’attente.
- Mettre en place des endpoints personnalisés.
- Personnaliser le comportement de traduction, la mise en cache et le regroupement des requêtes.
- Configurer la validation au moment du build via le plugin SWC.
withGTConfig doit être utilisé dans votre fichier next.config.js pour activer la traduction.
Référence
Par défaut, withGTConfig cherchera un fichier gt.config.json dans le même répertoire que votre fichier next.config.js.
Ce fichier JSON sera chargé puis fusionné avec la configuration transmise à withGTConfig.
Consultez la documentation de référence gt.config.json pour en savoir plus sur le fichier de configuration.
L’outil CLI lit uniquement la configuration à partir du fichier gt.config.json ; nous vous recommandons donc d’utiliser ce fichier comme source de vérité pour votre application.
Des options de configuration supplémentaires non présentes dans gt.config.json peuvent être passées directement à withGTConfig via des props.
Props requises
Prop
Type
Props recommandées
Prop
Type
| Prop | Description | 
|---|---|
| defaultLocale | Locale par défaut de l’application. L’anglais sera utilisé par défaut si aucune n’est spécifiée. | 
| locales | Liste exclusive des locales prises en charge pour l’application. Si une requête pour une locale non prise en charge est reçue, elle sera redirigée vers la langue suivante préférée du navigateur dans la liste. Passera à defaultLocalesi aucune correspondance n’est trouvée. | 
| description | Description en langage naturel du site, utilisée pour faciliter la traduction. | 
Props avancées
Prop
Type
| Prop | Description | 
|---|---|
| projectId | ID de projet, à inclure ici ou via une variable d’environnement. | 
| apiKey | Bien que non recommandé, une clé d’API peut être fournie ici. Elle peut aussi être définie via une variable d’environnement. | 
| devApiKey | Bien que non recommandé, une clé d’API de développement peut être fournie ici. Elle peut aussi être définie via une variable d’environnement. | 
| preferredModelProvider | Votre fournisseur de modèles IA préféré. Actuellement, seuls Anthropic et OpenAI sont pris en charge. Laissez ce champ vide et nous déterminerons le meilleur fournisseur traduction par traduction. En période de forte utilisation ou si un fournisseur est indisponible, nous ne pouvons pas garantir l’utilisation de votre fournisseur préféré. | 
| runtimeUrl | URL de base pour l’API GT. Pour désactiver la traduction automatique, définissez-la 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 dédié. | 
| cacheExpiryTime | Durée (en millisecondes) avant l’expiration des traductions mises en cache localement. | 
| renderSettings | Objet spécifiant le comportement de chargement pour les traductions à l’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. Aide à contrôler le débit d’envoi des requêtes. | 
| dictionary | Chemin de configuration optionnel pour le dictionary. À l’instar de i18n, il accepte une chaîne pour spécifier un chemin personnalisé. Les dictionaries nommésdictionary.js(ou.jsx,.ts,.tsx, etc.) et placés à la racine ou dans le dossiersrcsont pris en charge par défaut. | 
| dynamicJsxCheckLogLevel | Contrôle la validation du contenu dynamique non encapsulé dans les composants de traduction. Définissez sur "error" pour faire échouer les builds, "warn" pour afficher des avertissements, ou "off" pour désactiver la vérification. | 
| dynamicStringCheckLogLevel | Contrôle la validation des arguments passés à la fonction de traduction afin de garantir l’utilisation de littéraux de chaîne. Définissez sur "error" pour faire échouer les builds, "warn" pour afficher des avertissements, ou "off" pour désactiver la vérification. | 
Renvoie
Une fonction (NextConfig) => NextConfig qui améliore l’objet de configuration Next.js avec les paramètres GT spécifiés.
Exceptions
Déclenche une Error si le projectId est manquant et que des URL par défaut sont utilisées, ou si une 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 ne s’applique qu’aux traductions exécutées au runtime. Si la traduction est mise en cache, le temps de réponse est trop court pour justifier un comportement de chargement.
Prop
Type
| Prop | Description | 
|---|---|
| method | La méthode utilisée pour afficher la page. Les options sont skeleton,replaceetdefault. | 
| timeout | Le délai en millisecondes avant l’expiration de la méthode. La valeur par défaut est 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 locales partageant la même langue (p. ex.- en-USet- en-GB), se comporte comme replace. Pour des locales avec des langues différentes (p. ex.- en-USet- fr), se comporte comme skeleton.
Délai d’attente
Les délais d’attente ne s’appliquent qu’aux traductions à l’exécution, c’est‑à‑dire aux traductions effectuées à la demande lorsqu’elles n’ont pas été mises en cache.
Les délais d’attente sont fixés à 8 secondes par défaut. Ce choix de conception vise à faciliter les utilisateurs de Vercel, qui disposent d’un délai d’attente par défaut de 10 secondes pour les fonctions serverless sur l’offre gratuite.
Exemples
Paramètres d’affichage
Cet exemple configure gt-next pour afficher un écran de chargement (squelette) en attendant que les traductions se chargent.
Si le chargement des traductions dépasse 8 secondes, la méthode arrive à expiration et affiche le contenu dans la langue par défaut.
{
  "defaultLocale": "en-US",
  "locales": ["en-US", "es", "fr"],
}import { withGTConfig } from 'gt-next/config';
const nextConfig = {
  // Vos autres configurations Next.js
};
export default withGTConfig(nextConfig, {
  renderSettings: {
    method: 'skeleton',
    timeout: 10000,
  },
});Validation à la compilation
Cet exemple configure le plug-in SWC pour traiter les violations de contenu dynamique comme des erreurs de compilation plutôt que comme de simples avertissements.
import { withGTConfig } from 'gt-next/config';
const nextConfig = {
  // Autres paramètres Next.js
};
export default withGTConfig(nextConfig, {
  // Échouer la compilation en cas d’infractions JSX dynamiques
  dynamicJsxCheckLogLevel: 'error',
  // Avertir en cas d’infractions de chaînes dynamiques
  dynamicStringCheckLogLevel: 'warn',
});Notes
- withGTConfigintè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 apiKeyetprojectIdpeuvent être définis directement dans la configuration ou via des variables d'environnement.
- Des paramètres avancés comme renderSettingset_batchIntervalpermettent un contrôle fin du comportement et des performances de la traduction.
Prochaines étapes
Que pensez-vous de ce guide ?

