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