Update fun module configuration and enhance CSS styles

- Added 'enabled' property to FunConfigSchema with a default value of true for better configuration management.
- Refactored getFunConfig to return a complete default configuration when no data is found.
- Improved globals.css by expanding CSS variables for light and dark themes, enhancing styling consistency across the application.
This commit is contained in:
smueller
2026-07-22 13:56:33 +02:00
parent 7bc1684566
commit 04e04eb11d
39 changed files with 2394 additions and 14 deletions

View File

@@ -0,0 +1,143 @@
{
"common": {
"save": "Speichern",
"saving": "Speichert…",
"discard": "Verwerfen",
"cancel": "Abbrechen",
"confirm": "Bestätigen",
"add": "Hinzufügen",
"remove": "Entfernen",
"loading": "Lädt…",
"yes": "Ja",
"no": "Nein",
"enabled": "Aktiviert",
"disabled": "Deaktiviert",
"unsavedChanges": "Du hast ungespeicherte Änderungen",
"saveSuccess": "Änderungen gespeichert",
"saveError": "Änderungen konnten nicht gespeichert werden",
"back": "Zurück",
"comingSoon": "Demnächst verfügbar",
"close": "Schließen"
},
"nav": {
"dashboard": "Dashboard",
"overview": "Übersicht",
"settings": "Einstellungen",
"modules": "Module",
"access": "Dashboard-Zugriff"
},
"moduleGroups": {
"moderation": "Moderation",
"engagement": "Engagement",
"utility": "Utility",
"community": "Community",
"integrations": "Integrationen"
},
"modules": {
"moderation": { "label": "Moderation", "description": "Bans, Verwarnungen, Timeouts und das Fall-System" },
"automod": { "label": "Auto-Moderation", "description": "Spam-, Raid- und Nuke-Schutz" },
"logging": { "label": "Logging", "description": "Log-Kanäle für Server-Events" },
"welcome": { "label": "Willkommen & Abschied", "description": "Join- und Leave-Nachrichten, Autoroles" },
"verification": { "label": "Verifizierung", "description": "Button- und Captcha-Verifizierung" },
"leveling": { "label": "Leveling & XP", "description": "Text- und Voice-XP, Rollen-Belohnungen" },
"economy": { "label": "Economy", "description": "Währung, Shop und Spiele" },
"fun": { "label": "Fun & Spiele", "description": "Minispiele und Medien-Commands" },
"giveaways": { "label": "Giveaways", "description": "Button-basierte Giveaways" },
"tickets": { "label": "Tickets", "description": "Support-Ticket-Panels und Transkripte" },
"selfroles": { "label": "Self Roles", "description": "Reaktions-, Button- und Dropdown-Rollenpanels" },
"tags": { "label": "Tags", "description": "Custom Commands und Auto-Responder" },
"starboard": { "label": "Starboard", "description": "Beliebte Nachrichten hervorheben" },
"suggestions": { "label": "Vorschläge", "description": "Community-Vorschläge mit Abstimmung" },
"birthdays": { "label": "Geburtstage", "description": "Geburtstags-Ankündigungen und -Rollen" },
"tempvoice": { "label": "Temp-Voice", "description": "Join-to-Create Voice-Kanäle" },
"stats": { "label": "Server-Statistiken", "description": "Automatische Statistik-Kanäle und Invites" },
"feeds": { "label": "Social Feeds", "description": "Twitch-, YouTube-, RSS- und Reddit-Benachrichtigungen" },
"scheduler": { "label": "Scheduler", "description": "Geplante und wiederkehrende Ankündigungen" },
"guildbackup": { "label": "Backups", "description": "Server-Backup und -Wiederherstellung" }
},
"login": {
"title": "Nexumi",
"subtitle": "Melde dich mit Discord an, um deine Server zu verwalten.",
"cta": "Mit Discord anmelden",
"footer": "Mit der Anmeldung akzeptierst du die Nexumi-Nutzungsbedingungen und Datenschutzerklärung.",
"errors": {
"access_denied": "Du hast die Discord-Anmeldung abgebrochen.",
"invalid_request": "Ungültige Anmeldeanfrage. Bitte erneut versuchen.",
"invalid_state": "Deine Anmelde-Sitzung ist abgelaufen. Bitte erneut versuchen.",
"oauth_failed": "Die Discord-Anmeldung ist fehlgeschlagen. Bitte erneut versuchen."
}
},
"dashboard": {
"guildList": {
"title": "Deine Server",
"subtitle": "Wähle einen Server zur Verwaltung oder lade Nexumi auf einen neuen Server ein.",
"manage": "Verwalten",
"invite": "Einladen",
"botMissing": "Nicht installiert",
"empty": "Keine Server gefunden. Du brauchst die Berechtigung „Server verwalten“ auf einem Discord-Server, um hier zu erscheinen."
},
"overview": {
"title": "Übersicht",
"moduleStatusTitle": "Modul-Status",
"moduleStatusEmpty": "Noch keine Modul-Daten vorhanden.",
"recentAuditTitle": "Letzte Dashboard-Aktivität",
"auditEmpty": "Noch keine Dashboard-Änderungen.",
"auditPath": "Pfad",
"viewAllModules": "Module verwalten"
}
},
"settings": {
"general": {
"title": "Allgemeine Einstellungen",
"description": "Sprache, Zeitzone und der Moderations-Modul-Schalter für diesen Server.",
"localeLabel": "Dashboard- & Bot-Sprache",
"localeHint": "Wird für Bot-Antworten und Dashboard-Standardwerte auf diesem Server verwendet.",
"timezoneLabel": "Zeitzone",
"timezoneHint": "IANA-Zeitzonen-Bezeichner, z. B. Europe/Berlin oder America/New_York.",
"moderationLabel": "Moderations-Modul",
"moderationHint": "Aktiviert Moderations-Commands (Ban, Kick, Warn, Purge, …) auf diesem Server."
}
},
"modulesPage": {
"title": "Module",
"description": "Aktiviere oder deaktiviere einzelne Nexumi-Module für diesen Server.",
"configure": "Konfigurieren"
},
"access": {
"title": "Dashboard-Zugriff",
"description": "Gewähre zusätzlichen Discord-Rollen Zugriff auf bestimmte Dashboard-Bereiche, zusätzlich zu Server-Administratoren.",
"roleIdLabel": "Rollen-ID",
"roleIdPlaceholder": "z. B. 123456789012345678",
"roleIdHint": "Rechtsklick auf eine Rolle in Discord bei aktiviertem Entwicklermodus und „Rollen-ID kopieren“ wählen.",
"modulesLabel": "Erlaubte Module",
"allModulesOption": "Alle Module",
"specificModulesOption": "Bestimmte Module",
"addRule": "Regel hinzufügen",
"removeRule": "Entfernen",
"noRules": "Keine zusätzlichen Zugriffsregeln konfiguriert. Nur Server-Administratoren können das Dashboard nutzen.",
"invalidRoleId": "Gib eine gültige Discord-Rollen-ID an (1720 Ziffern)."
},
"modulePlaceholder": {
"title": "{module}-Einstellungen",
"message": "Modul-Einstellungen kommen in Phase 7.",
"backToModules": "Zurück zu den Modulen"
},
"userMenu": {
"theme": "Design",
"themeDark": "Dunkel",
"themeLight": "Hell",
"logout": "Abmelden",
"loggingOut": "Meldet ab…"
},
"serverSwitcher": {
"switchServer": "Server wechseln",
"allServers": "Alle Server",
"noOtherServers": "Keine weiteren verwaltbaren Server"
},
"errors": {
"unauthorized": "Bitte melde dich an, um fortzufahren.",
"forbidden": "Du hast keinen Zugriff auf diesen Server.",
"notFound": "Nicht gefunden.",
"generic": "Etwas ist schiefgelaufen. Bitte erneut versuchen."
}
}

View File

@@ -0,0 +1,143 @@
{
"common": {
"save": "Save",
"saving": "Saving…",
"discard": "Discard",
"cancel": "Cancel",
"confirm": "Confirm",
"add": "Add",
"remove": "Remove",
"loading": "Loading…",
"yes": "Yes",
"no": "No",
"enabled": "Enabled",
"disabled": "Disabled",
"unsavedChanges": "You have unsaved changes",
"saveSuccess": "Changes saved",
"saveError": "Could not save changes",
"back": "Back",
"comingSoon": "Coming soon",
"close": "Close"
},
"nav": {
"dashboard": "Dashboard",
"overview": "Overview",
"settings": "Settings",
"modules": "Modules",
"access": "Dashboard access"
},
"moduleGroups": {
"moderation": "Moderation",
"engagement": "Engagement",
"utility": "Utility",
"community": "Community",
"integrations": "Integrations"
},
"modules": {
"moderation": { "label": "Moderation", "description": "Bans, warns, timeouts and the case system" },
"automod": { "label": "Auto-Moderation", "description": "Spam, raid and nuke protection" },
"logging": { "label": "Logging", "description": "Server event log channels" },
"welcome": { "label": "Welcome & Leave", "description": "Join and leave messages, autoroles" },
"verification": { "label": "Verification", "description": "Button and captcha verification" },
"leveling": { "label": "Leveling & XP", "description": "Text and voice XP, level rewards" },
"economy": { "label": "Economy", "description": "Currency, shop and games" },
"fun": { "label": "Fun & Games", "description": "Mini games and media commands" },
"giveaways": { "label": "Giveaways", "description": "Button-based giveaways" },
"tickets": { "label": "Tickets", "description": "Support ticket panels and transcripts" },
"selfroles": { "label": "Self Roles", "description": "Reaction, button and dropdown role panels" },
"tags": { "label": "Tags", "description": "Custom commands and auto-responders" },
"starboard": { "label": "Starboard", "description": "Highlight popular messages" },
"suggestions": { "label": "Suggestions", "description": "Community suggestion voting" },
"birthdays": { "label": "Birthdays", "description": "Birthday announcements and roles" },
"tempvoice": { "label": "Temp Voice", "description": "Join-to-create voice channels" },
"stats": { "label": "Server Stats", "description": "Auto-updating stat channels and invites" },
"feeds": { "label": "Social Feeds", "description": "Twitch, YouTube, RSS and Reddit notifications" },
"scheduler": { "label": "Scheduler", "description": "Scheduled and recurring announcements" },
"guildbackup": { "label": "Backups", "description": "Server backup and restore" }
},
"login": {
"title": "Nexumi",
"subtitle": "Sign in with Discord to manage your servers.",
"cta": "Login with Discord",
"footer": "By logging in you agree to the Nexumi Terms of Service and Privacy Policy.",
"errors": {
"access_denied": "You cancelled the Discord login.",
"invalid_request": "Invalid login request. Please try again.",
"invalid_state": "Your login session expired. Please try again.",
"oauth_failed": "Discord login failed. Please try again."
}
},
"dashboard": {
"guildList": {
"title": "Your servers",
"subtitle": "Select a server to manage, or invite Nexumi to a new one.",
"manage": "Manage",
"invite": "Invite",
"botMissing": "Not installed",
"empty": "No servers found. You need the Manage Server permission on a Discord server to appear here."
},
"overview": {
"title": "Overview",
"moduleStatusTitle": "Module status",
"moduleStatusEmpty": "No module data yet.",
"recentAuditTitle": "Recent dashboard activity",
"auditEmpty": "No dashboard changes yet.",
"auditPath": "Path",
"viewAllModules": "Manage modules"
}
},
"settings": {
"general": {
"title": "General settings",
"description": "Language, timezone and the moderation module toggle for this server.",
"localeLabel": "Dashboard & bot language",
"localeHint": "Used for bot replies and dashboard defaults on this server.",
"timezoneLabel": "Timezone",
"timezoneHint": "IANA timezone identifier, e.g. Europe/Berlin or America/New_York.",
"moderationLabel": "Moderation module",
"moderationHint": "Enable moderation commands (ban, kick, warn, purge, …) on this server."
}
},
"modulesPage": {
"title": "Modules",
"description": "Enable or disable individual Nexumi modules for this server.",
"configure": "Configure"
},
"access": {
"title": "Dashboard access",
"description": "Grant additional Discord roles access to specific dashboard sections, in addition to server administrators.",
"roleIdLabel": "Role ID",
"roleIdPlaceholder": "e.g. 123456789012345678",
"roleIdHint": "Right-click a role in Discord with Developer Mode enabled and choose \"Copy Role ID\".",
"modulesLabel": "Allowed modules",
"allModulesOption": "All modules",
"specificModulesOption": "Specific modules",
"addRule": "Add rule",
"removeRule": "Remove",
"noRules": "No additional access rules configured. Only server administrators can access the dashboard.",
"invalidRoleId": "Enter a valid Discord role ID (1720 digits)."
},
"modulePlaceholder": {
"title": "{module} settings",
"message": "Module settings arrive in Phase 7.",
"backToModules": "Back to modules"
},
"userMenu": {
"theme": "Theme",
"themeDark": "Dark",
"themeLight": "Light",
"logout": "Log out",
"loggingOut": "Logging out…"
},
"serverSwitcher": {
"switchServer": "Switch server",
"allServers": "All servers",
"noOtherServers": "No other manageable servers"
},
"errors": {
"unauthorized": "Please log in to continue.",
"forbidden": "You do not have access to this server.",
"notFound": "Not found.",
"generic": "Something went wrong. Please try again."
}
}