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:
@@ -12,6 +12,7 @@ export * from './dashboard.js';
|
||||
export * from './owner.js';
|
||||
export * from './public.js';
|
||||
export * from './premium.js';
|
||||
export * from './components-v2.js';
|
||||
|
||||
export const LocaleSchema = z.enum(['de', 'en']);
|
||||
export type Locale = z.infer<typeof LocaleSchema>;
|
||||
@@ -575,13 +576,29 @@ const de: Dictionary = {
|
||||
'scheduler.list.line': '`{id}` — {channel} — {timing} — {preview}',
|
||||
'scheduler.list.cron': 'Cron `{cron}`',
|
||||
'scheduler.list.embedPreview': '[Embed]',
|
||||
'scheduler.list.componentsPreview': '[Components V2]',
|
||||
'scheduler.error.missing_schedule_time': 'Gib `when` oder `cron` an.',
|
||||
'scheduler.error.invalid_when': 'Ungültige Zeit. Nutze z. B. 1h, 2d oder ein ISO-Datum.',
|
||||
'scheduler.error.invalid_cron': 'Ungültiger Cron-Ausdruck (5–6 Felder).',
|
||||
'scheduler.error.invalid_channel': 'Ungültiger Kanal.',
|
||||
'scheduler.error.channel_unavailable': 'Der Bot kann in diesem Kanal nicht senden.',
|
||||
'scheduler.error.not_found': 'Geplante Nachricht nicht gefunden.',
|
||||
'scheduler.error.content_required': 'Inhalt oder Embed-Titel/Beschreibung erforderlich.'
|
||||
'scheduler.error.content_required': 'Inhalt oder Embed-Titel/Beschreibung erforderlich.',
|
||||
'componentsV2.error.notFound': 'Diese Komponenten-Nachricht ist nicht mehr verfügbar.',
|
||||
'componentsV2.error.actionMissing': 'Für diese Interaktion ist keine Aktion konfiguriert.',
|
||||
'componentsV2.error.botMissingManageRoles': 'Dem Bot fehlt die Berechtigung Rollen zu verwalten.',
|
||||
'componentsV2.error.roleNotFound': 'Rolle nicht gefunden.',
|
||||
'componentsV2.error.roleManaged': 'Integrierte Rollen können nicht vergeben werden.',
|
||||
'componentsV2.error.roleHierarchy': 'Die Rolle liegt über der höchsten Bot-Rolle.',
|
||||
'componentsV2.error.noRolesSelected': 'Keine Rollen ausgewählt.',
|
||||
'componentsV2.role.assigned': 'Rolle vergeben.',
|
||||
'componentsV2.role.removed': 'Rolle entfernt.',
|
||||
'componentsV2.role.assignedSelected': 'Ausgewählte Rollen vergeben.',
|
||||
'utility.embed.components.sent': 'Components-V2-Nachricht gesendet.',
|
||||
'utility.embed.components.dashboardHint':
|
||||
'Für den vollen Builder inkl. Interaktionen: {url}',
|
||||
'utility.embed.components.missingText': 'Text ist erforderlich.',
|
||||
'tag.error.components_required': 'Components-V2-Tags benötigen Komponenten.'
|
||||
};
|
||||
const en: Dictionary = {
|
||||
'generic.noPermission': 'You do not have permission for this action.',
|
||||
@@ -1111,13 +1128,29 @@ const en: Dictionary = {
|
||||
'scheduler.list.line': '`{id}` — {channel} — {timing} — {preview}',
|
||||
'scheduler.list.cron': 'Cron `{cron}`',
|
||||
'scheduler.list.embedPreview': '[Embed]',
|
||||
'scheduler.list.componentsPreview': '[Components V2]',
|
||||
'scheduler.error.missing_schedule_time': 'Provide `when` or `cron`.',
|
||||
'scheduler.error.invalid_when': 'Invalid time. Use e.g. 1h, 2d, or an ISO date.',
|
||||
'scheduler.error.invalid_cron': 'Invalid cron expression (5–6 fields).',
|
||||
'scheduler.error.invalid_channel': 'Invalid channel.',
|
||||
'scheduler.error.channel_unavailable': 'The bot cannot send messages in that channel.',
|
||||
'scheduler.error.not_found': 'Scheduled message not found.',
|
||||
'scheduler.error.content_required': 'Content or embed title/description is required.'
|
||||
'scheduler.error.content_required': 'Content or embed title/description is required.',
|
||||
'componentsV2.error.notFound': 'This component message is no longer available.',
|
||||
'componentsV2.error.actionMissing': 'No action is configured for this interaction.',
|
||||
'componentsV2.error.botMissingManageRoles': 'The bot lacks Manage Roles permission.',
|
||||
'componentsV2.error.roleNotFound': 'Role not found.',
|
||||
'componentsV2.error.roleManaged': 'Managed roles cannot be assigned.',
|
||||
'componentsV2.error.roleHierarchy': 'The role is above the bot\'s highest role.',
|
||||
'componentsV2.error.noRolesSelected': 'No roles selected.',
|
||||
'componentsV2.role.assigned': 'Role assigned.',
|
||||
'componentsV2.role.removed': 'Role removed.',
|
||||
'componentsV2.role.assignedSelected': 'Selected roles assigned.',
|
||||
'utility.embed.components.sent': 'Components V2 message sent.',
|
||||
'utility.embed.components.dashboardHint':
|
||||
'For the full builder including interactions: {url}',
|
||||
'utility.embed.components.missingText': 'Text is required.',
|
||||
'tag.error.components_required': 'Components V2 tags require components.'
|
||||
};
|
||||
|
||||
const locales: Record<Locale, Dictionary> = { de, en };
|
||||
|
||||
Reference in New Issue
Block a user