@bootdesk/js-web-adapter-react 0.3.3 → 0.3.5
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 +17 -0
- package/dist/index.cjs +2299 -250
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +47 -6
- package/dist/index.d.ts +47 -6
- package/dist/index.js +2292 -243
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/components/ChatWidget.tsx
|
|
2
|
-
import { useState as
|
|
2
|
+
import { useState as useState10, useCallback as useCallback6, useEffect as useEffect9 } from "react";
|
|
3
3
|
|
|
4
4
|
// src/hooks/useChatClient.ts
|
|
5
5
|
import { useEffect, useMemo } from "react";
|
|
@@ -337,6 +337,8 @@ function usePushNotifications(options) {
|
|
|
337
337
|
onSubscribe: options.onSubscribe,
|
|
338
338
|
onUnsubscribe: options.onUnsubscribe,
|
|
339
339
|
serviceWorkerUrl: options.serviceWorkerUrl,
|
|
340
|
+
serviceWorkerScope: options.serviceWorkerScope,
|
|
341
|
+
serviceWorkerType: options.serviceWorkerType,
|
|
340
342
|
notificationOptions: options.notificationOptions
|
|
341
343
|
});
|
|
342
344
|
pushManagerRef.current = pushManager;
|
|
@@ -393,6 +395,7 @@ function useAttachmentUpload(uploadConfig) {
|
|
|
393
395
|
}, []);
|
|
394
396
|
const uploadFile = useCallback3(
|
|
395
397
|
async (attachment) => {
|
|
398
|
+
if (!uploadConfig) return;
|
|
396
399
|
const controller = new AbortController();
|
|
397
400
|
abortControllers.current.set(attachment.id, controller);
|
|
398
401
|
try {
|
|
@@ -523,29 +526,101 @@ function useAttachmentUpload(uploadConfig) {
|
|
|
523
526
|
|
|
524
527
|
// src/hooks/useBridge.ts
|
|
525
528
|
import { useState as useState6, useCallback as useCallback4, useEffect as useEffect6, useRef as useRef5 } from "react";
|
|
529
|
+
function getBridge() {
|
|
530
|
+
return typeof window !== "undefined" ? window.__chatBridge : null;
|
|
531
|
+
}
|
|
532
|
+
function hasNativeBridge() {
|
|
533
|
+
if (typeof window === "undefined") return false;
|
|
534
|
+
return !!getBridge() || !!window.webkit?.messageHandlers?.chatBridge || !!window.ReactNativeWebView || !!window.AndroidBridge;
|
|
535
|
+
}
|
|
536
|
+
function bridgeSend(msg) {
|
|
537
|
+
const bridge = getBridge();
|
|
538
|
+
if (bridge?.send) {
|
|
539
|
+
bridge.send(msg);
|
|
540
|
+
} else if (typeof window !== "undefined") {
|
|
541
|
+
window.parent.postMessage(msg, "*");
|
|
542
|
+
}
|
|
543
|
+
}
|
|
526
544
|
function useBridge() {
|
|
527
545
|
const notificationCbRef = useRef5(null);
|
|
528
546
|
const [config, setConfig] = useState6(null);
|
|
547
|
+
const [pushState, setPushState] = useState6(null);
|
|
529
548
|
const isInIframe = typeof window !== "undefined" && window !== window.parent;
|
|
549
|
+
const isInWebView = !isInIframe && hasNativeBridge();
|
|
530
550
|
const notifyMessage = useCallback4(
|
|
531
551
|
(text) => {
|
|
532
|
-
if (!isInIframe) return;
|
|
533
|
-
|
|
552
|
+
if (!isInIframe && !isInWebView) return;
|
|
553
|
+
if (isInWebView) {
|
|
554
|
+
bridgeSend({ type: "chat-message", text });
|
|
555
|
+
} else {
|
|
556
|
+
window.parent.postMessage({ type: "chat-message", text }, "*");
|
|
557
|
+
}
|
|
534
558
|
},
|
|
535
|
-
[isInIframe]
|
|
559
|
+
[isInIframe, isInWebView]
|
|
536
560
|
);
|
|
537
561
|
const notifyViewportConfig = useCallback4(
|
|
538
562
|
(viewportContent) => {
|
|
539
|
-
if (!isInIframe) return;
|
|
540
|
-
|
|
563
|
+
if (!isInIframe && !isInWebView) return;
|
|
564
|
+
if (isInWebView) {
|
|
565
|
+
bridgeSend({ type: "chat-viewport-config", content: viewportContent });
|
|
566
|
+
} else {
|
|
567
|
+
window.parent.postMessage({ type: "chat-viewport-config", content: viewportContent }, "*");
|
|
568
|
+
}
|
|
541
569
|
},
|
|
542
|
-
[isInIframe]
|
|
570
|
+
[isInIframe, isInWebView]
|
|
543
571
|
);
|
|
544
572
|
const onNotificationClicked = useCallback4((cb) => {
|
|
545
573
|
notificationCbRef.current = cb;
|
|
546
574
|
}, []);
|
|
575
|
+
const requestPushSubscribe = useCallback4(() => {
|
|
576
|
+
if (!isInIframe && !isInWebView) return;
|
|
577
|
+
if (isInWebView) {
|
|
578
|
+
bridgeSend({ type: "chat-push-subscribe" });
|
|
579
|
+
} else {
|
|
580
|
+
window.parent.postMessage({ type: "chat-push-subscribe" }, "*");
|
|
581
|
+
}
|
|
582
|
+
}, [isInIframe, isInWebView]);
|
|
583
|
+
const requestPushUnsubscribe = useCallback4(() => {
|
|
584
|
+
if (!isInIframe && !isInWebView) return;
|
|
585
|
+
if (isInWebView) {
|
|
586
|
+
bridgeSend({ type: "chat-push-unsubscribe" });
|
|
587
|
+
} else {
|
|
588
|
+
window.parent.postMessage({ type: "chat-push-unsubscribe" }, "*");
|
|
589
|
+
}
|
|
590
|
+
}, [isInIframe, isInWebView]);
|
|
591
|
+
const bridgeInScope = typeof window !== "undefined" ? getBridge() : null;
|
|
592
|
+
useEffect6(() => {
|
|
593
|
+
if (bridgeInScope?._pushState) {
|
|
594
|
+
setPushState(bridgeInScope._pushState);
|
|
595
|
+
}
|
|
596
|
+
}, [bridgeInScope?._pushState]);
|
|
597
|
+
useEffect6(() => {
|
|
598
|
+
if (!isInIframe && !isInWebView) return;
|
|
599
|
+
if (!getBridge()?._ready) {
|
|
600
|
+
const bridge = getBridge();
|
|
601
|
+
if (bridge) {
|
|
602
|
+
bridge._ready = true;
|
|
603
|
+
bridgeSend({ type: "chat-ready" });
|
|
604
|
+
} else {
|
|
605
|
+
if (!window.__chatBridge) {
|
|
606
|
+
window.__chatBridge = {};
|
|
607
|
+
}
|
|
608
|
+
window.__chatBridge._ready = true;
|
|
609
|
+
if (!window.__chatBridge.send) {
|
|
610
|
+
window.__chatBridge.send = function(msg) {
|
|
611
|
+
if (window.ReactNativeWebView?.postMessage) {
|
|
612
|
+
window.ReactNativeWebView.postMessage(JSON.stringify(msg));
|
|
613
|
+
} else {
|
|
614
|
+
window.parent.postMessage(msg, "*");
|
|
615
|
+
}
|
|
616
|
+
};
|
|
617
|
+
}
|
|
618
|
+
window.__chatBridge.send({ type: "chat-ready" });
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
}, [isInIframe, isInWebView]);
|
|
547
622
|
useEffect6(() => {
|
|
548
|
-
if (!isInIframe) return;
|
|
623
|
+
if (!isInIframe && !isInWebView) return;
|
|
549
624
|
function handleMessage(event) {
|
|
550
625
|
const data = event.data;
|
|
551
626
|
if (!data || typeof data !== "object" || !data.type) return;
|
|
@@ -557,11 +632,43 @@ function useBridge() {
|
|
|
557
632
|
if (data.type === "chat-notification-clicked") {
|
|
558
633
|
notificationCbRef.current?.();
|
|
559
634
|
}
|
|
635
|
+
if (data.type === "chat-push-state" && typeof data.status === "string") {
|
|
636
|
+
setPushState(data.status);
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
function handleCustomEvent(event) {
|
|
640
|
+
const detail = event.detail;
|
|
641
|
+
if (!detail || typeof detail !== "object") return;
|
|
642
|
+
if (detail.type === "chat-config") {
|
|
643
|
+
const configData = { ...detail };
|
|
644
|
+
delete configData.type;
|
|
645
|
+
setConfig(configData);
|
|
646
|
+
}
|
|
647
|
+
if (detail.type === "chat-notification-clicked") {
|
|
648
|
+
notificationCbRef.current?.();
|
|
649
|
+
}
|
|
650
|
+
if (detail.type === "chat-push-state" && typeof detail.status === "string") {
|
|
651
|
+
setPushState(detail.status);
|
|
652
|
+
}
|
|
560
653
|
}
|
|
561
654
|
window.addEventListener("message", handleMessage);
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
655
|
+
window.addEventListener("chat-bridge", handleCustomEvent);
|
|
656
|
+
return () => {
|
|
657
|
+
window.removeEventListener("message", handleMessage);
|
|
658
|
+
window.removeEventListener("chat-bridge", handleCustomEvent);
|
|
659
|
+
};
|
|
660
|
+
}, [isInIframe, isInWebView]);
|
|
661
|
+
return {
|
|
662
|
+
config,
|
|
663
|
+
isInIframe,
|
|
664
|
+
isInWebView,
|
|
665
|
+
notifyMessage,
|
|
666
|
+
notifyViewportConfig,
|
|
667
|
+
onNotificationClicked,
|
|
668
|
+
pushState,
|
|
669
|
+
requestPushSubscribe,
|
|
670
|
+
requestPushUnsubscribe
|
|
671
|
+
};
|
|
565
672
|
}
|
|
566
673
|
|
|
567
674
|
// src/i18n/LocaleProvider.tsx
|
|
@@ -581,6 +688,7 @@ function getFallbackChain(locale) {
|
|
|
581
688
|
|
|
582
689
|
// src/i18n/locales/en.json
|
|
583
690
|
var en_default = {
|
|
691
|
+
direction: "ltr",
|
|
584
692
|
chatWidget: {
|
|
585
693
|
title: "Chat",
|
|
586
694
|
placeholder: "Type a message...",
|
|
@@ -622,6 +730,20 @@ var en_default = {
|
|
|
622
730
|
openChat: "Open chat",
|
|
623
731
|
closeChat: "Close chat"
|
|
624
732
|
},
|
|
733
|
+
push: {
|
|
734
|
+
title: "Notifications",
|
|
735
|
+
description: "Receive messages even when chat is closed",
|
|
736
|
+
enable: "Enable Notifications",
|
|
737
|
+
disable: "Disable Notifications",
|
|
738
|
+
denied: "Notifications blocked",
|
|
739
|
+
unsupported: "Notifications not supported",
|
|
740
|
+
subscribing: "Subscribing...",
|
|
741
|
+
notifications: "Notifications"
|
|
742
|
+
},
|
|
743
|
+
notification: {
|
|
744
|
+
openChat: "Open Chat",
|
|
745
|
+
dismiss: "Dismiss"
|
|
746
|
+
},
|
|
625
747
|
common: {
|
|
626
748
|
loading: "Loading...",
|
|
627
749
|
error: "Error",
|
|
@@ -633,6 +755,7 @@ var en_default = {
|
|
|
633
755
|
|
|
634
756
|
// src/i18n/locales/en-US.json
|
|
635
757
|
var en_US_default = {
|
|
758
|
+
direction: "ltr",
|
|
636
759
|
chatWidget: {
|
|
637
760
|
title: "Chat"
|
|
638
761
|
}
|
|
@@ -640,6 +763,7 @@ var en_US_default = {
|
|
|
640
763
|
|
|
641
764
|
// src/i18n/locales/en-GB.json
|
|
642
765
|
var en_GB_default = {
|
|
766
|
+
direction: "ltr",
|
|
643
767
|
chatWidget: {
|
|
644
768
|
title: "Chat"
|
|
645
769
|
},
|
|
@@ -650,6 +774,7 @@ var en_GB_default = {
|
|
|
650
774
|
|
|
651
775
|
// src/i18n/locales/pt.json
|
|
652
776
|
var pt_default = {
|
|
777
|
+
direction: "ltr",
|
|
653
778
|
chatWidget: {
|
|
654
779
|
title: "Chat",
|
|
655
780
|
placeholder: "Digite uma mensagem...",
|
|
@@ -682,12 +807,29 @@ var pt_default = {
|
|
|
682
807
|
header: {
|
|
683
808
|
enterFullscreen: "Tela cheia",
|
|
684
809
|
exitFullscreen: "Sair da tela cheia",
|
|
685
|
-
closeChat: "Fechar chat"
|
|
810
|
+
closeChat: "Fechar chat",
|
|
811
|
+
lightMode: "Modo claro",
|
|
812
|
+
darkMode: "Modo escuro",
|
|
813
|
+
autoMode: "Tema do sistema"
|
|
686
814
|
},
|
|
687
815
|
floatingButton: {
|
|
688
816
|
openChat: "Abrir chat",
|
|
689
817
|
closeChat: "Fechar chat"
|
|
690
818
|
},
|
|
819
|
+
push: {
|
|
820
|
+
title: "Notifica\xE7\xF5es",
|
|
821
|
+
description: "Receba mensagens mesmo com o chat fechado",
|
|
822
|
+
enable: "Habilitar notifica\xE7\xF5es",
|
|
823
|
+
disable: "Desabilitar notifica\xE7\xF5es",
|
|
824
|
+
denied: "Notifica\xE7\xF5es bloqueadas",
|
|
825
|
+
unsupported: "Notifica\xE7\xF5es n\xE3o suportadas",
|
|
826
|
+
subscribing: "Inscrevendo...",
|
|
827
|
+
notifications: "Notifica\xE7\xF5es"
|
|
828
|
+
},
|
|
829
|
+
notification: {
|
|
830
|
+
openChat: "Abrir chat",
|
|
831
|
+
dismiss: "Dispensar"
|
|
832
|
+
},
|
|
691
833
|
common: {
|
|
692
834
|
loading: "Carregando...",
|
|
693
835
|
error: "Erro",
|
|
@@ -699,6 +841,7 @@ var pt_default = {
|
|
|
699
841
|
|
|
700
842
|
// src/i18n/locales/pt-BR.json
|
|
701
843
|
var pt_BR_default = {
|
|
844
|
+
direction: "ltr",
|
|
702
845
|
chatWidget: {
|
|
703
846
|
placeholder: "Digite uma mensagem..."
|
|
704
847
|
},
|
|
@@ -724,6 +867,7 @@ var pt_BR_default = {
|
|
|
724
867
|
|
|
725
868
|
// src/i18n/locales/pt-PT.json
|
|
726
869
|
var pt_PT_default = {
|
|
870
|
+
direction: "ltr",
|
|
727
871
|
chatWidget: {
|
|
728
872
|
placeholder: "Escreva uma mensagem..."
|
|
729
873
|
},
|
|
@@ -742,57 +886,1817 @@ var pt_PT_default = {
|
|
|
742
886
|
uploadFailed: "Falha no envio"
|
|
743
887
|
},
|
|
744
888
|
common: {
|
|
745
|
-
loading: "A carregar...",
|
|
746
|
-
retry: "Tentar novamente"
|
|
889
|
+
loading: "A carregar...",
|
|
890
|
+
retry: "Tentar novamente"
|
|
891
|
+
}
|
|
892
|
+
};
|
|
893
|
+
|
|
894
|
+
// src/i18n/locales/es.json
|
|
895
|
+
var es_default = {
|
|
896
|
+
direction: "ltr",
|
|
897
|
+
chatWidget: {
|
|
898
|
+
title: "Chat",
|
|
899
|
+
placeholder: "Escribe un mensaje...",
|
|
900
|
+
openChat: "Abrir chat",
|
|
901
|
+
closeChat: "Cerrar chat",
|
|
902
|
+
connectionStatus: {
|
|
903
|
+
connected: "Conectado",
|
|
904
|
+
disconnected: "Desconectado"
|
|
905
|
+
}
|
|
906
|
+
},
|
|
907
|
+
inputArea: {
|
|
908
|
+
send: "Enviar",
|
|
909
|
+
uploading: "Subiendo...",
|
|
910
|
+
dropzone: {
|
|
911
|
+
dropFiles: "Suelta archivos aqu\xED",
|
|
912
|
+
dropOrClick: "Suelta o haz clic para adjuntar"
|
|
913
|
+
}
|
|
914
|
+
},
|
|
915
|
+
typingIndicator: {
|
|
916
|
+
typing: "escribiendo",
|
|
917
|
+
isTyping: "est\xE1 escribiendo..."
|
|
918
|
+
},
|
|
919
|
+
messageList: {
|
|
920
|
+
emptyState: "No hay mensajes todav\xEDa. \xA1Inicia la conversaci\xF3n!"
|
|
921
|
+
},
|
|
922
|
+
attachmentList: {
|
|
923
|
+
remove: "Eliminar",
|
|
924
|
+
uploadFailed: "Error al subir"
|
|
925
|
+
},
|
|
926
|
+
header: {
|
|
927
|
+
enterFullscreen: "Pantalla completa",
|
|
928
|
+
exitFullscreen: "Salir de pantalla completa",
|
|
929
|
+
closeChat: "Cerrar chat",
|
|
930
|
+
lightMode: "Modo claro",
|
|
931
|
+
darkMode: "Modo oscuro",
|
|
932
|
+
autoMode: "Tema del sistema"
|
|
933
|
+
},
|
|
934
|
+
floatingButton: {
|
|
935
|
+
openChat: "Abrir chat",
|
|
936
|
+
closeChat: "Cerrar chat"
|
|
937
|
+
},
|
|
938
|
+
push: {
|
|
939
|
+
title: "Notificaciones",
|
|
940
|
+
description: "Recibe mensajes incluso con el chat cerrado",
|
|
941
|
+
enable: "Habilitar notificaciones",
|
|
942
|
+
disable: "Deshabilitar notificaciones",
|
|
943
|
+
denied: "Notificaciones bloqueadas",
|
|
944
|
+
unsupported: "Notificaciones no compatibles",
|
|
945
|
+
subscribing: "Suscribiendo...",
|
|
946
|
+
notifications: "Notificaciones"
|
|
947
|
+
},
|
|
948
|
+
notification: {
|
|
949
|
+
openChat: "Abrir chat",
|
|
950
|
+
dismiss: "Descartar"
|
|
951
|
+
},
|
|
952
|
+
common: {
|
|
953
|
+
loading: "Cargando...",
|
|
954
|
+
error: "Error",
|
|
955
|
+
retry: "Reintentar",
|
|
956
|
+
cancel: "Cancelar",
|
|
957
|
+
download: "Descargar"
|
|
958
|
+
}
|
|
959
|
+
};
|
|
960
|
+
|
|
961
|
+
// src/i18n/locales/da.json
|
|
962
|
+
var da_default = {
|
|
963
|
+
direction: "ltr",
|
|
964
|
+
chatWidget: {
|
|
965
|
+
title: "Chat",
|
|
966
|
+
placeholder: "Skriv en besked...",
|
|
967
|
+
openChat: "\xC5bn chat",
|
|
968
|
+
closeChat: "Luk chat",
|
|
969
|
+
connectionStatus: {
|
|
970
|
+
connected: "Forbundet",
|
|
971
|
+
disconnected: "Afbrudt"
|
|
972
|
+
}
|
|
973
|
+
},
|
|
974
|
+
inputArea: {
|
|
975
|
+
send: "Send",
|
|
976
|
+
uploading: "Uploader...",
|
|
977
|
+
dropzone: {
|
|
978
|
+
dropFiles: "Slip filer her",
|
|
979
|
+
dropOrClick: "Slip eller klik for at vedh\xE6fte"
|
|
980
|
+
}
|
|
981
|
+
},
|
|
982
|
+
typingIndicator: {
|
|
983
|
+
typing: "skriver",
|
|
984
|
+
isTyping: "skriver..."
|
|
985
|
+
},
|
|
986
|
+
messageList: {
|
|
987
|
+
emptyState: "Ingen beskeder endnu. Start samtalen!"
|
|
988
|
+
},
|
|
989
|
+
attachmentList: {
|
|
990
|
+
remove: "Fjern",
|
|
991
|
+
uploadFailed: "Upload fejlede"
|
|
992
|
+
},
|
|
993
|
+
header: {
|
|
994
|
+
enterFullscreen: "Fuld sk\xE6rm",
|
|
995
|
+
exitFullscreen: "Afslut fuld sk\xE6rm",
|
|
996
|
+
closeChat: "Luk chat",
|
|
997
|
+
lightMode: "Lys tilstand",
|
|
998
|
+
darkMode: "M\xF8rk tilstand",
|
|
999
|
+
autoMode: "Systemtema"
|
|
1000
|
+
},
|
|
1001
|
+
floatingButton: {
|
|
1002
|
+
openChat: "\xC5bn chat",
|
|
1003
|
+
closeChat: "Luk chat"
|
|
1004
|
+
},
|
|
1005
|
+
push: {
|
|
1006
|
+
title: "Notifikationer",
|
|
1007
|
+
description: "Modtag beskeder, selv n\xE5r chatten er lukket",
|
|
1008
|
+
enable: "Aktiver notifikationer",
|
|
1009
|
+
disable: "Deaktiver notifikationer",
|
|
1010
|
+
denied: "Notifikationer blokeret",
|
|
1011
|
+
unsupported: "Notifikationer underst\xF8ttes ikke",
|
|
1012
|
+
subscribing: "Abonnerer...",
|
|
1013
|
+
notifications: "Notifikationer"
|
|
1014
|
+
},
|
|
1015
|
+
notification: {
|
|
1016
|
+
openChat: "\xC5bn Chat",
|
|
1017
|
+
dismiss: "Afvis"
|
|
1018
|
+
},
|
|
1019
|
+
common: {
|
|
1020
|
+
loading: "Indl\xE6ser...",
|
|
1021
|
+
error: "Fejl",
|
|
1022
|
+
retry: "Pr\xF8v igen",
|
|
1023
|
+
cancel: "Annuller",
|
|
1024
|
+
download: "Download"
|
|
1025
|
+
}
|
|
1026
|
+
};
|
|
1027
|
+
|
|
1028
|
+
// src/i18n/locales/sv.json
|
|
1029
|
+
var sv_default = {
|
|
1030
|
+
direction: "ltr",
|
|
1031
|
+
chatWidget: {
|
|
1032
|
+
title: "Chatt",
|
|
1033
|
+
placeholder: "Skriv ett meddelande...",
|
|
1034
|
+
openChat: "\xD6ppna chatt",
|
|
1035
|
+
closeChat: "St\xE4ng chatt",
|
|
1036
|
+
connectionStatus: {
|
|
1037
|
+
connected: "Ansluten",
|
|
1038
|
+
disconnected: "Fr\xE5nkopplad"
|
|
1039
|
+
}
|
|
1040
|
+
},
|
|
1041
|
+
inputArea: {
|
|
1042
|
+
send: "Skicka",
|
|
1043
|
+
uploading: "Laddar upp...",
|
|
1044
|
+
dropzone: {
|
|
1045
|
+
dropFiles: "Sl\xE4pp filer h\xE4r",
|
|
1046
|
+
dropOrClick: "Sl\xE4pp eller klicka f\xF6r att bifoga"
|
|
1047
|
+
}
|
|
1048
|
+
},
|
|
1049
|
+
typingIndicator: {
|
|
1050
|
+
typing: "skriver",
|
|
1051
|
+
isTyping: "skriver..."
|
|
1052
|
+
},
|
|
1053
|
+
messageList: {
|
|
1054
|
+
emptyState: "Inga meddelanden \xE4n. Starta konversationen!"
|
|
1055
|
+
},
|
|
1056
|
+
attachmentList: {
|
|
1057
|
+
remove: "Ta bort",
|
|
1058
|
+
uploadFailed: "Uppladdning misslyckades"
|
|
1059
|
+
},
|
|
1060
|
+
header: {
|
|
1061
|
+
enterFullscreen: "Fullsk\xE4rm",
|
|
1062
|
+
exitFullscreen: "Avsluta fullsk\xE4rm",
|
|
1063
|
+
closeChat: "St\xE4ng chatt",
|
|
1064
|
+
lightMode: "Ljust l\xE4ge",
|
|
1065
|
+
darkMode: "M\xF6rkt l\xE4ge",
|
|
1066
|
+
autoMode: "Systemtema"
|
|
1067
|
+
},
|
|
1068
|
+
floatingButton: {
|
|
1069
|
+
openChat: "\xD6ppna chatt",
|
|
1070
|
+
closeChat: "St\xE4ng chatt"
|
|
1071
|
+
},
|
|
1072
|
+
push: {
|
|
1073
|
+
title: "Notifikationer",
|
|
1074
|
+
description: "Ta emot meddelanden \xE4ven n\xE4r chatten \xE4r st\xE4ngd",
|
|
1075
|
+
enable: "Aktivera notifikationer",
|
|
1076
|
+
disable: "Inaktivera notifikationer",
|
|
1077
|
+
denied: "Notifikationer blockerade",
|
|
1078
|
+
unsupported: "Notifikationer st\xF6ds inte",
|
|
1079
|
+
subscribing: "Prenumererar...",
|
|
1080
|
+
notifications: "Notifikationer"
|
|
1081
|
+
},
|
|
1082
|
+
notification: {
|
|
1083
|
+
openChat: "\xD6ppna Chatt",
|
|
1084
|
+
dismiss: "Avf\xE4rda"
|
|
1085
|
+
},
|
|
1086
|
+
common: {
|
|
1087
|
+
loading: "Laddar...",
|
|
1088
|
+
error: "Fel",
|
|
1089
|
+
retry: "F\xF6rs\xF6k igen",
|
|
1090
|
+
cancel: "Avbryt",
|
|
1091
|
+
download: "Ladda ner"
|
|
1092
|
+
}
|
|
1093
|
+
};
|
|
1094
|
+
|
|
1095
|
+
// src/i18n/locales/nb.json
|
|
1096
|
+
var nb_default = {
|
|
1097
|
+
direction: "ltr",
|
|
1098
|
+
chatWidget: {
|
|
1099
|
+
title: "Chat",
|
|
1100
|
+
placeholder: "Skriv en melding...",
|
|
1101
|
+
openChat: "\xC5pne chat",
|
|
1102
|
+
closeChat: "Lukk chat",
|
|
1103
|
+
connectionStatus: {
|
|
1104
|
+
connected: "Tilkoblet",
|
|
1105
|
+
disconnected: "Frakoblet"
|
|
1106
|
+
}
|
|
1107
|
+
},
|
|
1108
|
+
inputArea: {
|
|
1109
|
+
send: "Send",
|
|
1110
|
+
uploading: "Laster opp...",
|
|
1111
|
+
dropzone: {
|
|
1112
|
+
dropFiles: "Slipp filer her",
|
|
1113
|
+
dropOrClick: "Slipp eller klikk for \xE5 legge ved"
|
|
1114
|
+
}
|
|
1115
|
+
},
|
|
1116
|
+
typingIndicator: {
|
|
1117
|
+
typing: "skriver",
|
|
1118
|
+
isTyping: "skriver..."
|
|
1119
|
+
},
|
|
1120
|
+
messageList: {
|
|
1121
|
+
emptyState: "Ingen meldinger enn\xE5. Start samtalen!"
|
|
1122
|
+
},
|
|
1123
|
+
attachmentList: {
|
|
1124
|
+
remove: "Fjern",
|
|
1125
|
+
uploadFailed: "Opplasting mislyktes"
|
|
1126
|
+
},
|
|
1127
|
+
header: {
|
|
1128
|
+
enterFullscreen: "Fullskjerm",
|
|
1129
|
+
exitFullscreen: "Avslutt fullskjerm",
|
|
1130
|
+
closeChat: "Lukk chat",
|
|
1131
|
+
lightMode: "Lys modus",
|
|
1132
|
+
darkMode: "M\xF8rk modus",
|
|
1133
|
+
autoMode: "Systemtema"
|
|
1134
|
+
},
|
|
1135
|
+
floatingButton: {
|
|
1136
|
+
openChat: "\xC5pne chat",
|
|
1137
|
+
closeChat: "Lukk chat"
|
|
1138
|
+
},
|
|
1139
|
+
push: {
|
|
1140
|
+
title: "Varsler",
|
|
1141
|
+
description: "Motta meldinger selv n\xE5r chatten er lukket",
|
|
1142
|
+
enable: "Aktiver varsler",
|
|
1143
|
+
disable: "Deaktiver varsler",
|
|
1144
|
+
denied: "Varsler blokkert",
|
|
1145
|
+
unsupported: "Varsler st\xF8ttes ikke",
|
|
1146
|
+
subscribing: "Abonnerer...",
|
|
1147
|
+
notifications: "Varsler"
|
|
1148
|
+
},
|
|
1149
|
+
notification: {
|
|
1150
|
+
openChat: "\xC5pne Chat",
|
|
1151
|
+
dismiss: "Avvis"
|
|
1152
|
+
},
|
|
1153
|
+
common: {
|
|
1154
|
+
loading: "Laster...",
|
|
1155
|
+
error: "Feil",
|
|
1156
|
+
retry: "Pr\xF8v igjen",
|
|
1157
|
+
cancel: "Avbryt",
|
|
1158
|
+
download: "Last ned"
|
|
1159
|
+
}
|
|
1160
|
+
};
|
|
1161
|
+
|
|
1162
|
+
// src/i18n/locales/fi.json
|
|
1163
|
+
var fi_default = {
|
|
1164
|
+
direction: "ltr",
|
|
1165
|
+
chatWidget: {
|
|
1166
|
+
title: "Chat",
|
|
1167
|
+
placeholder: "Kirjoita viesti...",
|
|
1168
|
+
openChat: "Avaa chat",
|
|
1169
|
+
closeChat: "Sulje chat",
|
|
1170
|
+
connectionStatus: {
|
|
1171
|
+
connected: "Yhdistetty",
|
|
1172
|
+
disconnected: "Katkaistu"
|
|
1173
|
+
}
|
|
1174
|
+
},
|
|
1175
|
+
inputArea: {
|
|
1176
|
+
send: "L\xE4het\xE4",
|
|
1177
|
+
uploading: "Ladataan...",
|
|
1178
|
+
dropzone: {
|
|
1179
|
+
dropFiles: "Pudota tiedostot t\xE4h\xE4n",
|
|
1180
|
+
dropOrClick: "Pudota tai klikkaa liitt\xE4\xE4ksesi"
|
|
1181
|
+
}
|
|
1182
|
+
},
|
|
1183
|
+
typingIndicator: {
|
|
1184
|
+
typing: "kirjoittaa",
|
|
1185
|
+
isTyping: "kirjoittaa..."
|
|
1186
|
+
},
|
|
1187
|
+
messageList: {
|
|
1188
|
+
emptyState: "Ei viestej\xE4 viel\xE4. Aloita keskustelu!"
|
|
1189
|
+
},
|
|
1190
|
+
attachmentList: {
|
|
1191
|
+
remove: "Poista",
|
|
1192
|
+
uploadFailed: "Lataus ep\xE4onnistui"
|
|
1193
|
+
},
|
|
1194
|
+
header: {
|
|
1195
|
+
enterFullscreen: "Koko n\xE4ytt\xF6",
|
|
1196
|
+
exitFullscreen: "Poistu koko n\xE4yt\xF6st\xE4",
|
|
1197
|
+
closeChat: "Sulje chat",
|
|
1198
|
+
lightMode: "Vaalea tila",
|
|
1199
|
+
darkMode: "Tumma tila",
|
|
1200
|
+
autoMode: "J\xE4rjestelm\xE4n teema"
|
|
1201
|
+
},
|
|
1202
|
+
floatingButton: {
|
|
1203
|
+
openChat: "Avaa chat",
|
|
1204
|
+
closeChat: "Sulje chat"
|
|
1205
|
+
},
|
|
1206
|
+
push: {
|
|
1207
|
+
title: "Ilmoitukset",
|
|
1208
|
+
description: "Vastaanota viestej\xE4, vaikka chat olisi suljettu",
|
|
1209
|
+
enable: "Ota ilmoitukset k\xE4ytt\xF6\xF6n",
|
|
1210
|
+
disable: "Poista ilmoitukset k\xE4yt\xF6st\xE4",
|
|
1211
|
+
denied: "Ilmoitukset estetty",
|
|
1212
|
+
unsupported: "Ilmoituksia ei tueta",
|
|
1213
|
+
subscribing: "Tilataan...",
|
|
1214
|
+
notifications: "Ilmoitukset"
|
|
1215
|
+
},
|
|
1216
|
+
notification: {
|
|
1217
|
+
openChat: "Avaa Chat",
|
|
1218
|
+
dismiss: "Hylk\xE4\xE4"
|
|
1219
|
+
},
|
|
1220
|
+
common: {
|
|
1221
|
+
loading: "Ladataan...",
|
|
1222
|
+
error: "Virhe",
|
|
1223
|
+
retry: "Yrit\xE4 uudelleen",
|
|
1224
|
+
cancel: "Peruuta",
|
|
1225
|
+
download: "Lataa"
|
|
1226
|
+
}
|
|
1227
|
+
};
|
|
1228
|
+
|
|
1229
|
+
// src/i18n/locales/fr.json
|
|
1230
|
+
var fr_default = {
|
|
1231
|
+
direction: "ltr",
|
|
1232
|
+
chatWidget: {
|
|
1233
|
+
title: "Chat",
|
|
1234
|
+
placeholder: "\xC9crivez un message...",
|
|
1235
|
+
openChat: "Ouvrir le chat",
|
|
1236
|
+
closeChat: "Fermer le chat",
|
|
1237
|
+
connectionStatus: {
|
|
1238
|
+
connected: "Connect\xE9",
|
|
1239
|
+
disconnected: "D\xE9connect\xE9"
|
|
1240
|
+
}
|
|
1241
|
+
},
|
|
1242
|
+
inputArea: {
|
|
1243
|
+
send: "Envoyer",
|
|
1244
|
+
uploading: "T\xE9l\xE9chargement...",
|
|
1245
|
+
dropzone: {
|
|
1246
|
+
dropFiles: "D\xE9posez les fichiers ici",
|
|
1247
|
+
dropOrClick: "D\xE9posez ou cliquez pour joindre"
|
|
1248
|
+
}
|
|
1249
|
+
},
|
|
1250
|
+
typingIndicator: {
|
|
1251
|
+
typing: "tape",
|
|
1252
|
+
isTyping: "tape..."
|
|
1253
|
+
},
|
|
1254
|
+
messageList: {
|
|
1255
|
+
emptyState: "Aucun message pour l'instant. Lancez la conversation !"
|
|
1256
|
+
},
|
|
1257
|
+
attachmentList: {
|
|
1258
|
+
remove: "Supprimer",
|
|
1259
|
+
uploadFailed: "\xC9chec du t\xE9l\xE9chargement"
|
|
1260
|
+
},
|
|
1261
|
+
header: {
|
|
1262
|
+
enterFullscreen: "Plein \xE9cran",
|
|
1263
|
+
exitFullscreen: "Quitter le plein \xE9cran",
|
|
1264
|
+
closeChat: "Fermer le chat",
|
|
1265
|
+
lightMode: "Mode clair",
|
|
1266
|
+
darkMode: "Mode sombre",
|
|
1267
|
+
autoMode: "Th\xE8me syst\xE8me"
|
|
1268
|
+
},
|
|
1269
|
+
floatingButton: {
|
|
1270
|
+
openChat: "Ouvrir le chat",
|
|
1271
|
+
closeChat: "Fermer le chat"
|
|
1272
|
+
},
|
|
1273
|
+
push: {
|
|
1274
|
+
title: "Notifications",
|
|
1275
|
+
description: "Recevez des messages m\xEAme lorsque le chat est ferm\xE9",
|
|
1276
|
+
enable: "Activer les notifications",
|
|
1277
|
+
disable: "D\xE9sactiver les notifications",
|
|
1278
|
+
denied: "Notifications bloqu\xE9es",
|
|
1279
|
+
unsupported: "Notifications non prises en charge",
|
|
1280
|
+
subscribing: "Abonnement...",
|
|
1281
|
+
notifications: "Notifications"
|
|
1282
|
+
},
|
|
1283
|
+
notification: {
|
|
1284
|
+
openChat: "Ouvrir le Chat",
|
|
1285
|
+
dismiss: "Ignorer"
|
|
1286
|
+
},
|
|
1287
|
+
common: {
|
|
1288
|
+
loading: "Chargement...",
|
|
1289
|
+
error: "Erreur",
|
|
1290
|
+
retry: "R\xE9essayer",
|
|
1291
|
+
cancel: "Annuler",
|
|
1292
|
+
download: "T\xE9l\xE9charger"
|
|
1293
|
+
}
|
|
1294
|
+
};
|
|
1295
|
+
|
|
1296
|
+
// src/i18n/locales/de.json
|
|
1297
|
+
var de_default = {
|
|
1298
|
+
direction: "ltr",
|
|
1299
|
+
chatWidget: {
|
|
1300
|
+
title: "Chat",
|
|
1301
|
+
placeholder: "Nachricht schreiben...",
|
|
1302
|
+
openChat: "Chat \xF6ffnen",
|
|
1303
|
+
closeChat: "Chat schlie\xDFen",
|
|
1304
|
+
connectionStatus: {
|
|
1305
|
+
connected: "Verbunden",
|
|
1306
|
+
disconnected: "Getrennt"
|
|
1307
|
+
}
|
|
1308
|
+
},
|
|
1309
|
+
inputArea: {
|
|
1310
|
+
send: "Senden",
|
|
1311
|
+
uploading: "Hochladen...",
|
|
1312
|
+
dropzone: {
|
|
1313
|
+
dropFiles: "Dateien hier ablegen",
|
|
1314
|
+
dropOrClick: "Ablegen oder klicken zum Anh\xE4ngen"
|
|
1315
|
+
}
|
|
1316
|
+
},
|
|
1317
|
+
typingIndicator: {
|
|
1318
|
+
typing: "schreibt",
|
|
1319
|
+
isTyping: "schreibt..."
|
|
1320
|
+
},
|
|
1321
|
+
messageList: {
|
|
1322
|
+
emptyState: "Noch keine Nachrichten. Starten Sie die Unterhaltung!"
|
|
1323
|
+
},
|
|
1324
|
+
attachmentList: {
|
|
1325
|
+
remove: "Entfernen",
|
|
1326
|
+
uploadFailed: "Hochladen fehlgeschlagen"
|
|
1327
|
+
},
|
|
1328
|
+
header: {
|
|
1329
|
+
enterFullscreen: "Vollbild",
|
|
1330
|
+
exitFullscreen: "Vollbild beenden",
|
|
1331
|
+
closeChat: "Chat schlie\xDFen",
|
|
1332
|
+
lightMode: "Heller Modus",
|
|
1333
|
+
darkMode: "Dunkler Modus",
|
|
1334
|
+
autoMode: "System-Design"
|
|
1335
|
+
},
|
|
1336
|
+
floatingButton: {
|
|
1337
|
+
openChat: "Chat \xF6ffnen",
|
|
1338
|
+
closeChat: "Chat schlie\xDFen"
|
|
1339
|
+
},
|
|
1340
|
+
push: {
|
|
1341
|
+
title: "Benachrichtigungen",
|
|
1342
|
+
description: "Nachrichten auch bei geschlossenem Chat erhalten",
|
|
1343
|
+
enable: "Benachrichtigungen aktivieren",
|
|
1344
|
+
disable: "Benachrichtigungen deaktivieren",
|
|
1345
|
+
denied: "Benachrichtigungen blockiert",
|
|
1346
|
+
unsupported: "Benachrichtigungen nicht unterst\xFCtzt",
|
|
1347
|
+
subscribing: "Abonnieren...",
|
|
1348
|
+
notifications: "Benachrichtigungen"
|
|
1349
|
+
},
|
|
1350
|
+
notification: {
|
|
1351
|
+
openChat: "Chat \xF6ffnen",
|
|
1352
|
+
dismiss: "Schlie\xDFen"
|
|
1353
|
+
},
|
|
1354
|
+
common: {
|
|
1355
|
+
loading: "L\xE4dt...",
|
|
1356
|
+
error: "Fehler",
|
|
1357
|
+
retry: "Erneut versuchen",
|
|
1358
|
+
cancel: "Abbrechen",
|
|
1359
|
+
download: "Herunterladen"
|
|
1360
|
+
}
|
|
1361
|
+
};
|
|
1362
|
+
|
|
1363
|
+
// src/i18n/locales/it.json
|
|
1364
|
+
var it_default = {
|
|
1365
|
+
direction: "ltr",
|
|
1366
|
+
chatWidget: {
|
|
1367
|
+
title: "Chat",
|
|
1368
|
+
placeholder: "Scrivi un messaggio...",
|
|
1369
|
+
openChat: "Apri chat",
|
|
1370
|
+
closeChat: "Chiudi chat",
|
|
1371
|
+
connectionStatus: {
|
|
1372
|
+
connected: "Connesso",
|
|
1373
|
+
disconnected: "Disconnesso"
|
|
1374
|
+
}
|
|
1375
|
+
},
|
|
1376
|
+
inputArea: {
|
|
1377
|
+
send: "Invia",
|
|
1378
|
+
uploading: "Caricamento...",
|
|
1379
|
+
dropzone: {
|
|
1380
|
+
dropFiles: "Rilascia i file qui",
|
|
1381
|
+
dropOrClick: "Rilascia o clicca per allegare"
|
|
1382
|
+
}
|
|
1383
|
+
},
|
|
1384
|
+
typingIndicator: {
|
|
1385
|
+
typing: "sta scrivendo",
|
|
1386
|
+
isTyping: "sta scrivendo..."
|
|
1387
|
+
},
|
|
1388
|
+
messageList: {
|
|
1389
|
+
emptyState: "Nessun messaggio ancora. Inizia la conversazione!"
|
|
1390
|
+
},
|
|
1391
|
+
attachmentList: {
|
|
1392
|
+
remove: "Rimuovi",
|
|
1393
|
+
uploadFailed: "Caricamento fallito"
|
|
1394
|
+
},
|
|
1395
|
+
header: {
|
|
1396
|
+
enterFullscreen: "Schermo intero",
|
|
1397
|
+
exitFullscreen: "Esci da schermo intero",
|
|
1398
|
+
closeChat: "Chiudi chat",
|
|
1399
|
+
lightMode: "Modalit\xE0 chiara",
|
|
1400
|
+
darkMode: "Modalit\xE0 scura",
|
|
1401
|
+
autoMode: "Tema sistema"
|
|
1402
|
+
},
|
|
1403
|
+
floatingButton: {
|
|
1404
|
+
openChat: "Apri chat",
|
|
1405
|
+
closeChat: "Chiudi chat"
|
|
1406
|
+
},
|
|
1407
|
+
push: {
|
|
1408
|
+
title: "Notifiche",
|
|
1409
|
+
description: "Ricevi messaggi anche quando la chat \xE8 chiusa",
|
|
1410
|
+
enable: "Attiva notifiche",
|
|
1411
|
+
disable: "Disattiva notifiche",
|
|
1412
|
+
denied: "Notifiche bloccate",
|
|
1413
|
+
unsupported: "Notifiche non supportate",
|
|
1414
|
+
subscribing: "Iscrizione...",
|
|
1415
|
+
notifications: "Notifiche"
|
|
1416
|
+
},
|
|
1417
|
+
notification: {
|
|
1418
|
+
openChat: "Apri Chat",
|
|
1419
|
+
dismiss: "Ignora"
|
|
1420
|
+
},
|
|
1421
|
+
common: {
|
|
1422
|
+
loading: "Caricamento...",
|
|
1423
|
+
error: "Errore",
|
|
1424
|
+
retry: "Riprova",
|
|
1425
|
+
cancel: "Annulla",
|
|
1426
|
+
download: "Scarica"
|
|
1427
|
+
}
|
|
1428
|
+
};
|
|
1429
|
+
|
|
1430
|
+
// src/i18n/locales/nl.json
|
|
1431
|
+
var nl_default = {
|
|
1432
|
+
direction: "ltr",
|
|
1433
|
+
chatWidget: {
|
|
1434
|
+
title: "Chat",
|
|
1435
|
+
placeholder: "Typ een bericht...",
|
|
1436
|
+
openChat: "Open chat",
|
|
1437
|
+
closeChat: "Sluit chat",
|
|
1438
|
+
connectionStatus: {
|
|
1439
|
+
connected: "Verbonden",
|
|
1440
|
+
disconnected: "Verbinding verbroken"
|
|
1441
|
+
}
|
|
1442
|
+
},
|
|
1443
|
+
inputArea: {
|
|
1444
|
+
send: "Versturen",
|
|
1445
|
+
uploading: "Uploaden...",
|
|
1446
|
+
dropzone: {
|
|
1447
|
+
dropFiles: "Zet bestanden hier neer",
|
|
1448
|
+
dropOrClick: "Sleep of klik om bij te voegen"
|
|
1449
|
+
}
|
|
1450
|
+
},
|
|
1451
|
+
typingIndicator: {
|
|
1452
|
+
typing: "typt",
|
|
1453
|
+
isTyping: "typt..."
|
|
1454
|
+
},
|
|
1455
|
+
messageList: {
|
|
1456
|
+
emptyState: "Nog geen berichten. Start het gesprek!"
|
|
1457
|
+
},
|
|
1458
|
+
attachmentList: {
|
|
1459
|
+
remove: "Verwijderen",
|
|
1460
|
+
uploadFailed: "Upload mislukt"
|
|
1461
|
+
},
|
|
1462
|
+
header: {
|
|
1463
|
+
enterFullscreen: "Volledig scherm",
|
|
1464
|
+
exitFullscreen: "Volledig scherm afsluiten",
|
|
1465
|
+
closeChat: "Sluit chat",
|
|
1466
|
+
lightMode: "Lichte modus",
|
|
1467
|
+
darkMode: "Donkere modus",
|
|
1468
|
+
autoMode: "Systeemthema"
|
|
1469
|
+
},
|
|
1470
|
+
floatingButton: {
|
|
1471
|
+
openChat: "Open chat",
|
|
1472
|
+
closeChat: "Sluit chat"
|
|
1473
|
+
},
|
|
1474
|
+
push: {
|
|
1475
|
+
title: "Meldingen",
|
|
1476
|
+
description: "Ontvang berichten zelfs wanneer de chat gesloten is",
|
|
1477
|
+
enable: "Meldingen inschakelen",
|
|
1478
|
+
disable: "Meldingen uitschakelen",
|
|
1479
|
+
denied: "Meldingen geblokkeerd",
|
|
1480
|
+
unsupported: "Meldingen niet ondersteund",
|
|
1481
|
+
subscribing: "Abonneren...",
|
|
1482
|
+
notifications: "Meldingen"
|
|
1483
|
+
},
|
|
1484
|
+
notification: {
|
|
1485
|
+
openChat: "Open Chat",
|
|
1486
|
+
dismiss: "Sluiten"
|
|
1487
|
+
},
|
|
1488
|
+
common: {
|
|
1489
|
+
loading: "Laden...",
|
|
1490
|
+
error: "Fout",
|
|
1491
|
+
retry: "Opnieuw proberen",
|
|
1492
|
+
cancel: "Annuleren",
|
|
1493
|
+
download: "Downloaden"
|
|
1494
|
+
}
|
|
1495
|
+
};
|
|
1496
|
+
|
|
1497
|
+
// src/i18n/locales/pl.json
|
|
1498
|
+
var pl_default = {
|
|
1499
|
+
direction: "ltr",
|
|
1500
|
+
chatWidget: {
|
|
1501
|
+
title: "Czat",
|
|
1502
|
+
placeholder: "Napisz wiadomo\u015B\u0107...",
|
|
1503
|
+
openChat: "Otw\xF3rz czat",
|
|
1504
|
+
closeChat: "Zamknij czat",
|
|
1505
|
+
connectionStatus: {
|
|
1506
|
+
connected: "Po\u0142\u0105czono",
|
|
1507
|
+
disconnected: "Roz\u0142\u0105czono"
|
|
1508
|
+
}
|
|
1509
|
+
},
|
|
1510
|
+
inputArea: {
|
|
1511
|
+
send: "Wy\u015Blij",
|
|
1512
|
+
uploading: "Przesy\u0142anie...",
|
|
1513
|
+
dropzone: {
|
|
1514
|
+
dropFiles: "Upu\u015B\u0107 pliki tutaj",
|
|
1515
|
+
dropOrClick: "Upu\u015B\u0107 lub kliknij, aby do\u0142\u0105czy\u0107"
|
|
1516
|
+
}
|
|
1517
|
+
},
|
|
1518
|
+
typingIndicator: {
|
|
1519
|
+
typing: "pisze",
|
|
1520
|
+
isTyping: "pisze..."
|
|
1521
|
+
},
|
|
1522
|
+
messageList: {
|
|
1523
|
+
emptyState: "Brak wiadomo\u015Bci. Rozpocznij rozmow\u0119!"
|
|
1524
|
+
},
|
|
1525
|
+
attachmentList: {
|
|
1526
|
+
remove: "Usu\u0144",
|
|
1527
|
+
uploadFailed: "Przesy\u0142anie nie powiod\u0142o si\u0119"
|
|
1528
|
+
},
|
|
1529
|
+
header: {
|
|
1530
|
+
enterFullscreen: "Pe\u0142ny ekran",
|
|
1531
|
+
exitFullscreen: "Opu\u015B\u0107 pe\u0142ny ekran",
|
|
1532
|
+
closeChat: "Zamknij czat",
|
|
1533
|
+
lightMode: "Jasny tryb",
|
|
1534
|
+
darkMode: "Ciemny tryb",
|
|
1535
|
+
autoMode: "Motyw systemu"
|
|
1536
|
+
},
|
|
1537
|
+
floatingButton: {
|
|
1538
|
+
openChat: "Otw\xF3rz czat",
|
|
1539
|
+
closeChat: "Zamknij czat"
|
|
1540
|
+
},
|
|
1541
|
+
push: {
|
|
1542
|
+
title: "Powiadomienia",
|
|
1543
|
+
description: "Otrzymuj wiadomo\u015Bci nawet przy zamkni\u0119tym czacie",
|
|
1544
|
+
enable: "W\u0142\u0105cz powiadomienia",
|
|
1545
|
+
disable: "Wy\u0142\u0105cz powiadomienia",
|
|
1546
|
+
denied: "Powiadomienia zablokowane",
|
|
1547
|
+
unsupported: "Powiadomienia nieobs\u0142ugiwane",
|
|
1548
|
+
subscribing: "Subskrybowanie...",
|
|
1549
|
+
notifications: "Powiadomienia"
|
|
1550
|
+
},
|
|
1551
|
+
notification: {
|
|
1552
|
+
openChat: "Otw\xF3rz Czat",
|
|
1553
|
+
dismiss: "Odrzu\u0107"
|
|
1554
|
+
},
|
|
1555
|
+
common: {
|
|
1556
|
+
loading: "\u0141adowanie...",
|
|
1557
|
+
error: "B\u0142\u0105d",
|
|
1558
|
+
retry: "Spr\xF3buj ponownie",
|
|
1559
|
+
cancel: "Anuluj",
|
|
1560
|
+
download: "Pobierz"
|
|
1561
|
+
}
|
|
1562
|
+
};
|
|
1563
|
+
|
|
1564
|
+
// src/i18n/locales/cs.json
|
|
1565
|
+
var cs_default = {
|
|
1566
|
+
direction: "ltr",
|
|
1567
|
+
chatWidget: {
|
|
1568
|
+
title: "Chat",
|
|
1569
|
+
placeholder: "Napi\u0161te zpr\xE1vu...",
|
|
1570
|
+
openChat: "Otev\u0159\xEDt chat",
|
|
1571
|
+
closeChat: "Zav\u0159\xEDt chat",
|
|
1572
|
+
connectionStatus: {
|
|
1573
|
+
connected: "P\u0159ipojeno",
|
|
1574
|
+
disconnected: "Odpojeno"
|
|
1575
|
+
}
|
|
1576
|
+
},
|
|
1577
|
+
inputArea: {
|
|
1578
|
+
send: "Odeslat",
|
|
1579
|
+
uploading: "Nahr\xE1v\xE1n\xED...",
|
|
1580
|
+
dropzone: {
|
|
1581
|
+
dropFiles: "P\u0159et\xE1hn\u011Bte soubory sem",
|
|
1582
|
+
dropOrClick: "P\u0159et\xE1hn\u011Bte nebo klikn\u011Bte pro p\u0159ilo\u017Een\xED"
|
|
1583
|
+
}
|
|
1584
|
+
},
|
|
1585
|
+
typingIndicator: {
|
|
1586
|
+
typing: "p\xED\u0161e",
|
|
1587
|
+
isTyping: "p\xED\u0161e..."
|
|
1588
|
+
},
|
|
1589
|
+
messageList: {
|
|
1590
|
+
emptyState: "Zat\xEDm \u017E\xE1dn\xE9 zpr\xE1vy. Zahajte konverzaci!"
|
|
1591
|
+
},
|
|
1592
|
+
attachmentList: {
|
|
1593
|
+
remove: "Odebrat",
|
|
1594
|
+
uploadFailed: "Nahr\xE1v\xE1n\xED selhalo"
|
|
1595
|
+
},
|
|
1596
|
+
header: {
|
|
1597
|
+
enterFullscreen: "Cel\xE1 obrazovka",
|
|
1598
|
+
exitFullscreen: "Opustit celou obrazovku",
|
|
1599
|
+
closeChat: "Zav\u0159\xEDt chat",
|
|
1600
|
+
lightMode: "Sv\u011Btl\xFD re\u017Eim",
|
|
1601
|
+
darkMode: "Tmav\xFD re\u017Eim",
|
|
1602
|
+
autoMode: "Syst\xE9mov\xE9 t\xE9ma"
|
|
1603
|
+
},
|
|
1604
|
+
floatingButton: {
|
|
1605
|
+
openChat: "Otev\u0159\xEDt chat",
|
|
1606
|
+
closeChat: "Zav\u0159\xEDt chat"
|
|
1607
|
+
},
|
|
1608
|
+
push: {
|
|
1609
|
+
title: "Ozn\xE1men\xED",
|
|
1610
|
+
description: "P\u0159ij\xEDmejte zpr\xE1vy i kdy\u017E je chat zav\u0159en\xFD",
|
|
1611
|
+
enable: "Povolit ozn\xE1men\xED",
|
|
1612
|
+
disable: "Zak\xE1zat ozn\xE1men\xED",
|
|
1613
|
+
denied: "Ozn\xE1men\xED blokov\xE1na",
|
|
1614
|
+
unsupported: "Ozn\xE1men\xED nejsou podporov\xE1na",
|
|
1615
|
+
subscribing: "P\u0159ihla\u0161ov\xE1n\xED...",
|
|
1616
|
+
notifications: "Ozn\xE1men\xED"
|
|
1617
|
+
},
|
|
1618
|
+
notification: {
|
|
1619
|
+
openChat: "Otev\u0159\xEDt Chat",
|
|
1620
|
+
dismiss: "Zav\u0159\xEDt"
|
|
1621
|
+
},
|
|
1622
|
+
common: {
|
|
1623
|
+
loading: "Na\u010D\xEDt\xE1n\xED...",
|
|
1624
|
+
error: "Chyba",
|
|
1625
|
+
retry: "Zkusit znovu",
|
|
1626
|
+
cancel: "Zru\u0161it",
|
|
1627
|
+
download: "St\xE1hnout"
|
|
1628
|
+
}
|
|
1629
|
+
};
|
|
1630
|
+
|
|
1631
|
+
// src/i18n/locales/ro.json
|
|
1632
|
+
var ro_default = {
|
|
1633
|
+
direction: "ltr",
|
|
1634
|
+
chatWidget: {
|
|
1635
|
+
title: "Chat",
|
|
1636
|
+
placeholder: "Scrie un mesaj...",
|
|
1637
|
+
openChat: "Deschide chat",
|
|
1638
|
+
closeChat: "\xCEnchide chat",
|
|
1639
|
+
connectionStatus: {
|
|
1640
|
+
connected: "Conectat",
|
|
1641
|
+
disconnected: "Deconectat"
|
|
1642
|
+
}
|
|
1643
|
+
},
|
|
1644
|
+
inputArea: {
|
|
1645
|
+
send: "Trimite",
|
|
1646
|
+
uploading: "Se \xEEncarc\u0103...",
|
|
1647
|
+
dropzone: {
|
|
1648
|
+
dropFiles: "Plasa\u021Bi fi\u0219ierele aici",
|
|
1649
|
+
dropOrClick: "Plasa\u021Bi sau face\u021Bi clic pentru a ata\u0219a"
|
|
1650
|
+
}
|
|
1651
|
+
},
|
|
1652
|
+
typingIndicator: {
|
|
1653
|
+
typing: "scrie",
|
|
1654
|
+
isTyping: "scrie..."
|
|
1655
|
+
},
|
|
1656
|
+
messageList: {
|
|
1657
|
+
emptyState: "\xCEnc\u0103 nu exist\u0103 mesaje. \xCEncepe conversa\u021Bia!"
|
|
1658
|
+
},
|
|
1659
|
+
attachmentList: {
|
|
1660
|
+
remove: "Elimin\u0103",
|
|
1661
|
+
uploadFailed: "\xCEnc\u0103rcare e\u0219uat\u0103"
|
|
1662
|
+
},
|
|
1663
|
+
header: {
|
|
1664
|
+
enterFullscreen: "Ecran complet",
|
|
1665
|
+
exitFullscreen: "Ie\u0219i\u021Bi din ecran complet",
|
|
1666
|
+
closeChat: "\xCEnchide chat",
|
|
1667
|
+
lightMode: "Mod luminos",
|
|
1668
|
+
darkMode: "Mod \xEEntunecat",
|
|
1669
|
+
autoMode: "Tem\u0103 sistem"
|
|
1670
|
+
},
|
|
1671
|
+
floatingButton: {
|
|
1672
|
+
openChat: "Deschide chat",
|
|
1673
|
+
closeChat: "\xCEnchide chat"
|
|
1674
|
+
},
|
|
1675
|
+
push: {
|
|
1676
|
+
title: "Notific\u0103ri",
|
|
1677
|
+
description: "Primi\u021Bi mesaje chiar \u0219i c\xE2nd chatul este \xEEnchis",
|
|
1678
|
+
enable: "Activeaz\u0103 notific\u0103rile",
|
|
1679
|
+
disable: "Dezactiveaz\u0103 notific\u0103rile",
|
|
1680
|
+
denied: "Notific\u0103ri blocate",
|
|
1681
|
+
unsupported: "Notific\u0103ri nesuportate",
|
|
1682
|
+
subscribing: "Abonare...",
|
|
1683
|
+
notifications: "Notific\u0103ri"
|
|
1684
|
+
},
|
|
1685
|
+
notification: {
|
|
1686
|
+
openChat: "Deschide Chat",
|
|
1687
|
+
dismiss: "Ignor\u0103"
|
|
1688
|
+
},
|
|
1689
|
+
common: {
|
|
1690
|
+
loading: "Se \xEEncarc\u0103...",
|
|
1691
|
+
error: "Eroare",
|
|
1692
|
+
retry: "Re\xEEncearc\u0103",
|
|
1693
|
+
cancel: "Anuleaz\u0103",
|
|
1694
|
+
download: "Descarc\u0103"
|
|
1695
|
+
}
|
|
1696
|
+
};
|
|
1697
|
+
|
|
1698
|
+
// src/i18n/locales/hu.json
|
|
1699
|
+
var hu_default = {
|
|
1700
|
+
direction: "ltr",
|
|
1701
|
+
chatWidget: {
|
|
1702
|
+
title: "Chat",
|
|
1703
|
+
placeholder: "\xCDrj egy \xFCzenetet...",
|
|
1704
|
+
openChat: "Chat megnyit\xE1sa",
|
|
1705
|
+
closeChat: "Chat bez\xE1r\xE1sa",
|
|
1706
|
+
connectionStatus: {
|
|
1707
|
+
connected: "Csatlakozva",
|
|
1708
|
+
disconnected: "Lecsatlakozva"
|
|
1709
|
+
}
|
|
1710
|
+
},
|
|
1711
|
+
inputArea: {
|
|
1712
|
+
send: "K\xFCld\xE9s",
|
|
1713
|
+
uploading: "Felt\xF6lt\xE9s...",
|
|
1714
|
+
dropzone: {
|
|
1715
|
+
dropFiles: "Dobja ide a f\xE1jlokat",
|
|
1716
|
+
dropOrClick: "Dobja vagy kattintson a csatol\xE1shoz"
|
|
1717
|
+
}
|
|
1718
|
+
},
|
|
1719
|
+
typingIndicator: {
|
|
1720
|
+
typing: "\xEDr",
|
|
1721
|
+
isTyping: "\xEDr..."
|
|
1722
|
+
},
|
|
1723
|
+
messageList: {
|
|
1724
|
+
emptyState: "M\xE9g nincsenek \xFCzenetek. Ind\xEDtsa el a besz\xE9lget\xE9st!"
|
|
1725
|
+
},
|
|
1726
|
+
attachmentList: {
|
|
1727
|
+
remove: "Elt\xE1vol\xEDt\xE1s",
|
|
1728
|
+
uploadFailed: "Felt\xF6lt\xE9s sikertelen"
|
|
1729
|
+
},
|
|
1730
|
+
header: {
|
|
1731
|
+
enterFullscreen: "Teljes k\xE9perny\u0151",
|
|
1732
|
+
exitFullscreen: "Kil\xE9p\xE9s a teljes k\xE9perny\u0151b\u0151l",
|
|
1733
|
+
closeChat: "Chat bez\xE1r\xE1sa",
|
|
1734
|
+
lightMode: "Vil\xE1gos m\xF3d",
|
|
1735
|
+
darkMode: "S\xF6t\xE9t m\xF3d",
|
|
1736
|
+
autoMode: "Rendszert\xE9ma"
|
|
1737
|
+
},
|
|
1738
|
+
floatingButton: {
|
|
1739
|
+
openChat: "Chat megnyit\xE1sa",
|
|
1740
|
+
closeChat: "Chat bez\xE1r\xE1sa"
|
|
1741
|
+
},
|
|
1742
|
+
push: {
|
|
1743
|
+
title: "\xC9rtes\xEDt\xE9sek",
|
|
1744
|
+
description: "\xDCzenetek fogad\xE1sa akkor is, ha a chat be van z\xE1rva",
|
|
1745
|
+
enable: "\xC9rtes\xEDt\xE9sek enged\xE9lyez\xE9se",
|
|
1746
|
+
disable: "\xC9rtes\xEDt\xE9sek letilt\xE1sa",
|
|
1747
|
+
denied: "\xC9rtes\xEDt\xE9sek blokkolva",
|
|
1748
|
+
unsupported: "\xC9rtes\xEDt\xE9sek nem t\xE1mogatottak",
|
|
1749
|
+
subscribing: "Feliratkoz\xE1s...",
|
|
1750
|
+
notifications: "\xC9rtes\xEDt\xE9sek"
|
|
1751
|
+
},
|
|
1752
|
+
notification: {
|
|
1753
|
+
openChat: "Chat Megnyit\xE1sa",
|
|
1754
|
+
dismiss: "Elutas\xEDt\xE1s"
|
|
1755
|
+
},
|
|
1756
|
+
common: {
|
|
1757
|
+
loading: "Bet\xF6lt\xE9s...",
|
|
1758
|
+
error: "Hiba",
|
|
1759
|
+
retry: "\xDAjrapr\xF3b\xE1lkoz\xE1s",
|
|
1760
|
+
cancel: "M\xE9gse",
|
|
1761
|
+
download: "Let\xF6lt\xE9s"
|
|
1762
|
+
}
|
|
1763
|
+
};
|
|
1764
|
+
|
|
1765
|
+
// src/i18n/locales/uk.json
|
|
1766
|
+
var uk_default = {
|
|
1767
|
+
direction: "ltr",
|
|
1768
|
+
chatWidget: {
|
|
1769
|
+
title: "\u0427\u0430\u0442",
|
|
1770
|
+
placeholder: "\u041D\u0430\u043F\u0438\u0448\u0456\u0442\u044C \u043F\u043E\u0432\u0456\u0434\u043E\u043C\u043B\u0435\u043D\u043D\u044F...",
|
|
1771
|
+
openChat: "\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u0447\u0430\u0442",
|
|
1772
|
+
closeChat: "\u0417\u0430\u043A\u0440\u0438\u0442\u0438 \u0447\u0430\u0442",
|
|
1773
|
+
connectionStatus: {
|
|
1774
|
+
connected: "\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E",
|
|
1775
|
+
disconnected: "\u0412\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E"
|
|
1776
|
+
}
|
|
1777
|
+
},
|
|
1778
|
+
inputArea: {
|
|
1779
|
+
send: "\u041D\u0430\u0434\u0456\u0441\u043B\u0430\u0442\u0438",
|
|
1780
|
+
uploading: "\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F...",
|
|
1781
|
+
dropzone: {
|
|
1782
|
+
dropFiles: "\u041F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u0444\u0430\u0439\u043B\u0438 \u0441\u044E\u0434\u0438",
|
|
1783
|
+
dropOrClick: "\u041F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u0430\u0431\u043E \u043D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C, \u0449\u043E\u0431 \u043F\u0440\u0438\u043A\u0440\u0456\u043F\u0438\u0442\u0438"
|
|
1784
|
+
}
|
|
1785
|
+
},
|
|
1786
|
+
typingIndicator: {
|
|
1787
|
+
typing: "\u0434\u0440\u0443\u043A\u0443\u0454",
|
|
1788
|
+
isTyping: "\u0434\u0440\u0443\u043A\u0443\u0454..."
|
|
1789
|
+
},
|
|
1790
|
+
messageList: {
|
|
1791
|
+
emptyState: "\u041F\u043E\u0432\u0456\u0434\u043E\u043C\u043B\u0435\u043D\u044C \u0449\u0435 \u043D\u0435\u043C\u0430\u0454. \u041F\u043E\u0447\u043D\u0456\u0442\u044C \u0440\u043E\u0437\u043C\u043E\u0432\u0443!"
|
|
1792
|
+
},
|
|
1793
|
+
attachmentList: {
|
|
1794
|
+
remove: "\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438",
|
|
1795
|
+
uploadFailed: "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438"
|
|
1796
|
+
},
|
|
1797
|
+
header: {
|
|
1798
|
+
enterFullscreen: "\u041F\u043E\u0432\u043D\u0438\u0439 \u0435\u043A\u0440\u0430\u043D",
|
|
1799
|
+
exitFullscreen: "\u0412\u0438\u0439\u0442\u0438 \u0437 \u043F\u043E\u0432\u043D\u043E\u0433\u043E \u0435\u043A\u0440\u0430\u043D\u0443",
|
|
1800
|
+
closeChat: "\u0417\u0430\u043A\u0440\u0438\u0442\u0438 \u0447\u0430\u0442",
|
|
1801
|
+
lightMode: "\u0421\u0432\u0456\u0442\u043B\u0438\u0439 \u0440\u0435\u0436\u0438\u043C",
|
|
1802
|
+
darkMode: "\u0422\u0435\u043C\u043D\u0438\u0439 \u0440\u0435\u0436\u0438\u043C",
|
|
1803
|
+
autoMode: "\u0421\u0438\u0441\u0442\u0435\u043C\u043D\u0430 \u0442\u0435\u043C\u0430"
|
|
1804
|
+
},
|
|
1805
|
+
floatingButton: {
|
|
1806
|
+
openChat: "\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u0447\u0430\u0442",
|
|
1807
|
+
closeChat: "\u0417\u0430\u043A\u0440\u0438\u0442\u0438 \u0447\u0430\u0442"
|
|
1808
|
+
},
|
|
1809
|
+
push: {
|
|
1810
|
+
title: "\u0421\u043F\u043E\u0432\u0456\u0449\u0435\u043D\u043D\u044F",
|
|
1811
|
+
description: "\u041E\u0442\u0440\u0438\u043C\u0443\u0439\u0442\u0435 \u043F\u043E\u0432\u0456\u0434\u043E\u043C\u043B\u0435\u043D\u043D\u044F, \u043D\u0430\u0432\u0456\u0442\u044C \u043A\u043E\u043B\u0438 \u0447\u0430\u0442 \u0437\u0430\u043A\u0440\u0438\u0442\u043E",
|
|
1812
|
+
enable: "\u0423\u0432\u0456\u043C\u043A\u043D\u0443\u0442\u0438 \u0441\u043F\u043E\u0432\u0456\u0449\u0435\u043D\u043D\u044F",
|
|
1813
|
+
disable: "\u0412\u0438\u043C\u043A\u043D\u0443\u0442\u0438 \u0441\u043F\u043E\u0432\u0456\u0449\u0435\u043D\u043D\u044F",
|
|
1814
|
+
denied: "\u0421\u043F\u043E\u0432\u0456\u0449\u0435\u043D\u043D\u044F \u0437\u0430\u0431\u043B\u043E\u043A\u043E\u0432\u0430\u043D\u043E",
|
|
1815
|
+
unsupported: "\u0421\u043F\u043E\u0432\u0456\u0449\u0435\u043D\u043D\u044F \u043D\u0435 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u044E\u0442\u044C\u0441\u044F",
|
|
1816
|
+
subscribing: "\u041F\u0456\u0434\u043F\u0438\u0441\u043A\u0430...",
|
|
1817
|
+
notifications: "\u0421\u043F\u043E\u0432\u0456\u0449\u0435\u043D\u043D\u044F"
|
|
1818
|
+
},
|
|
1819
|
+
notification: {
|
|
1820
|
+
openChat: "\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u0427\u0430\u0442",
|
|
1821
|
+
dismiss: "\u0412\u0456\u0434\u0445\u0438\u043B\u0438\u0442\u0438"
|
|
1822
|
+
},
|
|
1823
|
+
common: {
|
|
1824
|
+
loading: "\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F...",
|
|
1825
|
+
error: "\u041F\u043E\u043C\u0438\u043B\u043A\u0430",
|
|
1826
|
+
retry: "\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438",
|
|
1827
|
+
cancel: "\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438",
|
|
1828
|
+
download: "\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438"
|
|
1829
|
+
}
|
|
1830
|
+
};
|
|
1831
|
+
|
|
1832
|
+
// src/i18n/locales/ru.json
|
|
1833
|
+
var ru_default = {
|
|
1834
|
+
direction: "ltr",
|
|
1835
|
+
chatWidget: {
|
|
1836
|
+
title: "\u0427\u0430\u0442",
|
|
1837
|
+
placeholder: "\u041D\u0430\u043F\u0438\u0448\u0438\u0442\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435...",
|
|
1838
|
+
openChat: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442",
|
|
1839
|
+
closeChat: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442",
|
|
1840
|
+
connectionStatus: {
|
|
1841
|
+
connected: "\u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E",
|
|
1842
|
+
disconnected: "\u041E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u043E"
|
|
1843
|
+
}
|
|
1844
|
+
},
|
|
1845
|
+
inputArea: {
|
|
1846
|
+
send: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C",
|
|
1847
|
+
uploading: "\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430...",
|
|
1848
|
+
dropzone: {
|
|
1849
|
+
dropFiles: "\u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u044B \u0441\u044E\u0434\u0430",
|
|
1850
|
+
dropOrClick: "\u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0438\u043B\u0438 \u043D\u0430\u0436\u043C\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C"
|
|
1851
|
+
}
|
|
1852
|
+
},
|
|
1853
|
+
typingIndicator: {
|
|
1854
|
+
typing: "\u043F\u0435\u0447\u0430\u0442\u0430\u0435\u0442",
|
|
1855
|
+
isTyping: "\u043F\u0435\u0447\u0430\u0442\u0430\u0435\u0442..."
|
|
1856
|
+
},
|
|
1857
|
+
messageList: {
|
|
1858
|
+
emptyState: "\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442. \u041D\u0430\u0447\u043D\u0438\u0442\u0435 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440!"
|
|
1859
|
+
},
|
|
1860
|
+
attachmentList: {
|
|
1861
|
+
remove: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C",
|
|
1862
|
+
uploadFailed: "\u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438"
|
|
1863
|
+
},
|
|
1864
|
+
header: {
|
|
1865
|
+
enterFullscreen: "\u041F\u043E\u043B\u043D\u044B\u0439 \u044D\u043A\u0440\u0430\u043D",
|
|
1866
|
+
exitFullscreen: "\u0412\u044B\u0439\u0442\u0438 \u0438\u0437 \u043F\u043E\u043B\u043D\u043E\u0433\u043E \u044D\u043A\u0440\u0430\u043D\u0430",
|
|
1867
|
+
closeChat: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442",
|
|
1868
|
+
lightMode: "\u0421\u0432\u0435\u0442\u043B\u0430\u044F \u0442\u0435\u043C\u0430",
|
|
1869
|
+
darkMode: "\u0422\u0451\u043C\u043D\u0430\u044F \u0442\u0435\u043C\u0430",
|
|
1870
|
+
autoMode: "\u0421\u0438\u0441\u0442\u0435\u043C\u043D\u0430\u044F \u0442\u0435\u043C\u0430"
|
|
1871
|
+
},
|
|
1872
|
+
floatingButton: {
|
|
1873
|
+
openChat: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442",
|
|
1874
|
+
closeChat: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0447\u0430\u0442"
|
|
1875
|
+
},
|
|
1876
|
+
push: {
|
|
1877
|
+
title: "\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F",
|
|
1878
|
+
description: "\u041F\u043E\u043B\u0443\u0447\u0430\u0439\u0442\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F, \u0434\u0430\u0436\u0435 \u043A\u043E\u0433\u0434\u0430 \u0447\u0430\u0442 \u0437\u0430\u043A\u0440\u044B\u0442",
|
|
1879
|
+
enable: "\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F",
|
|
1880
|
+
disable: "\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F",
|
|
1881
|
+
denied: "\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u044B",
|
|
1882
|
+
unsupported: "\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044E\u0442\u0441\u044F",
|
|
1883
|
+
subscribing: "\u041F\u043E\u0434\u043F\u0438\u0441\u043A\u0430...",
|
|
1884
|
+
notifications: "\u0423\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F"
|
|
1885
|
+
},
|
|
1886
|
+
notification: {
|
|
1887
|
+
openChat: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0427\u0430\u0442",
|
|
1888
|
+
dismiss: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C"
|
|
1889
|
+
},
|
|
1890
|
+
common: {
|
|
1891
|
+
loading: "\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430...",
|
|
1892
|
+
error: "\u041E\u0448\u0438\u0431\u043A\u0430",
|
|
1893
|
+
retry: "\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C",
|
|
1894
|
+
cancel: "\u041E\u0442\u043C\u0435\u043D\u0430",
|
|
1895
|
+
download: "\u0421\u043A\u0430\u0447\u0430\u0442\u044C"
|
|
1896
|
+
}
|
|
1897
|
+
};
|
|
1898
|
+
|
|
1899
|
+
// src/i18n/locales/el.json
|
|
1900
|
+
var el_default = {
|
|
1901
|
+
direction: "ltr",
|
|
1902
|
+
chatWidget: {
|
|
1903
|
+
title: "\u03A3\u03C5\u03BD\u03BF\u03BC\u03B9\u03BB\u03AF\u03B1",
|
|
1904
|
+
placeholder: "\u0393\u03C1\u03AC\u03C8\u03C4\u03B5 \u03AD\u03BD\u03B1 \u03BC\u03AE\u03BD\u03C5\u03BC\u03B1...",
|
|
1905
|
+
openChat: "\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1 \u03C3\u03C5\u03BD\u03BF\u03BC\u03B9\u03BB\u03AF\u03B1\u03C2",
|
|
1906
|
+
closeChat: "\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF \u03C3\u03C5\u03BD\u03BF\u03BC\u03B9\u03BB\u03AF\u03B1\u03C2",
|
|
1907
|
+
connectionStatus: {
|
|
1908
|
+
connected: "\u03A3\u03C5\u03BD\u03B4\u03B5\u03B4\u03B5\u03BC\u03AD\u03BD\u03BF",
|
|
1909
|
+
disconnected: "\u0391\u03C0\u03BF\u03C3\u03C5\u03BD\u03B4\u03B5\u03B4\u03B5\u03BC\u03AD\u03BD\u03BF"
|
|
1910
|
+
}
|
|
1911
|
+
},
|
|
1912
|
+
inputArea: {
|
|
1913
|
+
send: "\u0391\u03C0\u03BF\u03C3\u03C4\u03BF\u03BB\u03AE",
|
|
1914
|
+
uploading: "\u039C\u03B5\u03C4\u03B1\u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...",
|
|
1915
|
+
dropzone: {
|
|
1916
|
+
dropFiles: "\u0391\u03C6\u03AE\u03C3\u03C4\u03B5 \u03B1\u03C1\u03C7\u03B5\u03AF\u03B1 \u03B5\u03B4\u03CE",
|
|
1917
|
+
dropOrClick: "\u0391\u03C6\u03AE\u03C3\u03C4\u03B5 \u03AE \u03BA\u03AC\u03BD\u03C4\u03B5 \u03BA\u03BB\u03B9\u03BA \u03B3\u03B9\u03B1 \u03B5\u03C0\u03B9\u03C3\u03CD\u03BD\u03B1\u03C8\u03B7"
|
|
1918
|
+
}
|
|
1919
|
+
},
|
|
1920
|
+
typingIndicator: {
|
|
1921
|
+
typing: "\u03B3\u03C1\u03AC\u03C6\u03B5\u03B9",
|
|
1922
|
+
isTyping: "\u03B3\u03C1\u03AC\u03C6\u03B5\u03B9..."
|
|
1923
|
+
},
|
|
1924
|
+
messageList: {
|
|
1925
|
+
emptyState: "\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03BF\u03C5\u03BD \u03B1\u03BA\u03CC\u03BC\u03B7 \u03BC\u03B7\u03BD\u03CD\u03BC\u03B1\u03C4\u03B1. \u039E\u03B5\u03BA\u03B9\u03BD\u03AE\u03C3\u03C4\u03B5 \u03C4\u03B7 \u03C3\u03C5\u03BD\u03BF\u03BC\u03B9\u03BB\u03AF\u03B1!"
|
|
1926
|
+
},
|
|
1927
|
+
attachmentList: {
|
|
1928
|
+
remove: "\u0391\u03C6\u03B1\u03AF\u03C1\u03B5\u03C3\u03B7",
|
|
1929
|
+
uploadFailed: "\u0397 \u03BC\u03B5\u03C4\u03B1\u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03B1\u03C0\u03AD\u03C4\u03C5\u03C7\u03B5"
|
|
1930
|
+
},
|
|
1931
|
+
header: {
|
|
1932
|
+
enterFullscreen: "\u03A0\u03BB\u03AE\u03C1\u03B7\u03C2 \u03BF\u03B8\u03CC\u03BD\u03B7",
|
|
1933
|
+
exitFullscreen: "\u0388\u03BE\u03BF\u03B4\u03BF\u03C2 \u03B1\u03C0\u03CC \u03C0\u03BB\u03AE\u03C1\u03B7 \u03BF\u03B8\u03CC\u03BD\u03B7",
|
|
1934
|
+
closeChat: "\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF \u03C3\u03C5\u03BD\u03BF\u03BC\u03B9\u03BB\u03AF\u03B1\u03C2",
|
|
1935
|
+
lightMode: "\u03A6\u03C9\u03C4\u03B5\u03B9\u03BD\u03AE \u03BB\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03AF\u03B1",
|
|
1936
|
+
darkMode: "\u03A3\u03BA\u03BF\u03C4\u03B5\u03B9\u03BD\u03AE \u03BB\u03B5\u03B9\u03C4\u03BF\u03C5\u03C1\u03B3\u03AF\u03B1",
|
|
1937
|
+
autoMode: "\u0398\u03AD\u03BC\u03B1 \u03C3\u03C5\u03C3\u03C4\u03AE\u03BC\u03B1\u03C4\u03BF\u03C2"
|
|
1938
|
+
},
|
|
1939
|
+
floatingButton: {
|
|
1940
|
+
openChat: "\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1 \u03C3\u03C5\u03BD\u03BF\u03BC\u03B9\u03BB\u03AF\u03B1\u03C2",
|
|
1941
|
+
closeChat: "\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF \u03C3\u03C5\u03BD\u03BF\u03BC\u03B9\u03BB\u03AF\u03B1\u03C2"
|
|
1942
|
+
},
|
|
1943
|
+
push: {
|
|
1944
|
+
title: "\u0395\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2",
|
|
1945
|
+
description: "\u039B\u03AC\u03B2\u03B5\u03C4\u03B5 \u03BC\u03B7\u03BD\u03CD\u03BC\u03B1\u03C4\u03B1 \u03B1\u03BA\u03CC\u03BC\u03B1 \u03BA\u03B1\u03B9 \u03CC\u03C4\u03B1\u03BD \u03B7 \u03C3\u03C5\u03BD\u03BF\u03BC\u03B9\u03BB\u03AF\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03BA\u03BB\u03B5\u03B9\u03C3\u03C4\u03AE",
|
|
1946
|
+
enable: "\u0395\u03BD\u03B5\u03C1\u03B3\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03C9\u03BD",
|
|
1947
|
+
disable: "\u0391\u03C0\u03B5\u03BD\u03B5\u03C1\u03B3\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03C9\u03BD",
|
|
1948
|
+
denied: "\u0395\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2 \u03B1\u03C0\u03BF\u03BA\u03BB\u03B5\u03B9\u03C3\u03BC\u03AD\u03BD\u03B5\u03C2",
|
|
1949
|
+
unsupported: "\u039F\u03B9 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2 \u03B4\u03B5\u03BD \u03C5\u03C0\u03BF\u03C3\u03C4\u03B7\u03C1\u03AF\u03B6\u03BF\u03BD\u03C4\u03B1\u03B9",
|
|
1950
|
+
subscribing: "\u0395\u03B3\u03B3\u03C1\u03B1\u03C6\u03AE...",
|
|
1951
|
+
notifications: "\u0395\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2"
|
|
1952
|
+
},
|
|
1953
|
+
notification: {
|
|
1954
|
+
openChat: "\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1 \u03A3\u03C5\u03BD\u03BF\u03BC\u03B9\u03BB\u03AF\u03B1\u03C2",
|
|
1955
|
+
dismiss: "\u0391\u03C0\u03CC\u03C1\u03C1\u03B9\u03C8\u03B7"
|
|
1956
|
+
},
|
|
1957
|
+
common: {
|
|
1958
|
+
loading: "\u03A6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...",
|
|
1959
|
+
error: "\u03A3\u03C6\u03AC\u03BB\u03BC\u03B1",
|
|
1960
|
+
retry: "\u0394\u03BF\u03BA\u03B9\u03BC\u03AE \u03BE\u03B1\u03BD\u03AC",
|
|
1961
|
+
cancel: "\u0391\u03BA\u03CD\u03C1\u03C9\u03C3\u03B7",
|
|
1962
|
+
download: "\u039B\u03AE\u03C8\u03B7"
|
|
1963
|
+
}
|
|
1964
|
+
};
|
|
1965
|
+
|
|
1966
|
+
// src/i18n/locales/tr.json
|
|
1967
|
+
var tr_default = {
|
|
1968
|
+
direction: "ltr",
|
|
1969
|
+
chatWidget: {
|
|
1970
|
+
title: "Sohbet",
|
|
1971
|
+
placeholder: "Bir mesaj yaz\u0131n...",
|
|
1972
|
+
openChat: "Sohbeti a\xE7",
|
|
1973
|
+
closeChat: "Sohbeti kapat",
|
|
1974
|
+
connectionStatus: {
|
|
1975
|
+
connected: "Ba\u011Fland\u0131",
|
|
1976
|
+
disconnected: "Ba\u011Flant\u0131 kesildi"
|
|
1977
|
+
}
|
|
1978
|
+
},
|
|
1979
|
+
inputArea: {
|
|
1980
|
+
send: "G\xF6nder",
|
|
1981
|
+
uploading: "Y\xFCkleniyor...",
|
|
1982
|
+
dropzone: {
|
|
1983
|
+
dropFiles: "Dosyalar\u0131 buraya b\u0131rak\u0131n",
|
|
1984
|
+
dropOrClick: "Eklemek i\xE7in b\u0131rak\u0131n veya t\u0131klay\u0131n"
|
|
1985
|
+
}
|
|
1986
|
+
},
|
|
1987
|
+
typingIndicator: {
|
|
1988
|
+
typing: "yaz\u0131yor",
|
|
1989
|
+
isTyping: "yaz\u0131yor..."
|
|
1990
|
+
},
|
|
1991
|
+
messageList: {
|
|
1992
|
+
emptyState: "Hen\xFCz mesaj yok. Sohbeti ba\u015Flat\u0131n!"
|
|
1993
|
+
},
|
|
1994
|
+
attachmentList: {
|
|
1995
|
+
remove: "Kald\u0131r",
|
|
1996
|
+
uploadFailed: "Y\xFCkleme ba\u015Far\u0131s\u0131z"
|
|
1997
|
+
},
|
|
1998
|
+
header: {
|
|
1999
|
+
enterFullscreen: "Tam ekran",
|
|
2000
|
+
exitFullscreen: "Tam ekrandan \xE7\u0131k",
|
|
2001
|
+
closeChat: "Sohbeti kapat",
|
|
2002
|
+
lightMode: "A\xE7\u0131k mod",
|
|
2003
|
+
darkMode: "Koyu mod",
|
|
2004
|
+
autoMode: "Sistem temas\u0131"
|
|
2005
|
+
},
|
|
2006
|
+
floatingButton: {
|
|
2007
|
+
openChat: "Sohbeti a\xE7",
|
|
2008
|
+
closeChat: "Sohbeti kapat"
|
|
2009
|
+
},
|
|
2010
|
+
push: {
|
|
2011
|
+
title: "Bildirimler",
|
|
2012
|
+
description: "Sohbet kapal\u0131yken bile mesaj al\u0131n",
|
|
2013
|
+
enable: "Bildirimleri etkinle\u015Ftir",
|
|
2014
|
+
disable: "Bildirimleri devre d\u0131\u015F\u0131 b\u0131rak",
|
|
2015
|
+
denied: "Bildirimler engellendi",
|
|
2016
|
+
unsupported: "Bildirimler desteklenmiyor",
|
|
2017
|
+
subscribing: "Abone olunuyor...",
|
|
2018
|
+
notifications: "Bildirimler"
|
|
2019
|
+
},
|
|
2020
|
+
notification: {
|
|
2021
|
+
openChat: "Sohbeti A\xE7",
|
|
2022
|
+
dismiss: "Kapat"
|
|
2023
|
+
},
|
|
2024
|
+
common: {
|
|
2025
|
+
loading: "Y\xFCkleniyor...",
|
|
2026
|
+
error: "Hata",
|
|
2027
|
+
retry: "Tekrar dene",
|
|
2028
|
+
cancel: "\u0130ptal",
|
|
2029
|
+
download: "\u0130ndir"
|
|
2030
|
+
}
|
|
2031
|
+
};
|
|
2032
|
+
|
|
2033
|
+
// src/i18n/locales/et.json
|
|
2034
|
+
var et_default = {
|
|
2035
|
+
direction: "ltr",
|
|
2036
|
+
chatWidget: {
|
|
2037
|
+
title: "Vestlus",
|
|
2038
|
+
placeholder: "Kirjuta s\xF5num...",
|
|
2039
|
+
openChat: "Ava vestlus",
|
|
2040
|
+
closeChat: "Sulge vestlus",
|
|
2041
|
+
connectionStatus: {
|
|
2042
|
+
connected: "\xDChendatud",
|
|
2043
|
+
disconnected: "\xDChendus katkenud"
|
|
2044
|
+
}
|
|
2045
|
+
},
|
|
2046
|
+
inputArea: {
|
|
2047
|
+
send: "Saada",
|
|
2048
|
+
uploading: "Laadimine...",
|
|
2049
|
+
dropzone: {
|
|
2050
|
+
dropFiles: "Lohista failid siia",
|
|
2051
|
+
dropOrClick: "Lohista v\xF5i kl\xF5psa manustamiseks"
|
|
2052
|
+
}
|
|
2053
|
+
},
|
|
2054
|
+
typingIndicator: {
|
|
2055
|
+
typing: "kirjutab",
|
|
2056
|
+
isTyping: "kirjutab..."
|
|
2057
|
+
},
|
|
2058
|
+
messageList: {
|
|
2059
|
+
emptyState: "Veel pole s\xF5numeid. Alusta vestlust!"
|
|
2060
|
+
},
|
|
2061
|
+
attachmentList: {
|
|
2062
|
+
remove: "Eemalda",
|
|
2063
|
+
uploadFailed: "\xDCleslaadimine eba\xF5nnestus"
|
|
2064
|
+
},
|
|
2065
|
+
header: {
|
|
2066
|
+
enterFullscreen: "T\xE4isekraan",
|
|
2067
|
+
exitFullscreen: "V\xE4lju t\xE4isekraanist",
|
|
2068
|
+
closeChat: "Sulge vestlus",
|
|
2069
|
+
lightMode: "Heledre\u017Eiim",
|
|
2070
|
+
darkMode: "Tumedre\u017Eiim",
|
|
2071
|
+
autoMode: "S\xFCsteemi teema"
|
|
2072
|
+
},
|
|
2073
|
+
floatingButton: {
|
|
2074
|
+
openChat: "Ava vestlus",
|
|
2075
|
+
closeChat: "Sulge vestlus"
|
|
2076
|
+
},
|
|
2077
|
+
push: {
|
|
2078
|
+
title: "Teavitused",
|
|
2079
|
+
description: "Saage s\xF5numeid ka siis, kui vestlus on suletud",
|
|
2080
|
+
enable: "Luba teavitused",
|
|
2081
|
+
disable: "Keela teavitused",
|
|
2082
|
+
denied: "Teavitused blokeeritud",
|
|
2083
|
+
unsupported: "Teavitused pole toetatud",
|
|
2084
|
+
subscribing: "Tellimine...",
|
|
2085
|
+
notifications: "Teavitused"
|
|
2086
|
+
},
|
|
2087
|
+
notification: {
|
|
2088
|
+
openChat: "Ava Vestlus",
|
|
2089
|
+
dismiss: "Loobu"
|
|
2090
|
+
},
|
|
2091
|
+
common: {
|
|
2092
|
+
loading: "Laadimine...",
|
|
2093
|
+
error: "Viga",
|
|
2094
|
+
retry: "Proovi uuesti",
|
|
2095
|
+
cancel: "T\xFChista",
|
|
2096
|
+
download: "Laadi alla"
|
|
2097
|
+
}
|
|
2098
|
+
};
|
|
2099
|
+
|
|
2100
|
+
// src/i18n/locales/ja.json
|
|
2101
|
+
var ja_default = {
|
|
2102
|
+
direction: "ltr",
|
|
2103
|
+
chatWidget: {
|
|
2104
|
+
title: "\u30C1\u30E3\u30C3\u30C8",
|
|
2105
|
+
placeholder: "\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u5165\u529B...",
|
|
2106
|
+
openChat: "\u30C1\u30E3\u30C3\u30C8\u3092\u958B\u304F",
|
|
2107
|
+
closeChat: "\u30C1\u30E3\u30C3\u30C8\u3092\u9589\u3058\u308B",
|
|
2108
|
+
connectionStatus: {
|
|
2109
|
+
connected: "\u63A5\u7D9A\u6E08\u307F",
|
|
2110
|
+
disconnected: "\u5207\u65AD\u6E08\u307F"
|
|
2111
|
+
}
|
|
2112
|
+
},
|
|
2113
|
+
inputArea: {
|
|
2114
|
+
send: "\u9001\u4FE1",
|
|
2115
|
+
uploading: "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u4E2D...",
|
|
2116
|
+
dropzone: {
|
|
2117
|
+
dropFiles: "\u30D5\u30A1\u30A4\u30EB\u3092\u3053\u3053\u306B\u30C9\u30ED\u30C3\u30D7",
|
|
2118
|
+
dropOrClick: "\u30C9\u30ED\u30C3\u30D7\u307E\u305F\u306F\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u6DFB\u4ED8"
|
|
2119
|
+
}
|
|
2120
|
+
},
|
|
2121
|
+
typingIndicator: {
|
|
2122
|
+
typing: "\u5165\u529B\u4E2D",
|
|
2123
|
+
isTyping: "\u5165\u529B\u4E2D..."
|
|
2124
|
+
},
|
|
2125
|
+
messageList: {
|
|
2126
|
+
emptyState: "\u307E\u3060\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u4F1A\u8A71\u3092\u59CB\u3081\u307E\u3057\u3087\u3046\uFF01"
|
|
2127
|
+
},
|
|
2128
|
+
attachmentList: {
|
|
2129
|
+
remove: "\u524A\u9664",
|
|
2130
|
+
uploadFailed: "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F"
|
|
2131
|
+
},
|
|
2132
|
+
header: {
|
|
2133
|
+
enterFullscreen: "\u5168\u753B\u9762\u8868\u793A",
|
|
2134
|
+
exitFullscreen: "\u5168\u753B\u9762\u3092\u7D42\u4E86",
|
|
2135
|
+
closeChat: "\u30C1\u30E3\u30C3\u30C8\u3092\u9589\u3058\u308B",
|
|
2136
|
+
lightMode: "\u30E9\u30A4\u30C8\u30E2\u30FC\u30C9",
|
|
2137
|
+
darkMode: "\u30C0\u30FC\u30AF\u30E2\u30FC\u30C9",
|
|
2138
|
+
autoMode: "\u30B7\u30B9\u30C6\u30E0\u30C6\u30FC\u30DE"
|
|
2139
|
+
},
|
|
2140
|
+
floatingButton: {
|
|
2141
|
+
openChat: "\u30C1\u30E3\u30C3\u30C8\u3092\u958B\u304F",
|
|
2142
|
+
closeChat: "\u30C1\u30E3\u30C3\u30C8\u3092\u9589\u3058\u308B"
|
|
2143
|
+
},
|
|
2144
|
+
push: {
|
|
2145
|
+
title: "\u901A\u77E5",
|
|
2146
|
+
description: "\u30C1\u30E3\u30C3\u30C8\u304C\u9589\u3058\u3066\u3044\u3066\u3082\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u53D7\u4FE1",
|
|
2147
|
+
enable: "\u901A\u77E5\u3092\u6709\u52B9\u306B\u3059\u308B",
|
|
2148
|
+
disable: "\u901A\u77E5\u3092\u7121\u52B9\u306B\u3059\u308B",
|
|
2149
|
+
denied: "\u901A\u77E5\u304C\u30D6\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u307E\u3059",
|
|
2150
|
+
unsupported: "\u901A\u77E5\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
|
|
2151
|
+
subscribing: "\u767B\u9332\u4E2D...",
|
|
2152
|
+
notifications: "\u901A\u77E5"
|
|
2153
|
+
},
|
|
2154
|
+
notification: {
|
|
2155
|
+
openChat: "\u30C1\u30E3\u30C3\u30C8\u3092\u958B\u304F",
|
|
2156
|
+
dismiss: "\u9589\u3058\u308B"
|
|
2157
|
+
},
|
|
2158
|
+
common: {
|
|
2159
|
+
loading: "\u8AAD\u307F\u8FBC\u307F\u4E2D...",
|
|
2160
|
+
error: "\u30A8\u30E9\u30FC",
|
|
2161
|
+
retry: "\u518D\u8A66\u884C",
|
|
2162
|
+
cancel: "\u30AD\u30E3\u30F3\u30BB\u30EB",
|
|
2163
|
+
download: "\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9"
|
|
2164
|
+
}
|
|
2165
|
+
};
|
|
2166
|
+
|
|
2167
|
+
// src/i18n/locales/zh-CN.json
|
|
2168
|
+
var zh_CN_default = {
|
|
2169
|
+
direction: "ltr",
|
|
2170
|
+
chatWidget: {
|
|
2171
|
+
title: "\u804A\u5929",
|
|
2172
|
+
placeholder: "\u8F93\u5165\u6D88\u606F...",
|
|
2173
|
+
openChat: "\u6253\u5F00\u804A\u5929",
|
|
2174
|
+
closeChat: "\u5173\u95ED\u804A\u5929",
|
|
2175
|
+
connectionStatus: {
|
|
2176
|
+
connected: "\u5DF2\u8FDE\u63A5",
|
|
2177
|
+
disconnected: "\u5DF2\u65AD\u5F00"
|
|
2178
|
+
}
|
|
2179
|
+
},
|
|
2180
|
+
inputArea: {
|
|
2181
|
+
send: "\u53D1\u9001",
|
|
2182
|
+
uploading: "\u4E0A\u4F20\u4E2D...",
|
|
2183
|
+
dropzone: {
|
|
2184
|
+
dropFiles: "\u5C06\u6587\u4EF6\u62D6\u653E\u5230\u6B64\u5904",
|
|
2185
|
+
dropOrClick: "\u62D6\u653E\u6216\u70B9\u51FB\u4EE5\u9644\u52A0\u6587\u4EF6"
|
|
2186
|
+
}
|
|
2187
|
+
},
|
|
2188
|
+
typingIndicator: {
|
|
2189
|
+
typing: "\u6B63\u5728\u8F93\u5165",
|
|
2190
|
+
isTyping: "\u6B63\u5728\u8F93\u5165..."
|
|
2191
|
+
},
|
|
2192
|
+
messageList: {
|
|
2193
|
+
emptyState: "\u6682\u65E0\u6D88\u606F\u3002\u5F00\u59CB\u5BF9\u8BDD\u5427\uFF01"
|
|
2194
|
+
},
|
|
2195
|
+
attachmentList: {
|
|
2196
|
+
remove: "\u79FB\u9664",
|
|
2197
|
+
uploadFailed: "\u4E0A\u4F20\u5931\u8D25"
|
|
2198
|
+
},
|
|
2199
|
+
header: {
|
|
2200
|
+
enterFullscreen: "\u8FDB\u5165\u5168\u5C4F",
|
|
2201
|
+
exitFullscreen: "\u9000\u51FA\u5168\u5C4F",
|
|
2202
|
+
closeChat: "\u5173\u95ED\u804A\u5929",
|
|
2203
|
+
lightMode: "\u6D45\u8272\u6A21\u5F0F",
|
|
2204
|
+
darkMode: "\u6DF1\u8272\u6A21\u5F0F",
|
|
2205
|
+
autoMode: "\u7CFB\u7EDF\u4E3B\u9898"
|
|
2206
|
+
},
|
|
2207
|
+
floatingButton: {
|
|
2208
|
+
openChat: "\u6253\u5F00\u804A\u5929",
|
|
2209
|
+
closeChat: "\u5173\u95ED\u804A\u5929"
|
|
2210
|
+
},
|
|
2211
|
+
push: {
|
|
2212
|
+
title: "\u901A\u77E5",
|
|
2213
|
+
description: "\u5373\u4F7F\u5728\u804A\u5929\u5173\u95ED\u65F6\u4E5F\u80FD\u63A5\u6536\u6D88\u606F",
|
|
2214
|
+
enable: "\u542F\u7528\u901A\u77E5",
|
|
2215
|
+
disable: "\u7981\u7528\u901A\u77E5",
|
|
2216
|
+
denied: "\u901A\u77E5\u5DF2\u88AB\u963B\u6B62",
|
|
2217
|
+
unsupported: "\u4E0D\u652F\u6301\u901A\u77E5",
|
|
2218
|
+
subscribing: "\u8BA2\u9605\u4E2D...",
|
|
2219
|
+
notifications: "\u901A\u77E5"
|
|
2220
|
+
},
|
|
2221
|
+
notification: {
|
|
2222
|
+
openChat: "\u6253\u5F00\u804A\u5929",
|
|
2223
|
+
dismiss: "\u5173\u95ED"
|
|
2224
|
+
},
|
|
2225
|
+
common: {
|
|
2226
|
+
loading: "\u52A0\u8F7D\u4E2D...",
|
|
2227
|
+
error: "\u9519\u8BEF",
|
|
2228
|
+
retry: "\u91CD\u8BD5",
|
|
2229
|
+
cancel: "\u53D6\u6D88",
|
|
2230
|
+
download: "\u4E0B\u8F7D"
|
|
2231
|
+
}
|
|
2232
|
+
};
|
|
2233
|
+
|
|
2234
|
+
// src/i18n/locales/zh-TW.json
|
|
2235
|
+
var zh_TW_default = {
|
|
2236
|
+
direction: "ltr",
|
|
2237
|
+
chatWidget: {
|
|
2238
|
+
title: "\u804A\u5929",
|
|
2239
|
+
placeholder: "\u8F38\u5165\u8A0A\u606F...",
|
|
2240
|
+
openChat: "\u958B\u555F\u804A\u5929",
|
|
2241
|
+
closeChat: "\u95DC\u9589\u804A\u5929",
|
|
2242
|
+
connectionStatus: {
|
|
2243
|
+
connected: "\u5DF2\u9023\u7DDA",
|
|
2244
|
+
disconnected: "\u5DF2\u65B7\u7DDA"
|
|
2245
|
+
}
|
|
2246
|
+
},
|
|
2247
|
+
inputArea: {
|
|
2248
|
+
send: "\u50B3\u9001",
|
|
2249
|
+
uploading: "\u4E0A\u50B3\u4E2D...",
|
|
2250
|
+
dropzone: {
|
|
2251
|
+
dropFiles: "\u5C07\u6A94\u6848\u62D6\u653E\u5230\u6B64\u8655",
|
|
2252
|
+
dropOrClick: "\u62D6\u653E\u6216\u9EDE\u64CA\u4EE5\u9644\u52A0\u6A94\u6848"
|
|
2253
|
+
}
|
|
2254
|
+
},
|
|
2255
|
+
typingIndicator: {
|
|
2256
|
+
typing: "\u6B63\u5728\u8F38\u5165",
|
|
2257
|
+
isTyping: "\u6B63\u5728\u8F38\u5165..."
|
|
2258
|
+
},
|
|
2259
|
+
messageList: {
|
|
2260
|
+
emptyState: "\u5C1A\u7121\u8A0A\u606F\u3002\u958B\u59CB\u5C0D\u8A71\u5427\uFF01"
|
|
2261
|
+
},
|
|
2262
|
+
attachmentList: {
|
|
2263
|
+
remove: "\u79FB\u9664",
|
|
2264
|
+
uploadFailed: "\u4E0A\u50B3\u5931\u6557"
|
|
2265
|
+
},
|
|
2266
|
+
header: {
|
|
2267
|
+
enterFullscreen: "\u9032\u5165\u5168\u87A2\u5E55",
|
|
2268
|
+
exitFullscreen: "\u9000\u51FA\u5168\u87A2\u5E55",
|
|
2269
|
+
closeChat: "\u95DC\u9589\u804A\u5929",
|
|
2270
|
+
lightMode: "\u6DFA\u8272\u6A21\u5F0F",
|
|
2271
|
+
darkMode: "\u6DF1\u8272\u6A21\u5F0F",
|
|
2272
|
+
autoMode: "\u7CFB\u7D71\u4E3B\u984C"
|
|
2273
|
+
},
|
|
2274
|
+
floatingButton: {
|
|
2275
|
+
openChat: "\u958B\u555F\u804A\u5929",
|
|
2276
|
+
closeChat: "\u95DC\u9589\u804A\u5929"
|
|
2277
|
+
},
|
|
2278
|
+
push: {
|
|
2279
|
+
title: "\u901A\u77E5",
|
|
2280
|
+
description: "\u5373\u4F7F\u5728\u804A\u5929\u95DC\u9589\u6642\u4E5F\u80FD\u63A5\u6536\u8A0A\u606F",
|
|
2281
|
+
enable: "\u555F\u7528\u901A\u77E5",
|
|
2282
|
+
disable: "\u505C\u7528\u901A\u77E5",
|
|
2283
|
+
denied: "\u901A\u77E5\u5DF2\u88AB\u5C01\u9396",
|
|
2284
|
+
unsupported: "\u4E0D\u652F\u63F4\u901A\u77E5",
|
|
2285
|
+
subscribing: "\u8A02\u95B1\u4E2D...",
|
|
2286
|
+
notifications: "\u901A\u77E5"
|
|
2287
|
+
},
|
|
2288
|
+
notification: {
|
|
2289
|
+
openChat: "\u958B\u555F\u804A\u5929",
|
|
2290
|
+
dismiss: "\u95DC\u9589"
|
|
2291
|
+
},
|
|
2292
|
+
common: {
|
|
2293
|
+
loading: "\u8F09\u5165\u4E2D...",
|
|
2294
|
+
error: "\u932F\u8AA4",
|
|
2295
|
+
retry: "\u91CD\u8A66",
|
|
2296
|
+
cancel: "\u53D6\u6D88",
|
|
2297
|
+
download: "\u4E0B\u8F09"
|
|
2298
|
+
}
|
|
2299
|
+
};
|
|
2300
|
+
|
|
2301
|
+
// src/i18n/locales/ko.json
|
|
2302
|
+
var ko_default = {
|
|
2303
|
+
direction: "ltr",
|
|
2304
|
+
chatWidget: {
|
|
2305
|
+
title: "\uCC44\uD305",
|
|
2306
|
+
placeholder: "\uBA54\uC2DC\uC9C0\uB97C \uC785\uB825\uD558\uC138\uC694...",
|
|
2307
|
+
openChat: "\uCC44\uD305 \uC5F4\uAE30",
|
|
2308
|
+
closeChat: "\uCC44\uD305 \uB2EB\uAE30",
|
|
2309
|
+
connectionStatus: {
|
|
2310
|
+
connected: "\uC5F0\uACB0\uB428",
|
|
2311
|
+
disconnected: "\uC5F0\uACB0 \uB04A\uAE40"
|
|
2312
|
+
}
|
|
2313
|
+
},
|
|
2314
|
+
inputArea: {
|
|
2315
|
+
send: "\uC804\uC1A1",
|
|
2316
|
+
uploading: "\uC5C5\uB85C\uB4DC \uC911...",
|
|
2317
|
+
dropzone: {
|
|
2318
|
+
dropFiles: "\uD30C\uC77C\uC744 \uC5EC\uAE30\uC5D0 \uB193\uC73C\uC138\uC694",
|
|
2319
|
+
dropOrClick: "\uB193\uAC70\uB098 \uD074\uB9AD\uD558\uC5EC \uCCA8\uBD80"
|
|
2320
|
+
}
|
|
2321
|
+
},
|
|
2322
|
+
typingIndicator: {
|
|
2323
|
+
typing: "\uC785\uB825 \uC911",
|
|
2324
|
+
isTyping: "\uC785\uB825 \uC911..."
|
|
2325
|
+
},
|
|
2326
|
+
messageList: {
|
|
2327
|
+
emptyState: "\uC544\uC9C1 \uBA54\uC2DC\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. \uB300\uD654\uB97C \uC2DC\uC791\uD558\uC138\uC694!"
|
|
2328
|
+
},
|
|
2329
|
+
attachmentList: {
|
|
2330
|
+
remove: "\uC81C\uAC70",
|
|
2331
|
+
uploadFailed: "\uC5C5\uB85C\uB4DC \uC2E4\uD328"
|
|
2332
|
+
},
|
|
2333
|
+
header: {
|
|
2334
|
+
enterFullscreen: "\uC804\uCCB4 \uD654\uBA74",
|
|
2335
|
+
exitFullscreen: "\uC804\uCCB4 \uD654\uBA74 \uC885\uB8CC",
|
|
2336
|
+
closeChat: "\uCC44\uD305 \uB2EB\uAE30",
|
|
2337
|
+
lightMode: "\uB77C\uC774\uD2B8 \uBAA8\uB4DC",
|
|
2338
|
+
darkMode: "\uB2E4\uD06C \uBAA8\uB4DC",
|
|
2339
|
+
autoMode: "\uC2DC\uC2A4\uD15C \uD14C\uB9C8"
|
|
2340
|
+
},
|
|
2341
|
+
floatingButton: {
|
|
2342
|
+
openChat: "\uCC44\uD305 \uC5F4\uAE30",
|
|
2343
|
+
closeChat: "\uCC44\uD305 \uB2EB\uAE30"
|
|
2344
|
+
},
|
|
2345
|
+
push: {
|
|
2346
|
+
title: "\uC54C\uB9BC",
|
|
2347
|
+
description: "\uCC44\uD305\uC774 \uB2EB\uD600 \uC788\uC5B4\uB3C4 \uBA54\uC2DC\uC9C0 \uC218\uC2E0",
|
|
2348
|
+
enable: "\uC54C\uB9BC \uD65C\uC131\uD654",
|
|
2349
|
+
disable: "\uC54C\uB9BC \uBE44\uD65C\uC131\uD654",
|
|
2350
|
+
denied: "\uC54C\uB9BC\uC774 \uCC28\uB2E8\uB428",
|
|
2351
|
+
unsupported: "\uC54C\uB9BC\uC774 \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC74C",
|
|
2352
|
+
subscribing: "\uAD6C\uB3C5 \uC911...",
|
|
2353
|
+
notifications: "\uC54C\uB9BC"
|
|
2354
|
+
},
|
|
2355
|
+
notification: {
|
|
2356
|
+
openChat: "\uCC44\uD305 \uC5F4\uAE30",
|
|
2357
|
+
dismiss: "\uB2EB\uAE30"
|
|
2358
|
+
},
|
|
2359
|
+
common: {
|
|
2360
|
+
loading: "\uB85C\uB529 \uC911...",
|
|
2361
|
+
error: "\uC624\uB958",
|
|
2362
|
+
retry: "\uC7AC\uC2DC\uB3C4",
|
|
2363
|
+
cancel: "\uCDE8\uC18C",
|
|
2364
|
+
download: "\uB2E4\uC6B4\uB85C\uB4DC"
|
|
2365
|
+
}
|
|
2366
|
+
};
|
|
2367
|
+
|
|
2368
|
+
// src/i18n/locales/vi.json
|
|
2369
|
+
var vi_default = {
|
|
2370
|
+
direction: "ltr",
|
|
2371
|
+
chatWidget: {
|
|
2372
|
+
title: "Tr\xF2 chuy\u1EC7n",
|
|
2373
|
+
placeholder: "Nh\u1EADp tin nh\u1EAFn...",
|
|
2374
|
+
openChat: "M\u1EDF tr\xF2 chuy\u1EC7n",
|
|
2375
|
+
closeChat: "\u0110\xF3ng tr\xF2 chuy\u1EC7n",
|
|
2376
|
+
connectionStatus: {
|
|
2377
|
+
connected: "\u0110\xE3 k\u1EBFt n\u1ED1i",
|
|
2378
|
+
disconnected: "\u0110\xE3 ng\u1EAFt k\u1EBFt n\u1ED1i"
|
|
2379
|
+
}
|
|
2380
|
+
},
|
|
2381
|
+
inputArea: {
|
|
2382
|
+
send: "G\u1EEDi",
|
|
2383
|
+
uploading: "\u0110ang t\u1EA3i l\xEAn...",
|
|
2384
|
+
dropzone: {
|
|
2385
|
+
dropFiles: "Th\u1EA3 t\u1EC7p t\u1EA1i \u0111\xE2y",
|
|
2386
|
+
dropOrClick: "Th\u1EA3 ho\u1EB7c nh\u1EA5p \u0111\u1EC3 \u0111\xEDnh k\xE8m"
|
|
2387
|
+
}
|
|
2388
|
+
},
|
|
2389
|
+
typingIndicator: {
|
|
2390
|
+
typing: "\u0111ang nh\u1EADp",
|
|
2391
|
+
isTyping: "\u0111ang nh\u1EADp..."
|
|
2392
|
+
},
|
|
2393
|
+
messageList: {
|
|
2394
|
+
emptyState: "Ch\u01B0a c\xF3 tin nh\u1EAFn n\xE0o. H\xE3y b\u1EAFt \u0111\u1EA7u cu\u1ED9c tr\xF2 chuy\u1EC7n!"
|
|
2395
|
+
},
|
|
2396
|
+
attachmentList: {
|
|
2397
|
+
remove: "X\xF3a",
|
|
2398
|
+
uploadFailed: "T\u1EA3i l\xEAn th\u1EA5t b\u1EA1i"
|
|
2399
|
+
},
|
|
2400
|
+
header: {
|
|
2401
|
+
enterFullscreen: "To\xE0n m\xE0n h\xECnh",
|
|
2402
|
+
exitFullscreen: "Tho\xE1t to\xE0n m\xE0n h\xECnh",
|
|
2403
|
+
closeChat: "\u0110\xF3ng tr\xF2 chuy\u1EC7n",
|
|
2404
|
+
lightMode: "Ch\u1EBF \u0111\u1ED9 s\xE1ng",
|
|
2405
|
+
darkMode: "Ch\u1EBF \u0111\u1ED9 t\u1ED1i",
|
|
2406
|
+
autoMode: "Giao di\u1EC7n h\u1EC7 th\u1ED1ng"
|
|
2407
|
+
},
|
|
2408
|
+
floatingButton: {
|
|
2409
|
+
openChat: "M\u1EDF tr\xF2 chuy\u1EC7n",
|
|
2410
|
+
closeChat: "\u0110\xF3ng tr\xF2 chuy\u1EC7n"
|
|
2411
|
+
},
|
|
2412
|
+
push: {
|
|
2413
|
+
title: "Th\xF4ng b\xE1o",
|
|
2414
|
+
description: "Nh\u1EADn tin nh\u1EAFn ngay c\u1EA3 khi tr\xF2 chuy\u1EC7n \u0111\xE3 \u0111\xF3ng",
|
|
2415
|
+
enable: "B\u1EADt th\xF4ng b\xE1o",
|
|
2416
|
+
disable: "T\u1EAFt th\xF4ng b\xE1o",
|
|
2417
|
+
denied: "Th\xF4ng b\xE1o b\u1ECB ch\u1EB7n",
|
|
2418
|
+
unsupported: "Th\xF4ng b\xE1o kh\xF4ng \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3",
|
|
2419
|
+
subscribing: "\u0110ang \u0111\u0103ng k\xFD...",
|
|
2420
|
+
notifications: "Th\xF4ng b\xE1o"
|
|
2421
|
+
},
|
|
2422
|
+
notification: {
|
|
2423
|
+
openChat: "M\u1EDF Tr\xF2 chuy\u1EC7n",
|
|
2424
|
+
dismiss: "B\u1ECF qua"
|
|
2425
|
+
},
|
|
2426
|
+
common: {
|
|
2427
|
+
loading: "\u0110ang t\u1EA3i...",
|
|
2428
|
+
error: "L\u1ED7i",
|
|
2429
|
+
retry: "Th\u1EED l\u1EA1i",
|
|
2430
|
+
cancel: "H\u1EE7y",
|
|
2431
|
+
download: "T\u1EA3i xu\u1ED1ng"
|
|
2432
|
+
}
|
|
2433
|
+
};
|
|
2434
|
+
|
|
2435
|
+
// src/i18n/locales/th.json
|
|
2436
|
+
var th_default = {
|
|
2437
|
+
direction: "ltr",
|
|
2438
|
+
chatWidget: {
|
|
2439
|
+
title: "\u0E41\u0E0A\u0E17",
|
|
2440
|
+
placeholder: "\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21...",
|
|
2441
|
+
openChat: "\u0E40\u0E1B\u0E34\u0E14\u0E41\u0E0A\u0E17",
|
|
2442
|
+
closeChat: "\u0E1B\u0E34\u0E14\u0E41\u0E0A\u0E17",
|
|
2443
|
+
connectionStatus: {
|
|
2444
|
+
connected: "\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D\u0E41\u0E25\u0E49\u0E27",
|
|
2445
|
+
disconnected: "\u0E15\u0E31\u0E14\u0E01\u0E32\u0E23\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D\u0E41\u0E25\u0E49\u0E27"
|
|
2446
|
+
}
|
|
2447
|
+
},
|
|
2448
|
+
inputArea: {
|
|
2449
|
+
send: "\u0E2A\u0E48\u0E07",
|
|
2450
|
+
uploading: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14...",
|
|
2451
|
+
dropzone: {
|
|
2452
|
+
dropFiles: "\u0E27\u0E32\u0E07\u0E44\u0E1F\u0E25\u0E4C\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48",
|
|
2453
|
+
dropOrClick: "\u0E27\u0E32\u0E07\u0E2B\u0E23\u0E37\u0E2D\u0E04\u0E25\u0E34\u0E01\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E41\u0E19\u0E1A"
|
|
2454
|
+
}
|
|
2455
|
+
},
|
|
2456
|
+
typingIndicator: {
|
|
2457
|
+
typing: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E1E\u0E34\u0E21\u0E1E\u0E4C",
|
|
2458
|
+
isTyping: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E1E\u0E34\u0E21\u0E1E\u0E4C..."
|
|
2459
|
+
},
|
|
2460
|
+
messageList: {
|
|
2461
|
+
emptyState: "\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21 \u0E40\u0E23\u0E34\u0E48\u0E21\u0E01\u0E32\u0E23\u0E2A\u0E19\u0E17\u0E19\u0E32!"
|
|
2462
|
+
},
|
|
2463
|
+
attachmentList: {
|
|
2464
|
+
remove: "\u0E25\u0E1A",
|
|
2465
|
+
uploadFailed: "\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14\u0E25\u0E49\u0E21\u0E40\u0E2B\u0E25\u0E27"
|
|
2466
|
+
},
|
|
2467
|
+
header: {
|
|
2468
|
+
enterFullscreen: "\u0E40\u0E15\u0E47\u0E21\u0E2B\u0E19\u0E49\u0E32\u0E08\u0E2D",
|
|
2469
|
+
exitFullscreen: "\u0E2D\u0E2D\u0E01\u0E08\u0E32\u0E01\u0E40\u0E15\u0E47\u0E21\u0E2B\u0E19\u0E49\u0E32\u0E08\u0E2D",
|
|
2470
|
+
closeChat: "\u0E1B\u0E34\u0E14\u0E41\u0E0A\u0E17",
|
|
2471
|
+
lightMode: "\u0E42\u0E2B\u0E21\u0E14\u0E2A\u0E27\u0E48\u0E32\u0E07",
|
|
2472
|
+
darkMode: "\u0E42\u0E2B\u0E21\u0E14\u0E21\u0E37\u0E14",
|
|
2473
|
+
autoMode: "\u0E18\u0E35\u0E21\u0E23\u0E30\u0E1A\u0E1A"
|
|
2474
|
+
},
|
|
2475
|
+
floatingButton: {
|
|
2476
|
+
openChat: "\u0E40\u0E1B\u0E34\u0E14\u0E41\u0E0A\u0E17",
|
|
2477
|
+
closeChat: "\u0E1B\u0E34\u0E14\u0E41\u0E0A\u0E17"
|
|
2478
|
+
},
|
|
2479
|
+
push: {
|
|
2480
|
+
title: "\u0E01\u0E32\u0E23\u0E41\u0E08\u0E49\u0E07\u0E40\u0E15\u0E37\u0E2D\u0E19",
|
|
2481
|
+
description: "\u0E23\u0E31\u0E1A\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E21\u0E49\u0E43\u0E19\u0E02\u0E13\u0E30\u0E17\u0E35\u0E48\u0E1B\u0E34\u0E14\u0E41\u0E0A\u0E17\u0E2D\u0E22\u0E39\u0E48",
|
|
2482
|
+
enable: "\u0E40\u0E1B\u0E34\u0E14\u0E01\u0E32\u0E23\u0E41\u0E08\u0E49\u0E07\u0E40\u0E15\u0E37\u0E2D\u0E19",
|
|
2483
|
+
disable: "\u0E1B\u0E34\u0E14\u0E01\u0E32\u0E23\u0E41\u0E08\u0E49\u0E07\u0E40\u0E15\u0E37\u0E2D\u0E19",
|
|
2484
|
+
denied: "\u0E01\u0E32\u0E23\u0E41\u0E08\u0E49\u0E07\u0E40\u0E15\u0E37\u0E2D\u0E19\u0E16\u0E39\u0E01\u0E1A\u0E25\u0E47\u0E2D\u0E01",
|
|
2485
|
+
unsupported: "\u0E44\u0E21\u0E48\u0E23\u0E2D\u0E07\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E41\u0E08\u0E49\u0E07\u0E40\u0E15\u0E37\u0E2D\u0E19",
|
|
2486
|
+
subscribing: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E2A\u0E21\u0E31\u0E04\u0E23\u0E23\u0E31\u0E1A...",
|
|
2487
|
+
notifications: "\u0E01\u0E32\u0E23\u0E41\u0E08\u0E49\u0E07\u0E40\u0E15\u0E37\u0E2D\u0E19"
|
|
2488
|
+
},
|
|
2489
|
+
notification: {
|
|
2490
|
+
openChat: "\u0E40\u0E1B\u0E34\u0E14\u0E41\u0E0A\u0E17",
|
|
2491
|
+
dismiss: "\u0E1B\u0E34\u0E14"
|
|
2492
|
+
},
|
|
2493
|
+
common: {
|
|
2494
|
+
loading: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E42\u0E2B\u0E25\u0E14...",
|
|
2495
|
+
error: "\u0E02\u0E49\u0E2D\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14",
|
|
2496
|
+
retry: "\u0E25\u0E2D\u0E07\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07",
|
|
2497
|
+
cancel: "\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01",
|
|
2498
|
+
download: "\u0E14\u0E32\u0E27\u0E19\u0E4C\u0E42\u0E2B\u0E25\u0E14"
|
|
2499
|
+
}
|
|
2500
|
+
};
|
|
2501
|
+
|
|
2502
|
+
// src/i18n/locales/id.json
|
|
2503
|
+
var id_default = {
|
|
2504
|
+
direction: "ltr",
|
|
2505
|
+
chatWidget: {
|
|
2506
|
+
title: "Obrolan",
|
|
2507
|
+
placeholder: "Ketik pesan...",
|
|
2508
|
+
openChat: "Buka obrolan",
|
|
2509
|
+
closeChat: "Tutup obrolan",
|
|
2510
|
+
connectionStatus: {
|
|
2511
|
+
connected: "Terhubung",
|
|
2512
|
+
disconnected: "Terputus"
|
|
2513
|
+
}
|
|
2514
|
+
},
|
|
2515
|
+
inputArea: {
|
|
2516
|
+
send: "Kirim",
|
|
2517
|
+
uploading: "Mengunggah...",
|
|
2518
|
+
dropzone: {
|
|
2519
|
+
dropFiles: "Letakkan file di sini",
|
|
2520
|
+
dropOrClick: "Letakkan atau klik untuk melampirkan"
|
|
2521
|
+
}
|
|
2522
|
+
},
|
|
2523
|
+
typingIndicator: {
|
|
2524
|
+
typing: "mengetik",
|
|
2525
|
+
isTyping: "sedang mengetik..."
|
|
2526
|
+
},
|
|
2527
|
+
messageList: {
|
|
2528
|
+
emptyState: "Belum ada pesan. Mulai percakapan!"
|
|
2529
|
+
},
|
|
2530
|
+
attachmentList: {
|
|
2531
|
+
remove: "Hapus",
|
|
2532
|
+
uploadFailed: "Unggahan gagal"
|
|
2533
|
+
},
|
|
2534
|
+
header: {
|
|
2535
|
+
enterFullscreen: "Layar penuh",
|
|
2536
|
+
exitFullscreen: "Keluar layar penuh",
|
|
2537
|
+
closeChat: "Tutup obrolan",
|
|
2538
|
+
lightMode: "Mode terang",
|
|
2539
|
+
darkMode: "Mode gelap",
|
|
2540
|
+
autoMode: "Tema sistem"
|
|
2541
|
+
},
|
|
2542
|
+
floatingButton: {
|
|
2543
|
+
openChat: "Buka obrolan",
|
|
2544
|
+
closeChat: "Tutup obrolan"
|
|
2545
|
+
},
|
|
2546
|
+
push: {
|
|
2547
|
+
title: "Notifikasi",
|
|
2548
|
+
description: "Terima pesan bahkan saat obrolan tertutup",
|
|
2549
|
+
enable: "Aktifkan notifikasi",
|
|
2550
|
+
disable: "Nonaktifkan notifikasi",
|
|
2551
|
+
denied: "Notifikasi diblokir",
|
|
2552
|
+
unsupported: "Notifikasi tidak didukung",
|
|
2553
|
+
subscribing: "Berlangganan...",
|
|
2554
|
+
notifications: "Notifikasi"
|
|
2555
|
+
},
|
|
2556
|
+
notification: {
|
|
2557
|
+
openChat: "Buka Obrolan",
|
|
2558
|
+
dismiss: "Tutup"
|
|
2559
|
+
},
|
|
2560
|
+
common: {
|
|
2561
|
+
loading: "Memuat...",
|
|
2562
|
+
error: "Kesalahan",
|
|
2563
|
+
retry: "Coba lagi",
|
|
2564
|
+
cancel: "Batal",
|
|
2565
|
+
download: "Unduh"
|
|
2566
|
+
}
|
|
2567
|
+
};
|
|
2568
|
+
|
|
2569
|
+
// src/i18n/locales/hi.json
|
|
2570
|
+
var hi_default = {
|
|
2571
|
+
direction: "ltr",
|
|
2572
|
+
chatWidget: {
|
|
2573
|
+
title: "\u091A\u0948\u091F",
|
|
2574
|
+
placeholder: "\u0938\u0902\u0926\u0947\u0936 \u0932\u093F\u0916\u0947\u0902...",
|
|
2575
|
+
openChat: "\u091A\u0948\u091F \u0916\u094B\u0932\u0947\u0902",
|
|
2576
|
+
closeChat: "\u091A\u0948\u091F \u092C\u0902\u0926 \u0915\u0930\u0947\u0902",
|
|
2577
|
+
connectionStatus: {
|
|
2578
|
+
connected: "\u0915\u0928\u0947\u0915\u094D\u091F\u0947\u0921",
|
|
2579
|
+
disconnected: "\u0921\u093F\u0938\u094D\u0915\u0928\u0947\u0915\u094D\u091F\u0947\u0921"
|
|
2580
|
+
}
|
|
2581
|
+
},
|
|
2582
|
+
inputArea: {
|
|
2583
|
+
send: "\u092D\u0947\u091C\u0947\u0902",
|
|
2584
|
+
uploading: "\u0905\u092A\u0932\u094B\u0921 \u0939\u094B \u0930\u0939\u093E \u0939\u0948...",
|
|
2585
|
+
dropzone: {
|
|
2586
|
+
dropFiles: "\u092B\u093C\u093E\u0907\u0932\u0947\u0902 \u092F\u0939\u093E\u0902 \u091B\u094B\u0921\u093C\u0947\u0902",
|
|
2587
|
+
dropOrClick: "\u0938\u0902\u0932\u0917\u094D\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u091B\u094B\u0921\u093C\u0947\u0902 \u092F\u093E \u0915\u094D\u0932\u093F\u0915 \u0915\u0930\u0947\u0902"
|
|
2588
|
+
}
|
|
2589
|
+
},
|
|
2590
|
+
typingIndicator: {
|
|
2591
|
+
typing: "\u0932\u093F\u0916 \u0930\u0939\u093E \u0939\u0948",
|
|
2592
|
+
isTyping: "\u0932\u093F\u0916 \u0930\u0939\u093E \u0939\u0948..."
|
|
2593
|
+
},
|
|
2594
|
+
messageList: {
|
|
2595
|
+
emptyState: "\u0905\u092D\u0940 \u0924\u0915 \u0915\u094B\u0908 \u0938\u0902\u0926\u0947\u0936 \u0928\u0939\u0940\u0902\u0964 \u092C\u093E\u0924\u091A\u0940\u0924 \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902!"
|
|
2596
|
+
},
|
|
2597
|
+
attachmentList: {
|
|
2598
|
+
remove: "\u0939\u091F\u093E\u090F\u0902",
|
|
2599
|
+
uploadFailed: "\u0905\u092A\u0932\u094B\u0921 \u0935\u093F\u092B\u0932"
|
|
2600
|
+
},
|
|
2601
|
+
header: {
|
|
2602
|
+
enterFullscreen: "\u092A\u0942\u0930\u094D\u0923 \u0938\u094D\u0915\u094D\u0930\u0940\u0928",
|
|
2603
|
+
exitFullscreen: "\u092A\u0942\u0930\u094D\u0923 \u0938\u094D\u0915\u094D\u0930\u0940\u0928 \u0938\u0947 \u092C\u093E\u0939\u0930 \u0928\u093F\u0915\u0932\u0947\u0902",
|
|
2604
|
+
closeChat: "\u091A\u0948\u091F \u092C\u0902\u0926 \u0915\u0930\u0947\u0902",
|
|
2605
|
+
lightMode: "\u0932\u093E\u0907\u091F \u092E\u094B\u0921",
|
|
2606
|
+
darkMode: "\u0921\u093E\u0930\u094D\u0915 \u092E\u094B\u0921",
|
|
2607
|
+
autoMode: "\u0938\u093F\u0938\u094D\u091F\u092E \u0925\u0940\u092E"
|
|
2608
|
+
},
|
|
2609
|
+
floatingButton: {
|
|
2610
|
+
openChat: "\u091A\u0948\u091F \u0916\u094B\u0932\u0947\u0902",
|
|
2611
|
+
closeChat: "\u091A\u0948\u091F \u092C\u0902\u0926 \u0915\u0930\u0947\u0902"
|
|
2612
|
+
},
|
|
2613
|
+
push: {
|
|
2614
|
+
title: "\u0938\u0942\u091A\u0928\u093E\u090F\u0902",
|
|
2615
|
+
description: "\u091A\u0948\u091F \u092C\u0902\u0926 \u0939\u094B\u0928\u0947 \u092A\u0930 \u092D\u0940 \u0938\u0902\u0926\u0947\u0936 \u092A\u094D\u0930\u093E\u092A\u094D\u0924 \u0915\u0930\u0947\u0902",
|
|
2616
|
+
enable: "\u0938\u0942\u091A\u0928\u093E\u090F\u0902 \u0938\u0915\u094D\u0937\u092E \u0915\u0930\u0947\u0902",
|
|
2617
|
+
disable: "\u0938\u0942\u091A\u0928\u093E\u090F\u0902 \u0905\u0915\u094D\u0937\u092E \u0915\u0930\u0947\u0902",
|
|
2618
|
+
denied: "\u0938\u0942\u091A\u0928\u093E\u090F\u0902 \u0905\u0935\u0930\u0941\u0926\u094D\u0927",
|
|
2619
|
+
unsupported: "\u0938\u0942\u091A\u0928\u093E\u090F\u0902 \u0938\u092E\u0930\u094D\u0925\u093F\u0924 \u0928\u0939\u0940\u0902",
|
|
2620
|
+
subscribing: "\u0938\u092C\u094D\u0938\u0915\u094D\u0930\u093E\u0907\u092C \u0939\u094B \u0930\u0939\u093E \u0939\u0948...",
|
|
2621
|
+
notifications: "\u0938\u0942\u091A\u0928\u093E\u090F\u0902"
|
|
2622
|
+
},
|
|
2623
|
+
notification: {
|
|
2624
|
+
openChat: "\u091A\u0948\u091F \u0916\u094B\u0932\u0947\u0902",
|
|
2625
|
+
dismiss: "\u0916\u093E\u0930\u093F\u091C \u0915\u0930\u0947\u0902"
|
|
2626
|
+
},
|
|
2627
|
+
common: {
|
|
2628
|
+
loading: "\u0932\u094B\u0921 \u0939\u094B \u0930\u0939\u093E \u0939\u0948...",
|
|
2629
|
+
error: "\u0924\u094D\u0930\u0941\u091F\u093F",
|
|
2630
|
+
retry: "\u092A\u0941\u0928\u0903 \u092A\u094D\u0930\u092F\u093E\u0938 \u0915\u0930\u0947\u0902",
|
|
2631
|
+
cancel: "\u0930\u0926\u094D\u0926 \u0915\u0930\u0947\u0902",
|
|
2632
|
+
download: "\u0921\u093E\u0909\u0928\u0932\u094B\u0921 \u0915\u0930\u0947\u0902"
|
|
747
2633
|
}
|
|
748
2634
|
};
|
|
749
2635
|
|
|
750
|
-
// src/i18n/locales/
|
|
751
|
-
var
|
|
2636
|
+
// src/i18n/locales/ar.json
|
|
2637
|
+
var ar_default = {
|
|
2638
|
+
direction: "rtl",
|
|
752
2639
|
chatWidget: {
|
|
753
|
-
title: "
|
|
754
|
-
placeholder: "
|
|
755
|
-
openChat: "
|
|
756
|
-
closeChat: "
|
|
2640
|
+
title: "\u0627\u0644\u062F\u0631\u062F\u0634\u0629",
|
|
2641
|
+
placeholder: "\u0627\u0643\u062A\u0628 \u0631\u0633\u0627\u0644\u0629...",
|
|
2642
|
+
openChat: "\u0641\u062A\u062D \u0627\u0644\u062F\u0631\u062F\u0634\u0629",
|
|
2643
|
+
closeChat: "\u0625\u063A\u0644\u0627\u0642 \u0627\u0644\u062F\u0631\u062F\u0634\u0629",
|
|
757
2644
|
connectionStatus: {
|
|
758
|
-
connected: "
|
|
759
|
-
disconnected: "
|
|
2645
|
+
connected: "\u0645\u062A\u0635\u0644",
|
|
2646
|
+
disconnected: "\u063A\u064A\u0631 \u0645\u062A\u0635\u0644"
|
|
760
2647
|
}
|
|
761
2648
|
},
|
|
762
2649
|
inputArea: {
|
|
763
|
-
send: "
|
|
764
|
-
uploading: "
|
|
2650
|
+
send: "\u0625\u0631\u0633\u0627\u0644",
|
|
2651
|
+
uploading: "\u062C\u0627\u0631\u064D \u0627\u0644\u0631\u0641\u0639...",
|
|
765
2652
|
dropzone: {
|
|
766
|
-
dropFiles: "
|
|
767
|
-
dropOrClick: "
|
|
2653
|
+
dropFiles: "\u0623\u0633\u0642\u0637 \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0647\u0646\u0627",
|
|
2654
|
+
dropOrClick: "\u0623\u0633\u0642\u0637 \u0623\u0648 \u0627\u0646\u0642\u0631 \u0644\u0644\u0625\u0631\u0641\u0627\u0642"
|
|
768
2655
|
}
|
|
769
2656
|
},
|
|
770
2657
|
typingIndicator: {
|
|
771
|
-
typing: "
|
|
772
|
-
isTyping: "
|
|
2658
|
+
typing: "\u064A\u0643\u062A\u0628",
|
|
2659
|
+
isTyping: "\u064A\u0643\u062A\u0628..."
|
|
773
2660
|
},
|
|
774
2661
|
messageList: {
|
|
775
|
-
emptyState: "
|
|
2662
|
+
emptyState: "\u0644\u0627 \u062A\u0648\u062C\u062F \u0631\u0633\u0627\u0626\u0644 \u0628\u0639\u062F. \u0627\u0628\u062F\u0623 \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629!"
|
|
776
2663
|
},
|
|
777
2664
|
attachmentList: {
|
|
778
|
-
remove: "
|
|
779
|
-
uploadFailed: "
|
|
2665
|
+
remove: "\u0625\u0632\u0627\u0644\u0629",
|
|
2666
|
+
uploadFailed: "\u0641\u0634\u0644 \u0627\u0644\u0631\u0641\u0639"
|
|
780
2667
|
},
|
|
781
2668
|
header: {
|
|
782
|
-
enterFullscreen: "
|
|
783
|
-
exitFullscreen: "
|
|
784
|
-
closeChat: "
|
|
2669
|
+
enterFullscreen: "\u062F\u062E\u0648\u0644 \u0648\u0636\u0639 \u0627\u0644\u0645\u0644\u0621",
|
|
2670
|
+
exitFullscreen: "\u062E\u0631\u0648\u062C \u0645\u0646 \u0648\u0636\u0639 \u0627\u0644\u0645\u0644\u0621",
|
|
2671
|
+
closeChat: "\u0625\u063A\u0644\u0627\u0642 \u0627\u0644\u062F\u0631\u062F\u0634\u0629",
|
|
2672
|
+
lightMode: "\u0648\u0636\u0639 \u0641\u0627\u062A\u062D",
|
|
2673
|
+
darkMode: "\u0648\u0636\u0639 \u062F\u0627\u0643\u0646",
|
|
2674
|
+
autoMode: "\u062A\u0644\u0642\u0627\u0626\u064A"
|
|
785
2675
|
},
|
|
786
2676
|
floatingButton: {
|
|
787
|
-
openChat: "
|
|
788
|
-
closeChat: "
|
|
2677
|
+
openChat: "\u0641\u062A\u062D \u0627\u0644\u062F\u0631\u062F\u0634\u0629",
|
|
2678
|
+
closeChat: "\u0625\u063A\u0644\u0627\u0642 \u0627\u0644\u062F\u0631\u062F\u0634\u0629"
|
|
2679
|
+
},
|
|
2680
|
+
push: {
|
|
2681
|
+
title: "\u0627\u0644\u0625\u0634\u0639\u0627\u0631\u0627\u062A",
|
|
2682
|
+
description: "\u0627\u0633\u062A\u0644\u0645 \u0627\u0644\u0631\u0633\u0627\u0626\u0644 \u062D\u062A\u0649 \u0639\u0646\u062F \u0625\u063A\u0644\u0627\u0642 \u0627\u0644\u062F\u0631\u062F\u0634\u0629",
|
|
2683
|
+
enable: "\u062A\u0641\u0639\u064A\u0644 \u0627\u0644\u0625\u0634\u0639\u0627\u0631\u0627\u062A",
|
|
2684
|
+
disable: "\u062A\u0639\u0637\u064A\u0644 \u0627\u0644\u0625\u0634\u0639\u0627\u0631\u0627\u062A",
|
|
2685
|
+
denied: "\u0627\u0644\u0625\u0634\u0639\u0627\u0631\u0627\u062A \u0645\u062D\u0638\u0648\u0631\u0629",
|
|
2686
|
+
unsupported: "\u0627\u0644\u0625\u0634\u0639\u0627\u0631\u0627\u062A \u063A\u064A\u0631 \u0645\u062F\u0639\u0648\u0645\u0629",
|
|
2687
|
+
subscribing: "\u062C\u0627\u0631\u064D \u0627\u0644\u0627\u0634\u062A\u0631\u0627\u0643...",
|
|
2688
|
+
notifications: "\u0627\u0644\u0625\u0634\u0639\u0627\u0631\u0627\u062A"
|
|
2689
|
+
},
|
|
2690
|
+
notification: {
|
|
2691
|
+
openChat: "\u0641\u062A\u062D \u0627\u0644\u062F\u0631\u062F\u0634\u0629",
|
|
2692
|
+
dismiss: "\u062A\u062C\u0627\u0647\u0644"
|
|
789
2693
|
},
|
|
790
2694
|
common: {
|
|
791
|
-
loading: "
|
|
792
|
-
error: "
|
|
793
|
-
retry: "
|
|
794
|
-
cancel: "
|
|
795
|
-
download: "
|
|
2695
|
+
loading: "\u062C\u0627\u0631\u064D \u0627\u0644\u062A\u062D\u0645\u064A\u0644...",
|
|
2696
|
+
error: "\u062E\u0637\u0623",
|
|
2697
|
+
retry: "\u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629",
|
|
2698
|
+
cancel: "\u0625\u0644\u063A\u0627\u0621",
|
|
2699
|
+
download: "\u062A\u0646\u0632\u064A\u0644"
|
|
796
2700
|
}
|
|
797
2701
|
};
|
|
798
2702
|
|
|
@@ -817,7 +2721,33 @@ var systemLocales = {
|
|
|
817
2721
|
pt: pt_default,
|
|
818
2722
|
"pt-BR": deepMerge(pt_default, pt_BR_default),
|
|
819
2723
|
"pt-PT": deepMerge(pt_default, pt_PT_default),
|
|
820
|
-
es: es_default
|
|
2724
|
+
es: es_default,
|
|
2725
|
+
da: da_default,
|
|
2726
|
+
sv: sv_default,
|
|
2727
|
+
nb: nb_default,
|
|
2728
|
+
fi: fi_default,
|
|
2729
|
+
fr: fr_default,
|
|
2730
|
+
de: de_default,
|
|
2731
|
+
it: it_default,
|
|
2732
|
+
nl: nl_default,
|
|
2733
|
+
pl: pl_default,
|
|
2734
|
+
cs: cs_default,
|
|
2735
|
+
ro: ro_default,
|
|
2736
|
+
hu: hu_default,
|
|
2737
|
+
uk: uk_default,
|
|
2738
|
+
ru: ru_default,
|
|
2739
|
+
el: el_default,
|
|
2740
|
+
tr: tr_default,
|
|
2741
|
+
et: et_default,
|
|
2742
|
+
ja: ja_default,
|
|
2743
|
+
"zh-CN": zh_CN_default,
|
|
2744
|
+
"zh-TW": zh_TW_default,
|
|
2745
|
+
ko: ko_default,
|
|
2746
|
+
vi: vi_default,
|
|
2747
|
+
th: th_default,
|
|
2748
|
+
id: id_default,
|
|
2749
|
+
hi: hi_default,
|
|
2750
|
+
ar: ar_default
|
|
821
2751
|
};
|
|
822
2752
|
function registerLocale(locale, strings) {
|
|
823
2753
|
systemLocales[locale] = strings;
|
|
@@ -859,7 +2789,7 @@ function LocaleProvider({ children, locale }) {
|
|
|
859
2789
|
}
|
|
860
2790
|
return typeof current === "string" ? current : path;
|
|
861
2791
|
};
|
|
862
|
-
return { locale: config.locale, strings, t };
|
|
2792
|
+
return { locale: config.locale, dir: strings.direction, strings, t };
|
|
863
2793
|
}, [config.locale, config.overrides]);
|
|
864
2794
|
return /* @__PURE__ */ jsx(LocaleContext.Provider, { value, children });
|
|
865
2795
|
}
|
|
@@ -869,6 +2799,7 @@ function useLocale() {
|
|
|
869
2799
|
const strings = mergeLocale("en");
|
|
870
2800
|
return {
|
|
871
2801
|
locale: "en",
|
|
2802
|
+
dir: strings.direction,
|
|
872
2803
|
strings,
|
|
873
2804
|
t: (path) => {
|
|
874
2805
|
const parts = path.split(".");
|
|
@@ -967,9 +2898,18 @@ function Header({
|
|
|
967
2898
|
isConnected = true,
|
|
968
2899
|
className,
|
|
969
2900
|
theme,
|
|
970
|
-
onThemeChange
|
|
2901
|
+
onThemeChange,
|
|
2902
|
+
pushStatus,
|
|
2903
|
+
onPushToggle
|
|
971
2904
|
}) {
|
|
972
2905
|
const { t } = useLocale();
|
|
2906
|
+
const pushLabel = (() => {
|
|
2907
|
+
if (!pushStatus) return "";
|
|
2908
|
+
if (pushStatus === "subscribed") return t("push.disable");
|
|
2909
|
+
if (pushStatus === "denied") return t("push.denied");
|
|
2910
|
+
if (pushStatus === "subscribing") return t("push.subscribing");
|
|
2911
|
+
return t("push.enable");
|
|
2912
|
+
})();
|
|
973
2913
|
return /* @__PURE__ */ jsxs2(
|
|
974
2914
|
"div",
|
|
975
2915
|
{
|
|
@@ -989,6 +2929,66 @@ function Header({
|
|
|
989
2929
|
/* @__PURE__ */ jsx3("h2", { className: "m-0 text-base font-semibold text-chat-text", children: title })
|
|
990
2930
|
] }),
|
|
991
2931
|
/* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-1", children: [
|
|
2932
|
+
onPushToggle && pushStatus && pushStatus !== "unsupported" && /* @__PURE__ */ jsx3(
|
|
2933
|
+
"button",
|
|
2934
|
+
{
|
|
2935
|
+
onClick: onPushToggle,
|
|
2936
|
+
className: "p-1 bg-transparent border-none cursor-pointer text-chat-text-secondary rounded hover:bg-chat-surface transition",
|
|
2937
|
+
"data-chat-push-toggle": "true",
|
|
2938
|
+
"aria-label": pushLabel,
|
|
2939
|
+
title: pushLabel,
|
|
2940
|
+
children: pushStatus === "subscribed" ? /* @__PURE__ */ jsxs2(
|
|
2941
|
+
"svg",
|
|
2942
|
+
{
|
|
2943
|
+
width: "18",
|
|
2944
|
+
height: "18",
|
|
2945
|
+
viewBox: "0 0 24 24",
|
|
2946
|
+
fill: "currentColor",
|
|
2947
|
+
stroke: "currentColor",
|
|
2948
|
+
strokeWidth: "1",
|
|
2949
|
+
strokeLinecap: "round",
|
|
2950
|
+
strokeLinejoin: "round",
|
|
2951
|
+
children: [
|
|
2952
|
+
/* @__PURE__ */ jsx3("path", { d: "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9" }),
|
|
2953
|
+
/* @__PURE__ */ jsx3("path", { d: "M13.73 21a2 2 0 0 1-3.46 0" })
|
|
2954
|
+
]
|
|
2955
|
+
}
|
|
2956
|
+
) : pushStatus === "denied" ? /* @__PURE__ */ jsxs2(
|
|
2957
|
+
"svg",
|
|
2958
|
+
{
|
|
2959
|
+
width: "18",
|
|
2960
|
+
height: "18",
|
|
2961
|
+
viewBox: "0 0 24 24",
|
|
2962
|
+
fill: "none",
|
|
2963
|
+
stroke: "currentColor",
|
|
2964
|
+
strokeWidth: "2",
|
|
2965
|
+
strokeLinecap: "round",
|
|
2966
|
+
strokeLinejoin: "round",
|
|
2967
|
+
children: [
|
|
2968
|
+
/* @__PURE__ */ jsx3("path", { d: "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9" }),
|
|
2969
|
+
/* @__PURE__ */ jsx3("path", { d: "M13.73 21a2 2 0 0 1-3.46 0" }),
|
|
2970
|
+
/* @__PURE__ */ jsx3("line", { x1: "1", y1: "1", x2: "23", y2: "23" })
|
|
2971
|
+
]
|
|
2972
|
+
}
|
|
2973
|
+
) : /* @__PURE__ */ jsxs2(
|
|
2974
|
+
"svg",
|
|
2975
|
+
{
|
|
2976
|
+
width: "18",
|
|
2977
|
+
height: "18",
|
|
2978
|
+
viewBox: "0 0 24 24",
|
|
2979
|
+
fill: "none",
|
|
2980
|
+
stroke: "currentColor",
|
|
2981
|
+
strokeWidth: "2",
|
|
2982
|
+
strokeLinecap: "round",
|
|
2983
|
+
strokeLinejoin: "round",
|
|
2984
|
+
children: [
|
|
2985
|
+
/* @__PURE__ */ jsx3("path", { d: "M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9" }),
|
|
2986
|
+
/* @__PURE__ */ jsx3("path", { d: "M13.73 21a2 2 0 0 1-3.46 0" })
|
|
2987
|
+
]
|
|
2988
|
+
}
|
|
2989
|
+
)
|
|
2990
|
+
}
|
|
2991
|
+
),
|
|
992
2992
|
onThemeChange && /* @__PURE__ */ jsx3(
|
|
993
2993
|
"button",
|
|
994
2994
|
{
|
|
@@ -1409,7 +3409,21 @@ function MessageContent({ message, onActionClick }) {
|
|
|
1409
3409
|
className: "inline-flex items-center gap-2 px-3 py-2 bg-chat-surface rounded text-sm no-underline text-chat-text hover:bg-chat-background transition",
|
|
1410
3410
|
"data-chat-attachment": attachment.id,
|
|
1411
3411
|
children: [
|
|
1412
|
-
|
|
3412
|
+
/* @__PURE__ */ jsx10(
|
|
3413
|
+
"svg",
|
|
3414
|
+
{
|
|
3415
|
+
width: "16",
|
|
3416
|
+
height: "16",
|
|
3417
|
+
viewBox: "0 0 24 24",
|
|
3418
|
+
fill: "none",
|
|
3419
|
+
stroke: "currentColor",
|
|
3420
|
+
strokeWidth: "2",
|
|
3421
|
+
strokeLinecap: "round",
|
|
3422
|
+
strokeLinejoin: "round",
|
|
3423
|
+
className: "shrink-0",
|
|
3424
|
+
children: /* @__PURE__ */ jsx10("path", { d: "M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48" })
|
|
3425
|
+
}
|
|
3426
|
+
),
|
|
1413
3427
|
attachment.name
|
|
1414
3428
|
]
|
|
1415
3429
|
}
|
|
@@ -1952,10 +3966,83 @@ function TypingIndicator({ users = [] }) {
|
|
|
1952
3966
|
);
|
|
1953
3967
|
}
|
|
1954
3968
|
|
|
3969
|
+
// src/components/PushPermissionPrompt.tsx
|
|
3970
|
+
import { useState as useState9 } from "react";
|
|
3971
|
+
import { jsx as jsx16, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
3972
|
+
function PushPermissionPrompt({
|
|
3973
|
+
autoHide = true,
|
|
3974
|
+
title,
|
|
3975
|
+
description,
|
|
3976
|
+
onStatusChange,
|
|
3977
|
+
getVapidPublicKey,
|
|
3978
|
+
onSubscribe,
|
|
3979
|
+
onUnsubscribe
|
|
3980
|
+
}) {
|
|
3981
|
+
const { t } = useLocale();
|
|
3982
|
+
const { status, isSupported, isSubscribed, subscribe, unsubscribe } = usePushNotifications({
|
|
3983
|
+
enabled: true,
|
|
3984
|
+
getVapidPublicKey,
|
|
3985
|
+
onSubscribe,
|
|
3986
|
+
onUnsubscribe
|
|
3987
|
+
});
|
|
3988
|
+
const [dismissed, setDismissed] = useState9(false);
|
|
3989
|
+
if (!isSupported) return null;
|
|
3990
|
+
if (autoHide && (isSubscribed || status === "denied")) return null;
|
|
3991
|
+
if (dismissed) return null;
|
|
3992
|
+
const handleEnable = async () => {
|
|
3993
|
+
await subscribe();
|
|
3994
|
+
onStatusChange?.(true);
|
|
3995
|
+
};
|
|
3996
|
+
const handleDisable = async () => {
|
|
3997
|
+
await unsubscribe();
|
|
3998
|
+
onStatusChange?.(false);
|
|
3999
|
+
};
|
|
4000
|
+
return /* @__PURE__ */ jsxs12(
|
|
4001
|
+
"div",
|
|
4002
|
+
{
|
|
4003
|
+
className: "p-3 bg-chat-surface rounded-lg flex items-start gap-3",
|
|
4004
|
+
"data-chat-push-prompt": "true",
|
|
4005
|
+
children: [
|
|
4006
|
+
/* @__PURE__ */ jsxs12("div", { className: "flex-1", children: [
|
|
4007
|
+
/* @__PURE__ */ jsx16("div", { className: "font-semibold mb-1 text-chat-text", children: title || t("push.title") }),
|
|
4008
|
+
/* @__PURE__ */ jsx16("div", { className: "text-sm text-chat-text-secondary", children: description || t("push.description") })
|
|
4009
|
+
] }),
|
|
4010
|
+
/* @__PURE__ */ jsxs12("div", { className: "flex gap-2", children: [
|
|
4011
|
+
!isSubscribed && status !== "denied" && /* @__PURE__ */ jsx16(
|
|
4012
|
+
"button",
|
|
4013
|
+
{
|
|
4014
|
+
onClick: handleEnable,
|
|
4015
|
+
className: "px-3 py-1.5 bg-chat-primary text-white border-none rounded cursor-pointer text-sm hover:opacity-90",
|
|
4016
|
+
children: t("push.enable")
|
|
4017
|
+
}
|
|
4018
|
+
),
|
|
4019
|
+
isSubscribed && /* @__PURE__ */ jsx16(
|
|
4020
|
+
"button",
|
|
4021
|
+
{
|
|
4022
|
+
onClick: handleDisable,
|
|
4023
|
+
className: "px-3 py-1.5 bg-transparent text-chat-text-secondary border border-chat-border rounded cursor-pointer text-sm hover:bg-chat-surface",
|
|
4024
|
+
children: t("push.disable")
|
|
4025
|
+
}
|
|
4026
|
+
),
|
|
4027
|
+
/* @__PURE__ */ jsx16(
|
|
4028
|
+
"button",
|
|
4029
|
+
{
|
|
4030
|
+
onClick: () => setDismissed(true),
|
|
4031
|
+
className: "px-1.5 bg-transparent border-none cursor-pointer text-chat-text-secondary hover:text-chat-text",
|
|
4032
|
+
children: "\u2715"
|
|
4033
|
+
}
|
|
4034
|
+
)
|
|
4035
|
+
] })
|
|
4036
|
+
]
|
|
4037
|
+
}
|
|
4038
|
+
);
|
|
4039
|
+
}
|
|
4040
|
+
|
|
1955
4041
|
// src/components/ChatWidget.tsx
|
|
1956
|
-
import { Fragment as Fragment2, jsx as
|
|
4042
|
+
import { Fragment as Fragment2, jsx as jsx17, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1957
4043
|
function ChatWidget({
|
|
1958
4044
|
client,
|
|
4045
|
+
locale: localeProp,
|
|
1959
4046
|
initialMode = "floating",
|
|
1960
4047
|
theme: themeProp,
|
|
1961
4048
|
onThemeChange,
|
|
@@ -1964,7 +4051,7 @@ function ChatWidget({
|
|
|
1964
4051
|
showClose = true,
|
|
1965
4052
|
showFullscreenToggle = true,
|
|
1966
4053
|
title = "Chat",
|
|
1967
|
-
placeholder
|
|
4054
|
+
placeholder,
|
|
1968
4055
|
onOpen,
|
|
1969
4056
|
onClose,
|
|
1970
4057
|
embedded,
|
|
@@ -1973,19 +4060,34 @@ function ChatWidget({
|
|
|
1973
4060
|
uploadConfig,
|
|
1974
4061
|
accept,
|
|
1975
4062
|
maxFileSize,
|
|
1976
|
-
renderPushPrompt
|
|
4063
|
+
renderPushPrompt,
|
|
4064
|
+
preEntry,
|
|
4065
|
+
onChatStart,
|
|
4066
|
+
pushConfig
|
|
1977
4067
|
}) {
|
|
1978
4068
|
const {
|
|
1979
4069
|
config: iframeConfig,
|
|
1980
4070
|
isInIframe,
|
|
4071
|
+
isInWebView,
|
|
1981
4072
|
notifyMessage,
|
|
1982
4073
|
notifyViewportConfig,
|
|
1983
|
-
onNotificationClicked
|
|
4074
|
+
onNotificationClicked,
|
|
4075
|
+
pushState: bridgePushState,
|
|
4076
|
+
requestPushSubscribe,
|
|
4077
|
+
requestPushUnsubscribe
|
|
1984
4078
|
} = useBridge();
|
|
1985
|
-
const
|
|
4079
|
+
const hasBridgePush = (isInIframe || isInWebView) && bridgePushState !== null;
|
|
4080
|
+
const inBridge = isInIframe || isInWebView;
|
|
4081
|
+
const effectiveLocale = localeProp ?? (inBridge ? iframeConfig?.locale : void 0) ?? useLocale().locale;
|
|
4082
|
+
const merged = mergeLocale(effectiveLocale);
|
|
4083
|
+
const dir = merged.direction;
|
|
4084
|
+
useEffect9(() => {
|
|
4085
|
+
client.setLocaleHeader(effectiveLocale);
|
|
4086
|
+
}, [client, effectiveLocale]);
|
|
4087
|
+
const autoEmbedded = inBridge && embedded !== false;
|
|
1986
4088
|
const effectiveEmbedded = embedded === true || autoEmbedded;
|
|
1987
4089
|
const effectiveMode = effectiveEmbedded ? "embedded" : initialMode;
|
|
1988
|
-
const [theme, setTheme] =
|
|
4090
|
+
const [theme, setTheme] = useState10(() => {
|
|
1989
4091
|
if (themeProp) return themeProp;
|
|
1990
4092
|
try {
|
|
1991
4093
|
const stored = localStorage.getItem("chat-theme");
|
|
@@ -1994,7 +4096,7 @@ function ChatWidget({
|
|
|
1994
4096
|
}
|
|
1995
4097
|
return "auto";
|
|
1996
4098
|
});
|
|
1997
|
-
const [systemDark, setSystemDark] =
|
|
4099
|
+
const [systemDark, setSystemDark] = useState10(
|
|
1998
4100
|
() => typeof window !== "undefined" && window.matchMedia("(prefers-color-scheme: dark)").matches
|
|
1999
4101
|
);
|
|
2000
4102
|
const effectiveTheme = theme === "auto" ? systemDark ? "dark" : "light" : theme;
|
|
@@ -2022,10 +4124,19 @@ function ChatWidget({
|
|
|
2022
4124
|
}
|
|
2023
4125
|
onThemeChange?.(newTheme);
|
|
2024
4126
|
};
|
|
2025
|
-
const [isOpen, setIsOpen] =
|
|
2026
|
-
const [displayMode, setDisplayMode] =
|
|
2027
|
-
const [isConnected] =
|
|
2028
|
-
const [
|
|
4127
|
+
const [isOpen, setIsOpen] = useState10(effectiveMode === "fullscreen");
|
|
4128
|
+
const [displayMode, setDisplayMode] = useState10(effectiveMode);
|
|
4129
|
+
const [isConnected] = useState10(true);
|
|
4130
|
+
const [isPreEntry, setIsPreEntry] = useState10(Boolean(preEntry));
|
|
4131
|
+
const handleStart = useCallback6(
|
|
4132
|
+
(config) => {
|
|
4133
|
+
if (config) client.reconfigure(config);
|
|
4134
|
+
onChatStart?.(config);
|
|
4135
|
+
setIsPreEntry(false);
|
|
4136
|
+
},
|
|
4137
|
+
[client, onChatStart]
|
|
4138
|
+
);
|
|
4139
|
+
const [isSmallScreen, setIsSmallScreen] = useState10(
|
|
2029
4140
|
() => typeof window !== "undefined" && window.innerWidth < 800
|
|
2030
4141
|
);
|
|
2031
4142
|
useEffect9(() => {
|
|
@@ -2044,7 +4155,7 @@ function ChatWidget({
|
|
|
2044
4155
|
if (!isSmallScreen) setIsOpen(true);
|
|
2045
4156
|
}, [initialMode, isSmallScreen]);
|
|
2046
4157
|
useEffect9(() => {
|
|
2047
|
-
if (
|
|
4158
|
+
if (inBridge) {
|
|
2048
4159
|
notifyViewportConfig("interactive-widget=resizes-content");
|
|
2049
4160
|
return () => notifyViewportConfig("");
|
|
2050
4161
|
}
|
|
@@ -2061,14 +4172,44 @@ function ChatWidget({
|
|
|
2061
4172
|
meta.setAttribute("content", original);
|
|
2062
4173
|
};
|
|
2063
4174
|
}
|
|
2064
|
-
}, [isOpen, displayMode, isSmallScreen,
|
|
4175
|
+
}, [isOpen, displayMode, isSmallScreen, inBridge, notifyViewportConfig]);
|
|
2065
4176
|
const { messages, sendMessage, loading, isLoadingHistory, reloadMessages } = useMessages(
|
|
2066
4177
|
client,
|
|
2067
|
-
isOpen || effectiveEmbedded
|
|
4178
|
+
(isOpen || effectiveEmbedded) && !isPreEntry
|
|
2068
4179
|
);
|
|
2069
4180
|
const { isSomeoneTyping } = useTyping(client);
|
|
4181
|
+
const webPushEnabled = !!pushConfig && !hasBridgePush;
|
|
4182
|
+
const push = usePushNotifications({
|
|
4183
|
+
enabled: webPushEnabled,
|
|
4184
|
+
getVapidPublicKey: pushConfig?.getVapidPublicKey ?? (() => Promise.resolve("")),
|
|
4185
|
+
onSubscribe: pushConfig?.onSubscribe ?? (async () => {
|
|
4186
|
+
}),
|
|
4187
|
+
onUnsubscribe: pushConfig?.onUnsubscribe ?? (async () => {
|
|
4188
|
+
}),
|
|
4189
|
+
serviceWorkerUrl: pushConfig?.serviceWorkerUrl,
|
|
4190
|
+
serviceWorkerScope: pushConfig?.serviceWorkerScope,
|
|
4191
|
+
serviceWorkerType: pushConfig?.serviceWorkerType,
|
|
4192
|
+
notificationOptions: pushConfig?.notificationOptions
|
|
4193
|
+
});
|
|
4194
|
+
const handlePushToggle = useCallback6(() => {
|
|
4195
|
+
if (hasBridgePush) {
|
|
4196
|
+
if (bridgePushState === "subscribed") requestPushUnsubscribe();
|
|
4197
|
+
else requestPushSubscribe();
|
|
4198
|
+
} else {
|
|
4199
|
+
if (push.isSubscribed) push.unsubscribe();
|
|
4200
|
+
else push.subscribe();
|
|
4201
|
+
}
|
|
4202
|
+
}, [
|
|
4203
|
+
hasBridgePush,
|
|
4204
|
+
bridgePushState,
|
|
4205
|
+
requestPushSubscribe,
|
|
4206
|
+
requestPushUnsubscribe,
|
|
4207
|
+
push.isSubscribed,
|
|
4208
|
+
push.subscribe,
|
|
4209
|
+
push.unsubscribe
|
|
4210
|
+
]);
|
|
2070
4211
|
useEffect9(() => {
|
|
2071
|
-
if (!
|
|
4212
|
+
if (!inBridge || !iframeConfig) return;
|
|
2072
4213
|
if (iframeConfig.theme?.cssVariables) {
|
|
2073
4214
|
const root = document.documentElement;
|
|
2074
4215
|
for (const [key, value] of Object.entries(iframeConfig.theme.cssVariables)) {
|
|
@@ -2079,24 +4220,24 @@ function ChatWidget({
|
|
|
2079
4220
|
if (mode === "light" || mode === "dark" || mode === "auto") {
|
|
2080
4221
|
setTheme(mode);
|
|
2081
4222
|
}
|
|
2082
|
-
}, [
|
|
4223
|
+
}, [inBridge, iframeConfig]);
|
|
2083
4224
|
useEffect9(() => {
|
|
2084
|
-
if (!
|
|
4225
|
+
if (!inBridge) return;
|
|
2085
4226
|
onNotificationClicked(() => {
|
|
2086
4227
|
reloadMessages();
|
|
2087
4228
|
});
|
|
2088
|
-
}, [
|
|
2089
|
-
const effectiveTitle =
|
|
2090
|
-
const effectivePlaceholder =
|
|
4229
|
+
}, [inBridge, onNotificationClicked, reloadMessages]);
|
|
4230
|
+
const effectiveTitle = inBridge && iframeConfig?.title || title;
|
|
4231
|
+
const effectivePlaceholder = inBridge && iframeConfig?.placeholder || placeholder || merged.chatWidget.placeholder;
|
|
2091
4232
|
const currentUserId = "getCurrentUserId" in client ? client.getCurrentUserId() : "";
|
|
2092
4233
|
const handleSend = useCallback6(
|
|
2093
4234
|
async (text, attachments = []) => {
|
|
2094
4235
|
await sendMessage(text, attachments);
|
|
2095
|
-
if (
|
|
4236
|
+
if (inBridge) {
|
|
2096
4237
|
notifyMessage(text);
|
|
2097
4238
|
}
|
|
2098
4239
|
},
|
|
2099
|
-
[sendMessage,
|
|
4240
|
+
[sendMessage, inBridge, notifyMessage]
|
|
2100
4241
|
);
|
|
2101
4242
|
const handleActionClick = useCallback6(
|
|
2102
4243
|
(messageId, actionId, value) => {
|
|
@@ -2121,65 +4262,84 @@ function ChatWidget({
|
|
|
2121
4262
|
const close = useCallback6(() => {
|
|
2122
4263
|
setIsOpen(false);
|
|
2123
4264
|
setDisplayMode("floating");
|
|
4265
|
+
if (isInWebView) {
|
|
4266
|
+
window.__chatBridge?.send?.({ type: "chat-close" });
|
|
4267
|
+
} else if (isInIframe) {
|
|
4268
|
+
window.parent.postMessage({ type: "chat-close" }, "*");
|
|
4269
|
+
}
|
|
2124
4270
|
onClose?.();
|
|
2125
|
-
}, [onClose]);
|
|
4271
|
+
}, [onClose, isInIframe, isInWebView]);
|
|
2126
4272
|
const embeddedClose = useCallback6(() => {
|
|
2127
|
-
if (
|
|
4273
|
+
if (isInWebView) {
|
|
4274
|
+
window.__chatBridge?.send?.({ type: "chat-close" });
|
|
4275
|
+
} else if (isInIframe) {
|
|
2128
4276
|
window.parent.postMessage({ type: "chat-close" }, "*");
|
|
2129
4277
|
}
|
|
2130
|
-
}, [isInIframe]);
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
4278
|
+
}, [isInIframe, isInWebView]);
|
|
4279
|
+
const panelContent = /* @__PURE__ */ jsxs13(Fragment2, { children: [
|
|
4280
|
+
/* @__PURE__ */ jsx17(
|
|
4281
|
+
Header,
|
|
2134
4282
|
{
|
|
2135
|
-
|
|
2136
|
-
"
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
className: className?.header,
|
|
2147
|
-
theme,
|
|
2148
|
-
onThemeChange: handleThemeChange,
|
|
2149
|
-
onClose: isInIframe ? embeddedClose : void 0
|
|
2150
|
-
}
|
|
2151
|
-
),
|
|
2152
|
-
/* @__PURE__ */ jsx16(
|
|
2153
|
-
MessageList,
|
|
2154
|
-
{
|
|
2155
|
-
messages,
|
|
2156
|
-
currentUserId,
|
|
2157
|
-
isLoading: isLoadingHistory || loading,
|
|
2158
|
-
onActionClick: handleActionClick,
|
|
2159
|
-
onReactionClick: handleReactionClick,
|
|
2160
|
-
className: className?.messageList
|
|
2161
|
-
}
|
|
2162
|
-
),
|
|
2163
|
-
isSomeoneTyping && /* @__PURE__ */ jsx16(TypingIndicator, {}),
|
|
2164
|
-
renderPushPrompt?.(),
|
|
2165
|
-
/* @__PURE__ */ jsx16(
|
|
2166
|
-
InputArea,
|
|
2167
|
-
{
|
|
2168
|
-
onSend: handleSend,
|
|
2169
|
-
placeholder: effectivePlaceholder,
|
|
2170
|
-
className: className?.inputArea,
|
|
2171
|
-
enableAttachments,
|
|
2172
|
-
uploadConfig,
|
|
2173
|
-
accept,
|
|
2174
|
-
maxFileSize
|
|
2175
|
-
}
|
|
2176
|
-
)
|
|
2177
|
-
]
|
|
4283
|
+
title: effectiveTitle,
|
|
4284
|
+
onClose: effectiveEmbedded ? inBridge ? embeddedClose : void 0 : displayMode === "floating" ? close : showClose ? close : void 0,
|
|
4285
|
+
onToggleFullscreen: effectiveEmbedded ? void 0 : showFullscreenToggle && !isSmallScreen ? toggleFullscreen : void 0,
|
|
4286
|
+
isFullscreen: effectiveEmbedded ? false : displayMode === "fullscreen",
|
|
4287
|
+
showConnectionStatus: true,
|
|
4288
|
+
isConnected,
|
|
4289
|
+
className: className?.header,
|
|
4290
|
+
theme,
|
|
4291
|
+
onThemeChange: handleThemeChange,
|
|
4292
|
+
pushStatus: hasBridgePush ? bridgePushState : pushConfig ? push.status : void 0,
|
|
4293
|
+
onPushToggle: hasBridgePush || pushConfig ? handlePushToggle : void 0
|
|
2178
4294
|
}
|
|
2179
|
-
)
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
4295
|
+
),
|
|
4296
|
+
isPreEntry && preEntry ? /* @__PURE__ */ jsx17("div", { className: "flex-1 overflow-y-auto p-4", children: preEntry.render({ start: handleStart }) }) : /* @__PURE__ */ jsxs13(Fragment2, { children: [
|
|
4297
|
+
/* @__PURE__ */ jsx17(
|
|
4298
|
+
MessageList,
|
|
4299
|
+
{
|
|
4300
|
+
messages,
|
|
4301
|
+
currentUserId,
|
|
4302
|
+
isLoading: isLoadingHistory || loading,
|
|
4303
|
+
onActionClick: handleActionClick,
|
|
4304
|
+
onReactionClick: handleReactionClick,
|
|
4305
|
+
className: className?.messageList
|
|
4306
|
+
}
|
|
4307
|
+
),
|
|
4308
|
+
isSomeoneTyping && /* @__PURE__ */ jsx17(TypingIndicator, {}),
|
|
4309
|
+
!hasBridgePush && pushConfig ? /* @__PURE__ */ jsx17(
|
|
4310
|
+
PushPermissionPrompt,
|
|
4311
|
+
{
|
|
4312
|
+
getVapidPublicKey: pushConfig.getVapidPublicKey,
|
|
4313
|
+
onSubscribe: pushConfig.onSubscribe,
|
|
4314
|
+
onUnsubscribe: pushConfig.onUnsubscribe
|
|
4315
|
+
}
|
|
4316
|
+
) : !hasBridgePush ? renderPushPrompt?.() : null,
|
|
4317
|
+
/* @__PURE__ */ jsx17(
|
|
4318
|
+
InputArea,
|
|
4319
|
+
{
|
|
4320
|
+
onSend: handleSend,
|
|
4321
|
+
placeholder: effectivePlaceholder,
|
|
4322
|
+
disabled: !effectiveEmbedded && loading,
|
|
4323
|
+
className: className?.inputArea,
|
|
4324
|
+
enableAttachments,
|
|
4325
|
+
uploadConfig,
|
|
4326
|
+
accept,
|
|
4327
|
+
maxFileSize
|
|
4328
|
+
}
|
|
4329
|
+
)
|
|
4330
|
+
] })
|
|
4331
|
+
] });
|
|
4332
|
+
const widget = effectiveEmbedded ? /* @__PURE__ */ jsx17(
|
|
4333
|
+
"div",
|
|
4334
|
+
{
|
|
4335
|
+
dir,
|
|
4336
|
+
className: "flex flex-col h-full min-h-[300px] overflow-hidden bg-chat-background",
|
|
4337
|
+
"data-chat-widget": "embedded",
|
|
4338
|
+
"data-chat-theme": effectiveTheme,
|
|
4339
|
+
children: panelContent
|
|
4340
|
+
}
|
|
4341
|
+
) : /* @__PURE__ */ jsxs13(Fragment2, { children: [
|
|
4342
|
+
!isOpen && /* @__PURE__ */ jsx17(
|
|
2183
4343
|
FloatingButton,
|
|
2184
4344
|
{
|
|
2185
4345
|
onClick: toggleOpen,
|
|
@@ -2194,70 +4354,31 @@ function ChatWidget({
|
|
|
2194
4354
|
className: floatingButton?.className
|
|
2195
4355
|
}
|
|
2196
4356
|
),
|
|
2197
|
-
isOpen && /* @__PURE__ */
|
|
4357
|
+
isOpen && /* @__PURE__ */ jsx17(
|
|
2198
4358
|
"div",
|
|
2199
4359
|
{
|
|
2200
|
-
|
|
4360
|
+
dir,
|
|
4361
|
+
className: `flex flex-col overflow-hidden ${displayMode === "fullscreen" ? "fixed inset-0 z-50" : `absolute ${position === "bottom-right" ? "bottom-20 right-5" : position === "bottom-left" ? "bottom-20 left-5" : position === "top-right" ? "top-20 right-5" : position === "top-left" ? "top-20 left-5" : ""} w-[480px] max-w-[min(800px,calc(100dvw-40px))] h-dvh max-h-[min(600px,80dvh)] z-10 shadow-xl border border-chat-border rounded-2xl`} bg-chat-background`,
|
|
2201
4362
|
"data-chat-widget": displayMode,
|
|
2202
4363
|
"data-chat-position": position,
|
|
2203
4364
|
"data-chat-theme": effectiveTheme,
|
|
2204
|
-
children:
|
|
2205
|
-
/* @__PURE__ */ jsx16(
|
|
2206
|
-
Header,
|
|
2207
|
-
{
|
|
2208
|
-
title: effectiveTitle,
|
|
2209
|
-
onClose: displayMode === "floating" ? close : showClose ? close : void 0,
|
|
2210
|
-
onToggleFullscreen: showFullscreenToggle && !isSmallScreen ? toggleFullscreen : void 0,
|
|
2211
|
-
isFullscreen: displayMode === "fullscreen",
|
|
2212
|
-
showConnectionStatus: true,
|
|
2213
|
-
isConnected,
|
|
2214
|
-
className: className?.header,
|
|
2215
|
-
theme,
|
|
2216
|
-
onThemeChange: handleThemeChange
|
|
2217
|
-
}
|
|
2218
|
-
),
|
|
2219
|
-
/* @__PURE__ */ jsx16(
|
|
2220
|
-
MessageList,
|
|
2221
|
-
{
|
|
2222
|
-
messages,
|
|
2223
|
-
currentUserId,
|
|
2224
|
-
isLoading: isLoadingHistory || loading,
|
|
2225
|
-
onActionClick: handleActionClick,
|
|
2226
|
-
onReactionClick: handleReactionClick,
|
|
2227
|
-
className: className?.messageList
|
|
2228
|
-
}
|
|
2229
|
-
),
|
|
2230
|
-
isSomeoneTyping && /* @__PURE__ */ jsx16(TypingIndicator, {}),
|
|
2231
|
-
renderPushPrompt?.(),
|
|
2232
|
-
/* @__PURE__ */ jsx16(
|
|
2233
|
-
InputArea,
|
|
2234
|
-
{
|
|
2235
|
-
onSend: handleSend,
|
|
2236
|
-
placeholder: effectivePlaceholder,
|
|
2237
|
-
disabled: loading,
|
|
2238
|
-
className: className?.inputArea,
|
|
2239
|
-
enableAttachments,
|
|
2240
|
-
uploadConfig,
|
|
2241
|
-
accept,
|
|
2242
|
-
maxFileSize
|
|
2243
|
-
}
|
|
2244
|
-
)
|
|
2245
|
-
]
|
|
4365
|
+
children: panelContent
|
|
2246
4366
|
}
|
|
2247
4367
|
)
|
|
2248
4368
|
] });
|
|
4369
|
+
return /* @__PURE__ */ jsx17(LocaleProvider, { locale: effectiveLocale, children: widget });
|
|
2249
4370
|
}
|
|
2250
4371
|
|
|
2251
4372
|
// src/providers/ChatProvider.tsx
|
|
2252
4373
|
import { createContext as createContext3, useContext as useContext3 } from "react";
|
|
2253
|
-
import { jsx as
|
|
4374
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
2254
4375
|
var ChatContext = createContext3(void 0);
|
|
2255
4376
|
function ChatProvider({
|
|
2256
4377
|
children,
|
|
2257
4378
|
client,
|
|
2258
4379
|
cardRenderers
|
|
2259
4380
|
}) {
|
|
2260
|
-
return /* @__PURE__ */
|
|
4381
|
+
return /* @__PURE__ */ jsx18(CardProvider, { renderers: cardRenderers, children: /* @__PURE__ */ jsx18(ChatContext.Provider, { value: { client }, children }) });
|
|
2261
4382
|
}
|
|
2262
4383
|
function useChatContext() {
|
|
2263
4384
|
const context = useContext3(ChatContext);
|
|
@@ -2269,7 +4390,7 @@ function useChatContext() {
|
|
|
2269
4390
|
|
|
2270
4391
|
// src/components/ErrorBoundary.tsx
|
|
2271
4392
|
import { Component } from "react";
|
|
2272
|
-
import { jsx as
|
|
4393
|
+
import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2273
4394
|
var ErrorBoundary = class extends Component {
|
|
2274
4395
|
constructor(props) {
|
|
2275
4396
|
super(props);
|
|
@@ -2288,15 +4409,15 @@ var ErrorBoundary = class extends Component {
|
|
|
2288
4409
|
return fallback(this.state.error);
|
|
2289
4410
|
}
|
|
2290
4411
|
if (fallback) return fallback;
|
|
2291
|
-
return /* @__PURE__ */
|
|
4412
|
+
return /* @__PURE__ */ jsxs14(
|
|
2292
4413
|
"div",
|
|
2293
4414
|
{
|
|
2294
4415
|
className: "flex flex-col items-center justify-center p-6 text-center",
|
|
2295
4416
|
"data-chat-error-boundary": "true",
|
|
2296
4417
|
children: [
|
|
2297
|
-
/* @__PURE__ */
|
|
2298
|
-
/* @__PURE__ */
|
|
2299
|
-
/* @__PURE__ */
|
|
4418
|
+
/* @__PURE__ */ jsx19("div", { className: "text-chat-error text-lg font-semibold mb-2", children: "Something went wrong" }),
|
|
4419
|
+
/* @__PURE__ */ jsx19("div", { className: "text-chat-text-secondary text-sm mb-4", children: this.state.error.message }),
|
|
4420
|
+
/* @__PURE__ */ jsx19(
|
|
2300
4421
|
"button",
|
|
2301
4422
|
{
|
|
2302
4423
|
onClick: () => this.setState({ error: null }),
|
|
@@ -2310,78 +4431,6 @@ var ErrorBoundary = class extends Component {
|
|
|
2310
4431
|
}
|
|
2311
4432
|
};
|
|
2312
4433
|
|
|
2313
|
-
// src/components/PushPermissionPrompt.tsx
|
|
2314
|
-
import { useState as useState10 } from "react";
|
|
2315
|
-
import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2316
|
-
function PushPermissionPrompt({
|
|
2317
|
-
autoHide = true,
|
|
2318
|
-
title,
|
|
2319
|
-
description,
|
|
2320
|
-
onStatusChange,
|
|
2321
|
-
getVapidPublicKey,
|
|
2322
|
-
onSubscribe,
|
|
2323
|
-
onUnsubscribe
|
|
2324
|
-
}) {
|
|
2325
|
-
const { t } = useLocale();
|
|
2326
|
-
const { status, isSupported, isSubscribed, subscribe, unsubscribe } = usePushNotifications({
|
|
2327
|
-
enabled: true,
|
|
2328
|
-
getVapidPublicKey,
|
|
2329
|
-
onSubscribe,
|
|
2330
|
-
onUnsubscribe
|
|
2331
|
-
});
|
|
2332
|
-
const [dismissed, setDismissed] = useState10(false);
|
|
2333
|
-
if (!isSupported) return null;
|
|
2334
|
-
if (autoHide && (isSubscribed || status === "denied")) return null;
|
|
2335
|
-
if (dismissed) return null;
|
|
2336
|
-
const handleEnable = async () => {
|
|
2337
|
-
await subscribe();
|
|
2338
|
-
onStatusChange?.(true);
|
|
2339
|
-
};
|
|
2340
|
-
const handleDisable = async () => {
|
|
2341
|
-
await unsubscribe();
|
|
2342
|
-
onStatusChange?.(false);
|
|
2343
|
-
};
|
|
2344
|
-
return /* @__PURE__ */ jsxs14(
|
|
2345
|
-
"div",
|
|
2346
|
-
{
|
|
2347
|
-
className: "p-3 bg-chat-surface rounded-lg flex items-start gap-3",
|
|
2348
|
-
"data-chat-push-prompt": "true",
|
|
2349
|
-
children: [
|
|
2350
|
-
/* @__PURE__ */ jsxs14("div", { className: "flex-1", children: [
|
|
2351
|
-
/* @__PURE__ */ jsx19("div", { className: "font-semibold mb-1 text-chat-text", children: title || t("push.title") }),
|
|
2352
|
-
/* @__PURE__ */ jsx19("div", { className: "text-sm text-chat-text-secondary", children: description || t("push.description") })
|
|
2353
|
-
] }),
|
|
2354
|
-
/* @__PURE__ */ jsxs14("div", { className: "flex gap-2", children: [
|
|
2355
|
-
!isSubscribed && status !== "denied" && /* @__PURE__ */ jsx19(
|
|
2356
|
-
"button",
|
|
2357
|
-
{
|
|
2358
|
-
onClick: handleEnable,
|
|
2359
|
-
className: "px-3 py-1.5 bg-chat-primary text-white border-none rounded cursor-pointer text-sm hover:opacity-90",
|
|
2360
|
-
children: t("push.enable")
|
|
2361
|
-
}
|
|
2362
|
-
),
|
|
2363
|
-
isSubscribed && /* @__PURE__ */ jsx19(
|
|
2364
|
-
"button",
|
|
2365
|
-
{
|
|
2366
|
-
onClick: handleDisable,
|
|
2367
|
-
className: "px-3 py-1.5 bg-transparent text-chat-text-secondary border border-chat-border rounded cursor-pointer text-sm hover:bg-chat-surface",
|
|
2368
|
-
children: t("push.disable")
|
|
2369
|
-
}
|
|
2370
|
-
),
|
|
2371
|
-
/* @__PURE__ */ jsx19(
|
|
2372
|
-
"button",
|
|
2373
|
-
{
|
|
2374
|
-
onClick: () => setDismissed(true),
|
|
2375
|
-
className: "px-1.5 bg-transparent border-none cursor-pointer text-chat-text-secondary hover:text-chat-text",
|
|
2376
|
-
children: "\u2715"
|
|
2377
|
-
}
|
|
2378
|
-
)
|
|
2379
|
-
] })
|
|
2380
|
-
]
|
|
2381
|
-
}
|
|
2382
|
-
);
|
|
2383
|
-
}
|
|
2384
|
-
|
|
2385
4434
|
// src/components/PushToggle.tsx
|
|
2386
4435
|
import { jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2387
4436
|
function PushToggle({ getVapidPublicKey, onSubscribe, onUnsubscribe }) {
|