Files
service-finder/docs/i18n_duplicate_key_analysis.md
2026-06-19 09:09:24 +00:00

13 KiB

🌐 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.