All Collections
How to use branching in Lingohub?
How to use branching in Lingohub?
Updated over a week ago

Note: The branching feature is only accessible for Git and Contentful integrations.

The Lingohub branching is a tool for working with different Git branches during localization. With the Lingohub branching feature, you can:

  • Work with multiple project versions. You can have as many versions of the text segment as you need. For example, "navigation.button" in the "main" branch might be translated as "Sign up to the app," whereas in the "feature_2" branch, it could be "Sign up to Lingohub." Additionally, texts can be added or removed in other branches without affecting the main branch.

  • Synchronize translation with the development. You can manually or automatically synchronize any new development branch with Lingohub so that translation can happen in parallel with the development process.

  • Isolate translation of the specific part of the project. Branching allows you to work with specific project parts without affecting others. For example it can be useful when you want to do the A/B tests of some pages or features translations.

To sum up, with the branching feature, you can:

  • Switch between different versions of your project;

  • Keep the entire project clean by working on separate translations without compromising the main content;

  • Organize the non-stop translation process by allowing the translation team to work in parallel with the development team;

  • Combine all the content management inside one project, even if you need to use different languages for different parts of the development project.

How to enable branching in Lingohub

To use the branching feature, you must first configure at least one of the workspace plugins - GitHub, GitLab, Bitbucket, or Azure. Afterward, you can set up the GIT integration in the project and use branching.

The branching is unavailable for project types such as Figma, Zendesk, Storyblok, etc., as these projects aren't connected to the repositories but work directly with the appropriate application.

By default, the branching feature is disabled. To enable branching, you should first set up the Git integration plugin.

  1. Go to the needed project inside the workspace and click “Plugins.

  2. Click “Manage” on the “Git integration” plugin.

  3. On the Git integration management page, select the authentication (Azure, Bitbucket, GitLab, GitHub), add the link to the repository, and type the branch name, which will be used as a default.

  4. You can add the path filters to define which branches and files will be synchronized with Lingohub from the start. Remember that Lingohub synchronizes only those files whose types correspond to the project type. For example, only JSON files will be synchronized for a project with a JSON type.

  5. Click "Setup repository."

Upon configuring the Git integration, you can activate branching by selecting "Enable branching." All filtered branches will be accessible by clicking on the branches button positioned at the top of the page.

How to filter branches inside the project?

Filtering branches allows you to keep only the necessary branches in your project, ensuring that the translation team can access the correct content. This option allows one to focus on translating the most relevant or essential branches, optimize resource allocation, and keep translations aligned with the development process. For example, with filters, you can prioritize the content. Filter the texts that are more important or close to release.

To filter branches:

  1. Go to the Git integration management page.

2. At the “Branch filters” section, click "Add filter" and type the value to include or exclude needed branches. You can add multiple filters to clarify the result.

Also, you can use the regular expressions for wider filtering options; for example, the /config/resources/locales/** will match all directories under the locales directory. Find the advanced list of regular expressions in the table below.





matches one character

t?st.json - matches test.json but also tast.json or txst.jsp


matches zero or more characters

*.json matches all .json files in the directory


matches zero or more directories in a path

config/**/test.yml matches all test.yml files under the config directory


matches the regex [a-z]+ as a path variable named "folder"

config/resources/locales/{folder:[a-z]+}.yml will match config/resources/locales/test.yml, but not config/resources/modules/test.yml

3. After creating filters, click "Synchronize."

Note: you should synchronize the branches when updating the filters every time. Otherwise, the branches list will not be updated.

How to work with different branches inside Lingohub?

You can monitor the progress of the different branches within the project by visiting the project page. You can see in the image below the overview of two separate branches inside 1 project.

You can also fully take advantage of branching in the editor. Using the editor filters, select the branch(es) you want to work with to get a list of segments.

Note: if you can’t find the needed branch in the list, recheck your resource filters in the Git integration settings and make sure you have synchronized your matched branches.

Awesome! You finished the article about branches. If you have any questions, please contact our support.

Did this answer your question?