Weblate

Continuous localization platform that commits translations directly into your version control system with full translator attribution.

6Kstars
1.3Kforks
GNU GPLv3
Python

Weblate is a libre software web-based localization platform designed around the idea that translations should live inside version control just like source code. Rather than requiring translators to work in external files or disconnected tools, Weblate integrates directly with Git, Mercurial, and Subversion repositories and creates commits on behalf of translators, preserving their attribution in project history. This approach eliminates the translation lag common in traditional workflows and keeps internationalization in sync with development automatically.

The platform supports over 50 file formats including gettext PO, XLIFF, Android strings, iOS strings, JSON, YAML, CSV, PHP arrays, Ruby YAML, AsciiDoc, and Markdown. It serves thousands of open source projects including Tor, F-Droid, Fedora, and Debian, as well as enterprises requiring full data sovereignty for their translation workflows. Teams can self-host Weblate using Docker or choose the managed Hosted Weblate service at weblate.org.

Weblate’s quality assurance layer runs dozens of automated checks on every translation string — catching printf format errors, placeholder mismatches, ICU message syntax problems, punctuation inconsistencies, and terminology deviations against a shared glossary. A built-in translation memory matches prior translations across projects, reducing repetitive work. Machine translation suggestions from services like DeepL, Google Translate, Microsoft Translator, LibreTranslate, and Anthropic Claude can be offered inline to translators, with configurable acceptance thresholds.

The addon system allows custom automation at precise workflow events: automatically running find-and-replace rules before commits, generating statistics files, propagating translations across linked components, enforcing consistent terminology, or posting webhooks to external services. A comprehensive REST API with OpenAPI documentation makes it easy to integrate Weblate into existing CI/CD pipelines, and the command-line client wlc enables scripting common operations without browser access.

What You Get

  • VCS-Integrated Translation Commits - Automatically creates Git commits on behalf of translators with full attribution, making translations versioned history just like source code changes.
  • 50+ File Format Support - Handles gettext PO, XLIFF 1.1/1.2, Android strings, iOS strings, JSON, YAML, CSV, PHP arrays, Ruby YAML, AsciiDoc, Markdown, WiX localization, App Store metadata, and more without custom parsing scripts.
  • Automated Quality Checks - Runs dozens of per-string checks covering printf format placeholders, Python/PHP/Ruby/ICU format strings, XML markup consistency, punctuation spacing, terminology violations, and unchanged translation detection.
  • Translation Memory - Stores and retrieves past translations across projects at configurable similarity thresholds, with per-user, per-project, and shared memory categories that reduce repetitive work.
  • Machine Translation Integration - Offers inline suggestions from over 20 MT services including DeepL, Google Translate, Microsoft Translator, LibreTranslate, and Anthropic Claude, with glossary-aware requests where supported.
  • Addon Automation System - Enables workflow automation at specific VCS events such as post-commit, post-push, and post-update via built-in addons for statistics generation, PO file cleanup, gettext pre-commit processing, and custom script execution.
  • Comprehensive REST API - Full OpenAPI-documented API covering projects, components, translations, strings, translation memory, and webhooks, enabling programmatic integration with CI/CD pipelines and custom tooling.
  • Granular Permission System - Role-based access control with team-based group management, component-level language restrictions, contributor agreements, and workspace-level project isolation for multi-tenant deployments.

Common Use Cases

  • Open source project localization - A project like Tor or F-Droid hosts Weblate to coordinate community translators across dozens of languages, with automated Git commits preserving each contributor’s attribution and quality checks preventing format string errors from reaching production.
  • Enterprise software i18n with data control - A SaaS company self-hosts Weblate on their infrastructure to manage UI translations for 30+ languages while keeping string content behind their firewall, using the REST API to trigger translation exports from their CI/CD pipeline on each release.
  • Mobile app continuous localization - A mobile development team connects Weblate to their GitHub repository so that when developers add new strings to iOS or Android resource files, translators are immediately notified and their approved translations are auto-committed back without manual file management.
  • Documentation translation at scale - A documentation team uses Weblate’s glossary feature and cross-project translation memory to maintain consistency across multiple product docs, enforcing terminology rules and allowing volunteer translators to contribute through a web interface without repository access.
  • Multi-product translation platform - An organization with multiple products uses Weblate’s workspace and component list features to share a translation memory and glossary across all products, enabling translators to work across the entire portfolio from a single login.
  • CI/CD-integrated release localization - A development team configures Weblate webhooks to notify their pipeline when all strings for a release are 100% translated and approved, using the wlc CLI to lock components during releases and unlock them for the next sprint.

Under The Hood

Architecture Weblate follows a traditional Django monolithic architecture organized around domain-specific apps with well-defined module boundaries: the core translation orchestration layer, a VCS abstraction over Git/Mercurial/Subversion backends, a quality checks framework, machine translation machinery, translation memory, file format handling, and an addon event system. The trans module serves as the domain core, while each surrounding module owns its models, views, Celery tasks, and tests independently. The VCS abstraction is one of the cleaner design choices, enabling multiple backend implementations behind a consistent interface with repository locking to prevent concurrent write conflicts. The addon system uses a declarative event model that fires at specific workflow moments, allowing automation without modifying core business logic. Cross-cutting concerns like permissions are implemented as a unified permission checker that evaluates against the object hierarchy rather than scattered view-level guards.

Tech Stack Weblate runs on Python 3.12+ with Django 6.0 using PostgreSQL as the primary production database, accessed via psycopg3. Celery with Redis handles all asynchronous processing including translation commits, addon execution, and metrics aggregation. The REST API is built with Django REST Framework and auto-documented via drf-spectacular generating a full OpenAPI spec. Front-end assets use legacy jQuery-era JavaScript with Jinja2 templates, bundled via Webpack and linted with Biome. Translation file format parsing delegates to the translate-toolkit library, which covers an extensive range of localization formats. Machine translation integrates with over twenty services through a pluggable base class including DeepL, Google Cloud Translation v2/v3, Microsoft Translator, LibreTranslate, and Anthropic Claude. Docker and Docker Compose are the canonical deployment targets, and OpenTelemetry provides distributed tracing instrumentation across Django, Celery, Redis, and database layers.

Code Quality Weblate maintains comprehensive test coverage using pytest with pytest-django, spanning unit, integration, and Selenium-based end-to-end scenarios across all major workflows. Type annotations are pervasively applied throughout production code and enforced by mypy with django-stubs and djangorestframework-stubs, providing strong IDE support and catching type errors at development time. Code quality tooling includes Ruff for Python linting and formatting, Biome for JavaScript, djlint for template formatting, pylint, and pre-commit hooks that run all checks before commits. Security vulnerabilities are proactively disclosed via coordinated CVE reporting with public advisories — multiple security fixes are visible in recent changelogs covering information disclosure, argument injection, and API access control issues. REUSE tooling enforces SPDX license headers across all source files, making the licensing posture of every file machine-readable.

What Makes It Unique Weblate’s defining innovation is treating translation as a first-class VCS operation rather than a file export step. It creates actual git commits on behalf of translators with correct author attribution, meaning the full translation history lives inside the project repository. The quality check framework goes substantially deeper than generic linters, covering ICU message format syntax validation, AngularJS interpolation markers, Qt format strings, Ruby string formatting, glossary terminology enforcement, and reStructuredText syntax checking. The addon event system is a genuine extensibility mechanism that fires at specific workflow moments rather than requiring forks of core code. Recent additions including workspace-level multi-tenancy, Anthropic Claude integration for machine translation, AsciiDoc and WiX localization format support, and an anonymized commit name template for contributor privacy demonstrate sustained active development across both breadth and depth.

Self-Hosting

Weblate is licensed under the GNU General Public License version 3 or later (GPL-3.0-or-later). This is a strong copyleft license, which means you are free to use, modify, and self-host Weblate for any purpose, including commercial internal use, without owing the author anything. However, if you distribute or offer Weblate as a network service to others — such as building a hosted translation service on top of it — the GPL requires that you make your modifications available under the same license. For most organizations that self-host Weblate strictly for internal use, this distinction does not trigger any obligations. The SPDX license header is applied uniformly across all source files using the REUSE specification, making the licensing unambiguous and machine-readable.

Running Weblate yourself is a genuine infrastructure commitment. The canonical deployment method is Docker Compose with multiple services: the Django application server, Celery workers for background tasks (commits, addon execution, metrics), Redis as the task broker and cache, PostgreSQL as the database, and optionally an nginx reverse proxy. You are responsible for all of these services — uptime, database backups, Redis persistence, SSL certificates, and OS/container patching. Weblate stores repository clones on disk, so storage requirements grow with the number of projects and repository history. Upgrades require running database migrations, and the project maintains generic upgrade instructions in the documentation for each release. The operational burden is comparable to running any multi-service Django web application, and teams without prior experience with Docker-based deployments and PostgreSQL administration should budget time for that learning curve.

The project’s creator also offers Hosted Weblate (weblate.org), a managed SaaS version with optional professional support contracts. The hosted service handles infrastructure, upgrades, backups, high availability, and provides a direct support channel with the lead developer. Free hosting is available for libre software projects, while commercial projects pay based on the number of hosted strings. If you self-host, you give up managed upgrades, infrastructure support, and SLAs — though the community forum and GitHub issues provide reasonable community support. There is no feature difference between self-hosted and hosted versions; Weblate does not reserve features for the hosted tier, which is consistent with its libre software ethos.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack

No spam. Unsubscribe anytime.

Join 750+ subscribers
No spam. Unsubscribe anytime.

Search