Configuration
Documentation de configuration pour le fichier gt.config.json
Aperçu
Le fichier gt.config.json
est utilisé pour configurer les paramètres GT de votre projet. Il doit être placé à la racine de votre projet.
L'assistant de configuration CLI npx gtx-cli init
créera un fichier gt.config.json
pour vous dans votre projet.
Configuration
Le fichier gt.config.json
accepte les propriétés suivantes, mais ne s'y limite pas :
-
defaultLocale
: La locale par défaut de votre projet. C'est la locale dans laquelle votre contenu source est écrit. C'est aussi la locale de secours pour votre projet (si vous utilisezgt-next
ougt-react
). -
locales
: Un tableau de locales pour votre projet. Ce sont les locales vers lesquelles vous voulez traduire votre projet. Voir les locales supportées pour plus d'informations. Si vous utilisezgt-next
ougt-react
, ce sont aussi les locales que votre application supporte. -
files
: C'est un objet qui contient des informations sur le contenu que vous voulez traduire. -
stageTranslations
: Un indicateur booléen optionnel qui indique si votre projet est configuré pour utiliser la révision humaine. -
src
: Un tableau optionnel de chemins de répertoires relatifs qui contiennent du contenu traduisible. -
dictionary
: Une chaîne optionnelle qui spécifie le chemin relatif vers le fichier dictionnaire.
Pour aider à valider votre fichier gt.config.json
, vous pouvez utiliser le JSON Schema pour le CLI.
Ajoutez-le en haut de votre fichier gt.config.json
:
{
"$schema": "https://assets.gtx.dev/config-schema.json",
}
Voici un squelette du fichier gt.config.json
:
{
"$schema": "https://assets.gtx.dev/config-schema.json",
"defaultLocale": "en",
"locales": ["fr", "es"],
"files": {
"gt": {
"output": "..."
},
"json": {
"include": [...]
},
"mdx": {
"include": [...]
},
"md": {
"include": [...]
}
},
"src": ["./src", "./app", "./pages", "./components"],
"dictionary": "./dictionary.json"
}
files
Types de fichiers pris en charge
files
doit contenir une clé pour chaque type de fichier que vous souhaitez traduire.
Vous pouvez configurer votre projet pour mélanger et associer différents types de fichiers, et les faire tous traduire.
Nous prenons actuellement en charge les types de fichiers suivants :
gt
: Fichiers General Translation.json
: Fichiers JSON.mdx
: Fichiers de composants Markdown (MDX).md
: Fichiers Markdown (MD).js
: Fichiers JavaScript.ts
: Fichiers TypeScript.
Chaque type de fichier doit correspondre à un objet qui contient une ou plusieurs des clés suivantes :
include
exclude
transform
output
include
Si utilisée, la valeur de la clé include
doit être un tableau de motifs glob qui correspondent aux fichiers que vous souhaitez traduire.
Vous devez utiliser l'espace réservé [locale]
dans vos motifs glob pour vous assurer que les fichiers sources sont trouvés correctement, et que les fichiers traduits sont sauvegardés au bon endroit.
L'outil CLI remplacera l'espace réservé [locale]
par la valeur defaultLocale
lors de la recherche de fichiers traduisibles.
L'outil CLI sauvegardera les fichiers traduits dans le chemin correspondant, avec l'espace réservé [locale]
remplacé par le code de locale cible.
{
"include": ["docs/[locale]/**/*.json"]
}
exclude
Si utilisée, la valeur de la clé exclude
doit être un tableau de motifs glob qui correspondent aux fichiers que vous souhaitez exclure de la traduction.
Le motif est le même que le motif include
, à l'exception que l'espace réservé [locale]
est optionnel. S'il est fourni, il sera remplacé par la valeur defaultLocale
.
{
"exclude": ["docs/[locale]/exclude/**/*.json"]
}
transform
Si utilisée, la valeur de la clé transform
doit être une chaîne définissant un remappage du nom de fichier. Elle doit contenir un caractère générique *
qui sera remplacé par le nom de fichier original (tout ce qui précède le premier .
).
Par exemple, si vous voulez que l'extension de tous vos fichiers traduits ait .[locale].json
au lieu de .json
, vous pouvez utiliser la configuration suivante :
{
"transform": "*.[locale].json"
}
Ceci est utile si votre framework de documentation ou d'i18n nécessite une extension de fichier spécifique pour les fichiers traduits au lieu d'un routage de locale basé sur des sous-répertoires.
output
Cette clé est exclusivement utilisée pour les fichiers General Translation, spécifiquement pour sauvegarder les traductions localement. Si vous utilisez le CDN GT, cette clé n'est pas nécessaire.
La valeur doit être une chaîne contenant un espace réservé [locale]
indiquant l'emplacement où les traductions seront sauvegardées.
Par exemple, si vous voulez sauvegarder vos traductions espagnoles dans un fichier appelé ui.es.json
dans le répertoire public/i18n
, vous devez utiliser la chaîne suivante :
{
"output": "public/i18n/[locale].json"
}
Cette option ne doit être utilisée que si vous utilisez gt-next
ou gt-react
, et que vous voulez sauvegarder les traductions localement, au lieu d'utiliser le CDN GT.
Actuellement, un seul fichier pour chaque locale peut être généré.
Type de fichier : gt
Clés prises en charge
output
(Requis)
Exemple
{
"defaultLocale": "en",
"locales": ["fr", "es"],
"files": {
"gt": {
"output": "public/i18n/[locale].json"
},
}
}
Cette configuration permettra à l'outil CLI de sauvegarder vos traductions françaises et espagnoles dans le répertoire public/i18n/[locale].json
.
Par défaut, l'outil CLI ne publiera pas vos traductions sur le CDN GT avec cette configuration.
Type de fichier : json
Clés prises en charge
include
(Requis)exclude
(Optionnel)transform
(Optionnel)
Exemple
{
"defaultLocale": "en",
"locales": ["fr", "es"],
"files": {
"json": {
"include": ["json_files/[locale]/**/*.json"],
"exclude": ["json_files/[locale]/exclude/**/*.json"]
}
}
}
Disons que la locale par défaut de votre projet est en
, et que vous voulez traduire votre projet en fr
et es
.
Avec cette configuration, le CLI recherchera tous les fichiers JSON dans le sous-répertoire json_files/en/
et sauvegardera les fichiers traduits dans json_files/fr/
et json_files/es/
.
Il ignorera tous les fichiers dans le sous-répertoire json_files/en/exclude/
.
Type de fichier : mdx
Clés supportées
include
(Requis)exclude
(Optionnel)transform
(Optionnel)
Exemple
{
"defaultLocale": "en",
"locales": ["ja"],
"files": {
"mdx": {
"include": ["content/docs/[locale]/**/*.mdx"],
"transform": "*.[locale].mdx"
}
}
}
Cette configuration indiquera à l'outil CLI de rechercher tous les fichiers MDX dans le répertoire content/docs/en
et de sauvegarder les fichiers traduits dans le répertoire content/docs/ja
.
La clé transform
fait que l'extension des fichiers traduits soit changée en .ja.mdx
.
Type de fichier : md
Clés supportées
include
(Requis)exclude
(Optionnel)transform
(Optionnel)
Exemple
{
"defaultLocale": "en",
"locales": ["ja"],
"files": {
"md": {
"include": ["content/docs/[locale]/**/*.md"],
"exclude": ["content/docs/[locale]/exclude/**/*.md"],
"transform": "*.[locale].md"
}
}
}
Cette configuration indiquera à l'outil CLI de rechercher tous les fichiers MD dans le répertoire content/docs/en
et de sauvegarder les fichiers traduits dans le répertoire content/docs/ja
.
La clé transform
fait que l'extension des fichiers traduits soit changée en .ja.md
.
Tous les fichiers dans le répertoire content/docs/en/exclude
seront ignorés.
Type de fichier : js
Clés supportées
include
(Requis)exclude
(Optionnel)transform
(Optionnel)
Exemple
{
"defaultLocale": "en",
"locales": ["fr", "es"],
"files": {
"js": {
"include": ["scripts/[locale]/**/*.js"]
}
}
}
Cette configuration indiquera à l'outil CLI de rechercher tous les fichiers JavaScript dans le répertoire scripts/en
et de sauvegarder les fichiers traduits dans les répertoires scripts/fr
et scripts/es
.
La clé transform
fait que l'extension des fichiers traduits soit changée en .fr.js
et .es.js
respectivement (à partir de .js
).
Type de fichier : ts
Clés supportées
include
(Requis)exclude
(Optionnel)transform
(Optionnel)
Exemple
{
"defaultLocale": "en",
"locales": ["fr", "es"],
"files": {
"ts": {
"include": ["scripts/[locale]/**/*.ts"]
}
}
}
Cette configuration indiquera à l'outil CLI de rechercher tous les fichiers TypeScript dans le répertoire scripts/en
et de sauvegarder les fichiers traduits dans les répertoires scripts/fr
et scripts/es
.
La clé transform
fait que l'extension des fichiers traduits soit changée en .fr.ts
et .es.ts
respectivement (à partir de .ts
).
Exemple de configuration
Analysons un exemple de fichier gt.config.json
:
{
"defaultLocale": "en",
"locales": ["fr", "es"],
"files": {
"gt": {
"output": "public/i18n/[locale].json"
},
"mdx": {
"include": ["content/docs/[locale]/**/*.mdx"],
"transform": "*.[locale].mdx"
},
"json": {
"include": ["resources/[locale]/**/*.json"],
"exclude": ["resources/[locale]/exclude/**/*.json"]
}
}
}
Dans cet exemple, nous traduisons les fichiers suivants en une seule commande avec gtx-cli translate
:
- Tous les fichiers MDX dans le répertoire
content/docs/en
. - Tous les fichiers JSON dans le répertoire
resources/en
(à l'exception de tous les fichiers dans le répertoireresources/en/exclude
). - Tous les composants
<T>
en ligne dans votre projet React ou Next.js. - Votre fichier
dictionary.[json|js|ts]
.
GT : Les traductions seront enregistrées dans public/i18n/es.json
et public/i18n/fr.json
. Ces fichiers peuvent être chargés à l'aide de loadTranslations()
.
MDX : Les traductions seront enregistrées dans les répertoires content/docs/fr
et content/docs/es
.
Les extensions de fichiers seront modifiées en .fr.mdx
et .es.mdx
respectivement (à partir de .mdx
).
JSON : Les traductions seront enregistrées dans les répertoires resources/fr
et resources/es
.
Prochaines étapes
Découvrez comment utiliser la commande init pour générer ce fichier de configuration.
Comment trouvez-vous ce guide ?