@voiceflow/dtos-interact 2.28.1 → 2.28.2-523fcfdb7c.147
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/build/main.d.ts +3 -0
- package/build/main.d.ts.map +1 -1
- package/build/main.js +3 -0
- package/build/main.js.map +1 -1
- package/build/request/request-config.dto.d.ts +1 -0
- package/build/request/request-config.dto.d.ts.map +1 -1
- package/build/request/request-config.dto.js +1 -0
- package/build/request/request-config.dto.js.map +1 -1
- package/build/socket/socket-client-start.dto.d.ts +1 -0
- package/build/socket/socket-client-start.dto.d.ts.map +1 -1
- package/build/socket/socket-client-start.dto.js +1 -0
- package/build/socket/socket-client-start.dto.js.map +1 -1
- package/build/socket/socket-message.dto.d.ts +2 -0
- package/build/socket/socket-message.dto.d.ts.map +1 -1
- package/build/widget-settings/widget-settings-chat-settings/widget-settings-chat-settings.dto.d.ts +17 -17
- package/build/widget-settings/widget-settings-chat-settings/widget-settings-chat-settings.dto.js +9 -9
- package/build/widget-settings/widget-settings-chat-settings/widget-settings-chat-settings.dto.js.map +1 -1
- package/build/widget-settings/widget-settings-locale.util.d.ts +8 -0
- package/build/widget-settings/widget-settings-locale.util.d.ts.map +1 -0
- package/build/widget-settings/widget-settings-locale.util.js +16 -0
- package/build/widget-settings/widget-settings-locale.util.js.map +1 -0
- package/build/widget-settings/widget-settings-localized-content.constant.d.ts +9 -0
- package/build/widget-settings/widget-settings-localized-content.constant.d.ts.map +1 -0
- package/build/widget-settings/widget-settings-localized-content.constant.js +299 -0
- package/build/widget-settings/widget-settings-localized-content.constant.js.map +1 -0
- package/build/widget-settings/widget-settings-localized-content.test.d.ts +2 -0
- package/build/widget-settings/widget-settings-localized-content.test.d.ts.map +1 -0
- package/build/widget-settings/widget-settings-localized-content.test.js +29 -0
- package/build/widget-settings/widget-settings-localized-content.test.js.map +1 -0
- package/build/widget-settings/widget-settings.constant.d.ts +77 -2
- package/build/widget-settings/widget-settings.constant.d.ts.map +1 -1
- package/build/widget-settings/widget-settings.constant.js +128 -15
- package/build/widget-settings/widget-settings.constant.js.map +1 -1
- package/build/widget-settings/widget-settings.dto.d.ts +90 -24
- package/build/widget-settings/widget-settings.dto.d.ts.map +1 -1
- package/build/widget-settings/widget-settings.dto.js +60 -5
- package/build/widget-settings/widget-settings.dto.js.map +1 -1
- package/build/widget-settings/widget-settings.util.d.ts +6 -0
- package/build/widget-settings/widget-settings.util.d.ts.map +1 -0
- package/build/widget-settings/widget-settings.util.js +7 -0
- package/build/widget-settings/widget-settings.util.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
import { WIDGET_SETTINGS_FALLBACK_CONTENT } from './widget-settings.constant.js';
|
|
2
|
+
/**
|
|
3
|
+
* Shipped localized catalog for widget default content, keyed by BASE language (`fr`, not `fr-CA`);
|
|
4
|
+
* `resolveWidgetLocale` collapses regional locales to their base. `en` is the frozen English catalog.
|
|
5
|
+
* A locale may omit a key; callers fall back to the English default. SINGLE SOURCE OF TRUTH — the
|
|
6
|
+
* webchat widget imports this same data. Ported from the webchat i18n `content.*` catalog.
|
|
7
|
+
*/
|
|
8
|
+
export const WIDGET_SETTINGS_LOCALIZED_CONTENT = {
|
|
9
|
+
en: WIDGET_SETTINGS_FALLBACK_CONTENT,
|
|
10
|
+
fr: {
|
|
11
|
+
'banner.title': 'Votre agent IA',
|
|
12
|
+
'banner.description': "Comment puis-je vous aider aujourd'hui ?",
|
|
13
|
+
placeholderText: 'Message...',
|
|
14
|
+
'aiDisclaimer.text': "Généré par IA, vérifiez l'exactitude.",
|
|
15
|
+
'disclaimer.title': 'Avis de confidentialité',
|
|
16
|
+
'disclaimer.description': 'Avant de poursuivre notre conversation, nous vous invitons à consulter et à accepter notre politique de confidentialité, qui décrit la manière dont nous traitons et protégeons vos données personnelles dans le cadre de nos services.',
|
|
17
|
+
'disclaimer.primaryButtonText': 'Envoyer',
|
|
18
|
+
'disclaimer.secondaryButtonText': 'Politique de confidentialité',
|
|
19
|
+
'launcher.text': 'Testez votre agent',
|
|
20
|
+
'voice.callToActionText': 'Comment puis-je vous aider ?',
|
|
21
|
+
'voice.startButtonText': 'Démarrer un appel',
|
|
22
|
+
'voice.listeningText': "À l'écoute...",
|
|
23
|
+
'voice.talkingText': 'Parlez pour interrompre',
|
|
24
|
+
'voice.endButtonText': 'Terminer',
|
|
25
|
+
},
|
|
26
|
+
es: {
|
|
27
|
+
'banner.title': 'Tu agente de IA',
|
|
28
|
+
'banner.description': '¿En qué puedo ayudarte hoy?',
|
|
29
|
+
placeholderText: 'Mensaje...',
|
|
30
|
+
'aiDisclaimer.text': 'Generado por IA, comprueba su exactitud.',
|
|
31
|
+
'disclaimer.title': 'Aviso de privacidad',
|
|
32
|
+
'disclaimer.description': 'Antes de continuar con la conversación, te pedimos que revises y aceptes nuestra política de privacidad, que explica cómo tratamos y protegemos tu información personal a lo largo de nuestros servicios.',
|
|
33
|
+
'disclaimer.primaryButtonText': 'Enviar',
|
|
34
|
+
'disclaimer.secondaryButtonText': 'Política de privacidad',
|
|
35
|
+
'launcher.text': 'Prueba tu agente',
|
|
36
|
+
'voice.callToActionText': '¿En qué puedo ayudarte?',
|
|
37
|
+
'voice.startButtonText': 'Iniciar una llamada',
|
|
38
|
+
'voice.listeningText': 'Escuchando...',
|
|
39
|
+
'voice.talkingText': 'Habla para interrumpir',
|
|
40
|
+
'voice.endButtonText': 'Finalizar',
|
|
41
|
+
},
|
|
42
|
+
pt: {
|
|
43
|
+
'banner.title': 'Seu agente de IA',
|
|
44
|
+
'banner.description': 'Como posso ajudar você hoje?',
|
|
45
|
+
placeholderText: 'Mensagem...',
|
|
46
|
+
'aiDisclaimer.text': 'Gerado por IA, verifique a exatidão.',
|
|
47
|
+
'disclaimer.title': 'Aviso de privacidade',
|
|
48
|
+
'disclaimer.description': 'Antes de prosseguirmos com a sua conversa, pedimos que você revise e aceite a nossa política de privacidade, que descreve como tratamos e protegemos as suas informações pessoais ao longo dos nossos serviços.',
|
|
49
|
+
'disclaimer.primaryButtonText': 'Enviar',
|
|
50
|
+
'disclaimer.secondaryButtonText': 'Política de privacidade',
|
|
51
|
+
'launcher.text': 'Teste o seu agente',
|
|
52
|
+
'voice.callToActionText': 'Como posso ajudar você?',
|
|
53
|
+
'voice.startButtonText': 'Iniciar uma chamada',
|
|
54
|
+
'voice.listeningText': 'Ouvindo...',
|
|
55
|
+
'voice.talkingText': 'Fale para interromper',
|
|
56
|
+
'voice.endButtonText': 'Encerrar',
|
|
57
|
+
},
|
|
58
|
+
bg: {
|
|
59
|
+
'banner.title': 'Вашият AI агент',
|
|
60
|
+
'banner.description': 'Как мога да ви помогна днес?',
|
|
61
|
+
placeholderText: 'Съобщение...',
|
|
62
|
+
'aiDisclaimer.text': 'Генерирано от AI, проверете за точност.',
|
|
63
|
+
'disclaimer.title': 'Известие за поверителност',
|
|
64
|
+
'disclaimer.description': 'Преди да продължим с разговора, любезно ви молим да прегледате и приемете нашата политика за поверителност, която описва как обработваме и защитаваме вашите лични данни в рамките на нашите услуги.',
|
|
65
|
+
'disclaimer.primaryButtonText': 'Изпрати',
|
|
66
|
+
'disclaimer.secondaryButtonText': 'Политика за поверителност',
|
|
67
|
+
'launcher.text': 'Тествайте своя агент',
|
|
68
|
+
'voice.callToActionText': 'Как мога да ви помогна?',
|
|
69
|
+
'voice.startButtonText': 'Започни разговор',
|
|
70
|
+
'voice.listeningText': 'Слуша...',
|
|
71
|
+
'voice.talkingText': 'Говорете, за да прекъснете',
|
|
72
|
+
'voice.endButtonText': 'Приключи',
|
|
73
|
+
},
|
|
74
|
+
ca: {
|
|
75
|
+
'banner.title': "El vostre agent d'IA",
|
|
76
|
+
'banner.description': 'Com us puc ajudar avui?',
|
|
77
|
+
placeholderText: 'Missatge...',
|
|
78
|
+
'aiDisclaimer.text': "Generat per IA, comproveu-ne l'exactitud.",
|
|
79
|
+
'disclaimer.title': 'Avís de privadesa',
|
|
80
|
+
'disclaimer.description': 'Abans de continuar amb la conversa, us demanem que reviseu i accepteu la nostra política de privadesa, que descriu com tractem i protegim les vostres dades personals al llarg dels nostres serveis.',
|
|
81
|
+
'disclaimer.primaryButtonText': 'Envia',
|
|
82
|
+
'disclaimer.secondaryButtonText': 'Política de privadesa',
|
|
83
|
+
'launcher.text': 'Proveu el vostre agent',
|
|
84
|
+
'voice.callToActionText': 'Com us puc ajudar?',
|
|
85
|
+
'voice.startButtonText': 'Inicia una trucada',
|
|
86
|
+
'voice.listeningText': 'Escoltant...',
|
|
87
|
+
'voice.talkingText': 'Parleu per interrompre',
|
|
88
|
+
'voice.endButtonText': 'Finalitza',
|
|
89
|
+
},
|
|
90
|
+
cs: {
|
|
91
|
+
'banner.title': 'Váš AI agent',
|
|
92
|
+
'banner.description': 'Jak vám dnes mohu pomoci?',
|
|
93
|
+
placeholderText: 'Zpráva...',
|
|
94
|
+
'aiDisclaimer.text': 'Vygenerováno umělou inteligencí, ověřte správnost.',
|
|
95
|
+
'disclaimer.title': 'Oznámení o ochraně soukromí',
|
|
96
|
+
'disclaimer.description': 'Než budeme moci pokračovat v konverzaci, laskavě vás žádáme, abyste si přečetli a přijali naše zásady ochrany osobních údajů, které popisují, jak v rámci našich služeb zpracováváme a chráníme vaše osobní údaje.',
|
|
97
|
+
'disclaimer.primaryButtonText': 'Odeslat',
|
|
98
|
+
'disclaimer.secondaryButtonText': 'Zásady ochrany soukromí',
|
|
99
|
+
'launcher.text': 'Vyzkoušejte svého agenta',
|
|
100
|
+
'voice.callToActionText': 'Jak vám mohu pomoci?',
|
|
101
|
+
'voice.startButtonText': 'Zahájit hovor',
|
|
102
|
+
'voice.listeningText': 'Naslouchá...',
|
|
103
|
+
'voice.talkingText': 'Mluvte pro přerušení',
|
|
104
|
+
'voice.endButtonText': 'Ukončit',
|
|
105
|
+
},
|
|
106
|
+
da: {
|
|
107
|
+
'banner.title': 'Din AI-agent',
|
|
108
|
+
'banner.description': 'Hvordan kan jeg hjælpe dig i dag?',
|
|
109
|
+
placeholderText: 'Besked...',
|
|
110
|
+
'aiDisclaimer.text': 'Genereret af AI, tjek for nøjagtighed.',
|
|
111
|
+
'disclaimer.title': 'Privatlivsmeddelelse',
|
|
112
|
+
'disclaimer.description': 'Før vi kan fortsætte samtalen, beder vi dig venligst gennemgå og acceptere vores privatlivspolitik, der beskriver, hvordan vi håndterer og beskytter dine personlige oplysninger på tværs af vores tjenester.',
|
|
113
|
+
'disclaimer.primaryButtonText': 'Send',
|
|
114
|
+
'disclaimer.secondaryButtonText': 'Privatlivspolitik',
|
|
115
|
+
'launcher.text': 'Test din agent',
|
|
116
|
+
'voice.callToActionText': 'Hvordan kan jeg hjælpe dig?',
|
|
117
|
+
'voice.startButtonText': 'Start et opkald',
|
|
118
|
+
'voice.listeningText': 'Lytter...',
|
|
119
|
+
'voice.talkingText': 'Tal for at afbryde',
|
|
120
|
+
'voice.endButtonText': 'Afslut',
|
|
121
|
+
},
|
|
122
|
+
de: {
|
|
123
|
+
'banner.title': 'Ihr KI-Agent',
|
|
124
|
+
'banner.description': 'Wie kann ich Ihnen heute helfen?',
|
|
125
|
+
placeholderText: 'Nachricht...',
|
|
126
|
+
'aiDisclaimer.text': 'Von KI generiert, bitte auf Richtigkeit prüfen.',
|
|
127
|
+
'disclaimer.title': 'Datenschutzhinweis',
|
|
128
|
+
'disclaimer.description': 'Bevor wir mit Ihrem Gespräch fortfahren, bitten wir Sie, unsere Datenschutzrichtlinie zu lesen und zu akzeptieren, die erläutert, wie wir Ihre personenbezogenen Daten im Rahmen unserer Dienste verarbeiten und schützen.',
|
|
129
|
+
'disclaimer.primaryButtonText': 'Absenden',
|
|
130
|
+
'disclaimer.secondaryButtonText': 'Datenschutzrichtlinie',
|
|
131
|
+
'launcher.text': 'Testen Sie Ihren Agenten',
|
|
132
|
+
'voice.callToActionText': 'Wie kann ich Ihnen helfen?',
|
|
133
|
+
'voice.startButtonText': 'Anruf starten',
|
|
134
|
+
'voice.listeningText': 'Hört zu...',
|
|
135
|
+
'voice.talkingText': 'Sprechen, um zu unterbrechen',
|
|
136
|
+
'voice.endButtonText': 'Beenden',
|
|
137
|
+
},
|
|
138
|
+
et: {
|
|
139
|
+
'banner.title': 'Teie AI-agent',
|
|
140
|
+
'banner.description': 'Kuidas saan teid täna aidata?',
|
|
141
|
+
placeholderText: 'Sõnum...',
|
|
142
|
+
'aiDisclaimer.text': 'Loodud tehisintellekti abil, kontrollige täpsust.',
|
|
143
|
+
'disclaimer.title': 'Privaatsusteade',
|
|
144
|
+
'disclaimer.description': 'Enne vestluse jätkamist palume teil tutvuda meie privaatsuspoliitikaga ja sellega nõustuda; see kirjeldab, kuidas me teie isikuandmeid oma teenustes töötleme ja kaitseme.',
|
|
145
|
+
'disclaimer.primaryButtonText': 'Saada',
|
|
146
|
+
'disclaimer.secondaryButtonText': 'Privaatsuspoliitika',
|
|
147
|
+
'launcher.text': 'Testige oma agenti',
|
|
148
|
+
'voice.callToActionText': 'Kuidas saan teid aidata?',
|
|
149
|
+
'voice.startButtonText': 'Alusta kõnet',
|
|
150
|
+
'voice.listeningText': 'Kuulab...',
|
|
151
|
+
'voice.talkingText': 'Rääkige, et katkestada',
|
|
152
|
+
'voice.endButtonText': 'Lõpeta',
|
|
153
|
+
},
|
|
154
|
+
hu: {
|
|
155
|
+
'banner.title': 'Az Ön MI-ügynöke',
|
|
156
|
+
'banner.description': 'Miben segíthetek ma?',
|
|
157
|
+
placeholderText: 'Üzenet...',
|
|
158
|
+
'aiDisclaimer.text': 'MI által generálva, ellenőrizze a pontosságot.',
|
|
159
|
+
'disclaimer.title': 'Adatvédelmi tájékoztató',
|
|
160
|
+
'disclaimer.description': 'Mielőtt folytatnánk a beszélgetést, kérjük, tekintse át és fogadja el adatvédelmi szabályzatunkat, amely ismerteti, hogyan kezeljük és védjük személyes adatait szolgáltatásaink során.',
|
|
161
|
+
'disclaimer.primaryButtonText': 'Küldés',
|
|
162
|
+
'disclaimer.secondaryButtonText': 'Adatvédelmi szabályzat',
|
|
163
|
+
'launcher.text': 'Tesztelje az ügynökét',
|
|
164
|
+
'voice.callToActionText': 'Miben segíthetek?',
|
|
165
|
+
'voice.startButtonText': 'Hívás indítása',
|
|
166
|
+
'voice.listeningText': 'Figyel...',
|
|
167
|
+
'voice.talkingText': 'Beszéljen a megszakításhoz',
|
|
168
|
+
'voice.endButtonText': 'Befejezés',
|
|
169
|
+
},
|
|
170
|
+
it: {
|
|
171
|
+
'banner.title': 'Il tuo agente IA',
|
|
172
|
+
'banner.description': 'Come posso aiutarti oggi?',
|
|
173
|
+
placeholderText: 'Messaggio...',
|
|
174
|
+
'aiDisclaimer.text': "Generato dall'IA, verificane l'accuratezza.",
|
|
175
|
+
'disclaimer.title': 'Informativa sulla privacy',
|
|
176
|
+
'disclaimer.description': "Prima di poter proseguire con la conversazione, ti chiediamo gentilmente di leggere e accettare la nostra informativa sulla privacy, che descrive come trattiamo e proteggiamo i tuoi dati personali nell'ambito dei nostri servizi.",
|
|
177
|
+
'disclaimer.primaryButtonText': 'Invia',
|
|
178
|
+
'disclaimer.secondaryButtonText': 'Informativa sulla privacy',
|
|
179
|
+
'launcher.text': 'Prova il tuo agente',
|
|
180
|
+
'voice.callToActionText': 'Come posso aiutarti?',
|
|
181
|
+
'voice.startButtonText': 'Avvia una chiamata',
|
|
182
|
+
'voice.listeningText': 'In ascolto...',
|
|
183
|
+
'voice.talkingText': 'Parla per interrompere',
|
|
184
|
+
'voice.endButtonText': 'Termina',
|
|
185
|
+
},
|
|
186
|
+
nl: {
|
|
187
|
+
'banner.title': 'Jouw AI-agent',
|
|
188
|
+
'banner.description': 'Hoe kan ik je vandaag helpen?',
|
|
189
|
+
placeholderText: 'Bericht...',
|
|
190
|
+
'aiDisclaimer.text': 'Gegenereerd door AI, controleer op juistheid.',
|
|
191
|
+
'disclaimer.title': 'Privacyverklaring',
|
|
192
|
+
'disclaimer.description': 'Voordat we verder kunnen gaan met je gesprek, vragen we je vriendelijk om ons privacybeleid te lezen en te accepteren, waarin wordt beschreven hoe we je persoonlijke gegevens verwerken en beschermen binnen onze diensten.',
|
|
193
|
+
'disclaimer.primaryButtonText': 'Verzenden',
|
|
194
|
+
'disclaimer.secondaryButtonText': 'Privacybeleid',
|
|
195
|
+
'launcher.text': 'Test je agent',
|
|
196
|
+
'voice.callToActionText': 'Hoe kan ik je helpen?',
|
|
197
|
+
'voice.startButtonText': 'Een gesprek starten',
|
|
198
|
+
'voice.listeningText': 'Luistert...',
|
|
199
|
+
'voice.talkingText': 'Spreek om te onderbreken',
|
|
200
|
+
'voice.endButtonText': 'Beëindigen',
|
|
201
|
+
},
|
|
202
|
+
pl: {
|
|
203
|
+
'banner.title': 'Twój agent AI',
|
|
204
|
+
'banner.description': 'Jak mogę Ci dziś pomóc?',
|
|
205
|
+
placeholderText: 'Wiadomość...',
|
|
206
|
+
'aiDisclaimer.text': 'Wygenerowane przez AI, sprawdź poprawność.',
|
|
207
|
+
'disclaimer.title': 'Informacja o prywatności',
|
|
208
|
+
'disclaimer.description': 'Zanim będziemy mogli kontynuować rozmowę, uprzejmie prosimy o zapoznanie się z naszą polityką prywatności i jej zaakceptowanie; opisuje ona, w jaki sposób przetwarzamy i chronimy Twoje dane osobowe w ramach naszych usług.',
|
|
209
|
+
'disclaimer.primaryButtonText': 'Wyślij',
|
|
210
|
+
'disclaimer.secondaryButtonText': 'Polityka prywatności',
|
|
211
|
+
'launcher.text': 'Przetestuj swojego agenta',
|
|
212
|
+
'voice.callToActionText': 'Jak mogę Ci pomóc?',
|
|
213
|
+
'voice.startButtonText': 'Rozpocznij połączenie',
|
|
214
|
+
'voice.listeningText': 'Słucha...',
|
|
215
|
+
'voice.talkingText': 'Mów, aby przerwać',
|
|
216
|
+
'voice.endButtonText': 'Zakończ',
|
|
217
|
+
},
|
|
218
|
+
ro: {
|
|
219
|
+
'banner.title': 'Agentul tău AI',
|
|
220
|
+
'banner.description': 'Cu ce te pot ajuta astăzi?',
|
|
221
|
+
placeholderText: 'Mesaj...',
|
|
222
|
+
'aiDisclaimer.text': 'Generat de IA, verificați acuratețea.',
|
|
223
|
+
'disclaimer.title': 'Notă de confidențialitate',
|
|
224
|
+
'disclaimer.description': 'Înainte de a putea continua conversația, vă rugăm să citiți și să acceptați politica noastră de confidențialitate, care descrie modul în care gestionăm și protejăm datele dvs. personale în cadrul serviciilor noastre.',
|
|
225
|
+
'disclaimer.primaryButtonText': 'Trimite',
|
|
226
|
+
'disclaimer.secondaryButtonText': 'Politica de confidențialitate',
|
|
227
|
+
'launcher.text': 'Testează-ți agentul',
|
|
228
|
+
'voice.callToActionText': 'Cu ce te pot ajuta?',
|
|
229
|
+
'voice.startButtonText': 'Începe un apel',
|
|
230
|
+
'voice.listeningText': 'Ascultă...',
|
|
231
|
+
'voice.talkingText': 'Vorbiți pentru a întrerupe',
|
|
232
|
+
'voice.endButtonText': 'Încheie',
|
|
233
|
+
},
|
|
234
|
+
ru: {
|
|
235
|
+
'banner.title': 'Ваш ИИ-агент',
|
|
236
|
+
'banner.description': 'Чем я могу помочь вам сегодня?',
|
|
237
|
+
placeholderText: 'Сообщение...',
|
|
238
|
+
'aiDisclaimer.text': 'Сгенерировано ИИ, проверьте на точность.',
|
|
239
|
+
'disclaimer.title': 'Уведомление о конфиденциальности',
|
|
240
|
+
'disclaimer.description': 'Прежде чем продолжить разговор, просим вас ознакомиться с нашей политикой конфиденциальности и принять её; в ней описано, как мы обрабатываем и защищаем ваши персональные данные при оказании наших услуг.',
|
|
241
|
+
'disclaimer.primaryButtonText': 'Отправить',
|
|
242
|
+
'disclaimer.secondaryButtonText': 'Политика конфиденциальности',
|
|
243
|
+
'launcher.text': 'Протестируйте своего агента',
|
|
244
|
+
'voice.callToActionText': 'Чем я могу вам помочь?',
|
|
245
|
+
'voice.startButtonText': 'Начать звонок',
|
|
246
|
+
'voice.listeningText': 'Слушает...',
|
|
247
|
+
'voice.talkingText': 'Говорите, чтобы прервать',
|
|
248
|
+
'voice.endButtonText': 'Завершить',
|
|
249
|
+
},
|
|
250
|
+
tr: {
|
|
251
|
+
'banner.title': 'Yapay zekâ ajanınız',
|
|
252
|
+
'banner.description': 'Bugün size nasıl yardımcı olabilirim?',
|
|
253
|
+
placeholderText: 'Mesaj...',
|
|
254
|
+
'aiDisclaimer.text': 'Yapay zekâ tarafından oluşturuldu, doğruluğunu kontrol edin.',
|
|
255
|
+
'disclaimer.title': 'Gizlilik bildirimi',
|
|
256
|
+
'disclaimer.description': 'Görüşmenize devam edebilmemiz için, hizmetlerimiz boyunca kişisel bilgilerinizi nasıl işlediğimizi ve koruduğumuzu açıklayan gizlilik politikamızı incelemenizi ve kabul etmenizi rica ederiz.',
|
|
257
|
+
'disclaimer.primaryButtonText': 'Gönder',
|
|
258
|
+
'disclaimer.secondaryButtonText': 'Gizlilik politikası',
|
|
259
|
+
'launcher.text': 'Ajanınızı test edin',
|
|
260
|
+
'voice.callToActionText': 'Size nasıl yardımcı olabilirim?',
|
|
261
|
+
'voice.startButtonText': 'Görüşme başlat',
|
|
262
|
+
'voice.listeningText': 'Dinliyor...',
|
|
263
|
+
'voice.talkingText': 'Kesmek için konuşun',
|
|
264
|
+
'voice.endButtonText': 'Bitir',
|
|
265
|
+
},
|
|
266
|
+
uk: {
|
|
267
|
+
'banner.title': 'Ваш ШІ-агент',
|
|
268
|
+
'banner.description': 'Чим я можу вам допомогти сьогодні?',
|
|
269
|
+
placeholderText: 'Повідомлення...',
|
|
270
|
+
'aiDisclaimer.text': 'Згенеровано ШІ, перевірте на точність.',
|
|
271
|
+
'disclaimer.title': 'Повідомлення про конфіденційність',
|
|
272
|
+
'disclaimer.description': 'Перш ніж продовжити розмову, просимо вас ознайомитися з нашою політикою конфіденційності та прийняти її; вона описує, як ми обробляємо та захищаємо ваші персональні дані під час надання наших послуг.',
|
|
273
|
+
'disclaimer.primaryButtonText': 'Надіслати',
|
|
274
|
+
'disclaimer.secondaryButtonText': 'Політика конфіденційності',
|
|
275
|
+
'launcher.text': 'Протестуйте свого агента',
|
|
276
|
+
'voice.callToActionText': 'Чим я можу вам допомогти?',
|
|
277
|
+
'voice.startButtonText': 'Почати дзвінок',
|
|
278
|
+
'voice.listeningText': 'Слухає...',
|
|
279
|
+
'voice.talkingText': 'Говоріть, щоб перервати',
|
|
280
|
+
'voice.endButtonText': 'Завершити',
|
|
281
|
+
},
|
|
282
|
+
vi: {
|
|
283
|
+
'banner.title': 'Trợ lý AI của bạn',
|
|
284
|
+
'banner.description': 'Hôm nay tôi có thể giúp gì cho bạn?',
|
|
285
|
+
placeholderText: 'Tin nhắn...',
|
|
286
|
+
'aiDisclaimer.text': 'Được tạo bởi AI, hãy kiểm tra lại độ chính xác.',
|
|
287
|
+
'disclaimer.title': 'Thông báo về quyền riêng tư',
|
|
288
|
+
'disclaimer.description': 'Trước khi chúng tôi có thể tiếp tục cuộc trò chuyện, mong bạn vui lòng xem và chấp nhận chính sách quyền riêng tư của chúng tôi, trong đó mô tả cách chúng tôi xử lý và bảo vệ thông tin cá nhân của bạn trong suốt các dịch vụ của chúng tôi.',
|
|
289
|
+
'disclaimer.primaryButtonText': 'Gửi',
|
|
290
|
+
'disclaimer.secondaryButtonText': 'Chính sách quyền riêng tư',
|
|
291
|
+
'launcher.text': 'Thử nghiệm trợ lý của bạn',
|
|
292
|
+
'voice.callToActionText': 'Tôi có thể giúp gì cho bạn?',
|
|
293
|
+
'voice.startButtonText': 'Bắt đầu cuộc gọi',
|
|
294
|
+
'voice.listeningText': 'Đang lắng nghe...',
|
|
295
|
+
'voice.talkingText': 'Nói để ngắt lời',
|
|
296
|
+
'voice.endButtonText': 'Kết thúc',
|
|
297
|
+
},
|
|
298
|
+
};
|
|
299
|
+
//# sourceMappingURL=widget-settings-localized-content.constant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-settings-localized-content.constant.js","sourceRoot":"","sources":["../../src/widget-settings/widget-settings-localized-content.constant.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAG1C;IACF,EAAE,EAAE,gCAAgC;IACpC,EAAE,EAAE;QACF,cAAc,EAAE,gBAAgB;QAChC,oBAAoB,EAAE,0CAA0C;QAChE,eAAe,EAAE,YAAY;QAC7B,mBAAmB,EAAE,uCAAuC;QAC5D,kBAAkB,EAAE,yBAAyB;QAC7C,wBAAwB,EACtB,yOAAyO;QAC3O,8BAA8B,EAAE,SAAS;QACzC,gCAAgC,EAAE,8BAA8B;QAChE,eAAe,EAAE,oBAAoB;QACrC,wBAAwB,EAAE,8BAA8B;QACxD,uBAAuB,EAAE,mBAAmB;QAC5C,qBAAqB,EAAE,eAAe;QACtC,mBAAmB,EAAE,yBAAyB;QAC9C,qBAAqB,EAAE,UAAU;KAClC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,iBAAiB;QACjC,oBAAoB,EAAE,6BAA6B;QACnD,eAAe,EAAE,YAAY;QAC7B,mBAAmB,EAAE,0CAA0C;QAC/D,kBAAkB,EAAE,qBAAqB;QACzC,wBAAwB,EACtB,2MAA2M;QAC7M,8BAA8B,EAAE,QAAQ;QACxC,gCAAgC,EAAE,wBAAwB;QAC1D,eAAe,EAAE,kBAAkB;QACnC,wBAAwB,EAAE,yBAAyB;QACnD,uBAAuB,EAAE,qBAAqB;QAC9C,qBAAqB,EAAE,eAAe;QACtC,mBAAmB,EAAE,wBAAwB;QAC7C,qBAAqB,EAAE,WAAW;KACnC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,kBAAkB;QAClC,oBAAoB,EAAE,8BAA8B;QACpD,eAAe,EAAE,aAAa;QAC9B,mBAAmB,EAAE,sCAAsC;QAC3D,kBAAkB,EAAE,sBAAsB;QAC1C,wBAAwB,EACtB,iNAAiN;QACnN,8BAA8B,EAAE,QAAQ;QACxC,gCAAgC,EAAE,yBAAyB;QAC3D,eAAe,EAAE,oBAAoB;QACrC,wBAAwB,EAAE,yBAAyB;QACnD,uBAAuB,EAAE,qBAAqB;QAC9C,qBAAqB,EAAE,YAAY;QACnC,mBAAmB,EAAE,uBAAuB;QAC5C,qBAAqB,EAAE,UAAU;KAClC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,iBAAiB;QACjC,oBAAoB,EAAE,8BAA8B;QACpD,eAAe,EAAE,cAAc;QAC/B,mBAAmB,EAAE,yCAAyC;QAC9D,kBAAkB,EAAE,2BAA2B;QAC/C,wBAAwB,EACtB,sMAAsM;QACxM,8BAA8B,EAAE,SAAS;QACzC,gCAAgC,EAAE,2BAA2B;QAC7D,eAAe,EAAE,sBAAsB;QACvC,wBAAwB,EAAE,yBAAyB;QACnD,uBAAuB,EAAE,kBAAkB;QAC3C,qBAAqB,EAAE,UAAU;QACjC,mBAAmB,EAAE,4BAA4B;QACjD,qBAAqB,EAAE,UAAU;KAClC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,sBAAsB;QACtC,oBAAoB,EAAE,yBAAyB;QAC/C,eAAe,EAAE,aAAa;QAC9B,mBAAmB,EAAE,2CAA2C;QAChE,kBAAkB,EAAE,mBAAmB;QACvC,wBAAwB,EACtB,sMAAsM;QACxM,8BAA8B,EAAE,OAAO;QACvC,gCAAgC,EAAE,uBAAuB;QACzD,eAAe,EAAE,wBAAwB;QACzC,wBAAwB,EAAE,oBAAoB;QAC9C,uBAAuB,EAAE,oBAAoB;QAC7C,qBAAqB,EAAE,cAAc;QACrC,mBAAmB,EAAE,wBAAwB;QAC7C,qBAAqB,EAAE,WAAW;KACnC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,cAAc;QAC9B,oBAAoB,EAAE,2BAA2B;QACjD,eAAe,EAAE,WAAW;QAC5B,mBAAmB,EAAE,oDAAoD;QACzE,kBAAkB,EAAE,6BAA6B;QACjD,wBAAwB,EACtB,oNAAoN;QACtN,8BAA8B,EAAE,SAAS;QACzC,gCAAgC,EAAE,yBAAyB;QAC3D,eAAe,EAAE,0BAA0B;QAC3C,wBAAwB,EAAE,sBAAsB;QAChD,uBAAuB,EAAE,eAAe;QACxC,qBAAqB,EAAE,cAAc;QACrC,mBAAmB,EAAE,sBAAsB;QAC3C,qBAAqB,EAAE,SAAS;KACjC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,cAAc;QAC9B,oBAAoB,EAAE,mCAAmC;QACzD,eAAe,EAAE,WAAW;QAC5B,mBAAmB,EAAE,wCAAwC;QAC7D,kBAAkB,EAAE,sBAAsB;QAC1C,wBAAwB,EACtB,+MAA+M;QACjN,8BAA8B,EAAE,MAAM;QACtC,gCAAgC,EAAE,mBAAmB;QACrD,eAAe,EAAE,gBAAgB;QACjC,wBAAwB,EAAE,6BAA6B;QACvD,uBAAuB,EAAE,iBAAiB;QAC1C,qBAAqB,EAAE,WAAW;QAClC,mBAAmB,EAAE,oBAAoB;QACzC,qBAAqB,EAAE,QAAQ;KAChC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,cAAc;QAC9B,oBAAoB,EAAE,kCAAkC;QACxD,eAAe,EAAE,cAAc;QAC/B,mBAAmB,EAAE,iDAAiD;QACtE,kBAAkB,EAAE,oBAAoB;QACxC,wBAAwB,EACtB,4NAA4N;QAC9N,8BAA8B,EAAE,UAAU;QAC1C,gCAAgC,EAAE,uBAAuB;QACzD,eAAe,EAAE,0BAA0B;QAC3C,wBAAwB,EAAE,4BAA4B;QACtD,uBAAuB,EAAE,eAAe;QACxC,qBAAqB,EAAE,YAAY;QACnC,mBAAmB,EAAE,8BAA8B;QACnD,qBAAqB,EAAE,SAAS;KACjC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,eAAe;QAC/B,oBAAoB,EAAE,+BAA+B;QACrD,eAAe,EAAE,UAAU;QAC3B,mBAAmB,EAAE,mDAAmD;QACxE,kBAAkB,EAAE,iBAAiB;QACrC,wBAAwB,EACtB,4KAA4K;QAC9K,8BAA8B,EAAE,OAAO;QACvC,gCAAgC,EAAE,qBAAqB;QACvD,eAAe,EAAE,oBAAoB;QACrC,wBAAwB,EAAE,0BAA0B;QACpD,uBAAuB,EAAE,cAAc;QACvC,qBAAqB,EAAE,WAAW;QAClC,mBAAmB,EAAE,wBAAwB;QAC7C,qBAAqB,EAAE,QAAQ;KAChC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,kBAAkB;QAClC,oBAAoB,EAAE,sBAAsB;QAC5C,eAAe,EAAE,WAAW;QAC5B,mBAAmB,EAAE,gDAAgD;QACrE,kBAAkB,EAAE,yBAAyB;QAC7C,wBAAwB,EACtB,yLAAyL;QAC3L,8BAA8B,EAAE,QAAQ;QACxC,gCAAgC,EAAE,wBAAwB;QAC1D,eAAe,EAAE,uBAAuB;QACxC,wBAAwB,EAAE,mBAAmB;QAC7C,uBAAuB,EAAE,gBAAgB;QACzC,qBAAqB,EAAE,WAAW;QAClC,mBAAmB,EAAE,4BAA4B;QACjD,qBAAqB,EAAE,WAAW;KACnC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,kBAAkB;QAClC,oBAAoB,EAAE,2BAA2B;QACjD,eAAe,EAAE,cAAc;QAC/B,mBAAmB,EAAE,6CAA6C;QAClE,kBAAkB,EAAE,2BAA2B;QAC/C,wBAAwB,EACtB,sOAAsO;QACxO,8BAA8B,EAAE,OAAO;QACvC,gCAAgC,EAAE,2BAA2B;QAC7D,eAAe,EAAE,qBAAqB;QACtC,wBAAwB,EAAE,sBAAsB;QAChD,uBAAuB,EAAE,oBAAoB;QAC7C,qBAAqB,EAAE,eAAe;QACtC,mBAAmB,EAAE,wBAAwB;QAC7C,qBAAqB,EAAE,SAAS;KACjC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,eAAe;QAC/B,oBAAoB,EAAE,+BAA+B;QACrD,eAAe,EAAE,YAAY;QAC7B,mBAAmB,EAAE,+CAA+C;QACpE,kBAAkB,EAAE,mBAAmB;QACvC,wBAAwB,EACtB,8NAA8N;QAChO,8BAA8B,EAAE,WAAW;QAC3C,gCAAgC,EAAE,eAAe;QACjD,eAAe,EAAE,eAAe;QAChC,wBAAwB,EAAE,uBAAuB;QACjD,uBAAuB,EAAE,qBAAqB;QAC9C,qBAAqB,EAAE,aAAa;QACpC,mBAAmB,EAAE,0BAA0B;QAC/C,qBAAqB,EAAE,YAAY;KACpC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,eAAe;QAC/B,oBAAoB,EAAE,yBAAyB;QAC/C,eAAe,EAAE,cAAc;QAC/B,mBAAmB,EAAE,4CAA4C;QACjE,kBAAkB,EAAE,0BAA0B;QAC9C,wBAAwB,EACtB,+NAA+N;QACjO,8BAA8B,EAAE,QAAQ;QACxC,gCAAgC,EAAE,sBAAsB;QACxD,eAAe,EAAE,2BAA2B;QAC5C,wBAAwB,EAAE,oBAAoB;QAC9C,uBAAuB,EAAE,uBAAuB;QAChD,qBAAqB,EAAE,WAAW;QAClC,mBAAmB,EAAE,mBAAmB;QACxC,qBAAqB,EAAE,SAAS;KACjC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,gBAAgB;QAChC,oBAAoB,EAAE,4BAA4B;QAClD,eAAe,EAAE,UAAU;QAC3B,mBAAmB,EAAE,uCAAuC;QAC5D,kBAAkB,EAAE,2BAA2B;QAC/C,wBAAwB,EACtB,0NAA0N;QAC5N,8BAA8B,EAAE,SAAS;QACzC,gCAAgC,EAAE,+BAA+B;QACjE,eAAe,EAAE,qBAAqB;QACtC,wBAAwB,EAAE,qBAAqB;QAC/C,uBAAuB,EAAE,gBAAgB;QACzC,qBAAqB,EAAE,YAAY;QACnC,mBAAmB,EAAE,4BAA4B;QACjD,qBAAqB,EAAE,SAAS;KACjC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,cAAc;QAC9B,oBAAoB,EAAE,gCAAgC;QACtD,eAAe,EAAE,cAAc;QAC/B,mBAAmB,EAAE,0CAA0C;QAC/D,kBAAkB,EAAE,kCAAkC;QACtD,wBAAwB,EACtB,6MAA6M;QAC/M,8BAA8B,EAAE,WAAW;QAC3C,gCAAgC,EAAE,6BAA6B;QAC/D,eAAe,EAAE,6BAA6B;QAC9C,wBAAwB,EAAE,wBAAwB;QAClD,uBAAuB,EAAE,eAAe;QACxC,qBAAqB,EAAE,YAAY;QACnC,mBAAmB,EAAE,0BAA0B;QAC/C,qBAAqB,EAAE,WAAW;KACnC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,qBAAqB;QACrC,oBAAoB,EAAE,uCAAuC;QAC7D,eAAe,EAAE,UAAU;QAC3B,mBAAmB,EAAE,8DAA8D;QACnF,kBAAkB,EAAE,oBAAoB;QACxC,wBAAwB,EACtB,gMAAgM;QAClM,8BAA8B,EAAE,QAAQ;QACxC,gCAAgC,EAAE,qBAAqB;QACvD,eAAe,EAAE,qBAAqB;QACtC,wBAAwB,EAAE,iCAAiC;QAC3D,uBAAuB,EAAE,gBAAgB;QACzC,qBAAqB,EAAE,aAAa;QACpC,mBAAmB,EAAE,qBAAqB;QAC1C,qBAAqB,EAAE,OAAO;KAC/B;IACD,EAAE,EAAE;QACF,cAAc,EAAE,cAAc;QAC9B,oBAAoB,EAAE,oCAAoC;QAC1D,eAAe,EAAE,iBAAiB;QAClC,mBAAmB,EAAE,wCAAwC;QAC7D,kBAAkB,EAAE,mCAAmC;QACvD,wBAAwB,EACtB,yMAAyM;QAC3M,8BAA8B,EAAE,WAAW;QAC3C,gCAAgC,EAAE,2BAA2B;QAC7D,eAAe,EAAE,0BAA0B;QAC3C,wBAAwB,EAAE,2BAA2B;QACrD,uBAAuB,EAAE,gBAAgB;QACzC,qBAAqB,EAAE,WAAW;QAClC,mBAAmB,EAAE,yBAAyB;QAC9C,qBAAqB,EAAE,WAAW;KACnC;IACD,EAAE,EAAE;QACF,cAAc,EAAE,mBAAmB;QACnC,oBAAoB,EAAE,qCAAqC;QAC3D,eAAe,EAAE,aAAa;QAC9B,mBAAmB,EAAE,iDAAiD;QACtE,kBAAkB,EAAE,6BAA6B;QACjD,wBAAwB,EACtB,gPAAgP;QAClP,8BAA8B,EAAE,KAAK;QACrC,gCAAgC,EAAE,2BAA2B;QAC7D,eAAe,EAAE,2BAA2B;QAC5C,wBAAwB,EAAE,6BAA6B;QACvD,uBAAuB,EAAE,kBAAkB;QAC3C,qBAAqB,EAAE,mBAAmB;QAC1C,mBAAmB,EAAE,iBAAiB;QACtC,qBAAqB,EAAE,UAAU;KAClC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-settings-localized-content.test.d.ts","sourceRoot":"","sources":["../../src/widget-settings/widget-settings-localized-content.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { WIDGET_SETTINGS_LOCALIZED_CONTENT } from './widget-settings-localized-content.constant.js';
|
|
3
|
+
import { WIDGET_SETTINGS_FALLBACK_CONTENT, WIDGET_SHIPPED_LOCALES, WIDGET_TRANSLATABLE_CONTENT_KEYS, } from './widget-settings.constant.js';
|
|
4
|
+
import { getWidgetLocalizedContent } from './widget-settings.util.js';
|
|
5
|
+
describe('WIDGET_SETTINGS_LOCALIZED_CONTENT', () => {
|
|
6
|
+
it('returns a non-empty string for every shipped locale via base-language fallback', () => {
|
|
7
|
+
WIDGET_SHIPPED_LOCALES.forEach((locale) => {
|
|
8
|
+
expect(() => getWidgetLocalizedContent(locale, 'banner.description')).not.toThrow();
|
|
9
|
+
expect(getWidgetLocalizedContent(locale, 'banner.description')).toBeTruthy();
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
it('only ever contains keys from WIDGET_TRANSLATABLE_CONTENT_KEYS, and never footer.linkText', () => {
|
|
13
|
+
const validKeys = new Set(WIDGET_TRANSLATABLE_CONTENT_KEYS);
|
|
14
|
+
Object.entries(WIDGET_SETTINGS_LOCALIZED_CONTENT).forEach(([, content]) => {
|
|
15
|
+
Object.keys(content).forEach((key) => {
|
|
16
|
+
expect(key).not.toBe('footer.linkText');
|
|
17
|
+
expect(validKeys.has(key)).toBe(true);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
it('resolves a regional locale to its ported base-language string', () => {
|
|
22
|
+
expect(getWidgetLocalizedContent('fr-CA', 'banner.description')).toBe(WIDGET_SETTINGS_LOCALIZED_CONTENT.fr?.['banner.description']);
|
|
23
|
+
expect(getWidgetLocalizedContent('fr-CA', 'banner.description')).toBe("Comment puis-je vous aider aujourd'hui ?");
|
|
24
|
+
});
|
|
25
|
+
it('falls back to the English default for an unknown locale', () => {
|
|
26
|
+
expect(getWidgetLocalizedContent('zz-ZZ', 'banner.title')).toBe(WIDGET_SETTINGS_FALLBACK_CONTENT['banner.title']);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=widget-settings-localized-content.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-settings-localized-content.test.js","sourceRoot":"","sources":["../../src/widget-settings/widget-settings-localized-content.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,iCAAiC,EAAE,MAAM,8CAA8C,CAAC;AACjG,OAAO,EACL,gCAAgC,EAChC,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,sBAAsB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACxC,MAAM,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACpF,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QAC/E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE,GAAG,EAAE;QAClG,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,gCAAgC,CAAC,CAAC;QAEpE,MAAM,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE;YACxE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACxC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,IAAI,CACnE,iCAAiC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAC7D,CAAC;QACF,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACpH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,cAAc,CAAC,CAAC,CAAC;IACpH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -27,13 +27,60 @@ export declare const WIDGET_SETTINGS_DEFAULT_WIDTH = "400";
|
|
|
27
27
|
* A number (not a numeric string) because every consumer uses it for comparison.
|
|
28
28
|
*/
|
|
29
29
|
export declare const WIDGET_SETTINGS_MIN_WIDTH = 320;
|
|
30
|
+
/**
|
|
31
|
+
* The canonical set of widget content strings that are translatable — the shared contract between
|
|
32
|
+
* the creator-app editor (which writes `settings.widget.translations[locale][key]`) and the webchat
|
|
33
|
+
* widget (which reads it and resolves against the base catalog). Both repos MUST index
|
|
34
|
+
* `translations` by these exact key strings; a key present in one repo but not the other is a
|
|
35
|
+
* silently-broken translation. creator-app maps each key to its `settings.widget` path; webchat maps
|
|
36
|
+
* each to its `content.*` base-catalog key. URLs and images are intentionally excluded (never
|
|
37
|
+
* translated). Extend here — in one place — when a new content string becomes translatable.
|
|
38
|
+
*/
|
|
39
|
+
export declare const WIDGET_TRANSLATABLE_CONTENT_KEYS: readonly ['banner.title', 'banner.description', 'placeholderText', 'aiDisclaimer.text', 'disclaimer.title', 'disclaimer.description', 'disclaimer.primaryButtonText', 'disclaimer.secondaryButtonText', 'launcher.text', 'voice.callToActionText', 'voice.startButtonText', 'voice.listeningText', 'voice.talkingText', 'voice.endButtonText'];
|
|
40
|
+
export type WidgetTranslatableContentKey = (typeof WIDGET_TRANSLATABLE_CONTENT_KEYS)[number];
|
|
41
|
+
/**
|
|
42
|
+
* The Voiceflow default English copy for the 14 translatable content strings, keyed by
|
|
43
|
+
* {@link WidgetTranslatableContentKey}. This is the text every template and
|
|
44
|
+
* `WIDGET_SETTINGS_DEFAULT_SETTINGS` seed into new projects, and it is also the widget's identity
|
|
45
|
+
* check for "this is our copy": while a widget is multilingual, stored text exactly equal to its
|
|
46
|
+
* field's entry here renders from the shipped catalog in the visitor's language, and anything else
|
|
47
|
+
* is treated as customer-authored and rendered as-is.
|
|
48
|
+
*
|
|
49
|
+
* FROZEN. Changing or removing a string silently re-classifies every stored copy of the old string
|
|
50
|
+
* as customer-authored, so it stops translating. The webchat English catalog (`content.<key>` in
|
|
51
|
+
* `libs/chat/src/i18n/locales/en.json`) must equal this map exactly; a future copy change needs the
|
|
52
|
+
* widget to recognise both the old and the new string as ours before either side is edited.
|
|
53
|
+
*/
|
|
54
|
+
export declare const WIDGET_SETTINGS_FALLBACK_CONTENT: {
|
|
55
|
+
'banner.title': string;
|
|
56
|
+
'banner.description': string;
|
|
57
|
+
placeholderText: string;
|
|
58
|
+
'aiDisclaimer.text': string;
|
|
59
|
+
'disclaimer.title': string;
|
|
60
|
+
'disclaimer.description': string;
|
|
61
|
+
'disclaimer.primaryButtonText': string;
|
|
62
|
+
'disclaimer.secondaryButtonText': string;
|
|
63
|
+
'launcher.text': string;
|
|
64
|
+
'voice.callToActionText': string;
|
|
65
|
+
'voice.startButtonText': string;
|
|
66
|
+
'voice.listeningText': string;
|
|
67
|
+
'voice.talkingText': string;
|
|
68
|
+
'voice.endButtonText': string;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Settings for a widget with nothing stored. Carries the Voiceflow default copy for every
|
|
72
|
+
* translatable string (the same literals new projects have always been seeded with), and
|
|
73
|
+
* deliberately NO `languages` block: every path that falls back to this object (the `v13_00`
|
|
74
|
+
* backfill, a first save from a settings-less version, the runtime's fallback for a version with no
|
|
75
|
+
* widget settings) must produce a single-language widget. A `languages` block here would opt all of
|
|
76
|
+
* those projects into multilingual behaviour without anyone choosing it.
|
|
77
|
+
*/
|
|
30
78
|
export declare const WIDGET_SETTINGS_DEFAULT_SETTINGS: {
|
|
31
79
|
type: "chat";
|
|
32
80
|
chat: {
|
|
33
81
|
voiceInput: true;
|
|
34
82
|
voiceOutput: false;
|
|
35
83
|
voiceMode: true;
|
|
36
|
-
notificationSound: false;
|
|
37
84
|
renderMode: "widget";
|
|
38
85
|
headerImage: {
|
|
39
86
|
enabled: true;
|
|
@@ -42,9 +89,9 @@ export declare const WIDGET_SETTINGS_DEFAULT_SETTINGS: {
|
|
|
42
89
|
enabled: true;
|
|
43
90
|
};
|
|
44
91
|
banner: {
|
|
45
|
-
enabled: true;
|
|
46
92
|
title: string;
|
|
47
93
|
description: string;
|
|
94
|
+
enabled: true;
|
|
48
95
|
};
|
|
49
96
|
placeholderText: string;
|
|
50
97
|
aiDisclaimer: {
|
|
@@ -113,4 +160,32 @@ export declare const WIDGET_SETTINGS_DEFAULT_SETTINGS: {
|
|
|
113
160
|
disableTranscript: false;
|
|
114
161
|
};
|
|
115
162
|
};
|
|
163
|
+
/**
|
|
164
|
+
* The language config the settings UI starts from when a widget has none stored: English only.
|
|
165
|
+
* Pure config: it carries no `enabled` flag, so reading it never opts a widget in.
|
|
166
|
+
*/
|
|
167
|
+
export declare const WIDGET_SETTINGS_DEFAULT_LANGUAGES: {
|
|
168
|
+
default: string;
|
|
169
|
+
supported: string[];
|
|
170
|
+
};
|
|
171
|
+
/**
|
|
172
|
+
* Tier 1 of the widget language rollout: left-to-right locales the widget's font stack fully covers. The
|
|
173
|
+
* "All supported languages" option snapshots this list into `languages.supported`, and new projects
|
|
174
|
+
* start from it. Every entry is a `LegacyVFLocale` value — pinned by a test in `@voiceflow/utils-designer`,
|
|
175
|
+
* since that enum cannot be imported here.
|
|
176
|
+
*/
|
|
177
|
+
export declare const WIDGET_SHIPPED_LOCALES: readonly string[];
|
|
178
|
+
/**
|
|
179
|
+
* New-project language config: English only, multilingual off. `enabled` is derived from the language count
|
|
180
|
+
* (`supported.length > 1`), so a new project starts single-language and turns multilingual on only once its
|
|
181
|
+
* owner opts a second language in from the settings page.
|
|
182
|
+
*
|
|
183
|
+
* Applied ONLY at genuine new-project creation (`AssistantService.createOneFromTemplate` and
|
|
184
|
+
* `GenerationService.runAssistantGeneration`), gated by `FEAT_MULTILINGUAL_WIDGET`.
|
|
185
|
+
*/
|
|
186
|
+
export declare const WIDGET_SETTINGS_NEW_PROJECT_LANGUAGES: {
|
|
187
|
+
default: string;
|
|
188
|
+
supported: string[];
|
|
189
|
+
enabled: false;
|
|
190
|
+
};
|
|
116
191
|
//# sourceMappingURL=widget-settings.constant.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget-settings.constant.d.ts","sourceRoot":"","sources":["../../src/widget-settings/widget-settings.constant.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,kCAAkC,YAAY,CAAC;AAE5D,eAAO,MAAM,+BAA+B;;;;;;;;;;;CAW3C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,eAAO,MAAM,gCAAgC
|
|
1
|
+
{"version":3,"file":"widget-settings.constant.d.ts","sourceRoot":"","sources":["../../src/widget-settings/widget-settings.constant.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,kCAAkC,YAAY,CAAC;AAE5D,eAAO,MAAM,+BAA+B;;;;;;;;;;;CAW3C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C;;;;;;;;GAQG;AACH,eAAO,MAAM,gCAAgC,YAC3C,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,8BAA8B,EAC9B,gCAAgC,EAChC,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,CACb,CAAC;AAEX,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,gCAAgC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7F;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;CAgBW,CAAC;AAEzD;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAyCzC,UAAU;QACV,OAAO;YACL,gBAAgB;YAChB,eAAe;YACf,aAAa;YACb,WAAW;YACX,aAAa;;;;;;YAMb,IAAI;YACJ,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsBgB,CAAC;AAE3B;;;GAGG;AACH,eAAO,MAAM,iCAAiC;;;CAGM,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAwBnD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qCAAqC;;;;CAIE,CAAC"}
|