設定
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
ファイルの先頭に追加してください:
{
"$schema": "https://assets.gtx.dev/config-schema.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
(必須)
例
{
"defaultLocale": "en",
"locales": ["fr", "es"],
"files": {
"gt": {
"output": "public/i18n/[locale].json"
},
}
}
この設定により、CLIツールはフランス語とスペイン語の翻訳をpublic/i18n/[locale].json
ディレクトリに保存します。
デフォルトでは、この設定でCLIツールは翻訳をGT CDNに公開しません。
ファイルタイプ: json
サポートされているキー
include
(必須)exclude
(オプション)transform
(オプション)
例
{
"defaultLocale": "en",
"locales": ["fr", "es"],
"files": {
"json": {
"include": ["json_files/[locale]/**/*.json"],
"exclude": ["json_files/[locale]/exclude/**/*.json"]
}
}
}
プロジェクトのデフォルトロケールが en
で、プロジェクトを fr
と es
に翻訳したいとしましょう。
この設定により、CLIはサブディレクトリ json_files/en/
下のすべてのJSONファイルを検索し、翻訳されたファイルを json_files/fr/
と json_files/es/
に保存します。
サブディレクトリ json_files/en/exclude/
内のファイルは無視されます。
ファイルタイプ: mdx
サポートされているキー
include
(必須)exclude
(オプション)transform
(オプション)
例
{
"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
(オプション)
例
{
"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
(オプション)
例
{
"defaultLocale": "en",
"locales": ["fr", "es"],
"files": {
"js": {
"include": ["scripts/[locale]/**/*.js"]
}
}
}
この設定により、CLIツールは scripts/en
ディレクトリ下のすべてのJavaScriptファイルを検索し、翻訳されたファイルを scripts/fr
と scripts/es
ディレクトリに保存します。
transform
キーにより、翻訳されたファイルの拡張子がそれぞれ .fr.js
と .es.js
に変更されます(.js
から)。
ファイルタイプ: ts
サポートされているキー
include
(必須)exclude
(オプション)transform
(オプション)
例
{
"defaultLocale": "en",
"locales": ["fr", "es"],
"files": {
"ts": {
"include": ["scripts/[locale]/**/*.ts"]
}
}
}
この設定により、CLIツールは scripts/en
ディレクトリ下のすべてのTypeScriptファイルを検索し、翻訳されたファイルを scripts/fr
と scripts/es
ディレクトリに保存します。
transform
キーにより、翻訳されたファイルの拡張子がそれぞれ .fr.ts
と .es.ts
に変更されます(.ts
から)。
設定例
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.json
とpublic/i18n/fr.json
に保存されます。これらのファイルはloadTranslations()
を使用して読み込むことができます。
MDX:翻訳はcontent/docs/fr
とcontent/docs/es
ディレクトリに保存されます。
ファイル拡張子は.mdx
から.fr.mdx
と.es.mdx
にそれぞれ変更されます。
JSON:翻訳はresources/fr
とresources/es
ディレクトリに保存されます。
次のステップ
init コマンドを使用してこの設定ファイルを生成する方法を学びましょう。
このガイドはいかがですか?