@ethora/chat-component-rn 26.8.6 → 26.8.8

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.
Files changed (537) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +64 -2
  3. package/lib/commonjs/assets/icons.js +4 -2
  4. package/lib/commonjs/assets/icons.js.map +1 -1
  5. package/lib/commonjs/components/MainComponents/ChatHeader.js +28 -6
  6. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  7. package/lib/commonjs/components/MainComponents/ChatRoom.js +9 -1
  8. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/ChatWrapper.js +5 -3
  10. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  11. package/lib/commonjs/components/MainComponents/EncryptedSendNotice.js +47 -0
  12. package/lib/commonjs/components/MainComponents/EncryptedSendNotice.js.map +1 -0
  13. package/lib/commonjs/components/MainComponents/EncryptionCard.js +286 -0
  14. package/lib/commonjs/components/MainComponents/EncryptionCard.js.map +1 -0
  15. package/lib/commonjs/components/MainComponents/MediaMessage.js +7 -0
  16. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  17. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +13 -0
  18. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  19. package/lib/commonjs/components/MainComponents/SealedAttachment.js +231 -0
  20. package/lib/commonjs/components/MainComponents/SealedAttachment.js.map +1 -0
  21. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +26 -13
  22. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
  23. package/lib/commonjs/components/MenuRoom/MenuRoom.js +5 -3
  24. package/lib/commonjs/components/MenuRoom/MenuRoom.js.map +1 -1
  25. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js +2 -1
  26. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  27. package/lib/commonjs/components/MessageBubble/Message.js +69 -9
  28. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  29. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +7 -4
  30. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  31. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +8 -5
  32. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  33. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js +2 -2
  34. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -1
  35. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +166 -21
  36. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  37. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +4 -0
  38. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  39. package/lib/commonjs/components/Modals/Modal/Modal.js +33 -11
  40. package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
  41. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js +8 -8
  42. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  43. package/lib/commonjs/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.js +279 -0
  44. package/lib/commonjs/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.js.map +1 -0
  45. package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +10 -8
  46. package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
  47. package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js +13 -11
  48. package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
  49. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +50 -15
  50. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  51. package/lib/commonjs/components/Modals/UserSettingsModal/LanguageCard.js +121 -0
  52. package/lib/commonjs/components/Modals/UserSettingsModal/LanguageCard.js.map +1 -0
  53. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +10 -1
  54. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  55. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +32 -9
  56. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  57. package/lib/commonjs/components/RoomComponents/LastMessageItem.js +6 -0
  58. package/lib/commonjs/components/RoomComponents/LastMessageItem.js.map +1 -1
  59. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js +2 -2
  60. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  61. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +4 -6
  62. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  63. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +2 -2
  64. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  65. package/lib/commonjs/components/RoomComponents/styled/LastMessageSealed.js +41 -0
  66. package/lib/commonjs/components/RoomComponents/styled/LastMessageSealed.js.map +1 -0
  67. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +2 -2
  68. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  69. package/lib/commonjs/components/Thread/ThreadWrapper.js +56 -46
  70. package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
  71. package/lib/commonjs/components/UsersList/UsersList.js +2 -1
  72. package/lib/commonjs/components/UsersList/UsersList.js.map +1 -1
  73. package/lib/commonjs/components/styled/SendInput.js +4 -2
  74. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  75. package/lib/commonjs/e2ee/crypto.js +207 -0
  76. package/lib/commonjs/e2ee/crypto.js.map +1 -0
  77. package/lib/commonjs/e2ee/deviceStore.js +84 -0
  78. package/lib/commonjs/e2ee/deviceStore.js.map +1 -0
  79. package/lib/commonjs/e2ee/fileCipher.js +95 -0
  80. package/lib/commonjs/e2ee/fileCipher.js.map +1 -0
  81. package/lib/commonjs/e2ee/fileEnvelope.js +79 -0
  82. package/lib/commonjs/e2ee/fileEnvelope.js.map +1 -0
  83. package/lib/commonjs/e2ee/index.js +210 -0
  84. package/lib/commonjs/e2ee/index.js.map +1 -0
  85. package/lib/commonjs/e2ee/limits.js +9 -0
  86. package/lib/commonjs/e2ee/limits.js.map +1 -0
  87. package/lib/commonjs/e2ee/ns.js +8 -0
  88. package/lib/commonjs/e2ee/ns.js.map +1 -0
  89. package/lib/commonjs/e2ee/omemo.js +622 -0
  90. package/lib/commonjs/e2ee/omemo.js.map +1 -0
  91. package/lib/commonjs/e2ee/protobuf.js +149 -0
  92. package/lib/commonjs/e2ee/protobuf.js.map +1 -0
  93. package/lib/commonjs/e2ee/ratchet.js +238 -0
  94. package/lib/commonjs/e2ee/ratchet.js.map +1 -0
  95. package/lib/commonjs/e2ee/sealedBody.js +23 -0
  96. package/lib/commonjs/e2ee/sealedBody.js.map +1 -0
  97. package/lib/commonjs/e2ee/sealedFiles.js +174 -0
  98. package/lib/commonjs/e2ee/sealedFiles.js.map +1 -0
  99. package/lib/commonjs/e2ee/send.js +54 -0
  100. package/lib/commonjs/e2ee/send.js.map +1 -0
  101. package/lib/commonjs/e2ee/stanza.js +114 -0
  102. package/lib/commonjs/e2ee/stanza.js.map +1 -0
  103. package/lib/commonjs/e2ee/store.js +43 -0
  104. package/lib/commonjs/e2ee/store.js.map +1 -0
  105. package/lib/commonjs/helpers/accountName.js +23 -0
  106. package/lib/commonjs/helpers/accountName.js.map +1 -0
  107. package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js +2 -0
  108. package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
  109. package/lib/commonjs/helpers/constants/MODAL_TYPES.js +1 -0
  110. package/lib/commonjs/helpers/constants/MODAL_TYPES.js.map +1 -1
  111. package/lib/commonjs/helpers/createMessageFromXml.js +19 -4
  112. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  113. package/lib/commonjs/helpers/createUserNameFromSetUser.js +2 -1
  114. package/lib/commonjs/helpers/createUserNameFromSetUser.js.map +1 -1
  115. package/lib/commonjs/helpers/displayName.js +16 -0
  116. package/lib/commonjs/helpers/displayName.js.map +1 -0
  117. package/lib/commonjs/helpers/persistCrypto.js +5 -0
  118. package/lib/commonjs/helpers/persistCrypto.js.map +1 -1
  119. package/lib/commonjs/helpers/preferencesStorage.js.map +1 -1
  120. package/lib/commonjs/helpers/secureKeyValue.js +20 -0
  121. package/lib/commonjs/helpers/secureKeyValue.js.map +1 -1
  122. package/lib/commonjs/helpers/videoCache.js +136 -0
  123. package/lib/commonjs/helpers/videoCache.js.map +1 -0
  124. package/lib/commonjs/hooks/useChatSettingState.js +2 -0
  125. package/lib/commonjs/hooks/useChatSettingState.js.map +1 -1
  126. package/lib/commonjs/hooks/useChatWrapperInit.js +4 -0
  127. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  128. package/lib/commonjs/hooks/useLogout.js +8 -0
  129. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  130. package/lib/commonjs/hooks/useSendMessage.js +71 -7
  131. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  132. package/lib/commonjs/i18n/strings.js +367 -1
  133. package/lib/commonjs/i18n/strings.js.map +1 -1
  134. package/lib/commonjs/i18n/useT.js +8 -4
  135. package/lib/commonjs/i18n/useT.js.map +1 -1
  136. package/lib/commonjs/main.js +13 -0
  137. package/lib/commonjs/main.js.map +1 -1
  138. package/lib/commonjs/networking/api-requests/auth.api.js +4 -1
  139. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  140. package/lib/commonjs/networking/api-requests/rooms.api.js +111 -17
  141. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  142. package/lib/commonjs/networking/api-requests/user.api.js +13 -0
  143. package/lib/commonjs/networking/api-requests/user.api.js.map +1 -1
  144. package/lib/commonjs/networking/stanzaHandlers.js +1 -1
  145. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  146. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +40 -0
  147. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  148. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js +16 -3
  149. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  150. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +13 -6
  151. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  152. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +14 -6
  153. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  154. package/lib/commonjs/networking/xmppClient.js +6 -0
  155. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  156. package/lib/commonjs/roomStore/chatSettingsSlice.js +7 -2
  157. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  158. package/lib/commonjs/roomStore/persistBackend.js +9 -12
  159. package/lib/commonjs/roomStore/persistBackend.js.map +1 -1
  160. package/lib/commonjs/roomStore/persistence.js +8 -1
  161. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  162. package/lib/commonjs/services/languageSettings.js +177 -0
  163. package/lib/commonjs/services/languageSettings.js.map +1 -0
  164. package/lib/commonjs/version.js +1 -1
  165. package/lib/module/assets/icons.js +3 -1
  166. package/lib/module/assets/icons.js.map +1 -1
  167. package/lib/module/components/MainComponents/ChatHeader.js +29 -7
  168. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  169. package/lib/module/components/MainComponents/ChatRoom.js +9 -1
  170. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  171. package/lib/module/components/MainComponents/ChatWrapper.js +5 -3
  172. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  173. package/lib/module/components/MainComponents/EncryptedSendNotice.js +42 -0
  174. package/lib/module/components/MainComponents/EncryptedSendNotice.js.map +1 -0
  175. package/lib/module/components/MainComponents/EncryptionCard.js +281 -0
  176. package/lib/module/components/MainComponents/EncryptionCard.js.map +1 -0
  177. package/lib/module/components/MainComponents/MediaMessage.js +7 -0
  178. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  179. package/lib/module/components/MainComponents/ReduxWrapper.js +14 -1
  180. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  181. package/lib/module/components/MainComponents/SealedAttachment.js +224 -0
  182. package/lib/module/components/MainComponents/SealedAttachment.js.map +1 -0
  183. package/lib/module/components/Menu/HeaderRoomListMenu.js +26 -13
  184. package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
  185. package/lib/module/components/MenuRoom/MenuRoom.js +5 -3
  186. package/lib/module/components/MenuRoom/MenuRoom.js.map +1 -1
  187. package/lib/module/components/MessageBubble/BottomReplyContainer.js +2 -1
  188. package/lib/module/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  189. package/lib/module/components/MessageBubble/Message.js +72 -12
  190. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  191. package/lib/module/components/MessageBubble/MessageInteractions.js +7 -4
  192. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  193. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +8 -5
  194. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  195. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +2 -2
  196. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -1
  197. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +168 -23
  198. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  199. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +4 -0
  200. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  201. package/lib/module/components/Modals/Modal/Modal.js +33 -11
  202. package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
  203. package/lib/module/components/Modals/NewChatModal/NewChatModal.js +8 -8
  204. package/lib/module/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  205. package/lib/module/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.js +274 -0
  206. package/lib/module/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.js.map +1 -0
  207. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +10 -8
  208. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
  209. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js +13 -11
  210. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
  211. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +54 -18
  212. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  213. package/lib/module/components/Modals/UserSettingsModal/LanguageCard.js +116 -0
  214. package/lib/module/components/Modals/UserSettingsModal/LanguageCard.js.map +1 -0
  215. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +10 -1
  216. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  217. package/lib/module/components/RoomComponents/ChatRoomItem.js +32 -9
  218. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  219. package/lib/module/components/RoomComponents/LastMessageItem.js +6 -0
  220. package/lib/module/components/RoomComponents/LastMessageItem.js.map +1 -1
  221. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js +2 -2
  222. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  223. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +4 -6
  224. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  225. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +2 -2
  226. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  227. package/lib/module/components/RoomComponents/styled/LastMessageSealed.js +36 -0
  228. package/lib/module/components/RoomComponents/styled/LastMessageSealed.js.map +1 -0
  229. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +2 -2
  230. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  231. package/lib/module/components/Thread/ThreadWrapper.js +57 -47
  232. package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
  233. package/lib/module/components/UsersList/UsersList.js +2 -1
  234. package/lib/module/components/UsersList/UsersList.js.map +1 -1
  235. package/lib/module/components/styled/SendInput.js +4 -2
  236. package/lib/module/components/styled/SendInput.js.map +1 -1
  237. package/lib/module/e2ee/crypto.js +170 -0
  238. package/lib/module/e2ee/crypto.js.map +1 -0
  239. package/lib/module/e2ee/deviceStore.js +77 -0
  240. package/lib/module/e2ee/deviceStore.js.map +1 -0
  241. package/lib/module/e2ee/fileCipher.js +90 -0
  242. package/lib/module/e2ee/fileCipher.js.map +1 -0
  243. package/lib/module/e2ee/fileEnvelope.js +66 -0
  244. package/lib/module/e2ee/fileEnvelope.js.map +1 -0
  245. package/lib/module/e2ee/index.js +185 -0
  246. package/lib/module/e2ee/index.js.map +1 -0
  247. package/lib/module/e2ee/limits.js +5 -0
  248. package/lib/module/e2ee/limits.js.map +1 -0
  249. package/lib/module/e2ee/ns.js +4 -0
  250. package/lib/module/e2ee/ns.js.map +1 -0
  251. package/lib/module/e2ee/omemo.js +610 -0
  252. package/lib/module/e2ee/omemo.js.map +1 -0
  253. package/lib/module/e2ee/protobuf.js +140 -0
  254. package/lib/module/e2ee/protobuf.js.map +1 -0
  255. package/lib/module/e2ee/ratchet.js +228 -0
  256. package/lib/module/e2ee/ratchet.js.map +1 -0
  257. package/lib/module/e2ee/sealedBody.js +19 -0
  258. package/lib/module/e2ee/sealedBody.js.map +1 -0
  259. package/lib/module/e2ee/sealedFiles.js +154 -0
  260. package/lib/module/e2ee/sealedFiles.js.map +1 -0
  261. package/lib/module/e2ee/send.js +48 -0
  262. package/lib/module/e2ee/send.js.map +1 -0
  263. package/lib/module/e2ee/stanza.js +107 -0
  264. package/lib/module/e2ee/stanza.js.map +1 -0
  265. package/lib/module/e2ee/store.js +35 -0
  266. package/lib/module/e2ee/store.js.map +1 -0
  267. package/lib/module/helpers/accountName.js +18 -0
  268. package/lib/module/helpers/accountName.js.map +1 -0
  269. package/lib/module/helpers/constants/MODAL_COMPONENTS.js +2 -0
  270. package/lib/module/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
  271. package/lib/module/helpers/constants/MODAL_TYPES.js +1 -0
  272. package/lib/module/helpers/constants/MODAL_TYPES.js.map +1 -1
  273. package/lib/module/helpers/createMessageFromXml.js +19 -4
  274. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  275. package/lib/module/helpers/createUserNameFromSetUser.js +3 -1
  276. package/lib/module/helpers/createUserNameFromSetUser.js.map +1 -1
  277. package/lib/module/helpers/displayName.js +11 -0
  278. package/lib/module/helpers/displayName.js.map +1 -0
  279. package/lib/module/helpers/persistCrypto.js +4 -0
  280. package/lib/module/helpers/persistCrypto.js.map +1 -1
  281. package/lib/module/helpers/preferencesStorage.js.map +1 -1
  282. package/lib/module/helpers/secureKeyValue.js +19 -0
  283. package/lib/module/helpers/secureKeyValue.js.map +1 -1
  284. package/lib/module/helpers/videoCache.js +125 -0
  285. package/lib/module/helpers/videoCache.js.map +1 -0
  286. package/lib/module/hooks/useChatSettingState.js +2 -0
  287. package/lib/module/hooks/useChatSettingState.js.map +1 -1
  288. package/lib/module/hooks/useChatWrapperInit.js +4 -0
  289. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  290. package/lib/module/hooks/useLogout.js +8 -0
  291. package/lib/module/hooks/useLogout.js.map +1 -1
  292. package/lib/module/hooks/useSendMessage.js +71 -7
  293. package/lib/module/hooks/useSendMessage.js.map +1 -1
  294. package/lib/module/i18n/strings.js +367 -1
  295. package/lib/module/i18n/strings.js.map +1 -1
  296. package/lib/module/i18n/useT.js +8 -4
  297. package/lib/module/i18n/useT.js.map +1 -1
  298. package/lib/module/main.js +1 -0
  299. package/lib/module/main.js.map +1 -1
  300. package/lib/module/networking/api-requests/auth.api.js +4 -1
  301. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  302. package/lib/module/networking/api-requests/rooms.api.js +109 -18
  303. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  304. package/lib/module/networking/api-requests/user.api.js +12 -0
  305. package/lib/module/networking/api-requests/user.api.js.map +1 -1
  306. package/lib/module/networking/stanzaHandlers.js +1 -1
  307. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  308. package/lib/module/networking/xmpp/handleStanzas.xmpp.js +38 -0
  309. package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  310. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js +16 -3
  311. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  312. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +13 -6
  313. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  314. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +14 -6
  315. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  316. package/lib/module/networking/xmppClient.js +6 -0
  317. package/lib/module/networking/xmppClient.js.map +1 -1
  318. package/lib/module/roomStore/chatSettingsSlice.js +5 -1
  319. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  320. package/lib/module/roomStore/persistBackend.js +10 -13
  321. package/lib/module/roomStore/persistBackend.js.map +1 -1
  322. package/lib/module/roomStore/persistence.js +8 -1
  323. package/lib/module/roomStore/persistence.js.map +1 -1
  324. package/lib/module/services/languageSettings.js +164 -0
  325. package/lib/module/services/languageSettings.js.map +1 -0
  326. package/lib/module/version.js +1 -1
  327. package/lib/typescript/assets/icons.d.ts +8 -0
  328. package/lib/typescript/assets/icons.d.ts.map +1 -1
  329. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  330. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  331. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  332. package/lib/typescript/components/MainComponents/EncryptedSendNotice.d.ts +4 -0
  333. package/lib/typescript/components/MainComponents/EncryptedSendNotice.d.ts.map +1 -0
  334. package/lib/typescript/components/MainComponents/EncryptionCard.d.ts +10 -0
  335. package/lib/typescript/components/MainComponents/EncryptionCard.d.ts.map +1 -0
  336. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  337. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  338. package/lib/typescript/components/MainComponents/SealedAttachment.d.ts +13 -0
  339. package/lib/typescript/components/MainComponents/SealedAttachment.d.ts.map +1 -0
  340. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts +7 -1
  341. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
  342. package/lib/typescript/components/MenuRoom/MenuRoom.d.ts.map +1 -1
  343. package/lib/typescript/components/MessageBubble/BottomReplyContainer.d.ts.map +1 -1
  344. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  345. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  346. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  347. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  348. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  349. package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
  350. package/lib/typescript/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.d.ts +15 -0
  351. package/lib/typescript/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.d.ts.map +1 -0
  352. package/lib/typescript/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.d.ts.map +1 -1
  353. package/lib/typescript/components/Modals/SettingsModals/Visibility/VisibilityModal.d.ts.map +1 -1
  354. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  355. package/lib/typescript/components/Modals/UserSettingsModal/LanguageCard.d.ts +14 -0
  356. package/lib/typescript/components/Modals/UserSettingsModal/LanguageCard.d.ts.map +1 -0
  357. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  358. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  359. package/lib/typescript/components/RoomComponents/LastMessageItem.d.ts.map +1 -1
  360. package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts.map +1 -1
  361. package/lib/typescript/components/RoomComponents/styled/LastMessageSealed.d.ts +7 -0
  362. package/lib/typescript/components/RoomComponents/styled/LastMessageSealed.d.ts.map +1 -0
  363. package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
  364. package/lib/typescript/components/UsersList/UsersList.d.ts.map +1 -1
  365. package/lib/typescript/components/styled/SendInput.d.ts +1 -0
  366. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  367. package/lib/typescript/e2ee/crypto.d.ts +28 -0
  368. package/lib/typescript/e2ee/crypto.d.ts.map +1 -0
  369. package/lib/typescript/e2ee/deviceStore.d.ts +4 -0
  370. package/lib/typescript/e2ee/deviceStore.d.ts.map +1 -0
  371. package/lib/typescript/e2ee/fileCipher.d.ts +7 -0
  372. package/lib/typescript/e2ee/fileCipher.d.ts.map +1 -0
  373. package/lib/typescript/e2ee/fileEnvelope.d.ts +27 -0
  374. package/lib/typescript/e2ee/fileEnvelope.d.ts.map +1 -0
  375. package/lib/typescript/e2ee/index.d.ts +23 -0
  376. package/lib/typescript/e2ee/index.d.ts.map +1 -0
  377. package/lib/typescript/e2ee/limits.d.ts +3 -0
  378. package/lib/typescript/e2ee/limits.d.ts.map +1 -0
  379. package/lib/typescript/e2ee/ns.d.ts +2 -0
  380. package/lib/typescript/e2ee/ns.d.ts.map +1 -0
  381. package/lib/typescript/e2ee/omemo.d.ts +64 -0
  382. package/lib/typescript/e2ee/omemo.d.ts.map +1 -0
  383. package/lib/typescript/e2ee/protobuf.d.ts +25 -0
  384. package/lib/typescript/e2ee/protobuf.d.ts.map +1 -0
  385. package/lib/typescript/e2ee/ratchet.d.ts +39 -0
  386. package/lib/typescript/e2ee/ratchet.d.ts.map +1 -0
  387. package/lib/typescript/e2ee/sealedBody.d.ts +2 -0
  388. package/lib/typescript/e2ee/sealedBody.d.ts.map +1 -0
  389. package/lib/typescript/e2ee/sealedFiles.d.ts +31 -0
  390. package/lib/typescript/e2ee/sealedFiles.d.ts.map +1 -0
  391. package/lib/typescript/e2ee/send.d.ts +6 -0
  392. package/lib/typescript/e2ee/send.d.ts.map +1 -0
  393. package/lib/typescript/e2ee/stanza.d.ts +8 -0
  394. package/lib/typescript/e2ee/stanza.d.ts.map +1 -0
  395. package/lib/typescript/e2ee/store.d.ts +16 -0
  396. package/lib/typescript/e2ee/store.d.ts.map +1 -0
  397. package/lib/typescript/helpers/accountName.d.ts +7 -0
  398. package/lib/typescript/helpers/accountName.d.ts.map +1 -0
  399. package/lib/typescript/helpers/constants/MODAL_COMPONENTS.d.ts.map +1 -1
  400. package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts +1 -0
  401. package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts.map +1 -1
  402. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  403. package/lib/typescript/helpers/createUserNameFromSetUser.d.ts.map +1 -1
  404. package/lib/typescript/helpers/displayName.d.ts +2 -0
  405. package/lib/typescript/helpers/displayName.d.ts.map +1 -0
  406. package/lib/typescript/helpers/persistCrypto.d.ts +1 -0
  407. package/lib/typescript/helpers/persistCrypto.d.ts.map +1 -1
  408. package/lib/typescript/helpers/preferencesStorage.d.ts +4 -0
  409. package/lib/typescript/helpers/preferencesStorage.d.ts.map +1 -1
  410. package/lib/typescript/helpers/secureKeyValue.d.ts +4 -0
  411. package/lib/typescript/helpers/secureKeyValue.d.ts.map +1 -1
  412. package/lib/typescript/helpers/videoCache.d.ts +19 -0
  413. package/lib/typescript/helpers/videoCache.d.ts.map +1 -0
  414. package/lib/typescript/hooks/useChatSettingState.d.ts +1 -0
  415. package/lib/typescript/hooks/useChatSettingState.d.ts.map +1 -1
  416. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  417. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  418. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  419. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  420. package/lib/typescript/i18n/useT.d.ts.map +1 -1
  421. package/lib/typescript/main.d.ts +2 -0
  422. package/lib/typescript/main.d.ts.map +1 -1
  423. package/lib/typescript/networking/api-requests/auth.api.d.ts +4 -1
  424. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  425. package/lib/typescript/networking/api-requests/rooms.api.d.ts +22 -1
  426. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  427. package/lib/typescript/networking/api-requests/user.api.d.ts +6 -0
  428. package/lib/typescript/networking/api-requests/user.api.d.ts.map +1 -1
  429. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  430. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts +1 -0
  431. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
  432. package/lib/typescript/networking/xmpp/sendMediaMessage.xmpp.d.ts.map +1 -1
  433. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
  434. package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts.map +1 -1
  435. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  436. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +8 -1
  437. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  438. package/lib/typescript/roomStore/persistBackend.d.ts.map +1 -1
  439. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  440. package/lib/typescript/services/languageSettings.d.ts +29 -0
  441. package/lib/typescript/services/languageSettings.d.ts.map +1 -0
  442. package/lib/typescript/types/models/message.model.d.ts +5 -0
  443. package/lib/typescript/types/models/message.model.d.ts.map +1 -1
  444. package/lib/typescript/types/models/room.model.d.ts +5 -0
  445. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  446. package/lib/typescript/types/models/user.model.d.ts +4 -0
  447. package/lib/typescript/types/models/user.model.d.ts.map +1 -1
  448. package/lib/typescript/types/types.d.ts +25 -0
  449. package/lib/typescript/types/types.d.ts.map +1 -1
  450. package/lib/typescript/version.d.ts +1 -1
  451. package/package.json +8 -4
  452. package/src/assets/icons.tsx +27 -0
  453. package/src/components/MainComponents/ChatHeader.tsx +30 -9
  454. package/src/components/MainComponents/ChatRoom.tsx +11 -1
  455. package/src/components/MainComponents/ChatWrapper.tsx +5 -3
  456. package/src/components/MainComponents/EncryptedSendNotice.tsx +35 -0
  457. package/src/components/MainComponents/EncryptionCard.tsx +287 -0
  458. package/src/components/MainComponents/MediaMessage.tsx +5 -0
  459. package/src/components/MainComponents/ReduxWrapper.tsx +11 -0
  460. package/src/components/MainComponents/SealedAttachment.tsx +251 -0
  461. package/src/components/Menu/HeaderRoomListMenu.tsx +40 -13
  462. package/src/components/MenuRoom/MenuRoom.tsx +5 -3
  463. package/src/components/MessageBubble/BottomReplyContainer.tsx +2 -1
  464. package/src/components/MessageBubble/Message.tsx +99 -9
  465. package/src/components/MessageBubble/MessageInteractions.tsx +7 -6
  466. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +8 -5
  467. package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +2 -2
  468. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +188 -40
  469. package/src/components/Modals/FilePreviewModal/PdfView.tsx +4 -0
  470. package/src/components/Modals/Modal/Modal.tsx +44 -16
  471. package/src/components/Modals/NewChatModal/NewChatModal.tsx +8 -8
  472. package/src/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.tsx +316 -0
  473. package/src/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.tsx +10 -15
  474. package/src/components/Modals/SettingsModals/Visibility/VisibilityModal.tsx +13 -14
  475. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +72 -20
  476. package/src/components/Modals/UserSettingsModal/LanguageCard.tsx +144 -0
  477. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +13 -1
  478. package/src/components/RoomComponents/ChatRoomItem.tsx +23 -11
  479. package/src/components/RoomComponents/LastMessageItem.tsx +5 -0
  480. package/src/components/RoomComponents/styled/LastAudioMessage.tsx +3 -1
  481. package/src/components/RoomComponents/styled/LastMessageFile.tsx +2 -2
  482. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +1 -1
  483. package/src/components/RoomComponents/styled/LastMessageSealed.tsx +31 -0
  484. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +1 -1
  485. package/src/components/Thread/ThreadWrapper.tsx +17 -2
  486. package/src/components/UsersList/UsersList.tsx +2 -1
  487. package/src/components/styled/SendInput.tsx +5 -2
  488. package/src/e2ee/crypto.ts +194 -0
  489. package/src/e2ee/deviceStore.ts +80 -0
  490. package/src/e2ee/fileCipher.ts +86 -0
  491. package/src/e2ee/fileEnvelope.ts +115 -0
  492. package/src/e2ee/index.ts +192 -0
  493. package/src/e2ee/limits.ts +2 -0
  494. package/src/e2ee/ns.ts +1 -0
  495. package/src/e2ee/omemo.ts +802 -0
  496. package/src/e2ee/protobuf.ts +188 -0
  497. package/src/e2ee/ratchet.ts +271 -0
  498. package/src/e2ee/sealedBody.ts +17 -0
  499. package/src/e2ee/sealedFiles.ts +181 -0
  500. package/src/e2ee/send.ts +70 -0
  501. package/src/e2ee/stanza.ts +133 -0
  502. package/src/e2ee/store.ts +54 -0
  503. package/src/helpers/accountName.ts +15 -0
  504. package/src/helpers/constants/MODAL_COMPONENTS.tsx +2 -0
  505. package/src/helpers/constants/MODAL_TYPES.ts +1 -0
  506. package/src/helpers/createMessageFromXml.ts +31 -6
  507. package/src/helpers/createUserNameFromSetUser.ts +2 -1
  508. package/src/helpers/displayName.ts +9 -0
  509. package/src/helpers/persistCrypto.ts +5 -0
  510. package/src/helpers/preferencesStorage.ts +4 -0
  511. package/src/helpers/secureKeyValue.ts +15 -0
  512. package/src/helpers/videoCache.ts +138 -0
  513. package/src/hooks/useChatSettingState.tsx +4 -0
  514. package/src/hooks/useChatWrapperInit.ts +4 -0
  515. package/src/hooks/useLogout.tsx +9 -0
  516. package/src/hooks/useSendMessage.tsx +71 -5
  517. package/src/i18n/strings.ts +367 -1
  518. package/src/i18n/useT.ts +6 -4
  519. package/src/main.ts +2 -0
  520. package/src/networking/api-requests/auth.api.ts +9 -1
  521. package/src/networking/api-requests/rooms.api.ts +121 -18
  522. package/src/networking/api-requests/user.api.ts +9 -0
  523. package/src/networking/stanzaHandlers.ts +1 -0
  524. package/src/networking/xmpp/handleStanzas.xmpp.ts +49 -0
  525. package/src/networking/xmpp/sendMediaMessage.xmpp.ts +19 -1
  526. package/src/networking/xmpp/sendTextMessage.xmpp.ts +17 -10
  527. package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +23 -10
  528. package/src/networking/xmppClient.ts +6 -0
  529. package/src/roomStore/chatSettingsSlice.ts +13 -0
  530. package/src/roomStore/persistBackend.ts +8 -11
  531. package/src/roomStore/persistence.ts +15 -0
  532. package/src/services/languageSettings.ts +143 -0
  533. package/src/types/models/message.model.ts +5 -0
  534. package/src/types/models/room.model.ts +5 -0
  535. package/src/types/models/user.model.ts +4 -0
  536. package/src/types/types.ts +25 -0
  537. package/src/version.ts +1 -1
@@ -20,6 +20,11 @@ exports.translateKey = exports.toBaseLanguage = exports.resolveStringTable = exp
20
20
  const en = {
21
21
  'search.placeholder': 'Search...',
22
22
  'roomList.title': 'Chats',
23
+ 'menu.newChat': 'New Chat',
24
+ 'menu.profile': 'Profile',
25
+ 'menu.settings': 'Settings',
26
+ 'menu.logout': 'Sign out',
27
+ 'menu.logoutConfirm': 'Are you sure you want to sign out?',
23
28
  'search.members': 'Search members',
24
29
  'search.noResults': 'Nobody found',
25
30
  'input.placeholder': 'Type message',
@@ -29,6 +34,39 @@ const en = {
29
34
  'date.yesterday': 'Yesterday',
30
35
  'message.deleted': 'Message deleted',
31
36
  'message.edited': 'edited',
37
+ 'message.sending': 'sending...',
38
+ 'message.failedRetry': '! Failed — tap to retry',
39
+ 'thread.title': 'Thread',
40
+ 'thread.alsoSendTo': 'Also send to',
41
+ 'e2ee.roomEncrypted': 'End-to-end encrypted',
42
+ 'e2ee.notEncrypted': 'Not encrypted',
43
+ 'e2ee.notEncryptedHint': 'Sent without end-to-end encryption, because no recipient has published a key yet.',
44
+ 'e2ee.devices.title': 'End-to-end encryption',
45
+ 'e2ee.devices.thisDevice': 'This device',
46
+ 'e2ee.devices.otherDevices': 'Other devices',
47
+ 'e2ee.devices.none': 'Has not opened an encrypted chat yet',
48
+ 'e2ee.devices.noneOwn': 'No other devices',
49
+ 'e2ee.devices.unavailable': 'Encryption is not running on this device right now',
50
+ 'e2ee.devices.loading': 'Loading devices…',
51
+ 'e2ee.devices.hint': "Compare a fingerprint with the one shown on the other person's device. Mark it verified only if they match.",
52
+ 'e2ee.trust.verified': 'Verified',
53
+ 'e2ee.trust.blind': 'Not verified',
54
+ 'e2ee.trust.untrusted': 'Not trusted',
55
+ 'e2ee.trust.verify': 'Mark as verified',
56
+ 'e2ee.trust.distrust': 'Stop trusting',
57
+ 'e2ee.trust.reset': 'Clear the mark',
58
+ 'e2ee.trust.prompt': 'Device {id}',
59
+ 'e2ee.devices.copied': 'Fingerprint copied',
60
+ 'e2ee.unsupportedMessage': "Encrypted message. This version of the app can't read it yet.",
61
+ 'e2ee.otherDevice': 'Encrypted for another device',
62
+ 'e2ee.undecryptable': 'Could not decrypt this message',
63
+ 'e2ee.sendUnavailable': "This chat is end-to-end encrypted. Sending from the mobile app isn't available yet.",
64
+ 'media.sealedFile': 'Encrypted file',
65
+ 'media.sealedUnsupported': "Can't be opened in this version of the app yet",
66
+ 'media.sealedUnavailable': 'Encrypted attachment could not be opened',
67
+ 'media.sealedDownload': 'Download and decrypt',
68
+ 'media.sealedDownloading': 'Decrypting…',
69
+ 'media.sealedDownloadFailed': 'Download failed — tap to retry',
32
70
  'message.newMessages': 'New messages',
33
71
  'notification.senderFallback': 'New message',
34
72
  'presence.online': 'online',
@@ -148,6 +186,10 @@ const en = {
148
186
  'settings.menu.title': 'Settings',
149
187
  'modal.filePreview.title': 'File preview',
150
188
  'toast.error': 'Error',
189
+ 'toast.failedToCreateRoom': 'Failed to create room',
190
+ 'toast.copied': 'Copied to clipboard!',
191
+ 'toast.copyFailed': 'Copy failed',
192
+ 'toast.saveSuccessful': 'Save successful',
151
193
  'toast.couldNotOpenPrivateChat': 'Could not open the new private chat',
152
194
  'toast.couldNotResolveRecipient': 'Could not resolve recipient',
153
195
  'toast.failedToCreatePrivateChat': 'Failed to create private chat',
@@ -173,6 +215,7 @@ const en = {
173
215
  'field.referralCode': 'Your referral code',
174
216
  'action.logOut': 'Log Out',
175
217
  'action.message': 'Message',
218
+ 'action.encryptedMessage': 'Encrypted message',
176
219
  'action.videoCall': 'Video call',
177
220
  'action.call': 'Call',
178
221
  'action.audioCall': 'Audio call',
@@ -214,6 +257,8 @@ const en = {
214
257
  'modal.chatProfile.removeMember': 'Remove from this chat?',
215
258
  'modal.chatProfile.memberListUnavailable': 'Member list unavailable',
216
259
  'modal.deleteChat.title': 'Delete this chat ?',
260
+ 'modal.deleteMessage.title': 'Delete message',
261
+ 'modal.deleteMessage.description': 'Are you sure you want to delete this message?',
217
262
  'modal.addMembers.title': 'Add New Member',
218
263
  'modal.addMembers.userIdPlaceholder': 'Enter User Id',
219
264
  'modal.leaveChat.title': 'Leave Chat',
@@ -250,6 +295,22 @@ const en = {
250
295
  'settings.notifications.title': 'Notifications',
251
296
  'settings.notifications.push': 'Push notifications',
252
297
  'settings.notifications.pushHint': 'New messages and calls wake this device even when the app is closed.',
298
+ 'settings.language.app': 'App language',
299
+ 'settings.language.appHint': 'The language of the interface.',
300
+ 'settings.language.chat': 'Chat language',
301
+ 'settings.language.chatHint': 'Messages are translated into this language.',
302
+ 'settings.password.title': 'Change password',
303
+ 'settings.password.current': 'Current password',
304
+ 'settings.password.new': 'New password',
305
+ 'settings.password.again': 'Repeat new password',
306
+ 'settings.password.submit': 'Change password',
307
+ 'settings.password.changed': 'Password changed',
308
+ 'settings.password.wrongCurrent': 'The current password is not right',
309
+ 'settings.password.failed': 'The password could not be changed',
310
+ 'settings.password.tooShort': 'At least {min} characters',
311
+ 'settings.password.sameAsCurrent': 'Must differ from the current password',
312
+ 'settings.password.mismatch': 'The passwords do not match',
313
+ 'settings.password.hint': 'Use the new password the next time you sign in.',
253
314
  'settings.visibility.title': 'Visibility',
254
315
  'settings.visibility.profileLabel': 'Profile Visibility',
255
316
  'settings.visibility.open': 'Open (default)',
@@ -277,6 +338,11 @@ const en = {
277
338
  const fr = {
278
339
  'search.placeholder': 'Rechercher...',
279
340
  'roomList.title': 'Discussions',
341
+ 'menu.newChat': 'Nouvelle discussion',
342
+ 'menu.profile': 'Profil',
343
+ 'menu.settings': 'Paramètres',
344
+ 'menu.logout': 'Se déconnecter',
345
+ 'menu.logoutConfirm': 'Voulez-vous vraiment vous déconnecter ?',
280
346
  'search.members': 'Rechercher des membres',
281
347
  'search.noResults': 'Personne trouvée',
282
348
  'input.placeholder': 'Écrire un message',
@@ -286,6 +352,39 @@ const fr = {
286
352
  'date.yesterday': 'Hier',
287
353
  'message.deleted': 'Message supprimé',
288
354
  'message.edited': 'modifié',
355
+ 'message.sending': 'envoi...',
356
+ 'message.failedRetry': '! Échec — touchez pour réessayer',
357
+ 'thread.title': 'Fil',
358
+ 'thread.alsoSendTo': 'Envoyer aussi dans',
359
+ 'e2ee.roomEncrypted': 'Chiffré de bout en bout',
360
+ 'e2ee.notEncrypted': 'Non chiffré',
361
+ 'e2ee.notEncryptedHint': "Envoyé sans chiffrement de bout en bout, car aucun destinataire n'a encore publié de clé.",
362
+ 'e2ee.devices.title': 'Chiffrement de bout en bout',
363
+ 'e2ee.devices.thisDevice': 'Cet appareil',
364
+ 'e2ee.devices.otherDevices': 'Autres appareils',
365
+ 'e2ee.devices.none': "N'a pas encore ouvert de discussion chiffrée",
366
+ 'e2ee.devices.noneOwn': 'Aucun autre appareil',
367
+ 'e2ee.devices.unavailable': "Le chiffrement n'est pas actif sur cet appareil pour le moment",
368
+ 'e2ee.devices.loading': 'Chargement des appareils…',
369
+ 'e2ee.devices.hint': "Comparez une empreinte avec celle affichée sur l'appareil de l'autre personne. Ne la marquez comme vérifiée que si elles correspondent.",
370
+ 'e2ee.trust.verified': 'Vérifié',
371
+ 'e2ee.trust.blind': 'Non vérifié',
372
+ 'e2ee.trust.untrusted': 'Non fiable',
373
+ 'e2ee.trust.verify': 'Marquer comme vérifié',
374
+ 'e2ee.trust.distrust': 'Ne plus faire confiance',
375
+ 'e2ee.trust.reset': 'Effacer la marque',
376
+ 'e2ee.trust.prompt': 'Appareil {id}',
377
+ 'e2ee.devices.copied': 'Empreinte copiée',
378
+ 'e2ee.unsupportedMessage': "Message chiffré. Cette version de l'application ne peut pas encore le lire.",
379
+ 'e2ee.otherDevice': 'Chiffré pour un autre appareil',
380
+ 'e2ee.undecryptable': 'Impossible de déchiffrer ce message',
381
+ 'e2ee.sendUnavailable': "Cette discussion est chiffrée de bout en bout. L'envoi depuis l'application mobile n'est pas encore disponible.",
382
+ 'media.sealedFile': 'Fichier chiffré',
383
+ 'media.sealedUnsupported': "Ne peut pas encore être ouvert dans cette version de l'application",
384
+ 'media.sealedUnavailable': "La pièce jointe chiffrée n'a pas pu être ouverte",
385
+ 'media.sealedDownload': 'Télécharger et déchiffrer',
386
+ 'media.sealedDownloading': 'Déchiffrement…',
387
+ 'media.sealedDownloadFailed': 'Échec du téléchargement — appuyez pour réessayer',
289
388
  'message.newMessages': 'Nouveaux messages',
290
389
  'notification.senderFallback': 'Nouveau message',
291
390
  'presence.online': 'en ligne',
@@ -405,6 +504,10 @@ const fr = {
405
504
  'settings.menu.title': 'Paramètres',
406
505
  'modal.filePreview.title': 'Aperçu du fichier',
407
506
  'toast.error': 'Erreur',
507
+ 'toast.failedToCreateRoom': 'Impossible de créer le salon',
508
+ 'toast.copied': 'Copié dans le presse-papiers !',
509
+ 'toast.copyFailed': 'Échec de la copie',
510
+ 'toast.saveSuccessful': 'Enregistré',
408
511
  'toast.couldNotOpenPrivateChat': "Impossible d'ouvrir la nouvelle discussion privée",
409
512
  'toast.couldNotResolveRecipient': 'Impossible de résoudre le destinataire',
410
513
  'toast.failedToCreatePrivateChat': 'Échec de la création de la discussion privée',
@@ -430,6 +533,7 @@ const fr = {
430
533
  'field.referralCode': 'Votre code de parrainage',
431
534
  'action.logOut': 'Déconnexion',
432
535
  'action.message': 'Message',
536
+ 'action.encryptedMessage': 'Message chiffré',
433
537
  'action.videoCall': 'Appel vidéo',
434
538
  'action.call': 'Appeler',
435
539
  'action.audioCall': 'Appel audio',
@@ -471,6 +575,8 @@ const fr = {
471
575
  'modal.chatProfile.removeMember': 'Retirer de cette discussion ?',
472
576
  'modal.chatProfile.memberListUnavailable': 'Liste des membres indisponible',
473
577
  'modal.deleteChat.title': 'Supprimer cette discussion ?',
578
+ 'modal.deleteMessage.title': 'Supprimer le message',
579
+ 'modal.deleteMessage.description': 'Voulez-vous vraiment supprimer ce message ?',
474
580
  'modal.addMembers.title': 'Ajouter un nouveau membre',
475
581
  'modal.addMembers.userIdPlaceholder': "Entrez l'ID utilisateur",
476
582
  'modal.leaveChat.title': 'Quitter la discussion',
@@ -507,6 +613,22 @@ const fr = {
507
613
  'settings.notifications.title': 'Notifications',
508
614
  'settings.notifications.push': 'Notifications push',
509
615
  'settings.notifications.pushHint': 'Les nouveaux messages et appels réveillent cet appareil même quand l\'application est fermée.',
616
+ 'settings.language.app': "Langue de l'application",
617
+ 'settings.language.appHint': "La langue de l'interface.",
618
+ 'settings.language.chat': 'Langue du chat',
619
+ 'settings.language.chatHint': 'Les messages sont traduits dans cette langue.',
620
+ 'settings.password.title': 'Changer le mot de passe',
621
+ 'settings.password.current': 'Mot de passe actuel',
622
+ 'settings.password.new': 'Nouveau mot de passe',
623
+ 'settings.password.again': 'Répéter le nouveau mot de passe',
624
+ 'settings.password.submit': 'Changer le mot de passe',
625
+ 'settings.password.changed': 'Mot de passe modifié',
626
+ 'settings.password.wrongCurrent': 'Le mot de passe actuel est incorrect',
627
+ 'settings.password.failed': "Le mot de passe n'a pas pu être modifié",
628
+ 'settings.password.tooShort': 'Au moins {min} caractères',
629
+ 'settings.password.sameAsCurrent': 'Doit être différent du mot de passe actuel',
630
+ 'settings.password.mismatch': 'Les mots de passe ne correspondent pas',
631
+ 'settings.password.hint': 'Utilisez le nouveau mot de passe à votre prochaine connexion.',
510
632
  'settings.visibility.title': 'Visibilité',
511
633
  'settings.visibility.profileLabel': 'Visibilité du profil',
512
634
  'settings.visibility.open': 'Ouvert (par défaut)',
@@ -533,7 +655,12 @@ const fr = {
533
655
  };
534
656
  const es = {
535
657
  'search.placeholder': 'Buscar...',
536
- 'roomList.title': 'Chats',
658
+ 'roomList.title': 'Conversaciones',
659
+ 'menu.newChat': 'Nuevo chat',
660
+ 'menu.profile': 'Perfil',
661
+ 'menu.settings': 'Configuración',
662
+ 'menu.logout': 'Cerrar sesión',
663
+ 'menu.logoutConfirm': '¿Seguro que quieres cerrar sesión?',
537
664
  'search.members': 'Buscar miembros',
538
665
  'search.noResults': 'No se encontró a nadie',
539
666
  'input.placeholder': 'Escribe un mensaje',
@@ -543,6 +670,39 @@ const es = {
543
670
  'date.yesterday': 'Ayer',
544
671
  'message.deleted': 'Mensaje eliminado',
545
672
  'message.edited': 'editado',
673
+ 'message.sending': 'enviando...',
674
+ 'message.failedRetry': '! Error — toca para reintentar',
675
+ 'thread.title': 'Hilo',
676
+ 'thread.alsoSendTo': 'Enviar también a',
677
+ 'e2ee.roomEncrypted': 'Cifrado de extremo a extremo',
678
+ 'e2ee.notEncrypted': 'Sin cifrar',
679
+ 'e2ee.notEncryptedHint': 'Enviado sin cifrado de extremo a extremo, porque ningún destinatario ha publicado una clave todavía.',
680
+ 'e2ee.devices.title': 'Cifrado de extremo a extremo',
681
+ 'e2ee.devices.thisDevice': 'Este dispositivo',
682
+ 'e2ee.devices.otherDevices': 'Otros dispositivos',
683
+ 'e2ee.devices.none': 'Aún no ha abierto un chat cifrado',
684
+ 'e2ee.devices.noneOwn': 'No hay otros dispositivos',
685
+ 'e2ee.devices.unavailable': 'El cifrado no está activo en este dispositivo en este momento',
686
+ 'e2ee.devices.loading': 'Cargando dispositivos…',
687
+ 'e2ee.devices.hint': 'Compara una huella con la que aparece en el dispositivo de la otra persona. Márcala como verificada solo si coinciden.',
688
+ 'e2ee.trust.verified': 'Verificado',
689
+ 'e2ee.trust.blind': 'Sin verificar',
690
+ 'e2ee.trust.untrusted': 'No fiable',
691
+ 'e2ee.trust.verify': 'Marcar como verificado',
692
+ 'e2ee.trust.distrust': 'Dejar de confiar',
693
+ 'e2ee.trust.reset': 'Quitar la marca',
694
+ 'e2ee.trust.prompt': 'Dispositivo {id}',
695
+ 'e2ee.devices.copied': 'Huella copiada',
696
+ 'e2ee.unsupportedMessage': 'Mensaje cifrado. Esta versión de la aplicación aún no puede leerlo.',
697
+ 'e2ee.otherDevice': 'Cifrado para otro dispositivo',
698
+ 'e2ee.undecryptable': 'No se pudo descifrar este mensaje',
699
+ 'e2ee.sendUnavailable': 'Este chat está cifrado de extremo a extremo. El envío desde la aplicación móvil aún no está disponible.',
700
+ 'media.sealedFile': 'Archivo cifrado',
701
+ 'media.sealedUnsupported': 'Aún no se puede abrir en esta versión de la aplicación',
702
+ 'media.sealedUnavailable': 'No se pudo abrir el archivo adjunto cifrado',
703
+ 'media.sealedDownload': 'Descargar y descifrar',
704
+ 'media.sealedDownloading': 'Descifrando…',
705
+ 'media.sealedDownloadFailed': 'Error de descarga: toca para reintentar',
546
706
  'message.newMessages': 'Nuevos mensajes',
547
707
  'notification.senderFallback': 'Nuevo mensaje',
548
708
  'presence.online': 'en línea',
@@ -662,6 +822,10 @@ const es = {
662
822
  'settings.menu.title': 'Configuración',
663
823
  'modal.filePreview.title': 'Vista previa del archivo',
664
824
  'toast.error': 'Error',
825
+ 'toast.failedToCreateRoom': 'No se pudo crear la sala',
826
+ 'toast.copied': '¡Copiado al portapapeles!',
827
+ 'toast.copyFailed': 'No se pudo copiar',
828
+ 'toast.saveSuccessful': 'Guardado correctamente',
665
829
  'toast.couldNotOpenPrivateChat': 'No se pudo abrir el nuevo chat privado',
666
830
  'toast.couldNotResolveRecipient': 'No se pudo resolver el destinatario',
667
831
  'toast.failedToCreatePrivateChat': 'No se pudo crear el chat privado',
@@ -687,6 +851,7 @@ const es = {
687
851
  'field.referralCode': 'Tu código de referido',
688
852
  'action.logOut': 'Cerrar sesión',
689
853
  'action.message': 'Mensaje',
854
+ 'action.encryptedMessage': 'Mensaje cifrado',
690
855
  'action.videoCall': 'Videollamada',
691
856
  'action.call': 'Llamar',
692
857
  'action.audioCall': 'Llamada de audio',
@@ -728,6 +893,8 @@ const es = {
728
893
  'modal.chatProfile.removeMember': '¿Quitar de este chat?',
729
894
  'modal.chatProfile.memberListUnavailable': 'Lista de miembros no disponible',
730
895
  'modal.deleteChat.title': '¿Eliminar este chat?',
896
+ 'modal.deleteMessage.title': 'Eliminar mensaje',
897
+ 'modal.deleteMessage.description': '¿Seguro que quieres eliminar este mensaje?',
731
898
  'modal.addMembers.title': 'Añadir nuevo miembro',
732
899
  'modal.addMembers.userIdPlaceholder': 'Introduce el ID de usuario',
733
900
  'modal.leaveChat.title': 'Salir del chat',
@@ -764,6 +931,22 @@ const es = {
764
931
  'settings.notifications.title': 'Notificaciones',
765
932
  'settings.notifications.push': 'Notificaciones push',
766
933
  'settings.notifications.pushHint': 'Los mensajes y llamadas nuevos despiertan este dispositivo incluso con la aplicación cerrada.',
934
+ 'settings.language.app': 'Idioma de la aplicación',
935
+ 'settings.language.appHint': 'El idioma de la interfaz.',
936
+ 'settings.language.chat': 'Idioma del chat',
937
+ 'settings.language.chatHint': 'Los mensajes se traducen a este idioma.',
938
+ 'settings.password.title': 'Cambiar contraseña',
939
+ 'settings.password.current': 'Contraseña actual',
940
+ 'settings.password.new': 'Nueva contraseña',
941
+ 'settings.password.again': 'Repetir la nueva contraseña',
942
+ 'settings.password.submit': 'Cambiar contraseña',
943
+ 'settings.password.changed': 'Contraseña cambiada',
944
+ 'settings.password.wrongCurrent': 'La contraseña actual no es correcta',
945
+ 'settings.password.failed': 'No se pudo cambiar la contraseña',
946
+ 'settings.password.tooShort': 'Al menos {min} caracteres',
947
+ 'settings.password.sameAsCurrent': 'Debe ser distinta de la contraseña actual',
948
+ 'settings.password.mismatch': 'Las contraseñas no coinciden',
949
+ 'settings.password.hint': 'Usa la nueva contraseña la próxima vez que inicies sesión.',
767
950
  'settings.visibility.title': 'Visibilidad',
768
951
  'settings.visibility.profileLabel': 'Visibilidad del perfil',
769
952
  'settings.visibility.open': 'Abierto (predeterminado)',
@@ -791,6 +974,11 @@ const es = {
791
974
  const pt = {
792
975
  'search.placeholder': 'Pesquisar...',
793
976
  'roomList.title': 'Conversas',
977
+ 'menu.newChat': 'Nova conversa',
978
+ 'menu.profile': 'Perfil',
979
+ 'menu.settings': 'Definições',
980
+ 'menu.logout': 'Terminar sessão',
981
+ 'menu.logoutConfirm': 'Tem a certeza de que quer terminar a sessão?',
794
982
  'search.members': 'Pesquisar membros',
795
983
  'search.noResults': 'Ninguém encontrado',
796
984
  'input.placeholder': 'Escreva uma mensagem',
@@ -800,6 +988,39 @@ const pt = {
800
988
  'date.yesterday': 'Ontem',
801
989
  'message.deleted': 'Mensagem eliminada',
802
990
  'message.edited': 'editado',
991
+ 'message.sending': 'a enviar...',
992
+ 'message.failedRetry': '! Falhou — toque para tentar de novo',
993
+ 'thread.title': 'Tópico',
994
+ 'thread.alsoSendTo': 'Enviar também para',
995
+ 'e2ee.roomEncrypted': 'Criptografado de ponta a ponta',
996
+ 'e2ee.notEncrypted': 'Sem criptografia',
997
+ 'e2ee.notEncryptedHint': 'Enviado sem criptografia de ponta a ponta, porque nenhum destinatário publicou uma chave ainda.',
998
+ 'e2ee.devices.title': 'Criptografia de ponta a ponta',
999
+ 'e2ee.devices.thisDevice': 'Este dispositivo',
1000
+ 'e2ee.devices.otherDevices': 'Outros dispositivos',
1001
+ 'e2ee.devices.none': 'Ainda não abriu uma conversa criptografada',
1002
+ 'e2ee.devices.noneOwn': 'Nenhum outro dispositivo',
1003
+ 'e2ee.devices.unavailable': 'A criptografia não está ativa neste dispositivo no momento',
1004
+ 'e2ee.devices.loading': 'Carregando dispositivos…',
1005
+ 'e2ee.devices.hint': 'Compare uma impressão digital com a exibida no dispositivo da outra pessoa. Marque como verificada somente se coincidirem.',
1006
+ 'e2ee.trust.verified': 'Verificado',
1007
+ 'e2ee.trust.blind': 'Não verificado',
1008
+ 'e2ee.trust.untrusted': 'Não confiável',
1009
+ 'e2ee.trust.verify': 'Marcar como verificado',
1010
+ 'e2ee.trust.distrust': 'Deixar de confiar',
1011
+ 'e2ee.trust.reset': 'Remover a marca',
1012
+ 'e2ee.trust.prompt': 'Dispositivo {id}',
1013
+ 'e2ee.devices.copied': 'Impressão digital copiada',
1014
+ 'e2ee.unsupportedMessage': 'Mensagem criptografada. Esta versão do aplicativo ainda não consegue lê-la.',
1015
+ 'e2ee.otherDevice': 'Criptografado para outro dispositivo',
1016
+ 'e2ee.undecryptable': 'Não foi possível descriptografar esta mensagem',
1017
+ 'e2ee.sendUnavailable': 'Esta conversa é criptografada de ponta a ponta. O envio pelo aplicativo móvel ainda não está disponível.',
1018
+ 'media.sealedFile': 'Arquivo criptografado',
1019
+ 'media.sealedUnsupported': 'Ainda não pode ser aberto nesta versão do aplicativo',
1020
+ 'media.sealedUnavailable': 'Não foi possível abrir o anexo criptografado',
1021
+ 'media.sealedDownload': 'Baixar e descriptografar',
1022
+ 'media.sealedDownloading': 'Descriptografando…',
1023
+ 'media.sealedDownloadFailed': 'Falha no download — toque para tentar novamente',
803
1024
  'message.newMessages': 'Novas mensagens',
804
1025
  'notification.senderFallback': 'Nova mensagem',
805
1026
  'presence.online': 'online',
@@ -919,6 +1140,10 @@ const pt = {
919
1140
  'settings.menu.title': 'Definições',
920
1141
  'modal.filePreview.title': 'Pré-visualização do ficheiro',
921
1142
  'toast.error': 'Erro',
1143
+ 'toast.failedToCreateRoom': 'Falha ao criar a sala',
1144
+ 'toast.copied': 'Copiado para a área de transferência!',
1145
+ 'toast.copyFailed': 'Falha ao copiar',
1146
+ 'toast.saveSuccessful': 'Guardado com sucesso',
922
1147
  'toast.couldNotOpenPrivateChat': 'Não foi possível abrir o novo chat privado',
923
1148
  'toast.couldNotResolveRecipient': 'Não foi possível identificar o destinatário',
924
1149
  'toast.failedToCreatePrivateChat': 'Falha ao criar o chat privado',
@@ -944,6 +1169,7 @@ const pt = {
944
1169
  'field.referralCode': 'O seu código de referência',
945
1170
  'action.logOut': 'Terminar sessão',
946
1171
  'action.message': 'Mensagem',
1172
+ 'action.encryptedMessage': 'Mensagem criptografada',
947
1173
  'action.videoCall': 'Videochamada',
948
1174
  'action.call': 'Ligar',
949
1175
  'action.audioCall': 'Chamada de áudio',
@@ -985,6 +1211,8 @@ const pt = {
985
1211
  'modal.chatProfile.removeMember': 'Remover deste chat?',
986
1212
  'modal.chatProfile.memberListUnavailable': 'Lista de membros indisponível',
987
1213
  'modal.deleteChat.title': 'Eliminar este chat?',
1214
+ 'modal.deleteMessage.title': 'Eliminar mensagem',
1215
+ 'modal.deleteMessage.description': 'Tem a certeza de que quer eliminar esta mensagem?',
988
1216
  'modal.addMembers.title': 'Adicionar novo membro',
989
1217
  'modal.addMembers.userIdPlaceholder': 'Introduza o ID do utilizador',
990
1218
  'modal.leaveChat.title': 'Sair do chat',
@@ -1021,6 +1249,22 @@ const pt = {
1021
1249
  'settings.notifications.title': 'Notificações',
1022
1250
  'settings.notifications.push': 'Notificações push',
1023
1251
  'settings.notifications.pushHint': 'Novas mensagens e chamadas acordam este dispositivo mesmo com o aplicativo fechado.',
1252
+ 'settings.language.app': 'Idioma do aplicativo',
1253
+ 'settings.language.appHint': 'O idioma da interface.',
1254
+ 'settings.language.chat': 'Idioma do chat',
1255
+ 'settings.language.chatHint': 'As mensagens são traduzidas para este idioma.',
1256
+ 'settings.password.title': 'Alterar senha',
1257
+ 'settings.password.current': 'Senha atual',
1258
+ 'settings.password.new': 'Nova senha',
1259
+ 'settings.password.again': 'Repetir a nova senha',
1260
+ 'settings.password.submit': 'Alterar senha',
1261
+ 'settings.password.changed': 'Senha alterada',
1262
+ 'settings.password.wrongCurrent': 'A senha atual não está correta',
1263
+ 'settings.password.failed': 'Não foi possível alterar a senha',
1264
+ 'settings.password.tooShort': 'Pelo menos {min} caracteres',
1265
+ 'settings.password.sameAsCurrent': 'Deve ser diferente da senha atual',
1266
+ 'settings.password.mismatch': 'As senhas não coincidem',
1267
+ 'settings.password.hint': 'Use a nova senha na próxima vez que entrar.',
1024
1268
  'settings.visibility.title': 'Visibilidade',
1025
1269
  'settings.visibility.profileLabel': 'Visibilidade do perfil',
1026
1270
  'settings.visibility.open': 'Aberto (predefinição)',
@@ -1048,6 +1292,11 @@ const pt = {
1048
1292
  const ht = {
1049
1293
  'search.placeholder': 'Chèche...',
1050
1294
  'roomList.title': 'Chat yo',
1295
+ 'menu.newChat': 'Nouvo chat',
1296
+ 'menu.profile': 'Pwofil',
1297
+ 'menu.settings': 'Paramèt',
1298
+ 'menu.logout': 'Dekonekte',
1299
+ 'menu.logoutConfirm': 'Èske ou sèten ou vle dekonekte?',
1051
1300
  'search.members': 'Chèche manm',
1052
1301
  'search.noResults': 'Pa jwenn pèsonn',
1053
1302
  'input.placeholder': 'Ekri yon mesaj',
@@ -1057,6 +1306,39 @@ const ht = {
1057
1306
  'date.yesterday': 'Yè',
1058
1307
  'message.deleted': 'Mesaj efase',
1059
1308
  'message.edited': 'modifye',
1309
+ 'message.sending': 'ap voye...',
1310
+ 'message.failedRetry': '! Echwe — tape pou eseye ankò',
1311
+ 'thread.title': 'Fil',
1312
+ 'thread.alsoSendTo': 'Voye tou nan',
1313
+ 'e2ee.roomEncrypted': 'Chifre bout-a-bout',
1314
+ 'e2ee.notEncrypted': 'Pa chifre',
1315
+ 'e2ee.notEncryptedHint': 'Voye san chifraj bout-a-bout, paske okenn moun ki resevwa a poko pibliye yon kle.',
1316
+ 'e2ee.devices.title': 'Chifraj bout-a-bout',
1317
+ 'e2ee.devices.thisDevice': 'Aparèy sa a',
1318
+ 'e2ee.devices.otherDevices': 'Lòt aparèy',
1319
+ 'e2ee.devices.none': 'Poko louvri yon chat chifre',
1320
+ 'e2ee.devices.noneOwn': 'Pa gen lòt aparèy',
1321
+ 'e2ee.devices.unavailable': 'Chifraj la pa aktif sou aparèy sa a kounye a',
1322
+ 'e2ee.devices.loading': 'Ap chaje aparèy yo…',
1323
+ 'e2ee.devices.hint': 'Konpare yon anprent ak sa ki parèt sou aparèy lòt moun nan. Make li kòm verifye sèlman si yo menm.',
1324
+ 'e2ee.trust.verified': 'Verifye',
1325
+ 'e2ee.trust.blind': 'Pa verifye',
1326
+ 'e2ee.trust.untrusted': 'Pa fè konfyans',
1327
+ 'e2ee.trust.verify': 'Make kòm verifye',
1328
+ 'e2ee.trust.distrust': 'Sispann fè konfyans',
1329
+ 'e2ee.trust.reset': 'Retire mak la',
1330
+ 'e2ee.trust.prompt': 'Aparèy {id}',
1331
+ 'e2ee.devices.copied': 'Anprent kopye',
1332
+ 'e2ee.unsupportedMessage': 'Mesaj chifre. Vèsyon aplikasyon sa a poko ka li li.',
1333
+ 'e2ee.otherDevice': 'Chifre pou yon lòt aparèy',
1334
+ 'e2ee.undecryptable': 'Nou pa t kapab dechifre mesaj sa a',
1335
+ 'e2ee.sendUnavailable': 'Chat sa a chifre bout-a-bout. Voye mesaj depi aplikasyon mobil la poko disponib.',
1336
+ 'media.sealedFile': 'Fichye chifre',
1337
+ 'media.sealedUnsupported': 'Poko ka louvri nan vèsyon aplikasyon sa a',
1338
+ 'media.sealedUnavailable': 'Nou pa t kapab louvri atachman chifre a',
1339
+ 'media.sealedDownload': 'Telechaje epi dechifre',
1340
+ 'media.sealedDownloading': 'Ap dechifre…',
1341
+ 'media.sealedDownloadFailed': 'Telechajman echwe — peze pou reeseye',
1060
1342
  'message.newMessages': 'Nouvo mesaj yo',
1061
1343
  'notification.senderFallback': 'Nouvo mesaj',
1062
1344
  'presence.online': 'an liy',
@@ -1176,6 +1458,10 @@ const ht = {
1176
1458
  'settings.menu.title': 'Paramèt',
1177
1459
  'modal.filePreview.title': 'Apèsi fichye',
1178
1460
  'toast.error': 'Erè',
1461
+ 'toast.failedToCreateRoom': 'Echwe pou kreye sal la',
1462
+ 'toast.copied': 'Kopye nan clipboard la!',
1463
+ 'toast.copyFailed': 'Kopi a echwe',
1464
+ 'toast.saveSuccessful': 'Anrejistre avèk siksè',
1179
1465
  'toast.couldNotOpenPrivateChat': 'Pa t kapab louvri nouvo chat prive a',
1180
1466
  'toast.couldNotResolveRecipient': 'Pa t kapab jwenn destinatè a',
1181
1467
  'toast.failedToCreatePrivateChat': 'Echèk pou kreye chat prive a',
@@ -1201,6 +1487,7 @@ const ht = {
1201
1487
  'field.referralCode': 'Kòd referans ou',
1202
1488
  'action.logOut': 'Dekonekte',
1203
1489
  'action.message': 'Mesaj',
1490
+ 'action.encryptedMessage': 'Mesaj chifre',
1204
1491
  'action.videoCall': 'Apèl videyo',
1205
1492
  'action.call': 'Rele',
1206
1493
  'action.audioCall': 'Apèl odyo',
@@ -1242,6 +1529,8 @@ const ht = {
1242
1529
  'modal.chatProfile.removeMember': 'Retire nan chat sa a?',
1243
1530
  'modal.chatProfile.memberListUnavailable': 'Lis manm yo pa disponib',
1244
1531
  'modal.deleteChat.title': 'Efase chat sa a?',
1532
+ 'modal.deleteMessage.title': 'Efase mesaj',
1533
+ 'modal.deleteMessage.description': 'Èske ou sèten ou vle efase mesaj sa a?',
1245
1534
  'modal.addMembers.title': 'Ajoute yon nouvo manm',
1246
1535
  'modal.addMembers.userIdPlaceholder': 'Antre ID itilizatè a',
1247
1536
  'modal.leaveChat.title': 'Kite chat la',
@@ -1278,6 +1567,22 @@ const ht = {
1278
1567
  'settings.notifications.title': 'Notifikasyon',
1279
1568
  'settings.notifications.push': 'Notifikasyon push',
1280
1569
  'settings.notifications.pushHint': 'Nouvo mesaj ak apèl reveye aparèy sa a menm lè aplikasyon an fèmen.',
1570
+ 'settings.language.app': 'Lang aplikasyon an',
1571
+ 'settings.language.appHint': 'Lang entèfas la.',
1572
+ 'settings.language.chat': 'Lang chat la',
1573
+ 'settings.language.chatHint': 'Mesaj yo tradui nan lang sa a.',
1574
+ 'settings.password.title': 'Chanje modpas',
1575
+ 'settings.password.current': 'Modpas aktyèl',
1576
+ 'settings.password.new': 'Nouvo modpas',
1577
+ 'settings.password.again': 'Repete nouvo modpas la',
1578
+ 'settings.password.submit': 'Chanje modpas',
1579
+ 'settings.password.changed': 'Modpas chanje',
1580
+ 'settings.password.wrongCurrent': 'Modpas aktyèl la pa kòrèk',
1581
+ 'settings.password.failed': 'Modpas la pa t ka chanje',
1582
+ 'settings.password.tooShort': 'Omwen {min} karaktè',
1583
+ 'settings.password.sameAsCurrent': 'Dwe diferan de modpas aktyèl la',
1584
+ 'settings.password.mismatch': 'Modpas yo pa menm',
1585
+ 'settings.password.hint': 'Sèvi ak nouvo modpas la pwochen fwa ou konekte.',
1281
1586
  'settings.visibility.title': 'Vizibilite',
1282
1587
  'settings.visibility.profileLabel': 'Vizibilite pwofil la',
1283
1588
  'settings.visibility.open': 'Louvri (default)',
@@ -1305,6 +1610,11 @@ const ht = {
1305
1610
  const zh = {
1306
1611
  'search.placeholder': '搜索...',
1307
1612
  'roomList.title': '聊天',
1613
+ 'menu.newChat': '新聊天',
1614
+ 'menu.profile': '个人资料',
1615
+ 'menu.settings': '设置',
1616
+ 'menu.logout': '退出登录',
1617
+ 'menu.logoutConfirm': '确定要退出登录吗?',
1308
1618
  'search.members': '搜索成员',
1309
1619
  'search.noResults': '未找到成员',
1310
1620
  'input.placeholder': '输入消息',
@@ -1314,6 +1624,39 @@ const zh = {
1314
1624
  'date.yesterday': '昨天',
1315
1625
  'message.deleted': '消息已删除',
1316
1626
  'message.edited': '已编辑',
1627
+ 'message.sending': '发送中...',
1628
+ 'message.failedRetry': '! 发送失败 — 点击重试',
1629
+ 'thread.title': '话题',
1630
+ 'thread.alsoSendTo': '同时发送到',
1631
+ 'e2ee.roomEncrypted': '端到端加密',
1632
+ 'e2ee.notEncrypted': '未加密',
1633
+ 'e2ee.notEncryptedHint': '未使用端到端加密发送,因为还没有收件人发布密钥。',
1634
+ 'e2ee.devices.title': '端到端加密',
1635
+ 'e2ee.devices.thisDevice': '此设备',
1636
+ 'e2ee.devices.otherDevices': '其他设备',
1637
+ 'e2ee.devices.none': '尚未打开过加密聊天',
1638
+ 'e2ee.devices.noneOwn': '没有其他设备',
1639
+ 'e2ee.devices.unavailable': '此设备上的加密当前未运行',
1640
+ 'e2ee.devices.loading': '正在加载设备…',
1641
+ 'e2ee.devices.hint': '将指纹与对方设备上显示的指纹进行比较。仅在两者一致时才标记为已验证。',
1642
+ 'e2ee.trust.verified': '已验证',
1643
+ 'e2ee.trust.blind': '未验证',
1644
+ 'e2ee.trust.untrusted': '不受信任',
1645
+ 'e2ee.trust.verify': '标记为已验证',
1646
+ 'e2ee.trust.distrust': '停止信任',
1647
+ 'e2ee.trust.reset': '清除标记',
1648
+ 'e2ee.trust.prompt': '设备 {id}',
1649
+ 'e2ee.devices.copied': '指纹已复制',
1650
+ 'e2ee.unsupportedMessage': '加密消息。此版本的应用暂时无法读取。',
1651
+ 'e2ee.otherDevice': '已为其他设备加密',
1652
+ 'e2ee.undecryptable': '无法解密此消息',
1653
+ 'e2ee.sendUnavailable': '此聊天已启用端到端加密,暂不支持从移动应用发送消息。',
1654
+ 'media.sealedFile': '加密文件',
1655
+ 'media.sealedUnsupported': '此版本的应用暂时无法打开',
1656
+ 'media.sealedUnavailable': '无法打开加密附件',
1657
+ 'media.sealedDownload': '下载并解密',
1658
+ 'media.sealedDownloading': '正在解密…',
1659
+ 'media.sealedDownloadFailed': '下载失败 — 点击重试',
1317
1660
  'message.newMessages': '新消息',
1318
1661
  'notification.senderFallback': '新消息',
1319
1662
  'presence.online': '在线',
@@ -1433,6 +1776,10 @@ const zh = {
1433
1776
  'settings.menu.title': '设置',
1434
1777
  'modal.filePreview.title': '文件预览',
1435
1778
  'toast.error': '错误',
1779
+ 'toast.failedToCreateRoom': '创建房间失败',
1780
+ 'toast.copied': '已复制到剪贴板!',
1781
+ 'toast.copyFailed': '复制失败',
1782
+ 'toast.saveSuccessful': '保存成功',
1436
1783
  'toast.couldNotOpenPrivateChat': '无法打开新的私聊',
1437
1784
  'toast.couldNotResolveRecipient': '无法识别收件人',
1438
1785
  'toast.failedToCreatePrivateChat': '创建私聊失败',
@@ -1458,6 +1805,7 @@ const zh = {
1458
1805
  'field.referralCode': '您的推荐码',
1459
1806
  'action.logOut': '退出登录',
1460
1807
  'action.message': '发消息',
1808
+ 'action.encryptedMessage': '加密消息',
1461
1809
  'action.videoCall': '视频通话',
1462
1810
  'action.call': '通话',
1463
1811
  'action.audioCall': '语音通话',
@@ -1499,6 +1847,8 @@ const zh = {
1499
1847
  'modal.chatProfile.removeMember': '将其移出该聊天?',
1500
1848
  'modal.chatProfile.memberListUnavailable': '成员列表不可用',
1501
1849
  'modal.deleteChat.title': '删除此聊天?',
1850
+ 'modal.deleteMessage.title': '删除消息',
1851
+ 'modal.deleteMessage.description': '确定要删除这条消息吗?',
1502
1852
  'modal.addMembers.title': '添加新成员',
1503
1853
  'modal.addMembers.userIdPlaceholder': '输入用户 ID',
1504
1854
  'modal.leaveChat.title': '退出聊天',
@@ -1535,6 +1885,22 @@ const zh = {
1535
1885
  'settings.notifications.title': '通知',
1536
1886
  'settings.notifications.push': '推送通知',
1537
1887
  'settings.notifications.pushHint': '即使应用已关闭,新消息和来电也会唤醒此设备。',
1888
+ 'settings.language.app': '应用语言',
1889
+ 'settings.language.appHint': '界面语言。',
1890
+ 'settings.language.chat': '聊天语言',
1891
+ 'settings.language.chatHint': '消息会翻译成此语言。',
1892
+ 'settings.password.title': '修改密码',
1893
+ 'settings.password.current': '当前密码',
1894
+ 'settings.password.new': '新密码',
1895
+ 'settings.password.again': '再次输入新密码',
1896
+ 'settings.password.submit': '修改密码',
1897
+ 'settings.password.changed': '密码已修改',
1898
+ 'settings.password.wrongCurrent': '当前密码不正确',
1899
+ 'settings.password.failed': '无法修改密码',
1900
+ 'settings.password.tooShort': '至少 {min} 个字符',
1901
+ 'settings.password.sameAsCurrent': '必须与当前密码不同',
1902
+ 'settings.password.mismatch': '两次输入的密码不一致',
1903
+ 'settings.password.hint': '下次登录时请使用新密码。',
1538
1904
  'settings.visibility.title': '可见性',
1539
1905
  'settings.visibility.profileLabel': '资料可见性',
1540
1906
  'settings.visibility.open': '公开(默认)',