# gt: General Translation CLI tool: YAML
URL: https://generaltranslation.com/ru/docs/cli/formats/yaml.mdx
---
title: YAML
description: Как автоматически переводить YAML-файлы с помощью General Translation
---
## Обзор
`gt` можно использовать для автоматического перевода YAML-файлов проекта независимо от того, какую библиотеку i18n вы используете.
**Примечание:** Сейчас мы поддерживаем пользовательский синтаксис и форматирование
строк для следующих сторонних библиотек i18n: `next-intl`, `i18next`. Если вы используете
другую библиотеку i18n, результаты перевода строк с пользовательским синтаксисом
и форматированием (например, сообщений ICU) могут быть неточными. Не видите
здесь свою любимую библиотеку? [Сообщите нам
об этом](https://github.com/generaltranslation/gt/issues), и мы добавим её,
как только сможем!
Мы будем двигаться по этим 4 шагам:
Добавьте переменные окружения
Установите [`gt`](/docs/cli)
Создайте файл `gt.config.json`
Запустите [`gt translate`](/docs/cli/translate#translate)
***
## Шаг 1: Добавьте переменные окружения
Добавьте в переменные окружения рабочий API-ключ и идентификатор проекта.
Это необходимо для использования инструмента `gt`.
Их можно получить в [панели управления General Translation](https://generaltranslation.com/dashboard).
```bash title=".env"
GT_API_KEY=
GT_PROJECT_ID=
```
## Шаг 2: Установите `gt`
Установите инструмент `gt` в проект.
```bash
npm i gt
```
```bash
yarn add --dev gt
```
```bash
bun add --dev gt
```
```bash
pnpm add --save-dev gt
```
## Шаг 3: Создайте файл `gt.config.json`
Создайте файл `gt.config.json` в корне проекта.
```json title="gt.config.json"
{
"defaultLocale": "en",
"locales": ["zh", "es", "ja"],
"files": {
"yaml": {
"include": ["i18n/[locale]/*.yaml"]
}
}
}
```
При необходимости настройте файл `gt.config.json` под свои задачи. Подробнее см. в документации по [конфигурации](/docs/cli/reference/config).
Обновите файл `yaml` так, чтобы путь `include` соответствовал структуре вашего проекта. Поддерживаются расширения `.yaml` и `.yml`.
Переводы сохраняют исходный синтаксис строки.
## Шаг 4: Добавьте команду `gt translate` в процесс сборки
Добавьте команду `gt translate` в процесс сборки или CI до команды сборки, чтобы переводы автоматически добавлялись в проект.
```json title="package.json"
{
"scripts": {
"translate": "npx gt translate",
"build": "npm run translate && "
}
}
```
Это создаст переводы для всех ваших локалей и сохранит их в проекте.
Если вы хотите закоммитить эти файлы в репозиторий, вместо этого перед коммитом выполните эту команду.
Готово! Теперь все YAML-файлы переводов в вашем проекте будут автоматически обновляться при любых изменениях в проекте.
***
## Метаданные для ключей
Вы можете задавать инструкции по переводу для отдельных строк с помощью сопутствующего файла `.metadata.yaml`. Это позволяет указывать контекст, ограничения по числу символов и контекст исходного кода для конкретных ключей, не изменяя исходный файл.
```yaml title="translations.yaml"
nav:
home: "Home"
bank: "Bank"
save: "Save"
alerts:
new_lead: "You have a new lead!"
```
```yaml title="translations.metadata.yaml"
nav:
bank:
context: "Речной берег — берег реки. НЕ финансовое учреждение."
save:
context: "Спортивный термин — сейв вратаря. НЕ сохранение данных."
maxChars: 12
alerts:
new_lead:
context: "Контекст продаж/CRM. «Лид» — потенциальный клиент."
maxChars: 30
```
Не для каждого ключа нужны метаданные — добавляйте записи только для тех ключей, которым требуются конкретные указания по переводу.
Полный список поддерживаемых полей см. в [справочнике по метаданным для ключей](/docs/cli/reference/keyed-metadata).
***
## Примечания
* Вы можете автоматически добавить переводы в свой проект с помощью команды [`gt translate`](/docs/cli/translate#translate).
* Если вы хотите коммитить файлы переводов, перед коммитом следует выполнить команду `gt translate`.
* Чтобы настроить путь вывода переводов, см. документацию по [конфигурации](/docs/cli/reference/config).
* Поддерживаются расширения `.yaml` и `.yml`.
## Следующие шаги
* См. [команду `translate`](/docs/cli/translate) для подробностей по использованию CLI.
* Узнайте о [метаданных для ключей](/docs/cli/reference/keyed-metadata), которые содержат инструкции по переводу для каждого ключа.