sepehr a96b3c099a
Some checks failed
Deploy to Production / Build and Deploy (push) Has been cancelled
feat(translate): multi-file queue with dedicated runner tests + context polish
Batch upload: dropzone and inputs accept multiple files (cap 10/run,
validated + deduped); 2+ files switch the submit to a queue screen —
sequential jobs with per-file progress, failure messages through the
humanizer, per-file download/review links, staggered download-all,
real server-side stop (cancel API) plus between-files abort. The
one-file flow is untouched: files.length === 1 takes the exact
existing path.

Runner: standalone runTranslationJob (submit + poll + abort + cancel)
with injectable poll interval; 5 dedicated vitest cases covering
completed-with-progress, backend failure, submit HTTP error, mid-flight
abort with server cancel, and network-failure cutoff.

Context page close review: /dashboard/context is a clean redirect to
glossaries (no duplicate); the fake 300ms save delay removed (instant
zustand persist); suggestion chips now resolve their prompt bodies
through i18n (EN+FR — no more French prompts for English users); the
translate config column shows a 'Context guidelines active' chip that
links to the editor when a Pro LLM prompt is set.

Dead code: legacy file-uploader.tsx (+webllm.ts, its only consumer)
and the unused PRESETS/applyPreset/clearContext store block removed
(-14KB of glossary strings).

Verified: build exit 0, vitest 14/14 (9 prior + 5 runner), eslint 62
errors (vs 64 at HEAD), 0 missing i18n keys.
2026-08-30 23:05:37 +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%