feat(i18n): translate login and app chrome (HU/EN/DE)

Login screen (with a language picker), header, account menu, sync status, About and
Release Notes dialogs, and the version banner are now fully translated in Hungarian,
English and German.
This commit is contained in:
npeter83 2026-06-15 00:30:34 +02:00
parent 7aa068061d
commit 941fb7d756
18 changed files with 279 additions and 57 deletions

View file

@ -0,0 +1,12 @@
{
"title": "Über",
"tagline": "Selbstgehosteter, mehrbenutzerfähiger Reader für deine YouTube-Abos.",
"frontend": "Frontend",
"backend": "Backend",
"database": "Datenbank",
"buildDate": "Build-Datum",
"whatsNew": "Neuigkeiten",
"releaseNotes": "Versionshinweise",
"new": "Neu",
"fixes": "Korrekturen"
}

View file

@ -0,0 +1,12 @@
{
"privacyPolicy": "Datenschutzerklärung",
"termsOfService": "Nutzungsbedingungen",
"close": "Schließen",
"cancel": "Abbrechen",
"save": "Speichern",
"loading": "Wird geladen…",
"language": "Sprache",
"somethingWrong": "Etwas ist schiefgelaufen.",
"accessRequestsTitle": "Zugangsanfragen",
"accessRequestsMessage": "{{count}} ausstehend — prüfe sie unter Einstellungen → Konto."
}

View file

@ -0,0 +1,32 @@
{
"feed": "Feed",
"searchPlaceholder": "Deine Abos durchsuchen…",
"channelManager": "Kanalverwaltung",
"usageStats": "Nutzung & Statistik",
"account": {
"admin": "Admin",
"feed": "Feed",
"channels": "Kanäle",
"stats": "Statistik",
"settings": "Einstellungen",
"about": "Über",
"signOut": "Abmelden"
},
"sync": {
"yours": "deine",
"total": "gesamt",
"countTooltip": "Videos aus deinen Abos im Vergleich zur Gesamtzahl im gemeinsamen Katalog, den die Abos aller Nutzer gefüllt haben.",
"paused": "pausiert",
"syncing": "{{count}} werden synchronisiert",
"allSynced": "alles synchronisiert",
"withoutFullHistory": "{{count}} ohne vollständigen Verlauf",
"fullHistoryTooltip": "Einige deiner Kanäle haben nur ihre neuesten Uploads. Klicke, um die Kanalverwaltung (auf diese gefiltert) zu öffnen und ihren vollständigen Katalog anzufordern.",
"pause": "Hintergrund-Synchronisierung pausieren",
"resume": "Hintergrund-Synchronisierung fortsetzen"
},
"banner": {
"updated": "Aktualisiert auf v{{version}} — sieh, was sich geändert hat.",
"releaseNotes": "Versionshinweise",
"dismiss": "Schließen"
}
}

View file

@ -0,0 +1,12 @@
{
"tagline": "Ein selbstgehosteter, filterbarer Feed deiner YouTube-Abos — sortieren, taggen und den Lärm ausblenden. Melde dich mit Google an, um loszulegen; der YouTube-Zugriff ist ein optionaler, separater Schritt, den du steuerst.",
"signIn": "Mit Google anmelden",
"approved": "Du bist bereits freigeschaltet — melde dich einfach oben mit Google an.",
"requested": "Danke — deine Anfrage ist eingegangen. Wir benachrichtigen dich per E-Mail, sobald sie genehmigt ist.",
"noAccessYet": "Noch keinen Zugang?",
"denied": "Dieses Google-Konto ist nicht freigeschaltet. Fordere unten Zugang an.",
"emailPlaceholder": "du@gmail.com",
"sending": "Wird gesendet…",
"requestAccess": "Zugang anfordern",
"submitError": "Konnte nicht gesendet werden — prüfe die Adresse und versuche es erneut."
}

View file

@ -0,0 +1,12 @@
{
"title": "About",
"tagline": "Self-hosted, multi-user reader for your own YouTube subscriptions.",
"frontend": "Frontend",
"backend": "Backend",
"database": "Database",
"buildDate": "Build date",
"whatsNew": "What's new",
"releaseNotes": "Release notes",
"new": "New",
"fixes": "Fixes"
}

View file

@ -0,0 +1,12 @@
{
"privacyPolicy": "Privacy Policy",
"termsOfService": "Terms of Service",
"close": "Close",
"cancel": "Cancel",
"save": "Save",
"loading": "Loading…",
"language": "Language",
"somethingWrong": "Something went wrong.",
"accessRequestsTitle": "Access requests",
"accessRequestsMessage": "{{count}} pending — review in Settings → Account."
}

View file

@ -0,0 +1,32 @@
{
"feed": "Feed",
"searchPlaceholder": "Search your subscriptions…",
"channelManager": "Channel manager",
"usageStats": "Usage & stats",
"account": {
"admin": "Admin",
"feed": "Feed",
"channels": "Channels",
"stats": "Stats",
"settings": "Settings",
"about": "About",
"signOut": "Sign out"
},
"sync": {
"yours": "yours",
"total": "total",
"countTooltip": "Videos from your subscriptions, against the total in the shared catalog that every user's subscriptions have pulled in.",
"paused": "paused",
"syncing": "{{count}} syncing",
"allSynced": "all synced",
"withoutFullHistory": "{{count}} without full history",
"fullHistoryTooltip": "Some of your channels only have their recent uploads. Click to open the channel manager (filtered to these) and request their full back-catalog.",
"pause": "Pause background sync",
"resume": "Resume background sync"
},
"banner": {
"updated": "Updated to v{{version}} — see what's changed.",
"releaseNotes": "Release notes",
"dismiss": "Dismiss"
}
}

View file

@ -0,0 +1,12 @@
{
"tagline": "A self-hosted, filterable feed of your YouTube subscriptions — sort, tag, and tune out the noise. Sign in with Google to get started; YouTube access is an optional, separate step you control.",
"signIn": "Sign in with Google",
"approved": "You're already approved — just sign in with Google above.",
"requested": "Thanks — your request is in. We'll email you when it's approved.",
"noAccessYet": "No access yet?",
"denied": "That Google account isn't approved. Request access below.",
"emailPlaceholder": "you@gmail.com",
"sending": "Sending…",
"requestAccess": "Request access",
"submitError": "Couldn't submit — check the address and try again."
}

View file

@ -0,0 +1,12 @@
{
"title": "Névjegy",
"tagline": "Saját üzemeltetésű, többfelhasználós olvasó a YouTube-feliratkozásaidhoz.",
"frontend": "Frontend",
"backend": "Backend",
"database": "Adatbázis",
"buildDate": "Build dátuma",
"whatsNew": "Mi újság",
"releaseNotes": "Verziójegyzék",
"new": "Új",
"fixes": "Javítások"
}

View file

@ -0,0 +1,12 @@
{
"privacyPolicy": "Adatvédelmi irányelvek",
"termsOfService": "Felhasználási feltételek",
"close": "Bezárás",
"cancel": "Mégse",
"save": "Mentés",
"loading": "Betöltés…",
"language": "Nyelv",
"somethingWrong": "Hiba történt.",
"accessRequestsTitle": "Hozzáférési kérések",
"accessRequestsMessage": "{{count}} függőben — nézd át a Beállítások → Fiók menüben."
}

View file

@ -0,0 +1,32 @@
{
"feed": "Hírfolyam",
"searchPlaceholder": "Keresés a feliratkozásaid között…",
"channelManager": "Csatornakezelő",
"usageStats": "Használat és statisztika",
"account": {
"admin": "Adminisztrátor",
"feed": "Hírfolyam",
"channels": "Csatornák",
"stats": "Statisztika",
"settings": "Beállítások",
"about": "Névjegy",
"signOut": "Kijelentkezés"
},
"sync": {
"yours": "tiéd",
"total": "összes",
"countTooltip": "A feliratkozásaidból származó videók száma a megosztott katalógus teljes számához képest, amelyet az összes felhasználó feliratkozásai gyűjtöttek össze.",
"paused": "szüneteltetve",
"syncing": "{{count}} szinkronizálás alatt",
"allSynced": "minden szinkronban",
"withoutFullHistory": "{{count}} teljes előzmény nélkül",
"fullHistoryTooltip": "Néhány csatornádnak csak a legutóbbi feltöltései vannak meg. Kattints a csatornakezelő megnyitásához (ezekre szűrve), és kérd le a teljes archívumukat.",
"pause": "Háttér-szinkronizálás szüneteltetése",
"resume": "Háttér-szinkronizálás folytatása"
},
"banner": {
"updated": "Frissítve a(z) v{{version}} verzióra — nézd meg, mi változott.",
"releaseNotes": "Verziójegyzék",
"dismiss": "Elvetés"
}
}

View file

@ -0,0 +1,12 @@
{
"tagline": "Saját üzemeltetésű, szűrhető hírfolyam a YouTube-feliratkozásaidból — rendezd, címkézd, és szűrd ki a zajt. A kezdéshez jelentkezz be Google-fiókkal; a YouTube-hozzáférés külön, általad vezérelt lépés.",
"signIn": "Bejelentkezés Google-fiókkal",
"approved": "Már jóvá vagy hagyva — csak jelentkezz be a fenti Google-gombbal.",
"requested": "Köszönjük — a kérésedet rögzítettük. E-mailben értesítünk, ha jóváhagytuk.",
"noAccessYet": "Még nincs hozzáférésed?",
"denied": "Ez a Google-fiók nincs jóváhagyva. Lent kérhetsz hozzáférést.",
"emailPlaceholder": "te@gmail.com",
"sending": "Küldés…",
"requestAccess": "Hozzáférés kérése",
"submitError": "Nem sikerült elküldeni — ellenőrizd a címet, és próbáld újra."
}