設定

gt.config.json ファイルの設定ドキュメント

概要

gt.config.json ファイルは、プロジェクトのGT設定を構成するために使用されます。このファイルはプロジェクトのルートディレクトリに配置する必要があります。

CLIセットアップウィザード npx gtx-cli init を使用すると、プロジェクト内に gt.config.json ファイルが自動的に作成されます。

Configuration

gt.config.jsonファイルは以下のプロパティを受け入れますが、これらに限定されません:

  • defaultLocale: プロジェクトのデフォルトロケールです。これはソースコンテンツが書かれているロケールです。また、プロジェクトのフォールバックロケールでもあります(gt-nextまたはgt-reactを使用している場合)。

  • locales: プロジェクトのロケールの配列です。これらはプロジェクトを翻訳したいロケールです。詳細についてはサポートされているロケールを参照してください。 gt-nextまたはgt-reactを使用している場合、これらはアプリがサポートするロケールでもあります。

  • files: 翻訳したいコンテンツに関する情報を含むオブジェクトです。

  • stageTranslations: プロジェクトが人間によるレビューを使用するように設定されているかどうかを示すオプションのブール値フラグです。

  • src: ソースファイルのファイルglobパターンのオプション配列です。デフォルトでは以下に設定されています:

[
  "src/**/*.{js,jsx,ts,tsx}",
  "app/**/*.{js,jsx,ts,tsx}",
  "pages/**/*.{js,jsx,ts,tsx}",
  "components/**/*.{js,jsx,ts,tsx}"
]
  • dictionary: 辞書ファイルへの相対パスを指定するオプションの文字列です。

gt.config.jsonファイルの検証を支援するために、CLIのJSON Schemaを使用できます。

gt.config.jsonファイルの先頭に追加してください:

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

以下は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/**/*.{ts,tsx}",
  ],
  "dictionary": "./dictionary.json"
}

files

サポートされているファイルタイプ

filesには、翻訳したい各ファイルタイプのキーを含める必要があります。 プロジェクトを設定して、異なるファイルタイプを組み合わせて使用し、それらすべてを翻訳することができます。 現在、以下のファイルタイプをサポートしています:

  • gt: General Translationファイル。
  • json: JSONファイル。
  • mdx: Markdownコンポーネント(MDX)ファイル。
  • md: Markdown(MD)ファイル。
  • js: JavaScriptファイル。
  • ts: TypeScriptファイル。

各ファイルタイプは、以下のキーの1つ以上を含むオブジェクトに対応する必要があります:

  • include
  • exclude
  • transform
  • output

include

使用する場合、includeキーの値は、翻訳したいファイルにマッチするglobパターンの配列である必要があります。

ソースファイルが正しく見つかり、翻訳されたファイルが正しい場所に保存されるように、globパターンで[locale]プレースホルダーを使用する必要があります。 CLIツールは、翻訳可能なファイルを検索する際に、[locale]プレースホルダーをdefaultLocaleの値に置き換えます。

CLIツールは、[locale]プレースホルダーをターゲットロケールコードに置き換えて、対応するパスに翻訳されたファイルを保存します。

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

exclude

使用する場合、excludeキーの値は、翻訳から除外したいファイルにマッチするglobパターンの配列である必要があります。

パターンはincludeパターンと同じですが、[locale]プレースホルダーはオプションです。提供された場合、defaultLocaleの値に置き換えられます。

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

transform

使用する場合、transformキーの値は、ファイル名の再マッピングを定義する文字列である必要があります。元のファイル名(最初の.より前の部分)に置き換えられるワイルドカード*を含む必要があります。

例えば、翻訳されたすべてのファイルの拡張子を.jsonの代わりに.[locale].jsonにしたい場合、以下の設定を使用できます:

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

これは、ドキュメントやi18nフレームワークが、サブディレクトリベースのロケールルーティングの代わりに、翻訳されたファイルに特定のファイル拡張子を必要とする場合に便利です。

output

このキーは、General Translationファイル専用で、特に翻訳をローカルに保存するために使用されます。GT CDNを使用している場合、このキーは必要ありません。

値は、翻訳が保存される場所を示す[locale]プレースホルダーを含む文字列である必要があります。

例えば、スペイン語の翻訳をpublic/i18nディレクトリのui.es.jsonというファイルに保存したい場合、以下の文字列を使用する必要があります:

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

このオプションは、gt-nextまたはgt-reactを使用していて、GT CDNを使用する代わりに翻訳をローカルに保存したい場合にのみ使用する必要があります。

現在、各ロケールに対して1つのファイルのみ生成できます。


ファイルタイプ: gt

サポートされているキー

  • output (必須)

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

この設定により、CLIツールはフランス語とスペイン語の翻訳をpublic/i18n/[locale].jsonディレクトリに保存します。

デフォルトでは、この設定でCLIツールは翻訳をGT CDNに公開しません。


ファイルタイプ: json

サポートされているキー

  • include (必須)
  • exclude (オプション)
  • transform (オプション)

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

プロジェクトのデフォルトロケールが en で、プロジェクトを fres に翻訳したいとしましょう。

この設定により、CLIはサブディレクトリ json_files/en/ 下のすべてのJSONファイルを検索し、翻訳されたファイルを json_files/fr/json_files/es/ に保存します。

サブディレクトリ json_files/en/exclude/ 内のファイルは無視されます。


ファイルタイプ: mdx

サポートされているキー

  • include (必須)
  • exclude (オプション)
  • transform (オプション)

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

この設定により、CLIツールは content/docs/en ディレクトリ下のすべてのMDXファイルを検索し、翻訳されたファイルを content/docs/ja ディレクトリに保存します。

transform キーにより、翻訳されたファイルの拡張子が .ja.mdx に変更されます。


ファイルタイプ: md

サポートされているキー

  • include (必須)
  • exclude (オプション)
  • transform (オプション)

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

この設定により、CLIツールは content/docs/en ディレクトリ下のすべてのMDファイルを検索し、翻訳されたファイルを content/docs/ja ディレクトリに保存します。

transform キーにより、翻訳されたファイルの拡張子が .ja.md に変更されます。

content/docs/en/exclude ディレクトリ内のすべてのファイルは無視されます。


ファイルタイプ: js

サポートされているキー

  • include (必須)
  • exclude (オプション)
  • transform (オプション)

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

この設定により、CLIツールは scripts/en ディレクトリ下のすべてのJavaScriptファイルを検索し、翻訳されたファイルを scripts/frscripts/es ディレクトリに保存します。

transform キーにより、翻訳されたファイルの拡張子がそれぞれ .fr.js.es.js に変更されます(.js から)。


ファイルタイプ: ts

サポートされているキー

  • include (必須)
  • exclude (オプション)
  • transform (オプション)

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

この設定により、CLIツールは scripts/en ディレクトリ下のすべてのTypeScriptファイルを検索し、翻訳されたファイルを scripts/frscripts/es ディレクトリに保存します。

transform キーにより、翻訳されたファイルの拡張子がそれぞれ .fr.ts.es.ts に変更されます(.ts から)。


設定例

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"]
    }
  }
}

この例では、gtx-cli translateを一度呼び出すことで、以下のファイルを翻訳しています:

  • content/docs/enディレクトリ内のすべてのMDXファイル。
  • resources/enディレクトリ内のすべてのJSONファイル(resources/en/excludeディレクトリ内のファイルを除く)。
  • ReactまたはNext.jsプロジェクト内のすべてのインライン<T>コンポーネント。
  • dictionary.[json|js|ts]ファイル。

GT:翻訳はpublic/i18n/es.jsonpublic/i18n/fr.jsonに保存されます。これらのファイルはloadTranslations()を使用して読み込むことができます。

MDX:翻訳はcontent/docs/frcontent/docs/esディレクトリに保存されます。 ファイル拡張子は.mdxから.fr.mdx.es.mdxにそれぞれ変更されます。

JSON:翻訳はresources/frresources/esディレクトリに保存されます。


次のステップ

init コマンドを使用してこの設定ファイルを生成する方法を学びましょう。

このガイドはいかがですか?