Config

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.

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
});

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

PropDescription
defaultLocaleLocale par défaut de l’application. L’anglais sera utilisé par défaut si aucune n’est spécifiée.
localesListe 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 à 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 de projet, à inclure ici ou via une variable d’environnement.
apiKeyBien que non recommandé, une clé d’API peut être fournie ici. Elle peut aussi être définie via une variable d’environnement.
devApiKeyBien 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.
preferredModelProviderVotre 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é.
runtimeUrlURL de base pour l’API GT. Pour désactiver la traduction automatique, définissez-la 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 pour les traductions à l’exécution.
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 sur "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 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

PropDescription
methodLa méthode utilisée pour afficher la page. Les options sont skeleton, replace et default.
timeoutLe 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-US et en-GB), se comporte comme replace. Pour des 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 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.

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 traiter 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 = {
  // 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

  • 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 un contrôle fin du comportement et des performances de la traduction.

Prochaines étapes

Que pensez-vous de ce guide ?

withGTConfig