{ "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", "networkError": "Network error", "back": "Back", "comingSoon": "Coming soon", "close": "Close", "optional": "Optional", "searchSelect": "Search and select…", "noResults": "No results", "clearSelection": "Clear selection" }, "embedBuilder": { "title": "Title", "titlePlaceholder": "Welcome!", "description": "Description", "descriptionPlaceholder": "Glad you're here, {user}.", "color": "Color", "preview": "Preview", "previewTitlePlaceholder": "Embed title", "previewDescriptionPlaceholder": "Embed description appears here…", "clear": "Clear embed", "clearHint": "Empty fields do not save an embed.", "advancedToggle": "Advanced embed options (author, images, footer)", "authorSection": "Author (header)", "authorNamePlaceholder": "Author name, e.g. {server}", "authorIconPlaceholder": "Author icon URL or {server.icon}", "authorUrlPlaceholder": "Author link (https://…)", "mediaSection": "Media", "thumbnailPlaceholder": "Thumbnail URL or {user.avatar}", "imagePlaceholder": "Large image / banner URL (https://…)", "titleUrlPlaceholder": "Title link (https://…)", "footerSection": "Footer", "footerTextPlaceholder": "Footer text, e.g. Nexumi", "footerIconPlaceholder": "Footer icon URL or {server.icon}", "timestamp": "Show timestamp", "timestampPreview": "just now", "mediaHint": "Image URLs must start with http(s). For Welcome you can use {user.avatar} and {server.icon}." }, "componentsV2Builder": { "blocks": "Layout blocks", "addBlock": "Add block…", "addNestedBlock": "Add nested block…", "empty": "No blocks yet — add a container or text block to get started.", "preview": "Preview", "previewEmptyText": "Text content…", "previewInvalidUrl": "Invalid image URL", "clear": "Clear layout", "clearHint": "Invalid blocks are dropped when saving.", "actionsTitle": "Button & select actions", "textPlaceholder": "Markdown-style text (Discord formatting)", "divider": "Show divider line", "spacing": "Spacing", "spacingSmall": "Small", "spacingLarge": "Large", "accentColor": "Accent color (decimal)", "spoiler": "Spoiler container", "sectionText": "Section text", "accessoryType": "Accessory", "accessoryThumbnail": "Thumbnail", "accessoryButton": "Button", "urlPlaceholder": "https://… or {user.avatar}", "addMediaItem": "Add image", "addButton": "Add button", "addSelect": "Add select…", "buttonLabel": "Button label", "linkUrl": "Link URL (https://…)", "actionId": "Action ID", "centralActionId": "Central action ID (optional)", "optionLabel": "Option label", "optionValue": "Option value", "optionActionId": "Per-option action ID (optional)", "addOption": "Add option", "removeOption": "Remove option", "selectPlaceholder": "Select placeholder", "replyContent": "Reply message", "roleAction": "Target role", "defaultButtonLabel": "Button", "blockTypes": { "container": "Container", "text_display": "Text", "separator": "Separator", "section": "Section", "media_gallery": "Media gallery", "action_row": "Action row", "button": "Button" }, "buttonStyles": { "Primary": "Primary", "Secondary": "Secondary", "Success": "Success", "Danger": "Danger", "Link": "Link" }, "selectTypes": { "string_select": "String select", "user_select": "User select", "role_select": "Role select", "channel_select": "Channel select", "mentionable_select": "Mentionable select" }, "actionTypes": { "EPHEMERAL_REPLY": "Ephemeral reply", "PUBLIC_REPLY": "Public reply", "ASSIGN_ROLE": "Assign role", "REMOVE_ROLE": "Remove role", "TOGGLE_ROLE": "Toggle role", "ASSIGN_SELECTED_ROLES": "Assign selected roles", "NONE": "No action" } }, "placeholders": { "toggle": "Show available placeholders", "hint": "Tap copy to insert. Only the placeholders listed here work in this field.", "copy": "Copy placeholder", "copied": "Placeholder copied", "copyFailed": "Could not copy", "desc": { "userMention": "Mention of the member", "userName": "Member display name", "userTag": "Member username/tag", "userId": "Member Discord ID", "userDisplayName": "Display name (no mention)", "userTagPlain": "Username without mention", "username": "Member display name", "server": "Server name", "memberCount": "Current member count", "args": "Arguments after the tag command", "random": "Random choice from options (separated by |)", "age": "Age in years (only if birth year is set)", "level": "Reached level", "count": "Current stats value", "feedTitle": "Feed item title", "feedUrl": "Feed item URL", "channelBracket": "Channel mention (dashboard syntax — replace the ID)", "channelNative": "Channel mention (Discord syntax — replace the ID)", "userAvatar": "Member avatar URL (for thumbnail/icons)", "serverIcon": "Server icon URL (for author/footer)" } }, "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" }, "messages": { "label": "Messages", "description": "Send embeds or Components V2 layouts to a channel" } }, "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." }, "ownerBypass": { "title": "Owner access", "description": "You are editing this server via the Owner panel without Discord Manage Server permission.", "backToOwner": "Back to guild management" }, "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": "View moderation cases, edit the reason, or soft-delete.", "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", "editReason": "Edit reason", "saveReason": "Save", "deleteCase": "Delete case", "confirmDeleteCase": "Really delete this case?", "warningsTitle": "Warnings", "warningsDescription": "Recent warnings with short numbers (#). Remove deletes the warning entry.", "warningsEmpty": "No warnings found.", "warningsSearchUser": "Filter by user ID", "removeWarning": "Remove warning", "confirmRemoveWarning": "Really remove this warning?" }, "automod": { "title": "Auto-Moderation", "description": "Filter rules, anti-raid and anti-nuke for this server.", "enabledLabel": "Auto-moderation enabled", "enabledHint": "Master switch: only enabled rules below apply when this is on.", "rulesTitle": "Filter rules", "rulesDescription": "Per rule: action, thresholds, word/link lists and exceptions.", "ruleAction": "Action", "timeoutMinutes": "Timeout (minutes)", "actions": { "DELETE": "Delete message", "WARN": "Warn", "TIMEOUT": "Timeout", "KICK": "Kick", "BAN": "Ban" }, "thresholds": { "maxMessages": "Max messages", "windowSeconds": "Time window (seconds)", "maxMentions": "Max mentions", "capsPercent": "Caps ratio (%)", "minLength": "Min message length", "maxEmojis": "Max emojis", "duplicateCount": "Duplicate count" }, "linkWhitelist": "Link whitelist (hosts)", "linkBlacklist": "Link blacklist (hosts)", "addHost": "Add host", "wordList": "Word list", "loadDefaultWords": "Load default list (DE/EN)", "regexList": "Regex patterns", "wordPlaceholder": "banned word", "addWord": "Add word", "addRegex": "Add regex", "exceptionRoles": "Exception roles", "exceptionChannels": "Exception channels", "rules": { "SPAM": { "title": "Spam", "description": "Too many messages in a short time." }, "MASS_MENTION": { "title": "Mass mentions", "description": "Too many @-mentions in one message." }, "CAPS": { "title": "Caps", "description": "Mostly uppercase text." }, "INVITE_LINK": { "title": "Invite links", "description": "Block Discord invite links." }, "EXTERNAL_LINK": { "title": "External links", "description": "Check links against whitelist/blacklist." }, "WORD_FILTER": { "title": "Word filter", "description": "Words and regex patterns." }, "DUPLICATE": { "title": "Duplicates", "description": "Repeated identical messages." }, "EMOJI_SPAM": { "title": "Emoji spam", "description": "Too many emojis in one message." }, "ZALGO": { "title": "Zalgo", "description": "Block zalgo/combining characters." }, "PHISHING": { "title": "Phishing", "description": "Known scam/phishing domains." } }, "antiRaidTitle": "Anti-Raid", "antiRaidDescription": "Detects unusually fast join waves.", "antiRaidEnabled": "Anti-raid enabled", "antiRaidJoinThreshold": "Join threshold", "antiRaidWindowSeconds": "Time window (seconds)", "antiRaidAction": "Response", "antiRaidActions": { "LOCKDOWN": "Lockdown (lock channels)", "VERIFY": "Verify (unverified role)" }, "antiRaidActionHint": "Verify applies the unverified role from the Verification module and continues for new joins until the raid status is cleared.", "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": "Raid response active", "lockdownActiveHint": "Lockdown: unlock channels when turned off. Verify: only clears the status flag." }, "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": "Pick a log channel and assign one or more event types to it.", "channelsEmpty": "No event-channel mappings configured.", "channelsHint": "Each event type can only map to one channel. Selecting it here removes it from other rows.", "eventType": "Event type", "eventTypesLabel": "Event types", "eventTypesPlaceholder": "Search event types…", "channelId": "Log channel", "addMapping": "Add mapping", "errors": { "duplicateEventType": "An event type is assigned more than once. Please check your selection." }, "eventTypes": { "MESSAGE_EDIT": "Message edited", "MESSAGE_DELETE": "Message deleted", "MESSAGE_BULK_DELETE": "Messages bulk deleted", "MEMBER_JOIN": "Member joined", "MEMBER_LEAVE": "Member left", "MEMBER_BAN": "Member banned", "MEMBER_UNBAN": "Member unbanned", "MEMBER_UPDATE": "Member updated", "CHANNEL_CREATE": "Channel created", "CHANNEL_DELETE": "Channel deleted", "CHANNEL_UPDATE": "Channel updated", "VOICE_JOIN": "Voice joined", "VOICE_LEAVE": "Voice left", "VOICE_MOVE": "Voice moved", "INVITE_CREATE": "Invite created", "EMOJI_CREATE": "Emoji created", "EMOJI_UPDATE": "Emoji updated", "EMOJI_DELETE": "Emoji deleted", "STICKER_CREATE": "Sticker created", "STICKER_UPDATE": "Sticker updated", "STICKER_DELETE": "Sticker deleted", "THREAD_CREATE": "Thread created", "THREAD_UPDATE": "Thread updated", "THREAD_DELETE": "Thread deleted", "GUILD_UPDATE": "Server updated", "MOD_ACTION": "Moderation action", "VERIFICATION_FAIL": "Verification failed" } }, "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", "COMPONENTS_V2": "Components V2" }, "welcomeContent": "Message content", "contentPlaceholder": "Welcome {user} to {server}!", "placeholdersHint": "Available placeholders: see the list below.", "welcomeEmbed": "Embed", "welcomeComponents": "Components V2 layout", "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", "leaveType": "Message type", "leaveTypes": { "TEXT": "Text", "EMBED": "Embed", "COMPONENTS_V2": "Components V2" }, "leaveContent": "Message content", "leaveContentPlaceholder": "Goodbye {user.tag} — see you around on {server}!", "leaveEmbed": "Embed", "leaveComponents": "Components V2 layout", "leaveEmbedTitlePlaceholder": "Goodbye", "leaveEmbedDescriptionPlaceholder": "{user.tag} left {server}." }, "verification": { "title": "Verification", "description": "Mode, roles and requirements. Saving (enabled, with channel and role) posts or updates the verification panel in the selected channel.", "enabledLabel": "Verification enabled", "mode": "Mode", "modes": { "BUTTON": "Button", "CAPTCHA": "Captcha (WebUI)" }, "captchaProvider": "Captcha provider", "captchaProviders": { "MATH": "Math challenge", "RECAPTCHA_V2": "Google reCAPTCHA v2", "RECAPTCHA_V3": "Google reCAPTCHA v3", "HCAPTCHA": "hCaptcha", "TURNSTILE": "Cloudflare Turnstile" }, "failAction": "Action on failure", "failActions": { "KICK": "Kick", "BAN": "Ban", "NONE": "None" }, "channelId": "Verification channel", "verifiedRoleId": "Role after verification", "unverifiedRoleId": "Role before verification", "minAccountAgeDays": "Minimum account age (days)", "altTitle": "Alt-account detection", "altDescription": "Flags likely alternate accounts via shared captcha IP (salted hash) and invite clustering. No browser fingerprinting.", "altDetectionEnabled": "Enable alt detection", "altBlockOnMatch": "Block on match", "altBlockOnMatchHint": "Uses the configured fail action (Kick/Ban/None). Off = flag only, still verify.", "altIpWindowDays": "IP window (days)", "altInviteWindowHours": "Invite cluster window (hours)", "altMaxAccountsPerInvite": "Max accounts per invite (cluster)", "errors": { "panelTimeout": "The bot did not confirm the verification panel in time. It may still be posting — check the channel and bot permissions, then save again.", "panelNotPosted": "The verification panel could not be created in the Discord channel. Check bot permissions (View Channel, Send Messages, Embed Links)." } }, "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.", "rewardMissingRole": "Every reward needs a role.", "rewardInvalidLevel": "Level must be a whole number of at least 1.", "rewardDuplicateLevel": "Each level may only have one reward." }, "levelUpTitle": "Level-up message", "levelUpMode": "Mode", "modes": { "CHANNEL": "Channel", "DM": "Direct message", "OFF": "Off" }, "levelUpChannelId": "Level-up channel", "levelUpMessage": "Message content", "rewardsTitle": "Role rewards", "rewardsDescription": "Choose which role is granted at which level.", "rewardLevel": "Level", "rewardRole": "Role", "addReward": "Add reward", "stackRewards": "Stack role rewards", "stackRewardsHint": "On = keep all unlocked reward roles. Off = only the role for the current level.", "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. Saving (enabled, with panel channel and at least one category) posts or updates the ticket panel in the selected channel.", "enabledLabel": "Tickets module enabled", "mode": "Ticket mode", "modes": { "CHANNEL": "Private channel", "THREAD": "Private thread" }, "panelChannelId": "Panel channel", "panelChannelHint": "Channel where the ticket panel with category buttons is posted.", "categoryId": "Discord category for ticket channels", "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. Changes update an existing panel.", "categoriesEmpty": "No ticket categories configured yet.", "categoryName": "Name", "categoryEmoji": "Emoji", "categoryDescription": "Description", "supportRoleIds": "Support roles", "idsPlaceholder": "One or more IDs, comma-separated", "addCategory": "Add category", "nameRequired": "A name is required.", "openList": { "title": "Open tickets", "description": "Active tickets (open or claimed). Close, claim, or set priority — changes are applied in Discord.", "refresh": "Refresh", "empty": "No open tickets.", "noSubject": "No subject", "noCategory": "No category", "categoryLine": "Category: {category}", "claimedBy": "Claimed by {user}", "openInDiscord": "Open in Discord", "claim": "Claim", "close": "Close", "closed": "Ticket closed.", "closeReasonPlaceholder": "Optional close reason…", "status": { "OPEN": "Open", "CLAIMED": "Claimed" }, "priority": { "LOW": "Low", "NORMAL": "Normal", "HIGH": "High", "URGENT": "Urgent" } }, "errors": { "panelTimeout": "The bot did not confirm the ticket panel in time. It may still be posting — check the channel and bot permissions, then save again.", "panelNotPosted": "The ticket panel could not be created in the Discord channel. Check bot permissions (View Channel, Send Messages, Embed Links).", "noCategories": "Create at least one ticket category before the panel can be posted." } }, "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", "roleSelect": "Role", "roleLabel": "Label", "roleLabelPlaceholder": "Button display name", "roleEmoji": "Emoji", "roleDescription": "Description (optional)", "roleDescriptionPlaceholder": "Short text for dropdown", "addRole": "Add role", "emojiPlaceholder": "Choose emoji…", "emojiSearch": "Find the perfect emoji", "emojiSearchResults": "Search results", "emojiServer": "Server", "emojiServerEmpty": "No server emojis available.", "emojiUnicode": "Standard", "emojiSkinTone": "Skin tone", "emojiHoverHint": "Pick an emoji", "emojiCategories": { "people": "Smileys & People", "nature": "Animals & Nature", "foods": "Food & Drink", "activity": "Activities", "places": "Travel & Places", "objects": "Objects", "symbols": "Symbols", "flags": "Flags" }, "emojiRequired": "Reaction mode requires an emoji for every role.", "tooManyRoles": "Maximum 25 roles per panel.", "rolesBuilderHint": "Pick a role, label, and optional emoji/description. Reaction mode requires an emoji.", "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", "COMPONENTS_V2": "Components V2" }, "triggerWord": "Trigger word (optional)", "cooldownSeconds": "Cooldown (seconds)", "cooldownHint": "Minimum time between auto-replies in the same channel. 0 = no cooldown. Default: 15.", "content": "Content", "embed": "Embed", "components": "Components V2 layout", "embedRequired": "Embed tags need a title or description.", "componentsRequired": "Components V2 tags need at least one block.", "allowedRoleIds": "Allowed roles", "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", "enabledHint": "A target channel is required before enabling starboard.", "channelId": "Starboard channel", "emoji": "Trigger emoji", "emojiHint": "Unicode (⭐) or custom emoji as <:name:id> / .", "threshold": "Star threshold", "allowSelfStar": "Allow starring your own messages", "ignoredChannelIds": "Ignored channels", "nsfwHint": "NSFW channels are always excluded.", "errors": { "channelRequired": "Pick a starboard channel before enabling.", "thresholdRange": "Threshold must be between 1 and 100." } }, "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": "Voice channels with live values. After saving (module enabled) names update immediately, then every 10 minutes. The bot needs Manage Channels.", "enabledLabel": "Server stats enabled", "membersChannelId": "Members channel", "membersTemplate": "Members template", "onlineChannelId": "Online channel", "onlineTemplate": "Online template", "boostsChannelId": "Boosts channel", "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", "timingMode": "Schedule", "timingModes": { "once": "One-time", "cron": "Recurring (cron)" }, "content": "Message content", "embed": "Embed (optional)", "components": "Components V2 layout", "contentMode": "Message format", "contentModes": { "text": "Text", "embed": "Embed", "components_v2": "Components V2" }, "componentsPreview": "(Components V2)", "cronHint": "One-time time or cron recurrence — evaluated in the server timezone under General Settings. Choose text, embed, or Components V2 (mutually exclusive).", "create": "Schedule message", "created": "Message scheduled.", "formIncomplete": "Please fill channel, choose a message format with content, and either a cron expression or a date/time.", "errors": { "invalidCron": "Invalid cron expression (5–6 fields, e.g. 0 9 * * *).", "invalidWhen": "Invalid date/time.", "missingScheduleTime": "Provide 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" }, "messages": { "sendTitle": "Send a message", "sendDescription": "Post an embed or Components V2 layout to a channel via the bot.", "channelId": "Target channel", "channelRequired": "Select a channel first.", "mode": "Message type", "modes": { "EMBED": "Embed", "COMPONENTS_V2": "Components V2" }, "embedRequired": "Embed mode needs title, description, or a color.", "componentsRequired": "Add at least one valid Components V2 block.", "send": "Send message", "sending": "Sending…", "sent": "Message sent.", "sentWithId": "Message sent (ID: {id})." }, "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", "about": "About", "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 name or ID…", "unknownName": "Unknown guild", "members": "{count} members", "membersUnknown": "Member count unknown", "createInvite": "Create invite", "inviteCopied": "Invite copied: {url}", "inviteCreated": "Invite created: {url}", "openDashboard": "Open dashboard", "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.", "editorTitle": "Edit presence", "editorDescription": "Changes apply to the bot immediately after saving.", "previewTitle": "Preview", "previewRotatingHint": "Preview shows the first rotating line; Discord rotates about every minute.", "status": "Status", "activityType": "Activity type", "activityText": "Activity text", "activityTextHint": "Fallback when no rotating messages are set.", "rotating": "Rotating messages (one per line)", "rotatingHint": "Max. 20 lines of 128 characters. Rotates about every minute.", "maintenanceMode": "Maintenance mode enabled", "maintenanceMessage": "Maintenance message", "maintenanceHint": "Slash commands will only reply with the maintenance notice.", "maintenanceConfirm": "Really enable maintenance mode? Users will not be able to use commands.", "maintenancePreviewBanner": "Maintenance mode: Discord shows DND and the maintenance text.", "maintenanceFallbackActivity": "Maintenance", "readOnly": "View only — saving requires Admin owner role or higher.", "statusLabel": { "online": "Online", "idle": "Idle", "dnd": "Do not disturb", "invisible": "Invisible" }, "activityTypeLabel": { "Playing": "Playing", "Listening": "Listening to", "Watching": "Watching", "Competing": "Competing in" } }, "about": { "title": "About /about", "subtitle": "Content of the global /about reply in Discord.", "editorTitle": "About message", "editorDescription": "TEXT, embed, or Components V2 — shown for /about on every server.", "enabled": "About enabled", "enabledHint": "When off, /about replies with a disabled notice.", "messageType": "Message type", "type": { "TEXT": "Text", "EMBED": "Embed", "COMPONENTS_V2": "Components V2" }, "content": "Text content", "contentPlaceholder": "Short text about Nexumi…", "embed": "Embed", "components": "Components V2", "componentsHint": "Role actions apply in the server where /about is used. No role picker here without a guild context.", "readOnly": "View only — saving requires Admin owner role or higher." }, "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" } } }