Files
office_translator/_bmad-output/implementation-artifacts/deferred-work.md
sepehr b3b5454f6f
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m46s
docs(travaux-deferres): evaluation des trois chantiers lourds de rendu PDF/Word
Ordre recommande : PDF RTL copiable (insert_htmlbox), puis RTL des
graphiques Word (mecanisme reutilisable), puis gras intra-bloc PDF
(chantier architectural). Chacun merite une session dediee avec
verification visuelle.
2026-09-01 20:59:33 +02:00

5.7 KiB
Raw Blame History

Deferred Work

Entrées ajoutées lors du cadrage de spec-rendu-fidele-langues-rtl.md (2026-09-01) : améliorations de qualité identifiées pendant l'audit du pipeline de traduction, volontairement hors du périmètre de la spec RTL pour garder un objectif unique.

  • source_spec: spec-rendu-fidele-langues-rtl.md summary: Fusionner les runs adjacents de même style dans PowerPoint (et les notes Word traduites run par run) pour traduire des phrases complètes au lieu de fragments. evidence: Word fusionne déjà les runs par signature rPr (word_translator.py l.1368-1475) ; PowerPoint traduit chaque run isolément (pptx_translator.py l.810-834) et les footnotes Word aussi (l.836-846, 909-919, 961-971) — une phrase coupée en plusieurs runs produit des traductions incohérentes. Interdit par la spec RTL (« Never : pas de refonte de la collecte des runs »).
  • source_spec: spec-rendu-fidele-langues-rtl.md summary: Rendre les contrôles qualité actionnables : retenter automatiquement les lots dont le script livré ne correspond pas à la langue cible (ex. arabe livré au lieu du persan). evidence: services/quality/ détecte déjà le mauvais script et la confusion arabe/persan (script_detector.py l.89-171, l.236-256) mais tous les contrôles sont en log-only (routes/translate_routes.py l.1644-1779) — aucune traduction n'est jamais corrigée ni retentée.
  • source_spec: spec-rendu-fidele-langues-rtl.md summary: Étendre le mode batch JSON (~15 textes par requête) aux providers DeepSeek et MiniMax, comme le fait déjà le provider OpenAI. evidence: openai_provider.py l.511-625 batch via JSON numéroté ; deepseek_provider.py et minimax_provider.py traduisent texte par texte (base.py l.60-74) — coût et latence plus élevés pour ces moteurs.
  • source_spec: spec-rendu-fidele-langues-rtl.md summary: Conserver le formatage intra-bloc des PDF (un mot en gras au milieu d'une phrase applique aujourd'hui le gras à tout le bloc). evidence: pdf_translator.py _extract_text_blocks l.541-734 calcule des flags gras/italique globaux par bloc et la réécriture utilise une police unique par bloc (l.905-922).

Entrées ajoutées après la revue croisée de spec-rendu-fidele-langues-rtl.md (2026-09-01) :

  • source_spec: spec-rendu-fidele-langues-rtl.md summary: Utiliser insert_htmlbox (PyMuPDF) pour le texte RTL des PDF afin de garder un texte copiable et cherchable (ordre logique), au lieu du façonnage en formes de présentation. evidence: arabic_reshaper + python-bidi écrivent les lettres arabes en formes de présentation (U+FB50U+FEFF) en ordre visuel : un copier-coller depuis le PDF donne un texte inversé et la recherche ne fonctionne plus ; PyMuPDF ≥ 1.22 (déjà dépendance) propose insert_htmlbox qui gère nativement la direction bidi.
  • source_spec: spec-rendu-fidele-langues-rtl.md summary: Passer en droite-à-gauche les textes des graphiques et SmartArt Word (parties chart réinjectées après traduction). evidence: les textes de graphiques/diagrammes sont traduits et réinjectés (word_translator.py l.1030-1186, l.1229-1356) mais aucune marque de direction n'est posée sur ces parties — étiquettes arabes affichées gauche-à-droite dans un document RTL. Exclu volontairement par la spec (« Never : pas d'inversion des graphiques »).
  • source_spec: spec-rendu-fidele-langues-rtl.md summary: Résoudre l'alignement hérité des masques/dispositions PowerPoint pour ne pas forcer à droite un titre centré par le modèle (sans algn explicite). evidence: _set_pptx_paragraph_rtl pose algn="r" quand algn est absent — or l'alignement réel peut venir du masque ; détecter l'héritage exige de remonter au layout/master (chantier de résolution de placeholder dédié).
  • source_spec: spec-rendu-fidele-langues-rtl.md summary: Harmoniser RTL_LOCALES du frontend (frontend/src/lib/i18n.tsx, liste ["ar","fa"]) avec la liste serveur à onze langues. evidence: la liste d'affichage RTL de l'interface est indépendante de core/languages.RTL_LANGUAGES ; toute nouvelle langue d'interface RTL (hébreu, ourdou) devra être ajoutée aux deux endroits sans qu'aucun contrôle ne le signale.

Évaluation des trois chantiers lourds (2026-09-01, après la vague d'améliorations ffbd85a..e5e09f0) — confirmés différés, dans l'ordre recommandé :

  • source_spec: spec-rendu-fidele-langues-rtl.md summary: PDF RTL copiable (insert_htmlbox) : à traiter en premier des trois chantiers lourds, dans une session dédiée avec vérification visuelle du rendu sur de vrais documents. evidence: le mode mise en page PDF repose sur six niveaux d'ajustement (rectangle élargi, shrink, plafond par bloc suivant) construits autour d'insert_textbox et de son code de débordement ; insert_htmlbox a une sémantique différente et exige de revoir tout ce mécanisme — trop risqué à empiler sur la vague du jour sans contrôle visuel.
  • source_spec: spec-rendu-fidele-langues-rtl.md summary: RTL des graphiques et SmartArt Word : mécanisme réutilisable (poser rtl="1" sur les a:p des parts chart pendant la réécriture ZIP existante), à traiter en deuxième. evidence: les parts chart contiennent les mêmes paragraphes DrawingML (a:p/a:pPr) que PowerPoint ; la réécriture ZIP par element_path (word_translator.py l.1030-1186) est le point d'insertion naturel — chantier moyen, un seul fichier, mais à valider visuellement dans Word.
  • source_spec: spec-rendu-fidele-langues-rtl.md summary: Gras/italique au milieu d'une phrase dans le PDF (intra-bloc) : à traiter en dernier, c'est le plus grand chantier des trois. evidence: exige de découper la réécriture par blocs en écriture par fragments (spans) avec positionnement propre — changement architectural du mode mise en page PDF.