|
|
|
@@ -1,208 +1,316 @@
|
|
|
|
|
import 'package:jiffy/jiffy.dart';
|
|
|
|
|
import 'package:stream_chat_flutter/src/connection_status_builder.dart';
|
|
|
|
|
import 'package:stream_chat_flutter/src/message_input.dart';
|
|
|
|
|
import 'package:stream_chat_flutter/src/message_list_view.dart';
|
|
|
|
|
import 'package:stream_chat_flutter/src/message_search_list_view.dart';
|
|
|
|
|
import 'package:stream_chat_flutter_core/stream_chat_flutter_core.dart'
|
|
|
|
|
show User;
|
|
|
|
|
|
|
|
|
|
/// Translation strings for the stream chat widgets
|
|
|
|
|
abstract class Translations {
|
|
|
|
|
/// The error shown when [launchURL] fails
|
|
|
|
|
String get launchUrlError;
|
|
|
|
|
|
|
|
|
|
/// The error shown when loading users fails
|
|
|
|
|
String get loadingUsersError;
|
|
|
|
|
|
|
|
|
|
/// The label for "retry" button
|
|
|
|
|
String get retryLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for showing no users
|
|
|
|
|
String get noUsersLabel;
|
|
|
|
|
|
|
|
|
|
/// The text for showing user is online
|
|
|
|
|
String get userOnlineText;
|
|
|
|
|
|
|
|
|
|
/// The text for showing the last online of the user
|
|
|
|
|
String get userLastOnlineText;
|
|
|
|
|
|
|
|
|
|
/// The text shown when [users] starts typing
|
|
|
|
|
String userTypingText(Iterable<User> users);
|
|
|
|
|
|
|
|
|
|
/// The label for "thread reply"
|
|
|
|
|
String get threadReplyLabel;
|
|
|
|
|
|
|
|
|
|
/// The text for showing if the message is only visible to you
|
|
|
|
|
String get onlyVisibleToYouText;
|
|
|
|
|
|
|
|
|
|
/// The text for showing the thread reply count
|
|
|
|
|
String threadReplyCountText(int count);
|
|
|
|
|
|
|
|
|
|
/// The text for showing the attachments upload progress
|
|
|
|
|
String attachmentsUploadProgressText({
|
|
|
|
|
required int remaining,
|
|
|
|
|
required int total,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
/// The text for showing who pinned the message
|
|
|
|
|
String pinnedByUserText({
|
|
|
|
|
required User pinnedBy,
|
|
|
|
|
required User currentUser,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
/// The text for showing there are empty messages
|
|
|
|
|
String get emptyMessagesText;
|
|
|
|
|
|
|
|
|
|
/// The text for showing generic error
|
|
|
|
|
String get genericErrorText;
|
|
|
|
|
|
|
|
|
|
/// The error shown when loading messages fails
|
|
|
|
|
String get loadingMessagesError;
|
|
|
|
|
|
|
|
|
|
/// The text for showing the result count in [MessageSearchListView]
|
|
|
|
|
String resultCountText(int count);
|
|
|
|
|
|
|
|
|
|
/// The text for showing the message is deleted
|
|
|
|
|
String get messageDeletedText;
|
|
|
|
|
|
|
|
|
|
/// The label for message deleted
|
|
|
|
|
String get messageDeletedLabel;
|
|
|
|
|
|
|
|
|
|
String get messageReactionsText;
|
|
|
|
|
/// The label for message reactions
|
|
|
|
|
String get messageReactionsLabel;
|
|
|
|
|
|
|
|
|
|
/// The text for showing there are no chats
|
|
|
|
|
String get emptyChatMessagesText;
|
|
|
|
|
|
|
|
|
|
/// The text for showing the thread separator in case [MessageListView]
|
|
|
|
|
/// contains a parent message
|
|
|
|
|
String threadSeparatorText(int replyCount);
|
|
|
|
|
|
|
|
|
|
/// The label for "connected" in [ConnectionStatusBuilder]
|
|
|
|
|
String get connectedLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "disconnected" in [ConnectionStatusBuilder]
|
|
|
|
|
String get disconnectedLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "reconnecting" in [ConnectionStatusBuilder]
|
|
|
|
|
String get reconnectingLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for also send as direct message "checkbox"" in [MessageInput]
|
|
|
|
|
String get alsoSendAsDirectMessageLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for search Gif
|
|
|
|
|
String get searchGifLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for add a comment or send in case of
|
|
|
|
|
/// attachments inside [MessageInput]
|
|
|
|
|
String get addACommentOrSendLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for write a message in [MessageInput]
|
|
|
|
|
String get writeAMessageLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for instant commands in [MessageInput]
|
|
|
|
|
String get instantCommandsLabel;
|
|
|
|
|
|
|
|
|
|
/// The error shown in case the fi"le is too large even after compression
|
|
|
|
|
/// while uploading via [MessageInput]
|
|
|
|
|
String fileTooLargeAfterCompressionError(double limitInMB);
|
|
|
|
|
|
|
|
|
|
/// The error shown in case the file is too large
|
|
|
|
|
/// while uploading via [MessageInput]
|
|
|
|
|
String fileTooLargeError(double limitInMB);
|
|
|
|
|
|
|
|
|
|
/// The text for showing the query while searching for emojis
|
|
|
|
|
String emojiMatchingQueryText(String query);
|
|
|
|
|
|
|
|
|
|
/// The label for "add a file"
|
|
|
|
|
String get addAFileLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "upload a photo"
|
|
|
|
|
String get uploadAPhotoLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "upload a video"
|
|
|
|
|
String get uploadAVideoLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "photo from camera"
|
|
|
|
|
String get photoFromCameraLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "video from camera"
|
|
|
|
|
String get videoFromCameraLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "upload a file"
|
|
|
|
|
String get uploadAFileLabel;
|
|
|
|
|
|
|
|
|
|
String get somethingWentWrongLabel;
|
|
|
|
|
/// The error shown when something went wrong
|
|
|
|
|
String get somethingWentWrongError;
|
|
|
|
|
|
|
|
|
|
/// The label for "OK"
|
|
|
|
|
String get okLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "add more files"
|
|
|
|
|
String get addMoreFilesLabel;
|
|
|
|
|
|
|
|
|
|
/// The message shown for asking photo and video access permission
|
|
|
|
|
String get enablePhotoAndVideoAccessMessage;
|
|
|
|
|
|
|
|
|
|
/// The message shown for asking gallery access permission
|
|
|
|
|
String get allowGalleryAccessMessage;
|
|
|
|
|
|
|
|
|
|
/// The label for "flag message"
|
|
|
|
|
String get flagMessageLabel;
|
|
|
|
|
|
|
|
|
|
/// The question asked while showing flag message dialog
|
|
|
|
|
String get flagMessageQuestion;
|
|
|
|
|
|
|
|
|
|
/// The label for "Flag"
|
|
|
|
|
String get flagLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "Cancel"
|
|
|
|
|
String get cancelLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for successful message flag
|
|
|
|
|
String get flagMessageSuccessfulLabel;
|
|
|
|
|
|
|
|
|
|
/// The text for showing the message if successfully flagged
|
|
|
|
|
String get flagMessageSuccessfulText;
|
|
|
|
|
|
|
|
|
|
/// The label for "delete message"
|
|
|
|
|
String get deleteMessageLabel;
|
|
|
|
|
|
|
|
|
|
/// The question asked while showing delete message dialog
|
|
|
|
|
String get deleteMessageQuestion;
|
|
|
|
|
|
|
|
|
|
/// The label for "Delete"
|
|
|
|
|
String get deleteLabel;
|
|
|
|
|
|
|
|
|
|
/// The text for showing the operation could not be completed
|
|
|
|
|
String get operationCouldNotBeCompletedText;
|
|
|
|
|
|
|
|
|
|
/// The label for "Reply"
|
|
|
|
|
String get replyLabel;
|
|
|
|
|
|
|
|
|
|
/// The text for showing pin/un-pin functionality in [MessageWidget]
|
|
|
|
|
/// based on [pinned]
|
|
|
|
|
String togglePinUnpinText({required bool pinned});
|
|
|
|
|
|
|
|
|
|
/// The text for showing delete/retry-delete based on [isDeleteFailed]
|
|
|
|
|
String toggleDeleteRetryDeleteMessageText({required bool isDeleteFailed});
|
|
|
|
|
|
|
|
|
|
/// The label for "copy message"
|
|
|
|
|
String get copyMessageLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "edit message"
|
|
|
|
|
String get editMessageLabel;
|
|
|
|
|
|
|
|
|
|
/// The text for showing resend/resend-edited message
|
|
|
|
|
/// based on [isUpdateFailed]
|
|
|
|
|
String toggleResendOrResendEditedMessage({required bool isUpdateFailed});
|
|
|
|
|
|
|
|
|
|
/// The label for "Photos"
|
|
|
|
|
String get photosLabel;
|
|
|
|
|
|
|
|
|
|
/// The text for showing on which [date] and [time] the message was sent
|
|
|
|
|
String sentAtText({required DateTime date, required DateTime time});
|
|
|
|
|
|
|
|
|
|
/// The label for "Today"
|
|
|
|
|
String get todayLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "Yesterday"
|
|
|
|
|
String get yesterdayLabel;
|
|
|
|
|
|
|
|
|
|
/// The text for showing the channel is muted
|
|
|
|
|
String get channelIsMutedText;
|
|
|
|
|
|
|
|
|
|
/// The text for showing there is no title
|
|
|
|
|
String get noTitleText;
|
|
|
|
|
|
|
|
|
|
/// The label for "let's start chatting"
|
|
|
|
|
String get letsStartChattingLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for sending the first message
|
|
|
|
|
String get sendingFirstMessageLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "start a chat"
|
|
|
|
|
String get startAChatLabel;
|
|
|
|
|
|
|
|
|
|
/// The error shown when loading channel fails
|
|
|
|
|
String get loadingChannelsError;
|
|
|
|
|
|
|
|
|
|
/// The label for "Delete conversation"
|
|
|
|
|
String get deleteConversationLabel;
|
|
|
|
|
|
|
|
|
|
/// The question asked while showing delete conversation dialog
|
|
|
|
|
String get deleteConversationQuestion;
|
|
|
|
|
|
|
|
|
|
/// The label for "Stream Chat"
|
|
|
|
|
String get streamChatLabel;
|
|
|
|
|
|
|
|
|
|
String get searchingForNetworkLabel;
|
|
|
|
|
/// The text for showing searching for network
|
|
|
|
|
String get searchingForNetworkText;
|
|
|
|
|
|
|
|
|
|
/// The label for "Offline"
|
|
|
|
|
String get offlineLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "Try again"
|
|
|
|
|
String get tryAgainLabel;
|
|
|
|
|
|
|
|
|
|
/// The text for showing the members count based on [count]
|
|
|
|
|
String membersCountText(int count);
|
|
|
|
|
|
|
|
|
|
/// The text for showing the watchers count based on [count]
|
|
|
|
|
String watchersCountText(int count);
|
|
|
|
|
|
|
|
|
|
/// The label for "View Info"
|
|
|
|
|
String get viewInfoLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "Leave Group"
|
|
|
|
|
String get leaveGroupLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "Leave"
|
|
|
|
|
String get leaveLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "Leave conversation"
|
|
|
|
|
String get leaveConversationLabel;
|
|
|
|
|
|
|
|
|
|
/// The question asked while showing leave conversation dialog
|
|
|
|
|
String get leaveConversationQuestion;
|
|
|
|
|
|
|
|
|
|
/// The label for "Show in chat"
|
|
|
|
|
String get showInChatLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "Save Image"
|
|
|
|
|
String get saveImageLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "Save Video"
|
|
|
|
|
String get saveVideoLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "Upload Error"
|
|
|
|
|
String get uploadErrorLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "Giphy"
|
|
|
|
|
String get giphyLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "Shuffle"
|
|
|
|
|
String get shuffleLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "Send"
|
|
|
|
|
String get sendLabel;
|
|
|
|
|
|
|
|
|
|
/// The label for "With"
|
|
|
|
|
String get withText;
|
|
|
|
|
|
|
|
|
|
/// The text shown for "In"
|
|
|
|
|
String get inText;
|
|
|
|
|
|
|
|
|
|
/// The text shown for "You"
|
|
|
|
|
String get youText;
|
|
|
|
|
|
|
|
|
|
/// The text shown for "Of"
|
|
|
|
|
String get ofText;
|
|
|
|
|
|
|
|
|
|
/// The text shown for "File"
|
|
|
|
|
String get fileText;
|
|
|
|
|
|
|
|
|
|
/// The label for "Reply to message"
|
|
|
|
|
String get replyToMessageLabel;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// Default implementation of Translation strings for the stream chat widgets
|
|
|
|
|
class DefaultTranslations implements Translations {
|
|
|
|
|
const DefaultTranslations._();
|
|
|
|
|
|
|
|
|
|
/// Singleton instance of [DefaultTranslations]
|
|
|
|
|
static const instance = DefaultTranslations._();
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
@@ -278,7 +386,7 @@ class DefaultTranslations implements Translations {
|
|
|
|
|
String get messageDeletedLabel => 'Message deleted';
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
String get messageReactionsText => 'Message Reactions';
|
|
|
|
|
String get messageReactionsLabel => 'Message Reactions';
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
String get emptyChatMessagesText => 'No chats here yet...';
|
|
|
|
@@ -348,7 +456,7 @@ class DefaultTranslations implements Translations {
|
|
|
|
|
String get okLabel => 'OK';
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
String get somethingWentWrongLabel => 'Something went wrong';
|
|
|
|
|
String get somethingWentWrongError => 'Something went wrong';
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
String get addMoreFilesLabel => 'Add more files';
|
|
|
|
@@ -479,7 +587,7 @@ class DefaultTranslations implements Translations {
|
|
|
|
|
String get streamChatLabel => 'Stream Chat';
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
String get searchingForNetworkLabel => 'Searching for Network';
|
|
|
|
|
String get searchingForNetworkText => 'Searching for Network';
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
String get offlineLabel => 'Offline...';
|
|
|
|
|