Organisation du code
Architecture
Le module ne dépend d'aucun package Composer. La classe module route les appels AJAX vers des classes spécialisées par domaine (contenu, modules, thèmes, e-mails).
| Classe | Rôle |
|---|---|
Freshappiatranslator | Classe module : hooks, dispatcher AJAX interne (paramètre module_action, une vingtaine d'actions). |
TranslateApi | Orchestre une traduction unitaire : dictionnaire intelligent, mots exclus, découpage HTML-safe, translittération, réécriture des URL internes. |
AbstractProvider + 8 adaptateurs | DeeplV2Provider, GoogleV2Provider, OpenAiProvider, MicrosoftV3Provider, LibreTranslateProvider, MammouthProvider, ReviradaProvider, CopyProvider. |
HtmlParser / HtmlSplitter | Extraction et réinjection des nœuds texte d'un contenu HTML ; découpage au nombre de caractères maximum du fournisseur. |
AbstractTableAdapter / GenericLangAdapter | Registre des tables traduisibles : 26 adaptateurs dédiés (produits, catégories, CMS, transporteurs…) et découverte automatique de toute table *_lang. |
TableTranslation / TableBackup | Traduction paginée d'une table entre deux langues ; sauvegarde SQL (gzip si disponible) avant traduction en masse. |
FailedTranslation | Journalise les échecs de traduction (table failed_translation) pour revue et rejeu. |
ModulesTranslator / ThemesTranslator / MailsTranslator | Inventaire des modules, thèmes et modèles d'e-mail traduisibles. |
TranslateContentCron / TranslateCommand | Traduction en masse en ligne de commande (bin/console freshappiatranslator:translate) ou via cron.php, sans limite de temps d'exécution du navigateur. |