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.

La commande CLI npx gtx-cli init créera un fichier gt.config.json pour vous dans votre projet.

Configuration

Le fichier gt.config.json contient les paramètres suivants :

  • defaultLocale : La locale par défaut pour votre projet. C'est la locale dans laquelle votre contenu source est rédigé. C'est également la locale de secours pour votre projet (si vous utilisez gt-next ou gt-react).

  • locales : Un tableau des locales pour votre projet. Ce sont les locales vers lesquelles vous souhaitez traduire votre projet. Consultez les locales prises en charge pour plus d'informations. Si vous utilisez gt-next ou gt-react, ce sont également les locales que votre application prend en charge.

  • files : Il s'agit d'un objet qui contient des informations sur le contenu que vous souhaitez traduire.

Voici un squelette du fichier gt.config.json :

gt.config.json
{
  "defaultLocale": "en",
  "locales": ["fr", "es"],
  "files": {
    "gt": {
      "output": "..."
    },
    "json": {
      "include": [...]
    },
    "mdx": {
      "include": [...]
    },
    "md": {
      "include": [...]
    }
  }
}

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 avec un seul appel à 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'exclusion des 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 en utilisant 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.


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 différents types de fichiers, et tous les faire traduire. Nous prenons actuellement en charge les types de fichiers suivants :

  • gt : Fichiers de traduction générale.
  • json : Fichiers JSON.
  • mdx : Fichiers de composants Markdown (MDX).
  • md : Fichiers Markdown (MD).

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 modèles glob qui correspondent aux fichiers que vous souhaitez traduire.

Vous devriez utiliser le placeholder [locale] dans vos modèles glob pour vous assurer que la locale correcte est utilisée. L'outil CLI remplacera le placeholder [locale] par la valeur defaultLocale lors de la recherche de fichiers traduisibles.

L'outil CLI enregistrera les fichiers traduits dans le chemin correspondant, avec le placeholder [locale] remplacé par le code de la locale.

{
  "include": ["docs/[locale]/**/*.json"]
}

exclude

Si utilisée, la valeur de la clé exclude doit être un tableau de modèles glob qui correspondent aux fichiers que vous souhaitez exclure de la traduction.

Le modèle est le même que pour le modèle include.

{
  "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 soit .[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 basé sur des sous-répertoires pour les locales.

output

Cette clé est exclusivement utilisée pour les fichiers de traduction générale, 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 placeholder [locale] indiquant l'emplacement où les traductions seront sauvegardées.

Par exemple, si vous voulez que vos traductions en espagnol soient sauvegardées dans un fichier appelé ui.es.json dans le répertoire public/i18n, vous devriez 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 souhaitez 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 (Obligatoire)

Exemple

gt.config.json
{
  "defaultLocale": "en",
  "locales": ["fr", "es"],
  "files": {
    "gt": {
      "output": "public/i18n/[locale].json"
    },
  }
}

Cette configuration permettra à l'outil CLI d'enregistrer vos traductions en français et en espagnol 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 (Obligatoire)
  • exclude (Facultatif)
  • transform (Facultatif)

Exemple

gt.config.json
{
  "defaultLocale": "en",
  "locales": ["fr", "es"],
  "files": {
    "json": {
      "include": ["json_files/[locale]/**/*.json"],
      "exclude": ["json_files/[locale]/exclude/**/*.json"]
    }
  }
}

Supposons que la locale par défaut de votre projet soit en, et que vous souhaitiez traduire votre projet en fr et es.

Avec cette configuration, l'interface en ligne de commande recherchera tous les fichiers JSON dans le sous-répertoire json_files/en/ et enregistrera les fichiers traduits dans json_files/fr/ et json_files/es/.

Elle ignorera tous les fichiers dans le sous-répertoire json_files/en/exclude/.


Type de fichier : mdx

Clés prises en charge

  • include (Obligatoire)
  • exclude (Facultatif)
  • transform (Facultatif)

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 d'enregistrer les fichiers traduits dans le répertoire content/docs/ja.

La clé transform fait en sorte que l'extension des fichiers traduits soit modifiée en .ja.mdx.


Type de fichier : md

Clés prises en charge

  • include (Obligatoire)
  • exclude (Facultatif)
  • transform (Facultatif)

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 d'enregistrer les fichiers traduits dans le répertoire content/docs/ja.

La clé transform fait en sorte que l'extension des fichiers traduits soit modifiée en .ja.md.

Tous les fichiers dans le répertoire content/docs/en/exclude seront ignorés.


Prochaines étapes

Apprenez à utiliser la commande init pour générer ce fichier de configuration.

Sur cette page