@dev.smartpricing/message-composer-layer 4.2.3-validations.0 → 4.2.4-brands.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,620 +1,251 @@
1
1
  export default {
2
- language: {
3
- en: 'English',
4
- de: 'German',
5
- fr: 'French',
6
- it: 'Italian',
7
- es: 'Spanish',
8
- },
9
- message: {
10
- render_type: {
11
- whatsapp_v1: 'Whatsapp',
12
- email_v1: 'Email',
13
- },
14
- },
15
- status: {
16
- pending: 'Pending',
17
- draft: 'Draft',
18
- rejected: 'Rejected',
19
- approved: 'Approved',
20
- },
21
2
  categories: {
22
3
  marketing: 'Marketing',
23
4
  utility: 'Utility',
24
5
  },
25
6
  common: {
26
- search: 'Search...',
27
- all: 'All',
28
- view_less: 'View less',
29
- view_more: 'View more',
30
- copy: 'Copy',
31
- success: 'Success',
32
- error: 'Error',
33
- errore: 'Error',
34
- mobile: 'Mobile',
35
- desktop: 'Desktop',
36
7
  actions: {
37
- edit: 'Edit',
8
+ cancel: 'Cancel',
38
9
  delete: 'Delete',
39
10
  duplicate: 'Duplicate',
40
- cancel: 'Cancel',
11
+ edit: 'Edit',
41
12
  publish: 'Publish',
42
- unpublish: 'Unpublish',
43
- save: 'Save',
44
13
  remove: 'Remove',
45
14
  reset_defaults: 'Reset to defaults',
15
+ save: 'Save',
16
+ unpublish: 'Unpublish',
46
17
  },
47
- internal: 'Internal',
18
+ all: 'All',
19
+ copy: 'Copy',
20
+ copy_of: 'Copy of {name}',
21
+ desktop: 'Desktop',
22
+ error: 'Error',
23
+ errore: 'Error',
48
24
  imageUpload: {
49
- upload: 'Upload',
50
- uploading: 'Uploading...',
51
- selectFromLibrary: 'Select from library',
52
- selectImage: 'Select an image',
53
- searchPlaceholder: 'Search by name...',
54
- noImages: 'No images available',
55
- noResults: 'No images match your search',
56
- videoMp4Only: 'Only MP4 and 3GPP video files are supported.',
57
25
  imageJpgPngOnly: 'Only JPG and PNG image files are supported.',
58
26
  mediaFileTooLarge: 'File is too large. Maximum size: {maxSize}MB.',
59
27
  mediaInvalidType: 'Unsupported file type.',
60
28
  mediaLimitations: {
29
+ document: 'PDF only. Max {maxSize}MB.',
61
30
  image: 'JPG, PNG only. Max {maxSize}MB.',
62
31
  video: 'MP4, 3GPP only. Max {maxSize}MB.',
63
- document: 'PDF only. Max {maxSize}MB.',
64
32
  },
33
+ noImages: 'No images available',
34
+ noResults: 'No images match your search',
35
+ searchPlaceholder: 'Search by name...',
36
+ selectFromLibrary: 'Select from library',
37
+ selectImage: 'Select an image',
38
+ upload: 'Upload',
39
+ uploading: 'Uploading...',
40
+ videoMp4Only: 'Only MP4 and 3GPP video files are supported.',
65
41
  },
66
- copy_of: 'Copy of {name}',
42
+ internal: 'Internal',
43
+ mobile: 'Mobile',
67
44
  preview: 'Preview',
45
+ search: 'Search...',
46
+ success: 'Success',
68
47
  translation_failed: 'Translation failed',
69
- },
70
- documentation: {
71
- whatsapp_category: {
72
- category: 'Message',
73
- title: 'Choose the correct category',
74
- description:
75
- 'To ensure effective and efficient conversations, whatsapp has <b>defined specific guidelines</b> for the messages businesses can send to their customers.',
76
- info: 'Any message that combines marketing and utility content will be classified as a marketing message.',
77
- content: {
78
- marketing: `
79
- # Marketing
80
-
81
- Marketing messages offer maximum flexibility: they’re not tied to a specific transaction but can **promote the business**, its **products**, or **services**.
82
-
83
- &nbsp;
84
-
85
- They may include, for example:
86
- - promotional offers or commercial messages;
87
- - welcome or follow-up messages;
88
- - invitations, updates, or personalized suggestions;
89
- - requests for interaction or to start a new transaction
90
- `,
91
- utility: `
92
- # Utility
93
-
94
- Utility messages are designed to support operational interactions between a business and its customers, related to existing transactions or services.
95
-
96
- &nbsp;
97
-
98
- They may include, for example:
99
- - confirmations, suspensions, or changes to an existing booking or subscription;
100
- - notifications related to accounts, billing, or payments.
101
-
102
- &nbsp;
103
-
104
- These messages must be functional, not promotional.
105
- `,
106
- },
107
- },
48
+ view_less: 'View less',
49
+ view_more: 'View more',
108
50
  },
109
51
  dialogs: {
110
- unsaved_changes: {
111
- title: 'You have unsaved changes',
112
- category: 'Message',
113
- message:
114
- 'Are you sure you want to leave this page? You will lose all the changes made so far.',
115
- cancel: 'Cancel',
116
- leave: 'Yes, leave this page',
52
+ delete_message: {
53
+ message: "This action can't be undone. Are you sure you want to delete {name}?",
54
+ success: '{name} has been successfully deleted.',
55
+ title: 'Delete',
117
56
  },
118
57
  delete_message_group: {
119
- title: 'Delete',
120
58
  message: "This action can't be undone. Are you sure you want to delete {name}?",
121
59
  success: '{name} has been successfully deleted.',
60
+ title: 'Delete',
122
61
  },
123
- publish_message_group: {
124
- title: 'Publish message',
125
- message: 'Publish "{name}" to make it visible to clients?',
126
- success: '"{name}" has been published.',
127
- },
128
- unpublish_message_group: {
129
- title: 'Unpublish message',
130
- message: 'Unpublish "{name}"? It will no longer be visible to clients.',
131
- success: '"{name}" has been unpublished.',
62
+ email_change_brand: {
63
+ cancel: 'Cancel',
64
+ confirm: 'Change to {0}',
65
+ message:
66
+ "Changing brand will reset email colors, fonts, header logo and button styles to the new brand's defaults. Custom overrides will be lost.",
67
+ title: 'Change brand',
132
68
  },
133
- delete_message: {
134
- title: 'Delete',
135
- message: "This action can't be undone. Are you sure you want to delete {name}?",
136
- success: '{name} has been successfully deleted.',
69
+ grid_reduce_columns: {
70
+ confirm: 'Confirm',
71
+ message: 'Some elements may be lost and cannot be recovered.',
72
+ title: 'Edit number of columns',
137
73
  },
138
74
  incomplete_translations: {
139
- title: 'Missing translations',
140
75
  description:
141
76
  'You are about to save a message that contains missing translations. To use it correctly, we recommend completing the missing translations.',
142
- note: 'If you no longer need certain languages, you can remove them from the list in the left panel using the dedicated button.',
143
77
  go_to_translations: 'Go to translations',
78
+ note: 'If you no longer need certain languages, you can remove them from the list in the left panel using the dedicated button.',
144
79
  save_without_translating: 'Save without translating',
80
+ title: 'Missing translations',
145
81
  translate_and_save: 'Translate automatically and save',
146
82
  },
83
+ publish_message_group: {
84
+ message: 'Publish "{name}" to make it visible to clients?',
85
+ success: '"{name}" has been published.',
86
+ title: 'Publish message',
87
+ },
88
+ unpublish_message_group: {
89
+ message: 'Unpublish "{name}"? It will no longer be visible to clients.',
90
+ success: '"{name}" has been unpublished.',
91
+ title: 'Unpublish message',
92
+ },
93
+ unsaved_changes: {
94
+ cancel: 'Cancel',
95
+ category: 'Message',
96
+ leave: 'Yes, leave this page',
97
+ message:
98
+ 'Are you sure you want to leave this page? You will lose all the changes made so far.',
99
+ title: 'You have unsaved changes',
100
+ },
147
101
  whatsapp_change_category: {
148
- title: 'Change category',
102
+ cancel: 'Cancel',
149
103
  category: 'Message',
150
- message: 'You are about to change the category from {0} to <b>{1}</b>.',
104
+ change_to: 'Change to {0}',
151
105
  fields_may_change:
152
106
  'By changing the category, <b>some fields may change</b>. The category change will be applied to all languages.',
153
- cancel: 'Cancel',
154
- change_to: 'Change to {0}',
155
- },
156
- email_change_brand: {
157
- title: 'Change brand',
158
- message:
159
- "Changing brand will reset email colors, fonts, header logo and button styles to the new brand's defaults. Custom overrides will be lost.",
160
- confirm: 'Change to {0}',
161
- cancel: 'Cancel',
162
- },
163
- grid_reduce_columns: {
164
- title: 'Edit number of columns',
165
- message: 'Some elements may be lost and cannot be recovered.',
166
- confirm: 'Confirm',
107
+ message: 'You are about to change the category from {0} to <b>{1}</b>.',
108
+ title: 'Change category',
167
109
  },
168
110
  },
169
- modals: {
170
- dynamic_data_modal: {
171
- category: 'Body content',
172
- title: 'Add dynamic field',
173
- description:
174
- 'There is no limit to how many you can use. If you end a sentence with a dynamic value, make sure to add a dot (“.”) at the end.',
175
- select_value: 'Select a value',
176
- will_display: 'The text field will display &#123;&#123;{value}&#125;&#125;',
177
- search_placeholder: 'Search fields...',
178
- info: 'Dynamic fields are placeholders that will be replaced with real data (e.g., guest name) when the message is sent. If a field has no data, it will be skipped.',
179
- no_values: 'No dynamic values available for this product.',
180
- tabs: {
181
- newsletter: 'Newsletter',
182
- 'guest-automation': 'Guest Automation',
183
- 'reservation-automation': 'Reservation Automation',
184
- default: 'Default',
111
+ documentation: {
112
+ whatsapp_category: {
113
+ category: 'Message',
114
+ content: {
115
+ marketing:
116
+ '\n# Marketing\n\nMarketing messages offer maximum flexibility: they’re not tied to a specific transaction but can **promote the business**, its **products**, or **services**.\n\n&nbsp;\n\nThey may include, for example:\n- promotional offers or commercial messages;\n- welcome or follow-up messages;\n- invitations, updates, or personalized suggestions;\n- requests for interaction or to start a new transaction\n ',
117
+ utility:
118
+ '\n# Utility\n\nUtility messages are designed to support operational interactions between a business and its customers, related to existing transactions or services.\n\n&nbsp;\n\nThey may include, for example:\n- confirmations, suspensions, or changes to an existing booking or subscription;\n- notifications related to accounts, billing, or payments.\n\n&nbsp;\n\nThese messages must be functional, not promotional.\n ',
185
119
  },
120
+ description:
121
+ 'To ensure effective and efficient conversations, whatsapp has <b>defined specific guidelines</b> for the messages businesses can send to their customers.',
122
+ info: 'Any message that combines marketing and utility content will be classified as a marketing message.',
123
+ title: 'Choose the correct category',
186
124
  },
187
125
  },
188
- pages: {
189
- message_library: {
190
- add_message_group: 'New message',
191
- title: 'Messages',
192
- search_placeholder: 'Search',
193
- category_placeholder: 'Select category',
194
- status_placeholder: 'Select status',
195
- tags_placeholder: 'Filter by tags',
196
- render_type_placeholder: 'Select render type',
197
- headers: {
198
- name: 'Name',
199
- category: 'Category',
200
- preview: 'Preview',
201
- status: 'Status',
202
- tags: 'Tags',
203
- updated_at: 'Updated at',
204
- },
205
- },
206
- whatsapp: {
207
- tabs: {
208
- content: 'Message',
209
- translations: 'Translations',
210
- },
211
- create_message_group: {
212
- title: 'Create message',
213
- save_draft: 'Save draft',
214
- save_as_new: 'Save as new',
215
- request_approval: 'Request approval',
216
- name: 'Name',
217
- name_placeholder: 'Message name',
218
- category: 'Category',
219
- category_placeholder: 'Select category',
220
- message_content: 'Message content',
221
- add_language: 'Add language',
222
- },
223
- edit_message_group: {
224
- title: 'Edit whatsapp message',
225
- save_draft: 'Save draft',
226
- save_as_new: 'Save as new',
227
- request_approval: 'Request approval',
228
- name: 'Name',
229
- name_placeholder: 'Message name',
230
- category: 'Category',
231
- category_placeholder: 'Select category',
232
- message_content: 'Message content',
233
- add_language: 'Add language',
234
- },
126
+ editor: {
127
+ actions: {
128
+ generate_text: 'Generate',
129
+ improve_text: 'Improve message',
130
+ refining: 'We are improving your text...',
235
131
  },
236
132
  email: {
237
- send_test: 'Send test',
238
- send_test_success: 'Test email sent successfully.',
239
- test_email_to: 'To',
240
- test_email_to_placeholder: 'Recipient email(s), separated by ;',
241
- test_email_from: 'From',
242
- test_email_from_placeholder: 'Sender email address',
243
- create_message_group: {
244
- title: 'Create message',
245
- save: 'Save',
246
- save_as_draft: 'Save draft',
247
- save_message: 'Save',
248
- name: 'Name',
249
- name_placeholder: 'Message name',
250
- subject: 'Subject',
251
- subject_placeholder: 'Email subject line',
252
- tab_content: 'Message',
253
- tab_translations: 'Translations',
254
- },
255
- edit_message_group: {
256
- title: 'Edit email message',
257
- save: 'Save',
258
- save_as_draft: 'Save draft',
259
- save_message: 'Save',
260
- save_as_new: 'Save as new',
261
- name: 'Name',
262
- name_placeholder: 'Message name',
263
- subject: 'Subject',
264
- subject_placeholder: 'Email subject line',
265
- tab_content: 'Message',
266
- tab_translations: 'Translations',
267
- },
268
- },
269
- brands: {
270
- title: 'Brands',
271
- new_brand: 'New brand',
272
- edit_brand: 'Edit brand',
273
- no_brands: 'No brands created yet',
274
- search_placeholder: 'Search brands...',
275
- column_name: 'Name',
276
- column_created: 'Created',
277
- column_actions: 'Actions',
278
- delete_confirm_title: 'Delete brand',
279
- delete_confirm_message: 'Are you sure you want to delete "{name}"? This cannot be undone.',
280
- brand_deleted: '"{name}" has been deleted.',
281
- brand_created: 'Brand created successfully.',
282
- brand_updated: 'Brand updated successfully.',
283
- save_error: 'Failed to save brand. Please try again.',
284
- steps: {
285
- general: 'General',
286
- visual_style: 'Visual style',
287
- socials: 'Socials',
288
- },
289
- fields: {
290
- name: 'Brand name',
291
- name_placeholder: 'E.g. Smartness',
292
- properties: 'Properties',
293
- properties_placeholder: 'Select properties',
294
- logo: 'Logo',
295
- upload_logo: 'Upload logo',
296
- change_logo: 'Change logo',
297
- colors: 'Brand colors',
298
- add_color: 'Add color',
299
- extracting_colors: 'Extracting colors from logo...',
300
- default_email_colors: 'Default email colors',
301
- email_bg_color: 'Background',
302
- email_content_bg_color: 'Content background',
303
- email_text_color: 'Text',
304
- default_button_colors: 'Default button colors',
305
- button_text_color: 'Text',
306
- button_bg_color: 'Background',
307
- default_font: 'Default font',
308
- },
309
- actions: {
310
- back: 'Back',
311
- next: 'Next',
312
- create: 'Create brand',
313
- },
314
- validation: {
315
- name_required: 'Brand name is required',
316
- invalid_social_url: 'One or more social URLs are invalid',
317
- invalid_url_format: 'Invalid URL format',
318
- },
319
- preview: {
320
- title: 'Preview',
321
- empty: 'Preview will appear here',
322
- },
323
- },
324
- images: {
325
- title: 'Images',
326
- no_images_uploaded: 'No images uploaded',
327
- meta_access_token_not_configured: 'Meta access token not configured',
328
- image_uploaded_to_meta: 'Image uploaded to meta',
329
- image_deleted: 'Image deleted',
330
- delete_confirm: 'Delete {name}?',
331
- meta: 'Meta',
332
- no_meta: 'No meta',
333
- type_label: 'Type:',
334
- created_label: 'Created:',
335
- handle_label: 'Handle:',
336
- upload_to_meta: 'Upload to meta',
337
- },
338
- },
339
- editor: {
340
- actions: {
341
- improve_text: 'Improve message',
342
- refining: 'We are improving your text...',
343
- generate_text: 'Generate',
344
- },
345
- generate: {
346
- title: 'Generate content',
347
- description: 'Provide a clear and concise description for the best results.',
348
- placeholder: 'Start typing here...',
349
- disclaimer: 'Artificial intelligence can produce inaccurate content.',
350
- cancel: 'Cancel',
351
- submit: 'Generate content',
352
- your_request: 'Your request',
353
- choose_option: 'Choose an option',
354
- use_it: 'Use it',
355
- create_new: 'Create new content',
356
- loading: 'Generating suggestions...',
357
- error: 'Failed to generate content. Please try again.',
358
- retry: 'Try again',
359
- char_count: '{count}/{max}',
360
- },
361
- toolbar: {
362
- bold: 'Bold',
363
- italic: 'Italic',
364
- underline: 'Underline',
365
- bullet_list: 'Bullet list',
366
- ordered_list: 'Ordered list',
367
- text_align: 'Text align',
368
- align_left: 'Align left',
369
- align_center: 'Align center',
370
- align_right: 'Align right',
371
- align_justify: 'Justify',
372
- link: 'Link',
373
- link_placeholder: 'Paste a link...',
374
- link_apply: 'Apply link',
375
- link_open: 'Open in new window',
376
- link_remove: 'Remove link',
377
- horizontal_rule: 'Horizontal line',
378
- emoji: 'Emoji',
379
- dynamic_data: 'Dynamic data',
380
- },
381
- placeholder: {
382
- insert_text: 'Insert text',
383
- },
384
- validation: {
385
- character_limit: 'This field has a character limit.',
386
- invalid_phone_number: 'Invalid phone number',
387
- error: {
388
- title: 'Please fix the following errors',
389
- invalidRenderType: 'Invalid message type',
390
- bodyRequired: 'Message body is required',
391
- bodyEmpty: 'Message body cannot be empty',
392
- maxButtons: 'Maximum 10 buttons allowed',
393
- maxLinkButtons: 'Maximum 1 link button allowed',
394
- maxPhoneButtons: 'Maximum 1 phone button allowed',
395
- maxUnsubscribeButtons: 'Maximum 1 unsubscribe button allowed',
396
- maxQuickReplyButtons: 'Maximum 3 quick reply buttons allowed',
397
- phoneRequired: 'Phone number is required for phone button',
398
- phoneInvalid: 'Invalid phone number format. Use international format (e.g., +1234567890)',
399
- urlRequired: 'Url is required for link button',
400
- urlInvalid: 'Invalid url format. Use https:// or http:// at the beginning.',
401
- emailInvalid: "Invalid email format. Use email format (e.g., example{'@'}example.com)",
402
- emailRequired: 'Please enter a valid email address',
403
- nameRequired: 'Name is required',
404
- messageRequired: 'At least one language is required',
405
- headerTooLong: 'Header text exceeds 60 characters',
406
- headerMediaRequired: 'Header media file is required',
407
- bodyTooLong: 'Body text exceeds 1024 characters',
408
- footerTooLong: 'Footer text exceeds 60 characters',
409
- buttonTextTooLong: 'Button text exceeds 20 characters',
410
- textTooLong: 'Text exceeds maximum length',
411
- // Email validation errors
412
- subjectRequired: 'Email subject is required',
413
- atLeastOneBlockRequired: 'At least one content block is required',
414
- spacerHeightInvalid: 'Spacer height must be between 8 and 200 pixels',
415
- dividerThicknessInvalid: 'Divider thickness must be between 1 and 20 pixels',
416
- dividerWidthInvalid: 'Divider width must be between 10% and 100%',
417
- headingFontSizeInvalid: 'Heading font size must be between 16 and 48 pixels',
418
- paragraphFontSizeInvalid: 'Paragraph font size must be between 10 and 32 pixels',
419
- imageWidthInvalid: 'Image width must be between 50 and 600 pixels',
420
- buttonFontSizeInvalid: 'Button font size must be between 12 and 32 pixels',
421
- discountFontSizeInvalid: 'Discount font size must be between 12 and 48 pixels',
422
- unsubscribeBlockMissing: 'An unsubscribe link block is required',
423
- unsubscribeLinkRequired: 'Unsubscribe block must contain the unsubscribe dynamic value',
424
- imageSourceRequired: 'Image block requires an image',
425
- headerLogoRequired: 'Header block requires a logo',
426
- socialsNoEnabled: 'At least one social link must be enabled',
427
- socialsUrlRequired: 'Enabled social links must have a URL or a brand default',
428
- topProductsStoreIdRequired: 'Top products block requires a store ID',
429
- buttonTextRequired: 'Button text is required',
430
- gridColumnEmpty: 'Grid column cannot be empty',
431
- htmlMaxLength: 'HTML block exceeds maximum character limit',
432
- },
433
- },
434
- whatsapp: {
435
- header: {
436
- title: 'Header',
437
-
438
- type_placeholder: 'Select type',
439
- types: {
440
- none: 'None',
441
- text: 'Text',
442
- video: 'Video',
443
- document: 'Document',
444
- image: 'Image',
445
- },
446
- },
447
- body: {
448
- title: 'Body',
449
- description_main:
450
- 'It is the <b>main part of the message</b>, the content you want to communicate to the customer. You can include in the text:',
451
- description_link:
452
- '<b>links</b> by pasting the full url directly. To make them clickable, make sure to include https:// or http:// at the beginning. Avoid shortened links (e.g. bit.ly, tinyurl) as they might look like spam and cause the message to be rejected.',
453
- description_dynamic_values:
454
- '<b>Dynamic values</b>, with no limit on how many you use. If you end a sentence with a dynamic value, make sure to add a period at the end.',
455
- },
456
- footer: {
457
- title: 'Footer (optional)',
458
- description_main:
459
- "It's meant to provide <b>context and support</b> without interfering with the main message.",
460
- placeholder: 'Footer',
461
- },
462
- buttons: {
463
- title: 'Buttons (optional)',
464
- description_main:
465
- 'Some guidelines <b>to ensure your message gets approved</b> and works properly:',
466
- description_unsubscribe:
467
- "<b>Unsubscribe</b> button lets users opt out of receiving future messages from your business. It's strongly recommended for marketing messages.",
468
- description_phone:
469
- '<b>Phone</b> button allows users to start a phone call from their device with a single tap. Only one button is allowed per message',
470
- description_link:
471
- '<b>Link</b> button lets users open an external link directly from the chat interface. You can include up to two link buttons per message',
472
- description_quick_reply:
473
- '<b>Quick reply</b> button lets users choose between one or more predefined options without having to type text, making the conversation more fluid and guided.',
474
- add_button: 'Add',
475
- button_types: {
476
- phone: 'Phone',
477
- unsubscribe: 'Unsubscribe',
478
- link: 'Link',
479
- quick_reply: 'Quick reply',
480
- },
481
- placeholders: {
482
- text: 'Button text',
483
- phone: 'Phone number',
484
- url: 'Url',
485
- },
486
- default_text: {
487
- phone: 'Call us',
488
- link: '',
489
- unsubscribe: 'Unsubscribe',
490
- },
491
- },
492
- translations: {
493
- placeholder: 'Add translation',
494
- },
495
- translator: {
496
- header: 'Header',
497
- body: 'Body',
498
- footer: 'Footer',
499
- button: 'Button',
500
- reset_to_main: 'Reset to main language',
501
- },
502
- preview: {
503
- header_image_alt: 'Header image',
504
- document_link: 'Document',
505
- },
506
- },
507
- languages: {
508
- title: 'Language',
509
- add: 'Add new',
510
- recommended: 'Recommended languages',
511
- all_languages: 'All languages',
512
- },
513
- email: {
514
- common: {
515
- reset: 'Reset',
516
- },
517
- canvas: {
518
- title: 'Email canvas',
519
- empty: 'No blocks yet',
520
- emptyHint: 'Drag blocks from the library to start building your email',
521
- blockNotImplemented: 'Block type "{type}" not yet implemented',
522
- dropHere: 'Drop blocks here to add them to your email',
523
- },
524
- sidebar: {
525
- elementsTab: 'Elements',
526
- generalStyleTab: 'General style',
527
- library: 'Block library',
528
- settings: 'Block settings',
529
- backToLibrary: 'Back to library',
530
- settingsPlaceholder: 'Select a block to edit its settings',
531
- settingsNotAvailable: 'Settings not available for block type: {type}',
532
- },
533
- generalStyle: {
534
- instruction: 'Customize page elements',
535
- brandSection: 'Brand',
536
- selectBrand: 'Select a brand',
537
- fromColorList: 'From color list',
538
- typographySection: 'Typography',
539
- font: 'Font',
540
- colorsSection: 'Colors',
541
- textColor: 'Text',
542
- backgroundColor: 'Background',
543
- bodyColor: 'Body',
544
- spacingSection: 'Spacing',
545
- verticalSpacing: 'Vertical',
546
- horizontalSpacing: 'Horizontal',
547
- reset: 'Reset all to defaults',
133
+ actions: {
134
+ delete: 'Delete',
135
+ duplicate: 'Duplicate',
548
136
  },
549
137
  blockLibrary: {
550
138
  description: 'Drag and combine elements to create content and customize your email.',
551
139
  },
552
140
  blocks: {
553
- text_types: {
554
- p: 'Paragraph',
555
- h1: 'Heading 1',
556
- h2: 'Heading 2',
557
- h3: 'Heading 3',
558
- h4: 'Heading 4',
559
- h5: 'Heading 5',
560
- h6: 'Heading 6',
141
+ button: {
142
+ description: 'Call-to-action button',
143
+ link_types: {
144
+ email: 'Email',
145
+ phone: 'Phone',
146
+ web: 'Web',
147
+ },
148
+ name: 'Button',
149
+ placeholder: 'Add text button',
150
+ settings: {
151
+ background: 'Background',
152
+ background_block: 'Background block',
153
+ colors: 'Colors',
154
+ content: 'Content',
155
+ font: 'Font',
156
+ link_type: 'Link type',
157
+ size: 'Size',
158
+ style: 'Style',
159
+ text: 'Text',
160
+ text_type: 'Text type',
161
+ },
162
+ shapes: {
163
+ pill: 'Pill',
164
+ rounded: 'Rounded',
165
+ square: 'Square',
166
+ },
167
+ widths: {
168
+ fit_to_text: 'Fit to text',
169
+ full_width: 'Full width',
170
+ },
561
171
  },
562
- spacer: {
563
- name: 'Spacer',
564
- description: 'Add vertical spacing between blocks',
565
- label: '{height}px spacer',
172
+ discount: {
173
+ description: 'Promo code display',
174
+ name: 'Discount code',
175
+ placeholder: 'Add your discount code',
566
176
  settings: {
177
+ background_block: 'Background block',
178
+ background_component: 'Background component',
179
+ colors: 'Colors',
180
+ discount_code: 'Discount code',
181
+ font: 'Font',
567
182
  size: 'Size',
568
- customSize: 'Custom Size',
569
- height: 'Height',
570
- heightHint: 'Height between {min}px and {max}px',
571
- backgroundColor: 'Color',
572
- sizePresets: {
573
- small: 'Small',
574
- medium: 'Medium',
575
- large: 'Large',
576
- extra_large: 'Extra Large',
577
- },
183
+ style: 'Style',
184
+ text: 'Text',
185
+ text_type: 'Text type',
186
+ type: 'Type',
187
+ },
188
+ styles: {
189
+ pill: 'Pill',
190
+ rounded: 'Rounded',
191
+ square: 'Square',
578
192
  },
579
193
  },
580
194
  divider: {
581
- name: 'Divider',
582
195
  description: 'Add a horizontal line to separate content',
196
+ name: 'Divider',
583
197
  settings: {
198
+ backgroundColor: 'Background color',
199
+ color: 'Color',
584
200
  style: 'Style',
585
201
  thickness: 'Thickness',
586
202
  thicknessHint: 'Thickness between {min}px and {max}px',
587
203
  width: 'Width',
588
204
  widthHint: 'Width as percentage (10-100%)',
205
+ },
206
+ },
207
+ footer: {
208
+ description: 'Legal & contact info',
209
+ name: 'Footer',
210
+ },
211
+ grid: {
212
+ add_element: 'Add element',
213
+ description: 'Multi-column layout',
214
+ name: 'Grid',
215
+ settings: {
216
+ background_block: 'Background block',
589
217
  color: 'Color',
590
- backgroundColor: 'Background color',
218
+ columns: 'Columns',
591
219
  },
592
220
  },
593
- paragraph: {
594
- name: 'Paragraph',
595
- description: 'Add rich text content with formatting',
221
+ header: {
222
+ description: 'Add your property logo',
223
+ name: 'Header',
224
+ no_logo: 'No logo selected',
596
225
  settings: {
597
- type: 'Type',
598
- fontFamily: 'Font family',
599
- fontSize: 'Font size',
600
- fontSizeHint: 'Font size between {min}px and {max}px',
601
- textColor: 'Text color',
602
- backgroundColor: 'Background color',
226
+ alignment: 'Alignment',
227
+ alt: 'Alt text',
228
+ alt_placeholder: 'Describe the logo...',
229
+ background: 'Background color',
230
+ reset: 'Reset to default',
231
+ source: 'Logo',
232
+ style: 'Style',
233
+ width: 'Logo width',
603
234
  },
604
235
  },
605
236
  heading: {
606
- name: 'Heading',
607
237
  description: 'Title and section headers',
238
+ name: 'Heading',
608
239
  settings: {
240
+ alignment: 'Alignment',
241
+ backgroundBlock: 'Background block',
242
+ color: 'Color',
609
243
  content: 'Content',
610
- textStyle: 'Text style',
611
- type: 'Type',
612
244
  font: 'Font',
613
245
  size: 'Size',
614
- alignment: 'Alignment',
615
- color: 'Color',
616
246
  text: 'Text',
617
- backgroundBlock: 'Background block',
247
+ textStyle: 'Text style',
248
+ type: 'Type',
618
249
  },
619
250
  types: {
620
251
  heading_1: 'Heading 1',
@@ -625,213 +256,570 @@ These messages must be functional, not promotional.
625
256
  heading_6: 'Heading 6',
626
257
  },
627
258
  },
628
- raw_html: {
629
- name: 'Html',
630
- description: 'Custom HTML code',
631
- placeholder: 'Insert html code',
632
- settings: {
633
- html: 'Html content',
634
- characterCount: '{count} / {max} characters',
635
- },
636
- warning: {
637
- title: 'Note:',
638
- message:
639
- "Most email clients only support basic html. Interactive elements like javascript or flash won't be saved.",
640
- learnMore: 'Learn more about HTML in content blocks',
641
- },
642
- },
643
259
  image: {
644
- name: 'Image',
260
+ alt_help: 'Alternative text improves accessibility',
261
+ alt_placeholder: 'Describe the image...',
645
262
  description: 'Add photos and graphics',
263
+ href_help: 'Optional link when image is clicked',
264
+ name: 'Image',
646
265
  no_image: 'No image selected',
647
- upload: 'Upload',
266
+ no_images: 'No images available',
648
267
  select_from_library: 'Select from library',
649
268
  select_image: 'Select an image',
650
- no_images: 'No images available',
651
- alt_placeholder: 'Describe the image...',
652
- alt_help: 'Alternative text improves accessibility',
653
- href_help: 'Optional link when image is clicked',
654
269
  settings: {
655
- source: 'Image source',
656
- alt: 'Alt text',
657
- size_layout: 'Size & layout',
658
- width_mode: 'Width mode',
659
- width: 'Width',
660
270
  align: 'Alignment',
271
+ alt: 'Alt text',
661
272
  border_radius: 'Border radius',
662
- link: 'Link',
663
273
  href_placeholder: 'https://example.com',
274
+ link: 'Link',
664
275
  padding: 'Padding',
665
- padding_top: 'Top',
666
- padding_right: 'Right',
667
276
  padding_bottom: 'Bottom',
668
277
  padding_left: 'Left',
278
+ padding_right: 'Right',
279
+ padding_top: 'Top',
280
+ size_layout: 'Size & layout',
281
+ source: 'Image source',
282
+ width: 'Width',
283
+ width_mode: 'Width mode',
669
284
  },
285
+ upload: 'Upload',
670
286
  },
671
- button: {
672
- name: 'Button',
673
- description: 'Call-to-action button',
674
- placeholder: 'Add text button',
675
- settings: {
676
- content: 'Content',
677
- link_type: 'Link type',
678
- text_type: 'Text type',
679
- font: 'Font',
680
- size: 'Size',
681
- style: 'Style',
682
- colors: 'Colors',
683
- text: 'Text',
684
- background: 'Background',
685
- background_block: 'Background block',
686
- },
687
- link_types: {
688
- web: 'Web',
689
- email: 'Email',
690
- phone: 'Phone',
691
- },
692
- shapes: {
693
- square: 'Square',
694
- rounded: 'Rounded',
695
- pill: 'Pill',
696
- },
697
- widths: {
698
- fit_to_text: 'Fit to text',
699
- full_width: 'Full width',
700
- },
701
- },
702
- discount: {
703
- name: 'Discount code',
704
- description: 'Promo code display',
705
- placeholder: 'Add your discount code',
706
- settings: {
707
- discount_code: 'Discount code',
708
- text_type: 'Text type',
709
- type: 'Type',
710
- font: 'Font',
711
- size: 'Size',
712
- style: 'Style',
713
- colors: 'Colors',
714
- text: 'Text',
715
- background_component: 'Background component',
716
- background_block: 'Background block',
717
- },
718
- styles: {
719
- square: 'Square',
720
- rounded: 'Rounded',
721
- pill: 'Pill',
722
- },
723
- },
724
- grid: {
725
- name: 'Grid',
726
- description: 'Multi-column layout',
727
- add_element: 'Add element',
728
- settings: {
729
- columns: 'Columns',
730
- color: 'Color',
731
- background_block: 'Background block',
732
- },
733
- },
734
- header: {
735
- name: 'Header',
736
- description: 'Add your property logo',
737
- no_logo: 'No logo selected',
287
+ paragraph: {
288
+ description: 'Add rich text content with formatting',
289
+ name: 'Paragraph',
738
290
  settings: {
739
- source: 'Logo',
740
- alt: 'Alt text',
741
- alt_placeholder: 'Describe the logo...',
742
- style: 'Style',
743
- width: 'Logo width',
744
- alignment: 'Alignment',
745
- background: 'Background color',
746
- reset: 'Reset to default',
747
- },
748
- },
749
- footer: {
750
- name: 'Footer',
751
- description: 'Legal & contact info',
291
+ backgroundColor: 'Background color',
292
+ fontFamily: 'Font family',
293
+ fontSize: 'Font size',
294
+ fontSizeHint: 'Font size between {min}px and {max}px',
295
+ textColor: 'Text color',
296
+ type: 'Type',
297
+ },
752
298
  },
753
- unsubscribe_link: {
754
- name: 'Unsubscribe link',
755
- description: 'Opt-out link for recipients',
299
+ raw_html: {
300
+ description: 'Custom HTML code',
301
+ name: 'Html',
302
+ placeholder: 'Insert html code',
303
+ settings: {
304
+ characterCount: '{count} / {max} characters',
305
+ html: 'Html content',
306
+ },
307
+ warning: {
308
+ learnMore: 'Learn more about HTML in content blocks',
309
+ message:
310
+ "Most email clients only support basic html. Interactive elements like javascript or flash won't be saved.",
311
+ title: 'Note:',
312
+ },
756
313
  },
757
314
  socials: {
758
- name: 'Socials',
759
315
  description: 'Social media links',
316
+ name: 'Socials',
760
317
  placeholder: 'Configure social links in settings',
761
- settings: {
762
- links: 'Social links',
763
- from_brand: 'Using {url} from brand',
764
- },
765
318
  platforms: {
766
319
  facebook: 'Facebook',
320
+ google: 'Google',
767
321
  instagram: 'Instagram',
768
- tripadvisor: 'Tripadvisor',
769
322
  tiktok: 'Tiktok',
770
- google: 'Google',
323
+ tripadvisor: 'Tripadvisor',
324
+ },
325
+ settings: {
326
+ from_brand: 'Using {url} from brand',
327
+ links: 'Social links',
328
+ },
329
+ },
330
+ spacer: {
331
+ description: 'Add vertical spacing between blocks',
332
+ label: '{height}px spacer',
333
+ name: 'Spacer',
334
+ settings: {
335
+ backgroundColor: 'Color',
336
+ customSize: 'Custom Size',
337
+ height: 'Height',
338
+ heightHint: 'Height between {min}px and {max}px',
339
+ size: 'Size',
340
+ sizePresets: {
341
+ extra_large: 'Extra Large',
342
+ large: 'Large',
343
+ medium: 'Medium',
344
+ small: 'Small',
345
+ },
771
346
  },
772
347
  },
348
+ text_types: {
349
+ h1: 'Heading 1',
350
+ h2: 'Heading 2',
351
+ h3: 'Heading 3',
352
+ h4: 'Heading 4',
353
+ h5: 'Heading 5',
354
+ h6: 'Heading 6',
355
+ p: 'Paragraph',
356
+ },
773
357
  top_products: {
774
- name: 'Top Products',
775
358
  description: 'Display upselling products from the API',
359
+ name: 'Top Products',
776
360
  no_store_id: 'Set a store ID to display products',
777
361
  settings: {
362
+ background: 'Background color',
363
+ max_products: 'Max products',
778
364
  store_id: 'Store ID',
779
365
  store_id_help:
780
366
  'Your Smartconnect store ID, the part after commerce.smartness.com/ (e.g. abhotel)',
781
367
  store_id_placeholder: 'Enter store ID',
782
368
  style: 'Style',
783
- max_products: 'Max products',
784
- background: 'Background color',
785
369
  },
786
370
  },
371
+ unsubscribe_link: {
372
+ description: 'Opt-out link for recipients',
373
+ name: 'Unsubscribe link',
374
+ },
375
+ },
376
+ canvas: {
377
+ blockNotImplemented: 'Block type "{type}" not yet implemented',
378
+ dropHere: 'Drop blocks here to add them to your email',
379
+ empty: 'No blocks yet',
380
+ emptyHint: 'Drag blocks from the library to start building your email',
381
+ title: 'Email canvas',
382
+ },
383
+ common: {
384
+ reset: 'Reset',
385
+ },
386
+ generalStyle: {
387
+ backgroundColor: 'Background',
388
+ bodyColor: 'Body',
389
+ brandSection: 'Brand',
390
+ colorsSection: 'Colors',
391
+ font: 'Font',
392
+ fromColorList: 'From color list',
393
+ horizontalSpacing: 'Horizontal',
394
+ instruction: 'Customize page elements',
395
+ reset: 'Reset all to defaults',
396
+ selectBrand: 'Select a brand',
397
+ spacingSection: 'Spacing',
398
+ textColor: 'Text',
399
+ typographySection: 'Typography',
400
+ verticalSpacing: 'Vertical',
401
+ },
402
+ sidebar: {
403
+ backToLibrary: 'Back to library',
404
+ elementsTab: 'Elements',
405
+ generalStyleTab: 'General style',
406
+ library: 'Block library',
407
+ settings: 'Block settings',
408
+ settingsNotAvailable: 'Settings not available for block type: {type}',
409
+ settingsPlaceholder: 'Select a block to edit its settings',
410
+ },
411
+ },
412
+ generate: {
413
+ cancel: 'Cancel',
414
+ char_count: '{count}/{max}',
415
+ choose_option: 'Choose an option',
416
+ create_new: 'Create new content',
417
+ description: 'Provide a clear and concise description for the best results.',
418
+ disclaimer: 'Artificial intelligence can produce inaccurate content.',
419
+ error: 'Failed to generate content. Please try again.',
420
+ loading: 'Generating suggestions...',
421
+ placeholder: 'Start typing here...',
422
+ retry: 'Try again',
423
+ submit: 'Generate content',
424
+ title: 'Generate content',
425
+ use_it: 'Use it',
426
+ your_request: 'Your request',
427
+ },
428
+ languages: {
429
+ add: 'Add new',
430
+ all_languages: 'All languages',
431
+ recommended: 'Recommended languages',
432
+ title: 'Language',
433
+ },
434
+ placeholder: {
435
+ insert_text: 'Insert text',
436
+ },
437
+ toolbar: {
438
+ align_center: 'Align center',
439
+ align_justify: 'Justify',
440
+ align_left: 'Align left',
441
+ align_right: 'Align right',
442
+ bold: 'Bold',
443
+ bullet_list: 'Bullet list',
444
+ dynamic_data: 'Dynamic data',
445
+ emoji: 'Emoji',
446
+ horizontal_rule: 'Horizontal line',
447
+ italic: 'Italic',
448
+ link: 'Link',
449
+ link_apply: 'Apply link',
450
+ link_open: 'Open in new window',
451
+ link_placeholder: 'Paste a link...',
452
+ link_remove: 'Remove link',
453
+ ordered_list: 'Ordered list',
454
+ text_align: 'Text align',
455
+ underline: 'Underline',
456
+ },
457
+ validation: {
458
+ character_limit: 'This field has a character limit.',
459
+ error: {
460
+ atLeastOneBlockRequired: 'At least one content block is required',
461
+ bodyEmpty: 'Message body cannot be empty',
462
+ bodyRequired: 'Message body is required',
463
+ bodyTooLong: 'Body text exceeds 1024 characters',
464
+ buttonFontSizeInvalid: 'Button font size must be between 12 and 32 pixels',
465
+ buttonTextRequired: 'Button text is required',
466
+ buttonTextTooLong: 'Button text exceeds 20 characters',
467
+ discountFontSizeInvalid: 'Discount font size must be between 12 and 48 pixels',
468
+ dividerThicknessInvalid: 'Divider thickness must be between 1 and 20 pixels',
469
+ dividerWidthInvalid: 'Divider width must be between 10% and 100%',
470
+ emailInvalid: "Invalid email format. Use email format (e.g., example{'@'}example.com)",
471
+ emailRequired: 'Please enter a valid email address',
472
+ footerTooLong: 'Footer text exceeds 60 characters',
473
+ gridColumnEmpty: 'Grid column cannot be empty',
474
+ headerLogoRequired: 'Header block requires a logo',
475
+ headerMediaRequired: 'Header media file is required',
476
+ headerTooLong: 'Header text exceeds 60 characters',
477
+ headingFontSizeInvalid: 'Heading font size must be between 16 and 48 pixels',
478
+ htmlMaxLength: 'HTML block exceeds maximum character limit',
479
+ imageSourceRequired: 'Image block requires an image',
480
+ imageWidthInvalid: 'Image width must be between 50 and 600 pixels',
481
+ invalidRenderType: 'Invalid message type',
482
+ maxButtons: 'Maximum 10 buttons allowed',
483
+ maxLinkButtons: 'Maximum 1 link button allowed',
484
+ maxPhoneButtons: 'Maximum 1 phone button allowed',
485
+ maxQuickReplyButtons: 'Maximum 3 quick reply buttons allowed',
486
+ maxUnsubscribeButtons: 'Maximum 1 unsubscribe button allowed',
487
+ messageRequired: 'At least one language is required',
488
+ nameRequired: 'Name is required',
489
+ paragraphFontSizeInvalid: 'Paragraph font size must be between 10 and 32 pixels',
490
+ phoneInvalid: 'Invalid phone number format. Use international format (e.g., +1234567890)',
491
+ phoneRequired: 'Phone number is required for phone button',
492
+ socialsNoEnabled: 'At least one social link must be enabled',
493
+ socialsUrlRequired: 'Enabled social links must have a URL or a brand default',
494
+ spacerHeightInvalid: 'Spacer height must be between 8 and 200 pixels',
495
+ subjectRequired: 'Email subject is required',
496
+ textTooLong: 'Text exceeds maximum length',
497
+ title: 'Please fix the following errors',
498
+ topProductsStoreIdRequired: 'Top products block requires a store ID',
499
+ unsubscribeBlockMissing: 'An unsubscribe link block is required',
500
+ unsubscribeLinkRequired: 'Unsubscribe block must contain the unsubscribe dynamic value',
501
+ urlInvalid: 'Invalid url format. Use https:// or http:// at the beginning.',
502
+ urlRequired: 'Url is required for link button',
503
+ },
504
+ invalid_phone_number: 'Invalid phone number',
505
+ },
506
+ whatsapp: {
507
+ body: {
508
+ description_dynamic_values:
509
+ '<b>Dynamic values</b>, with no limit on how many you use. If you end a sentence with a dynamic value, make sure to add a period at the end.',
510
+ description_link:
511
+ '<b>links</b> by pasting the full url directly. To make them clickable, make sure to include https:// or http:// at the beginning. Avoid shortened links (e.g. bit.ly, tinyurl) as they might look like spam and cause the message to be rejected.',
512
+ description_main:
513
+ 'It is the <b>main part of the message</b>, the content you want to communicate to the customer. You can include in the text:',
514
+ title: 'Body',
515
+ },
516
+ buttons: {
517
+ add_button: 'Add',
518
+ button_types: {
519
+ link: 'Link',
520
+ phone: 'Phone',
521
+ quick_reply: 'Quick reply',
522
+ unsubscribe: 'Unsubscribe',
523
+ },
524
+ default_text: {
525
+ link: '',
526
+ phone: 'Call us',
527
+ unsubscribe: 'Unsubscribe',
528
+ },
529
+ description_link:
530
+ '<b>Link</b> button lets users open an external link directly from the chat interface. You can include up to two link buttons per message',
531
+ description_main:
532
+ 'Some guidelines <b>to ensure your message gets approved</b> and works properly:',
533
+ description_phone:
534
+ '<b>Phone</b> button allows users to start a phone call from their device with a single tap. Only one button is allowed per message',
535
+ description_quick_reply:
536
+ '<b>Quick reply</b> button lets users choose between one or more predefined options without having to type text, making the conversation more fluid and guided.',
537
+ description_unsubscribe:
538
+ "<b>Unsubscribe</b> button lets users opt out of receiving future messages from your business. It's strongly recommended for marketing messages.",
539
+ placeholders: {
540
+ phone: 'Phone number',
541
+ text: 'Button text',
542
+ url: 'Url',
543
+ },
544
+ title: 'Buttons (optional)',
545
+ },
546
+ footer: {
547
+ description_main:
548
+ "It's meant to provide <b>context and support</b> without interfering with the main message.",
549
+ placeholder: 'Footer',
550
+ title: 'Footer (optional)',
551
+ },
552
+ header: {
553
+ title: 'Header',
554
+ type_placeholder: 'Select type',
555
+ types: {
556
+ document: 'Document',
557
+ image: 'Image',
558
+ none: 'None',
559
+ text: 'Text',
560
+ video: 'Video',
561
+ },
787
562
  },
788
- actions: {
789
- duplicate: 'Duplicate',
790
- delete: 'Delete',
563
+ preview: {
564
+ document_link: 'Document',
565
+ header_image_alt: 'Header image',
566
+ },
567
+ translations: {
568
+ placeholder: 'Add translation',
569
+ },
570
+ translator: {
571
+ body: 'Body',
572
+ button: 'Button',
573
+ footer: 'Footer',
574
+ header: 'Header',
575
+ reset_to_main: 'Reset to main language',
791
576
  },
792
577
  },
793
578
  },
794
- translation_action_bar: {
795
- search_placeholder: 'Search text...',
796
- show_missing: 'Show missing translations',
797
- show_changes: 'Show changes',
798
- auto_translate: 'Auto translate',
799
- auto_translate_button: 'Auto translate',
800
- preview: 'Preview',
801
- preview_button: 'Preview',
802
- translating: 'Translating...',
803
- translation_success: 'Translation completed successfully',
804
- translation_error: 'Failed to translate. Please try again.',
805
- no_sections_found: 'No sections match the current filters',
806
- clear_filters: 'Clear filters',
807
- email_preview_coming_soon: 'Email preview coming soon',
808
- unsupported_preview_type: 'Unsupported preview type',
809
- render_type: 'Render type',
810
- no_message_to_preview: 'No message to preview',
579
+ email_preview: {
580
+ no_preview: 'No preview available',
581
+ subject: 'Subject',
582
+ },
583
+ language: {
584
+ de: 'German',
585
+ en: 'English',
586
+ es: 'Spanish',
587
+ fr: 'French',
588
+ it: 'Italian',
811
589
  },
812
590
  language_list: {
813
- unsaved_changes: 'This translation has unsaved changes',
814
- changes_count: '{count} changes',
815
591
  change: 'change',
816
592
  changes: 'changes',
593
+ changes_count: '{count} changes',
817
594
  translated_percentage: '{percentage}% translated',
595
+ unsaved_changes: 'This translation has unsaved changes',
596
+ },
597
+ message: {
598
+ render_type: {
599
+ email_v1: 'Email',
600
+ whatsapp_v1: 'Whatsapp',
601
+ },
818
602
  },
819
603
  meta_submission: {
820
- success: 'Messages submitted to Meta',
821
604
  error: 'Meta submission completed with errors',
822
605
  failed_count: 'Failed messages: {count}',
606
+ success: 'Messages submitted to Meta',
823
607
  },
824
- email_preview: {
825
- no_preview: 'No preview available',
826
- subject: 'Subject',
608
+ modals: {
609
+ dynamic_data_modal: {
610
+ category: 'Body content',
611
+ description:
612
+ 'There is no limit to how many you can use. If you end a sentence with a dynamic value, make sure to add a dot (“.”) at the end.',
613
+ info: 'Dynamic fields are placeholders that will be replaced with real data (e.g., guest name) when the message is sent. If a field has no data, it will be skipped.',
614
+ no_values: 'No dynamic values available for this product.',
615
+ search_placeholder: 'Search fields...',
616
+ select_value: 'Select a value',
617
+ tabs: {
618
+ default: 'Default',
619
+ 'guest-automation': 'Guest Automation',
620
+ newsletter: 'Newsletter',
621
+ 'reservation-automation': 'Reservation Automation',
622
+ },
623
+ title: 'Add dynamic field',
624
+ will_display: 'The text field will display &#123;&#123;{value}&#125;&#125;',
625
+ },
626
+ },
627
+ pages: {
628
+ brands: {
629
+ actions: {
630
+ back: 'Back',
631
+ create: 'Create brand',
632
+ next: 'Next',
633
+ },
634
+ brand_created: 'Brand created successfully.',
635
+ brand_deleted: '"{name}" has been deleted.',
636
+ brand_updated: 'Brand updated successfully.',
637
+ column_actions: 'Actions',
638
+ column_created: 'Created',
639
+ column_name: 'Name',
640
+ delete_confirm_message: 'Are you sure you want to delete "{name}"? This cannot be undone.',
641
+ delete_confirm_title: 'Delete brand',
642
+ edit_brand: 'Edit brand',
643
+ fields: {
644
+ add_color: 'Add color',
645
+ button_bg_color: 'Background',
646
+ button_text_color: 'Text',
647
+ change_logo: 'Change logo',
648
+ contact_address: 'Address',
649
+ contact_address_placeholder: 'E.g. Via Roma 1, 39100 Bolzano',
650
+ contact_email: 'Email',
651
+ contact_email_placeholder: "E.g. info{'@'}hotel.com",
652
+ contact_name: 'Name',
653
+ contact_name_placeholder: 'E.g. Grand Hotel',
654
+ contact_telephone: 'Telephone',
655
+ contact_telephone_placeholder: 'E.g. +39 0471 123456',
656
+ contact_website: 'Website',
657
+ contact_website_placeholder: 'E.g. https://www.hotel.com',
658
+ colors: 'Brand colors',
659
+ default_button_colors: 'Default button colors',
660
+ default_email_colors: 'Default email colors',
661
+ default_font: 'Default font',
662
+ email_bg_color: 'Background',
663
+ email_content_bg_color: 'Content background',
664
+ email_text_color: 'Text',
665
+ extracting_colors: 'Extracting colors from logo...',
666
+ logo: 'Logo',
667
+ name: 'Brand name',
668
+ name_placeholder: 'E.g. Smartness',
669
+ properties: 'Properties',
670
+ properties_placeholder: 'Select properties',
671
+ property_taken_tooltip: 'Already linked to "{brand}"',
672
+ upload_logo: 'Upload logo',
673
+ },
674
+ new_brand: 'New brand',
675
+ no_brands: 'No brands created yet',
676
+ preview: {
677
+ empty: 'Preview will appear here',
678
+ title: 'Preview',
679
+ },
680
+ save_error: 'Failed to save brand. Please try again.',
681
+ search_placeholder: 'Search brands...',
682
+ steps: {
683
+ contact_info: 'Contact info',
684
+ general: 'General',
685
+ socials: 'Socials',
686
+ visual_style: 'Visual style',
687
+ },
688
+ title: 'Brands',
689
+ validation: {
690
+ invalid_contact_info: 'Contact info contains invalid email or website',
691
+ invalid_email_format: 'Invalid email format',
692
+ invalid_social_url: 'One or more social URLs are invalid',
693
+ invalid_url_format: 'Invalid URL format',
694
+ name_required: 'Brand name is required',
695
+ },
696
+ },
697
+ email: {
698
+ create_message_group: {
699
+ name: 'Name',
700
+ name_placeholder: 'Message name',
701
+ save: 'Save',
702
+ save_as_draft: 'Save draft',
703
+ save_message: 'Save',
704
+ subject: 'Subject',
705
+ subject_placeholder: 'Email subject line',
706
+ tab_content: 'Message',
707
+ tab_translations: 'Translations',
708
+ title: 'Create message',
709
+ },
710
+ edit_message_group: {
711
+ name: 'Name',
712
+ name_placeholder: 'Message name',
713
+ save: 'Save',
714
+ save_as_draft: 'Save draft',
715
+ save_as_new: 'Save as new',
716
+ save_message: 'Save',
717
+ subject: 'Subject',
718
+ subject_placeholder: 'Email subject line',
719
+ tab_content: 'Message',
720
+ tab_translations: 'Translations',
721
+ title: 'Edit email message',
722
+ },
723
+ send_test: 'Send test',
724
+ send_test_success: 'Test email sent successfully.',
725
+ test_email_from: 'From',
726
+ test_email_from_placeholder: 'Sender email address',
727
+ test_email_to: 'To',
728
+ test_email_to_placeholder: 'Recipient email(s), separated by ;',
729
+ },
730
+ images: {
731
+ created_label: 'Created:',
732
+ delete_confirm: 'Delete {name}?',
733
+ handle_label: 'Handle:',
734
+ image_deleted: 'Image deleted',
735
+ image_uploaded_to_meta: 'Image uploaded to meta',
736
+ meta: 'Meta',
737
+ meta_access_token_not_configured: 'Meta access token not configured',
738
+ no_images_uploaded: 'No images uploaded',
739
+ no_meta: 'No meta',
740
+ title: 'Images',
741
+ type_label: 'Type:',
742
+ upload_to_meta: 'Upload to meta',
743
+ },
744
+ message_library: {
745
+ add_message_group: 'New message',
746
+ category_placeholder: 'Select category',
747
+ headers: {
748
+ category: 'Category',
749
+ name: 'Name',
750
+ preview: 'Preview',
751
+ status: 'Status',
752
+ tags: 'Tags',
753
+ updated_at: 'Updated at',
754
+ },
755
+ render_type_placeholder: 'Select render type',
756
+ search_placeholder: 'Search',
757
+ status_placeholder: 'Select status',
758
+ tags_placeholder: 'Filter by tags',
759
+ title: 'Messages',
760
+ },
761
+ whatsapp: {
762
+ create_message_group: {
763
+ add_language: 'Add language',
764
+ category: 'Category',
765
+ category_placeholder: 'Select category',
766
+ message_content: 'Message content',
767
+ name: 'Name',
768
+ name_placeholder: 'Message name',
769
+ request_approval: 'Request approval',
770
+ save_as_new: 'Save as new',
771
+ save_draft: 'Save draft',
772
+ title: 'Create message',
773
+ },
774
+ edit_message_group: {
775
+ add_language: 'Add language',
776
+ category: 'Category',
777
+ category_placeholder: 'Select category',
778
+ message_content: 'Message content',
779
+ name: 'Name',
780
+ name_placeholder: 'Message name',
781
+ request_approval: 'Request approval',
782
+ save_as_new: 'Save as new',
783
+ save_draft: 'Save draft',
784
+ title: 'Edit whatsapp message',
785
+ },
786
+ tabs: {
787
+ content: 'Message',
788
+ translations: 'Translations',
789
+ },
790
+ },
827
791
  },
828
792
  public: {
829
793
  select_message: {
830
- choose_message: 'Choose a message...',
831
- search_placeholder: 'Search by name or category...',
832
794
  choose_language: 'Choose a language...',
795
+ choose_message: 'Choose a message...',
833
796
  enter_field: 'Enter {field}',
797
+ search_placeholder: 'Search by name or category...',
834
798
  send_message: 'Send message',
835
799
  },
836
800
  },
801
+ status: {
802
+ approved: 'Approved',
803
+ draft: 'Draft',
804
+ pending: 'Pending',
805
+ rejected: 'Rejected',
806
+ },
807
+ translation_action_bar: {
808
+ auto_translate: 'Auto translate',
809
+ auto_translate_button: 'Auto translate',
810
+ clear_filters: 'Clear filters',
811
+ email_preview_coming_soon: 'Email preview coming soon',
812
+ no_message_to_preview: 'No message to preview',
813
+ no_sections_found: 'No sections match the current filters',
814
+ preview: 'Preview',
815
+ preview_button: 'Preview',
816
+ render_type: 'Render type',
817
+ search_placeholder: 'Search text...',
818
+ show_changes: 'Show changes',
819
+ show_missing: 'Show missing translations',
820
+ translating: 'Translating...',
821
+ translation_error: 'Failed to translate. Please try again.',
822
+ translation_success: 'Translation completed successfully',
823
+ unsupported_preview_type: 'Unsupported preview type',
824
+ },
837
825
  } as const