# gt: General Translation CLI tool: PO / POT URL: https://generaltranslation.com/ru/docs/cli/formats/po.mdx --- title: PO / POT description: Как автоматически переводить файлы PO/POT с помощью General Translation --- ## Обзор `gt` можно использовать для автоматического перевода файлов [PO (Portable Object)](https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html) и POT (PO Template) в вашем проекте. Это стандартные форматы файлов, используемые [GNU gettext](https://www.gnu.org/software/gettext/), одной из старейших и самых распространённых систем интернационализации. Файлы POT содержат исходные строки, извлечённые из кода, а файлы PO — переводы для конкретной локали. Мы выполним следующие 4 шага: Добавьте переменные окружения Установите [`gt`](/docs/cli) Создайте файл `gt.config.json` Запустите [`gt translate`](/docs/cli/translate#translate) *** ## Шаг 1: Добавьте переменные окружения Добавьте в переменные окружения production 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` в root проекта. ```json title="gt.config.json" { "defaultLocale": "en", "locales": ["zh", "es", "ja"], "files": { "pot": { "include": ["locales/[locale]/*.pot"], "transformationFormat": "PO" } } } ``` При необходимости настройте файл `gt.config.json` под свои задачи. Подробнее см. в docs по [конфигурации](/docs/cli/reference/config). Обновите формат файла `pot`, чтобы путь `include` соответствовал структуре вашего проекта. Параметр `transformationFormat` указывает `gt` выводить переведённые файлы в формате `.po`, а не `.pot`. Это стандартный рабочий процесс: файлы POT — это исходные template, а файлы PO содержат сами переводы для каждой локали. **Примечание:** Переводы сохраняют исходный синтаксис строк PO/POT. ## Шаг 4: Добавьте команду `gt translate` в процесс build Добавьте команду `gt translate` в процесс build или CI перед командой build, чтобы переводы автоматически добавлялись в проект. ```json title="package.json" { "scripts": { "translate": "npx gt translate", "build": "npm run translate && " } } ``` Это сгенерирует переводы для всех ваших локалей и сохранит их в проекте. Если вы хотите сделать commit этих файлов в репозиторий, вместо этого выполните эту команду перед commit. Готово! Теперь ваш проект будет автоматически обновлять все файлы перевода PO/POT при любых изменениях в проекте. *** ## Примечания * Вы можете автоматически добавить переводы в свой проект с помощью команды [`gt translate`](/docs/cli/translate#translate). * Если вы хотите сделать commit файлов перевода, вам следует запустить команду `gt translate` перед тем, как делать commit. * Чтобы настроить путь вывода для ваших переводов, см. docs по [конфигурации](/docs/cli/reference/config). * В `gt.config.json` в качестве ключа конфигурации принимаются оба варианта: `pot` и `POT`. ## Что дальше * Подробнее об использовании CLI см. в разделе [команда `translate`](/docs/cli/translate). * Подробнее об инструкциях по переводу для отдельных ключей см. в разделе [метаданные для ключей](/docs/cli/reference/keyed-metadata).