wlc
A command-line utility for Weblate, translation tool with tight version control integration
What it is and what it does
wlc is a command-line interface to Weblate, a web-based continuous localization platform used by over 2500 libre projects. It wraps Weblate's REST API to let developers manage translations, components, and projects from the shell, making it easy to integrate localization workflows into CI/CD pipelines and development scripts.
The tool supports operations like listing projects and translations, pulling and pushing changes, downloading and uploading files, and checking lock status. Configuration is flexible: you can use command-line flags, environment variables (WLC_URL, WLC_KEY), or INI files placed in your project or user config directories. It depends on requests and urllib3 for HTTP communication, argcomplete for shell completion, python-dateutil for date handling, and pyxdg for XDG config path discovery.
Use it for:
- Automate translation updates in CI/CD pipelines by pulling latest translations from Weblate and committing them to version control.
- Batch upload new source strings or translation files to Weblate from the command line without opening the web interface.
- Script repetitive localization tasks like checking translation status, locking/unlocking projects, or syncing repositories.
- Integrate Weblate into local development workflows by pulling translations on demand before building or testing.
- Manage API keys and connection settings across multiple Weblate instances using environment variables in different deployment contexts.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
wlc is a command-line client for Weblate's REST API, enabling developers to manage translations, pull and push localization changes, and interact with Weblate projects from the terminal.
Yes, if you use Weblate and need CLI automation. Low install friction, active maintenance, no known vulnerabilities, and broad Python version support make it reliable. The copyleft license (GPL-3.0-or-later) is a constraint only if you plan to distribute proprietary derivatives; for open-source projects and internal CI/CD use, it poses no barrier.
Install
wlc on PyPI
pip
pip install wlcuv
uv add wlcpoetry
poetry add wlcInstalling wlc
Before you install
Low install friction with a pure-Python wheel and five standard dependencies. Actively maintained with a release 20 days ago and recent commits; supports modern Python versions from 3.10 through 3.14.
License in practice
Licensed under GPL-3.0-or-later (copyleft). Any modifications or derivative works must be distributed under the same license; suitable for open-source projects but requires legal review for proprietary use.
Quickstart
pip install wlc
wlc --url https://hosted.weblate.org/api/ --key YOUR_API_KEY list-projects
# Or configure via ~/.config/weblate or .weblate.ini in your project directory
Requires Python 3.10 or later. API key authentication and a Weblate instance URL are required to connect.
Verify before relying
- Whether wlc's command set covers all Weblate API operations or if some workflows require direct API calls.
- Performance characteristics when managing large numbers of translations or projects.
- Whether configuration file discovery from parent directories works reliably in all project structures.
Package facts
| License | GPL-3.0-or-later (copyleft) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — argcomplete, python-dateutil, pyxdg, requests, urllib3 |
| Maintenance | actively maintained — 20 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 229,687/month — #9,126 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: wlc-2.1.1-py3-none-any.whl
Keywords: i18n, l10n, gettext, git, mercurial, translate
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
weblateWeblate is a web-based continuous localization…
copyleft · top 15,000 on PyPI
weblate_schemasProvides JSON schemas that validate Weblate…
permissive · top 15,000 on PyPI
weblate-fontsProvides a curated collection of fonts packaged…
unclear · top 15,000 on PyPI
weblate-language-dataProvides language definitions, plural rules,…
permissive · top 15,000 on PyPI
translation-finderDiscovers and identifies translation files in…
copyleft · top 15,000 on PyPI
wllegalA Django module providing legal document…
copyleft · top 15,000 on PyPI
babelBabel provides internationalization (i18n) and…
permissive · top 1,000 on PyPI
translate-toolkitTranslate Toolkit converts, validates, and…
copyleft · top 15,000 on PyPI
flufl.i18nflufl.i18n provides a high-level API for…
permissive · top 15,000 on PyPI
quart_babelAdds internationalization (i18n) and…
permissive · top 15,000 on PyPI