Управление версиями

Локализация, не задерживающая релиз

Скорее всего, самая большая проблема непрерывной локализации в том, что довольно часто приходится отложить релиз приложения до момента перевода всех новых текстов. Управление версиями в Crowdin значительно сокращает задержки. Эта функция также очень полезна для проектов с несколькими версиями.

Типичный процесс локализации приложения

Наиболее популярный подход локализации приложений выглядит следующим образом:

  • Разработчики работают над изменениями в собственной ветке;
  • Ветка объединяется с master или другой предрелизной веткой, похожей на master и остается там до момента полного перевода всех новых текстов.

Проблема №1

В большинстве случаев, приложение разрабатывается одновременно несколькими разработчиками. Они работают в разных ветках системы контроля версий (GIT). Классический процесс локализации выглядит следующим образом: новые тексты загружаются из master ветки на сервер перевода.

Все тексты из ветки №1 и ветки №2 отправляются на сервер перевода только после их объединения с master веткой, вместо того чтобы переводиться сразу.

Решение

При новом подходе перевод может начаться сразу после появления новых текстов в любой из ветвей кода. Когда ветвь функции объединяется с предварительным выпуском или *мастер/0> веткой, переводы на новые тексты будут готовы к развертыванию.</p>

Реализация в Crowdin

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

Начать пользоваться

Чтобы включить функцию перевода веток в вашем проекте, измените следующий параметр на Вкладке Общее пункта Настройки проекта.

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

Создание версии ветки

В общем, ветка в Crowdin - это обычный каталог, помеченный специальным значком и поведением с дублированными строками. Ветки могут быть созданы через вкладку файлы пункта Настройки проекта или через [API]/ [инструмент синхронизации] (рекомендуется).

Если вы используете GitHub, Bitbucket или другую интеграцию VCS, выбранные для локализации ветви будут созданы в Crowdin автоматически.

Пример структуры файлов в системе контроля версий и Crowdin:

Внимание! Корневой каталог проекта также ведет себя с дубликатами как отдельная ветвь версии. Например, вы можете хранить файлы master непосредственно в корне проекта, не помещая их в отдельный каталог, помеченный как ветка версии.

Создание веток через API

Чтобы создать ветку через API, используйте метод Add Directory с параметром * is_branch = 1*:

POST https://api.crowdin.com/api/project/{project-identifier}/add-directory?key={project-key}&name={branch_name}&is_branch=1

Добавить файл, Обновить файл, Загрузить переводы и другие методы, которые манипулируют файлами и папками, работают с параметром * branch ={branch_name}*.

Управление ветвями с помощью инструмента синхронизации

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

$ crowdin upload sources -b branch_name

$ crowdin upload translations -b branch_name

Экспорт переводов

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

Экспорт переводов через API

Чтобы экспортировать переводы из указанной версии ветки:

GET https://api.crowdin.com/api/project/{project-identifier}/export?key={project-key}&branch={branch_name}

Скачать переводы из указанной ветки версии:

GET https://api.crowdin.com/api/project/{project-identifier}/download/{package}.zip?key={project-key}&branch={branch_name}

Экспорт переводов через инструмент синхронизации

Скачать переводы из указанной ветки версии:

$ crowdin download -b branch_name

Слияние ветвей

После завершения разработки функции инженер объединяет ветку версий с мастер веткой в VCS. Следовательно, мастер * ветка будет содержать новые тексты из ветки *функции. При синхронизации с Crowdin все тексты в мастер ветке заполняются переводами, сделанными ранее в соответствующей ветке.

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

Рекомендуемый рабочий процесс

Новый рабочий процесс Crowdin рекомендует реализовать:

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

Рабочий Процесс GitHub & Crowdin

Вы можете развернуть свои изменения в ветке функции для проверки их на производстве.

Была ли эта статья полезной?