CI / check (push) Has been cancelled
1. Performance: 25 pages switched from force-dynamic to revalidate=300 (ISR); 2 pages (community, developers) now fully static (SSG) 2. DB indexes: Added @@index on foreign keys for WebsiteArticles, WebsiteArticleReactions, WebsiteArticleComments, WebsiteHelpCenterTickets, WebsiteShopArticles, RadioSongRequests, StaffActivities 3. SEO: Added robots.ts, sitemap.ts, canonical URLs, Open Graph + Twitter Card metadata on root layout and news articles 4. A11Y: Replaced <details>/<summary> dropdowns with accessible button-based NavDropdown (aria-expanded, aria-haspopup, role=menu). MobileNav now uses translated aria-label, aria-expanded, aria-controls, role=menu 5. Code quality: Added try/catch to updateArticle/deleteArticle; deleteArticle now uses prisma. for atomicity 6. CI/CD: Added GitHub Actions workflow (typecheck + test) 7. i18n: Added openMenu/closeMenu keys to all 6 locales 8. Observability: Health endpoint now checks SMTP reachability when configured 9. Loading states: Added loading.tsx for root, admin, and news sections 10. Word filter cache: Added 60s TTL auto-refresh instead of manual cache bust
650 lines
28 KiB
JSON
650 lines
28 KiB
JSON
{
|
|
"nav": {
|
|
"home": "Start",
|
|
"community": "Community",
|
|
"articles": "Artikel",
|
|
"photos": "Fotos",
|
|
"staff": "Team",
|
|
"rankings": "Ranglisten",
|
|
"guilds": "Gilden",
|
|
"leaderboards": "Bestenlisten",
|
|
"rareValues": "Seltene Werte",
|
|
"shop": "Shop",
|
|
"market": "Markt",
|
|
"assistance": "Hilfe",
|
|
"helpCenter": "Hilfecenter",
|
|
"myTickets": "Meine Tickets",
|
|
"badges": "Abzeichen",
|
|
"radio": "Radio",
|
|
"friends": "Freunde",
|
|
"messages": "Nachrichten",
|
|
"admin": "Admin",
|
|
"openMenu": "Open menu",
|
|
"closeMenu": "Close menu",
|
|
"drawBadge": "Abzeichen zeichnen"
|
|
},
|
|
"header": {
|
|
"online": "{count} {hotel} online",
|
|
"nitroClient": "Nitro Client",
|
|
"tagline": "Eine Online-Welt, in der du deinen eigenen Avatar erstellen, Freunde finden, chatten, Räume bauen und vieles mehr kannst!",
|
|
"login": "Anmelden",
|
|
"or": "Oder",
|
|
"createAccount": "Konto erstellen"
|
|
},
|
|
"footer": {
|
|
"copyright": "© {year} - {hotel} ist ein nicht-kommerzielles Bildungsprojekt"
|
|
},
|
|
"common": {
|
|
"language": "Sprache",
|
|
"lightMode": "Heller Modus",
|
|
"darkMode": "Dunkler Modus"
|
|
},
|
|
"pages": {
|
|
"staff": {
|
|
"title": "Team",
|
|
"subtitle": "Das Team hinter dem Hotel",
|
|
"ranksTitle": "Ränge",
|
|
"ranksSubtitle": "Wofür jeder Teil des Teams zuständig ist",
|
|
"membersTitle": "Teammitglieder",
|
|
"membersEmptySubtitle": "Im Moment gibt es niemanden zu zeigen",
|
|
"membersSubtitle": "{count, plural, one {# Mitglied hält den Betrieb aufrecht} other {# Mitglieder halten den Betrieb aufrecht}}",
|
|
"emptyState": "Keine Teammitglieder zu sehen.",
|
|
"colUsername": "Benutzername",
|
|
"colRank": "Rang",
|
|
"colMotto": "Motto"
|
|
},
|
|
"leaderboard": {
|
|
"title": "Bestenliste",
|
|
"subtitle": "Top 20 Spieler nach {currency}",
|
|
"tab_credits": "Credits",
|
|
"tab_diamonds": "Diamanten",
|
|
"tab_duckets": "Duckets",
|
|
"tab_achievement": "Errungenschaften",
|
|
"tab_respects": "Respekt",
|
|
"tab_onlinetime": "Online-Zeit",
|
|
"emptyState": "Noch keine Ranglisten zu sehen.",
|
|
"colAvatar": "Avatar",
|
|
"colPlayer": "Spieler"
|
|
},
|
|
"friends": {
|
|
"title": "Freunde",
|
|
"emptySubtitle": "Du hast noch keine Freunde hinzugefügt",
|
|
"subtitle": "{count, plural, one {Du hast # Freund} other {Du hast # Freunde}}",
|
|
"emptyState": "Füge im Hotel Freunde hinzu und sie werden hier angezeigt.",
|
|
"noMotto": "Kein Motto"
|
|
},
|
|
"messages": {
|
|
"title": "Nachrichten",
|
|
"subtitle": "Freundschaftsanfragen und Offline-Nachrichten warten auf dich",
|
|
"requestsTitle": "Freundschaftsanfragen",
|
|
"requestsEmptySubtitle": "Niemand hat noch gefragt, ob er dein Freund sein darf",
|
|
"requestsSubtitle": "{count, plural, one {# ausstehende Anfrage} other {# ausstehende Anfragen}}",
|
|
"requestsEmptyState": "Keine ausstehenden Freundschaftsanfragen.",
|
|
"wantsToBeFriend": "möchte dein Freund sein.",
|
|
"accept": "Akzeptieren",
|
|
"offlineTitle": "Offline-Nachrichten",
|
|
"offlineEmptySubtitle": "Dein Posteingang ist leer",
|
|
"offlineSubtitle": "{count, plural, one {# Nachricht erhalten} other {# Nachrichten erhalten}}",
|
|
"offlineEmptyState": "Du hast keine Offline-Nachrichten.",
|
|
"unknownUser": "Benutzer #{id}"
|
|
},
|
|
"profile": {
|
|
"noMotto": "Kein Motto",
|
|
"statRank": "Rang",
|
|
"statCredits": "Credits",
|
|
"statRegistered": "Registriert",
|
|
"badgesTitle": "Abzeichen",
|
|
"badgesEmpty": "Noch keine Abzeichen.",
|
|
"photosTitle": "Fotos",
|
|
"photosEmpty": "Noch keine Fotos.",
|
|
"guestbookTitle": "Gästebuch",
|
|
"guestbookSubtitle": "Nachrichten auf {username}s Pinnwand",
|
|
"leaveMessage": "Nachricht hinterlassen",
|
|
"guestbookPlaceholder": "Schreibe etwas in {username}s Gästebuch…",
|
|
"post": "Posten",
|
|
"loginToPost": "Melde dich an, um eine Gästebuch-Nachricht zu hinterlassen.",
|
|
"guestbookEmpty": "Noch keine Gästebucheinträge.",
|
|
"unknownUser": "Benutzer #{id}",
|
|
"statDuckets": "Duckets",
|
|
"statDiamonds": "Diamanten",
|
|
"walletTitle": "Geldbörse",
|
|
"friendsTitle": "Freunde",
|
|
"friendsSubtitle": "Leute im Hotel, mit denen sie abhängen",
|
|
"friendsEmpty": "Keine Freunde zu sehen.",
|
|
"roomsTitle": "Räume",
|
|
"roomsSubtitle": "Räume, die sie besitzen",
|
|
"roomsEmpty": "Keine Räume zu sehen.",
|
|
"roomUntitled": "Unbenannter Raum"
|
|
},
|
|
"rankings": {
|
|
"title": "Ranglisten",
|
|
"subtitle": "Die Top 12 Spieler nach Credits geordnet",
|
|
"emptyState": "Noch keine Spieler zu ordnen."
|
|
},
|
|
"home": {
|
|
"welcome": "Willkommen bei {hotelName}",
|
|
"welcomeSubtitle": "Dein Retro-Hotel, jetzt mit Next.js",
|
|
"welcomeBody": "Abhängen, Möbel sammeln und Freunde treffen.",
|
|
"enterHotel": "Hotel betreten",
|
|
"register": "JETZT REGISTRIEREN",
|
|
"joinNow": "Werde noch heute Mitglied bei {hotelName}!",
|
|
"recentUsers": "Aktuelle Benutzer",
|
|
"recentPhotos": "Aktuelle Fotos",
|
|
"latestNews": "Neueste Nachrichten",
|
|
"newsTitle": "Neueste Nachrichten",
|
|
"newsSubtitle": "Frisch aus dem Hotel",
|
|
"allNews": "Alle Nachrichten →",
|
|
"noArticles": "Noch keine Artikel.",
|
|
"noPhotos": "Noch keine Fotos.",
|
|
"noUsers": "Keine Benutzer online"
|
|
},
|
|
"news": {
|
|
"title": "Nachrichten",
|
|
"subtitle": "Die neuesten Ankündigungen, Events und Updates aus dem Hotel",
|
|
"noArticles": "Noch keine Artikel."
|
|
},
|
|
"article": {
|
|
"backToNews": "← Nachrichten",
|
|
"reactionsTitle": "Reaktionen",
|
|
"reactionsSubtitle": "Sag uns, was du denkst",
|
|
"reaction": {
|
|
"like": "Gefällt mir",
|
|
"love": "Liebe es",
|
|
"wow": "Wow"
|
|
},
|
|
"removeReaction": "Klicke, um deine Reaktion zu entfernen",
|
|
"reactWith": "Reagiere mit {reaction}",
|
|
"noReactions": "Noch keine Reaktionen.",
|
|
"logIn": "Anmelden",
|
|
"toReact": "um zu reagieren.",
|
|
"commentsTitle": "Kommentare",
|
|
"commentsSubtitle": "Mach mit bei der Unterhaltung",
|
|
"commentsCount": "{count} bisher",
|
|
"noComments": "Noch keine Kommentare. Sei der Erste, der kommentiert.",
|
|
"userNumber": "Benutzer #{id}",
|
|
"addComment": "Kommentar hinzufügen",
|
|
"commentPlaceholder": "Schreibe deinen Kommentar…",
|
|
"postComment": "Kommentar posten",
|
|
"toComment": "um einen Kommentar zu hinterlassen."
|
|
},
|
|
"photos": {
|
|
"title": "Fotos",
|
|
"subtitle": "Die neuesten Schnappschüsse aus dem Hotel",
|
|
"noPhotos": "Noch keine Fotos.",
|
|
"photoAlt": "Foto von Benutzer #{id}",
|
|
"byUser": "von Benutzer #{id}"
|
|
},
|
|
"badges": {
|
|
"title": "Abzeichen",
|
|
"subtitle": "Die Abzeichen, die du verdienen und im Hotel zeigen kannst",
|
|
"noBadges": "Noch keine Abzeichen verfügbar."
|
|
},
|
|
"community": {
|
|
"title": "Community",
|
|
"subtitle": "Alles, was rund um das Hotel passiert, an einem Ort",
|
|
"open": "Öffnen →",
|
|
"links": {
|
|
"rankings": {
|
|
"title": "Ranglisten",
|
|
"text": "Sieh dir die reichsten Spieler im Hotel an, geordnet nach Credits."
|
|
},
|
|
"staff": {
|
|
"title": "Team",
|
|
"text": "Lerne das Team kennen, das das Hotel täglich am Laufen hält."
|
|
},
|
|
"news": {
|
|
"title": "Nachrichten",
|
|
"text": "Die neuesten Ankündigungen, Events und Updates."
|
|
},
|
|
"photos": {
|
|
"title": "Fotos",
|
|
"text": "Schnappschüsse, die von der Community aus dem Hotel geteilt wurden."
|
|
},
|
|
"guilds": {
|
|
"title": "Gilden",
|
|
"text": "Durchstöbere die Gruppen, die Spieler erstellt und denen sie beigetreten sind."
|
|
},
|
|
"leaderboards": {
|
|
"title": "Bestenlisten",
|
|
"text": "Wer ist diese Saison in den Hotel-Statistiken an der Spitze."
|
|
}
|
|
}
|
|
},
|
|
"guilds": {
|
|
"title": "Gilden",
|
|
"subtitle": "Durchstöbere die Gruppen, die Spieler erstellt und denen sie beigetreten sind",
|
|
"empty": "Noch keine Gilden.",
|
|
"unnamedGuild": "Unbenannte Gilde",
|
|
"noDescription": "Keine Beschreibung"
|
|
},
|
|
"guild": {
|
|
"allGuilds": "← Alle Gilden",
|
|
"unnamedGuild": "Unbenannte Gilde",
|
|
"noDescription": "Keine Beschreibung",
|
|
"memberSingular": "Mitglied",
|
|
"memberPlural": "Mitglieder",
|
|
"founded": "Gegründet",
|
|
"forumLink": "Forum →",
|
|
"discussion": "Diskussion",
|
|
"membersTitle": "Mitglieder",
|
|
"memberLowerSingular": "Mitglied",
|
|
"memberLowerPlural": "Mitglieder",
|
|
"noMembers": "Keine Mitglieder.",
|
|
"owner": "Besitzer",
|
|
"noMotto": "Kein Motto"
|
|
},
|
|
"guildForum": {
|
|
"backToGuild": "← Zurück zur Gilde",
|
|
"unnamedGuild": "Unbenannte Gilde",
|
|
"forumTitle": "{guild} — Forum",
|
|
"threadSingular": "Thema",
|
|
"threadPlural": "Themen",
|
|
"newThread": "+ Neues Thema",
|
|
"empty": "Noch keine Themen in diesem Forum.",
|
|
"colSubject": "Betreff",
|
|
"colAuthor": "Autor",
|
|
"colPosts": "Beiträge",
|
|
"colDate": "Datum",
|
|
"noSubject": "(kein Betreff)",
|
|
"pinned": "Angepinnt",
|
|
"locked": "Gesperrt",
|
|
"userNumber": "Benutzer #{id}",
|
|
"unknown": "Unbekannt"
|
|
},
|
|
"guildForumNew": {
|
|
"backToForum": "← Zurück zum Forum",
|
|
"unnamedGuild": "Unbenannte Gilde",
|
|
"title": "Neues Thema",
|
|
"subtitle": "im {guild} Forum",
|
|
"subjectLabel": "Betreff",
|
|
"subjectPlaceholder": "Thema",
|
|
"messageLabel": "Nachricht",
|
|
"messagePlaceholder": "Schreibe deinen Eröffnungsbeitrag…",
|
|
"postThread": "Thema erstellen",
|
|
"cancel": "Abbrechen"
|
|
},
|
|
"shop": {
|
|
"title": "Shop",
|
|
"subtitle": "Lade dein Konto auf und sichere dir exklusive Pakete, Währungen und Abzeichen.",
|
|
"browsingCategory": "Durchstöbere {category} Pakete.",
|
|
"all": "Alle",
|
|
"allPackages": "Alle Pakete",
|
|
"packagesAvailable": "{count, plural, one {# Paket verfügbar} other {# Pakete verfügbar}}",
|
|
"empty": "Derzeit keine Pakete verfügbar.",
|
|
"buy": "Kaufen"
|
|
},
|
|
"topup": {
|
|
"title": "Aufladen mit PayPal",
|
|
"subtitle": "Sicher mit PayPal bezahlen und deine Credits werden sofort gutgeschrieben, sobald die Zahlung abgeschlossen ist.",
|
|
"cancelled": "Bezahlung abgebrochen — es wurde kein Betrag abgebucht.",
|
|
"chooseAmount": "Betrag wählen",
|
|
"notConfiguredPre": "PayPal ist noch nicht konfiguriert. Ein Administrator muss",
|
|
"notConfiguredAnd": "und",
|
|
"notConfiguredOptional": "(und optional",
|
|
"notConfiguredPost": "für Sandbox vs. Live).",
|
|
"balanceTitle": "Dein Guthaben",
|
|
"signedInAs": "Angemeldet als {username}",
|
|
"credits": "Credits",
|
|
"creditsPerUnit": "Credits pro 1,00 {currency}",
|
|
"rateLine": "Du erhältst <strong>{amount}</strong> Credits pro 1,00 {currency}. Credits erscheinen im Spiel, sobald du dich das nächste Mal einloggst."
|
|
},
|
|
"marketplace": {
|
|
"title": "Marktplatz",
|
|
"subtitle": "Durchstöbere Möbel und Seltenheiten, die von Spielern angeboten werden. Angebote werden im Spiel erstellt und live aktualisiert — geh ins Hotel, um ein Angebot zu machen.",
|
|
"activeOffers": "Aktive Angebote",
|
|
"sellers": "Verkäufer",
|
|
"totalValue": "Gesamtwert",
|
|
"activeListings": "Aktive Einträge",
|
|
"mostRecentFirst": "Neueste zuerst",
|
|
"empty": "Derzeit gibt es keine aktiven Marktplatz-Angebote. Schau später nochmal vorbei.",
|
|
"colOffer": "Angebot",
|
|
"colItem": "Gegenstand",
|
|
"colSeller": "Verkäufer",
|
|
"colPrice": "Preis",
|
|
"colListed": "Eingestellt",
|
|
"itemLabel": "Gegenstand #{id}",
|
|
"userLabel": "Benutzer #{id}",
|
|
"justNow": "gerade eben",
|
|
"minutesAgo": "vor {count}m",
|
|
"hoursAgo": "vor {count}h",
|
|
"daysAgo": "vor {count}d"
|
|
},
|
|
"rares": {
|
|
"title": "Seltene Werte",
|
|
"subtitle": "Erhalte eine Übersicht aller Seltenheiten im Hotel, gruppiert nach Kategorie.",
|
|
"empty": "Wir haben derzeit keine Seltenheiten gelistet.",
|
|
"rareCount": "{count, plural, one {# Seltenheit} other {# Seltenheiten}}",
|
|
"viewRares": "Seltenheiten ansehen →"
|
|
},
|
|
"rareCategory": {
|
|
"rareCount": "{count, plural, one {# Seltenheit in dieser Kategorie} other {# Seltenheiten in dieser Kategorie}}",
|
|
"allRares": "← Alle Seltenheiten",
|
|
"empty": "Noch keine Seltenheiten in dieser Kategorie.",
|
|
"colRare": "Seltenheit",
|
|
"colCredits": "Credits",
|
|
"colCurrency": "Währung",
|
|
"creditsValue": "{value} Credits",
|
|
"duckets": "Duckets",
|
|
"diamonds": "Diamanten",
|
|
"credits": "Credits"
|
|
},
|
|
"redeem": {
|
|
"title": "Gutschein einlösen",
|
|
"subtitle": "Hast du einen Gutscheincode? Gib ihn unten ein, um die Belohnung deinem Konto hinzuzufügen.",
|
|
"enterCode": "Code eingeben",
|
|
"oncePerAccount": "Jeder Gutschein kann nur einmal pro Konto eingelöst werden.",
|
|
"balanceTitle": "Dein Guthaben",
|
|
"signedInAs": "Angemeldet als {username}",
|
|
"credits": "Credits",
|
|
"instantCredit": "Eingelöste Belohnungen werden sofort gutgeschrieben und erscheinen im Spiel, sobald du dich das nächste Mal einloggst."
|
|
},
|
|
"help": {
|
|
"title": "Hilfecenter",
|
|
"subtitle": "Finde Anleitungen, Support-Themen und die Hotelregeln — alles, was du brauchst, um Hilfe zu bekommen.",
|
|
"myTickets": "Meine Tickets →",
|
|
"topicsTitle": "Support-Themen",
|
|
"topicsSubtitle": "Durchstöbere Anleitungen und Antworten auf häufige Fragen",
|
|
"topicsEmpty": "Noch keine Hilfethemen.",
|
|
"rulesTitle": "Hotelregeln",
|
|
"rulesSubtitle": "Bitte lies diese, bevor du dich im Hotel aufhältst",
|
|
"rulesEmpty": "Noch keine Regeln veröffentlicht.",
|
|
"categoryEmpty": "Keine Regeln in dieser Kategorie."
|
|
},
|
|
"helpCategory": {
|
|
"back": "← Hilfecenter",
|
|
"topicSubtitle": "Hilfecenter-Thema",
|
|
"moreTitle": "Weitere Hilfethemen",
|
|
"moreSubtitle": "Zu einem anderen Support-Thema springen"
|
|
},
|
|
"helpTickets": {
|
|
"title": "Hilfe-Tickets",
|
|
"subtitle": "Reiche ein Ticket beim Team ein und verfolge deine offenen Anfragen.",
|
|
"statTotal": "Tickets gesamt",
|
|
"statOpen": "Offen",
|
|
"statClosed": "Geschlossen",
|
|
"newTitle": "Neues Ticket",
|
|
"newSubtitle": "Beschreibe dein Problem und das Team wird sich darum kümmern",
|
|
"subjectPlaceholder": "Betreff",
|
|
"contentPlaceholder": "Beschreibe dein Problem…",
|
|
"submit": "Ticket einreichen",
|
|
"listTitle": "Deine Tickets",
|
|
"listSubtitle": "Jede Anfrage, die du an das Team gesendet hast",
|
|
"listEmpty": "Du hast noch keine Tickets.",
|
|
"colId": "ID",
|
|
"colSubject": "Betreff",
|
|
"colStatus": "Status",
|
|
"colCreated": "Erstellt",
|
|
"statusOpen": "Offen",
|
|
"statusClosed": "Geschlossen"
|
|
},
|
|
"applyStaff": {
|
|
"title": "Bewirb dich als {hotel} Team",
|
|
"subtitle": "Wir öffnen ab und zu Bewerbungen. Wenn du eine Position siehst, die perfekt zu dir passt, zögere nicht, dich zu bewerben.",
|
|
"noPositionsTitle": "Keine offenen Positionen",
|
|
"noPositionsBody": "Derzeit gibt es keine offenen Positionen. Bitte komm später nochmal vorbei, um zu prüfen, ob es neue Stellen gibt. Vielen Dank für dein Interesse.",
|
|
"noDeadline": "Keine Frist gesetzt",
|
|
"deadline": "Bewerbungsfrist: {date}",
|
|
"alreadyApplied": "Du hast dich bereits für {rank} beworben",
|
|
"aboutYou": "Über dich",
|
|
"aboutPlaceholder": "Erzähl uns, warum du ein großartiger {rank} wärst…",
|
|
"applyFor": "Bewirb dich für {rank}"
|
|
},
|
|
"applyTeam": {
|
|
"title": "Bewirb dich für das {hotel} Team",
|
|
"subtitle": "Wir öffnen regelmäßig Teambewerbungen. Wenn du ein Team siehst, das zu dir passt, zögere nicht, dich zu bewerben!",
|
|
"noPositionsTitle": "Keine offenen Team-Positionen",
|
|
"noPositionsBody": "Derzeit gibt es keine offenen Team-Positionen. Bitte komm später nochmal vorbei, um nach neuen Stellen zu sehen. Vielen Dank!",
|
|
"pending": "Deine Bewerbung ist in Bearbeitung",
|
|
"aboutYou": "Über dich",
|
|
"aboutPlaceholder": "Erzähl uns, warum du eine großartige Ergänzung für {rank} wärst…",
|
|
"applyFor": "Bewirb dich für {rank}"
|
|
},
|
|
"radio": {
|
|
"title": "Radio",
|
|
"subtitle": "Schalte das Hotelradio ein — Live-DJ-Sets, Wünsche und Shoutouts.",
|
|
"nowPlaying": "Jetzt läuft",
|
|
"nothingPlaying": "Momentan läuft nichts.",
|
|
"onAir": "On Air: {dj}",
|
|
"noDj": "Kein DJ on Air.",
|
|
"audioUnsupported": "Dein Browser unterstützt das Audio-Element nicht.",
|
|
"streamOffline": "Der Stream ist derzeit offline.",
|
|
"exploreTitle": "Entdecke das Radio",
|
|
"exploreSubtitle": "Programm, Shouts, Wünsche und mehr",
|
|
"linkSchedule": "Programm",
|
|
"linkScheduleText": "Unser wöchentliches Programm mit DJs und Shows.",
|
|
"linkShouts": "Shouts",
|
|
"linkShoutsText": "Shoutouts und Wünsche aus der Community.",
|
|
"linkRequests": "Wünsche",
|
|
"linkRequestsText": "Bitte den DJ, deinen Lieblingssong zu spielen.",
|
|
"linkApply": "Als DJ bewerben",
|
|
"linkApplyText": "Werde Teammitglied und geh auf Sendung.",
|
|
"linkLeaderboard": "Bestenliste",
|
|
"linkLeaderboardText": "Top-Hörer nach verdienten Punkten.",
|
|
"todayTitle": "Heutiges Programm",
|
|
"todayTitleWithDay": "Heutiges Programm · {day}",
|
|
"todaySubtitle": "Was heute auf Sendung ist",
|
|
"fullWeek": "Ganze Woche →",
|
|
"noShowsToday": "Heute sind keine Sendungen geplant.",
|
|
"colTime": "Zeit",
|
|
"colShow": "Sendung",
|
|
"colDj": "DJ",
|
|
"untitledShow": "Unbenannte Sendung",
|
|
"userNumber": "Benutzer #{id}"
|
|
},
|
|
"radioSchedule": {
|
|
"title": "Radiosendungplan",
|
|
"subtitle": "Unser wöchentliches Programm mit DJs und Shows",
|
|
"empty": "Noch keine Sendungen geplant.",
|
|
"colDay": "Tag",
|
|
"colTime": "Zeit",
|
|
"colDj": "DJ",
|
|
"colShow": "Sendung",
|
|
"noShows": "Keine Sendungen"
|
|
},
|
|
"radioShouts": {
|
|
"title": "Radio Shouts",
|
|
"subtitle": "Shoutouts und Wünsche aus der Community",
|
|
"postTitle": "Einen Shout posten",
|
|
"postSubtitle": "Sende eine Nachricht an den DJ, der on Air ist",
|
|
"messageLabel": "Deine Nachricht",
|
|
"messagePlaceholder": "Sende einen Shout an den DJ…",
|
|
"shoutButton": "Shout",
|
|
"loginToPost": "Melde dich an, um einen Shout zu posten.",
|
|
"latestTitle": "Neueste Shouts",
|
|
"latestSubtitle": "Die aktuellsten Nachrichten von Hörern",
|
|
"empty": "Noch keine Shouts. Sei der Erste!"
|
|
},
|
|
"radioContests": {
|
|
"title": "Radio-Wettbewerbe",
|
|
"subtitle": "Schalte ein und nimm an unseren neuesten On-Air-Wettbewerben teil",
|
|
"empty": "Noch keine Wettbewerbe.",
|
|
"contestLabel": "Wettbewerb #{id}",
|
|
"dateUnknown": "Datum unbekannt"
|
|
},
|
|
"radioGiveaways": {
|
|
"title": "Radio-Gewinnspiele",
|
|
"subtitle": "Hör zu und gewinne bei unseren Radio-Gewinnspielen",
|
|
"empty": "Noch keine Gewinnspiele.",
|
|
"giveawayLabel": "Gewinnspiel #{id}",
|
|
"dateUnknown": "Datum unbekannt"
|
|
},
|
|
"radioLeaderboard": {
|
|
"title": "Radio-Hörer-Bestenliste",
|
|
"subtitle": "Top 50 Hörer nach Punkten, die sie durchs Radiohören verdient haben",
|
|
"empty": "Noch keine Hörerpunkte zu sehen.",
|
|
"colRank": "Rang",
|
|
"colAvatar": "Avatar",
|
|
"colListener": "Hörer",
|
|
"colPoints": "Punkte"
|
|
},
|
|
"radioApply": {
|
|
"title": "Bewirb dich als Radio-DJ",
|
|
"subtitle": "Erzähl uns von dir und warum du eine großartige Bereicherung für das Radioteam wärst",
|
|
"latestTitle": "Deine letzte Bewerbung",
|
|
"statusLabel": "Status:",
|
|
"submittedOn": "· eingereicht am {date}",
|
|
"submitAgain": "Du kannst unten erneut einreichen, wenn sich deine Angaben geändert haben.",
|
|
"formTitle": "Bewerbungsformular",
|
|
"formSubtitle": "Alle mit * markierten Felder sind Pflichtfelder",
|
|
"realNameLabel": "Vollständiger Name",
|
|
"realNamePlaceholder": "Dein vollständiger Name",
|
|
"ageLabel": "Alter",
|
|
"availabilityLabel": "Verfügbarkeit",
|
|
"availabilityPlaceholder": "An welchen Tagen und zu welchen Zeiten kannst du senden?",
|
|
"musicStyleLabel": "Musikrichtung",
|
|
"musicStylePlaceholder": "z.B. House, Pop, Hip-Hop",
|
|
"experienceLabel": "Erfahrung",
|
|
"optional": "(optional)",
|
|
"experiencePlaceholder": "Frühere DJ- oder Moderationserfahrung?",
|
|
"motivationLabel": "Motivation",
|
|
"motivationPlaceholder": "Warum möchtest du dem Radioteam beitreten?",
|
|
"submitButton": "Bewerbung einreichen"
|
|
},
|
|
"settings": {
|
|
"accountSettings": "Kontoeinstellungen",
|
|
"accountSettingsSubtitle": "Verwalte dein Profil, deine Sicherheit und verbundene Konten",
|
|
"publicProfile": "Dein öffentliches Profil",
|
|
"noMotto": "Kein Motto",
|
|
"noEmail": "Keine E-Mail hinterlegt",
|
|
"changeMotto": "Motto ändern",
|
|
"changeMottoSubtitle": "Aktualisiert sich sofort im Spiel, wenn du online bist",
|
|
"mottoPlaceholder": "Dein Motto",
|
|
"saveMotto": "Motto speichern",
|
|
"securityTitle": "Sicherheit",
|
|
"securitySubtitle": "Zwei-Faktor-Authentifizierung",
|
|
"securityDescription": "Füge deinem Konto eine zweite Sicherheitsebene hinzu.",
|
|
"twoFactorLink": "Zwei-Faktor-Authentifizierung",
|
|
"connectionsTitle": "Verbundene Konten",
|
|
"connectionsSubtitle": "Mit einem Klick anmelden",
|
|
"connectionsDescription": "Verbinde Discord oder Google mit deinem Hotelkonto.",
|
|
"manageConnections": "Verbindungen verwalten"
|
|
},
|
|
"settings2fa": {
|
|
"backToSettings": "← Einstellungen",
|
|
"title": "Zwei-Faktor-Authentifizierung",
|
|
"subtitle": "Füge eine zweite Sicherheitsebene mit einer Authenticator-App hinzu",
|
|
"nowEnabled": "2FA ist jetzt aktiviert. 🔒",
|
|
"disabledNotice": "2FA wurde deaktiviert.",
|
|
"badCode": "Dieser Code war nicht gültig — versuche es erneut.",
|
|
"noAppKeyPrefix": "2FA ist nicht verfügbar, bis",
|
|
"noAppKeyMiddle": "konfiguriert ist (derselbe Laravel",
|
|
"noAppKeySuffix": "wie deine AtomCMS-Installation, damit vorhandene Geheimnisse lesbar bleiben).",
|
|
"isEnabled": "2FA ist aktiviert",
|
|
"onYourAccount": "auf deinem Konto.",
|
|
"disable": "2FA deaktivieren",
|
|
"scanOrEnter": "Scanne oder gib diesen Schlüssel ein",
|
|
"scanInstructions": "Füge dies zu Google Authenticator / Authy hinzu und gib dann den 6-stelligen Code zur Bestätigung ein.",
|
|
"manualKey": "Manueller Schlüssel:",
|
|
"codePlaceholder": "6-stelliger Code",
|
|
"confirm": "Bestätigen",
|
|
"enableIntro": "Füge eine zweite Sicherheitsebene mit einer Authenticator-App hinzu.",
|
|
"enable": "2FA aktivieren"
|
|
},
|
|
"connections": {
|
|
"backToSettings": "← Einstellungen",
|
|
"title": "Verbundene Konten",
|
|
"subtitle": "Verknüpfe ein Social-Media-Konto, damit du dich mit einem Klick anmelden kannst",
|
|
"matchByEmail": "Wir gleichen es mit deinem Hotelkonto per E-Mail ab. Verwende daher die hinterlegte Adresse:",
|
|
"lookupFailed": "Wir konnten deine verknüpften Konten momentan nicht auslesen. Du kannst dich unten trotzdem verbinden — dein Status wird angezeigt, sobald er verfügbar ist.",
|
|
"statusUnavailable": "In diesem Hotel nicht verfügbar.",
|
|
"statusConnected": "Verbunden — mit diesem Konto anmelden.",
|
|
"statusNotConnected": "Nicht verbunden.",
|
|
"connected": "Verbunden",
|
|
"connectProvider": "{provider} verbinden",
|
|
"unavailable": "Nicht verfügbar",
|
|
"footerNote": "Beim Verbinden wirst du zum Anbieter weitergeleitet, um zu autorisieren, und dann hierher zurückgebracht. Wenn die E-Mail deines Social-Media-Kontos nicht mit einem Hotelkonto übereinstimmt, wirst du mit einem Hinweis zum Anmeldebildschirm zurückgeleitet."
|
|
},
|
|
"login": {
|
|
"title": "Anmelden",
|
|
"subtitle": "Willkommen zurück — melde dich an, um das Hotel zu betreten.",
|
|
"subtitle2fa": "Gib den 6-stelligen Code aus deiner Authenticator-App ein.",
|
|
"usernamePlaceholder": "Benutzername",
|
|
"passwordPlaceholder": "Passwort",
|
|
"codePlaceholder": "2FA-Code",
|
|
"pleaseWait": "Bitte warten…",
|
|
"verify": "Verifizieren",
|
|
"signIn": "Anmelden",
|
|
"or": "oder",
|
|
"continueWithDiscord": "Weiter mit Discord",
|
|
"continueWithGoogle": "Weiter mit Google",
|
|
"noAccount": "Noch kein Konto?",
|
|
"createOne": "Konto erstellen",
|
|
"forgotPassword": "Passwort vergessen?",
|
|
"errorInvalidCredentials": "Ungültiger Benutzername oder Passwort",
|
|
"errorInvalid2fa": "Ungültiger 2FA-Code"
|
|
},
|
|
"register": {
|
|
"title": "Konto erstellen",
|
|
"subtitle": "Werde Mitglied im Hotel — es dauert nur einen Moment.",
|
|
"username": "Benutzername",
|
|
"email": "E-Mail",
|
|
"password": "Passwort",
|
|
"confirmPassword": "Passwort wiederholen",
|
|
"usernamePlaceholder": "Benutzername",
|
|
"emailPlaceholder": "E-Mail",
|
|
"passwordPlaceholder": "Passwort (min. 6 Zeichen)",
|
|
"confirmPasswordPlaceholder": "Passwort wiederholen",
|
|
"selectOutfit": "Wähle dein Outfit",
|
|
"termsAccept": "Ich bin 18+ und akzeptiere die {hotel} AGB & Regeln.",
|
|
"createAccount": "Konto erstellen",
|
|
"creatingAccount": "Konto wird erstellt...",
|
|
"alreadyHaveAccount": "Bereits ein Konto? Anmelden!",
|
|
"register": "Registrieren",
|
|
"termsError": "Du musst die AGB & Regeln akzeptieren, um dich zu registrieren.",
|
|
"usernameError": "Benutzername ist erforderlich.",
|
|
"emailError": "Eine gültige E-Mail ist erforderlich.",
|
|
"passwordError": "Das Passwort muss mindestens 6 Zeichen lang sein.",
|
|
"confirmPasswordError": "Passwörter stimmen nicht überein.",
|
|
"termsRequired": "Du musst die AGB & Regeln akzeptieren.",
|
|
"usernameRequired": "Benutzername ist erforderlich.",
|
|
"emailRequired": "E-Mail ist erforderlich.",
|
|
"passwordRequired": "Passwort ist erforderlich.",
|
|
"passwordsDontMatch": "Passwörter stimmen nicht überein."
|
|
},
|
|
"forgot": {
|
|
"title": "Passwort zurücksetzen",
|
|
"subtitle": "Wir senden dir einen sicheren Link, um ein neues Passwort zu erstellen.",
|
|
"sentNotice": "Wenn diese E-Mail registriert ist, wurde ein Reset-Link gesendet. Überprüfe deinen Posteingang.",
|
|
"emailPlaceholder": "Deine E-Mail",
|
|
"sendResetLink": "Reset-Link senden",
|
|
"backToLogin": "Zurück zur Anmeldung"
|
|
},
|
|
"reset": {
|
|
"title": "Neues Passwort festlegen",
|
|
"subtitle": "Wähle ein sicheres Passwort, das du sonst nirgendwo verwendest.",
|
|
"passwordPlaceholder": "Neues Passwort (min. 6 Zeichen)",
|
|
"resetPassword": "Passwort zurücksetzen",
|
|
"backToLogin": "Zurück zur Anmeldung"
|
|
},
|
|
"verify": {
|
|
"verifiedTitle": "Du bist startklar",
|
|
"verifiedSubtitle": "E-Mail verifiziert",
|
|
"verifiedBody": "Deine E-Mail-Adresse wurde verifiziert. Du kannst dich jetzt anmelden und spielen.",
|
|
"goToLogin": "Zur Anmeldung",
|
|
"alreadyTitle": "Bereits verifiziert",
|
|
"alreadySubtitle": "Nichts zu tun",
|
|
"alreadyBody": "Diese E-Mail-Adresse wurde bereits bestätigt.",
|
|
"unavailableTitle": "Später nochmal versuchen",
|
|
"unavailableSubtitle": "Server nicht erreichbar",
|
|
"unavailableBody": "Wir konnten den Server nicht erreichen, um deine E-Mail zu verifizieren. Bitte versuche den Link später erneut.",
|
|
"invalidTitle": "E-Mail-Verifizierung",
|
|
"invalidSubtitle": "Ungültiger oder abgelaufener Link",
|
|
"invalidBody": "Dieser Verifizierungslink ist nicht gültig. Stelle sicher, dass du den vollständigen Link aus deiner E-Mail geöffnet hast, oder fordere einen neuen an.",
|
|
"backToLogin": "Zurück zur Anmeldung"
|
|
},
|
|
"banned": {
|
|
"title": "Du bist gebannt",
|
|
"subtitle": "Konto gesperrt",
|
|
"body": "Dein Konto wurde vom Hotel gesperrt.",
|
|
"reasonLabel": "Grund:",
|
|
"permanent": "Dieser Bann ist permanent.",
|
|
"expires": "Läuft ab am {date}.",
|
|
"contactStaff": "Wenn du glaubst, dass dies ein Fehler ist, wende dich an das Team."
|
|
},
|
|
"maintenance": {
|
|
"title": "{hotel} wird gewartet",
|
|
"subtitle": "Wir sind bald zurück",
|
|
"staffCanLogIn": "Teammitglieder können sich weiterhin anmelden."
|
|
}
|
|
}
|
|
} |