Fr|En

DTL Software — July 2026

DTLi18n

A local assistant for checking, auditing, and migrating French-English internationalization in Python projects.

v1.1-46French / EnglishWindowsMIT License

DTLi18n analyzes the relationship between Python source code and translation catalogs to edit, check, audit, or prepare a French-English migration.

Traditional tools often stop after extracting strings. DTLi18n distinguishes user-visible text from technical data, checks references in both directions, measures i18n quality, learns from previous decisions, and produces auditable reports before changing anything.

Why DTLi18n?

A flawed internationalization pass can mistakenly translate a JSON key, command option, or internal identifier while leaving visible messages hard-coded in the source. DTLi18n uses conservative analysis based on Python syntax, structural context, and observable usage to avoid both problems.

Five complementary modes

  • List French and English catalog text without changing the file;
  • Edit a Python or JSON catalog with search, navigation, and numbering checks;
  • Check coverage, language selection, references, and remaining hard-coded user text;
  • Audit an internationalized project and produce confidence-rated before/after diagnostics;
  • Convert a non-i18n Python project conservatively after classification and confirmation.
1  List texts from an i18n file
2  Edit an i18n file
3  Check project internationalization
4  Audit an i18n project
5  Convert a non-i18n project

Editing and stable numbering

The editor supports catalogs containing a literal TRANSLATIONS dictionary and the equivalent JSON structure. Keys can follow a stable numbered convention:

t0001_file_not_found
t0002_invalid_choice

Existing numbers are preserved, numbering gaps are never compacted, and a deleted key number is recorded in a local registry so that it cannot be reused.

Quality checking

DTLi18n classifies strings as probably user-visible, probably technical, ambiguous, or already internationalized. Its score details catalog health, references, language selection, translation coverage, hard-coded strings, and ambiguities.

A key is never declared unused merely because no literal t("key") call was found. The analysis also follows indirect uses, propagated variables, Python and JSON structures, and dynamic key templates.

Bidirectional audit

The audit compares source files with every detected catalog. It checks missing references, duplicates, missing translations, probable language inversions, hard-coded visible strings, translated technical keys, ineffective language selectors, and syntax errors.

Automatic changes are restricted to deterministic issues marked SAFE. Other issues receive a precise remediation prompt that can be copied to the clipboard, and a detailed JSON report is written to the project.

Conservative conversion

For a non-i18n project, DTLi18n can create a project-specific catalog, assign stable keys, replace approved strings only, add the language mechanism, back up source files, compile every Python file, and verify all references.

Dictionary and JSON or API response keys, SQL columns, paths, URLs, regular expressions, options, and internal identifiers remain technical data and are never translated.

Local learning

Human decisions about ambiguous cases enrich ambiguity_kb.json. The knowledge base records the text, AST context, called function, argument role, target variable, decision, confidence, and history. It remains readable, local, and auditable.

Command line

DTLi18n.exe "D:\Projects\MyTool" --mode verify
DTLi18n.exe "D:\Projects\MyTool" --mode convert
DTLi18n.exe "D:\Projects\MyTool" --mode audit
DTLi18n.exe "D:\Projects\MyTool\catalog_i18n.py" --mode edit
DTLi18n.exe --version

Building with PyInstaller

The Windows build uses DTLi18n.spec. The following command produces the standalone executable under dist.

python -m PyInstaller --clean --noconfirm DTLi18n.spec

Safety and privacy

DTLi18n favors traceability and runs entirely locally.

  • no source code or catalog is uploaded;
  • no external AI service is required;
  • confirmation is required before conversion;
  • modified source files are backed up and syntax-checked;
  • reports describe the before/after state and affected files.