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
.
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
Prop | Type | Default |
---|---|---|
nextConfig? | NextConfig | - |
Props recommandées
Prop | Type | Default |
---|---|---|
description?? | string | undefined |
locales?? | string[] | undefined |
defaultLocale?? | string | locales[0] || 'en' |
Prop | Description |
---|---|
defaultLocale | Langue par défaut de l'application. L'anglais sera utilisé comme langue de secours si aucune n'est spécifiée. |
locales | Liste 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. |
description | Description en langage naturel du site, utilisée pour faciliter la traduction. |
Props avancées
Prop | Type | Default |
---|---|---|
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 | - |
Prop | Description |
---|---|
projectId | ID du projet, qui peut être inclus ici ou comme variable d'environnement. |
apiKey | Bien que non recommandé, une clé API, qui peut être incluse ici. Elle peut également être incluse comme variable d'environnement. |
devApiKey | Bien que non recommandé, une clé API de développement, qui peut être incluse ici. Elle peut également être incluse comme variable d'environnement. |
preferredModelProvider | Votre 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é. |
runtimeUrl | URL de base pour l'API GT. Pour désactiver la traduction automatique, définissez cette valeur sur une chaîne vide. |
cacheUrl | URL où les traductions mises en cache sont stockées. Peut être personnalisée pour pointer vers un serveur de cache personnalisé. |
cacheExpiryTime | Durée en millisecondes avant l'expiration des traductions mises en cache localement. |
renderSettings | Un 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. Permet de contrôler la fréquence d'envoi des requêtes. |
i18n | Chemin 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é). |
dictionary | Chemin 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.
Prop | Type | Default |
---|---|---|
timout? | number | 8000 |
method? | "skeleton" | "replace" | "default" | default |
Prop | Description |
---|---|
method | La méthode utilisée pour rendre la page. Les options sont skeleton , replace et default . |
timeout | Le 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 exempleen-US
eten-GB
), se comporte comme replace. Pour les locales avec des langues différentes (par exempleen-US
etfr
), 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.
{
"defaultLocale": "en-US",
"locales": ["en-US", "es", "fr"],
}
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()
.
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"
});
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
etprojectId
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
- Ajoutez la traduction à votre processus CD.
Comment trouvez-vous ce guide ?