Automatically exchange language files between GitLab and Lokalise, so you can import and export content as soon itās readyāand keep software up to date in every language.
Lokalise is loved by tech teams at 3000+ global companies
Kate Cobb
Senior Full Stack Engineer

Translate your software with just a few clicks.
Auto-pull files when you push changes to GitLab, and instantly create keys in Lokalise, ready for localization.
Always be confident youāre working on the most up-to-date file versions, reducing the risk of bugs and errors.
Manage when and how you exchange information with webhooks and keep track of localization tasks.
Eliminate time-consuming manual key entry, reducing localization errors, and ship multilingual releases faster.
Go to the āAppsā dashboard inside Lokalise
Search for GitLab and click Install
Copy/paste your personal access token from GitLab and your host URL (usually it's just https://gitlab.com).
Enter your Project ID and Branch to pull from. Optionally, provide a Project name.
A personal access token from GitLab
Youāll need to create a web and mobile project in Lokalise

Pull your files from GitLab into Lokalise to automatically create keys for all languages that have been selected in Lokalise.

Merge files to a selected branch on GitLab. Go to the Download tab, choose your file format, and hit Build.
āBefore Lokalise, it took developers at least half a day to manage the translations and add new keys, whereas, with Lokalise in place, they spend about 80ā90% less time on the same tasks.ā
Sylvia Taube
Senior Product Manager at Indeavor
āThe infrastructure and the architecture of the tool are really good. We can simply create tasks and then the translators do the rest. Also, the whole process of project management is simplified quite a lot.ā
AleÅ” Ruter
Chief Creative Officer
āBefore Lokalise, it took developers at least half a day to manage the translations and add new keys, whereas, with Lokalise in place, they spend about 80ā90% less time on the same tasks.ā
Sylvia Taube
Senior Product Manager at Indeavor
āThe infrastructure and the architecture of the tool are really good. We can simply create tasks and then the translators do the rest. Also, the whole process of project management is simplified quite a lot.ā
AleÅ” Ruter
Chief Creative Officer
Set up a webhook at GitLab to automate pulls to Lokalise as you push changes to GitLab. In GitLab, navigate to Settings>Webhooks>Add webhook. Copy/paste the Auto-pull URL and Auto-pull secret from Lokalise into GitLab. Finally, enable the Push events trigger.

Exchange translation files between GitLab and Lokalise.
How do I create a Pull Request (PR)?
To create a new pull request on GitLab with all the changes made on Lokalise, proceed to the Download page and find the App triggers section. Enable the GitLab option and choose your repository. If the Repository name has been provided during the initial setup, you'll see it in the dropdown. Use the Preview button first, so you can see the resulting file/folder structure before triggering the creation of a pull request. We recommend triggering pull requests only to the repos of the platform that match the file type you are exporting, i.e. if you are exporting in a JSON format, Lokalise will only create pull requests in repositories with the Web platform. To create a pull request on GitLab, hit Build only (this way you won't download a translation bundle to your local PC). To check the status of the pull request creation, return to the GitLab app page and click the Logs button.
How do I create a personal access key in GitLab to use in Lokalise?
Proceed to GitLab. Click on your avatar in the top right corner and click Preferences. Check that you have permissions for project administration and setting management. Next, click Access tokens, click Add new token, enter the new token's name and enable the API scope. Click Create personal access token. Copy the token as you won't be able to view it after closing the page.
I have updated strings in my GitLab file, but the values are not updating on Lokalise. What am I doing wrong?
Make sure that the ''Replace modified values'' option is enabled in the pull settings. You can read more about all the upload parameters in the Upload files article.
How do I make sure the file structure in PR matches the file structure in my repository?
To match the right structure of your files, you have to name files properly and select the right options when creating a PR. This is easy when enabling "Include full path in the filenames" in the general GitLab app settings in Lokalise. Then during download, select "Multiple files per language (use assigned filenames)", and modify or delete the prefix. Please check the Filenames article for reference.
I have key names that repeat across files. How can I support repeated key names in Lokalise?
To support repeated key names in Lokalise, make sure that the "Differentiate keys by file" option is enabled in the appās pull settings.
Why does Lokalise request access to all my repositories?
Lokalise requests access to all repositories to list them during setup so you can specify which repository to connect to Lokalise. There is no more restrictive OAuth scope for this purpose. Once the app is configured, Lokalise only works with the repository you selected.
What actions does the app use the OAuth token for?
Lokalise only creates merge requests and fetches the files you selected during setup. The Lokalise GitLab app does not alter the repoās settings.
Is there any way to restrict the app's permissions?
GitLab user permission scopes limit access for OAuth tokens. The Lokalise appās access is limited by the permissions of the user who configures the integration. If you need to limit the integrationās access to a specific repository, you can do so by limiting the permissions of the authorizing userās GitLab account.
GitLab users can always revoke a token or edit the token scopes for more control over what the integration can do.
How is my access token stored?
Your token is stored in an encrypted form in our database. The database itself is stored on dedicated servers at the Hetzner Online provider, which ensures top-level physical security. You can learn more on the Hetzner website.
We take regular snapshots of the database and store them in a 256-bit encrypted Amazon S3 bucket for 30 days.

Behind the scenes of localization with one of Europeās leading digital health providers
Read more Case studies
Localization workflow for your web and mobile apps, games and digital content.
©2017-2026
All Rights Reserved.