@dev.smartpricing/message-composer-layer 4.4.1-next.0 → 4.5.1-next.1
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.
- package/README.md +51 -5
- package/app/api/brands.ts +20 -13
- package/app/api/client.ts +3 -6
- package/app/api/dynamicValues.ts +2 -1
- package/app/api/media.ts +6 -3
- package/app/api/messageGroups.ts +6 -2
- package/app/api/meta.ts +26 -4
- package/app/api/organization.ts +10 -1
- package/app/api/tracking.ts +2 -2
- package/app/components/Common/AppContextErrors.vue +2 -2
- package/app/components/Common/MessageGroupSelect.vue +13 -2
- package/app/components/Common/OrganizationGate.vue +51 -0
- package/app/components/Common/OrganizationSelect.vue +27 -0
- package/app/components/Common/WhatsappNotConfigured.vue +20 -0
- package/app/components/Composer/EmailComposer.vue +4 -0
- package/app/components/Composer/WabaSelectModal.vue +75 -0
- package/app/components/Composer/WhatsappComposer.vue +78 -3
- package/app/components/Editor/RichTextEditor.vue +14 -2
- package/app/components/MessageSendFlow/EmailPreview.vue +3 -0
- package/app/components/MessageSendFlow/MessageSendFlow.vue +15 -2
- package/app/components/Whatsapp/Preview.vue +5 -12
- package/app/components/Whatsapp/Translator/Header.vue +4 -19
- package/app/composables/composerContext.ts +5 -5
- package/app/composables/useEffectiveOrganization.ts +34 -0
- package/app/composables/useMessageGroupWaba.ts +73 -0
- package/app/composables/useMessageSendFlow.ts +46 -8
- package/app/composables/usePagedMessageGroups.ts +14 -2
- package/app/composables/useTemplateOperations.ts +10 -1
- package/app/composables/useTracking.ts +14 -5
- package/app/composables/useWhatsappConfiguration.ts +32 -0
- package/app/layouts/default.vue +4 -1
- package/app/pages/brands.vue +1 -0
- package/app/pages/images.vue +4 -0
- package/app/pages/index.vue +1 -0
- package/app/pages/preview/[id].vue +2 -0
- package/app/pages/template/whatsapp/[id].vue +1 -0
- package/app/queries/brands.ts +27 -7
- package/app/queries/compilation.ts +15 -2
- package/app/queries/dynamicValues.ts +13 -2
- package/app/queries/media.ts +8 -3
- package/app/queries/messageGroups.ts +31 -5
- package/app/queries/meta.ts +13 -8
- package/app/stores/appContext.ts +9 -45
- package/app/stores/effectiveOrganization.ts +128 -0
- package/app/stores/emailEditor.ts +5 -1
- package/app/stores/metaSubmission.ts +7 -17
- package/i18n/locales/de.ts +30 -0
- package/i18n/locales/en.ts +29 -0
- package/i18n/locales/es.ts +29 -0
- package/i18n/locales/fr.ts +30 -0
- package/i18n/locales/it.ts +29 -0
- package/package.json +2 -2
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { SubmissionJob } from '@dev.smartpricing/message-composer-utils/types'
|
|
2
2
|
import { metaApi } from '~/api/meta'
|
|
3
3
|
import { useQueryCache } from '@pinia/colada'
|
|
4
|
-
import { useAppContextStore } from './appContext'
|
|
5
4
|
|
|
6
5
|
interface ActiveJob {
|
|
7
6
|
jobId: string
|
|
@@ -12,21 +11,17 @@ interface ActiveJob {
|
|
|
12
11
|
export const useMetaSubmissionStore = () => {
|
|
13
12
|
const toast = useToast()
|
|
14
13
|
const queryCache = useQueryCache()
|
|
15
|
-
const appContext = useAppContextStore()
|
|
16
14
|
const { t } = useI18n()
|
|
17
15
|
|
|
18
16
|
const activeJobs = useState<Map<string, ActiveJob>>('meta-submission-jobs', () => new Map())
|
|
19
17
|
const pollingInterval = useState<NodeJS.Timeout | null>('meta-polling-interval', () => null)
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const submitToMeta = async (messageGroupId: string) => {
|
|
24
|
-
if (!isConfigured.value) {
|
|
25
|
-
throw new Error('Meta configuration not available')
|
|
26
|
-
}
|
|
27
|
-
|
|
19
|
+
// `wabaId` is the WABA the user picked for a first submission, if any.
|
|
20
|
+
const submitToMeta = async (messageGroupId: string, wabaId?: string) => {
|
|
28
21
|
try {
|
|
29
|
-
const response = await metaApi.submitGroup(messageGroupId)
|
|
22
|
+
const response = await metaApi.submitGroup(messageGroupId, wabaId)
|
|
23
|
+
// The Message Group is on its WABA from now on: read it again.
|
|
24
|
+
queryCache.invalidateQueries({ key: ['message-groups', messageGroupId] })
|
|
30
25
|
startBackgroundPolling(response.jobId, messageGroupId)
|
|
31
26
|
return response
|
|
32
27
|
} catch (error) {
|
|
@@ -38,13 +33,9 @@ export const useMetaSubmissionStore = () => {
|
|
|
38
33
|
// Submit a single message (one language) for Meta review. Synchronous:
|
|
39
34
|
// the endpoint submits inline and flips the message to `pending`, so there
|
|
40
35
|
// is no job to poll — unlike the group flow.
|
|
41
|
-
const submitMessageToMeta = async (messageId: string) => {
|
|
42
|
-
if (!isConfigured.value) {
|
|
43
|
-
throw new Error('Meta configuration not available')
|
|
44
|
-
}
|
|
45
|
-
|
|
36
|
+
const submitMessageToMeta = async (messageId: string, wabaId?: string) => {
|
|
46
37
|
try {
|
|
47
|
-
const response = await metaApi.submitMessage(messageId)
|
|
38
|
+
const response = await metaApi.submitMessage(messageId, wabaId)
|
|
48
39
|
toast.add({
|
|
49
40
|
color: 'success',
|
|
50
41
|
title: t('meta_submission.message_success'),
|
|
@@ -133,7 +124,6 @@ export const useMetaSubmissionStore = () => {
|
|
|
133
124
|
return {
|
|
134
125
|
activeJobs,
|
|
135
126
|
hasActiveJobs,
|
|
136
|
-
isConfigured,
|
|
137
127
|
submitToMeta,
|
|
138
128
|
submitMessageToMeta,
|
|
139
129
|
startBackgroundPolling,
|
package/i18n/locales/de.ts
CHANGED
|
@@ -51,6 +51,17 @@ export default {
|
|
|
51
51
|
},
|
|
52
52
|
internal: 'Intern',
|
|
53
53
|
mobile: 'Mobil',
|
|
54
|
+
organization: {
|
|
55
|
+
label: 'Organisation',
|
|
56
|
+
lookup_failed_description:
|
|
57
|
+
'Beim Laden der Organisationen, auf die Sie Zugriff haben, ist ein Fehler aufgetreten. Versuchen Sie es erneut.',
|
|
58
|
+
lookup_failed_title: 'Ihre Organisationen konnten nicht geladen werden',
|
|
59
|
+
none_description: 'Ihr Benutzer hat auf keine Organisation Zugriff.',
|
|
60
|
+
none_title: 'Keine Organisation verfügbar',
|
|
61
|
+
resolving: 'Ihre Organisationen werden geladen...',
|
|
62
|
+
retry: 'Erneut versuchen',
|
|
63
|
+
search_placeholder: 'Organisationen suchen...',
|
|
64
|
+
},
|
|
54
65
|
preview: 'Vorschau',
|
|
55
66
|
search: 'Suchen...',
|
|
56
67
|
success: 'Erfolg',
|
|
@@ -65,6 +76,14 @@ export default {
|
|
|
65
76
|
},
|
|
66
77
|
view_less: 'Weniger anzeigen',
|
|
67
78
|
view_more: 'Mehr anzeigen',
|
|
79
|
+
whatsapp_not_configured_description:
|
|
80
|
+
'Diese Organisation hat kein WhatsApp-Business-Konto. WhatsApp-Nachrichten können als Entwurf gespeichert, aber nicht zur Genehmigung eingereicht werden.',
|
|
81
|
+
whatsapp_not_configured_title: 'WhatsApp ist nicht konfiguriert',
|
|
82
|
+
whatsapp_waba_detached_description:
|
|
83
|
+
'Sie kann nicht mehr zur Genehmigung eingereicht werden. Dupliziere sie, um die Kopie bei einem anderen WhatsApp Business-Konto einzureichen.',
|
|
84
|
+
whatsapp_waba_detached_title:
|
|
85
|
+
'Diese Nachricht gehört zu einem WhatsApp Business-Konto, das nicht mehr verbunden ist',
|
|
86
|
+
whatsapp_waba_label: 'WhatsApp Business-Konto:',
|
|
68
87
|
},
|
|
69
88
|
dialogs: {
|
|
70
89
|
delete_message: {
|
|
@@ -111,6 +130,13 @@ export default {
|
|
|
111
130
|
'Die {language}-Übersetzung zur Überprüfung einreichen? Sie können sie nicht bearbeiten, solange sie auf Genehmigung wartet.',
|
|
112
131
|
title: 'Überprüfung anfordern',
|
|
113
132
|
},
|
|
133
|
+
select_waba: {
|
|
134
|
+
confirm: 'Genehmigung anfordern',
|
|
135
|
+
description:
|
|
136
|
+
'Diese Organisation hat mehr als ein WhatsApp Business-Konto. Wähle das Konto, bei dem diese Nachricht eingereicht wird: Es kann danach nicht mehr geändert werden.',
|
|
137
|
+
no_numbers: 'Keine verbundene Nummer',
|
|
138
|
+
title: 'WhatsApp Business-Konto auswählen',
|
|
139
|
+
},
|
|
114
140
|
unpublish_message_group: {
|
|
115
141
|
message:
|
|
116
142
|
'Veröffentlichung von „{name}“ aufheben? Es ist dann nicht mehr für Kundinnen und Kunden sichtbar.',
|
|
@@ -486,6 +512,8 @@ export default {
|
|
|
486
512
|
},
|
|
487
513
|
validation: {
|
|
488
514
|
character_limit: 'Dieses Feld hat eine Zeichenbegrenzung.',
|
|
515
|
+
header_line_breaks:
|
|
516
|
+
'Zeilenumbrüche werden in der Kopfzeile nicht unterstützt: Die Zeilen werden zu einer zusammengefügt.',
|
|
489
517
|
error: {
|
|
490
518
|
atLeastOneBlockRequired: 'Mindestens ein Inhaltsblock ist erforderlich',
|
|
491
519
|
bodyEmpty: 'Nachrichtentext darf nicht leer sein',
|
|
@@ -867,6 +895,8 @@ export default {
|
|
|
867
895
|
COMPILE_FAILED:
|
|
868
896
|
'Die Nachricht konnte nicht vorbereitet werden. Bitte versuchen Sie es erneut.',
|
|
869
897
|
MISSING_PARAMETERS: 'Füllen Sie alle Parameter aus, bevor Sie bestätigen.',
|
|
898
|
+
NOT_OFFERED:
|
|
899
|
+
'„{name}“ kann von hier aus nicht gesendet werden. Wählen Sie eine andere Nachrichtengruppe.',
|
|
870
900
|
NOT_SENDABLE:
|
|
871
901
|
'„{name}“ hat keine genehmigte Nachricht und kann nicht gesendet werden. Wählen Sie eine andere Nachrichtengruppe.',
|
|
872
902
|
TEMPLATE_NOT_APPROVED:
|
package/i18n/locales/en.ts
CHANGED
|
@@ -50,6 +50,17 @@ export default {
|
|
|
50
50
|
},
|
|
51
51
|
internal: 'Internal',
|
|
52
52
|
mobile: 'Mobile',
|
|
53
|
+
organization: {
|
|
54
|
+
label: 'Organization',
|
|
55
|
+
lookup_failed_description:
|
|
56
|
+
'Something went wrong while loading the organizations you can access. Try again.',
|
|
57
|
+
lookup_failed_title: 'Your organizations could not be loaded',
|
|
58
|
+
none_description: 'Your user has no access to any organization.',
|
|
59
|
+
none_title: 'No organization available',
|
|
60
|
+
resolving: 'Loading your organizations...',
|
|
61
|
+
retry: 'Try again',
|
|
62
|
+
search_placeholder: 'Search organizations...',
|
|
63
|
+
},
|
|
53
64
|
preview: 'Preview',
|
|
54
65
|
search: 'Search...',
|
|
55
66
|
success: 'Success',
|
|
@@ -63,6 +74,14 @@ export default {
|
|
|
63
74
|
},
|
|
64
75
|
view_less: 'View less',
|
|
65
76
|
view_more: 'View more',
|
|
77
|
+
whatsapp_not_configured_description:
|
|
78
|
+
'This organization has no WhatsApp Business Account. WhatsApp messages can be saved as drafts, but not submitted for approval.',
|
|
79
|
+
whatsapp_not_configured_title: 'WhatsApp is not configured',
|
|
80
|
+
whatsapp_waba_detached_description:
|
|
81
|
+
'It can no longer be submitted for approval. Duplicate it to submit the copy to another WhatsApp Business Account.',
|
|
82
|
+
whatsapp_waba_detached_title:
|
|
83
|
+
'This message is on a WhatsApp Business Account that is no longer connected',
|
|
84
|
+
whatsapp_waba_label: 'WhatsApp Business Account:',
|
|
66
85
|
},
|
|
67
86
|
dialogs: {
|
|
68
87
|
delete_message: {
|
|
@@ -107,6 +126,13 @@ export default {
|
|
|
107
126
|
"Submit the {language} translation for review? You won't be able to edit it while it's pending approval.",
|
|
108
127
|
title: 'Request review',
|
|
109
128
|
},
|
|
129
|
+
select_waba: {
|
|
130
|
+
confirm: 'Request approval',
|
|
131
|
+
description:
|
|
132
|
+
'This organization has more than one WhatsApp Business Account. Choose the one this message is submitted to: it cannot be changed afterwards.',
|
|
133
|
+
no_numbers: 'No connected number',
|
|
134
|
+
title: 'Choose the WhatsApp Business Account',
|
|
135
|
+
},
|
|
110
136
|
unpublish_message_group: {
|
|
111
137
|
message: 'Unpublish "{name}"? It will no longer be visible to clients.',
|
|
112
138
|
success: '"{name}" has been unpublished.',
|
|
@@ -480,6 +506,8 @@ export default {
|
|
|
480
506
|
},
|
|
481
507
|
validation: {
|
|
482
508
|
character_limit: 'This field has a character limit.',
|
|
509
|
+
header_line_breaks:
|
|
510
|
+
"Line breaks aren't supported in the header: the lines will be joined into one.",
|
|
483
511
|
error: {
|
|
484
512
|
atLeastOneBlockRequired: 'At least one content block is required',
|
|
485
513
|
bodyEmpty: 'Message body cannot be empty',
|
|
@@ -855,6 +883,7 @@ export default {
|
|
|
855
883
|
errors: {
|
|
856
884
|
COMPILE_FAILED: 'The message could not be prepared. Please try again.',
|
|
857
885
|
MISSING_PARAMETERS: 'Fill in every parameter before confirming.',
|
|
886
|
+
NOT_OFFERED: '"{name}" cannot be sent from here. Pick another message group.',
|
|
858
887
|
NOT_SENDABLE:
|
|
859
888
|
'"{name}" has no approved message and cannot be sent. Pick another message group.',
|
|
860
889
|
TEMPLATE_NOT_APPROVED: 'This message has not been approved by Meta and cannot be sent.',
|
package/i18n/locales/es.ts
CHANGED
|
@@ -51,6 +51,17 @@ export default {
|
|
|
51
51
|
},
|
|
52
52
|
internal: 'Interno',
|
|
53
53
|
mobile: 'Móvil',
|
|
54
|
+
organization: {
|
|
55
|
+
label: 'Organización',
|
|
56
|
+
lookup_failed_description:
|
|
57
|
+
'Se produjo un error al cargar las organizaciones a las que tienes acceso. Inténtalo de nuevo.',
|
|
58
|
+
lookup_failed_title: 'No se pudieron cargar tus organizaciones',
|
|
59
|
+
none_description: 'Tu usuario no tiene acceso a ninguna organización.',
|
|
60
|
+
none_title: 'Ninguna organización disponible',
|
|
61
|
+
resolving: 'Cargando tus organizaciones...',
|
|
62
|
+
retry: 'Reintentar',
|
|
63
|
+
search_placeholder: 'Buscar organizaciones...',
|
|
64
|
+
},
|
|
54
65
|
preview: 'Vista previa',
|
|
55
66
|
search: 'Buscar...',
|
|
56
67
|
success: 'Éxito',
|
|
@@ -64,6 +75,14 @@ export default {
|
|
|
64
75
|
},
|
|
65
76
|
view_less: 'Ver menos',
|
|
66
77
|
view_more: 'Ver más',
|
|
78
|
+
whatsapp_not_configured_description:
|
|
79
|
+
'Esta organización no tiene una cuenta de WhatsApp Business. Los mensajes de WhatsApp se pueden guardar como borradores, pero no enviar para su aprobación.',
|
|
80
|
+
whatsapp_not_configured_title: 'WhatsApp no está configurado',
|
|
81
|
+
whatsapp_waba_detached_description:
|
|
82
|
+
'Ya no se puede enviar para su aprobación. Duplícalo para enviar la copia a otra cuenta de WhatsApp Business.',
|
|
83
|
+
whatsapp_waba_detached_title:
|
|
84
|
+
'Este mensaje está en una cuenta de WhatsApp Business que ya no está conectada',
|
|
85
|
+
whatsapp_waba_label: 'Cuenta de WhatsApp Business:',
|
|
67
86
|
},
|
|
68
87
|
dialogs: {
|
|
69
88
|
delete_message: {
|
|
@@ -108,6 +127,13 @@ export default {
|
|
|
108
127
|
'¿Enviar la traducción en {language} para revisión? No podrá editarla mientras esté pendiente de aprobación.',
|
|
109
128
|
title: 'Solicitar revisión',
|
|
110
129
|
},
|
|
130
|
+
select_waba: {
|
|
131
|
+
confirm: 'Solicitar aprobación',
|
|
132
|
+
description:
|
|
133
|
+
'Esta organización tiene más de una cuenta de WhatsApp Business. Elige a cuál se envía este mensaje: no se podrá cambiar después.',
|
|
134
|
+
no_numbers: 'Ningún número conectado',
|
|
135
|
+
title: 'Elige la cuenta de WhatsApp Business',
|
|
136
|
+
},
|
|
111
137
|
unpublish_message_group: {
|
|
112
138
|
message: '¿Despublicar "{name}"? Ya no será visible para los clientes.',
|
|
113
139
|
success: '"{name}" se ha despublicado.',
|
|
@@ -482,6 +508,8 @@ export default {
|
|
|
482
508
|
},
|
|
483
509
|
validation: {
|
|
484
510
|
character_limit: 'Este campo tiene un límite de caracteres.',
|
|
511
|
+
header_line_breaks:
|
|
512
|
+
'Los saltos de línea no se admiten en el encabezado: las líneas se unirán en una sola.',
|
|
485
513
|
error: {
|
|
486
514
|
atLeastOneBlockRequired: 'Se requiere al menos un bloque de contenido',
|
|
487
515
|
bodyEmpty: 'El cuerpo del mensaje no puede estar vacío',
|
|
@@ -864,6 +892,7 @@ export default {
|
|
|
864
892
|
errors: {
|
|
865
893
|
COMPILE_FAILED: 'No se ha podido preparar el mensaje. Inténtelo de nuevo.',
|
|
866
894
|
MISSING_PARAMETERS: 'Rellene todos los parámetros antes de confirmar.',
|
|
895
|
+
NOT_OFFERED: '"{name}" no se puede enviar desde aquí. Elija otro grupo de mensajes.',
|
|
867
896
|
NOT_SENDABLE:
|
|
868
897
|
'"{name}" no tiene ningún mensaje aprobado y no se puede enviar. Elija otro grupo de mensajes.',
|
|
869
898
|
TEMPLATE_NOT_APPROVED: 'Meta no ha aprobado este mensaje y no se puede enviar.',
|
package/i18n/locales/fr.ts
CHANGED
|
@@ -51,6 +51,17 @@ export default {
|
|
|
51
51
|
},
|
|
52
52
|
internal: 'Interne',
|
|
53
53
|
mobile: 'Mobile',
|
|
54
|
+
organization: {
|
|
55
|
+
label: 'Organisation',
|
|
56
|
+
lookup_failed_description:
|
|
57
|
+
"Une erreur s'est produite lors du chargement des organisations auxquelles vous avez accès. Réessayez.",
|
|
58
|
+
lookup_failed_title: 'Impossible de charger vos organisations',
|
|
59
|
+
none_description: "Votre utilisateur n'a accès à aucune organisation.",
|
|
60
|
+
none_title: 'Aucune organisation disponible',
|
|
61
|
+
resolving: 'Chargement de vos organisations...',
|
|
62
|
+
retry: 'Réessayer',
|
|
63
|
+
search_placeholder: 'Rechercher des organisations...',
|
|
64
|
+
},
|
|
54
65
|
preview: 'Aperçu',
|
|
55
66
|
search: 'Rechercher...',
|
|
56
67
|
success: 'Succès',
|
|
@@ -64,6 +75,14 @@ export default {
|
|
|
64
75
|
},
|
|
65
76
|
view_less: 'Afficher moins',
|
|
66
77
|
view_more: 'Afficher plus',
|
|
78
|
+
whatsapp_not_configured_description:
|
|
79
|
+
'Cette organisation n’a pas de compte WhatsApp Business. Les messages WhatsApp peuvent être enregistrés comme brouillons, mais pas soumis pour approbation.',
|
|
80
|
+
whatsapp_not_configured_title: 'WhatsApp n’est pas configuré',
|
|
81
|
+
whatsapp_waba_detached_description:
|
|
82
|
+
'Il ne peut plus être soumis pour approbation. Dupliquez-le pour soumettre la copie à un autre compte WhatsApp Business.',
|
|
83
|
+
whatsapp_waba_detached_title:
|
|
84
|
+
'Ce message est sur un compte WhatsApp Business qui n’est plus connecté',
|
|
85
|
+
whatsapp_waba_label: 'Compte WhatsApp Business :',
|
|
67
86
|
},
|
|
68
87
|
dialogs: {
|
|
69
88
|
delete_message: {
|
|
@@ -108,6 +127,13 @@ export default {
|
|
|
108
127
|
'Envoyer la traduction {language} pour révision ? Vous ne pourrez pas la modifier tant qu’elle est en attente d’approbation.',
|
|
109
128
|
title: 'Demander une révision',
|
|
110
129
|
},
|
|
130
|
+
select_waba: {
|
|
131
|
+
confirm: 'Demander l’approbation',
|
|
132
|
+
description:
|
|
133
|
+
'Cette organisation a plusieurs comptes WhatsApp Business. Choisissez celui auquel ce message est soumis : il ne pourra plus être modifié ensuite.',
|
|
134
|
+
no_numbers: 'Aucun numéro connecté',
|
|
135
|
+
title: 'Choisissez le compte WhatsApp Business',
|
|
136
|
+
},
|
|
111
137
|
unpublish_message_group: {
|
|
112
138
|
message: 'Dépublier « {name} » ? Il ne sera plus visible aux clients.',
|
|
113
139
|
success: '« {name} » a été dépublié.',
|
|
@@ -483,6 +509,8 @@ export default {
|
|
|
483
509
|
},
|
|
484
510
|
validation: {
|
|
485
511
|
character_limit: 'Ce champ a une limite de caractères.',
|
|
512
|
+
header_line_breaks:
|
|
513
|
+
"Les sauts de ligne ne sont pas pris en charge dans l'en-tête : les lignes seront fusionnées en une seule.",
|
|
486
514
|
error: {
|
|
487
515
|
atLeastOneBlockRequired: 'Au moins un bloc de contenu est requis',
|
|
488
516
|
bodyEmpty: 'Le corps du message ne peut pas être vide',
|
|
@@ -868,6 +896,8 @@ export default {
|
|
|
868
896
|
errors: {
|
|
869
897
|
COMPILE_FAILED: 'Le message n’a pas pu être préparé. Veuillez réessayer.',
|
|
870
898
|
MISSING_PARAMETERS: 'Renseignez tous les paramètres avant de confirmer.',
|
|
899
|
+
NOT_OFFERED:
|
|
900
|
+
'« {name} » ne peut pas être envoyé d’ici. Choisissez un autre groupe de messages.',
|
|
871
901
|
NOT_SENDABLE:
|
|
872
902
|
'« {name} » n’a aucun message approuvé et ne peut pas être envoyé. Choisissez un autre groupe de messages.',
|
|
873
903
|
TEMPLATE_NOT_APPROVED: 'Ce message n’a pas été approuvé par Meta et ne peut pas être envoyé.',
|
package/i18n/locales/it.ts
CHANGED
|
@@ -50,6 +50,17 @@ export default {
|
|
|
50
50
|
},
|
|
51
51
|
internal: 'Interno',
|
|
52
52
|
mobile: 'Mobile',
|
|
53
|
+
organization: {
|
|
54
|
+
label: 'Organizzazione',
|
|
55
|
+
lookup_failed_description:
|
|
56
|
+
'Si è verificato un errore durante il caricamento delle organizzazioni a cui hai accesso. Riprova.',
|
|
57
|
+
lookup_failed_title: 'Impossibile caricare le tue organizzazioni',
|
|
58
|
+
none_description: 'Il tuo utente non ha accesso a nessuna organizzazione.',
|
|
59
|
+
none_title: 'Nessuna organizzazione disponibile',
|
|
60
|
+
resolving: 'Caricamento delle tue organizzazioni...',
|
|
61
|
+
retry: 'Riprova',
|
|
62
|
+
search_placeholder: 'Cerca organizzazioni...',
|
|
63
|
+
},
|
|
53
64
|
preview: 'Anteprima',
|
|
54
65
|
search: 'Cerca...',
|
|
55
66
|
success: 'Successo',
|
|
@@ -63,6 +74,14 @@ export default {
|
|
|
63
74
|
},
|
|
64
75
|
view_less: 'Mostra meno',
|
|
65
76
|
view_more: 'Mostra di più',
|
|
77
|
+
whatsapp_not_configured_description:
|
|
78
|
+
'Questa organizzazione non ha un account WhatsApp Business. I messaggi WhatsApp possono essere salvati come bozze, ma non inviati per l’approvazione.',
|
|
79
|
+
whatsapp_not_configured_title: 'WhatsApp non è configurato',
|
|
80
|
+
whatsapp_waba_detached_description:
|
|
81
|
+
'Non può più essere inviato per l’approvazione. Duplicalo per inviare la copia a un altro account WhatsApp Business.',
|
|
82
|
+
whatsapp_waba_detached_title:
|
|
83
|
+
'Questo messaggio è su un account WhatsApp Business che non è più collegato',
|
|
84
|
+
whatsapp_waba_label: 'Account WhatsApp Business:',
|
|
66
85
|
},
|
|
67
86
|
dialogs: {
|
|
68
87
|
delete_message: {
|
|
@@ -107,6 +126,13 @@ export default {
|
|
|
107
126
|
'Inviare per la revisione la traduzione in {language}? Non potrai modificarla finché è in attesa di approvazione.',
|
|
108
127
|
title: 'Richiedi revisione',
|
|
109
128
|
},
|
|
129
|
+
select_waba: {
|
|
130
|
+
confirm: 'Richiedi approvazione',
|
|
131
|
+
description:
|
|
132
|
+
'Questa organizzazione ha più di un account WhatsApp Business. Scegli quello a cui inviare questo messaggio: non potrà essere cambiato in seguito.',
|
|
133
|
+
no_numbers: 'Nessun numero collegato',
|
|
134
|
+
title: 'Scegli l’account WhatsApp Business',
|
|
135
|
+
},
|
|
110
136
|
unpublish_message_group: {
|
|
111
137
|
message: 'Annullare la pubblicazione di "{name}"? Non sarà più visibile ai clienti.',
|
|
112
138
|
success: 'La pubblicazione di "{name}" è stata annullata.',
|
|
@@ -481,6 +507,8 @@ export default {
|
|
|
481
507
|
},
|
|
482
508
|
validation: {
|
|
483
509
|
character_limit: 'Questo campo ha un limite di caratteri.',
|
|
510
|
+
header_line_breaks:
|
|
511
|
+
"Gli a capo non sono supportati nell'intestazione: le righe verranno unite in una sola.",
|
|
484
512
|
error: {
|
|
485
513
|
atLeastOneBlockRequired: 'È obbligatorio almeno un blocco di contenuto',
|
|
486
514
|
bodyEmpty: 'Il corpo del messaggio non può essere vuoto',
|
|
@@ -861,6 +889,7 @@ export default {
|
|
|
861
889
|
errors: {
|
|
862
890
|
COMPILE_FAILED: 'Non è stato possibile preparare il messaggio. Riprova.',
|
|
863
891
|
MISSING_PARAMETERS: 'Compila tutti i parametri prima di confermare.',
|
|
892
|
+
NOT_OFFERED: '"{name}" non può essere inviato da qui. Scegli un altro gruppo di messaggi.',
|
|
864
893
|
NOT_SENDABLE:
|
|
865
894
|
'"{name}" non ha nessun messaggio approvato e non può essere inviato. Scegli un altro gruppo di messaggi.',
|
|
866
895
|
TEMPLATE_NOT_APPROVED:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dev.smartpricing/message-composer-layer",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.5.1-next.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./nuxt.config.ts",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"vue-router": "^5.0.7",
|
|
36
36
|
"vue3-emoji-picker": "^1.1.8",
|
|
37
37
|
"zod": "^4.4.3",
|
|
38
|
-
"@dev.smartpricing/message-composer-utils": "4.
|
|
38
|
+
"@dev.smartpricing/message-composer-utils": "4.5.1-next.1"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@dev.smartpricing/platform-layer": "^0.0.23",
|