Config

withGTConfig()

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

Aperçu

withGTConfig() est la principale méthode pour configurer la bibliothèque gt-next. Il enveloppe directement un objet NextConfig.

next.config.mjs
import { withGTConfig } from 'gt-next/config';
 
const nextConfig = {
    // votre next.config.js existant
}
 
export default withGTConfig(nextConfig, {
  defaultLocale: 'en-US',
  locales: ['en-US', 'es', 'fr'],
});

Héritage

initGT() est la méthode héritée pour configurer la bibliothèque gt-next. Elle retourne une fonction de rappel qui est ensuite appelée sur l'objet NextConfig. Les props pour les deux fonctions sont les mêmes, à l'exception que withGTProps nécessite également que NextConfig soit passé.

Il n'est pas nécessaire d'utiliser withGTConfig() pour activer la fonctionnalité de traduction, mais il est recommandé de configurer la bibliothèque selon vos besoins.

Utilisez withGTConfig() pour :

  • Configurer les langues prises en charge et la langue par défaut (alias langue de secours).
  • Définir les clés API et les identifiants de projet pour accéder aux services GT.
  • Définir le comportement de chargement.
  • Configurer les paramètres de délai d'attente.
  • Configurer des points de terminaison personnalisés.
  • Personnaliser le comportement de traduction, la mise en cache et le regroupement des requêtes.

withGTConfig() doit être utilisé dans votre fichier next.config.js pour activer la fonctionnalité de traduction.

Référence

Props Requis

PropTypeDefault
nextConfig?
NextConfig
-

Props Recommandés

PropTypeDefault
defaultLocale??
string
locales[0] || 'en'
locales??
string[]
undefined
description??
string
undefined
PropDescription
defaultLocaleLocale par défaut pour l'application. L'anglais sera la langue de secours lorsqu'aucune n'est spécifiée.
localesUne liste exclusive de locales prises en charge pour l'application. Si une demande 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 ne peut être trouvée.
descriptionUne description en langue naturelle du site, utilisée pour aider à la traduction.

Props Avancés

PropTypeDefault
projectId??
string
-
apiKey??
string
-
devApiKey??
string
-
preferredModelProvider??
"anthropic" | "openai"
-
runtimeUrl??
string
-
cacheUrl??
string
-
cacheExpiryTime??
number
60000
renderSettings??
RenderSettings
-
maxConcurrentRequests??
number
100
batchInterval??
number
50
maxBatchSize??
number
25
i18n??
string
-
dictionary??
string
-
PropDescription
projectIdID du projet, qui peut être inclus ici ou comme une variable d'environnement.
apiKeyBien que non recommandé, une clé API, qui peut être incluse ici. Elle peut également être incluse comme une variable d'environnement.
devApiKeyBien que non recommandé, une clé API de développement, qui peut être incluse ici. Elle peut également être incluse comme une variable d'environnement.
preferredModelProviderVotre premier choix de fournisseur de modèle AI. Actuellement, seuls Anthropic ou OpenAI sont activés. Laissez ce champ vide et nous déterminerons le meilleur fournisseur sur une base de traduction par 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é.
runtimeUrlURL de base pour l'API GT. Pour désactiver la traduction automatique, définissez ceci sur une chaîne vide.
cacheUrlURL où les traductions mises en cache sont stockées. Peut être personnalisé pour pointer vers un serveur de cache personnalisé.
cacheExpiryTimeTemps en millisecondes avant l'expiration des traductions mises en cache localement.
renderSettingsUn objet spécifiant le comportement de chargement pour les traductions en temps réel.
maxConcurrentRequestsNombre maximum de requêtes de traduction simultanées autorisées vers l'API GT.
maxBatchSizeNombre maximum de traductions à regrouper avant d'envoyer une requête.
batchIntervalIntervalle en millisecondes entre les requêtes de traduction groupées. Aide à contrôler le taux auquel les requêtes sont envoyées.
i18nChemin de configuration optionnel pour les fonctions personnalisées getLocale(). Si fourni sous forme de chaîne, il sera résolu comme un chemin. Sinon, les valeurs par défaut sont utilisées (recommandé).
dictionaryChemin de configuration optionnel pour le dictionnaire. Similaire à i18n, il accepte une chaîne pour spécifier un chemin personnalisé. Les dictionnaires appelé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.

Retours

Une fonction (NextConfig) => NextConfig qui améliore l'objet de configuration Next.js avec les paramètres GT spécifiés.

Exceptions

Lance une Error si le projectId est manquant et que les URL par défaut sont utilisées, ou si la clé API est requise et manquante.


Paramètres de rendu

Les paramètres de rendu contrôlent le comportement des traductions pendant leur chargement. Cela s'applique uniquement aux traductions qui se produisent à l'exécution. Si la traduction est mise en cache, le temps de réponse est trop court pour justifier le comportement de chargement.

PropTypeDefault
method?
"skeleton" | "replace" | "default"
default
timout?
number
8000
PropDescription
methodLa méthode utilisée pour rendre la page. Les options sont skeleton, replace, et default.
timeoutLe temps en millisecondes avant que la méthode n'expire. La valeur par défaut est 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 (c'est-à-dire en-US et en-GB), se comporte comme replace. Pour les locales avec des langues différentes (c'est-à-dire en-US et fr), se comporte comme skeleton.

Délai d'expiration

Les délais d'expiration s'appliquent uniquement aux traductions à l'exécution, ou aux traductions qui doivent être effectuées à la demande car elles n'ont pas été mises en cache.

Les délais d'expiration sont fixés à 8 secondes par défaut. Cette décision de conception vise à faciliter les utilisateurs de vercel qui ont un délai d'expiration par défaut de 10 secondes pour les fonctions serverless sur le plan gratuit.


Exemples

Locales prises en charge

Cet exemple configure gt-next avec l'anglais (en-US) comme langue par défaut. Il prend exclusivement en charge les traductions en espagnol (es) et en français (fr), et fournit une description pour une traduction contextuelle.

Le site reviendra à la langue la plus appropriée si aucune des locales ne correspond. Il recherchera les langues correspondantes (c'est-à-dire, en-US et en-GB), ainsi que les autres langues préférées que l'utilisateur a définies dans son navigateur. Si tout échoue, il reviendra alors à la langue par défaut.

Si vous souhaitez prendre en charge toutes les langues, laissez locales vide. De plus, les locales peuvent être configurées sur le tableau de bord.

next.config.mjs
import { withGTConfig } from 'gt-next/config';
 
const nextConfig = {
  // Your other next.js configurations
}
 
export default withGTConfig(nextConfig, {
  defaultLocale: 'en-US',
  locales: ['en-US', 'es', 'fr'],
  description: 'A personal blog about technology and travel',
});

Paramètres de rendu

Cet exemple configure gt-next pour rendre un squelette en attendant que les traductions se chargent. Si la traduction prend plus de 8 secondes, la méthode expirera et rendra le contenu de la langue par défaut.

next.config.mjs
import { withGTConfig } from 'gt-next/config';
 
const nextConfig = {
  // Your other next.js configurations
};
 
// locales field is left empty, so this configuration supports all 100+ languages
export default withGTConfig(nextConfig, {
  defaultLocale: 'en-US',
  renderSettings: {
    method: 'skeleton',
    timeout: 10000,
  },
});

Notes

  • withGTConfig() intègre la fonctionnalité de traduction GT dans 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 comme variables d'environnement.
  • Des paramètres avancés comme renderSettings et _batchInterval permettent un contrôle précis du comportement et des performances de la traduction.

Prochaines étapes

Sur cette page