Зачем локализация привязана к веткам
В Git новые функции разрабатывают в отдельных ветках и объединяют с основной после проверки. Новая функция приносит новые строки интерфейса, и их нужно перевести до релиза. Если переводы привязаны только к основной ветке, команда ждет объединения и теряет время. Если же строки каждой ветки переводятся на месте, перевод готов к моменту объединения, и релиз выходит вместе с локализацией.
Как работает перевод по веткам
Типичная схема выглядит так. Разработчик создает ветку и добавляет в нее новые строки. Инструмент синхронизации, например Serge, находит изменения и передает их на платформу перевода. Переводчики работают с этими строками в редакторе, а готовые переводы возвращаются в файлы той же ветки. Когда ветку объединяют с основной, вместе с кодом попадают и переводы.
Чтобы схема работала, строки должны храниться в файлах репозитория, например в PO-файлах или XML, и иметь стабильные идентификаторы. По этим идентификаторам система отличает новые и измененные строки от уже переведенных.
Какие риски есть у локализации по веткам
Первый риск — конфликты при объединении. Если две ветки меняют один и тот же файл ресурсов, при слиянии возникает конфликт. Помогает общая структура файлов и порядок строк, а также автоматическая обработка случаев, когда исходный файл меняется, пока старая версия еще переводится. Второй риск — лишние затраты: строки из веток, которые так и не будут объединены, переводить не нужно. Поэтому многие команды запускают перевод только после одобрения строк, например при объединении с промежуточной веткой.
Третий риск — дублирование. Одни и те же строки в разных ветках не должны переводиться заново: память переводов подставляет уже готовые варианты и снижает объем нового текста.
Как настроить локализацию по веткам
Проверьте всю цепочку на тестовой ветке: создание ветки, добавление строк, перевод, возврат и объединение, а также откат. Затем определите правила: из каких веток строки уходят на перевод, кто подтверждает готовность и что происходит со строками отклоненных веток. Подключите автоматизацию в рамках процесса CI/CD, чтобы переводы подтягивались в сборку без ручных действий.
Платформа перевода работает с такой схемой через связку с инструментом синхронизации в процессе непрерывной локализации программного обеспечения. Подробнее — на странице Платформы перевода.
Частые ошибки
Типичные ошибки — отправка на перевод всех веток подряд, из-за чего оплачиваются строки, которые не попадут в релиз; отсутствие общих правил именования ключей, из-за которого разные ветки создают дубликаты; запуск без тестовой ветки; отсутствие ответственного за состояние переводов в основной ветке. Еще одна проблема — потеря контекста: переводчик не знает, к какой функции относится строка.
FAQ
Что такое локализация по веткам?
Это перевод строк отдельной ветки репозитория с возвратом готовых переводов в ту же ветку.
Нужно ли переводить все ветки?
Не обязательно. Чтобы не тратить средства на строки, которые не попадут в релиз, переводят ветки, прошедшие проверку.
Как избежать конфликтов при объединении?
Используйте единую структуру файлов, стабильные ключи и инструмент синхронизации, который обрабатывает изменения исходных файлов во время перевода.
Заменяет ли память переводов работу с ветками?
Нет, но она снижает затраты: повторяющиеся строки из разных веток подставляются автоматически.
Что нужно для запуска?
Строки в репозитории, интеграция с платформой перевода и проверенная на тестовой ветке цепочка.