M3: Admin nyelvválasztó átalakítása legördülő menüvé #376

Closed
opened 2026-06-30 21:46:09 +02:00 by kincses · 3 comments
Owner

Mérföldkő: Frontend Admin i18n Restruktúrálás
Cél: A jelenlegi kétállású HU/EN kapcsoló átalakítása bővíthető, legördülő nyelvválasztó dropdownná, amely a backend-ből érkező támogatott nyelveket listázza

🔗 Függőségek (Dependencies)

  • Bemenet (Mikre támaszkodik): M2 (fájlok oldalakra bontása) - a moduláris struktúra teszi lehetővé az új nyelvek egyszerű hozzáadását; frontend_admin/layouts/default.vue (jelenlegi kapcsoló az 158-170. sorokban)
  • Kimenet (Mik támaszkodnak rá): M4 (új nyelvek bevezetése) - a dropdown infrastruktúra előfeltétele a további nyelveknek

📝 Elemzés

A jelenlegi megvalósítás a default.vue 158-170. soraiban egy egyszerű two-state toggle: HU/EN gombpár, fix CSS osztályokkal. Ez nem skálázható 3+ nyelvre. A javasolt megoldás: egy teljes értékű select/dropdown komponens, amely támogatja a zászló emoji-kat, a nyelv nevét az adott nyelven, és a localStorage + backend API (PATCH /auth/me/language) együttes kezelését. A kód tartalmazza a pillanatnyi nyelvváltást vue-i18n setLocale() segítségével, majd a backend perzisztálást.

**Mérföldkő:** Frontend Admin i18n Restruktúrálás **Cél:** A jelenlegi kétállású HU/EN kapcsoló átalakítása bővíthető, legördülő nyelvválasztó dropdownná, amely a backend-ből érkező támogatott nyelveket listázza ### 🔗 Függőségek (Dependencies) - **Bemenet (Mikre támaszkodik):** M2 (fájlok oldalakra bontása) - a moduláris struktúra teszi lehetővé az új nyelvek egyszerű hozzáadását; frontend_admin/layouts/default.vue (jelenlegi kapcsoló az 158-170. sorokban) - **Kimenet (Mik támaszkodnak rá):** M4 (új nyelvek bevezetése) - a dropdown infrastruktúra előfeltétele a további nyelveknek ### 📝 Elemzés A jelenlegi megvalósítás a default.vue 158-170. soraiban egy egyszerű two-state toggle: HU/EN gombpár, fix CSS osztályokkal. Ez nem skálázható 3+ nyelvre. A javasolt megoldás: egy teljes értékű select/dropdown komponens, amely támogatja a zászló emoji-kat, a nyelv nevét az adott nyelven, és a localStorage + backend API (PATCH /auth/me/language) együttes kezelését. A kód tartalmazza a pillanatnyi nyelvváltást vue-i18n setLocale() segítségével, majd a backend perzisztálást.
kincses added the Status: To DoType: Feature labels 2026-06-30 21:46:09 +02:00
kincses added Status: In Progress and removed Status: To Do labels 2026-06-30 22:08:39 +02:00
kincses started working 2026-06-30 22:08:39 +02:00
Author
Owner

▶️ Munka megkezdve: 2026-06-30 22:08:39

▶️ **Munka megkezdve:** 2026-06-30 22:08:39
kincses added Status: Done and removed Status: In Progress labels 2026-06-30 22:12:34 +02:00
kincses worked for 3 minutes 2026-06-30 22:12:34 +02:00
Author
Owner

Munka befejezve: 2026-06-30 22:12:34

Technikai Összefoglaló:
LanguageSwitcher dropdown komponens létrehozva (zászló emoji, dinamikus locale lista, backend PATCH perzisztálás, localStorage). default.vue-ból eltávolítva a régi gomb-alapú kapcsoló és a felesleges i18n logika. Nuxt production build: Sikeres.

⏱️ Az idő rögzítve.

✅ **Munka befejezve:** 2026-06-30 22:12:34 **Technikai Összefoglaló:** LanguageSwitcher dropdown komponens létrehozva (zászló emoji, dinamikus locale lista, backend PATCH perzisztálás, localStorage). default.vue-ból eltávolítva a régi gomb-alapú kapcsoló és a felesleges i18n logika. Nuxt production build: ✅ Sikeres. ⏱️ *Az idő rögzítve.*
Author
Owner

#376 - M3: Admin nyelvválasztó átalakítása legördülő menüvé — KÉSZ

Végrehajtott módosítások:

1. frontend_admin/components/LanguageSwitcher.vueLÉTREHOZVA

  • Teljes értékű dropdown komponens a régi kétállású gombkapcsoló helyett
  • Zászló emoji-k: 🇭🇺 (hu), 🇬🇧 (en)
  • Dinamikus locale lista a nuxt.config.ts-ből (locales tömb)
  • Nyelv neve az adott nyelven (pl. "Magyar", "English")
  • Háromrétegű perzisztálás:
    1. Vue-i18n locale azonnali váltása
    2. localStorage.setItem('preferred_language', code) — offline tárolás
    3. Backend API: PATCH /api/v1/auth/me/language — szerveroldali perzisztálás
  • Külső kattintásra záródó dropdown (handleClickOutside)

2. frontend_admin/layouts/default.vueMÓDOSÍTVA

  • 157-170. sorok: régi gomb-alapú kapcsoló (v-for="locale in availableLocales") kicserélve <LanguageSwitcher /> komponensre
  • Script részből eltávolítva: useI18n import, availableLocales/currentLocale computed-ok, getAuthHeaders(), switchLocale() függvény (~25 sor)

Ellenőrzés:

  • Nuxt production build: Sikeres (0 hiba)
## ✅ #376 - M3: Admin nyelvválasztó átalakítása legördülő menüvé — KÉSZ ### Végrehajtott módosítások: **1. [`frontend_admin/components/LanguageSwitcher.vue`](frontend_admin/components/LanguageSwitcher.vue)** — **LÉTREHOZVA** - Teljes értékű dropdown komponens a régi kétállású gombkapcsoló helyett - Zászló emoji-k: `🇭🇺` (hu), `🇬🇧` (en) - Dinamikus locale lista a `nuxt.config.ts`-ből (`locales` tömb) - Nyelv neve az adott nyelven (pl. "Magyar", "English") - **Háromrétegű perzisztálás:** 1. Vue-i18n `locale` azonnali váltása 2. `localStorage.setItem('preferred_language', code)` — offline tárolás 3. Backend API: `PATCH /api/v1/auth/me/language` — szerveroldali perzisztálás - Külső kattintásra záródó dropdown (`handleClickOutside`) **2. [`frontend_admin/layouts/default.vue`](frontend_admin/layouts/default.vue)** — **MÓDOSÍTVA** - 157-170. sorok: régi gomb-alapú kapcsoló (`v-for="locale in availableLocales"`) kicserélve `<LanguageSwitcher />` komponensre - Script részből eltávolítva: `useI18n` import, `availableLocales`/`currentLocale` computed-ok, `getAuthHeaders()`, `switchLocale()` függvény (~25 sor) ### Ellenőrzés: - Nuxt production build: ✅ **Sikeres** (0 hiba)
Sign in to join this conversation.