Migrating to Weblate¶
Are you using a different localization platform and considering switching to Weblate? This guide provides a quick, step-by-step process to help you migrate your translation project from platforms like Transifex, Crowdin, Lokalise, or similar services.
Weblate is designed around continuous localization with Git integration at its core, making it ideal for teams that want to keep translations close to their development workflow.
See also
Starting with internationalization for choosing the right internationalization framework
Integrating with Weblate for detailed integration options
Continuous localization for setting up automated workflows
Prerequisites¶
Before starting your migration, ensure you have:
On your localization platform:
Access to export your translation files
List of translators and their roles/permissions
Understanding of your current workflow (review process, automation, etc.)
For Weblate:
A Weblate instance (either Hosted Weblate or self-hosted)
Admin or project creation permissions on your Weblate instance
Prepare your translation files¶
Export translations from your current platform¶
Most localization platforms allow you to export all translations at once:
Transifex: Use their CLI tool or download translations from the web interface
Crowdin: Export all translations as a ZIP file from project settings
Lokalise: Use the bulk export feature
Phrase: Download all locales from the project dashboard
Hint
Keep your translation files in the format native to your internationalization framework (PO, XLIFF, JSON, etc.) rather than converting them. Weblate supports many formats.
Commit translations to your Git repository¶
Hint
If you would rather not store translations in an external Git repository, you can skip this step and use the Upload translation files option when creating a component.
If your translations aren’t already in Git:
Create a Git repository or use your existing project repository
Organize translation files following your project structure
Commit and push the files to your Git hosting service (GitHub, GitLab, Bitbucket, etc.)
git add locales/
git commit -m "Add translation files for Weblate migration"
git push origin main
See also
Continuous localization for optimal repository structure
Version control integration for supported version control systems
Import your project into Weblate¶
Create a new project¶
Navigate to your Weblate instance.
Click Add new translation project in the + menu.
Fill in your project details:
Project name: Your application or project name
URL slug: Short identifier (e.g.,
myapp)Project website: Your project homepage (optional)
See also
Adding translation projects and components for detailed project creation instructions
Add a component from your Git repository¶
After creating the project, click Add new translation component
Select From version control
Configure your component:
Component name: e.g., “Application strings”, “Website”, “Documentation”
Repository URL: Your Git repository URL (HTTPS or SSH)
Repository branch: Optional: Specify repository branch (Weblate automatically detects the default branch if not specified)
Weblate will automatically detect:
Translation file format
Available languages
Source language
Review and confirm the detected settings
Hint
For repositories with multiple translation components (e.g., separate files for backend, frontend, documentation), create a separate Weblate component for each.
You can speed this up using From existing component for shared repositories or Component discovery to automatically create them.
See also
Component configuration for all configuration options
Bilingual and monolingual formats for understanding monolingual vs. bilingual formats
Configure your workflow¶
Set up access control¶
Choose your project’s visibility and access level:
Go to your project settings: Operations → Settings → Access tab
Select the appropriate access control:
Public: Open-source projects, anyone can contribute
Protected: Visible to all, but only invited users can translate
Private: Only invited users can view and translate
See also
Managing per-project access control for detailed access control configuration
Set up continuous localization¶
Enable automatic updates and commits:
Configure repository integration:
Pull changes: Set up a webhook so Weblate updates when your source code changes
Push changes: Configure Pushing changes from Weblate so translations are committed back to your repository
Enable automatic actions in component settings:
Push on commit: Automatically push translations to your repository
Commit interval: Set how often pending translations are committed (e.g., every 24 hours)
See also
Continuous localization for complete workflow automation
Configure quality checks and workflows¶
Customize translation quality controls:
Enable checks: Review Quality checks and enable any opt-in quality checks you need.
Set up review workflow: Enable Enable reviews if you want an approval process.
Add enforced checks: Configure which quality checks should block translations.
Optional: Enable add-ons¶
Weblate offers Add-ons to automate common tasks:
Update PO files to match POT (msgmerge): Automatically update PO files from POT templates
Cleanup translation files: Remove unused translation strings
Squash Git commits: Squash commits before pushing to your repository
Component discovery: Automatically discover new translation files
See also
Add-ons for all available add-ons
Test and verify¶
Before announcing the migration to your translators:
Test the workflow:
Make a test translation
Verify it appears in your Git repository
Test pulling changes from your repository into Weblate
Import any existing translation memory (optional):
Use Translation Memory to import previous translations
This helps with consistency and speeds up translation
Configure notifications:
Set up Notifications for translation events
Configure repository Notification hooks for your Git hosting service
See also
Translation Memory for translation memory management
Invite and manage users¶
Invite translators¶
For Protected and Private projects:
Navigate to Operations → Users in your project
Use Add user to invite translators
Assign them to appropriate teams:
Translators: Can translate strings
Reviewers: Can review and approve translations
Managers: Can manage project settings
For Public projects, users can start contributing immediately after signing up.
Tip
Send your translators a welcome message with:
Link to your project on Weblate
Overview of any project-specific terminology or style guides
Information about your review process
See also
Managing per-project access control for team management
Access control for advanced permission configuration
Next steps¶
After completing the migration:
Announce to translators: Let your translation team know about the migration with clear instructions
Monitor initial usage: Watch for any issues during the first few days
Gather feedback: Ask translators about their experience compared to the previous platform
Optimize workflow: Adjust settings based on your team’s needs
Remove previous platform: Once the migration is completed, remember to revoke access granted to the previous platform.
Tip
During migration, you can run both platforms in parallel for a transition period to ensure everything works as expected before fully switching over.
Additional resources¶
Integrating with Weblate - Detailed integration patterns
Translation workflows - Different workflow configurations
Continuous localization - Automated continuous localization
Weblate’s REST API - API for automation and integrations
Translation progress reporting - Setting up translation progress reports
Frequently Asked Questions - Frequently asked questions
Hint
Join the Weblate community if you need help during your migration. The community is active and helpful!