# 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).