Présentation
DTLi18n analyse les relations entre les sources Python et leurs catalogues de traduction pour éditer, vérifier, auditer ou préparer une migration français-anglais.
Les outils classiques se limitent souvent à extraire des chaînes. DTLi18n distingue les textes visibles des données techniques, contrôle les références dans les deux sens, mesure la qualité i18n, apprend des décisions précédentes et produit des rapports auditables avant toute modification.
Pourquoi DTLi18n ?
Une internationalisation incorrecte peut traduire par erreur une clé JSON, une option de commande ou un identifiant interne, tout en laissant des messages visibles en dur dans le code. DTLi18n applique une analyse prudente fondée sur la syntaxe Python, le contexte structurel et les usages observables afin d'éviter ces deux écueils.
Cinq modes complémentaires
- Lister les textes français et anglais d'un catalogue sans le modifier ;
- Éditer un catalogue Python ou JSON avec recherche, navigation et contrôle de numérotation ;
- Vérifier la couverture, le sélecteur de langue, les références et les chaînes utilisateur encore en dur ;
- Auditer un projet i18nisé et produire des diagnostics avant/après assortis d'un niveau de confiance ;
- Convertir prudemment un projet Python non i18nisé après classification et confirmation.
1 Lister les textes d'un fichier i18n 2 Éditer un fichier i18n 3 Vérifier l'internationalisation d'un projet 4 Auditer un projet i18nisé 5 Convertir un projet non i18nisé
Édition et numérotation stable
L'éditeur prend en charge les catalogues contenant un dictionnaire littéral TRANSLATIONS ainsi que le même format en JSON. Les clés peuvent suivre une convention numérotée stable :
t0001_file_not_found t0002_invalid_choice
Les numéros existants sont conservés, les trous ne sont jamais compactés et le numéro d'une clé supprimée est inscrit dans un registre local afin de ne pas être recyclé.
Vérification de la qualité
DTLi18n répartit les chaînes entre textes probablement visibles, valeurs probablement techniques, cas ambigus et textes déjà internationalisés. Son score détaille le catalogue, les références, le sélecteur de langue, la couverture des traductions, les chaînes en dur et les ambiguïtés.
Une clé n'est jamais déclarée inutilisée sur la seule absence d'un appel littéral t("clé"). L'analyse recherche aussi les usages indirects, les variables propagées, les structures Python ou JSON et les gabarits de clés dynamiques.
Audit bidirectionnel
L'audit compare les sources et tous les catalogues détectés. Il recherche les références absentes, doublons, traductions manquantes, inversions de langue, chaînes visibles en dur, clés techniques traduites par erreur, sélecteurs inopérants et erreurs de syntaxe.
Les corrections automatiques sont limitées aux cas déterministes marqués SÛRE. Les autres anomalies reçoivent un prompt de remédiation précis, copiable dans le presse-papiers, et un rapport JSON détaillé est écrit dans le projet.
Conversion prudente
Pour un projet non i18nisé, DTLi18n peut créer un catalogue propre au projet, attribuer des clés stables, remplacer uniquement les chaînes acceptées, ajouter le mécanisme de langue, sauvegarder les sources, compiler tous les fichiers Python et vérifier chaque référence.
Les clés de dictionnaire et de réponse JSON ou API, colonnes SQL, chemins, URL, expressions régulières, options et identifiants internes restent des données techniques et ne sont pas traduits.
Apprentissage local
Les décisions humaines sur les cas ambigus enrichissent ambiguity_kb.json. La base conserve le texte, le contexte AST, la fonction appelée, le rôle de l'argument, la variable cible, la décision, la confiance et son historique. Elle reste lisible, locale et auditable.
Ligne de commande
DTLi18n.exe "D:\Projets\MonOutil" --mode verify DTLi18n.exe "D:\Projets\MonOutil" --mode convert DTLi18n.exe "D:\Projets\MonOutil" --mode audit DTLi18n.exe "D:\Projets\MonOutil\catalogue_i18n.py" --mode edit DTLi18n.exe --version
Compilation PyInstaller
La construction Windows repose sur DTLi18n.spec. La commande suivante produit l'exécutable autonome dans dist.
python -m PyInstaller --clean --noconfirm DTLi18n.spec
Sécurité et confidentialité
DTLi18n privilégie la traçabilité et fonctionne entièrement en local.
- aucun code source ni catalogue n'est téléversé ;
- aucun service d'IA externe n'est requis ;
- une confirmation précède toute conversion ;
- les sources modifiées sont sauvegardées et leur syntaxe validée ;
- les rapports décrivent l'état avant/après et les fichiers concernés.