sepehr b4e873ad2c
Some checks failed
Deploy to Production / Build and Deploy (push) Failing after 2m14s
feat(review,teams): review foundation — segments, side-by-side editor, rebuild, XLIFF, team workspaces
Foundations:
- TranslationSegment model + migration f7e8d9c0b1a2 (segments, workspaces,
  workspace_members, glossaries.workspace_id)
- SegmentRecorder injected into all 4 translators: unique (source,
  translation) pairs captured per job and persisted (best-effort)
- set_segment_overrides: human-reviewed translations applied verbatim on
  rebuild — top priority over TM and provider, zero API calls

Review API (routes/review_routes.py):
- GET /translations/{id}/segments (owner or job token)
- PATCH /segments/{id} edit/approve — feeds the per-user TM so approved
  translations are reused in later jobs
- POST /translations/{id}/rebuild — rebuild document with reviewed text
- GET/POST /translations/{id}/xliff — XLIFF 1.2 export/import (edited
  segments export their reviewed text)

Review editor (frontend /dashboard/reviews/[jobId]):
- side-by-side source/translation table, inline edit, approve (single or
  all), rebuild & download (auth blob), XLIFF export/import, 13 locales
- 'Relire et corriger' link on the translation-complete screen

Team workspaces (routes/workspace_routes.py + /dashboard/teams):
- Workspace/WorkspaceMember models, roles owner/admin/member
- create (Business plan), list with seat usage, invite by email with
  seat-limit enforcement (Business=5, Enterprise unlimited), removal
- shared glossaries: workspace members can use a glossary shared to their
  workspace (access check extended)

Tests: 1184 passed / 0 failed (11 new: recorder, overrides, docx
capture->rebuild e2e, XLIFF structure/escaping, seats, workspace CRUD,
shared glossary access)
2026-08-29 19:04:32 +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 15 MiB
Languages
Python 52.3%
TypeScript 33.3%
HTML 12.6%
CSS 1.1%
PowerShell 0.5%
Other 0.2%