Situation
We encounter a lot of merge problems when Weblate creates a PR to give us translations, because we have all the resource files in the repository, and all of them can be modified during development. Thanks to Visual Studio (editor) applying changes to all those files.
Goal
A clean workflow, where we automate what we can, to prevent merge conflicts, and a smooth and safe way to include translations in the build. In short: remove all translations from the repo, let Weblate handle translations, let CI Build pull them when needed.
Workflow
- GitHub Repository Setup
1.1 Keep only English resources in the repo
1.2 Add .gitignore rule to prevent translated files from being committed
1.3. Add a Git pre-commit hook to block accidental edits
1.4. Document the rule: “Developers edit only en-US”
- Weblate Setup
2.1. Create Weblate components (see comment below)
2.2. Set Weblate to track the active development branch
2.3. Enable authoritative translation mode
2.4. Disable Weblate PRs
2.5. Set target languages (Weblate → Project → Languages)
- CI Pipeline Setup (GitHub Actions or Azure DevOps)
3.1. Add a step to download translations from Weblate
3.2. Copy translations into the build folder
3.3. Build the app with translations included
3.4. Package and publish
- Release Workflow
4.1. When releasing a new version
4.2. Switch Weblate to the new development branch
- Optional Enhancements
- Cache translations in CI
Avoid hitting Weblate API too often
- Add a “translation status” badge
- Add automated checks
Fail build if English .resw is malformed.
- Add a local script to pull translations from Weblate
To be able to test languages locally
💬 Full conversation: https://copilot.microsoft.com/conversations/join/y4WVraaV3yAJ3w59LsULq
📝 Full list: Translation Workflow.pdf
🔗 Link: https://hosted.weblate.org/projects/auto-dark-mode/
Situation
We encounter a lot of merge problems when Weblate creates a PR to give us translations, because we have all the resource files in the repository, and all of them can be modified during development. Thanks to Visual Studio (editor) applying changes to all those files.
Goal
A clean workflow, where we automate what we can, to prevent merge conflicts, and a smooth and safe way to include translations in the build. In short: remove all translations from the repo, let Weblate handle translations, let CI Build pull them when needed.
Workflow
1.1 Keep only English resources in the repo
1.2 Add .gitignore rule to prevent translated files from being committed
1.3. Add a Git pre-commit hook to block accidental edits
1.4. Document the rule: “Developers edit only en-US”
2.1. Create Weblate components (see comment below)
2.2. Set Weblate to track the active development branch
2.3. Enable authoritative translation mode
2.4. Disable Weblate PRs
2.5. Set target languages (Weblate → Project → Languages)
3.1. Add a step to download translations from Weblate
3.2. Copy translations into the build folder
3.3. Build the app with translations included
3.4. Package and publish
4.1. When releasing a new version
4.2. Switch Weblate to the new development branch
Avoid hitting Weblate API too often
Fail build if English .resw is malformed.
To be able to test languages locally
💬 Full conversation: https://copilot.microsoft.com/conversations/join/y4WVraaV3yAJ3w59LsULq
📝 Full list: Translation Workflow.pdf
🔗 Link: https://hosted.weblate.org/projects/auto-dark-mode/