Локальные изменения в gtx-cli@2.4.0
Обзор
В gtx-cli 2.4.0 мы добавили новый способ сохранять локальные правки переводов прямо из CLI.
Теперь вы можете вносить изменения в переводы локально, сохранять их и держать всё в синхронизации с проектом, не заходя в панель управления.
Команда save-local
Раньше единственным способом вносить правки в переводы был редактор в дашборде. Это работало, но часто выбивало из рабочего ритма, особенно если вы были в процессе разработки и просто хотели слегка подправить перевод прямо в коде.
Новая команда save-local позволяет отправлять локальные правки переводов обратно в ваш проект General Translation. Вы продолжаете работать в своём привычном окружении, а изменения остаются синхронизированными.
npx gtx-cli save-localЗапуск этой команды загружает все изменённые файлы переводов, объединяет ваши локальные правки с проектом и гарантирует, что следующий запуск translate учтёт ваши изменения.
Translate (теперь с учетом локальных изменений)
До сих пор translate всегда считал удалённую версию перевода единственным источником истины.
Если вы вносили локальные изменения и снова запускали translate, эти правки перезаписывались. Теперь это больше не так.
Теперь, когда вы запускаете:
npx gtx-cli translateCLI автоматически проверяет локальные правки и сохраняет их в фоновом режиме — так же, как это делает save-local, — перед повторной загрузкой переводов. Это гарантирует, что ваши локальные версии будут сохранены и что при повторном переводе ваши правки всегда сохранятся.
Вы увидите что‑то вроде:
Запуск перевода...
Файлы для перевода:
- src/i18n/en/common.json
- ...
◒ Обновление переводов...
◇ Переводы обновленыЧто происходит при изменении исходников
Вы можете спросить: что, если я изменю исходный файл после локальных правок перевода?
В более ранних версиях это приводило к полной перегенерации перевода, которая стирала ваши кастомные изменения.
В 2.4.0 CLI стал умнее. Даже когда обновление исходника вызывает повторный перевод, ваши предыдущие локальные правки сохраняются. Они автоматически учитываются в новом переводе.
Например, представьте, что у вас есть исходная строка:
"Я с мамой"
который был переведён как:
"Я с мамой"
Затем вы локально правите текст, чтобы использовать mamá вместо madre:
"Я с мамой"
Если вы позже измените исходник:
"Я НЕ со своей матерью"
повторный перевод по-прежнему будет сохранять выбранные вами формулировки:
"Я НЕ с мамой"
Ваша локальная формулировка сохраняется до тех пор, пока контекст остаётся актуальным.
Если смысл исходного текста полностью меняется (например, вы меняете mother на father), CLI запустит новый перевод для этого обновлённого фрагмента.
Для команд, которые управляют переводами прямо в коде, это устраняет неприятный разрыв между локальным редактированием и синхронизацией проекта. Больше не нужно выбирать между работой локально и доверием к текстам в dashboard — они остаются согласованными.
Кратко
save-localпозволяет отправлять локальные правки переводов из CLI.translateтеперь автоматически сохраняет и объединяет локальные правки.- Умная логика повторного перевода сохраняет ваши локальные изменения, пока исходный текст существенно не изменится.