# General Translation Changelog: gtx-cli 2.3.0: Более быстрые и надёжные запуски перевода
URL: https://generaltranslation.com/ru/blog/gtx-cli_v2_3_0.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 
Authors: Fernando Aviles
Published: 2025-09-12

## Обзор

В **gtx-cli 2.3.0** мы обновили поведение команд [`translate`](/docs/cli/reference/commands/translate) и [`upload`](/docs/cli/reference/commands/upload), а также сделали процесс перевода более наглядным.

***

## Перевод

Исторически [`translate`](/docs/cli/reference/commands/translate) не только запускал переводы, **но и** в фоновом режиме выполнял разовую настройку проекта (генерируя контекст и глоссарий, которые вы видите на [панели управления](https://generaltranslation.com/dashboard/project/context)).

На небольших проектах это происходило быстро; в крупных кодовых базах настройка могла занимать достаточно много времени, чтобы срабатывал тайм-аут, из-за чего казалось, что перевод завершился с ошибкой.

Хотя у пользователей создавалось впечатление, что [`translate`](/docs/cli/reference/commands/translate) не сработал, настройка асинхронно завершалась, а переводы создавались, но не скачивались, что приводило к неполному и запутанному UX.

### Настройка

Теперь настройка выполняется как отдельный шаг. Мы оптимизировали его так, чтобы тайм-ауты случались редко.

Но поскольку мы понимаем, что настройка всё же может завершиться с ошибкой, перевод больше не «зависит» от того, завершилась ли настройка. Теперь процесс выглядит примерно так:

* **Загрузка:** отправьте файлы и убедитесь, что загрузка прошла успешно.
* **Настройка (только при необходимости):** запустите задачу настройки и дождитесь завершения; если она завершится ошибкой или по тайм-ауту, мы всё равно продолжим.
* **Перевод:** создайте задачи перевода на основе файлов, которые вы уже загрузили.

Если настройка завершится вовремя — отлично. Если она завершится с ошибкой или по тайм-ауту, мы продолжим и сообщим, что произошло. Переводы вы всё равно получите.

Что вы увидите при запуске `npx gtx-cli translate`:

```bash
Starting translation...

Files to translate:
  - your/file/path.mdx
  - ...

Uploading files to General Translation API...
✔ Files uploaded successfully

Setting up project...

# Если настройка прошла успешно
Setup successfully completed.

# Если настройка завершилась по таймауту
⚠ Setup timed out — proceeding without setup: Timed out while waiting for setup generation

# Если настройка завершилась с ошибкой
⚠ Setup failed — proceeding without setup: <error message>

# В любом случае продолжаем перевод
Creating 12 translation(s)
[0/12] translations completed
your/file/path.mdx [es]
```

Благодаря этому изменению мы теперь можем гарантировать, что переводы будут создаваться даже в редком случае сбоя при настройке.

Кроме того, так вам будет проще понять, как и где мы генерируем контент, влияющий на ваши переводы, а также без опасений добавлять новые шаги настройки, поскольку они уже не смогут помешать процессу перевода.

***


## Загрузка

Мы также сделали [`upload`](/docs/cli/reference/commands/upload) более гибкой. В предыдущих версиях предполагалось, что вы всегда отправляете исходный файл вместе с переводами. Но такой сценарий подходит не для всех процессов. Теперь вы можете:

* Загружать **только исходные файлы** (без переводов).
* Загружать **исходные файлы и переводы вместе**.

Мы по-прежнему автоматически определяем переводы по структуре репозитория и конфигурации. После загрузки файлы сразу появятся в вашей [панели управления](https://generaltranslation.com/dashboard/project/translations).

Если ваш `gt.config.json` выглядит так:

```json
{
  "defaultLocale": "en",
  "locales": ["es", "fr"],
  "files": {
    "json": { "include": ["src/i18n/en/**/*.json"] }
  }
}
```

При запуске `npx gtx-cli upload`:

```bash
# Только исходные файлы (локальные переводы не найдены):
Starting upload...

Files to upload:
  - src/i18n/en/common.json -> es, fr
  ...

Uploading 1 file(s) to General Translation...
✔ Files uploaded successfully

Done!

# В вашей панели управления вы увидите:
#   src/i18n/en/common.json
# без соответствующих переводов.
```

Если локальные переводы присутствуют и были обнаружены автоматически:

```bash
Начало загрузки...

Файлы для загрузки:
  - src/i18n/en/common.json -> es, fr

Загрузка 3 файла(ов) в General Translation...
✔ Файлы успешно загружены

Готово!

# В панели управления вы увидите:
#   src/i18n/en/common.json
# а также переведённые версии на испанском и французском в выпадающем списке локалей.
```

Если файл перевода для локали отсутствует, мы загружаем исходный текст и пропускаем эту локаль.

Если у вас есть локальные переводы, но вы хотите загрузить только исходные файлы, удалите locales из `gt.config.json` перед запуском [`upload`](/docs/cli/reference/commands/upload):

```json
{
  "defaultLocale": "en",
  "locales": [],
  "files": {
    "json": { "include": ["src/i18n/en/**/*.json"] }
  }
}
```

### При загрузке существующие переводы перезаписываются

> **Важно:** При запуске [`upload`](/docs/cli/reference/commands/upload) любой переведенный файл, который мы обнаружим и загрузим для указанной пары файл/локаль, **заменит** текущие данные для этой пары файл/локаль.
>
> * Чтобы загрузить только исходные файлы, удалите целевые локали из `gt.config.json` перед запуском [`upload`](/docs/cli/reference/commands/upload).
> * Если вам нужно сначала проверить изменения, используйте отдельный проект или экспортируйте текущие переводы перед загрузкой.
> * Отсутствующие переводы пропускаются; имеющиеся переводы заменяются.

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
