# 🌐 i18n Duplikált Kulcsok Összehasonlító Elemzése **Dátum:** 2026-06-19 **Készítette:** Rendszer-Architect **Cél:** Nyelvi modulok (i18n) kulcsainak felmérése, duplikációk azonosítása, optimalizálási javaslat --- ## 1. Feltárt Fájlok Áttekintése Összesen **8 i18n fájl** található a projektben, két elkülönült rendszerben: ### 1.1 Frontend (vue-i18n, TypeScript) — `frontend/src/i18n/` | Fájl | Sorok | Hatókör | Státusz | |------|-------|---------|---------| | en.ts | ~1603 | Teljes (25 szekció) | ✅ Teljes | | hu.ts | ~1600 | Teljes (25 szekció) | ✅ Teljes | | de.ts | ~83 | Részleges: menu, header, dashboard, zen, auth | ⚠️ Hiányos | | ro.ts | ~83 | Részleges: menu, header, dashboard, zen, auth | ⚠️ Hiányos | | cz.ts | ~83 | Részleges: menu, header, dashboard, zen, auth | ⚠️ Hiányos | | sk.ts | ~83 | Részleges: menu, header, dashboard, zen, auth | ⚠️ Hiányos | ### 1.2 Backend (statikus JSON) — `backend/static/locales/` | Fájl | Sorok | Hatókör | Státusz | |------|-------|---------|---------| | en.json | ~76 | AUTH, SENTINEL, EMAIL, ORGANIZATION | ✅ Teljes | | hu.json | ~83 | AUTH, SENTINEL, EMAIL, ORGANIZATION | ⚠️ Aszimmetrikus | > **⚠️ Fontos:** A frontend és backend rendszerek **teljesen elkülönülnek**. Más kulcs-sémát használnak (dot-notation vs UPPER_SNAKE_CASE), így közöttük NINCS duplikáció. --- ## 2. Frontend Kulcsok Hierarchikus Szerkezete A frontend i18n rendszer 25 gyökér-szekcióra tagolódik: ``` common (9 kulcs) — Általános (cancel, save, select, year, mileage, stb.) subscription (11) — Előfizetések landing (20+) — Nyitóoldal menu (8) — Navigációs menü garage (18) — Garázs felület vehicleDetail (20+) — Jármű részletek header (35+) — Fejléc dashboard (40+) — Irányítópult finance (25+) — Pénzügyi motor zen (2) — Zen mód auth (50+) — Bejelentkezés, regisztráció profile (60+) — Felhasználói profil kyc (20+) — KYC verifyEmail (15+) — E-mail megerősítés company (70+) — Cég műveletek organization (2) — Szervezeti név address (7) — Cím komponensek servicebook (15+) — Szervizkönyv vehicle (200+) — Jármű adatok serviceFinder (30+) — Szervizkereső provider (60+) — Szolgáltató adatok categories (4) — Kategóriák gamification (2) — Gamifikáció admin.services (20+) — Admin: szolgáltatások admin.packages (30+) — Admin: csomagok admin.users (30+) — Admin: felhasználók ``` --- ## 3. Duplikált Kulcsok Kategorizált Listája ### 3.1 ✅ Pontos Egyezések (Biztonságosan Összevonható) Ezek a kulcsok **angolban és magyarban is azonos értéket** adnak vissza. Egyetlen közös kulccsá vonhatók össze. | # | Érintett Kulcsok | EN érték | HU érték | Előfordulás | |---|-----------------|----------|----------|-------------| | 1 | common.cancel / profile.cancel / servicebook.cancel | "Cancel" | "Mégse" | **3 helyen** | | 2 | common.save / profile.save | "Save" | "Mentés" | **2 helyen** | | 3 | common.saving / servicebook.saving / vehicle.saving / admin.services.saving / admin.packages.saving | "Saving..." | "Mentés..." | **5 helyen** | | 4 | common.back / kyc.back / company.back | "Back" | "Vissza" | **3 helyen** | | 5 | common.mileage / garage.mileage / vehicleDetail.mileage | "Mileage" | "Futásteljesítmény" | **3 helyen** | | 6 | common.year / garage.year | "Year" | "Évjárat" | **2 helyen** | | 7 | common.retry / dashboard.errorRetry | "Retry" | "Újrapróbálkozás" | **2 helyen** | | 8 | garage.noPlate / vehicleDetail.noPlate | "No Plate" | "Nincs rendszám" | **2 helyen** | | 9 | garage.nextService / vehicleDetail.nextService / vehicle.nextService | "Next Service" | "Következő Szerviz" | **3 helyen** | | 10 | vehicleDetail.noData / vehicle.noData | "No data" | "Nincs adat" | **2 helyen** | | 11 | header.subtitle / dashboard.subtitle | "Your dashboard and vehicle overview" | "Irányítópultod és járműveid áttekintése" | **2 helyen ⭐** | | 12 | garage.backToGarage / profile.backToGarage | "Back to Garage" | "Vissza a Garázsba" | **2 helyen** | | 13 | header.profile / profile.title | "Profile Settings" | "Profil beállítások" | **2 helyen** | | 14 | dashboard.statusActive / company.fleetActive / admin.users.status_active | "Active" | "Aktív" | **3 helyen** | | 15 | vehicleDetail.vin / vehicle.label_vin | "VIN (Chassis Number)" | "Alvázszám (VIN)" | **2 helyen** | | 16 | kyc.country / company.country / profile.country | "Country" | "Ország" | **3 helyen** | | 17 | kyc.zipCode / company.zipCode / profile.zipCode | "ZIP Code" | "Irányítószám" | **3 helyen** | | 18 | kyc.city / company.city / profile.city | "City" | "Város" | **3 helyen** | | 19 | kyc.houseNumber / company.houseNumber / profile.houseNumber | "House Number" | "Házszám" | **3 helyen** | | 20 | profile.stairwell / company.stairwell | "Stairwell" | "Lépcsőház" | **2 helyen** | | 21 | profile.floor / company.floor | "Floor" | "Emelet" | **2 helyen** | | 22 | profile.door / company.door | "Door" | "Ajtó" | **2 helyen** | | 23 | profile.parcelId / company.parcelId | "Parcel ID" | "Helyrajzi szám" | **2 helyen** | | 24 | kyc.streetName / company.streetName / provider.streetNameLabel | "Street Name" | "Utca neve" | **3 helyen** | | 25 | kyc.streetType / company.streetType | "Type" | "Típus" | **2 helyen** | > ⭐ A **#11** (header.subtitle = dashboard.subtitle) a legszembetűnőbb: **teljesen azonos mondat**, mindkét nyelven. Egyértelműen összevonandó. ### 3.2 ⚠️ Kis Eltéréssel (Egyedi Kontextus, Megfontolandó) | # | Érintett Kulcsok | EN érték | HU érték(ek) | Megjegyzés | |---|-----------------|----------|-------------|------------| | 26 | common.cancel vs company.cancel vs admin.services.cancel | "Cancel" | "Mégse" / "Mégsem" | "Mégsem" elütés? | | 27 | finance.retry vs common.retry vs dashboard.errorRetry | "Retry" | "Újra" / "Újrapróbálkozás" | finance.retry rövidebb | | 28 | vehicleDetail.vin vs vehicle.label_vin | "VIN" / "VIN (Chassis Number)" | "Alvázszám (VIN)" | EN nem azonos | | 29 | company.streetType vs profile.streetType | "Type" / "Street Type" | "Típus" / "Közterület jellege" | Profile formalisabb | | 30 | company.email vs provider.emailLabel | "Email" / "Email" | "E-mail" / "E-mail cím" | Provider explicitabb | | 31 | company.phone vs provider.phoneLabel | "Phone" / "Phone" | "Telefonszám" / "Telefon" | Különböző hossz | | 32 | dashboard.addVehicle vs menu.addVehicle | "+ Add Vehicle" / "+ Add New Vehicle" | "+ Jármű Hozzáadása" / "+ Új Jármű Hozzáadása" | Menü-ben "New" | ### 3.3 🔄 Jármű Funkciók Átfedései A vehicle.features (~130), vehicle.motorcycleFeatures (~70), vehicle.lcvFeatures (~40) és vehicle.hgvFeatures (~90) között jelentős átfedés. #### Pontos egyezések (összevonható): | Kulcs | EN | HU | Érintett szekciók | |-------|----|----|------------------| | cruise_control | "Cruise Control" | "Tempomat" | features, motorcycleFeatures, lcvFeatures | | alloy_wheels | "Alloy Wheels" | "Könnyűfém felni" | features, lcvFeatures | | garage_kept | "Garage Kept" | "Garázsban tartott" | features, motorcycleFeatures | | xenon_headlights | "Xenon Headlights" | "Xenon fényszóró" | features, lcvFeatures | | fog_lights | "Fog Lights" | "Ködlámpa" | features, lcvFeatures | | sunroof | "Sunroof" | "Napfénytető" | features, lcvFeatures | | heated_seat | "Heated Seat" | "Fűthető ülés" | motorcycleFeatures, lcvFeatures | | navigation | "Navigation (GPS)" | "Navigáció (GPS)" | features, hgvFeatures | | apple_carplay | "Apple CarPlay" | "Apple CarPlay" | features, hgvFeatures | | android_auto | "Android Auto" | "Android Auto" | features, hgvFeatures | | bluetooth | "Bluetooth" | "Bluetooth" | features, hgvFeatures | | wireless_charging | "Wireless Charging" | "Vezeték nélküli töltő" | features, hgvFeatures | | dab_radio | "DAB+ Digital Radio" | "DAB+ digitális rádió" | features, hgvFeatures | | premium_sound | "Premium Sound System" | "Prémium hangrendszer" | features, hgvFeatures | | wifi_hotspot | "WiFi Hotspot" | "WiFi Hotspot" | features, hgvFeatures | | adaptive_cruise | "Adaptive Cruise Control (ACC)" | "Adaptív tempomat (ACC)" | features, hgvFeatures | | 360_camera | "360° Camera" | "360°-os kamera" | features, hgvFeatures | | parking_sensors_rear | "Rear Parking Sensors" | "Hátsó parkolóérzékelők" | features, lcvFeatures | #### Eltérő magyar fordítás (manuális átgondolást igényel): | Kulcs | EN (features) | EN (másik) | HU (features) | HU (másik) | Forrás | |-------|--------------|------------|---------------|------------|--------| | abs | "ABS" | "ABS" | "ABS" | "ABS (blokkolásgátló)" | motorcycleFeatures | | gps_tracker | "GPS Tracker" | "GPS Tracker" | "GPS követő" | "GPS nyomkövető" | lcvFeatures, hgvFeatures | | alarm | "Alarm System" | "Alarm" | "Riasztórendszer" | "Riasztó" | motorcycleFeatures, lcvFeatures | | first_owner | "First Owner" | "First Owner" | "Első tulajdonos" | "Első tulajdonostól" | motorcycleFeatures | | service_book | "Service Book" | "Service Book" | "Szervizkönyvvel" | "Szervizkönyv" | motorcycleFeatures | | isofix | "ISOFIX" | "ISOFIX Child Seat Anchors" | "Isofix" | "Isofix gyerekülés rögzítés" | lcvFeatures | | tow_bar | "Tow Bar" | "Tow Bar" | "Vontatóhorog (vonóhorog)" | "Vontatóhorog" | lcvFeatures | | usb_charging | "USB Charging" | "USB Charging" | "USB töltőcsatlakozó" | "USB töltő" | hgvFeatures | | subwoofer | "Subwoofer" | "Subwoofer" | "Mélynyomó (Subwoofer)" | "Mélynyomó" | hgvFeatures | | rear_entertainment | "Rear Entertainment" | "Rear Entertainment System" | "Hátsó szórakoztató rendszer" | "Hátsó szórakoztató rendszer" | hgvFeatures | | traction_control | "Traction Control (TCS)" | "Traction Control" | "Kipörgésgátló (TCS)" | "Kipörgésgátló" | hgvFeatures | --- ## 4. Backend JSON Aszimmetria ### en.json vs hu.json | Kulcs | en.json | hu.json | Státusz | |-------|---------|---------|---------| | AUTH.ERROR.UNAUTHORIZED | ✅ "Unauthorized access" | ❌ **HIÁNYZIK** | Pótlandó hu.json-ban | | COMMON.SAVE_SUCCESS | ❌ **HIÁNYZIK** | ✅ "Sikeres mentés!" | Pótlandó en.json-ban | | SENTINEL.APPROVAL.REQUIRED | ❌ **HIÁNYZIK** | ✅ "A kérelem jóváhagyása szükséges" | Pótlandó en.json-ban | A fennmaradó ~40 kulcs mindkét fájlban azonos szerkezetű. --- ## 5. Hiányos Fordítások (de, ro, cz, sk) A 4 részleges fájl mindegyike **csak 5 szekciót** fed le a 25-ből: | Szekció | de.ts | ro.ts | cz.ts | sk.ts | |---------|-------|-------|-------|-------| | menu | ✅ | ✅ | ✅ | ✅ | | header | ✅ | ✅ | ✅ | ✅ | | dashboard | ✅ | ✅ | ✅ | ✅ | | zen | ✅ | ✅ | ✅ | ✅ | | auth | ✅ | ✅ | ✅ | ✅ | | Többi 20 szekció | ❌ | ❌ | ❌ | ❌ | **Hiányzó:** common, subscription, landing, garage, vehicleDetail, finance, profile, kyc, verifyEmail, company, organization, address, servicebook, vehicle, serviceFinder, provider, categories, gamification, admin --- ## 6. Statisztikai Összesítés | Mérőszám | Érték | |----------|-------| | Összes i18n fájl | **8 db** (6 frontend + 2 backend) | | Frontend teljes kulcsok (en.ts) | **~900+** egyedi kulcs | | Frontend hiányos fájlok | **4 db** (de, ro, cz, sk) — csak 20% lefedettség | | Backend teljes kulcsok | **~55** db | | **Pontos duplikációk (összevonható)** | **25 csoport**, ~60 kulcs érintett | | **Közel-duplikációk (felülvizsgálandó)** | **7 csoport**, ~15 kulcs érintett | | **Jármű feature átfedések (pontos)** | **18 csoport**, ~50 kulcs érintett | | **Jármű feature átfedések (eltérő)** | **11 csoport**, ~25 kulcs érintett | | **Backend hiányzó kulcsok** | **3 db** | | **Összes optimalizálható kulcs** | **~150+** (a ~900-ból) ≈ **16-17%** | --- ## 7. Optimalizálási Javaslat ### 7.1 Azonnal összevonható (25 csoport) Javasolt elnevezési konvenció: A leggyakrabban használt kulcsot tartsuk meg (pl. common), a többit alias-ként hivatkozzuk rá. ### 7.2 Jármű feature-ök konszolidációja Javasolt struktúra: egy központi `vehicle.features` szekció, a motorcycleFeatures/lcvFeatures/hgvFeatures pedig hivatkozzon rá. Az eltérő magyar fordításokat egységesíteni kell. ### 7.3 Backend hiányzó kulcsok pótlása - AUTH.ERROR.UNAUTHORIZED → hozzáadandó a hu.json-hoz - COMMON.SAVE_SUCCESS → hozzáadandó az en.json-hoz - SENTINEL.APPROVAL.REQUIRED → hozzáadandó az en.json-hoz ### 7.4 Várakozó lista (nem sürgős) A 4 hiányos fordítást (de, ro, cz, sk) csak az optimalizálás után érdemes bővíteni. --- ## 8. Összefoglaló A frontend i18n rendszerben **~150 kulcs (16-17%)** duplikált vagy átfedő. Összevonásukkal: - **Karbantarthatóság javul:** egy helyen módosítandó fordítás - **Konzisztencia nő:** nem jelenhet meg kétféleképp ugyanaz - **Fájlméret csökken:** ~5-10% méretcsökkenés - **Backend hiba javul:** 3 hiányzó kulcs pótlása **A véglegesítéshez kérjük a felhasználó jóváhagyását.**