stream-chat-react-native-core 5.23.2-beta.1 → 5.23.2

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 (54) hide show
  1. package/lib/commonjs/components/Channel/Channel.js +33 -32
  2. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  3. package/lib/commonjs/components/MessageInput/MessageInput.js +28 -26
  4. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  5. package/lib/commonjs/components/MessageList/MessageList.js +41 -43
  6. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  7. package/lib/commonjs/components/MessageList/hooks/useMessageList.js +1 -2
  8. package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
  9. package/lib/commonjs/i18n/en.json +1 -1
  10. package/lib/commonjs/i18n/fr.json +63 -63
  11. package/lib/commonjs/i18n/hi.json +63 -63
  12. package/lib/commonjs/i18n/it.json +63 -63
  13. package/lib/commonjs/i18n/nl.json +63 -63
  14. package/lib/commonjs/i18n/ru.json +63 -63
  15. package/lib/commonjs/i18n/tr.json +63 -63
  16. package/lib/commonjs/version.json +1 -1
  17. package/lib/module/components/Channel/Channel.js +33 -32
  18. package/lib/module/components/Channel/Channel.js.map +1 -1
  19. package/lib/module/components/MessageInput/MessageInput.js +28 -26
  20. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  21. package/lib/module/components/MessageList/MessageList.js +41 -43
  22. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  23. package/lib/module/components/MessageList/hooks/useMessageList.js +1 -2
  24. package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
  25. package/lib/module/i18n/en.json +1 -1
  26. package/lib/module/i18n/fr.json +63 -63
  27. package/lib/module/i18n/hi.json +63 -63
  28. package/lib/module/i18n/it.json +63 -63
  29. package/lib/module/i18n/nl.json +63 -63
  30. package/lib/module/i18n/ru.json +63 -63
  31. package/lib/module/i18n/tr.json +63 -63
  32. package/lib/module/version.json +1 -1
  33. package/lib/typescript/components/MessageInput/MessageInput.d.ts +1 -3
  34. package/lib/typescript/components/MessageList/MessageList.d.ts +1 -5
  35. package/lib/typescript/i18n/en.json +1 -1
  36. package/lib/typescript/i18n/fr.json +63 -63
  37. package/lib/typescript/i18n/hi.json +63 -63
  38. package/lib/typescript/i18n/it.json +63 -63
  39. package/lib/typescript/i18n/nl.json +63 -63
  40. package/lib/typescript/i18n/ru.json +63 -63
  41. package/lib/typescript/i18n/tr.json +63 -63
  42. package/package.json +1 -1
  43. package/src/components/Channel/Channel.tsx +22 -17
  44. package/src/components/MessageInput/MessageInput.tsx +12 -5
  45. package/src/components/MessageList/MessageList.tsx +12 -15
  46. package/src/components/MessageList/hooks/useMessageList.ts +2 -2
  47. package/src/i18n/en.json +1 -1
  48. package/src/i18n/fr.json +63 -63
  49. package/src/i18n/hi.json +63 -63
  50. package/src/i18n/it.json +63 -63
  51. package/src/i18n/nl.json +63 -63
  52. package/src/i18n/ru.json +63 -63
  53. package/src/i18n/tr.json +63 -63
  54. package/src/version.json +1 -1
@@ -1,76 +1,76 @@
1
1
  {
2
- "1 Reply": "",
2
+ "1 Reply": "1 Cevap",
3
3
  "1 Thread Reply": "1 Konu Yanıtı",
4
- "Allow access to your Gallery": "",
5
- "Allow camera access in device settings": "",
6
- "Also send to channel": "",
7
- "Are you sure you want to permanently delete this message?": "",
8
- "Block User": "",
9
- "Cancel": "",
10
- "Cannot Flag Message": "",
11
- "Copy Message": "",
12
- "Delete": "",
13
- "Delete Message": "",
14
- "Device camera is used to take photos or videos.": "",
15
- "Do you want to send a copy of this message to a moderator for further investigation?": "",
16
- "Edit Message": "",
17
- "Editing Message": "",
4
+ "Allow access to your Gallery": "Galerinize erişime izin verin",
5
+ "Allow camera access in device settings": "Cihaz ayarlarında kamera erişimine izin ver",
6
+ "Also send to channel": "Kanala da gönder",
7
+ "Are you sure you want to permanently delete this message?": "Bu mesajı kalıcı olarak silmek istediğinizden emin misiniz?",
8
+ "Block User": "Kullanıcıyı engelle",
9
+ "Cancel": "İptal",
10
+ "Cannot Flag Message": "Raporlama Başarısız",
11
+ "Copy Message": "Mesajı Kopyala",
12
+ "Delete": "Sil",
13
+ "Delete Message": "Mesajı Sil",
14
+ "Device camera is used to take photos or videos.": "Cihaz kamerası fotoğraf veya video çekmek için kullanılır.",
15
+ "Do you want to send a copy of this message to a moderator for further investigation?": "Detaylı inceleme için bu mesajın kopyasını moderatöre göndermek istiyor musunuz?",
16
+ "Edit Message": "Mesajı Düzenle",
17
+ "Editing Message": "Mesaj Düzenleniyor",
18
18
  "Emoji matching": "Emoji eşleştirme",
19
- "Empty message...": "",
20
- "Error loading": "",
21
- "Error loading channel list...": "",
22
- "Error loading messages for this channel...": "",
23
- "Error while loading, please reload/refresh": "",
19
+ "Empty message...": "Boş mesaj...",
20
+ "Error loading": "Yükleme hatası",
21
+ "Error loading channel list...": "Kanal listesi yüklenirken hata oluştu...",
22
+ "Error loading messages for this channel...": "Bu kanal için mesajlar yüklenirken hata oluştu...",
23
+ "Error while loading, please reload/refresh": "Yüklenirken hata oluştu, lütfen tekrar deneyiniz",
24
24
  "File type not supported": "Dosya türü desteklenmiyor",
25
- "Flag": "",
26
- "Flag Message": "",
27
- "Flag action failed either due to a network issue or the message is already flagged": "",
28
- "How about sending your first message to a friend?": "",
25
+ "Flag": "Raporla",
26
+ "Flag Message": "Mesajı Raporla",
27
+ "Flag action failed either due to a network issue or the message is already flagged": "Mesajın daha önce raporlanmış olması veya bir ağ bağlantısı sorunu nedeniyle raporlama işlemi başarısız oldu.",
28
+ "How about sending your first message to a friend?": "İlk mesajınızı bir arkadaşınıza göndermeye ne dersiniz?",
29
29
  "Instant Commands": "Anlık Komutlar",
30
- "Let's start chatting!": "",
30
+ "Let's start chatting!": "Haydi sohbete başlayalım!",
31
31
  "Links are disabled": "Bağlantılar devre dışı",
32
- "Loading channels...": "",
33
- "Loading messages...": "",
34
- "Loading...": "",
32
+ "Loading channels...": "Kanallar yükleniyor...",
33
+ "Loading messages...": "Mesajlar yükleniyor...",
34
+ "Loading...": "Yükleniyor...",
35
35
  "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "Maksimum dosya boyutu yükleme sınırına ulaşıldı. Lütfen {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB'ın altında bir dosya yükleyin.",
36
- "Message Reactions": "",
37
- "Message deleted": "",
38
- "Message flagged": "",
39
- "Mute User": "",
40
- "Not supported": "",
41
- "Nothing yet...": "",
42
- "Ok": "",
43
- "Only visible to you": "",
44
- "Open Settings": "",
45
- "Photo": "",
46
- "Photos and Videos": "",
47
- "Pin to Conversation": "",
36
+ "Message Reactions": "Mesaj Tepkileri",
37
+ "Message deleted": "Mesaj silindi",
38
+ "Message flagged": "Mesaj işaretlendi",
39
+ "Mute User": "Kullanıcıyı sessize al",
40
+ "Not supported": "Desteklenmiyor",
41
+ "Nothing yet...": "Henüz değil...",
42
+ "Ok": "Tamam",
43
+ "Only visible to you": "Sadece siz görebilirsiniz",
44
+ "Open Settings": "Ayarları aç",
45
+ "Photo": "Fotoğraf",
46
+ "Photos and Videos": "Fotoğraflar ve Videolar",
47
+ "Pin to Conversation": "Konuşmaya sabitle",
48
48
  "Pinned by": "Tarafından sabitlendi",
49
- "Please enable access to your photos and videos so you can share them.": "",
49
+ "Please enable access to your photos and videos so you can share them.": "Paylaşım yapabilmek için lutfen fotoğraflarınıza ve videolarınıza erişimi etkinleştirin.",
50
50
  "Please select a channel first": "Lütfen önce bir kanal seçiniz",
51
- "Reconnecting...": "",
52
- "Reply": "",
53
- "Reply to Message": "",
54
- "Resend": "",
55
- "Search GIFs": "",
56
- "Select More Photos": "",
57
- "Send a message": "",
51
+ "Reconnecting...": "Yeniden Bağlanılıyor...",
52
+ "Reply": "Yanıtla",
53
+ "Reply to Message": "Mesajı Yanıtla",
54
+ "Resend": "Yeniden gönder",
55
+ "Search GIFs": "GIF Ara",
56
+ "Select More Photos": "Daha Fazla Fotoğraf Seçin",
57
+ "Send a message": "Mesaj gönder",
58
58
  "Sending links is not allowed in this conversation": "Bu konuşmada bağlantı göndermek desteklenmiyor",
59
- "Slow mode ON": "",
60
- "The message has been reported to a moderator.": "",
61
- "Thread Reply": "",
62
- "Unblock User": "",
63
- "Unknown User": "",
64
- "Unmute User": "",
65
- "Unpin from Conversation": "",
66
- "Unread Messages": "",
67
- "Video": "",
68
- "You": "",
59
+ "Slow mode ON": "Yavaş Mod Açık",
60
+ "The message has been reported to a moderator.": "Mesaj moderatöre bildirildi.",
61
+ "Thread Reply": "Konu Yanıtı",
62
+ "Unblock User": "Kullanıcının engelini kaldır",
63
+ "Unknown User": "Bilinmeyen kullanıcı",
64
+ "Unmute User": "Kullanıcının sesini aç",
65
+ "Unpin from Conversation": "Sabitlemeyi kaldır",
66
+ "Unread Messages": "Okunmamış Mesajlar",
67
+ "Video": "Video",
68
+ "You": "Sen",
69
69
  "You can't send messages in this channel": "Bu konuşmaya mesaj gönderemezsiniz",
70
- "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
71
- "{{ index }} of {{ photoLength }}": "",
72
- "{{ replyCount }} Replies": "",
70
+ "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} ve {{ nonSelfUserLength }} kişi daha yazıyor",
71
+ "{{ index }} of {{ photoLength }}": "{{ index }} / {{ photoLength }}",
72
+ "{{ replyCount }} Replies": "{{ replyCount }} Cevap",
73
73
  "{{ replyCount }} Thread Replies": "{{responseCount}} Konu Cevapı",
74
- "{{ user }} is typing": "",
75
- "🏙 Attachment...": ""
74
+ "{{ user }} is typing": "{{ user }} yazıyor",
75
+ "🏙 Attachment...": "🏙 Ek..."
76
76
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stream-chat-react-native-core",
3
3
  "description": "The official React Native and Expo components for Stream Chat, a service for building chat applications",
4
- "version": "5.23.2-beta.1",
4
+ "version": "5.23.2",
5
5
  "author": {
6
6
  "company": "Stream.io Inc",
7
7
  "name": "Stream.io Inc"
@@ -777,15 +777,18 @@ const ChannelWithContext = <
777
777
  useEffect(() => {
778
778
  const handleEvent: EventHandler<StreamChatGenerics> = (event) => {
779
779
  if (shouldSyncChannel) {
780
- if (thread) {
781
- const updatedThreadMessages =
782
- (thread.id && channel && channel.state.threads[thread.id]) || threadMessages;
783
- setThreadMessages(updatedThreadMessages);
784
- }
780
+ const isTypingEvent = event.type === 'typing.start' || event.type === 'typing.stop';
781
+ if (!isTypingEvent) {
782
+ if (thread?.id) {
783
+ const updatedThreadMessages =
784
+ (thread.id && channel && channel.state.threads[thread.id]) || threadMessages;
785
+ setThreadMessages(updatedThreadMessages);
786
+ }
785
787
 
786
- if (channel && thread && event.message?.id === thread.id) {
787
- const updatedThread = channel.state.formatMessage(event.message);
788
- setThread(updatedThread);
788
+ if (channel && thread?.id && event.message?.id === thread.id) {
789
+ const updatedThread = channel.state.formatMessage(event.message);
790
+ setThread(updatedThread);
791
+ }
789
792
  }
790
793
 
791
794
  // only update channel state if the events are not the previously subscribed useEffect's subscription events
@@ -1097,11 +1100,11 @@ const ChannelWithContext = <
1097
1100
  channelQueryCallRef.current(async () => {
1098
1101
  if (!channel?.initialized || !channel.state.isUpToDate) {
1099
1102
  await channel?.watch();
1103
+ channel?.state.setIsUpToDate(true);
1104
+ setHasNoMoreRecentMessagesToLoad(true);
1100
1105
  } else {
1101
- await loadLatestMessagesRef.current(true);
1106
+ await channel.state.loadMessageIntoState('latest');
1102
1107
  }
1103
- channel?.state.setIsUpToDate(true);
1104
- setHasNoMoreRecentMessagesToLoad(true);
1105
1108
  });
1106
1109
 
1107
1110
  const reloadThread = async () => {
@@ -1999,11 +2002,14 @@ const ChannelWithContext = <
1999
2002
  /**
2000
2003
  * THREAD METHODS
2001
2004
  */
2002
- const openThread: ThreadContextValue<StreamChatGenerics>['openThread'] = (message) => {
2003
- const newThreadMessages = message?.id ? channel?.state?.threads[message.id] || [] : [];
2004
- setThread(message);
2005
- setThreadMessages(newThreadMessages);
2006
- };
2005
+ const openThread: ThreadContextValue<StreamChatGenerics>['openThread'] = useCallback(
2006
+ (message) => {
2007
+ const newThreadMessages = message?.id ? channel?.state?.threads[message.id] || [] : [];
2008
+ setThread(message);
2009
+ setThreadMessages(newThreadMessages);
2010
+ },
2011
+ [setThread, setThreadMessages],
2012
+ );
2007
2013
 
2008
2014
  const closeThread: ThreadContextValue<StreamChatGenerics>['closeThread'] = useCallback(() => {
2009
2015
  setThread(null);
@@ -2365,7 +2371,6 @@ export const Channel = <
2365
2371
 
2366
2372
  return (
2367
2373
  <ChannelWithContext<StreamChatGenerics>
2368
- key={props.channel?.cid}
2369
2374
  {...{
2370
2375
  client,
2371
2376
  enableOfflineSupport,
@@ -81,7 +81,10 @@ const styles = StyleSheet.create({
81
81
  type MessageInputPropsWithContext<
82
82
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
83
83
  > = Pick<ChatContextValue<StreamChatGenerics>, 'isOnline'> &
84
- Pick<ChannelContextValue<StreamChatGenerics>, 'disabled' | 'members' | 'watchers'> &
84
+ Pick<
85
+ ChannelContextValue<StreamChatGenerics>,
86
+ 'disabled' | 'members' | 'threadList' | 'watchers'
87
+ > &
85
88
  Pick<
86
89
  MessageInputContextValue<StreamChatGenerics>,
87
90
  | 'additionalTextInputProps'
@@ -132,9 +135,7 @@ type MessageInputPropsWithContext<
132
135
  | 'triggerType'
133
136
  > &
134
137
  Pick<ThreadContextValue<StreamChatGenerics>, 'thread'> &
135
- Pick<TranslationContextValue, 't'> & {
136
- threadList?: boolean;
137
- };
138
+ Pick<TranslationContextValue, 't'>;
138
139
 
139
140
  const MessageInputWithContext = <
140
141
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
@@ -791,7 +792,12 @@ export const MessageInput = <
791
792
  const { isOnline } = useChatContext();
792
793
  const ownCapabilities = useOwnCapabilitiesContext();
793
794
 
794
- const { disabled = false, members, watchers } = useChannelContext<StreamChatGenerics>();
795
+ const {
796
+ disabled = false,
797
+ members,
798
+ threadList,
799
+ watchers,
800
+ } = useChannelContext<StreamChatGenerics>();
795
801
 
796
802
  const {
797
803
  additionalTextInputProps,
@@ -900,6 +906,7 @@ export const MessageInput = <
900
906
  suggestions,
901
907
  t,
902
908
  thread,
909
+ threadList,
903
910
  triggerType,
904
911
  uploadNewFile,
905
912
  uploadNewImage,
@@ -132,6 +132,7 @@ type MessageListPropsWithContext<
132
132
  | 'setTargetedMessage'
133
133
  | 'StickyHeader'
134
134
  | 'targetedMessage'
135
+ | 'threadList'
135
136
  > &
136
137
  Pick<ChatContextValue<StreamChatGenerics>, 'client'> &
137
138
  Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setMessages'> &
@@ -215,10 +216,6 @@ type MessageListPropsWithContext<
215
216
  * ```
216
217
  */
217
218
  setFlatListRef?: (ref: FlatListType<MessageType<StreamChatGenerics>> | null) => void;
218
- /**
219
- * Boolean whether or not the Messages in the MessageList are part of a Thread
220
- **/
221
- threadList?: boolean;
222
219
  };
223
220
 
224
221
  /**
@@ -545,7 +542,11 @@ const MessageListWithContext = <
545
542
 
546
543
  useEffect(() => {
547
544
  if (!rawMessageList.length) return;
548
- const notLatestSet = !threadList && channel.state.messages !== channel.state.latestMessages;
545
+ if (threadList) {
546
+ setAutoscrollToRecent(true);
547
+ return;
548
+ }
549
+ const notLatestSet = channel.state.messages !== channel.state.latestMessages;
549
550
  if (notLatestSet) {
550
551
  latestNonCurrentMessageBeforeUpdateRef.current =
551
552
  channel.state.latestMessages[channel.state.latestMessages.length - 1];
@@ -729,10 +730,8 @@ const MessageListWithContext = <
729
730
  // If onEndReached is in progress, better to wait for it to finish for smooth UX
730
731
  if (onEndReachedInPromise.current) {
731
732
  await onEndReachedInPromise.current;
732
- onStartReachedInPromise.current = loadMoreRecent(limit).then(callback).catch(onError);
733
- } else {
734
- onStartReachedInPromise.current = loadMoreRecent(limit).then(callback).catch(onError);
735
733
  }
734
+ onStartReachedInPromise.current = loadMoreRecent(limit).then(callback).catch(onError);
736
735
  };
737
736
 
738
737
  /**
@@ -765,14 +764,10 @@ const MessageListWithContext = <
765
764
  // If onStartReached is in progress, better to wait for it to finish for smooth UX
766
765
  if (onStartReachedInPromise.current) {
767
766
  await onStartReachedInPromise.current;
768
- onEndReachedInPromise.current = (threadList ? loadMoreThread() : loadMore())
769
- .then(callback)
770
- .catch(onError);
771
- } else {
772
- onEndReachedInPromise.current = (threadList ? loadMoreThread() : loadMore())
773
- .then(callback)
774
- .catch(onError);
775
767
  }
768
+ onEndReachedInPromise.current = (threadList ? loadMoreThread() : loadMore())
769
+ .then(callback)
770
+ .catch(onError);
776
771
  };
777
772
 
778
773
  const onUserScrollEvent: NonNullable<ScrollViewProps['onScroll']> = (event) => {
@@ -1226,6 +1221,7 @@ export const MessageList = <
1226
1221
  setTargetedMessage,
1227
1222
  StickyHeader,
1228
1223
  targetedMessage,
1224
+ threadList,
1229
1225
  } = useChannelContext<StreamChatGenerics>();
1230
1226
  const { client } = useChatContext<StreamChatGenerics>();
1231
1227
  const { setMessages } = useImageGalleryContext<StreamChatGenerics>();
@@ -1294,6 +1290,7 @@ export const MessageList = <
1294
1290
  targetedMessage,
1295
1291
  tDateTimeParser,
1296
1292
  thread,
1293
+ threadList,
1297
1294
  TypingIndicator,
1298
1295
  TypingIndicatorContainer,
1299
1296
  }}
@@ -106,11 +106,11 @@ export const useMessageList = <
106
106
  const processedMessageList = [
107
107
  ...messagesWithStylesReadByAndDateSeparator,
108
108
  ].reverse() as MessageType<StreamChatGenerics>[];
109
- const rawMessageList = messageList;
109
+
110
110
  return {
111
111
  /** Messages enriched with dates/readby/groups and also reversed in order */
112
112
  processedMessageList,
113
113
  /** Raw messages from the channel state */
114
- rawMessageList,
114
+ rawMessageList: messageList,
115
115
  };
116
116
  };
package/src/i18n/en.json CHANGED
@@ -24,7 +24,7 @@
24
24
  "File type not supported": "File type not supported",
25
25
  "Flag": "Flag",
26
26
  "Flag Message": "Flag Message",
27
- "Flag action failed either due to a network issue or the message is already flagged": "Flag action failed either due to a network issue or the message is already flagged",
27
+ "Flag action failed either due to a network issue or the message is already flagged": "Flag action failed either due to a network issue or the message is already flagged.",
28
28
  "How about sending your first message to a friend?": "How about sending your first message to a friend?",
29
29
  "Instant Commands": "Instant Commands",
30
30
  "Let's start chatting!": "Let's start chatting!",
package/src/i18n/fr.json CHANGED
@@ -1,76 +1,76 @@
1
1
  {
2
- "1 Reply": "",
2
+ "1 Reply": "1 Réponse",
3
3
  "1 Thread Reply": "Réponse à 1 fil",
4
- "Allow access to your Gallery": "",
5
- "Allow camera access in device settings": "",
6
- "Also send to channel": "",
7
- "Are you sure you want to permanently delete this message?": "",
8
- "Block User": "",
9
- "Cancel": "",
10
- "Cannot Flag Message": "",
11
- "Copy Message": "",
12
- "Delete": "",
13
- "Delete Message": "",
14
- "Device camera is used to take photos or videos.": "",
15
- "Do you want to send a copy of this message to a moderator for further investigation?": "",
16
- "Edit Message": "",
17
- "Editing Message": "",
4
+ "Allow access to your Gallery": "Autoriser l'accès à votre galerie",
5
+ "Allow camera access in device settings": "Autoriser l'accès à la caméra dans les paramètres de l'appareil",
6
+ "Also send to channel": "Envoyer également à la chaîne",
7
+ "Are you sure you want to permanently delete this message?": "Êtes-vous sûr de vouloir supprimer définitivement ce message?",
8
+ "Block User": "Bloquer un utilisateur",
9
+ "Cancel": "Annuler",
10
+ "Cannot Flag Message": "Impossible de signaler le message",
11
+ "Copy Message": "Copier le message",
12
+ "Delete": "Supprimer",
13
+ "Delete Message": "Supprimer un message",
14
+ "Device camera is used to take photos or videos.": "L'appareil photo de l'appareil est utilisé pour prendre des photos ou des vidéos.",
15
+ "Do you want to send a copy of this message to a moderator for further investigation?": "Voulez-vous envoyer une copie de ce message à un modérateur pour une enquête plus approfondie?",
16
+ "Edit Message": "Éditer un message",
17
+ "Editing Message": "Édite un message",
18
18
  "Emoji matching": "Correspondance Emoji",
19
- "Empty message...": "",
20
- "Error loading": "",
21
- "Error loading channel list...": "",
22
- "Error loading messages for this channel...": "",
23
- "Error while loading, please reload/refresh": "",
19
+ "Empty message...": "Message vide...",
20
+ "Error loading": "Erreur lors du chargement",
21
+ "Error loading channel list...": "Erreur lors du chargement de la liste de canaux...",
22
+ "Error loading messages for this channel...": "Erreur lors du chargement des messages de ce canal...",
23
+ "Error while loading, please reload/refresh": "Erreur lors du chargement, veuillez recharger/rafraîchir",
24
24
  "File type not supported": "Le type de fichier n'est pas pris en charge",
25
- "Flag": "",
26
- "Flag Message": "",
27
- "Flag action failed either due to a network issue or the message is already flagged": "",
28
- "How about sending your first message to a friend?": "",
25
+ "Flag": "Signaler",
26
+ "Flag Message": "Signaler le message",
27
+ "Flag action failed either due to a network issue or the message is already flagged": "L'action de signalisation a échoué en raison d'un problème de réseau ou le message est déjà signalé.",
28
+ "How about sending your first message to a friend?": "Et si vous envoyiez votre premier message à un ami ?",
29
29
  "Instant Commands": "Commandes Instantanées",
30
- "Let's start chatting!": "",
30
+ "Let's start chatting!": "Commençons à discuter !",
31
31
  "Links are disabled": "Links are disabled",
32
- "Loading channels...": "",
33
- "Loading messages...": "",
34
- "Loading...": "",
32
+ "Loading channels...": "Chargement des canaux...",
33
+ "Loading messages...": "Chargement des messages...",
34
+ "Loading...": "Chargement...",
35
35
  "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "Taille maximale de téléchargement de fichier atteinte. Veuillez télécharger un fichier inférieur à {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} Mo.",
36
- "Message Reactions": "",
37
- "Message deleted": "",
38
- "Message flagged": "",
39
- "Mute User": "",
40
- "Not supported": "",
41
- "Nothing yet...": "",
42
- "Ok": "",
43
- "Only visible to you": "",
44
- "Open Settings": "",
45
- "Photo": "",
46
- "Photos and Videos": "",
47
- "Pin to Conversation": "",
36
+ "Message Reactions": "Réactions aux messages",
37
+ "Message deleted": "Message supprimé",
38
+ "Message flagged": "Message signalé",
39
+ "Mute User": "Utilisateur muet",
40
+ "Not supported": "Non pris en charge",
41
+ "Nothing yet...": "Aucun message...",
42
+ "Ok": "Ok",
43
+ "Only visible to you": "Seulement visible par vous",
44
+ "Open Settings": "Ouvrir les paramètres",
45
+ "Photo": "Photo",
46
+ "Photos and Videos": "Photos et vidéos",
47
+ "Pin to Conversation": "Épingler à la conversation",
48
48
  "Pinned by": "Épinglé par",
49
- "Please enable access to your photos and videos so you can share them.": "",
49
+ "Please enable access to your photos and videos so you can share them.": "Veuillez autoriser l'accès à vos photos et vidéos afin de pouvoir les partager.",
50
50
  "Please select a channel first": "Veuillez d'abord selectionnez un canal",
51
- "Reconnecting...": "",
52
- "Reply": "",
53
- "Reply to Message": "",
54
- "Resend": "",
55
- "Search GIFs": "",
56
- "Select More Photos": "",
57
- "Send a message": "",
51
+ "Reconnecting...": "Se Reconnecter...",
52
+ "Reply": "Répondre",
53
+ "Reply to Message": "Répondre au message",
54
+ "Resend": "Renvoyer",
55
+ "Search GIFs": "Rechercher des GIF",
56
+ "Select More Photos": "Sélectionner plus de photos",
57
+ "Send a message": "Envoyer un message",
58
58
  "Sending links is not allowed in this conversation": "Sending links is not allowed in this conversation",
59
- "Slow mode ON": "",
60
- "The message has been reported to a moderator.": "",
61
- "Thread Reply": "",
62
- "Unblock User": "",
63
- "Unknown User": "",
64
- "Unmute User": "",
65
- "Unpin from Conversation": "",
66
- "Unread Messages": "",
67
- "Video": "",
68
- "You": "",
59
+ "Slow mode ON": "Mode lent activé",
60
+ "The message has been reported to a moderator.": "Le message a été signalé à un modérateur.",
61
+ "Thread Reply": "Réponse à la discussion",
62
+ "Unblock User": "Débloquer Utilisateur",
63
+ "Unknown User": "Utilisateur inconnu",
64
+ "Unmute User": "Activer le son de Utilisateur",
65
+ "Unpin from Conversation": "Décrocher de la conversation",
66
+ "Unread Messages": "Messages non lus",
67
+ "Video": "Vidéo",
68
+ "You": "Toi",
69
69
  "You can't send messages in this channel": "You can't send messages in this channel",
70
- "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
71
- "{{ index }} of {{ photoLength }}": "",
72
- "{{ replyCount }} Replies": "",
70
+ "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} et {{ nonSelfUserLength }} autres sont en train d'écrire",
71
+ "{{ index }} of {{ photoLength }}": "{{ index }} sur {{ photoLength }}",
72
+ "{{ replyCount }} Replies": "{{ replyCount }} Réponses",
73
73
  "{{ replyCount }} Thread Replies": "{{replyCount}} Réponses à la discussion",
74
- "{{ user }} is typing": "",
75
- "🏙 Attachment...": ""
74
+ "{{ user }} is typing": "{{ user }} est en train d'écrire",
75
+ "🏙 Attachment...": "🏙 Pièce jointe..."
76
76
  }