@hivegpt/hiveai-angular 0.0.375 → 0.0.380
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 +23 -23
- package/karma.conf.js +32 -32
- package/ng-package.json +6 -6
- package/package.json +20 -20
- package/src/environments/environment.ts +19 -19
- package/src/lib/components/NotificationSocket.ts +37 -37
- package/src/lib/components/bot-html-editor/bot-html-editor.component.css +9 -9
- package/src/lib/components/bot-html-editor/bot-html-editor.component.html +11 -11
- package/src/lib/components/bot-html-editor/bot-html-editor.component.spec.ts +25 -25
- package/src/lib/components/bot-html-editor/bot-html-editor.component.ts +152 -152
- package/src/lib/components/bot.service.ts +51 -51
- package/src/lib/components/chat-drawer/chat-drawer.component.html +1586 -1586
- package/src/lib/components/chat-drawer/chat-drawer.component.scss +2906 -2906
- package/src/lib/components/chat-drawer/chat-drawer.component.ts +2143 -2143
- package/src/lib/components/chatbot/chatbot.component.html +37 -37
- package/src/lib/components/chatbot/chatbot.component.scss +97 -97
- package/src/lib/components/chatbot/chatbot.component.ts +44 -44
- package/src/lib/components/conversation.service.spec.ts +16 -16
- package/src/lib/components/conversation.service.ts +54 -54
- package/src/lib/components/socket-service.service.spec.ts +16 -16
- package/src/lib/components/socket-service.service.ts +77 -77
- package/src/lib/components/translations/translation.service.ts +221 -254
- package/src/lib/components/video-player/video-player.component.html +51 -51
- package/src/lib/components/video-player/video-player.component.scss +262 -262
- package/src/lib/components/video-player/video-player.component.ts +148 -148
- package/src/lib/hivegpt.module.ts +18 -18
- package/src/lib/models/video.ts +36 -36
- package/src/lib/pipes/safe-html.pipe.ts +16 -16
- package/src/lib/utils/utils.ts +37 -37
- package/src/public-api.ts +7 -7
- package/tsconfig.lib.json +25 -25
- package/tsconfig.lib.prod.json +10 -10
- package/tsconfig.spec.json +17 -17
- package/tslint.json +17 -17
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
|
|
3
|
-
import { Observable, Subject } from 'rxjs';
|
|
4
|
-
import { webSocket, WebSocketSubject } from 'rxjs/webSocket';
|
|
5
|
-
import { ConversationService } from './conversation.service';
|
|
6
|
-
import { NotificationSocket } from './NotificationSocket';
|
|
7
|
-
|
|
8
|
-
@Injectable({
|
|
9
|
-
providedIn: 'root',
|
|
10
|
-
})
|
|
11
|
-
export class SocketService {
|
|
12
|
-
public testMessage: string;
|
|
13
|
-
private isCommonSocketInitialized = false;
|
|
14
|
-
private isUserSpecificSocketInitialized = false;
|
|
15
|
-
private isUserSpecificEventReleased = true;
|
|
16
|
-
private messageQueue: any[] = [];
|
|
17
|
-
private releaseInterval = 1000;
|
|
18
|
-
private intervalSetup: boolean = false;
|
|
19
|
-
|
|
20
|
-
constructor(
|
|
21
|
-
private conversationService: ConversationService,
|
|
22
|
-
private notificationSocket: NotificationSocket
|
|
23
|
-
) {
|
|
24
|
-
this.startReleasingMessages();
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
isSocketInitialized(isCommon: boolean) {
|
|
28
|
-
return isCommon
|
|
29
|
-
? this.isCommonSocketInitialized
|
|
30
|
-
: this.isUserSpecificSocketInitialized &&
|
|
31
|
-
!this.isUserSpecificEventReleased;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
disconnectSocketConnection() {
|
|
35
|
-
this.notificationSocket.disconnect();
|
|
36
|
-
}
|
|
37
|
-
connectSocketConnection() {
|
|
38
|
-
this.notificationSocket.connect();
|
|
39
|
-
}
|
|
40
|
-
registerUserSpecificHiveSocket(botId: string, conversation_id: string, org_id: string) {
|
|
41
|
-
const commonNotification = 'commonNotification';
|
|
42
|
-
const groupId = `Hive_AI_Notifs_${botId}_${conversation_id}`;
|
|
43
|
-
const groupId_org = `Hive_AI_Notifs_${org_id}`;
|
|
44
|
-
|
|
45
|
-
// Remove any pre-existing listeners for commonNotification
|
|
46
|
-
// this.notificationSocket.removeAllListeners(commonNotification);
|
|
47
|
-
|
|
48
|
-
// Join the group again with updated botId and conversation_id
|
|
49
|
-
this.notificationSocket.emit('joinData', { groupId });
|
|
50
|
-
this.notificationSocket.emit('joinData', { groupId: groupId_org });
|
|
51
|
-
|
|
52
|
-
// Re-register for common notifications
|
|
53
|
-
this.notificationSocket.fromEvent(commonNotification).subscribe(
|
|
54
|
-
(res) => {
|
|
55
|
-
console.log('Received commonNotification:', res);
|
|
56
|
-
this.conversationService.sendValidatedUserData(res);
|
|
57
|
-
},
|
|
58
|
-
(error) => {
|
|
59
|
-
console.error('Error receiving commonNotification:', error);
|
|
60
|
-
}
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
private startReleasingMessages() {
|
|
65
|
-
if (!this.intervalSetup) {
|
|
66
|
-
setInterval(() => {
|
|
67
|
-
if (this.messageQueue.length > 0) {
|
|
68
|
-
const message = this.messageQueue.shift(); // Remove the first message from the queue
|
|
69
|
-
// Handle the message here, e.g., send it to the server or process it
|
|
70
|
-
console.log('Releasing message from queue:', message);
|
|
71
|
-
// this.campaignService.sendValidatedUserData(message);
|
|
72
|
-
}
|
|
73
|
-
}, this.releaseInterval);
|
|
74
|
-
this.intervalSetup = true; // Prevents multiple intervals
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
import { Observable, Subject } from 'rxjs';
|
|
4
|
+
import { webSocket, WebSocketSubject } from 'rxjs/webSocket';
|
|
5
|
+
import { ConversationService } from './conversation.service';
|
|
6
|
+
import { NotificationSocket } from './NotificationSocket';
|
|
7
|
+
|
|
8
|
+
@Injectable({
|
|
9
|
+
providedIn: 'root',
|
|
10
|
+
})
|
|
11
|
+
export class SocketService {
|
|
12
|
+
public testMessage: string;
|
|
13
|
+
private isCommonSocketInitialized = false;
|
|
14
|
+
private isUserSpecificSocketInitialized = false;
|
|
15
|
+
private isUserSpecificEventReleased = true;
|
|
16
|
+
private messageQueue: any[] = [];
|
|
17
|
+
private releaseInterval = 1000;
|
|
18
|
+
private intervalSetup: boolean = false;
|
|
19
|
+
|
|
20
|
+
constructor(
|
|
21
|
+
private conversationService: ConversationService,
|
|
22
|
+
private notificationSocket: NotificationSocket
|
|
23
|
+
) {
|
|
24
|
+
this.startReleasingMessages();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
isSocketInitialized(isCommon: boolean) {
|
|
28
|
+
return isCommon
|
|
29
|
+
? this.isCommonSocketInitialized
|
|
30
|
+
: this.isUserSpecificSocketInitialized &&
|
|
31
|
+
!this.isUserSpecificEventReleased;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
disconnectSocketConnection() {
|
|
35
|
+
this.notificationSocket.disconnect();
|
|
36
|
+
}
|
|
37
|
+
connectSocketConnection() {
|
|
38
|
+
this.notificationSocket.connect();
|
|
39
|
+
}
|
|
40
|
+
registerUserSpecificHiveSocket(botId: string, conversation_id: string, org_id: string) {
|
|
41
|
+
const commonNotification = 'commonNotification';
|
|
42
|
+
const groupId = `Hive_AI_Notifs_${botId}_${conversation_id}`;
|
|
43
|
+
const groupId_org = `Hive_AI_Notifs_${org_id}`;
|
|
44
|
+
|
|
45
|
+
// Remove any pre-existing listeners for commonNotification
|
|
46
|
+
// this.notificationSocket.removeAllListeners(commonNotification);
|
|
47
|
+
|
|
48
|
+
// Join the group again with updated botId and conversation_id
|
|
49
|
+
this.notificationSocket.emit('joinData', { groupId });
|
|
50
|
+
this.notificationSocket.emit('joinData', { groupId: groupId_org });
|
|
51
|
+
|
|
52
|
+
// Re-register for common notifications
|
|
53
|
+
this.notificationSocket.fromEvent(commonNotification).subscribe(
|
|
54
|
+
(res) => {
|
|
55
|
+
console.log('Received commonNotification:', res);
|
|
56
|
+
this.conversationService.sendValidatedUserData(res);
|
|
57
|
+
},
|
|
58
|
+
(error) => {
|
|
59
|
+
console.error('Error receiving commonNotification:', error);
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
private startReleasingMessages() {
|
|
65
|
+
if (!this.intervalSetup) {
|
|
66
|
+
setInterval(() => {
|
|
67
|
+
if (this.messageQueue.length > 0) {
|
|
68
|
+
const message = this.messageQueue.shift(); // Remove the first message from the queue
|
|
69
|
+
// Handle the message here, e.g., send it to the server or process it
|
|
70
|
+
console.log('Releasing message from queue:', message);
|
|
71
|
+
// this.campaignService.sendValidatedUserData(message);
|
|
72
|
+
}
|
|
73
|
+
}, this.releaseInterval);
|
|
74
|
+
this.intervalSetup = true; // Prevents multiple intervals
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -1,254 +1,221 @@
|
|
|
1
|
-
import { Injectable, Inject, PLATFORM_ID } from '@angular/core';
|
|
2
|
-
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
-
|
|
4
|
-
@Injectable({
|
|
5
|
-
providedIn: 'root',
|
|
6
|
-
})
|
|
7
|
-
export class TranslationService {
|
|
8
|
-
private eventId: string | null = null;
|
|
9
|
-
|
|
10
|
-
setEventId(id: string) {
|
|
11
|
-
this.eventId = id;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
getTranslation(key: string): string {
|
|
15
|
-
console.log('eventId', this.eventId);
|
|
16
|
-
// let lang = String(this.getLang(this.eventId)).replace(/^"|"$/g, '');
|
|
17
|
-
const lang = (
|
|
18
|
-
localStorage.getItem('defaultLanguage-' + this.eventId) || 'en'
|
|
19
|
-
).replace(/^"|"$/g, '');
|
|
20
|
-
|
|
21
|
-
const entry = this.translationsData.find((item) => item.Key === key);
|
|
22
|
-
|
|
23
|
-
if (!entry) {
|
|
24
|
-
return key; // fallback
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return entry.Translations[lang] || entry.DefaultValue || key;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
private getLang(eventId?: string | null): string {
|
|
31
|
-
const suffix = eventId ? `-${eventId}` : '';
|
|
32
|
-
const storageKey = `defaultLanguage${suffix}`;
|
|
33
|
-
|
|
34
|
-
return localStorage.getItem(storageKey) || 'en';
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
private translationsData: any[] = [
|
|
38
|
-
{
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
ar:
|
|
81
|
-
zh:
|
|
82
|
-
ru:
|
|
83
|
-
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
Key: '
|
|
87
|
-
DefaultValue: '
|
|
88
|
-
Translations: {
|
|
89
|
-
en: '
|
|
90
|
-
fr: '
|
|
91
|
-
it: '
|
|
92
|
-
es: '
|
|
93
|
-
de: '
|
|
94
|
-
'pt-br': '
|
|
95
|
-
ar: '
|
|
96
|
-
zh: '
|
|
97
|
-
ru: '
|
|
98
|
-
},
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
Key: '
|
|
102
|
-
DefaultValue: '
|
|
103
|
-
Translations: {
|
|
104
|
-
en: '
|
|
105
|
-
fr: '
|
|
106
|
-
it: '
|
|
107
|
-
es: '
|
|
108
|
-
de: '
|
|
109
|
-
'pt-br': '
|
|
110
|
-
ar: '
|
|
111
|
-
zh: '
|
|
112
|
-
ru: '
|
|
113
|
-
},
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
Key: '
|
|
117
|
-
DefaultValue:
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
'
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
{
|
|
224
|
-
Key: 'Call Interface',
|
|
225
|
-
DefaultValue: 'Call Interface',
|
|
226
|
-
Translations: {
|
|
227
|
-
en: 'Call Interface',
|
|
228
|
-
fr: "Interface d'appel",
|
|
229
|
-
it: 'Interfaccia chiamata',
|
|
230
|
-
es: 'Interfaz de llamada',
|
|
231
|
-
de: 'Anrufoberfläche',
|
|
232
|
-
'pt-br': 'Interface de chamada',
|
|
233
|
-
ar: 'واجهة الاتصال',
|
|
234
|
-
zh: '呼叫界面',
|
|
235
|
-
ru: 'Интерфейс звонка',
|
|
236
|
-
},
|
|
237
|
-
},
|
|
238
|
-
{
|
|
239
|
-
Key: 'Close',
|
|
240
|
-
DefaultValue: 'Close',
|
|
241
|
-
Translations: {
|
|
242
|
-
en: 'Close',
|
|
243
|
-
fr: 'Fermer',
|
|
244
|
-
it: 'Chiudi',
|
|
245
|
-
es: 'Cerrar',
|
|
246
|
-
de: 'Schließen',
|
|
247
|
-
'pt-br': 'Fechar',
|
|
248
|
-
ar: 'إغلاق',
|
|
249
|
-
zh: '关闭',
|
|
250
|
-
ru: 'Закрыть',
|
|
251
|
-
},
|
|
252
|
-
},
|
|
253
|
-
];
|
|
254
|
-
}
|
|
1
|
+
import { Injectable, Inject, PLATFORM_ID } from '@angular/core';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
+
|
|
4
|
+
@Injectable({
|
|
5
|
+
providedIn: 'root',
|
|
6
|
+
})
|
|
7
|
+
export class TranslationService {
|
|
8
|
+
private eventId: string | null = null;
|
|
9
|
+
|
|
10
|
+
setEventId(id: string) {
|
|
11
|
+
this.eventId = id;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
getTranslation(key: string): string {
|
|
15
|
+
console.log('eventId', this.eventId);
|
|
16
|
+
// let lang = String(this.getLang(this.eventId)).replace(/^"|"$/g, '');
|
|
17
|
+
const lang = (
|
|
18
|
+
localStorage.getItem('defaultLanguage-' + this.eventId) || 'en'
|
|
19
|
+
).replace(/^"|"$/g, '');
|
|
20
|
+
|
|
21
|
+
const entry = this.translationsData.find((item) => item.Key === key);
|
|
22
|
+
|
|
23
|
+
if (!entry) {
|
|
24
|
+
return key; // fallback
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return entry.Translations[lang] || entry.DefaultValue || key;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
private getLang(eventId?: string | null): string {
|
|
31
|
+
const suffix = eventId ? `-${eventId}` : '';
|
|
32
|
+
const storageKey = `defaultLanguage${suffix}`;
|
|
33
|
+
|
|
34
|
+
return localStorage.getItem(storageKey) || 'en';
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
private translationsData: any[] = [
|
|
38
|
+
{
|
|
39
|
+
Key: 'Ask anything',
|
|
40
|
+
DefaultValue: 'Ask anything',
|
|
41
|
+
Translations: {
|
|
42
|
+
en: 'Ask anything',
|
|
43
|
+
fr: 'Demandez ce que vous voulez',
|
|
44
|
+
it: 'Chiedi qualsiasi cosa',
|
|
45
|
+
es: 'Pregunta lo que quieras',
|
|
46
|
+
de: 'Frag alles',
|
|
47
|
+
'pt-br': 'Pergunte qualquer coisa',
|
|
48
|
+
ar: 'اسأل أي شيء',
|
|
49
|
+
zh: '随便问',
|
|
50
|
+
ru: 'Спросите что угодно',
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
Key: 'Assistant',
|
|
55
|
+
DefaultValue: 'Assistant',
|
|
56
|
+
Translations: {
|
|
57
|
+
en: 'Assistant',
|
|
58
|
+
fr: 'Assistant',
|
|
59
|
+
it: 'Assistente',
|
|
60
|
+
es: 'Asistente',
|
|
61
|
+
de: 'Assistent',
|
|
62
|
+
'pt-br': 'Assistente',
|
|
63
|
+
ar: 'مساعد',
|
|
64
|
+
zh: '助手',
|
|
65
|
+
ru: 'Ассистент',
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
Key: 'Your personal or company information is kept private and secure within this chat.',
|
|
70
|
+
DefaultValue:
|
|
71
|
+
'Your personal or company information is kept private and secure within this chat.',
|
|
72
|
+
Translations: {
|
|
73
|
+
en: 'Your personal or company information is kept private and secure within this chat.',
|
|
74
|
+
fr: 'Vos informations personnelles ou celles de votre entreprise sont conservées privées et sécurisées dans cette conversation.',
|
|
75
|
+
it: "Le tue informazioni personali o aziendali sono mantenute private e sicure all'interno di questa chat.",
|
|
76
|
+
es: 'Tu información personal o de la empresa se mantiene privada y segura dentro de este chat.',
|
|
77
|
+
de: 'Ihre persönlichen oder geschäftlichen Informationen bleiben in diesem Chat privat und sicher.',
|
|
78
|
+
'pt-br':
|
|
79
|
+
'Suas informações pessoais ou da empresa são mantidas privadas e seguras dentro deste chat.',
|
|
80
|
+
ar: 'تظل معلوماتك الشخصية أو معلومات شركتك خاصة وآمنة داخل هذه المحادثة.',
|
|
81
|
+
zh: '您的个人或公司信息在此聊天中保持私密和安全。',
|
|
82
|
+
ru: 'Ваша личная или корпоративная информация остается конфиденциальной и защищенной в этом чате.',
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
Key: 'Send message',
|
|
87
|
+
DefaultValue: 'Send message',
|
|
88
|
+
Translations: {
|
|
89
|
+
en: 'Send message',
|
|
90
|
+
fr: 'Envoyer un message',
|
|
91
|
+
it: 'Invia messaggio',
|
|
92
|
+
es: 'Enviar mensaje',
|
|
93
|
+
de: 'Nachricht senden',
|
|
94
|
+
'pt-br': 'Enviar mensagem',
|
|
95
|
+
ar: 'إرسال رسالة',
|
|
96
|
+
zh: '发送消息',
|
|
97
|
+
ru: 'Отправить сообщение',
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
Key: 'Platform GPT',
|
|
102
|
+
DefaultValue: 'Platform GPT',
|
|
103
|
+
Translations: {
|
|
104
|
+
en: 'Platform GPT',
|
|
105
|
+
fr: 'Plateforme GPT',
|
|
106
|
+
it: 'Piattaforma GPT',
|
|
107
|
+
es: 'Plataforma GPT',
|
|
108
|
+
de: 'Plattform GPT',
|
|
109
|
+
'pt-br': 'Plataforma GPT',
|
|
110
|
+
ar: 'منصة GPT',
|
|
111
|
+
zh: '平台 GPT',
|
|
112
|
+
ru: 'Платформа GPT',
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
Key: 'New Chat',
|
|
117
|
+
DefaultValue: 'New Chat',
|
|
118
|
+
Translations: {
|
|
119
|
+
en: 'New Chat',
|
|
120
|
+
fr: 'Nouvelle conversation',
|
|
121
|
+
it: 'Nuova chat',
|
|
122
|
+
es: 'Nuevo chat',
|
|
123
|
+
de: 'Neuer Chat',
|
|
124
|
+
'pt-br': 'Novo chat',
|
|
125
|
+
ar: 'محادثة جديدة',
|
|
126
|
+
zh: '新聊天',
|
|
127
|
+
ru: 'Новый чат',
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
Key: 'You',
|
|
132
|
+
DefaultValue: 'You',
|
|
133
|
+
Translations: {
|
|
134
|
+
en: 'You',
|
|
135
|
+
fr: 'Vous',
|
|
136
|
+
it: 'Tu',
|
|
137
|
+
es: 'Tú',
|
|
138
|
+
de: 'Du',
|
|
139
|
+
'pt-br': 'Você',
|
|
140
|
+
ar: 'أنت',
|
|
141
|
+
zh: '您',
|
|
142
|
+
ru: 'Вы',
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
Key: 'Write your message',
|
|
147
|
+
DefaultValue: 'Write your message',
|
|
148
|
+
Translations: {
|
|
149
|
+
en: 'Write your message',
|
|
150
|
+
fr: 'Écrivez votre message',
|
|
151
|
+
it: 'Scrivi il tuo messaggio',
|
|
152
|
+
es: 'Escribe tu mensaje',
|
|
153
|
+
de: 'Schreiben Sie Ihre Nachricht',
|
|
154
|
+
'pt-br': 'Escreva sua mensagem',
|
|
155
|
+
ar: 'اكتب رسالتك',
|
|
156
|
+
zh: '写下您的消息',
|
|
157
|
+
ru: 'Напишите ваше сообщение',
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
Key: 'Send',
|
|
162
|
+
DefaultValue: 'Send',
|
|
163
|
+
Translations: {
|
|
164
|
+
en: 'Send',
|
|
165
|
+
fr: 'Envoyer',
|
|
166
|
+
it: 'Invia',
|
|
167
|
+
es: 'Enviar',
|
|
168
|
+
de: 'Senden',
|
|
169
|
+
'pt-br': 'Enviar',
|
|
170
|
+
ar: 'إرسال',
|
|
171
|
+
zh: '发送',
|
|
172
|
+
ru: 'Отправить',
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
Key: 'Call Interface',
|
|
177
|
+
DefaultValue: 'Call Interface',
|
|
178
|
+
Translations: {
|
|
179
|
+
en: 'Call Interface',
|
|
180
|
+
fr: "Interface d'appel",
|
|
181
|
+
it: 'Interfaccia chiamata',
|
|
182
|
+
es: 'Interfaz de llamada',
|
|
183
|
+
de: 'Anrufoberfläche',
|
|
184
|
+
'pt-br': 'Interface de chamada',
|
|
185
|
+
ar: 'واجهة الاتصال',
|
|
186
|
+
zh: '呼叫界面',
|
|
187
|
+
ru: 'Интерфейс звонка',
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
Key: 'Call Interface',
|
|
192
|
+
DefaultValue: 'Call Interface',
|
|
193
|
+
Translations: {
|
|
194
|
+
en: 'Call Interface',
|
|
195
|
+
fr: "Interface d'appel",
|
|
196
|
+
it: 'Interfaccia chiamata',
|
|
197
|
+
es: 'Interfaz de llamada',
|
|
198
|
+
de: 'Anrufoberfläche',
|
|
199
|
+
'pt-br': 'Interface de chamada',
|
|
200
|
+
ar: 'واجهة الاتصال',
|
|
201
|
+
zh: '呼叫界面',
|
|
202
|
+
ru: 'Интерфейс звонка',
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
Key: 'Close',
|
|
207
|
+
DefaultValue: 'Close',
|
|
208
|
+
Translations: {
|
|
209
|
+
en: 'Close',
|
|
210
|
+
fr: 'Fermer',
|
|
211
|
+
it: 'Chiudi',
|
|
212
|
+
es: 'Cerrar',
|
|
213
|
+
de: 'Schließen',
|
|
214
|
+
'pt-br': 'Fechar',
|
|
215
|
+
ar: 'إغلاق',
|
|
216
|
+
zh: '关闭',
|
|
217
|
+
ru: 'Закрыть',
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
];
|
|
221
|
+
}
|