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