Files
2026-06-09 18:40:21 +02:00

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

  1. Premier démarrage : admin auto-créé (WEBLATE_ADMIN_PASSWORD)
  2. VCS (Git) : ajouter une clé SSH dans Weblate pour push/pull auto
  3. Composants : un composant = un fichier source (ex. locales/fr/LC_MESSAGES/django.po)
  4. Langues : activer uniquement les langues cibles voulues
  5. Traducteurs : créer des utilisateurs ou autoriser les inscriptions libres (crowdsourcing)
  6. Hooks : configurer webhooks app-forgejo / app-gitlab pour push auto sur commit
  7. 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

🔗 Pages Liées