# gt: General Translation CLI tool: Конфигурация URL: https://generaltranslation.com/ru/docs/cli/reference/config.mdx --- title: Конфигурация description: Настройка CLI General Translation с помощью файла gt.config.json. Справочник API для gt.config.json. --- Файл `gt.config.json` определяет, что именно переводит CLI и куда сохраняются результаты. Разместите его в корневой директории проекта. Создать его можно с помощью [`gt init`](/docs/cli/reference/commands/init) или [`gt configure`](/docs/cli/reference/commands/configure), либо написать вручную. *Примечание: Добавьте [JSON Schema](https://assets.gtx.dev/config-schema.json) с ключом `$schema`, чтобы редактор поддерживал валидацию и автодополнение.* ## Параметры [#options] | Параметр | Описание | Тип | Необязательно | По умолчанию | | ------------------------------------ | ------------------------------------------------------------------------- | ---------- | ------------- | ----------------- | | [`defaultLocale`](#default-locale) | Локаль, на которой написан исходный контент. | `string` | Да | `en` | | [`locales`](#locales) | Целевые локали для перевода. | `string[]` | Да | — | | [`files`](#files) | Какие файлы переводить и где их сохранять. | `object` | Да | — | | [`publish`](#publish) | Публиковать переведённые файлы в CDN. | `boolean` | Да | `false` | | [`stageTranslations`](#stage) | Требовать ручной проверки перед тем, как переводы станут доступными. | `boolean` | Да | `false` | | [`requiresReview`](#requires-review) | Политика обязательной проверки по умолчанию для всех переведённых файлов. | `boolean` | Да | `false` | | [`src`](#src) | Glob-шаблоны исходных файлов для поиска встроенного контента. | `string[]` | Да | См. [`src`](#src) | | [`dictionary`](#dictionary) | Путь к файлу словаря. | `string` | Да | — | | [`branchOptions`](#branch-options) | Настройки отслеживания переводов на основе веток. | `object` | Да | — | | [`customMapping`](#custom-mapping) | Алиасы локалей и переопределения свойств. | `object` | Да | — | ## `defaultLocale` [#default-locale] **Тип** `string` · **Необязательно** · **По умолчанию** `en` Локаль, на которой написан исходный контент. Это локаль, с которой CLI выполняет перевод, а также резервная локаль при использовании `gt-next` или `gt-react`. ```json title="gt.config.json" { "defaultLocale": "en" } ``` ## `locales` [#locales] **Тип** `string[]` · **Необязательно** · **По умолчанию** — Целевые локали, на которые будет переводиться контент. Список допустимых кодов см. в разделе [поддерживаемые локали](/docs/platform/dashboard/reference/supported-locales). Если вы используете `gt-next` или `gt-react`, это также локали, которые поддерживает ваше приложение. ```json title="gt.config.json" { "locales": ["fr", "es", "ja"] } ``` ## `files` [#files] **Тип** `object` · **Необязательно** · **По умолчанию** — Объект, содержащий по одному ключу для каждого типа файла, который нужно перевести. Каждому типу соответствует объект с настройками. См. раздел [Форматы файлов](/docs/cli/reference/formats/gt-jsx-files) с рекомендациями для каждого типа. ### Поддерживаемые типы файлов | Ключ | Тип файла | Ссылка | | ------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------ | | `gt` | Файлы General Translation для `gt-next`, `gt-react` и `gt-react-native`. | [GT](/docs/cli/reference/formats/gt-jsx-files) | | `json` | Файлы JSON. | [JSON](/docs/cli/reference/formats/json-files) | | `yaml` | Файлы YAML (`.yaml` и `.yml`). | [YAML](/docs/cli/reference/formats/yaml-files) | | `pot` | Файлы gettext PO/POT. | [PO / POT](/docs/cli/reference/formats/po-pot-files) | | `mdx` | Файлы MDX. | [MDX и Markdown](/docs/cli/reference/formats/mdx-md-files) | | `md` | Файлы Markdown. | [MDX и Markdown](/docs/cli/reference/formats/mdx-md-files) | | `ts` | Файлы TypeScript. | [TypeScript и JavaScript](/docs/cli/reference/formats/ts-js-files) | | `js` | Файлы JavaScript. | [TypeScript и JavaScript](/docs/cli/reference/formats/ts-js-files) | | `html` | Файлы HTML. | [HTML](/docs/cli/reference/formats/html-files) | | `txt` | Текстовые файлы. | [Обычный текст](/docs/cli/reference/formats/plain-text-files) | | `twilioContentJson` | Шаблоны Twilio Content JSON. | — | ### Ключи типов файлов Каждый тип файла поддерживает следующие ключи. * `include` — массив glob-шаблонов, соответствующих файлам для перевода. Используйте заполнитель `[locale]`: CLI заменяет его на `defaultLocale`, чтобы найти исходные файлы, и на каждый целевой код, чтобы сохранить переводы. Обязательно для всех типов, кроме `gt`. * `exclude` — массив glob-шаблонов для исключения. Заполнитель `[locale]` здесь необязателен; используйте `[locales]`, чтобы исключить путь для всех локалей. * `transform` — переопределяет имена выходных файлов. Строка с подстановочным символом `*` переопределяет расширение (например, `*.[locale].json`). Объект с `match` и `replace` поддерживает группы захвата regex и заполнитель `{locale}`. * `transformationFormat` — выводит переведённые файлы в формате, отличном от исходного. Например, источники `pot` с `"transformationFormat": "PO"` создают файлы `.po`. * `requiresReview` — делает переведённые файлы доступными только после ручной проверки. Принимает `true`/`false` или объект с glob-массивами `include` и `exclude`, где `exclude` имеет приоритет. * `output` — только для файлов `gt`, локальный путь сохранения с заполнителем `[locale]`, например `public/i18n/[locale].json`. * `parsingFlags` — только для файлов `gt`, флаги, управляющие разбором встроенного контента. См. [`autoderive`](/docs/cli/guides/using-autoderive) и [автоматическая инъекция JSX](/docs/cli/guides/using-auto-jsx). ```json title="gt.config.json" { "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"] } } } ``` ## `publish` [#publish] **Тип** `boolean` · **Необязательный** · **По умолчанию** `false` Если указано `true`, переведённые файлы публикуются в CDN General Translation после [`translate`](/docs/cli/reference/commands/translate), `upload` или `save-local`. См. раздел [публикация в CDN](#cdn-publishing), чтобы управлять этим для отдельных файлов и команд. ```json title="gt.config.json" { "publish": true } ``` ## `stageTranslations` [#stage] **Тип** `boolean` · **Необязательно** · **По умолчанию** `false` Если `true`, переводы должны пройти проверку человеком, прежде чем станут доступны. CLI автоматически устанавливает это значение при первом запуске [`gt stage`](/docs/cli/reference/commands/stage). После включения `translate` загружает переводы только для версий, которые вы подготовили с помощью `gt stage`; если вы ничего не подготовили, загружать нечего. ## `requiresReview` [#requires-review] **Тип** `boolean` · **Необязательно** · **По умолчанию** `false` Значение по умолчанию для проверки на уровне проекта: если `true`, переведённые артефакты требуют утверждения, прежде чем клиент сможет их использовать. Это должно быть значение `boolean` — для переопределений по glob-шаблонам используйте ключ [`files..requiresReview`](#files) для отдельных файлов (он принимает `boolean` или globs `{ include, exclude }`). Политика для отдельного файла имеет приоритет; файлы, не соответствующие ни glob-шаблону `include`, ни `exclude`, используют это значение верхнего уровня по умолчанию. ```json title="gt.config.json" { "requiresReview": true } ``` ## `src` [#src] **Тип** `string[]` · **Необязательно** · **По умолчанию** glob-шаблоны `src`, `app`, `pages`, `components` Массив glob-шаблонов для исходных файлов, которые сканируются на наличие встроенного контента при использовании `gt-next`, `gt-react` или `gt-react-native`. ```json title="gt.config.json" { "src": [ "src/**/*.{js,jsx,ts,tsx}", "app/**/*.{js,jsx,ts,tsx}", "pages/**/*.{js,jsx,ts,tsx}", "components/**/*.{js,jsx,ts,tsx}" ] } ``` ## `dictionary` [#dictionary] **Тип** `string` · **Необязательный** · **По умолчанию** — Относительный путь к файлу словаря. Если параметр не указан, CLI ищет `dictionary.[json|ts|js]` в `./src` и `./`. ```json title="gt.config.json" { "dictionary": "./dictionary.json" } ``` ## `branchOptions` [#branch-options] **Тип** `object` · **Необязательно** · **По умолчанию** — Настраивает отслеживание переводов по веткам. См. [Отслеживание переводов по веткам](/docs/cli/guides/branching). Флаги CLI имеют приоритет над этими значениями. | Свойство | Описание | Тип | Необязательно | По умолчанию | | -------------------- | -------------------------------------------------------------- | --------- | ------------- | ------------ | | `enabled` | Включает ветвление для проекта. | `boolean` | Да | `false` | | `currentBranch` | Переопределяет обнаруженное имя ветки. | `string` | Да | — | | `autoDetectBranches` | Определяет связи между входящими и текущими ветками. | `boolean` | Да | `true` | | `remoteName` | Удалённый репозиторий Git, используемый для определения ветки. | `string` | Да | `origin` | ```json title="gt.config.json" { "branchOptions": { "enabled": true, "currentBranch": "my-feature-branch", "autoDetectBranches": true, "remoteName": "origin" } } ``` ## `customMapping` [#custom-mapping] **Тип** `object` · **Необязательно** · **По умолчанию** — Задает для локали алиас с другим кодом и при необходимости переопределяет её свойства. Например, задайте алиас `cn` для официального кода `zh`. ```json title="gt.config.json" { "customMapping": { "cn": { "code": "zh", "name": "Mandarin" } } } ``` ## Публикация в CDN [#cdn-publishing] По умолчанию CLI не публикует в CDN. Когда CDN включён в настройках проекта, вы можете управлять публикацией глобально, для отдельных файлов или для отдельных команд. * **Глобально:** установите [`publish`](#publish) верхнего уровня в `true` или передайте `--publish` в `translate`, `upload` или `save-local`. * **Только для файлов GT:** установите `publish: true` в `files.gt`. * **Для каждого файла:** в массиве `include` замените glob-строку на объект с `pattern` и `publish`, чтобы явно включать или исключать совпавшие файлы. ```json title="gt.config.json" { "files": { "json": { "include": [ { "pattern": "locales/[locale]/*.json", "publish": true }, { "pattern": "locales/[locale]/internal/**/*.json", "publish": false } ] } } } ``` Для любого файла CLI определяет публикацию в следующем порядке: явное исключение через `"publish": false`, затем явное включение через `"publish": true`, затем глобальная настройка `publish`. Если настройка публикации отсутствует на всех уровнях, шаг публикации пропускается. ## Пример конфигурации [#example] ```json title="gt.config.json" { "$schema": "https://assets.gtx.dev/config-schema.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"] } } } ``` Один запуск [`gt translate`](/docs/cli/reference/commands/translate) с этой конфигурацией переводит MDX-файлы в каталоге `content/docs/en` (с сохранением в `content/docs/fr` и `content/docs/es` с расширениями `.fr.mdx` и `.es.mdx`), JSON-файлы в каталоге `resources/en` (кроме `resources/en/exclude`), а также все встроенные компоненты [``](/docs/react/reference/components/t) и записи словаря. Переводы GT сохраняются в `public/i18n/fr.json` и `public/i18n/es.json`.