Config

withGTConfig()

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

Aperçu

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

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

const nextConfig = {
    // your existing next.config.js
}

export default withGTConfig(nextConfig, {
  // Additional configuration options
});

Hérité

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

Utilisez withGTConfig() pour :

  • Configurer les langues prises en charge et la langue par défaut (également appelée 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.
  • Mettre en place 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

Par défaut, withGTConfig() recherchera 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 pour plus d'informations sur le fichier de configuration.

L'outil CLI lira uniquement la configuration à partir du fichier gt.config.json, c'est pourquoi nous recommandons d'utiliser le fichier gt.config.json comme source de vérité pour votre application.

Des options de configuration supplémentaires qui ne figurent pas dans le fichier gt.config.json peuvent être transmises directement à withGTConfig() en tant que props.

Props requises

PropTypeDefault
nextConfig?
NextConfig
-

Props recommandées

PropTypeDefault
description??
string
undefined
locales??
string[]
undefined
defaultLocale??
string
locales[0] || 'en'
PropDescription
defaultLocaleLangue par défaut de l'application. L'anglais sera utilisé comme langue de secours si aucune n'est spécifiée.
localesListe exclusive des langues prises en charge par l'application. Si une requête pour une langue 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

PropTypeDefault
dictionary??
string
-
i18n??
string
-
maxBatchSize??
number
25
batchInterval??
number
50
maxConcurrentRequests??
number
100
renderSettings??
RenderSettings
-
cacheExpiryTime??
number
60000
cacheUrl??
string
-
runtimeUrl??
string
-
preferredModelProvider??
"anthropic" | "openai"
-
devApiKey??
string
-
apiKey??
string
-
projectId??
string
-
PropDescription
projectIdID du projet, qui peut être inclus ici ou comme variable d'environnement.
apiKeyBien que non recommandé, une clé API, qui peut être incluse ici. Elle peut également être incluse comme variable d'environnement.
devApiKeyBien que non recommandé, une clé API de développement, qui peut être incluse ici. Elle peut également être incluse comme variable d'environnement.
preferredModelProviderVotre fournisseur de modèle d'IA préféré. Actuellement, seuls Anthropic ou OpenAI sont disponibles. Laissez ce champ vide et nous déterminerons le meilleur fournisseur pour chaque traduction. En période de forte utilisation ou si 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 cette valeur sur une chaîne vide.
cacheUrlURL où les traductions mises en cache sont stockées. Peut être personnalisée pour pointer vers un serveur de cache personnalisé.
cacheExpiryTimeDurée en millisecondes avant l'expiration des traductions mises en cache localement.
renderSettingsUn objet 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. Permet de contrôler la fréquence d'envoi des requêtes.
i18nChemin de configuration optionnel pour des fonctions personnalisées getLocale(). Si une chaîne est fournie, elle sera résolue comme un chemin. Sinon, les valeurs par défaut sont utilisées (recommandé).
dictionaryChemin de configuration optionnel pour le dictionnaire. Comme pour i18n, il accepte une chaîne pour spécifier un chemin personnalisé. Les dictionnaires nommés dictionary.js (ou .jsx, .ts, .tsx etc.) placés à la racine ou dans le dossier src sont pris en charge par défaut.

Retourne

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

Exceptions

Lève une Error si le projectId est manquant et que les URLs 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 ne s'applique qu'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.

PropTypeDefault
timout?
number
8000
method?
"skeleton" | "replace" | "default"
default
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 : Affiche un fragment.
  • replace : Affiche le contenu dans la langue par défaut en attendant.
  • default : Pour les locales avec la même langue (par exemple en-US et en-GB), se comporte comme replace. Pour les locales avec des langues différentes (par exemple 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, 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 disposent d'un délai d'expiration par défaut de 10 secondes pour les fonctions serverless sur le plan gratuit.


Exemples

Paramètres de rendu

Cet exemple configure gt-next pour afficher un squelette en attendant le chargement des traductions. Si la traduction prend plus de 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 = {
  // Your other next.js configurations
};

export default withGTConfig(nextConfig, {
  renderSettings: {
    method: 'skeleton',
    timeout: 10000,
  },
});

Configuration de getLocale()

i18n est une chaîne de caractères qui spécifie un chemin personnalisé vers un fichier qui définit une fonction getLocale(). Vous pouvez spécifier un comportement personnalisé pour déterminer la langue de l'utilisateur en créant un fichier qui exporte une fonction appelée getLocale().

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

const nextConfig = {};

export default withGTConfig(nextConfig, {
  defaultLocale: "en-US", // the default language of your app, usually "en" or "en-US"
  i18n: "./i18n.js"
});
myapp/i18n.js
import { cookies } from "next/headers";

export async function getLocale() {
  const cookieStore = await cookies();
  return cookieStore.get('myCustomLocaleCookie') || 'en';
}

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

Comment trouvez-vous ce guide ?