# 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), которые содержат инструкции по переводу для каждого ключа.