配置
gt.config.json 文件的配置文档
概述
gt.config.json
文件用于配置你项目的 GT 设置。它应当放置在你的项目根目录下。
CLI 设置向导 npx gtx-cli init
会在你的项目中为你创建一个 gt.config.json
文件。
配置
gt.config.json
文件接受以下属性,但不限于这些属性:
-
defaultLocale
:项目的默认语言环境。这是源内容编写时使用的语言环境。这也是项目的回退语言环境(如果使用gt-next
或gt-react
)。 -
locales
:项目的语言环境数组。这些是您想要将项目翻译成的语言环境。有关更多信息,请参阅支持的语言环境。 如果您使用gt-next
或gt-react
,这些也是您的应用程序支持的语言环境。 -
files
:这是一个包含您想要翻译的内容信息的对象。 -
stageTranslations
:一个可选的布尔标志,指示您的项目是否配置为使用人工审核。 -
src
:一个可选的相对目录路径数组,包含可翻译的内容。 -
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", "./app", "./pages", "./components"],
"dictionary": "./dictionary.json"
}
files
支持的文件类型
files
应该包含您想要翻译的每种文件类型的键。
您可以配置项目来混合和匹配不同的文件类型,并让它们全部被翻译。
我们目前支持以下文件类型:
gt
: General Translation 文件。json
: JSON 文件。mdx
: Markdown 组件 (MDX) 文件。md
: Markdown (MD) 文件。js
: JavaScript 文件。ts
: TypeScript 文件。
每种文件类型都应该对应一个包含以下一个或多个键的对象:
include
exclude
transform
output
include
如果使用,include
键的值应该是一个 glob 模式数组,匹配您想要翻译的文件。
您必须在 glob 模式中使用 [locale]
占位符,以确保正确找到源文件,并将翻译文件保存到正确的位置。
CLI 工具在搜索可翻译文件时会将 [locale]
占位符替换为 defaultLocale
值。
CLI 工具会将翻译文件保存到相应路径,将 [locale]
占位符替换为目标语言代码。
{
"include": ["docs/[locale]/**/*.json"]
}
exclude
如果使用,exclude
键的值应该是一个 glob 模式数组,匹配您想要从翻译中排除的文件。
模式与 include
模式相同。
{
"exclude": ["docs/[locale]/exclude/**/*.json"]
}
transform
如果使用,transform
键的值应该是一个定义文件名重新映射的字符串。它应该包含一个通配符 *
,该通配符将被原始文件名(第一个 .
之前的任何内容)替换。
例如,如果您希望所有翻译文件的扩展名为 .[locale].json
而不是 .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 时才应使用。
目前,每个语言只能生成一个文件。
文件类型: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 命令 来生成此配置文件。
这份指南怎么样?