- Refactored localization keys in the verification form component to use pluralized keys for modes and fail actions, enhancing clarity and consistency across the application. - Updated corresponding localization files in English and German to reflect the new key structure.
812 lines
30 KiB
JSON
812 lines
30 KiB
JSON
{
|
||
"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",
|
||
"modes": {
|
||
"BUTTON": "Button",
|
||
"CAPTCHA": "Captcha (WebUI)"
|
||
},
|
||
"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)"
|
||
},
|
||
"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"
|
||
}
|
||
}
|
||
}
|