LocalizeAdder QT
Qt version of the localization management tool. Audit, translations, key sync.
What the project solves
Qt version of the localization management tool. Audit, translations, key sync.
How the application works and what it is for
Overview
LocalizeAdder _ QT is a professional All- in-One Localization Manager for audit, validation, repair and multilingual translation of localization files. The tool supports both the old Python-based structure (.py) and the new modern text format (.localize).
- Audit of localization files: Statistics, language comparison, integrity control
- โช 6 providers with intelligent fallback
- Validation of the structure: Detection of duplicates, missing keys, structural problems
- Language synchronisation: Automatic repair and synchronization
- Management of new languages: Add with automatic translation from 60 + languages
- graphical interface + batch mode: Professional Qt5 graphical interface for operators, batch mode for automation
Function
pdf Audit Module
Detects duplicates, missing keys, structural problems, language comparisons.
= = sync, corrected by elderman = = @ elder _ man
6 Providers (Google, DeepL, MyMemory, LibreTranslate, Linguee, Pons) with Fallback and Quality Score.
SECTION V
Format check, placeholders, duplicate, emme placement, language codes.
IUPAC-Fix
Synchronizing languages, adding missing keys, repairing the structure with backup.
* Multi-threed
4 + worker threeds (Audit, Translate, SmartTranslation, Validation) without AI blocking.
.europa.eu 60 + languages
Complete metadata, flags (emme), native names for all supported languages.
graphical interface Layout, Control & Keyboard Shortcuts
Main window (QMainWindow) structure:
Bookmarks (detailed content of each):
๐ AUDIT: Summary of statistics (number of languages, keys, problems), Recent audits table, Health status indicator (green / yellow / red), Quick actions buttons (Run Audit, Export Report)
๐ LANGUAGES: Table of all languages (Flag 124; Code 124; Name 124; Total Keys 124; Missing 124; Extra 124; Duplicates 124; Completeess%), filtering, sortable, per- language events (Edit, Translate, Sync)
๐ FALLBACK: CZ vs EN comparison, list of missing keys in CZ / EN, duplicity report (with number of occurrences, lines), Missing in code, Unused in code
๐ STRUCTURE: Key order, per-language list with problems (missing # comments, whitespace issues, format error), preview of lines with error
๐ TRANSLATION: Selection of language target, provider selection, SmartTranslate checkbox, progress bar, table of candidates with scores (4-way), preview, Apply button
โ VALIDATION: Duplicity report, Placeholder issues list, Format errors (lang _ * structure), Summary, Autofix with preview
๐ LOG: Real-time active record (text edit with timestamp), filters (All / Info / Warning / Error), Clear / Save / Copy action
Key abbreviations:
| Shortcut | Event |
|---|---|
| Run Full Audit | |
| Run Validation | |
| Go to Translation tab | |
| Export Results | |
| Save Configuration | |
| Exist Application | |
| Clear log | |
| Open Help | |
| Refresh current tab |
Data formats (.py vs .localiza)
Format # 1: .py (Legacy Python dict)
Location: APP _ DATA / localize _ data.py
Example:
Benefits of .py format:
- Native Python dict - parsing free, direct use
- Historical (existing in the project from the beginning)
- You can add logic / dynamics (calculated keys)
The drawbacks of .py format:
- Syntax Error = the whole module is not uploaded
- More complex version control (diffs are large)
- Dangerous edit without IDE (Python syntax)
Format # 2: .localize (New Text Format - Recommended)
Location: APP _ DATA / * .localize (e.g. localizedata.localize, mavi.localize)
Example:
Advantages of .localize format:
- Text, readable - easy to edit
- INI-like structure - parsing easily
- Safer - syntax bug no worse (ignore line)
- Git friendly - clean diffs
- Trans friendly - standard for gettext-like tools
The disadvantages of .localize format:
- New, less experience in the project
- Parsing is necessary (small overhead, ~ < 10ms)
Conversion of .py โ .localize:
Real operating scenarios
Scenario 1: Add a new language (Italian)
- Open the application โ You go to [VIOLANGUAGES]
- Click [INCLUDING Add Language]
- Select "Italian (it)" from Dropdown
- Check [Auto- Translate using SmartTranslation]
- Click [Start] โ system starts translation (4-way: CZ โ IT + EN โ IT with both providers)
- Progress bar is moving (0% โ 50% โ 100%)
- Finish โ Table with 450 candidates (each with score 50-150)
- Check spot-check (choose 5-10 random keys, check quality)
- Click [Apply] โ to save in 'APP _ DATA / localize _ data.py'
- Commit: 'git commit -m' Add Italian language (it) with autotranslation ''
Scenario 2: Update existing translation (German after change of CZ text)
- A week ago, a translation into German was created.
- Today it will turn into CZ: "Hello" โ "Welcome"
- Open App โ [REGULATIONS] โ click DE โ [Translate Changed Keys]
- System detects: "msg _ hello" has changed (old: 'Hello', new: 'Welcome')
- SmartTranslate automatically translate only changed keys (the remaining 449 takes from cache)
- โช
- Click [Apply] โ Only the key in DE is updated
- Validation โ All OK
- Commit: 'git commit -m' Update German translation for msg _ hello ''
Scenario 3: Correction of structural problems (Duplicity and missing emes)
- Audit detects: duplicate "msg _ exit" (row 150 and 175), missing emes in "lang _ it"
- Go to [VALIDATION] โ See the list of problems
- Check [Dry Run Mode] and click [AutoFix All]
- Preview: "Deletes duplicity (leaves # 1), adds emme to lang _ it"
- Check and click [Apply] โ the actual repair will be done
- Backup creates' backup _ localize _ data _ 2026 -02-21 _ 14-30-00.py'
- Redo Audit โ All OK (0 problems)
- Commit: 'git commit -m' Fix: Remove duplicates, add emome to lang _ it '
Data formats
.py format (Legacy):
.localize format (New, text, safer):
Supported languages
60 + languages with complete metadata: ISO codes, flags (emme), native names, specifics.
Examples: Czech (en / cz), English (en), German (de), French (fr), Spanish (es), Russian (ru), Chinese (zh), Japanese (ja), and others.
Troubleshooting & Problem Solving
Problem: "Translation fails with 'API limit exceeded' error"
Cause: The translator reached the daily limit (MyMemory 1000 words / day, DeepL free 500k chars / month).
Solution:
- Lower in config.json (e.g. 100 to 50)
- Switch to another provider: (less limits)
- Wait 24 hours for the reset of the rain limit
- Buy an API key (DeepL Pro: โฌ5 +, Google Cloud: free first 0.5M chars)
Problem: "Application is not responsive / graphical interface freezes"
Cause: The operation runs at the main thrad instead of the worker thread.
Solution:
- Close application: Ctrl + Q
- Check for error messages
- Reduce batch _ size (large translationbats block UI)
- Restart application with a flag for verbose output
Problem: "How to add a new language?"
Solutions (graphical interface):
- Click on the tab [REGULATIONS]
- Click [INCLUDING Add Language]
- Select language from drop down (e.g. Italian)
- Click [Start Auto-Translate] โ SmartTranslate Translate All Keys
- Review results in the table (sort by score)
- Click [Apply] โ to save in localize _ data.py
Solution (batch mode):
Problem: "Validation detects placeholders errors"
Cause: Translation increased / reduced {var} placeholder (e.g. {name} โ {n}).
Solution:
- Go to the [VALIDATION] tab
- See the list of "Placeholder Issues" with lines
- Manually correct translations in editor (change {n} back to {name})
- Or click [Auto- Fix Placeholders] (auto-replace)
- Check [Dry-Run] for preview before application
Problem: "I accidentally deleted the file - how to return the backup?"
Solution:
- Go to directories
- Find (with latest date)
- Copy it back to the original place:
- Click [INAUDITION] to verify that all has returned
Problem: "How to run dry-run mode (without real changes)?"
Solutions (graphical interface):
- Check the checkbox [โ Dry Run Mode] at the top bar
- Start any operation (Translate, Fix, etc.)
- You see the preview that would change (without real modification)
- Click [Apply] for the actual application (or [Cancel] for cancellation)
Solution (batch mode):
FAQ (All common questions)
Q: Is LocalizeAdder safe for production? Can I run it at 10,000 plus keys?
A: Yes, quite safe. All operations have backup + dry-run mode + audit trail. It's tested for 10,000 + keys without a problem.
Q: How fast is he translating? What is the typical time for 500 keys?
A: On average 100-200 keys / minute (dependent on the provider). 500 Keys = ~ 3-5 minutes with Google Translat, ~ 10 minutes with DeepLem (due to quality scoring).
Q: Can I scribble / automate LocalizeAdder in CI / CD?
A: Yes, fullCLI mode: , , . For details see below. batch mode section.
Q: What OS supports?
A: Python 3.7 + s PyQt5 โ Windows 7 +, Linux (Debian / Ubuntu), macOS 10.13 +. All the same. "
Q: What is recommended workflow for the team?
A: (1) Audit โ Problem Detection, (2) Translate โ adds new keys to languages, (3) Validate โ finds errors, (4) Fix โ fixes with backup, (5) Export โ XLSX for manual review, (6) Commit โ do git.
Q: Is there an API for programming (except desktop and batch)?
A: Yes, you can import modules: . Details in README.
Q: Where are the logs stored?
A: . The back 5 files are stored, the older files are archived.
Q: How can I change the subject from dark to light?
A: Config โ โ . Or at graphical interface: ITESCETings โ UI Theme.
