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

Maintain an agile localization process and avoid translation delays for added texts or new product features. Integrate your project branches with Crowdin and allow translators to immediately access all new texts.


When several people are working on product development, branches help to manage different versions of the content. If you have a continuous project you can add project branches to Crowdin and allow translators to translate the texts right in parallel with development to avoid deployment delays.

Branch in Crowdin looks like a regular folder marked with a special icon and has specific behavior for duplicated strings.
The example of a files structure in the version control system (VCS) and Crowdin:

Branch Creation

Note! First files you upload to Crowdin project must contain all the original strings and should be placed in the corresponding branch. For all article examples a branch with original texts is named Master.

There are few ways to add branches to Crowdin:

  • Integrate Crowdin projects with GitLab, GitHub, or Bitbucket. It’s a recommended option, as branches selected for localization in your version control system (VCS) will be created in Crowdin automatically
  • Use CLI or API to add new branches
  • Create branches manually by going to Content > Files > New Version Branch
Branch Creation using 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}*.

Branch Management using CLI

There is no need to run a specific command to create version branches if the CLI is used. Ветвь версии будет создана автоматически при загрузке файлов. Пример загрузки исходных файлов / переводов в указанную ветку версии:

$ crowdin upload sources -b branch_name

$ crowdin upload translations -b branch_name


Because branches are the different versions of the same product feature, the localization content in them is usually duplicated. To help translators translate versions consistently and avoid additional translation costs, we have the Show within a version branch option that allows hiding duplicated strings only between versions. If your source files contain strings with apparent identifiers (keys), it’s better to use a strict version of this option. In other cases, feel free to use a regular one.

When this option is selected, only the original strings that were first uploaded to the system should be translated. All duplicated strings will automatically gain the translations from the original strings.


Suggested Workflow

To make sure versions work smoothly for your Crowdin project, we recommend the following workflow:

  1. Upload your project files to Crowdin project using one of the methods available.
  2. Open your project and go to the Settings tab.
  3. Scroll down to the Translations > Duplicate Strings and choose the option recommended for versions.

The screenshot below visualizes how the workflow works in practice. All texts from Master, Branch 1 and Branch 2 are transferred to the translation server immediately after they appear, even though the branches are not merged to the Master branch yet.

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

Translations from all version branches are placed in one ZIP archive when they are downloaded through the web interface. Use the CLI or API to download the translations for each branch individually.

Translations Export using 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}
Translations Export using CLI

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

$ crowdin download -b branch_name

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

The Master branch will contain new texts from the Feature branches as soon as they are merged. While synchronizing with Crowdin, all of the texts in the Master branch are populated with translations from the appropriate branch.

After synchronization of the updated Master branch with Crowdin, the Feature branch can be removed from Crowdin. All translations stored in the Master branch will remain.

Branch Translation Verification

You can verify translations on production using only Feature branch before changes are merged with your Master branch. Such Test Deploy gives you an option of quick revert to the original Master branch version if needed.

Полезная информация

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