Enhance component message handling and introduce new features
- Added `ComponentMessageBinding` model to manage message components in the database. - Updated `WelcomeConfig`, `Tag`, and `ScheduledMessage` models to support new component fields. - Integrated component handling in various modules, including Scheduler and Tags, to improve message customization. - Enhanced user experience by implementing new commands for creating and managing component messages in the utility module. - Updated localization files to reflect new component-related features and improve user guidance.
This commit is contained in:
@@ -50,6 +50,78 @@
|
||||
"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.",
|
||||
@@ -174,6 +246,10 @@
|
||||
"guildbackup": {
|
||||
"label": "Backups",
|
||||
"description": "Server backup and restore"
|
||||
},
|
||||
"messages": {
|
||||
"label": "Messages",
|
||||
"description": "Send embeds or Components V2 layouts to a channel"
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
@@ -361,12 +437,14 @@
|
||||
"type": {
|
||||
"TEXT": "Text",
|
||||
"EMBED": "Embed",
|
||||
"IMAGE": "Image card"
|
||||
"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",
|
||||
@@ -377,9 +455,16 @@
|
||||
"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}."
|
||||
},
|
||||
@@ -550,12 +635,15 @@
|
||||
"responseType": "Response type",
|
||||
"responseTypes": {
|
||||
"TEXT": "Text",
|
||||
"EMBED": "Embed"
|
||||
"EMBED": "Embed",
|
||||
"COMPONENTS_V2": "Components V2"
|
||||
},
|
||||
"triggerWord": "Trigger word (optional)",
|
||||
"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",
|
||||
@@ -658,10 +746,18 @@
|
||||
"runAt": "Run at",
|
||||
"content": "Message content",
|
||||
"embed": "Embed (optional)",
|
||||
"cronHint": "Set a cron expression for recurring messages, or a one-time date/time - not both. Text and/or embed is required.",
|
||||
"components": "Components V2 layout",
|
||||
"contentMode": "Message format",
|
||||
"contentModes": {
|
||||
"text": "Text",
|
||||
"embed": "Embed",
|
||||
"components_v2": "Components V2"
|
||||
},
|
||||
"componentsPreview": "(Components V2)",
|
||||
"cronHint": "Set a cron expression for recurring messages, or a one-time date/time — not both. Choose text, embed, or Components V2 (mutually exclusive).",
|
||||
"create": "Schedule message",
|
||||
"created": "Message scheduled.",
|
||||
"formIncomplete": "Please fill channel, content or embed, and either a cron expression or a date/time.",
|
||||
"formIncomplete": "Please fill channel, choose a message format with content, and either a cron expression or a date/time.",
|
||||
"confirmDelete": "Really delete this schedule?",
|
||||
"listTitle": "Scheduled messages",
|
||||
"listDescription": "Upcoming and recurring scheduled messages.",
|
||||
@@ -692,6 +788,23 @@
|
||||
"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.",
|
||||
|
||||
Reference in New Issue
Block a user