Settings-page prefs (theme/scheme/dark-mode/list-view/perf/hints/font + the
notification settings) were each auto-saved to the server on every toggle via
fire-and-forget savePrefs().catch(() => {}) — silent on failure, and no
positive confirmation on success, so the user had zero feedback either way.
Make them a draft instead: changes apply locally for instant preview but
persist only on an explicit Save (or revert on Discard). App owns the live
draft + the last-saved baseline, computes dirty, and exposes a controller to
the panel. The panel shows a Save/Discard bar with 'Saving…' → 'Settings
saved' (auto-clearing) / 'Couldn't save' feedback. Leaving the page with
unsaved changes prompts a confirm (in-app nav + browser Back), and a
beforeunload guards reload/close. savePrefs is now idempotent so the Save
survives a transient gateway blip; failures surface via the connection-lost
status. Language & sidebar layout stay instant (edited outside this page).
New i18n keys settings.save.* / settings.unsaved.* in EN/HU/DE.
133 lines
8.1 KiB
JSON
133 lines
8.1 KiB
JSON
{
|
|
"title": "Beállítások",
|
|
"tabs": {
|
|
"appearance": "Megjelenés",
|
|
"notifications": "Értesítések",
|
|
"sync": "Szinkronizálás",
|
|
"account": "Fiók"
|
|
},
|
|
"save": {
|
|
"unsaved": "Nem mentett változások",
|
|
"saving": "Mentés…",
|
|
"saved": "Beállítások elmentve",
|
|
"failed": "Nem sikerült menteni",
|
|
"save": "Mentés",
|
|
"discard": "Elvetés"
|
|
},
|
|
"unsaved": {
|
|
"title": "Nem mentett változások",
|
|
"message": "Vannak nem mentett beállításaid. Elveted őket és továbblépsz?",
|
|
"discard": "Változások elvetése"
|
|
},
|
|
"appearance": {
|
|
"colorScheme": "Színséma",
|
|
"display": "Megjelenítés",
|
|
"darkMode": "Sötét mód",
|
|
"listView": "Listanézet",
|
|
"listViewHint": "A hírfolyam kompakt listaként jelenik meg a kártyarács helyett.",
|
|
"performanceMode": "Teljesítmény mód",
|
|
"performanceModeHint": "Kikapcsolja az áttetsző üvegelmosást és a lágy árnyékokat a gyorsabb megjelenítésért lassabb gépeken.",
|
|
"showHints": "Tippek megjelenítése",
|
|
"showHintsHint": "Ezek a kis lebegő magyarázatok. Kapcsold ki őket, ha már kiismerted magad.",
|
|
"textSize": "Betűméret"
|
|
},
|
|
"notifications": {
|
|
"title": "Értesítések",
|
|
"sound": "Hang riasztásoknál",
|
|
"soundHint": "Rövid hangjelzés, ha egy értesítés a figyelmedet igényli (pl. hibák, kérdések).",
|
|
"autoDismiss": "Buborékok automatikus eltüntetése",
|
|
"autoDismissHint": "Kikapcsolva a felugró buborékok addig maradnak, amíg be nem zárod őket. Bekapcsolva a beállított idő után elhalványulnak.",
|
|
"dismissAfter": "Eltüntetés ennyi után",
|
|
"sendTest": "Tesztértesítés küldése",
|
|
"testTitle": "Tesztértesítés",
|
|
"testMessage": "Így néz ki egy értesítés."
|
|
},
|
|
"sync": {
|
|
"myStatus": "Saját szinkronizálási állapot",
|
|
"channels": "Csatornák",
|
|
"channelsHint": "Hány csatornára vagy feliratkozva.",
|
|
"recentSynced": "Friss szinkronizálva",
|
|
"recentSyncedHint": "Azok a csatornák, amelyek legutóbbi feltöltései (~az elmúlt év) már a helyi adatbázisban vannak, így megjelennek a hírfolyamodban.",
|
|
"fullHistory": "Teljes előzmény",
|
|
"fullHistoryHint": "Azok a csatornák, amelyek teljes archívuma letöltődött, azokból, amelyekhez teljes előzményt kértél (csatornánként választható a Csatornák oldalon).",
|
|
"fullHistoryEta": "Teljes előzmény becsült ideje",
|
|
"fullHistoryEtaHint": "Hozzávetőleges becslés {{count}} függőben lévő csatorna teljes előzményének letöltéséhez, a megosztott napi kvóta alapján.",
|
|
"myVideos": "Saját videók",
|
|
"myVideosHint": "A számodra elérhető videók összesen a feliratkozott csatornáidon.",
|
|
"quotaLeft": "Ma maradt kvóta",
|
|
"quotaLeftHint": "A ma fennmaradó megosztott YouTube API-keret (éjfélkor nullázódik, USA csendes-óceáni idő szerint). A letöltés ennek alárendelődik.",
|
|
"loading": "Betöltés…",
|
|
"apiUsage": "Saját API-használat",
|
|
"today": "Ma",
|
|
"todayHint": "A saját műveleteid által ma használt YouTube API-egységek (éjfélkor nullázódik, USA csendes-óceáni idő szerint). A háttér-szinkronizálás itt nem számít bele.",
|
|
"last7d": "Utolsó 7 nap",
|
|
"last30d": "Utolsó 30 nap",
|
|
"allTime": "Mindenkori",
|
|
"byAction": "Művelet szerint (30 nap)",
|
|
"noUsage": "Még nincs használat.",
|
|
"actions": "Műveletek",
|
|
"syncSubscriptions": "Feliratkozások szinkronizálása",
|
|
"syncSubscriptionsHint": "Újraimportálja a YouTube-feliratkozásaidat és behúzza az újonnan követett csatornákat.",
|
|
"backfillEverything": "Minden letöltése",
|
|
"backfillEverythingHint": "Teljes archívum letöltésének kérése minden csatornához, amelyre fel vagy iratkozva. A régebbi videók és a teljes keresés annyira töltődnek fel, amennyit a megosztott napi kvóta enged.",
|
|
"synced": "{{count}} feliratkozás szinkronizálva",
|
|
"syncFailed": "A szinkronizálás sikertelen",
|
|
"fullHistoryRequested": "Teljes előzmény kérve {{count}} csatornához",
|
|
"fullHistoryFailed": "Nem sikerült teljes előzményt kérni",
|
|
"admin": "Adminisztrátor",
|
|
"adminPauseHint": "A háttér-szinkronizálás szüneteltetése vagy folytatása az egész alkalmazásra (minden felhasználóra).",
|
|
"resumeBackgroundSync": "Háttér-szinkronizálás folytatása",
|
|
"pauseBackgroundSync": "Háttér-szinkronizálás szüneteltetése"
|
|
},
|
|
"account": {
|
|
"title": "Fiók",
|
|
"youtubeAccess": "YouTube-hozzáférés",
|
|
"youtubeAccessIntro": "A bejelentkezés csak a nevedet és e-mail-címedet osztja meg. A YouTube-hozzáférést külön kell megadni, lent — mindegyik opcionális és bármikor visszavonható a Google-fiókodban.",
|
|
"readTitle": "Feliratkozások olvasása (a hírfolyamod)",
|
|
"readGrantedHint": "Megadva. A Siftlode beolvassa az általad követett csatornákat, hogy felépítse a hírfolyamodat. Ezzel sosem módosítja a YouTube-fiókodat.",
|
|
"readEnableHint": "Csak olvasási hozzáférés a feliratkozásaidhoz — a hírfolyam felépítéséhez szükséges. A Siftlode ezzel semmit sem tud módosítani.",
|
|
"writeTitle": "Leiratkozás (írás)",
|
|
"writeGrantedHint": "Megadva. A Siftlode-on belülről leiratkozhatsz csatornákról a YouTube-on. Csak akkor ír, amikor te kéred.",
|
|
"writeEnableHint": "Lehetővé teszi, hogy a Siftlode leiratkozzon helyetted csatornákról a YouTube-on. Opcionális — hagyd ki, ha csak olvasási módban szeretnél maradni.",
|
|
"granted": "Megadva",
|
|
"enable": "Engedélyezés",
|
|
"enableHint": "Átirányít a Google-höz az engedély megadásához. A Google „nem ellenőrzött alkalmazás” figyelmeztetést mutat — ez normális; kattints a Speciális → Tovább a Siftlode-ra lehetőségre.",
|
|
"walkMeThrough": "Vezess végig a beállításon",
|
|
"demoNotice": "Ez a közös demo fiók. Nincs YouTube-kapcsolata — böngészheted a teljes közös könyvtárat, szűrheted és rendezheted, listákat építhetsz és kipróbálhatsz dolgokat, de semmi nem nyúl valódi YouTube-fiókhoz."
|
|
},
|
|
"demo": {
|
|
"title": "Demo hozzáférés",
|
|
"intro": "Az itt szereplő e-mailek a bejelentkező oldalról közvetlenül beléphetnek a közös demo fiókba — Google-bejelentkezés nélkül. Csak beírják a címet a mezőbe, és pár pillanat múlva bekerülnek.",
|
|
"addPlaceholder": "E-mail fehérlistára a demóhoz…",
|
|
"add": "Hozzáadás",
|
|
"added": "Hozzáadva a demo fehérlistához",
|
|
"addFailed": "Nem sikerült hozzáadni ezt az e-mailt",
|
|
"removeFailed": "Nem sikerült eltávolítani ezt az e-mailt",
|
|
"remove": "Eltávolítás",
|
|
"removeHint": "E-mail eltávolítása a demo fehérlistáról.",
|
|
"addedBy": "hozzáadta: {{who}}",
|
|
"reset": "Demo állapot visszaállítása",
|
|
"resetHint": "Törli a demo fiók lejátszási listáit, elrejtett/megnézett/mentett videóit és beállításait, majd újra létrehoz pár minta lejátszási listát.",
|
|
"resetTitle": "Visszaállítod a demo állapotot?",
|
|
"resetConfirm": "Ez törli mindazt, amit a demo fiók összegyűjtött — lejátszási listák, elrejtett/megnézett/mentett videók és beállítások —, és újra létrehoz pár minta lejátszási listát. Nem vonható vissza.",
|
|
"resetDone": "Demo visszaállítva — {{count}} minta lejátszási lista létrehozva",
|
|
"resetFailed": "Nem sikerült visszaállítani a demo fiókot"
|
|
},
|
|
"invites": {
|
|
"title": "Hozzáférési kérelmek",
|
|
"noPending": "Nincs függőben lévő kérelem.",
|
|
"addPlaceholder": "E-mail közvetlen hozzáadása…",
|
|
"add": "Hozzáadás",
|
|
"decided": "{{count}} eldöntve",
|
|
"approved": "Jóváhagyva — most már be tud jelentkezni",
|
|
"approveFailed": "A jóváhagyás sikertelen",
|
|
"denyFailed": "Az elutasítás sikertelen",
|
|
"addedToWhitelist": "Hozzáadva a fehérlistához",
|
|
"addFailed": "Nem sikerült hozzáadni ezt az e-mailt",
|
|
"requested": "kérve: {{time}}",
|
|
"approveHint": "Jóváhagyás — fehérlistára teszi ezt az e-mailt és e-mailben értesíti őket, hogy bekerültek.",
|
|
"approve": "Jóváhagyás",
|
|
"denyHint": "Kérelem elutasítása.",
|
|
"deny": "Elutasítás"
|
|
}
|
|
}
|