Назад

Локальные правки в gtx-cli@2.4.0

Fernando Aviles avatarFernando Aviles
gtx-clisave-localtranslate

Обзор

В gtx-cli 2.4.0 мы добавили новый способ сохранять локальные правки переводов прямо из CLI. Теперь вы можете вносить изменения в переводы локально, сохранять их и держать всё в синхронизации с проектом, не открывая панель управления.


Команда save-local

Исторически единственным способом вносить правки в переводы был редактор в панели управления. Это работало, но часто нарушало рабочий процесс, особенно если вы были в процессе разработки и хотели просто подправить перевод прямо в коде.

Новая команда save-local позволяет сохранять локальные правки переводов в ваш проект General Translation. Вы остаетесь в своей рабочей среде, а изменения продолжают синхронизироваться.

npx gtx-cli save-local

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


Перевод (теперь translate учитывает локальные изменения)

До этого translate всегда считал удалённую версию перевода источником истины.

Если вы вносили локальные правки и снова запускали translate, эти правки перезаписывались. Теперь это уже не так.

Теперь, когда вы запускаете:

npx gtx-cli translate

CLI автоматически проверяет локальные правки и сохраняет их в фоновом режиме — так же, как save-local, — перед повторной загрузкой переводов. Это гарантирует, что ваши локальные версии сохранятся, а повторный перевод всегда учтёт ваши правки.

Вы увидите примерно следующее:

Starting translation...

Files to translate:
  - src/i18n/en/common.json
  - ...

  Updating translations...
  Updated translations

Что происходит при изменении исходников

У вас может возникнуть вопрос: что, если я изменю исходный файл после внесения локальных правок в перевод? В более ранних версиях это запускало полный повторный перевод, который стирал ваши собственные изменения.

В версии 2.4.0 CLI работает умнее. Даже если обновление исходника запускает повторный перевод, ваши прежние локальные правки сохраняются. Они автоматически переносятся в новый перевод.

Например, представьте, что у вас есть такая исходная строка:

"I am with my mother"

который перевели как:

"Estoy con mi madre"

Затем вы вносите локальную правку, чтобы предпочесть mamá вместо madre:

"Estoy con mi mamá"

Если позже вы измените исходный текст:

"I am NOT with my mother"

при повторном переводе выбранная вами формулировка всё равно сохранится:

"NO estoy con mi mamá"

Ваши локальные формулировки сохраняются, пока контекст остается актуальным.

Если смысл исходного текста полностью меняется (например, mother на father), CLI запустит новый перевод для этого содержимого.

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


Кратко

  • save-local позволяет отправлять локальные правки перевода через CLI.
  • translate теперь автоматически сохраняет и объединяет локальные правки.
  • Умная логика повторного перевода сохраняет ваши локальные правки, если только исходный текст не изменился по существу.