sepehr f93b13b53f
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m51s
fix(pdf): le texte persan s'affichait en points d'interrogation
Cause racine (reproduite et verrouillee par test) : l'insertion PDF
demandait la police integree Helvetica tout en fournissant un fichier
de police — PyMuPDF ignore alors le fichier, et Helvetica n'a aucun
glyphe arabe : chaque lettre persane devenait un '?', et ces '?'
debordaient les boites d'origine (les nombreux « [translation
overflow] »). Defaut present dans toutes les versions deployees.

- le nom de police est desormais Personnalise quand un fichier de
  police est fourni : le fichier est reellement integre
- reproduction complete avant/apres : 0 '?', 0 debordement, persan
  rendu avec la police resolue
- test de non-regression : la page traduite ne contient PAS Helvetica
  et le texte extrait n'a aucun '?'
- bouton « Reconstruire » de la relecture : une infobulle explique
  desormais pourquoi il est grise (aucun segment approuve ni modifie),
  dans les 13 langues
2026-09-01 21:32:40 +02:00

📄 Wordly.art — Document Translation Portal

Wordly.art est une application complète et prête pour la production (SaaS-ready) permettant de traduire des documents bureautiques complexes (Excel, Word, PowerPoint) tout en préservant strictement la mise en page originale, le style, les formules et les médias intégrés.

Ce fichier sert de portail central pour accéder à toutes les documentations techniques, guides d'exploitation, de déploiement et de secours de l'application.


🗺️ Carte de la Documentation

Pour faciliter la navigation, utilisez les liens ci-dessous pour accéder directement aux guides spécialisés :

🚀 Démarrage & Utilisation

🏗️ Architecture & Conception

🌐 Déploiement en Production

🛡️ Sauvegarde, Résilience & Secours (Disaster Recovery)


Fonctionnalités Clés

🔄 Multi-fournisseurs de Traduction

L'application supporte 7 moteurs de traduction, activables à la volée :

  • Google Translate (Gratuit, rapide, par défaut)
  • DeepL API (Haute qualité pour l'entreprise)
  • OpenAI (Modèles GPT-4o, support de la vision)
  • DeepSeek, OpenRouter, Minimax, x.ai (Zai) (Modèles de pointe pour traductions complexes)

📁 Traduction Intelligente par Fichier

  • Excel (.xlsx) : Conserve la fusion des cellules, les formules, les polices de caractères, les styles de bordures et traduit également le texte contenu dans les images (via modèles vision).
  • Word (.docx) : Préserve les en-têtes, pieds de page, tableaux, listes à puces et la mise en forme des paragraphes.
  • PowerPoint (.pptx) : Conserve la mise en page des diapositives, les animations et transitions.

🏢 Sécurité & Exploitation (SaaS-Ready)

  • 🚦 Limitation de débit (Rate Limiting) : Par IP client avec algorithme Token Bucket stocké dans Redis.
  • 🧹 Nettoyage automatique (Auto Cleanup) : Suppression automatique des fichiers temporaires après expiration de la durée de vie (TTL).
  • 📊 Monitoring complet : Route /health détaillée et intégration Prometheus + Grafana pour suivre les performances physiques et logicielles.

🛠️ Stack Technique

Backend

  • FastAPI (Python 3.11+) : API asynchrone rapide et documentée (Swagger disponible sur http://localhost:8000/docs).
  • openpyxl, python-docx, python-pptx : Moteurs de manipulation de documents sans dépendance Microsoft Office.
  • Docker / Docker Compose : Isolation complète de l'application, de la base PostgreSQL et du cache Redis.

Frontend

  • Next.js 15 (React) & Tailwind CSS : Interface utilisateur moderne, ergonomique et responsive.
  • Lucide Icons : Bibliothèque d'icônes vectorielles.

🚀 Lancement Rapide (Mode Dev)

Pour un déploiement complet en production ou homelab, veuillez vous référer aux fichiers de déploiement listés dans la Carte de la Documentation.

# 1. Cloner le projet
git clone https://gitea.parsanet.org/sepehr/office_translator.git /opt/wordly
cd /opt/wordly

# 2. Configurer l'environnement
cp .env.example .env
# Modifiez les variables dans le .env selon vos besoins

# 3. Lancer avec Docker Compose
docker compose up -d --build
  • API (Backend) : http://localhost:8000 (Documentation Swagger sur /docs)
  • Interface Web (Frontend) : http://localhost:3000
Description
No description provided
Readme MIT 18 MiB
Languages
Python 52.3%
TypeScript 33.3%
HTML 12.6%
CSS 1.1%
PowerShell 0.5%
Other 0.2%