Keeping Git History Clean with Weblate’s Dedicated Translation Branch
Learn how to keep your main Git branch clean by using Weblate’s dedicated translation branch for continuous localization.
14 Nov 2025, 21:51 UTC

Problem: Automated translation commits clutter Git history
When Weblate pushes every translated string back to the repository as a separate commit, the main branch can quickly fill with noisy translation updates, making it harder to track functional changes.
Solution: Use a dedicated translation branch
By configuring Weblate to push to a separate branch (e.g., l10n) you keep the main development branch clean while still benefiting from continuous localization.
1. Configure the component
- In the Weblate admin interface, open the component settings.
- Set Source repository to your project's Git URL.
- Set Branch to
l10n(or any name you prefer). - Under Push URL, enter the same repository URL; Weblate will push to the branch defined above.
- Optionally adjust Commit message and Author fields to include a consistent prefix like
[Weblate].
2. Enable automatic pull
Weblate can periodically pull from the main branch to keep translations up‑to‑date when source strings change.
- Go to Add‑ons → Repository pull.
- Set the URL to the main branch (e.g.,
main) and choose a schedule (e.g., every 15 minutes). - Make sure the add‑on runs with sufficient permissions to fetch from the repository.
3. Merge translations back
When the translation branch is ready, create a pull request or merge request into main. Resolve any conflicts that arise from parallel edits.
Trade‑off and limitation
Maintaining an extra branch adds a small overhead: you must remember to merge translations regularly, and large translation files can still cause performance hits during the push/pull cycle. Monitoring the size of the l10n branch and setting a reasonable push frequency (e.g., once per hour) helps mitigate these issues.
Actionable checklist
- Create the
l10nbranch in your Git repository (if it does not exist). - In Weblate, set the component’s branch to
l10nand save. - Verify a test translation edit appears as a commit on
l10n(check the repository UI or rungit log origin/l10n). - Configure the Repository pull add‑on to sync source string changes from
maininto Weblate. - Schedule a regular merge of
l10nintomain(e.g., weekly) and rungit merge --no-ff l10nto preserve history.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.