Configuración

Documentación de configuración para el archivo gt.config.json

Descripción general

El archivo gt.config.json se utiliza para configurar los ajustes de GT de tu proyecto. Debe colocarse en la raíz de tu proyecto.

El asistente de configuración de CLI npx gtx-cli init creará un archivo gt.config.json para ti en tu proyecto.

Configuración

El archivo gt.config.json contiene las siguientes configuraciones:

  • defaultLocale: El locale predeterminado para tu proyecto. Este es el locale en el que está escrito tu contenido fuente. También es el locale de respaldo para tu proyecto (si usas gt-next o gt-react).

  • locales: Un arreglo de locales para tu proyecto. Estos son los locales a los que quieres traducir tu proyecto. Consulta los locales compatibles para más información. Si estás usando gt-next o gt-react, estos también son los locales que tu aplicación soporta.

  • files: Este es un objeto que contiene información sobre el contenido que deseas traducir.

Aquí tienes un esqueleto del archivo gt.config.json:

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

Tipos de archivos compatibles

files debe contener una clave para cada tipo de archivo que desees traducir. Puedes configurar tu proyecto para combinar diferentes tipos de archivos y que todos sean traducidos. Actualmente, admitimos los siguientes tipos de archivos:

  • gt: Archivos de traducción general.
  • json: Archivos JSON.
  • mdx: Archivos de componentes Markdown (MDX).
  • md: Archivos Markdown (MD).
  • js: Archivos JavaScript.
  • ts: Archivos TypeScript.

Cada tipo de archivo debe corresponder a un objeto que contenga una o más de las siguientes claves:

  • include
  • exclude
  • transform
  • output

include

Si se utiliza, el valor de la clave include debe ser un arreglo de patrones glob que coincidan con los archivos que deseas traducir.

Debes usar el marcador de posición [locale] en tus patrones glob para asegurarte de que los archivos fuente se encuentren correctamente y los archivos traducidos se guarden en la ubicación correcta. La herramienta CLI reemplazará el marcador de posición [locale] con el valor de defaultLocale al buscar archivos traducibles.

La herramienta CLI guardará los archivos traducidos en la ruta correspondiente, con el marcador de posición [locale] reemplazado por el código de idioma de destino.

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

exclude

Si se utiliza, el valor de la clave exclude debe ser un arreglo de patrones glob que coincidan con los archivos que deseas excluir de la traducción.

El patrón es el mismo que el patrón de include.

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

transform

Si se utiliza, el valor de la clave transform debe ser una cadena que defina un mapeo del nombre del archivo. Debe contener un comodín * que será reemplazado por el nombre original del archivo (todo lo anterior al primer .).

Por ejemplo, si deseas que la extensión de todos tus archivos traducidos sea .[locale].json en lugar de .json, puedes usar la siguiente configuración:

{
  "transform": "*.[locale].json"
}

Esto es útil si tu documentación o framework de i18n requiere una extensión de archivo específica para los archivos traducidos en lugar de un enrutamiento de idioma basado en subdirectorios.

output

Esta clave se utiliza exclusivamente para archivos de Traducción General, específicamente para guardar traducciones localmente. Si estás usando el GT CDN, esta clave no es necesaria.

El valor debe ser una cadena que contenga un marcador de posición [locale] indicando la ubicación donde se guardarán las traducciones.

Por ejemplo, si deseas guardar tus traducciones al español en un archivo llamado ui.es.json en el directorio public/i18n, debes usar la siguiente cadena:

{
  "output": "public/i18n/[locale].json"
}

Esta opción solo debe usarse si estás utilizando gt-next o gt-react, y deseas guardar las traducciones localmente, en lugar de usar el GT CDN.

Actualmente, solo se puede generar un archivo por cada idioma.


Tipo de archivo: gt

Claves admitidas

  • output (Obligatorio)

Ejemplo

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

Esta configuración hará que la herramienta CLI guarde tus traducciones en francés y español en el directorio public/i18n/[locale].json.

Por defecto, la herramienta CLI no publicará tus traducciones en el CDN de GT con esta configuración.


Tipo de archivo: json

Claves soportadas

  • include (Obligatorio)
  • exclude (Opcional)
  • transform (Opcional)

Ejemplo

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

Supongamos que el locale predeterminado de tu proyecto es en, y quieres traducir tu proyecto a fr y es.

Con esta configuración, la CLI buscará todos los archivos JSON en el subdirectorio json_files/en/ y guardará los archivos traducidos en json_files/fr/ y json_files/es/.

Ignorará cualquier archivo en el subdirectorio json_files/en/exclude/.


Tipo de archivo: mdx

Claves soportadas

  • include (Obligatorio)
  • exclude (Opcional)
  • transform (Opcional)

Ejemplo

gt.config.json
{
  "defaultLocale": "en",
  "locales": ["ja"],
  "files": {
    "mdx": {
      "include": ["content/docs/[locale]/**/*.mdx"],
      "transform": "*.[locale].mdx"
    }
  }
}

Esta configuración indicará a la herramienta CLI que busque todos los archivos MDX dentro del directorio content/docs/en y guarde los archivos traducidos en el directorio content/docs/ja.

La clave transform hace que la extensión de los archivos traducidos cambie a .ja.mdx.


Tipo de archivo: md

Claves soportadas

  • include (Obligatorio)
  • exclude (Opcional)
  • transform (Opcional)

Ejemplo

gt.config.json
{
  "defaultLocale": "en",
  "locales": ["ja"],
  "files": {
    "md": {
      "include": ["content/docs/[locale]/**/*.md"],
      "exclude": ["content/docs/[locale]/exclude/**/*.md"],
      "transform": "*.[locale].md"
    }
  }
}

Esta configuración indicará a la herramienta CLI que busque todos los archivos MD bajo el directorio content/docs/en y guarde los archivos traducidos en el directorio content/docs/ja.

La clave transform hace que la extensión de los archivos traducidos cambie a .ja.md.

Todos los archivos en el directorio content/docs/en/exclude serán ignorados.


Tipo de archivo: js

Claves soportadas

  • include (Obligatorio)
  • exclude (Opcional)
  • transform (Opcional)

Ejemplo

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

Esta configuración indicará a la herramienta CLI que busque todos los archivos JavaScript dentro del directorio scripts/en y guarde los archivos traducidos en los directorios scripts/fr y scripts/es.

La clave transform hace que la extensión de los archivos traducidos cambie a .fr.js y .es.js respectivamente (desde .js).


Tipo de archivo: ts

Claves soportadas

  • include (Obligatorio)
  • exclude (Opcional)
  • transform (Opcional)

Ejemplo

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

Esta configuración indicará a la herramienta CLI que busque todos los archivos TypeScript dentro del directorio scripts/en y guarde los archivos traducidos en los directorios scripts/fr y scripts/es.

La clave transform hace que la extensión de los archivos traducidos cambie a .fr.ts y .es.ts respectivamente (desde .ts).


Configuración de ejemplo

Analicemos un archivo de ejemplo 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"]
    }
  }
}

En este ejemplo, estamos traduciendo los siguientes archivos con una sola llamada a gtx-cli translate:

  • Todos los archivos MDX en el directorio content/docs/en.
  • Todos los archivos JSON en el directorio resources/en (excluyendo cualquier archivo en el directorio resources/en/exclude).
  • Todos los componentes en línea <T> en tu proyecto de React o Next.js.
  • Tu archivo dictionary.[json|js|ts].

GT: Las traducciones se guardarán en public/i18n/es.json y public/i18n/fr.json. Estos archivos pueden cargarse usando loadTranslations().

MDX: Las traducciones se guardarán en los directorios content/docs/fr y content/docs/es. Las extensiones de los archivos cambiarán a .fr.mdx y .es.mdx respectivamente (desde .mdx).

JSON: Las traducciones se guardarán en los directorios resources/fr y resources/es.


Próximos pasos

Aprende cómo usar el comando init para generar este archivo de configuración.

En esta página