Config

withGTConfig

Référence de l’API pour withGTConfig(), anciennement initGT()

Vue d’ensemble

withGTConfig est le moyen principal de configurer la bibliothèque gt-next. Il enveloppe directement un objet NextConfig.

next.config.mjs
import { withGTConfig } from 'gt-next/config';

const nextConfig = {
    // votre fichier next.config.js existant
}

export default withGTConfig(nextConfig, {
  // Options de configuration additionnelles
});

Ancien

initGT est l’ancienne méthode pour configurer la bibliothèque gt-next. Elle renvoie une fonction de rappel, ensuite appelée sur l’objet NextConfig. Les props des deux fonctions sont identiques, à l’exception du fait que withGTProps nécessite également de passer NextConfig.

Utilisez withGTConfig pour :

  • Configurer les langues prises en charge et la locale par défaut (alias langue de secours).
  • Définir les API Keys et les ID 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 points de terminaison 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 fonctionnalité 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 est chargé puis fusionné avec la configuration transmise à withGTConfig.

Consultez la référence gt.config.json pour plus d’informations sur le fichier de configuration.

La CLI ne lit la configuration que depuis le fichier gt.config.json. Nous vous recommandons donc d’utiliser gt.config.json comme source de vérité pour votre application.

Des options de configuration supplémentaires non présentes dans gt.config.json peuvent être transmises directement à withGTConfig sous forme de props.

Props requis

Prop

Type

Props recommandées

Prop

Type

PropDescription
defaultLocaleLocale par défaut de l’application. L’anglais servira de langue de secours si aucune n’est spécifiée.
localesListe exclusive des locales prises en charge par l’application. Si une requête non prise en charge est reçue, elle sera redirigée vers la langue suivante préférée du navigateur dans la liste. Reviendra à defaultLocale si aucune correspondance n’est trouvée.
descriptionDescription en langage naturel du site, utilisée pour faciliter la traduction.

Props avancées

Prop

Type

PropDescription
projectIdID du projet, qui peut être fourni ici ou comme variable d’environnement.
apiKeyBien que déconseillée, une clé d’API peut être fournie ici. Elle peut aussi être définie comme variable d’environnement.
devApiKeyBien que déconseillée, une clé d’API de développement peut être fournie ici. Elle peut aussi être définie comme variable d’environnement.
preferredModelProviderVotre fournisseur de modèles IA préféré. Actuellement, seuls Anthropic et OpenAI sont pris en charge. Laissez ce champ vide et nous sélectionnerons 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é.
runtimeUrlURL de base de l’API GT. Pour désactiver la traduction automatique, définissez cette valeur sur une chaîne vide.
cacheUrlURL où sont stockées les traductions mises en cache. Peut être personnalisée pour pointer vers un serveur de cache dédié.
cacheExpiryTimeDurée, en millisecondes, avant l’expiration des traductions mises en cache localement.
renderSettingsObjet spécifiant le comportement de chargement des traductions au runtime.
maxConcurrentRequestsNombre maximal de requêtes de traduction simultanées autorisées vers l’API GT.
maxBatchSizeNombre maximal de traductions à regrouper avant d’envoyer une requête.
batchIntervalIntervalle, en millisecondes, entre les requêtes de traduction groupées. Aide à contrôler le débit d’envoi des requêtes.
dictionaryChemin de configuration optionnel pour le dictionary. À l’instar de i18n, il accepte une chaîne pour spécifier un chemin personnalisé. Les dictionaries 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.
dynamicJsxCheckLogLevelContrôle la validation du contenu dynamique non encapsulé dans les composants de traduction. Définissez "error" pour faire échouer les builds, "warn" pour afficher des avertissements, ou "off" pour désactiver la vérification.
dynamicStringCheckLogLevelContrôle la validation des arguments de la fonction de traduction afin de garantir l’utilisation de littéraux de chaîne. Définissez "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 enrichit l’objet de configuration de Next.js avec les paramètres GT spécifiés.

Exceptions

Lève une Error si le projectId est manquant et que des 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 court pour justifier un comportement de chargement.

Prop

Type

PropDescription
methodLa méthode utilisée pour afficher la page. Les options sont skeleton, replace et default.
timeoutLe temps en millisecondes avant le délai d’attente de la méthode. Par défaut : 8000 ms.

Méthodes de rendu

  • skeleton : Rend un fragment.
  • replace : Rend le contenu dans la langue par défaut en attendant.
  • default : Pour les locales avec la même langue (p. ex. en-US et en-GB), se comporte comme replace. Pour les locales avec des langues différentes (p. ex. en-US et fr), se comporte comme skeleton.

Délai d’attente

Les délais d’attente s’appliquent uniquement aux traductions à l’exécution, c’est‑à‑dire aux traductions effectuées à la demande parce qu’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 de rendu

Cet exemple configure gt-next pour afficher un écran squelettique pendant le chargement des traductions. Si le chargement des traductions dépasse 8 secondes, la méthode expirera et affichera le contenu dans la langue par défaut.

gt.config.json
{
  "defaultLocale": "en-US",
  "locales": ["en-US", "es", "fr"],
}
next.config.mjs
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 considérer les violations de contenu dynamique comme des erreurs de compilation plutôt que comme de simples avertissements.

next.config.mjs
import { withGTConfig } from 'gt-next/config';

const nextConfig = {
  // Vos autres configurations Next.js
};

export default withGTConfig(nextConfig, {
  // Faire échouer les builds en cas de violations JSX dynamiques
  dynamicJsxCheckLogLevel: 'error',
  // Avertir en cas de violations de chaînes dynamiques  
  dynamicStringCheckLogLevel: 'warn',
});

Notes

  • withGTConfig intègre les fonctionnalités de traduction de GT dans votre application Next.js et doit être utilisé dans le fichier de configuration racine.
  • Des paramètres tels que 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 offrent un contrôle fin du comportement et des performances de la traduction.

Prochaines étapes

Comment trouvez-vous ce guide ?