Files
EpicNext-Cms/src/messages/de.json
T
openhands f1e4e32a1e
Local Build and Deploy / deploy (push) Successful in 1m6s
refactor(housekeeping): modal confirm, bulk delete, search debounce, audit inline, form reset
- Replace browser confirm() with custom ConfirmModal component
- Add search debounce (300ms) before syncing URL params
- Reset add-permission form after successful submit
- Add bulk select/delete with checkbox column and bulkDeletePermissions action
- AuditSection fetches logs server-side via getAuditLogs and shows inline table
- Add 10 new i18n keys (cancel, confirm, confirmDeletePermission,
  confirmBulkDelete, deleteSelected, confirmClearAllDesc,
  auditTime, auditUser, auditAction, auditTarget) synced to all 22 locales
2026-07-17 19:53:53 +02:00

2172 lines
79 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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": "{hotelName} betreten",
"onlineFriends": "Online-Freunde",
"noFriendsOnline": "Keine Freunde online",
"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",
"latestArticle": "Neuester Artikel"
},
"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."
},
"admin": {
"nav": {
"overview": "Übersicht",
"dashboard": "Dashboard",
"content": "Inhalte",
"articles": "Artikel",
"tags": "Tags",
"navigator": "Navigator",
"helpCenter": "Hilfecenter",
"advertisements": "Werbung",
"writeableBoxes": "Editierbare Boxen",
"photos": "Fotos",
"tickets": "Tickets",
"events": "Events",
"polls": "Polls",
"banners": "Banners",
"prefixes": "Prefixes",
"usersAndAccess": "Benutzer & Zugang",
"users": "Benutzer",
"bans": "Banns",
"ipManagement": "IP-Verwaltung",
"vpn": "VPN",
"applications": "Bewerbungen",
"teams": "Teams",
"permissions": "Berechtigungen",
"onlineUsers": "Online users",
"moderation": "Moderation",
"economy": "Wirtschaft",
"catalog": "Katalog",
"shop": "Shop",
"transactions": "Transaktionen",
"vouchers": "Gutscheine",
"subscriptions": "Abonnements",
"rareValues": "Seltene Werte",
"badges": "Abzeichen",
"achievements": "Errungenschaften",
"calendar": "Kalender",
"radio": "Radio",
"radioHistory": "Radio-Verlauf",
"radioBanners": "Banner",
"radioEmbed": "Einbettung",
"radioApiKeys": "API-Schlüssel",
"radioModeration": "Moderation",
"radioSettings": "Einstellungen",
"radioMonitoring": "Überwachung",
"radioPoints": "Punkte",
"radioRanks": "Ränge",
"radioAutodj": "Auto DJ",
"system": "System",
"commandocentrum": "Commandocentrum",
"emulator": "Emulator",
"alerts": "Alarme",
"logs": "Logs",
"auditLog": "Audit log",
"analytics": "Analytics",
"devops": "DevOps",
"wordFilter": "Wortfilter",
"maintenance": "Wartung",
"rooms": "Räume",
"emailTemplates": "E-Mail-Vorlagen",
"theme": "Design",
"media": "Medien",
"favicon": "Favicon",
"sounds": "Sounds",
"translations": "Übersetzungen",
"import": "Importieren",
"settings": "Einstellungen",
"backToSite": "Zurück zur Website",
"housekeeping": "Hausverwaltung",
"hotelManagementPanel": "Hotel-Verwaltungsbereich",
"rankLabel": "Rang {rank}",
"hubNewsMedia": "News & media",
"hubSiteContent": "Site content",
"hubEngagement": "Engagement",
"hubUsers": "Users",
"hubAccess": "Access & security",
"hubCatalog": "Catalog & rares",
"hubShop": "Shop & payments",
"hubTools": "Tools",
"hubObservability": "Observability"
},
"dashboard": {
"title": "Dashboard",
"subtitle": "Hotel-Übersicht & Live-Status",
"playersOnline": "Spieler online",
"articles": "Artikel",
"activeBans": "Aktive Banns",
"database": "Datenbank",
"databaseConnected": "Verbunden",
"databaseDown": "Ausgefallen",
"usersByRank": "Benutzer nach Rang",
"noAccountsToBreakDown": "Noch keine Konten aufzuschlüsseln",
"rankLabel": "Rang {rank}",
"rankWithCount": "Rang {rank}: {count} Konten",
"recentStaffActivity": "Letzte Team-Aktivität",
"viewAll": "Alle anzeigen",
"noStaffActivityLogged": "Noch keine Team-Aktivität protokolliert"
},
"articles": {
"title": "Artikel",
"subtitle": "Nachrichtenartikel — die 50 neuesten",
"newArticle": "+ Neuer Artikel",
"edit": "Bearbeiten",
"delete": "Löschen",
"noArticles": "Noch keine Artikel",
"confirmDelete": "Bist du sicher, dass du „{title}“ löschen möchtest?",
"colTitle": "Titel",
"colSlug": "Slug",
"colAuthor": "Autor",
"colCreated": "Erstellt",
"colActions": "Aktionen",
"form": {
"title": "Titel",
"titlePlaceholder": "Artikel-Titel",
"slug": "Slug",
"slugPlaceholder": "artikel-url-slug",
"category": "Kategorie",
"categoryPlaceholder": "Wähle eine Kategorie",
"body": "Inhalt",
"bodyPlaceholder": "Schreibe den Artikel-Inhalt…",
"image": "Bild",
"imagePlaceholder": "https://example.com/image.png",
"thumbnail": "Vorschaubild",
"thumbnailPlaceholder": "https://example.com/thumb.png",
"published": "Veröffentlicht",
"featured": "Hervorgehoben",
"save": "Artikel speichern",
"saving": "Wird gespeichert…",
"deleteArticle": "Artikel löschen",
"deleteConfirm": "Dieser Vorgang kann nicht rückgängig gemacht werden. Der Artikel wird dauerhaft entfernt.",
"cancel": "Abbrechen"
}
},
"tags": {
"title": "Tags",
"subtitle": "Artikel-Tags / Kategorien",
"addTag": "Tag hinzufügen",
"name": "Name",
"namePlaceholder": "Tag-Name",
"backgroundColour": "Hintergrundfarbe",
"createTag": "Tag erstellen",
"editTag": "Tag bearbeiten",
"updateTag": "Tag aktualisieren",
"deleteTag": "Tag löschen",
"confirmDelete": "„{name}“ löschen?",
"noTags": "Noch keine Tags",
"colId": "ID",
"colTag": "Tag",
"colColour": "Farbe",
"colUsedBy": "Verwendet von",
"colCreated": "Erstellt",
"colActions": "Aktionen"
},
"navigation": {
"title": "Navigator",
"flatCategories": "Flache Kategorien",
"publicRooms": "Öffentliche Räume",
"addCategory": "Kategorie hinzufügen",
"editCategory": "Kategorie bearbeiten",
"deleteCategory": "Kategorie löschen",
"categoryName": "Kategoriename",
"categoryNamePlaceholder": "z.B. Chill & Chat",
"categoryOrder": "Reihenfolge",
"roomName": "Raumname",
"roomNamePlaceholder": "z.B. Welcome Lounge",
"roomId": "Raum-ID",
"roomIdPlaceholder": "Numerische Raum-ID",
"save": "Speichern",
"cancel": "Abbrechen",
"noCategories": "Noch keine Kategorien",
"noPublicRooms": "Noch keine öffentlichen Räume",
"colId": "ID",
"colName": "Name",
"colOrder": "Reihenfolge",
"colRooms": "Räume",
"colActions": "Aktionen"
},
"helpCenter": {
"title": "Hilfecenter",
"subtitle": "Support-Einträge & FAQ-Verwaltung",
"entries": "Einträge",
"newEntry": "+ Neuer Eintrag",
"edit": "Bearbeiten",
"delete": "Löschen",
"noEntries": "Noch keine Einträge",
"confirmDelete": "„{title}“ löschen?",
"colId": "ID",
"colTitle": "Titel",
"colCategory": "Kategorie",
"colCreated": "Erstellt",
"colActions": "Aktionen",
"form": {
"title": "Titel",
"titlePlaceholder": "Eintrag-Titel",
"category": "Kategorie",
"categoryPlaceholder": "Wähle eine Kategorie",
"body": "Inhalt",
"bodyPlaceholder": "Schreibe die Antwort…",
"save": "Eintrag speichern",
"saving": "Wird gespeichert…",
"deleteEntry": "Eintrag löschen",
"cancel": "Abbrechen"
}
},
"ads": {
"title": "Werbung",
"subtitle": "Hotel-Werbung und Werbebanner verwalten",
"newAd": "+ Neue Anzeige",
"edit": "Bearbeiten",
"delete": "Löschen",
"noAds": "Noch keine Werbung",
"confirmDelete": "Diese Anzeige löschen?",
"colId": "ID",
"colName": "Name",
"colImage": "Bild",
"colUrl": "URL",
"colViews": "Aufrufe",
"colStatus": "Status",
"colCreated": "Erstellt",
"colActions": "Aktionen",
"form": {
"name": "Name",
"namePlaceholder": "Anzeigenname",
"image": "Bild-URL",
"imagePlaceholder": "https://example.com/banner.png",
"url": "Ziel-URL",
"urlPlaceholder": "https://example.com",
"enabled": "Aktiviert",
"save": "Anzeige speichern",
"saving": "Wird gespeichert…",
"deleteAd": "Anzeige löschen",
"cancel": "Abbrechen"
}
},
"writeableBoxes": {
"title": "Editierbare Boxen",
"subtitle": "Inhaltsfelder, die im Hotel und CMS angezeigt werden",
"newBox": "Neue Box",
"edit": "Bearbeiten",
"delete": "Löschen",
"noBoxes": "Noch keine editierbaren Boxen",
"confirmDelete": "Diese Box löschen?",
"colId": "ID",
"colName": "Name",
"colLocation": "Position",
"colUpdated": "Aktualisiert",
"colActions": "Aktionen",
"form": {
"name": "Name",
"namePlaceholder": "Box-Name",
"location": "Position",
"locationPlaceholder": "z.B. startseite, sidebar",
"content": "Inhalt",
"contentPlaceholder": "Schreibe den Box-Inhalt…",
"enabled": "Aktiviert",
"save": "Box speichern",
"saving": "Wird gespeichert…",
"deleteBox": "Box löschen",
"cancel": "Abbrechen"
}
},
"photos": {
"title": "Foto-Moderation",
"subtitle": "Aktuelle In-Game-Fotos",
"delete": "Löschen",
"approve": "Genehmigen",
"noPhotos": "Keine Fotos zu moderieren",
"confirmDelete": "Dieses Foto dauerhaft löschen?",
"colId": "ID",
"colPreview": "Vorschau",
"colUser": "Benutzer",
"colRoom": "Raum",
"colTimestamp": "Zeitstempel",
"colActions": "Aktionen",
"photoAlt": "Benutzerfoto #{id}",
"byUser": "von {username}"
},
"users": {
"title": "Benutzer",
"subtitle": "Hotel-Konten durchsuchen, suchen und verwalten",
"search": "Suchen",
"searchPlaceholder": "Suche nach Benutzername, E-Mail oder ID…",
"searchResults": "{count, plural, one {# Ergebnis} other {# Ergebnisse}} für „{query}“",
"noResults": "Keine Benutzer gefunden",
"colId": "ID",
"colUsername": "Benutzername",
"colEmail": "E-Mail",
"colRank": "Rang",
"colOnline": "Online",
"colRegistered": "Registriert",
"colLastOnline": "Zuletzt online",
"colActions": "Aktionen",
"yes": "Ja",
"no": "Nein",
"edit": "Bearbeiten",
"setRank": "Rang setzen",
"disconnect": "Trennen",
"alert": "Alarm",
"ban": "Bannen",
"detail": {
"title": "Benutzer: {username}",
"subtitle": "Kontodetails und -verwaltung",
"overview": "Übersicht",
"actions": "Aktionen",
"username": "Benutzername",
"email": "E-Mail",
"motto": "Motto",
"rank": "Rang",
"credits": "Credits",
"duckets": "Duckets",
"diamonds": "Diamanten",
"online": "Online",
"registered": "Registriert",
"lastOnline": "Zuletzt online",
"ipAddress": "IP-Adresse",
"machineId": "Maschinen-ID",
"sendAlert": "Alarm senden",
"sendMessage": "Nachricht senden",
"disconnectUser": "Benutzer trennen",
"banUser": "Benutzer bannen",
"resetPassword": "Passwort zurücksetzen",
"deleteUser": "Benutzer löschen",
"confirmDelete": "Bist du sicher, dass du {username} löschen möchtest? Dies kann nicht rückgängig gemacht werden."
},
"editForm": {
"title": "Benutzer bearbeiten: {username}",
"subtitle": "Kontodetails ändern",
"username": "Benutzername",
"usernamePlaceholder": "Benutzername",
"email": "E-Mail",
"emailPlaceholder": "[email protected]",
"motto": "Motto",
"mottoPlaceholder": "Benutzer-Motto",
"rank": "Rang",
"credits": "Credits",
"duckets": "Duckets",
"diamonds": "Diamanten",
"save": "Änderungen speichern",
"saving": "Wird gespeichert…",
"cancel": "Abbrechen"
}
},
"bans": {
"title": "Banns",
"subtitle": "Konto-, IP- und Maschinen-Banns verwalten",
"newBan": "Neuer Bann",
"edit": "Bearbeiten",
"delete": "Löschen",
"noBans": "Noch keine Banns",
"confirmDelete": "Diesen Bann entfernen?",
"colId": "ID",
"colValue": "Wert",
"colType": "Typ",
"colReason": "Grund",
"colBannedBy": "Gebannt von",
"colExpires": "Läuft ab",
"colCreated": "Erstellt",
"colActions": "Aktionen",
"form": {
"value": "Wert",
"valuePlaceholder": "Benutzername, IP oder Maschinen-ID",
"type": "Typ",
"typeUser": "Benutzer",
"typeIp": "IP",
"typeMachine": "Maschine",
"reason": "Grund",
"reasonPlaceholder": "Bann-Grund",
"expiresAt": "Läuft ab am",
"permanent": "Permanent",
"save": "Bann speichern",
"saving": "Wird gespeichert…",
"cancel": "Abbrechen"
}
},
"ip": {
"title": "IP-Verwaltung",
"subtitle": "IP-Whitelist und Blacklist verwalten",
"whitelist": "Whitelist",
"blacklist": "Blacklist",
"addIp": "IP hinzufügen",
"ipAddress": "IP-Adresse",
"ipAddressPlaceholder": "z.B. 127.0.0.1",
"reason": "Grund",
"reasonPlaceholder": "Grund für die Listung",
"add": "Hinzufügen",
"remove": "Entfernen",
"confirmRemove": "Diese IP aus der {list} entfernen?",
"noWhitelistedIps": "Keine IPs auf der Whitelist",
"noBlacklistedIps": "Keine IPs auf der Blacklist",
"colIp": "IP",
"colReason": "Grund",
"colAdded": "Hinzugefügt",
"colActions": "Aktionen"
},
"vpn": {
"title": "VPN / Proxy-Erkennung",
"subtitle": "VPN- und Proxy-Erkennungseinstellungen konfigurieren",
"enabled": "Aktiviert",
"apiKey": "API-Schlüssel",
"apiKeyPlaceholder": "Dein VPN-Erkennungs-API-Schlüssel",
"apiKeyHint": "Leer lassen zum Deaktivieren",
"blockOnDetect": "Bei Erkennung blockieren",
"blockOnDetectHint": "Benutzer hinter einem VPN oder Proxy automatisch blockieren",
"save": "Einstellungen speichern",
"saving": "Wird gespeichert…",
"settingsSaved": "VPN-Einstellungen erfolgreich gespeichert"
},
"applications": {
"title": "Team-Bewerbungen",
"subtitle": "Ausstehende und geprüfte Bewerbungen",
"pending": "Ausstehend",
"approved": "Genehmigt",
"rejected": "Abgelehnt",
"noApplications": "Noch keine Bewerbungen",
"colId": "ID",
"colApplicant": "Bewerber",
"colPosition": "Position",
"colStatus": "Status",
"colSubmitted": "Eingereicht",
"colActions": "Aktionen",
"review": "Prüfen",
"approve": "Genehmigen",
"reject": "Ablehnen",
"confirmApprove": "{username} für {position} genehmigen?",
"confirmReject": "{username}s Bewerbung für {position} ablehnen?",
"detail": {
"title": "Bewerbung von {username}",
"subtitle": "Für {position}",
"about": "Über den Bewerber",
"message": "Bewerbungsnachricht",
"status": "Status",
"submitted": "Eingereicht",
"noMessage": "Keine Nachricht angegeben"
}
},
"teams": {
"title": "Teams",
"subtitle": "Team-Rang-Namen und Beschreibungen festlegen",
"addRank": "Rang hinzufügen",
"editRank": "Rang bearbeiten",
"deleteRank": "Rang löschen",
"noTeams": "Noch keine Rang-Definitionen",
"confirmDelete": "Rang {id}-Definition löschen?",
"colId": "ID",
"colRank": "Rang",
"colName": "Name",
"colBadge": "Abzeichen",
"colColour": "Farbe",
"colActions": "Aktionen",
"form": {
"rankId": "Rang-ID",
"rankIdPlaceholder": "Numerische Rang-ID",
"name": "Name",
"namePlaceholder": "z.B. Administrator",
"badge": "Abzeichen-Code",
"badgePlaceholder": "z.B. ADM001",
"colour": "Farbe",
"colourPlaceholder": "z.B. #ff0000",
"save": "Team-Definition speichern",
"saving": "Wird gespeichert…",
"cancel": "Abbrechen"
}
},
"permissions": {
"title": "Berechtigungen",
"subtitle": "Rangbasierte Berechtigungen für das Admin-Panel verwalten",
"addPermission": "Berechtigung hinzufügen",
"editPermission": "Berechtigung bearbeiten",
"deletePermission": "Berechtigung löschen",
"noPermissions": "Noch keine Berechtigungen konfiguriert",
"confirmDelete": "Diese Berechtigung löschen?",
"colId": "ID",
"colRank": "Rang",
"colPermission": "Berechtigung",
"colCreated": "Erstellt",
"colActions": "Aktionen",
"form": {
"rankId": "Rang-ID",
"rankIdPlaceholder": "Erforderlicher Mindestrang",
"permission": "Berechtigungsschlüssel",
"permissionPlaceholder": "z.B. admin.articles.manage",
"save": "Berechtigung speichern",
"saving": "Wird gespeichert…",
"cancel": "Abbrechen"
}
},
"catalog": {
"title": "Katalog",
"subtitle": "Katalogseiten und -artikel durchsuchen und verwalten",
"pages": "Seiten",
"items": "Artikel",
"addPage": "Seite hinzufügen",
"editPage": "Seite bearbeiten",
"deletePage": "Seite löschen",
"addItem": "Artikel hinzufügen",
"editItem": "Artikel bearbeiten",
"deleteItem": "Artikel löschen",
"noPages": "Noch keine Katalogseiten",
"noItems": "Keine Artikel auf dieser Seite",
"confirmDeletePage": "Katalogseite „{name}“ löschen?",
"confirmDeleteItem": "Diesen Artikel löschen?",
"colId": "ID",
"colName": "Name",
"colIcon": "Symbol",
"colOrder": "Reihenfolge",
"colItems": "Artikel",
"colEnabled": "Aktiviert",
"colActions": "Aktionen",
"colItemId": "Artikel-ID",
"colItemName": "Artikelname",
"colCostCredits": "Preis (Credits)",
"colCostPoints": "Preis (Punkte)",
"colLimited": "Limitiert",
"pageForm": {
"name": "Name",
"namePlaceholder": "Seitenname",
"icon": "Symbol-ID",
"iconPlaceholder": "Numerische Symbol-ID",
"order": "Reihenfolge",
"enabled": "Aktiviert",
"parent": "Überseite",
"parentNone": "Keine (Stamm)",
"save": "Seite speichern",
"saving": "Wird gespeichert…",
"cancel": "Abbrechen"
},
"itemForm": {
"itemId": "Artikel-ID",
"itemName": "Artikelname",
"costCredits": "Preis in Credits",
"costDuckets": "Preis in Duckets",
"costDiamonds": "Preis in Diamanten",
"limitedStack": "Limitierte Stückzahl",
"limitedSold": "Limitierte verkauft",
"save": "Artikel speichern",
"saving": "Wird gespeichert…",
"cancel": "Abbrechen"
}
},
"shop": {
"title": "Shop",
"subtitle": "Pakete und Bestellungen verwalten",
"packages": "Pakete",
"orders": "Bestellungen",
"newPackage": "+ Neues Paket",
"edit": "Bearbeiten",
"delete": "Löschen",
"viewOrder": "Ansehen",
"noPackages": "Noch keine Shop-Pakete",
"noOrders": "Noch keine Bestellungen",
"confirmDelete": "Dieses Paket löschen?",
"colId": "ID",
"colName": "Name",
"colPrice": "Preis",
"colCurrency": "Währung",
"colType": "Typ",
"colSold": "Verkauft",
"colEnabled": "Aktiviert",
"colActions": "Aktionen",
"colOrderId": "Bestell-ID",
"colCustomer": "Kunde",
"colPackage": "Paket",
"colAmount": "Betrag",
"colStatus": "Status",
"colDate": "Datum",
"statusPending": "Ausstehend",
"statusCompleted": "Abgeschlossen",
"statusRefunded": "Erstattet",
"form": {
"name": "Name",
"namePlaceholder": "Paketname",
"description": "Beschreibung",
"descriptionPlaceholder": "Paketbeschreibung",
"price": "Preis",
"currency": "Währung",
"currencyPlaceholder": "EUR, USD, GBP…",
"type": "Typ",
"typeCredits": "Credits",
"typeDuckets": "Duckets",
"typeDiamonds": "Diamanten",
"typeBadge": "Abzeichen",
"typeFurni": "Möbel",
"typeRank": "Rang",
"amount": "Menge",
"badgeCode": "Abzeichen-Code",
"badgeCodePlaceholder": "z.B. VIP001",
"rankId": "Rang-ID",
"furniItems": "Möbel-Artikel",
"enabled": "Aktiviert",
"save": "Paket speichern",
"saving": "Wird gespeichert…",
"cancel": "Abbrechen"
}
},
"transactions": {
"title": "Transaktionen",
"subtitle": "PayPal-Zahlungsprotokoll",
"noTransactions": "Noch keine Transaktionen",
"colId": "ID",
"colUser": "Benutzer",
"colAmount": "Betrag",
"colCurrency": "Währung",
"colPackage": "Paket",
"colStatus": "Status",
"colDate": "Datum",
"colActions": "Aktionen",
"statusCompleted": "Abgeschlossen",
"statusPending": "Ausstehend",
"statusFailed": "Fehlgeschlagen",
"statusRefunded": "Erstattet",
"detail": {
"title": "Transaktion #{id}",
"paypalId": "PayPal-ID",
"payerEmail": "Zahler-E-Mail",
"grossAmount": "Bruttobetrag",
"fee": "Gebühr",
"netAmount": "Nettobetrag"
}
},
"vouchers": {
"title": "Shop-Gutscheine",
"subtitle": "Einlösbare Gutscheincodes verwalten",
"newVoucher": "+ Neuer Gutschein",
"edit": "Bearbeiten",
"delete": "Löschen",
"noVouchers": "Noch keine Gutscheine",
"confirmDelete": "Gutschein „{code}“ löschen?",
"colId": "ID",
"colCode": "Code",
"colValue": "Wert",
"colType": "Typ",
"colUses": "Verwendet / Max.",
"colExpires": "Läuft ab",
"colCreated": "Erstellt",
"colActions": "Aktionen",
"form": {
"code": "Code",
"codePlaceholder": "z.B. SOMMER2025",
"value": "Wert",
"type": "Typ",
"typeCredits": "Credits",
"typeDuckets": "Duckets",
"typeDiamonds": "Diamanten",
"typeBadge": "Abzeichen",
"typeFurni": "Möbel",
"typeRank": "Rang",
"badgeCode": "Abzeichen-Code",
"badgeCodePlaceholder": "z.B. VIP001",
"rankId": "Rang-ID",
"maxUses": "Max. Verwendungen",
"maxUsesPlaceholder": "0 = unbegrenzt",
"expiresAt": "Läuft ab am",
"enabled": "Aktiviert",
"save": "Gutschein speichern",
"saving": "Wird gespeichert…",
"cancel": "Abbrechen"
}
},
"subscriptions": {
"title": "Abonnements",
"subtitle": "Aktive wiederkehrende Abonnements",
"noSubscriptions": "Keine aktiven Abonnements",
"cancel": "Kündigen",
"confirmCancel": "Abonnement für {username} kündigen?",
"colId": "ID",
"colUser": "Benutzer",
"colPackage": "Paket",
"colAmount": "Betrag",
"colInterval": "Intervall",
"colStarted": "Gestartet",
"colNextBilling": "Nächste Abrechnung",
"colStatus": "Status",
"colActions": "Aktionen",
"statusActive": "Aktiv",
"statusCancelled": "Gekündigt",
"statusExpired": "Abgelaufen"
},
"rareValues": {
"title": "Seltene Werte",
"subtitle": "Kategorien und Artikelpreise für seltene Werte verwalten",
"categories": "Kategorien",
"items": "Artikel",
"addCategory": "Kategorie hinzufügen",
"editCategory": "Kategorie bearbeiten",
"deleteCategory": "Kategorie löschen",
"noCategories": "Noch keine Seltene-Werte-Kategorien",
"confirmDeleteCategory": "Kategorie „{name}“ mit allen Artikeln löschen?",
"colId": "ID",
"colName": "Name",
"colItems": "Artikel",
"colUpdated": "Aktualisiert",
"colActions": "Aktionen",
"colItemName": "Artikelname",
"colCredits": "Credits",
"colPoints": "Punkte",
"colPointType": "Punktetyp",
"categoryForm": {
"name": "Name",
"namePlaceholder": "Kategoriename",
"save": "Kategorie speichern",
"saving": "Wird gespeichert…",
"cancel": "Abbrechen"
},
"itemForm": {
"itemName": "Artikelname",
"itemNamePlaceholder": "z.B. Thron",
"credits": "Credits-Wert",
"points": "Punkte-Wert",
"pointType": "Punktetyp",
"pointTypeDuckets": "Duckets",
"pointTypeDiamonds": "Diamanten",
"save": "Artikel speichern",
"saving": "Wird gespeichert…",
"cancel": "Abbrechen"
}
},
"badges": {
"title": "Abzeichen",
"subtitle": "Abzeichen hochladen, vergeben und verwalten",
"upload": "Hochladen",
"giveBadge": "Abzeichen geben",
"catalogue": "Katalog",
"uploadTitle": "Neues Abzeichen hochladen",
"uploadSubtitle": "Eine Abzeichen-Bilddatei hochladen",
"badgeCode": "Abzeichen-Code",
"badgeCodePlaceholder": "z.B. VIP001",
"badgeFile": "Abzeichen-Datei",
"badgeFileHint": "PNG oder GIF, empfohlen 40x40",
"uploadButton": "Hochladen",
"uploading": "Wird hochgeladen…",
"giveTitle": "Abzeichen an Benutzer geben",
"giveSubtitle": "Einem bestimmten Benutzer ein Abzeichen gewähren",
"username": "Benutzername",
"usernamePlaceholder": "Zielbenutzername",
"giveButton": "Abzeichen geben",
"giving": "Wird vergeben…",
"catalogueTitle": "Abzeichen-Katalog",
"catalogueSubtitle": "Alle verfügbaren Abzeichen im Hotel",
"noBadges": "Keine Abzeichen im Katalog",
"search": "Abzeichen suchen",
"searchPlaceholder": "Suche nach Code oder Name…",
"colCode": "Code",
"colImage": "Bild",
"colName": "Name",
"colDescription": "Beschreibung",
"colActions": "Aktionen"
},
"achievements": {
"title": "Errungenschaften",
"subtitle": "Nur-Lesen-Liste der In-Game-Errungenschaften",
"noAchievements": "Keine Errungenschaften konfiguriert",
"colId": "ID",
"colName": "Name",
"colCategory": "Kategorie",
"colLevels": "Stufen",
"colReward": "Belohnung",
"colProgress": "Fortschritt",
"levelLabel": "Stufe {level}",
"rewardCredits": "{count} Credits",
"rewardPoints": "{count} {points}"
},
"calendar": {
"title": "Kalender-Kampagnen",
"subtitle": "Nur-Lesen-Liste der Kalenderkampagnen und -events",
"noCampaigns": "Noch keine Kalender-Kampagnen",
"colId": "ID",
"colName": "Name",
"colStart": "Start",
"colEnd": "Ende",
"colType": "Typ",
"colReward": "Belohnung",
"colActions": "Aktionen",
"detail": {
"title": "Kampagne: {name}",
"subtitle": "Kalender-Event-Details",
"days": "Tage",
"dayLabel": "Tag {day}",
"reward": "Belohnung",
"noDays": "Keine Tage für diese Kampagne konfiguriert"
}
},
"radio": {
"title": "Radio-Moderation",
"subtitle": "Latest shouts, DJ applications and on-air schedules (25 most recent of each).",
"moderation": "Moderation",
"shouts": "Shouts",
"applications": "Bewerbungen",
"schedules": "Programm",
"settings": "Einstellungen",
"embed": "Einbetten",
"ranks": "Ränge",
"history": "Verlauf",
"apiKeys": "API-Schlüssel",
"points": "Punkte",
"autoDj": "AutoDJ",
"monitoring": {
"title": "Radio-Überwachung",
"subtitle": "Read-only live probe of the configured radio endpoints (radio_now_playing_api_url, radio_listeners_api_url). Each request fails soft with a {timeout}s timeout — no data is written. Configure URLs under Settings.",
"stream": "Stream",
"online": "Online",
"offline": "Offline",
"notConfigured": "Not configured",
"nowPlaying": "Now playing",
"nowPlayingApi": "Now-playing API",
"listenersApi": "Listeners API",
"listeners": "Hörer",
"currentSong": "Aktueller Song",
"bitrate": "Bitrate",
"status": "Status",
"noNowPlayingHint": "no now-playing API set",
"noListenersHint": "no listeners API set",
"endpointDiagnostics": "Endpoint diagnostics",
"diagnosticsLegend": "<span class=\"inline-block text-[0.72rem] font-bold px-2 py-0.5 rounded-full bg-green-600/20 text-[var(--color-text)]\">OK</span> reachable · <span class=\"inline-block text-[0.72rem] font-bold px-2 py-0.5 rounded-full bg-[var(--color-primary)]/18 text-[var(--color-text)]\">WARN</span> not configured · <span class=\"inline-block text-[0.72rem] font-bold px-2 py-0.5 rounded-full bg-red-500/22 text-[var(--color-text)]\">ERROR</span> fetch failed / timed out.",
"streamUrl": "Stream URL",
"unreachable": "unreachable",
"refresh": "Aktualisieren"
},
"user": "User",
"message": "Message",
"posted": "Posted",
"realName": "Real Name",
"age": "Age",
"style": "Style",
"applied": "Applied",
"day": "Day",
"start": "Start",
"end": "End",
"show": "Show",
"status": "Status",
"active": "active",
"inactive": "inactive",
"hidden": "hidden",
"activeSchedules": "Active schedules",
"noShouts": "Keine Shouts zu moderieren",
"noApplications": "No applications submitted.",
"noSchedules": "No schedules configured.",
"deleteShout": "Löschen",
"confirmDeleteShout": "Diesen Shout löschen?",
"pendingApplications": "Ausstehende Bewerbungen",
"settingsForm": {
"title": "Radio Settings",
"subtitle": "Edits write to website_settings (radio_* keys) and bust the runtime settings cache. Booleans use 0 / 1.",
"enabled": "Enabled",
"disabled": "Disabled",
"totalKeys": "Total keys",
"configured": "Configured",
"curatedHint": "curated keys with a value",
"customKeys": "Custom keys",
"saveAll": "Save all",
"singleKey": "Add / overwrite a single key",
"keyPlaceholder": "radio_custom_key",
"valuePlaceholder": "value",
"commentPlaceholder": "comment (optional)",
"saveSingle": "Save",
"otherSettings": "Other radio settings",
"dbError": "Could not load settings (database unavailable). Defaults will be created on save."
},
"embedPage": {
"title": "Radio Embed",
"subtitle": "Copy-ready embed code for the live stream. Read-only — nothing here writes to the database. Configure the stream URL in Radio Settings (radio_stream_url).",
"streamUrl": "Stream URL",
"configured": "Configured",
"missing": "Missing",
"radioName": "Radio name",
"nowPlayingApi": "Now-playing API",
"set": "Set",
"notSet": "Not set",
"noStreamUrl": "No stream URL configured",
"noStreamUrlText": "There is no radio_stream_url set, so there is nothing to embed yet.",
"goToSettings": "Go to Radio Settings",
"livePreview": "Live preview",
"livePreviewText": "This is the bare <audio> player as visitors will see it. Press play to confirm the stream is reachable.",
"source": "Source",
"audioSnippet": "Audio player snippet",
"audioSnippetDesc": "Drop-in HTML5 audio player pointed straight at the stream. Works anywhere plain HTML is allowed.",
"iframeSnippet": "Iframe wrapper snippet",
"iframeSnippetDesc": "Embeds the site’s own radio player page in an iframe — keeps your styling and now-playing info. Adjust width/height to taste.",
"audioUnsupported": "Your browser does not support the audio element."
},
"banners": {
"title": "Banner",
"heading": "Radio Banners",
"description": "Promotional banners shown on the radio page, ordered by sort order.",
"addBanner": "Banner hinzufügen",
"createBanner": "Create banner",
"deleteBanner": "Banner löschen",
"noBanners": "No banners yet — add one above.",
"existing": "Existing banners ({count})",
"save": "Save",
"delete": "Delete",
"byUser": "by user {id}",
"active": "active",
"hidden": "hidden",
"bannerAlt": "Radio banner",
"statusActive": "Active",
"statusHidden": "Hidden",
"dbError": "Could not load banners (database unavailable).",
"form": {
"imagePath": "Image path / URL",
"imagePathPlaceholder": "/storage/radio/banner.png",
"title": "Title",
"description": "Description",
"sortOrder": "Sort order",
"active": "Active"
}
},
"ranksForm": {
"title": "Radio-Ränge",
"subtitle": "DJ / staff ranks assignable on radio applications.",
"dbError": "Could not load ranks (database unavailable).",
"active": "Active",
"addRank": "Add rank",
"name": "Name",
"badgeCode": "Badge code",
"description": "Description",
"createRank": "Create rank",
"existing": "Existing ranks ({count})",
"noRanks": "No ranks yet — add one above.",
"activeLabel": "active",
"inactiveLabel": "inactive",
"save": "Save",
"deleteRank": "Delete rank #{id}"
},
"historyPage": {
"title": "Radio Play History",
"subtitle": "Past DJ shows and airtime (radio_history), most recent first. Read-only log of who was on air, when, and how many listeners tuned in.",
"dbError": "Could not load radio history (database unavailable).",
"showsLogged": "Shows logged",
"onAirNow": "On air now",
"uniqueDjs": "Unique DJs",
"peakListeners": "Peak listeners",
"empty": "No radio history recorded yet.",
"showLog": "Show log ({count})",
"colDj": "DJ",
"colShow": "Show",
"colStarted": "Started",
"colEnded": "Ended",
"colAirtime": "Airtime",
"colListeners": "Listeners",
"colNotes": "Notes",
"onAir": "on air"
},
"apiKeysForm": {
"title": "API-Schlüssel",
"subtitle": "API keys for external radio integrations (radio_api_keys). Keys are generated server-side and shown masked — copy the full value from the database when first issued.",
"dbError": "Could not load API keys (database unavailable).",
"totalKeys": "Total keys",
"active": "Active",
"inactive": "Inactive",
"generateKey": "Neuen Schlüssel generieren",
"generateHint": "The secret key is generated automatically with cryptographic randomness — you do not enter it.",
"name": "Name",
"namePlaceholder": "AzureCast bridge",
"rateLimit": "Rate limit (requests/min)",
"allowedIps": "Allowed IPs (optional)",
"allowedIpsPlaceholder": "comma-separated, blank = any",
"generate": "Generieren",
"existingKeys": "Existing keys ({count})",
"noKeys": "No API keys yet — generate one above.",
"colName": "Name",
"colKey": "Schlüssel",
"colAllowedIps": "Allowed IPs",
"colRateLimit": "Rate limit",
"colLastUsed": "Last used",
"colExpires": "Expires",
"colStatus": "Status",
"colActions": "Aktionen",
"maskedHint": "Only the first 8 characters are shown",
"any": "any",
"activeLabel": "active",
"inactiveLabel": "inactive",
"deactivate": "Deactivate",
"activate": "Activate",
"delete": "Delete"
},
"pointsForm": {
"title": "Hörer-Punkte-Konfiguration",
"subtitle": "Reward listeners with currency for time spent on the radio. Edits write to website_settings (radio_points_* keys) and bust the runtime settings cache. Booleans use 0 / 1.",
"saved": "Saved",
"points": "Points",
"enabled": "Enabled",
"disabled": "Disabled",
"perMinute": "Per minute",
"paidIn": "paid in {currency}",
"maxPerDay": "Max / day",
"unlimited": "Unlimited",
"minListeners": "Min listeners",
"settings": "Settings",
"pointsEnabled": "Points enabled",
"pointsEnabledHint": "Master switch for awarding listener points.",
"currency": "Currency",
"currencyHint": "Which wallet the points are paid into.",
"pointsPerMinute": "Points per minute",
"pointsPerMinuteHint": "Amount awarded for each full minute of listening.",
"maxPerDayHint": "Daily cap per user. Use 0 for unlimited.",
"minListenersHint": "Points are only awarded when at least this many people are tuned in.",
"save": "Punkteeinstellungen speichern"
},
"autoDjForm": {
"title": "Radio AutoDJ",
"subtitle": "Fallback playlist (radio_auto_dj_playlist) the radio rotates through when no live DJ is streaming. Ordered by sort order then title.",
"dbError": "Could not load the AutoDJ playlist (database unavailable).",
"tracks": "Tracks",
"active": "Active",
"inactive": "Inactive",
"addTrack": "Add track",
"titlePlaceholder": "Track title",
"artist": "Artist",
"album": "Album",
"artworkUrl": "Artwork URL",
"artworkUrlPlaceholder": "https://…/cover.png",
"duration": "Duration (seconds)",
"durationPlaceholder": "e.g. 215",
"sortOrder": "Sort order",
"playlist": "Playlist ({count})",
"noTracks": "No AutoDJ tracks yet — add one above.",
"colOrder": "Order",
"colTitle": "Title",
"colArtist": "Artist",
"colAlbum": "Album",
"colDuration": "Duration",
"colPlays": "Plays",
"colLastPlayed": "Last played",
"colStatus": "Status",
"colActions": "Actions",
"activeLabel": "active",
"inactiveLabel": "inactive",
"deactivate": "Deactivate",
"activate": "Activate",
"delete": "Delete",
"trackTitle": "Title"
},
"moderationPage": {
"title": "DJ Moderation",
"subtitle": "Review and remove radio shouts (50 most recent).",
"recentShouts": "Recent Shouts ({count})"
}
},
"commandocentrum": {
"title": "Commandocentrum",
"subtitle": "Diagnose, RCON-Steuerung und Benutzerverwaltung",
"diagnostics": "Diagnose",
"rcon": "RCON",
"userActions": "Benutzeraktionen",
"diagnosticsTitle": "Emulator-Diagnose",
"memoryUsage": "Speichernutzung",
"uptime": "Betriebszeit",
"onlineUsers": "Benutzer online",
"roomsLoaded": "Geladene Räume",
"refresh": "Aktualisieren",
"rconTitle": "RCON-Befehle",
"rconPlaceholder": "RCON-Befehl eingeben…",
"rconSend": "Senden",
"rconSending": "Wird gesendet…",
"rconResponse": "Antwort",
"userActionsTitle": "Benutzeraktionen",
"username": "Benutzername",
"usernamePlaceholder": "Zielbenutzername",
"action": "Aktion",
"execute": "Ausführen",
"actions": {
"disconnect": "Trennen",
"alert": "Alarm senden",
"giveCredits": "Credits geben",
"giveBadge": "Abzeichen geben",
"givePoints": "Punkte geben",
"ban": "Bannen",
"kick": "Kicken"
},
"messagePlaceholder": "Nachricht (für Alarme)…",
"amountPlaceholder": "Betrag…",
"badgePlaceholder": "Abzeichen-Code…"
},
"emulator": {
"title": "Emulator-Konfiguration",
"subtitle": "Emulator-Einstellungen und Lokaltexte anzeigen und bearbeiten",
"settings": "Einstellungen",
"texts": "Texte",
"search": "Suchen",
"searchPlaceholder": "Schlüssel suchen…",
"noSettings": "Keine Einstellungen gefunden",
"noTexts": "Keine Texte gefunden",
"edit": "Bearbeiten",
"save": "Speichern",
"saving": "Wird gespeichert…",
"cancel": "Abbrechen",
"colKey": "Schlüssel",
"colValue": "Wert",
"colType": "Typ",
"colActions": "Aktionen",
"editDialog": {
"title": "Bearbeiten: {key}",
"value": "Wert",
"valuePlaceholder": "Wert eingeben…",
"save": "Änderungen speichern",
"cancel": "Abbrechen"
}
},
"alerts": {
"title": "Alarme",
"subtitle": "Hotelweite Alarme senden und aktuelle anzeigen",
"sendAlert": "Hotel-Alarm senden",
"recentAlerts": "Letzte Alarme",
"noRecentAlerts": "Keine aktuellen Alarme",
"form": {
"title": "Alarm-Titel",
"titlePlaceholder": "z.B. Serverwartung in 10 Minuten",
"message": "Alarm-Nachricht",
"messagePlaceholder": "Schreibe die Alarm-Nachricht…",
"type": "Typ",
"typeHotel": "Hotelweiter Alarm",
"typeStaff": "Nur Team",
"urgent": "Dringend",
"send": "Alarm senden",
"sending": "Wird gesendet…"
},
"colId": "ID",
"colTitle": "Titel",
"colSentBy": "Gesendet von",
"colType": "Typ",
"colDate": "Datum",
"colActions": "Aktionen"
},
"logs": {
"title": "Team-Aktivitäten",
"subtitle": "Prüfpfad der Team-Aktionen im Admin-Panel",
"noLogs": "Noch keine Team-Aktivität protokolliert",
"colId": "ID",
"colUser": "Benutzer",
"colAction": "Aktion",
"colTarget": "Ziel",
"colDescription": "Beschreibung",
"colIp": "IP",
"colTimestamp": "Zeitstempel",
"filterByUser": "Nach Benutzer filtern…",
"filterByAction": "Nach Aktion filtern…",
"clearFilters": "Filter zurücksetzen"
},
"wordfilter": {
"title": "Wortfilter",
"subtitle": "Gefilterte Wörter und Phrasen im Hotel verwalten",
"addWord": "Wort hinzufügen",
"addWords": "Wörter hinzufügen",
"noWords": "Noch keine gefilterten Wörter",
"confirmDelete": "„{word}“ aus dem Filter entfernen?",
"colId": "ID",
"colWord": "Wort",
"colAddedBy": "Hinzugefügt von",
"colCreated": "Erstellt",
"colActions": "Aktionen",
"form": {
"word": "Wort",
"wordPlaceholder": "z.B. schlechteswort",
"addMore": "Mehrere Wörter hinzufügen (eines pro Zeile)",
"save": "Zum Filter hinzufügen",
"saving": "Wird gespeichert…",
"cancel": "Abbrechen"
}
},
"maintenance": {
"title": "Wartungsmodus",
"subtitle": "Hotelweite Wartung aktivieren oder deaktivieren",
"enabled": "Wartungsmodus ist aktiviert",
"disabled": "Wartungsmodus ist deaktiviert",
"enable": "Wartung aktivieren",
"disable": "Wartung deaktivieren",
"message": "Wartungs-Nachricht",
"messagePlaceholder": "Wir sind bald zurück!",
"staffAccess": "Team-Zugriff während der Wartung erlauben",
"save": "Einstellungen speichern",
"saving": "Wird gespeichert…",
"confirmEnable": "Durch Aktivieren der Wartung wird allen Nicht-Team-Benutzern der Zugriff verwehrt. Fortfahren?",
"confirmDisable": "Wartungsmodus deaktivieren und Zugriff für alle Benutzer wiederherstellen?"
},
"housekeeping": {
"title": "Hausverwaltungs-Berechtigungen",
"subtitle": "Festlegen, welche Ränge auf welche Admin-Bereiche zugreifen können",
"addPermission": "Berechtigung hinzufügen",
"editPermission": "Berechtigung bearbeiten",
"deletePermission": "Berechtigung löschen",
"noPermissions": "Keine Hausverwaltungs-Berechtigungen konfiguriert",
"confirmDelete": "Diese Berechtigung löschen?",
"colId": "ID",
"colRank": "Rang",
"colSection": "Bereich",
"colActions": "Aktionen",
"form": {
"rankId": "Rang-ID",
"rankIdPlaceholder": "Mindestrang",
"section": "Bereichsschlüssel",
"sectionPlaceholder": "z.B. admin.dashboard",
"save": "Berechtigung speichern",
"saving": "Wird gespeichert…",
"cancel": "Abbrechen"
},
"saved": "Saved!",
"deleted": "Deleted!",
"errorOccurred": "An error occurred",
"emptyInput": "Empty input",
"invalidJson": "Invalid JSON",
"imported": "Imported!",
"presetApplied": "Preset applied!",
"cleared": "All permissions cleared!",
"invalidRank": "Invalid rank",
"testDone": "Test done: {count} permissions found",
"testing": "Testing...",
"loading": "Loading...",
"prev": "Previous",
"next": "Next",
"confirmClearAll": "Delete ALL permissions? This action cannot be undone!",
"colGroup": "Group",
"colDepends": "Depends on",
"colPermission": "Permission",
"colDescription": "Description",
"colMinRank": "Min. Rank",
"permissionKey": "Permission key",
"minRank": "Min. rank",
"description": "Description",
"permissions": "Permissions",
"permissionsCount": "{count} permissions",
"permission": "permission",
"highestMinRank": "Highest min. rank: {rank}",
"totalMinRank": "Total min. rank sum: {total}",
"groupCount": "{count} groups",
"rankCount": "{count} ranks",
"missingDeps": "{count} missing dependencies",
"dependsOn": "depends on",
"notFound": "not found",
"missing": "(missing)",
"rank": "Rank",
"count": "Count",
"searchPermission": "Search permissions…",
"search": "Search",
"manage": "Manage",
"importSelection": "Import selection",
"noGroup": "No group",
"allGroups": "All groups",
"perGroup": "Permissions per group",
"perRank": "Permissions per rank",
"rankOverviewHint": "All permissions grouped by the rank they are assigned to.",
"tabOverview": "Overview",
"tabManage": "Manage",
"tabImport": "Import / Export",
"tabRanks": "Rank overview",
"tabPresets": "Presets",
"tabTest": "Test",
"tabAudit": "Audit log",
"importPermissions": "Import permissions",
"importHint": "Paste a JSON array of permission objects. Format: [{ \"permission\": \"...\", \"minRank\": 7, \"description\": \"...\", \"groupName\": \"...\", \"dependsOn\": \"...\" }]",
"importPlaceholder": "Paste JSON here…",
"import": "Import",
"exportTitle": "Export permissions",
"exportHint": "Export all permissions as JSON for backup or batch editing.",
"export": "Export JSON",
"copy": "Copy",
"copied": "Copied!",
"presets": "Permission presets",
"presetsHint": "Apply a predefined set of permissions for common staff roles.",
"presetModerator": "Moderator",
"presetModeratorDesc": "Basic moderation tools: user lookup, bans, CFH handling, chat logs.",
"presetAdmin": "Administrator",
"presetAdminDesc": "Full admin access: users, rooms, news, settings, shop, events, radio & more.",
"presetSuperAdmin": "Super Admin",
"presetSuperAdminDesc": "Complete access to every feature including permission management and asset import.",
"applyPreset": "Apply preset",
"clearAll": "Clear all permissions",
"testTitle": "Test rank access",
"testHint": "Enter a rank number to see which permissions would be granted.",
"test": "Test",
"auditTitle": "Permission audit log",
"auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
},
"rooms": {
"title": "Räume",
"subtitle": "Hotel-Räume durchsuchen und verwalten",
"search": "Suchen",
"searchPlaceholder": "Suche nach Name, Besitzer oder ID…",
"searchResults": "{count, plural, one {# Raum} other {# Räume}} gefunden für „{query}“",
"noResults": "Keine Räume gefunden",
"colId": "ID",
"colName": "Name",
"colOwner": "Besitzer",
"colUsers": "Benutzer",
"colState": "Status",
"colCategory": "Kategorie",
"colCreated": "Erstellt",
"colActions": "Aktionen",
"stateOpen": "Offen",
"stateClosed": "Geschlossen",
"stateLocked": "Gesperrt",
"stateInvisible": "Unsichtbar",
"detail": {
"title": "Raum: {name}",
"subtitle": "Besitzer: {owner}",
"overview": "Übersicht",
"actions": "Aktionen",
"description": "Beschreibung",
"noDescription": "Keine Beschreibung",
"owner": "Besitzer",
"users": "Benutzer online",
"maxUsers": "Max. Benutzer",
"category": "Kategorie",
"state": "Status",
"tags": "Tags",
"noTags": "Keine Tags",
"created": "Erstellt",
"deleteRoom": "Raum löschen",
"confirmDelete": "Raum „{name}“ löschen? Dies kann nicht rückgängig gemacht werden.",
"enterRoom": "Raum betreten",
"changeOwner": "Besitzer ändern",
"changeOwnerPlaceholder": "Benutzername des neuen Besitzers"
}
},
"emailTemplates": {
"title": "E-Mail-Vorlagen",
"subtitle": "Transaktions-E-Mail-Vorlagen verwalten",
"newTemplate": "+ Neue Vorlage",
"edit": "Bearbeiten",
"delete": "Löschen",
"noTemplates": "Noch keine E-Mail-Vorlagen",
"confirmDelete": "Vorlage „{name}“ löschen?",
"colId": "ID",
"colName": "Name",
"colSubject": "Betreff",
"colKey": "Schlüssel",
"colUpdated": "Aktualisiert",
"colActions": "Aktionen",
"form": {
"name": "Name",
"namePlaceholder": "z.B. Willkommens-E-Mail",
"key": "Schlüssel",
"keyPlaceholder": "z.B. welcome_email",
"subject": "Betreff",
"subjectPlaceholder": "E-Mail-Betreffzeile",
"body": "Inhalt (HTML)",
"bodyPlaceholder": "<p>Lieber/Liebe {username},</p>",
"variables": "Verfügbare Variablen",
"variablesHint": "{username}, {email}, {hotel_name}",
"save": "Vorlage speichern",
"saving": "Wird gespeichert…",
"cancel": "Abbrechen"
}
},
"theme": {
"title": "Design",
"subtitle": "Das CMS-Erscheinungsbild anpassen",
"presets": "Voreinstellungen",
"colours": "Farben",
"css": "CSS",
"presetsTitle": "Design-Voreinstellungen",
"presetsSubtitle": "Wähle ein vorgefertigtes Farbschema",
"applyPreset": "Anwenden",
"presetApplied": "Voreinstellung angewendet",
"customiseTitle": "Benutzerdefinierte Farben",
"primary": "Primär",
"secondary": "Sekundär",
"accent": "Akzent",
"background": "Hintergrund",
"surface": "Oberfläche",
"text": "Text",
"saveColours": "Farben speichern",
"savingColours": "Wird gespeichert…",
"cssTitle": "Benutzerdefiniertes CSS",
"cssSubtitle": "Füge benutzerdefiniertes CSS hinzu, um Design-Stile zu überschreiben",
"cssPlaceholder": "/* Dein benutzerdefiniertes CSS hier */",
"saveCss": "CSS speichern",
"savingCss": "Wird gespeichert…",
"reset": "Auf Standard zurücksetzen",
"confirmReset": "Design auf Standardwerte zurücksetzen?"
},
"media": {
"title": "Medienbibliothek",
"subtitle": "Mediendateien hochladen und verwalten",
"upload": "Hochladen",
"uploadTitle": "Datei hochladen",
"uploadSubtitle": "Ziehen und ablegen oder klicken zum Hochladen",
"uploadButton": "Datei auswählen",
"uploading": "Wird hochgeladen…",
"noFiles": "Noch keine Mediendateien",
"delete": "Löschen",
"confirmDelete": "Diese Datei dauerhaft löschen?",
"search": "Suchen",
"searchPlaceholder": "Nach Dateiname suchen…",
"colPreview": "Vorschau",
"colName": "Name",
"colSize": "Größe",
"colType": "Typ",
"colUploaded": "Hochgeladen",
"colActions": "Aktionen",
"copyUrl": "URL kopieren",
"urlCopied": "URL in die Zwischenablage kopiert"
},
"settings": {
"title": "CMS-Einstellungen",
"subtitle": "Schlüssel/Wert-CMS-Konfiguration verwalten",
"addSetting": "Einstellung hinzufügen",
"edit": "Bearbeiten",
"delete": "Löschen",
"noSettings": "Keine Einstellungen gefunden",
"confirmDelete": "Einstellung „{key}“ löschen?",
"colKey": "Schlüssel",
"colValue": "Wert",
"colUpdated": "Aktualisiert",
"colActions": "Aktionen",
"form": {
"key": "Schlüssel",
"keyPlaceholder": "z.B. hotel_name",
"value": "Wert",
"valuePlaceholder": "Einstellungswert",
"save": "Einstellung speichern",
"saving": "Wird gespeichert…",
"cancel": "Abbrechen"
}
},
"favicon": {
"title": "Favicon",
"subtitle": "Upload and manage the site favicon",
"current": "Current favicon",
"uploadLabel": "Upload favicon",
"uploadHint": "PNG, JPEG, GIF, WebP, ICO or SVG. Max 2MB.",
"upload": "Upload",
"uploading": "Uploading…",
"delete": "Remove",
"deleting": "Removing…",
"saved": "Favicon saved successfully!",
"deleted": "Favicon removed successfully!",
"error": "Something went wrong",
"confirmDelete": "Remove the favicon? The site will no longer show a custom favicon.",
"generator": {
"title": "Generate favicon",
"text": "Text",
"bgColor": "Background color",
"textColor": "Text color",
"rounded": "Rounded corners",
"save": "Save as favicon"
}
},
"import": {
"title": "Import",
"subtitle": "Import assets from external sources into your hotel.",
"badges": "Badges",
"badgesDescription": "Import and manage badge assets from external sources.",
"furni": "Furni",
"furniDescription": "Import furniture definitions, SWF files, and icons.",
"clothing": "Clothing",
"clothingDescription": "Import clothing and wearables for avatars.",
"effects": "Effects",
"effectsDescription": "Import avatar effects and animations.",
"pets": "Pets",
"petsDescription": "Import pet data and icons.",
"clone": "Clone",
"cloneDescription": "Clone existing items from one source to another."
},
"translations": {
"title": "Translations",
"subtitle": "Translate your hotel into multiple languages.",
"tabs": {
"cms": "CMS",
"client": "Client (Nitro)",
"emulator": "Emulator"
},
"emulator": {
"title": "Emulator",
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
"fullSettings": "Full settings"
}
}
},
"client": {
"title": "Nitro client",
"loading": "Loading client…",
"generatingTicket": "Generating SSO ticket…",
"connected": "Connected",
"welcome": "Welcome to {hotel}",
"openingClient": "Opening the client in a new tab…",
"fallbackLink": "If it doesn't open,",
"fallbackClick": "click here",
"errors": {
"unauthorized": "You need to be logged in to open the client.",
"generic": "Could not generate SSO ticket",
"loginRedirect": "Log in"
}
},
"radioRequests": {
"formTitle": "Submit a request",
"formSubtitle": "Ask the DJ to play your favourite track",
"songLabel": "Song",
"songPlaceholder": "Title of the song",
"artistLabel": "Artist",
"artistPlaceholder": "Name of the artist (optional)",
"submitButton": "Submit request",
"loginToRequest": "Log in to submit a request.",
"latestTitle": "Recent requests",
"latestSubtitle": "The most recently requested songs",
"empty": "No requests yet.",
"colSong": "Song",
"colArtist": "Artist",
"colRequester": "Requester",
"colDate": "Date",
"colStatus": "Status",
"statusPending": "Pending",
"statusApproved": "Approved",
"statusPlayed": "Played"
}
}
}