5.9 KiB
5.9 KiB
title: Weblate created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, traduction, i18n, localisation, crowdsourcing] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Development, https://github.com/WeblateOrg/weblate]
💻 Weblate
Plateforme de traduction collaborative web (crowdsourcing) avec gestion de versions, intégration Git/VCS, mémoire de traduction et automatisation. Utilisé par Mozilla, Red Hat, GNOME, KDE et de nombreuses autres organisations.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | weblate.org |
| GitHub | WeblateOrg/weblate |
| License | GPL-3.0 |
| Langage | Python (Django) |
| Étoiles GitHub | 5 903 ⭐ |
| Catégorie | cat-development |
| Note | Adopté par Mozilla, Red Hat, GNOME, KDE, OpenStreetMap, Nextcloud, F-Droid — référence du domaine. Self-hostable est la voie majoritaire. |
📝 Description
Weblate est une plateforme de localisation (L10n) et traduction collaborative basée sur le web. Elle gère le cycle complet de la traduction d'un logiciel ou d'un site :
Fonctionnalités principales :
- Interface web de traduction : éditeur visuel, suggestions, contexte, captures d'écran
- VCS integration : push automatique des traductions vers Git, Mercurial, Subversion
- Multi-format : PO, XLIFF, JSON, YAML, .properties Android, .strings iOS, .ts Qt, etc.
- Crowdsourcing : ouverture à des contributeurs externes (traducteurs volontaires)
- Mémoire de traduction : réutilisation de traductions entre projets
- Glossaire : terminologie unifiée
- Traduction automatique : API DeepL, Google Translate, OpenAI, AWS
- Quality checks : cohérences, fautes, placeholders
- Workflow de validation : review, approval
- Webhooks : notification CI/CD, Slack
- API REST complète
- Multi-projets, multi-composants, multi-langues
Pourquoi pas POEditor, Crowdin, Lokalise ? Ce sont des services SaaS payants. Weblate est open source et self-hosted.
Cas d'usage :
- Projets open source : permettre à la communauté de traduire
- Entreprises : internalisation produits, logiciels internes
- Apps mobile / web : gérer les fichiers
.json/.strings/.xml - Documentation multilingue
🚀 Installation
Via Docker Compose (méthode officielle)
# docker-compose.yml
version: '3.8'
services:
weblate:
image: weblate/weblate:latest
container_name: weblate
restart: unless-stopped
hostname: weblate.example.com
depends_on:
- db
- cache
environment:
- WEBLATE_EMAIL_HOST=*** - WEBLATE_EMAIL_HOST_USER=velli@example.com
- WEBLATE_EMAIL_HOST_PASSWORD=*** - WEBLATE_ALLOWED_HOSTS=weblate.example.com
- WEBLATE_ADMIN_PASSWORD=*** - WEBLATE_ADMIN_EMAIL=velli@example.com
- WEBLATE_SITE_DOMAIN=weblate.example.com
- WEBLATE_SECRET_KEY=*** - WEBLATE_DATABASE_URL=postgresql://weblate:***@db:5432/weblate
- WEBLATE_REDIS_URL=redis://cache:6379/0
volumes:
- weblate-data:/app/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.weblate.rule=Host(`weblate.example.com`)"
- "traefik.http.routers.weblate.entrypoints=websecure"
- "traefik.http.services.weblate.loadbalancer.server.port=8080"
networks:
- proxy
db:
image: postgres:15
container_name: weblate-db
restart: unless-stopped
environment:
- POSTGRES_DB=weblate
- POSTGRES_USER=weblate
- POSTGRES_PASSWORD=*** volumes:
- weblate-db:/var/lib/postgresql/data
networks:
- proxy
cache:
image: redis:7
container_name: weblate-cache
restart: unless-stopped
networks:
- proxy
volumes:
weblate-data:
weblate-db:
networks:
proxy:
external: true
⚙️ Configuration
- Premier démarrage : admin auto-créé (
WEBLATE_ADMIN_PASSWORD) - VCS (Git) : ajouter une clé SSH dans Weblate pour push/pull auto
- Composants : un composant = un fichier source (ex.
locales/fr/LC_MESSAGES/django.po) - Langues : activer uniquement les langues cibles voulues
- Traducteurs : créer des utilisateurs ou autoriser les inscriptions libres (crowdsourcing)
- Hooks : configurer webhooks app-forgejo / app-gitlab pour push auto sur commit
- Backups : DB PostgreSQL +
/app/data(clé secrète, avatars, customisations)
🔗 Alternatives
- Pootle (Translate House) — Plus ancien, plus simple, moins maintenu
- Zanata (Red Hat) — Concurrent JBoss, en pause
- Transifex — SaaS leader, payant
- Crowdin — SaaS, freemium
- Lokalise — SaaS moderne, TMS pro
- Tolgee (JS) — Auto-hébergeable, plus moderne, plus orienté devs
- Traduora — Open source, en pause
🔒 Sécurité
- HTTPS obligatoire : Weblate gère l'auth et les secrets
- Auth externe : OIDC, OAuth (GitHub, GitLab, Gitea, Google)
- 2FA : activable par utilisateur
- Permissions granulaires : admin, traducteur, reviewer
- Validation manuelle : éviter de pousser des traductions non revues vers la prod
- Audit : qui a modifié quoi
- Backups : PostgreSQL + volume
/app/data - Rate limiting : Weblate peut être cible de spam (formulaires d'inscription)
📚 Ressources
- Documentation officielle
- GitHub WeblateOrg/weblate
- Liste des projets qui utilisent Weblate
- Weblate.org (cloud)
🔗 Pages Liées
- cat-development — Catégorie Development
- app-forgejo / app-gitlab / app-gitea — Forges Git (intégration VCS)
- app-traefik — Reverse proxy
- securisation-home-lab — Bonnes pratiques
- recettes-docker-compose — Templates Docker