{
  "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",
    "optional": "Optional",
    "searchSelect": "Search and select…",
    "noResults": "No results",
    "clearSelection": "Clear selection"
  },
  "nav": {
    "dashboard": "Dashboard",
    "overview": "Overview",
    "settings": "Settings",
    "modules": "Modules",
    "access": "Dashboard access",
    "commands": "Commands"
  },
  "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",
      "activityTitle": "Activity (last 7 days)",
      "activityMessages": "Messages",
      "activityVoiceMinutes": "Voice minutes",
      "activityActiveUsers": "Active members",
      "activityHint": "Aggregated from the leveling and stats modules' activity tracking."
    }
  },
  "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.",
      "snipeLabel": "Snipe / Editsnipe",
      "snipeHint": "Temporarily stores deleted/edited messages (off by default for privacy)."
    }
  },
  "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 (17–20 digits)."
  },
  "modulePlaceholder": {
    "title": "{module} settings",
    "message": "Module settings arrive in a later phase.",
    "backToModules": "Back to modules"
  },
  "modulePages": {
    "moderation": {
      "title": "Moderation",
      "description": "Enable the moderation module and configure automatic escalation rules.",
      "enabledLabel": "Moderation module enabled",
      "enabledHint": "Enables ban, kick, warn, purge and the case system on this server.",
      "escalationsTitle": "Escalation rules",
      "escalationsDescription": "Automatic penalties once a member reaches a certain number of warnings.",
      "noEscalations": "No escalation rules configured.",
      "addEscalation": "Add rule",
      "warnCount": "Warning count",
      "action": "Action",
      "actions": {
        "TIMEOUT": "Timeout",
        "KICK": "Kick",
        "BAN": "Ban"
      },
      "durationMs": "Duration (ms)",
      "reason": "Reason",
      "reasonPlaceholder": "Optional default reason",
      "casesTitle": "Cases",
      "casesDescription": "List of the most recent moderation cases (read-only).",
      "searchPlaceholder": "Search by user/moderator ID or reason",
      "actionPlaceholder": "Filter by action, e.g. BAN",
      "casesEmpty": "No cases found.",
      "target": "Target",
      "moderator": "Moderator",
      "createdAt": "Created at",
      "noReason": "No reason provided"
    },
    "automod": {
      "title": "Auto-Moderation",
      "description": "Base settings plus anti-raid and anti-nuke protection.",
      "enabledLabel": "Auto-moderation enabled",
      "enabledHint": "Enables all auto-moderation rules (spam, word filter, links, …) on this server.",
      "antiRaidTitle": "Anti-Raid",
      "antiRaidDescription": "Detects unusually fast join waves and automatically activates a lockdown.",
      "antiRaidEnabled": "Anti-raid enabled",
      "antiRaidJoinThreshold": "Join threshold",
      "antiRaidWindowSeconds": "Time window (seconds)",
      "antiRaidActionHint": "Currently implemented response: server lockdown.",
      "antiNukeTitle": "Anti-Nuke",
      "antiNukeDescription": "Protects against mass bans or mass channel deletions by compromised accounts.",
      "antiNukeEnabled": "Anti-nuke enabled",
      "antiNukeBanThreshold": "Ban threshold",
      "antiNukeChannelThreshold": "Channel deletion threshold",
      "antiNukeWindowSeconds": "Time window (seconds)",
      "lockdownActive": "Lockdown active",
      "lockdownActiveHint": "Automatically set when a raid is detected. Toggle off manually to end the lockdown."
    },
    "logging": {
      "title": "Logging",
      "description": "Log channels, ignore lists and the event-to-channel mapping.",
      "enabledLabel": "Logging enabled",
      "ignoreBotsLabel": "Ignore bot messages/actions",
      "ignoredChannelsLabel": "Ignored channels",
      "ignoredRolesLabel": "Ignored roles",
      "idsPlaceholder": "Comma-separated IDs, e.g. 123456789012345678, 234567890123456789",
      "idsHint": "Enter Discord IDs, comma-separated. Enable Developer Mode to copy IDs.",
      "retentionLabel": "Retention (days)",
      "retentionHint": "Delete cases and dashboard audit older than X days. 0 = keep forever.",
      "channelsTitle": "Event-channel mapping",
      "channelsDescription": "Assign a dedicated log channel for each event type.",
      "channelsEmpty": "No event-channel mappings configured.",
      "eventType": "Event type",
      "channelId": "Channel ID",
      "addMapping": "Add mapping"
    },
    "welcome": {
      "welcomeTitle": "Welcome",
      "welcomeDescription": "Message, channel and autoroles for new members.",
      "welcomeEnabledLabel": "Welcome message enabled",
      "welcomeChannelId": "Welcome channel ID",
      "welcomeType": "Message type",
      "type": {
        "TEXT": "Text",
        "EMBED": "Embed",
        "IMAGE": "Image card"
      },
      "welcomeContent": "Message content",
      "contentPlaceholder": "Welcome {user} to {server}!",
      "placeholdersHint": "Available placeholders: {user}, {user.name}, {user.tag}, {user.id}, {server}, {memberCount}",
      "welcomeEmbed": "Embed (JSON, optional)",
      "welcomeDmEnabled": "Welcome DM enabled",
      "dmContentPlaceholder": "Optional private message to new members",
      "userAutoroles": "Autoroles for users",
      "botAutoroles": "Autoroles for bots",
      "imageTitle": "Image card: title",
      "imageSubtitle": "Image card: subtitle",
      "leaveTitle": "Leave",
      "leaveDescription": "Message and channel when a member leaves the server.",
      "leaveEnabledLabel": "Leave message enabled",
      "leaveChannelId": "Leave channel ID",
      "leaveContent": "Message content",
      "leaveEmbed": "Embed (JSON, optional)"
    },
    "verification": {
      "title": "Verification",
      "description": "Mode, roles and requirements for member verification.",
      "enabledLabel": "Verification enabled",
      "mode": "Mode",
      "mode.BUTTON": "Button",
      "mode.CAPTCHA": "Captcha (WebUI)",
      "failAction": "Action on failure",
      "failAction.KICK": "Kick",
      "failAction.BAN": "Ban",
      "failAction.NONE": "None",
      "channelId": "Verification channel ID",
      "verifiedRoleId": "Role after verification",
      "unverifiedRoleId": "Role before verification",
      "minAccountAgeDays": "Minimum account age (days)"
    },
    "leveling": {
      "title": "Leveling & XP",
      "description": "Text and voice XP rates, cooldowns and no-XP lists.",
      "enabledLabel": "Leveling enabled",
      "textXpMin": "Text XP (minimum)",
      "textXpMax": "Text XP (maximum)",
      "textCooldownSeconds": "Text XP cooldown (seconds)",
      "voiceXpPerMinute": "Voice XP per minute",
      "noXpChannels": "No-XP channels",
      "noXpRoles": "No-XP roles",
      "roleMultipliers": "Role multipliers",
      "channelMultipliers": "Channel multipliers",
      "multiplierHint": "Pick a role or channel and set a multiplier (e.g. 1.5).",
      "multiplierValue": "Multiplier",
      "addMultiplier": "Add multiplier",
      "errors": {
        "multiplierMissingId": "Every multiplier needs a role or channel.",
        "multiplierInvalid": "Multipliers must be a positive number.",
        "multiplierDuplicate": "Each role or channel may only appear once."
      },
      "levelUpTitle": "Level-up message",
      "levelUpMode": "Mode",
      "modes": {
        "CHANNEL": "Channel",
        "DM": "Direct message",
        "OFF": "Off"
      },
      "levelUpChannelId": "Level-up channel",
      "levelUpMessage": "Message content",
      "stackRewards": "Stack role rewards",
      "rankCardTitle": "Rank card",
      "cardAccentColor": "Accent color",
      "cardBackgroundColor": "Background color"
    },
    "economy": {
      "title": "Economy",
      "description": "Currency and amounts for the income commands.",
      "enabledLabel": "Economy enabled",
      "currencyName": "Currency name",
      "currencySymbol": "Currency symbol",
      "amountsTitle": "Amounts",
      "dailyAmount": "Daily reward",
      "weeklyAmount": "Weekly reward",
      "workMin": "Work: minimum",
      "workMax": "Work: maximum",
      "workCooldownSeconds": "Work cooldown (seconds)",
      "startingBalance": "Starting balance"
    },
    "fun": {
      "title": "Fun & Games",
      "description": "Mini games and media commands for this server.",
      "enabledLabel": "Fun module enabled",
      "enabledHint": "Enables mini games like trivia, tic-tac-toe and 8-ball.",
      "mediaEnabledLabel": "Media commands enabled",
      "mediaEnabledHint": "Enables API-based commands like /cat and /dog."
    },
    "tickets": {
      "title": "Tickets",
      "description": "Configure how support tickets are created and managed.",
      "enabledLabel": "Tickets module enabled",
      "mode": "Ticket mode",
      "modes": {
        "CHANNEL": "Private channel",
        "THREAD": "Private thread"
      },
      "categoryId": "Ticket category ID",
      "logChannelId": "Log channel",
      "inactivityHours": "Auto-close after inactivity (hours)",
      "transcriptDm": "DM transcript to ticket creator",
      "transcriptDmHint": "Sends a transcript to the user via DM once their ticket is closed.",
      "ratingEnabled": "Ask for a rating after closing",
      "categoriesTitle": "Ticket categories",
      "categoriesDescription": "Categories members can choose from when opening a ticket.",
      "categoriesEmpty": "No ticket categories configured yet.",
      "categoryName": "Name",
      "categoryEmoji": "Emoji",
      "categoryDescription": "Description",
      "supportRoleIds": "Support role IDs",
      "idsPlaceholder": "One or more IDs, comma-separated",
      "addCategory": "Add category",
      "nameRequired": "A name is required."
    },
    "giveaways": {
      "formIncomplete": "Please fill in the channel, prize and end date.",
      "created": "Giveaway created.",
      "confirmDelete": "Really delete this giveaway?",
      "createTitle": "Start a giveaway",
      "createDescription": "Posts a giveaway message in Discord and picks winners automatically when it ends.",
      "channelId": "Channel ID",
      "prize": "Prize",
      "winnerCount": "Winner count",
      "endsAt": "Ends at",
      "requiredRoleId": "Required role ID",
      "requiredLevel": "Required level",
      "requiredMemberDays": "Required membership (days)",
      "create": "Start giveaway",
      "listTitle": "Giveaways",
      "listDescription": "Active and ended giveaways for this server.",
      "empty": "No giveaways yet.",
      "entrants": "Entrants",
      "statusEnded": "Ended",
      "statusPaused": "Paused",
      "statusActive": "Active",
      "endedAt": "Ended at",
      "winners": "Winners",
      "pause": "Pause",
      "unpause": "Resume",
      "end": "End now"
    },
    "selfroles": {
      "formIncomplete": "Please fill in the channel, title and at least one role.",
      "confirmDelete": "Really delete this panel?",
      "createTitle": "Create a self-role panel",
      "createDescription": "Posts a message in Discord that members can use to assign themselves roles.",
      "channelId": "Channel ID",
      "panelTitle": "Panel title",
      "mode": "Mode",
      "modes": {
        "BUTTONS": "Buttons",
        "DROPDOWN": "Dropdown",
        "REACTIONS": "Reactions"
      },
      "behavior": "Behavior",
      "behaviors": {
        "NORMAL": "Normal (toggle freely)",
        "UNIQUE": "Unique (only one role from this panel)",
        "VERIFY": "Verification role",
        "TEMPORARY": "Temporary (expires after a while)"
      },
      "description": "Description",
      "roles": "Roles",
      "rolesPlaceholder": "roleId | label | emoji | description (one per line)",
      "rolesHint": "One role per line: roleId | label | emoji (optional) | description (optional).",
      "create": "Create panel",
      "listTitle": "Self-role panels",
      "listDescription": "Existing panels for this server.",
      "empty": "No self-role panels yet."
    },
    "tags": {
      "nameRequired": "A name is required.",
      "confirmDelete": "Really delete this tag?",
      "createTitle": "Create a tag",
      "createDescription": "Custom commands and auto-responders triggered by name or keyword.",
      "name": "Name",
      "responseType": "Response type",
      "responseTypes": {
        "TEXT": "Text",
        "EMBED": "Embed"
      },
      "triggerWord": "Trigger word (optional)",
      "content": "Content",
      "allowedRoleIds": "Allowed role IDs",
      "allowedChannelIds": "Allowed channel IDs",
      "idsPlaceholder": "One or more IDs, comma-separated",
      "create": "Create tag",
      "listTitle": "Tags",
      "listDescription": "Existing tags for this server.",
      "empty": "No tags yet."
    },
    "starboard": {
      "title": "Starboard",
      "description": "Highlight popular messages in a dedicated channel.",
      "enabledLabel": "Starboard enabled",
      "channelId": "Starboard channel ID",
      "emoji": "Trigger emoji",
      "threshold": "Star threshold",
      "allowSelfStar": "Allow starring your own messages",
      "ignoredChannelIds": "Ignored channel IDs",
      "idsHint": "Comma-separated list of channel IDs to exclude from the starboard."
    },
    "suggestions": {
      "configTitle": "Suggestions settings",
      "configDescription": "Configure where suggestions are posted and moved once reviewed.",
      "enabledLabel": "Suggestions enabled",
      "openChannelId": "Open channel ID",
      "approvedChannelId": "Approved channel ID",
      "deniedChannelId": "Denied channel ID",
      "createThread": "Create a discussion thread",
      "createThreadHint": "Automatically opens a thread under every new suggestion.",
      "listTitle": "Suggestions",
      "listDescription": "Review and moderate suggestions submitted by members.",
      "statusAll": "All statuses",
      "status": {
        "OPEN": "Open",
        "APPROVED": "Approved",
        "DENIED": "Denied",
        "CONSIDERED": "Considered",
        "IMPLEMENTED": "Implemented"
      },
      "empty": "No suggestions found.",
      "staffReason": "Staff reason",
      "reasonPlaceholder": "Optional reason shown to the author",
      "approve": "Approve",
      "deny": "Deny",
      "consider": "Consider",
      "implement": "Implement"
    },
    "birthdays": {
      "title": "Birthdays",
      "description": "Announce member birthdays and optionally assign a birthday role.",
      "enabledLabel": "Birthdays enabled",
      "channelId": "Announcement channel ID",
      "roleId": "Birthday role ID",
      "timezone": "Timezone",
      "message": "Announcement message",
      "messagePlaceholder": "Optional custom message, e.g. Happy birthday {user}!"
    },
    "tempvoice": {
      "title": "Temp Voice",
      "description": "Members joining the hub channel get their own temporary voice channel.",
      "enabledLabel": "Temp voice enabled",
      "hubChannelId": "Hub channel ID",
      "categoryId": "Category ID for created channels",
      "defaultName": "Default channel name",
      "defaultLimit": "Default user limit",
      "defaultLimitHint": "Set to 0 for no limit."
    },
    "stats": {
      "title": "Server Stats",
      "description": "Auto-updating voice channels showing live server statistics.",
      "enabledLabel": "Server stats enabled",
      "membersChannelId": "Members channel ID",
      "membersTemplate": "Members template",
      "onlineChannelId": "Online channel ID",
      "onlineTemplate": "Online template",
      "boostsChannelId": "Boosts channel ID",
      "boostsTemplate": "Boosts template",
      "templateHint": "Use {count} as a placeholder for the live value."
    },
    "feeds": {
      "title": "Social Feeds",
      "description": "Post notifications when new content is published on Twitch, YouTube, RSS or Reddit.",
      "empty": "No feeds configured yet.",
      "addFeed": "Add feed",
      "type": "Feed type",
      "sourceId": "Source ID",
      "sourceIdPlaceholder": "Channel name, subreddit or feed URL",
      "channelId": "Discord channel ID",
      "rolePingId": "Role to ping",
      "template": "Message template",
      "templatePlaceholder": "Optional custom message template",
      "formIncomplete": "Please fill in the source and channel ID.",
      "confirmDelete": "Really delete this feed?"
    },
    "scheduler": {
      "createTitle": "Schedule a message",
      "createDescription": "Send a message once at a specific time or repeatedly on a cron schedule.",
      "channelId": "Channel ID",
      "rolePingId": "Role to ping",
      "cron": "Cron expression",
      "runAt": "Run at",
      "content": "Message content",
      "cronHint": "Set a cron expression for recurring messages, or a one-time date/time - not both.",
      "create": "Schedule message",
      "created": "Message scheduled.",
      "formIncomplete": "Please fill in the channel, content and either a cron expression or a date/time.",
      "confirmDelete": "Really delete this schedule?",
      "listTitle": "Scheduled messages",
      "listDescription": "Upcoming and recurring scheduled messages.",
      "empty": "No scheduled messages yet.",
      "noContent": "(embed only)"
    },
    "guildbackup": {
      "createTitle": "Create a backup",
      "createDescription": "Snapshots roles, channels and server settings for later restore.",
      "name": "Backup name",
      "namePlaceholder": "e.g. Before season 3 update",
      "create": "Create backup",
      "created": "Backup created.",
      "nameRequired": "A name is required.",
      "listTitle": "Backups",
      "listDescription": "Existing backups for this server.",
      "empty": "No backups yet.",
      "info": "Info",
      "infoUnavailable": "Backup details are unavailable.",
      "infoGuildName": "Server name",
      "infoRoles": "Roles",
      "infoChannels": "Channels",
      "download": "Download JSON",
      "restore": "Restore",
      "confirmRestoreStep1": "Restore this backup? Missing roles/channels will be added and overwrites applied best-effort. Existing channels will not be deleted.",
      "confirmRestoreStep2": "Final confirmation: restore this backup now? This cannot be undone.",
      "restoreQueued": "Restore queued - it will run in the background.",
      "confirmDelete": "Really delete this backup?",
      "ownerOnlyBadge": "Owner-only restore"
    },
    "commands": {
      "title": "Commands",
      "description": "Enable/disable individual slash commands and restrict them by role, channel or cooldown.",
      "searchPlaceholder": "Search commands…",
      "empty": "No commands match your search.",
      "cooldownSeconds": "Cooldown (seconds)",
      "allowedRoleIds": "Allowed roles",
      "deniedRoleIds": "Denied roles",
      "allowedChannelIds": "Allowed channels",
      "deniedChannelIds": "Denied channels",
      "idsPlaceholder": "One or more IDs, comma-separated",
      "reset": "Reset to default",
      "globalTitle": "Global command rules",
      "globalDescription": "Channel whitelist and blacklist for all slash commands on this server. Empty whitelist = all channels (except blacklist). Per-command rules apply on top.",
      "globalAllowedChannels": "Whitelist channels",
      "globalDeniedChannels": "Blacklist channels",
      "globalAllowedHint": "When set, commands can only be used in these channels.",
      "globalDeniedHint": "Commands are always blocked in these channels.",
      "channelSearchPlaceholder": "Search channels…",
      "roleSearchPlaceholder": "Search roles…"
    }
  },
  "userMenu": {
    "theme": "Theme",
    "themeDark": "Dark",
    "themeLight": "Light",
    "logout": "Log out",
    "loggingOut": "Logging out…",
    "ownerPanel": "Owner panel"
  },
  "owner": {
    "nav": {
      "title": "Owner",
      "backToDashboard": "Back to dashboard",
      "overview": "Overview",
      "guilds": "Guilds",
      "users": "User blacklist",
      "flags": "Feature flags",
      "premium": "Premium",
      "presence": "Presence",
      "team": "Team",
      "jobs": "Jobs",
      "changelog": "Changelog",
      "audit": "Audit"
    },
    "common": {
      "empty": "No entries.",
      "noteOptional": "Note (optional)"
    },
    "overview": {
      "title": "Owner overview",
      "subtitle": "Global bot metrics and recent owner actions.",
      "guilds": "Guilds",
      "blacklistedUsers": "Blacklisted users",
      "blacklistedGuilds": "Blacklisted guilds",
      "maintenance": "Maintenance mode",
      "uptime": "WebUI uptime",
      "recentAudit": "Recent owner activity",
      "emptyAudit": "No owner actions yet.",
      "viewAudit": "Open audit",
      "changelog": "Changelog",
      "emptyChangelog": "No changelog entries yet.",
      "manageChangelog": "Manage changelog"
    },
    "guilds": {
      "title": "Guild management",
      "subtitle": "Search guilds, blacklist them, or leave with the bot.",
      "search": "Search guild ID…",
      "blacklisted": "Blacklisted",
      "blacklist": "Blacklist",
      "unblacklist": "Remove blacklist",
      "leave": "Leave guild",
      "leaveConfirm": "Really remove the bot from this guild?"
    },
    "users": {
      "title": "User blacklist",
      "subtitle": "Globally blocked Discord users (bot ignores them everywhere).",
      "userIdPlaceholder": "Discord user ID"
    },
    "flags": {
      "title": "Feature flags",
      "subtitle": "Control modules globally and configure rollouts.",
      "keyPlaceholder": "Flag key (e.g. new.module)",
      "rollout": "Rollout %"
    },
    "premium": {
      "title": "Premium",
      "subtitle": "Free/Premium tiers, limits, and manual assignment (no payments).",
      "maxTags": "Max tags",
      "maxFeeds": "Max feeds",
      "maxBackups": "Max backups",
      "feature": {
        "tags": "Tags",
        "feeds": "Feeds",
        "guildbackup": "Backups"
      },
      "guildsTitle": "Guild assignments",
      "usersTitle": "User assignments",
      "guildIdPlaceholder": "Discord guild ID",
      "userIdPlaceholder": "Discord user ID",
      "expires": "Expires"
    },
    "presence": {
      "title": "Bot presence",
      "subtitle": "Status, activity, and maintenance mode.",
      "status": "Status",
      "activityType": "Activity type",
      "activityText": "Activity text",
      "rotating": "Rotating messages (one per line)",
      "maintenanceMode": "Maintenance mode enabled",
      "maintenanceMessage": "Maintenance message"
    },
    "team": {
      "title": "Team",
      "subtitle": "Additional owners/admins with graded permissions.",
      "bootstrap": "Bootstrap owners (OWNER_USER_IDS)",
      "noBootstrap": "No bootstrap owners set in OWNER_USER_IDS."
    },
    "jobs": {
      "title": "Jobs & migrations",
      "subtitle": "BullMQ queues and Prisma migration status.",
      "queues": "Queues",
      "migrations": "Migrations",
      "retryFailed": "Retry failed"
    },
    "changelog": {
      "title": "Changelog",
      "subtitle": "Release notes for the dashboard.",
      "version": "Version",
      "titleField": "Title",
      "body": "Body"
    },
    "audit": {
      "title": "Owner audit",
      "subtitle": "All owner actions in the global audit log."
    }
  },
  "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."
  },
  "site": {
    "nav": {
      "status": "Status",
      "invite": "Invite",
      "support": "Support",
      "login": "Log in",
      "dashboard": "Dashboard",
      "theme": "Theme"
    },
    "footer": {
      "status": "Status",
      "impressum": "Legal notice",
      "privacy": "Privacy",
      "terms": "Terms",
      "dashboard": "Dashboard"
    }
  },
  "landing": {
    "hero": {
      "subtitle": "Discord bot with moderation, community, and integration modules plus a web dashboard.",
      "invite": "Invite bot",
      "login": "Open dashboard",
      "dashboard": "Open dashboard",
      "support": "Support server"
    },
    "stats": {
      "guilds": "Servers",
      "users": "Users (approx.)"
    },
    "features": {
      "title": "Modules",
      "subtitle": "Features Nexumi provides per server."
    }
  },
  "status": {
    "title": "Status",
    "subtitle": "Availability, shard status, and recent notices.",
    "overall": {
      "operational": "Operational",
      "maintenance": "Maintenance",
      "degraded": "Degraded"
    },
    "latency": "API latency",
    "guilds": "Servers",
    "uptime": "Bot uptime",
    "shardsTitle": "Shards",
    "shardsEmpty": "No shard data from the bot (Redis bot:status missing or expired).",
    "shardLabel": "Shard {id}",
    "shardStatus": "Status",
    "updatesTitle": "Updates & incidents",
    "updatesEmpty": "No entries yet.",
    "incident": "Incident"
  },
  "search": {
    "title": "Search",
    "placeholder": "Search pages, commands, or settings…",
    "empty": "No results",
    "openNav": "Open navigation",
    "groups": {
      "pages": "Pages",
      "commands": "Commands",
      "settings": "Settings"
    }
  }
}
