← Tous les templates · Outils de développement
Déployez Weblate en un clic
Une plateforme de localisation synchronisée avec Git : traduisez vos applications et votre documentation en équipe
Une alternative auto-hébergée à Crowdin, Transifex et Lokalise.
Qu’est-ce que Weblate ?
Weblate est une plateforme web de localisation open source. Développeurs, traducteurs professionnels et bénévoles y traduisent logiciels, sites web et documentation au même endroit, avec des rôles qui définissent qui peut traduire, relire et gérer. Michal Čihař a lancé le projet en 2012 ; c’est un logiciel libre sous licence GNU GPL, une licence copyleft, et ses développeurs le font aussi tourner pour d’autres sous le nom de Hosted Weblate.
Weblate est conçu pour la localisation continue. Il garde un clone de votre dépôt Git, récupère les nouvelles chaînes à chaque push, et renvoie les traductions dans des commits qui créditent chaque traducteur, pour les pousser sur votre branche ou ouvrir une pull request. Il lit et écrit les fichiers que votre projet a déjà : GNU gettext, XLIFF, JSON pour i18next, Vue I18n ou go-i18n, les chaînes Android et Apple, les fichiers properties de Java, YAML, Markdown et des dizaines d’autres. Les traducteurs disposent du contexte, de captures d’écran, d’un glossaire, d’une mémoire de traduction et de contrôles qualité ; la traduction automatique et les LLM sont facultatifs, sous forme de suggestions ou de brouillons que des personnes relisent.
Ce template lance l’image officielle de Weblate, série 2026.10, avec une base de données Postgres 18 et une base Valkey 9 que Nouveau projet crée à côté, connectées avant le premier démarrage de Weblate ; à la place de la nouvelle base Postgres, vous pouvez choisir l’une des vôtres. Ce démarrage crée le compte admin à partir de l’e-mail et du mot de passe que vous indiquez, avant que Weblate ne réponde à quiconque, et l’inscription reste fermée. Celery, qui exécute les tâches de fond de Weblate, tourne dans un seul processus, la méthode que la documentation de Weblate donne pour économiser de la mémoire. Ses e-mails, pour les invitations, les notifications et la réinitialisation des mots de passe, passent par Resend, SendGrid ou Amazon SES, celui que vous choisissez dans Nouveau projet, et il n’en envoie aucun tant que vous n’en avez pas choisi.
Hébergement de Weblate sur Pethost
- Vous vous connectez à Pethost avec une clé d’accès, GitHub ou Google. Pas encore de machine ? Vous choisissez une offre, et le lien attend qu’elle soit prête.
- Nouveau projet s’ouvre sur Weblate. Vous remplissez ce qu’il demande et cliquez sur Créer le projet : E-mail, Mot de passe administrateur.
- L’e-mail est facultatif : pour que l’application Weblate en envoie, vous choisissez Resend, SendGrid ou Amazon SES dans Nouveau projet et collez ce que le fournisseur vous donne.
- Nouveau projet crée aussi de nouvelles bases de données pour Weblate et les connecte à l’application avant son premier démarrage : Postgres (512 MB) et Valkey (256 MB). Ou vous choisissez une de vos bases de données Postgres : l’application Weblate y reçoit son propre utilisateur et sa propre base de données, que les autres applications n’ont pas le droit de lire, et toutes les applications de cette base sont sauvegardées et restaurées ensemble.
- En une minute ou deux, Weblate tourne à sa propre adresse en HTTPS. Ses secrets sont créés au hasard, et ses données sont dans la sauvegarde nocturne.
- C’est un projet comme les autres : vous ou votre agent pouvez le modifier, revenir à une version précédente ou le restaurer.
Questions sur Weblate
Weblate est-il gratuit et open source ?
Oui. Weblate est un logiciel libre sous licence GNU GPL, version 3 ou ultérieure : vous pouvez l’exécuter, l’étudier, le modifier et l’auto-héberger gratuitement. Hosted Weblate est le service payant de ses développeurs, avec un essai de 14 jours, et les projets libres publics peuvent demander gratuitement son offre Libre.
Comment Weblate fonctionne-t-il avec Git ?
Weblate garde un clone de chaque dépôt que vous ajoutez. Il récupère les nouvelles chaînes quand votre hébergeur de code lui signale un push, et renvoie les traductions dans des commits qui créditent chaque traducteur, puis les pousse ou ouvre une pull request. Pour un dépôt privé, ajoutez-y la clé publique affichée dans Gérer → Clés SSH, ou connectez GitHub, GitLab et d’autres hébergeurs dans Gérer → Connexions aux services d’hébergement de code.
Quels formats de fichiers Weblate prend-il en charge ?
Des dizaines : GNU gettext PO, XLIFF, JSON (i18next, Vue I18n, go-i18n, Format.JS et JSON simple), les ressources de chaînes Android, les fichiers Apple .strings et .stringsdict, ARB, les fichiers properties de Java et de GWT, RESX de .NET, Qt Linguist, YAML, TOML, les chaînes PHP et Laravel, CSV, Markdown, HTML, les sous-titres et bien d’autres. La documentation de Weblate donne les variantes et les limites de chaque format.
Weblate peut-il utiliser la traduction automatique ou l’IA ?
Oui, si vous le souhaitez. Weblate peut demander des suggestions à DeepL, Google Cloud Translation, Azure AI Translator, Amazon Translate, LibreTranslate, OpenAI, Anthropic, Ollama et d’autres services, chacun configuré dans Suggestions automatiques. Sa propre mémoire de traduction ne demande aucun service extérieur, et un texte généré peut rester une suggestion jusqu’à ce qu’une personne l’accepte.
De combien de mémoire Weblate a-t-il besoin ?
La documentation de Weblate indique au minimum 3 GB de mémoire et 2 cœurs de CPU pour Weblate, sa base de données et un serveur web sur une seule machine, et 4 GB pour des centaines de composants. Ce template fait tourner les tâches de fond de Weblate dans un seul processus, la méthode que sa documentation donne pour économiser de la mémoire : sur notre machine de test, Weblate prenait environ 1 GB au repos et jusqu’à 1,5 GB pendant l’import d’un projet, à côté d’environ 70 MB pour Postgres et 12 MB pour Valkey.
De combien de mémoire et de disque Weblate a-t-il besoin ?
Weblate est modéré : environ 1 GB de mémoire au repos et jusqu’à 1,5 GB pendant l’import d’un projet, à côté de sa base Postgres de 512 MB et de sa base Valkey de 256 MB ; son disque contient un clone de chaque dépôt qu’il traduit. Nouveau projet donne à chaque base de données de l’application la mémoire que recommande le template, sauf si vous la changez : Postgres (512 MB) et Valkey (256 MB). Sur Pethost, l’offre Starter lui suffit, avec de la place pour d’autres applications à côté.
Le fichier Docker Compose de Weblate
Le template, c’est ce compose.yaml et les variables écrites dans le .env du projet à sa création. Pethost exécute le fichier tel qu’il est écrit. La machine y écrit les identifiants de l’application pour ses bases de données, au moment où elle les connecte. Nouveau projet y écrit les réglages d’e-mail choisis, ou les laisse vides quand l’application n’envoie pas d’e-mail.
Conteneurs : weblate (weblate/weblate:2026.10).
Bases de données, chacune un projet à part : Postgres (512 MB), Valkey (256 MB).
Volumes, dans la sauvegarde nocturne : data, cache.
services:
weblate:
image: weblate/weblate:2026.10
restart: unless-stopped
environment:
WEBLATE_SITE_DOMAIN: ${HOST}
# The admin account, made at the first start before Weblate answers anyone. Weblate sets
# its email and password again from these at every start.
WEBLATE_ADMIN_EMAIL: ${ADMIN_EMAIL}
WEBLATE_ADMIN_PASSWORD: ${ADMIN_PASSWORD}
WEBLATE_REGISTRATION_OPEN: "0"
# TLS ends at the machine's proxy, which says so in X-Forwarded-Proto and gives the
# visitor's address in X-Forwarded-For. It reaches the project from the machine's networks,
# 10.192.0.0/10, the one source Weblate's nginx takes that header from.
WEBLATE_ENABLE_HTTPS: "1"
WEBLATE_SECURE_PROXY_SSL_HEADER: HTTP_X_FORWARDED_PROTO,https
WEBLATE_IP_PROXY_HEADER: HTTP_X_FORWARDED_FOR
WEBLATE_TRUSTED_PROXY_ADDRESSES: 10.192.0.0/10
# Celery's queues in one process: Weblate's documented way to save memory on a small
# machine.
CELERY_WORKER_MODE: single
# Its translations, users and history, in the Postgres database linked to the project.
POSTGRES_HOST: ${DATABASE_HOST:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
POSTGRES_PORT: ${DATABASE_PORT:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
POSTGRES_DB: ${DATABASE_NAME:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
POSTGRES_USER: ${DATABASE_USER:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
POSTGRES_PASSWORD: ${DATABASE_PASSWORD:?reload New project to link a Postgres database, or send link_databases with env_prefix DATABASE}
# Its task queue and cache, in the Valkey database linked to the project.
REDIS_HOST: ${REDIS_HOST:?reload New project to link a Valkey database, or send link_databases with env_prefix REDIS}
REDIS_PORT: ${REDIS_PORT:?reload New project to link a Valkey database, or send link_databases with env_prefix REDIS}
REDIS_PASSWORD: ${REDIS_PASSWORD:?reload New project to link a Valkey database, or send link_databases with env_prefix REDIS}
REDIS_DB: "0"
# The mail provider picked in New project, by STARTTLS on its port. With none, Weblate's
# mail goes nowhere, and its host stays set, which Weblate requires.
WEBLATE_EMAIL_BACKEND: ${SMTP_BACKEND:-django.core.mail.backends.dummy.EmailBackend}
WEBLATE_EMAIL_HOST: ${SMTP_HOST:-localhost}
WEBLATE_EMAIL_PORT: ${SMTP_PORT:-25}
WEBLATE_EMAIL_HOST_USER: ${SMTP_USER}
WEBLATE_EMAIL_HOST_PASSWORD: ${SMTP_PASSWORD}
WEBLATE_EMAIL_USE_TLS: "1"
WEBLATE_EMAIL_USE_SSL: "0"
WEBLATE_SERVER_EMAIL: ${SMTP_FROM}
WEBLATE_DEFAULT_FROM_EMAIL: ${SMTP_FROM_HEADER}
volumes:
# The repositories Weblate translates, its settings and media.
- data:/app/data
- cache:/app/cache
tmpfs:
- /run
- /tmp
volumes:
data:
cache:
Aussi dans Outils de développement
- GiteaHébergement Git avec pull requests et issues
- code-serverVS Code dans le navigateur
- KrokiDes diagrammes à partir de texte : PlantUML, Mermaid, Graphviz et plus
- CoderDes environnements de développement distants issus de modèles Terraform, ouverts dans VS Code, JetBrains, le navigateur ou en SSH
- HasuraDes API GraphQL et REST instantanées sur une base Postgres, avec des permissions, des événements et une console web
- InsForgeUn backend pour les applications que construisent les agents de code : Postgres, authentification, stockage et edge functions