Ce projet permet de traduire automatiquement les contenus de BookStack (livres, chapitres, pages) dans plusieurs langues, grâce à l'intégration de LibreTranslate, à une gestion de mapping automatique et à une interface en ligne de commande ou webhook.
- Fonctionnalités
- Pré-requis
- Installation
- Lancer LibreTranslate
- Modes d'utilisation
- Configuration
- Structure du projet
- Sécurité
- Auteur
- Traduction automatique des livres, chapitres et pages
- Déclenchement automatique via webhook (BookStack)
- Interface manuelle (CLI) pour traductions ponctuelles
- Mapping entre contenus source et traduits stocké localement
- Outils de nettoyage et maintenance du mapping
- Compatible avec une instance locale ou distante de LibreTranslate
- Python 3.9+
pipinstallé (python -m ensurepip)- Docker (optionnel, pour exécuter LibreTranslate)
- Accès à une instance BookStack + clé API (optionnel)
- Git pour cloner le projet
git clone https://github.com/<votre-utilisateur>/automatisation-traduction-bookstack.git
cd automatisation-traduction-bookstackCréer un environnement virtuel (fortement recommandé) :
python -m venv venv
source venv/bin/activate # Sous Windows : venv\Scripts\activateInstaller les dépendances :
pip install -r requirements.txtOption recommandée via Docker :
docker run -p 5000:5000 libretranslate/libretranslateAutonome (Linux uniquement) : Voir LibreTranslate sur GitHub
Vérifiez que dans config.py ou .env, l'URL soit correcte :
LIBRETRANSLATE_URL = "http://127.0.0.1:5000/translate"Lance le serveur :
python webhook_server.py 5050Configurez un webhook dans l'interface BookStack avec l'URL :
http://<votre-domaine-ou-url-ngrok>:5050/webhook
Chaque modification (livre, page, chapitre) déclenchera automatiquement une traduction.
Lance le menu interactif :
python main.pyCe mode permet de :
- Traduire un livre entier
- Mettre à jour manuellement une page ou un chapitre
- Réexécuter la synchronisation ponctuellement
Reconstruit le mapping local pour refléter les contenus existants :
python sync_mapping.pyLance tous les tests unitaires :
python -m unittest discover testsModifiez le fichier config.py (ou .env) :
BOOKSTACK_API_BASE = "https://votre-instance.bookstack.com/api"
BOOKSTACK_HEADERS = {"Authorization": "Token VOTRE_TOKEN"}
LIBRETRANSLATE_URL = "http://127.0.0.1:5000/translate"
TARGET_LANGS = ["en", "de"] # Langues cibles| Dossier/Fichier | Description |
|---|---|
api/ |
Accès aux entités BookStack via l'API |
translation/ |
Service de traduction et logique de synchronisation |
webhook/ |
Serveur webhook (mode automatique) |
db/ |
Mapping entre contenus source et traduits |
main.py |
Menu CLI interactif |
sync_mapping.py |
Script de nettoyage et de reconstruction du mapping |
tests/ |
Tests automatisés |
- Ne jamais versionner vos fichiers
.envou contenant un token. Ajoutez bien.envdans.gitignore.
Projet conçu et maintenu par Arzgui. Pour toute question, contribution ou bug, merci d'ouvrir une issue.