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 utilisez gt-next ou gt-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 utilisez gt-next ou gt-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 :

gt.config.json
{
  "$schema": "https://assets.gtx.dev/config-schema.json",
}

Voici un squelette du fichier gt.config.json :

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

gt.config.json
{
  "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

gt.config.json
{
  "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

gt.config.json
{
  "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

gt.config.json
{
  "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

gt.config.json
{
  "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

gt.config.json
{ 
  "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 :

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épertoire resources/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 ?