LocalizeAdder QT
Qt verze nástroje pro správu lokalizací. Audit, překlady, sync klíčů.
Co projekt řeší
Qt verze nástroje pro správu lokalizací. Audit, překlady, sync klíčů.
Jak aplikace funguje a k čemu slouží
Přehled
LocalizeAdder_QT je profesionální All-in-One Localization Manager pro audit, validaci, opravu a vícejazyčný překlad lokalizačních souborů. Nástroj podporuje jak starou Python-based strukturu (.py) tak nový moderní textový formát (.localize).
- Audit lokalizačních souborů: Statistiky, porovnání jazyků, kontrola integrity
- Automatizovaný překlad: 6 providerů s intelligentním fallbackem
- Validace struktury: Detekce duplicit, chybějících klíčů, strukturálních problémů
- Synchronizace jazyků: Automatická oprava a synchronizace
- Management nových jazyků: Přidání s automatickým překladem ze 60+ jazyků
- grafické rozhraní + dávkový režim: Profesionální Qt5 grafické rozhraní pro operátory, dávkový režim pro automatizaci
Funkce
🔍 Audit modul
Detekuje duplikáty, chybějící klíče, strukturální problémy, porovnání jazyků.
🌐 Smart Translation
6 providerů (Google, DeepL, MyMemory, LibreTranslate, Linguee, Pons) s fallbackem a quality scoring.
✅ Validace
Kontrola formátu, placeholderů, duplicit, emoji umístění, jazykových kódů.
🔧 Auto-Fix
Synchronizace jazyků, přidání chybějících klíčů, oprava struktury s backup.
🌍 60+ jazyků
Kompletní metadata, vlajky (emoji), nativní názvy pro všechny podporované jazyky.
grafické rozhraní Layout, Ovládání & Klávesové zkratky
Hlavní okno (QMainWindow) struktura:
Záložky (detailní obsah každé):
📊 AUDIT: Přehled statistik (počet jazyků, klíčů, problémů), Recent audits tabulka, Health status indikátor (zelená/žlutá/červená), Quick actions buttons (Run Audit, Export Report)
🌍 LANGUAGES: Tabulka všech jazyků (Flag | Code | Name | Total Keys | Missing | Extra | Duplicates | Completeness%), filtrovatelné, sortovatelné, per-language akce (Edit, Translate, Sync)
🔄 FALLBACK: CZ vs EN porovnání, seznam chybějících klíčů v CZ/EN, duplicity report (s počtem výskytů, řádky), Missing in code, Unused in code
📐 STRUCTURE: Pořadí klíčů, per-language seznam s problémy (chybějící # komentáře, whitespace issues, format errors), náhled řádků s chybou
🌐 TRANSLATION: Výběr target jazyka, provider selection, SmartTranslate checkbox, progress bar, tabulka kandidátů s scores (4-way), náhled, Apply button
✅ VALIDATION: Duplicity report, Placeholder issues lista, Format errors (lang_* struktura), Summary, Auto-fix s preview
📋 LOG: Real-time aktivitní záznam (text edit s timestamp), filtry (All/Info/Warning/Error), Clear/Save/Copy akce
Klávesové zkratky:
| Zkratka | Akce |
|---|---|
| Spustit full audit | |
| Spustit validation | |
| Přejít na Translation tab | |
| Exportovat výsledky | |
| Uložit konfiguraci | |
| Exitovat aplikaci | |
| Vyčistit log | |
| Otevřít help | |
| Refresh aktuální záložku |
Datové formáty (.py vs .localize)
Formát #1: .py (Legacy Python dict)
Lokace: APP_DATA/localize_data.py
Příklad:
Výhody .py formátu:
- Nativní Python dict — bez parsing, přímé použití
- Historické (existující v projektu od začátku)
- Můžete přidat logiku/dynamiku (computed keys)
Nevýhody .py formátu:
- Syntaktická chyba = celý modul se nenahraje
- Složitější version control (diffs jsou veliké)
- Nebezpečné editovat bez IDE (Python syntax)
Formát #2: .localize (Nový textový formát — doporučený)
Lokace: APP_DATA/*.localize (např. lokalizedata.localize, mavi.localize)
Příklad:
Výhody .localize formátu:
- Textový, čitelný — snadné editovat
- INI-like struktura — parsuje se snadno
- Bezpečnější — syntax chyba nehorší (ignoruje se řádek)
- Git friendly — čisteší diffs
- Trans friendly — standard pro gettext-like nástroje
Nevýhody .localize formátu:
- Nový, méně zkušeností v projektu
- Parsing je nutný (malá overhead, ~ <10ms)
Konverze .py → .localize:
Reálné operační scénáře
Scénář 1: Přidání nového jazyka (Italština)
- Otevřete aplikaci → jdete na [✅ LANGUAGES]
- Klikněte [➕ Add Language]
- Vyberte "🇮🇹 Italština (it)" z dropdown
- Zaškrtněte [Auto-Translate using SmartTranslation]
- Klikněte [Start] → system začíná překlad (4-way: CZ→IT + EN→IT s oběma providery)
- Progress bar se pohybuje (0% → 50% → 100%)
- Finish → tabulka s 450 kandidáty (každý s score 50-150)
- Proveďte spot-check (zvolte 5-10 náhodných klíčů, ověřte kvalitu)
- Klikněte [Apply] → uloží se do `APP_DATA/localize_data.py`
- Commit: `git commit -m "Add Italian language (it) with auto-translations"`
Scénář 2: Update existující překladu (Němčina po změně CZ textu)
- Před týdnem byl vytvořen překlad do Němčiny
- Dnes se změní v CZ: "Ahoj" → "Vítejte"
- Otevřete app → [🌍 LANGUAGES] → klikněte na DE → [Translate Changed Keys]
- System detekuje: "msg_hello" se změnil (old: 'Ahoj', new: 'Vítejte')
- SmartTranslate automaticky přeloží jen změněné klíče (zbývajících 449 bere z cache)
- Překlad: "Vítejte" → "Willkommen" (score: 95)
- Klikněte [Apply] → aktualizuje se pouze změ klíč v DE
- Validace → ✅ vše OK
- Commit: `git commit -m "Update German translation for msg_hello"`
Scénář 3: Oprava strukturálních problémů (Duplicity a chybějícíí emoji)
- Audit detekuje: duplicita "msg_exit" (řádek 150 a 175), chybějící emoji v "lang_it"
- Přejděte na [✅ VALIDATION] → vidíte seznam problémů
- Zaškrtněte [Dry Run Mode] a klikněte [Auto-Fix All]
- Preview: "Odstraní duplicitu (ponechá #1), přidá emoji 🇮🇹 k lang_it"
- Zkontrolujete a klikněte [Apply] → skutečná oprava se provede
- Backup vytvoří `backup_localize_data_2026-02-21_14-30-00.py`
- Redo Audit → ✅ vše OK (0 problémů)
- Commit: `git commit -m "Fix: Remove duplicates, add emoji to lang_it"`
Formáty dat
.py formát (Legacy):
.localize formát (Nový, textový, bezpečnější):
Podporované jazyky
60+ jazyků s kompletní metadata: ISO kódy, vlajky (emoji), nativní názvy, specifika.
Příklady: čeština (cs/cz), angličtina (en), němčina (de), francouzština (fr), španělština (es), ruština (ru), čínština (zh), japonština (ja), a další.
Troubleshooting & Řešení problémů
Problém: "Překlad selhává s chybou 'API limit exceeded'"
Příčina: Překladač dosáhl denního limitu (MyMemory 1000 slov/den, DeepL free 500k chars/měsíc).
Řešení:
- Snižte v config.json (např. z 100 na 50)
- Přepněte na jiného providera: (méně limitů)
- Počkejte 24 hodin na reset déního limitu
- Koupit si API klíč (DeepL Pro: €5+, Google Cloud: zdarma prvních 0.5M chars)
Problém: "Aplikace není reaguje / grafické rozhraní zamrzává"
Příčina: Operace běží na main threadu místo worker threadu.
Řešení:
- Zavřete aplikaci: Ctrl+Q
- Zkontrolujte pro error messages
- Snižte batch_size (velké translationbatches zablokují UI)
- Restartujte aplicaci s flagem pro verbózní output
Problém: "Jak přidat nový jazyk?"
Řešení (grafické rozhraní):
- Klikněte na záložku [✅ LANGUAGES]
- Klikněte [ ➕ Add Language]
- Vyberte jazyk z dropdown (např. Italština)
- Klikněte [Start Auto-Translate] → SmartTranslate přeloží všechny klíče
- Review výsledky v tabulce (sort by score)
- Klikněte [Apply] → uloží se do localize_data.py
Řešení (dávkový režim):
Problém: "Validace detekuje placeholdery chyby"
Příčina: Překlad zvětšil/zmenšil {var} placeholdery (např. {name} → {n}).
Řešení:
- Přejděte na záložku [✅ VALIDATION]
- Vidíte seznam "Placeholder Issues" s řádkům
- Ručně opravte překlady v editor (změňte {n} zpět na {name})
- Nebo klikněte [Auto-Fix Placeholders] (auto-replace)
- Zaškrtněte [Dry-Run] pro preview před aplikací
Problém: "Smazal jsem omylem soubor — jak vrátit backup?"
Řešení:
- Přejděte do adresáře
- Najděte (s nejnovějším datumem)
- Zkopírujte jej zpět na původní místo:
- Klikněte [🔄 Audit] pro ověření, že se vrátilo vše
Problém: "Jak spustit dry-run mode (bez skutečných změn)?"
Řešení (grafické rozhraní):
- Zaškrtněte checkbox [☐ Dry Run Mode] v horní liště
- Spusťte jakoukoli operaci (Translate, Fix, atd.)
- Vidíte preview co by se změnilo (bez skutečné úpravy)
- Klikněte [Apply] pro skutečnou aplikaci (nebo [Cancel] pro zrušení)
Řešení (dávkový režim):
FAQ (Všechna časté otázky)
Q: Je LocalizeAdder bezpečný na produkci? Mohu ho spustit na 10,000+ klíčů?
A: Ano, zcela bezpečný. Všechny operace mají backup + dry-run mode + audit trail. Testuje se na 10,000+ klíčích bez problému.
Q: Jak rychle překládá? Jaká je typická doba pro 500 klíčů?
A: V průměru 100-200 klíčů/minutu (závislé na provideru). 500 klíčů = ~3-5 minut s Google Translatem, ~10 minut s DeepLem (kvůli quality scoringu).
Q: Můžu LocalizeAdder scriptnout/automatizovat v CI/CD?
A: Ano, fullCLI mode: , , . Podrobnosti viz. dávkový režim sekce.
Q: Jaké OS podporuje?
A: Python 3.7+ s PyQt5 → Windows 7+, Linux (Debian/Ubuntu), macOS 10.13+. Všechny stejnými."
Q: Jaký je doporučený workflow pro tým?
A: (1) Audit → detekce problémů, (2) Translate → přidá nové klíče do jazyků, (3) Validate → najde chyby, (4) Fix → opraví s backup, (5) Export → XLSX pro manual review, (6) Commit → do git.
Q: Existuje API pro programmatické použití (mimo grafická a dávková)?
A: Ano, můžete importovat moduly: . Podrobnosti v README.
Q: Kde jsou logy uloženy?
A: . Zadní 5 souborů se uchovává, starší se archivují.
Q: Jak mohu změnit téma z dark na light?
A: Config → → . Nebo v grafické rozhraní: ⚙️ Settings → UI Theme.
