Локализация по веткам Git

Локализация по веткам — это процесс, при котором строки каждой ветки репозитория переводятся отдельно и возвращаются именно в ту ветку, из которой пришли. Так разработчики могут создавать, объединять и откатывать ветки, а перевод идет параллельно без ручной пересылки файлов.

3 мин чтения

Зачем локализация привязана к веткам

В Git новые функции разрабатывают в отдельных ветках и объединяют с основной после проверки. Новая функция приносит новые строки интерфейса, и их нужно перевести до релиза. Если переводы привязаны только к основной ветке, команда ждет объединения и теряет время. Если же строки каждой ветки переводятся на месте, перевод готов к моменту объединения, и релиз выходит вместе с локализацией.

Как работает перевод по веткам

Типичная схема выглядит так. Разработчик создает ветку и добавляет в нее новые строки. Инструмент синхронизации, например Serge, находит изменения и передает их на платформу перевода. Переводчики работают с этими строками в редакторе, а готовые переводы возвращаются в файлы той же ветки. Когда ветку объединяют с основной, вместе с кодом попадают и переводы.

Чтобы схема работала, строки должны храниться в файлах репозитория, например в PO-файлах или XML, и иметь стабильные идентификаторы. По этим идентификаторам система отличает новые и измененные строки от уже переведенных.

Какие риски есть у локализации по веткам

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

Третий риск — дублирование. Одни и те же строки в разных ветках не должны переводиться заново: память переводов подставляет уже готовые варианты и снижает объем нового текста.

Как настроить локализацию по веткам

Проверьте всю цепочку на тестовой ветке: создание ветки, добавление строк, перевод, возврат и объединение, а также откат. Затем определите правила: из каких веток строки уходят на перевод, кто подтверждает готовность и что происходит со строками отклоненных веток. Подключите автоматизацию в рамках процесса CI/CD, чтобы переводы подтягивались в сборку без ручных действий.

Платформа перевода работает с такой схемой через связку с инструментом синхронизации в процессе непрерывной локализации программного обеспечения. Подробнее — на странице Платформы перевода.

Частые ошибки

Типичные ошибки — отправка на перевод всех веток подряд, из-за чего оплачиваются строки, которые не попадут в релиз; отсутствие общих правил именования ключей, из-за которого разные ветки создают дубликаты; запуск без тестовой ветки; отсутствие ответственного за состояние переводов в основной ветке. Еще одна проблема — потеря контекста: переводчик не знает, к какой функции относится строка.

FAQ

Что такое локализация по веткам?

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

Нужно ли переводить все ветки?

Не обязательно. Чтобы не тратить средства на строки, которые не попадут в релиз, переводят ветки, прошедшие проверку.

Как избежать конфликтов при объединении?

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

Заменяет ли память переводов работу с ветками?

Нет, но она снижает затраты: повторяющиеся строки из разных веток подставляются автоматически.

Что нужно для запуска?

Строки в репозитории, интеграция с платформой перевода и проверенная на тестовой ветке цепочка.

Попробуйте на практике

Глоссарии, память переводов и контроль качества уже есть в Платформе перевода.