Baz00k@
LocalizeAdder QT Icon
System / Development

LocalizeAdder QT

0.1.0.7

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:

ShortcutEvent
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)

  1. Open the application โ†’ You go to [VIOLANGUAGES]
  2. Click [INCLUDING Add Language]
  3. Select "Italian (it)" from Dropdown
  4. Check [Auto- Translate using SmartTranslation]
  5. Click [Start] โ†’ system starts translation (4-way: CZ โ†’ IT + EN โ†’ IT with both providers)
  6. Progress bar is moving (0% โ†’ 50% โ†’ 100%)
  7. Finish โ†’ Table with 450 candidates (each with score 50-150)
  8. Check spot-check (choose 5-10 random keys, check quality)
  9. Click [Apply] โ†’ to save in 'APP _ DATA / localize _ data.py'
  10. Commit: 'git commit -m' Add Italian language (it) with autotranslation ''

Scenario 2: Update existing translation (German after change of CZ text)

  1. A week ago, a translation into German was created.
  2. Today it will turn into CZ: "Hello" โ†’ "Welcome"
  3. Open App โ†’ [REGULATIONS] โ†’ click DE โ†’ [Translate Changed Keys]
  4. System detects: "msg _ hello" has changed (old: 'Hello', new: 'Welcome')
  5. SmartTranslate automatically translate only changed keys (the remaining 449 takes from cache)
  6. โ™ช
  7. Click [Apply] โ†’ Only the key in DE is updated
  8. Validation โ†’ All OK
  9. Commit: 'git commit -m' Update German translation for msg _ hello ''

Scenario 3: Correction of structural problems (Duplicity and missing emes)

  1. Audit detects: duplicate "msg _ exit" (row 150 and 175), missing emes in "lang _ it"
  2. Go to [VALIDATION] โ†’ See the list of problems
  3. Check [Dry Run Mode] and click [AutoFix All]
  4. Preview: "Deletes duplicity (leaves # 1), adds emme to lang _ it"
  5. Check and click [Apply] โ†’ the actual repair will be done
  6. Backup creates' backup _ localize _ data _ 2026 -02-21 _ 14-30-00.py'
  7. Redo Audit โ†’ All OK (0 problems)
  8. 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:

  1. Lower in config.json (e.g. 100 to 50)
  2. Switch to another provider: (less limits)
  3. Wait 24 hours for the reset of the rain limit
  4. 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:

  1. Close application: Ctrl + Q
  2. Check for error messages
  3. Reduce batch _ size (large translationbats block UI)
  4. Restart application with a flag for verbose output

Problem: "How to add a new language?"

Solutions (graphical interface):

  1. Click on the tab [REGULATIONS]
  2. Click [INCLUDING Add Language]
  3. Select language from drop down (e.g. Italian)
  4. Click [Start Auto-Translate] โ†’ SmartTranslate Translate All Keys
  5. Review results in the table (sort by score)
  6. 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:

  1. Go to the [VALIDATION] tab
  2. See the list of "Placeholder Issues" with lines
  3. Manually correct translations in editor (change {n} back to {name})
  4. Or click [Auto- Fix Placeholders] (auto-replace)
  5. Check [Dry-Run] for preview before application

Problem: "I accidentally deleted the file - how to return the backup?"

Solution:

  1. Go to directories
  2. Find (with latest date)
  3. Copy it back to the original place:
  4. Click [INAUDITION] to verify that all has returned

Problem: "How to run dry-run mode (without real changes)?"

Solutions (graphical interface):

  1. Check the checkbox [โ˜ Dry Run Mode] at the top bar
  2. Start any operation (Translate, Fix, etc.)
  3. You see the preview that would change (without real modification)
  4. 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.