diff --git a/assets/icons/ZulipIcons.ttf b/assets/icons/ZulipIcons.ttf index 4fa457ba54..cafe3d2f63 100644 Binary files a/assets/icons/ZulipIcons.ttf and b/assets/icons/ZulipIcons.ttf differ diff --git a/assets/icons/video.svg b/assets/icons/video.svg new file mode 100644 index 0000000000..f7301c4d07 --- /dev/null +++ b/assets/icons/video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/l10n/app_en.arb b/assets/l10n/app_en.arb index 9048fa98de..3ae0bb2303 100644 --- a/assets/l10n/app_en.arb +++ b/assets/l10n/app_en.arb @@ -570,6 +570,10 @@ "@composeBoxAttachFromCameraTooltip": { "description": "Tooltip for compose box icon to attach an image from the camera to the message." }, + "composeBoxAttachFromVideoCallTooltip": "Attach a video call", + "@composeBoxAttachFromVideoCallTooltip": { + "description": "Tooltip for compose box icon to attach a video call url to the message." + }, "composeBoxGenericContentHint": "Type a message", "@composeBoxGenericContentHint": { "description": "Hint text for content input when sending a message." @@ -650,6 +654,10 @@ "filename": {"type": "String", "example": "file.txt"} } }, + "composeBoxUploadedVideoCallUrl": "Join video call.", + "@composeBoxUploadedVideoCallUrl": { + "description": "Placeholder in compose box showing the video call url is generated." + }, "composeBoxLoadingMessage": "(loading message {messageId})", "@composeBoxLoadingMessage": { "description": "Placeholder in compose box showing the quoted message is currently loading.", diff --git a/lib/api/model/initial_snapshot.dart b/lib/api/model/initial_snapshot.dart index 74be999eaf..c556c69d27 100644 --- a/lib/api/model/initial_snapshot.dart +++ b/lib/api/model/initial_snapshot.dart @@ -88,6 +88,8 @@ class InitialSnapshot { /// Search for "realm_wildcard_mention_policy" in https://zulip.com/api/register-queue. final RealmWildcardMentionPolicy realmWildcardMentionPolicy; + final int realmVideoChatProvider; + final bool realmMandatoryTopics; final String realmName; @@ -113,6 +115,8 @@ class InitialSnapshot { final Map realmDefaultExternalAccounts; + final String? jitsiServerUrl; + final int maxFileUploadSizeMib; final Uri serverEmojiDataUrl; @@ -181,6 +185,7 @@ class InitialSnapshot { required this.realmDeleteOwnMessagePolicy, required this.realmWildcardMentionPolicy, required this.realmMandatoryTopics, + required this.realmVideoChatProvider, required this.realmName, required this.realmWaitingPeriodThreshold, required this.realmMessageContentDeleteLimitSeconds, @@ -190,6 +195,7 @@ class InitialSnapshot { required this.realmIconUrl, required this.realmPresenceDisabled, required this.realmDefaultExternalAccounts, + required this.jitsiServerUrl, required this.maxFileUploadSizeMib, required this.serverEmojiDataUrl, required this.realmEmptyTopicDisplayName, diff --git a/lib/api/model/initial_snapshot.g.dart b/lib/api/model/initial_snapshot.g.dart index dda2c9e1a0..ee61efbd37 100644 --- a/lib/api/model/initial_snapshot.g.dart +++ b/lib/api/model/initial_snapshot.g.dart @@ -101,6 +101,8 @@ InitialSnapshot _$InitialSnapshotFromJson( json['realm_wildcard_mention_policy'], ), realmMandatoryTopics: json['realm_mandatory_topics'] as bool, + jitsiServerUrl: json['jitsi_server_url'] as String?, + realmVideoChatProvider: (json['realm_video_chat_provider'] as num).toInt(), realmName: json['realm_name'] as String, realmWaitingPeriodThreshold: (json['realm_waiting_period_threshold'] as num) .toInt(), @@ -179,6 +181,8 @@ Map _$InitialSnapshotToJson( 'realm_can_delete_own_message_group': instance.realmCanDeleteOwnMessageGroup, 'realm_delete_own_message_policy': instance.realmDeleteOwnMessagePolicy, 'realm_wildcard_mention_policy': instance.realmWildcardMentionPolicy, + 'jitsi_server_url': instance.jitsiServerUrl, + 'realm_video_chat_provider': instance.realmVideoChatProvider, 'realm_mandatory_topics': instance.realmMandatoryTopics, 'realm_name': instance.realmName, 'realm_waiting_period_threshold': instance.realmWaitingPeriodThreshold, diff --git a/lib/generated/l10n/zulip_localizations.dart b/lib/generated/l10n/zulip_localizations.dart index 7a08e9d986..fa775493c9 100644 --- a/lib/generated/l10n/zulip_localizations.dart +++ b/lib/generated/l10n/zulip_localizations.dart @@ -1,2130 +1,2142 @@ -import 'dart:async'; - -import 'package:flutter/foundation.dart'; -import 'package:flutter/widgets.dart'; -import 'package:flutter_localizations/flutter_localizations.dart'; -import 'package:intl/intl.dart' as intl; - -import 'zulip_localizations_ar.dart'; -import 'zulip_localizations_de.dart'; -import 'zulip_localizations_en.dart'; -import 'zulip_localizations_fr.dart'; -import 'zulip_localizations_it.dart'; -import 'zulip_localizations_ja.dart'; -import 'zulip_localizations_nb.dart'; -import 'zulip_localizations_pl.dart'; -import 'zulip_localizations_ru.dart'; -import 'zulip_localizations_sk.dart'; -import 'zulip_localizations_sl.dart'; -import 'zulip_localizations_uk.dart'; -import 'zulip_localizations_zh.dart'; - -// ignore_for_file: type=lint - -/// Callers can lookup localized strings with an instance of ZulipLocalizations -/// returned by `ZulipLocalizations.of(context)`. -/// -/// Applications need to include `ZulipLocalizations.delegate()` in their app's -/// `localizationDelegates` list, and the locales they support in the app's -/// `supportedLocales` list. For example: -/// -/// ```dart -/// import 'l10n/zulip_localizations.dart'; -/// -/// return MaterialApp( -/// localizationsDelegates: ZulipLocalizations.localizationsDelegates, -/// supportedLocales: ZulipLocalizations.supportedLocales, -/// home: MyApplicationHome(), -/// ); -/// ``` -/// -/// ## Update pubspec.yaml -/// -/// Please make sure to update your pubspec.yaml to include the following -/// packages: -/// -/// ```yaml -/// dependencies: -/// # Internationalization support. -/// flutter_localizations: -/// sdk: flutter -/// intl: any # Use the pinned version from flutter_localizations -/// -/// # Rest of dependencies -/// ``` -/// -/// ## iOS Applications -/// -/// iOS applications define key application metadata, including supported -/// locales, in an Info.plist file that is built into the application bundle. -/// To configure the locales supported by your app, you’ll need to edit this -/// file. -/// -/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file. -/// Then, in the Project Navigator, open the Info.plist file under the Runner -/// project’s Runner folder. -/// -/// Next, select the Information Property List item, select Add Item from the -/// Editor menu, then select Localizations from the pop-up menu. -/// -/// Select and expand the newly-created Localizations item then, for each -/// locale your application supports, add a new item and select the locale -/// you wish to add from the pop-up menu in the Value field. This list should -/// be consistent with the languages listed in the ZulipLocalizations.supportedLocales -/// property. -abstract class ZulipLocalizations { - ZulipLocalizations(String locale) - : localeName = intl.Intl.canonicalizedLocale(locale.toString()); - - final String localeName; - - static ZulipLocalizations of(BuildContext context) { - return Localizations.of(context, ZulipLocalizations)!; - } - - static const LocalizationsDelegate delegate = - _ZulipLocalizationsDelegate(); - - /// A list of this localizations delegate along with the default localizations - /// delegates. - /// - /// Returns a list of localizations delegates containing this delegate along with - /// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, - /// and GlobalWidgetsLocalizations.delegate. - /// - /// Additional delegates can be added by appending to this list in - /// MaterialApp. This list does not have to be used at all if a custom list - /// of delegates is preferred or required. - static const List> localizationsDelegates = - >[ - delegate, - GlobalMaterialLocalizations.delegate, - GlobalCupertinoLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - ]; - - /// A list of this localizations delegate's supported locales. - static const List supportedLocales = [ - Locale('en'), - Locale('ar'), - Locale('de'), - Locale('en', 'GB'), - Locale('fr'), - Locale('it'), - Locale('ja'), - Locale('nb'), - Locale('pl'), - Locale('ru'), - Locale('sk'), - Locale('sl'), - Locale('uk'), - Locale('zh'), - Locale.fromSubtags( - languageCode: 'zh', - countryCode: 'CN', - scriptCode: 'Hans', - ), - Locale.fromSubtags( - languageCode: 'zh', - countryCode: 'TW', - scriptCode: 'Hant', - ), - ]; - - /// Title for About Zulip page. - /// - /// In en, this message translates to: - /// **'About Zulip'** - String get aboutPageTitle; - - /// Label for Zulip app version in About Zulip page - /// - /// In en, this message translates to: - /// **'App version'** - String get aboutPageAppVersion; - - /// Item title in About Zulip page to navigate to Licenses page - /// - /// In en, this message translates to: - /// **'Open-source licenses'** - String get aboutPageOpenSourceLicenses; - - /// Item subtitle in About Zulip page to navigate to Licenses page - /// - /// In en, this message translates to: - /// **'Tap to view'** - String get aboutPageTapToView; - - /// Title for dialog shown on first upgrade from the legacy Zulip app. - /// - /// In en, this message translates to: - /// **'Welcome to the new Zulip app!'** - String get upgradeWelcomeDialogTitle; - - /// Message text for dialog shown on first upgrade from the legacy Zulip app. - /// - /// In en, this message translates to: - /// **'You’ll find a familiar experience in a faster, sleeker package.'** - String get upgradeWelcomeDialogMessage; - - /// Text of link in dialog shown on first upgrade from the legacy Zulip app. - /// - /// In en, this message translates to: - /// **'Check out the announcement blog post!'** - String get upgradeWelcomeDialogLinkText; - - /// Label for button dismissing dialog shown on first upgrade from the legacy Zulip app. - /// - /// In en, this message translates to: - /// **'Let\'s go'** - String get upgradeWelcomeDialogDismiss; - - /// Title for the page to choose between Zulip accounts. - /// - /// In en, this message translates to: - /// **'Choose account'** - String get chooseAccountPageTitle; - - /// Title for the settings page. - /// - /// In en, this message translates to: - /// **'Settings'** - String get settingsPageTitle; - - /// Label for main-menu button leading to the choose-account page. - /// - /// In en, this message translates to: - /// **'Switch account'** - String get switchAccountButton; - - /// Message that appears on the loading screen after waiting for some time. - /// - /// In en, this message translates to: - /// **'Your account at {url} is taking a while to load.'** - String tryAnotherAccountMessage(Object url); - - /// Label for loading screen button prompting user to try another account. - /// - /// In en, this message translates to: - /// **'Try another account'** - String get tryAnotherAccountButton; - - /// Label for the 'Log out' button for an account on the choose-account page - /// - /// In en, this message translates to: - /// **'Log out'** - String get chooseAccountPageLogOutButton; - - /// Title for a confirmation dialog for logging out. - /// - /// In en, this message translates to: - /// **'Log out?'** - String get logOutConfirmationDialogTitle; - - /// Message for a confirmation dialog for logging out. - /// - /// In en, this message translates to: - /// **'To use this account in the future, you will have to re-enter the URL for your organization and your account information.'** - String get logOutConfirmationDialogMessage; - - /// Label for the 'Log out' button on a confirmation dialog for logging out. - /// - /// In en, this message translates to: - /// **'Log out'** - String get logOutConfirmationDialogConfirmButton; - - /// Label for ChooseAccountPage button to add an account - /// - /// In en, this message translates to: - /// **'Add an account'** - String get chooseAccountButtonAddAnAccount; - - /// Title for a nav button that opens the 'All channels' page. - /// - /// In en, this message translates to: - /// **'All channels'** - String get navButtonAllChannels; - - /// Title for the 'All channels' page. - /// - /// In en, this message translates to: - /// **'All channels'** - String get allChannelsPageTitle; - - /// Centered text on the 'All channels' page saying that there is no content to show. - /// - /// In en, this message translates to: - /// **'There are no channels you can view in this organization.'** - String get allChannelsEmptyPlaceholder; - - /// Label for button in profile screen to navigate to DMs with the shown user. - /// - /// In en, this message translates to: - /// **'Send direct message'** - String get profileButtonSendDirectMessage; - - /// Message that appears on the user profile page when the profile cannot be shown. - /// - /// In en, this message translates to: - /// **'Could not show user profile.'** - String get errorCouldNotShowUserProfile; - - /// Title for dialog asking the user to grant additional permissions. - /// - /// In en, this message translates to: - /// **'Permissions needed'** - String get permissionsNeededTitle; - - /// Button label for permissions dialog button that opens the system settings screen. - /// - /// In en, this message translates to: - /// **'Open settings'** - String get permissionsNeededOpenSettings; - - /// Message for dialog asking the user to grant permissions for camera access. - /// - /// In en, this message translates to: - /// **'To upload an image, please grant Zulip additional permissions in Settings.'** - String get permissionsDeniedCameraAccess; - - /// Message for dialog asking the user to grant permissions for external storage read access. - /// - /// In en, this message translates to: - /// **'To upload files, please grant Zulip additional permissions in Settings.'** - String get permissionsDeniedReadExternalStorage; - - /// Label in the channel action sheet for subscribing to the channel. - /// - /// In en, this message translates to: - /// **'Subscribe'** - String get actionSheetOptionSubscribe; - - /// Error title when subscribing to a channel failed. - /// - /// In en, this message translates to: - /// **'Failed to subscribe'** - String get subscribeFailedTitle; - - /// Label for marking a channel as read. - /// - /// In en, this message translates to: - /// **'Mark channel as read'** - String get actionSheetOptionMarkChannelAsRead; - - /// Label for copy channel link button on action sheet. - /// - /// In en, this message translates to: - /// **'Copy link to channel'** - String get actionSheetOptionCopyChannelLink; - - /// Label for navigating to a channel's topic-list page. - /// - /// In en, this message translates to: - /// **'List of topics'** - String get actionSheetOptionListOfTopics; - - /// Label for navigating to a channel's channel-feed page. - /// - /// In en, this message translates to: - /// **'Channel feed'** - String get actionSheetOptionChannelFeed; - - /// Label in the channel action sheet for unsubscribing from the channel. - /// - /// In en, this message translates to: - /// **'Unsubscribe'** - String get actionSheetOptionUnsubscribe; - - /// Title for a confirmation dialog for unsubscribing from a channel. - /// - /// In en, this message translates to: - /// **'Unsubscribe from {channelName}?'** - String unsubscribeConfirmationDialogTitle(String channelName); - - /// Message for a confirmation dialog for unsubscribing from a channel when you will not have permission to resubscribe. - /// - /// In en, this message translates to: - /// **'Once you leave this channel, you will not be able to rejoin.'** - String get unsubscribeConfirmationDialogMessageCannotResubscribe; - - /// Label for the 'Unsubscribe' button on a confirmation dialog for unsubscribing from a channel. - /// - /// In en, this message translates to: - /// **'Unsubscribe'** - String get unsubscribeConfirmationDialogConfirmButton; - - /// Error title when unsubscribing from a channel failed. - /// - /// In en, this message translates to: - /// **'Failed to unsubscribe'** - String get unsubscribeFailedTitle; - - /// Label for muting a topic on action sheet. - /// - /// In en, this message translates to: - /// **'Mute topic'** - String get actionSheetOptionMuteTopic; - - /// Label for unmuting a topic on action sheet. - /// - /// In en, this message translates to: - /// **'Unmute topic'** - String get actionSheetOptionUnmuteTopic; - - /// Label for following a topic on action sheet. - /// - /// In en, this message translates to: - /// **'Follow topic'** - String get actionSheetOptionFollowTopic; - - /// Label for unfollowing a topic on action sheet. - /// - /// In en, this message translates to: - /// **'Unfollow topic'** - String get actionSheetOptionUnfollowTopic; - - /// Label for the 'Mark as resolved' button on the topic action sheet. - /// - /// In en, this message translates to: - /// **'Mark as resolved'** - String get actionSheetOptionResolveTopic; - - /// Label for the 'Mark as unresolved' button on the topic action sheet. - /// - /// In en, this message translates to: - /// **'Mark as unresolved'** - String get actionSheetOptionUnresolveTopic; - - /// Error title when marking a topic as resolved failed. - /// - /// In en, this message translates to: - /// **'Failed to mark topic as resolved'** - String get errorResolveTopicFailedTitle; - - /// Error title when marking a topic as unresolved failed. - /// - /// In en, this message translates to: - /// **'Failed to mark topic as unresolved'** - String get errorUnresolveTopicFailedTitle; - - /// Label for the 'See who reacted' button in the message action sheet. - /// - /// In en, this message translates to: - /// **'See who reacted'** - String get actionSheetOptionSeeWhoReacted; - - /// Explanation on the 'See who reacted' sheet when the message has no reactions (because they were removed after the sheet was opened). - /// - /// In en, this message translates to: - /// **'This message has no reactions.'** - String get seeWhoReactedSheetNoReactions; - - /// In the 'See who reacted' sheet, a label for the list of emoji reactions at the top, with the total number of reactions. (An accessibility label for assistive technology.) - /// - /// In en, this message translates to: - /// **'Emoji reactions ({num} total)'** - String seeWhoReactedSheetHeaderLabel(int num); - - /// In the 'See who reacted' sheet, an emoji reaction's name and how many votes it has. (An accessibility label for assistive technology.) - /// - /// In en, this message translates to: - /// **'{emojiName}: {num, plural, =1{1 vote} other{{num} votes}}'** - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num); - - /// In the 'See who reacted' sheet, a label for the list of users who chose an emoji reaction, with the emoji's name and how many votes it has. (An accessibility label for assistive technology.) - /// - /// In en, this message translates to: - /// **'Votes for {emojiName} ({num})'** - String seeWhoReactedSheetUserListLabel(String emojiName, int num); - - /// Label for the 'View read receipts' button in the message action sheet. - /// - /// In en, this message translates to: - /// **'View read receipts'** - String get actionSheetOptionViewReadReceipts; - - /// Title for the "Read receipts" bottom sheet. - /// - /// In en, this message translates to: - /// **'Read receipts'** - String get actionSheetReadReceipts; - - /// Label in the "Read receipts" bottom sheet when one or more people have read the message. - /// - /// In en, this message translates to: - /// **'{count, plural, =1{This message has been read by {count} person:} other{This message has been read by {count} people:}}'** - String actionSheetReadReceiptsReadCount(int count); - - /// Label in the "Read receipts" bottom sheet when no one has read the message. - /// - /// In en, this message translates to: - /// **'No one has read this message yet.'** - String get actionSheetReadReceiptsZeroReadCount; - - /// Label in the "Read receipts" bottom sheet when loading read receipts failed. - /// - /// In en, this message translates to: - /// **'Failed to load read receipts.'** - String get actionSheetReadReceiptsErrorReadCount; - - /// Label for copy message text button on action sheet. - /// - /// In en, this message translates to: - /// **'Copy message text'** - String get actionSheetOptionCopyMessageText; - - /// Label for copy message link button on action sheet. - /// - /// In en, this message translates to: - /// **'Copy link to message'** - String get actionSheetOptionCopyMessageLink; - - /// Label for mark as unread button on action sheet. - /// - /// In en, this message translates to: - /// **'Mark as unread from here'** - String get actionSheetOptionMarkAsUnread; - - /// Label for hide muted message again button on action sheet. - /// - /// In en, this message translates to: - /// **'Hide muted message again'** - String get actionSheetOptionHideMutedMessage; - - /// Label for share button on action sheet. - /// - /// In en, this message translates to: - /// **'Share'** - String get actionSheetOptionShare; - - /// Label for the 'Quote message' button in the message action sheet. - /// - /// In en, this message translates to: - /// **'Quote message'** - String get actionSheetOptionQuoteMessage; - - /// Label for star button on action sheet. - /// - /// In en, this message translates to: - /// **'Star message'** - String get actionSheetOptionStarMessage; - - /// Label for unstar button on action sheet. - /// - /// In en, this message translates to: - /// **'Unstar message'** - String get actionSheetOptionUnstarMessage; - - /// Label for the 'Edit message' button in the message action sheet. - /// - /// In en, this message translates to: - /// **'Edit message'** - String get actionSheetOptionEditMessage; - - /// Label for the 'Delete message' button in the message action sheet. - /// - /// In en, this message translates to: - /// **'Delete message'** - String get actionSheetOptionDeleteMessage; - - /// Title for a confirmation dialog for deleting a message. - /// - /// In en, this message translates to: - /// **'Delete message?'** - String get deleteMessageConfirmationDialogTitle; - - /// Message for a confirmation dialog for deleting a message. - /// - /// In en, this message translates to: - /// **'Deleting a message permanently removes it for everyone.'** - String get deleteMessageConfirmationDialogMessage; - - /// Label for the 'Delete' button on a confirmation dialog for deleting a message. - /// - /// In en, this message translates to: - /// **'Delete'** - String get deleteMessageConfirmationDialogConfirmButton; - - /// Error title when deleting a message failed. - /// - /// In en, this message translates to: - /// **'Failed to delete message'** - String get errorDeleteMessageFailedTitle; - - /// Option to mark a specific topic as read in the action sheet. - /// - /// In en, this message translates to: - /// **'Mark topic as read'** - String get actionSheetOptionMarkTopicAsRead; - - /// Label for copy topic link button in action sheet. - /// - /// In en, this message translates to: - /// **'Copy link to topic'** - String get actionSheetOptionCopyTopicLink; - - /// Error title when third-party authentication has an operational error (not necessarily caused by invalid credentials). - /// - /// In en, this message translates to: - /// **'Something went wrong'** - String get errorWebAuthOperationalErrorTitle; - - /// Error message when third-party authentication has an operational error (not necessarily caused by invalid credentials). - /// - /// In en, this message translates to: - /// **'An unexpected error occurred.'** - String get errorWebAuthOperationalError; - - /// Error title on attempting to log into an account that's already logged in. - /// - /// In en, this message translates to: - /// **'Account already logged in'** - String get errorAccountLoggedInTitle; - - /// Error message on attempting to log into an account that's already logged in. - /// - /// In en, this message translates to: - /// **'The account {email} at {server} is already in your list of accounts.'** - String errorAccountLoggedIn(String email, String server); - - /// Error message when the source of a message could not be fetched. - /// - /// In en, this message translates to: - /// **'Could not fetch message source.'** - String get errorCouldNotFetchMessageSource; - - /// Error message when copying the text of a message to the user's system clipboard failed. - /// - /// In en, this message translates to: - /// **'Copying failed'** - String get errorCopyingFailed; - - /// Error title when the specified file failed to upload. - /// - /// In en, this message translates to: - /// **'Failed to upload file: {filename}'** - String errorFailedToUploadFileTitle(String filename); - - /// The name of a file, and its size in mebibytes. - /// - /// In en, this message translates to: - /// **'{filename}: {size} MiB'** - String filenameAndSizeInMiB(String filename, String size); - - /// Error message when attached files are too large in size. - /// - /// In en, this message translates to: - /// **'{num, plural, =1{File is} other{{num} files are}} larger than the server\'s limit of {maxFileUploadSizeMib} MiB and will not be uploaded:\n\n{listMessage}'** - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ); - - /// Error title when attached files are too large in size. - /// - /// In en, this message translates to: - /// **'{num, plural, =1{File} other{Files}} too large'** - String errorFilesTooLargeTitle(int num); - - /// Error title for login when input is invalid. - /// - /// In en, this message translates to: - /// **'Invalid input'** - String get errorLoginInvalidInputTitle; - - /// Error title for login when signing into a Zulip server fails. - /// - /// In en, this message translates to: - /// **'Login failed'** - String get errorLoginFailedTitle; - - /// Error message for compose box when a message could not be sent. - /// - /// In en, this message translates to: - /// **'Message not sent'** - String get errorMessageNotSent; - - /// Error message for compose box when a message edit could not be saved. - /// - /// In en, this message translates to: - /// **'Message not saved'** - String get errorMessageEditNotSaved; - - /// Error message when the app could not connect to the server. - /// - /// In en, this message translates to: - /// **'Failed to connect to server:\n{url}'** - String errorLoginCouldNotConnect(String url); - - /// Error title when the app could not connect to the server. - /// - /// In en, this message translates to: - /// **'Could not connect'** - String get errorCouldNotConnectTitle; - - /// Error message when loading a message that does not exist. - /// - /// In en, this message translates to: - /// **'That message does not seem to exist.'** - String get errorMessageDoesNotSeemToExist; - - /// Error message when quoting a message failed. - /// - /// In en, this message translates to: - /// **'Quotation failed'** - String get errorQuotationFailed; - - /// Error message that quotes an error from the server. - /// - /// In en, this message translates to: - /// **'The server said:\n\n{message}'** - String errorServerMessage(String message); - - /// Short error message for a generic unknown error connecting to the server. - /// - /// In en, this message translates to: - /// **'Error connecting to Zulip. Retrying…'** - String get errorConnectingToServerShort; - - /// Dialog error message for a generic unknown error connecting to the server with details. - /// - /// In en, this message translates to: - /// **'Error connecting to Zulip at {serverUrl}. Will retry:\n\n{error}'** - String errorConnectingToServerDetails(String serverUrl, String error); - - /// Error title on failing to handle a Zulip server event. - /// - /// In en, this message translates to: - /// **'Error handling a Zulip event. Retrying connection…'** - String get errorHandlingEventTitle; - - /// Error details on failing to handle a Zulip server event. - /// - /// In en, this message translates to: - /// **'Error handling a Zulip event from {serverUrl}; will retry.\n\nError: {error}\n\nEvent: {event}'** - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ); - - /// Error title when opening a link failed. - /// - /// In en, this message translates to: - /// **'Unable to open link'** - String get errorCouldNotOpenLinkTitle; - - /// Error message when opening a link failed. - /// - /// In en, this message translates to: - /// **'Link could not be opened: {url}'** - String errorCouldNotOpenLink(String url); - - /// Error message when muting a topic failed. - /// - /// In en, this message translates to: - /// **'Failed to mute topic'** - String get errorMuteTopicFailed; - - /// Error message when unmuting a topic failed. - /// - /// In en, this message translates to: - /// **'Failed to unmute topic'** - String get errorUnmuteTopicFailed; - - /// Error message when following a topic failed. - /// - /// In en, this message translates to: - /// **'Failed to follow topic'** - String get errorFollowTopicFailed; - - /// Error message when unfollowing a topic failed. - /// - /// In en, this message translates to: - /// **'Failed to unfollow topic'** - String get errorUnfollowTopicFailed; - - /// Error message when sharing a message failed. - /// - /// In en, this message translates to: - /// **'Sharing failed'** - String get errorSharingFailed; - - /// Error title when starring a message failed. - /// - /// In en, this message translates to: - /// **'Failed to star message'** - String get errorStarMessageFailedTitle; - - /// Error title when unstarring a message failed. - /// - /// In en, this message translates to: - /// **'Failed to unstar message'** - String get errorUnstarMessageFailedTitle; - - /// Error title when an exception prevented us from opening the compose box for editing a message. - /// - /// In en, this message translates to: - /// **'Could not edit message'** - String get errorCouldNotEditMessageTitle; - - /// Success message after copy link action completed. - /// - /// In en, this message translates to: - /// **'Link copied'** - String get successLinkCopied; - - /// Message when content of a message was copied to the user's system clipboard. - /// - /// In en, this message translates to: - /// **'Message text copied'** - String get successMessageTextCopied; - - /// Message when link of a message was copied to the user's system clipboard. - /// - /// In en, this message translates to: - /// **'Message link copied'** - String get successMessageLinkCopied; - - /// Message when link of a topic was copied to the user's system clipboard. - /// - /// In en, this message translates to: - /// **'Topic link copied'** - String get successTopicLinkCopied; - - /// Message when link of a channel was copied to the user's system clipboard. - /// - /// In en, this message translates to: - /// **'Channel link copied'** - String get successChannelLinkCopied; - - /// Label text for error banner when sending a message to one or multiple deactivated users. - /// - /// In en, this message translates to: - /// **'You cannot send messages to deactivated users.'** - String get errorBannerDeactivatedDmLabel; - - /// Error-banner text replacing the compose box when you do not have permission to send a message to the channel. - /// - /// In en, this message translates to: - /// **'You do not have permission to post in this channel.'** - String get errorBannerCannotPostInChannelLabel; - - /// Label text for a compose-box banner when you are viewing an unsubscribed channel in which you do not have permission to send messages. - /// - /// In en, this message translates to: - /// **'New messages will not appear automatically.'** - String get composeBoxBannerLabelUnsubscribedWhenCannotSend; - - /// Label text for the 'Refresh' button in the compose-box banner when you are viewing an unsubscribed channel. - /// - /// In en, this message translates to: - /// **'Refresh'** - String get composeBoxBannerButtonRefresh; - - /// Label text for the 'Subscribe' button in the compose-box banner when you are viewing an unsubscribed channel. - /// - /// In en, this message translates to: - /// **'Subscribe'** - String get composeBoxBannerButtonSubscribe; - - /// Label text for the compose-box banner when you are editing a message. - /// - /// In en, this message translates to: - /// **'Edit message'** - String get composeBoxBannerLabelEditMessage; - - /// Label text for the 'Cancel' button in the compose-box banner when you are editing a message. - /// - /// In en, this message translates to: - /// **'Cancel'** - String get composeBoxBannerButtonCancel; - - /// Label text for the 'Save' button in the compose-box banner when you are editing a message. - /// - /// In en, this message translates to: - /// **'Save'** - String get composeBoxBannerButtonSave; - - /// Error title when a message edit cannot be saved because there is another edit already in progress. - /// - /// In en, this message translates to: - /// **'Cannot edit message'** - String get editAlreadyInProgressTitle; - - /// Error message when a message edit cannot be saved because there is another edit already in progress. - /// - /// In en, this message translates to: - /// **'An edit is already in progress. Please wait for it to complete.'** - String get editAlreadyInProgressMessage; - - /// Text on a message in the message list saying that a message edit request is processing. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.) - /// - /// In en, this message translates to: - /// **'SAVING EDIT…'** - String get savingMessageEditLabel; - - /// Text on a message in the message list saying that a message edit request failed. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.) - /// - /// In en, this message translates to: - /// **'EDIT NOT SAVED'** - String get savingMessageEditFailedLabel; - - /// Title for a confirmation dialog for discarding message text that was typed into the compose box. - /// - /// In en, this message translates to: - /// **'Discard the message you’re writing?'** - String get discardDraftConfirmationDialogTitle; - - /// Message for a confirmation dialog for discarding message text that was typed into the compose box, when editing a message. - /// - /// In en, this message translates to: - /// **'When you edit a message, the content that was previously in the compose box is discarded.'** - String get discardDraftForEditConfirmationDialogMessage; - - /// Message for a confirmation dialog when restoring an outbox message, for discarding message text that was typed into the compose box. - /// - /// In en, this message translates to: - /// **'When you restore an unsent message, the content that was previously in the compose box is discarded.'** - String get discardDraftForOutboxConfirmationDialogMessage; - - /// Label for the 'Discard' button on a confirmation dialog for discarding message text that was typed into the compose box. - /// - /// In en, this message translates to: - /// **'Discard'** - String get discardDraftConfirmationDialogConfirmButton; - - /// Tooltip for compose box icon to attach a file to the message. - /// - /// In en, this message translates to: - /// **'Attach files'** - String get composeBoxAttachFilesTooltip; - - /// Tooltip for compose box icon to attach media to the message. - /// - /// In en, this message translates to: - /// **'Attach images or videos'** - String get composeBoxAttachMediaTooltip; - - /// Tooltip for compose box icon to attach an image from the camera to the message. - /// - /// In en, this message translates to: - /// **'Take a photo'** - String get composeBoxAttachFromCameraTooltip; - - /// Hint text for content input when sending a message. - /// - /// In en, this message translates to: - /// **'Type a message'** - String get composeBoxGenericContentHint; - - /// Label for the compose button in the new DM sheet that starts composing a message to the selected users. - /// - /// In en, this message translates to: - /// **'Compose'** - String get newDmSheetComposeButtonLabel; - - /// Title displayed at the top of the new DM screen. - /// - /// In en, this message translates to: - /// **'New DM'** - String get newDmSheetScreenTitle; - - /// Label for the floating action button (FAB) that opens the new DM sheet. - /// - /// In en, this message translates to: - /// **'New DM'** - String get newDmFabButtonLabel; - - /// Hint text for the search bar when no users are selected - /// - /// In en, this message translates to: - /// **'Add one or more users'** - String get newDmSheetSearchHintEmpty; - - /// Hint text for the search bar when at least one user is selected. - /// - /// In en, this message translates to: - /// **'Add another user…'** - String get newDmSheetSearchHintSomeSelected; - - /// Message shown in the new DM sheet when no users match the search. - /// - /// In en, this message translates to: - /// **'No users found'** - String get newDmSheetNoUsersFound; - - /// Hint text for content input when sending a message to one other person. - /// - /// In en, this message translates to: - /// **'Message @{user}'** - String composeBoxDmContentHint(String user); - - /// Hint text for content input when sending a message to a group. - /// - /// In en, this message translates to: - /// **'Message group'** - String get composeBoxGroupDmContentHint; - - /// Hint text for content input when sending a message to yourself. - /// - /// In en, this message translates to: - /// **'Write yourself a note'** - String get composeBoxSelfDmContentHint; - - /// Hint text for content input when sending a message to a channel. - /// - /// In en, this message translates to: - /// **'Message {destination}'** - String composeBoxChannelContentHint(String destination); - - /// Hint text for content input when the compose box is preparing to edit a message. - /// - /// In en, this message translates to: - /// **'Preparing…'** - String get preparingEditMessageContentInput; - - /// Tooltip for send button in compose box. - /// - /// In en, this message translates to: - /// **'Send'** - String get composeBoxSendTooltip; - - /// Replacement name for channel when it cannot be found in the store. - /// - /// In en, this message translates to: - /// **'(unknown channel)'** - String get unknownChannelName; - - /// Hint text for topic input widget in compose box. - /// - /// In en, this message translates to: - /// **'Topic'** - String get composeBoxTopicHintText; - - /// Hint text for topic input widget in compose box when topics are optional. - /// - /// In en, this message translates to: - /// **'Enter a topic (skip for “{defaultTopicName}”)'** - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName); - - /// Placeholder in compose box showing the specified file is currently uploading. - /// - /// In en, this message translates to: - /// **'Uploading {filename}…'** - String composeBoxUploadingFilename(String filename); - - /// Placeholder in compose box showing the quoted message is currently loading. - /// - /// In en, this message translates to: - /// **'(loading message {messageId})'** - String composeBoxLoadingMessage(int messageId); - - /// Name placeholder to use for a user when we don't know their name. - /// - /// In en, this message translates to: - /// **'(unknown user)'** - String get unknownUserName; - - /// Message list page title for a DM group that only includes yourself. - /// - /// In en, this message translates to: - /// **'DMs with yourself'** - String get dmsWithYourselfPageTitle; - - /// Message list recipient header for a DM group with others. - /// - /// In en, this message translates to: - /// **'You and {others}'** - String messageListGroupYouAndOthers(String others); - - /// Message list page title for a DM group with others. - /// - /// In en, this message translates to: - /// **'DMs with {others}'** - String dmsWithOthersPageTitle(String others); - - /// Placeholder for some message-list pages when there are no messages. - /// - /// In en, this message translates to: - /// **'There are no messages here.'** - String get emptyMessageList; - - /// Placeholder for the 'Search' page when there are no messages. - /// - /// In en, this message translates to: - /// **'No search results.'** - String get emptyMessageListSearch; - - /// Message list recipient header for a DM group that only includes yourself. - /// - /// In en, this message translates to: - /// **'Messages with yourself'** - String get messageListGroupYouWithYourself; - - /// Content validation error message when the message is too long. - /// - /// In en, this message translates to: - /// **'Message length shouldn\'t be greater than 10000 characters.'** - String get contentValidationErrorTooLong; - - /// Content validation error message when the message is empty. - /// - /// In en, this message translates to: - /// **'You have nothing to send!'** - String get contentValidationErrorEmpty; - - /// Content validation error message when a quotation has not completed yet. - /// - /// In en, this message translates to: - /// **'Please wait for the quotation to complete.'** - String get contentValidationErrorQuoteAndReplyInProgress; - - /// Content validation error message when attachments have not finished uploading. - /// - /// In en, this message translates to: - /// **'Please wait for the upload to complete.'** - String get contentValidationErrorUploadInProgress; - - /// Button label in dialogs to cancel. - /// - /// In en, this message translates to: - /// **'Cancel'** - String get dialogCancel; - - /// Button label in dialogs to proceed. - /// - /// In en, this message translates to: - /// **'Continue'** - String get dialogContinue; - - /// Button label in dialogs to close. - /// - /// In en, this message translates to: - /// **'Close'** - String get dialogClose; - - /// Button label in error dialogs to open a web page with more information. - /// - /// In en, this message translates to: - /// **'Learn more'** - String get errorDialogLearnMore; - - /// Button label in error dialogs to acknowledge the error and close the dialog. - /// - /// In en, this message translates to: - /// **'OK'** - String get errorDialogContinue; - - /// Generic title for error dialog. - /// - /// In en, this message translates to: - /// **'Error'** - String get errorDialogTitle; - - /// Button label for snack bar button that opens a dialog with more details. - /// - /// In en, this message translates to: - /// **'Details'** - String get snackBarDetails; - - /// Tooltip in lightbox for the copy link action. - /// - /// In en, this message translates to: - /// **'Copy link'** - String get lightboxCopyLinkTooltip; - - /// The current playback position of the video playing in the lightbox. - /// - /// In en, this message translates to: - /// **'Current position'** - String get lightboxVideoCurrentPosition; - - /// The total duration of the video playing in the lightbox. - /// - /// In en, this message translates to: - /// **'Video duration'** - String get lightboxVideoDuration; - - /// Title for login page. - /// - /// In en, this message translates to: - /// **'Log in'** - String get loginPageTitle; - - /// Button text to submit login credentials. - /// - /// In en, this message translates to: - /// **'Log in'** - String get loginFormSubmitLabel; - - /// Text on the divider between the username/password form and the third-party login options. Uppercase (for languages with letter case). - /// - /// In en, this message translates to: - /// **'OR'** - String get loginMethodDivider; - - /// Button to use {method} to sign in to the app. - /// - /// In en, this message translates to: - /// **'Sign in with {method}'** - String signInWithFoo(String method); - - /// Title for page to add a Zulip account. - /// - /// In en, this message translates to: - /// **'Add an account'** - String get loginAddAnAccountPageTitle; - - /// Label in login page for Zulip server URL entry. - /// - /// In en, this message translates to: - /// **'Your Zulip server URL'** - String get loginServerUrlLabel; - - /// Icon label for button to hide password in input form. - /// - /// In en, this message translates to: - /// **'Hide password'** - String get loginHidePassword; - - /// Label for input when an email is required to log in. - /// - /// In en, this message translates to: - /// **'Email address'** - String get loginEmailLabel; - - /// Error message when an empty email was provided. - /// - /// In en, this message translates to: - /// **'Please enter your email.'** - String get loginErrorMissingEmail; - - /// Label for password input field. - /// - /// In en, this message translates to: - /// **'Password'** - String get loginPasswordLabel; - - /// Error message when an empty password was provided. - /// - /// In en, this message translates to: - /// **'Please enter your password.'** - String get loginErrorMissingPassword; - - /// Label for input when a username is required to log in. - /// - /// In en, this message translates to: - /// **'Username'** - String get loginUsernameLabel; - - /// Error message when an empty username was provided. - /// - /// In en, this message translates to: - /// **'Please enter your username.'** - String get loginErrorMissingUsername; - - /// Topic validation error when topic is too long. - /// - /// In en, this message translates to: - /// **'Topic length shouldn\'t be greater than 60 characters.'** - String get topicValidationErrorTooLong; - - /// Topic validation error when topic is required but was empty. - /// - /// In en, this message translates to: - /// **'Topics are required in this organization.'** - String get topicValidationErrorMandatoryButEmpty; - - /// Title for error dialog when an attempt to insert rich content failed. - /// - /// In en, this message translates to: - /// **'Content not inserted'** - String get errorContentNotInsertedTitle; - - /// Error message when the rich content to be inserted is empty or cannot be accessed. - /// - /// In en, this message translates to: - /// **'The file to be inserted is empty or cannot be accessed.'** - String get errorContentToInsertIsEmpty; - - /// Error message in the dialog for when the Zulip Server version is unsupported. - /// - /// In en, this message translates to: - /// **'{url} is running Zulip Server {zulipVersion}, which is unsupported. The minimum supported version is Zulip Server {minSupportedZulipVersion}.'** - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ); - - /// Error message in the dialog for invalid API key. - /// - /// In en, this message translates to: - /// **'Your account at {url} could not be authenticated. Please try logging in again or use another account.'** - String errorInvalidApiKeyMessage(String url); - - /// Error message when an API call returned an invalid response. - /// - /// In en, this message translates to: - /// **'The server sent an invalid response.'** - String get errorInvalidResponse; - - /// Error message when a network request fails. - /// - /// In en, this message translates to: - /// **'Network request failed'** - String get errorNetworkRequestFailed; - - /// Error message when an API call fails because we could not parse the response. - /// - /// In en, this message translates to: - /// **'Server gave malformed response; HTTP status {httpStatus}'** - String errorMalformedResponse(int httpStatus); - - /// Error message when an API call fails because we could not parse the response, with details of the failure. - /// - /// In en, this message translates to: - /// **'Server gave malformed response; HTTP status {httpStatus}; {details}'** - String errorMalformedResponseWithCause(int httpStatus, String details); - - /// Error message when an API call fails. - /// - /// In en, this message translates to: - /// **'Network request failed: HTTP status {httpStatus}'** - String errorRequestFailed(int httpStatus); - - /// Error message when a video fails to play. - /// - /// In en, this message translates to: - /// **'Unable to play the video.'** - String get errorVideoPlayerFailed; - - /// Error message when URL is empty - /// - /// In en, this message translates to: - /// **'Please enter a URL.'** - String get serverUrlValidationErrorEmpty; - - /// Error message when URL is not in a valid format. - /// - /// In en, this message translates to: - /// **'Please enter a valid URL.'** - String get serverUrlValidationErrorInvalidUrl; - - /// Error message when URL looks like an email - /// - /// In en, this message translates to: - /// **'Please enter the server URL, not your email.'** - String get serverUrlValidationErrorNoUseEmail; - - /// Error message when URL has an unsupported scheme. - /// - /// In en, this message translates to: - /// **'The server URL must start with http:// or https://.'** - String get serverUrlValidationErrorUnsupportedScheme; - - /// The default header text in a spoiler block ( https://zulip.com/help/spoilers ). - /// - /// In en, this message translates to: - /// **'Spoiler'** - String get spoilerDefaultHeaderText; - - /// Button text to mark messages as read. - /// - /// In en, this message translates to: - /// **'Mark all messages as read'** - String get markAllAsReadLabel; - - /// Message when marking messages as read has completed. - /// - /// In en, this message translates to: - /// **'Marked {num, plural, =1{1 message} other{{num} messages}} as read.'** - String markAsReadComplete(int num); - - /// Progress message when marking messages as read. - /// - /// In en, this message translates to: - /// **'Marking messages as read…'** - String get markAsReadInProgress; - - /// Error title when mark as read action failed. - /// - /// In en, this message translates to: - /// **'Mark as read failed'** - String get errorMarkAsReadFailedTitle; - - /// Message when marking messages as unread has completed. - /// - /// In en, this message translates to: - /// **'Marked {num, plural, =1{1 message} other{{num} messages}} as unread.'** - String markAsUnreadComplete(int num); - - /// Progress message when marking messages as unread. - /// - /// In en, this message translates to: - /// **'Marking messages as unread…'** - String get markAsUnreadInProgress; - - /// Error title when mark as unread action failed. - /// - /// In en, this message translates to: - /// **'Mark as unread failed'** - String get errorMarkAsUnreadFailedTitle; - - /// Term to use to reference the current day. - /// - /// In en, this message translates to: - /// **'Today'** - String get today; - - /// Term to use to reference the previous day. - /// - /// In en, this message translates to: - /// **'Yesterday'** - String get yesterday; - - /// Indicates a user is currently active on Zulip (not idle or offline) - /// - /// In en, this message translates to: - /// **'Active now'** - String get userActiveNow; - - /// Indicates a user is currently idle on Zulip (not active, but not offline) - /// - /// In en, this message translates to: - /// **'Idle'** - String get userIdle; - - /// Indicates when a user was last active on Zulip (who is currently offline) - /// - /// In en, this message translates to: - /// **'Active {minutes, plural, =1{1 minute} other{{minutes} minutes}} ago'** - String userActiveMinutesAgo(int minutes); - - /// Indicates when a user was last active on Zulip (who is currently offline) - /// - /// In en, this message translates to: - /// **'Active {hours, plural, =1{1 hour} other{{hours} hours}} ago'** - String userActiveHoursAgo(int hours); - - /// Indicates when a user was last active on Zulip (who is currently offline) - /// - /// In en, this message translates to: - /// **'Active yesterday'** - String get userActiveYesterday; - - /// Indicates when a user was last active on Zulip (who is currently offline) - /// - /// In en, this message translates to: - /// **'Active {days, plural, =1{1 day} other{{days} days}} ago'** - String userActiveDaysAgo(int days); - - /// Indicates the date when a user was last active on Zulip (who is currently offline). - /// - /// The date might be day and month if recent, or day, month, and year if less recent. - /// - /// In en, this message translates to: - /// **'Active {date}'** - String userActiveDate(String date); - - /// Indicates when a user was last active on Zulip (who is currently offline) - /// - /// In en, this message translates to: - /// **'Not active in the last year'** - String get userNotActiveInYear; - - /// Label for the 'Invisible mode' switch on the profile page. - /// - /// In en, this message translates to: - /// **'Invisible mode'** - String get invisibleMode; - - /// Error title when turning on invisible mode failed. - /// - /// In en, this message translates to: - /// **'Error turning on invisible mode. Please try again.'** - String get turnOnInvisibleModeErrorTitle; - - /// Error title when turning off invisible mode failed. - /// - /// In en, this message translates to: - /// **'Error turning off invisible mode. Please try again.'** - String get turnOffInvisibleModeErrorTitle; - - /// Label for UserRole.owner - /// - /// In en, this message translates to: - /// **'Owner'** - String get userRoleOwner; - - /// Label for UserRole.administrator - /// - /// In en, this message translates to: - /// **'Administrator'** - String get userRoleAdministrator; - - /// Label for UserRole.moderator - /// - /// In en, this message translates to: - /// **'Moderator'** - String get userRoleModerator; - - /// Label for UserRole.member - /// - /// In en, this message translates to: - /// **'Member'** - String get userRoleMember; - - /// Label for UserRole.guest - /// - /// In en, this message translates to: - /// **'Guest'** - String get userRoleGuest; - - /// Label for UserRole.unknown - /// - /// In en, this message translates to: - /// **'Unknown'** - String get userRoleUnknown; - - /// The status button label in self-user profile page when status is set. - /// - /// In en, this message translates to: - /// **'Status'** - String get statusButtonLabelStatusSet; - - /// The status button label in self-user profile page when status is not set. - /// - /// In en, this message translates to: - /// **'Set status'** - String get statusButtonLabelStatusUnset; - - /// The text part of the status button sub-label in self-user profile page when status text is not set. - /// - /// In en, this message translates to: - /// **'No status text'** - String get noStatusText; - - /// Title for the 'Set status' page. - /// - /// In en, this message translates to: - /// **'Set status'** - String get setStatusPageTitle; - - /// Label for the button that clears the user status, in 'Set status' page. - /// - /// In en, this message translates to: - /// **'Clear'** - String get statusClearButtonLabel; - - /// Label for the button that saves the user status, in 'Set status' page. - /// - /// In en, this message translates to: - /// **'Save'** - String get statusSaveButtonLabel; - - /// Hint text for the status text input field in 'Set status' page. - /// - /// In en, this message translates to: - /// **'Your status'** - String get statusTextHint; - - /// A suggested user status text, 'Busy'. - /// - /// In en, this message translates to: - /// **'Busy'** - String get userStatusBusy; - - /// A suggested user status text, 'In a meeting'. - /// - /// In en, this message translates to: - /// **'In a meeting'** - String get userStatusInAMeeting; - - /// A suggested user status text, 'Commuting'. - /// - /// In en, this message translates to: - /// **'Commuting'** - String get userStatusCommuting; - - /// A suggested user status text, 'Out sick'. - /// - /// In en, this message translates to: - /// **'Out sick'** - String get userStatusOutSick; - - /// A suggested user status text, 'Vacationing'. - /// - /// In en, this message translates to: - /// **'Vacationing'** - String get userStatusVacationing; - - /// A suggested user status text, 'Working remotely'. - /// - /// In en, this message translates to: - /// **'Working remotely'** - String get userStatusWorkingRemotely; - - /// A suggested user status text, 'At the office'. - /// - /// In en, this message translates to: - /// **'At the office'** - String get userStatusAtTheOffice; - - /// Error title when updating user status failed. - /// - /// In en, this message translates to: - /// **'Error updating user status. Please try again.'** - String get updateStatusErrorTitle; - - /// Page title for the 'Search' message view. - /// - /// In en, this message translates to: - /// **'Search'** - String get searchMessagesPageTitle; - - /// Hint text for the message search text field. - /// - /// In en, this message translates to: - /// **'Search'** - String get searchMessagesHintText; - - /// Tooltip for the 'x' button in the search text field. - /// - /// In en, this message translates to: - /// **'Clear'** - String get searchMessagesClearButtonTooltip; - - /// Title for the page with unreads. - /// - /// In en, this message translates to: - /// **'Inbox'** - String get inboxPageTitle; - - /// Centered text on the 'Inbox' page saying that there is no content to show. - /// - /// In en, this message translates to: - /// **'There are no unread messages in your inbox. Use the buttons below to view the combined feed or list of channels.'** - String get inboxEmptyPlaceholder; - - /// Title for the page with a list of DM conversations. - /// - /// In en, this message translates to: - /// **'Direct messages'** - String get recentDmConversationsPageTitle; - - /// Heading for direct messages section on the 'Inbox' message view. - /// - /// In en, this message translates to: - /// **'Direct messages'** - String get recentDmConversationsSectionHeader; - - /// Centered text on the 'Direct messages' page saying that there is no content to show. - /// - /// In en, this message translates to: - /// **'You have no direct messages yet! Why not start the conversation?'** - String get recentDmConversationsEmptyPlaceholder; - - /// Page title for the 'Combined feed' message view. - /// - /// In en, this message translates to: - /// **'Combined feed'** - String get combinedFeedPageTitle; - - /// Page title for the 'Mentions' message view. - /// - /// In en, this message translates to: - /// **'Mentions'** - String get mentionsPageTitle; - - /// Page title for the 'Starred messages' message view. - /// - /// In en, this message translates to: - /// **'Starred messages'** - String get starredMessagesPageTitle; - - /// Title for the page with a list of subscribed channels. - /// - /// In en, this message translates to: - /// **'Channels'** - String get channelsPageTitle; - - /// Centered text on the 'Channels' page saying that there is no content to show. - /// - /// In en, this message translates to: - /// **'You’re not subscribed to any channels yet.'** - String get channelsEmptyPlaceholder; - - /// Centered text on the 'Channels' page saying that there is no content to show, with a link to 'All channels'. - /// - /// In en, this message translates to: - /// **'You’re not subscribed to any channels yet. Try going to {allChannelsPageTitle} and joining some of them.'** - String channelsEmptyPlaceholderWithAllChannelsLink( - String allChannelsPageTitle, - ); - - /// Title for the page about sharing content received from other apps. - /// - /// In en, this message translates to: - /// **'Share'** - String get sharePageTitle; - - /// Label for main-menu button leading to the user's own profile. - /// - /// In en, this message translates to: - /// **'My profile'** - String get mainMenuMyProfile; - - /// Tooltip for button to navigate to topic-list page. - /// - /// In en, this message translates to: - /// **'Topics'** - String get topicsButtonTooltip; - - /// Tooltip for button to navigate to a given channel's feed - /// - /// In en, this message translates to: - /// **'Channel feed'** - String get channelFeedButtonTooltip; - - /// Label for a group DM conversation notification. - /// - /// In en, this message translates to: - /// **'{senderFullName} to you and {numOthers, plural, =1{1 other} other{{numOthers} others}}'** - String notifGroupDmConversationLabel(String senderFullName, int numOthers); - - /// Label for the list of pinned subscribed channels. - /// - /// In en, this message translates to: - /// **'Pinned'** - String get pinnedSubscriptionsLabel; - - /// Label for the list of unpinned subscribed channels. - /// - /// In en, this message translates to: - /// **'Unpinned'** - String get unpinnedSubscriptionsLabel; - - /// Display name for the user themself, to show after replying in an Android notification - /// - /// In en, this message translates to: - /// **'You'** - String get notifSelfUser; - - /// Display name for the user themself, to show on an emoji reaction added by the user. - /// - /// In en, this message translates to: - /// **'You'** - String get reactedEmojiSelfUser; - - /// Text identifying the container of reaction chips on a message. (An accessibility label for assistive technology.) - /// - /// In en, this message translates to: - /// **'Reactions'** - String get reactionChipsLabel; - - /// Text describing a reaction chip, with the emoji name and a list or number of votes. (An accessibility label for assistive technology.) - /// - /// In en, this message translates to: - /// **'{emojiName}: {votes}'** - String reactionChipLabel(String emojiName, String votes); - - /// The number of votes on a reaction chip, where the self-user and at least one other user has voted. (An accessibility label for assistive technology.) - /// - /// In en, this message translates to: - /// **'{otherUsersCount, plural, =1{You and 1 other} other{You and {otherUsersCount} others}}'** - String reactionChipVotesYouAndOthers(int otherUsersCount); - - /// Text to display when there is one user typing. - /// - /// In en, this message translates to: - /// **'{typist} is typing…'** - String onePersonTyping(String typist); - - /// Text to display when there are two users typing. - /// - /// In en, this message translates to: - /// **'{typist} and {otherTypist} are typing…'** - String twoPeopleTyping(String typist, String otherTypist); - - /// Text to display when there are multiple users typing. - /// - /// In en, this message translates to: - /// **'Several people are typing…'** - String get manyPeopleTyping; - - /// Text for "@all" wildcard-mention autocomplete option when writing a channel or DM message. - /// - /// In en, this message translates to: - /// **'all'** - String get wildcardMentionAll; - - /// Text for "@everyone" wildcard-mention autocomplete option when writing a channel or DM message. - /// - /// In en, this message translates to: - /// **'everyone'** - String get wildcardMentionEveryone; - - /// Text for "@channel" wildcard-mention autocomplete option when writing a channel message. - /// - /// In en, this message translates to: - /// **'channel'** - String get wildcardMentionChannel; - - /// Text for "@stream" wildcard-mention autocomplete option when writing a channel message in older servers. - /// - /// In en, this message translates to: - /// **'stream'** - String get wildcardMentionStream; - - /// Text for "@topic" wildcard-mention autocomplete option when writing a channel message. - /// - /// In en, this message translates to: - /// **'topic'** - String get wildcardMentionTopic; - - /// Description for "@all", "@everyone", "@channel", and "@stream" wildcard-mention autocomplete options when writing a channel message. - /// - /// In en, this message translates to: - /// **'Notify channel'** - String get wildcardMentionChannelDescription; - - /// Description for "@all", "@everyone", and "@stream" wildcard-mention autocomplete options when writing a channel message in older servers. - /// - /// In en, this message translates to: - /// **'Notify stream'** - String get wildcardMentionStreamDescription; - - /// Description for "@all" and "@everyone" wildcard-mention autocomplete options when writing a DM message. - /// - /// In en, this message translates to: - /// **'Notify recipients'** - String get wildcardMentionAllDmDescription; - - /// Description for "@topic" wildcard-mention autocomplete options when writing a channel message. - /// - /// In en, this message translates to: - /// **'Notify topic'** - String get wildcardMentionTopicDescription; - - /// Label for an edited message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.) - /// - /// In en, this message translates to: - /// **'EDITED'** - String get messageIsEditedLabel; - - /// Label for a moved message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.) - /// - /// In en, this message translates to: - /// **'MOVED'** - String get messageIsMovedLabel; - - /// Text on a message in the message list saying that a send message request failed. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.) - /// - /// In en, this message translates to: - /// **'MESSAGE NOT SENT'** - String get messageNotSentLabel; - - /// The list of people who voted for a poll option, wrapped in parentheses. - /// - /// In en, this message translates to: - /// **'({voterNames})'** - String pollVoterNames(String voterNames); - - /// Title for theme setting. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.) - /// - /// In en, this message translates to: - /// **'THEME'** - String get themeSettingTitle; - - /// Label for dark theme setting. - /// - /// In en, this message translates to: - /// **'Dark'** - String get themeSettingDark; - - /// Label for light theme setting. - /// - /// In en, this message translates to: - /// **'Light'** - String get themeSettingLight; - - /// Label for system theme setting. - /// - /// In en, this message translates to: - /// **'System'** - String get themeSettingSystem; - - /// Label for toggling setting to open links with in-app browser - /// - /// In en, this message translates to: - /// **'Open links with in-app browser'** - String get openLinksWithInAppBrowser; - - /// Text to display for a poll when the question is missing - /// - /// In en, this message translates to: - /// **'No question.'** - String get pollWidgetQuestionMissing; - - /// Text to display for a poll when it has no options - /// - /// In en, this message translates to: - /// **'This poll has no options yet.'** - String get pollWidgetOptionsMissing; - - /// Title of setting controlling initial anchor of message list. - /// - /// In en, this message translates to: - /// **'Open message feeds at'** - String get initialAnchorSettingTitle; - - /// Description of setting controlling initial anchor of message list. - /// - /// In en, this message translates to: - /// **'You can choose whether message feeds open at your first unread message or at the newest messages.'** - String get initialAnchorSettingDescription; - - /// Label for a value of setting controlling initial anchor of message list. - /// - /// In en, this message translates to: - /// **'First unread message'** - String get initialAnchorSettingFirstUnreadAlways; - - /// Label for a value of setting controlling initial anchor of message list. - /// - /// In en, this message translates to: - /// **'First unread message in conversation views, newest message elsewhere'** - String get initialAnchorSettingFirstUnreadConversations; - - /// Label for a value of setting controlling initial anchor of message list. - /// - /// In en, this message translates to: - /// **'Newest message'** - String get initialAnchorSettingNewestAlways; - - /// Title of setting controlling which message-list views should mark read on scroll. - /// - /// In en, this message translates to: - /// **'Mark messages as read on scroll'** - String get markReadOnScrollSettingTitle; - - /// Description of setting controlling which message-list views should mark read on scroll. - /// - /// In en, this message translates to: - /// **'When scrolling through messages, should they automatically be marked as read?'** - String get markReadOnScrollSettingDescription; - - /// Label for a value of setting controlling which message-list views should mark read on scroll. - /// - /// In en, this message translates to: - /// **'Always'** - String get markReadOnScrollSettingAlways; - - /// Label for a value of setting controlling which message-list views should mark read on scroll. - /// - /// In en, this message translates to: - /// **'Never'** - String get markReadOnScrollSettingNever; - - /// Label for a value of setting controlling which message-list views should mark read on scroll. - /// - /// In en, this message translates to: - /// **'Only in conversation views'** - String get markReadOnScrollSettingConversations; - - /// Description for a value of setting controlling which message-list views should mark read on scroll. - /// - /// In en, this message translates to: - /// **'Messages will be automatically marked as read only when viewing a single topic or direct message conversation.'** - String get markReadOnScrollSettingConversationsDescription; - - /// Title of settings page for experimental, in-development features - /// - /// In en, this message translates to: - /// **'Experimental features'** - String get experimentalFeatureSettingsPageTitle; - - /// Warning text on settings page for experimental, in-development features - /// - /// In en, this message translates to: - /// **'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'** - String get experimentalFeatureSettingsWarning; - - /// Error title when notification opening fails - /// - /// In en, this message translates to: - /// **'Failed to open notification'** - String get errorNotificationOpenTitle; - - /// Error message when the account associated with the notification could not be found - /// - /// In en, this message translates to: - /// **'The account associated with this notification could not be found.'** - String get errorNotificationOpenAccountNotFound; - - /// Error title when adding a message reaction fails - /// - /// In en, this message translates to: - /// **'Adding reaction failed'** - String get errorReactionAddingFailedTitle; - - /// Error title when removing a message reaction fails - /// - /// In en, this message translates to: - /// **'Removing reaction failed'** - String get errorReactionRemovingFailedTitle; - - /// Error title when sharing content received from other apps fails - /// - /// In en, this message translates to: - /// **'Failed to share content'** - String get errorSharingTitle; - - /// Error title when sharing content received from other apps fails, when there is no account logged in - /// - /// In en, this message translates to: - /// **'There is no account logged in. Please log in to an account and try again.'** - String get errorSharingAccountNotLoggedIn; - - /// Label for a button opening the emoji picker. - /// - /// In en, this message translates to: - /// **'more'** - String get emojiReactionsMore; - - /// Hint text for the emoji picker search text field. - /// - /// In en, this message translates to: - /// **'Search emoji'** - String get emojiPickerSearchEmoji; - - /// Text to show at the start of a message list if there are no earlier messages. - /// - /// In en, this message translates to: - /// **'No earlier messages'** - String get noEarlierMessages; - - /// Label for the button revealing hidden message from a muted sender in message list. - /// - /// In en, this message translates to: - /// **'Reveal message'** - String get revealButtonLabel; - - /// Text to display in place of a muted user's name. - /// - /// In en, this message translates to: - /// **'Muted user'** - String get mutedUser; - - /// Tooltip for button to scroll to bottom. - /// - /// In en, this message translates to: - /// **'Scroll to bottom'** - String get scrollToBottomTooltip; - - /// Placeholder to show in place of the app version when it is unknown. - /// - /// In en, this message translates to: - /// **'(…)'** - String get appVersionUnknownPlaceholder; - - /// The name of Zulip. This should be either 'Zulip' or a transliteration. - /// - /// In en, this message translates to: - /// **'Zulip'** - String get zulipAppTitle; -} - -class _ZulipLocalizationsDelegate - extends LocalizationsDelegate { - const _ZulipLocalizationsDelegate(); - - @override - Future load(Locale locale) { - return SynchronousFuture( - lookupZulipLocalizations(locale), - ); - } - - @override - bool isSupported(Locale locale) => [ - 'ar', - 'de', - 'en', - 'fr', - 'it', - 'ja', - 'nb', - 'pl', - 'ru', - 'sk', - 'sl', - 'uk', - 'zh', - ].contains(locale.languageCode); - - @override - bool shouldReload(_ZulipLocalizationsDelegate old) => false; -} - -ZulipLocalizations lookupZulipLocalizations(Locale locale) { - // Lookup logic when language+script+country codes are specified. - switch (locale.toString()) { - case 'zh_Hans_CN': - return ZulipLocalizationsZhHansCn(); - case 'zh_Hant_TW': - return ZulipLocalizationsZhHantTw(); - } - - // Lookup logic when language+country codes are specified. - switch (locale.languageCode) { - case 'en': - { - switch (locale.countryCode) { - case 'GB': - return ZulipLocalizationsEnGb(); - } - break; - } - } - - // Lookup logic when only language code is specified. - switch (locale.languageCode) { - case 'ar': - return ZulipLocalizationsAr(); - case 'de': - return ZulipLocalizationsDe(); - case 'en': - return ZulipLocalizationsEn(); - case 'fr': - return ZulipLocalizationsFr(); - case 'it': - return ZulipLocalizationsIt(); - case 'ja': - return ZulipLocalizationsJa(); - case 'nb': - return ZulipLocalizationsNb(); - case 'pl': - return ZulipLocalizationsPl(); - case 'ru': - return ZulipLocalizationsRu(); - case 'sk': - return ZulipLocalizationsSk(); - case 'sl': - return ZulipLocalizationsSl(); - case 'uk': - return ZulipLocalizationsUk(); - case 'zh': - return ZulipLocalizationsZh(); - } - - throw FlutterError( - 'ZulipLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' - 'an issue with the localizations generation tool. Please file an issue ' - 'on GitHub with a reproducible sample app and the gen-l10n configuration ' - 'that was used.', - ); -} +import 'dart:async'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/widgets.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:intl/intl.dart' as intl; + +import 'zulip_localizations_ar.dart'; +import 'zulip_localizations_de.dart'; +import 'zulip_localizations_en.dart'; +import 'zulip_localizations_fr.dart'; +import 'zulip_localizations_it.dart'; +import 'zulip_localizations_ja.dart'; +import 'zulip_localizations_nb.dart'; +import 'zulip_localizations_pl.dart'; +import 'zulip_localizations_ru.dart'; +import 'zulip_localizations_sk.dart'; +import 'zulip_localizations_sl.dart'; +import 'zulip_localizations_uk.dart'; +import 'zulip_localizations_zh.dart'; + +// ignore_for_file: type=lint + +/// Callers can lookup localized strings with an instance of ZulipLocalizations +/// returned by `ZulipLocalizations.of(context)`. +/// +/// Applications need to include `ZulipLocalizations.delegate()` in their app's +/// `localizationDelegates` list, and the locales they support in the app's +/// `supportedLocales` list. For example: +/// +/// ```dart +/// import 'l10n/zulip_localizations.dart'; +/// +/// return MaterialApp( +/// localizationsDelegates: ZulipLocalizations.localizationsDelegates, +/// supportedLocales: ZulipLocalizations.supportedLocales, +/// home: MyApplicationHome(), +/// ); +/// ``` +/// +/// ## Update pubspec.yaml +/// +/// Please make sure to update your pubspec.yaml to include the following +/// packages: +/// +/// ```yaml +/// dependencies: +/// # Internationalization support. +/// flutter_localizations: +/// sdk: flutter +/// intl: any # Use the pinned version from flutter_localizations +/// +/// # Rest of dependencies +/// ``` +/// +/// ## iOS Applications +/// +/// iOS applications define key application metadata, including supported +/// locales, in an Info.plist file that is built into the application bundle. +/// To configure the locales supported by your app, you’ll need to edit this +/// file. +/// +/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file. +/// Then, in the Project Navigator, open the Info.plist file under the Runner +/// project’s Runner folder. +/// +/// Next, select the Information Property List item, select Add Item from the +/// Editor menu, then select Localizations from the pop-up menu. +/// +/// Select and expand the newly-created Localizations item then, for each +/// locale your application supports, add a new item and select the locale +/// you wish to add from the pop-up menu in the Value field. This list should +/// be consistent with the languages listed in the ZulipLocalizations.supportedLocales +/// property. +abstract class ZulipLocalizations { + ZulipLocalizations(String locale) + : localeName = intl.Intl.canonicalizedLocale(locale.toString()); + + final String localeName; + + static ZulipLocalizations of(BuildContext context) { + return Localizations.of(context, ZulipLocalizations)!; + } + + static const LocalizationsDelegate delegate = + _ZulipLocalizationsDelegate(); + + /// A list of this localizations delegate along with the default localizations + /// delegates. + /// + /// Returns a list of localizations delegates containing this delegate along with + /// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, + /// and GlobalWidgetsLocalizations.delegate. + /// + /// Additional delegates can be added by appending to this list in + /// MaterialApp. This list does not have to be used at all if a custom list + /// of delegates is preferred or required. + static const List> localizationsDelegates = + >[ + delegate, + GlobalMaterialLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + ]; + + /// A list of this localizations delegate's supported locales. + static const List supportedLocales = [ + Locale('en'), + Locale('ar'), + Locale('de'), + Locale('en', 'GB'), + Locale('fr'), + Locale('it'), + Locale('ja'), + Locale('nb'), + Locale('pl'), + Locale('ru'), + Locale('sk'), + Locale('sl'), + Locale('uk'), + Locale('zh'), + Locale.fromSubtags( + languageCode: 'zh', + countryCode: 'CN', + scriptCode: 'Hans', + ), + Locale.fromSubtags( + languageCode: 'zh', + countryCode: 'TW', + scriptCode: 'Hant', + ), + ]; + + /// Title for About Zulip page. + /// + /// In en, this message translates to: + /// **'About Zulip'** + String get aboutPageTitle; + + /// Label for Zulip app version in About Zulip page + /// + /// In en, this message translates to: + /// **'App version'** + String get aboutPageAppVersion; + + /// Item title in About Zulip page to navigate to Licenses page + /// + /// In en, this message translates to: + /// **'Open-source licenses'** + String get aboutPageOpenSourceLicenses; + + /// Item subtitle in About Zulip page to navigate to Licenses page + /// + /// In en, this message translates to: + /// **'Tap to view'** + String get aboutPageTapToView; + + /// Title for dialog shown on first upgrade from the legacy Zulip app. + /// + /// In en, this message translates to: + /// **'Welcome to the new Zulip app!'** + String get upgradeWelcomeDialogTitle; + + /// Message text for dialog shown on first upgrade from the legacy Zulip app. + /// + /// In en, this message translates to: + /// **'You’ll find a familiar experience in a faster, sleeker package.'** + String get upgradeWelcomeDialogMessage; + + /// Text of link in dialog shown on first upgrade from the legacy Zulip app. + /// + /// In en, this message translates to: + /// **'Check out the announcement blog post!'** + String get upgradeWelcomeDialogLinkText; + + /// Label for button dismissing dialog shown on first upgrade from the legacy Zulip app. + /// + /// In en, this message translates to: + /// **'Let\'s go'** + String get upgradeWelcomeDialogDismiss; + + /// Title for the page to choose between Zulip accounts. + /// + /// In en, this message translates to: + /// **'Choose account'** + String get chooseAccountPageTitle; + + /// Title for the settings page. + /// + /// In en, this message translates to: + /// **'Settings'** + String get settingsPageTitle; + + /// Label for main-menu button leading to the choose-account page. + /// + /// In en, this message translates to: + /// **'Switch account'** + String get switchAccountButton; + + /// Message that appears on the loading screen after waiting for some time. + /// + /// In en, this message translates to: + /// **'Your account at {url} is taking a while to load.'** + String tryAnotherAccountMessage(Object url); + + /// Label for loading screen button prompting user to try another account. + /// + /// In en, this message translates to: + /// **'Try another account'** + String get tryAnotherAccountButton; + + /// Label for the 'Log out' button for an account on the choose-account page + /// + /// In en, this message translates to: + /// **'Log out'** + String get chooseAccountPageLogOutButton; + + /// Title for a confirmation dialog for logging out. + /// + /// In en, this message translates to: + /// **'Log out?'** + String get logOutConfirmationDialogTitle; + + /// Message for a confirmation dialog for logging out. + /// + /// In en, this message translates to: + /// **'To use this account in the future, you will have to re-enter the URL for your organization and your account information.'** + String get logOutConfirmationDialogMessage; + + /// Label for the 'Log out' button on a confirmation dialog for logging out. + /// + /// In en, this message translates to: + /// **'Log out'** + String get logOutConfirmationDialogConfirmButton; + + /// Label for ChooseAccountPage button to add an account + /// + /// In en, this message translates to: + /// **'Add an account'** + String get chooseAccountButtonAddAnAccount; + + /// Title for a nav button that opens the 'All channels' page. + /// + /// In en, this message translates to: + /// **'All channels'** + String get navButtonAllChannels; + + /// Title for the 'All channels' page. + /// + /// In en, this message translates to: + /// **'All channels'** + String get allChannelsPageTitle; + + /// Centered text on the 'All channels' page saying that there is no content to show. + /// + /// In en, this message translates to: + /// **'There are no channels you can view in this organization.'** + String get allChannelsEmptyPlaceholder; + + /// Label for button in profile screen to navigate to DMs with the shown user. + /// + /// In en, this message translates to: + /// **'Send direct message'** + String get profileButtonSendDirectMessage; + + /// Message that appears on the user profile page when the profile cannot be shown. + /// + /// In en, this message translates to: + /// **'Could not show user profile.'** + String get errorCouldNotShowUserProfile; + + /// Title for dialog asking the user to grant additional permissions. + /// + /// In en, this message translates to: + /// **'Permissions needed'** + String get permissionsNeededTitle; + + /// Button label for permissions dialog button that opens the system settings screen. + /// + /// In en, this message translates to: + /// **'Open settings'** + String get permissionsNeededOpenSettings; + + /// Message for dialog asking the user to grant permissions for camera access. + /// + /// In en, this message translates to: + /// **'To upload an image, please grant Zulip additional permissions in Settings.'** + String get permissionsDeniedCameraAccess; + + /// Message for dialog asking the user to grant permissions for external storage read access. + /// + /// In en, this message translates to: + /// **'To upload files, please grant Zulip additional permissions in Settings.'** + String get permissionsDeniedReadExternalStorage; + + /// Label in the channel action sheet for subscribing to the channel. + /// + /// In en, this message translates to: + /// **'Subscribe'** + String get actionSheetOptionSubscribe; + + /// Error title when subscribing to a channel failed. + /// + /// In en, this message translates to: + /// **'Failed to subscribe'** + String get subscribeFailedTitle; + + /// Label for marking a channel as read. + /// + /// In en, this message translates to: + /// **'Mark channel as read'** + String get actionSheetOptionMarkChannelAsRead; + + /// Label for copy channel link button on action sheet. + /// + /// In en, this message translates to: + /// **'Copy link to channel'** + String get actionSheetOptionCopyChannelLink; + + /// Label for navigating to a channel's topic-list page. + /// + /// In en, this message translates to: + /// **'List of topics'** + String get actionSheetOptionListOfTopics; + + /// Label for navigating to a channel's channel-feed page. + /// + /// In en, this message translates to: + /// **'Channel feed'** + String get actionSheetOptionChannelFeed; + + /// Label in the channel action sheet for unsubscribing from the channel. + /// + /// In en, this message translates to: + /// **'Unsubscribe'** + String get actionSheetOptionUnsubscribe; + + /// Title for a confirmation dialog for unsubscribing from a channel. + /// + /// In en, this message translates to: + /// **'Unsubscribe from {channelName}?'** + String unsubscribeConfirmationDialogTitle(String channelName); + + /// Message for a confirmation dialog for unsubscribing from a channel when you will not have permission to resubscribe. + /// + /// In en, this message translates to: + /// **'Once you leave this channel, you will not be able to rejoin.'** + String get unsubscribeConfirmationDialogMessageCannotResubscribe; + + /// Label for the 'Unsubscribe' button on a confirmation dialog for unsubscribing from a channel. + /// + /// In en, this message translates to: + /// **'Unsubscribe'** + String get unsubscribeConfirmationDialogConfirmButton; + + /// Error title when unsubscribing from a channel failed. + /// + /// In en, this message translates to: + /// **'Failed to unsubscribe'** + String get unsubscribeFailedTitle; + + /// Label for muting a topic on action sheet. + /// + /// In en, this message translates to: + /// **'Mute topic'** + String get actionSheetOptionMuteTopic; + + /// Label for unmuting a topic on action sheet. + /// + /// In en, this message translates to: + /// **'Unmute topic'** + String get actionSheetOptionUnmuteTopic; + + /// Label for following a topic on action sheet. + /// + /// In en, this message translates to: + /// **'Follow topic'** + String get actionSheetOptionFollowTopic; + + /// Label for unfollowing a topic on action sheet. + /// + /// In en, this message translates to: + /// **'Unfollow topic'** + String get actionSheetOptionUnfollowTopic; + + /// Label for the 'Mark as resolved' button on the topic action sheet. + /// + /// In en, this message translates to: + /// **'Mark as resolved'** + String get actionSheetOptionResolveTopic; + + /// Label for the 'Mark as unresolved' button on the topic action sheet. + /// + /// In en, this message translates to: + /// **'Mark as unresolved'** + String get actionSheetOptionUnresolveTopic; + + /// Error title when marking a topic as resolved failed. + /// + /// In en, this message translates to: + /// **'Failed to mark topic as resolved'** + String get errorResolveTopicFailedTitle; + + /// Error title when marking a topic as unresolved failed. + /// + /// In en, this message translates to: + /// **'Failed to mark topic as unresolved'** + String get errorUnresolveTopicFailedTitle; + + /// Label for the 'See who reacted' button in the message action sheet. + /// + /// In en, this message translates to: + /// **'See who reacted'** + String get actionSheetOptionSeeWhoReacted; + + /// Explanation on the 'See who reacted' sheet when the message has no reactions (because they were removed after the sheet was opened). + /// + /// In en, this message translates to: + /// **'This message has no reactions.'** + String get seeWhoReactedSheetNoReactions; + + /// In the 'See who reacted' sheet, a label for the list of emoji reactions at the top, with the total number of reactions. (An accessibility label for assistive technology.) + /// + /// In en, this message translates to: + /// **'Emoji reactions ({num} total)'** + String seeWhoReactedSheetHeaderLabel(int num); + + /// In the 'See who reacted' sheet, an emoji reaction's name and how many votes it has. (An accessibility label for assistive technology.) + /// + /// In en, this message translates to: + /// **'{emojiName}: {num, plural, =1{1 vote} other{{num} votes}}'** + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num); + + /// In the 'See who reacted' sheet, a label for the list of users who chose an emoji reaction, with the emoji's name and how many votes it has. (An accessibility label for assistive technology.) + /// + /// In en, this message translates to: + /// **'Votes for {emojiName} ({num})'** + String seeWhoReactedSheetUserListLabel(String emojiName, int num); + + /// Label for the 'View read receipts' button in the message action sheet. + /// + /// In en, this message translates to: + /// **'View read receipts'** + String get actionSheetOptionViewReadReceipts; + + /// Title for the "Read receipts" bottom sheet. + /// + /// In en, this message translates to: + /// **'Read receipts'** + String get actionSheetReadReceipts; + + /// Label in the "Read receipts" bottom sheet when one or more people have read the message. + /// + /// In en, this message translates to: + /// **'{count, plural, =1{This message has been read by {count} person:} other{This message has been read by {count} people:}}'** + String actionSheetReadReceiptsReadCount(int count); + + /// Label in the "Read receipts" bottom sheet when no one has read the message. + /// + /// In en, this message translates to: + /// **'No one has read this message yet.'** + String get actionSheetReadReceiptsZeroReadCount; + + /// Label in the "Read receipts" bottom sheet when loading read receipts failed. + /// + /// In en, this message translates to: + /// **'Failed to load read receipts.'** + String get actionSheetReadReceiptsErrorReadCount; + + /// Label for copy message text button on action sheet. + /// + /// In en, this message translates to: + /// **'Copy message text'** + String get actionSheetOptionCopyMessageText; + + /// Label for copy message link button on action sheet. + /// + /// In en, this message translates to: + /// **'Copy link to message'** + String get actionSheetOptionCopyMessageLink; + + /// Label for mark as unread button on action sheet. + /// + /// In en, this message translates to: + /// **'Mark as unread from here'** + String get actionSheetOptionMarkAsUnread; + + /// Label for hide muted message again button on action sheet. + /// + /// In en, this message translates to: + /// **'Hide muted message again'** + String get actionSheetOptionHideMutedMessage; + + /// Label for share button on action sheet. + /// + /// In en, this message translates to: + /// **'Share'** + String get actionSheetOptionShare; + + /// Label for the 'Quote message' button in the message action sheet. + /// + /// In en, this message translates to: + /// **'Quote message'** + String get actionSheetOptionQuoteMessage; + + /// Label for star button on action sheet. + /// + /// In en, this message translates to: + /// **'Star message'** + String get actionSheetOptionStarMessage; + + /// Label for unstar button on action sheet. + /// + /// In en, this message translates to: + /// **'Unstar message'** + String get actionSheetOptionUnstarMessage; + + /// Label for the 'Edit message' button in the message action sheet. + /// + /// In en, this message translates to: + /// **'Edit message'** + String get actionSheetOptionEditMessage; + + /// Label for the 'Delete message' button in the message action sheet. + /// + /// In en, this message translates to: + /// **'Delete message'** + String get actionSheetOptionDeleteMessage; + + /// Title for a confirmation dialog for deleting a message. + /// + /// In en, this message translates to: + /// **'Delete message?'** + String get deleteMessageConfirmationDialogTitle; + + /// Message for a confirmation dialog for deleting a message. + /// + /// In en, this message translates to: + /// **'Deleting a message permanently removes it for everyone.'** + String get deleteMessageConfirmationDialogMessage; + + /// Label for the 'Delete' button on a confirmation dialog for deleting a message. + /// + /// In en, this message translates to: + /// **'Delete'** + String get deleteMessageConfirmationDialogConfirmButton; + + /// Error title when deleting a message failed. + /// + /// In en, this message translates to: + /// **'Failed to delete message'** + String get errorDeleteMessageFailedTitle; + + /// Option to mark a specific topic as read in the action sheet. + /// + /// In en, this message translates to: + /// **'Mark topic as read'** + String get actionSheetOptionMarkTopicAsRead; + + /// Label for copy topic link button in action sheet. + /// + /// In en, this message translates to: + /// **'Copy link to topic'** + String get actionSheetOptionCopyTopicLink; + + /// Error title when third-party authentication has an operational error (not necessarily caused by invalid credentials). + /// + /// In en, this message translates to: + /// **'Something went wrong'** + String get errorWebAuthOperationalErrorTitle; + + /// Error message when third-party authentication has an operational error (not necessarily caused by invalid credentials). + /// + /// In en, this message translates to: + /// **'An unexpected error occurred.'** + String get errorWebAuthOperationalError; + + /// Error title on attempting to log into an account that's already logged in. + /// + /// In en, this message translates to: + /// **'Account already logged in'** + String get errorAccountLoggedInTitle; + + /// Error message on attempting to log into an account that's already logged in. + /// + /// In en, this message translates to: + /// **'The account {email} at {server} is already in your list of accounts.'** + String errorAccountLoggedIn(String email, String server); + + /// Error message when the source of a message could not be fetched. + /// + /// In en, this message translates to: + /// **'Could not fetch message source.'** + String get errorCouldNotFetchMessageSource; + + /// Error message when copying the text of a message to the user's system clipboard failed. + /// + /// In en, this message translates to: + /// **'Copying failed'** + String get errorCopyingFailed; + + /// Error title when the specified file failed to upload. + /// + /// In en, this message translates to: + /// **'Failed to upload file: {filename}'** + String errorFailedToUploadFileTitle(String filename); + + /// The name of a file, and its size in mebibytes. + /// + /// In en, this message translates to: + /// **'{filename}: {size} MiB'** + String filenameAndSizeInMiB(String filename, String size); + + /// Error message when attached files are too large in size. + /// + /// In en, this message translates to: + /// **'{num, plural, =1{File is} other{{num} files are}} larger than the server\'s limit of {maxFileUploadSizeMib} MiB and will not be uploaded:\n\n{listMessage}'** + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ); + + /// Error title when attached files are too large in size. + /// + /// In en, this message translates to: + /// **'{num, plural, =1{File} other{Files}} too large'** + String errorFilesTooLargeTitle(int num); + + /// Error title for login when input is invalid. + /// + /// In en, this message translates to: + /// **'Invalid input'** + String get errorLoginInvalidInputTitle; + + /// Error title for login when signing into a Zulip server fails. + /// + /// In en, this message translates to: + /// **'Login failed'** + String get errorLoginFailedTitle; + + /// Error message for compose box when a message could not be sent. + /// + /// In en, this message translates to: + /// **'Message not sent'** + String get errorMessageNotSent; + + /// Error message for compose box when a message edit could not be saved. + /// + /// In en, this message translates to: + /// **'Message not saved'** + String get errorMessageEditNotSaved; + + /// Error message when the app could not connect to the server. + /// + /// In en, this message translates to: + /// **'Failed to connect to server:\n{url}'** + String errorLoginCouldNotConnect(String url); + + /// Error title when the app could not connect to the server. + /// + /// In en, this message translates to: + /// **'Could not connect'** + String get errorCouldNotConnectTitle; + + /// Error message when loading a message that does not exist. + /// + /// In en, this message translates to: + /// **'That message does not seem to exist.'** + String get errorMessageDoesNotSeemToExist; + + /// Error message when quoting a message failed. + /// + /// In en, this message translates to: + /// **'Quotation failed'** + String get errorQuotationFailed; + + /// Error message that quotes an error from the server. + /// + /// In en, this message translates to: + /// **'The server said:\n\n{message}'** + String errorServerMessage(String message); + + /// Short error message for a generic unknown error connecting to the server. + /// + /// In en, this message translates to: + /// **'Error connecting to Zulip. Retrying…'** + String get errorConnectingToServerShort; + + /// Dialog error message for a generic unknown error connecting to the server with details. + /// + /// In en, this message translates to: + /// **'Error connecting to Zulip at {serverUrl}. Will retry:\n\n{error}'** + String errorConnectingToServerDetails(String serverUrl, String error); + + /// Error title on failing to handle a Zulip server event. + /// + /// In en, this message translates to: + /// **'Error handling a Zulip event. Retrying connection…'** + String get errorHandlingEventTitle; + + /// Error details on failing to handle a Zulip server event. + /// + /// In en, this message translates to: + /// **'Error handling a Zulip event from {serverUrl}; will retry.\n\nError: {error}\n\nEvent: {event}'** + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ); + + /// Error title when opening a link failed. + /// + /// In en, this message translates to: + /// **'Unable to open link'** + String get errorCouldNotOpenLinkTitle; + + /// Error message when opening a link failed. + /// + /// In en, this message translates to: + /// **'Link could not be opened: {url}'** + String errorCouldNotOpenLink(String url); + + /// Error message when muting a topic failed. + /// + /// In en, this message translates to: + /// **'Failed to mute topic'** + String get errorMuteTopicFailed; + + /// Error message when unmuting a topic failed. + /// + /// In en, this message translates to: + /// **'Failed to unmute topic'** + String get errorUnmuteTopicFailed; + + /// Error message when following a topic failed. + /// + /// In en, this message translates to: + /// **'Failed to follow topic'** + String get errorFollowTopicFailed; + + /// Error message when unfollowing a topic failed. + /// + /// In en, this message translates to: + /// **'Failed to unfollow topic'** + String get errorUnfollowTopicFailed; + + /// Error message when sharing a message failed. + /// + /// In en, this message translates to: + /// **'Sharing failed'** + String get errorSharingFailed; + + /// Error title when starring a message failed. + /// + /// In en, this message translates to: + /// **'Failed to star message'** + String get errorStarMessageFailedTitle; + + /// Error title when unstarring a message failed. + /// + /// In en, this message translates to: + /// **'Failed to unstar message'** + String get errorUnstarMessageFailedTitle; + + /// Error title when an exception prevented us from opening the compose box for editing a message. + /// + /// In en, this message translates to: + /// **'Could not edit message'** + String get errorCouldNotEditMessageTitle; + + /// Success message after copy link action completed. + /// + /// In en, this message translates to: + /// **'Link copied'** + String get successLinkCopied; + + /// Message when content of a message was copied to the user's system clipboard. + /// + /// In en, this message translates to: + /// **'Message text copied'** + String get successMessageTextCopied; + + /// Message when link of a message was copied to the user's system clipboard. + /// + /// In en, this message translates to: + /// **'Message link copied'** + String get successMessageLinkCopied; + + /// Message when link of a topic was copied to the user's system clipboard. + /// + /// In en, this message translates to: + /// **'Topic link copied'** + String get successTopicLinkCopied; + + /// Message when link of a channel was copied to the user's system clipboard. + /// + /// In en, this message translates to: + /// **'Channel link copied'** + String get successChannelLinkCopied; + + /// Label text for error banner when sending a message to one or multiple deactivated users. + /// + /// In en, this message translates to: + /// **'You cannot send messages to deactivated users.'** + String get errorBannerDeactivatedDmLabel; + + /// Error-banner text replacing the compose box when you do not have permission to send a message to the channel. + /// + /// In en, this message translates to: + /// **'You do not have permission to post in this channel.'** + String get errorBannerCannotPostInChannelLabel; + + /// Label text for a compose-box banner when you are viewing an unsubscribed channel in which you do not have permission to send messages. + /// + /// In en, this message translates to: + /// **'New messages will not appear automatically.'** + String get composeBoxBannerLabelUnsubscribedWhenCannotSend; + + /// Label text for the 'Refresh' button in the compose-box banner when you are viewing an unsubscribed channel. + /// + /// In en, this message translates to: + /// **'Refresh'** + String get composeBoxBannerButtonRefresh; + + /// Label text for the 'Subscribe' button in the compose-box banner when you are viewing an unsubscribed channel. + /// + /// In en, this message translates to: + /// **'Subscribe'** + String get composeBoxBannerButtonSubscribe; + + /// Label text for the compose-box banner when you are editing a message. + /// + /// In en, this message translates to: + /// **'Edit message'** + String get composeBoxBannerLabelEditMessage; + + /// Label text for the 'Cancel' button in the compose-box banner when you are editing a message. + /// + /// In en, this message translates to: + /// **'Cancel'** + String get composeBoxBannerButtonCancel; + + /// Label text for the 'Save' button in the compose-box banner when you are editing a message. + /// + /// In en, this message translates to: + /// **'Save'** + String get composeBoxBannerButtonSave; + + /// Error title when a message edit cannot be saved because there is another edit already in progress. + /// + /// In en, this message translates to: + /// **'Cannot edit message'** + String get editAlreadyInProgressTitle; + + /// Error message when a message edit cannot be saved because there is another edit already in progress. + /// + /// In en, this message translates to: + /// **'An edit is already in progress. Please wait for it to complete.'** + String get editAlreadyInProgressMessage; + + /// Text on a message in the message list saying that a message edit request is processing. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.) + /// + /// In en, this message translates to: + /// **'SAVING EDIT…'** + String get savingMessageEditLabel; + + /// Text on a message in the message list saying that a message edit request failed. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.) + /// + /// In en, this message translates to: + /// **'EDIT NOT SAVED'** + String get savingMessageEditFailedLabel; + + /// Title for a confirmation dialog for discarding message text that was typed into the compose box. + /// + /// In en, this message translates to: + /// **'Discard the message you’re writing?'** + String get discardDraftConfirmationDialogTitle; + + /// Message for a confirmation dialog for discarding message text that was typed into the compose box, when editing a message. + /// + /// In en, this message translates to: + /// **'When you edit a message, the content that was previously in the compose box is discarded.'** + String get discardDraftForEditConfirmationDialogMessage; + + /// Message for a confirmation dialog when restoring an outbox message, for discarding message text that was typed into the compose box. + /// + /// In en, this message translates to: + /// **'When you restore an unsent message, the content that was previously in the compose box is discarded.'** + String get discardDraftForOutboxConfirmationDialogMessage; + + /// Label for the 'Discard' button on a confirmation dialog for discarding message text that was typed into the compose box. + /// + /// In en, this message translates to: + /// **'Discard'** + String get discardDraftConfirmationDialogConfirmButton; + + /// Tooltip for compose box icon to attach a file to the message. + /// + /// In en, this message translates to: + /// **'Attach files'** + String get composeBoxAttachFilesTooltip; + + /// Tooltip for compose box icon to attach media to the message. + /// + /// In en, this message translates to: + /// **'Attach images or videos'** + String get composeBoxAttachMediaTooltip; + + /// Tooltip for compose box icon to attach an image from the camera to the message. + /// + /// In en, this message translates to: + /// **'Take a photo'** + String get composeBoxAttachFromCameraTooltip; + + /// Tooltip for compose box icon to attach a video call url to the message. + /// + /// In en, this message translates to: + /// **'Attach a video call'** + String get composeBoxAttachFromVideoCallTooltip; + + /// Hint text for content input when sending a message. + /// + /// In en, this message translates to: + /// **'Type a message'** + String get composeBoxGenericContentHint; + + /// Label for the compose button in the new DM sheet that starts composing a message to the selected users. + /// + /// In en, this message translates to: + /// **'Compose'** + String get newDmSheetComposeButtonLabel; + + /// Title displayed at the top of the new DM screen. + /// + /// In en, this message translates to: + /// **'New DM'** + String get newDmSheetScreenTitle; + + /// Label for the floating action button (FAB) that opens the new DM sheet. + /// + /// In en, this message translates to: + /// **'New DM'** + String get newDmFabButtonLabel; + + /// Hint text for the search bar when no users are selected + /// + /// In en, this message translates to: + /// **'Add one or more users'** + String get newDmSheetSearchHintEmpty; + + /// Hint text for the search bar when at least one user is selected. + /// + /// In en, this message translates to: + /// **'Add another user…'** + String get newDmSheetSearchHintSomeSelected; + + /// Message shown in the new DM sheet when no users match the search. + /// + /// In en, this message translates to: + /// **'No users found'** + String get newDmSheetNoUsersFound; + + /// Hint text for content input when sending a message to one other person. + /// + /// In en, this message translates to: + /// **'Message @{user}'** + String composeBoxDmContentHint(String user); + + /// Hint text for content input when sending a message to a group. + /// + /// In en, this message translates to: + /// **'Message group'** + String get composeBoxGroupDmContentHint; + + /// Hint text for content input when sending a message to yourself. + /// + /// In en, this message translates to: + /// **'Write yourself a note'** + String get composeBoxSelfDmContentHint; + + /// Hint text for content input when sending a message to a channel. + /// + /// In en, this message translates to: + /// **'Message {destination}'** + String composeBoxChannelContentHint(String destination); + + /// Hint text for content input when the compose box is preparing to edit a message. + /// + /// In en, this message translates to: + /// **'Preparing…'** + String get preparingEditMessageContentInput; + + /// Tooltip for send button in compose box. + /// + /// In en, this message translates to: + /// **'Send'** + String get composeBoxSendTooltip; + + /// Replacement name for channel when it cannot be found in the store. + /// + /// In en, this message translates to: + /// **'(unknown channel)'** + String get unknownChannelName; + + /// Hint text for topic input widget in compose box. + /// + /// In en, this message translates to: + /// **'Topic'** + String get composeBoxTopicHintText; + + /// Hint text for topic input widget in compose box when topics are optional. + /// + /// In en, this message translates to: + /// **'Enter a topic (skip for “{defaultTopicName}”)'** + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName); + + /// Placeholder in compose box showing the specified file is currently uploading. + /// + /// In en, this message translates to: + /// **'Uploading {filename}…'** + String composeBoxUploadingFilename(String filename); + + /// Placeholder in compose box showing the video call url is generated. + /// + /// In en, this message translates to: + /// **'Join video call.'** + String get composeBoxUploadedVideoCallUrl; + + /// Placeholder in compose box showing the quoted message is currently loading. + /// + /// In en, this message translates to: + /// **'(loading message {messageId})'** + String composeBoxLoadingMessage(int messageId); + + /// Name placeholder to use for a user when we don't know their name. + /// + /// In en, this message translates to: + /// **'(unknown user)'** + String get unknownUserName; + + /// Message list page title for a DM group that only includes yourself. + /// + /// In en, this message translates to: + /// **'DMs with yourself'** + String get dmsWithYourselfPageTitle; + + /// Message list recipient header for a DM group with others. + /// + /// In en, this message translates to: + /// **'You and {others}'** + String messageListGroupYouAndOthers(String others); + + /// Message list page title for a DM group with others. + /// + /// In en, this message translates to: + /// **'DMs with {others}'** + String dmsWithOthersPageTitle(String others); + + /// Placeholder for some message-list pages when there are no messages. + /// + /// In en, this message translates to: + /// **'There are no messages here.'** + String get emptyMessageList; + + /// Placeholder for the 'Search' page when there are no messages. + /// + /// In en, this message translates to: + /// **'No search results.'** + String get emptyMessageListSearch; + + /// Message list recipient header for a DM group that only includes yourself. + /// + /// In en, this message translates to: + /// **'Messages with yourself'** + String get messageListGroupYouWithYourself; + + /// Content validation error message when the message is too long. + /// + /// In en, this message translates to: + /// **'Message length shouldn\'t be greater than 10000 characters.'** + String get contentValidationErrorTooLong; + + /// Content validation error message when the message is empty. + /// + /// In en, this message translates to: + /// **'You have nothing to send!'** + String get contentValidationErrorEmpty; + + /// Content validation error message when a quotation has not completed yet. + /// + /// In en, this message translates to: + /// **'Please wait for the quotation to complete.'** + String get contentValidationErrorQuoteAndReplyInProgress; + + /// Content validation error message when attachments have not finished uploading. + /// + /// In en, this message translates to: + /// **'Please wait for the upload to complete.'** + String get contentValidationErrorUploadInProgress; + + /// Button label in dialogs to cancel. + /// + /// In en, this message translates to: + /// **'Cancel'** + String get dialogCancel; + + /// Button label in dialogs to proceed. + /// + /// In en, this message translates to: + /// **'Continue'** + String get dialogContinue; + + /// Button label in dialogs to close. + /// + /// In en, this message translates to: + /// **'Close'** + String get dialogClose; + + /// Button label in error dialogs to open a web page with more information. + /// + /// In en, this message translates to: + /// **'Learn more'** + String get errorDialogLearnMore; + + /// Button label in error dialogs to acknowledge the error and close the dialog. + /// + /// In en, this message translates to: + /// **'OK'** + String get errorDialogContinue; + + /// Generic title for error dialog. + /// + /// In en, this message translates to: + /// **'Error'** + String get errorDialogTitle; + + /// Button label for snack bar button that opens a dialog with more details. + /// + /// In en, this message translates to: + /// **'Details'** + String get snackBarDetails; + + /// Tooltip in lightbox for the copy link action. + /// + /// In en, this message translates to: + /// **'Copy link'** + String get lightboxCopyLinkTooltip; + + /// The current playback position of the video playing in the lightbox. + /// + /// In en, this message translates to: + /// **'Current position'** + String get lightboxVideoCurrentPosition; + + /// The total duration of the video playing in the lightbox. + /// + /// In en, this message translates to: + /// **'Video duration'** + String get lightboxVideoDuration; + + /// Title for login page. + /// + /// In en, this message translates to: + /// **'Log in'** + String get loginPageTitle; + + /// Button text to submit login credentials. + /// + /// In en, this message translates to: + /// **'Log in'** + String get loginFormSubmitLabel; + + /// Text on the divider between the username/password form and the third-party login options. Uppercase (for languages with letter case). + /// + /// In en, this message translates to: + /// **'OR'** + String get loginMethodDivider; + + /// Button to use {method} to sign in to the app. + /// + /// In en, this message translates to: + /// **'Sign in with {method}'** + String signInWithFoo(String method); + + /// Title for page to add a Zulip account. + /// + /// In en, this message translates to: + /// **'Add an account'** + String get loginAddAnAccountPageTitle; + + /// Label in login page for Zulip server URL entry. + /// + /// In en, this message translates to: + /// **'Your Zulip server URL'** + String get loginServerUrlLabel; + + /// Icon label for button to hide password in input form. + /// + /// In en, this message translates to: + /// **'Hide password'** + String get loginHidePassword; + + /// Label for input when an email is required to log in. + /// + /// In en, this message translates to: + /// **'Email address'** + String get loginEmailLabel; + + /// Error message when an empty email was provided. + /// + /// In en, this message translates to: + /// **'Please enter your email.'** + String get loginErrorMissingEmail; + + /// Label for password input field. + /// + /// In en, this message translates to: + /// **'Password'** + String get loginPasswordLabel; + + /// Error message when an empty password was provided. + /// + /// In en, this message translates to: + /// **'Please enter your password.'** + String get loginErrorMissingPassword; + + /// Label for input when a username is required to log in. + /// + /// In en, this message translates to: + /// **'Username'** + String get loginUsernameLabel; + + /// Error message when an empty username was provided. + /// + /// In en, this message translates to: + /// **'Please enter your username.'** + String get loginErrorMissingUsername; + + /// Topic validation error when topic is too long. + /// + /// In en, this message translates to: + /// **'Topic length shouldn\'t be greater than 60 characters.'** + String get topicValidationErrorTooLong; + + /// Topic validation error when topic is required but was empty. + /// + /// In en, this message translates to: + /// **'Topics are required in this organization.'** + String get topicValidationErrorMandatoryButEmpty; + + /// Title for error dialog when an attempt to insert rich content failed. + /// + /// In en, this message translates to: + /// **'Content not inserted'** + String get errorContentNotInsertedTitle; + + /// Error message when the rich content to be inserted is empty or cannot be accessed. + /// + /// In en, this message translates to: + /// **'The file to be inserted is empty or cannot be accessed.'** + String get errorContentToInsertIsEmpty; + + /// Error message in the dialog for when the Zulip Server version is unsupported. + /// + /// In en, this message translates to: + /// **'{url} is running Zulip Server {zulipVersion}, which is unsupported. The minimum supported version is Zulip Server {minSupportedZulipVersion}.'** + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ); + + /// Error message in the dialog for invalid API key. + /// + /// In en, this message translates to: + /// **'Your account at {url} could not be authenticated. Please try logging in again or use another account.'** + String errorInvalidApiKeyMessage(String url); + + /// Error message when an API call returned an invalid response. + /// + /// In en, this message translates to: + /// **'The server sent an invalid response.'** + String get errorInvalidResponse; + + /// Error message when a network request fails. + /// + /// In en, this message translates to: + /// **'Network request failed'** + String get errorNetworkRequestFailed; + + /// Error message when an API call fails because we could not parse the response. + /// + /// In en, this message translates to: + /// **'Server gave malformed response; HTTP status {httpStatus}'** + String errorMalformedResponse(int httpStatus); + + /// Error message when an API call fails because we could not parse the response, with details of the failure. + /// + /// In en, this message translates to: + /// **'Server gave malformed response; HTTP status {httpStatus}; {details}'** + String errorMalformedResponseWithCause(int httpStatus, String details); + + /// Error message when an API call fails. + /// + /// In en, this message translates to: + /// **'Network request failed: HTTP status {httpStatus}'** + String errorRequestFailed(int httpStatus); + + /// Error message when a video fails to play. + /// + /// In en, this message translates to: + /// **'Unable to play the video.'** + String get errorVideoPlayerFailed; + + /// Error message when URL is empty + /// + /// In en, this message translates to: + /// **'Please enter a URL.'** + String get serverUrlValidationErrorEmpty; + + /// Error message when URL is not in a valid format. + /// + /// In en, this message translates to: + /// **'Please enter a valid URL.'** + String get serverUrlValidationErrorInvalidUrl; + + /// Error message when URL looks like an email + /// + /// In en, this message translates to: + /// **'Please enter the server URL, not your email.'** + String get serverUrlValidationErrorNoUseEmail; + + /// Error message when URL has an unsupported scheme. + /// + /// In en, this message translates to: + /// **'The server URL must start with http:// or https://.'** + String get serverUrlValidationErrorUnsupportedScheme; + + /// The default header text in a spoiler block ( https://zulip.com/help/spoilers ). + /// + /// In en, this message translates to: + /// **'Spoiler'** + String get spoilerDefaultHeaderText; + + /// Button text to mark messages as read. + /// + /// In en, this message translates to: + /// **'Mark all messages as read'** + String get markAllAsReadLabel; + + /// Message when marking messages as read has completed. + /// + /// In en, this message translates to: + /// **'Marked {num, plural, =1{1 message} other{{num} messages}} as read.'** + String markAsReadComplete(int num); + + /// Progress message when marking messages as read. + /// + /// In en, this message translates to: + /// **'Marking messages as read…'** + String get markAsReadInProgress; + + /// Error title when mark as read action failed. + /// + /// In en, this message translates to: + /// **'Mark as read failed'** + String get errorMarkAsReadFailedTitle; + + /// Message when marking messages as unread has completed. + /// + /// In en, this message translates to: + /// **'Marked {num, plural, =1{1 message} other{{num} messages}} as unread.'** + String markAsUnreadComplete(int num); + + /// Progress message when marking messages as unread. + /// + /// In en, this message translates to: + /// **'Marking messages as unread…'** + String get markAsUnreadInProgress; + + /// Error title when mark as unread action failed. + /// + /// In en, this message translates to: + /// **'Mark as unread failed'** + String get errorMarkAsUnreadFailedTitle; + + /// Term to use to reference the current day. + /// + /// In en, this message translates to: + /// **'Today'** + String get today; + + /// Term to use to reference the previous day. + /// + /// In en, this message translates to: + /// **'Yesterday'** + String get yesterday; + + /// Indicates a user is currently active on Zulip (not idle or offline) + /// + /// In en, this message translates to: + /// **'Active now'** + String get userActiveNow; + + /// Indicates a user is currently idle on Zulip (not active, but not offline) + /// + /// In en, this message translates to: + /// **'Idle'** + String get userIdle; + + /// Indicates when a user was last active on Zulip (who is currently offline) + /// + /// In en, this message translates to: + /// **'Active {minutes, plural, =1{1 minute} other{{minutes} minutes}} ago'** + String userActiveMinutesAgo(int minutes); + + /// Indicates when a user was last active on Zulip (who is currently offline) + /// + /// In en, this message translates to: + /// **'Active {hours, plural, =1{1 hour} other{{hours} hours}} ago'** + String userActiveHoursAgo(int hours); + + /// Indicates when a user was last active on Zulip (who is currently offline) + /// + /// In en, this message translates to: + /// **'Active yesterday'** + String get userActiveYesterday; + + /// Indicates when a user was last active on Zulip (who is currently offline) + /// + /// In en, this message translates to: + /// **'Active {days, plural, =1{1 day} other{{days} days}} ago'** + String userActiveDaysAgo(int days); + + /// Indicates the date when a user was last active on Zulip (who is currently offline). + /// + /// The date might be day and month if recent, or day, month, and year if less recent. + /// + /// In en, this message translates to: + /// **'Active {date}'** + String userActiveDate(String date); + + /// Indicates when a user was last active on Zulip (who is currently offline) + /// + /// In en, this message translates to: + /// **'Not active in the last year'** + String get userNotActiveInYear; + + /// Label for the 'Invisible mode' switch on the profile page. + /// + /// In en, this message translates to: + /// **'Invisible mode'** + String get invisibleMode; + + /// Error title when turning on invisible mode failed. + /// + /// In en, this message translates to: + /// **'Error turning on invisible mode. Please try again.'** + String get turnOnInvisibleModeErrorTitle; + + /// Error title when turning off invisible mode failed. + /// + /// In en, this message translates to: + /// **'Error turning off invisible mode. Please try again.'** + String get turnOffInvisibleModeErrorTitle; + + /// Label for UserRole.owner + /// + /// In en, this message translates to: + /// **'Owner'** + String get userRoleOwner; + + /// Label for UserRole.administrator + /// + /// In en, this message translates to: + /// **'Administrator'** + String get userRoleAdministrator; + + /// Label for UserRole.moderator + /// + /// In en, this message translates to: + /// **'Moderator'** + String get userRoleModerator; + + /// Label for UserRole.member + /// + /// In en, this message translates to: + /// **'Member'** + String get userRoleMember; + + /// Label for UserRole.guest + /// + /// In en, this message translates to: + /// **'Guest'** + String get userRoleGuest; + + /// Label for UserRole.unknown + /// + /// In en, this message translates to: + /// **'Unknown'** + String get userRoleUnknown; + + /// The status button label in self-user profile page when status is set. + /// + /// In en, this message translates to: + /// **'Status'** + String get statusButtonLabelStatusSet; + + /// The status button label in self-user profile page when status is not set. + /// + /// In en, this message translates to: + /// **'Set status'** + String get statusButtonLabelStatusUnset; + + /// The text part of the status button sub-label in self-user profile page when status text is not set. + /// + /// In en, this message translates to: + /// **'No status text'** + String get noStatusText; + + /// Title for the 'Set status' page. + /// + /// In en, this message translates to: + /// **'Set status'** + String get setStatusPageTitle; + + /// Label for the button that clears the user status, in 'Set status' page. + /// + /// In en, this message translates to: + /// **'Clear'** + String get statusClearButtonLabel; + + /// Label for the button that saves the user status, in 'Set status' page. + /// + /// In en, this message translates to: + /// **'Save'** + String get statusSaveButtonLabel; + + /// Hint text for the status text input field in 'Set status' page. + /// + /// In en, this message translates to: + /// **'Your status'** + String get statusTextHint; + + /// A suggested user status text, 'Busy'. + /// + /// In en, this message translates to: + /// **'Busy'** + String get userStatusBusy; + + /// A suggested user status text, 'In a meeting'. + /// + /// In en, this message translates to: + /// **'In a meeting'** + String get userStatusInAMeeting; + + /// A suggested user status text, 'Commuting'. + /// + /// In en, this message translates to: + /// **'Commuting'** + String get userStatusCommuting; + + /// A suggested user status text, 'Out sick'. + /// + /// In en, this message translates to: + /// **'Out sick'** + String get userStatusOutSick; + + /// A suggested user status text, 'Vacationing'. + /// + /// In en, this message translates to: + /// **'Vacationing'** + String get userStatusVacationing; + + /// A suggested user status text, 'Working remotely'. + /// + /// In en, this message translates to: + /// **'Working remotely'** + String get userStatusWorkingRemotely; + + /// A suggested user status text, 'At the office'. + /// + /// In en, this message translates to: + /// **'At the office'** + String get userStatusAtTheOffice; + + /// Error title when updating user status failed. + /// + /// In en, this message translates to: + /// **'Error updating user status. Please try again.'** + String get updateStatusErrorTitle; + + /// Page title for the 'Search' message view. + /// + /// In en, this message translates to: + /// **'Search'** + String get searchMessagesPageTitle; + + /// Hint text for the message search text field. + /// + /// In en, this message translates to: + /// **'Search'** + String get searchMessagesHintText; + + /// Tooltip for the 'x' button in the search text field. + /// + /// In en, this message translates to: + /// **'Clear'** + String get searchMessagesClearButtonTooltip; + + /// Title for the page with unreads. + /// + /// In en, this message translates to: + /// **'Inbox'** + String get inboxPageTitle; + + /// Centered text on the 'Inbox' page saying that there is no content to show. + /// + /// In en, this message translates to: + /// **'There are no unread messages in your inbox. Use the buttons below to view the combined feed or list of channels.'** + String get inboxEmptyPlaceholder; + + /// Title for the page with a list of DM conversations. + /// + /// In en, this message translates to: + /// **'Direct messages'** + String get recentDmConversationsPageTitle; + + /// Heading for direct messages section on the 'Inbox' message view. + /// + /// In en, this message translates to: + /// **'Direct messages'** + String get recentDmConversationsSectionHeader; + + /// Centered text on the 'Direct messages' page saying that there is no content to show. + /// + /// In en, this message translates to: + /// **'You have no direct messages yet! Why not start the conversation?'** + String get recentDmConversationsEmptyPlaceholder; + + /// Page title for the 'Combined feed' message view. + /// + /// In en, this message translates to: + /// **'Combined feed'** + String get combinedFeedPageTitle; + + /// Page title for the 'Mentions' message view. + /// + /// In en, this message translates to: + /// **'Mentions'** + String get mentionsPageTitle; + + /// Page title for the 'Starred messages' message view. + /// + /// In en, this message translates to: + /// **'Starred messages'** + String get starredMessagesPageTitle; + + /// Title for the page with a list of subscribed channels. + /// + /// In en, this message translates to: + /// **'Channels'** + String get channelsPageTitle; + + /// Centered text on the 'Channels' page saying that there is no content to show. + /// + /// In en, this message translates to: + /// **'You’re not subscribed to any channels yet.'** + String get channelsEmptyPlaceholder; + + /// Centered text on the 'Channels' page saying that there is no content to show, with a link to 'All channels'. + /// + /// In en, this message translates to: + /// **'You’re not subscribed to any channels yet. Try going to {allChannelsPageTitle} and joining some of them.'** + String channelsEmptyPlaceholderWithAllChannelsLink( + String allChannelsPageTitle, + ); + + /// Title for the page about sharing content received from other apps. + /// + /// In en, this message translates to: + /// **'Share'** + String get sharePageTitle; + + /// Label for main-menu button leading to the user's own profile. + /// + /// In en, this message translates to: + /// **'My profile'** + String get mainMenuMyProfile; + + /// Tooltip for button to navigate to topic-list page. + /// + /// In en, this message translates to: + /// **'Topics'** + String get topicsButtonTooltip; + + /// Tooltip for button to navigate to a given channel's feed + /// + /// In en, this message translates to: + /// **'Channel feed'** + String get channelFeedButtonTooltip; + + /// Label for a group DM conversation notification. + /// + /// In en, this message translates to: + /// **'{senderFullName} to you and {numOthers, plural, =1{1 other} other{{numOthers} others}}'** + String notifGroupDmConversationLabel(String senderFullName, int numOthers); + + /// Label for the list of pinned subscribed channels. + /// + /// In en, this message translates to: + /// **'Pinned'** + String get pinnedSubscriptionsLabel; + + /// Label for the list of unpinned subscribed channels. + /// + /// In en, this message translates to: + /// **'Unpinned'** + String get unpinnedSubscriptionsLabel; + + /// Display name for the user themself, to show after replying in an Android notification + /// + /// In en, this message translates to: + /// **'You'** + String get notifSelfUser; + + /// Display name for the user themself, to show on an emoji reaction added by the user. + /// + /// In en, this message translates to: + /// **'You'** + String get reactedEmojiSelfUser; + + /// Text identifying the container of reaction chips on a message. (An accessibility label for assistive technology.) + /// + /// In en, this message translates to: + /// **'Reactions'** + String get reactionChipsLabel; + + /// Text describing a reaction chip, with the emoji name and a list or number of votes. (An accessibility label for assistive technology.) + /// + /// In en, this message translates to: + /// **'{emojiName}: {votes}'** + String reactionChipLabel(String emojiName, String votes); + + /// The number of votes on a reaction chip, where the self-user and at least one other user has voted. (An accessibility label for assistive technology.) + /// + /// In en, this message translates to: + /// **'{otherUsersCount, plural, =1{You and 1 other} other{You and {otherUsersCount} others}}'** + String reactionChipVotesYouAndOthers(int otherUsersCount); + + /// Text to display when there is one user typing. + /// + /// In en, this message translates to: + /// **'{typist} is typing…'** + String onePersonTyping(String typist); + + /// Text to display when there are two users typing. + /// + /// In en, this message translates to: + /// **'{typist} and {otherTypist} are typing…'** + String twoPeopleTyping(String typist, String otherTypist); + + /// Text to display when there are multiple users typing. + /// + /// In en, this message translates to: + /// **'Several people are typing…'** + String get manyPeopleTyping; + + /// Text for "@all" wildcard-mention autocomplete option when writing a channel or DM message. + /// + /// In en, this message translates to: + /// **'all'** + String get wildcardMentionAll; + + /// Text for "@everyone" wildcard-mention autocomplete option when writing a channel or DM message. + /// + /// In en, this message translates to: + /// **'everyone'** + String get wildcardMentionEveryone; + + /// Text for "@channel" wildcard-mention autocomplete option when writing a channel message. + /// + /// In en, this message translates to: + /// **'channel'** + String get wildcardMentionChannel; + + /// Text for "@stream" wildcard-mention autocomplete option when writing a channel message in older servers. + /// + /// In en, this message translates to: + /// **'stream'** + String get wildcardMentionStream; + + /// Text for "@topic" wildcard-mention autocomplete option when writing a channel message. + /// + /// In en, this message translates to: + /// **'topic'** + String get wildcardMentionTopic; + + /// Description for "@all", "@everyone", "@channel", and "@stream" wildcard-mention autocomplete options when writing a channel message. + /// + /// In en, this message translates to: + /// **'Notify channel'** + String get wildcardMentionChannelDescription; + + /// Description for "@all", "@everyone", and "@stream" wildcard-mention autocomplete options when writing a channel message in older servers. + /// + /// In en, this message translates to: + /// **'Notify stream'** + String get wildcardMentionStreamDescription; + + /// Description for "@all" and "@everyone" wildcard-mention autocomplete options when writing a DM message. + /// + /// In en, this message translates to: + /// **'Notify recipients'** + String get wildcardMentionAllDmDescription; + + /// Description for "@topic" wildcard-mention autocomplete options when writing a channel message. + /// + /// In en, this message translates to: + /// **'Notify topic'** + String get wildcardMentionTopicDescription; + + /// Label for an edited message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.) + /// + /// In en, this message translates to: + /// **'EDITED'** + String get messageIsEditedLabel; + + /// Label for a moved message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.) + /// + /// In en, this message translates to: + /// **'MOVED'** + String get messageIsMovedLabel; + + /// Text on a message in the message list saying that a send message request failed. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.) + /// + /// In en, this message translates to: + /// **'MESSAGE NOT SENT'** + String get messageNotSentLabel; + + /// The list of people who voted for a poll option, wrapped in parentheses. + /// + /// In en, this message translates to: + /// **'({voterNames})'** + String pollVoterNames(String voterNames); + + /// Title for theme setting. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.) + /// + /// In en, this message translates to: + /// **'THEME'** + String get themeSettingTitle; + + /// Label for dark theme setting. + /// + /// In en, this message translates to: + /// **'Dark'** + String get themeSettingDark; + + /// Label for light theme setting. + /// + /// In en, this message translates to: + /// **'Light'** + String get themeSettingLight; + + /// Label for system theme setting. + /// + /// In en, this message translates to: + /// **'System'** + String get themeSettingSystem; + + /// Label for toggling setting to open links with in-app browser + /// + /// In en, this message translates to: + /// **'Open links with in-app browser'** + String get openLinksWithInAppBrowser; + + /// Text to display for a poll when the question is missing + /// + /// In en, this message translates to: + /// **'No question.'** + String get pollWidgetQuestionMissing; + + /// Text to display for a poll when it has no options + /// + /// In en, this message translates to: + /// **'This poll has no options yet.'** + String get pollWidgetOptionsMissing; + + /// Title of setting controlling initial anchor of message list. + /// + /// In en, this message translates to: + /// **'Open message feeds at'** + String get initialAnchorSettingTitle; + + /// Description of setting controlling initial anchor of message list. + /// + /// In en, this message translates to: + /// **'You can choose whether message feeds open at your first unread message or at the newest messages.'** + String get initialAnchorSettingDescription; + + /// Label for a value of setting controlling initial anchor of message list. + /// + /// In en, this message translates to: + /// **'First unread message'** + String get initialAnchorSettingFirstUnreadAlways; + + /// Label for a value of setting controlling initial anchor of message list. + /// + /// In en, this message translates to: + /// **'First unread message in conversation views, newest message elsewhere'** + String get initialAnchorSettingFirstUnreadConversations; + + /// Label for a value of setting controlling initial anchor of message list. + /// + /// In en, this message translates to: + /// **'Newest message'** + String get initialAnchorSettingNewestAlways; + + /// Title of setting controlling which message-list views should mark read on scroll. + /// + /// In en, this message translates to: + /// **'Mark messages as read on scroll'** + String get markReadOnScrollSettingTitle; + + /// Description of setting controlling which message-list views should mark read on scroll. + /// + /// In en, this message translates to: + /// **'When scrolling through messages, should they automatically be marked as read?'** + String get markReadOnScrollSettingDescription; + + /// Label for a value of setting controlling which message-list views should mark read on scroll. + /// + /// In en, this message translates to: + /// **'Always'** + String get markReadOnScrollSettingAlways; + + /// Label for a value of setting controlling which message-list views should mark read on scroll. + /// + /// In en, this message translates to: + /// **'Never'** + String get markReadOnScrollSettingNever; + + /// Label for a value of setting controlling which message-list views should mark read on scroll. + /// + /// In en, this message translates to: + /// **'Only in conversation views'** + String get markReadOnScrollSettingConversations; + + /// Description for a value of setting controlling which message-list views should mark read on scroll. + /// + /// In en, this message translates to: + /// **'Messages will be automatically marked as read only when viewing a single topic or direct message conversation.'** + String get markReadOnScrollSettingConversationsDescription; + + /// Title of settings page for experimental, in-development features + /// + /// In en, this message translates to: + /// **'Experimental features'** + String get experimentalFeatureSettingsPageTitle; + + /// Warning text on settings page for experimental, in-development features + /// + /// In en, this message translates to: + /// **'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'** + String get experimentalFeatureSettingsWarning; + + /// Error title when notification opening fails + /// + /// In en, this message translates to: + /// **'Failed to open notification'** + String get errorNotificationOpenTitle; + + /// Error message when the account associated with the notification could not be found + /// + /// In en, this message translates to: + /// **'The account associated with this notification could not be found.'** + String get errorNotificationOpenAccountNotFound; + + /// Error title when adding a message reaction fails + /// + /// In en, this message translates to: + /// **'Adding reaction failed'** + String get errorReactionAddingFailedTitle; + + /// Error title when removing a message reaction fails + /// + /// In en, this message translates to: + /// **'Removing reaction failed'** + String get errorReactionRemovingFailedTitle; + + /// Error title when sharing content received from other apps fails + /// + /// In en, this message translates to: + /// **'Failed to share content'** + String get errorSharingTitle; + + /// Error title when sharing content received from other apps fails, when there is no account logged in + /// + /// In en, this message translates to: + /// **'There is no account logged in. Please log in to an account and try again.'** + String get errorSharingAccountNotLoggedIn; + + /// Label for a button opening the emoji picker. + /// + /// In en, this message translates to: + /// **'more'** + String get emojiReactionsMore; + + /// Hint text for the emoji picker search text field. + /// + /// In en, this message translates to: + /// **'Search emoji'** + String get emojiPickerSearchEmoji; + + /// Text to show at the start of a message list if there are no earlier messages. + /// + /// In en, this message translates to: + /// **'No earlier messages'** + String get noEarlierMessages; + + /// Label for the button revealing hidden message from a muted sender in message list. + /// + /// In en, this message translates to: + /// **'Reveal message'** + String get revealButtonLabel; + + /// Text to display in place of a muted user's name. + /// + /// In en, this message translates to: + /// **'Muted user'** + String get mutedUser; + + /// Tooltip for button to scroll to bottom. + /// + /// In en, this message translates to: + /// **'Scroll to bottom'** + String get scrollToBottomTooltip; + + /// Placeholder to show in place of the app version when it is unknown. + /// + /// In en, this message translates to: + /// **'(…)'** + String get appVersionUnknownPlaceholder; + + /// The name of Zulip. This should be either 'Zulip' or a transliteration. + /// + /// In en, this message translates to: + /// **'Zulip'** + String get zulipAppTitle; +} + +class _ZulipLocalizationsDelegate + extends LocalizationsDelegate { + const _ZulipLocalizationsDelegate(); + + @override + Future load(Locale locale) { + return SynchronousFuture( + lookupZulipLocalizations(locale), + ); + } + + @override + bool isSupported(Locale locale) => [ + 'ar', + 'de', + 'en', + 'fr', + 'it', + 'ja', + 'nb', + 'pl', + 'ru', + 'sk', + 'sl', + 'uk', + 'zh', + ].contains(locale.languageCode); + + @override + bool shouldReload(_ZulipLocalizationsDelegate old) => false; +} + +ZulipLocalizations lookupZulipLocalizations(Locale locale) { + // Lookup logic when language+script+country codes are specified. + switch (locale.toString()) { + case 'zh_Hans_CN': + return ZulipLocalizationsZhHansCn(); + case 'zh_Hant_TW': + return ZulipLocalizationsZhHantTw(); + } + + // Lookup logic when language+country codes are specified. + switch (locale.languageCode) { + case 'en': + { + switch (locale.countryCode) { + case 'GB': + return ZulipLocalizationsEnGb(); + } + break; + } + } + + // Lookup logic when only language code is specified. + switch (locale.languageCode) { + case 'ar': + return ZulipLocalizationsAr(); + case 'de': + return ZulipLocalizationsDe(); + case 'en': + return ZulipLocalizationsEn(); + case 'fr': + return ZulipLocalizationsFr(); + case 'it': + return ZulipLocalizationsIt(); + case 'ja': + return ZulipLocalizationsJa(); + case 'nb': + return ZulipLocalizationsNb(); + case 'pl': + return ZulipLocalizationsPl(); + case 'ru': + return ZulipLocalizationsRu(); + case 'sk': + return ZulipLocalizationsSk(); + case 'sl': + return ZulipLocalizationsSl(); + case 'uk': + return ZulipLocalizationsUk(); + case 'zh': + return ZulipLocalizationsZh(); + } + + throw FlutterError( + 'ZulipLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' + 'an issue with the localizations generation tool. Please file an issue ' + 'on GitHub with a reproducible sample app and the gen-l10n configuration ' + 'that was used.', + ); +} diff --git a/lib/generated/l10n/zulip_localizations_ar.dart b/lib/generated/l10n/zulip_localizations_ar.dart index 759cd06a01..e894716d35 100644 --- a/lib/generated/l10n/zulip_localizations_ar.dart +++ b/lib/generated/l10n/zulip_localizations_ar.dart @@ -1,1163 +1,1169 @@ -// ignore: unused_import -import 'package:intl/intl.dart' as intl; -import 'zulip_localizations.dart'; - -// ignore_for_file: type=lint - -/// The translations for Arabic (`ar`). -class ZulipLocalizationsAr extends ZulipLocalizations { - ZulipLocalizationsAr([String locale = 'ar']) : super(locale); - - @override - String get aboutPageTitle => 'عن زوليب'; - - @override - String get aboutPageAppVersion => 'نسخة التطبيق'; - - @override - String get aboutPageOpenSourceLicenses => '10.0.151.1'; - - @override - String get aboutPageTapToView => 'اضغط للعرض'; - - @override - String get upgradeWelcomeDialogTitle => 'أهلا بك في تطبيق زوليب الجديد !'; - - @override - String get upgradeWelcomeDialogMessage => - 'You’ll find a familiar experience in a faster, sleeker package.'; - - @override - String get upgradeWelcomeDialogLinkText => - 'Check out the announcement blog post!'; - - @override - String get upgradeWelcomeDialogDismiss => 'هيا بنا'; - - @override - String get chooseAccountPageTitle => 'اختر حساب'; - - @override - String get settingsPageTitle => 'الإعدادات'; - - @override - String get switchAccountButton => 'تبديل الحساب'; - - @override - String tryAnotherAccountMessage(Object url) { - return 'Your account at $url is taking a while to load.'; - } - - @override - String get tryAnotherAccountButton => 'Try another account'; - - @override - String get chooseAccountPageLogOutButton => 'Log out'; - - @override - String get logOutConfirmationDialogTitle => 'Log out?'; - - @override - String get logOutConfirmationDialogMessage => - 'To use this account in the future, you will have to re-enter the URL for your organization and your account information.'; - - @override - String get logOutConfirmationDialogConfirmButton => 'Log out'; - - @override - String get chooseAccountButtonAddAnAccount => 'Add an account'; - - @override - String get navButtonAllChannels => 'All channels'; - - @override - String get allChannelsPageTitle => 'All channels'; - - @override - String get allChannelsEmptyPlaceholder => - 'There are no channels you can view in this organization.'; - - @override - String get profileButtonSendDirectMessage => 'Send direct message'; - - @override - String get errorCouldNotShowUserProfile => 'Could not show user profile.'; - - @override - String get permissionsNeededTitle => 'Permissions needed'; - - @override - String get permissionsNeededOpenSettings => 'Open settings'; - - @override - String get permissionsDeniedCameraAccess => - 'To upload an image, please grant Zulip additional permissions in Settings.'; - - @override - String get permissionsDeniedReadExternalStorage => - 'To upload files, please grant Zulip additional permissions in Settings.'; - - @override - String get actionSheetOptionSubscribe => 'Subscribe'; - - @override - String get subscribeFailedTitle => 'Failed to subscribe'; - - @override - String get actionSheetOptionMarkChannelAsRead => 'Mark channel as read'; - - @override - String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; - - @override - String get actionSheetOptionListOfTopics => 'List of topics'; - - @override - String get actionSheetOptionChannelFeed => 'Channel feed'; - - @override - String get actionSheetOptionUnsubscribe => 'Unsubscribe'; - - @override - String unsubscribeConfirmationDialogTitle(String channelName) { - return 'Unsubscribe from $channelName?'; - } - - @override - String get unsubscribeConfirmationDialogMessageCannotResubscribe => - 'Once you leave this channel, you will not be able to rejoin.'; - - @override - String get unsubscribeConfirmationDialogConfirmButton => 'Unsubscribe'; - - @override - String get unsubscribeFailedTitle => 'Failed to unsubscribe'; - - @override - String get actionSheetOptionMuteTopic => 'Mute topic'; - - @override - String get actionSheetOptionUnmuteTopic => 'Unmute topic'; - - @override - String get actionSheetOptionFollowTopic => 'Follow topic'; - - @override - String get actionSheetOptionUnfollowTopic => 'Unfollow topic'; - - @override - String get actionSheetOptionResolveTopic => 'Mark as resolved'; - - @override - String get actionSheetOptionUnresolveTopic => 'Mark as unresolved'; - - @override - String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved'; - - @override - String get errorUnresolveTopicFailedTitle => - 'Failed to mark topic as unresolved'; - - @override - String get actionSheetOptionSeeWhoReacted => 'See who reacted'; - - @override - String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; - - @override - String seeWhoReactedSheetHeaderLabel(int num) { - return 'Emoji reactions ($num total)'; - } - - @override - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num votes', - one: '1 vote', - ); - return '$emojiName: $_temp0'; - } - - @override - String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Votes for $emojiName ($num)'; - } - - @override - String get actionSheetOptionViewReadReceipts => 'View read receipts'; - - @override - String get actionSheetReadReceipts => 'Read receipts'; - - @override - String actionSheetReadReceiptsReadCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: 'This message has been read by $count people:', - one: 'This message has been read by $count person:', - ); - return '$_temp0'; - } - - @override - String get actionSheetReadReceiptsZeroReadCount => - 'No one has read this message yet.'; - - @override - String get actionSheetReadReceiptsErrorReadCount => - 'Failed to load read receipts.'; - - @override - String get actionSheetOptionCopyMessageText => 'Copy message text'; - - @override - String get actionSheetOptionCopyMessageLink => 'Copy link to message'; - - @override - String get actionSheetOptionMarkAsUnread => 'Mark as unread from here'; - - @override - String get actionSheetOptionHideMutedMessage => 'Hide muted message again'; - - @override - String get actionSheetOptionShare => 'Share'; - - @override - String get actionSheetOptionQuoteMessage => 'Quote message'; - - @override - String get actionSheetOptionStarMessage => 'Star message'; - - @override - String get actionSheetOptionUnstarMessage => 'Unstar message'; - - @override - String get actionSheetOptionEditMessage => 'Edit message'; - - @override - String get actionSheetOptionDeleteMessage => 'Delete message'; - - @override - String get deleteMessageConfirmationDialogTitle => 'Delete message?'; - - @override - String get deleteMessageConfirmationDialogMessage => - 'Deleting a message permanently removes it for everyone.'; - - @override - String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; - - @override - String get errorDeleteMessageFailedTitle => 'Failed to delete message'; - - @override - String get actionSheetOptionMarkTopicAsRead => 'Mark topic as read'; - - @override - String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; - - @override - String get errorWebAuthOperationalErrorTitle => 'Something went wrong'; - - @override - String get errorWebAuthOperationalError => 'An unexpected error occurred.'; - - @override - String get errorAccountLoggedInTitle => 'Account already logged in'; - - @override - String errorAccountLoggedIn(String email, String server) { - return 'The account $email at $server is already in your list of accounts.'; - } - - @override - String get errorCouldNotFetchMessageSource => - 'Could not fetch message source.'; - - @override - String get errorCopyingFailed => 'Copying failed'; - - @override - String errorFailedToUploadFileTitle(String filename) { - return 'Failed to upload file: $filename'; - } - - @override - String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size MiB'; - } - - @override - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num files are', - one: 'File is', - ); - return '$_temp0 larger than the server\'s limit of $maxFileUploadSizeMib MiB and will not be uploaded:\n\n$listMessage'; - } - - @override - String errorFilesTooLargeTitle(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: 'Files', - one: 'File', - ); - return '$_temp0 too large'; - } - - @override - String get errorLoginInvalidInputTitle => 'Invalid input'; - - @override - String get errorLoginFailedTitle => 'Login failed'; - - @override - String get errorMessageNotSent => 'Message not sent'; - - @override - String get errorMessageEditNotSaved => 'Message not saved'; - - @override - String errorLoginCouldNotConnect(String url) { - return 'Failed to connect to server:\n$url'; - } - - @override - String get errorCouldNotConnectTitle => 'Could not connect'; - - @override - String get errorMessageDoesNotSeemToExist => - 'That message does not seem to exist.'; - - @override - String get errorQuotationFailed => 'Quotation failed'; - - @override - String errorServerMessage(String message) { - return 'The server said:\n\n$message'; - } - - @override - String get errorConnectingToServerShort => - 'Error connecting to Zulip. Retrying…'; - - @override - String errorConnectingToServerDetails(String serverUrl, String error) { - return 'Error connecting to Zulip at $serverUrl. Will retry:\n\n$error'; - } - - @override - String get errorHandlingEventTitle => - 'Error handling a Zulip event. Retrying connection…'; - - @override - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ) { - return 'Error handling a Zulip event from $serverUrl; will retry.\n\nError: $error\n\nEvent: $event'; - } - - @override - String get errorCouldNotOpenLinkTitle => 'Unable to open link'; - - @override - String errorCouldNotOpenLink(String url) { - return 'Link could not be opened: $url'; - } - - @override - String get errorMuteTopicFailed => 'Failed to mute topic'; - - @override - String get errorUnmuteTopicFailed => 'Failed to unmute topic'; - - @override - String get errorFollowTopicFailed => 'Failed to follow topic'; - - @override - String get errorUnfollowTopicFailed => 'Failed to unfollow topic'; - - @override - String get errorSharingFailed => 'Sharing failed'; - - @override - String get errorStarMessageFailedTitle => 'Failed to star message'; - - @override - String get errorUnstarMessageFailedTitle => 'Failed to unstar message'; - - @override - String get errorCouldNotEditMessageTitle => 'Could not edit message'; - - @override - String get successLinkCopied => 'Link copied'; - - @override - String get successMessageTextCopied => 'Message text copied'; - - @override - String get successMessageLinkCopied => 'Message link copied'; - - @override - String get successTopicLinkCopied => 'Topic link copied'; - - @override - String get successChannelLinkCopied => 'Channel link copied'; - - @override - String get errorBannerDeactivatedDmLabel => - 'You cannot send messages to deactivated users.'; - - @override - String get errorBannerCannotPostInChannelLabel => - 'You do not have permission to post in this channel.'; - - @override - String get composeBoxBannerLabelUnsubscribedWhenCannotSend => - 'New messages will not appear automatically.'; - - @override - String get composeBoxBannerButtonRefresh => 'Refresh'; - - @override - String get composeBoxBannerButtonSubscribe => 'Subscribe'; - - @override - String get composeBoxBannerLabelEditMessage => 'Edit message'; - - @override - String get composeBoxBannerButtonCancel => 'Cancel'; - - @override - String get composeBoxBannerButtonSave => 'Save'; - - @override - String get editAlreadyInProgressTitle => 'Cannot edit message'; - - @override - String get editAlreadyInProgressMessage => - 'An edit is already in progress. Please wait for it to complete.'; - - @override - String get savingMessageEditLabel => 'SAVING EDIT…'; - - @override - String get savingMessageEditFailedLabel => 'EDIT NOT SAVED'; - - @override - String get discardDraftConfirmationDialogTitle => - 'Discard the message you’re writing?'; - - @override - String get discardDraftForEditConfirmationDialogMessage => - 'When you edit a message, the content that was previously in the compose box is discarded.'; - - @override - String get discardDraftForOutboxConfirmationDialogMessage => - 'When you restore an unsent message, the content that was previously in the compose box is discarded.'; - - @override - String get discardDraftConfirmationDialogConfirmButton => 'Discard'; - - @override - String get composeBoxAttachFilesTooltip => 'Attach files'; - - @override - String get composeBoxAttachMediaTooltip => 'Attach images or videos'; - - @override - String get composeBoxAttachFromCameraTooltip => 'Take a photo'; - - @override - String get composeBoxGenericContentHint => 'Type a message'; - - @override - String get newDmSheetComposeButtonLabel => 'Compose'; - - @override - String get newDmSheetScreenTitle => 'New DM'; - - @override - String get newDmFabButtonLabel => 'New DM'; - - @override - String get newDmSheetSearchHintEmpty => 'Add one or more users'; - - @override - String get newDmSheetSearchHintSomeSelected => 'Add another user…'; - - @override - String get newDmSheetNoUsersFound => 'No users found'; - - @override - String composeBoxDmContentHint(String user) { - return 'Message @$user'; - } - - @override - String get composeBoxGroupDmContentHint => 'Message group'; - - @override - String get composeBoxSelfDmContentHint => 'Write yourself a note'; - - @override - String composeBoxChannelContentHint(String destination) { - return 'Message $destination'; - } - - @override - String get preparingEditMessageContentInput => 'Preparing…'; - - @override - String get composeBoxSendTooltip => 'Send'; - - @override - String get unknownChannelName => '(unknown channel)'; - - @override - String get composeBoxTopicHintText => 'Topic'; - - @override - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { - return 'Enter a topic (skip for “$defaultTopicName”)'; - } - - @override - String composeBoxUploadingFilename(String filename) { - return 'Uploading $filename…'; - } - - @override - String composeBoxLoadingMessage(int messageId) { - return '(loading message $messageId)'; - } - - @override - String get unknownUserName => '(unknown user)'; - - @override - String get dmsWithYourselfPageTitle => 'DMs with yourself'; - - @override - String messageListGroupYouAndOthers(String others) { - return 'You and $others'; - } - - @override - String dmsWithOthersPageTitle(String others) { - return 'DMs with $others'; - } - - @override - String get emptyMessageList => 'There are no messages here.'; - - @override - String get emptyMessageListSearch => 'No search results.'; - - @override - String get messageListGroupYouWithYourself => 'Messages with yourself'; - - @override - String get contentValidationErrorTooLong => - 'Message length shouldn\'t be greater than 10000 characters.'; - - @override - String get contentValidationErrorEmpty => 'You have nothing to send!'; - - @override - String get contentValidationErrorQuoteAndReplyInProgress => - 'Please wait for the quotation to complete.'; - - @override - String get contentValidationErrorUploadInProgress => - 'Please wait for the upload to complete.'; - - @override - String get dialogCancel => 'Cancel'; - - @override - String get dialogContinue => 'Continue'; - - @override - String get dialogClose => 'Close'; - - @override - String get errorDialogLearnMore => 'Learn more'; - - @override - String get errorDialogContinue => 'OK'; - - @override - String get errorDialogTitle => 'Error'; - - @override - String get snackBarDetails => 'Details'; - - @override - String get lightboxCopyLinkTooltip => 'Copy link'; - - @override - String get lightboxVideoCurrentPosition => 'Current position'; - - @override - String get lightboxVideoDuration => 'Video duration'; - - @override - String get loginPageTitle => 'Log in'; - - @override - String get loginFormSubmitLabel => 'Log in'; - - @override - String get loginMethodDivider => 'OR'; - - @override - String signInWithFoo(String method) { - return 'Sign in with $method'; - } - - @override - String get loginAddAnAccountPageTitle => 'Add an account'; - - @override - String get loginServerUrlLabel => 'Your Zulip server URL'; - - @override - String get loginHidePassword => 'Hide password'; - - @override - String get loginEmailLabel => 'Email address'; - - @override - String get loginErrorMissingEmail => 'Please enter your email.'; - - @override - String get loginPasswordLabel => 'Password'; - - @override - String get loginErrorMissingPassword => 'Please enter your password.'; - - @override - String get loginUsernameLabel => 'Username'; - - @override - String get loginErrorMissingUsername => 'Please enter your username.'; - - @override - String get topicValidationErrorTooLong => - 'Topic length shouldn\'t be greater than 60 characters.'; - - @override - String get topicValidationErrorMandatoryButEmpty => - 'Topics are required in this organization.'; - - @override - String get errorContentNotInsertedTitle => 'Content not inserted'; - - @override - String get errorContentToInsertIsEmpty => - 'The file to be inserted is empty or cannot be accessed.'; - - @override - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ) { - return '$url is running Zulip Server $zulipVersion, which is unsupported. The minimum supported version is Zulip Server $minSupportedZulipVersion.'; - } - - @override - String errorInvalidApiKeyMessage(String url) { - return 'Your account at $url could not be authenticated. Please try logging in again or use another account.'; - } - - @override - String get errorInvalidResponse => 'The server sent an invalid response.'; - - @override - String get errorNetworkRequestFailed => 'Network request failed'; - - @override - String errorMalformedResponse(int httpStatus) { - return 'Server gave malformed response; HTTP status $httpStatus'; - } - - @override - String errorMalformedResponseWithCause(int httpStatus, String details) { - return 'Server gave malformed response; HTTP status $httpStatus; $details'; - } - - @override - String errorRequestFailed(int httpStatus) { - return 'Network request failed: HTTP status $httpStatus'; - } - - @override - String get errorVideoPlayerFailed => 'Unable to play the video.'; - - @override - String get serverUrlValidationErrorEmpty => 'Please enter a URL.'; - - @override - String get serverUrlValidationErrorInvalidUrl => 'Please enter a valid URL.'; - - @override - String get serverUrlValidationErrorNoUseEmail => - 'Please enter the server URL, not your email.'; - - @override - String get serverUrlValidationErrorUnsupportedScheme => - 'The server URL must start with http:// or https://.'; - - @override - String get spoilerDefaultHeaderText => 'Spoiler'; - - @override - String get markAllAsReadLabel => 'Mark all messages as read'; - - @override - String markAsReadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num messages', - one: '1 message', - ); - return 'Marked $_temp0 as read.'; - } - - @override - String get markAsReadInProgress => 'Marking messages as read…'; - - @override - String get errorMarkAsReadFailedTitle => 'Mark as read failed'; - - @override - String markAsUnreadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num messages', - one: '1 message', - ); - return 'Marked $_temp0 as unread.'; - } - - @override - String get markAsUnreadInProgress => 'Marking messages as unread…'; - - @override - String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed'; - - @override - String get today => 'Today'; - - @override - String get yesterday => 'Yesterday'; - - @override - String get userActiveNow => 'Active now'; - - @override - String get userIdle => 'Idle'; - - @override - String userActiveMinutesAgo(int minutes) { - String _temp0 = intl.Intl.pluralLogic( - minutes, - locale: localeName, - other: '$minutes minutes', - one: '1 minute', - ); - return 'Active $_temp0 ago'; - } - - @override - String userActiveHoursAgo(int hours) { - String _temp0 = intl.Intl.pluralLogic( - hours, - locale: localeName, - other: '$hours hours', - one: '1 hour', - ); - return 'Active $_temp0 ago'; - } - - @override - String get userActiveYesterday => 'Active yesterday'; - - @override - String userActiveDaysAgo(int days) { - String _temp0 = intl.Intl.pluralLogic( - days, - locale: localeName, - other: '$days days', - one: '1 day', - ); - return 'Active $_temp0 ago'; - } - - @override - String userActiveDate(String date) { - return 'Active $date'; - } - - @override - String get userNotActiveInYear => 'Not active in the last year'; - - @override - String get invisibleMode => 'Invisible mode'; - - @override - String get turnOnInvisibleModeErrorTitle => - 'Error turning on invisible mode. Please try again.'; - - @override - String get turnOffInvisibleModeErrorTitle => - 'Error turning off invisible mode. Please try again.'; - - @override - String get userRoleOwner => 'Owner'; - - @override - String get userRoleAdministrator => 'Administrator'; - - @override - String get userRoleModerator => 'Moderator'; - - @override - String get userRoleMember => 'Member'; - - @override - String get userRoleGuest => 'Guest'; - - @override - String get userRoleUnknown => 'Unknown'; - - @override - String get statusButtonLabelStatusSet => 'Status'; - - @override - String get statusButtonLabelStatusUnset => 'Set status'; - - @override - String get noStatusText => 'No status text'; - - @override - String get setStatusPageTitle => 'Set status'; - - @override - String get statusClearButtonLabel => 'Clear'; - - @override - String get statusSaveButtonLabel => 'Save'; - - @override - String get statusTextHint => 'Your status'; - - @override - String get userStatusBusy => 'Busy'; - - @override - String get userStatusInAMeeting => 'In a meeting'; - - @override - String get userStatusCommuting => 'Commuting'; - - @override - String get userStatusOutSick => 'Out sick'; - - @override - String get userStatusVacationing => 'Vacationing'; - - @override - String get userStatusWorkingRemotely => 'Working remotely'; - - @override - String get userStatusAtTheOffice => 'At the office'; - - @override - String get updateStatusErrorTitle => - 'Error updating user status. Please try again.'; - - @override - String get searchMessagesPageTitle => 'Search'; - - @override - String get searchMessagesHintText => 'Search'; - - @override - String get searchMessagesClearButtonTooltip => 'Clear'; - - @override - String get inboxPageTitle => 'Inbox'; - - @override - String get inboxEmptyPlaceholder => - 'There are no unread messages in your inbox. Use the buttons below to view the combined feed or list of channels.'; - - @override - String get recentDmConversationsPageTitle => 'Direct messages'; - - @override - String get recentDmConversationsSectionHeader => 'Direct messages'; - - @override - String get recentDmConversationsEmptyPlaceholder => - 'You have no direct messages yet! Why not start the conversation?'; - - @override - String get combinedFeedPageTitle => 'Combined feed'; - - @override - String get mentionsPageTitle => 'Mentions'; - - @override - String get starredMessagesPageTitle => 'Starred messages'; - - @override - String get channelsPageTitle => 'Channels'; - - @override - String get channelsEmptyPlaceholder => - 'You’re not subscribed to any channels yet.'; - - @override - String channelsEmptyPlaceholderWithAllChannelsLink( - String allChannelsPageTitle, - ) { - return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; - } - - @override - String get sharePageTitle => 'Share'; - - @override - String get mainMenuMyProfile => 'My profile'; - - @override - String get topicsButtonTooltip => 'Topics'; - - @override - String get channelFeedButtonTooltip => 'Channel feed'; - - @override - String notifGroupDmConversationLabel(String senderFullName, int numOthers) { - String _temp0 = intl.Intl.pluralLogic( - numOthers, - locale: localeName, - other: '$numOthers others', - one: '1 other', - ); - return '$senderFullName to you and $_temp0'; - } - - @override - String get pinnedSubscriptionsLabel => 'Pinned'; - - @override - String get unpinnedSubscriptionsLabel => 'Unpinned'; - - @override - String get notifSelfUser => 'You'; - - @override - String get reactedEmojiSelfUser => 'You'; - - @override - String get reactionChipsLabel => 'Reactions'; - - @override - String reactionChipLabel(String emojiName, String votes) { - return '$emojiName: $votes'; - } - - @override - String reactionChipVotesYouAndOthers(int otherUsersCount) { - String _temp0 = intl.Intl.pluralLogic( - otherUsersCount, - locale: localeName, - other: 'You and $otherUsersCount others', - one: 'You and 1 other', - ); - return '$_temp0'; - } - - @override - String onePersonTyping(String typist) { - return '$typist is typing…'; - } - - @override - String twoPeopleTyping(String typist, String otherTypist) { - return '$typist and $otherTypist are typing…'; - } - - @override - String get manyPeopleTyping => 'Several people are typing…'; - - @override - String get wildcardMentionAll => 'الجميع'; - - @override - String get wildcardMentionEveryone => 'الكل'; - - @override - String get wildcardMentionChannel => 'القناة'; - - @override - String get wildcardMentionStream => 'الدفق'; - - @override - String get wildcardMentionTopic => 'الموضوع'; - - @override - String get wildcardMentionChannelDescription => 'إخطار القناة'; - - @override - String get wildcardMentionStreamDescription => 'إخطار الدفق'; - - @override - String get wildcardMentionAllDmDescription => 'إخطار المستلمين'; - - @override - String get wildcardMentionTopicDescription => 'إخطار الموضوع'; - - @override - String get messageIsEditedLabel => 'EDITED'; - - @override - String get messageIsMovedLabel => 'MOVED'; - - @override - String get messageNotSentLabel => 'MESSAGE NOT SENT'; - - @override - String pollVoterNames(String voterNames) { - return '($voterNames)'; - } - - @override - String get themeSettingTitle => 'THEME'; - - @override - String get themeSettingDark => 'Dark'; - - @override - String get themeSettingLight => 'Light'; - - @override - String get themeSettingSystem => 'System'; - - @override - String get openLinksWithInAppBrowser => 'Open links with in-app browser'; - - @override - String get pollWidgetQuestionMissing => 'No question.'; - - @override - String get pollWidgetOptionsMissing => 'This poll has no options yet.'; - - @override - String get initialAnchorSettingTitle => 'Open message feeds at'; - - @override - String get initialAnchorSettingDescription => - 'You can choose whether message feeds open at your first unread message or at the newest messages.'; - - @override - String get initialAnchorSettingFirstUnreadAlways => 'First unread message'; - - @override - String get initialAnchorSettingFirstUnreadConversations => - 'First unread message in conversation views, newest message elsewhere'; - - @override - String get initialAnchorSettingNewestAlways => 'Newest message'; - - @override - String get markReadOnScrollSettingTitle => 'Mark messages as read on scroll'; - - @override - String get markReadOnScrollSettingDescription => - 'When scrolling through messages, should they automatically be marked as read?'; - - @override - String get markReadOnScrollSettingAlways => 'Always'; - - @override - String get markReadOnScrollSettingNever => 'Never'; - - @override - String get markReadOnScrollSettingConversations => - 'Only in conversation views'; - - @override - String get markReadOnScrollSettingConversationsDescription => - 'Messages will be automatically marked as read only when viewing a single topic or direct message conversation.'; - - @override - String get experimentalFeatureSettingsPageTitle => 'Experimental features'; - - @override - String get experimentalFeatureSettingsWarning => - 'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'; - - @override - String get errorNotificationOpenTitle => 'Failed to open notification'; - - @override - String get errorNotificationOpenAccountNotFound => - 'The account associated with this notification could not be found.'; - - @override - String get errorReactionAddingFailedTitle => 'Adding reaction failed'; - - @override - String get errorReactionRemovingFailedTitle => 'Removing reaction failed'; - - @override - String get errorSharingTitle => 'Failed to share content'; - - @override - String get errorSharingAccountNotLoggedIn => - 'There is no account logged in. Please log in to an account and try again.'; - - @override - String get emojiReactionsMore => 'more'; - - @override - String get emojiPickerSearchEmoji => 'Search emoji'; - - @override - String get noEarlierMessages => 'No earlier messages'; - - @override - String get revealButtonLabel => 'Reveal message'; - - @override - String get mutedUser => 'Muted user'; - - @override - String get scrollToBottomTooltip => 'Scroll to bottom'; - - @override - String get appVersionUnknownPlaceholder => '(…)'; - - @override - String get zulipAppTitle => 'Zulip'; -} +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'zulip_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for Arabic (`ar`). +class ZulipLocalizationsAr extends ZulipLocalizations { + ZulipLocalizationsAr([String locale = 'ar']) : super(locale); + + @override + String get aboutPageTitle => 'عن زوليب'; + + @override + String get aboutPageAppVersion => 'نسخة التطبيق'; + + @override + String get aboutPageOpenSourceLicenses => '10.0.151.1'; + + @override + String get aboutPageTapToView => 'اضغط للعرض'; + + @override + String get upgradeWelcomeDialogTitle => 'أهلا بك في تطبيق زوليب الجديد !'; + + @override + String get upgradeWelcomeDialogMessage => + 'You’ll find a familiar experience in a faster, sleeker package.'; + + @override + String get upgradeWelcomeDialogLinkText => + 'Check out the announcement blog post!'; + + @override + String get upgradeWelcomeDialogDismiss => 'هيا بنا'; + + @override + String get chooseAccountPageTitle => 'اختر حساب'; + + @override + String get settingsPageTitle => 'الإعدادات'; + + @override + String get switchAccountButton => 'تبديل الحساب'; + + @override + String tryAnotherAccountMessage(Object url) { + return 'Your account at $url is taking a while to load.'; + } + + @override + String get tryAnotherAccountButton => 'Try another account'; + + @override + String get chooseAccountPageLogOutButton => 'Log out'; + + @override + String get logOutConfirmationDialogTitle => 'Log out?'; + + @override + String get logOutConfirmationDialogMessage => + 'To use this account in the future, you will have to re-enter the URL for your organization and your account information.'; + + @override + String get logOutConfirmationDialogConfirmButton => 'Log out'; + + @override + String get chooseAccountButtonAddAnAccount => 'Add an account'; + + @override + String get navButtonAllChannels => 'All channels'; + + @override + String get allChannelsPageTitle => 'All channels'; + + @override + String get allChannelsEmptyPlaceholder => + 'There are no channels you can view in this organization.'; + + @override + String get profileButtonSendDirectMessage => 'Send direct message'; + + @override + String get errorCouldNotShowUserProfile => 'Could not show user profile.'; + + @override + String get permissionsNeededTitle => 'Permissions needed'; + + @override + String get permissionsNeededOpenSettings => 'Open settings'; + + @override + String get permissionsDeniedCameraAccess => + 'To upload an image, please grant Zulip additional permissions in Settings.'; + + @override + String get permissionsDeniedReadExternalStorage => + 'To upload files, please grant Zulip additional permissions in Settings.'; + + @override + String get actionSheetOptionSubscribe => 'Subscribe'; + + @override + String get subscribeFailedTitle => 'Failed to subscribe'; + + @override + String get actionSheetOptionMarkChannelAsRead => 'Mark channel as read'; + + @override + String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; + + @override + String get actionSheetOptionListOfTopics => 'List of topics'; + + @override + String get actionSheetOptionChannelFeed => 'Channel feed'; + + @override + String get actionSheetOptionUnsubscribe => 'Unsubscribe'; + + @override + String unsubscribeConfirmationDialogTitle(String channelName) { + return 'Unsubscribe from $channelName?'; + } + + @override + String get unsubscribeConfirmationDialogMessageCannotResubscribe => + 'Once you leave this channel, you will not be able to rejoin.'; + + @override + String get unsubscribeConfirmationDialogConfirmButton => 'Unsubscribe'; + + @override + String get unsubscribeFailedTitle => 'Failed to unsubscribe'; + + @override + String get actionSheetOptionMuteTopic => 'Mute topic'; + + @override + String get actionSheetOptionUnmuteTopic => 'Unmute topic'; + + @override + String get actionSheetOptionFollowTopic => 'Follow topic'; + + @override + String get actionSheetOptionUnfollowTopic => 'Unfollow topic'; + + @override + String get actionSheetOptionResolveTopic => 'Mark as resolved'; + + @override + String get actionSheetOptionUnresolveTopic => 'Mark as unresolved'; + + @override + String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved'; + + @override + String get errorUnresolveTopicFailedTitle => + 'Failed to mark topic as unresolved'; + + @override + String get actionSheetOptionSeeWhoReacted => 'See who reacted'; + + @override + String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; + + @override + String seeWhoReactedSheetHeaderLabel(int num) { + return 'Emoji reactions ($num total)'; + } + + @override + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num votes', + one: '1 vote', + ); + return '$emojiName: $_temp0'; + } + + @override + String seeWhoReactedSheetUserListLabel(String emojiName, int num) { + return 'Votes for $emojiName ($num)'; + } + + @override + String get actionSheetOptionViewReadReceipts => 'View read receipts'; + + @override + String get actionSheetReadReceipts => 'Read receipts'; + + @override + String actionSheetReadReceiptsReadCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: 'This message has been read by $count people:', + one: 'This message has been read by $count person:', + ); + return '$_temp0'; + } + + @override + String get actionSheetReadReceiptsZeroReadCount => + 'No one has read this message yet.'; + + @override + String get actionSheetReadReceiptsErrorReadCount => + 'Failed to load read receipts.'; + + @override + String get actionSheetOptionCopyMessageText => 'Copy message text'; + + @override + String get actionSheetOptionCopyMessageLink => 'Copy link to message'; + + @override + String get actionSheetOptionMarkAsUnread => 'Mark as unread from here'; + + @override + String get actionSheetOptionHideMutedMessage => 'Hide muted message again'; + + @override + String get actionSheetOptionShare => 'Share'; + + @override + String get actionSheetOptionQuoteMessage => 'Quote message'; + + @override + String get actionSheetOptionStarMessage => 'Star message'; + + @override + String get actionSheetOptionUnstarMessage => 'Unstar message'; + + @override + String get actionSheetOptionEditMessage => 'Edit message'; + + @override + String get actionSheetOptionDeleteMessage => 'Delete message'; + + @override + String get deleteMessageConfirmationDialogTitle => 'Delete message?'; + + @override + String get deleteMessageConfirmationDialogMessage => + 'Deleting a message permanently removes it for everyone.'; + + @override + String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; + + @override + String get errorDeleteMessageFailedTitle => 'Failed to delete message'; + + @override + String get actionSheetOptionMarkTopicAsRead => 'Mark topic as read'; + + @override + String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; + + @override + String get errorWebAuthOperationalErrorTitle => 'Something went wrong'; + + @override + String get errorWebAuthOperationalError => 'An unexpected error occurred.'; + + @override + String get errorAccountLoggedInTitle => 'Account already logged in'; + + @override + String errorAccountLoggedIn(String email, String server) { + return 'The account $email at $server is already in your list of accounts.'; + } + + @override + String get errorCouldNotFetchMessageSource => + 'Could not fetch message source.'; + + @override + String get errorCopyingFailed => 'Copying failed'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return 'Failed to upload file: $filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename: $size MiB'; + } + + @override + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num files are', + one: 'File is', + ); + return '$_temp0 larger than the server\'s limit of $maxFileUploadSizeMib MiB and will not be uploaded:\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: 'Files', + one: 'File', + ); + return '$_temp0 too large'; + } + + @override + String get errorLoginInvalidInputTitle => 'Invalid input'; + + @override + String get errorLoginFailedTitle => 'Login failed'; + + @override + String get errorMessageNotSent => 'Message not sent'; + + @override + String get errorMessageEditNotSaved => 'Message not saved'; + + @override + String errorLoginCouldNotConnect(String url) { + return 'Failed to connect to server:\n$url'; + } + + @override + String get errorCouldNotConnectTitle => 'Could not connect'; + + @override + String get errorMessageDoesNotSeemToExist => + 'That message does not seem to exist.'; + + @override + String get errorQuotationFailed => 'Quotation failed'; + + @override + String errorServerMessage(String message) { + return 'The server said:\n\n$message'; + } + + @override + String get errorConnectingToServerShort => + 'Error connecting to Zulip. Retrying…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return 'Error connecting to Zulip at $serverUrl. Will retry:\n\n$error'; + } + + @override + String get errorHandlingEventTitle => + 'Error handling a Zulip event. Retrying connection…'; + + @override + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ) { + return 'Error handling a Zulip event from $serverUrl; will retry.\n\nError: $error\n\nEvent: $event'; + } + + @override + String get errorCouldNotOpenLinkTitle => 'Unable to open link'; + + @override + String errorCouldNotOpenLink(String url) { + return 'Link could not be opened: $url'; + } + + @override + String get errorMuteTopicFailed => 'Failed to mute topic'; + + @override + String get errorUnmuteTopicFailed => 'Failed to unmute topic'; + + @override + String get errorFollowTopicFailed => 'Failed to follow topic'; + + @override + String get errorUnfollowTopicFailed => 'Failed to unfollow topic'; + + @override + String get errorSharingFailed => 'Sharing failed'; + + @override + String get errorStarMessageFailedTitle => 'Failed to star message'; + + @override + String get errorUnstarMessageFailedTitle => 'Failed to unstar message'; + + @override + String get errorCouldNotEditMessageTitle => 'Could not edit message'; + + @override + String get successLinkCopied => 'Link copied'; + + @override + String get successMessageTextCopied => 'Message text copied'; + + @override + String get successMessageLinkCopied => 'Message link copied'; + + @override + String get successTopicLinkCopied => 'Topic link copied'; + + @override + String get successChannelLinkCopied => 'Channel link copied'; + + @override + String get errorBannerDeactivatedDmLabel => + 'You cannot send messages to deactivated users.'; + + @override + String get errorBannerCannotPostInChannelLabel => + 'You do not have permission to post in this channel.'; + + @override + String get composeBoxBannerLabelUnsubscribedWhenCannotSend => + 'New messages will not appear automatically.'; + + @override + String get composeBoxBannerButtonRefresh => 'Refresh'; + + @override + String get composeBoxBannerButtonSubscribe => 'Subscribe'; + + @override + String get composeBoxBannerLabelEditMessage => 'Edit message'; + + @override + String get composeBoxBannerButtonCancel => 'Cancel'; + + @override + String get composeBoxBannerButtonSave => 'Save'; + + @override + String get editAlreadyInProgressTitle => 'Cannot edit message'; + + @override + String get editAlreadyInProgressMessage => + 'An edit is already in progress. Please wait for it to complete.'; + + @override + String get savingMessageEditLabel => 'SAVING EDIT…'; + + @override + String get savingMessageEditFailedLabel => 'EDIT NOT SAVED'; + + @override + String get discardDraftConfirmationDialogTitle => + 'Discard the message you’re writing?'; + + @override + String get discardDraftForEditConfirmationDialogMessage => + 'When you edit a message, the content that was previously in the compose box is discarded.'; + + @override + String get discardDraftForOutboxConfirmationDialogMessage => + 'When you restore an unsent message, the content that was previously in the compose box is discarded.'; + + @override + String get discardDraftConfirmationDialogConfirmButton => 'Discard'; + + @override + String get composeBoxAttachFilesTooltip => 'Attach files'; + + @override + String get composeBoxAttachMediaTooltip => 'Attach images or videos'; + + @override + String get composeBoxAttachFromCameraTooltip => 'Take a photo'; + + @override + String get composeBoxAttachFromVideoCallTooltip => 'Attach a video call'; + + @override + String get composeBoxGenericContentHint => 'Type a message'; + + @override + String get newDmSheetComposeButtonLabel => 'Compose'; + + @override + String get newDmSheetScreenTitle => 'New DM'; + + @override + String get newDmFabButtonLabel => 'New DM'; + + @override + String get newDmSheetSearchHintEmpty => 'Add one or more users'; + + @override + String get newDmSheetSearchHintSomeSelected => 'Add another user…'; + + @override + String get newDmSheetNoUsersFound => 'No users found'; + + @override + String composeBoxDmContentHint(String user) { + return 'Message @$user'; + } + + @override + String get composeBoxGroupDmContentHint => 'Message group'; + + @override + String get composeBoxSelfDmContentHint => 'Write yourself a note'; + + @override + String composeBoxChannelContentHint(String destination) { + return 'Message $destination'; + } + + @override + String get preparingEditMessageContentInput => 'Preparing…'; + + @override + String get composeBoxSendTooltip => 'Send'; + + @override + String get unknownChannelName => '(unknown channel)'; + + @override + String get composeBoxTopicHintText => 'Topic'; + + @override + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { + return 'Enter a topic (skip for “$defaultTopicName”)'; + } + + @override + String composeBoxUploadingFilename(String filename) { + return 'Uploading $filename…'; + } + + @override + String get composeBoxUploadedVideoCallUrl => 'Join video call.'; + + @override + String composeBoxLoadingMessage(int messageId) { + return '(loading message $messageId)'; + } + + @override + String get unknownUserName => '(unknown user)'; + + @override + String get dmsWithYourselfPageTitle => 'DMs with yourself'; + + @override + String messageListGroupYouAndOthers(String others) { + return 'You and $others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return 'DMs with $others'; + } + + @override + String get emptyMessageList => 'There are no messages here.'; + + @override + String get emptyMessageListSearch => 'No search results.'; + + @override + String get messageListGroupYouWithYourself => 'Messages with yourself'; + + @override + String get contentValidationErrorTooLong => + 'Message length shouldn\'t be greater than 10000 characters.'; + + @override + String get contentValidationErrorEmpty => 'You have nothing to send!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => + 'Please wait for the quotation to complete.'; + + @override + String get contentValidationErrorUploadInProgress => + 'Please wait for the upload to complete.'; + + @override + String get dialogCancel => 'Cancel'; + + @override + String get dialogContinue => 'Continue'; + + @override + String get dialogClose => 'Close'; + + @override + String get errorDialogLearnMore => 'Learn more'; + + @override + String get errorDialogContinue => 'OK'; + + @override + String get errorDialogTitle => 'Error'; + + @override + String get snackBarDetails => 'Details'; + + @override + String get lightboxCopyLinkTooltip => 'Copy link'; + + @override + String get lightboxVideoCurrentPosition => 'Current position'; + + @override + String get lightboxVideoDuration => 'Video duration'; + + @override + String get loginPageTitle => 'Log in'; + + @override + String get loginFormSubmitLabel => 'Log in'; + + @override + String get loginMethodDivider => 'OR'; + + @override + String signInWithFoo(String method) { + return 'Sign in with $method'; + } + + @override + String get loginAddAnAccountPageTitle => 'Add an account'; + + @override + String get loginServerUrlLabel => 'Your Zulip server URL'; + + @override + String get loginHidePassword => 'Hide password'; + + @override + String get loginEmailLabel => 'Email address'; + + @override + String get loginErrorMissingEmail => 'Please enter your email.'; + + @override + String get loginPasswordLabel => 'Password'; + + @override + String get loginErrorMissingPassword => 'Please enter your password.'; + + @override + String get loginUsernameLabel => 'Username'; + + @override + String get loginErrorMissingUsername => 'Please enter your username.'; + + @override + String get topicValidationErrorTooLong => + 'Topic length shouldn\'t be greater than 60 characters.'; + + @override + String get topicValidationErrorMandatoryButEmpty => + 'Topics are required in this organization.'; + + @override + String get errorContentNotInsertedTitle => 'Content not inserted'; + + @override + String get errorContentToInsertIsEmpty => + 'The file to be inserted is empty or cannot be accessed.'; + + @override + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ) { + return '$url is running Zulip Server $zulipVersion, which is unsupported. The minimum supported version is Zulip Server $minSupportedZulipVersion.'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return 'Your account at $url could not be authenticated. Please try logging in again or use another account.'; + } + + @override + String get errorInvalidResponse => 'The server sent an invalid response.'; + + @override + String get errorNetworkRequestFailed => 'Network request failed'; + + @override + String errorMalformedResponse(int httpStatus) { + return 'Server gave malformed response; HTTP status $httpStatus'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return 'Server gave malformed response; HTTP status $httpStatus; $details'; + } + + @override + String errorRequestFailed(int httpStatus) { + return 'Network request failed: HTTP status $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => 'Unable to play the video.'; + + @override + String get serverUrlValidationErrorEmpty => 'Please enter a URL.'; + + @override + String get serverUrlValidationErrorInvalidUrl => 'Please enter a valid URL.'; + + @override + String get serverUrlValidationErrorNoUseEmail => + 'Please enter the server URL, not your email.'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => + 'The server URL must start with http:// or https://.'; + + @override + String get spoilerDefaultHeaderText => 'Spoiler'; + + @override + String get markAllAsReadLabel => 'Mark all messages as read'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num messages', + one: '1 message', + ); + return 'Marked $_temp0 as read.'; + } + + @override + String get markAsReadInProgress => 'Marking messages as read…'; + + @override + String get errorMarkAsReadFailedTitle => 'Mark as read failed'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num messages', + one: '1 message', + ); + return 'Marked $_temp0 as unread.'; + } + + @override + String get markAsUnreadInProgress => 'Marking messages as unread…'; + + @override + String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed'; + + @override + String get today => 'Today'; + + @override + String get yesterday => 'Yesterday'; + + @override + String get userActiveNow => 'Active now'; + + @override + String get userIdle => 'Idle'; + + @override + String userActiveMinutesAgo(int minutes) { + String _temp0 = intl.Intl.pluralLogic( + minutes, + locale: localeName, + other: '$minutes minutes', + one: '1 minute', + ); + return 'Active $_temp0 ago'; + } + + @override + String userActiveHoursAgo(int hours) { + String _temp0 = intl.Intl.pluralLogic( + hours, + locale: localeName, + other: '$hours hours', + one: '1 hour', + ); + return 'Active $_temp0 ago'; + } + + @override + String get userActiveYesterday => 'Active yesterday'; + + @override + String userActiveDaysAgo(int days) { + String _temp0 = intl.Intl.pluralLogic( + days, + locale: localeName, + other: '$days days', + one: '1 day', + ); + return 'Active $_temp0 ago'; + } + + @override + String userActiveDate(String date) { + return 'Active $date'; + } + + @override + String get userNotActiveInYear => 'Not active in the last year'; + + @override + String get invisibleMode => 'Invisible mode'; + + @override + String get turnOnInvisibleModeErrorTitle => + 'Error turning on invisible mode. Please try again.'; + + @override + String get turnOffInvisibleModeErrorTitle => + 'Error turning off invisible mode. Please try again.'; + + @override + String get userRoleOwner => 'Owner'; + + @override + String get userRoleAdministrator => 'Administrator'; + + @override + String get userRoleModerator => 'Moderator'; + + @override + String get userRoleMember => 'Member'; + + @override + String get userRoleGuest => 'Guest'; + + @override + String get userRoleUnknown => 'Unknown'; + + @override + String get statusButtonLabelStatusSet => 'Status'; + + @override + String get statusButtonLabelStatusUnset => 'Set status'; + + @override + String get noStatusText => 'No status text'; + + @override + String get setStatusPageTitle => 'Set status'; + + @override + String get statusClearButtonLabel => 'Clear'; + + @override + String get statusSaveButtonLabel => 'Save'; + + @override + String get statusTextHint => 'Your status'; + + @override + String get userStatusBusy => 'Busy'; + + @override + String get userStatusInAMeeting => 'In a meeting'; + + @override + String get userStatusCommuting => 'Commuting'; + + @override + String get userStatusOutSick => 'Out sick'; + + @override + String get userStatusVacationing => 'Vacationing'; + + @override + String get userStatusWorkingRemotely => 'Working remotely'; + + @override + String get userStatusAtTheOffice => 'At the office'; + + @override + String get updateStatusErrorTitle => + 'Error updating user status. Please try again.'; + + @override + String get searchMessagesPageTitle => 'Search'; + + @override + String get searchMessagesHintText => 'Search'; + + @override + String get searchMessagesClearButtonTooltip => 'Clear'; + + @override + String get inboxPageTitle => 'Inbox'; + + @override + String get inboxEmptyPlaceholder => + 'There are no unread messages in your inbox. Use the buttons below to view the combined feed or list of channels.'; + + @override + String get recentDmConversationsPageTitle => 'Direct messages'; + + @override + String get recentDmConversationsSectionHeader => 'Direct messages'; + + @override + String get recentDmConversationsEmptyPlaceholder => + 'You have no direct messages yet! Why not start the conversation?'; + + @override + String get combinedFeedPageTitle => 'Combined feed'; + + @override + String get mentionsPageTitle => 'Mentions'; + + @override + String get starredMessagesPageTitle => 'Starred messages'; + + @override + String get channelsPageTitle => 'Channels'; + + @override + String get channelsEmptyPlaceholder => + 'You’re not subscribed to any channels yet.'; + + @override + String channelsEmptyPlaceholderWithAllChannelsLink( + String allChannelsPageTitle, + ) { + return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; + } + + @override + String get sharePageTitle => 'Share'; + + @override + String get mainMenuMyProfile => 'My profile'; + + @override + String get topicsButtonTooltip => 'Topics'; + + @override + String get channelFeedButtonTooltip => 'Channel feed'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: '$numOthers others', + one: '1 other', + ); + return '$senderFullName to you and $_temp0'; + } + + @override + String get pinnedSubscriptionsLabel => 'Pinned'; + + @override + String get unpinnedSubscriptionsLabel => 'Unpinned'; + + @override + String get notifSelfUser => 'You'; + + @override + String get reactedEmojiSelfUser => 'You'; + + @override + String get reactionChipsLabel => 'Reactions'; + + @override + String reactionChipLabel(String emojiName, String votes) { + return '$emojiName: $votes'; + } + + @override + String reactionChipVotesYouAndOthers(int otherUsersCount) { + String _temp0 = intl.Intl.pluralLogic( + otherUsersCount, + locale: localeName, + other: 'You and $otherUsersCount others', + one: 'You and 1 other', + ); + return '$_temp0'; + } + + @override + String onePersonTyping(String typist) { + return '$typist is typing…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist and $otherTypist are typing…'; + } + + @override + String get manyPeopleTyping => 'Several people are typing…'; + + @override + String get wildcardMentionAll => 'الجميع'; + + @override + String get wildcardMentionEveryone => 'الكل'; + + @override + String get wildcardMentionChannel => 'القناة'; + + @override + String get wildcardMentionStream => 'الدفق'; + + @override + String get wildcardMentionTopic => 'الموضوع'; + + @override + String get wildcardMentionChannelDescription => 'إخطار القناة'; + + @override + String get wildcardMentionStreamDescription => 'إخطار الدفق'; + + @override + String get wildcardMentionAllDmDescription => 'إخطار المستلمين'; + + @override + String get wildcardMentionTopicDescription => 'إخطار الموضوع'; + + @override + String get messageIsEditedLabel => 'EDITED'; + + @override + String get messageIsMovedLabel => 'MOVED'; + + @override + String get messageNotSentLabel => 'MESSAGE NOT SENT'; + + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + + @override + String get themeSettingTitle => 'THEME'; + + @override + String get themeSettingDark => 'Dark'; + + @override + String get themeSettingLight => 'Light'; + + @override + String get themeSettingSystem => 'System'; + + @override + String get openLinksWithInAppBrowser => 'Open links with in-app browser'; + + @override + String get pollWidgetQuestionMissing => 'No question.'; + + @override + String get pollWidgetOptionsMissing => 'This poll has no options yet.'; + + @override + String get initialAnchorSettingTitle => 'Open message feeds at'; + + @override + String get initialAnchorSettingDescription => + 'You can choose whether message feeds open at your first unread message or at the newest messages.'; + + @override + String get initialAnchorSettingFirstUnreadAlways => 'First unread message'; + + @override + String get initialAnchorSettingFirstUnreadConversations => + 'First unread message in conversation views, newest message elsewhere'; + + @override + String get initialAnchorSettingNewestAlways => 'Newest message'; + + @override + String get markReadOnScrollSettingTitle => 'Mark messages as read on scroll'; + + @override + String get markReadOnScrollSettingDescription => + 'When scrolling through messages, should they automatically be marked as read?'; + + @override + String get markReadOnScrollSettingAlways => 'Always'; + + @override + String get markReadOnScrollSettingNever => 'Never'; + + @override + String get markReadOnScrollSettingConversations => + 'Only in conversation views'; + + @override + String get markReadOnScrollSettingConversationsDescription => + 'Messages will be automatically marked as read only when viewing a single topic or direct message conversation.'; + + @override + String get experimentalFeatureSettingsPageTitle => 'Experimental features'; + + @override + String get experimentalFeatureSettingsWarning => + 'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'; + + @override + String get errorNotificationOpenTitle => 'Failed to open notification'; + + @override + String get errorNotificationOpenAccountNotFound => + 'The account associated with this notification could not be found.'; + + @override + String get errorReactionAddingFailedTitle => 'Adding reaction failed'; + + @override + String get errorReactionRemovingFailedTitle => 'Removing reaction failed'; + + @override + String get errorSharingTitle => 'Failed to share content'; + + @override + String get errorSharingAccountNotLoggedIn => + 'There is no account logged in. Please log in to an account and try again.'; + + @override + String get emojiReactionsMore => 'more'; + + @override + String get emojiPickerSearchEmoji => 'Search emoji'; + + @override + String get noEarlierMessages => 'No earlier messages'; + + @override + String get revealButtonLabel => 'Reveal message'; + + @override + String get mutedUser => 'Muted user'; + + @override + String get scrollToBottomTooltip => 'Scroll to bottom'; + + @override + String get appVersionUnknownPlaceholder => '(…)'; + + @override + String get zulipAppTitle => 'Zulip'; +} diff --git a/lib/generated/l10n/zulip_localizations_de.dart b/lib/generated/l10n/zulip_localizations_de.dart index 4975e37387..f32f940d4b 100644 --- a/lib/generated/l10n/zulip_localizations_de.dart +++ b/lib/generated/l10n/zulip_localizations_de.dart @@ -1,1193 +1,1199 @@ -// ignore: unused_import -import 'package:intl/intl.dart' as intl; -import 'zulip_localizations.dart'; - -// ignore_for_file: type=lint - -/// The translations for German (`de`). -class ZulipLocalizationsDe extends ZulipLocalizations { - ZulipLocalizationsDe([String locale = 'de']) : super(locale); - - @override - String get aboutPageTitle => 'Über Zulip'; - - @override - String get aboutPageAppVersion => 'App-Version'; - - @override - String get aboutPageOpenSourceLicenses => 'Open-Source-Lizenzen'; - - @override - String get aboutPageTapToView => 'Antippen zum Ansehen'; - - @override - String get upgradeWelcomeDialogTitle => 'Willkommen in der neuen Zulip-App!'; - - @override - String get upgradeWelcomeDialogMessage => - 'Du wirst ein vertrautes Erlebnis in einer schnelleren, schlankeren App erleben.'; - - @override - String get upgradeWelcomeDialogLinkText => - 'Sieh dir den Ankündigungs-Blogpost an!'; - - @override - String get upgradeWelcomeDialogDismiss => 'Los gehts'; - - @override - String get chooseAccountPageTitle => 'Konto auswählen'; - - @override - String get settingsPageTitle => 'Einstellungen'; - - @override - String get switchAccountButton => 'Konto wechseln'; - - @override - String tryAnotherAccountMessage(Object url) { - return 'Dein Account bei $url benötigt einige Zeit zum Laden.'; - } - - @override - String get tryAnotherAccountButton => 'Anderen Account ausprobieren'; - - @override - String get chooseAccountPageLogOutButton => 'Abmelden'; - - @override - String get logOutConfirmationDialogTitle => 'Abmelden?'; - - @override - String get logOutConfirmationDialogMessage => - 'Um diesen Account in Zukunft zu verwenden, musst du die URL deiner Organisation und deine Account-Informationen erneut eingeben.'; - - @override - String get logOutConfirmationDialogConfirmButton => 'Abmelden'; - - @override - String get chooseAccountButtonAddAnAccount => 'Account hinzufügen'; - - @override - String get navButtonAllChannels => 'All channels'; - - @override - String get allChannelsPageTitle => 'All channels'; - - @override - String get allChannelsEmptyPlaceholder => - 'There are no channels you can view in this organization.'; - - @override - String get profileButtonSendDirectMessage => 'Direktnachricht senden'; - - @override - String get errorCouldNotShowUserProfile => - 'Nutzerprofil kann nicht angezeigt werden.'; - - @override - String get permissionsNeededTitle => 'Berechtigungen erforderlich'; - - @override - String get permissionsNeededOpenSettings => 'Einstellungen öffnen'; - - @override - String get permissionsDeniedCameraAccess => - 'Bitte gewähre Zulip zusätzliche Berechtigungen in den Einstellungen, um ein Bild hochzuladen.'; - - @override - String get permissionsDeniedReadExternalStorage => - 'Bitte gewähre Zulip zusätzliche Berechtigungen in den Einstellungen, um Dateien hochzuladen.'; - - @override - String get actionSheetOptionSubscribe => 'Abonnieren'; - - @override - String get subscribeFailedTitle => 'Konnte nicht abonnieren'; - - @override - String get actionSheetOptionMarkChannelAsRead => - 'Kanal als gelesen markieren'; - - @override - String get actionSheetOptionCopyChannelLink => 'Link zum Kanal kopieren'; - - @override - String get actionSheetOptionListOfTopics => 'Themenliste'; - - @override - String get actionSheetOptionChannelFeed => 'Kanal-Feed'; - - @override - String get actionSheetOptionUnsubscribe => 'Deabonnieren'; - - @override - String unsubscribeConfirmationDialogTitle(String channelName) { - return '$channelName deabonnieren?'; - } - - @override - String get unsubscribeConfirmationDialogMessageCannotResubscribe => - 'Once you leave this channel, you will not be able to rejoin.'; - - @override - String get unsubscribeConfirmationDialogConfirmButton => 'Deabonnieren'; - - @override - String get unsubscribeFailedTitle => 'Konnte nicht deabonnieren'; - - @override - String get actionSheetOptionMuteTopic => 'Thema stummschalten'; - - @override - String get actionSheetOptionUnmuteTopic => 'Thema lautschalten'; - - @override - String get actionSheetOptionFollowTopic => 'Thema folgen'; - - @override - String get actionSheetOptionUnfollowTopic => 'Thema entfolgen'; - - @override - String get actionSheetOptionResolveTopic => 'Als gelöst markieren'; - - @override - String get actionSheetOptionUnresolveTopic => 'Als ungelöst markieren'; - - @override - String get errorResolveTopicFailedTitle => - 'Thema konnte nicht als gelöst markiert werden'; - - @override - String get errorUnresolveTopicFailedTitle => - 'Thema konnte nicht als ungelöst markiert werden'; - - @override - String get actionSheetOptionSeeWhoReacted => 'Wer hat reagiert'; - - @override - String get seeWhoReactedSheetNoReactions => - 'Diese Nachricht hat keine Reaktionen.'; - - @override - String seeWhoReactedSheetHeaderLabel(int num) { - return 'Emoji-Reaktionen (insgesamt $num)'; - } - - @override - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num Stimmen', - one: '1 Stimme', - ); - return '$emojiName: $_temp0'; - } - - @override - String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Stimmen für $emojiName ($num)'; - } - - @override - String get actionSheetOptionViewReadReceipts => - 'Empfangsbestätigungen ansehen'; - - @override - String get actionSheetReadReceipts => 'Empfangsbestätigungen'; - - @override - String actionSheetReadReceiptsReadCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: - 'Diese Nachricht wurde von $count Personen gelesen:', - one: 'Diese Nachricht wurde von einer Person gelesen:', - ); - return '$_temp0'; - } - - @override - String get actionSheetReadReceiptsZeroReadCount => - 'Niemand hat diese Nachricht bisher gelesen.'; - - @override - String get actionSheetReadReceiptsErrorReadCount => - 'Laden von Empfangsbestätigungen fehlgeschlagen.'; - - @override - String get actionSheetOptionCopyMessageText => 'Nachrichtentext kopieren'; - - @override - String get actionSheetOptionCopyMessageLink => 'Link zur Nachricht kopieren'; - - @override - String get actionSheetOptionMarkAsUnread => 'Ab hier als ungelesen markieren'; - - @override - String get actionSheetOptionHideMutedMessage => - 'Stummgeschaltete Nachricht wieder ausblenden'; - - @override - String get actionSheetOptionShare => 'Teilen'; - - @override - String get actionSheetOptionQuoteMessage => 'Nachricht zitieren'; - - @override - String get actionSheetOptionStarMessage => 'Nachricht markieren'; - - @override - String get actionSheetOptionUnstarMessage => 'Markierung aufheben'; - - @override - String get actionSheetOptionEditMessage => 'Nachricht bearbeiten'; - - @override - String get actionSheetOptionDeleteMessage => 'Delete message'; - - @override - String get deleteMessageConfirmationDialogTitle => 'Delete message?'; - - @override - String get deleteMessageConfirmationDialogMessage => - 'Deleting a message permanently removes it for everyone.'; - - @override - String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; - - @override - String get errorDeleteMessageFailedTitle => 'Failed to delete message'; - - @override - String get actionSheetOptionMarkTopicAsRead => 'Thema als gelesen markieren'; - - @override - String get actionSheetOptionCopyTopicLink => 'Link zum Thema kopieren'; - - @override - String get errorWebAuthOperationalErrorTitle => 'Etwas ist schiefgelaufen'; - - @override - String get errorWebAuthOperationalError => - 'Ein unerwarteter Fehler ist aufgetreten.'; - - @override - String get errorAccountLoggedInTitle => 'Account bereits angemeldet'; - - @override - String errorAccountLoggedIn(String email, String server) { - return 'Der Account $email auf $server ist bereits in deiner Account-Liste.'; - } - - @override - String get errorCouldNotFetchMessageSource => - 'Konnte Nachrichtenquelle nicht abrufen.'; - - @override - String get errorCopyingFailed => 'Kopieren fehlgeschlagen'; - - @override - String errorFailedToUploadFileTitle(String filename) { - return 'Fehler beim Upload der Datei: $filename'; - } - - @override - String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size MiB'; - } - - @override - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num Dateien sind', - one: 'Datei ist', - ); - String _temp1 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num werden', - one: 'wird', - ); - return '$_temp0 größer als das Serverlimit von $maxFileUploadSizeMib MiB und $_temp1 nicht hochgeladen:\n\n$listMessage'; - } - - @override - String errorFilesTooLargeTitle(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: 'Dateien', - one: 'Datei', - ); - return '$_temp0 zu groß'; - } - - @override - String get errorLoginInvalidInputTitle => 'Ungültige Eingabe'; - - @override - String get errorLoginFailedTitle => 'Anmeldung fehlgeschlagen'; - - @override - String get errorMessageNotSent => 'Nachricht nicht versendet'; - - @override - String get errorMessageEditNotSaved => 'Nachricht nicht gespeichert'; - - @override - String errorLoginCouldNotConnect(String url) { - return 'Verbindung zu Server fehlgeschlagen:\n$url'; - } - - @override - String get errorCouldNotConnectTitle => 'Konnte nicht verbinden'; - - @override - String get errorMessageDoesNotSeemToExist => - 'Diese Nachricht scheint nicht zu existieren.'; - - @override - String get errorQuotationFailed => 'Zitat fehlgeschlagen'; - - @override - String errorServerMessage(String message) { - return 'Der Server sagte:\n\n$message'; - } - - @override - String get errorConnectingToServerShort => - 'Fehler beim Verbinden mit Zulip. Wiederhole…'; - - @override - String errorConnectingToServerDetails(String serverUrl, String error) { - return 'Fehler beim Verbinden mit Zulip auf $serverUrl. Wird wiederholt:\n\n$error'; - } - - @override - String get errorHandlingEventTitle => - 'Fehler beim Verarbeiten eines Zulip-Ereignisses. Wiederhole Verbindung…'; - - @override - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ) { - return 'Fehler beim Verarbeiten eines Zulip-Ereignisses von $serverUrl; Wird wiederholt.\n\nFehler: $error\n\nEreignis: $event'; - } - - @override - String get errorCouldNotOpenLinkTitle => 'Link kann nicht geöffnet werden'; - - @override - String errorCouldNotOpenLink(String url) { - return 'Link konnte nicht geöffnet werden: $url'; - } - - @override - String get errorMuteTopicFailed => 'Konnte Thema nicht stummschalten'; - - @override - String get errorUnmuteTopicFailed => 'Konnte Thema nicht lautschalten'; - - @override - String get errorFollowTopicFailed => 'Konnte Thema nicht folgen'; - - @override - String get errorUnfollowTopicFailed => 'Konnte Thema nicht entfolgen'; - - @override - String get errorSharingFailed => 'Teilen fehlgeschlagen'; - - @override - String get errorStarMessageFailedTitle => 'Konnte Nachricht nicht markieren'; - - @override - String get errorUnstarMessageFailedTitle => - 'Konnte Markierung nicht von der Nachricht entfernen'; - - @override - String get errorCouldNotEditMessageTitle => - 'Konnte Nachricht nicht bearbeiten'; - - @override - String get successLinkCopied => 'Link kopiert'; - - @override - String get successMessageTextCopied => 'Nachrichtentext kopiert'; - - @override - String get successMessageLinkCopied => 'Nachrichtenlink kopiert'; - - @override - String get successTopicLinkCopied => 'Link zum Thema kopiert'; - - @override - String get successChannelLinkCopied => 'Kanallink kopiert'; - - @override - String get errorBannerDeactivatedDmLabel => - 'Du kannst keine Nachrichten an deaktivierte Nutzer:innen senden.'; - - @override - String get errorBannerCannotPostInChannelLabel => - 'Du hast keine Berechtigung in diesen Kanal zu schreiben.'; - - @override - String get composeBoxBannerLabelUnsubscribedWhenCannotSend => - 'New messages will not appear automatically.'; - - @override - String get composeBoxBannerButtonRefresh => 'Refresh'; - - @override - String get composeBoxBannerButtonSubscribe => 'Subscribe'; - - @override - String get composeBoxBannerLabelEditMessage => 'Nachricht bearbeiten'; - - @override - String get composeBoxBannerButtonCancel => 'Abbrechen'; - - @override - String get composeBoxBannerButtonSave => 'Speichern'; - - @override - String get editAlreadyInProgressTitle => 'Kann Nachricht nicht bearbeiten'; - - @override - String get editAlreadyInProgressMessage => - 'Eine Bearbeitung läuft gerade. Bitte warte bis sie abgeschlossen ist.'; - - @override - String get savingMessageEditLabel => 'SPEICHERE BEARBEITUNG…'; - - @override - String get savingMessageEditFailedLabel => 'BEARBEITUNG NICHT GESPEICHERT'; - - @override - String get discardDraftConfirmationDialogTitle => - 'Die Nachricht, die du schreibst, verwerfen?'; - - @override - String get discardDraftForEditConfirmationDialogMessage => - 'Wenn du eine Nachricht bearbeitest, wird der vorherige Inhalt der Nachrichteneingabe verworfen.'; - - @override - String get discardDraftForOutboxConfirmationDialogMessage => - 'Wenn du eine nicht gesendete Nachricht wiederherstellst, wird der vorherige Inhalt der Nachrichteneingabe verworfen.'; - - @override - String get discardDraftConfirmationDialogConfirmButton => 'Verwerfen'; - - @override - String get composeBoxAttachFilesTooltip => 'Dateien anhängen'; - - @override - String get composeBoxAttachMediaTooltip => 'Bilder oder Videos anhängen'; - - @override - String get composeBoxAttachFromCameraTooltip => 'Ein Foto aufnehmen'; - - @override - String get composeBoxGenericContentHint => 'Eine Nachricht eingeben'; - - @override - String get newDmSheetComposeButtonLabel => 'Verfassen'; - - @override - String get newDmSheetScreenTitle => 'Neue DN'; - - @override - String get newDmFabButtonLabel => 'Neue DN'; - - @override - String get newDmSheetSearchHintEmpty => - 'Füge ein oder mehrere Nutzer:innen hinzu'; - - @override - String get newDmSheetSearchHintSomeSelected => - 'Füge weitere Nutzer:in hinzu…'; - - @override - String get newDmSheetNoUsersFound => 'Keine Nutzer:innen gefunden'; - - @override - String composeBoxDmContentHint(String user) { - return 'Nachricht an @$user'; - } - - @override - String get composeBoxGroupDmContentHint => 'Nachricht an Gruppe'; - - @override - String get composeBoxSelfDmContentHint => 'Schreibe etwas'; - - @override - String composeBoxChannelContentHint(String destination) { - return 'Nachricht an $destination'; - } - - @override - String get preparingEditMessageContentInput => 'Bereite vor…'; - - @override - String get composeBoxSendTooltip => 'Senden'; - - @override - String get unknownChannelName => '(unbekannter Kanal)'; - - @override - String get composeBoxTopicHintText => 'Thema'; - - @override - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { - return 'Gib ein Thema ein (leer lassen für “$defaultTopicName”)'; - } - - @override - String composeBoxUploadingFilename(String filename) { - return 'Lade $filename hoch…'; - } - - @override - String composeBoxLoadingMessage(int messageId) { - return '(lade Nachricht $messageId)'; - } - - @override - String get unknownUserName => '(Nutzer:in unbekannt)'; - - @override - String get dmsWithYourselfPageTitle => 'DNs mit dir selbst'; - - @override - String messageListGroupYouAndOthers(String others) { - return 'Du und $others'; - } - - @override - String dmsWithOthersPageTitle(String others) { - return 'DNs mit $others'; - } - - @override - String get emptyMessageList => 'Hier gibt es keine Nachrichten.'; - - @override - String get emptyMessageListSearch => 'Keine Suchergebnisse.'; - - @override - String get messageListGroupYouWithYourself => 'Nachrichten mit dir selbst'; - - @override - String get contentValidationErrorTooLong => - 'Nachrichtenlänge sollte nicht größer als 10000 Zeichen sein.'; - - @override - String get contentValidationErrorEmpty => 'Du hast nichts zum Senden!'; - - @override - String get contentValidationErrorQuoteAndReplyInProgress => - 'Bitte warte bis das Zitat abgeschlossen ist.'; - - @override - String get contentValidationErrorUploadInProgress => - 'Bitte warte bis das Hochladen abgeschlossen ist.'; - - @override - String get dialogCancel => 'Abbrechen'; - - @override - String get dialogContinue => 'Fortsetzen'; - - @override - String get dialogClose => 'Schließen'; - - @override - String get errorDialogLearnMore => 'Mehr erfahren'; - - @override - String get errorDialogContinue => 'OK'; - - @override - String get errorDialogTitle => 'Fehler'; - - @override - String get snackBarDetails => 'Details'; - - @override - String get lightboxCopyLinkTooltip => 'Link kopieren'; - - @override - String get lightboxVideoCurrentPosition => 'Aktuelle Position'; - - @override - String get lightboxVideoDuration => 'Videolänge'; - - @override - String get loginPageTitle => 'Anmelden'; - - @override - String get loginFormSubmitLabel => 'Anmelden'; - - @override - String get loginMethodDivider => 'ODER'; - - @override - String signInWithFoo(String method) { - return 'Anmelden mit $method'; - } - - @override - String get loginAddAnAccountPageTitle => 'Account hinzufügen'; - - @override - String get loginServerUrlLabel => 'Deine Zulip Server URL'; - - @override - String get loginHidePassword => 'Passwort verstecken'; - - @override - String get loginEmailLabel => 'E-Mail-Adresse'; - - @override - String get loginErrorMissingEmail => 'Bitte gib deine E-Mail ein.'; - - @override - String get loginPasswordLabel => 'Passwort'; - - @override - String get loginErrorMissingPassword => 'Bitte gib dein Passwort ein.'; - - @override - String get loginUsernameLabel => 'Benutzername'; - - @override - String get loginErrorMissingUsername => 'Bitte gib deinen Benutzernamen ein.'; - - @override - String get topicValidationErrorTooLong => - 'Länge des Themas sollte 60 Zeichen nicht überschreiten.'; - - @override - String get topicValidationErrorMandatoryButEmpty => - 'Themen sind in dieser Organisation erforderlich.'; - - @override - String get errorContentNotInsertedTitle => 'Inhalt nicht eingefügt'; - - @override - String get errorContentToInsertIsEmpty => - 'Die einzufügende Datei ist leer oder kann nicht geöffnet werden.'; - - @override - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ) { - return '$url nutzt Zulip Server $zulipVersion, welche nicht unterstützt wird. Die unterstützte Mindestversion ist Zulip Server $minSupportedZulipVersion.'; - } - - @override - String errorInvalidApiKeyMessage(String url) { - return 'Dein Account bei $url konnte nicht authentifiziert werden. Bitte wiederhole die Anmeldung oder verwende einen anderen Account.'; - } - - @override - String get errorInvalidResponse => - 'Der Server hat eine ungültige Antwort gesendet.'; - - @override - String get errorNetworkRequestFailed => 'Netzwerkanfrage fehlgeschlagen'; - - @override - String errorMalformedResponse(int httpStatus) { - return 'Server lieferte fehlerhafte Antwort; HTTP Status $httpStatus'; - } - - @override - String errorMalformedResponseWithCause(int httpStatus, String details) { - return 'Server lieferte fehlerhafte Antwort; HTTP Status $httpStatus; $details'; - } - - @override - String errorRequestFailed(int httpStatus) { - return 'Netzwerkanfrage fehlgeschlagen: HTTP Status $httpStatus'; - } - - @override - String get errorVideoPlayerFailed => - 'Video konnte nicht wiedergegeben werden.'; - - @override - String get serverUrlValidationErrorEmpty => 'Bitte gib eine URL ein.'; - - @override - String get serverUrlValidationErrorInvalidUrl => - 'Bitte gib eine gültige URL ein.'; - - @override - String get serverUrlValidationErrorNoUseEmail => - 'Bitte gib die Server-URL ein, nicht deine E-Mail-Adresse.'; - - @override - String get serverUrlValidationErrorUnsupportedScheme => - 'Die Server-URL muss mit http:// oder https:// beginnen.'; - - @override - String get spoilerDefaultHeaderText => 'Spoiler'; - - @override - String get markAllAsReadLabel => 'Alle Nachrichten als gelesen markieren'; - - @override - String markAsReadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num Nachrichten', - one: 'Eine Nachricht', - ); - return '$_temp0 als gelesen markiert.'; - } - - @override - String get markAsReadInProgress => 'Nachrichten werden als gelesen markiert…'; - - @override - String get errorMarkAsReadFailedTitle => - 'Als gelesen markieren fehlgeschlagen'; - - @override - String markAsUnreadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num Nachrichten', - one: 'Eine Nachricht', - ); - return '$_temp0 als ungelesen markiert.'; - } - - @override - String get markAsUnreadInProgress => - 'Nachrichten werden als ungelesen markiert…'; - - @override - String get errorMarkAsUnreadFailedTitle => - 'Als ungelesen markieren fehlgeschlagen'; - - @override - String get today => 'Heute'; - - @override - String get yesterday => 'Gestern'; - - @override - String get userActiveNow => 'Gerade aktiv'; - - @override - String get userIdle => 'Untätig'; - - @override - String userActiveMinutesAgo(int minutes) { - String _temp0 = intl.Intl.pluralLogic( - minutes, - locale: localeName, - other: '$minutes Minuten', - one: 'einer Minute', - ); - return 'Aktiv vor $_temp0'; - } - - @override - String userActiveHoursAgo(int hours) { - String _temp0 = intl.Intl.pluralLogic( - hours, - locale: localeName, - other: '$hours Stunden', - one: 'einer Stunde', - ); - return 'Aktiv vor $_temp0'; - } - - @override - String get userActiveYesterday => 'Gestern aktiv'; - - @override - String userActiveDaysAgo(int days) { - String _temp0 = intl.Intl.pluralLogic( - days, - locale: localeName, - other: '$days Tagen', - one: 'einem Tag', - ); - return 'Aktiv vor $_temp0'; - } - - @override - String userActiveDate(String date) { - return 'Aktiv $date'; - } - - @override - String get userNotActiveInYear => 'Im letzten Jahr nicht aktiv'; - - @override - String get invisibleMode => 'Unsichtbarer Modus'; - - @override - String get turnOnInvisibleModeErrorTitle => - 'Fehler beim Einschalten des unsichtbaren Modus. Bitte versuche es erneut.'; - - @override - String get turnOffInvisibleModeErrorTitle => - 'Fehler beim Ausschalten des unsichtbaren Modus. Bitte versuche es erneut.'; - - @override - String get userRoleOwner => 'Besitzer'; - - @override - String get userRoleAdministrator => 'Administrator'; - - @override - String get userRoleModerator => 'Moderator'; - - @override - String get userRoleMember => 'Mitglied'; - - @override - String get userRoleGuest => 'Gast'; - - @override - String get userRoleUnknown => 'Unbekannt'; - - @override - String get statusButtonLabelStatusSet => 'Status'; - - @override - String get statusButtonLabelStatusUnset => 'Status setzen'; - - @override - String get noStatusText => 'Kein Statustext'; - - @override - String get setStatusPageTitle => 'Status setzen'; - - @override - String get statusClearButtonLabel => 'Leeren'; - - @override - String get statusSaveButtonLabel => 'Speichern'; - - @override - String get statusTextHint => 'Dein Status'; - - @override - String get userStatusBusy => 'Beschäftigt'; - - @override - String get userStatusInAMeeting => 'In einem Meeting'; - - @override - String get userStatusCommuting => 'Unterwegs'; - - @override - String get userStatusOutSick => 'Krankgemeldet'; - - @override - String get userStatusVacationing => 'Im Urlaub'; - - @override - String get userStatusWorkingRemotely => 'Arbeitet von zu Hause'; - - @override - String get userStatusAtTheOffice => 'Im Büro'; - - @override - String get updateStatusErrorTitle => - 'Fehler beim Update des Benutzerstatus. Bitte versuche es nochmal.'; - - @override - String get searchMessagesPageTitle => 'Suche'; - - @override - String get searchMessagesHintText => 'Suche'; - - @override - String get searchMessagesClearButtonTooltip => 'Leeren'; - - @override - String get inboxPageTitle => 'Eingang'; - - @override - String get inboxEmptyPlaceholder => - 'Es sind keine ungelesenen Nachrichten in deinem Eingang. Verwende die Buttons unten, um den kombinierten Feed oder die Kanalliste anzusehen.'; - - @override - String get recentDmConversationsPageTitle => 'Direktnachrichten'; - - @override - String get recentDmConversationsSectionHeader => 'Direktnachrichten'; - - @override - String get recentDmConversationsEmptyPlaceholder => - 'Du hast noch keine Direktnachrichten! Warum nicht die Unterhaltung beginnen?'; - - @override - String get combinedFeedPageTitle => 'Kombinierter Feed'; - - @override - String get mentionsPageTitle => 'Erwähnungen'; - - @override - String get starredMessagesPageTitle => 'Markierte Nachrichten'; - - @override - String get channelsPageTitle => 'Kanäle'; - - @override - String get channelsEmptyPlaceholder => 'Du hast noch keine Kanäle abonniert.'; - - @override - String channelsEmptyPlaceholderWithAllChannelsLink( - String allChannelsPageTitle, - ) { - return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; - } - - @override - String get sharePageTitle => 'Teilen'; - - @override - String get mainMenuMyProfile => 'Mein Profil'; - - @override - String get topicsButtonTooltip => 'Themen'; - - @override - String get channelFeedButtonTooltip => 'Kanal-Feed'; - - @override - String notifGroupDmConversationLabel(String senderFullName, int numOthers) { - String _temp0 = intl.Intl.pluralLogic( - numOthers, - locale: localeName, - other: '$numOthers weitere', - one: '1 weitere:n', - ); - return '$senderFullName an dich und $_temp0'; - } - - @override - String get pinnedSubscriptionsLabel => 'Angeheftet'; - - @override - String get unpinnedSubscriptionsLabel => 'Nicht angeheftet'; - - @override - String get notifSelfUser => 'Du'; - - @override - String get reactedEmojiSelfUser => 'Du'; - - @override - String get reactionChipsLabel => 'Reaktionen'; - - @override - String reactionChipLabel(String emojiName, String votes) { - return '$emojiName: $votes'; - } - - @override - String reactionChipVotesYouAndOthers(int otherUsersCount) { - String _temp0 = intl.Intl.pluralLogic( - otherUsersCount, - locale: localeName, - other: 'Du und $otherUsersCount weitere', - one: 'Du und ein weiterer', - ); - return '$_temp0'; - } - - @override - String onePersonTyping(String typist) { - return '$typist tippt…'; - } - - @override - String twoPeopleTyping(String typist, String otherTypist) { - return '$typist und $otherTypist tippen…'; - } - - @override - String get manyPeopleTyping => 'Mehrere Leute tippen…'; - - @override - String get wildcardMentionAll => 'alle'; - - @override - String get wildcardMentionEveryone => 'jeder'; - - @override - String get wildcardMentionChannel => 'Kanal'; - - @override - String get wildcardMentionStream => 'Stream'; - - @override - String get wildcardMentionTopic => 'Thema'; - - @override - String get wildcardMentionChannelDescription => 'Kanal benachrichtigen'; - - @override - String get wildcardMentionStreamDescription => 'Stream benachrichtigen'; - - @override - String get wildcardMentionAllDmDescription => 'Empfänger benachrichtigen'; - - @override - String get wildcardMentionTopicDescription => 'Thema benachrichtigen'; - - @override - String get messageIsEditedLabel => 'BEARBEITET'; - - @override - String get messageIsMovedLabel => 'VERSCHOBEN'; - - @override - String get messageNotSentLabel => 'NACHRICHT NICHT GESENDET'; - - @override - String pollVoterNames(String voterNames) { - return '$voterNames'; - } - - @override - String get themeSettingTitle => 'THEMA'; - - @override - String get themeSettingDark => 'Dunkel'; - - @override - String get themeSettingLight => 'Hell'; - - @override - String get themeSettingSystem => 'System'; - - @override - String get openLinksWithInAppBrowser => 'Links mit In-App-Browser öffnen'; - - @override - String get pollWidgetQuestionMissing => 'Keine Frage.'; - - @override - String get pollWidgetOptionsMissing => - 'Diese Umfrage hat noch keine Optionen.'; - - @override - String get initialAnchorSettingTitle => 'Nachrichten-Feed öffnen bei'; - - @override - String get initialAnchorSettingDescription => - 'Du kannst auswählen ob Nachrichten-Feeds bei deiner ersten ungelesenen oder bei den neuesten Nachrichten geöffnet werden.'; - - @override - String get initialAnchorSettingFirstUnreadAlways => - 'Erste ungelesene Nachricht'; - - @override - String get initialAnchorSettingFirstUnreadConversations => - 'Erste ungelesene Nachricht in Unterhaltungsansicht, sonst neueste Nachricht'; - - @override - String get initialAnchorSettingNewestAlways => 'Neueste Nachricht'; - - @override - String get markReadOnScrollSettingTitle => - 'Nachrichten beim Scrollen als gelesen markieren'; - - @override - String get markReadOnScrollSettingDescription => - 'Sollen Nachrichten automatisch als gelesen markiert werden, wenn du sie durchscrollst?'; - - @override - String get markReadOnScrollSettingAlways => 'Immer'; - - @override - String get markReadOnScrollSettingNever => 'Nie'; - - @override - String get markReadOnScrollSettingConversations => - 'Nur in Unterhaltungsansichten'; - - @override - String get markReadOnScrollSettingConversationsDescription => - 'Nachrichten werden nur beim Ansehen einzelner Themen oder Direktnachrichten automatisch als gelesen markiert.'; - - @override - String get experimentalFeatureSettingsPageTitle => - 'Experimentelle Funktionen'; - - @override - String get experimentalFeatureSettingsWarning => - 'Diese Optionen aktivieren Funktionen, die noch in Entwicklung und nicht bereit sind. Sie funktionieren möglicherweise nicht und können Problem in anderen Bereichen der App verursachen.\n\nDer Zweck dieser Einstellungen ist das Experimentieren der Leute, die an der Entwicklung von Zulip arbeiten.'; - - @override - String get errorNotificationOpenTitle => - 'Fehler beim Öffnen der Benachrichtigung'; - - @override - String get errorNotificationOpenAccountNotFound => - 'Der Account, der mit dieser Benachrichtigung verknüpft ist, konnte nicht gefunden werden.'; - - @override - String get errorReactionAddingFailedTitle => - 'Hinzufügen der Reaktion fehlgeschlagen'; - - @override - String get errorReactionRemovingFailedTitle => - 'Entfernen der Reaktion fehlgeschlagen'; - - @override - String get errorSharingTitle => 'Teilen des Inhalts fehlgeschlagen'; - - @override - String get errorSharingAccountNotLoggedIn => - 'Es ist kein Konto angemeldet. Bitte logge dich in ein Konto ein und versuche es erneut.'; - - @override - String get emojiReactionsMore => 'mehr'; - - @override - String get emojiPickerSearchEmoji => 'Emoji suchen'; - - @override - String get noEarlierMessages => 'Keine früheren Nachrichten'; - - @override - String get revealButtonLabel => 'Nachricht anzeigen'; - - @override - String get mutedUser => 'Stummgeschaltete:r Nutzer:in'; - - @override - String get scrollToBottomTooltip => 'Nach unten Scrollen'; - - @override - String get appVersionUnknownPlaceholder => '(…)'; - - @override - String get zulipAppTitle => 'Zulip'; -} +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'zulip_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for German (`de`). +class ZulipLocalizationsDe extends ZulipLocalizations { + ZulipLocalizationsDe([String locale = 'de']) : super(locale); + + @override + String get aboutPageTitle => 'Über Zulip'; + + @override + String get aboutPageAppVersion => 'App-Version'; + + @override + String get aboutPageOpenSourceLicenses => 'Open-Source-Lizenzen'; + + @override + String get aboutPageTapToView => 'Antippen zum Ansehen'; + + @override + String get upgradeWelcomeDialogTitle => 'Willkommen in der neuen Zulip-App!'; + + @override + String get upgradeWelcomeDialogMessage => + 'Du wirst ein vertrautes Erlebnis in einer schnelleren, schlankeren App erleben.'; + + @override + String get upgradeWelcomeDialogLinkText => + 'Sieh dir den Ankündigungs-Blogpost an!'; + + @override + String get upgradeWelcomeDialogDismiss => 'Los gehts'; + + @override + String get chooseAccountPageTitle => 'Konto auswählen'; + + @override + String get settingsPageTitle => 'Einstellungen'; + + @override + String get switchAccountButton => 'Konto wechseln'; + + @override + String tryAnotherAccountMessage(Object url) { + return 'Dein Account bei $url benötigt einige Zeit zum Laden.'; + } + + @override + String get tryAnotherAccountButton => 'Anderen Account ausprobieren'; + + @override + String get chooseAccountPageLogOutButton => 'Abmelden'; + + @override + String get logOutConfirmationDialogTitle => 'Abmelden?'; + + @override + String get logOutConfirmationDialogMessage => + 'Um diesen Account in Zukunft zu verwenden, musst du die URL deiner Organisation und deine Account-Informationen erneut eingeben.'; + + @override + String get logOutConfirmationDialogConfirmButton => 'Abmelden'; + + @override + String get chooseAccountButtonAddAnAccount => 'Account hinzufügen'; + + @override + String get navButtonAllChannels => 'All channels'; + + @override + String get allChannelsPageTitle => 'All channels'; + + @override + String get allChannelsEmptyPlaceholder => + 'There are no channels you can view in this organization.'; + + @override + String get profileButtonSendDirectMessage => 'Direktnachricht senden'; + + @override + String get errorCouldNotShowUserProfile => + 'Nutzerprofil kann nicht angezeigt werden.'; + + @override + String get permissionsNeededTitle => 'Berechtigungen erforderlich'; + + @override + String get permissionsNeededOpenSettings => 'Einstellungen öffnen'; + + @override + String get permissionsDeniedCameraAccess => + 'Bitte gewähre Zulip zusätzliche Berechtigungen in den Einstellungen, um ein Bild hochzuladen.'; + + @override + String get permissionsDeniedReadExternalStorage => + 'Bitte gewähre Zulip zusätzliche Berechtigungen in den Einstellungen, um Dateien hochzuladen.'; + + @override + String get actionSheetOptionSubscribe => 'Abonnieren'; + + @override + String get subscribeFailedTitle => 'Konnte nicht abonnieren'; + + @override + String get actionSheetOptionMarkChannelAsRead => + 'Kanal als gelesen markieren'; + + @override + String get actionSheetOptionCopyChannelLink => 'Link zum Kanal kopieren'; + + @override + String get actionSheetOptionListOfTopics => 'Themenliste'; + + @override + String get actionSheetOptionChannelFeed => 'Kanal-Feed'; + + @override + String get actionSheetOptionUnsubscribe => 'Deabonnieren'; + + @override + String unsubscribeConfirmationDialogTitle(String channelName) { + return '$channelName deabonnieren?'; + } + + @override + String get unsubscribeConfirmationDialogMessageCannotResubscribe => + 'Once you leave this channel, you will not be able to rejoin.'; + + @override + String get unsubscribeConfirmationDialogConfirmButton => 'Deabonnieren'; + + @override + String get unsubscribeFailedTitle => 'Konnte nicht deabonnieren'; + + @override + String get actionSheetOptionMuteTopic => 'Thema stummschalten'; + + @override + String get actionSheetOptionUnmuteTopic => 'Thema lautschalten'; + + @override + String get actionSheetOptionFollowTopic => 'Thema folgen'; + + @override + String get actionSheetOptionUnfollowTopic => 'Thema entfolgen'; + + @override + String get actionSheetOptionResolveTopic => 'Als gelöst markieren'; + + @override + String get actionSheetOptionUnresolveTopic => 'Als ungelöst markieren'; + + @override + String get errorResolveTopicFailedTitle => + 'Thema konnte nicht als gelöst markiert werden'; + + @override + String get errorUnresolveTopicFailedTitle => + 'Thema konnte nicht als ungelöst markiert werden'; + + @override + String get actionSheetOptionSeeWhoReacted => 'Wer hat reagiert'; + + @override + String get seeWhoReactedSheetNoReactions => + 'Diese Nachricht hat keine Reaktionen.'; + + @override + String seeWhoReactedSheetHeaderLabel(int num) { + return 'Emoji-Reaktionen (insgesamt $num)'; + } + + @override + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num Stimmen', + one: '1 Stimme', + ); + return '$emojiName: $_temp0'; + } + + @override + String seeWhoReactedSheetUserListLabel(String emojiName, int num) { + return 'Stimmen für $emojiName ($num)'; + } + + @override + String get actionSheetOptionViewReadReceipts => + 'Empfangsbestätigungen ansehen'; + + @override + String get actionSheetReadReceipts => 'Empfangsbestätigungen'; + + @override + String actionSheetReadReceiptsReadCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: + 'Diese Nachricht wurde von $count Personen gelesen:', + one: 'Diese Nachricht wurde von einer Person gelesen:', + ); + return '$_temp0'; + } + + @override + String get actionSheetReadReceiptsZeroReadCount => + 'Niemand hat diese Nachricht bisher gelesen.'; + + @override + String get actionSheetReadReceiptsErrorReadCount => + 'Laden von Empfangsbestätigungen fehlgeschlagen.'; + + @override + String get actionSheetOptionCopyMessageText => 'Nachrichtentext kopieren'; + + @override + String get actionSheetOptionCopyMessageLink => 'Link zur Nachricht kopieren'; + + @override + String get actionSheetOptionMarkAsUnread => 'Ab hier als ungelesen markieren'; + + @override + String get actionSheetOptionHideMutedMessage => + 'Stummgeschaltete Nachricht wieder ausblenden'; + + @override + String get actionSheetOptionShare => 'Teilen'; + + @override + String get actionSheetOptionQuoteMessage => 'Nachricht zitieren'; + + @override + String get actionSheetOptionStarMessage => 'Nachricht markieren'; + + @override + String get actionSheetOptionUnstarMessage => 'Markierung aufheben'; + + @override + String get actionSheetOptionEditMessage => 'Nachricht bearbeiten'; + + @override + String get actionSheetOptionDeleteMessage => 'Delete message'; + + @override + String get deleteMessageConfirmationDialogTitle => 'Delete message?'; + + @override + String get deleteMessageConfirmationDialogMessage => + 'Deleting a message permanently removes it for everyone.'; + + @override + String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; + + @override + String get errorDeleteMessageFailedTitle => 'Failed to delete message'; + + @override + String get actionSheetOptionMarkTopicAsRead => 'Thema als gelesen markieren'; + + @override + String get actionSheetOptionCopyTopicLink => 'Link zum Thema kopieren'; + + @override + String get errorWebAuthOperationalErrorTitle => 'Etwas ist schiefgelaufen'; + + @override + String get errorWebAuthOperationalError => + 'Ein unerwarteter Fehler ist aufgetreten.'; + + @override + String get errorAccountLoggedInTitle => 'Account bereits angemeldet'; + + @override + String errorAccountLoggedIn(String email, String server) { + return 'Der Account $email auf $server ist bereits in deiner Account-Liste.'; + } + + @override + String get errorCouldNotFetchMessageSource => + 'Konnte Nachrichtenquelle nicht abrufen.'; + + @override + String get errorCopyingFailed => 'Kopieren fehlgeschlagen'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return 'Fehler beim Upload der Datei: $filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename: $size MiB'; + } + + @override + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num Dateien sind', + one: 'Datei ist', + ); + String _temp1 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num werden', + one: 'wird', + ); + return '$_temp0 größer als das Serverlimit von $maxFileUploadSizeMib MiB und $_temp1 nicht hochgeladen:\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: 'Dateien', + one: 'Datei', + ); + return '$_temp0 zu groß'; + } + + @override + String get errorLoginInvalidInputTitle => 'Ungültige Eingabe'; + + @override + String get errorLoginFailedTitle => 'Anmeldung fehlgeschlagen'; + + @override + String get errorMessageNotSent => 'Nachricht nicht versendet'; + + @override + String get errorMessageEditNotSaved => 'Nachricht nicht gespeichert'; + + @override + String errorLoginCouldNotConnect(String url) { + return 'Verbindung zu Server fehlgeschlagen:\n$url'; + } + + @override + String get errorCouldNotConnectTitle => 'Konnte nicht verbinden'; + + @override + String get errorMessageDoesNotSeemToExist => + 'Diese Nachricht scheint nicht zu existieren.'; + + @override + String get errorQuotationFailed => 'Zitat fehlgeschlagen'; + + @override + String errorServerMessage(String message) { + return 'Der Server sagte:\n\n$message'; + } + + @override + String get errorConnectingToServerShort => + 'Fehler beim Verbinden mit Zulip. Wiederhole…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return 'Fehler beim Verbinden mit Zulip auf $serverUrl. Wird wiederholt:\n\n$error'; + } + + @override + String get errorHandlingEventTitle => + 'Fehler beim Verarbeiten eines Zulip-Ereignisses. Wiederhole Verbindung…'; + + @override + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ) { + return 'Fehler beim Verarbeiten eines Zulip-Ereignisses von $serverUrl; Wird wiederholt.\n\nFehler: $error\n\nEreignis: $event'; + } + + @override + String get errorCouldNotOpenLinkTitle => 'Link kann nicht geöffnet werden'; + + @override + String errorCouldNotOpenLink(String url) { + return 'Link konnte nicht geöffnet werden: $url'; + } + + @override + String get errorMuteTopicFailed => 'Konnte Thema nicht stummschalten'; + + @override + String get errorUnmuteTopicFailed => 'Konnte Thema nicht lautschalten'; + + @override + String get errorFollowTopicFailed => 'Konnte Thema nicht folgen'; + + @override + String get errorUnfollowTopicFailed => 'Konnte Thema nicht entfolgen'; + + @override + String get errorSharingFailed => 'Teilen fehlgeschlagen'; + + @override + String get errorStarMessageFailedTitle => 'Konnte Nachricht nicht markieren'; + + @override + String get errorUnstarMessageFailedTitle => + 'Konnte Markierung nicht von der Nachricht entfernen'; + + @override + String get errorCouldNotEditMessageTitle => + 'Konnte Nachricht nicht bearbeiten'; + + @override + String get successLinkCopied => 'Link kopiert'; + + @override + String get successMessageTextCopied => 'Nachrichtentext kopiert'; + + @override + String get successMessageLinkCopied => 'Nachrichtenlink kopiert'; + + @override + String get successTopicLinkCopied => 'Link zum Thema kopiert'; + + @override + String get successChannelLinkCopied => 'Kanallink kopiert'; + + @override + String get errorBannerDeactivatedDmLabel => + 'Du kannst keine Nachrichten an deaktivierte Nutzer:innen senden.'; + + @override + String get errorBannerCannotPostInChannelLabel => + 'Du hast keine Berechtigung in diesen Kanal zu schreiben.'; + + @override + String get composeBoxBannerLabelUnsubscribedWhenCannotSend => + 'New messages will not appear automatically.'; + + @override + String get composeBoxBannerButtonRefresh => 'Refresh'; + + @override + String get composeBoxBannerButtonSubscribe => 'Subscribe'; + + @override + String get composeBoxBannerLabelEditMessage => 'Nachricht bearbeiten'; + + @override + String get composeBoxBannerButtonCancel => 'Abbrechen'; + + @override + String get composeBoxBannerButtonSave => 'Speichern'; + + @override + String get editAlreadyInProgressTitle => 'Kann Nachricht nicht bearbeiten'; + + @override + String get editAlreadyInProgressMessage => + 'Eine Bearbeitung läuft gerade. Bitte warte bis sie abgeschlossen ist.'; + + @override + String get savingMessageEditLabel => 'SPEICHERE BEARBEITUNG…'; + + @override + String get savingMessageEditFailedLabel => 'BEARBEITUNG NICHT GESPEICHERT'; + + @override + String get discardDraftConfirmationDialogTitle => + 'Die Nachricht, die du schreibst, verwerfen?'; + + @override + String get discardDraftForEditConfirmationDialogMessage => + 'Wenn du eine Nachricht bearbeitest, wird der vorherige Inhalt der Nachrichteneingabe verworfen.'; + + @override + String get discardDraftForOutboxConfirmationDialogMessage => + 'Wenn du eine nicht gesendete Nachricht wiederherstellst, wird der vorherige Inhalt der Nachrichteneingabe verworfen.'; + + @override + String get discardDraftConfirmationDialogConfirmButton => 'Verwerfen'; + + @override + String get composeBoxAttachFilesTooltip => 'Dateien anhängen'; + + @override + String get composeBoxAttachMediaTooltip => 'Bilder oder Videos anhängen'; + + @override + String get composeBoxAttachFromCameraTooltip => 'Ein Foto aufnehmen'; + + @override + String get composeBoxAttachFromVideoCallTooltip => 'Attach a video call'; + + @override + String get composeBoxGenericContentHint => 'Eine Nachricht eingeben'; + + @override + String get newDmSheetComposeButtonLabel => 'Verfassen'; + + @override + String get newDmSheetScreenTitle => 'Neue DN'; + + @override + String get newDmFabButtonLabel => 'Neue DN'; + + @override + String get newDmSheetSearchHintEmpty => + 'Füge ein oder mehrere Nutzer:innen hinzu'; + + @override + String get newDmSheetSearchHintSomeSelected => + 'Füge weitere Nutzer:in hinzu…'; + + @override + String get newDmSheetNoUsersFound => 'Keine Nutzer:innen gefunden'; + + @override + String composeBoxDmContentHint(String user) { + return 'Nachricht an @$user'; + } + + @override + String get composeBoxGroupDmContentHint => 'Nachricht an Gruppe'; + + @override + String get composeBoxSelfDmContentHint => 'Schreibe etwas'; + + @override + String composeBoxChannelContentHint(String destination) { + return 'Nachricht an $destination'; + } + + @override + String get preparingEditMessageContentInput => 'Bereite vor…'; + + @override + String get composeBoxSendTooltip => 'Senden'; + + @override + String get unknownChannelName => '(unbekannter Kanal)'; + + @override + String get composeBoxTopicHintText => 'Thema'; + + @override + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { + return 'Gib ein Thema ein (leer lassen für “$defaultTopicName”)'; + } + + @override + String composeBoxUploadingFilename(String filename) { + return 'Lade $filename hoch…'; + } + + @override + String get composeBoxUploadedVideoCallUrl => 'Join video call.'; + + @override + String composeBoxLoadingMessage(int messageId) { + return '(lade Nachricht $messageId)'; + } + + @override + String get unknownUserName => '(Nutzer:in unbekannt)'; + + @override + String get dmsWithYourselfPageTitle => 'DNs mit dir selbst'; + + @override + String messageListGroupYouAndOthers(String others) { + return 'Du und $others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return 'DNs mit $others'; + } + + @override + String get emptyMessageList => 'Hier gibt es keine Nachrichten.'; + + @override + String get emptyMessageListSearch => 'Keine Suchergebnisse.'; + + @override + String get messageListGroupYouWithYourself => 'Nachrichten mit dir selbst'; + + @override + String get contentValidationErrorTooLong => + 'Nachrichtenlänge sollte nicht größer als 10000 Zeichen sein.'; + + @override + String get contentValidationErrorEmpty => 'Du hast nichts zum Senden!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => + 'Bitte warte bis das Zitat abgeschlossen ist.'; + + @override + String get contentValidationErrorUploadInProgress => + 'Bitte warte bis das Hochladen abgeschlossen ist.'; + + @override + String get dialogCancel => 'Abbrechen'; + + @override + String get dialogContinue => 'Fortsetzen'; + + @override + String get dialogClose => 'Schließen'; + + @override + String get errorDialogLearnMore => 'Mehr erfahren'; + + @override + String get errorDialogContinue => 'OK'; + + @override + String get errorDialogTitle => 'Fehler'; + + @override + String get snackBarDetails => 'Details'; + + @override + String get lightboxCopyLinkTooltip => 'Link kopieren'; + + @override + String get lightboxVideoCurrentPosition => 'Aktuelle Position'; + + @override + String get lightboxVideoDuration => 'Videolänge'; + + @override + String get loginPageTitle => 'Anmelden'; + + @override + String get loginFormSubmitLabel => 'Anmelden'; + + @override + String get loginMethodDivider => 'ODER'; + + @override + String signInWithFoo(String method) { + return 'Anmelden mit $method'; + } + + @override + String get loginAddAnAccountPageTitle => 'Account hinzufügen'; + + @override + String get loginServerUrlLabel => 'Deine Zulip Server URL'; + + @override + String get loginHidePassword => 'Passwort verstecken'; + + @override + String get loginEmailLabel => 'E-Mail-Adresse'; + + @override + String get loginErrorMissingEmail => 'Bitte gib deine E-Mail ein.'; + + @override + String get loginPasswordLabel => 'Passwort'; + + @override + String get loginErrorMissingPassword => 'Bitte gib dein Passwort ein.'; + + @override + String get loginUsernameLabel => 'Benutzername'; + + @override + String get loginErrorMissingUsername => 'Bitte gib deinen Benutzernamen ein.'; + + @override + String get topicValidationErrorTooLong => + 'Länge des Themas sollte 60 Zeichen nicht überschreiten.'; + + @override + String get topicValidationErrorMandatoryButEmpty => + 'Themen sind in dieser Organisation erforderlich.'; + + @override + String get errorContentNotInsertedTitle => 'Inhalt nicht eingefügt'; + + @override + String get errorContentToInsertIsEmpty => + 'Die einzufügende Datei ist leer oder kann nicht geöffnet werden.'; + + @override + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ) { + return '$url nutzt Zulip Server $zulipVersion, welche nicht unterstützt wird. Die unterstützte Mindestversion ist Zulip Server $minSupportedZulipVersion.'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return 'Dein Account bei $url konnte nicht authentifiziert werden. Bitte wiederhole die Anmeldung oder verwende einen anderen Account.'; + } + + @override + String get errorInvalidResponse => + 'Der Server hat eine ungültige Antwort gesendet.'; + + @override + String get errorNetworkRequestFailed => 'Netzwerkanfrage fehlgeschlagen'; + + @override + String errorMalformedResponse(int httpStatus) { + return 'Server lieferte fehlerhafte Antwort; HTTP Status $httpStatus'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return 'Server lieferte fehlerhafte Antwort; HTTP Status $httpStatus; $details'; + } + + @override + String errorRequestFailed(int httpStatus) { + return 'Netzwerkanfrage fehlgeschlagen: HTTP Status $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => + 'Video konnte nicht wiedergegeben werden.'; + + @override + String get serverUrlValidationErrorEmpty => 'Bitte gib eine URL ein.'; + + @override + String get serverUrlValidationErrorInvalidUrl => + 'Bitte gib eine gültige URL ein.'; + + @override + String get serverUrlValidationErrorNoUseEmail => + 'Bitte gib die Server-URL ein, nicht deine E-Mail-Adresse.'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => + 'Die Server-URL muss mit http:// oder https:// beginnen.'; + + @override + String get spoilerDefaultHeaderText => 'Spoiler'; + + @override + String get markAllAsReadLabel => 'Alle Nachrichten als gelesen markieren'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num Nachrichten', + one: 'Eine Nachricht', + ); + return '$_temp0 als gelesen markiert.'; + } + + @override + String get markAsReadInProgress => 'Nachrichten werden als gelesen markiert…'; + + @override + String get errorMarkAsReadFailedTitle => + 'Als gelesen markieren fehlgeschlagen'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num Nachrichten', + one: 'Eine Nachricht', + ); + return '$_temp0 als ungelesen markiert.'; + } + + @override + String get markAsUnreadInProgress => + 'Nachrichten werden als ungelesen markiert…'; + + @override + String get errorMarkAsUnreadFailedTitle => + 'Als ungelesen markieren fehlgeschlagen'; + + @override + String get today => 'Heute'; + + @override + String get yesterday => 'Gestern'; + + @override + String get userActiveNow => 'Gerade aktiv'; + + @override + String get userIdle => 'Untätig'; + + @override + String userActiveMinutesAgo(int minutes) { + String _temp0 = intl.Intl.pluralLogic( + minutes, + locale: localeName, + other: '$minutes Minuten', + one: 'einer Minute', + ); + return 'Aktiv vor $_temp0'; + } + + @override + String userActiveHoursAgo(int hours) { + String _temp0 = intl.Intl.pluralLogic( + hours, + locale: localeName, + other: '$hours Stunden', + one: 'einer Stunde', + ); + return 'Aktiv vor $_temp0'; + } + + @override + String get userActiveYesterday => 'Gestern aktiv'; + + @override + String userActiveDaysAgo(int days) { + String _temp0 = intl.Intl.pluralLogic( + days, + locale: localeName, + other: '$days Tagen', + one: 'einem Tag', + ); + return 'Aktiv vor $_temp0'; + } + + @override + String userActiveDate(String date) { + return 'Aktiv $date'; + } + + @override + String get userNotActiveInYear => 'Im letzten Jahr nicht aktiv'; + + @override + String get invisibleMode => 'Unsichtbarer Modus'; + + @override + String get turnOnInvisibleModeErrorTitle => + 'Fehler beim Einschalten des unsichtbaren Modus. Bitte versuche es erneut.'; + + @override + String get turnOffInvisibleModeErrorTitle => + 'Fehler beim Ausschalten des unsichtbaren Modus. Bitte versuche es erneut.'; + + @override + String get userRoleOwner => 'Besitzer'; + + @override + String get userRoleAdministrator => 'Administrator'; + + @override + String get userRoleModerator => 'Moderator'; + + @override + String get userRoleMember => 'Mitglied'; + + @override + String get userRoleGuest => 'Gast'; + + @override + String get userRoleUnknown => 'Unbekannt'; + + @override + String get statusButtonLabelStatusSet => 'Status'; + + @override + String get statusButtonLabelStatusUnset => 'Status setzen'; + + @override + String get noStatusText => 'Kein Statustext'; + + @override + String get setStatusPageTitle => 'Status setzen'; + + @override + String get statusClearButtonLabel => 'Leeren'; + + @override + String get statusSaveButtonLabel => 'Speichern'; + + @override + String get statusTextHint => 'Dein Status'; + + @override + String get userStatusBusy => 'Beschäftigt'; + + @override + String get userStatusInAMeeting => 'In einem Meeting'; + + @override + String get userStatusCommuting => 'Unterwegs'; + + @override + String get userStatusOutSick => 'Krankgemeldet'; + + @override + String get userStatusVacationing => 'Im Urlaub'; + + @override + String get userStatusWorkingRemotely => 'Arbeitet von zu Hause'; + + @override + String get userStatusAtTheOffice => 'Im Büro'; + + @override + String get updateStatusErrorTitle => + 'Fehler beim Update des Benutzerstatus. Bitte versuche es nochmal.'; + + @override + String get searchMessagesPageTitle => 'Suche'; + + @override + String get searchMessagesHintText => 'Suche'; + + @override + String get searchMessagesClearButtonTooltip => 'Leeren'; + + @override + String get inboxPageTitle => 'Eingang'; + + @override + String get inboxEmptyPlaceholder => + 'Es sind keine ungelesenen Nachrichten in deinem Eingang. Verwende die Buttons unten, um den kombinierten Feed oder die Kanalliste anzusehen.'; + + @override + String get recentDmConversationsPageTitle => 'Direktnachrichten'; + + @override + String get recentDmConversationsSectionHeader => 'Direktnachrichten'; + + @override + String get recentDmConversationsEmptyPlaceholder => + 'Du hast noch keine Direktnachrichten! Warum nicht die Unterhaltung beginnen?'; + + @override + String get combinedFeedPageTitle => 'Kombinierter Feed'; + + @override + String get mentionsPageTitle => 'Erwähnungen'; + + @override + String get starredMessagesPageTitle => 'Markierte Nachrichten'; + + @override + String get channelsPageTitle => 'Kanäle'; + + @override + String get channelsEmptyPlaceholder => 'Du hast noch keine Kanäle abonniert.'; + + @override + String channelsEmptyPlaceholderWithAllChannelsLink( + String allChannelsPageTitle, + ) { + return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; + } + + @override + String get sharePageTitle => 'Teilen'; + + @override + String get mainMenuMyProfile => 'Mein Profil'; + + @override + String get topicsButtonTooltip => 'Themen'; + + @override + String get channelFeedButtonTooltip => 'Kanal-Feed'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: '$numOthers weitere', + one: '1 weitere:n', + ); + return '$senderFullName an dich und $_temp0'; + } + + @override + String get pinnedSubscriptionsLabel => 'Angeheftet'; + + @override + String get unpinnedSubscriptionsLabel => 'Nicht angeheftet'; + + @override + String get notifSelfUser => 'Du'; + + @override + String get reactedEmojiSelfUser => 'Du'; + + @override + String get reactionChipsLabel => 'Reaktionen'; + + @override + String reactionChipLabel(String emojiName, String votes) { + return '$emojiName: $votes'; + } + + @override + String reactionChipVotesYouAndOthers(int otherUsersCount) { + String _temp0 = intl.Intl.pluralLogic( + otherUsersCount, + locale: localeName, + other: 'Du und $otherUsersCount weitere', + one: 'Du und ein weiterer', + ); + return '$_temp0'; + } + + @override + String onePersonTyping(String typist) { + return '$typist tippt…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist und $otherTypist tippen…'; + } + + @override + String get manyPeopleTyping => 'Mehrere Leute tippen…'; + + @override + String get wildcardMentionAll => 'alle'; + + @override + String get wildcardMentionEveryone => 'jeder'; + + @override + String get wildcardMentionChannel => 'Kanal'; + + @override + String get wildcardMentionStream => 'Stream'; + + @override + String get wildcardMentionTopic => 'Thema'; + + @override + String get wildcardMentionChannelDescription => 'Kanal benachrichtigen'; + + @override + String get wildcardMentionStreamDescription => 'Stream benachrichtigen'; + + @override + String get wildcardMentionAllDmDescription => 'Empfänger benachrichtigen'; + + @override + String get wildcardMentionTopicDescription => 'Thema benachrichtigen'; + + @override + String get messageIsEditedLabel => 'BEARBEITET'; + + @override + String get messageIsMovedLabel => 'VERSCHOBEN'; + + @override + String get messageNotSentLabel => 'NACHRICHT NICHT GESENDET'; + + @override + String pollVoterNames(String voterNames) { + return '$voterNames'; + } + + @override + String get themeSettingTitle => 'THEMA'; + + @override + String get themeSettingDark => 'Dunkel'; + + @override + String get themeSettingLight => 'Hell'; + + @override + String get themeSettingSystem => 'System'; + + @override + String get openLinksWithInAppBrowser => 'Links mit In-App-Browser öffnen'; + + @override + String get pollWidgetQuestionMissing => 'Keine Frage.'; + + @override + String get pollWidgetOptionsMissing => + 'Diese Umfrage hat noch keine Optionen.'; + + @override + String get initialAnchorSettingTitle => 'Nachrichten-Feed öffnen bei'; + + @override + String get initialAnchorSettingDescription => + 'Du kannst auswählen ob Nachrichten-Feeds bei deiner ersten ungelesenen oder bei den neuesten Nachrichten geöffnet werden.'; + + @override + String get initialAnchorSettingFirstUnreadAlways => + 'Erste ungelesene Nachricht'; + + @override + String get initialAnchorSettingFirstUnreadConversations => + 'Erste ungelesene Nachricht in Unterhaltungsansicht, sonst neueste Nachricht'; + + @override + String get initialAnchorSettingNewestAlways => 'Neueste Nachricht'; + + @override + String get markReadOnScrollSettingTitle => + 'Nachrichten beim Scrollen als gelesen markieren'; + + @override + String get markReadOnScrollSettingDescription => + 'Sollen Nachrichten automatisch als gelesen markiert werden, wenn du sie durchscrollst?'; + + @override + String get markReadOnScrollSettingAlways => 'Immer'; + + @override + String get markReadOnScrollSettingNever => 'Nie'; + + @override + String get markReadOnScrollSettingConversations => + 'Nur in Unterhaltungsansichten'; + + @override + String get markReadOnScrollSettingConversationsDescription => + 'Nachrichten werden nur beim Ansehen einzelner Themen oder Direktnachrichten automatisch als gelesen markiert.'; + + @override + String get experimentalFeatureSettingsPageTitle => + 'Experimentelle Funktionen'; + + @override + String get experimentalFeatureSettingsWarning => + 'Diese Optionen aktivieren Funktionen, die noch in Entwicklung und nicht bereit sind. Sie funktionieren möglicherweise nicht und können Problem in anderen Bereichen der App verursachen.\n\nDer Zweck dieser Einstellungen ist das Experimentieren der Leute, die an der Entwicklung von Zulip arbeiten.'; + + @override + String get errorNotificationOpenTitle => + 'Fehler beim Öffnen der Benachrichtigung'; + + @override + String get errorNotificationOpenAccountNotFound => + 'Der Account, der mit dieser Benachrichtigung verknüpft ist, konnte nicht gefunden werden.'; + + @override + String get errorReactionAddingFailedTitle => + 'Hinzufügen der Reaktion fehlgeschlagen'; + + @override + String get errorReactionRemovingFailedTitle => + 'Entfernen der Reaktion fehlgeschlagen'; + + @override + String get errorSharingTitle => 'Teilen des Inhalts fehlgeschlagen'; + + @override + String get errorSharingAccountNotLoggedIn => + 'Es ist kein Konto angemeldet. Bitte logge dich in ein Konto ein und versuche es erneut.'; + + @override + String get emojiReactionsMore => 'mehr'; + + @override + String get emojiPickerSearchEmoji => 'Emoji suchen'; + + @override + String get noEarlierMessages => 'Keine früheren Nachrichten'; + + @override + String get revealButtonLabel => 'Nachricht anzeigen'; + + @override + String get mutedUser => 'Stummgeschaltete:r Nutzer:in'; + + @override + String get scrollToBottomTooltip => 'Nach unten Scrollen'; + + @override + String get appVersionUnknownPlaceholder => '(…)'; + + @override + String get zulipAppTitle => 'Zulip'; +} diff --git a/lib/generated/l10n/zulip_localizations_en.dart b/lib/generated/l10n/zulip_localizations_en.dart index 4ad9cf4f51..a24e0f1c3f 100644 --- a/lib/generated/l10n/zulip_localizations_en.dart +++ b/lib/generated/l10n/zulip_localizations_en.dart @@ -1,1172 +1,1178 @@ -// ignore: unused_import -import 'package:intl/intl.dart' as intl; -import 'zulip_localizations.dart'; - -// ignore_for_file: type=lint - -/// The translations for English (`en`). -class ZulipLocalizationsEn extends ZulipLocalizations { - ZulipLocalizationsEn([String locale = 'en']) : super(locale); - - @override - String get aboutPageTitle => 'About Zulip'; - - @override - String get aboutPageAppVersion => 'App version'; - - @override - String get aboutPageOpenSourceLicenses => 'Open-source licenses'; - - @override - String get aboutPageTapToView => 'Tap to view'; - - @override - String get upgradeWelcomeDialogTitle => 'Welcome to the new Zulip app!'; - - @override - String get upgradeWelcomeDialogMessage => - 'You’ll find a familiar experience in a faster, sleeker package.'; - - @override - String get upgradeWelcomeDialogLinkText => - 'Check out the announcement blog post!'; - - @override - String get upgradeWelcomeDialogDismiss => 'Let\'s go'; - - @override - String get chooseAccountPageTitle => 'Choose account'; - - @override - String get settingsPageTitle => 'Settings'; - - @override - String get switchAccountButton => 'Switch account'; - - @override - String tryAnotherAccountMessage(Object url) { - return 'Your account at $url is taking a while to load.'; - } - - @override - String get tryAnotherAccountButton => 'Try another account'; - - @override - String get chooseAccountPageLogOutButton => 'Log out'; - - @override - String get logOutConfirmationDialogTitle => 'Log out?'; - - @override - String get logOutConfirmationDialogMessage => - 'To use this account in the future, you will have to re-enter the URL for your organization and your account information.'; - - @override - String get logOutConfirmationDialogConfirmButton => 'Log out'; - - @override - String get chooseAccountButtonAddAnAccount => 'Add an account'; - - @override - String get navButtonAllChannels => 'All channels'; - - @override - String get allChannelsPageTitle => 'All channels'; - - @override - String get allChannelsEmptyPlaceholder => - 'There are no channels you can view in this organization.'; - - @override - String get profileButtonSendDirectMessage => 'Send direct message'; - - @override - String get errorCouldNotShowUserProfile => 'Could not show user profile.'; - - @override - String get permissionsNeededTitle => 'Permissions needed'; - - @override - String get permissionsNeededOpenSettings => 'Open settings'; - - @override - String get permissionsDeniedCameraAccess => - 'To upload an image, please grant Zulip additional permissions in Settings.'; - - @override - String get permissionsDeniedReadExternalStorage => - 'To upload files, please grant Zulip additional permissions in Settings.'; - - @override - String get actionSheetOptionSubscribe => 'Subscribe'; - - @override - String get subscribeFailedTitle => 'Failed to subscribe'; - - @override - String get actionSheetOptionMarkChannelAsRead => 'Mark channel as read'; - - @override - String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; - - @override - String get actionSheetOptionListOfTopics => 'List of topics'; - - @override - String get actionSheetOptionChannelFeed => 'Channel feed'; - - @override - String get actionSheetOptionUnsubscribe => 'Unsubscribe'; - - @override - String unsubscribeConfirmationDialogTitle(String channelName) { - return 'Unsubscribe from $channelName?'; - } - - @override - String get unsubscribeConfirmationDialogMessageCannotResubscribe => - 'Once you leave this channel, you will not be able to rejoin.'; - - @override - String get unsubscribeConfirmationDialogConfirmButton => 'Unsubscribe'; - - @override - String get unsubscribeFailedTitle => 'Failed to unsubscribe'; - - @override - String get actionSheetOptionMuteTopic => 'Mute topic'; - - @override - String get actionSheetOptionUnmuteTopic => 'Unmute topic'; - - @override - String get actionSheetOptionFollowTopic => 'Follow topic'; - - @override - String get actionSheetOptionUnfollowTopic => 'Unfollow topic'; - - @override - String get actionSheetOptionResolveTopic => 'Mark as resolved'; - - @override - String get actionSheetOptionUnresolveTopic => 'Mark as unresolved'; - - @override - String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved'; - - @override - String get errorUnresolveTopicFailedTitle => - 'Failed to mark topic as unresolved'; - - @override - String get actionSheetOptionSeeWhoReacted => 'See who reacted'; - - @override - String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; - - @override - String seeWhoReactedSheetHeaderLabel(int num) { - return 'Emoji reactions ($num total)'; - } - - @override - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num votes', - one: '1 vote', - ); - return '$emojiName: $_temp0'; - } - - @override - String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Votes for $emojiName ($num)'; - } - - @override - String get actionSheetOptionViewReadReceipts => 'View read receipts'; - - @override - String get actionSheetReadReceipts => 'Read receipts'; - - @override - String actionSheetReadReceiptsReadCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: 'This message has been read by $count people:', - one: 'This message has been read by $count person:', - ); - return '$_temp0'; - } - - @override - String get actionSheetReadReceiptsZeroReadCount => - 'No one has read this message yet.'; - - @override - String get actionSheetReadReceiptsErrorReadCount => - 'Failed to load read receipts.'; - - @override - String get actionSheetOptionCopyMessageText => 'Copy message text'; - - @override - String get actionSheetOptionCopyMessageLink => 'Copy link to message'; - - @override - String get actionSheetOptionMarkAsUnread => 'Mark as unread from here'; - - @override - String get actionSheetOptionHideMutedMessage => 'Hide muted message again'; - - @override - String get actionSheetOptionShare => 'Share'; - - @override - String get actionSheetOptionQuoteMessage => 'Quote message'; - - @override - String get actionSheetOptionStarMessage => 'Star message'; - - @override - String get actionSheetOptionUnstarMessage => 'Unstar message'; - - @override - String get actionSheetOptionEditMessage => 'Edit message'; - - @override - String get actionSheetOptionDeleteMessage => 'Delete message'; - - @override - String get deleteMessageConfirmationDialogTitle => 'Delete message?'; - - @override - String get deleteMessageConfirmationDialogMessage => - 'Deleting a message permanently removes it for everyone.'; - - @override - String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; - - @override - String get errorDeleteMessageFailedTitle => 'Failed to delete message'; - - @override - String get actionSheetOptionMarkTopicAsRead => 'Mark topic as read'; - - @override - String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; - - @override - String get errorWebAuthOperationalErrorTitle => 'Something went wrong'; - - @override - String get errorWebAuthOperationalError => 'An unexpected error occurred.'; - - @override - String get errorAccountLoggedInTitle => 'Account already logged in'; - - @override - String errorAccountLoggedIn(String email, String server) { - return 'The account $email at $server is already in your list of accounts.'; - } - - @override - String get errorCouldNotFetchMessageSource => - 'Could not fetch message source.'; - - @override - String get errorCopyingFailed => 'Copying failed'; - - @override - String errorFailedToUploadFileTitle(String filename) { - return 'Failed to upload file: $filename'; - } - - @override - String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size MiB'; - } - - @override - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num files are', - one: 'File is', - ); - return '$_temp0 larger than the server\'s limit of $maxFileUploadSizeMib MiB and will not be uploaded:\n\n$listMessage'; - } - - @override - String errorFilesTooLargeTitle(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: 'Files', - one: 'File', - ); - return '$_temp0 too large'; - } - - @override - String get errorLoginInvalidInputTitle => 'Invalid input'; - - @override - String get errorLoginFailedTitle => 'Login failed'; - - @override - String get errorMessageNotSent => 'Message not sent'; - - @override - String get errorMessageEditNotSaved => 'Message not saved'; - - @override - String errorLoginCouldNotConnect(String url) { - return 'Failed to connect to server:\n$url'; - } - - @override - String get errorCouldNotConnectTitle => 'Could not connect'; - - @override - String get errorMessageDoesNotSeemToExist => - 'That message does not seem to exist.'; - - @override - String get errorQuotationFailed => 'Quotation failed'; - - @override - String errorServerMessage(String message) { - return 'The server said:\n\n$message'; - } - - @override - String get errorConnectingToServerShort => - 'Error connecting to Zulip. Retrying…'; - - @override - String errorConnectingToServerDetails(String serverUrl, String error) { - return 'Error connecting to Zulip at $serverUrl. Will retry:\n\n$error'; - } - - @override - String get errorHandlingEventTitle => - 'Error handling a Zulip event. Retrying connection…'; - - @override - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ) { - return 'Error handling a Zulip event from $serverUrl; will retry.\n\nError: $error\n\nEvent: $event'; - } - - @override - String get errorCouldNotOpenLinkTitle => 'Unable to open link'; - - @override - String errorCouldNotOpenLink(String url) { - return 'Link could not be opened: $url'; - } - - @override - String get errorMuteTopicFailed => 'Failed to mute topic'; - - @override - String get errorUnmuteTopicFailed => 'Failed to unmute topic'; - - @override - String get errorFollowTopicFailed => 'Failed to follow topic'; - - @override - String get errorUnfollowTopicFailed => 'Failed to unfollow topic'; - - @override - String get errorSharingFailed => 'Sharing failed'; - - @override - String get errorStarMessageFailedTitle => 'Failed to star message'; - - @override - String get errorUnstarMessageFailedTitle => 'Failed to unstar message'; - - @override - String get errorCouldNotEditMessageTitle => 'Could not edit message'; - - @override - String get successLinkCopied => 'Link copied'; - - @override - String get successMessageTextCopied => 'Message text copied'; - - @override - String get successMessageLinkCopied => 'Message link copied'; - - @override - String get successTopicLinkCopied => 'Topic link copied'; - - @override - String get successChannelLinkCopied => 'Channel link copied'; - - @override - String get errorBannerDeactivatedDmLabel => - 'You cannot send messages to deactivated users.'; - - @override - String get errorBannerCannotPostInChannelLabel => - 'You do not have permission to post in this channel.'; - - @override - String get composeBoxBannerLabelUnsubscribedWhenCannotSend => - 'New messages will not appear automatically.'; - - @override - String get composeBoxBannerButtonRefresh => 'Refresh'; - - @override - String get composeBoxBannerButtonSubscribe => 'Subscribe'; - - @override - String get composeBoxBannerLabelEditMessage => 'Edit message'; - - @override - String get composeBoxBannerButtonCancel => 'Cancel'; - - @override - String get composeBoxBannerButtonSave => 'Save'; - - @override - String get editAlreadyInProgressTitle => 'Cannot edit message'; - - @override - String get editAlreadyInProgressMessage => - 'An edit is already in progress. Please wait for it to complete.'; - - @override - String get savingMessageEditLabel => 'SAVING EDIT…'; - - @override - String get savingMessageEditFailedLabel => 'EDIT NOT SAVED'; - - @override - String get discardDraftConfirmationDialogTitle => - 'Discard the message you’re writing?'; - - @override - String get discardDraftForEditConfirmationDialogMessage => - 'When you edit a message, the content that was previously in the compose box is discarded.'; - - @override - String get discardDraftForOutboxConfirmationDialogMessage => - 'When you restore an unsent message, the content that was previously in the compose box is discarded.'; - - @override - String get discardDraftConfirmationDialogConfirmButton => 'Discard'; - - @override - String get composeBoxAttachFilesTooltip => 'Attach files'; - - @override - String get composeBoxAttachMediaTooltip => 'Attach images or videos'; - - @override - String get composeBoxAttachFromCameraTooltip => 'Take a photo'; - - @override - String get composeBoxGenericContentHint => 'Type a message'; - - @override - String get newDmSheetComposeButtonLabel => 'Compose'; - - @override - String get newDmSheetScreenTitle => 'New DM'; - - @override - String get newDmFabButtonLabel => 'New DM'; - - @override - String get newDmSheetSearchHintEmpty => 'Add one or more users'; - - @override - String get newDmSheetSearchHintSomeSelected => 'Add another user…'; - - @override - String get newDmSheetNoUsersFound => 'No users found'; - - @override - String composeBoxDmContentHint(String user) { - return 'Message @$user'; - } - - @override - String get composeBoxGroupDmContentHint => 'Message group'; - - @override - String get composeBoxSelfDmContentHint => 'Write yourself a note'; - - @override - String composeBoxChannelContentHint(String destination) { - return 'Message $destination'; - } - - @override - String get preparingEditMessageContentInput => 'Preparing…'; - - @override - String get composeBoxSendTooltip => 'Send'; - - @override - String get unknownChannelName => '(unknown channel)'; - - @override - String get composeBoxTopicHintText => 'Topic'; - - @override - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { - return 'Enter a topic (skip for “$defaultTopicName”)'; - } - - @override - String composeBoxUploadingFilename(String filename) { - return 'Uploading $filename…'; - } - - @override - String composeBoxLoadingMessage(int messageId) { - return '(loading message $messageId)'; - } - - @override - String get unknownUserName => '(unknown user)'; - - @override - String get dmsWithYourselfPageTitle => 'DMs with yourself'; - - @override - String messageListGroupYouAndOthers(String others) { - return 'You and $others'; - } - - @override - String dmsWithOthersPageTitle(String others) { - return 'DMs with $others'; - } - - @override - String get emptyMessageList => 'There are no messages here.'; - - @override - String get emptyMessageListSearch => 'No search results.'; - - @override - String get messageListGroupYouWithYourself => 'Messages with yourself'; - - @override - String get contentValidationErrorTooLong => - 'Message length shouldn\'t be greater than 10000 characters.'; - - @override - String get contentValidationErrorEmpty => 'You have nothing to send!'; - - @override - String get contentValidationErrorQuoteAndReplyInProgress => - 'Please wait for the quotation to complete.'; - - @override - String get contentValidationErrorUploadInProgress => - 'Please wait for the upload to complete.'; - - @override - String get dialogCancel => 'Cancel'; - - @override - String get dialogContinue => 'Continue'; - - @override - String get dialogClose => 'Close'; - - @override - String get errorDialogLearnMore => 'Learn more'; - - @override - String get errorDialogContinue => 'OK'; - - @override - String get errorDialogTitle => 'Error'; - - @override - String get snackBarDetails => 'Details'; - - @override - String get lightboxCopyLinkTooltip => 'Copy link'; - - @override - String get lightboxVideoCurrentPosition => 'Current position'; - - @override - String get lightboxVideoDuration => 'Video duration'; - - @override - String get loginPageTitle => 'Log in'; - - @override - String get loginFormSubmitLabel => 'Log in'; - - @override - String get loginMethodDivider => 'OR'; - - @override - String signInWithFoo(String method) { - return 'Sign in with $method'; - } - - @override - String get loginAddAnAccountPageTitle => 'Add an account'; - - @override - String get loginServerUrlLabel => 'Your Zulip server URL'; - - @override - String get loginHidePassword => 'Hide password'; - - @override - String get loginEmailLabel => 'Email address'; - - @override - String get loginErrorMissingEmail => 'Please enter your email.'; - - @override - String get loginPasswordLabel => 'Password'; - - @override - String get loginErrorMissingPassword => 'Please enter your password.'; - - @override - String get loginUsernameLabel => 'Username'; - - @override - String get loginErrorMissingUsername => 'Please enter your username.'; - - @override - String get topicValidationErrorTooLong => - 'Topic length shouldn\'t be greater than 60 characters.'; - - @override - String get topicValidationErrorMandatoryButEmpty => - 'Topics are required in this organization.'; - - @override - String get errorContentNotInsertedTitle => 'Content not inserted'; - - @override - String get errorContentToInsertIsEmpty => - 'The file to be inserted is empty or cannot be accessed.'; - - @override - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ) { - return '$url is running Zulip Server $zulipVersion, which is unsupported. The minimum supported version is Zulip Server $minSupportedZulipVersion.'; - } - - @override - String errorInvalidApiKeyMessage(String url) { - return 'Your account at $url could not be authenticated. Please try logging in again or use another account.'; - } - - @override - String get errorInvalidResponse => 'The server sent an invalid response.'; - - @override - String get errorNetworkRequestFailed => 'Network request failed'; - - @override - String errorMalformedResponse(int httpStatus) { - return 'Server gave malformed response; HTTP status $httpStatus'; - } - - @override - String errorMalformedResponseWithCause(int httpStatus, String details) { - return 'Server gave malformed response; HTTP status $httpStatus; $details'; - } - - @override - String errorRequestFailed(int httpStatus) { - return 'Network request failed: HTTP status $httpStatus'; - } - - @override - String get errorVideoPlayerFailed => 'Unable to play the video.'; - - @override - String get serverUrlValidationErrorEmpty => 'Please enter a URL.'; - - @override - String get serverUrlValidationErrorInvalidUrl => 'Please enter a valid URL.'; - - @override - String get serverUrlValidationErrorNoUseEmail => - 'Please enter the server URL, not your email.'; - - @override - String get serverUrlValidationErrorUnsupportedScheme => - 'The server URL must start with http:// or https://.'; - - @override - String get spoilerDefaultHeaderText => 'Spoiler'; - - @override - String get markAllAsReadLabel => 'Mark all messages as read'; - - @override - String markAsReadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num messages', - one: '1 message', - ); - return 'Marked $_temp0 as read.'; - } - - @override - String get markAsReadInProgress => 'Marking messages as read…'; - - @override - String get errorMarkAsReadFailedTitle => 'Mark as read failed'; - - @override - String markAsUnreadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num messages', - one: '1 message', - ); - return 'Marked $_temp0 as unread.'; - } - - @override - String get markAsUnreadInProgress => 'Marking messages as unread…'; - - @override - String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed'; - - @override - String get today => 'Today'; - - @override - String get yesterday => 'Yesterday'; - - @override - String get userActiveNow => 'Active now'; - - @override - String get userIdle => 'Idle'; - - @override - String userActiveMinutesAgo(int minutes) { - String _temp0 = intl.Intl.pluralLogic( - minutes, - locale: localeName, - other: '$minutes minutes', - one: '1 minute', - ); - return 'Active $_temp0 ago'; - } - - @override - String userActiveHoursAgo(int hours) { - String _temp0 = intl.Intl.pluralLogic( - hours, - locale: localeName, - other: '$hours hours', - one: '1 hour', - ); - return 'Active $_temp0 ago'; - } - - @override - String get userActiveYesterday => 'Active yesterday'; - - @override - String userActiveDaysAgo(int days) { - String _temp0 = intl.Intl.pluralLogic( - days, - locale: localeName, - other: '$days days', - one: '1 day', - ); - return 'Active $_temp0 ago'; - } - - @override - String userActiveDate(String date) { - return 'Active $date'; - } - - @override - String get userNotActiveInYear => 'Not active in the last year'; - - @override - String get invisibleMode => 'Invisible mode'; - - @override - String get turnOnInvisibleModeErrorTitle => - 'Error turning on invisible mode. Please try again.'; - - @override - String get turnOffInvisibleModeErrorTitle => - 'Error turning off invisible mode. Please try again.'; - - @override - String get userRoleOwner => 'Owner'; - - @override - String get userRoleAdministrator => 'Administrator'; - - @override - String get userRoleModerator => 'Moderator'; - - @override - String get userRoleMember => 'Member'; - - @override - String get userRoleGuest => 'Guest'; - - @override - String get userRoleUnknown => 'Unknown'; - - @override - String get statusButtonLabelStatusSet => 'Status'; - - @override - String get statusButtonLabelStatusUnset => 'Set status'; - - @override - String get noStatusText => 'No status text'; - - @override - String get setStatusPageTitle => 'Set status'; - - @override - String get statusClearButtonLabel => 'Clear'; - - @override - String get statusSaveButtonLabel => 'Save'; - - @override - String get statusTextHint => 'Your status'; - - @override - String get userStatusBusy => 'Busy'; - - @override - String get userStatusInAMeeting => 'In a meeting'; - - @override - String get userStatusCommuting => 'Commuting'; - - @override - String get userStatusOutSick => 'Out sick'; - - @override - String get userStatusVacationing => 'Vacationing'; - - @override - String get userStatusWorkingRemotely => 'Working remotely'; - - @override - String get userStatusAtTheOffice => 'At the office'; - - @override - String get updateStatusErrorTitle => - 'Error updating user status. Please try again.'; - - @override - String get searchMessagesPageTitle => 'Search'; - - @override - String get searchMessagesHintText => 'Search'; - - @override - String get searchMessagesClearButtonTooltip => 'Clear'; - - @override - String get inboxPageTitle => 'Inbox'; - - @override - String get inboxEmptyPlaceholder => - 'There are no unread messages in your inbox. Use the buttons below to view the combined feed or list of channels.'; - - @override - String get recentDmConversationsPageTitle => 'Direct messages'; - - @override - String get recentDmConversationsSectionHeader => 'Direct messages'; - - @override - String get recentDmConversationsEmptyPlaceholder => - 'You have no direct messages yet! Why not start the conversation?'; - - @override - String get combinedFeedPageTitle => 'Combined feed'; - - @override - String get mentionsPageTitle => 'Mentions'; - - @override - String get starredMessagesPageTitle => 'Starred messages'; - - @override - String get channelsPageTitle => 'Channels'; - - @override - String get channelsEmptyPlaceholder => - 'You’re not subscribed to any channels yet.'; - - @override - String channelsEmptyPlaceholderWithAllChannelsLink( - String allChannelsPageTitle, - ) { - return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; - } - - @override - String get sharePageTitle => 'Share'; - - @override - String get mainMenuMyProfile => 'My profile'; - - @override - String get topicsButtonTooltip => 'Topics'; - - @override - String get channelFeedButtonTooltip => 'Channel feed'; - - @override - String notifGroupDmConversationLabel(String senderFullName, int numOthers) { - String _temp0 = intl.Intl.pluralLogic( - numOthers, - locale: localeName, - other: '$numOthers others', - one: '1 other', - ); - return '$senderFullName to you and $_temp0'; - } - - @override - String get pinnedSubscriptionsLabel => 'Pinned'; - - @override - String get unpinnedSubscriptionsLabel => 'Unpinned'; - - @override - String get notifSelfUser => 'You'; - - @override - String get reactedEmojiSelfUser => 'You'; - - @override - String get reactionChipsLabel => 'Reactions'; - - @override - String reactionChipLabel(String emojiName, String votes) { - return '$emojiName: $votes'; - } - - @override - String reactionChipVotesYouAndOthers(int otherUsersCount) { - String _temp0 = intl.Intl.pluralLogic( - otherUsersCount, - locale: localeName, - other: 'You and $otherUsersCount others', - one: 'You and 1 other', - ); - return '$_temp0'; - } - - @override - String onePersonTyping(String typist) { - return '$typist is typing…'; - } - - @override - String twoPeopleTyping(String typist, String otherTypist) { - return '$typist and $otherTypist are typing…'; - } - - @override - String get manyPeopleTyping => 'Several people are typing…'; - - @override - String get wildcardMentionAll => 'all'; - - @override - String get wildcardMentionEveryone => 'everyone'; - - @override - String get wildcardMentionChannel => 'channel'; - - @override - String get wildcardMentionStream => 'stream'; - - @override - String get wildcardMentionTopic => 'topic'; - - @override - String get wildcardMentionChannelDescription => 'Notify channel'; - - @override - String get wildcardMentionStreamDescription => 'Notify stream'; - - @override - String get wildcardMentionAllDmDescription => 'Notify recipients'; - - @override - String get wildcardMentionTopicDescription => 'Notify topic'; - - @override - String get messageIsEditedLabel => 'EDITED'; - - @override - String get messageIsMovedLabel => 'MOVED'; - - @override - String get messageNotSentLabel => 'MESSAGE NOT SENT'; - - @override - String pollVoterNames(String voterNames) { - return '($voterNames)'; - } - - @override - String get themeSettingTitle => 'THEME'; - - @override - String get themeSettingDark => 'Dark'; - - @override - String get themeSettingLight => 'Light'; - - @override - String get themeSettingSystem => 'System'; - - @override - String get openLinksWithInAppBrowser => 'Open links with in-app browser'; - - @override - String get pollWidgetQuestionMissing => 'No question.'; - - @override - String get pollWidgetOptionsMissing => 'This poll has no options yet.'; - - @override - String get initialAnchorSettingTitle => 'Open message feeds at'; - - @override - String get initialAnchorSettingDescription => - 'You can choose whether message feeds open at your first unread message or at the newest messages.'; - - @override - String get initialAnchorSettingFirstUnreadAlways => 'First unread message'; - - @override - String get initialAnchorSettingFirstUnreadConversations => - 'First unread message in conversation views, newest message elsewhere'; - - @override - String get initialAnchorSettingNewestAlways => 'Newest message'; - - @override - String get markReadOnScrollSettingTitle => 'Mark messages as read on scroll'; - - @override - String get markReadOnScrollSettingDescription => - 'When scrolling through messages, should they automatically be marked as read?'; - - @override - String get markReadOnScrollSettingAlways => 'Always'; - - @override - String get markReadOnScrollSettingNever => 'Never'; - - @override - String get markReadOnScrollSettingConversations => - 'Only in conversation views'; - - @override - String get markReadOnScrollSettingConversationsDescription => - 'Messages will be automatically marked as read only when viewing a single topic or direct message conversation.'; - - @override - String get experimentalFeatureSettingsPageTitle => 'Experimental features'; - - @override - String get experimentalFeatureSettingsWarning => - 'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'; - - @override - String get errorNotificationOpenTitle => 'Failed to open notification'; - - @override - String get errorNotificationOpenAccountNotFound => - 'The account associated with this notification could not be found.'; - - @override - String get errorReactionAddingFailedTitle => 'Adding reaction failed'; - - @override - String get errorReactionRemovingFailedTitle => 'Removing reaction failed'; - - @override - String get errorSharingTitle => 'Failed to share content'; - - @override - String get errorSharingAccountNotLoggedIn => - 'There is no account logged in. Please log in to an account and try again.'; - - @override - String get emojiReactionsMore => 'more'; - - @override - String get emojiPickerSearchEmoji => 'Search emoji'; - - @override - String get noEarlierMessages => 'No earlier messages'; - - @override - String get revealButtonLabel => 'Reveal message'; - - @override - String get mutedUser => 'Muted user'; - - @override - String get scrollToBottomTooltip => 'Scroll to bottom'; - - @override - String get appVersionUnknownPlaceholder => '(…)'; - - @override - String get zulipAppTitle => 'Zulip'; -} - -/// The translations for English, as used in the United Kingdom (`en_GB`). -class ZulipLocalizationsEnGb extends ZulipLocalizationsEn { - ZulipLocalizationsEnGb() : super('en_GB'); - - @override - String get topicValidationErrorMandatoryButEmpty => - 'Topics are required in this organisation.'; -} +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'zulip_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for English (`en`). +class ZulipLocalizationsEn extends ZulipLocalizations { + ZulipLocalizationsEn([String locale = 'en']) : super(locale); + + @override + String get aboutPageTitle => 'About Zulip'; + + @override + String get aboutPageAppVersion => 'App version'; + + @override + String get aboutPageOpenSourceLicenses => 'Open-source licenses'; + + @override + String get aboutPageTapToView => 'Tap to view'; + + @override + String get upgradeWelcomeDialogTitle => 'Welcome to the new Zulip app!'; + + @override + String get upgradeWelcomeDialogMessage => + 'You’ll find a familiar experience in a faster, sleeker package.'; + + @override + String get upgradeWelcomeDialogLinkText => + 'Check out the announcement blog post!'; + + @override + String get upgradeWelcomeDialogDismiss => 'Let\'s go'; + + @override + String get chooseAccountPageTitle => 'Choose account'; + + @override + String get settingsPageTitle => 'Settings'; + + @override + String get switchAccountButton => 'Switch account'; + + @override + String tryAnotherAccountMessage(Object url) { + return 'Your account at $url is taking a while to load.'; + } + + @override + String get tryAnotherAccountButton => 'Try another account'; + + @override + String get chooseAccountPageLogOutButton => 'Log out'; + + @override + String get logOutConfirmationDialogTitle => 'Log out?'; + + @override + String get logOutConfirmationDialogMessage => + 'To use this account in the future, you will have to re-enter the URL for your organization and your account information.'; + + @override + String get logOutConfirmationDialogConfirmButton => 'Log out'; + + @override + String get chooseAccountButtonAddAnAccount => 'Add an account'; + + @override + String get navButtonAllChannels => 'All channels'; + + @override + String get allChannelsPageTitle => 'All channels'; + + @override + String get allChannelsEmptyPlaceholder => + 'There are no channels you can view in this organization.'; + + @override + String get profileButtonSendDirectMessage => 'Send direct message'; + + @override + String get errorCouldNotShowUserProfile => 'Could not show user profile.'; + + @override + String get permissionsNeededTitle => 'Permissions needed'; + + @override + String get permissionsNeededOpenSettings => 'Open settings'; + + @override + String get permissionsDeniedCameraAccess => + 'To upload an image, please grant Zulip additional permissions in Settings.'; + + @override + String get permissionsDeniedReadExternalStorage => + 'To upload files, please grant Zulip additional permissions in Settings.'; + + @override + String get actionSheetOptionSubscribe => 'Subscribe'; + + @override + String get subscribeFailedTitle => 'Failed to subscribe'; + + @override + String get actionSheetOptionMarkChannelAsRead => 'Mark channel as read'; + + @override + String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; + + @override + String get actionSheetOptionListOfTopics => 'List of topics'; + + @override + String get actionSheetOptionChannelFeed => 'Channel feed'; + + @override + String get actionSheetOptionUnsubscribe => 'Unsubscribe'; + + @override + String unsubscribeConfirmationDialogTitle(String channelName) { + return 'Unsubscribe from $channelName?'; + } + + @override + String get unsubscribeConfirmationDialogMessageCannotResubscribe => + 'Once you leave this channel, you will not be able to rejoin.'; + + @override + String get unsubscribeConfirmationDialogConfirmButton => 'Unsubscribe'; + + @override + String get unsubscribeFailedTitle => 'Failed to unsubscribe'; + + @override + String get actionSheetOptionMuteTopic => 'Mute topic'; + + @override + String get actionSheetOptionUnmuteTopic => 'Unmute topic'; + + @override + String get actionSheetOptionFollowTopic => 'Follow topic'; + + @override + String get actionSheetOptionUnfollowTopic => 'Unfollow topic'; + + @override + String get actionSheetOptionResolveTopic => 'Mark as resolved'; + + @override + String get actionSheetOptionUnresolveTopic => 'Mark as unresolved'; + + @override + String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved'; + + @override + String get errorUnresolveTopicFailedTitle => + 'Failed to mark topic as unresolved'; + + @override + String get actionSheetOptionSeeWhoReacted => 'See who reacted'; + + @override + String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; + + @override + String seeWhoReactedSheetHeaderLabel(int num) { + return 'Emoji reactions ($num total)'; + } + + @override + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num votes', + one: '1 vote', + ); + return '$emojiName: $_temp0'; + } + + @override + String seeWhoReactedSheetUserListLabel(String emojiName, int num) { + return 'Votes for $emojiName ($num)'; + } + + @override + String get actionSheetOptionViewReadReceipts => 'View read receipts'; + + @override + String get actionSheetReadReceipts => 'Read receipts'; + + @override + String actionSheetReadReceiptsReadCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: 'This message has been read by $count people:', + one: 'This message has been read by $count person:', + ); + return '$_temp0'; + } + + @override + String get actionSheetReadReceiptsZeroReadCount => + 'No one has read this message yet.'; + + @override + String get actionSheetReadReceiptsErrorReadCount => + 'Failed to load read receipts.'; + + @override + String get actionSheetOptionCopyMessageText => 'Copy message text'; + + @override + String get actionSheetOptionCopyMessageLink => 'Copy link to message'; + + @override + String get actionSheetOptionMarkAsUnread => 'Mark as unread from here'; + + @override + String get actionSheetOptionHideMutedMessage => 'Hide muted message again'; + + @override + String get actionSheetOptionShare => 'Share'; + + @override + String get actionSheetOptionQuoteMessage => 'Quote message'; + + @override + String get actionSheetOptionStarMessage => 'Star message'; + + @override + String get actionSheetOptionUnstarMessage => 'Unstar message'; + + @override + String get actionSheetOptionEditMessage => 'Edit message'; + + @override + String get actionSheetOptionDeleteMessage => 'Delete message'; + + @override + String get deleteMessageConfirmationDialogTitle => 'Delete message?'; + + @override + String get deleteMessageConfirmationDialogMessage => + 'Deleting a message permanently removes it for everyone.'; + + @override + String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; + + @override + String get errorDeleteMessageFailedTitle => 'Failed to delete message'; + + @override + String get actionSheetOptionMarkTopicAsRead => 'Mark topic as read'; + + @override + String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; + + @override + String get errorWebAuthOperationalErrorTitle => 'Something went wrong'; + + @override + String get errorWebAuthOperationalError => 'An unexpected error occurred.'; + + @override + String get errorAccountLoggedInTitle => 'Account already logged in'; + + @override + String errorAccountLoggedIn(String email, String server) { + return 'The account $email at $server is already in your list of accounts.'; + } + + @override + String get errorCouldNotFetchMessageSource => + 'Could not fetch message source.'; + + @override + String get errorCopyingFailed => 'Copying failed'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return 'Failed to upload file: $filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename: $size MiB'; + } + + @override + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num files are', + one: 'File is', + ); + return '$_temp0 larger than the server\'s limit of $maxFileUploadSizeMib MiB and will not be uploaded:\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: 'Files', + one: 'File', + ); + return '$_temp0 too large'; + } + + @override + String get errorLoginInvalidInputTitle => 'Invalid input'; + + @override + String get errorLoginFailedTitle => 'Login failed'; + + @override + String get errorMessageNotSent => 'Message not sent'; + + @override + String get errorMessageEditNotSaved => 'Message not saved'; + + @override + String errorLoginCouldNotConnect(String url) { + return 'Failed to connect to server:\n$url'; + } + + @override + String get errorCouldNotConnectTitle => 'Could not connect'; + + @override + String get errorMessageDoesNotSeemToExist => + 'That message does not seem to exist.'; + + @override + String get errorQuotationFailed => 'Quotation failed'; + + @override + String errorServerMessage(String message) { + return 'The server said:\n\n$message'; + } + + @override + String get errorConnectingToServerShort => + 'Error connecting to Zulip. Retrying…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return 'Error connecting to Zulip at $serverUrl. Will retry:\n\n$error'; + } + + @override + String get errorHandlingEventTitle => + 'Error handling a Zulip event. Retrying connection…'; + + @override + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ) { + return 'Error handling a Zulip event from $serverUrl; will retry.\n\nError: $error\n\nEvent: $event'; + } + + @override + String get errorCouldNotOpenLinkTitle => 'Unable to open link'; + + @override + String errorCouldNotOpenLink(String url) { + return 'Link could not be opened: $url'; + } + + @override + String get errorMuteTopicFailed => 'Failed to mute topic'; + + @override + String get errorUnmuteTopicFailed => 'Failed to unmute topic'; + + @override + String get errorFollowTopicFailed => 'Failed to follow topic'; + + @override + String get errorUnfollowTopicFailed => 'Failed to unfollow topic'; + + @override + String get errorSharingFailed => 'Sharing failed'; + + @override + String get errorStarMessageFailedTitle => 'Failed to star message'; + + @override + String get errorUnstarMessageFailedTitle => 'Failed to unstar message'; + + @override + String get errorCouldNotEditMessageTitle => 'Could not edit message'; + + @override + String get successLinkCopied => 'Link copied'; + + @override + String get successMessageTextCopied => 'Message text copied'; + + @override + String get successMessageLinkCopied => 'Message link copied'; + + @override + String get successTopicLinkCopied => 'Topic link copied'; + + @override + String get successChannelLinkCopied => 'Channel link copied'; + + @override + String get errorBannerDeactivatedDmLabel => + 'You cannot send messages to deactivated users.'; + + @override + String get errorBannerCannotPostInChannelLabel => + 'You do not have permission to post in this channel.'; + + @override + String get composeBoxBannerLabelUnsubscribedWhenCannotSend => + 'New messages will not appear automatically.'; + + @override + String get composeBoxBannerButtonRefresh => 'Refresh'; + + @override + String get composeBoxBannerButtonSubscribe => 'Subscribe'; + + @override + String get composeBoxBannerLabelEditMessage => 'Edit message'; + + @override + String get composeBoxBannerButtonCancel => 'Cancel'; + + @override + String get composeBoxBannerButtonSave => 'Save'; + + @override + String get editAlreadyInProgressTitle => 'Cannot edit message'; + + @override + String get editAlreadyInProgressMessage => + 'An edit is already in progress. Please wait for it to complete.'; + + @override + String get savingMessageEditLabel => 'SAVING EDIT…'; + + @override + String get savingMessageEditFailedLabel => 'EDIT NOT SAVED'; + + @override + String get discardDraftConfirmationDialogTitle => + 'Discard the message you’re writing?'; + + @override + String get discardDraftForEditConfirmationDialogMessage => + 'When you edit a message, the content that was previously in the compose box is discarded.'; + + @override + String get discardDraftForOutboxConfirmationDialogMessage => + 'When you restore an unsent message, the content that was previously in the compose box is discarded.'; + + @override + String get discardDraftConfirmationDialogConfirmButton => 'Discard'; + + @override + String get composeBoxAttachFilesTooltip => 'Attach files'; + + @override + String get composeBoxAttachMediaTooltip => 'Attach images or videos'; + + @override + String get composeBoxAttachFromCameraTooltip => 'Take a photo'; + + @override + String get composeBoxAttachFromVideoCallTooltip => 'Attach a video call'; + + @override + String get composeBoxGenericContentHint => 'Type a message'; + + @override + String get newDmSheetComposeButtonLabel => 'Compose'; + + @override + String get newDmSheetScreenTitle => 'New DM'; + + @override + String get newDmFabButtonLabel => 'New DM'; + + @override + String get newDmSheetSearchHintEmpty => 'Add one or more users'; + + @override + String get newDmSheetSearchHintSomeSelected => 'Add another user…'; + + @override + String get newDmSheetNoUsersFound => 'No users found'; + + @override + String composeBoxDmContentHint(String user) { + return 'Message @$user'; + } + + @override + String get composeBoxGroupDmContentHint => 'Message group'; + + @override + String get composeBoxSelfDmContentHint => 'Write yourself a note'; + + @override + String composeBoxChannelContentHint(String destination) { + return 'Message $destination'; + } + + @override + String get preparingEditMessageContentInput => 'Preparing…'; + + @override + String get composeBoxSendTooltip => 'Send'; + + @override + String get unknownChannelName => '(unknown channel)'; + + @override + String get composeBoxTopicHintText => 'Topic'; + + @override + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { + return 'Enter a topic (skip for “$defaultTopicName”)'; + } + + @override + String composeBoxUploadingFilename(String filename) { + return 'Uploading $filename…'; + } + + @override + String get composeBoxUploadedVideoCallUrl => 'Join video call.'; + + @override + String composeBoxLoadingMessage(int messageId) { + return '(loading message $messageId)'; + } + + @override + String get unknownUserName => '(unknown user)'; + + @override + String get dmsWithYourselfPageTitle => 'DMs with yourself'; + + @override + String messageListGroupYouAndOthers(String others) { + return 'You and $others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return 'DMs with $others'; + } + + @override + String get emptyMessageList => 'There are no messages here.'; + + @override + String get emptyMessageListSearch => 'No search results.'; + + @override + String get messageListGroupYouWithYourself => 'Messages with yourself'; + + @override + String get contentValidationErrorTooLong => + 'Message length shouldn\'t be greater than 10000 characters.'; + + @override + String get contentValidationErrorEmpty => 'You have nothing to send!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => + 'Please wait for the quotation to complete.'; + + @override + String get contentValidationErrorUploadInProgress => + 'Please wait for the upload to complete.'; + + @override + String get dialogCancel => 'Cancel'; + + @override + String get dialogContinue => 'Continue'; + + @override + String get dialogClose => 'Close'; + + @override + String get errorDialogLearnMore => 'Learn more'; + + @override + String get errorDialogContinue => 'OK'; + + @override + String get errorDialogTitle => 'Error'; + + @override + String get snackBarDetails => 'Details'; + + @override + String get lightboxCopyLinkTooltip => 'Copy link'; + + @override + String get lightboxVideoCurrentPosition => 'Current position'; + + @override + String get lightboxVideoDuration => 'Video duration'; + + @override + String get loginPageTitle => 'Log in'; + + @override + String get loginFormSubmitLabel => 'Log in'; + + @override + String get loginMethodDivider => 'OR'; + + @override + String signInWithFoo(String method) { + return 'Sign in with $method'; + } + + @override + String get loginAddAnAccountPageTitle => 'Add an account'; + + @override + String get loginServerUrlLabel => 'Your Zulip server URL'; + + @override + String get loginHidePassword => 'Hide password'; + + @override + String get loginEmailLabel => 'Email address'; + + @override + String get loginErrorMissingEmail => 'Please enter your email.'; + + @override + String get loginPasswordLabel => 'Password'; + + @override + String get loginErrorMissingPassword => 'Please enter your password.'; + + @override + String get loginUsernameLabel => 'Username'; + + @override + String get loginErrorMissingUsername => 'Please enter your username.'; + + @override + String get topicValidationErrorTooLong => + 'Topic length shouldn\'t be greater than 60 characters.'; + + @override + String get topicValidationErrorMandatoryButEmpty => + 'Topics are required in this organization.'; + + @override + String get errorContentNotInsertedTitle => 'Content not inserted'; + + @override + String get errorContentToInsertIsEmpty => + 'The file to be inserted is empty or cannot be accessed.'; + + @override + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ) { + return '$url is running Zulip Server $zulipVersion, which is unsupported. The minimum supported version is Zulip Server $minSupportedZulipVersion.'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return 'Your account at $url could not be authenticated. Please try logging in again or use another account.'; + } + + @override + String get errorInvalidResponse => 'The server sent an invalid response.'; + + @override + String get errorNetworkRequestFailed => 'Network request failed'; + + @override + String errorMalformedResponse(int httpStatus) { + return 'Server gave malformed response; HTTP status $httpStatus'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return 'Server gave malformed response; HTTP status $httpStatus; $details'; + } + + @override + String errorRequestFailed(int httpStatus) { + return 'Network request failed: HTTP status $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => 'Unable to play the video.'; + + @override + String get serverUrlValidationErrorEmpty => 'Please enter a URL.'; + + @override + String get serverUrlValidationErrorInvalidUrl => 'Please enter a valid URL.'; + + @override + String get serverUrlValidationErrorNoUseEmail => + 'Please enter the server URL, not your email.'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => + 'The server URL must start with http:// or https://.'; + + @override + String get spoilerDefaultHeaderText => 'Spoiler'; + + @override + String get markAllAsReadLabel => 'Mark all messages as read'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num messages', + one: '1 message', + ); + return 'Marked $_temp0 as read.'; + } + + @override + String get markAsReadInProgress => 'Marking messages as read…'; + + @override + String get errorMarkAsReadFailedTitle => 'Mark as read failed'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num messages', + one: '1 message', + ); + return 'Marked $_temp0 as unread.'; + } + + @override + String get markAsUnreadInProgress => 'Marking messages as unread…'; + + @override + String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed'; + + @override + String get today => 'Today'; + + @override + String get yesterday => 'Yesterday'; + + @override + String get userActiveNow => 'Active now'; + + @override + String get userIdle => 'Idle'; + + @override + String userActiveMinutesAgo(int minutes) { + String _temp0 = intl.Intl.pluralLogic( + minutes, + locale: localeName, + other: '$minutes minutes', + one: '1 minute', + ); + return 'Active $_temp0 ago'; + } + + @override + String userActiveHoursAgo(int hours) { + String _temp0 = intl.Intl.pluralLogic( + hours, + locale: localeName, + other: '$hours hours', + one: '1 hour', + ); + return 'Active $_temp0 ago'; + } + + @override + String get userActiveYesterday => 'Active yesterday'; + + @override + String userActiveDaysAgo(int days) { + String _temp0 = intl.Intl.pluralLogic( + days, + locale: localeName, + other: '$days days', + one: '1 day', + ); + return 'Active $_temp0 ago'; + } + + @override + String userActiveDate(String date) { + return 'Active $date'; + } + + @override + String get userNotActiveInYear => 'Not active in the last year'; + + @override + String get invisibleMode => 'Invisible mode'; + + @override + String get turnOnInvisibleModeErrorTitle => + 'Error turning on invisible mode. Please try again.'; + + @override + String get turnOffInvisibleModeErrorTitle => + 'Error turning off invisible mode. Please try again.'; + + @override + String get userRoleOwner => 'Owner'; + + @override + String get userRoleAdministrator => 'Administrator'; + + @override + String get userRoleModerator => 'Moderator'; + + @override + String get userRoleMember => 'Member'; + + @override + String get userRoleGuest => 'Guest'; + + @override + String get userRoleUnknown => 'Unknown'; + + @override + String get statusButtonLabelStatusSet => 'Status'; + + @override + String get statusButtonLabelStatusUnset => 'Set status'; + + @override + String get noStatusText => 'No status text'; + + @override + String get setStatusPageTitle => 'Set status'; + + @override + String get statusClearButtonLabel => 'Clear'; + + @override + String get statusSaveButtonLabel => 'Save'; + + @override + String get statusTextHint => 'Your status'; + + @override + String get userStatusBusy => 'Busy'; + + @override + String get userStatusInAMeeting => 'In a meeting'; + + @override + String get userStatusCommuting => 'Commuting'; + + @override + String get userStatusOutSick => 'Out sick'; + + @override + String get userStatusVacationing => 'Vacationing'; + + @override + String get userStatusWorkingRemotely => 'Working remotely'; + + @override + String get userStatusAtTheOffice => 'At the office'; + + @override + String get updateStatusErrorTitle => + 'Error updating user status. Please try again.'; + + @override + String get searchMessagesPageTitle => 'Search'; + + @override + String get searchMessagesHintText => 'Search'; + + @override + String get searchMessagesClearButtonTooltip => 'Clear'; + + @override + String get inboxPageTitle => 'Inbox'; + + @override + String get inboxEmptyPlaceholder => + 'There are no unread messages in your inbox. Use the buttons below to view the combined feed or list of channels.'; + + @override + String get recentDmConversationsPageTitle => 'Direct messages'; + + @override + String get recentDmConversationsSectionHeader => 'Direct messages'; + + @override + String get recentDmConversationsEmptyPlaceholder => + 'You have no direct messages yet! Why not start the conversation?'; + + @override + String get combinedFeedPageTitle => 'Combined feed'; + + @override + String get mentionsPageTitle => 'Mentions'; + + @override + String get starredMessagesPageTitle => 'Starred messages'; + + @override + String get channelsPageTitle => 'Channels'; + + @override + String get channelsEmptyPlaceholder => + 'You’re not subscribed to any channels yet.'; + + @override + String channelsEmptyPlaceholderWithAllChannelsLink( + String allChannelsPageTitle, + ) { + return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; + } + + @override + String get sharePageTitle => 'Share'; + + @override + String get mainMenuMyProfile => 'My profile'; + + @override + String get topicsButtonTooltip => 'Topics'; + + @override + String get channelFeedButtonTooltip => 'Channel feed'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: '$numOthers others', + one: '1 other', + ); + return '$senderFullName to you and $_temp0'; + } + + @override + String get pinnedSubscriptionsLabel => 'Pinned'; + + @override + String get unpinnedSubscriptionsLabel => 'Unpinned'; + + @override + String get notifSelfUser => 'You'; + + @override + String get reactedEmojiSelfUser => 'You'; + + @override + String get reactionChipsLabel => 'Reactions'; + + @override + String reactionChipLabel(String emojiName, String votes) { + return '$emojiName: $votes'; + } + + @override + String reactionChipVotesYouAndOthers(int otherUsersCount) { + String _temp0 = intl.Intl.pluralLogic( + otherUsersCount, + locale: localeName, + other: 'You and $otherUsersCount others', + one: 'You and 1 other', + ); + return '$_temp0'; + } + + @override + String onePersonTyping(String typist) { + return '$typist is typing…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist and $otherTypist are typing…'; + } + + @override + String get manyPeopleTyping => 'Several people are typing…'; + + @override + String get wildcardMentionAll => 'all'; + + @override + String get wildcardMentionEveryone => 'everyone'; + + @override + String get wildcardMentionChannel => 'channel'; + + @override + String get wildcardMentionStream => 'stream'; + + @override + String get wildcardMentionTopic => 'topic'; + + @override + String get wildcardMentionChannelDescription => 'Notify channel'; + + @override + String get wildcardMentionStreamDescription => 'Notify stream'; + + @override + String get wildcardMentionAllDmDescription => 'Notify recipients'; + + @override + String get wildcardMentionTopicDescription => 'Notify topic'; + + @override + String get messageIsEditedLabel => 'EDITED'; + + @override + String get messageIsMovedLabel => 'MOVED'; + + @override + String get messageNotSentLabel => 'MESSAGE NOT SENT'; + + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + + @override + String get themeSettingTitle => 'THEME'; + + @override + String get themeSettingDark => 'Dark'; + + @override + String get themeSettingLight => 'Light'; + + @override + String get themeSettingSystem => 'System'; + + @override + String get openLinksWithInAppBrowser => 'Open links with in-app browser'; + + @override + String get pollWidgetQuestionMissing => 'No question.'; + + @override + String get pollWidgetOptionsMissing => 'This poll has no options yet.'; + + @override + String get initialAnchorSettingTitle => 'Open message feeds at'; + + @override + String get initialAnchorSettingDescription => + 'You can choose whether message feeds open at your first unread message or at the newest messages.'; + + @override + String get initialAnchorSettingFirstUnreadAlways => 'First unread message'; + + @override + String get initialAnchorSettingFirstUnreadConversations => + 'First unread message in conversation views, newest message elsewhere'; + + @override + String get initialAnchorSettingNewestAlways => 'Newest message'; + + @override + String get markReadOnScrollSettingTitle => 'Mark messages as read on scroll'; + + @override + String get markReadOnScrollSettingDescription => + 'When scrolling through messages, should they automatically be marked as read?'; + + @override + String get markReadOnScrollSettingAlways => 'Always'; + + @override + String get markReadOnScrollSettingNever => 'Never'; + + @override + String get markReadOnScrollSettingConversations => + 'Only in conversation views'; + + @override + String get markReadOnScrollSettingConversationsDescription => + 'Messages will be automatically marked as read only when viewing a single topic or direct message conversation.'; + + @override + String get experimentalFeatureSettingsPageTitle => 'Experimental features'; + + @override + String get experimentalFeatureSettingsWarning => + 'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'; + + @override + String get errorNotificationOpenTitle => 'Failed to open notification'; + + @override + String get errorNotificationOpenAccountNotFound => + 'The account associated with this notification could not be found.'; + + @override + String get errorReactionAddingFailedTitle => 'Adding reaction failed'; + + @override + String get errorReactionRemovingFailedTitle => 'Removing reaction failed'; + + @override + String get errorSharingTitle => 'Failed to share content'; + + @override + String get errorSharingAccountNotLoggedIn => + 'There is no account logged in. Please log in to an account and try again.'; + + @override + String get emojiReactionsMore => 'more'; + + @override + String get emojiPickerSearchEmoji => 'Search emoji'; + + @override + String get noEarlierMessages => 'No earlier messages'; + + @override + String get revealButtonLabel => 'Reveal message'; + + @override + String get mutedUser => 'Muted user'; + + @override + String get scrollToBottomTooltip => 'Scroll to bottom'; + + @override + String get appVersionUnknownPlaceholder => '(…)'; + + @override + String get zulipAppTitle => 'Zulip'; +} + +/// The translations for English, as used in the United Kingdom (`en_GB`). +class ZulipLocalizationsEnGb extends ZulipLocalizationsEn { + ZulipLocalizationsEnGb() : super('en_GB'); + + @override + String get topicValidationErrorMandatoryButEmpty => + 'Topics are required in this organisation.'; +} diff --git a/lib/generated/l10n/zulip_localizations_fr.dart b/lib/generated/l10n/zulip_localizations_fr.dart index 402619efec..799a786496 100644 --- a/lib/generated/l10n/zulip_localizations_fr.dart +++ b/lib/generated/l10n/zulip_localizations_fr.dart @@ -1,1177 +1,1183 @@ -// ignore: unused_import -import 'package:intl/intl.dart' as intl; -import 'zulip_localizations.dart'; - -// ignore_for_file: type=lint - -/// The translations for French (`fr`). -class ZulipLocalizationsFr extends ZulipLocalizations { - ZulipLocalizationsFr([String locale = 'fr']) : super(locale); - - @override - String get aboutPageTitle => 'À propos de Zulip'; - - @override - String get aboutPageAppVersion => 'Version de l\'application'; - - @override - String get aboutPageOpenSourceLicenses => 'Licences de logiciel libre'; - - @override - String get aboutPageTapToView => 'Toucher pour voir'; - - @override - String get upgradeWelcomeDialogTitle => - 'Bienvenue dans la nouvelle application Zulip !'; - - @override - String get upgradeWelcomeDialogMessage => - 'Vous retrouverez une expérience familière dans un logiciel plus rapide et plus élégant.'; - - @override - String get upgradeWelcomeDialogLinkText => - 'Allez voir les articles sur le blog des annonces !'; - - @override - String get upgradeWelcomeDialogDismiss => 'Allons-y'; - - @override - String get chooseAccountPageTitle => 'Choisir un compte'; - - @override - String get settingsPageTitle => 'Paramètres'; - - @override - String get switchAccountButton => 'Changer de compte'; - - @override - String tryAnotherAccountMessage(Object url) { - return 'Votre compte à $url prend du temps à se charger.'; - } - - @override - String get tryAnotherAccountButton => 'Essayer un autre compte'; - - @override - String get chooseAccountPageLogOutButton => 'Déconnexion'; - - @override - String get logOutConfirmationDialogTitle => 'Se déconnecter?'; - - @override - String get logOutConfirmationDialogMessage => - 'Pour utiliser ce compte à l\'avenir, vous devrez ré-entrer l\'adresse pour votre organisation et les informations de votre compte.'; - - @override - String get logOutConfirmationDialogConfirmButton => 'Déconnexion'; - - @override - String get chooseAccountButtonAddAnAccount => 'Ajouter un compte'; - - @override - String get navButtonAllChannels => 'All channels'; - - @override - String get allChannelsPageTitle => 'All channels'; - - @override - String get allChannelsEmptyPlaceholder => - 'There are no channels you can view in this organization.'; - - @override - String get profileButtonSendDirectMessage => 'Envoyer un message direct'; - - @override - String get errorCouldNotShowUserProfile => - 'Impossible de montrer le profil de l\'utilisateur.'; - - @override - String get permissionsNeededTitle => 'Permissions requises'; - - @override - String get permissionsNeededOpenSettings => 'Ouvrir les préférences'; - - @override - String get permissionsDeniedCameraAccess => - 'Pour charger une image, merci d\'accorder des autorisations supplémentaires à Zulip, dans les préférences.'; - - @override - String get permissionsDeniedReadExternalStorage => - 'Pour charger des fichiers, merci d\'accorder des autorisations supplémentaires à Zulip, dans les préférences.'; - - @override - String get actionSheetOptionSubscribe => 'Subscribe'; - - @override - String get subscribeFailedTitle => 'Failed to subscribe'; - - @override - String get actionSheetOptionMarkChannelAsRead => 'Marquer le canal comme lu'; - - @override - String get actionSheetOptionCopyChannelLink => 'Copier le lien du canal'; - - @override - String get actionSheetOptionListOfTopics => 'Liste des sujets'; - - @override - String get actionSheetOptionChannelFeed => 'Channel feed'; - - @override - String get actionSheetOptionUnsubscribe => 'Unsubscribe'; - - @override - String unsubscribeConfirmationDialogTitle(String channelName) { - return 'Se désinscrire de $channelName?'; - } - - @override - String get unsubscribeConfirmationDialogMessageCannotResubscribe => - 'Once you leave this channel, you will not be able to rejoin.'; - - @override - String get unsubscribeConfirmationDialogConfirmButton => 'Se désinscrire'; - - @override - String get unsubscribeFailedTitle => 'Failed to unsubscribe'; - - @override - String get actionSheetOptionMuteTopic => 'Rendre le sujet silencieux'; - - @override - String get actionSheetOptionUnmuteTopic => 'Rendre le sujet non silencieux'; - - @override - String get actionSheetOptionFollowTopic => 'Suivre le sujet'; - - @override - String get actionSheetOptionUnfollowTopic => 'Ne plus suivre le sujet'; - - @override - String get actionSheetOptionResolveTopic => 'Marquer comme résolu'; - - @override - String get actionSheetOptionUnresolveTopic => 'Marquer comme non résolu'; - - @override - String get errorResolveTopicFailedTitle => - 'Impossible de marquer le sujet comme résolu'; - - @override - String get errorUnresolveTopicFailedTitle => - 'Impossible de marquer le sujet comme non résolu'; - - @override - String get actionSheetOptionSeeWhoReacted => 'See who reacted'; - - @override - String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; - - @override - String seeWhoReactedSheetHeaderLabel(int num) { - return 'Emoji reactions ($num total)'; - } - - @override - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num votes', - one: '1 vote', - ); - return '$emojiName: $_temp0'; - } - - @override - String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Votes for $emojiName ($num)'; - } - - @override - String get actionSheetOptionViewReadReceipts => 'View read receipts'; - - @override - String get actionSheetReadReceipts => 'Read receipts'; - - @override - String actionSheetReadReceiptsReadCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: 'This message has been read by $count people:', - one: 'This message has been read by $count person:', - ); - return '$_temp0'; - } - - @override - String get actionSheetReadReceiptsZeroReadCount => - 'No one has read this message yet.'; - - @override - String get actionSheetReadReceiptsErrorReadCount => - 'Failed to load read receipts.'; - - @override - String get actionSheetOptionCopyMessageText => 'Copier le contenu du message'; - - @override - String get actionSheetOptionCopyMessageLink => 'Copier le lien au message'; - - @override - String get actionSheetOptionMarkAsUnread => 'Marquer non lu à partir d\'ici'; - - @override - String get actionSheetOptionHideMutedMessage => - 'Cacher à nouveau le message silencieux'; - - @override - String get actionSheetOptionShare => 'Partager'; - - @override - String get actionSheetOptionQuoteMessage => 'Citer le message'; - - @override - String get actionSheetOptionStarMessage => 'Mettre le message en favori'; - - @override - String get actionSheetOptionUnstarMessage => - 'Retirer ce message de la liste des favoris'; - - @override - String get actionSheetOptionEditMessage => 'Modifier le message'; - - @override - String get actionSheetOptionDeleteMessage => 'Delete message'; - - @override - String get deleteMessageConfirmationDialogTitle => 'Delete message?'; - - @override - String get deleteMessageConfirmationDialogMessage => - 'Deleting a message permanently removes it for everyone.'; - - @override - String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; - - @override - String get errorDeleteMessageFailedTitle => 'Failed to delete message'; - - @override - String get actionSheetOptionMarkTopicAsRead => 'Marquer le sujet comme lu'; - - @override - String get actionSheetOptionCopyTopicLink => 'Copier le lien sur le sujet'; - - @override - String get errorWebAuthOperationalErrorTitle => 'Une erreur s\'est produite'; - - @override - String get errorWebAuthOperationalError => - 'Oups, une erreur s\'est produite.'; - - @override - String get errorAccountLoggedInTitle => - 'Vous êtes déjà connecté à ce compte.'; - - @override - String errorAccountLoggedIn(String email, String server) { - return 'Le compte $email at $server figure déjà dans votre liste de comptes.'; - } - - @override - String get errorCouldNotFetchMessageSource => - 'Impossible d\'atteindre le message source.'; - - @override - String get errorCopyingFailed => 'Échec de la copie'; - - @override - String errorFailedToUploadFileTitle(String filename) { - return 'Impossible de charger le fichier $filename'; - } - - @override - String filenameAndSizeInMiB(String filename, String size) { - return '$filename : $size MiB'; - } - - @override - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num fichiers sont', - one: 'Fichier est', - ); - return '$_temp0 plus gros que la limite de capacité du serveur ($maxFileUploadSizeMib MO) et ne peu(ven)t pas être chargé(s) :\n\n$listMessage'; - } - - @override - String errorFilesTooLargeTitle(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: 'Les fichier sont trop lourds', - one: 'Le fichier est trop lourd', - ); - return '$_temp0'; - } - - @override - String get errorLoginInvalidInputTitle => 'Identifiant incorrect'; - - @override - String get errorLoginFailedTitle => 'La connexion a échoué.'; - - @override - String get errorMessageNotSent => 'Le message n\'a pas pu être envoyé.'; - - @override - String get errorMessageEditNotSaved => - 'Le message n\'a pas pu être sauvegardé.'; - - @override - String errorLoginCouldNotConnect(String url) { - return 'La connexion au serveur a échoué :\n$url'; - } - - @override - String get errorCouldNotConnectTitle => - 'Impossible de se connecter au serveur'; - - @override - String get errorMessageDoesNotSeemToExist => 'Ce message est introuvable.'; - - @override - String get errorQuotationFailed => 'Échec de la citation'; - - @override - String errorServerMessage(String message) { - return 'Message d\'erreur du serveur :\n\n$message'; - } - - @override - String get errorConnectingToServerShort => - 'Une erreur s\'est produite lors de la connexion au serveur. Nouvelle tentative en cours…'; - - @override - String errorConnectingToServerDetails(String serverUrl, String error) { - return 'Une erreur s\'est produite lors de la connexion à Zulip sur $serverUrl. Nouvelle tentative imminente :\n\n$error'; - } - - @override - String get errorHandlingEventTitle => - 'Une erreur s\'est produite sur le serveur. Reconnexion en cours…'; - - @override - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ) { - return 'Une erreur s\'est produite sur le serveur $serverUrl ; tentative de reconnexion imminente.\n\nErreur : $error\n\nÉvénement : $event'; - } - - @override - String get errorCouldNotOpenLinkTitle => 'Impossible d\'ouvrir le lien'; - - @override - String errorCouldNotOpenLink(String url) { - return 'Le lien suivant n\'a pas pu être ouvert : $url'; - } - - @override - String get errorMuteTopicFailed => - 'Le sujet n\'a pas pu être rendu silencieux'; - - @override - String get errorUnmuteTopicFailed => - 'Impossible de ne plus mettre le sujet en sourdine'; - - @override - String get errorFollowTopicFailed => 'Échec du suivi du sujet'; - - @override - String get errorUnfollowTopicFailed => - 'Échec de la tentative de ne plus suivre le sujet'; - - @override - String get errorSharingFailed => 'Échec du partage'; - - @override - String get errorStarMessageFailedTitle => - 'Échec de marquage du message en favori'; - - @override - String get errorUnstarMessageFailedTitle => - 'Échec de la tentative d\'enlever le message des favoris'; - - @override - String get errorCouldNotEditMessageTitle => - 'Le message n\'a pas pu être modifié'; - - @override - String get successLinkCopied => 'Lien copié'; - - @override - String get successMessageTextCopied => 'Texte du message copié'; - - @override - String get successMessageLinkCopied => 'Lien sur le message copié'; - - @override - String get successTopicLinkCopied => 'Lien sur le sujet copié'; - - @override - String get successChannelLinkCopied => 'Lien sur le canal copié'; - - @override - String get errorBannerDeactivatedDmLabel => - 'Vous ne pouvez pas envoyer de messages aux utilisateurs désactivés.'; - - @override - String get errorBannerCannotPostInChannelLabel => - 'Vous n\'avez pas l\'autorisation de poster sur ce canal.'; - - @override - String get composeBoxBannerLabelUnsubscribedWhenCannotSend => - 'New messages will not appear automatically.'; - - @override - String get composeBoxBannerButtonRefresh => 'Refresh'; - - @override - String get composeBoxBannerButtonSubscribe => 'Subscribe'; - - @override - String get composeBoxBannerLabelEditMessage => 'Editer le message'; - - @override - String get composeBoxBannerButtonCancel => 'Annuler'; - - @override - String get composeBoxBannerButtonSave => 'Sauvegarder'; - - @override - String get editAlreadyInProgressTitle => 'Impossible de modifier le message'; - - @override - String get editAlreadyInProgressMessage => - 'Une modification est déjà en cours. Merci d\'attendre qu\'elle soit terminée.'; - - @override - String get savingMessageEditLabel => 'SAVING EDIT…'; - - @override - String get savingMessageEditFailedLabel => 'EDIT NOT SAVED'; - - @override - String get discardDraftConfirmationDialogTitle => - 'Discard the message you’re writing?'; - - @override - String get discardDraftForEditConfirmationDialogMessage => - 'When you edit a message, the content that was previously in the compose box is discarded.'; - - @override - String get discardDraftForOutboxConfirmationDialogMessage => - 'When you restore an unsent message, the content that was previously in the compose box is discarded.'; - - @override - String get discardDraftConfirmationDialogConfirmButton => 'Discard'; - - @override - String get composeBoxAttachFilesTooltip => 'Attach files'; - - @override - String get composeBoxAttachMediaTooltip => 'Attach images or videos'; - - @override - String get composeBoxAttachFromCameraTooltip => 'Take a photo'; - - @override - String get composeBoxGenericContentHint => 'Type a message'; - - @override - String get newDmSheetComposeButtonLabel => 'Compose'; - - @override - String get newDmSheetScreenTitle => 'New DM'; - - @override - String get newDmFabButtonLabel => 'New DM'; - - @override - String get newDmSheetSearchHintEmpty => 'Add one or more users'; - - @override - String get newDmSheetSearchHintSomeSelected => 'Add another user…'; - - @override - String get newDmSheetNoUsersFound => 'No users found'; - - @override - String composeBoxDmContentHint(String user) { - return 'Message @$user'; - } - - @override - String get composeBoxGroupDmContentHint => 'Message group'; - - @override - String get composeBoxSelfDmContentHint => 'Write yourself a note'; - - @override - String composeBoxChannelContentHint(String destination) { - return 'Message $destination'; - } - - @override - String get preparingEditMessageContentInput => 'Preparing…'; - - @override - String get composeBoxSendTooltip => 'Send'; - - @override - String get unknownChannelName => '(unknown channel)'; - - @override - String get composeBoxTopicHintText => 'Topic'; - - @override - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { - return 'Enter a topic (skip for “$defaultTopicName”)'; - } - - @override - String composeBoxUploadingFilename(String filename) { - return 'Uploading $filename…'; - } - - @override - String composeBoxLoadingMessage(int messageId) { - return '(loading message $messageId)'; - } - - @override - String get unknownUserName => '(unknown user)'; - - @override - String get dmsWithYourselfPageTitle => 'DMs with yourself'; - - @override - String messageListGroupYouAndOthers(String others) { - return 'You and $others'; - } - - @override - String dmsWithOthersPageTitle(String others) { - return 'DMs with $others'; - } - - @override - String get emptyMessageList => 'There are no messages here.'; - - @override - String get emptyMessageListSearch => 'No search results.'; - - @override - String get messageListGroupYouWithYourself => 'Messages with yourself'; - - @override - String get contentValidationErrorTooLong => - 'Message length shouldn\'t be greater than 10000 characters.'; - - @override - String get contentValidationErrorEmpty => 'You have nothing to send!'; - - @override - String get contentValidationErrorQuoteAndReplyInProgress => - 'Please wait for the quotation to complete.'; - - @override - String get contentValidationErrorUploadInProgress => - 'Please wait for the upload to complete.'; - - @override - String get dialogCancel => 'Cancel'; - - @override - String get dialogContinue => 'Continue'; - - @override - String get dialogClose => 'Close'; - - @override - String get errorDialogLearnMore => 'Learn more'; - - @override - String get errorDialogContinue => 'OK'; - - @override - String get errorDialogTitle => 'Error'; - - @override - String get snackBarDetails => 'Details'; - - @override - String get lightboxCopyLinkTooltip => 'Copy link'; - - @override - String get lightboxVideoCurrentPosition => 'Current position'; - - @override - String get lightboxVideoDuration => 'Video duration'; - - @override - String get loginPageTitle => 'Log in'; - - @override - String get loginFormSubmitLabel => 'Log in'; - - @override - String get loginMethodDivider => 'OR'; - - @override - String signInWithFoo(String method) { - return 'Sign in with $method'; - } - - @override - String get loginAddAnAccountPageTitle => 'Add an account'; - - @override - String get loginServerUrlLabel => 'Your Zulip server URL'; - - @override - String get loginHidePassword => 'Hide password'; - - @override - String get loginEmailLabel => 'Email address'; - - @override - String get loginErrorMissingEmail => 'Please enter your email.'; - - @override - String get loginPasswordLabel => 'Password'; - - @override - String get loginErrorMissingPassword => 'Please enter your password.'; - - @override - String get loginUsernameLabel => 'Username'; - - @override - String get loginErrorMissingUsername => 'Please enter your username.'; - - @override - String get topicValidationErrorTooLong => - 'Topic length shouldn\'t be greater than 60 characters.'; - - @override - String get topicValidationErrorMandatoryButEmpty => - 'Topics are required in this organization.'; - - @override - String get errorContentNotInsertedTitle => 'Content not inserted'; - - @override - String get errorContentToInsertIsEmpty => - 'The file to be inserted is empty or cannot be accessed.'; - - @override - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ) { - return '$url is running Zulip Server $zulipVersion, which is unsupported. The minimum supported version is Zulip Server $minSupportedZulipVersion.'; - } - - @override - String errorInvalidApiKeyMessage(String url) { - return 'Your account at $url could not be authenticated. Please try logging in again or use another account.'; - } - - @override - String get errorInvalidResponse => 'The server sent an invalid response.'; - - @override - String get errorNetworkRequestFailed => 'Network request failed'; - - @override - String errorMalformedResponse(int httpStatus) { - return 'Server gave malformed response; HTTP status $httpStatus'; - } - - @override - String errorMalformedResponseWithCause(int httpStatus, String details) { - return 'Server gave malformed response; HTTP status $httpStatus; $details'; - } - - @override - String errorRequestFailed(int httpStatus) { - return 'Network request failed: HTTP status $httpStatus'; - } - - @override - String get errorVideoPlayerFailed => 'Unable to play the video.'; - - @override - String get serverUrlValidationErrorEmpty => 'Please enter a URL.'; - - @override - String get serverUrlValidationErrorInvalidUrl => 'Please enter a valid URL.'; - - @override - String get serverUrlValidationErrorNoUseEmail => - 'Please enter the server URL, not your email.'; - - @override - String get serverUrlValidationErrorUnsupportedScheme => - 'The server URL must start with http:// or https://.'; - - @override - String get spoilerDefaultHeaderText => 'Spoiler'; - - @override - String get markAllAsReadLabel => 'Mark all messages as read'; - - @override - String markAsReadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num messages', - one: '1 message', - ); - return 'Marked $_temp0 as read.'; - } - - @override - String get markAsReadInProgress => 'Marking messages as read…'; - - @override - String get errorMarkAsReadFailedTitle => 'Mark as read failed'; - - @override - String markAsUnreadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num messages', - one: '1 message', - ); - return 'Marked $_temp0 as unread.'; - } - - @override - String get markAsUnreadInProgress => 'Marking messages as unread…'; - - @override - String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed'; - - @override - String get today => 'Today'; - - @override - String get yesterday => 'Yesterday'; - - @override - String get userActiveNow => 'Active now'; - - @override - String get userIdle => 'Idle'; - - @override - String userActiveMinutesAgo(int minutes) { - String _temp0 = intl.Intl.pluralLogic( - minutes, - locale: localeName, - other: '$minutes minutes', - one: '1 minute', - ); - return 'Active $_temp0 ago'; - } - - @override - String userActiveHoursAgo(int hours) { - String _temp0 = intl.Intl.pluralLogic( - hours, - locale: localeName, - other: '$hours hours', - one: '1 hour', - ); - return 'Active $_temp0 ago'; - } - - @override - String get userActiveYesterday => 'Active yesterday'; - - @override - String userActiveDaysAgo(int days) { - String _temp0 = intl.Intl.pluralLogic( - days, - locale: localeName, - other: '$days days', - one: '1 day', - ); - return 'Active $_temp0 ago'; - } - - @override - String userActiveDate(String date) { - return 'Active $date'; - } - - @override - String get userNotActiveInYear => 'Not active in the last year'; - - @override - String get invisibleMode => 'Invisible mode'; - - @override - String get turnOnInvisibleModeErrorTitle => - 'Error turning on invisible mode. Please try again.'; - - @override - String get turnOffInvisibleModeErrorTitle => - 'Error turning off invisible mode. Please try again.'; - - @override - String get userRoleOwner => 'Owner'; - - @override - String get userRoleAdministrator => 'Administrator'; - - @override - String get userRoleModerator => 'Moderator'; - - @override - String get userRoleMember => 'Member'; - - @override - String get userRoleGuest => 'Guest'; - - @override - String get userRoleUnknown => 'Unknown'; - - @override - String get statusButtonLabelStatusSet => 'Status'; - - @override - String get statusButtonLabelStatusUnset => 'Set status'; - - @override - String get noStatusText => 'No status text'; - - @override - String get setStatusPageTitle => 'Set status'; - - @override - String get statusClearButtonLabel => 'Clear'; - - @override - String get statusSaveButtonLabel => 'Save'; - - @override - String get statusTextHint => 'Your status'; - - @override - String get userStatusBusy => 'Busy'; - - @override - String get userStatusInAMeeting => 'In a meeting'; - - @override - String get userStatusCommuting => 'Commuting'; - - @override - String get userStatusOutSick => 'Out sick'; - - @override - String get userStatusVacationing => 'Vacationing'; - - @override - String get userStatusWorkingRemotely => 'Working remotely'; - - @override - String get userStatusAtTheOffice => 'At the office'; - - @override - String get updateStatusErrorTitle => - 'Error updating user status. Please try again.'; - - @override - String get searchMessagesPageTitle => 'Search'; - - @override - String get searchMessagesHintText => 'Search'; - - @override - String get searchMessagesClearButtonTooltip => 'Clear'; - - @override - String get inboxPageTitle => 'Inbox'; - - @override - String get inboxEmptyPlaceholder => - 'There are no unread messages in your inbox. Use the buttons below to view the combined feed or list of channels.'; - - @override - String get recentDmConversationsPageTitle => 'Direct messages'; - - @override - String get recentDmConversationsSectionHeader => 'Direct messages'; - - @override - String get recentDmConversationsEmptyPlaceholder => - 'You have no direct messages yet! Why not start the conversation?'; - - @override - String get combinedFeedPageTitle => 'Combined feed'; - - @override - String get mentionsPageTitle => 'Mentions'; - - @override - String get starredMessagesPageTitle => 'Starred messages'; - - @override - String get channelsPageTitle => 'Channels'; - - @override - String get channelsEmptyPlaceholder => - 'You’re not subscribed to any channels yet.'; - - @override - String channelsEmptyPlaceholderWithAllChannelsLink( - String allChannelsPageTitle, - ) { - return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; - } - - @override - String get sharePageTitle => 'Share'; - - @override - String get mainMenuMyProfile => 'My profile'; - - @override - String get topicsButtonTooltip => 'Topics'; - - @override - String get channelFeedButtonTooltip => 'Channel feed'; - - @override - String notifGroupDmConversationLabel(String senderFullName, int numOthers) { - String _temp0 = intl.Intl.pluralLogic( - numOthers, - locale: localeName, - other: '$numOthers others', - one: '1 other', - ); - return '$senderFullName to you and $_temp0'; - } - - @override - String get pinnedSubscriptionsLabel => 'Pinned'; - - @override - String get unpinnedSubscriptionsLabel => 'Unpinned'; - - @override - String get notifSelfUser => 'You'; - - @override - String get reactedEmojiSelfUser => 'You'; - - @override - String get reactionChipsLabel => 'Reactions'; - - @override - String reactionChipLabel(String emojiName, String votes) { - return '$emojiName: $votes'; - } - - @override - String reactionChipVotesYouAndOthers(int otherUsersCount) { - String _temp0 = intl.Intl.pluralLogic( - otherUsersCount, - locale: localeName, - other: 'You and $otherUsersCount others', - one: 'You and 1 other', - ); - return '$_temp0'; - } - - @override - String onePersonTyping(String typist) { - return '$typist is typing…'; - } - - @override - String twoPeopleTyping(String typist, String otherTypist) { - return '$typist and $otherTypist are typing…'; - } - - @override - String get manyPeopleTyping => 'Several people are typing…'; - - @override - String get wildcardMentionAll => 'all'; - - @override - String get wildcardMentionEveryone => 'everyone'; - - @override - String get wildcardMentionChannel => 'channel'; - - @override - String get wildcardMentionStream => 'stream'; - - @override - String get wildcardMentionTopic => 'topic'; - - @override - String get wildcardMentionChannelDescription => 'Notify channel'; - - @override - String get wildcardMentionStreamDescription => 'Notify stream'; - - @override - String get wildcardMentionAllDmDescription => 'Notify recipients'; - - @override - String get wildcardMentionTopicDescription => 'Notify topic'; - - @override - String get messageIsEditedLabel => 'EDITED'; - - @override - String get messageIsMovedLabel => 'MOVED'; - - @override - String get messageNotSentLabel => 'MESSAGE NOT SENT'; - - @override - String pollVoterNames(String voterNames) { - return '($voterNames)'; - } - - @override - String get themeSettingTitle => 'THEME'; - - @override - String get themeSettingDark => 'Dark'; - - @override - String get themeSettingLight => 'Light'; - - @override - String get themeSettingSystem => 'System'; - - @override - String get openLinksWithInAppBrowser => 'Open links with in-app browser'; - - @override - String get pollWidgetQuestionMissing => 'No question.'; - - @override - String get pollWidgetOptionsMissing => 'This poll has no options yet.'; - - @override - String get initialAnchorSettingTitle => 'Open message feeds at'; - - @override - String get initialAnchorSettingDescription => - 'You can choose whether message feeds open at your first unread message or at the newest messages.'; - - @override - String get initialAnchorSettingFirstUnreadAlways => 'First unread message'; - - @override - String get initialAnchorSettingFirstUnreadConversations => - 'First unread message in conversation views, newest message elsewhere'; - - @override - String get initialAnchorSettingNewestAlways => 'Newest message'; - - @override - String get markReadOnScrollSettingTitle => 'Mark messages as read on scroll'; - - @override - String get markReadOnScrollSettingDescription => - 'When scrolling through messages, should they automatically be marked as read?'; - - @override - String get markReadOnScrollSettingAlways => 'Always'; - - @override - String get markReadOnScrollSettingNever => 'Never'; - - @override - String get markReadOnScrollSettingConversations => - 'Only in conversation views'; - - @override - String get markReadOnScrollSettingConversationsDescription => - 'Messages will be automatically marked as read only when viewing a single topic or direct message conversation.'; - - @override - String get experimentalFeatureSettingsPageTitle => 'Experimental features'; - - @override - String get experimentalFeatureSettingsWarning => - 'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'; - - @override - String get errorNotificationOpenTitle => 'Failed to open notification'; - - @override - String get errorNotificationOpenAccountNotFound => - 'The account associated with this notification could not be found.'; - - @override - String get errorReactionAddingFailedTitle => 'Adding reaction failed'; - - @override - String get errorReactionRemovingFailedTitle => 'Removing reaction failed'; - - @override - String get errorSharingTitle => 'Failed to share content'; - - @override - String get errorSharingAccountNotLoggedIn => - 'There is no account logged in. Please log in to an account and try again.'; - - @override - String get emojiReactionsMore => 'more'; - - @override - String get emojiPickerSearchEmoji => 'Search emoji'; - - @override - String get noEarlierMessages => 'No earlier messages'; - - @override - String get revealButtonLabel => 'Reveal message'; - - @override - String get mutedUser => 'Muted user'; - - @override - String get scrollToBottomTooltip => 'Scroll to bottom'; - - @override - String get appVersionUnknownPlaceholder => '(…)'; - - @override - String get zulipAppTitle => 'Zulip'; -} +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'zulip_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for French (`fr`). +class ZulipLocalizationsFr extends ZulipLocalizations { + ZulipLocalizationsFr([String locale = 'fr']) : super(locale); + + @override + String get aboutPageTitle => 'À propos de Zulip'; + + @override + String get aboutPageAppVersion => 'Version de l\'application'; + + @override + String get aboutPageOpenSourceLicenses => 'Licences de logiciel libre'; + + @override + String get aboutPageTapToView => 'Toucher pour voir'; + + @override + String get upgradeWelcomeDialogTitle => + 'Bienvenue dans la nouvelle application Zulip !'; + + @override + String get upgradeWelcomeDialogMessage => + 'Vous retrouverez une expérience familière dans un logiciel plus rapide et plus élégant.'; + + @override + String get upgradeWelcomeDialogLinkText => + 'Allez voir les articles sur le blog des annonces !'; + + @override + String get upgradeWelcomeDialogDismiss => 'Allons-y'; + + @override + String get chooseAccountPageTitle => 'Choisir un compte'; + + @override + String get settingsPageTitle => 'Paramètres'; + + @override + String get switchAccountButton => 'Changer de compte'; + + @override + String tryAnotherAccountMessage(Object url) { + return 'Votre compte à $url prend du temps à se charger.'; + } + + @override + String get tryAnotherAccountButton => 'Essayer un autre compte'; + + @override + String get chooseAccountPageLogOutButton => 'Déconnexion'; + + @override + String get logOutConfirmationDialogTitle => 'Se déconnecter?'; + + @override + String get logOutConfirmationDialogMessage => + 'Pour utiliser ce compte à l\'avenir, vous devrez ré-entrer l\'adresse pour votre organisation et les informations de votre compte.'; + + @override + String get logOutConfirmationDialogConfirmButton => 'Déconnexion'; + + @override + String get chooseAccountButtonAddAnAccount => 'Ajouter un compte'; + + @override + String get navButtonAllChannels => 'All channels'; + + @override + String get allChannelsPageTitle => 'All channels'; + + @override + String get allChannelsEmptyPlaceholder => + 'There are no channels you can view in this organization.'; + + @override + String get profileButtonSendDirectMessage => 'Envoyer un message direct'; + + @override + String get errorCouldNotShowUserProfile => + 'Impossible de montrer le profil de l\'utilisateur.'; + + @override + String get permissionsNeededTitle => 'Permissions requises'; + + @override + String get permissionsNeededOpenSettings => 'Ouvrir les préférences'; + + @override + String get permissionsDeniedCameraAccess => + 'Pour charger une image, merci d\'accorder des autorisations supplémentaires à Zulip, dans les préférences.'; + + @override + String get permissionsDeniedReadExternalStorage => + 'Pour charger des fichiers, merci d\'accorder des autorisations supplémentaires à Zulip, dans les préférences.'; + + @override + String get actionSheetOptionSubscribe => 'Subscribe'; + + @override + String get subscribeFailedTitle => 'Failed to subscribe'; + + @override + String get actionSheetOptionMarkChannelAsRead => 'Marquer le canal comme lu'; + + @override + String get actionSheetOptionCopyChannelLink => 'Copier le lien du canal'; + + @override + String get actionSheetOptionListOfTopics => 'Liste des sujets'; + + @override + String get actionSheetOptionChannelFeed => 'Channel feed'; + + @override + String get actionSheetOptionUnsubscribe => 'Unsubscribe'; + + @override + String unsubscribeConfirmationDialogTitle(String channelName) { + return 'Se désinscrire de $channelName?'; + } + + @override + String get unsubscribeConfirmationDialogMessageCannotResubscribe => + 'Once you leave this channel, you will not be able to rejoin.'; + + @override + String get unsubscribeConfirmationDialogConfirmButton => 'Se désinscrire'; + + @override + String get unsubscribeFailedTitle => 'Failed to unsubscribe'; + + @override + String get actionSheetOptionMuteTopic => 'Rendre le sujet silencieux'; + + @override + String get actionSheetOptionUnmuteTopic => 'Rendre le sujet non silencieux'; + + @override + String get actionSheetOptionFollowTopic => 'Suivre le sujet'; + + @override + String get actionSheetOptionUnfollowTopic => 'Ne plus suivre le sujet'; + + @override + String get actionSheetOptionResolveTopic => 'Marquer comme résolu'; + + @override + String get actionSheetOptionUnresolveTopic => 'Marquer comme non résolu'; + + @override + String get errorResolveTopicFailedTitle => + 'Impossible de marquer le sujet comme résolu'; + + @override + String get errorUnresolveTopicFailedTitle => + 'Impossible de marquer le sujet comme non résolu'; + + @override + String get actionSheetOptionSeeWhoReacted => 'See who reacted'; + + @override + String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; + + @override + String seeWhoReactedSheetHeaderLabel(int num) { + return 'Emoji reactions ($num total)'; + } + + @override + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num votes', + one: '1 vote', + ); + return '$emojiName: $_temp0'; + } + + @override + String seeWhoReactedSheetUserListLabel(String emojiName, int num) { + return 'Votes for $emojiName ($num)'; + } + + @override + String get actionSheetOptionViewReadReceipts => 'View read receipts'; + + @override + String get actionSheetReadReceipts => 'Read receipts'; + + @override + String actionSheetReadReceiptsReadCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: 'This message has been read by $count people:', + one: 'This message has been read by $count person:', + ); + return '$_temp0'; + } + + @override + String get actionSheetReadReceiptsZeroReadCount => + 'No one has read this message yet.'; + + @override + String get actionSheetReadReceiptsErrorReadCount => + 'Failed to load read receipts.'; + + @override + String get actionSheetOptionCopyMessageText => 'Copier le contenu du message'; + + @override + String get actionSheetOptionCopyMessageLink => 'Copier le lien au message'; + + @override + String get actionSheetOptionMarkAsUnread => 'Marquer non lu à partir d\'ici'; + + @override + String get actionSheetOptionHideMutedMessage => + 'Cacher à nouveau le message silencieux'; + + @override + String get actionSheetOptionShare => 'Partager'; + + @override + String get actionSheetOptionQuoteMessage => 'Citer le message'; + + @override + String get actionSheetOptionStarMessage => 'Mettre le message en favori'; + + @override + String get actionSheetOptionUnstarMessage => + 'Retirer ce message de la liste des favoris'; + + @override + String get actionSheetOptionEditMessage => 'Modifier le message'; + + @override + String get actionSheetOptionDeleteMessage => 'Delete message'; + + @override + String get deleteMessageConfirmationDialogTitle => 'Delete message?'; + + @override + String get deleteMessageConfirmationDialogMessage => + 'Deleting a message permanently removes it for everyone.'; + + @override + String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; + + @override + String get errorDeleteMessageFailedTitle => 'Failed to delete message'; + + @override + String get actionSheetOptionMarkTopicAsRead => 'Marquer le sujet comme lu'; + + @override + String get actionSheetOptionCopyTopicLink => 'Copier le lien sur le sujet'; + + @override + String get errorWebAuthOperationalErrorTitle => 'Une erreur s\'est produite'; + + @override + String get errorWebAuthOperationalError => + 'Oups, une erreur s\'est produite.'; + + @override + String get errorAccountLoggedInTitle => + 'Vous êtes déjà connecté à ce compte.'; + + @override + String errorAccountLoggedIn(String email, String server) { + return 'Le compte $email at $server figure déjà dans votre liste de comptes.'; + } + + @override + String get errorCouldNotFetchMessageSource => + 'Impossible d\'atteindre le message source.'; + + @override + String get errorCopyingFailed => 'Échec de la copie'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return 'Impossible de charger le fichier $filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename : $size MiB'; + } + + @override + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num fichiers sont', + one: 'Fichier est', + ); + return '$_temp0 plus gros que la limite de capacité du serveur ($maxFileUploadSizeMib MO) et ne peu(ven)t pas être chargé(s) :\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: 'Les fichier sont trop lourds', + one: 'Le fichier est trop lourd', + ); + return '$_temp0'; + } + + @override + String get errorLoginInvalidInputTitle => 'Identifiant incorrect'; + + @override + String get errorLoginFailedTitle => 'La connexion a échoué.'; + + @override + String get errorMessageNotSent => 'Le message n\'a pas pu être envoyé.'; + + @override + String get errorMessageEditNotSaved => + 'Le message n\'a pas pu être sauvegardé.'; + + @override + String errorLoginCouldNotConnect(String url) { + return 'La connexion au serveur a échoué :\n$url'; + } + + @override + String get errorCouldNotConnectTitle => + 'Impossible de se connecter au serveur'; + + @override + String get errorMessageDoesNotSeemToExist => 'Ce message est introuvable.'; + + @override + String get errorQuotationFailed => 'Échec de la citation'; + + @override + String errorServerMessage(String message) { + return 'Message d\'erreur du serveur :\n\n$message'; + } + + @override + String get errorConnectingToServerShort => + 'Une erreur s\'est produite lors de la connexion au serveur. Nouvelle tentative en cours…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return 'Une erreur s\'est produite lors de la connexion à Zulip sur $serverUrl. Nouvelle tentative imminente :\n\n$error'; + } + + @override + String get errorHandlingEventTitle => + 'Une erreur s\'est produite sur le serveur. Reconnexion en cours…'; + + @override + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ) { + return 'Une erreur s\'est produite sur le serveur $serverUrl ; tentative de reconnexion imminente.\n\nErreur : $error\n\nÉvénement : $event'; + } + + @override + String get errorCouldNotOpenLinkTitle => 'Impossible d\'ouvrir le lien'; + + @override + String errorCouldNotOpenLink(String url) { + return 'Le lien suivant n\'a pas pu être ouvert : $url'; + } + + @override + String get errorMuteTopicFailed => + 'Le sujet n\'a pas pu être rendu silencieux'; + + @override + String get errorUnmuteTopicFailed => + 'Impossible de ne plus mettre le sujet en sourdine'; + + @override + String get errorFollowTopicFailed => 'Échec du suivi du sujet'; + + @override + String get errorUnfollowTopicFailed => + 'Échec de la tentative de ne plus suivre le sujet'; + + @override + String get errorSharingFailed => 'Échec du partage'; + + @override + String get errorStarMessageFailedTitle => + 'Échec de marquage du message en favori'; + + @override + String get errorUnstarMessageFailedTitle => + 'Échec de la tentative d\'enlever le message des favoris'; + + @override + String get errorCouldNotEditMessageTitle => + 'Le message n\'a pas pu être modifié'; + + @override + String get successLinkCopied => 'Lien copié'; + + @override + String get successMessageTextCopied => 'Texte du message copié'; + + @override + String get successMessageLinkCopied => 'Lien sur le message copié'; + + @override + String get successTopicLinkCopied => 'Lien sur le sujet copié'; + + @override + String get successChannelLinkCopied => 'Lien sur le canal copié'; + + @override + String get errorBannerDeactivatedDmLabel => + 'Vous ne pouvez pas envoyer de messages aux utilisateurs désactivés.'; + + @override + String get errorBannerCannotPostInChannelLabel => + 'Vous n\'avez pas l\'autorisation de poster sur ce canal.'; + + @override + String get composeBoxBannerLabelUnsubscribedWhenCannotSend => + 'New messages will not appear automatically.'; + + @override + String get composeBoxBannerButtonRefresh => 'Refresh'; + + @override + String get composeBoxBannerButtonSubscribe => 'Subscribe'; + + @override + String get composeBoxBannerLabelEditMessage => 'Editer le message'; + + @override + String get composeBoxBannerButtonCancel => 'Annuler'; + + @override + String get composeBoxBannerButtonSave => 'Sauvegarder'; + + @override + String get editAlreadyInProgressTitle => 'Impossible de modifier le message'; + + @override + String get editAlreadyInProgressMessage => + 'Une modification est déjà en cours. Merci d\'attendre qu\'elle soit terminée.'; + + @override + String get savingMessageEditLabel => 'SAVING EDIT…'; + + @override + String get savingMessageEditFailedLabel => 'EDIT NOT SAVED'; + + @override + String get discardDraftConfirmationDialogTitle => + 'Discard the message you’re writing?'; + + @override + String get discardDraftForEditConfirmationDialogMessage => + 'When you edit a message, the content that was previously in the compose box is discarded.'; + + @override + String get discardDraftForOutboxConfirmationDialogMessage => + 'When you restore an unsent message, the content that was previously in the compose box is discarded.'; + + @override + String get discardDraftConfirmationDialogConfirmButton => 'Discard'; + + @override + String get composeBoxAttachFilesTooltip => 'Attach files'; + + @override + String get composeBoxAttachMediaTooltip => 'Attach images or videos'; + + @override + String get composeBoxAttachFromCameraTooltip => 'Take a photo'; + + @override + String get composeBoxAttachFromVideoCallTooltip => 'Attach a video call'; + + @override + String get composeBoxGenericContentHint => 'Type a message'; + + @override + String get newDmSheetComposeButtonLabel => 'Compose'; + + @override + String get newDmSheetScreenTitle => 'New DM'; + + @override + String get newDmFabButtonLabel => 'New DM'; + + @override + String get newDmSheetSearchHintEmpty => 'Add one or more users'; + + @override + String get newDmSheetSearchHintSomeSelected => 'Add another user…'; + + @override + String get newDmSheetNoUsersFound => 'No users found'; + + @override + String composeBoxDmContentHint(String user) { + return 'Message @$user'; + } + + @override + String get composeBoxGroupDmContentHint => 'Message group'; + + @override + String get composeBoxSelfDmContentHint => 'Write yourself a note'; + + @override + String composeBoxChannelContentHint(String destination) { + return 'Message $destination'; + } + + @override + String get preparingEditMessageContentInput => 'Preparing…'; + + @override + String get composeBoxSendTooltip => 'Send'; + + @override + String get unknownChannelName => '(unknown channel)'; + + @override + String get composeBoxTopicHintText => 'Topic'; + + @override + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { + return 'Enter a topic (skip for “$defaultTopicName”)'; + } + + @override + String composeBoxUploadingFilename(String filename) { + return 'Uploading $filename…'; + } + + @override + String get composeBoxUploadedVideoCallUrl => 'Join video call.'; + + @override + String composeBoxLoadingMessage(int messageId) { + return '(loading message $messageId)'; + } + + @override + String get unknownUserName => '(unknown user)'; + + @override + String get dmsWithYourselfPageTitle => 'DMs with yourself'; + + @override + String messageListGroupYouAndOthers(String others) { + return 'You and $others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return 'DMs with $others'; + } + + @override + String get emptyMessageList => 'There are no messages here.'; + + @override + String get emptyMessageListSearch => 'No search results.'; + + @override + String get messageListGroupYouWithYourself => 'Messages with yourself'; + + @override + String get contentValidationErrorTooLong => + 'Message length shouldn\'t be greater than 10000 characters.'; + + @override + String get contentValidationErrorEmpty => 'You have nothing to send!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => + 'Please wait for the quotation to complete.'; + + @override + String get contentValidationErrorUploadInProgress => + 'Please wait for the upload to complete.'; + + @override + String get dialogCancel => 'Cancel'; + + @override + String get dialogContinue => 'Continue'; + + @override + String get dialogClose => 'Close'; + + @override + String get errorDialogLearnMore => 'Learn more'; + + @override + String get errorDialogContinue => 'OK'; + + @override + String get errorDialogTitle => 'Error'; + + @override + String get snackBarDetails => 'Details'; + + @override + String get lightboxCopyLinkTooltip => 'Copy link'; + + @override + String get lightboxVideoCurrentPosition => 'Current position'; + + @override + String get lightboxVideoDuration => 'Video duration'; + + @override + String get loginPageTitle => 'Log in'; + + @override + String get loginFormSubmitLabel => 'Log in'; + + @override + String get loginMethodDivider => 'OR'; + + @override + String signInWithFoo(String method) { + return 'Sign in with $method'; + } + + @override + String get loginAddAnAccountPageTitle => 'Add an account'; + + @override + String get loginServerUrlLabel => 'Your Zulip server URL'; + + @override + String get loginHidePassword => 'Hide password'; + + @override + String get loginEmailLabel => 'Email address'; + + @override + String get loginErrorMissingEmail => 'Please enter your email.'; + + @override + String get loginPasswordLabel => 'Password'; + + @override + String get loginErrorMissingPassword => 'Please enter your password.'; + + @override + String get loginUsernameLabel => 'Username'; + + @override + String get loginErrorMissingUsername => 'Please enter your username.'; + + @override + String get topicValidationErrorTooLong => + 'Topic length shouldn\'t be greater than 60 characters.'; + + @override + String get topicValidationErrorMandatoryButEmpty => + 'Topics are required in this organization.'; + + @override + String get errorContentNotInsertedTitle => 'Content not inserted'; + + @override + String get errorContentToInsertIsEmpty => + 'The file to be inserted is empty or cannot be accessed.'; + + @override + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ) { + return '$url is running Zulip Server $zulipVersion, which is unsupported. The minimum supported version is Zulip Server $minSupportedZulipVersion.'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return 'Your account at $url could not be authenticated. Please try logging in again or use another account.'; + } + + @override + String get errorInvalidResponse => 'The server sent an invalid response.'; + + @override + String get errorNetworkRequestFailed => 'Network request failed'; + + @override + String errorMalformedResponse(int httpStatus) { + return 'Server gave malformed response; HTTP status $httpStatus'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return 'Server gave malformed response; HTTP status $httpStatus; $details'; + } + + @override + String errorRequestFailed(int httpStatus) { + return 'Network request failed: HTTP status $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => 'Unable to play the video.'; + + @override + String get serverUrlValidationErrorEmpty => 'Please enter a URL.'; + + @override + String get serverUrlValidationErrorInvalidUrl => 'Please enter a valid URL.'; + + @override + String get serverUrlValidationErrorNoUseEmail => + 'Please enter the server URL, not your email.'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => + 'The server URL must start with http:// or https://.'; + + @override + String get spoilerDefaultHeaderText => 'Spoiler'; + + @override + String get markAllAsReadLabel => 'Mark all messages as read'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num messages', + one: '1 message', + ); + return 'Marked $_temp0 as read.'; + } + + @override + String get markAsReadInProgress => 'Marking messages as read…'; + + @override + String get errorMarkAsReadFailedTitle => 'Mark as read failed'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num messages', + one: '1 message', + ); + return 'Marked $_temp0 as unread.'; + } + + @override + String get markAsUnreadInProgress => 'Marking messages as unread…'; + + @override + String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed'; + + @override + String get today => 'Today'; + + @override + String get yesterday => 'Yesterday'; + + @override + String get userActiveNow => 'Active now'; + + @override + String get userIdle => 'Idle'; + + @override + String userActiveMinutesAgo(int minutes) { + String _temp0 = intl.Intl.pluralLogic( + minutes, + locale: localeName, + other: '$minutes minutes', + one: '1 minute', + ); + return 'Active $_temp0 ago'; + } + + @override + String userActiveHoursAgo(int hours) { + String _temp0 = intl.Intl.pluralLogic( + hours, + locale: localeName, + other: '$hours hours', + one: '1 hour', + ); + return 'Active $_temp0 ago'; + } + + @override + String get userActiveYesterday => 'Active yesterday'; + + @override + String userActiveDaysAgo(int days) { + String _temp0 = intl.Intl.pluralLogic( + days, + locale: localeName, + other: '$days days', + one: '1 day', + ); + return 'Active $_temp0 ago'; + } + + @override + String userActiveDate(String date) { + return 'Active $date'; + } + + @override + String get userNotActiveInYear => 'Not active in the last year'; + + @override + String get invisibleMode => 'Invisible mode'; + + @override + String get turnOnInvisibleModeErrorTitle => + 'Error turning on invisible mode. Please try again.'; + + @override + String get turnOffInvisibleModeErrorTitle => + 'Error turning off invisible mode. Please try again.'; + + @override + String get userRoleOwner => 'Owner'; + + @override + String get userRoleAdministrator => 'Administrator'; + + @override + String get userRoleModerator => 'Moderator'; + + @override + String get userRoleMember => 'Member'; + + @override + String get userRoleGuest => 'Guest'; + + @override + String get userRoleUnknown => 'Unknown'; + + @override + String get statusButtonLabelStatusSet => 'Status'; + + @override + String get statusButtonLabelStatusUnset => 'Set status'; + + @override + String get noStatusText => 'No status text'; + + @override + String get setStatusPageTitle => 'Set status'; + + @override + String get statusClearButtonLabel => 'Clear'; + + @override + String get statusSaveButtonLabel => 'Save'; + + @override + String get statusTextHint => 'Your status'; + + @override + String get userStatusBusy => 'Busy'; + + @override + String get userStatusInAMeeting => 'In a meeting'; + + @override + String get userStatusCommuting => 'Commuting'; + + @override + String get userStatusOutSick => 'Out sick'; + + @override + String get userStatusVacationing => 'Vacationing'; + + @override + String get userStatusWorkingRemotely => 'Working remotely'; + + @override + String get userStatusAtTheOffice => 'At the office'; + + @override + String get updateStatusErrorTitle => + 'Error updating user status. Please try again.'; + + @override + String get searchMessagesPageTitle => 'Search'; + + @override + String get searchMessagesHintText => 'Search'; + + @override + String get searchMessagesClearButtonTooltip => 'Clear'; + + @override + String get inboxPageTitle => 'Inbox'; + + @override + String get inboxEmptyPlaceholder => + 'There are no unread messages in your inbox. Use the buttons below to view the combined feed or list of channels.'; + + @override + String get recentDmConversationsPageTitle => 'Direct messages'; + + @override + String get recentDmConversationsSectionHeader => 'Direct messages'; + + @override + String get recentDmConversationsEmptyPlaceholder => + 'You have no direct messages yet! Why not start the conversation?'; + + @override + String get combinedFeedPageTitle => 'Combined feed'; + + @override + String get mentionsPageTitle => 'Mentions'; + + @override + String get starredMessagesPageTitle => 'Starred messages'; + + @override + String get channelsPageTitle => 'Channels'; + + @override + String get channelsEmptyPlaceholder => + 'You’re not subscribed to any channels yet.'; + + @override + String channelsEmptyPlaceholderWithAllChannelsLink( + String allChannelsPageTitle, + ) { + return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; + } + + @override + String get sharePageTitle => 'Share'; + + @override + String get mainMenuMyProfile => 'My profile'; + + @override + String get topicsButtonTooltip => 'Topics'; + + @override + String get channelFeedButtonTooltip => 'Channel feed'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: '$numOthers others', + one: '1 other', + ); + return '$senderFullName to you and $_temp0'; + } + + @override + String get pinnedSubscriptionsLabel => 'Pinned'; + + @override + String get unpinnedSubscriptionsLabel => 'Unpinned'; + + @override + String get notifSelfUser => 'You'; + + @override + String get reactedEmojiSelfUser => 'You'; + + @override + String get reactionChipsLabel => 'Reactions'; + + @override + String reactionChipLabel(String emojiName, String votes) { + return '$emojiName: $votes'; + } + + @override + String reactionChipVotesYouAndOthers(int otherUsersCount) { + String _temp0 = intl.Intl.pluralLogic( + otherUsersCount, + locale: localeName, + other: 'You and $otherUsersCount others', + one: 'You and 1 other', + ); + return '$_temp0'; + } + + @override + String onePersonTyping(String typist) { + return '$typist is typing…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist and $otherTypist are typing…'; + } + + @override + String get manyPeopleTyping => 'Several people are typing…'; + + @override + String get wildcardMentionAll => 'all'; + + @override + String get wildcardMentionEveryone => 'everyone'; + + @override + String get wildcardMentionChannel => 'channel'; + + @override + String get wildcardMentionStream => 'stream'; + + @override + String get wildcardMentionTopic => 'topic'; + + @override + String get wildcardMentionChannelDescription => 'Notify channel'; + + @override + String get wildcardMentionStreamDescription => 'Notify stream'; + + @override + String get wildcardMentionAllDmDescription => 'Notify recipients'; + + @override + String get wildcardMentionTopicDescription => 'Notify topic'; + + @override + String get messageIsEditedLabel => 'EDITED'; + + @override + String get messageIsMovedLabel => 'MOVED'; + + @override + String get messageNotSentLabel => 'MESSAGE NOT SENT'; + + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + + @override + String get themeSettingTitle => 'THEME'; + + @override + String get themeSettingDark => 'Dark'; + + @override + String get themeSettingLight => 'Light'; + + @override + String get themeSettingSystem => 'System'; + + @override + String get openLinksWithInAppBrowser => 'Open links with in-app browser'; + + @override + String get pollWidgetQuestionMissing => 'No question.'; + + @override + String get pollWidgetOptionsMissing => 'This poll has no options yet.'; + + @override + String get initialAnchorSettingTitle => 'Open message feeds at'; + + @override + String get initialAnchorSettingDescription => + 'You can choose whether message feeds open at your first unread message or at the newest messages.'; + + @override + String get initialAnchorSettingFirstUnreadAlways => 'First unread message'; + + @override + String get initialAnchorSettingFirstUnreadConversations => + 'First unread message in conversation views, newest message elsewhere'; + + @override + String get initialAnchorSettingNewestAlways => 'Newest message'; + + @override + String get markReadOnScrollSettingTitle => 'Mark messages as read on scroll'; + + @override + String get markReadOnScrollSettingDescription => + 'When scrolling through messages, should they automatically be marked as read?'; + + @override + String get markReadOnScrollSettingAlways => 'Always'; + + @override + String get markReadOnScrollSettingNever => 'Never'; + + @override + String get markReadOnScrollSettingConversations => + 'Only in conversation views'; + + @override + String get markReadOnScrollSettingConversationsDescription => + 'Messages will be automatically marked as read only when viewing a single topic or direct message conversation.'; + + @override + String get experimentalFeatureSettingsPageTitle => 'Experimental features'; + + @override + String get experimentalFeatureSettingsWarning => + 'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'; + + @override + String get errorNotificationOpenTitle => 'Failed to open notification'; + + @override + String get errorNotificationOpenAccountNotFound => + 'The account associated with this notification could not be found.'; + + @override + String get errorReactionAddingFailedTitle => 'Adding reaction failed'; + + @override + String get errorReactionRemovingFailedTitle => 'Removing reaction failed'; + + @override + String get errorSharingTitle => 'Failed to share content'; + + @override + String get errorSharingAccountNotLoggedIn => + 'There is no account logged in. Please log in to an account and try again.'; + + @override + String get emojiReactionsMore => 'more'; + + @override + String get emojiPickerSearchEmoji => 'Search emoji'; + + @override + String get noEarlierMessages => 'No earlier messages'; + + @override + String get revealButtonLabel => 'Reveal message'; + + @override + String get mutedUser => 'Muted user'; + + @override + String get scrollToBottomTooltip => 'Scroll to bottom'; + + @override + String get appVersionUnknownPlaceholder => '(…)'; + + @override + String get zulipAppTitle => 'Zulip'; +} diff --git a/lib/generated/l10n/zulip_localizations_it.dart b/lib/generated/l10n/zulip_localizations_it.dart index ce18a1d568..95d6590238 100644 --- a/lib/generated/l10n/zulip_localizations_it.dart +++ b/lib/generated/l10n/zulip_localizations_it.dart @@ -1,1185 +1,1191 @@ -// ignore: unused_import -import 'package:intl/intl.dart' as intl; -import 'zulip_localizations.dart'; - -// ignore_for_file: type=lint - -/// The translations for Italian (`it`). -class ZulipLocalizationsIt extends ZulipLocalizations { - ZulipLocalizationsIt([String locale = 'it']) : super(locale); - - @override - String get aboutPageTitle => 'Su Zulip'; - - @override - String get aboutPageAppVersion => 'Versione app'; - - @override - String get aboutPageOpenSourceLicenses => 'Licenze open-source'; - - @override - String get aboutPageTapToView => 'Tap per visualizzare'; - - @override - String get upgradeWelcomeDialogTitle => 'Benvenuti alla nuova app Zulip!'; - - @override - String get upgradeWelcomeDialogMessage => - 'Troverai un\'esperienza familiare in un pacchetto più veloce ed elegante.'; - - @override - String get upgradeWelcomeDialogLinkText => - 'Date un\'occhiata al post dell\'annuncio sul blog!'; - - @override - String get upgradeWelcomeDialogDismiss => 'Andiamo'; - - @override - String get chooseAccountPageTitle => 'Scegli account'; - - @override - String get settingsPageTitle => 'Impostazioni'; - - @override - String get switchAccountButton => 'Cambia account'; - - @override - String tryAnotherAccountMessage(Object url) { - return 'Il caricamento dell\'account su $url sta richiedendo un po\' di tempo.'; - } - - @override - String get tryAnotherAccountButton => 'Prova un altro account'; - - @override - String get chooseAccountPageLogOutButton => 'Esci'; - - @override - String get logOutConfirmationDialogTitle => 'Disconnettersi?'; - - @override - String get logOutConfirmationDialogMessage => - 'Per utilizzare questo account in futuro, bisognerà reinserire l\'URL della propria organizzazione e le informazioni del proprio account.'; - - @override - String get logOutConfirmationDialogConfirmButton => 'Esci'; - - @override - String get chooseAccountButtonAddAnAccount => 'Aggiungi un account'; - - @override - String get navButtonAllChannels => 'All channels'; - - @override - String get allChannelsPageTitle => 'All channels'; - - @override - String get allChannelsEmptyPlaceholder => - 'There are no channels you can view in this organization.'; - - @override - String get profileButtonSendDirectMessage => 'Invia un messaggio diretto'; - - @override - String get errorCouldNotShowUserProfile => - 'Impossibile mostrare il profilo utente.'; - - @override - String get permissionsNeededTitle => 'Permessi necessari'; - - @override - String get permissionsNeededOpenSettings => 'Apri le impostazioni'; - - @override - String get permissionsDeniedCameraAccess => - 'Per caricare un\'immagine, bisogna concedere a Zulip autorizzazioni aggiuntive nelle Impostazioni.'; - - @override - String get permissionsDeniedReadExternalStorage => - 'Per caricare file, bisogna concedere a Zulip autorizzazioni aggiuntive nelle Impostazioni.'; - - @override - String get actionSheetOptionSubscribe => 'Iscriviti'; - - @override - String get subscribeFailedTitle => 'Iscrizione non riuscita'; - - @override - String get actionSheetOptionMarkChannelAsRead => 'Segna il canale come letto'; - - @override - String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; - - @override - String get actionSheetOptionListOfTopics => 'Elenco degli argomenti'; - - @override - String get actionSheetOptionChannelFeed => 'Channel feed'; - - @override - String get actionSheetOptionUnsubscribe => 'Unsubscribe'; - - @override - String unsubscribeConfirmationDialogTitle(String channelName) { - return 'Unsubscribe from $channelName?'; - } - - @override - String get unsubscribeConfirmationDialogMessageCannotResubscribe => - 'Once you leave this channel, you will not be able to rejoin.'; - - @override - String get unsubscribeConfirmationDialogConfirmButton => 'Unsubscribe'; - - @override - String get unsubscribeFailedTitle => 'Failed to unsubscribe'; - - @override - String get actionSheetOptionMuteTopic => 'Silenzia argomento'; - - @override - String get actionSheetOptionUnmuteTopic => 'Riattiva argomento'; - - @override - String get actionSheetOptionFollowTopic => 'Segui argomento'; - - @override - String get actionSheetOptionUnfollowTopic => 'Non seguire più l\'argomento'; - - @override - String get actionSheetOptionResolveTopic => 'Segna come risolto'; - - @override - String get actionSheetOptionUnresolveTopic => 'Segna come irrisolto'; - - @override - String get errorResolveTopicFailedTitle => - 'Impossibile contrassegnare l\'argomento come risolto'; - - @override - String get errorUnresolveTopicFailedTitle => - 'Impossibile contrassegnare l\'argomento come irrisolto'; - - @override - String get actionSheetOptionSeeWhoReacted => 'See who reacted'; - - @override - String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; - - @override - String seeWhoReactedSheetHeaderLabel(int num) { - return 'Emoji reactions ($num total)'; - } - - @override - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num votes', - one: '1 vote', - ); - return '$emojiName: $_temp0'; - } - - @override - String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Votes for $emojiName ($num)'; - } - - @override - String get actionSheetOptionViewReadReceipts => 'View read receipts'; - - @override - String get actionSheetReadReceipts => 'Read receipts'; - - @override - String actionSheetReadReceiptsReadCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: 'This message has been read by $count people:', - one: 'This message has been read by $count person:', - ); - return '$_temp0'; - } - - @override - String get actionSheetReadReceiptsZeroReadCount => - 'No one has read this message yet.'; - - @override - String get actionSheetReadReceiptsErrorReadCount => - 'Failed to load read receipts.'; - - @override - String get actionSheetOptionCopyMessageText => 'Copia il testo del messaggio'; - - @override - String get actionSheetOptionCopyMessageLink => - 'Copia il collegamento al messaggio'; - - @override - String get actionSheetOptionMarkAsUnread => 'Segna come non letto da qui'; - - @override - String get actionSheetOptionHideMutedMessage => - 'Nascondi nuovamente il messaggio disattivato'; - - @override - String get actionSheetOptionShare => 'Condividi'; - - @override - String get actionSheetOptionQuoteMessage => 'Cita messaggio'; - - @override - String get actionSheetOptionStarMessage => 'Messaggio speciale'; - - @override - String get actionSheetOptionUnstarMessage => 'Messaggio normale'; - - @override - String get actionSheetOptionEditMessage => 'Modifica messaggio'; - - @override - String get actionSheetOptionDeleteMessage => 'Delete message'; - - @override - String get deleteMessageConfirmationDialogTitle => 'Delete message?'; - - @override - String get deleteMessageConfirmationDialogMessage => - 'Deleting a message permanently removes it for everyone.'; - - @override - String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; - - @override - String get errorDeleteMessageFailedTitle => 'Failed to delete message'; - - @override - String get actionSheetOptionMarkTopicAsRead => - 'Segna l\'argomento come letto'; - - @override - String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; - - @override - String get errorWebAuthOperationalErrorTitle => 'Qualcosa è andato storto'; - - @override - String get errorWebAuthOperationalError => - 'Si è verificato un errore imprevisto.'; - - @override - String get errorAccountLoggedInTitle => 'Account già registrato'; - - @override - String errorAccountLoggedIn(String email, String server) { - return 'L\'account $email su $server è già presente nell\'elenco account.'; - } - - @override - String get errorCouldNotFetchMessageSource => - 'Impossibile recuperare l\'origine del messaggio.'; - - @override - String get errorCopyingFailed => 'Copia non riuscita'; - - @override - String errorFailedToUploadFileTitle(String filename) { - return 'Impossibile caricare il file: $filename'; - } - - @override - String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size MiB'; - } - - @override - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num file sono', - one: 'file è', - ); - return '$_temp0 più grande/i del limite del server di $maxFileUploadSizeMib MiB e non verrà/anno caricato/i:\n\n$listMessage'; - } - - @override - String errorFilesTooLargeTitle(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: 'File', - one: 'File', - ); - return '$_temp0 troppo grande/i'; - } - - @override - String get errorLoginInvalidInputTitle => 'Ingresso non valido'; - - @override - String get errorLoginFailedTitle => 'Accesso non riuscito'; - - @override - String get errorMessageNotSent => 'Messaggio non inviato'; - - @override - String get errorMessageEditNotSaved => 'Messaggio non salvato'; - - @override - String errorLoginCouldNotConnect(String url) { - return 'Impossibile connettersi al server:\n$url'; - } - - @override - String get errorCouldNotConnectTitle => 'Impossibile connettersi'; - - @override - String get errorMessageDoesNotSeemToExist => - 'Quel messaggio sembra non esistere.'; - - @override - String get errorQuotationFailed => 'Citazione non riuscita'; - - @override - String errorServerMessage(String message) { - return 'Il server ha detto:\n\n$message'; - } - - @override - String get errorConnectingToServerShort => - 'Errore di connessione a Zulip. Nuovo tentativo…'; - - @override - String errorConnectingToServerDetails(String serverUrl, String error) { - return 'Errore durante la connessione a Zulip su $serverUrl. Verrà effettuato un nuovo tentativo:\n\n$error'; - } - - @override - String get errorHandlingEventTitle => - 'Errore nella gestione di un evento Zulip. Nuovo tentativo di connessione…'; - - @override - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ) { - return 'Errore nella gestione di un evento Zulip da $serverUrl; verrà effettuato un nuovo tentativo.\n\nErrore: $error\n\nEvento: $event'; - } - - @override - String get errorCouldNotOpenLinkTitle => 'Impossibile aprire il collegamento'; - - @override - String errorCouldNotOpenLink(String url) { - return 'Impossibile aprire il collegamento: $url'; - } - - @override - String get errorMuteTopicFailed => 'Impossibile silenziare l\'argomento'; - - @override - String get errorUnmuteTopicFailed => 'Impossibile de-silenziare l\'argomento'; - - @override - String get errorFollowTopicFailed => 'Impossibile seguire l\'argomento'; - - @override - String get errorUnfollowTopicFailed => - 'Impossibile smettere di seguire l\'argomento'; - - @override - String get errorSharingFailed => 'Condivisione fallita'; - - @override - String get errorStarMessageFailedTitle => - 'Impossibile contrassegnare il messaggio come speciale'; - - @override - String get errorUnstarMessageFailedTitle => - 'Impossibile contrassegnare il messaggio come normale'; - - @override - String get errorCouldNotEditMessageTitle => - 'Impossibile modificare il messaggio'; - - @override - String get successLinkCopied => 'Collegamento copiato'; - - @override - String get successMessageTextCopied => 'Testo messaggio copiato'; - - @override - String get successMessageLinkCopied => 'Collegamento messaggio copiato'; - - @override - String get successTopicLinkCopied => 'Topic link copied'; - - @override - String get successChannelLinkCopied => 'Channel link copied'; - - @override - String get errorBannerDeactivatedDmLabel => - 'Non è possibile inviare messaggi agli utenti disattivati.'; - - @override - String get errorBannerCannotPostInChannelLabel => - 'Non hai l\'autorizzazione per postare su questo canale.'; - - @override - String get composeBoxBannerLabelUnsubscribedWhenCannotSend => - 'New messages will not appear automatically.'; - - @override - String get composeBoxBannerButtonRefresh => 'Refresh'; - - @override - String get composeBoxBannerButtonSubscribe => 'Subscribe'; - - @override - String get composeBoxBannerLabelEditMessage => 'Modifica messaggio'; - - @override - String get composeBoxBannerButtonCancel => 'Annulla'; - - @override - String get composeBoxBannerButtonSave => 'Salva'; - - @override - String get editAlreadyInProgressTitle => - 'Impossibile modificare il messaggio'; - - @override - String get editAlreadyInProgressMessage => - 'Una modifica è già in corso. Attendere il completamento.'; - - @override - String get savingMessageEditLabel => 'SALVATAGGIO MODIFICA…'; - - @override - String get savingMessageEditFailedLabel => 'MODIFICA NON SALVATA'; - - @override - String get discardDraftConfirmationDialogTitle => - 'Scartare il messaggio che si sta scrivendo?'; - - @override - String get discardDraftForEditConfirmationDialogMessage => - 'Quando si modifica un messaggio, il contenuto precedentemente presente nella casella di composizione viene ignorato.'; - - @override - String get discardDraftForOutboxConfirmationDialogMessage => - 'Quando si recupera un messaggio non inviato, il contenuto precedentemente presente nella casella di composizione viene ignorato.'; - - @override - String get discardDraftConfirmationDialogConfirmButton => 'Abbandona'; - - @override - String get composeBoxAttachFilesTooltip => 'Allega file'; - - @override - String get composeBoxAttachMediaTooltip => 'Allega immagini o video'; - - @override - String get composeBoxAttachFromCameraTooltip => 'Fai una foto'; - - @override - String get composeBoxGenericContentHint => 'Batti un messaggio'; - - @override - String get newDmSheetComposeButtonLabel => 'Componi'; - - @override - String get newDmSheetScreenTitle => 'Nuovo MD'; - - @override - String get newDmFabButtonLabel => 'Nuovo MD'; - - @override - String get newDmSheetSearchHintEmpty => 'Aggiungi uno o più utenti'; - - @override - String get newDmSheetSearchHintSomeSelected => 'Aggiungi un altro utente…'; - - @override - String get newDmSheetNoUsersFound => 'Nessun utente trovato'; - - @override - String composeBoxDmContentHint(String user) { - return 'Messaggia @$user'; - } - - @override - String get composeBoxGroupDmContentHint => 'Gruppo di messaggi'; - - @override - String get composeBoxSelfDmContentHint => 'Annota qualcosa'; - - @override - String composeBoxChannelContentHint(String destination) { - return 'Messaggia $destination'; - } - - @override - String get preparingEditMessageContentInput => 'Preparazione…'; - - @override - String get composeBoxSendTooltip => 'Invia'; - - @override - String get unknownChannelName => '(canale sconosciuto)'; - - @override - String get composeBoxTopicHintText => 'Argomento'; - - @override - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { - return 'Inserisci un argomento (salta per \"$defaultTopicName\")'; - } - - @override - String composeBoxUploadingFilename(String filename) { - return 'Caricamento $filename…'; - } - - @override - String composeBoxLoadingMessage(int messageId) { - return '(caricamento messaggio $messageId)'; - } - - @override - String get unknownUserName => '(utente sconosciuto)'; - - @override - String get dmsWithYourselfPageTitle => 'MD con te stesso'; - - @override - String messageListGroupYouAndOthers(String others) { - return 'Tu e $others'; - } - - @override - String dmsWithOthersPageTitle(String others) { - return 'MD con $others'; - } - - @override - String get emptyMessageList => 'There are no messages here.'; - - @override - String get emptyMessageListSearch => 'No search results.'; - - @override - String get messageListGroupYouWithYourself => 'Messaggi con te stesso'; - - @override - String get contentValidationErrorTooLong => - 'La lunghezza del messaggio non deve essere superiore a 10.000 caratteri.'; - - @override - String get contentValidationErrorEmpty => 'Non devi inviare nulla!'; - - @override - String get contentValidationErrorQuoteAndReplyInProgress => - 'Attendere il completamento del commento.'; - - @override - String get contentValidationErrorUploadInProgress => - 'Attendere il completamento del caricamento.'; - - @override - String get dialogCancel => 'Annulla'; - - @override - String get dialogContinue => 'Continua'; - - @override - String get dialogClose => 'Chiudi'; - - @override - String get errorDialogLearnMore => 'Scopri di più'; - - @override - String get errorDialogContinue => 'Ok'; - - @override - String get errorDialogTitle => 'Errore'; - - @override - String get snackBarDetails => 'Dettagli'; - - @override - String get lightboxCopyLinkTooltip => 'Copia collegamento'; - - @override - String get lightboxVideoCurrentPosition => 'Posizione corrente'; - - @override - String get lightboxVideoDuration => 'Durata video'; - - @override - String get loginPageTitle => 'Accesso'; - - @override - String get loginFormSubmitLabel => 'Accesso'; - - @override - String get loginMethodDivider => 'O'; - - @override - String signInWithFoo(String method) { - return 'Accedi con $method'; - } - - @override - String get loginAddAnAccountPageTitle => 'Aggiungi account'; - - @override - String get loginServerUrlLabel => 'URL del server Zulip'; - - @override - String get loginHidePassword => 'Nascondi password'; - - @override - String get loginEmailLabel => 'Indirizzo email'; - - @override - String get loginErrorMissingEmail => 'Inserire l\'email.'; - - @override - String get loginPasswordLabel => 'Password'; - - @override - String get loginErrorMissingPassword => 'Inserire la propria password.'; - - @override - String get loginUsernameLabel => 'Nomeutente'; - - @override - String get loginErrorMissingUsername => 'Inserire il proprio nomeutente.'; - - @override - String get topicValidationErrorTooLong => - 'La lunghezza dell\'argomento non deve superare i 60 caratteri.'; - - @override - String get topicValidationErrorMandatoryButEmpty => - 'In questa organizzazione sono richiesti degli argomenti.'; - - @override - String get errorContentNotInsertedTitle => 'Content not inserted'; - - @override - String get errorContentToInsertIsEmpty => - 'The file to be inserted is empty or cannot be accessed.'; - - @override - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ) { - return '$url sta usando Zulip Server $zulipVersion, che non è supportato. La versione minima supportata è Zulip Server $minSupportedZulipVersion.'; - } - - @override - String errorInvalidApiKeyMessage(String url) { - return 'L\'account su $url non è stato autenticato. Riprovare ad accedere o provare a usare un altro account.'; - } - - @override - String get errorInvalidResponse => - 'Il server ha inviato una risposta non valida.'; - - @override - String get errorNetworkRequestFailed => 'Richiesta di rete non riuscita'; - - @override - String errorMalformedResponse(int httpStatus) { - return 'Il server ha fornito una risposta non valida; stato HTTP $httpStatus'; - } - - @override - String errorMalformedResponseWithCause(int httpStatus, String details) { - return 'Il server ha fornito una risposta non valida; stato HTTP $httpStatus; $details'; - } - - @override - String errorRequestFailed(int httpStatus) { - return 'Richiesta di rete non riuscita: stato HTTP $httpStatus'; - } - - @override - String get errorVideoPlayerFailed => 'Impossibile riprodurre il video.'; - - @override - String get serverUrlValidationErrorEmpty => 'Inserire un URL.'; - - @override - String get serverUrlValidationErrorInvalidUrl => 'Inserire un URL valido.'; - - @override - String get serverUrlValidationErrorNoUseEmail => - 'Inserire l\'URL del server, non il proprio indirizzo email.'; - - @override - String get serverUrlValidationErrorUnsupportedScheme => - 'L\'URL del server deve iniziare con http:// o https://.'; - - @override - String get spoilerDefaultHeaderText => 'Spoiler'; - - @override - String get markAllAsReadLabel => 'Segna tutti i messaggi come letti'; - - @override - String markAsReadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num messagei', - one: '1 messaggio', - ); - return 'Segnato/i $_temp0 come letto/i.'; - } - - @override - String get markAsReadInProgress => 'Contrassegno dei messaggi come letti…'; - - @override - String get errorMarkAsReadFailedTitle => - 'Contrassegno come letto non riuscito'; - - @override - String markAsUnreadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num messagi', - one: '1 messaggio', - ); - return 'Segnato/i $_temp0 come non letto/i.'; - } - - @override - String get markAsUnreadInProgress => - 'Contrassegno dei messaggi come non letti…'; - - @override - String get errorMarkAsUnreadFailedTitle => - 'Contrassegno come non letti non riuscito'; - - @override - String get today => 'Oggi'; - - @override - String get yesterday => 'Ieri'; - - @override - String get userActiveNow => 'Active now'; - - @override - String get userIdle => 'Idle'; - - @override - String userActiveMinutesAgo(int minutes) { - String _temp0 = intl.Intl.pluralLogic( - minutes, - locale: localeName, - other: '$minutes minutes', - one: '1 minute', - ); - return 'Active $_temp0 ago'; - } - - @override - String userActiveHoursAgo(int hours) { - String _temp0 = intl.Intl.pluralLogic( - hours, - locale: localeName, - other: '$hours hours', - one: '1 hour', - ); - return 'Active $_temp0 ago'; - } - - @override - String get userActiveYesterday => 'Active yesterday'; - - @override - String userActiveDaysAgo(int days) { - String _temp0 = intl.Intl.pluralLogic( - days, - locale: localeName, - other: '$days days', - one: '1 day', - ); - return 'Active $_temp0 ago'; - } - - @override - String userActiveDate(String date) { - return 'Active $date'; - } - - @override - String get userNotActiveInYear => 'Not active in the last year'; - - @override - String get invisibleMode => 'Invisible mode'; - - @override - String get turnOnInvisibleModeErrorTitle => - 'Error turning on invisible mode. Please try again.'; - - @override - String get turnOffInvisibleModeErrorTitle => - 'Error turning off invisible mode. Please try again.'; - - @override - String get userRoleOwner => 'Proprietario'; - - @override - String get userRoleAdministrator => 'Amministratore'; - - @override - String get userRoleModerator => 'Moderatore'; - - @override - String get userRoleMember => 'Membro'; - - @override - String get userRoleGuest => 'Ospite'; - - @override - String get userRoleUnknown => 'Sconosciuto'; - - @override - String get statusButtonLabelStatusSet => 'Status'; - - @override - String get statusButtonLabelStatusUnset => 'Set status'; - - @override - String get noStatusText => 'No status text'; - - @override - String get setStatusPageTitle => 'Set status'; - - @override - String get statusClearButtonLabel => 'Clear'; - - @override - String get statusSaveButtonLabel => 'Save'; - - @override - String get statusTextHint => 'Your status'; - - @override - String get userStatusBusy => 'Busy'; - - @override - String get userStatusInAMeeting => 'In a meeting'; - - @override - String get userStatusCommuting => 'Commuting'; - - @override - String get userStatusOutSick => 'Out sick'; - - @override - String get userStatusVacationing => 'Vacationing'; - - @override - String get userStatusWorkingRemotely => 'Working remotely'; - - @override - String get userStatusAtTheOffice => 'At the office'; - - @override - String get updateStatusErrorTitle => - 'Error updating user status. Please try again.'; - - @override - String get searchMessagesPageTitle => 'Search'; - - @override - String get searchMessagesHintText => 'Search'; - - @override - String get searchMessagesClearButtonTooltip => 'Clear'; - - @override - String get inboxPageTitle => 'Inbox'; - - @override - String get inboxEmptyPlaceholder => - 'Non ci sono messaggi non letti nella posta in arrivo. Usare i pulsanti sotto per visualizzare il feed combinato o l\'elenco dei canali.'; - - @override - String get recentDmConversationsPageTitle => 'Messaggi diretti'; - - @override - String get recentDmConversationsSectionHeader => 'Messaggi diretti'; - - @override - String get recentDmConversationsEmptyPlaceholder => - 'Non ci sono ancora messaggi diretti! Perché non iniziare la conversazione?'; - - @override - String get combinedFeedPageTitle => 'Feed combinato'; - - @override - String get mentionsPageTitle => 'Menzioni'; - - @override - String get starredMessagesPageTitle => 'Messaggi speciali'; - - @override - String get channelsPageTitle => 'Canali'; - - @override - String get channelsEmptyPlaceholder => - 'Non sei ancora iscritto ad alcun canale.'; - - @override - String channelsEmptyPlaceholderWithAllChannelsLink( - String allChannelsPageTitle, - ) { - return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; - } - - @override - String get sharePageTitle => 'Share'; - - @override - String get mainMenuMyProfile => 'Il mio profilo'; - - @override - String get topicsButtonTooltip => 'Argomenti'; - - @override - String get channelFeedButtonTooltip => 'Feed del canale'; - - @override - String notifGroupDmConversationLabel(String senderFullName, int numOthers) { - String _temp0 = intl.Intl.pluralLogic( - numOthers, - locale: localeName, - other: '$numOthers altri', - one: '1 altro', - ); - return '$senderFullName a te e $_temp0'; - } - - @override - String get pinnedSubscriptionsLabel => 'Bloccato'; - - @override - String get unpinnedSubscriptionsLabel => 'Non bloccato'; - - @override - String get notifSelfUser => 'Tu'; - - @override - String get reactedEmojiSelfUser => 'Tu'; - - @override - String get reactionChipsLabel => 'Reactions'; - - @override - String reactionChipLabel(String emojiName, String votes) { - return '$emojiName: $votes'; - } - - @override - String reactionChipVotesYouAndOthers(int otherUsersCount) { - String _temp0 = intl.Intl.pluralLogic( - otherUsersCount, - locale: localeName, - other: 'You and $otherUsersCount others', - one: 'You and 1 other', - ); - return '$_temp0'; - } - - @override - String onePersonTyping(String typist) { - return '$typist sta scrivendo…'; - } - - @override - String twoPeopleTyping(String typist, String otherTypist) { - return '$typist e $otherTypist stanno scrivendo…'; - } - - @override - String get manyPeopleTyping => 'Molte persone stanno scrivendo…'; - - @override - String get wildcardMentionAll => 'tutti'; - - @override - String get wildcardMentionEveryone => 'ognuno'; - - @override - String get wildcardMentionChannel => 'canale'; - - @override - String get wildcardMentionStream => 'flusso'; - - @override - String get wildcardMentionTopic => 'argomento'; - - @override - String get wildcardMentionChannelDescription => 'Notifica canale'; - - @override - String get wildcardMentionStreamDescription => 'Notifica flusso'; - - @override - String get wildcardMentionAllDmDescription => 'Notifica destinatari'; - - @override - String get wildcardMentionTopicDescription => 'Notifica argomento'; - - @override - String get messageIsEditedLabel => 'MODIFICATO'; - - @override - String get messageIsMovedLabel => 'SPOSTATO'; - - @override - String get messageNotSentLabel => 'MESSAGGIO NON INVIATO'; - - @override - String pollVoterNames(String voterNames) { - return '($voterNames)'; - } - - @override - String get themeSettingTitle => 'TEMA'; - - @override - String get themeSettingDark => 'Scuro'; - - @override - String get themeSettingLight => 'Chiaro'; - - @override - String get themeSettingSystem => 'Sistema'; - - @override - String get openLinksWithInAppBrowser => - 'Apri i collegamenti con il browser in-app'; - - @override - String get pollWidgetQuestionMissing => 'Nessuna domanda.'; - - @override - String get pollWidgetOptionsMissing => - 'Questo sondaggio non ha ancora opzioni.'; - - @override - String get initialAnchorSettingTitle => 'Apri i feed dei messaggi su'; - - @override - String get initialAnchorSettingDescription => - 'È possibile scegliere se i feed dei messaggi devono aprirsi al primo messaggio non letto oppure ai messaggi più recenti.'; - - @override - String get initialAnchorSettingFirstUnreadAlways => - 'Primo messaggio non letto'; - - @override - String get initialAnchorSettingFirstUnreadConversations => - 'Primo messaggio non letto nelle singole conversazioni, messaggio più recente altrove'; - - @override - String get initialAnchorSettingNewestAlways => 'Messaggio più recente'; - - @override - String get markReadOnScrollSettingTitle => - 'Segna i messaggi come letti durante lo scorrimento'; - - @override - String get markReadOnScrollSettingDescription => - 'Quando si scorrono i messaggi, questi devono essere contrassegnati automaticamente come letti?'; - - @override - String get markReadOnScrollSettingAlways => 'Sempre'; - - @override - String get markReadOnScrollSettingNever => 'Mai'; - - @override - String get markReadOnScrollSettingConversations => - 'Solo nelle visualizzazioni delle conversazioni'; - - @override - String get markReadOnScrollSettingConversationsDescription => - 'I messaggi verranno automaticamente contrassegnati come in sola lettura quando si visualizza un singolo argomento o una conversazione in un messaggio diretto.'; - - @override - String get experimentalFeatureSettingsPageTitle => - 'Caratteristiche sperimentali'; - - @override - String get experimentalFeatureSettingsWarning => - 'Queste opzioni abilitano funzionalità ancora in fase di sviluppo e non ancora pronte. Potrebbero non funzionare e causare problemi in altre aree dell\'app.\n\nQueste impostazioni sono pensate per la sperimentazione da parte di chi lavora allo sviluppo di Zulip.'; - - @override - String get errorNotificationOpenTitle => 'Impossibile aprire la notifica'; - - @override - String get errorNotificationOpenAccountNotFound => - 'Impossibile trovare l\'account associato a questa notifica.'; - - @override - String get errorReactionAddingFailedTitle => - 'Aggiunta della reazione non riuscita'; - - @override - String get errorReactionRemovingFailedTitle => - 'Rimozione della reazione non riuscita'; - - @override - String get errorSharingTitle => 'Failed to share content'; - - @override - String get errorSharingAccountNotLoggedIn => - 'There is no account logged in. Please log in to an account and try again.'; - - @override - String get emojiReactionsMore => 'altro'; - - @override - String get emojiPickerSearchEmoji => 'Cerca emoji'; - - @override - String get noEarlierMessages => 'Nessun messaggio precedente'; - - @override - String get revealButtonLabel => 'Mostra messaggio per mittente silenziato'; - - @override - String get mutedUser => 'Utente silenziato'; - - @override - String get scrollToBottomTooltip => 'Scorri fino in fondo'; - - @override - String get appVersionUnknownPlaceholder => '(…)'; - - @override - String get zulipAppTitle => 'Zulip'; -} +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'zulip_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for Italian (`it`). +class ZulipLocalizationsIt extends ZulipLocalizations { + ZulipLocalizationsIt([String locale = 'it']) : super(locale); + + @override + String get aboutPageTitle => 'Su Zulip'; + + @override + String get aboutPageAppVersion => 'Versione app'; + + @override + String get aboutPageOpenSourceLicenses => 'Licenze open-source'; + + @override + String get aboutPageTapToView => 'Tap per visualizzare'; + + @override + String get upgradeWelcomeDialogTitle => 'Benvenuti alla nuova app Zulip!'; + + @override + String get upgradeWelcomeDialogMessage => + 'Troverai un\'esperienza familiare in un pacchetto più veloce ed elegante.'; + + @override + String get upgradeWelcomeDialogLinkText => + 'Date un\'occhiata al post dell\'annuncio sul blog!'; + + @override + String get upgradeWelcomeDialogDismiss => 'Andiamo'; + + @override + String get chooseAccountPageTitle => 'Scegli account'; + + @override + String get settingsPageTitle => 'Impostazioni'; + + @override + String get switchAccountButton => 'Cambia account'; + + @override + String tryAnotherAccountMessage(Object url) { + return 'Il caricamento dell\'account su $url sta richiedendo un po\' di tempo.'; + } + + @override + String get tryAnotherAccountButton => 'Prova un altro account'; + + @override + String get chooseAccountPageLogOutButton => 'Esci'; + + @override + String get logOutConfirmationDialogTitle => 'Disconnettersi?'; + + @override + String get logOutConfirmationDialogMessage => + 'Per utilizzare questo account in futuro, bisognerà reinserire l\'URL della propria organizzazione e le informazioni del proprio account.'; + + @override + String get logOutConfirmationDialogConfirmButton => 'Esci'; + + @override + String get chooseAccountButtonAddAnAccount => 'Aggiungi un account'; + + @override + String get navButtonAllChannels => 'All channels'; + + @override + String get allChannelsPageTitle => 'All channels'; + + @override + String get allChannelsEmptyPlaceholder => + 'There are no channels you can view in this organization.'; + + @override + String get profileButtonSendDirectMessage => 'Invia un messaggio diretto'; + + @override + String get errorCouldNotShowUserProfile => + 'Impossibile mostrare il profilo utente.'; + + @override + String get permissionsNeededTitle => 'Permessi necessari'; + + @override + String get permissionsNeededOpenSettings => 'Apri le impostazioni'; + + @override + String get permissionsDeniedCameraAccess => + 'Per caricare un\'immagine, bisogna concedere a Zulip autorizzazioni aggiuntive nelle Impostazioni.'; + + @override + String get permissionsDeniedReadExternalStorage => + 'Per caricare file, bisogna concedere a Zulip autorizzazioni aggiuntive nelle Impostazioni.'; + + @override + String get actionSheetOptionSubscribe => 'Iscriviti'; + + @override + String get subscribeFailedTitle => 'Iscrizione non riuscita'; + + @override + String get actionSheetOptionMarkChannelAsRead => 'Segna il canale come letto'; + + @override + String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; + + @override + String get actionSheetOptionListOfTopics => 'Elenco degli argomenti'; + + @override + String get actionSheetOptionChannelFeed => 'Channel feed'; + + @override + String get actionSheetOptionUnsubscribe => 'Unsubscribe'; + + @override + String unsubscribeConfirmationDialogTitle(String channelName) { + return 'Unsubscribe from $channelName?'; + } + + @override + String get unsubscribeConfirmationDialogMessageCannotResubscribe => + 'Once you leave this channel, you will not be able to rejoin.'; + + @override + String get unsubscribeConfirmationDialogConfirmButton => 'Unsubscribe'; + + @override + String get unsubscribeFailedTitle => 'Failed to unsubscribe'; + + @override + String get actionSheetOptionMuteTopic => 'Silenzia argomento'; + + @override + String get actionSheetOptionUnmuteTopic => 'Riattiva argomento'; + + @override + String get actionSheetOptionFollowTopic => 'Segui argomento'; + + @override + String get actionSheetOptionUnfollowTopic => 'Non seguire più l\'argomento'; + + @override + String get actionSheetOptionResolveTopic => 'Segna come risolto'; + + @override + String get actionSheetOptionUnresolveTopic => 'Segna come irrisolto'; + + @override + String get errorResolveTopicFailedTitle => + 'Impossibile contrassegnare l\'argomento come risolto'; + + @override + String get errorUnresolveTopicFailedTitle => + 'Impossibile contrassegnare l\'argomento come irrisolto'; + + @override + String get actionSheetOptionSeeWhoReacted => 'See who reacted'; + + @override + String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; + + @override + String seeWhoReactedSheetHeaderLabel(int num) { + return 'Emoji reactions ($num total)'; + } + + @override + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num votes', + one: '1 vote', + ); + return '$emojiName: $_temp0'; + } + + @override + String seeWhoReactedSheetUserListLabel(String emojiName, int num) { + return 'Votes for $emojiName ($num)'; + } + + @override + String get actionSheetOptionViewReadReceipts => 'View read receipts'; + + @override + String get actionSheetReadReceipts => 'Read receipts'; + + @override + String actionSheetReadReceiptsReadCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: 'This message has been read by $count people:', + one: 'This message has been read by $count person:', + ); + return '$_temp0'; + } + + @override + String get actionSheetReadReceiptsZeroReadCount => + 'No one has read this message yet.'; + + @override + String get actionSheetReadReceiptsErrorReadCount => + 'Failed to load read receipts.'; + + @override + String get actionSheetOptionCopyMessageText => 'Copia il testo del messaggio'; + + @override + String get actionSheetOptionCopyMessageLink => + 'Copia il collegamento al messaggio'; + + @override + String get actionSheetOptionMarkAsUnread => 'Segna come non letto da qui'; + + @override + String get actionSheetOptionHideMutedMessage => + 'Nascondi nuovamente il messaggio disattivato'; + + @override + String get actionSheetOptionShare => 'Condividi'; + + @override + String get actionSheetOptionQuoteMessage => 'Cita messaggio'; + + @override + String get actionSheetOptionStarMessage => 'Messaggio speciale'; + + @override + String get actionSheetOptionUnstarMessage => 'Messaggio normale'; + + @override + String get actionSheetOptionEditMessage => 'Modifica messaggio'; + + @override + String get actionSheetOptionDeleteMessage => 'Delete message'; + + @override + String get deleteMessageConfirmationDialogTitle => 'Delete message?'; + + @override + String get deleteMessageConfirmationDialogMessage => + 'Deleting a message permanently removes it for everyone.'; + + @override + String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; + + @override + String get errorDeleteMessageFailedTitle => 'Failed to delete message'; + + @override + String get actionSheetOptionMarkTopicAsRead => + 'Segna l\'argomento come letto'; + + @override + String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; + + @override + String get errorWebAuthOperationalErrorTitle => 'Qualcosa è andato storto'; + + @override + String get errorWebAuthOperationalError => + 'Si è verificato un errore imprevisto.'; + + @override + String get errorAccountLoggedInTitle => 'Account già registrato'; + + @override + String errorAccountLoggedIn(String email, String server) { + return 'L\'account $email su $server è già presente nell\'elenco account.'; + } + + @override + String get errorCouldNotFetchMessageSource => + 'Impossibile recuperare l\'origine del messaggio.'; + + @override + String get errorCopyingFailed => 'Copia non riuscita'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return 'Impossibile caricare il file: $filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename: $size MiB'; + } + + @override + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num file sono', + one: 'file è', + ); + return '$_temp0 più grande/i del limite del server di $maxFileUploadSizeMib MiB e non verrà/anno caricato/i:\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: 'File', + one: 'File', + ); + return '$_temp0 troppo grande/i'; + } + + @override + String get errorLoginInvalidInputTitle => 'Ingresso non valido'; + + @override + String get errorLoginFailedTitle => 'Accesso non riuscito'; + + @override + String get errorMessageNotSent => 'Messaggio non inviato'; + + @override + String get errorMessageEditNotSaved => 'Messaggio non salvato'; + + @override + String errorLoginCouldNotConnect(String url) { + return 'Impossibile connettersi al server:\n$url'; + } + + @override + String get errorCouldNotConnectTitle => 'Impossibile connettersi'; + + @override + String get errorMessageDoesNotSeemToExist => + 'Quel messaggio sembra non esistere.'; + + @override + String get errorQuotationFailed => 'Citazione non riuscita'; + + @override + String errorServerMessage(String message) { + return 'Il server ha detto:\n\n$message'; + } + + @override + String get errorConnectingToServerShort => + 'Errore di connessione a Zulip. Nuovo tentativo…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return 'Errore durante la connessione a Zulip su $serverUrl. Verrà effettuato un nuovo tentativo:\n\n$error'; + } + + @override + String get errorHandlingEventTitle => + 'Errore nella gestione di un evento Zulip. Nuovo tentativo di connessione…'; + + @override + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ) { + return 'Errore nella gestione di un evento Zulip da $serverUrl; verrà effettuato un nuovo tentativo.\n\nErrore: $error\n\nEvento: $event'; + } + + @override + String get errorCouldNotOpenLinkTitle => 'Impossibile aprire il collegamento'; + + @override + String errorCouldNotOpenLink(String url) { + return 'Impossibile aprire il collegamento: $url'; + } + + @override + String get errorMuteTopicFailed => 'Impossibile silenziare l\'argomento'; + + @override + String get errorUnmuteTopicFailed => 'Impossibile de-silenziare l\'argomento'; + + @override + String get errorFollowTopicFailed => 'Impossibile seguire l\'argomento'; + + @override + String get errorUnfollowTopicFailed => + 'Impossibile smettere di seguire l\'argomento'; + + @override + String get errorSharingFailed => 'Condivisione fallita'; + + @override + String get errorStarMessageFailedTitle => + 'Impossibile contrassegnare il messaggio come speciale'; + + @override + String get errorUnstarMessageFailedTitle => + 'Impossibile contrassegnare il messaggio come normale'; + + @override + String get errorCouldNotEditMessageTitle => + 'Impossibile modificare il messaggio'; + + @override + String get successLinkCopied => 'Collegamento copiato'; + + @override + String get successMessageTextCopied => 'Testo messaggio copiato'; + + @override + String get successMessageLinkCopied => 'Collegamento messaggio copiato'; + + @override + String get successTopicLinkCopied => 'Topic link copied'; + + @override + String get successChannelLinkCopied => 'Channel link copied'; + + @override + String get errorBannerDeactivatedDmLabel => + 'Non è possibile inviare messaggi agli utenti disattivati.'; + + @override + String get errorBannerCannotPostInChannelLabel => + 'Non hai l\'autorizzazione per postare su questo canale.'; + + @override + String get composeBoxBannerLabelUnsubscribedWhenCannotSend => + 'New messages will not appear automatically.'; + + @override + String get composeBoxBannerButtonRefresh => 'Refresh'; + + @override + String get composeBoxBannerButtonSubscribe => 'Subscribe'; + + @override + String get composeBoxBannerLabelEditMessage => 'Modifica messaggio'; + + @override + String get composeBoxBannerButtonCancel => 'Annulla'; + + @override + String get composeBoxBannerButtonSave => 'Salva'; + + @override + String get editAlreadyInProgressTitle => + 'Impossibile modificare il messaggio'; + + @override + String get editAlreadyInProgressMessage => + 'Una modifica è già in corso. Attendere il completamento.'; + + @override + String get savingMessageEditLabel => 'SALVATAGGIO MODIFICA…'; + + @override + String get savingMessageEditFailedLabel => 'MODIFICA NON SALVATA'; + + @override + String get discardDraftConfirmationDialogTitle => + 'Scartare il messaggio che si sta scrivendo?'; + + @override + String get discardDraftForEditConfirmationDialogMessage => + 'Quando si modifica un messaggio, il contenuto precedentemente presente nella casella di composizione viene ignorato.'; + + @override + String get discardDraftForOutboxConfirmationDialogMessage => + 'Quando si recupera un messaggio non inviato, il contenuto precedentemente presente nella casella di composizione viene ignorato.'; + + @override + String get discardDraftConfirmationDialogConfirmButton => 'Abbandona'; + + @override + String get composeBoxAttachFilesTooltip => 'Allega file'; + + @override + String get composeBoxAttachMediaTooltip => 'Allega immagini o video'; + + @override + String get composeBoxAttachFromCameraTooltip => 'Fai una foto'; + + @override + String get composeBoxAttachFromVideoCallTooltip => 'Attach a video call'; + + @override + String get composeBoxGenericContentHint => 'Batti un messaggio'; + + @override + String get newDmSheetComposeButtonLabel => 'Componi'; + + @override + String get newDmSheetScreenTitle => 'Nuovo MD'; + + @override + String get newDmFabButtonLabel => 'Nuovo MD'; + + @override + String get newDmSheetSearchHintEmpty => 'Aggiungi uno o più utenti'; + + @override + String get newDmSheetSearchHintSomeSelected => 'Aggiungi un altro utente…'; + + @override + String get newDmSheetNoUsersFound => 'Nessun utente trovato'; + + @override + String composeBoxDmContentHint(String user) { + return 'Messaggia @$user'; + } + + @override + String get composeBoxGroupDmContentHint => 'Gruppo di messaggi'; + + @override + String get composeBoxSelfDmContentHint => 'Annota qualcosa'; + + @override + String composeBoxChannelContentHint(String destination) { + return 'Messaggia $destination'; + } + + @override + String get preparingEditMessageContentInput => 'Preparazione…'; + + @override + String get composeBoxSendTooltip => 'Invia'; + + @override + String get unknownChannelName => '(canale sconosciuto)'; + + @override + String get composeBoxTopicHintText => 'Argomento'; + + @override + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { + return 'Inserisci un argomento (salta per \"$defaultTopicName\")'; + } + + @override + String composeBoxUploadingFilename(String filename) { + return 'Caricamento $filename…'; + } + + @override + String get composeBoxUploadedVideoCallUrl => 'Join video call.'; + + @override + String composeBoxLoadingMessage(int messageId) { + return '(caricamento messaggio $messageId)'; + } + + @override + String get unknownUserName => '(utente sconosciuto)'; + + @override + String get dmsWithYourselfPageTitle => 'MD con te stesso'; + + @override + String messageListGroupYouAndOthers(String others) { + return 'Tu e $others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return 'MD con $others'; + } + + @override + String get emptyMessageList => 'There are no messages here.'; + + @override + String get emptyMessageListSearch => 'No search results.'; + + @override + String get messageListGroupYouWithYourself => 'Messaggi con te stesso'; + + @override + String get contentValidationErrorTooLong => + 'La lunghezza del messaggio non deve essere superiore a 10.000 caratteri.'; + + @override + String get contentValidationErrorEmpty => 'Non devi inviare nulla!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => + 'Attendere il completamento del commento.'; + + @override + String get contentValidationErrorUploadInProgress => + 'Attendere il completamento del caricamento.'; + + @override + String get dialogCancel => 'Annulla'; + + @override + String get dialogContinue => 'Continua'; + + @override + String get dialogClose => 'Chiudi'; + + @override + String get errorDialogLearnMore => 'Scopri di più'; + + @override + String get errorDialogContinue => 'Ok'; + + @override + String get errorDialogTitle => 'Errore'; + + @override + String get snackBarDetails => 'Dettagli'; + + @override + String get lightboxCopyLinkTooltip => 'Copia collegamento'; + + @override + String get lightboxVideoCurrentPosition => 'Posizione corrente'; + + @override + String get lightboxVideoDuration => 'Durata video'; + + @override + String get loginPageTitle => 'Accesso'; + + @override + String get loginFormSubmitLabel => 'Accesso'; + + @override + String get loginMethodDivider => 'O'; + + @override + String signInWithFoo(String method) { + return 'Accedi con $method'; + } + + @override + String get loginAddAnAccountPageTitle => 'Aggiungi account'; + + @override + String get loginServerUrlLabel => 'URL del server Zulip'; + + @override + String get loginHidePassword => 'Nascondi password'; + + @override + String get loginEmailLabel => 'Indirizzo email'; + + @override + String get loginErrorMissingEmail => 'Inserire l\'email.'; + + @override + String get loginPasswordLabel => 'Password'; + + @override + String get loginErrorMissingPassword => 'Inserire la propria password.'; + + @override + String get loginUsernameLabel => 'Nomeutente'; + + @override + String get loginErrorMissingUsername => 'Inserire il proprio nomeutente.'; + + @override + String get topicValidationErrorTooLong => + 'La lunghezza dell\'argomento non deve superare i 60 caratteri.'; + + @override + String get topicValidationErrorMandatoryButEmpty => + 'In questa organizzazione sono richiesti degli argomenti.'; + + @override + String get errorContentNotInsertedTitle => 'Content not inserted'; + + @override + String get errorContentToInsertIsEmpty => + 'The file to be inserted is empty or cannot be accessed.'; + + @override + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ) { + return '$url sta usando Zulip Server $zulipVersion, che non è supportato. La versione minima supportata è Zulip Server $minSupportedZulipVersion.'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return 'L\'account su $url non è stato autenticato. Riprovare ad accedere o provare a usare un altro account.'; + } + + @override + String get errorInvalidResponse => + 'Il server ha inviato una risposta non valida.'; + + @override + String get errorNetworkRequestFailed => 'Richiesta di rete non riuscita'; + + @override + String errorMalformedResponse(int httpStatus) { + return 'Il server ha fornito una risposta non valida; stato HTTP $httpStatus'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return 'Il server ha fornito una risposta non valida; stato HTTP $httpStatus; $details'; + } + + @override + String errorRequestFailed(int httpStatus) { + return 'Richiesta di rete non riuscita: stato HTTP $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => 'Impossibile riprodurre il video.'; + + @override + String get serverUrlValidationErrorEmpty => 'Inserire un URL.'; + + @override + String get serverUrlValidationErrorInvalidUrl => 'Inserire un URL valido.'; + + @override + String get serverUrlValidationErrorNoUseEmail => + 'Inserire l\'URL del server, non il proprio indirizzo email.'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => + 'L\'URL del server deve iniziare con http:// o https://.'; + + @override + String get spoilerDefaultHeaderText => 'Spoiler'; + + @override + String get markAllAsReadLabel => 'Segna tutti i messaggi come letti'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num messagei', + one: '1 messaggio', + ); + return 'Segnato/i $_temp0 come letto/i.'; + } + + @override + String get markAsReadInProgress => 'Contrassegno dei messaggi come letti…'; + + @override + String get errorMarkAsReadFailedTitle => + 'Contrassegno come letto non riuscito'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num messagi', + one: '1 messaggio', + ); + return 'Segnato/i $_temp0 come non letto/i.'; + } + + @override + String get markAsUnreadInProgress => + 'Contrassegno dei messaggi come non letti…'; + + @override + String get errorMarkAsUnreadFailedTitle => + 'Contrassegno come non letti non riuscito'; + + @override + String get today => 'Oggi'; + + @override + String get yesterday => 'Ieri'; + + @override + String get userActiveNow => 'Active now'; + + @override + String get userIdle => 'Idle'; + + @override + String userActiveMinutesAgo(int minutes) { + String _temp0 = intl.Intl.pluralLogic( + minutes, + locale: localeName, + other: '$minutes minutes', + one: '1 minute', + ); + return 'Active $_temp0 ago'; + } + + @override + String userActiveHoursAgo(int hours) { + String _temp0 = intl.Intl.pluralLogic( + hours, + locale: localeName, + other: '$hours hours', + one: '1 hour', + ); + return 'Active $_temp0 ago'; + } + + @override + String get userActiveYesterday => 'Active yesterday'; + + @override + String userActiveDaysAgo(int days) { + String _temp0 = intl.Intl.pluralLogic( + days, + locale: localeName, + other: '$days days', + one: '1 day', + ); + return 'Active $_temp0 ago'; + } + + @override + String userActiveDate(String date) { + return 'Active $date'; + } + + @override + String get userNotActiveInYear => 'Not active in the last year'; + + @override + String get invisibleMode => 'Invisible mode'; + + @override + String get turnOnInvisibleModeErrorTitle => + 'Error turning on invisible mode. Please try again.'; + + @override + String get turnOffInvisibleModeErrorTitle => + 'Error turning off invisible mode. Please try again.'; + + @override + String get userRoleOwner => 'Proprietario'; + + @override + String get userRoleAdministrator => 'Amministratore'; + + @override + String get userRoleModerator => 'Moderatore'; + + @override + String get userRoleMember => 'Membro'; + + @override + String get userRoleGuest => 'Ospite'; + + @override + String get userRoleUnknown => 'Sconosciuto'; + + @override + String get statusButtonLabelStatusSet => 'Status'; + + @override + String get statusButtonLabelStatusUnset => 'Set status'; + + @override + String get noStatusText => 'No status text'; + + @override + String get setStatusPageTitle => 'Set status'; + + @override + String get statusClearButtonLabel => 'Clear'; + + @override + String get statusSaveButtonLabel => 'Save'; + + @override + String get statusTextHint => 'Your status'; + + @override + String get userStatusBusy => 'Busy'; + + @override + String get userStatusInAMeeting => 'In a meeting'; + + @override + String get userStatusCommuting => 'Commuting'; + + @override + String get userStatusOutSick => 'Out sick'; + + @override + String get userStatusVacationing => 'Vacationing'; + + @override + String get userStatusWorkingRemotely => 'Working remotely'; + + @override + String get userStatusAtTheOffice => 'At the office'; + + @override + String get updateStatusErrorTitle => + 'Error updating user status. Please try again.'; + + @override + String get searchMessagesPageTitle => 'Search'; + + @override + String get searchMessagesHintText => 'Search'; + + @override + String get searchMessagesClearButtonTooltip => 'Clear'; + + @override + String get inboxPageTitle => 'Inbox'; + + @override + String get inboxEmptyPlaceholder => + 'Non ci sono messaggi non letti nella posta in arrivo. Usare i pulsanti sotto per visualizzare il feed combinato o l\'elenco dei canali.'; + + @override + String get recentDmConversationsPageTitle => 'Messaggi diretti'; + + @override + String get recentDmConversationsSectionHeader => 'Messaggi diretti'; + + @override + String get recentDmConversationsEmptyPlaceholder => + 'Non ci sono ancora messaggi diretti! Perché non iniziare la conversazione?'; + + @override + String get combinedFeedPageTitle => 'Feed combinato'; + + @override + String get mentionsPageTitle => 'Menzioni'; + + @override + String get starredMessagesPageTitle => 'Messaggi speciali'; + + @override + String get channelsPageTitle => 'Canali'; + + @override + String get channelsEmptyPlaceholder => + 'Non sei ancora iscritto ad alcun canale.'; + + @override + String channelsEmptyPlaceholderWithAllChannelsLink( + String allChannelsPageTitle, + ) { + return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; + } + + @override + String get sharePageTitle => 'Share'; + + @override + String get mainMenuMyProfile => 'Il mio profilo'; + + @override + String get topicsButtonTooltip => 'Argomenti'; + + @override + String get channelFeedButtonTooltip => 'Feed del canale'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: '$numOthers altri', + one: '1 altro', + ); + return '$senderFullName a te e $_temp0'; + } + + @override + String get pinnedSubscriptionsLabel => 'Bloccato'; + + @override + String get unpinnedSubscriptionsLabel => 'Non bloccato'; + + @override + String get notifSelfUser => 'Tu'; + + @override + String get reactedEmojiSelfUser => 'Tu'; + + @override + String get reactionChipsLabel => 'Reactions'; + + @override + String reactionChipLabel(String emojiName, String votes) { + return '$emojiName: $votes'; + } + + @override + String reactionChipVotesYouAndOthers(int otherUsersCount) { + String _temp0 = intl.Intl.pluralLogic( + otherUsersCount, + locale: localeName, + other: 'You and $otherUsersCount others', + one: 'You and 1 other', + ); + return '$_temp0'; + } + + @override + String onePersonTyping(String typist) { + return '$typist sta scrivendo…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist e $otherTypist stanno scrivendo…'; + } + + @override + String get manyPeopleTyping => 'Molte persone stanno scrivendo…'; + + @override + String get wildcardMentionAll => 'tutti'; + + @override + String get wildcardMentionEveryone => 'ognuno'; + + @override + String get wildcardMentionChannel => 'canale'; + + @override + String get wildcardMentionStream => 'flusso'; + + @override + String get wildcardMentionTopic => 'argomento'; + + @override + String get wildcardMentionChannelDescription => 'Notifica canale'; + + @override + String get wildcardMentionStreamDescription => 'Notifica flusso'; + + @override + String get wildcardMentionAllDmDescription => 'Notifica destinatari'; + + @override + String get wildcardMentionTopicDescription => 'Notifica argomento'; + + @override + String get messageIsEditedLabel => 'MODIFICATO'; + + @override + String get messageIsMovedLabel => 'SPOSTATO'; + + @override + String get messageNotSentLabel => 'MESSAGGIO NON INVIATO'; + + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + + @override + String get themeSettingTitle => 'TEMA'; + + @override + String get themeSettingDark => 'Scuro'; + + @override + String get themeSettingLight => 'Chiaro'; + + @override + String get themeSettingSystem => 'Sistema'; + + @override + String get openLinksWithInAppBrowser => + 'Apri i collegamenti con il browser in-app'; + + @override + String get pollWidgetQuestionMissing => 'Nessuna domanda.'; + + @override + String get pollWidgetOptionsMissing => + 'Questo sondaggio non ha ancora opzioni.'; + + @override + String get initialAnchorSettingTitle => 'Apri i feed dei messaggi su'; + + @override + String get initialAnchorSettingDescription => + 'È possibile scegliere se i feed dei messaggi devono aprirsi al primo messaggio non letto oppure ai messaggi più recenti.'; + + @override + String get initialAnchorSettingFirstUnreadAlways => + 'Primo messaggio non letto'; + + @override + String get initialAnchorSettingFirstUnreadConversations => + 'Primo messaggio non letto nelle singole conversazioni, messaggio più recente altrove'; + + @override + String get initialAnchorSettingNewestAlways => 'Messaggio più recente'; + + @override + String get markReadOnScrollSettingTitle => + 'Segna i messaggi come letti durante lo scorrimento'; + + @override + String get markReadOnScrollSettingDescription => + 'Quando si scorrono i messaggi, questi devono essere contrassegnati automaticamente come letti?'; + + @override + String get markReadOnScrollSettingAlways => 'Sempre'; + + @override + String get markReadOnScrollSettingNever => 'Mai'; + + @override + String get markReadOnScrollSettingConversations => + 'Solo nelle visualizzazioni delle conversazioni'; + + @override + String get markReadOnScrollSettingConversationsDescription => + 'I messaggi verranno automaticamente contrassegnati come in sola lettura quando si visualizza un singolo argomento o una conversazione in un messaggio diretto.'; + + @override + String get experimentalFeatureSettingsPageTitle => + 'Caratteristiche sperimentali'; + + @override + String get experimentalFeatureSettingsWarning => + 'Queste opzioni abilitano funzionalità ancora in fase di sviluppo e non ancora pronte. Potrebbero non funzionare e causare problemi in altre aree dell\'app.\n\nQueste impostazioni sono pensate per la sperimentazione da parte di chi lavora allo sviluppo di Zulip.'; + + @override + String get errorNotificationOpenTitle => 'Impossibile aprire la notifica'; + + @override + String get errorNotificationOpenAccountNotFound => + 'Impossibile trovare l\'account associato a questa notifica.'; + + @override + String get errorReactionAddingFailedTitle => + 'Aggiunta della reazione non riuscita'; + + @override + String get errorReactionRemovingFailedTitle => + 'Rimozione della reazione non riuscita'; + + @override + String get errorSharingTitle => 'Failed to share content'; + + @override + String get errorSharingAccountNotLoggedIn => + 'There is no account logged in. Please log in to an account and try again.'; + + @override + String get emojiReactionsMore => 'altro'; + + @override + String get emojiPickerSearchEmoji => 'Cerca emoji'; + + @override + String get noEarlierMessages => 'Nessun messaggio precedente'; + + @override + String get revealButtonLabel => 'Mostra messaggio per mittente silenziato'; + + @override + String get mutedUser => 'Utente silenziato'; + + @override + String get scrollToBottomTooltip => 'Scorri fino in fondo'; + + @override + String get appVersionUnknownPlaceholder => '(…)'; + + @override + String get zulipAppTitle => 'Zulip'; +} diff --git a/lib/generated/l10n/zulip_localizations_ja.dart b/lib/generated/l10n/zulip_localizations_ja.dart index 4e75bf6568..b716b28c16 100644 --- a/lib/generated/l10n/zulip_localizations_ja.dart +++ b/lib/generated/l10n/zulip_localizations_ja.dart @@ -1,1141 +1,1147 @@ -// ignore: unused_import -import 'package:intl/intl.dart' as intl; -import 'zulip_localizations.dart'; - -// ignore_for_file: type=lint - -/// The translations for Japanese (`ja`). -class ZulipLocalizationsJa extends ZulipLocalizations { - ZulipLocalizationsJa([String locale = 'ja']) : super(locale); - - @override - String get aboutPageTitle => 'Zulipについて'; - - @override - String get aboutPageAppVersion => 'アプリのバージョン'; - - @override - String get aboutPageOpenSourceLicenses => 'オープンソースライセンス'; - - @override - String get aboutPageTapToView => 'タップして表示'; - - @override - String get upgradeWelcomeDialogTitle => '新しいZulipアプリへようこそ!'; - - @override - String get upgradeWelcomeDialogMessage => - 'より速く、洗練されたデザインで、これまでと同じ使い心地をお楽しみいただけます。'; - - @override - String get upgradeWelcomeDialogLinkText => 'お知らせブログ記事をご確認ください!'; - - @override - String get upgradeWelcomeDialogDismiss => 'はじめよう'; - - @override - String get chooseAccountPageTitle => 'アカウントを選択'; - - @override - String get settingsPageTitle => '設定'; - - @override - String get switchAccountButton => 'アカウントを切り替える'; - - @override - String tryAnotherAccountMessage(Object url) { - return '$url のアカウントの読み込みに時間がかかっています。'; - } - - @override - String get tryAnotherAccountButton => '別のアカウントを試す'; - - @override - String get chooseAccountPageLogOutButton => 'ログアウト'; - - @override - String get logOutConfirmationDialogTitle => 'ログアウトしますか?'; - - @override - String get logOutConfirmationDialogMessage => - '今後このアカウントを使うには、組織のURLとアカウント情報を再度入力する必要があります。'; - - @override - String get logOutConfirmationDialogConfirmButton => 'ログアウト'; - - @override - String get chooseAccountButtonAddAnAccount => '新しいアカウントを追加'; - - @override - String get navButtonAllChannels => 'All channels'; - - @override - String get allChannelsPageTitle => 'All channels'; - - @override - String get allChannelsEmptyPlaceholder => - 'There are no channels you can view in this organization.'; - - @override - String get profileButtonSendDirectMessage => 'ダイレクトメッセージを送信'; - - @override - String get errorCouldNotShowUserProfile => 'ユーザープロフィールを表示できませんでした。'; - - @override - String get permissionsNeededTitle => '権限が必要です'; - - @override - String get permissionsNeededOpenSettings => '設定を開く'; - - @override - String get permissionsDeniedCameraAccess => - '画像をアップロードするには、[設定] でZulipに追加の権限を付与してください。'; - - @override - String get permissionsDeniedReadExternalStorage => - 'ファイルをアップロードするには、[設定] でZulipに追加の権限を付与してください。'; - - @override - String get actionSheetOptionSubscribe => 'チャンネルに参加'; - - @override - String get subscribeFailedTitle => 'チャンネルへの参加に失敗しました'; - - @override - String get actionSheetOptionMarkChannelAsRead => 'チャンネルを既読にする'; - - @override - String get actionSheetOptionCopyChannelLink => 'チャンネルのリンクをコピー'; - - @override - String get actionSheetOptionListOfTopics => 'トピック一覧'; - - @override - String get actionSheetOptionChannelFeed => 'チャンネル一覧'; - - @override - String get actionSheetOptionUnsubscribe => 'チャンネルから退出'; - - @override - String unsubscribeConfirmationDialogTitle(String channelName) { - return '$channelName から退出しますか?'; - } - - @override - String get unsubscribeConfirmationDialogMessageCannotResubscribe => - 'Once you leave this channel, you will not be able to rejoin.'; - - @override - String get unsubscribeConfirmationDialogConfirmButton => 'チャンネルから退出'; - - @override - String get unsubscribeFailedTitle => 'チャンネルからの退出に失敗しました'; - - @override - String get actionSheetOptionMuteTopic => 'トピックをミュート'; - - @override - String get actionSheetOptionUnmuteTopic => 'トピックのミュートを解除'; - - @override - String get actionSheetOptionFollowTopic => 'トピックをフォロー'; - - @override - String get actionSheetOptionUnfollowTopic => 'トピックのフォローを解除'; - - @override - String get actionSheetOptionResolveTopic => '解決済みにする'; - - @override - String get actionSheetOptionUnresolveTopic => '未解決にする'; - - @override - String get errorResolveTopicFailedTitle => 'トピックを解決済みにできませんでした'; - - @override - String get errorUnresolveTopicFailedTitle => 'トピックを未解決にできませんでした'; - - @override - String get actionSheetOptionSeeWhoReacted => 'リアクションした人を見る'; - - @override - String get seeWhoReactedSheetNoReactions => 'このメッセージにはリアクションがありません。'; - - @override - String seeWhoReactedSheetHeaderLabel(int num) { - return '絵文字リアクション(合計 $num 件)'; - } - - @override - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num件', - one: '1件', - ); - return '$emojiName:$_temp0'; - } - - @override - String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return '$emojiName のリアクション件数($num件)'; - } - - @override - String get actionSheetOptionViewReadReceipts => '既読確認を表示'; - - @override - String get actionSheetReadReceipts => '既読確認'; - - @override - String actionSheetReadReceiptsReadCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: 'このメッセージは $count 人に読まれています:', - one: 'このメッセージは $count 人に読まれています:', - ); - return '$_temp0'; - } - - @override - String get actionSheetReadReceiptsZeroReadCount => 'このメッセージはまだ誰も読んでいません。'; - - @override - String get actionSheetReadReceiptsErrorReadCount => '既読情報の読み込みに失敗しました。'; - - @override - String get actionSheetOptionCopyMessageText => 'メッセージ本文をコピー'; - - @override - String get actionSheetOptionCopyMessageLink => 'メッセージへのリンクをコピー'; - - @override - String get actionSheetOptionMarkAsUnread => 'ここから未読にする'; - - @override - String get actionSheetOptionHideMutedMessage => 'ミュートしたメッセージを再び非表示にする'; - - @override - String get actionSheetOptionShare => '共有'; - - @override - String get actionSheetOptionQuoteMessage => 'メッセージを引用'; - - @override - String get actionSheetOptionStarMessage => 'メッセージにスターを付ける'; - - @override - String get actionSheetOptionUnstarMessage => 'メッセージのスターを外す'; - - @override - String get actionSheetOptionEditMessage => 'メッセージを編集'; - - @override - String get actionSheetOptionDeleteMessage => 'Delete message'; - - @override - String get deleteMessageConfirmationDialogTitle => 'Delete message?'; - - @override - String get deleteMessageConfirmationDialogMessage => - 'Deleting a message permanently removes it for everyone.'; - - @override - String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; - - @override - String get errorDeleteMessageFailedTitle => 'Failed to delete message'; - - @override - String get actionSheetOptionMarkTopicAsRead => 'トピックを既読にする'; - - @override - String get actionSheetOptionCopyTopicLink => 'トピックのリンクをコピー'; - - @override - String get errorWebAuthOperationalErrorTitle => '問題が発生しました'; - - @override - String get errorWebAuthOperationalError => '予期しないエラーが発生しました。'; - - @override - String get errorAccountLoggedInTitle => 'このアカウントはすでにログインしています'; - - @override - String errorAccountLoggedIn(String email, String server) { - return '$server の $email アカウントは、すでにアカウント一覧に追加されています。'; - } - - @override - String get errorCouldNotFetchMessageSource => 'メッセージのソースを取得できませんでした。'; - - @override - String get errorCopyingFailed => 'コピーに失敗しました'; - - @override - String errorFailedToUploadFileTitle(String filename) { - return 'ファイルのアップロードに失敗しました: $filename'; - } - - @override - String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size MiB'; - } - - @override - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '添付した $num 個のファイルは', - one: '添付したファイルは', - ); - return '$_temp0サーバーの上限 $maxFileUploadSizeMib MiB を超えているため、アップロードできません:\n\n$listMessage'; - } - - @override - String errorFilesTooLargeTitle(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: 'ファイルが大きすぎます', - one: 'ファイルが大きすぎます', - ); - return '$_temp0'; - } - - @override - String get errorLoginInvalidInputTitle => '入力が正しくありません'; - - @override - String get errorLoginFailedTitle => 'ログインに失敗しました'; - - @override - String get errorMessageNotSent => 'メッセージを送信できませんでした'; - - @override - String get errorMessageEditNotSaved => 'メッセージを保存できませんでした'; - - @override - String errorLoginCouldNotConnect(String url) { - return 'サーバーに接続できませんでした:\n$url'; - } - - @override - String get errorCouldNotConnectTitle => '接続できませんでした'; - - @override - String get errorMessageDoesNotSeemToExist => 'そのメッセージは見つかりませんでした。'; - - @override - String get errorQuotationFailed => '引用できませんでした'; - - @override - String errorServerMessage(String message) { - return 'サーバーからの応答:\n\n$message'; - } - - @override - String get errorConnectingToServerShort => 'Zulip への接続でエラーが発生しました。再試行中…'; - - @override - String errorConnectingToServerDetails(String serverUrl, String error) { - return 'Zulip($serverUrl)への接続でエラーが発生しました。再試行します:\n\n$error'; - } - - @override - String get errorHandlingEventTitle => 'Zulip のイベント処理でエラーが発生しました。再接続を試行しています…'; - - @override - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ) { - return 'Zulip($serverUrl)からのイベント処理でエラーが発生しました。再試行します。\n\nエラー:$error\n\nイベント:$event'; - } - - @override - String get errorCouldNotOpenLinkTitle => 'リンクを開けませんでした'; - - @override - String errorCouldNotOpenLink(String url) { - return 'リンクを開けませんでした:$url'; - } - - @override - String get errorMuteTopicFailed => 'トピックをミュートできませんでした'; - - @override - String get errorUnmuteTopicFailed => 'トピックのミュート解除ができませんでした'; - - @override - String get errorFollowTopicFailed => 'トピックをフォローできませんでした'; - - @override - String get errorUnfollowTopicFailed => 'トピックのフォロー解除ができませんでした'; - - @override - String get errorSharingFailed => '共有に失敗しました'; - - @override - String get errorStarMessageFailedTitle => 'メッセージにスターを付けられませんでした'; - - @override - String get errorUnstarMessageFailedTitle => 'メッセージのスターを外せませんでした'; - - @override - String get errorCouldNotEditMessageTitle => 'メッセージを編集できませんでした'; - - @override - String get successLinkCopied => 'リンクをコピーしました'; - - @override - String get successMessageTextCopied => 'メッセージ本文をコピーしました'; - - @override - String get successMessageLinkCopied => 'メッセージのリンクをコピーしました'; - - @override - String get successTopicLinkCopied => 'トピックのリンクをコピーしました'; - - @override - String get successChannelLinkCopied => 'チャンネルのリンクをコピーしました'; - - @override - String get errorBannerDeactivatedDmLabel => '無効化されたユーザーにはメッセージを送信できません。'; - - @override - String get errorBannerCannotPostInChannelLabel => 'このチャンネルに投稿する権限がありません。'; - - @override - String get composeBoxBannerLabelUnsubscribedWhenCannotSend => - 'New messages will not appear automatically.'; - - @override - String get composeBoxBannerButtonRefresh => 'Refresh'; - - @override - String get composeBoxBannerButtonSubscribe => 'Subscribe'; - - @override - String get composeBoxBannerLabelEditMessage => 'メッセージを編集'; - - @override - String get composeBoxBannerButtonCancel => 'キャンセル'; - - @override - String get composeBoxBannerButtonSave => '保存'; - - @override - String get editAlreadyInProgressTitle => 'メッセージを編集できません'; - - @override - String get editAlreadyInProgressMessage => '他の編集が進行中です。完了するまでお待ちください。'; - - @override - String get savingMessageEditLabel => '保存中…'; - - @override - String get savingMessageEditFailedLabel => '編集未保存'; - - @override - String get discardDraftConfirmationDialogTitle => '作成中のメッセージを破棄しますか?'; - - @override - String get discardDraftForEditConfirmationDialogMessage => - 'メッセージを編集すると、作成中の内容は破棄されます。'; - - @override - String get discardDraftForOutboxConfirmationDialogMessage => - '未送信メッセージを復元すると、作成中の内容は破棄されます。'; - - @override - String get discardDraftConfirmationDialogConfirmButton => '破棄'; - - @override - String get composeBoxAttachFilesTooltip => 'ファイルを添付'; - - @override - String get composeBoxAttachMediaTooltip => '画像や動画を添付'; - - @override - String get composeBoxAttachFromCameraTooltip => '写真を撮る'; - - @override - String get composeBoxGenericContentHint => 'メッセージを入力'; - - @override - String get newDmSheetComposeButtonLabel => '作成'; - - @override - String get newDmSheetScreenTitle => '新しいDM'; - - @override - String get newDmFabButtonLabel => '新しいDM'; - - @override - String get newDmSheetSearchHintEmpty => '1人以上のユーザーを追加'; - - @override - String get newDmSheetSearchHintSomeSelected => '別のユーザーを追加…'; - - @override - String get newDmSheetNoUsersFound => 'ユーザーが見つかりません'; - - @override - String composeBoxDmContentHint(String user) { - return '@$user さんにメッセージ'; - } - - @override - String get composeBoxGroupDmContentHint => 'グループにメッセージ'; - - @override - String get composeBoxSelfDmContentHint => 'メモを書き留める'; - - @override - String composeBoxChannelContentHint(String destination) { - return '$destination にメッセージを送信'; - } - - @override - String get preparingEditMessageContentInput => '準備中…'; - - @override - String get composeBoxSendTooltip => '送信'; - - @override - String get unknownChannelName => '(不明なチャンネル)'; - - @override - String get composeBoxTopicHintText => 'トピック'; - - @override - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { - return 'トピックを入力(省略時は「$defaultTopicName」)'; - } - - @override - String composeBoxUploadingFilename(String filename) { - return '$filename をアップロード中…'; - } - - @override - String composeBoxLoadingMessage(int messageId) { - return '(メッセージ $messageId を読み込み中)'; - } - - @override - String get unknownUserName => '(不明なユーザー)'; - - @override - String get dmsWithYourselfPageTitle => '自分とのDM'; - - @override - String messageListGroupYouAndOthers(String others) { - return '自分と$others'; - } - - @override - String dmsWithOthersPageTitle(String others) { - return '$othersとのDM'; - } - - @override - String get emptyMessageList => 'ここにはメッセージがありません。'; - - @override - String get emptyMessageListSearch => '検索結果はありません。'; - - @override - String get messageListGroupYouWithYourself => '自分とのメッセージ'; - - @override - String get contentValidationErrorTooLong => 'メッセージは10000文字以内で入力してください。'; - - @override - String get contentValidationErrorEmpty => 'メッセージが空です!'; - - @override - String get contentValidationErrorQuoteAndReplyInProgress => - '引用が完了するまでお待ちください。'; - - @override - String get contentValidationErrorUploadInProgress => 'アップロードが完了するまでお待ちください。'; - - @override - String get dialogCancel => 'キャンセル'; - - @override - String get dialogContinue => '続行'; - - @override - String get dialogClose => '閉じる'; - - @override - String get errorDialogLearnMore => '詳しく見る'; - - @override - String get errorDialogContinue => 'OK'; - - @override - String get errorDialogTitle => 'エラー'; - - @override - String get snackBarDetails => '詳細'; - - @override - String get lightboxCopyLinkTooltip => 'リンクをコピー'; - - @override - String get lightboxVideoCurrentPosition => '再生位置'; - - @override - String get lightboxVideoDuration => '再生時間'; - - @override - String get loginPageTitle => 'ログイン'; - - @override - String get loginFormSubmitLabel => 'ログイン'; - - @override - String get loginMethodDivider => 'または'; - - @override - String signInWithFoo(String method) { - return '$methodでログイン'; - } - - @override - String get loginAddAnAccountPageTitle => 'アカウントを追加'; - - @override - String get loginServerUrlLabel => 'Zulip サーバーのURL'; - - @override - String get loginHidePassword => 'パスワードを非表示'; - - @override - String get loginEmailLabel => 'メールアドレス'; - - @override - String get loginErrorMissingEmail => 'メールアドレスを入力してください。'; - - @override - String get loginPasswordLabel => 'パスワード'; - - @override - String get loginErrorMissingPassword => 'パスワードを入力してください。'; - - @override - String get loginUsernameLabel => 'ユーザー名'; - - @override - String get loginErrorMissingUsername => 'ユーザー名を入力してください。'; - - @override - String get topicValidationErrorTooLong => 'トピックは60文字以内で入力してください。'; - - @override - String get topicValidationErrorMandatoryButEmpty => 'この組織ではトピックの入力が必須です。'; - - @override - String get errorContentNotInsertedTitle => 'コンテンツを挿入できませんでした'; - - @override - String get errorContentToInsertIsEmpty => '挿入しようとしたファイルが空、またはアクセスできません。'; - - @override - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ) { - return '$url で動作している Zulip Server $zulipVersion はサポート対象外です。サポートされる最小バージョンは Zulip Server $minSupportedZulipVersion です。'; - } - - @override - String errorInvalidApiKeyMessage(String url) { - return '$url のアカウントを認証できませんでした。もう一度ログインするか、別のアカウントを使用してください。'; - } - - @override - String get errorInvalidResponse => 'サーバーから無効な応答が返されました。'; - - @override - String get errorNetworkRequestFailed => 'ネットワークエラーが発生しました'; - - @override - String errorMalformedResponse(int httpStatus) { - return 'サーバーが不正なレスポンスを返しました(HTTPステータス $httpStatus)'; - } - - @override - String errorMalformedResponseWithCause(int httpStatus, String details) { - return 'サーバーが不正なレスポンスを返しました(HTTPステータス $httpStatus、詳細: $details)'; - } - - @override - String errorRequestFailed(int httpStatus) { - return 'ネットワークリクエストに失敗しました:HTTP ステータス $httpStatus'; - } - - @override - String get errorVideoPlayerFailed => '動画を再生できません。'; - - @override - String get serverUrlValidationErrorEmpty => 'URLを入力してください。'; - - @override - String get serverUrlValidationErrorInvalidUrl => '有効なURLを入力してください。'; - - @override - String get serverUrlValidationErrorNoUseEmail => - 'メールアドレスではなく、サーバーURLを入力してください。'; - - @override - String get serverUrlValidationErrorUnsupportedScheme => - 'サーバーURLは http:// または https:// で始まる必要があります。'; - - @override - String get spoilerDefaultHeaderText => '内容を隠す'; - - @override - String get markAllAsReadLabel => 'すべてのメッセージを既読にする'; - - @override - String markAsReadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num', - one: '1', - ); - return '$_temp0件のメッセージを既読にしました。'; - } - - @override - String get markAsReadInProgress => 'メッセージを既読にしています…'; - - @override - String get errorMarkAsReadFailedTitle => '既読にできませんでした'; - - @override - String markAsUnreadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num', - one: '1', - ); - return '$_temp0件のメッセージを未読にしました。'; - } - - @override - String get markAsUnreadInProgress => 'メッセージを未読にしています…'; - - @override - String get errorMarkAsUnreadFailedTitle => '未読にできませんでした'; - - @override - String get today => '今日'; - - @override - String get yesterday => '昨日'; - - @override - String get userActiveNow => 'オンライン'; - - @override - String get userIdle => '退席中'; - - @override - String userActiveMinutesAgo(int minutes) { - String _temp0 = intl.Intl.pluralLogic( - minutes, - locale: localeName, - other: '$minutes', - one: '1', - ); - return '$_temp0分前にオンライン'; - } - - @override - String userActiveHoursAgo(int hours) { - String _temp0 = intl.Intl.pluralLogic( - hours, - locale: localeName, - other: '$hours', - one: '1', - ); - return '$_temp0時間前にオンライン'; - } - - @override - String get userActiveYesterday => '昨日オンライン'; - - @override - String userActiveDaysAgo(int days) { - String _temp0 = intl.Intl.pluralLogic( - days, - locale: localeName, - other: '$days', - one: '1', - ); - return '$_temp0日前にオンライン'; - } - - @override - String userActiveDate(String date) { - return '$dateにオンライン'; - } - - @override - String get userNotActiveInYear => '1年以上オフラインです'; - - @override - String get invisibleMode => 'ステータス非表示'; - - @override - String get turnOnInvisibleModeErrorTitle => '非表示モードを有効にできませんでした。もう一度お試しください。'; - - @override - String get turnOffInvisibleModeErrorTitle => '非表示モードをオフにできません。もう一度お試しください。'; - - @override - String get userRoleOwner => 'オーナー'; - - @override - String get userRoleAdministrator => '管理者'; - - @override - String get userRoleModerator => 'モデレータ'; - - @override - String get userRoleMember => 'メンバー'; - - @override - String get userRoleGuest => 'ゲスト'; - - @override - String get userRoleUnknown => '不明'; - - @override - String get statusButtonLabelStatusSet => 'ステータス'; - - @override - String get statusButtonLabelStatusUnset => 'ステータスを設定'; - - @override - String get noStatusText => 'ステータス文なし'; - - @override - String get setStatusPageTitle => 'ステータスの設定'; - - @override - String get statusClearButtonLabel => 'クリア'; - - @override - String get statusSaveButtonLabel => '保存'; - - @override - String get statusTextHint => '自分のステータス'; - - @override - String get userStatusBusy => '取り込み中'; - - @override - String get userStatusInAMeeting => '会議中'; - - @override - String get userStatusCommuting => '移動中'; - - @override - String get userStatusOutSick => '病欠中'; - - @override - String get userStatusVacationing => '休暇中'; - - @override - String get userStatusWorkingRemotely => '在宅勤務中'; - - @override - String get userStatusAtTheOffice => '出社中'; - - @override - String get updateStatusErrorTitle => 'ステータスの更新に失敗しました。もう一度お試しください。'; - - @override - String get searchMessagesPageTitle => '検索'; - - @override - String get searchMessagesHintText => '検索'; - - @override - String get searchMessagesClearButtonTooltip => 'クリア'; - - @override - String get inboxPageTitle => '受信箱'; - - @override - String get inboxEmptyPlaceholder => - '未読メッセージはありません。下のボタンから、統合フィードまたはチャンネル一覧を表示できます。'; - - @override - String get recentDmConversationsPageTitle => 'ダイレクトメッセージ'; - - @override - String get recentDmConversationsSectionHeader => 'ダイレクトメッセージ'; - - @override - String get recentDmConversationsEmptyPlaceholder => - 'まだダイレクトメッセージはありません!会話を始めてみませんか?'; - - @override - String get combinedFeedPageTitle => '統合フィード'; - - @override - String get mentionsPageTitle => 'メンション'; - - @override - String get starredMessagesPageTitle => 'スター付きメッセージ'; - - @override - String get channelsPageTitle => 'チャンネル'; - - @override - String get channelsEmptyPlaceholder => 'まだ参加しているチャンネルはありません。'; - - @override - String channelsEmptyPlaceholderWithAllChannelsLink( - String allChannelsPageTitle, - ) { - return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; - } - - @override - String get sharePageTitle => '共有'; - - @override - String get mainMenuMyProfile => '自分のプロフィール'; - - @override - String get topicsButtonTooltip => 'トピック'; - - @override - String get channelFeedButtonTooltip => 'チャンネルフィード'; - - @override - String notifGroupDmConversationLabel(String senderFullName, int numOthers) { - String _temp0 = intl.Intl.pluralLogic( - numOthers, - locale: localeName, - other: 'ほか$numOthers人', - one: 'ほか1人', - ); - return '$senderFullName から 自分と$_temp0へ'; - } - - @override - String get pinnedSubscriptionsLabel => 'ピン留め済み'; - - @override - String get unpinnedSubscriptionsLabel => 'ピン留めなし'; - - @override - String get notifSelfUser => '自分'; - - @override - String get reactedEmojiSelfUser => '自分'; - - @override - String get reactionChipsLabel => 'リアクション'; - - @override - String reactionChipLabel(String emojiName, String votes) { - return '$emojiName: $votes件'; - } - - @override - String reactionChipVotesYouAndOthers(int otherUsersCount) { - String _temp0 = intl.Intl.pluralLogic( - otherUsersCount, - locale: localeName, - other: '自分とほか$otherUsersCount人', - one: '自分とほか1人', - ); - return '$_temp0'; - } - - @override - String onePersonTyping(String typist) { - return '$typist さんが入力中…'; - } - - @override - String twoPeopleTyping(String typist, String otherTypist) { - return '$typist さんと $otherTypist さんが入力中…'; - } - - @override - String get manyPeopleTyping => '複数のユーザーが入力中…'; - - @override - String get wildcardMentionAll => '全員'; - - @override - String get wildcardMentionEveryone => '全員'; - - @override - String get wildcardMentionChannel => 'チャンネル'; - - @override - String get wildcardMentionStream => 'チャンネル'; - - @override - String get wildcardMentionTopic => 'トピック'; - - @override - String get wildcardMentionChannelDescription => 'チャンネル参加者に通知'; - - @override - String get wildcardMentionStreamDescription => 'ストリーム参加者に通知'; - - @override - String get wildcardMentionAllDmDescription => '受信者に通知'; - - @override - String get wildcardMentionTopicDescription => 'トピック参加者に通知'; - - @override - String get messageIsEditedLabel => '編集済み'; - - @override - String get messageIsMovedLabel => '移動済み'; - - @override - String get messageNotSentLabel => 'メッセージ未送信'; - - @override - String pollVoterNames(String voterNames) { - return '($voterNames)'; - } - - @override - String get themeSettingTitle => 'テーマ'; - - @override - String get themeSettingDark => 'ダークテーマ'; - - @override - String get themeSettingLight => 'ライトテーマ'; - - @override - String get themeSettingSystem => '自動テーマ'; - - @override - String get openLinksWithInAppBrowser => 'リンクをアプリ内ブラウザで開く'; - - @override - String get pollWidgetQuestionMissing => '質問がありません。'; - - @override - String get pollWidgetOptionsMissing => 'この投票にはまだ選択肢がありません。'; - - @override - String get initialAnchorSettingTitle => 'メッセージ一覧の開始位置'; - - @override - String get initialAnchorSettingDescription => - 'メッセージ一覧を、最初の未読メッセージから開くか、最新のメッセージから開くかを選択できます。'; - - @override - String get initialAnchorSettingFirstUnreadAlways => '最初の未読メッセージ'; - - @override - String get initialAnchorSettingFirstUnreadConversations => - '会話ビューでは最初の未読メッセージ、それ以外では最新メッセージ'; - - @override - String get initialAnchorSettingNewestAlways => '最新のメッセージ'; - - @override - String get markReadOnScrollSettingTitle => 'スクロールでメッセージを既読にする'; - - @override - String get markReadOnScrollSettingDescription => - 'メッセージをスクロールしたとき、自動的に既読にしますか?'; - - @override - String get markReadOnScrollSettingAlways => '常に既読にする'; - - @override - String get markReadOnScrollSettingNever => '既読にしない'; - - @override - String get markReadOnScrollSettingConversations => '会話ビューのみ'; - - @override - String get markReadOnScrollSettingConversationsDescription => - 'メッセージは、単一のトピックまたはダイレクトメッセージの会話を表示しているときのみ、自動的に既読になります。'; - - @override - String get experimentalFeatureSettingsPageTitle => '実験的機能'; - - @override - String get experimentalFeatureSettingsWarning => - 'これらのオプションは、まだ開発中で未完成の機能を有効にします。正常に動作しない場合や、アプリの他の部分に不具合を引き起こす可能性があります。\n\nこの設定は、Zulip の開発に携わる人が試験的に利用することを目的としています。'; - - @override - String get errorNotificationOpenTitle => '通知を開けませんでした'; - - @override - String get errorNotificationOpenAccountNotFound => - 'この通知に関連付けられたアカウントが見つかりませんでした。'; - - @override - String get errorReactionAddingFailedTitle => 'リアクションを追加できませんでした'; - - @override - String get errorReactionRemovingFailedTitle => 'リアクションを削除できませんでした'; - - @override - String get errorSharingTitle => 'コンテンツを共有できませんでした'; - - @override - String get errorSharingAccountNotLoggedIn => - 'ログインしていません。アカウントにログインしてから、もう一度お試しください。'; - - @override - String get emojiReactionsMore => 'その他'; - - @override - String get emojiPickerSearchEmoji => '絵文字を検索'; - - @override - String get noEarlierMessages => 'これより前のメッセージはありません'; - - @override - String get revealButtonLabel => 'メッセージを表示'; - - @override - String get mutedUser => 'ミュート中のユーザー'; - - @override - String get scrollToBottomTooltip => '最下部へ移動'; - - @override - String get appVersionUnknownPlaceholder => '(…)'; - - @override - String get zulipAppTitle => 'Zulip'; -} +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'zulip_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for Japanese (`ja`). +class ZulipLocalizationsJa extends ZulipLocalizations { + ZulipLocalizationsJa([String locale = 'ja']) : super(locale); + + @override + String get aboutPageTitle => 'Zulipについて'; + + @override + String get aboutPageAppVersion => 'アプリのバージョン'; + + @override + String get aboutPageOpenSourceLicenses => 'オープンソースライセンス'; + + @override + String get aboutPageTapToView => 'タップして表示'; + + @override + String get upgradeWelcomeDialogTitle => '新しいZulipアプリへようこそ!'; + + @override + String get upgradeWelcomeDialogMessage => + 'より速く、洗練されたデザインで、これまでと同じ使い心地をお楽しみいただけます。'; + + @override + String get upgradeWelcomeDialogLinkText => 'お知らせブログ記事をご確認ください!'; + + @override + String get upgradeWelcomeDialogDismiss => 'はじめよう'; + + @override + String get chooseAccountPageTitle => 'アカウントを選択'; + + @override + String get settingsPageTitle => '設定'; + + @override + String get switchAccountButton => 'アカウントを切り替える'; + + @override + String tryAnotherAccountMessage(Object url) { + return '$url のアカウントの読み込みに時間がかかっています。'; + } + + @override + String get tryAnotherAccountButton => '別のアカウントを試す'; + + @override + String get chooseAccountPageLogOutButton => 'ログアウト'; + + @override + String get logOutConfirmationDialogTitle => 'ログアウトしますか?'; + + @override + String get logOutConfirmationDialogMessage => + '今後このアカウントを使うには、組織のURLとアカウント情報を再度入力する必要があります。'; + + @override + String get logOutConfirmationDialogConfirmButton => 'ログアウト'; + + @override + String get chooseAccountButtonAddAnAccount => '新しいアカウントを追加'; + + @override + String get navButtonAllChannels => 'All channels'; + + @override + String get allChannelsPageTitle => 'All channels'; + + @override + String get allChannelsEmptyPlaceholder => + 'There are no channels you can view in this organization.'; + + @override + String get profileButtonSendDirectMessage => 'ダイレクトメッセージを送信'; + + @override + String get errorCouldNotShowUserProfile => 'ユーザープロフィールを表示できませんでした。'; + + @override + String get permissionsNeededTitle => '権限が必要です'; + + @override + String get permissionsNeededOpenSettings => '設定を開く'; + + @override + String get permissionsDeniedCameraAccess => + '画像をアップロードするには、[設定] でZulipに追加の権限を付与してください。'; + + @override + String get permissionsDeniedReadExternalStorage => + 'ファイルをアップロードするには、[設定] でZulipに追加の権限を付与してください。'; + + @override + String get actionSheetOptionSubscribe => 'チャンネルに参加'; + + @override + String get subscribeFailedTitle => 'チャンネルへの参加に失敗しました'; + + @override + String get actionSheetOptionMarkChannelAsRead => 'チャンネルを既読にする'; + + @override + String get actionSheetOptionCopyChannelLink => 'チャンネルのリンクをコピー'; + + @override + String get actionSheetOptionListOfTopics => 'トピック一覧'; + + @override + String get actionSheetOptionChannelFeed => 'チャンネル一覧'; + + @override + String get actionSheetOptionUnsubscribe => 'チャンネルから退出'; + + @override + String unsubscribeConfirmationDialogTitle(String channelName) { + return '$channelName から退出しますか?'; + } + + @override + String get unsubscribeConfirmationDialogMessageCannotResubscribe => + 'Once you leave this channel, you will not be able to rejoin.'; + + @override + String get unsubscribeConfirmationDialogConfirmButton => 'チャンネルから退出'; + + @override + String get unsubscribeFailedTitle => 'チャンネルからの退出に失敗しました'; + + @override + String get actionSheetOptionMuteTopic => 'トピックをミュート'; + + @override + String get actionSheetOptionUnmuteTopic => 'トピックのミュートを解除'; + + @override + String get actionSheetOptionFollowTopic => 'トピックをフォロー'; + + @override + String get actionSheetOptionUnfollowTopic => 'トピックのフォローを解除'; + + @override + String get actionSheetOptionResolveTopic => '解決済みにする'; + + @override + String get actionSheetOptionUnresolveTopic => '未解決にする'; + + @override + String get errorResolveTopicFailedTitle => 'トピックを解決済みにできませんでした'; + + @override + String get errorUnresolveTopicFailedTitle => 'トピックを未解決にできませんでした'; + + @override + String get actionSheetOptionSeeWhoReacted => 'リアクションした人を見る'; + + @override + String get seeWhoReactedSheetNoReactions => 'このメッセージにはリアクションがありません。'; + + @override + String seeWhoReactedSheetHeaderLabel(int num) { + return '絵文字リアクション(合計 $num 件)'; + } + + @override + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num件', + one: '1件', + ); + return '$emojiName:$_temp0'; + } + + @override + String seeWhoReactedSheetUserListLabel(String emojiName, int num) { + return '$emojiName のリアクション件数($num件)'; + } + + @override + String get actionSheetOptionViewReadReceipts => '既読確認を表示'; + + @override + String get actionSheetReadReceipts => '既読確認'; + + @override + String actionSheetReadReceiptsReadCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: 'このメッセージは $count 人に読まれています:', + one: 'このメッセージは $count 人に読まれています:', + ); + return '$_temp0'; + } + + @override + String get actionSheetReadReceiptsZeroReadCount => 'このメッセージはまだ誰も読んでいません。'; + + @override + String get actionSheetReadReceiptsErrorReadCount => '既読情報の読み込みに失敗しました。'; + + @override + String get actionSheetOptionCopyMessageText => 'メッセージ本文をコピー'; + + @override + String get actionSheetOptionCopyMessageLink => 'メッセージへのリンクをコピー'; + + @override + String get actionSheetOptionMarkAsUnread => 'ここから未読にする'; + + @override + String get actionSheetOptionHideMutedMessage => 'ミュートしたメッセージを再び非表示にする'; + + @override + String get actionSheetOptionShare => '共有'; + + @override + String get actionSheetOptionQuoteMessage => 'メッセージを引用'; + + @override + String get actionSheetOptionStarMessage => 'メッセージにスターを付ける'; + + @override + String get actionSheetOptionUnstarMessage => 'メッセージのスターを外す'; + + @override + String get actionSheetOptionEditMessage => 'メッセージを編集'; + + @override + String get actionSheetOptionDeleteMessage => 'Delete message'; + + @override + String get deleteMessageConfirmationDialogTitle => 'Delete message?'; + + @override + String get deleteMessageConfirmationDialogMessage => + 'Deleting a message permanently removes it for everyone.'; + + @override + String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; + + @override + String get errorDeleteMessageFailedTitle => 'Failed to delete message'; + + @override + String get actionSheetOptionMarkTopicAsRead => 'トピックを既読にする'; + + @override + String get actionSheetOptionCopyTopicLink => 'トピックのリンクをコピー'; + + @override + String get errorWebAuthOperationalErrorTitle => '問題が発生しました'; + + @override + String get errorWebAuthOperationalError => '予期しないエラーが発生しました。'; + + @override + String get errorAccountLoggedInTitle => 'このアカウントはすでにログインしています'; + + @override + String errorAccountLoggedIn(String email, String server) { + return '$server の $email アカウントは、すでにアカウント一覧に追加されています。'; + } + + @override + String get errorCouldNotFetchMessageSource => 'メッセージのソースを取得できませんでした。'; + + @override + String get errorCopyingFailed => 'コピーに失敗しました'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return 'ファイルのアップロードに失敗しました: $filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename: $size MiB'; + } + + @override + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '添付した $num 個のファイルは', + one: '添付したファイルは', + ); + return '$_temp0サーバーの上限 $maxFileUploadSizeMib MiB を超えているため、アップロードできません:\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: 'ファイルが大きすぎます', + one: 'ファイルが大きすぎます', + ); + return '$_temp0'; + } + + @override + String get errorLoginInvalidInputTitle => '入力が正しくありません'; + + @override + String get errorLoginFailedTitle => 'ログインに失敗しました'; + + @override + String get errorMessageNotSent => 'メッセージを送信できませんでした'; + + @override + String get errorMessageEditNotSaved => 'メッセージを保存できませんでした'; + + @override + String errorLoginCouldNotConnect(String url) { + return 'サーバーに接続できませんでした:\n$url'; + } + + @override + String get errorCouldNotConnectTitle => '接続できませんでした'; + + @override + String get errorMessageDoesNotSeemToExist => 'そのメッセージは見つかりませんでした。'; + + @override + String get errorQuotationFailed => '引用できませんでした'; + + @override + String errorServerMessage(String message) { + return 'サーバーからの応答:\n\n$message'; + } + + @override + String get errorConnectingToServerShort => 'Zulip への接続でエラーが発生しました。再試行中…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return 'Zulip($serverUrl)への接続でエラーが発生しました。再試行します:\n\n$error'; + } + + @override + String get errorHandlingEventTitle => 'Zulip のイベント処理でエラーが発生しました。再接続を試行しています…'; + + @override + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ) { + return 'Zulip($serverUrl)からのイベント処理でエラーが発生しました。再試行します。\n\nエラー:$error\n\nイベント:$event'; + } + + @override + String get errorCouldNotOpenLinkTitle => 'リンクを開けませんでした'; + + @override + String errorCouldNotOpenLink(String url) { + return 'リンクを開けませんでした:$url'; + } + + @override + String get errorMuteTopicFailed => 'トピックをミュートできませんでした'; + + @override + String get errorUnmuteTopicFailed => 'トピックのミュート解除ができませんでした'; + + @override + String get errorFollowTopicFailed => 'トピックをフォローできませんでした'; + + @override + String get errorUnfollowTopicFailed => 'トピックのフォロー解除ができませんでした'; + + @override + String get errorSharingFailed => '共有に失敗しました'; + + @override + String get errorStarMessageFailedTitle => 'メッセージにスターを付けられませんでした'; + + @override + String get errorUnstarMessageFailedTitle => 'メッセージのスターを外せませんでした'; + + @override + String get errorCouldNotEditMessageTitle => 'メッセージを編集できませんでした'; + + @override + String get successLinkCopied => 'リンクをコピーしました'; + + @override + String get successMessageTextCopied => 'メッセージ本文をコピーしました'; + + @override + String get successMessageLinkCopied => 'メッセージのリンクをコピーしました'; + + @override + String get successTopicLinkCopied => 'トピックのリンクをコピーしました'; + + @override + String get successChannelLinkCopied => 'チャンネルのリンクをコピーしました'; + + @override + String get errorBannerDeactivatedDmLabel => '無効化されたユーザーにはメッセージを送信できません。'; + + @override + String get errorBannerCannotPostInChannelLabel => 'このチャンネルに投稿する権限がありません。'; + + @override + String get composeBoxBannerLabelUnsubscribedWhenCannotSend => + 'New messages will not appear automatically.'; + + @override + String get composeBoxBannerButtonRefresh => 'Refresh'; + + @override + String get composeBoxBannerButtonSubscribe => 'Subscribe'; + + @override + String get composeBoxBannerLabelEditMessage => 'メッセージを編集'; + + @override + String get composeBoxBannerButtonCancel => 'キャンセル'; + + @override + String get composeBoxBannerButtonSave => '保存'; + + @override + String get editAlreadyInProgressTitle => 'メッセージを編集できません'; + + @override + String get editAlreadyInProgressMessage => '他の編集が進行中です。完了するまでお待ちください。'; + + @override + String get savingMessageEditLabel => '保存中…'; + + @override + String get savingMessageEditFailedLabel => '編集未保存'; + + @override + String get discardDraftConfirmationDialogTitle => '作成中のメッセージを破棄しますか?'; + + @override + String get discardDraftForEditConfirmationDialogMessage => + 'メッセージを編集すると、作成中の内容は破棄されます。'; + + @override + String get discardDraftForOutboxConfirmationDialogMessage => + '未送信メッセージを復元すると、作成中の内容は破棄されます。'; + + @override + String get discardDraftConfirmationDialogConfirmButton => '破棄'; + + @override + String get composeBoxAttachFilesTooltip => 'ファイルを添付'; + + @override + String get composeBoxAttachMediaTooltip => '画像や動画を添付'; + + @override + String get composeBoxAttachFromCameraTooltip => '写真を撮る'; + + @override + String get composeBoxAttachFromVideoCallTooltip => 'Attach a video call'; + + @override + String get composeBoxGenericContentHint => 'メッセージを入力'; + + @override + String get newDmSheetComposeButtonLabel => '作成'; + + @override + String get newDmSheetScreenTitle => '新しいDM'; + + @override + String get newDmFabButtonLabel => '新しいDM'; + + @override + String get newDmSheetSearchHintEmpty => '1人以上のユーザーを追加'; + + @override + String get newDmSheetSearchHintSomeSelected => '別のユーザーを追加…'; + + @override + String get newDmSheetNoUsersFound => 'ユーザーが見つかりません'; + + @override + String composeBoxDmContentHint(String user) { + return '@$user さんにメッセージ'; + } + + @override + String get composeBoxGroupDmContentHint => 'グループにメッセージ'; + + @override + String get composeBoxSelfDmContentHint => 'メモを書き留める'; + + @override + String composeBoxChannelContentHint(String destination) { + return '$destination にメッセージを送信'; + } + + @override + String get preparingEditMessageContentInput => '準備中…'; + + @override + String get composeBoxSendTooltip => '送信'; + + @override + String get unknownChannelName => '(不明なチャンネル)'; + + @override + String get composeBoxTopicHintText => 'トピック'; + + @override + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { + return 'トピックを入力(省略時は「$defaultTopicName」)'; + } + + @override + String composeBoxUploadingFilename(String filename) { + return '$filename をアップロード中…'; + } + + @override + String get composeBoxUploadedVideoCallUrl => 'Join video call.'; + + @override + String composeBoxLoadingMessage(int messageId) { + return '(メッセージ $messageId を読み込み中)'; + } + + @override + String get unknownUserName => '(不明なユーザー)'; + + @override + String get dmsWithYourselfPageTitle => '自分とのDM'; + + @override + String messageListGroupYouAndOthers(String others) { + return '自分と$others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return '$othersとのDM'; + } + + @override + String get emptyMessageList => 'ここにはメッセージがありません。'; + + @override + String get emptyMessageListSearch => '検索結果はありません。'; + + @override + String get messageListGroupYouWithYourself => '自分とのメッセージ'; + + @override + String get contentValidationErrorTooLong => 'メッセージは10000文字以内で入力してください。'; + + @override + String get contentValidationErrorEmpty => 'メッセージが空です!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => + '引用が完了するまでお待ちください。'; + + @override + String get contentValidationErrorUploadInProgress => 'アップロードが完了するまでお待ちください。'; + + @override + String get dialogCancel => 'キャンセル'; + + @override + String get dialogContinue => '続行'; + + @override + String get dialogClose => '閉じる'; + + @override + String get errorDialogLearnMore => '詳しく見る'; + + @override + String get errorDialogContinue => 'OK'; + + @override + String get errorDialogTitle => 'エラー'; + + @override + String get snackBarDetails => '詳細'; + + @override + String get lightboxCopyLinkTooltip => 'リンクをコピー'; + + @override + String get lightboxVideoCurrentPosition => '再生位置'; + + @override + String get lightboxVideoDuration => '再生時間'; + + @override + String get loginPageTitle => 'ログイン'; + + @override + String get loginFormSubmitLabel => 'ログイン'; + + @override + String get loginMethodDivider => 'または'; + + @override + String signInWithFoo(String method) { + return '$methodでログイン'; + } + + @override + String get loginAddAnAccountPageTitle => 'アカウントを追加'; + + @override + String get loginServerUrlLabel => 'Zulip サーバーのURL'; + + @override + String get loginHidePassword => 'パスワードを非表示'; + + @override + String get loginEmailLabel => 'メールアドレス'; + + @override + String get loginErrorMissingEmail => 'メールアドレスを入力してください。'; + + @override + String get loginPasswordLabel => 'パスワード'; + + @override + String get loginErrorMissingPassword => 'パスワードを入力してください。'; + + @override + String get loginUsernameLabel => 'ユーザー名'; + + @override + String get loginErrorMissingUsername => 'ユーザー名を入力してください。'; + + @override + String get topicValidationErrorTooLong => 'トピックは60文字以内で入力してください。'; + + @override + String get topicValidationErrorMandatoryButEmpty => 'この組織ではトピックの入力が必須です。'; + + @override + String get errorContentNotInsertedTitle => 'コンテンツを挿入できませんでした'; + + @override + String get errorContentToInsertIsEmpty => '挿入しようとしたファイルが空、またはアクセスできません。'; + + @override + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ) { + return '$url で動作している Zulip Server $zulipVersion はサポート対象外です。サポートされる最小バージョンは Zulip Server $minSupportedZulipVersion です。'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return '$url のアカウントを認証できませんでした。もう一度ログインするか、別のアカウントを使用してください。'; + } + + @override + String get errorInvalidResponse => 'サーバーから無効な応答が返されました。'; + + @override + String get errorNetworkRequestFailed => 'ネットワークエラーが発生しました'; + + @override + String errorMalformedResponse(int httpStatus) { + return 'サーバーが不正なレスポンスを返しました(HTTPステータス $httpStatus)'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return 'サーバーが不正なレスポンスを返しました(HTTPステータス $httpStatus、詳細: $details)'; + } + + @override + String errorRequestFailed(int httpStatus) { + return 'ネットワークリクエストに失敗しました:HTTP ステータス $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => '動画を再生できません。'; + + @override + String get serverUrlValidationErrorEmpty => 'URLを入力してください。'; + + @override + String get serverUrlValidationErrorInvalidUrl => '有効なURLを入力してください。'; + + @override + String get serverUrlValidationErrorNoUseEmail => + 'メールアドレスではなく、サーバーURLを入力してください。'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => + 'サーバーURLは http:// または https:// で始まる必要があります。'; + + @override + String get spoilerDefaultHeaderText => '内容を隠す'; + + @override + String get markAllAsReadLabel => 'すべてのメッセージを既読にする'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num', + one: '1', + ); + return '$_temp0件のメッセージを既読にしました。'; + } + + @override + String get markAsReadInProgress => 'メッセージを既読にしています…'; + + @override + String get errorMarkAsReadFailedTitle => '既読にできませんでした'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num', + one: '1', + ); + return '$_temp0件のメッセージを未読にしました。'; + } + + @override + String get markAsUnreadInProgress => 'メッセージを未読にしています…'; + + @override + String get errorMarkAsUnreadFailedTitle => '未読にできませんでした'; + + @override + String get today => '今日'; + + @override + String get yesterday => '昨日'; + + @override + String get userActiveNow => 'オンライン'; + + @override + String get userIdle => '退席中'; + + @override + String userActiveMinutesAgo(int minutes) { + String _temp0 = intl.Intl.pluralLogic( + minutes, + locale: localeName, + other: '$minutes', + one: '1', + ); + return '$_temp0分前にオンライン'; + } + + @override + String userActiveHoursAgo(int hours) { + String _temp0 = intl.Intl.pluralLogic( + hours, + locale: localeName, + other: '$hours', + one: '1', + ); + return '$_temp0時間前にオンライン'; + } + + @override + String get userActiveYesterday => '昨日オンライン'; + + @override + String userActiveDaysAgo(int days) { + String _temp0 = intl.Intl.pluralLogic( + days, + locale: localeName, + other: '$days', + one: '1', + ); + return '$_temp0日前にオンライン'; + } + + @override + String userActiveDate(String date) { + return '$dateにオンライン'; + } + + @override + String get userNotActiveInYear => '1年以上オフラインです'; + + @override + String get invisibleMode => 'ステータス非表示'; + + @override + String get turnOnInvisibleModeErrorTitle => '非表示モードを有効にできませんでした。もう一度お試しください。'; + + @override + String get turnOffInvisibleModeErrorTitle => '非表示モードをオフにできません。もう一度お試しください。'; + + @override + String get userRoleOwner => 'オーナー'; + + @override + String get userRoleAdministrator => '管理者'; + + @override + String get userRoleModerator => 'モデレータ'; + + @override + String get userRoleMember => 'メンバー'; + + @override + String get userRoleGuest => 'ゲスト'; + + @override + String get userRoleUnknown => '不明'; + + @override + String get statusButtonLabelStatusSet => 'ステータス'; + + @override + String get statusButtonLabelStatusUnset => 'ステータスを設定'; + + @override + String get noStatusText => 'ステータス文なし'; + + @override + String get setStatusPageTitle => 'ステータスの設定'; + + @override + String get statusClearButtonLabel => 'クリア'; + + @override + String get statusSaveButtonLabel => '保存'; + + @override + String get statusTextHint => '自分のステータス'; + + @override + String get userStatusBusy => '取り込み中'; + + @override + String get userStatusInAMeeting => '会議中'; + + @override + String get userStatusCommuting => '移動中'; + + @override + String get userStatusOutSick => '病欠中'; + + @override + String get userStatusVacationing => '休暇中'; + + @override + String get userStatusWorkingRemotely => '在宅勤務中'; + + @override + String get userStatusAtTheOffice => '出社中'; + + @override + String get updateStatusErrorTitle => 'ステータスの更新に失敗しました。もう一度お試しください。'; + + @override + String get searchMessagesPageTitle => '検索'; + + @override + String get searchMessagesHintText => '検索'; + + @override + String get searchMessagesClearButtonTooltip => 'クリア'; + + @override + String get inboxPageTitle => '受信箱'; + + @override + String get inboxEmptyPlaceholder => + '未読メッセージはありません。下のボタンから、統合フィードまたはチャンネル一覧を表示できます。'; + + @override + String get recentDmConversationsPageTitle => 'ダイレクトメッセージ'; + + @override + String get recentDmConversationsSectionHeader => 'ダイレクトメッセージ'; + + @override + String get recentDmConversationsEmptyPlaceholder => + 'まだダイレクトメッセージはありません!会話を始めてみませんか?'; + + @override + String get combinedFeedPageTitle => '統合フィード'; + + @override + String get mentionsPageTitle => 'メンション'; + + @override + String get starredMessagesPageTitle => 'スター付きメッセージ'; + + @override + String get channelsPageTitle => 'チャンネル'; + + @override + String get channelsEmptyPlaceholder => 'まだ参加しているチャンネルはありません。'; + + @override + String channelsEmptyPlaceholderWithAllChannelsLink( + String allChannelsPageTitle, + ) { + return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; + } + + @override + String get sharePageTitle => '共有'; + + @override + String get mainMenuMyProfile => '自分のプロフィール'; + + @override + String get topicsButtonTooltip => 'トピック'; + + @override + String get channelFeedButtonTooltip => 'チャンネルフィード'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: 'ほか$numOthers人', + one: 'ほか1人', + ); + return '$senderFullName から 自分と$_temp0へ'; + } + + @override + String get pinnedSubscriptionsLabel => 'ピン留め済み'; + + @override + String get unpinnedSubscriptionsLabel => 'ピン留めなし'; + + @override + String get notifSelfUser => '自分'; + + @override + String get reactedEmojiSelfUser => '自分'; + + @override + String get reactionChipsLabel => 'リアクション'; + + @override + String reactionChipLabel(String emojiName, String votes) { + return '$emojiName: $votes件'; + } + + @override + String reactionChipVotesYouAndOthers(int otherUsersCount) { + String _temp0 = intl.Intl.pluralLogic( + otherUsersCount, + locale: localeName, + other: '自分とほか$otherUsersCount人', + one: '自分とほか1人', + ); + return '$_temp0'; + } + + @override + String onePersonTyping(String typist) { + return '$typist さんが入力中…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist さんと $otherTypist さんが入力中…'; + } + + @override + String get manyPeopleTyping => '複数のユーザーが入力中…'; + + @override + String get wildcardMentionAll => '全員'; + + @override + String get wildcardMentionEveryone => '全員'; + + @override + String get wildcardMentionChannel => 'チャンネル'; + + @override + String get wildcardMentionStream => 'チャンネル'; + + @override + String get wildcardMentionTopic => 'トピック'; + + @override + String get wildcardMentionChannelDescription => 'チャンネル参加者に通知'; + + @override + String get wildcardMentionStreamDescription => 'ストリーム参加者に通知'; + + @override + String get wildcardMentionAllDmDescription => '受信者に通知'; + + @override + String get wildcardMentionTopicDescription => 'トピック参加者に通知'; + + @override + String get messageIsEditedLabel => '編集済み'; + + @override + String get messageIsMovedLabel => '移動済み'; + + @override + String get messageNotSentLabel => 'メッセージ未送信'; + + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + + @override + String get themeSettingTitle => 'テーマ'; + + @override + String get themeSettingDark => 'ダークテーマ'; + + @override + String get themeSettingLight => 'ライトテーマ'; + + @override + String get themeSettingSystem => '自動テーマ'; + + @override + String get openLinksWithInAppBrowser => 'リンクをアプリ内ブラウザで開く'; + + @override + String get pollWidgetQuestionMissing => '質問がありません。'; + + @override + String get pollWidgetOptionsMissing => 'この投票にはまだ選択肢がありません。'; + + @override + String get initialAnchorSettingTitle => 'メッセージ一覧の開始位置'; + + @override + String get initialAnchorSettingDescription => + 'メッセージ一覧を、最初の未読メッセージから開くか、最新のメッセージから開くかを選択できます。'; + + @override + String get initialAnchorSettingFirstUnreadAlways => '最初の未読メッセージ'; + + @override + String get initialAnchorSettingFirstUnreadConversations => + '会話ビューでは最初の未読メッセージ、それ以外では最新メッセージ'; + + @override + String get initialAnchorSettingNewestAlways => '最新のメッセージ'; + + @override + String get markReadOnScrollSettingTitle => 'スクロールでメッセージを既読にする'; + + @override + String get markReadOnScrollSettingDescription => + 'メッセージをスクロールしたとき、自動的に既読にしますか?'; + + @override + String get markReadOnScrollSettingAlways => '常に既読にする'; + + @override + String get markReadOnScrollSettingNever => '既読にしない'; + + @override + String get markReadOnScrollSettingConversations => '会話ビューのみ'; + + @override + String get markReadOnScrollSettingConversationsDescription => + 'メッセージは、単一のトピックまたはダイレクトメッセージの会話を表示しているときのみ、自動的に既読になります。'; + + @override + String get experimentalFeatureSettingsPageTitle => '実験的機能'; + + @override + String get experimentalFeatureSettingsWarning => + 'これらのオプションは、まだ開発中で未完成の機能を有効にします。正常に動作しない場合や、アプリの他の部分に不具合を引き起こす可能性があります。\n\nこの設定は、Zulip の開発に携わる人が試験的に利用することを目的としています。'; + + @override + String get errorNotificationOpenTitle => '通知を開けませんでした'; + + @override + String get errorNotificationOpenAccountNotFound => + 'この通知に関連付けられたアカウントが見つかりませんでした。'; + + @override + String get errorReactionAddingFailedTitle => 'リアクションを追加できませんでした'; + + @override + String get errorReactionRemovingFailedTitle => 'リアクションを削除できませんでした'; + + @override + String get errorSharingTitle => 'コンテンツを共有できませんでした'; + + @override + String get errorSharingAccountNotLoggedIn => + 'ログインしていません。アカウントにログインしてから、もう一度お試しください。'; + + @override + String get emojiReactionsMore => 'その他'; + + @override + String get emojiPickerSearchEmoji => '絵文字を検索'; + + @override + String get noEarlierMessages => 'これより前のメッセージはありません'; + + @override + String get revealButtonLabel => 'メッセージを表示'; + + @override + String get mutedUser => 'ミュート中のユーザー'; + + @override + String get scrollToBottomTooltip => '最下部へ移動'; + + @override + String get appVersionUnknownPlaceholder => '(…)'; + + @override + String get zulipAppTitle => 'Zulip'; +} diff --git a/lib/generated/l10n/zulip_localizations_nb.dart b/lib/generated/l10n/zulip_localizations_nb.dart index 344bb0372b..65a21655b2 100644 --- a/lib/generated/l10n/zulip_localizations_nb.dart +++ b/lib/generated/l10n/zulip_localizations_nb.dart @@ -1,1163 +1,1169 @@ -// ignore: unused_import -import 'package:intl/intl.dart' as intl; -import 'zulip_localizations.dart'; - -// ignore_for_file: type=lint - -/// The translations for Norwegian Bokmål (`nb`). -class ZulipLocalizationsNb extends ZulipLocalizations { - ZulipLocalizationsNb([String locale = 'nb']) : super(locale); - - @override - String get aboutPageTitle => 'Om Zulip'; - - @override - String get aboutPageAppVersion => 'App versjon'; - - @override - String get aboutPageOpenSourceLicenses => 'Lisenser for åpen kildekode'; - - @override - String get aboutPageTapToView => 'Tap to view'; - - @override - String get upgradeWelcomeDialogTitle => 'Welcome to the new Zulip app!'; - - @override - String get upgradeWelcomeDialogMessage => - 'You’ll find a familiar experience in a faster, sleeker package.'; - - @override - String get upgradeWelcomeDialogLinkText => - 'Check out the announcement blog post!'; - - @override - String get upgradeWelcomeDialogDismiss => 'Let\'s go'; - - @override - String get chooseAccountPageTitle => 'Choose account'; - - @override - String get settingsPageTitle => 'Settings'; - - @override - String get switchAccountButton => 'Switch account'; - - @override - String tryAnotherAccountMessage(Object url) { - return 'Your account at $url is taking a while to load.'; - } - - @override - String get tryAnotherAccountButton => 'Try another account'; - - @override - String get chooseAccountPageLogOutButton => 'Log out'; - - @override - String get logOutConfirmationDialogTitle => 'Log out?'; - - @override - String get logOutConfirmationDialogMessage => - 'To use this account in the future, you will have to re-enter the URL for your organization and your account information.'; - - @override - String get logOutConfirmationDialogConfirmButton => 'Log out'; - - @override - String get chooseAccountButtonAddAnAccount => 'Add an account'; - - @override - String get navButtonAllChannels => 'All channels'; - - @override - String get allChannelsPageTitle => 'All channels'; - - @override - String get allChannelsEmptyPlaceholder => - 'There are no channels you can view in this organization.'; - - @override - String get profileButtonSendDirectMessage => 'Send direct message'; - - @override - String get errorCouldNotShowUserProfile => 'Could not show user profile.'; - - @override - String get permissionsNeededTitle => 'Permissions needed'; - - @override - String get permissionsNeededOpenSettings => 'Open settings'; - - @override - String get permissionsDeniedCameraAccess => - 'To upload an image, please grant Zulip additional permissions in Settings.'; - - @override - String get permissionsDeniedReadExternalStorage => - 'To upload files, please grant Zulip additional permissions in Settings.'; - - @override - String get actionSheetOptionSubscribe => 'Subscribe'; - - @override - String get subscribeFailedTitle => 'Failed to subscribe'; - - @override - String get actionSheetOptionMarkChannelAsRead => 'Mark channel as read'; - - @override - String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; - - @override - String get actionSheetOptionListOfTopics => 'List of topics'; - - @override - String get actionSheetOptionChannelFeed => 'Channel feed'; - - @override - String get actionSheetOptionUnsubscribe => 'Unsubscribe'; - - @override - String unsubscribeConfirmationDialogTitle(String channelName) { - return 'Unsubscribe from $channelName?'; - } - - @override - String get unsubscribeConfirmationDialogMessageCannotResubscribe => - 'Once you leave this channel, you will not be able to rejoin.'; - - @override - String get unsubscribeConfirmationDialogConfirmButton => 'Unsubscribe'; - - @override - String get unsubscribeFailedTitle => 'Failed to unsubscribe'; - - @override - String get actionSheetOptionMuteTopic => 'Mute topic'; - - @override - String get actionSheetOptionUnmuteTopic => 'Unmute topic'; - - @override - String get actionSheetOptionFollowTopic => 'Follow topic'; - - @override - String get actionSheetOptionUnfollowTopic => 'Unfollow topic'; - - @override - String get actionSheetOptionResolveTopic => 'Mark as resolved'; - - @override - String get actionSheetOptionUnresolveTopic => 'Mark as unresolved'; - - @override - String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved'; - - @override - String get errorUnresolveTopicFailedTitle => - 'Failed to mark topic as unresolved'; - - @override - String get actionSheetOptionSeeWhoReacted => 'See who reacted'; - - @override - String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; - - @override - String seeWhoReactedSheetHeaderLabel(int num) { - return 'Emoji reactions ($num total)'; - } - - @override - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num votes', - one: '1 vote', - ); - return '$emojiName: $_temp0'; - } - - @override - String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Votes for $emojiName ($num)'; - } - - @override - String get actionSheetOptionViewReadReceipts => 'View read receipts'; - - @override - String get actionSheetReadReceipts => 'Read receipts'; - - @override - String actionSheetReadReceiptsReadCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: 'This message has been read by $count people:', - one: 'This message has been read by $count person:', - ); - return '$_temp0'; - } - - @override - String get actionSheetReadReceiptsZeroReadCount => - 'No one has read this message yet.'; - - @override - String get actionSheetReadReceiptsErrorReadCount => - 'Failed to load read receipts.'; - - @override - String get actionSheetOptionCopyMessageText => 'Copy message text'; - - @override - String get actionSheetOptionCopyMessageLink => 'Copy link to message'; - - @override - String get actionSheetOptionMarkAsUnread => 'Mark as unread from here'; - - @override - String get actionSheetOptionHideMutedMessage => 'Hide muted message again'; - - @override - String get actionSheetOptionShare => 'Share'; - - @override - String get actionSheetOptionQuoteMessage => 'Quote message'; - - @override - String get actionSheetOptionStarMessage => 'Star message'; - - @override - String get actionSheetOptionUnstarMessage => 'Unstar message'; - - @override - String get actionSheetOptionEditMessage => 'Edit message'; - - @override - String get actionSheetOptionDeleteMessage => 'Delete message'; - - @override - String get deleteMessageConfirmationDialogTitle => 'Delete message?'; - - @override - String get deleteMessageConfirmationDialogMessage => - 'Deleting a message permanently removes it for everyone.'; - - @override - String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; - - @override - String get errorDeleteMessageFailedTitle => 'Failed to delete message'; - - @override - String get actionSheetOptionMarkTopicAsRead => 'Mark topic as read'; - - @override - String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; - - @override - String get errorWebAuthOperationalErrorTitle => 'Something went wrong'; - - @override - String get errorWebAuthOperationalError => 'An unexpected error occurred.'; - - @override - String get errorAccountLoggedInTitle => 'Account already logged in'; - - @override - String errorAccountLoggedIn(String email, String server) { - return 'The account $email at $server is already in your list of accounts.'; - } - - @override - String get errorCouldNotFetchMessageSource => - 'Could not fetch message source.'; - - @override - String get errorCopyingFailed => 'Copying failed'; - - @override - String errorFailedToUploadFileTitle(String filename) { - return 'Failed to upload file: $filename'; - } - - @override - String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size MiB'; - } - - @override - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num files are', - one: 'File is', - ); - return '$_temp0 larger than the server\'s limit of $maxFileUploadSizeMib MiB and will not be uploaded:\n\n$listMessage'; - } - - @override - String errorFilesTooLargeTitle(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: 'Files', - one: 'File', - ); - return '$_temp0 too large'; - } - - @override - String get errorLoginInvalidInputTitle => 'Invalid input'; - - @override - String get errorLoginFailedTitle => 'Login failed'; - - @override - String get errorMessageNotSent => 'Message not sent'; - - @override - String get errorMessageEditNotSaved => 'Message not saved'; - - @override - String errorLoginCouldNotConnect(String url) { - return 'Failed to connect to server:\n$url'; - } - - @override - String get errorCouldNotConnectTitle => 'Could not connect'; - - @override - String get errorMessageDoesNotSeemToExist => - 'That message does not seem to exist.'; - - @override - String get errorQuotationFailed => 'Quotation failed'; - - @override - String errorServerMessage(String message) { - return 'The server said:\n\n$message'; - } - - @override - String get errorConnectingToServerShort => - 'Error connecting to Zulip. Retrying…'; - - @override - String errorConnectingToServerDetails(String serverUrl, String error) { - return 'Error connecting to Zulip at $serverUrl. Will retry:\n\n$error'; - } - - @override - String get errorHandlingEventTitle => - 'Error handling a Zulip event. Retrying connection…'; - - @override - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ) { - return 'Error handling a Zulip event from $serverUrl; will retry.\n\nError: $error\n\nEvent: $event'; - } - - @override - String get errorCouldNotOpenLinkTitle => 'Unable to open link'; - - @override - String errorCouldNotOpenLink(String url) { - return 'Link could not be opened: $url'; - } - - @override - String get errorMuteTopicFailed => 'Failed to mute topic'; - - @override - String get errorUnmuteTopicFailed => 'Failed to unmute topic'; - - @override - String get errorFollowTopicFailed => 'Failed to follow topic'; - - @override - String get errorUnfollowTopicFailed => 'Failed to unfollow topic'; - - @override - String get errorSharingFailed => 'Sharing failed'; - - @override - String get errorStarMessageFailedTitle => 'Failed to star message'; - - @override - String get errorUnstarMessageFailedTitle => 'Failed to unstar message'; - - @override - String get errorCouldNotEditMessageTitle => 'Could not edit message'; - - @override - String get successLinkCopied => 'Link copied'; - - @override - String get successMessageTextCopied => 'Message text copied'; - - @override - String get successMessageLinkCopied => 'Message link copied'; - - @override - String get successTopicLinkCopied => 'Topic link copied'; - - @override - String get successChannelLinkCopied => 'Channel link copied'; - - @override - String get errorBannerDeactivatedDmLabel => - 'You cannot send messages to deactivated users.'; - - @override - String get errorBannerCannotPostInChannelLabel => - 'You do not have permission to post in this channel.'; - - @override - String get composeBoxBannerLabelUnsubscribedWhenCannotSend => - 'New messages will not appear automatically.'; - - @override - String get composeBoxBannerButtonRefresh => 'Refresh'; - - @override - String get composeBoxBannerButtonSubscribe => 'Subscribe'; - - @override - String get composeBoxBannerLabelEditMessage => 'Edit message'; - - @override - String get composeBoxBannerButtonCancel => 'Cancel'; - - @override - String get composeBoxBannerButtonSave => 'Save'; - - @override - String get editAlreadyInProgressTitle => 'Cannot edit message'; - - @override - String get editAlreadyInProgressMessage => - 'An edit is already in progress. Please wait for it to complete.'; - - @override - String get savingMessageEditLabel => 'SAVING EDIT…'; - - @override - String get savingMessageEditFailedLabel => 'EDIT NOT SAVED'; - - @override - String get discardDraftConfirmationDialogTitle => - 'Discard the message you’re writing?'; - - @override - String get discardDraftForEditConfirmationDialogMessage => - 'When you edit a message, the content that was previously in the compose box is discarded.'; - - @override - String get discardDraftForOutboxConfirmationDialogMessage => - 'When you restore an unsent message, the content that was previously in the compose box is discarded.'; - - @override - String get discardDraftConfirmationDialogConfirmButton => 'Discard'; - - @override - String get composeBoxAttachFilesTooltip => 'Attach files'; - - @override - String get composeBoxAttachMediaTooltip => 'Attach images or videos'; - - @override - String get composeBoxAttachFromCameraTooltip => 'Take a photo'; - - @override - String get composeBoxGenericContentHint => 'Type a message'; - - @override - String get newDmSheetComposeButtonLabel => 'Compose'; - - @override - String get newDmSheetScreenTitle => 'New DM'; - - @override - String get newDmFabButtonLabel => 'New DM'; - - @override - String get newDmSheetSearchHintEmpty => 'Add one or more users'; - - @override - String get newDmSheetSearchHintSomeSelected => 'Add another user…'; - - @override - String get newDmSheetNoUsersFound => 'No users found'; - - @override - String composeBoxDmContentHint(String user) { - return 'Message @$user'; - } - - @override - String get composeBoxGroupDmContentHint => 'Message group'; - - @override - String get composeBoxSelfDmContentHint => 'Write yourself a note'; - - @override - String composeBoxChannelContentHint(String destination) { - return 'Message $destination'; - } - - @override - String get preparingEditMessageContentInput => 'Preparing…'; - - @override - String get composeBoxSendTooltip => 'Send'; - - @override - String get unknownChannelName => '(unknown channel)'; - - @override - String get composeBoxTopicHintText => 'Topic'; - - @override - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { - return 'Enter a topic (skip for “$defaultTopicName”)'; - } - - @override - String composeBoxUploadingFilename(String filename) { - return 'Uploading $filename…'; - } - - @override - String composeBoxLoadingMessage(int messageId) { - return '(loading message $messageId)'; - } - - @override - String get unknownUserName => '(unknown user)'; - - @override - String get dmsWithYourselfPageTitle => 'DMs with yourself'; - - @override - String messageListGroupYouAndOthers(String others) { - return 'You and $others'; - } - - @override - String dmsWithOthersPageTitle(String others) { - return 'DMs with $others'; - } - - @override - String get emptyMessageList => 'There are no messages here.'; - - @override - String get emptyMessageListSearch => 'No search results.'; - - @override - String get messageListGroupYouWithYourself => 'Messages with yourself'; - - @override - String get contentValidationErrorTooLong => - 'Message length shouldn\'t be greater than 10000 characters.'; - - @override - String get contentValidationErrorEmpty => 'You have nothing to send!'; - - @override - String get contentValidationErrorQuoteAndReplyInProgress => - 'Please wait for the quotation to complete.'; - - @override - String get contentValidationErrorUploadInProgress => - 'Please wait for the upload to complete.'; - - @override - String get dialogCancel => 'Cancel'; - - @override - String get dialogContinue => 'Continue'; - - @override - String get dialogClose => 'Close'; - - @override - String get errorDialogLearnMore => 'Learn more'; - - @override - String get errorDialogContinue => 'OK'; - - @override - String get errorDialogTitle => 'Error'; - - @override - String get snackBarDetails => 'Details'; - - @override - String get lightboxCopyLinkTooltip => 'Copy link'; - - @override - String get lightboxVideoCurrentPosition => 'Current position'; - - @override - String get lightboxVideoDuration => 'Video duration'; - - @override - String get loginPageTitle => 'Log in'; - - @override - String get loginFormSubmitLabel => 'Log in'; - - @override - String get loginMethodDivider => 'OR'; - - @override - String signInWithFoo(String method) { - return 'Sign in with $method'; - } - - @override - String get loginAddAnAccountPageTitle => 'Add an account'; - - @override - String get loginServerUrlLabel => 'Your Zulip server URL'; - - @override - String get loginHidePassword => 'Hide password'; - - @override - String get loginEmailLabel => 'Email address'; - - @override - String get loginErrorMissingEmail => 'Please enter your email.'; - - @override - String get loginPasswordLabel => 'Password'; - - @override - String get loginErrorMissingPassword => 'Please enter your password.'; - - @override - String get loginUsernameLabel => 'Username'; - - @override - String get loginErrorMissingUsername => 'Please enter your username.'; - - @override - String get topicValidationErrorTooLong => - 'Topic length shouldn\'t be greater than 60 characters.'; - - @override - String get topicValidationErrorMandatoryButEmpty => - 'Topics are required in this organization.'; - - @override - String get errorContentNotInsertedTitle => 'Content not inserted'; - - @override - String get errorContentToInsertIsEmpty => - 'The file to be inserted is empty or cannot be accessed.'; - - @override - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ) { - return '$url is running Zulip Server $zulipVersion, which is unsupported. The minimum supported version is Zulip Server $minSupportedZulipVersion.'; - } - - @override - String errorInvalidApiKeyMessage(String url) { - return 'Your account at $url could not be authenticated. Please try logging in again or use another account.'; - } - - @override - String get errorInvalidResponse => 'The server sent an invalid response.'; - - @override - String get errorNetworkRequestFailed => 'Network request failed'; - - @override - String errorMalformedResponse(int httpStatus) { - return 'Server gave malformed response; HTTP status $httpStatus'; - } - - @override - String errorMalformedResponseWithCause(int httpStatus, String details) { - return 'Server gave malformed response; HTTP status $httpStatus; $details'; - } - - @override - String errorRequestFailed(int httpStatus) { - return 'Network request failed: HTTP status $httpStatus'; - } - - @override - String get errorVideoPlayerFailed => 'Unable to play the video.'; - - @override - String get serverUrlValidationErrorEmpty => 'Please enter a URL.'; - - @override - String get serverUrlValidationErrorInvalidUrl => 'Please enter a valid URL.'; - - @override - String get serverUrlValidationErrorNoUseEmail => - 'Please enter the server URL, not your email.'; - - @override - String get serverUrlValidationErrorUnsupportedScheme => - 'The server URL must start with http:// or https://.'; - - @override - String get spoilerDefaultHeaderText => 'Spoiler'; - - @override - String get markAllAsReadLabel => 'Mark all messages as read'; - - @override - String markAsReadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num messages', - one: '1 message', - ); - return 'Marked $_temp0 as read.'; - } - - @override - String get markAsReadInProgress => 'Marking messages as read…'; - - @override - String get errorMarkAsReadFailedTitle => 'Mark as read failed'; - - @override - String markAsUnreadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num messages', - one: '1 message', - ); - return 'Marked $_temp0 as unread.'; - } - - @override - String get markAsUnreadInProgress => 'Marking messages as unread…'; - - @override - String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed'; - - @override - String get today => 'Today'; - - @override - String get yesterday => 'Yesterday'; - - @override - String get userActiveNow => 'Active now'; - - @override - String get userIdle => 'Idle'; - - @override - String userActiveMinutesAgo(int minutes) { - String _temp0 = intl.Intl.pluralLogic( - minutes, - locale: localeName, - other: '$minutes minutes', - one: '1 minute', - ); - return 'Active $_temp0 ago'; - } - - @override - String userActiveHoursAgo(int hours) { - String _temp0 = intl.Intl.pluralLogic( - hours, - locale: localeName, - other: '$hours hours', - one: '1 hour', - ); - return 'Active $_temp0 ago'; - } - - @override - String get userActiveYesterday => 'Active yesterday'; - - @override - String userActiveDaysAgo(int days) { - String _temp0 = intl.Intl.pluralLogic( - days, - locale: localeName, - other: '$days days', - one: '1 day', - ); - return 'Active $_temp0 ago'; - } - - @override - String userActiveDate(String date) { - return 'Active $date'; - } - - @override - String get userNotActiveInYear => 'Not active in the last year'; - - @override - String get invisibleMode => 'Invisible mode'; - - @override - String get turnOnInvisibleModeErrorTitle => - 'Error turning on invisible mode. Please try again.'; - - @override - String get turnOffInvisibleModeErrorTitle => - 'Error turning off invisible mode. Please try again.'; - - @override - String get userRoleOwner => 'Owner'; - - @override - String get userRoleAdministrator => 'Administrator'; - - @override - String get userRoleModerator => 'Moderator'; - - @override - String get userRoleMember => 'Member'; - - @override - String get userRoleGuest => 'Guest'; - - @override - String get userRoleUnknown => 'Unknown'; - - @override - String get statusButtonLabelStatusSet => 'Status'; - - @override - String get statusButtonLabelStatusUnset => 'Set status'; - - @override - String get noStatusText => 'No status text'; - - @override - String get setStatusPageTitle => 'Set status'; - - @override - String get statusClearButtonLabel => 'Clear'; - - @override - String get statusSaveButtonLabel => 'Save'; - - @override - String get statusTextHint => 'Your status'; - - @override - String get userStatusBusy => 'Busy'; - - @override - String get userStatusInAMeeting => 'In a meeting'; - - @override - String get userStatusCommuting => 'Commuting'; - - @override - String get userStatusOutSick => 'Out sick'; - - @override - String get userStatusVacationing => 'Vacationing'; - - @override - String get userStatusWorkingRemotely => 'Working remotely'; - - @override - String get userStatusAtTheOffice => 'At the office'; - - @override - String get updateStatusErrorTitle => - 'Error updating user status. Please try again.'; - - @override - String get searchMessagesPageTitle => 'Search'; - - @override - String get searchMessagesHintText => 'Search'; - - @override - String get searchMessagesClearButtonTooltip => 'Clear'; - - @override - String get inboxPageTitle => 'Inbox'; - - @override - String get inboxEmptyPlaceholder => - 'There are no unread messages in your inbox. Use the buttons below to view the combined feed or list of channels.'; - - @override - String get recentDmConversationsPageTitle => 'Direct messages'; - - @override - String get recentDmConversationsSectionHeader => 'Direct messages'; - - @override - String get recentDmConversationsEmptyPlaceholder => - 'You have no direct messages yet! Why not start the conversation?'; - - @override - String get combinedFeedPageTitle => 'Combined feed'; - - @override - String get mentionsPageTitle => 'Mentions'; - - @override - String get starredMessagesPageTitle => 'Starred messages'; - - @override - String get channelsPageTitle => 'Channels'; - - @override - String get channelsEmptyPlaceholder => - 'You’re not subscribed to any channels yet.'; - - @override - String channelsEmptyPlaceholderWithAllChannelsLink( - String allChannelsPageTitle, - ) { - return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; - } - - @override - String get sharePageTitle => 'Share'; - - @override - String get mainMenuMyProfile => 'My profile'; - - @override - String get topicsButtonTooltip => 'Topics'; - - @override - String get channelFeedButtonTooltip => 'Channel feed'; - - @override - String notifGroupDmConversationLabel(String senderFullName, int numOthers) { - String _temp0 = intl.Intl.pluralLogic( - numOthers, - locale: localeName, - other: '$numOthers others', - one: '1 other', - ); - return '$senderFullName to you and $_temp0'; - } - - @override - String get pinnedSubscriptionsLabel => 'Pinned'; - - @override - String get unpinnedSubscriptionsLabel => 'Unpinned'; - - @override - String get notifSelfUser => 'You'; - - @override - String get reactedEmojiSelfUser => 'You'; - - @override - String get reactionChipsLabel => 'Reactions'; - - @override - String reactionChipLabel(String emojiName, String votes) { - return '$emojiName: $votes'; - } - - @override - String reactionChipVotesYouAndOthers(int otherUsersCount) { - String _temp0 = intl.Intl.pluralLogic( - otherUsersCount, - locale: localeName, - other: 'You and $otherUsersCount others', - one: 'You and 1 other', - ); - return '$_temp0'; - } - - @override - String onePersonTyping(String typist) { - return '$typist is typing…'; - } - - @override - String twoPeopleTyping(String typist, String otherTypist) { - return '$typist and $otherTypist are typing…'; - } - - @override - String get manyPeopleTyping => 'Several people are typing…'; - - @override - String get wildcardMentionAll => 'all'; - - @override - String get wildcardMentionEveryone => 'everyone'; - - @override - String get wildcardMentionChannel => 'channel'; - - @override - String get wildcardMentionStream => 'stream'; - - @override - String get wildcardMentionTopic => 'topic'; - - @override - String get wildcardMentionChannelDescription => 'Notify channel'; - - @override - String get wildcardMentionStreamDescription => 'Notify stream'; - - @override - String get wildcardMentionAllDmDescription => 'Notify recipients'; - - @override - String get wildcardMentionTopicDescription => 'Notify topic'; - - @override - String get messageIsEditedLabel => 'EDITED'; - - @override - String get messageIsMovedLabel => 'MOVED'; - - @override - String get messageNotSentLabel => 'MESSAGE NOT SENT'; - - @override - String pollVoterNames(String voterNames) { - return '($voterNames)'; - } - - @override - String get themeSettingTitle => 'THEME'; - - @override - String get themeSettingDark => 'Dark'; - - @override - String get themeSettingLight => 'Light'; - - @override - String get themeSettingSystem => 'System'; - - @override - String get openLinksWithInAppBrowser => 'Open links with in-app browser'; - - @override - String get pollWidgetQuestionMissing => 'No question.'; - - @override - String get pollWidgetOptionsMissing => 'This poll has no options yet.'; - - @override - String get initialAnchorSettingTitle => 'Open message feeds at'; - - @override - String get initialAnchorSettingDescription => - 'You can choose whether message feeds open at your first unread message or at the newest messages.'; - - @override - String get initialAnchorSettingFirstUnreadAlways => 'First unread message'; - - @override - String get initialAnchorSettingFirstUnreadConversations => - 'First unread message in conversation views, newest message elsewhere'; - - @override - String get initialAnchorSettingNewestAlways => 'Newest message'; - - @override - String get markReadOnScrollSettingTitle => 'Mark messages as read on scroll'; - - @override - String get markReadOnScrollSettingDescription => - 'When scrolling through messages, should they automatically be marked as read?'; - - @override - String get markReadOnScrollSettingAlways => 'Always'; - - @override - String get markReadOnScrollSettingNever => 'Never'; - - @override - String get markReadOnScrollSettingConversations => - 'Only in conversation views'; - - @override - String get markReadOnScrollSettingConversationsDescription => - 'Messages will be automatically marked as read only when viewing a single topic or direct message conversation.'; - - @override - String get experimentalFeatureSettingsPageTitle => 'Experimental features'; - - @override - String get experimentalFeatureSettingsWarning => - 'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'; - - @override - String get errorNotificationOpenTitle => 'Failed to open notification'; - - @override - String get errorNotificationOpenAccountNotFound => - 'The account associated with this notification could not be found.'; - - @override - String get errorReactionAddingFailedTitle => 'Adding reaction failed'; - - @override - String get errorReactionRemovingFailedTitle => 'Removing reaction failed'; - - @override - String get errorSharingTitle => 'Failed to share content'; - - @override - String get errorSharingAccountNotLoggedIn => - 'There is no account logged in. Please log in to an account and try again.'; - - @override - String get emojiReactionsMore => 'more'; - - @override - String get emojiPickerSearchEmoji => 'Search emoji'; - - @override - String get noEarlierMessages => 'No earlier messages'; - - @override - String get revealButtonLabel => 'Reveal message'; - - @override - String get mutedUser => 'Muted user'; - - @override - String get scrollToBottomTooltip => 'Scroll to bottom'; - - @override - String get appVersionUnknownPlaceholder => '(…)'; - - @override - String get zulipAppTitle => 'Zulip'; -} +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'zulip_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for Norwegian Bokmål (`nb`). +class ZulipLocalizationsNb extends ZulipLocalizations { + ZulipLocalizationsNb([String locale = 'nb']) : super(locale); + + @override + String get aboutPageTitle => 'Om Zulip'; + + @override + String get aboutPageAppVersion => 'App versjon'; + + @override + String get aboutPageOpenSourceLicenses => 'Lisenser for åpen kildekode'; + + @override + String get aboutPageTapToView => 'Tap to view'; + + @override + String get upgradeWelcomeDialogTitle => 'Welcome to the new Zulip app!'; + + @override + String get upgradeWelcomeDialogMessage => + 'You’ll find a familiar experience in a faster, sleeker package.'; + + @override + String get upgradeWelcomeDialogLinkText => + 'Check out the announcement blog post!'; + + @override + String get upgradeWelcomeDialogDismiss => 'Let\'s go'; + + @override + String get chooseAccountPageTitle => 'Choose account'; + + @override + String get settingsPageTitle => 'Settings'; + + @override + String get switchAccountButton => 'Switch account'; + + @override + String tryAnotherAccountMessage(Object url) { + return 'Your account at $url is taking a while to load.'; + } + + @override + String get tryAnotherAccountButton => 'Try another account'; + + @override + String get chooseAccountPageLogOutButton => 'Log out'; + + @override + String get logOutConfirmationDialogTitle => 'Log out?'; + + @override + String get logOutConfirmationDialogMessage => + 'To use this account in the future, you will have to re-enter the URL for your organization and your account information.'; + + @override + String get logOutConfirmationDialogConfirmButton => 'Log out'; + + @override + String get chooseAccountButtonAddAnAccount => 'Add an account'; + + @override + String get navButtonAllChannels => 'All channels'; + + @override + String get allChannelsPageTitle => 'All channels'; + + @override + String get allChannelsEmptyPlaceholder => + 'There are no channels you can view in this organization.'; + + @override + String get profileButtonSendDirectMessage => 'Send direct message'; + + @override + String get errorCouldNotShowUserProfile => 'Could not show user profile.'; + + @override + String get permissionsNeededTitle => 'Permissions needed'; + + @override + String get permissionsNeededOpenSettings => 'Open settings'; + + @override + String get permissionsDeniedCameraAccess => + 'To upload an image, please grant Zulip additional permissions in Settings.'; + + @override + String get permissionsDeniedReadExternalStorage => + 'To upload files, please grant Zulip additional permissions in Settings.'; + + @override + String get actionSheetOptionSubscribe => 'Subscribe'; + + @override + String get subscribeFailedTitle => 'Failed to subscribe'; + + @override + String get actionSheetOptionMarkChannelAsRead => 'Mark channel as read'; + + @override + String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; + + @override + String get actionSheetOptionListOfTopics => 'List of topics'; + + @override + String get actionSheetOptionChannelFeed => 'Channel feed'; + + @override + String get actionSheetOptionUnsubscribe => 'Unsubscribe'; + + @override + String unsubscribeConfirmationDialogTitle(String channelName) { + return 'Unsubscribe from $channelName?'; + } + + @override + String get unsubscribeConfirmationDialogMessageCannotResubscribe => + 'Once you leave this channel, you will not be able to rejoin.'; + + @override + String get unsubscribeConfirmationDialogConfirmButton => 'Unsubscribe'; + + @override + String get unsubscribeFailedTitle => 'Failed to unsubscribe'; + + @override + String get actionSheetOptionMuteTopic => 'Mute topic'; + + @override + String get actionSheetOptionUnmuteTopic => 'Unmute topic'; + + @override + String get actionSheetOptionFollowTopic => 'Follow topic'; + + @override + String get actionSheetOptionUnfollowTopic => 'Unfollow topic'; + + @override + String get actionSheetOptionResolveTopic => 'Mark as resolved'; + + @override + String get actionSheetOptionUnresolveTopic => 'Mark as unresolved'; + + @override + String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved'; + + @override + String get errorUnresolveTopicFailedTitle => + 'Failed to mark topic as unresolved'; + + @override + String get actionSheetOptionSeeWhoReacted => 'See who reacted'; + + @override + String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; + + @override + String seeWhoReactedSheetHeaderLabel(int num) { + return 'Emoji reactions ($num total)'; + } + + @override + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num votes', + one: '1 vote', + ); + return '$emojiName: $_temp0'; + } + + @override + String seeWhoReactedSheetUserListLabel(String emojiName, int num) { + return 'Votes for $emojiName ($num)'; + } + + @override + String get actionSheetOptionViewReadReceipts => 'View read receipts'; + + @override + String get actionSheetReadReceipts => 'Read receipts'; + + @override + String actionSheetReadReceiptsReadCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: 'This message has been read by $count people:', + one: 'This message has been read by $count person:', + ); + return '$_temp0'; + } + + @override + String get actionSheetReadReceiptsZeroReadCount => + 'No one has read this message yet.'; + + @override + String get actionSheetReadReceiptsErrorReadCount => + 'Failed to load read receipts.'; + + @override + String get actionSheetOptionCopyMessageText => 'Copy message text'; + + @override + String get actionSheetOptionCopyMessageLink => 'Copy link to message'; + + @override + String get actionSheetOptionMarkAsUnread => 'Mark as unread from here'; + + @override + String get actionSheetOptionHideMutedMessage => 'Hide muted message again'; + + @override + String get actionSheetOptionShare => 'Share'; + + @override + String get actionSheetOptionQuoteMessage => 'Quote message'; + + @override + String get actionSheetOptionStarMessage => 'Star message'; + + @override + String get actionSheetOptionUnstarMessage => 'Unstar message'; + + @override + String get actionSheetOptionEditMessage => 'Edit message'; + + @override + String get actionSheetOptionDeleteMessage => 'Delete message'; + + @override + String get deleteMessageConfirmationDialogTitle => 'Delete message?'; + + @override + String get deleteMessageConfirmationDialogMessage => + 'Deleting a message permanently removes it for everyone.'; + + @override + String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; + + @override + String get errorDeleteMessageFailedTitle => 'Failed to delete message'; + + @override + String get actionSheetOptionMarkTopicAsRead => 'Mark topic as read'; + + @override + String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; + + @override + String get errorWebAuthOperationalErrorTitle => 'Something went wrong'; + + @override + String get errorWebAuthOperationalError => 'An unexpected error occurred.'; + + @override + String get errorAccountLoggedInTitle => 'Account already logged in'; + + @override + String errorAccountLoggedIn(String email, String server) { + return 'The account $email at $server is already in your list of accounts.'; + } + + @override + String get errorCouldNotFetchMessageSource => + 'Could not fetch message source.'; + + @override + String get errorCopyingFailed => 'Copying failed'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return 'Failed to upload file: $filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename: $size MiB'; + } + + @override + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num files are', + one: 'File is', + ); + return '$_temp0 larger than the server\'s limit of $maxFileUploadSizeMib MiB and will not be uploaded:\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: 'Files', + one: 'File', + ); + return '$_temp0 too large'; + } + + @override + String get errorLoginInvalidInputTitle => 'Invalid input'; + + @override + String get errorLoginFailedTitle => 'Login failed'; + + @override + String get errorMessageNotSent => 'Message not sent'; + + @override + String get errorMessageEditNotSaved => 'Message not saved'; + + @override + String errorLoginCouldNotConnect(String url) { + return 'Failed to connect to server:\n$url'; + } + + @override + String get errorCouldNotConnectTitle => 'Could not connect'; + + @override + String get errorMessageDoesNotSeemToExist => + 'That message does not seem to exist.'; + + @override + String get errorQuotationFailed => 'Quotation failed'; + + @override + String errorServerMessage(String message) { + return 'The server said:\n\n$message'; + } + + @override + String get errorConnectingToServerShort => + 'Error connecting to Zulip. Retrying…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return 'Error connecting to Zulip at $serverUrl. Will retry:\n\n$error'; + } + + @override + String get errorHandlingEventTitle => + 'Error handling a Zulip event. Retrying connection…'; + + @override + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ) { + return 'Error handling a Zulip event from $serverUrl; will retry.\n\nError: $error\n\nEvent: $event'; + } + + @override + String get errorCouldNotOpenLinkTitle => 'Unable to open link'; + + @override + String errorCouldNotOpenLink(String url) { + return 'Link could not be opened: $url'; + } + + @override + String get errorMuteTopicFailed => 'Failed to mute topic'; + + @override + String get errorUnmuteTopicFailed => 'Failed to unmute topic'; + + @override + String get errorFollowTopicFailed => 'Failed to follow topic'; + + @override + String get errorUnfollowTopicFailed => 'Failed to unfollow topic'; + + @override + String get errorSharingFailed => 'Sharing failed'; + + @override + String get errorStarMessageFailedTitle => 'Failed to star message'; + + @override + String get errorUnstarMessageFailedTitle => 'Failed to unstar message'; + + @override + String get errorCouldNotEditMessageTitle => 'Could not edit message'; + + @override + String get successLinkCopied => 'Link copied'; + + @override + String get successMessageTextCopied => 'Message text copied'; + + @override + String get successMessageLinkCopied => 'Message link copied'; + + @override + String get successTopicLinkCopied => 'Topic link copied'; + + @override + String get successChannelLinkCopied => 'Channel link copied'; + + @override + String get errorBannerDeactivatedDmLabel => + 'You cannot send messages to deactivated users.'; + + @override + String get errorBannerCannotPostInChannelLabel => + 'You do not have permission to post in this channel.'; + + @override + String get composeBoxBannerLabelUnsubscribedWhenCannotSend => + 'New messages will not appear automatically.'; + + @override + String get composeBoxBannerButtonRefresh => 'Refresh'; + + @override + String get composeBoxBannerButtonSubscribe => 'Subscribe'; + + @override + String get composeBoxBannerLabelEditMessage => 'Edit message'; + + @override + String get composeBoxBannerButtonCancel => 'Cancel'; + + @override + String get composeBoxBannerButtonSave => 'Save'; + + @override + String get editAlreadyInProgressTitle => 'Cannot edit message'; + + @override + String get editAlreadyInProgressMessage => + 'An edit is already in progress. Please wait for it to complete.'; + + @override + String get savingMessageEditLabel => 'SAVING EDIT…'; + + @override + String get savingMessageEditFailedLabel => 'EDIT NOT SAVED'; + + @override + String get discardDraftConfirmationDialogTitle => + 'Discard the message you’re writing?'; + + @override + String get discardDraftForEditConfirmationDialogMessage => + 'When you edit a message, the content that was previously in the compose box is discarded.'; + + @override + String get discardDraftForOutboxConfirmationDialogMessage => + 'When you restore an unsent message, the content that was previously in the compose box is discarded.'; + + @override + String get discardDraftConfirmationDialogConfirmButton => 'Discard'; + + @override + String get composeBoxAttachFilesTooltip => 'Attach files'; + + @override + String get composeBoxAttachMediaTooltip => 'Attach images or videos'; + + @override + String get composeBoxAttachFromCameraTooltip => 'Take a photo'; + + @override + String get composeBoxAttachFromVideoCallTooltip => 'Attach a video call'; + + @override + String get composeBoxGenericContentHint => 'Type a message'; + + @override + String get newDmSheetComposeButtonLabel => 'Compose'; + + @override + String get newDmSheetScreenTitle => 'New DM'; + + @override + String get newDmFabButtonLabel => 'New DM'; + + @override + String get newDmSheetSearchHintEmpty => 'Add one or more users'; + + @override + String get newDmSheetSearchHintSomeSelected => 'Add another user…'; + + @override + String get newDmSheetNoUsersFound => 'No users found'; + + @override + String composeBoxDmContentHint(String user) { + return 'Message @$user'; + } + + @override + String get composeBoxGroupDmContentHint => 'Message group'; + + @override + String get composeBoxSelfDmContentHint => 'Write yourself a note'; + + @override + String composeBoxChannelContentHint(String destination) { + return 'Message $destination'; + } + + @override + String get preparingEditMessageContentInput => 'Preparing…'; + + @override + String get composeBoxSendTooltip => 'Send'; + + @override + String get unknownChannelName => '(unknown channel)'; + + @override + String get composeBoxTopicHintText => 'Topic'; + + @override + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { + return 'Enter a topic (skip for “$defaultTopicName”)'; + } + + @override + String composeBoxUploadingFilename(String filename) { + return 'Uploading $filename…'; + } + + @override + String get composeBoxUploadedVideoCallUrl => 'Join video call.'; + + @override + String composeBoxLoadingMessage(int messageId) { + return '(loading message $messageId)'; + } + + @override + String get unknownUserName => '(unknown user)'; + + @override + String get dmsWithYourselfPageTitle => 'DMs with yourself'; + + @override + String messageListGroupYouAndOthers(String others) { + return 'You and $others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return 'DMs with $others'; + } + + @override + String get emptyMessageList => 'There are no messages here.'; + + @override + String get emptyMessageListSearch => 'No search results.'; + + @override + String get messageListGroupYouWithYourself => 'Messages with yourself'; + + @override + String get contentValidationErrorTooLong => + 'Message length shouldn\'t be greater than 10000 characters.'; + + @override + String get contentValidationErrorEmpty => 'You have nothing to send!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => + 'Please wait for the quotation to complete.'; + + @override + String get contentValidationErrorUploadInProgress => + 'Please wait for the upload to complete.'; + + @override + String get dialogCancel => 'Cancel'; + + @override + String get dialogContinue => 'Continue'; + + @override + String get dialogClose => 'Close'; + + @override + String get errorDialogLearnMore => 'Learn more'; + + @override + String get errorDialogContinue => 'OK'; + + @override + String get errorDialogTitle => 'Error'; + + @override + String get snackBarDetails => 'Details'; + + @override + String get lightboxCopyLinkTooltip => 'Copy link'; + + @override + String get lightboxVideoCurrentPosition => 'Current position'; + + @override + String get lightboxVideoDuration => 'Video duration'; + + @override + String get loginPageTitle => 'Log in'; + + @override + String get loginFormSubmitLabel => 'Log in'; + + @override + String get loginMethodDivider => 'OR'; + + @override + String signInWithFoo(String method) { + return 'Sign in with $method'; + } + + @override + String get loginAddAnAccountPageTitle => 'Add an account'; + + @override + String get loginServerUrlLabel => 'Your Zulip server URL'; + + @override + String get loginHidePassword => 'Hide password'; + + @override + String get loginEmailLabel => 'Email address'; + + @override + String get loginErrorMissingEmail => 'Please enter your email.'; + + @override + String get loginPasswordLabel => 'Password'; + + @override + String get loginErrorMissingPassword => 'Please enter your password.'; + + @override + String get loginUsernameLabel => 'Username'; + + @override + String get loginErrorMissingUsername => 'Please enter your username.'; + + @override + String get topicValidationErrorTooLong => + 'Topic length shouldn\'t be greater than 60 characters.'; + + @override + String get topicValidationErrorMandatoryButEmpty => + 'Topics are required in this organization.'; + + @override + String get errorContentNotInsertedTitle => 'Content not inserted'; + + @override + String get errorContentToInsertIsEmpty => + 'The file to be inserted is empty or cannot be accessed.'; + + @override + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ) { + return '$url is running Zulip Server $zulipVersion, which is unsupported. The minimum supported version is Zulip Server $minSupportedZulipVersion.'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return 'Your account at $url could not be authenticated. Please try logging in again or use another account.'; + } + + @override + String get errorInvalidResponse => 'The server sent an invalid response.'; + + @override + String get errorNetworkRequestFailed => 'Network request failed'; + + @override + String errorMalformedResponse(int httpStatus) { + return 'Server gave malformed response; HTTP status $httpStatus'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return 'Server gave malformed response; HTTP status $httpStatus; $details'; + } + + @override + String errorRequestFailed(int httpStatus) { + return 'Network request failed: HTTP status $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => 'Unable to play the video.'; + + @override + String get serverUrlValidationErrorEmpty => 'Please enter a URL.'; + + @override + String get serverUrlValidationErrorInvalidUrl => 'Please enter a valid URL.'; + + @override + String get serverUrlValidationErrorNoUseEmail => + 'Please enter the server URL, not your email.'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => + 'The server URL must start with http:// or https://.'; + + @override + String get spoilerDefaultHeaderText => 'Spoiler'; + + @override + String get markAllAsReadLabel => 'Mark all messages as read'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num messages', + one: '1 message', + ); + return 'Marked $_temp0 as read.'; + } + + @override + String get markAsReadInProgress => 'Marking messages as read…'; + + @override + String get errorMarkAsReadFailedTitle => 'Mark as read failed'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num messages', + one: '1 message', + ); + return 'Marked $_temp0 as unread.'; + } + + @override + String get markAsUnreadInProgress => 'Marking messages as unread…'; + + @override + String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed'; + + @override + String get today => 'Today'; + + @override + String get yesterday => 'Yesterday'; + + @override + String get userActiveNow => 'Active now'; + + @override + String get userIdle => 'Idle'; + + @override + String userActiveMinutesAgo(int minutes) { + String _temp0 = intl.Intl.pluralLogic( + minutes, + locale: localeName, + other: '$minutes minutes', + one: '1 minute', + ); + return 'Active $_temp0 ago'; + } + + @override + String userActiveHoursAgo(int hours) { + String _temp0 = intl.Intl.pluralLogic( + hours, + locale: localeName, + other: '$hours hours', + one: '1 hour', + ); + return 'Active $_temp0 ago'; + } + + @override + String get userActiveYesterday => 'Active yesterday'; + + @override + String userActiveDaysAgo(int days) { + String _temp0 = intl.Intl.pluralLogic( + days, + locale: localeName, + other: '$days days', + one: '1 day', + ); + return 'Active $_temp0 ago'; + } + + @override + String userActiveDate(String date) { + return 'Active $date'; + } + + @override + String get userNotActiveInYear => 'Not active in the last year'; + + @override + String get invisibleMode => 'Invisible mode'; + + @override + String get turnOnInvisibleModeErrorTitle => + 'Error turning on invisible mode. Please try again.'; + + @override + String get turnOffInvisibleModeErrorTitle => + 'Error turning off invisible mode. Please try again.'; + + @override + String get userRoleOwner => 'Owner'; + + @override + String get userRoleAdministrator => 'Administrator'; + + @override + String get userRoleModerator => 'Moderator'; + + @override + String get userRoleMember => 'Member'; + + @override + String get userRoleGuest => 'Guest'; + + @override + String get userRoleUnknown => 'Unknown'; + + @override + String get statusButtonLabelStatusSet => 'Status'; + + @override + String get statusButtonLabelStatusUnset => 'Set status'; + + @override + String get noStatusText => 'No status text'; + + @override + String get setStatusPageTitle => 'Set status'; + + @override + String get statusClearButtonLabel => 'Clear'; + + @override + String get statusSaveButtonLabel => 'Save'; + + @override + String get statusTextHint => 'Your status'; + + @override + String get userStatusBusy => 'Busy'; + + @override + String get userStatusInAMeeting => 'In a meeting'; + + @override + String get userStatusCommuting => 'Commuting'; + + @override + String get userStatusOutSick => 'Out sick'; + + @override + String get userStatusVacationing => 'Vacationing'; + + @override + String get userStatusWorkingRemotely => 'Working remotely'; + + @override + String get userStatusAtTheOffice => 'At the office'; + + @override + String get updateStatusErrorTitle => + 'Error updating user status. Please try again.'; + + @override + String get searchMessagesPageTitle => 'Search'; + + @override + String get searchMessagesHintText => 'Search'; + + @override + String get searchMessagesClearButtonTooltip => 'Clear'; + + @override + String get inboxPageTitle => 'Inbox'; + + @override + String get inboxEmptyPlaceholder => + 'There are no unread messages in your inbox. Use the buttons below to view the combined feed or list of channels.'; + + @override + String get recentDmConversationsPageTitle => 'Direct messages'; + + @override + String get recentDmConversationsSectionHeader => 'Direct messages'; + + @override + String get recentDmConversationsEmptyPlaceholder => + 'You have no direct messages yet! Why not start the conversation?'; + + @override + String get combinedFeedPageTitle => 'Combined feed'; + + @override + String get mentionsPageTitle => 'Mentions'; + + @override + String get starredMessagesPageTitle => 'Starred messages'; + + @override + String get channelsPageTitle => 'Channels'; + + @override + String get channelsEmptyPlaceholder => + 'You’re not subscribed to any channels yet.'; + + @override + String channelsEmptyPlaceholderWithAllChannelsLink( + String allChannelsPageTitle, + ) { + return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; + } + + @override + String get sharePageTitle => 'Share'; + + @override + String get mainMenuMyProfile => 'My profile'; + + @override + String get topicsButtonTooltip => 'Topics'; + + @override + String get channelFeedButtonTooltip => 'Channel feed'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: '$numOthers others', + one: '1 other', + ); + return '$senderFullName to you and $_temp0'; + } + + @override + String get pinnedSubscriptionsLabel => 'Pinned'; + + @override + String get unpinnedSubscriptionsLabel => 'Unpinned'; + + @override + String get notifSelfUser => 'You'; + + @override + String get reactedEmojiSelfUser => 'You'; + + @override + String get reactionChipsLabel => 'Reactions'; + + @override + String reactionChipLabel(String emojiName, String votes) { + return '$emojiName: $votes'; + } + + @override + String reactionChipVotesYouAndOthers(int otherUsersCount) { + String _temp0 = intl.Intl.pluralLogic( + otherUsersCount, + locale: localeName, + other: 'You and $otherUsersCount others', + one: 'You and 1 other', + ); + return '$_temp0'; + } + + @override + String onePersonTyping(String typist) { + return '$typist is typing…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist and $otherTypist are typing…'; + } + + @override + String get manyPeopleTyping => 'Several people are typing…'; + + @override + String get wildcardMentionAll => 'all'; + + @override + String get wildcardMentionEveryone => 'everyone'; + + @override + String get wildcardMentionChannel => 'channel'; + + @override + String get wildcardMentionStream => 'stream'; + + @override + String get wildcardMentionTopic => 'topic'; + + @override + String get wildcardMentionChannelDescription => 'Notify channel'; + + @override + String get wildcardMentionStreamDescription => 'Notify stream'; + + @override + String get wildcardMentionAllDmDescription => 'Notify recipients'; + + @override + String get wildcardMentionTopicDescription => 'Notify topic'; + + @override + String get messageIsEditedLabel => 'EDITED'; + + @override + String get messageIsMovedLabel => 'MOVED'; + + @override + String get messageNotSentLabel => 'MESSAGE NOT SENT'; + + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + + @override + String get themeSettingTitle => 'THEME'; + + @override + String get themeSettingDark => 'Dark'; + + @override + String get themeSettingLight => 'Light'; + + @override + String get themeSettingSystem => 'System'; + + @override + String get openLinksWithInAppBrowser => 'Open links with in-app browser'; + + @override + String get pollWidgetQuestionMissing => 'No question.'; + + @override + String get pollWidgetOptionsMissing => 'This poll has no options yet.'; + + @override + String get initialAnchorSettingTitle => 'Open message feeds at'; + + @override + String get initialAnchorSettingDescription => + 'You can choose whether message feeds open at your first unread message or at the newest messages.'; + + @override + String get initialAnchorSettingFirstUnreadAlways => 'First unread message'; + + @override + String get initialAnchorSettingFirstUnreadConversations => + 'First unread message in conversation views, newest message elsewhere'; + + @override + String get initialAnchorSettingNewestAlways => 'Newest message'; + + @override + String get markReadOnScrollSettingTitle => 'Mark messages as read on scroll'; + + @override + String get markReadOnScrollSettingDescription => + 'When scrolling through messages, should they automatically be marked as read?'; + + @override + String get markReadOnScrollSettingAlways => 'Always'; + + @override + String get markReadOnScrollSettingNever => 'Never'; + + @override + String get markReadOnScrollSettingConversations => + 'Only in conversation views'; + + @override + String get markReadOnScrollSettingConversationsDescription => + 'Messages will be automatically marked as read only when viewing a single topic or direct message conversation.'; + + @override + String get experimentalFeatureSettingsPageTitle => 'Experimental features'; + + @override + String get experimentalFeatureSettingsWarning => + 'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'; + + @override + String get errorNotificationOpenTitle => 'Failed to open notification'; + + @override + String get errorNotificationOpenAccountNotFound => + 'The account associated with this notification could not be found.'; + + @override + String get errorReactionAddingFailedTitle => 'Adding reaction failed'; + + @override + String get errorReactionRemovingFailedTitle => 'Removing reaction failed'; + + @override + String get errorSharingTitle => 'Failed to share content'; + + @override + String get errorSharingAccountNotLoggedIn => + 'There is no account logged in. Please log in to an account and try again.'; + + @override + String get emojiReactionsMore => 'more'; + + @override + String get emojiPickerSearchEmoji => 'Search emoji'; + + @override + String get noEarlierMessages => 'No earlier messages'; + + @override + String get revealButtonLabel => 'Reveal message'; + + @override + String get mutedUser => 'Muted user'; + + @override + String get scrollToBottomTooltip => 'Scroll to bottom'; + + @override + String get appVersionUnknownPlaceholder => '(…)'; + + @override + String get zulipAppTitle => 'Zulip'; +} diff --git a/lib/generated/l10n/zulip_localizations_pl.dart b/lib/generated/l10n/zulip_localizations_pl.dart index 45e9fb2cac..e99ae0a4a0 100644 --- a/lib/generated/l10n/zulip_localizations_pl.dart +++ b/lib/generated/l10n/zulip_localizations_pl.dart @@ -1,1181 +1,1187 @@ -// ignore: unused_import -import 'package:intl/intl.dart' as intl; -import 'zulip_localizations.dart'; - -// ignore_for_file: type=lint - -/// The translations for Polish (`pl`). -class ZulipLocalizationsPl extends ZulipLocalizations { - ZulipLocalizationsPl([String locale = 'pl']) : super(locale); - - @override - String get aboutPageTitle => 'O Zulip'; - - @override - String get aboutPageAppVersion => 'Wydanie apki'; - - @override - String get aboutPageOpenSourceLicenses => 'Licencje otwartego źródła'; - - @override - String get aboutPageTapToView => 'Dotknij, aby pokazać'; - - @override - String get upgradeWelcomeDialogTitle => 'Witaj w nowej apce Zulip!'; - - @override - String get upgradeWelcomeDialogMessage => - 'Napotkasz na znane rozwiązania, które upakowaliśmy w szybszy i elegancki pakiet.'; - - @override - String get upgradeWelcomeDialogLinkText => - 'Sprawdź blog pod kątem obwieszczenia!'; - - @override - String get upgradeWelcomeDialogDismiss => 'Zaczynajmy'; - - @override - String get chooseAccountPageTitle => 'Wybierz konto'; - - @override - String get settingsPageTitle => 'Ustawienia'; - - @override - String get switchAccountButton => 'Przełącz konto'; - - @override - String tryAnotherAccountMessage(Object url) { - return 'Twoje konto na $url wymaga jeszcze chwili na załadowanie.'; - } - - @override - String get tryAnotherAccountButton => 'Użyj innego konta'; - - @override - String get chooseAccountPageLogOutButton => 'Wyloguj'; - - @override - String get logOutConfirmationDialogTitle => 'Wylogować?'; - - @override - String get logOutConfirmationDialogMessage => - 'Aby użyć tego konta należy wskazać URL organizacji oraz dane konta.'; - - @override - String get logOutConfirmationDialogConfirmButton => 'Wyloguj'; - - @override - String get chooseAccountButtonAddAnAccount => 'Dodaj konto'; - - @override - String get navButtonAllChannels => 'Wszystkie kanały'; - - @override - String get allChannelsPageTitle => 'Wszystkie kanały'; - - @override - String get allChannelsEmptyPlaceholder => - 'Brak kanałów, które możesz przeglądać w tej organizacji.'; - - @override - String get profileButtonSendDirectMessage => 'Wyślij wiadomość bezpośrednią'; - - @override - String get errorCouldNotShowUserProfile => - 'Nie udało się wyświetlić profilu.'; - - @override - String get permissionsNeededTitle => 'Wymagane uprawnienia'; - - @override - String get permissionsNeededOpenSettings => 'Otwórz ustawienia'; - - @override - String get permissionsDeniedCameraAccess => - 'Aby odebrać obraz Zulip musi uzyskać dodatkowe uprawnienia w Ustawieniach.'; - - @override - String get permissionsDeniedReadExternalStorage => - 'Aby odebrać pliki Zulip musi uzyskać dodatkowe uprawnienia w Ustawieniach.'; - - @override - String get actionSheetOptionSubscribe => 'Subskrybuj'; - - @override - String get subscribeFailedTitle => 'Subskrypcja bez powodzenia'; - - @override - String get actionSheetOptionMarkChannelAsRead => - 'Oznacz kanał jako przeczytany'; - - @override - String get actionSheetOptionCopyChannelLink => 'Skopiuj odnośnik do kanału'; - - @override - String get actionSheetOptionListOfTopics => 'Lista wątków'; - - @override - String get actionSheetOptionChannelFeed => 'Strumień kanału'; - - @override - String get actionSheetOptionUnsubscribe => 'Odsubskrybuj'; - - @override - String unsubscribeConfirmationDialogTitle(String channelName) { - return 'Odsubskrybować z $channelName?'; - } - - @override - String get unsubscribeConfirmationDialogMessageCannotResubscribe => - 'Once you leave this channel, you will not be able to rejoin.'; - - @override - String get unsubscribeConfirmationDialogConfirmButton => 'Odsubskrybuj'; - - @override - String get unsubscribeFailedTitle => 'Odsubskrybowanie bez powdzenia'; - - @override - String get actionSheetOptionMuteTopic => 'Wycisz wątek'; - - @override - String get actionSheetOptionUnmuteTopic => 'Wznów wątek'; - - @override - String get actionSheetOptionFollowTopic => 'Śledź wątek'; - - @override - String get actionSheetOptionUnfollowTopic => 'Nie śledź wątku'; - - @override - String get actionSheetOptionResolveTopic => 'Oznacz jako rozwiązany'; - - @override - String get actionSheetOptionUnresolveTopic => 'Oznacz brak rozwiązania'; - - @override - String get errorResolveTopicFailedTitle => - 'Nie udało się oznaczyć jako rozwiązany'; - - @override - String get errorUnresolveTopicFailedTitle => - 'Nie udało się oznaczyć brak rozwiązania'; - - @override - String get actionSheetOptionSeeWhoReacted => 'Pokaż kto zareagował'; - - @override - String get seeWhoReactedSheetNoReactions => 'Brak reakcji na tę wiadomość.'; - - @override - String seeWhoReactedSheetHeaderLabel(int num) { - return 'Reakcje emoji (łącznie $num)'; - } - - @override - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num głosów', - one: '1 głos', - ); - return '$emojiName: $_temp0'; - } - - @override - String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Głosów $emojiName ($num)'; - } - - @override - String get actionSheetOptionViewReadReceipts => - 'Zobacz potwierdzenia odczytu'; - - @override - String get actionSheetReadReceipts => 'Potwierdzenia odczytu'; - - @override - String actionSheetReadReceiptsReadCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: - 'Ta wiadomość została przeczytana przez $count osób:', - one: - 'Ta wiadomość została przeczytana przez $count osobę:', - ); - return '$_temp0'; - } - - @override - String get actionSheetReadReceiptsZeroReadCount => - 'Nikt jeszcze nie widział tej wiadomości.'; - - @override - String get actionSheetReadReceiptsErrorReadCount => - 'Ładowanie potwierdzeń odczytu bez powodzenia.'; - - @override - String get actionSheetOptionCopyMessageText => 'Skopiuj tekst wiadomości'; - - @override - String get actionSheetOptionCopyMessageLink => - 'Skopiuj odnośnik do wiadomości'; - - @override - String get actionSheetOptionMarkAsUnread => - 'Odtąd oznacz jako nieprzeczytane'; - - @override - String get actionSheetOptionHideMutedMessage => - 'Ukryj ponownie wyciszone wiadomości'; - - @override - String get actionSheetOptionShare => 'Udostępnij'; - - @override - String get actionSheetOptionQuoteMessage => 'Cytuj wiadomość'; - - @override - String get actionSheetOptionStarMessage => 'Oznacz gwiazdką'; - - @override - String get actionSheetOptionUnstarMessage => 'Odbierz gwiazdkę'; - - @override - String get actionSheetOptionEditMessage => 'Zmień wiadomość'; - - @override - String get actionSheetOptionDeleteMessage => 'Skasuj wiadomość'; - - @override - String get deleteMessageConfirmationDialogTitle => 'Skasować wiadomość?'; - - @override - String get deleteMessageConfirmationDialogMessage => - 'Kasowanie wiadomości na dobre usuwa ją dla wszystkich.'; - - @override - String get deleteMessageConfirmationDialogConfirmButton => 'Skasuj'; - - @override - String get errorDeleteMessageFailedTitle => - 'Kasowanie wiadomości bez powodzenia'; - - @override - String get actionSheetOptionMarkTopicAsRead => - 'Oznacz wątek jako przeczytany'; - - @override - String get actionSheetOptionCopyTopicLink => 'Skopiuj odnośnik do wątku'; - - @override - String get errorWebAuthOperationalErrorTitle => 'Coś poszło nie tak'; - - @override - String get errorWebAuthOperationalError => 'Wystąpił niespodziewany błąd.'; - - @override - String get errorAccountLoggedInTitle => 'Konto już wylogowane'; - - @override - String errorAccountLoggedIn(String email, String server) { - return 'Konto $email na $server znajduje się już na liście dodanych kont.'; - } - - @override - String get errorCouldNotFetchMessageSource => - 'Nie można uzyskać źródłowej wiadomości.'; - - @override - String get errorCopyingFailed => 'Nie udało się skopiować'; - - @override - String errorFailedToUploadFileTitle(String filename) { - return 'Nie udało się załadować pliku: $filename'; - } - - @override - String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size MiB'; - } - - @override - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num Pliki są', - one: 'Plik jest', - ); - return '$_temp0 ponad limit serwera $maxFileUploadSizeMib MiB i nie zostaną przyjęte:\n\n$listMessage'; - } - - @override - String errorFilesTooLargeTitle(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: 'Pliki', - one: 'Plik', - ); - return '$_temp0 ponad limit'; - } - - @override - String get errorLoginInvalidInputTitle => 'Błędny wsad'; - - @override - String get errorLoginFailedTitle => 'Logowanie bez powodzenia'; - - @override - String get errorMessageNotSent => 'Nie wysłano wiadomości'; - - @override - String get errorMessageEditNotSaved => 'Nie zapisano wiadomości'; - - @override - String errorLoginCouldNotConnect(String url) { - return 'Nie udało się połączyć z serwerem:\n$url'; - } - - @override - String get errorCouldNotConnectTitle => 'Brak połączenia'; - - @override - String get errorMessageDoesNotSeemToExist => - 'Taka wiadomość raczej nie istnieje.'; - - @override - String get errorQuotationFailed => 'Cytowanie bez powodzenia'; - - @override - String errorServerMessage(String message) { - return 'Odpowiedź serwera:\n\n$message'; - } - - @override - String get errorConnectingToServerShort => - 'Błąd połączenia z Zulip. Ponawiam…'; - - @override - String errorConnectingToServerDetails(String serverUrl, String error) { - return 'Błąd połączenia z Zulip $serverUrl. Spróbujmy ponownie:\n\n$error'; - } - - @override - String get errorHandlingEventTitle => - 'Błąd obsługi zdarzenia Zulip. Ponnawiam połączenie…'; - - @override - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ) { - return 'Błąd zdarzenia Zulip z $serverUrl; ponawiam.\n\nBłąd: $error\n\nZdarzenie: $event'; - } - - @override - String get errorCouldNotOpenLinkTitle => 'Nie udało się otworzyć odnośnika'; - - @override - String errorCouldNotOpenLink(String url) { - return 'Nie można otworzyć: $url'; - } - - @override - String get errorMuteTopicFailed => 'Wyciszenie bez powodzenia'; - - @override - String get errorUnmuteTopicFailed => 'Wznowienie bez powodzenia'; - - @override - String get errorFollowTopicFailed => 'Śledzenie bez powodzenia'; - - @override - String get errorUnfollowTopicFailed => 'Nie śledź bez powodzenia'; - - @override - String get errorSharingFailed => 'Udostępnianie bez powodzenia'; - - @override - String get errorStarMessageFailedTitle => 'Dodanie gwiazdki bez powodzenia'; - - @override - String get errorUnstarMessageFailedTitle => - 'Odebranie gwiazdki bez powodzenia'; - - @override - String get errorCouldNotEditMessageTitle => 'Nie można zmienić wiadomości'; - - @override - String get successLinkCopied => 'Skopiowano odnośnik'; - - @override - String get successMessageTextCopied => 'Skopiowano tekst wiadomości'; - - @override - String get successMessageLinkCopied => 'Skopiowano odnośnik wiadomości'; - - @override - String get successTopicLinkCopied => 'Skopiowano odnośnik do wątku'; - - @override - String get successChannelLinkCopied => 'Skopiowano odnośnik do kanału'; - - @override - String get errorBannerDeactivatedDmLabel => - 'Nie można wysyłać wiadomości do dezaktywowanych użytkowników.'; - - @override - String get errorBannerCannotPostInChannelLabel => - 'Nie masz uprawnień do dodawania wpisów w tym kanale.'; - - @override - String get composeBoxBannerLabelUnsubscribedWhenCannotSend => - 'New messages will not appear automatically.'; - - @override - String get composeBoxBannerButtonRefresh => 'Refresh'; - - @override - String get composeBoxBannerButtonSubscribe => 'Subscribe'; - - @override - String get composeBoxBannerLabelEditMessage => 'Zmień wiadomość'; - - @override - String get composeBoxBannerButtonCancel => 'Anuluj'; - - @override - String get composeBoxBannerButtonSave => 'Zapisz'; - - @override - String get editAlreadyInProgressTitle => 'Nie udało się zapisać zmiany'; - - @override - String get editAlreadyInProgressMessage => - 'Operacja zmiany w toku. Zaczekaj na jej zakończenie.'; - - @override - String get savingMessageEditLabel => 'ZAPIS ZMIANY…'; - - @override - String get savingMessageEditFailedLabel => 'NIE ZAPISANO ZMIANY'; - - @override - String get discardDraftConfirmationDialogTitle => - 'Czy chcesz przerwać szykowanie wpisu?'; - - @override - String get discardDraftForEditConfirmationDialogMessage => - 'Miej na uwadze, że przechodząc do zmiany wiadomości wyczyścisz okno nowej wiadomości.'; - - @override - String get discardDraftForOutboxConfirmationDialogMessage => - 'Przywracając wiadomość, która nie została wysłana, wyczyścisz zawartość kreatora nowej.'; - - @override - String get discardDraftConfirmationDialogConfirmButton => 'Odrzuć'; - - @override - String get composeBoxAttachFilesTooltip => 'Dołącz pliki'; - - @override - String get composeBoxAttachMediaTooltip => 'Dołącz obrazy lub wideo'; - - @override - String get composeBoxAttachFromCameraTooltip => 'Zrób zdjęcie'; - - @override - String get composeBoxGenericContentHint => 'Wpisz wiadomość'; - - @override - String get newDmSheetComposeButtonLabel => 'Utwórz'; - - @override - String get newDmSheetScreenTitle => 'Nowa DM'; - - @override - String get newDmFabButtonLabel => 'Nowa DM'; - - @override - String get newDmSheetSearchHintEmpty => - 'Dodaj jednego lub więcej użytkowników'; - - @override - String get newDmSheetSearchHintSomeSelected => 'Dodaj kolejnego użytkownika…'; - - @override - String get newDmSheetNoUsersFound => 'Nie odnaleziono użytkowników'; - - @override - String composeBoxDmContentHint(String user) { - return 'Napisz do @$user'; - } - - @override - String get composeBoxGroupDmContentHint => 'Napisz do grupy'; - - @override - String get composeBoxSelfDmContentHint => 'Zanotuj coś na przyszłość'; - - @override - String composeBoxChannelContentHint(String destination) { - return 'Wiadomość do $destination'; - } - - @override - String get preparingEditMessageContentInput => 'Przygotowywanie…'; - - @override - String get composeBoxSendTooltip => 'Wyślij'; - - @override - String get unknownChannelName => '(nieznany kanał)'; - - @override - String get composeBoxTopicHintText => 'Wątek'; - - @override - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { - return 'Wpisz tytuł wątku (pomiń aby uzyskać “$defaultTopicName”)'; - } - - @override - String composeBoxUploadingFilename(String filename) { - return 'Przekazywanie $filename…'; - } - - @override - String composeBoxLoadingMessage(int messageId) { - return '(ładowanie wiadomości $messageId)'; - } - - @override - String get unknownUserName => '(nieznany użytkownik)'; - - @override - String get dmsWithYourselfPageTitle => 'DM do siebie'; - - @override - String messageListGroupYouAndOthers(String others) { - return 'Ty i $others'; - } - - @override - String dmsWithOthersPageTitle(String others) { - return 'DM z $others'; - } - - @override - String get emptyMessageList => 'Póki co brak wiadomości.'; - - @override - String get emptyMessageListSearch => 'Brak wyników wyszukiwania.'; - - @override - String get messageListGroupYouWithYourself => 'Zapiski na własne konto'; - - @override - String get contentValidationErrorTooLong => - 'Wiadomość nie może być dłuższa niż 10000 znaków.'; - - @override - String get contentValidationErrorEmpty => 'Nie masz nic do wysłania!'; - - @override - String get contentValidationErrorQuoteAndReplyInProgress => - 'Zaczekaj na zakończenie pobierania cytatu.'; - - @override - String get contentValidationErrorUploadInProgress => - 'Zaczekaj na zakończenie przekazywania.'; - - @override - String get dialogCancel => 'Anuluj'; - - @override - String get dialogContinue => 'Kontynuuj'; - - @override - String get dialogClose => 'Zamknij'; - - @override - String get errorDialogLearnMore => 'Dowiedz się więcej'; - - @override - String get errorDialogContinue => 'OK'; - - @override - String get errorDialogTitle => 'Błąd'; - - @override - String get snackBarDetails => 'Szczegóły'; - - @override - String get lightboxCopyLinkTooltip => 'Skopiuj odnośnik'; - - @override - String get lightboxVideoCurrentPosition => 'Obecna pozycja'; - - @override - String get lightboxVideoDuration => 'Długość wideo'; - - @override - String get loginPageTitle => 'Zaloguj'; - - @override - String get loginFormSubmitLabel => 'Zaloguj'; - - @override - String get loginMethodDivider => 'LUB'; - - @override - String signInWithFoo(String method) { - return 'Logowanie z $method'; - } - - @override - String get loginAddAnAccountPageTitle => 'Dodaj konto'; - - @override - String get loginServerUrlLabel => 'URL serwera Zulip'; - - @override - String get loginHidePassword => 'Ukryj hasło'; - - @override - String get loginEmailLabel => 'Adres email'; - - @override - String get loginErrorMissingEmail => 'Proszę podaj swój email.'; - - @override - String get loginPasswordLabel => 'Hasło'; - - @override - String get loginErrorMissingPassword => 'Proszę wprowadź hasło.'; - - @override - String get loginUsernameLabel => 'Użytkownik'; - - @override - String get loginErrorMissingUsername => 'Proszę podaj nazwę użytkownika.'; - - @override - String get topicValidationErrorTooLong => - 'Tytuł nie może być dłuższy niż 60 znaków.'; - - @override - String get topicValidationErrorMandatoryButEmpty => - 'Wątki są wymagane przez tę organizację.'; - - @override - String get errorContentNotInsertedTitle => - 'Dodanie zawartości bez powodzenia'; - - @override - String get errorContentToInsertIsEmpty => - 'Plik do dodania jest pusty lub nie ma do niego dostępu.'; - - @override - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ) { - return '$url uruchamia Zulip Server $zulipVersion, który nie jest obsługiwany. Minimalna obsługiwana wersja to Zulip Server $minSupportedZulipVersion.'; - } - - @override - String errorInvalidApiKeyMessage(String url) { - return 'Konto w ramach $url nie zostało przyjęte. Spróbuj ponownie lub skorzystaj z innego konta.'; - } - - @override - String get errorInvalidResponse => 'Nieprawidłowa odpowiedź serwera.'; - - @override - String get errorNetworkRequestFailed => 'Dostęp do sieci bez powodzenia'; - - @override - String errorMalformedResponse(int httpStatus) { - return 'Zdeforomowana odpowiedź serwera; status HTTP $httpStatus'; - } - - @override - String errorMalformedResponseWithCause(int httpStatus, String details) { - return 'Zdeformowana odpowiedź serwera; status HTTP $httpStatus; $details'; - } - - @override - String errorRequestFailed(int httpStatus) { - return 'Błąd uzyskania sieci: status HTTP $httpStatus'; - } - - @override - String get errorVideoPlayerFailed => 'Nie da rady odtworzyć wideo.'; - - @override - String get serverUrlValidationErrorEmpty => 'Proszę podaj URL.'; - - @override - String get serverUrlValidationErrorInvalidUrl => 'Proszę podaj poprawny URL.'; - - @override - String get serverUrlValidationErrorNoUseEmail => - 'Proszę podaj adres URL serwera a nie swój email.'; - - @override - String get serverUrlValidationErrorUnsupportedScheme => - 'Adres URL serwera musi zaczynać się od http:// or https://.'; - - @override - String get spoilerDefaultHeaderText => 'Spoiler'; - - @override - String get markAllAsReadLabel => 'Oznacz wszystkie jako przeczytane'; - - @override - String markAsReadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num wiadomości', - one: '1 wiadomość', - ); - return 'Oznaczono $_temp0 jako przeczytane.'; - } - - @override - String get markAsReadInProgress => 'Oznaczanie wiadomości jako przeczytane…'; - - @override - String get errorMarkAsReadFailedTitle => - 'Oznaczanie jako przeczytane bez powodzenia'; - - @override - String markAsUnreadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num wiadomości', - one: '1 wiadomość', - ); - return 'Oznaczono $_temp0 jako nieprzeczytane.'; - } - - @override - String get markAsUnreadInProgress => 'Oznaczanie jako nieprzeczytane…'; - - @override - String get errorMarkAsUnreadFailedTitle => - 'Oznaczanie jako nieprzeczytane bez powodzenia'; - - @override - String get today => 'Dzisiaj'; - - @override - String get yesterday => 'Wczoraj'; - - @override - String get userActiveNow => 'Dostępny'; - - @override - String get userIdle => 'Bezczynny'; - - @override - String userActiveMinutesAgo(int minutes) { - String _temp0 = intl.Intl.pluralLogic( - minutes, - locale: localeName, - other: '$minutes minut', - one: '1 minutę', - ); - return 'Aktywny $_temp0 temu'; - } - - @override - String userActiveHoursAgo(int hours) { - String _temp0 = intl.Intl.pluralLogic( - hours, - locale: localeName, - other: '$hours godzin', - one: '1 godzinę', - ); - return 'Aktywny $_temp0 temu'; - } - - @override - String get userActiveYesterday => 'Aktywny wczoraj'; - - @override - String userActiveDaysAgo(int days) { - String _temp0 = intl.Intl.pluralLogic( - days, - locale: localeName, - other: '$days dni', - one: '1 dzień', - ); - return 'Aktywny $_temp0 temu'; - } - - @override - String userActiveDate(String date) { - return 'Aktywny $date'; - } - - @override - String get userNotActiveInYear => 'Brak aktywności za ostatni rok'; - - @override - String get invisibleMode => 'Tryb ukrycia'; - - @override - String get turnOnInvisibleModeErrorTitle => - 'Problem z włączeniem trybu ukrycia. Spróbuj ponownie.'; - - @override - String get turnOffInvisibleModeErrorTitle => - 'Problem z wyłączeniem trybu ukrycia. Spróbuj ponownie.'; - - @override - String get userRoleOwner => 'Właściciel'; - - @override - String get userRoleAdministrator => 'Administrator'; - - @override - String get userRoleModerator => 'Moderator'; - - @override - String get userRoleMember => 'Członek'; - - @override - String get userRoleGuest => 'Gość'; - - @override - String get userRoleUnknown => 'Nieznany'; - - @override - String get statusButtonLabelStatusSet => 'Stan'; - - @override - String get statusButtonLabelStatusUnset => 'Ustaw stan'; - - @override - String get noStatusText => 'Brak tekstu stanu'; - - @override - String get setStatusPageTitle => 'Ustaw stan'; - - @override - String get statusClearButtonLabel => 'Wyczyść'; - - @override - String get statusSaveButtonLabel => 'Zapisz'; - - @override - String get statusTextHint => 'Twój stan'; - - @override - String get userStatusBusy => 'Zajęty'; - - @override - String get userStatusInAMeeting => 'Na spotkaniu'; - - @override - String get userStatusCommuting => 'W drodze'; - - @override - String get userStatusOutSick => 'Chorobowe'; - - @override - String get userStatusVacationing => 'Na urlopie'; - - @override - String get userStatusWorkingRemotely => 'Praca zdalna'; - - @override - String get userStatusAtTheOffice => 'W biurze'; - - @override - String get updateStatusErrorTitle => - 'Błąd aktualizacji stanu. Spróbuj ponownie.'; - - @override - String get searchMessagesPageTitle => 'Szukaj'; - - @override - String get searchMessagesHintText => 'Szukaj'; - - @override - String get searchMessagesClearButtonTooltip => 'Wyczyść'; - - @override - String get inboxPageTitle => 'Odebrane'; - - @override - String get inboxEmptyPlaceholder => - 'Obecnie brak nowych wiadomości. Skorzystaj z przycisków u dołu ekranu aby przejść do widoku mieszanego lub listy kanałów.'; - - @override - String get recentDmConversationsPageTitle => 'Wiadomości bezpośrednie'; - - @override - String get recentDmConversationsSectionHeader => 'Wiadomości bezpośrednie'; - - @override - String get recentDmConversationsEmptyPlaceholder => - 'Brak wiadomości w archiwum! Może warto rozpocząć dyskusję?'; - - @override - String get combinedFeedPageTitle => 'Mieszany widok'; - - @override - String get mentionsPageTitle => 'Wzmianki'; - - @override - String get starredMessagesPageTitle => 'Wiadomości z gwiazdką'; - - @override - String get channelsPageTitle => 'Kanały'; - - @override - String get channelsEmptyPlaceholder => 'Nie śledzisz żadnego z kanałów.'; - - @override - String channelsEmptyPlaceholderWithAllChannelsLink( - String allChannelsPageTitle, - ) { - return 'Nie śledzisz żadnego z kanałów. Sprawdź dostępne $allChannelsPageTitle i dołącz do części z nich.'; - } - - @override - String get sharePageTitle => 'Udostępnij'; - - @override - String get mainMenuMyProfile => 'Mój profil'; - - @override - String get topicsButtonTooltip => 'Wątki'; - - @override - String get channelFeedButtonTooltip => 'Strumień kanału'; - - @override - String notifGroupDmConversationLabel(String senderFullName, int numOthers) { - String _temp0 = intl.Intl.pluralLogic( - numOthers, - locale: localeName, - other: '$numOthers innych', - one: '1 innego', - ); - return '$senderFullName do ciebie i $_temp0'; - } - - @override - String get pinnedSubscriptionsLabel => 'Przypięte'; - - @override - String get unpinnedSubscriptionsLabel => 'Odpięte'; - - @override - String get notifSelfUser => 'Ty'; - - @override - String get reactedEmojiSelfUser => 'Ty'; - - @override - String get reactionChipsLabel => 'Reakcje'; - - @override - String reactionChipLabel(String emojiName, String votes) { - return '$emojiName: $votes'; - } - - @override - String reactionChipVotesYouAndOthers(int otherUsersCount) { - String _temp0 = intl.Intl.pluralLogic( - otherUsersCount, - locale: localeName, - other: 'Ty i $otherUsersCount innych', - one: 'Ty i 1 inny', - ); - return '$_temp0'; - } - - @override - String onePersonTyping(String typist) { - return '$typist coś pisze…'; - } - - @override - String twoPeopleTyping(String typist, String otherTypist) { - return '$typist i $otherTypist coś piszą…'; - } - - @override - String get manyPeopleTyping => 'Wielu ludzi coś pisze…'; - - @override - String get wildcardMentionAll => 'wszyscy'; - - @override - String get wildcardMentionEveryone => 'każdy'; - - @override - String get wildcardMentionChannel => 'kanał'; - - @override - String get wildcardMentionStream => 'strumień'; - - @override - String get wildcardMentionTopic => 'wątek'; - - @override - String get wildcardMentionChannelDescription => 'Powiadom w kanale'; - - @override - String get wildcardMentionStreamDescription => 'Powiadom w strumieniu'; - - @override - String get wildcardMentionAllDmDescription => 'Powiadom zainteresowanych'; - - @override - String get wildcardMentionTopicDescription => 'Powiadom w wątku'; - - @override - String get messageIsEditedLabel => 'ZMIENIONO'; - - @override - String get messageIsMovedLabel => 'PRZENIESIONO'; - - @override - String get messageNotSentLabel => 'NIE WYSŁANO WIADOMOŚCI'; - - @override - String pollVoterNames(String voterNames) { - return '($voterNames)'; - } - - @override - String get themeSettingTitle => 'WYSTRÓJ'; - - @override - String get themeSettingDark => 'Ciemny'; - - @override - String get themeSettingLight => 'Jasny'; - - @override - String get themeSettingSystem => 'Systemowy'; - - @override - String get openLinksWithInAppBrowser => 'Otwieraj odnośniki w aplikacji'; - - @override - String get pollWidgetQuestionMissing => 'Brak pytania.'; - - @override - String get pollWidgetOptionsMissing => 'Ta sonda nie ma opcji do wyboru.'; - - @override - String get initialAnchorSettingTitle => 'Pokaż wiadomości w porządku'; - - @override - String get initialAnchorSettingDescription => - 'Możesz wybrać czy bardziej odpowiada Ci odczyt nieprzeczytanych lub najnowszych wiadomości.'; - - @override - String get initialAnchorSettingFirstUnreadAlways => - 'Pierwsza nieprzeczytana wiadomość'; - - @override - String get initialAnchorSettingFirstUnreadConversations => - 'Pierwsza nieprzeczytana wiadomość w widoku dyskusji, wszędzie indziej najnowsza wiadomość'; - - @override - String get initialAnchorSettingNewestAlways => 'Najnowsza wiadomość'; - - @override - String get markReadOnScrollSettingTitle => - 'Oznacz wiadomości jako przeczytane przy przwijaniu'; - - @override - String get markReadOnScrollSettingDescription => - 'Czy chcesz z automatu oznaczać wiadomości jako przeczytane przy przewijaniu?'; - - @override - String get markReadOnScrollSettingAlways => 'Zawsze'; - - @override - String get markReadOnScrollSettingNever => 'Nigdy'; - - @override - String get markReadOnScrollSettingConversations => 'Tylko w widoku dyskusji'; - - @override - String get markReadOnScrollSettingConversationsDescription => - 'Wiadomości zostaną z automatu oznaczone jako przeczytane tylko w pojedyczym wątku lub w wymianie wiadomości bezpośrednich.'; - - @override - String get experimentalFeatureSettingsPageTitle => 'Funkcje eksperymentalne'; - - @override - String get experimentalFeatureSettingsWarning => - 'W ten sposób aktywujesz funkcje, które są w fazie testów. Mogą one nie działać lub powodować problemy z tym co bez nich działa poprawnie.\n\nTo ustawienie przewidziane jest dla tych, którzy pracują nad ulepszeniem aplikacji Zulip.'; - - @override - String get errorNotificationOpenTitle => - 'Otwieranie powiadomienia bez powodzenia'; - - @override - String get errorNotificationOpenAccountNotFound => - 'Nie odnaleziono konta powiązanego z tym powiadomieniem.'; - - @override - String get errorReactionAddingFailedTitle => 'Dodanie reakcji bez powodzenia'; - - @override - String get errorReactionRemovingFailedTitle => - 'Usuwanie reakcji bez powodzenia'; - - @override - String get errorSharingTitle => 'Udostępnianie zawartości bez powodzenia'; - - @override - String get errorSharingAccountNotLoggedIn => - 'Brak zalogowanego użytkownika. Proszę zaloguj się i spróbuj ponownie.'; - - @override - String get emojiReactionsMore => 'więcej'; - - @override - String get emojiPickerSearchEmoji => 'Szukaj emoji'; - - @override - String get noEarlierMessages => 'Brak historii'; - - @override - String get revealButtonLabel => 'Odsłoń wiadomość'; - - @override - String get mutedUser => 'Wyciszony użytkownik'; - - @override - String get scrollToBottomTooltip => 'Przewiń do dołu'; - - @override - String get appVersionUnknownPlaceholder => '(…)'; - - @override - String get zulipAppTitle => 'Zulip'; -} +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'zulip_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for Polish (`pl`). +class ZulipLocalizationsPl extends ZulipLocalizations { + ZulipLocalizationsPl([String locale = 'pl']) : super(locale); + + @override + String get aboutPageTitle => 'O Zulip'; + + @override + String get aboutPageAppVersion => 'Wydanie apki'; + + @override + String get aboutPageOpenSourceLicenses => 'Licencje otwartego źródła'; + + @override + String get aboutPageTapToView => 'Dotknij, aby pokazać'; + + @override + String get upgradeWelcomeDialogTitle => 'Witaj w nowej apce Zulip!'; + + @override + String get upgradeWelcomeDialogMessage => + 'Napotkasz na znane rozwiązania, które upakowaliśmy w szybszy i elegancki pakiet.'; + + @override + String get upgradeWelcomeDialogLinkText => + 'Sprawdź blog pod kątem obwieszczenia!'; + + @override + String get upgradeWelcomeDialogDismiss => 'Zaczynajmy'; + + @override + String get chooseAccountPageTitle => 'Wybierz konto'; + + @override + String get settingsPageTitle => 'Ustawienia'; + + @override + String get switchAccountButton => 'Przełącz konto'; + + @override + String tryAnotherAccountMessage(Object url) { + return 'Twoje konto na $url wymaga jeszcze chwili na załadowanie.'; + } + + @override + String get tryAnotherAccountButton => 'Użyj innego konta'; + + @override + String get chooseAccountPageLogOutButton => 'Wyloguj'; + + @override + String get logOutConfirmationDialogTitle => 'Wylogować?'; + + @override + String get logOutConfirmationDialogMessage => + 'Aby użyć tego konta należy wskazać URL organizacji oraz dane konta.'; + + @override + String get logOutConfirmationDialogConfirmButton => 'Wyloguj'; + + @override + String get chooseAccountButtonAddAnAccount => 'Dodaj konto'; + + @override + String get navButtonAllChannels => 'Wszystkie kanały'; + + @override + String get allChannelsPageTitle => 'Wszystkie kanały'; + + @override + String get allChannelsEmptyPlaceholder => + 'Brak kanałów, które możesz przeglądać w tej organizacji.'; + + @override + String get profileButtonSendDirectMessage => 'Wyślij wiadomość bezpośrednią'; + + @override + String get errorCouldNotShowUserProfile => + 'Nie udało się wyświetlić profilu.'; + + @override + String get permissionsNeededTitle => 'Wymagane uprawnienia'; + + @override + String get permissionsNeededOpenSettings => 'Otwórz ustawienia'; + + @override + String get permissionsDeniedCameraAccess => + 'Aby odebrać obraz Zulip musi uzyskać dodatkowe uprawnienia w Ustawieniach.'; + + @override + String get permissionsDeniedReadExternalStorage => + 'Aby odebrać pliki Zulip musi uzyskać dodatkowe uprawnienia w Ustawieniach.'; + + @override + String get actionSheetOptionSubscribe => 'Subskrybuj'; + + @override + String get subscribeFailedTitle => 'Subskrypcja bez powodzenia'; + + @override + String get actionSheetOptionMarkChannelAsRead => + 'Oznacz kanał jako przeczytany'; + + @override + String get actionSheetOptionCopyChannelLink => 'Skopiuj odnośnik do kanału'; + + @override + String get actionSheetOptionListOfTopics => 'Lista wątków'; + + @override + String get actionSheetOptionChannelFeed => 'Strumień kanału'; + + @override + String get actionSheetOptionUnsubscribe => 'Odsubskrybuj'; + + @override + String unsubscribeConfirmationDialogTitle(String channelName) { + return 'Odsubskrybować z $channelName?'; + } + + @override + String get unsubscribeConfirmationDialogMessageCannotResubscribe => + 'Once you leave this channel, you will not be able to rejoin.'; + + @override + String get unsubscribeConfirmationDialogConfirmButton => 'Odsubskrybuj'; + + @override + String get unsubscribeFailedTitle => 'Odsubskrybowanie bez powdzenia'; + + @override + String get actionSheetOptionMuteTopic => 'Wycisz wątek'; + + @override + String get actionSheetOptionUnmuteTopic => 'Wznów wątek'; + + @override + String get actionSheetOptionFollowTopic => 'Śledź wątek'; + + @override + String get actionSheetOptionUnfollowTopic => 'Nie śledź wątku'; + + @override + String get actionSheetOptionResolveTopic => 'Oznacz jako rozwiązany'; + + @override + String get actionSheetOptionUnresolveTopic => 'Oznacz brak rozwiązania'; + + @override + String get errorResolveTopicFailedTitle => + 'Nie udało się oznaczyć jako rozwiązany'; + + @override + String get errorUnresolveTopicFailedTitle => + 'Nie udało się oznaczyć brak rozwiązania'; + + @override + String get actionSheetOptionSeeWhoReacted => 'Pokaż kto zareagował'; + + @override + String get seeWhoReactedSheetNoReactions => 'Brak reakcji na tę wiadomość.'; + + @override + String seeWhoReactedSheetHeaderLabel(int num) { + return 'Reakcje emoji (łącznie $num)'; + } + + @override + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num głosów', + one: '1 głos', + ); + return '$emojiName: $_temp0'; + } + + @override + String seeWhoReactedSheetUserListLabel(String emojiName, int num) { + return 'Głosów $emojiName ($num)'; + } + + @override + String get actionSheetOptionViewReadReceipts => + 'Zobacz potwierdzenia odczytu'; + + @override + String get actionSheetReadReceipts => 'Potwierdzenia odczytu'; + + @override + String actionSheetReadReceiptsReadCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: + 'Ta wiadomość została przeczytana przez $count osób:', + one: + 'Ta wiadomość została przeczytana przez $count osobę:', + ); + return '$_temp0'; + } + + @override + String get actionSheetReadReceiptsZeroReadCount => + 'Nikt jeszcze nie widział tej wiadomości.'; + + @override + String get actionSheetReadReceiptsErrorReadCount => + 'Ładowanie potwierdzeń odczytu bez powodzenia.'; + + @override + String get actionSheetOptionCopyMessageText => 'Skopiuj tekst wiadomości'; + + @override + String get actionSheetOptionCopyMessageLink => + 'Skopiuj odnośnik do wiadomości'; + + @override + String get actionSheetOptionMarkAsUnread => + 'Odtąd oznacz jako nieprzeczytane'; + + @override + String get actionSheetOptionHideMutedMessage => + 'Ukryj ponownie wyciszone wiadomości'; + + @override + String get actionSheetOptionShare => 'Udostępnij'; + + @override + String get actionSheetOptionQuoteMessage => 'Cytuj wiadomość'; + + @override + String get actionSheetOptionStarMessage => 'Oznacz gwiazdką'; + + @override + String get actionSheetOptionUnstarMessage => 'Odbierz gwiazdkę'; + + @override + String get actionSheetOptionEditMessage => 'Zmień wiadomość'; + + @override + String get actionSheetOptionDeleteMessage => 'Skasuj wiadomość'; + + @override + String get deleteMessageConfirmationDialogTitle => 'Skasować wiadomość?'; + + @override + String get deleteMessageConfirmationDialogMessage => + 'Kasowanie wiadomości na dobre usuwa ją dla wszystkich.'; + + @override + String get deleteMessageConfirmationDialogConfirmButton => 'Skasuj'; + + @override + String get errorDeleteMessageFailedTitle => + 'Kasowanie wiadomości bez powodzenia'; + + @override + String get actionSheetOptionMarkTopicAsRead => + 'Oznacz wątek jako przeczytany'; + + @override + String get actionSheetOptionCopyTopicLink => 'Skopiuj odnośnik do wątku'; + + @override + String get errorWebAuthOperationalErrorTitle => 'Coś poszło nie tak'; + + @override + String get errorWebAuthOperationalError => 'Wystąpił niespodziewany błąd.'; + + @override + String get errorAccountLoggedInTitle => 'Konto już wylogowane'; + + @override + String errorAccountLoggedIn(String email, String server) { + return 'Konto $email na $server znajduje się już na liście dodanych kont.'; + } + + @override + String get errorCouldNotFetchMessageSource => + 'Nie można uzyskać źródłowej wiadomości.'; + + @override + String get errorCopyingFailed => 'Nie udało się skopiować'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return 'Nie udało się załadować pliku: $filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename: $size MiB'; + } + + @override + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num Pliki są', + one: 'Plik jest', + ); + return '$_temp0 ponad limit serwera $maxFileUploadSizeMib MiB i nie zostaną przyjęte:\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: 'Pliki', + one: 'Plik', + ); + return '$_temp0 ponad limit'; + } + + @override + String get errorLoginInvalidInputTitle => 'Błędny wsad'; + + @override + String get errorLoginFailedTitle => 'Logowanie bez powodzenia'; + + @override + String get errorMessageNotSent => 'Nie wysłano wiadomości'; + + @override + String get errorMessageEditNotSaved => 'Nie zapisano wiadomości'; + + @override + String errorLoginCouldNotConnect(String url) { + return 'Nie udało się połączyć z serwerem:\n$url'; + } + + @override + String get errorCouldNotConnectTitle => 'Brak połączenia'; + + @override + String get errorMessageDoesNotSeemToExist => + 'Taka wiadomość raczej nie istnieje.'; + + @override + String get errorQuotationFailed => 'Cytowanie bez powodzenia'; + + @override + String errorServerMessage(String message) { + return 'Odpowiedź serwera:\n\n$message'; + } + + @override + String get errorConnectingToServerShort => + 'Błąd połączenia z Zulip. Ponawiam…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return 'Błąd połączenia z Zulip $serverUrl. Spróbujmy ponownie:\n\n$error'; + } + + @override + String get errorHandlingEventTitle => + 'Błąd obsługi zdarzenia Zulip. Ponnawiam połączenie…'; + + @override + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ) { + return 'Błąd zdarzenia Zulip z $serverUrl; ponawiam.\n\nBłąd: $error\n\nZdarzenie: $event'; + } + + @override + String get errorCouldNotOpenLinkTitle => 'Nie udało się otworzyć odnośnika'; + + @override + String errorCouldNotOpenLink(String url) { + return 'Nie można otworzyć: $url'; + } + + @override + String get errorMuteTopicFailed => 'Wyciszenie bez powodzenia'; + + @override + String get errorUnmuteTopicFailed => 'Wznowienie bez powodzenia'; + + @override + String get errorFollowTopicFailed => 'Śledzenie bez powodzenia'; + + @override + String get errorUnfollowTopicFailed => 'Nie śledź bez powodzenia'; + + @override + String get errorSharingFailed => 'Udostępnianie bez powodzenia'; + + @override + String get errorStarMessageFailedTitle => 'Dodanie gwiazdki bez powodzenia'; + + @override + String get errorUnstarMessageFailedTitle => + 'Odebranie gwiazdki bez powodzenia'; + + @override + String get errorCouldNotEditMessageTitle => 'Nie można zmienić wiadomości'; + + @override + String get successLinkCopied => 'Skopiowano odnośnik'; + + @override + String get successMessageTextCopied => 'Skopiowano tekst wiadomości'; + + @override + String get successMessageLinkCopied => 'Skopiowano odnośnik wiadomości'; + + @override + String get successTopicLinkCopied => 'Skopiowano odnośnik do wątku'; + + @override + String get successChannelLinkCopied => 'Skopiowano odnośnik do kanału'; + + @override + String get errorBannerDeactivatedDmLabel => + 'Nie można wysyłać wiadomości do dezaktywowanych użytkowników.'; + + @override + String get errorBannerCannotPostInChannelLabel => + 'Nie masz uprawnień do dodawania wpisów w tym kanale.'; + + @override + String get composeBoxBannerLabelUnsubscribedWhenCannotSend => + 'New messages will not appear automatically.'; + + @override + String get composeBoxBannerButtonRefresh => 'Refresh'; + + @override + String get composeBoxBannerButtonSubscribe => 'Subscribe'; + + @override + String get composeBoxBannerLabelEditMessage => 'Zmień wiadomość'; + + @override + String get composeBoxBannerButtonCancel => 'Anuluj'; + + @override + String get composeBoxBannerButtonSave => 'Zapisz'; + + @override + String get editAlreadyInProgressTitle => 'Nie udało się zapisać zmiany'; + + @override + String get editAlreadyInProgressMessage => + 'Operacja zmiany w toku. Zaczekaj na jej zakończenie.'; + + @override + String get savingMessageEditLabel => 'ZAPIS ZMIANY…'; + + @override + String get savingMessageEditFailedLabel => 'NIE ZAPISANO ZMIANY'; + + @override + String get discardDraftConfirmationDialogTitle => + 'Czy chcesz przerwać szykowanie wpisu?'; + + @override + String get discardDraftForEditConfirmationDialogMessage => + 'Miej na uwadze, że przechodząc do zmiany wiadomości wyczyścisz okno nowej wiadomości.'; + + @override + String get discardDraftForOutboxConfirmationDialogMessage => + 'Przywracając wiadomość, która nie została wysłana, wyczyścisz zawartość kreatora nowej.'; + + @override + String get discardDraftConfirmationDialogConfirmButton => 'Odrzuć'; + + @override + String get composeBoxAttachFilesTooltip => 'Dołącz pliki'; + + @override + String get composeBoxAttachMediaTooltip => 'Dołącz obrazy lub wideo'; + + @override + String get composeBoxAttachFromCameraTooltip => 'Zrób zdjęcie'; + + @override + String get composeBoxAttachFromVideoCallTooltip => 'Attach a video call'; + + @override + String get composeBoxGenericContentHint => 'Wpisz wiadomość'; + + @override + String get newDmSheetComposeButtonLabel => 'Utwórz'; + + @override + String get newDmSheetScreenTitle => 'Nowa DM'; + + @override + String get newDmFabButtonLabel => 'Nowa DM'; + + @override + String get newDmSheetSearchHintEmpty => + 'Dodaj jednego lub więcej użytkowników'; + + @override + String get newDmSheetSearchHintSomeSelected => 'Dodaj kolejnego użytkownika…'; + + @override + String get newDmSheetNoUsersFound => 'Nie odnaleziono użytkowników'; + + @override + String composeBoxDmContentHint(String user) { + return 'Napisz do @$user'; + } + + @override + String get composeBoxGroupDmContentHint => 'Napisz do grupy'; + + @override + String get composeBoxSelfDmContentHint => 'Zanotuj coś na przyszłość'; + + @override + String composeBoxChannelContentHint(String destination) { + return 'Wiadomość do $destination'; + } + + @override + String get preparingEditMessageContentInput => 'Przygotowywanie…'; + + @override + String get composeBoxSendTooltip => 'Wyślij'; + + @override + String get unknownChannelName => '(nieznany kanał)'; + + @override + String get composeBoxTopicHintText => 'Wątek'; + + @override + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { + return 'Wpisz tytuł wątku (pomiń aby uzyskać “$defaultTopicName”)'; + } + + @override + String composeBoxUploadingFilename(String filename) { + return 'Przekazywanie $filename…'; + } + + @override + String get composeBoxUploadedVideoCallUrl => 'Join video call.'; + + @override + String composeBoxLoadingMessage(int messageId) { + return '(ładowanie wiadomości $messageId)'; + } + + @override + String get unknownUserName => '(nieznany użytkownik)'; + + @override + String get dmsWithYourselfPageTitle => 'DM do siebie'; + + @override + String messageListGroupYouAndOthers(String others) { + return 'Ty i $others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return 'DM z $others'; + } + + @override + String get emptyMessageList => 'Póki co brak wiadomości.'; + + @override + String get emptyMessageListSearch => 'Brak wyników wyszukiwania.'; + + @override + String get messageListGroupYouWithYourself => 'Zapiski na własne konto'; + + @override + String get contentValidationErrorTooLong => + 'Wiadomość nie może być dłuższa niż 10000 znaków.'; + + @override + String get contentValidationErrorEmpty => 'Nie masz nic do wysłania!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => + 'Zaczekaj na zakończenie pobierania cytatu.'; + + @override + String get contentValidationErrorUploadInProgress => + 'Zaczekaj na zakończenie przekazywania.'; + + @override + String get dialogCancel => 'Anuluj'; + + @override + String get dialogContinue => 'Kontynuuj'; + + @override + String get dialogClose => 'Zamknij'; + + @override + String get errorDialogLearnMore => 'Dowiedz się więcej'; + + @override + String get errorDialogContinue => 'OK'; + + @override + String get errorDialogTitle => 'Błąd'; + + @override + String get snackBarDetails => 'Szczegóły'; + + @override + String get lightboxCopyLinkTooltip => 'Skopiuj odnośnik'; + + @override + String get lightboxVideoCurrentPosition => 'Obecna pozycja'; + + @override + String get lightboxVideoDuration => 'Długość wideo'; + + @override + String get loginPageTitle => 'Zaloguj'; + + @override + String get loginFormSubmitLabel => 'Zaloguj'; + + @override + String get loginMethodDivider => 'LUB'; + + @override + String signInWithFoo(String method) { + return 'Logowanie z $method'; + } + + @override + String get loginAddAnAccountPageTitle => 'Dodaj konto'; + + @override + String get loginServerUrlLabel => 'URL serwera Zulip'; + + @override + String get loginHidePassword => 'Ukryj hasło'; + + @override + String get loginEmailLabel => 'Adres email'; + + @override + String get loginErrorMissingEmail => 'Proszę podaj swój email.'; + + @override + String get loginPasswordLabel => 'Hasło'; + + @override + String get loginErrorMissingPassword => 'Proszę wprowadź hasło.'; + + @override + String get loginUsernameLabel => 'Użytkownik'; + + @override + String get loginErrorMissingUsername => 'Proszę podaj nazwę użytkownika.'; + + @override + String get topicValidationErrorTooLong => + 'Tytuł nie może być dłuższy niż 60 znaków.'; + + @override + String get topicValidationErrorMandatoryButEmpty => + 'Wątki są wymagane przez tę organizację.'; + + @override + String get errorContentNotInsertedTitle => + 'Dodanie zawartości bez powodzenia'; + + @override + String get errorContentToInsertIsEmpty => + 'Plik do dodania jest pusty lub nie ma do niego dostępu.'; + + @override + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ) { + return '$url uruchamia Zulip Server $zulipVersion, który nie jest obsługiwany. Minimalna obsługiwana wersja to Zulip Server $minSupportedZulipVersion.'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return 'Konto w ramach $url nie zostało przyjęte. Spróbuj ponownie lub skorzystaj z innego konta.'; + } + + @override + String get errorInvalidResponse => 'Nieprawidłowa odpowiedź serwera.'; + + @override + String get errorNetworkRequestFailed => 'Dostęp do sieci bez powodzenia'; + + @override + String errorMalformedResponse(int httpStatus) { + return 'Zdeforomowana odpowiedź serwera; status HTTP $httpStatus'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return 'Zdeformowana odpowiedź serwera; status HTTP $httpStatus; $details'; + } + + @override + String errorRequestFailed(int httpStatus) { + return 'Błąd uzyskania sieci: status HTTP $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => 'Nie da rady odtworzyć wideo.'; + + @override + String get serverUrlValidationErrorEmpty => 'Proszę podaj URL.'; + + @override + String get serverUrlValidationErrorInvalidUrl => 'Proszę podaj poprawny URL.'; + + @override + String get serverUrlValidationErrorNoUseEmail => + 'Proszę podaj adres URL serwera a nie swój email.'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => + 'Adres URL serwera musi zaczynać się od http:// or https://.'; + + @override + String get spoilerDefaultHeaderText => 'Spoiler'; + + @override + String get markAllAsReadLabel => 'Oznacz wszystkie jako przeczytane'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num wiadomości', + one: '1 wiadomość', + ); + return 'Oznaczono $_temp0 jako przeczytane.'; + } + + @override + String get markAsReadInProgress => 'Oznaczanie wiadomości jako przeczytane…'; + + @override + String get errorMarkAsReadFailedTitle => + 'Oznaczanie jako przeczytane bez powodzenia'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num wiadomości', + one: '1 wiadomość', + ); + return 'Oznaczono $_temp0 jako nieprzeczytane.'; + } + + @override + String get markAsUnreadInProgress => 'Oznaczanie jako nieprzeczytane…'; + + @override + String get errorMarkAsUnreadFailedTitle => + 'Oznaczanie jako nieprzeczytane bez powodzenia'; + + @override + String get today => 'Dzisiaj'; + + @override + String get yesterday => 'Wczoraj'; + + @override + String get userActiveNow => 'Dostępny'; + + @override + String get userIdle => 'Bezczynny'; + + @override + String userActiveMinutesAgo(int minutes) { + String _temp0 = intl.Intl.pluralLogic( + minutes, + locale: localeName, + other: '$minutes minut', + one: '1 minutę', + ); + return 'Aktywny $_temp0 temu'; + } + + @override + String userActiveHoursAgo(int hours) { + String _temp0 = intl.Intl.pluralLogic( + hours, + locale: localeName, + other: '$hours godzin', + one: '1 godzinę', + ); + return 'Aktywny $_temp0 temu'; + } + + @override + String get userActiveYesterday => 'Aktywny wczoraj'; + + @override + String userActiveDaysAgo(int days) { + String _temp0 = intl.Intl.pluralLogic( + days, + locale: localeName, + other: '$days dni', + one: '1 dzień', + ); + return 'Aktywny $_temp0 temu'; + } + + @override + String userActiveDate(String date) { + return 'Aktywny $date'; + } + + @override + String get userNotActiveInYear => 'Brak aktywności za ostatni rok'; + + @override + String get invisibleMode => 'Tryb ukrycia'; + + @override + String get turnOnInvisibleModeErrorTitle => + 'Problem z włączeniem trybu ukrycia. Spróbuj ponownie.'; + + @override + String get turnOffInvisibleModeErrorTitle => + 'Problem z wyłączeniem trybu ukrycia. Spróbuj ponownie.'; + + @override + String get userRoleOwner => 'Właściciel'; + + @override + String get userRoleAdministrator => 'Administrator'; + + @override + String get userRoleModerator => 'Moderator'; + + @override + String get userRoleMember => 'Członek'; + + @override + String get userRoleGuest => 'Gość'; + + @override + String get userRoleUnknown => 'Nieznany'; + + @override + String get statusButtonLabelStatusSet => 'Stan'; + + @override + String get statusButtonLabelStatusUnset => 'Ustaw stan'; + + @override + String get noStatusText => 'Brak tekstu stanu'; + + @override + String get setStatusPageTitle => 'Ustaw stan'; + + @override + String get statusClearButtonLabel => 'Wyczyść'; + + @override + String get statusSaveButtonLabel => 'Zapisz'; + + @override + String get statusTextHint => 'Twój stan'; + + @override + String get userStatusBusy => 'Zajęty'; + + @override + String get userStatusInAMeeting => 'Na spotkaniu'; + + @override + String get userStatusCommuting => 'W drodze'; + + @override + String get userStatusOutSick => 'Chorobowe'; + + @override + String get userStatusVacationing => 'Na urlopie'; + + @override + String get userStatusWorkingRemotely => 'Praca zdalna'; + + @override + String get userStatusAtTheOffice => 'W biurze'; + + @override + String get updateStatusErrorTitle => + 'Błąd aktualizacji stanu. Spróbuj ponownie.'; + + @override + String get searchMessagesPageTitle => 'Szukaj'; + + @override + String get searchMessagesHintText => 'Szukaj'; + + @override + String get searchMessagesClearButtonTooltip => 'Wyczyść'; + + @override + String get inboxPageTitle => 'Odebrane'; + + @override + String get inboxEmptyPlaceholder => + 'Obecnie brak nowych wiadomości. Skorzystaj z przycisków u dołu ekranu aby przejść do widoku mieszanego lub listy kanałów.'; + + @override + String get recentDmConversationsPageTitle => 'Wiadomości bezpośrednie'; + + @override + String get recentDmConversationsSectionHeader => 'Wiadomości bezpośrednie'; + + @override + String get recentDmConversationsEmptyPlaceholder => + 'Brak wiadomości w archiwum! Może warto rozpocząć dyskusję?'; + + @override + String get combinedFeedPageTitle => 'Mieszany widok'; + + @override + String get mentionsPageTitle => 'Wzmianki'; + + @override + String get starredMessagesPageTitle => 'Wiadomości z gwiazdką'; + + @override + String get channelsPageTitle => 'Kanały'; + + @override + String get channelsEmptyPlaceholder => 'Nie śledzisz żadnego z kanałów.'; + + @override + String channelsEmptyPlaceholderWithAllChannelsLink( + String allChannelsPageTitle, + ) { + return 'Nie śledzisz żadnego z kanałów. Sprawdź dostępne $allChannelsPageTitle i dołącz do części z nich.'; + } + + @override + String get sharePageTitle => 'Udostępnij'; + + @override + String get mainMenuMyProfile => 'Mój profil'; + + @override + String get topicsButtonTooltip => 'Wątki'; + + @override + String get channelFeedButtonTooltip => 'Strumień kanału'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: '$numOthers innych', + one: '1 innego', + ); + return '$senderFullName do ciebie i $_temp0'; + } + + @override + String get pinnedSubscriptionsLabel => 'Przypięte'; + + @override + String get unpinnedSubscriptionsLabel => 'Odpięte'; + + @override + String get notifSelfUser => 'Ty'; + + @override + String get reactedEmojiSelfUser => 'Ty'; + + @override + String get reactionChipsLabel => 'Reakcje'; + + @override + String reactionChipLabel(String emojiName, String votes) { + return '$emojiName: $votes'; + } + + @override + String reactionChipVotesYouAndOthers(int otherUsersCount) { + String _temp0 = intl.Intl.pluralLogic( + otherUsersCount, + locale: localeName, + other: 'Ty i $otherUsersCount innych', + one: 'Ty i 1 inny', + ); + return '$_temp0'; + } + + @override + String onePersonTyping(String typist) { + return '$typist coś pisze…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist i $otherTypist coś piszą…'; + } + + @override + String get manyPeopleTyping => 'Wielu ludzi coś pisze…'; + + @override + String get wildcardMentionAll => 'wszyscy'; + + @override + String get wildcardMentionEveryone => 'każdy'; + + @override + String get wildcardMentionChannel => 'kanał'; + + @override + String get wildcardMentionStream => 'strumień'; + + @override + String get wildcardMentionTopic => 'wątek'; + + @override + String get wildcardMentionChannelDescription => 'Powiadom w kanale'; + + @override + String get wildcardMentionStreamDescription => 'Powiadom w strumieniu'; + + @override + String get wildcardMentionAllDmDescription => 'Powiadom zainteresowanych'; + + @override + String get wildcardMentionTopicDescription => 'Powiadom w wątku'; + + @override + String get messageIsEditedLabel => 'ZMIENIONO'; + + @override + String get messageIsMovedLabel => 'PRZENIESIONO'; + + @override + String get messageNotSentLabel => 'NIE WYSŁANO WIADOMOŚCI'; + + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + + @override + String get themeSettingTitle => 'WYSTRÓJ'; + + @override + String get themeSettingDark => 'Ciemny'; + + @override + String get themeSettingLight => 'Jasny'; + + @override + String get themeSettingSystem => 'Systemowy'; + + @override + String get openLinksWithInAppBrowser => 'Otwieraj odnośniki w aplikacji'; + + @override + String get pollWidgetQuestionMissing => 'Brak pytania.'; + + @override + String get pollWidgetOptionsMissing => 'Ta sonda nie ma opcji do wyboru.'; + + @override + String get initialAnchorSettingTitle => 'Pokaż wiadomości w porządku'; + + @override + String get initialAnchorSettingDescription => + 'Możesz wybrać czy bardziej odpowiada Ci odczyt nieprzeczytanych lub najnowszych wiadomości.'; + + @override + String get initialAnchorSettingFirstUnreadAlways => + 'Pierwsza nieprzeczytana wiadomość'; + + @override + String get initialAnchorSettingFirstUnreadConversations => + 'Pierwsza nieprzeczytana wiadomość w widoku dyskusji, wszędzie indziej najnowsza wiadomość'; + + @override + String get initialAnchorSettingNewestAlways => 'Najnowsza wiadomość'; + + @override + String get markReadOnScrollSettingTitle => + 'Oznacz wiadomości jako przeczytane przy przwijaniu'; + + @override + String get markReadOnScrollSettingDescription => + 'Czy chcesz z automatu oznaczać wiadomości jako przeczytane przy przewijaniu?'; + + @override + String get markReadOnScrollSettingAlways => 'Zawsze'; + + @override + String get markReadOnScrollSettingNever => 'Nigdy'; + + @override + String get markReadOnScrollSettingConversations => 'Tylko w widoku dyskusji'; + + @override + String get markReadOnScrollSettingConversationsDescription => + 'Wiadomości zostaną z automatu oznaczone jako przeczytane tylko w pojedyczym wątku lub w wymianie wiadomości bezpośrednich.'; + + @override + String get experimentalFeatureSettingsPageTitle => 'Funkcje eksperymentalne'; + + @override + String get experimentalFeatureSettingsWarning => + 'W ten sposób aktywujesz funkcje, które są w fazie testów. Mogą one nie działać lub powodować problemy z tym co bez nich działa poprawnie.\n\nTo ustawienie przewidziane jest dla tych, którzy pracują nad ulepszeniem aplikacji Zulip.'; + + @override + String get errorNotificationOpenTitle => + 'Otwieranie powiadomienia bez powodzenia'; + + @override + String get errorNotificationOpenAccountNotFound => + 'Nie odnaleziono konta powiązanego z tym powiadomieniem.'; + + @override + String get errorReactionAddingFailedTitle => 'Dodanie reakcji bez powodzenia'; + + @override + String get errorReactionRemovingFailedTitle => + 'Usuwanie reakcji bez powodzenia'; + + @override + String get errorSharingTitle => 'Udostępnianie zawartości bez powodzenia'; + + @override + String get errorSharingAccountNotLoggedIn => + 'Brak zalogowanego użytkownika. Proszę zaloguj się i spróbuj ponownie.'; + + @override + String get emojiReactionsMore => 'więcej'; + + @override + String get emojiPickerSearchEmoji => 'Szukaj emoji'; + + @override + String get noEarlierMessages => 'Brak historii'; + + @override + String get revealButtonLabel => 'Odsłoń wiadomość'; + + @override + String get mutedUser => 'Wyciszony użytkownik'; + + @override + String get scrollToBottomTooltip => 'Przewiń do dołu'; + + @override + String get appVersionUnknownPlaceholder => '(…)'; + + @override + String get zulipAppTitle => 'Zulip'; +} diff --git a/lib/generated/l10n/zulip_localizations_ru.dart b/lib/generated/l10n/zulip_localizations_ru.dart index 817d6b03f8..eab3d432fe 100644 --- a/lib/generated/l10n/zulip_localizations_ru.dart +++ b/lib/generated/l10n/zulip_localizations_ru.dart @@ -1,1193 +1,1199 @@ -// ignore: unused_import -import 'package:intl/intl.dart' as intl; -import 'zulip_localizations.dart'; - -// ignore_for_file: type=lint - -/// The translations for Russian (`ru`). -class ZulipLocalizationsRu extends ZulipLocalizations { - ZulipLocalizationsRu([String locale = 'ru']) : super(locale); - - @override - String get aboutPageTitle => 'О Zulip'; - - @override - String get aboutPageAppVersion => 'Версия приложения'; - - @override - String get aboutPageOpenSourceLicenses => 'Лицензии открытого исходного кода'; - - @override - String get aboutPageTapToView => 'Нажмите для просмотра'; - - @override - String get upgradeWelcomeDialogTitle => - 'Добро пожаловать в новое приложение Zulip!'; - - @override - String get upgradeWelcomeDialogMessage => - 'Вы найдете привычные возможности в более быстром и легком приложении.'; - - @override - String get upgradeWelcomeDialogLinkText => 'Ознакомьтесь с анонсом в блоге!'; - - @override - String get upgradeWelcomeDialogDismiss => 'Приступим'; - - @override - String get chooseAccountPageTitle => 'Выберите учетную запись'; - - @override - String get settingsPageTitle => 'Настройки'; - - @override - String get switchAccountButton => 'Сменить учетную запись'; - - @override - String tryAnotherAccountMessage(Object url) { - return 'Ваша учетная запись на $url загружается медленно.'; - } - - @override - String get tryAnotherAccountButton => 'Попробовать другую учетную запись'; - - @override - String get chooseAccountPageLogOutButton => 'Выход из системы'; - - @override - String get logOutConfirmationDialogTitle => 'Выйти из системы?'; - - @override - String get logOutConfirmationDialogMessage => - 'Чтобы использовать эту учетную запись в будущем, вам придется заново ввести URL-адрес вашей организации и информацию о вашей учетной записи.'; - - @override - String get logOutConfirmationDialogConfirmButton => 'Выйти'; - - @override - String get chooseAccountButtonAddAnAccount => 'Добавить учетную запись'; - - @override - String get navButtonAllChannels => 'Все каналы'; - - @override - String get allChannelsPageTitle => 'Все каналы'; - - @override - String get allChannelsEmptyPlaceholder => - 'В этой организации нет доступных вам для просмотра каналов.'; - - @override - String get profileButtonSendDirectMessage => 'Отправить личное сообщение'; - - @override - String get errorCouldNotShowUserProfile => - 'Не удалось показать профиль пользователя.'; - - @override - String get permissionsNeededTitle => 'Требуются разрешения'; - - @override - String get permissionsNeededOpenSettings => 'Открыть настройки'; - - @override - String get permissionsDeniedCameraAccess => - 'Для загрузки изображения, пожалуйста, предоставьте Zulip дополнительные разрешения в настройках.'; - - @override - String get permissionsDeniedReadExternalStorage => - 'Для загрузки файлов, пожалуйста, предоставьте Zulip дополнительные разрешения в настройках.'; - - @override - String get actionSheetOptionSubscribe => 'Подписаться'; - - @override - String get subscribeFailedTitle => 'Подписаться не удалось'; - - @override - String get actionSheetOptionMarkChannelAsRead => - 'Отметить канал как прочитанный'; - - @override - String get actionSheetOptionCopyChannelLink => 'Скопировать ссылку на канал'; - - @override - String get actionSheetOptionListOfTopics => 'Список тем'; - - @override - String get actionSheetOptionChannelFeed => 'Лента канала'; - - @override - String get actionSheetOptionUnsubscribe => 'Отписаться'; - - @override - String unsubscribeConfirmationDialogTitle(String channelName) { - return 'Отменить подписку на $channelName?'; - } - - @override - String get unsubscribeConfirmationDialogMessageCannotResubscribe => - 'Once you leave this channel, you will not be able to rejoin.'; - - @override - String get unsubscribeConfirmationDialogConfirmButton => 'Отписаться'; - - @override - String get unsubscribeFailedTitle => 'Не удалось отписаться'; - - @override - String get actionSheetOptionMuteTopic => 'Заглушить тему'; - - @override - String get actionSheetOptionUnmuteTopic => 'Включить оповещения темы'; - - @override - String get actionSheetOptionFollowTopic => 'Отслеживать тему'; - - @override - String get actionSheetOptionUnfollowTopic => 'Не отслеживать тему'; - - @override - String get actionSheetOptionResolveTopic => 'Поставить отметку \"решено\"'; - - @override - String get actionSheetOptionUnresolveTopic => 'Снять отметку \"решено\"'; - - @override - String get errorResolveTopicFailedTitle => - 'Не удалось отметить тему как решенную'; - - @override - String get errorUnresolveTopicFailedTitle => - 'Не удалось отметить тему как нерешенную'; - - @override - String get actionSheetOptionSeeWhoReacted => 'Посмотреть отреагировавших'; - - @override - String get seeWhoReactedSheetNoReactions => 'На это сообщение нет реакций.'; - - @override - String seeWhoReactedSheetHeaderLabel(int num) { - return 'Эмодзи-реакции (всего: $num)'; - } - - @override - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num голосов', - many: '$num голосов', - few: '$num голоса', - one: '1 голос', - ); - return '$emojiName: $_temp0'; - } - - @override - String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Голоса за $emojiName ($num)'; - } - - @override - String get actionSheetOptionViewReadReceipts => - 'Посмотреть подтверждения прочтения'; - - @override - String get actionSheetReadReceipts => 'Подтверждения прочтения'; - - @override - String actionSheetReadReceiptsReadCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: - 'Это сообщение было прочитано $count пользователями:', - one: - 'Это сообщение было прочитано $count пользователем:', - ); - return '$_temp0'; - } - - @override - String get actionSheetReadReceiptsZeroReadCount => - 'Это сообщение еще никто не прочитал.'; - - @override - String get actionSheetReadReceiptsErrorReadCount => - 'Не удалось загрузить подтверждения прочтения.'; - - @override - String get actionSheetOptionCopyMessageText => 'Скопировать текст сообщения'; - - @override - String get actionSheetOptionCopyMessageLink => - 'Скопировать ссылку на сообщение'; - - @override - String get actionSheetOptionMarkAsUnread => - 'Отметить как непрочитанные начиная отсюда'; - - @override - String get actionSheetOptionHideMutedMessage => - 'Скрыть заглушенное сообщение'; - - @override - String get actionSheetOptionShare => 'Поделиться'; - - @override - String get actionSheetOptionQuoteMessage => 'Цитировать сообщение'; - - @override - String get actionSheetOptionStarMessage => 'Отметить сообщение'; - - @override - String get actionSheetOptionUnstarMessage => 'Снять отметку с сообщения'; - - @override - String get actionSheetOptionEditMessage => 'Редактировать сообщение'; - - @override - String get actionSheetOptionDeleteMessage => 'Удалить сообщение'; - - @override - String get deleteMessageConfirmationDialogTitle => 'Удалить сообщение?'; - - @override - String get deleteMessageConfirmationDialogMessage => - 'При удалении сообщения оно навсегда пропадет для всех.'; - - @override - String get deleteMessageConfirmationDialogConfirmButton => 'Удалить'; - - @override - String get errorDeleteMessageFailedTitle => 'Не удалось удалить сообщение'; - - @override - String get actionSheetOptionMarkTopicAsRead => - 'Отметить тему как прочитанную'; - - @override - String get actionSheetOptionCopyTopicLink => 'Скопировать ссылку на тему'; - - @override - String get errorWebAuthOperationalErrorTitle => 'Что-то пошло не так'; - - @override - String get errorWebAuthOperationalError => 'Произошла непредвиденная ошибка.'; - - @override - String get errorAccountLoggedInTitle => 'Вход в учетную запись уже выполнен'; - - @override - String errorAccountLoggedIn(String email, String server) { - return 'Учетная запись $email на $server уже присутствует.'; - } - - @override - String get errorCouldNotFetchMessageSource => - 'Не удалось извлечь источник сообщения.'; - - @override - String get errorCopyingFailed => 'Сбой копирования'; - - @override - String errorFailedToUploadFileTitle(String filename) { - return 'Не удалось загрузить файл: $filename'; - } - - @override - String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size МиБ'; - } - - @override - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num файлов', - one: 'файла', - ); - return 'Размер $_temp0 превышает предел для сервера $maxFileUploadSizeMib МиБ, загрузка невозможна:\n\n$listMessage'; - } - - @override - String errorFilesTooLargeTitle(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: 'файлов', - one: 'файла', - ); - return 'Слишком большой размер $_temp0'; - } - - @override - String get errorLoginInvalidInputTitle => 'Неверный ввод'; - - @override - String get errorLoginFailedTitle => 'Не удалось войти в систему'; - - @override - String get errorMessageNotSent => 'Сообщение не отправлено'; - - @override - String get errorMessageEditNotSaved => 'Сообщение не сохранено'; - - @override - String errorLoginCouldNotConnect(String url) { - return 'Не удалось подключиться к серверу:\n$url'; - } - - @override - String get errorCouldNotConnectTitle => 'Нет связи с сервером'; - - @override - String get errorMessageDoesNotSeemToExist => - 'Это сообщение, похоже, отсутствует.'; - - @override - String get errorQuotationFailed => 'Цитирование не удалось'; - - @override - String errorServerMessage(String message) { - return 'Ответ сервера:\n\n$message'; - } - - @override - String get errorConnectingToServerShort => - 'Ошибка подключения к Zulip. Повторяем попытку…'; - - @override - String errorConnectingToServerDetails(String serverUrl, String error) { - return 'Ошибка подключения к Zulip на $serverUrl. Повторим попытку:\n\n$error'; - } - - @override - String get errorHandlingEventTitle => - 'Ошибка обработки события Zulip. Повторная попытка соединения…'; - - @override - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ) { - return 'Ошибка обработки события Zulip от $serverUrl; повторим попытку.\n\nОшибка: $error\n\nСобытие: $event'; - } - - @override - String get errorCouldNotOpenLinkTitle => 'Не удалось открыть ссылку'; - - @override - String errorCouldNotOpenLink(String url) { - return 'Не удалось открыть ссылку: $url'; - } - - @override - String get errorMuteTopicFailed => 'Не удалось заглушить тему'; - - @override - String get errorUnmuteTopicFailed => 'Не удалось включить оповещения темы'; - - @override - String get errorFollowTopicFailed => 'Не удалось начать отслеживать тему'; - - @override - String get errorUnfollowTopicFailed => - 'Не удалось прекратить отслеживать тему'; - - @override - String get errorSharingFailed => 'Не удалось поделиться'; - - @override - String get errorStarMessageFailedTitle => 'Не удалось отметить сообщение'; - - @override - String get errorUnstarMessageFailedTitle => - 'Не удалось снять отметку с сообщения'; - - @override - String get errorCouldNotEditMessageTitle => 'Сбой редактирования'; - - @override - String get successLinkCopied => 'Ссылка скопирована'; - - @override - String get successMessageTextCopied => 'Текст сообщения скопирован'; - - @override - String get successMessageLinkCopied => 'Ссылка на сообщение скопирована'; - - @override - String get successTopicLinkCopied => 'Ссылка на тему скопирована'; - - @override - String get successChannelLinkCopied => 'Ссылка на канал скопирована'; - - @override - String get errorBannerDeactivatedDmLabel => - 'Нельзя отправить сообщение отключенным пользователям.'; - - @override - String get errorBannerCannotPostInChannelLabel => - 'У вас нет права писать в этом канале.'; - - @override - String get composeBoxBannerLabelUnsubscribedWhenCannotSend => - 'New messages will not appear automatically.'; - - @override - String get composeBoxBannerButtonRefresh => 'Refresh'; - - @override - String get composeBoxBannerButtonSubscribe => 'Subscribe'; - - @override - String get composeBoxBannerLabelEditMessage => 'Редактирование сообщения'; - - @override - String get composeBoxBannerButtonCancel => 'Отмена'; - - @override - String get composeBoxBannerButtonSave => 'Сохранить'; - - @override - String get editAlreadyInProgressTitle => 'Редактирование недоступно'; - - @override - String get editAlreadyInProgressMessage => - 'Редактирование уже выполняется. Дождитесь завершения.'; - - @override - String get savingMessageEditLabel => 'ЗАПИСЬ ПРАВОК…'; - - @override - String get savingMessageEditFailedLabel => 'ПРАВКИ НЕ СОХРАНЕНЫ'; - - @override - String get discardDraftConfirmationDialogTitle => - 'Отказаться от написанного сообщения?'; - - @override - String get discardDraftForEditConfirmationDialogMessage => - 'При изменении сообщения текст из поля для редактирования удаляется.'; - - @override - String get discardDraftForOutboxConfirmationDialogMessage => - 'При восстановлении неотправленного сообщения содержимое поля редактирования очищается.'; - - @override - String get discardDraftConfirmationDialogConfirmButton => 'Сбросить'; - - @override - String get composeBoxAttachFilesTooltip => 'Прикрепить файлы'; - - @override - String get composeBoxAttachMediaTooltip => 'Прикрепить изображения или видео'; - - @override - String get composeBoxAttachFromCameraTooltip => 'Сделать снимок'; - - @override - String get composeBoxGenericContentHint => 'Ввести сообщение'; - - @override - String get newDmSheetComposeButtonLabel => 'Написать'; - - @override - String get newDmSheetScreenTitle => 'Новое ЛС'; - - @override - String get newDmFabButtonLabel => 'Новое ЛС'; - - @override - String get newDmSheetSearchHintEmpty => 'Добавить пользователей'; - - @override - String get newDmSheetSearchHintSomeSelected => 'Добавить ещё…'; - - @override - String get newDmSheetNoUsersFound => 'Никто не найден'; - - @override - String composeBoxDmContentHint(String user) { - return 'Сообщение для @$user'; - } - - @override - String get composeBoxGroupDmContentHint => 'Сообщение для группы'; - - @override - String get composeBoxSelfDmContentHint => 'Сделать заметку'; - - @override - String composeBoxChannelContentHint(String destination) { - return 'Сообщение для $destination'; - } - - @override - String get preparingEditMessageContentInput => 'Подготовка…'; - - @override - String get composeBoxSendTooltip => 'Отправить'; - - @override - String get unknownChannelName => '(неизвестный канал)'; - - @override - String get composeBoxTopicHintText => 'Тема'; - - @override - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { - return 'Укажите тему (или оставьте “$defaultTopicName”)'; - } - - @override - String composeBoxUploadingFilename(String filename) { - return 'Загрузка $filename…'; - } - - @override - String composeBoxLoadingMessage(int messageId) { - return '(загрузка сообщения $messageId)'; - } - - @override - String get unknownUserName => '(неизвестный пользователь)'; - - @override - String get dmsWithYourselfPageTitle => 'ЛС с собой'; - - @override - String messageListGroupYouAndOthers(String others) { - return 'Вы и $others'; - } - - @override - String dmsWithOthersPageTitle(String others) { - return 'ЛС с $others'; - } - - @override - String get emptyMessageList => 'Здесь нет сообщений.'; - - @override - String get emptyMessageListSearch => 'Ничего не найдено.'; - - @override - String get messageListGroupYouWithYourself => 'Сообщения с собой'; - - @override - String get contentValidationErrorTooLong => - 'Длина сообщения не должна превышать 10000 символов.'; - - @override - String get contentValidationErrorEmpty => 'Нечего отправлять!'; - - @override - String get contentValidationErrorQuoteAndReplyInProgress => - 'Пожалуйста, дождитесь завершения цитирования.'; - - @override - String get contentValidationErrorUploadInProgress => - 'Пожалуйста, дождитесь завершения загрузки.'; - - @override - String get dialogCancel => 'Отмена'; - - @override - String get dialogContinue => 'Продолжить'; - - @override - String get dialogClose => 'Закрыть'; - - @override - String get errorDialogLearnMore => 'Узнать больше'; - - @override - String get errorDialogContinue => 'OK'; - - @override - String get errorDialogTitle => 'Ошибка'; - - @override - String get snackBarDetails => 'Подробности'; - - @override - String get lightboxCopyLinkTooltip => 'Скопировать ссылку'; - - @override - String get lightboxVideoCurrentPosition => 'Место воспроизведения'; - - @override - String get lightboxVideoDuration => 'Длительность видео'; - - @override - String get loginPageTitle => 'Вход в систему'; - - @override - String get loginFormSubmitLabel => 'Войти'; - - @override - String get loginMethodDivider => 'ИЛИ'; - - @override - String signInWithFoo(String method) { - return 'Войти с помощью $method'; - } - - @override - String get loginAddAnAccountPageTitle => 'Добавление учетной записи'; - - @override - String get loginServerUrlLabel => 'URL вашего сервера Zulip'; - - @override - String get loginHidePassword => 'Скрыть пароль'; - - @override - String get loginEmailLabel => 'Адрес почты'; - - @override - String get loginErrorMissingEmail => - 'Пожалуйста, введите ваш адрес электронной почты.'; - - @override - String get loginPasswordLabel => 'Пароль'; - - @override - String get loginErrorMissingPassword => 'Пожалуйста, введите пароль.'; - - @override - String get loginUsernameLabel => 'Имя пользователя'; - - @override - String get loginErrorMissingUsername => - 'Пожалуйста, введите ваше имя пользователя.'; - - @override - String get topicValidationErrorTooLong => - 'Длина темы не должна превышать 60 символов.'; - - @override - String get topicValidationErrorMandatoryButEmpty => - 'Темы обязательны в этой организации.'; - - @override - String get errorContentNotInsertedTitle => 'Содержимое не вставлено'; - - @override - String get errorContentToInsertIsEmpty => - 'Файл для вставки пустой, или к нему нет доступа.'; - - @override - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ) { - return '$url использует Zulip Server $zulipVersion, который не поддерживается. Минимальная поддерживаемая версия — Zulip Server $minSupportedZulipVersion.'; - } - - @override - String errorInvalidApiKeyMessage(String url) { - return 'Не удалось войти в вашу учётную запись $url. Попробуйте ещё раз или используйте другую учётную запись.'; - } - - @override - String get errorInvalidResponse => 'Сервер отправил недопустимый ответ.'; - - @override - String get errorNetworkRequestFailed => 'Сбой сетевого запроса'; - - @override - String errorMalformedResponse(int httpStatus) { - return 'Сервер вернул некорректный ответ; HTTP-статус $httpStatus'; - } - - @override - String errorMalformedResponseWithCause(int httpStatus, String details) { - return 'Сервер вернул некорректный ответ; HTTP-статус $httpStatus; $details'; - } - - @override - String errorRequestFailed(int httpStatus) { - return 'Сбой сетевого запроса: HTTP-статус $httpStatus'; - } - - @override - String get errorVideoPlayerFailed => 'Не удается воспроизвести видео.'; - - @override - String get serverUrlValidationErrorEmpty => 'Пожалуйста, введите URL-адрес.'; - - @override - String get serverUrlValidationErrorInvalidUrl => - 'Пожалуйста, введите корректный URL-адрес.'; - - @override - String get serverUrlValidationErrorNoUseEmail => - 'Пожалуйста, введите URL-адрес сервера, а не свой email.'; - - @override - String get serverUrlValidationErrorUnsupportedScheme => - 'URL-адрес сервера должен начинаться с http:// или https://.'; - - @override - String get spoilerDefaultHeaderText => 'Спойлер'; - - @override - String get markAllAsReadLabel => 'Отметить все сообщения как прочитанные'; - - @override - String markAsReadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num сообщений', - one: '$num сообщения', - ); - return 'Отметка прочтения установлена для $_temp0.'; - } - - @override - String get markAsReadInProgress => 'Помечаем сообщения как прочитанные…'; - - @override - String get errorMarkAsReadFailedTitle => - 'Не удалось установить отметку прочтения'; - - @override - String markAsUnreadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num сообщений', - one: '$num сообщения', - ); - return 'Отметка прочтения снята для $_temp0.'; - } - - @override - String get markAsUnreadInProgress => 'Помечаем сообщения как непрочитанные…'; - - @override - String get errorMarkAsUnreadFailedTitle => - 'Не удалось снять отметку прочтения'; - - @override - String get today => 'Сегодня'; - - @override - String get yesterday => 'Вчера'; - - @override - String get userActiveNow => 'На связи'; - - @override - String get userIdle => 'Бездействует'; - - @override - String userActiveMinutesAgo(int minutes) { - String _temp0 = intl.Intl.pluralLogic( - minutes, - locale: localeName, - other: '$minutes минут', - many: '$minutes минут', - few: '$minutes минуты', - one: '$minutes минуту', - ); - return 'Был/а на связи $_temp0 назад'; - } - - @override - String userActiveHoursAgo(int hours) { - String _temp0 = intl.Intl.pluralLogic( - hours, - locale: localeName, - other: '$hours часов', - many: '$hours часов', - few: '$hours часа', - one: '$hours час', - ); - return 'Был/а на связи $_temp0 назад'; - } - - @override - String get userActiveYesterday => 'Был/а на связи вчера'; - - @override - String userActiveDaysAgo(int days) { - String _temp0 = intl.Intl.pluralLogic( - days, - locale: localeName, - other: '$days дней', - many: '$days дней', - few: '$days дня', - one: '$days день', - ); - return 'Был/а на связи $_temp0 назад'; - } - - @override - String userActiveDate(String date) { - return 'Был/а на связи $date'; - } - - @override - String get userNotActiveInYear => 'Не выходил/а на связь за последний год'; - - @override - String get invisibleMode => 'Режим невидимости'; - - @override - String get turnOnInvisibleModeErrorTitle => - 'Не удалось включить режим невидимости. Повторите попытку позже.'; - - @override - String get turnOffInvisibleModeErrorTitle => - 'Не удалось отключить режим невидимости. Повторите попытку позже.'; - - @override - String get userRoleOwner => 'Владелец'; - - @override - String get userRoleAdministrator => 'Администратор'; - - @override - String get userRoleModerator => 'Модератор'; - - @override - String get userRoleMember => 'Участник'; - - @override - String get userRoleGuest => 'Гость'; - - @override - String get userRoleUnknown => 'Неизвестно'; - - @override - String get statusButtonLabelStatusSet => 'Статус'; - - @override - String get statusButtonLabelStatusUnset => 'Установить статус'; - - @override - String get noStatusText => 'Нет текста статуса'; - - @override - String get setStatusPageTitle => 'Установить статус'; - - @override - String get statusClearButtonLabel => 'Очистить'; - - @override - String get statusSaveButtonLabel => 'Сохранить'; - - @override - String get statusTextHint => 'Ваш статус'; - - @override - String get userStatusBusy => 'В делах'; - - @override - String get userStatusInAMeeting => 'На встрече'; - - @override - String get userStatusCommuting => 'В дороге'; - - @override - String get userStatusOutSick => 'Болею'; - - @override - String get userStatusVacationing => 'В отпуске'; - - @override - String get userStatusWorkingRemotely => 'Работаю дистанционно'; - - @override - String get userStatusAtTheOffice => 'В офисе'; - - @override - String get updateStatusErrorTitle => - 'Ошибка обновления статуса пользователя. Попробуйте ещё раз.'; - - @override - String get searchMessagesPageTitle => 'Поиск'; - - @override - String get searchMessagesHintText => 'Поиск'; - - @override - String get searchMessagesClearButtonTooltip => 'Очистить'; - - @override - String get inboxPageTitle => 'Входящие'; - - @override - String get inboxEmptyPlaceholder => - 'Нет непрочитанных входящих сообщений. Используйте кнопки ниже для просмотра объединенной ленты или списка каналов.'; - - @override - String get recentDmConversationsPageTitle => 'Личные сообщения'; - - @override - String get recentDmConversationsSectionHeader => 'Личные сообщения'; - - @override - String get recentDmConversationsEmptyPlaceholder => - 'У вас пока нет личных сообщений! Почему бы не начать беседу?'; - - @override - String get combinedFeedPageTitle => 'Объединенная лента'; - - @override - String get mentionsPageTitle => 'Упоминания'; - - @override - String get starredMessagesPageTitle => 'Отмеченные сообщения'; - - @override - String get channelsPageTitle => 'Каналы'; - - @override - String get channelsEmptyPlaceholder => - 'Вы ещё не подписаны ни на один канал.'; - - @override - String channelsEmptyPlaceholderWithAllChannelsLink( - String allChannelsPageTitle, - ) { - return 'Вы ещё не подписаны ни на один канал. Можете посмотреть $allChannelsPageTitle и подписаться на какие-то из них.'; - } - - @override - String get sharePageTitle => 'Поделиться'; - - @override - String get mainMenuMyProfile => 'Мой профиль'; - - @override - String get topicsButtonTooltip => 'Темы'; - - @override - String get channelFeedButtonTooltip => 'Лента канала'; - - @override - String notifGroupDmConversationLabel(String senderFullName, int numOthers) { - String _temp0 = intl.Intl.pluralLogic( - numOthers, - locale: localeName, - other: '$numOthers другим', - one: '$numOthers другому', - ); - return '$senderFullName вам и ещё $_temp0'; - } - - @override - String get pinnedSubscriptionsLabel => 'Закреплены'; - - @override - String get unpinnedSubscriptionsLabel => 'Откреплены'; - - @override - String get notifSelfUser => 'Вы'; - - @override - String get reactedEmojiSelfUser => 'Вы'; - - @override - String get reactionChipsLabel => 'Реакции'; - - @override - String reactionChipLabel(String emojiName, String votes) { - return '$emojiName: $votes'; - } - - @override - String reactionChipVotesYouAndOthers(int otherUsersCount) { - String _temp0 = intl.Intl.pluralLogic( - otherUsersCount, - locale: localeName, - other: 'Вы и еще $otherUsersCount человек', - many: 'Вы и еще $otherUsersCount человек', - few: 'Вы и еще $otherUsersCount человека', - one: 'Вы и еще $otherUsersCount человек', - ); - return '$_temp0'; - } - - @override - String onePersonTyping(String typist) { - return '$typist набирает сообщение…'; - } - - @override - String twoPeopleTyping(String typist, String otherTypist) { - return '$typist и $otherTypist набирают сообщения…'; - } - - @override - String get manyPeopleTyping => 'Несколько человек набирают сообщения…'; - - @override - String get wildcardMentionAll => 'все'; - - @override - String get wildcardMentionEveryone => 'каждый'; - - @override - String get wildcardMentionChannel => 'канал'; - - @override - String get wildcardMentionStream => 'канал'; - - @override - String get wildcardMentionTopic => 'тема'; - - @override - String get wildcardMentionChannelDescription => 'Оповестить канал'; - - @override - String get wildcardMentionStreamDescription => 'Оповестить канал'; - - @override - String get wildcardMentionAllDmDescription => 'Оповестить получателей'; - - @override - String get wildcardMentionTopicDescription => 'Оповестить тему'; - - @override - String get messageIsEditedLabel => 'ИЗМЕНЕНО'; - - @override - String get messageIsMovedLabel => 'ПЕРЕМЕЩЕНО'; - - @override - String get messageNotSentLabel => 'СООБЩЕНИЕ НЕ ОТПРАВЛЕНО'; - - @override - String pollVoterNames(String voterNames) { - return '($voterNames)'; - } - - @override - String get themeSettingTitle => 'РЕЖИМ'; - - @override - String get themeSettingDark => 'Темный'; - - @override - String get themeSettingLight => 'Светлый'; - - @override - String get themeSettingSystem => 'Системный'; - - @override - String get openLinksWithInAppBrowser => 'Открывать ссылки внутри приложения'; - - @override - String get pollWidgetQuestionMissing => 'Нет вопроса.'; - - @override - String get pollWidgetOptionsMissing => 'В опросе пока нет вариантов ответа.'; - - @override - String get initialAnchorSettingTitle => 'Где открывать ленту сообщений'; - - @override - String get initialAnchorSettingDescription => - 'Можно открывать ленту сообщений на первом непрочитанном сообщении или на самом новом.'; - - @override - String get initialAnchorSettingFirstUnreadAlways => - 'Первое непрочитанное сообщение'; - - @override - String get initialAnchorSettingFirstUnreadConversations => - 'Первое непрочитанное сообщение при просмотре бесед, самое новое в остальных местах'; - - @override - String get initialAnchorSettingNewestAlways => 'Самое новое сообщение'; - - @override - String get markReadOnScrollSettingTitle => - 'Отмечать сообщения как прочитанные при прокрутке'; - - @override - String get markReadOnScrollSettingDescription => - 'При прокрутке сообщений автоматически отмечать их как прочитанные?'; - - @override - String get markReadOnScrollSettingAlways => 'Всегда'; - - @override - String get markReadOnScrollSettingNever => 'Никогда'; - - @override - String get markReadOnScrollSettingConversations => - 'Только при просмотре бесед'; - - @override - String get markReadOnScrollSettingConversationsDescription => - 'Сообщения будут автоматически помечаться как прочитанные только при просмотре отдельной темы или личной беседы.'; - - @override - String get experimentalFeatureSettingsPageTitle => - 'Экспериментальные функции'; - - @override - String get experimentalFeatureSettingsWarning => - 'Эти параметры включают возможности, которые все ещё находятся в разработке и не готовы. Они могут не работать и вызывать проблемы в других местах приложения.\n\nЦель этих настроек — экспериментирование людьми, работающими над разработкой Zulip.'; - - @override - String get errorNotificationOpenTitle => 'Не удалось открыть оповещения'; - - @override - String get errorNotificationOpenAccountNotFound => - 'Учетная запись, связанная с этим уведомлением, не найдена.'; - - @override - String get errorReactionAddingFailedTitle => 'Не удалось добавить реакцию'; - - @override - String get errorReactionRemovingFailedTitle => 'Не удалось удалить реакцию'; - - @override - String get errorSharingTitle => 'Не удалось поделиться содержанием'; - - @override - String get errorSharingAccountNotLoggedIn => - 'Не выполнен вход с учетной записью. Пожалуйста, войдите в систему и повторите попытку.'; - - @override - String get emojiReactionsMore => 'ещё'; - - @override - String get emojiPickerSearchEmoji => 'Поиск эмодзи'; - - @override - String get noEarlierMessages => 'Предшествующих сообщений нет'; - - @override - String get revealButtonLabel => 'Показать сообщение'; - - @override - String get mutedUser => 'Заглушенный пользователь'; - - @override - String get scrollToBottomTooltip => 'Пролистать вниз'; - - @override - String get appVersionUnknownPlaceholder => '(…)'; - - @override - String get zulipAppTitle => 'Zulip'; -} +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'zulip_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for Russian (`ru`). +class ZulipLocalizationsRu extends ZulipLocalizations { + ZulipLocalizationsRu([String locale = 'ru']) : super(locale); + + @override + String get aboutPageTitle => 'О Zulip'; + + @override + String get aboutPageAppVersion => 'Версия приложения'; + + @override + String get aboutPageOpenSourceLicenses => 'Лицензии открытого исходного кода'; + + @override + String get aboutPageTapToView => 'Нажмите для просмотра'; + + @override + String get upgradeWelcomeDialogTitle => + 'Добро пожаловать в новое приложение Zulip!'; + + @override + String get upgradeWelcomeDialogMessage => + 'Вы найдете привычные возможности в более быстром и легком приложении.'; + + @override + String get upgradeWelcomeDialogLinkText => 'Ознакомьтесь с анонсом в блоге!'; + + @override + String get upgradeWelcomeDialogDismiss => 'Приступим'; + + @override + String get chooseAccountPageTitle => 'Выберите учетную запись'; + + @override + String get settingsPageTitle => 'Настройки'; + + @override + String get switchAccountButton => 'Сменить учетную запись'; + + @override + String tryAnotherAccountMessage(Object url) { + return 'Ваша учетная запись на $url загружается медленно.'; + } + + @override + String get tryAnotherAccountButton => 'Попробовать другую учетную запись'; + + @override + String get chooseAccountPageLogOutButton => 'Выход из системы'; + + @override + String get logOutConfirmationDialogTitle => 'Выйти из системы?'; + + @override + String get logOutConfirmationDialogMessage => + 'Чтобы использовать эту учетную запись в будущем, вам придется заново ввести URL-адрес вашей организации и информацию о вашей учетной записи.'; + + @override + String get logOutConfirmationDialogConfirmButton => 'Выйти'; + + @override + String get chooseAccountButtonAddAnAccount => 'Добавить учетную запись'; + + @override + String get navButtonAllChannels => 'Все каналы'; + + @override + String get allChannelsPageTitle => 'Все каналы'; + + @override + String get allChannelsEmptyPlaceholder => + 'В этой организации нет доступных вам для просмотра каналов.'; + + @override + String get profileButtonSendDirectMessage => 'Отправить личное сообщение'; + + @override + String get errorCouldNotShowUserProfile => + 'Не удалось показать профиль пользователя.'; + + @override + String get permissionsNeededTitle => 'Требуются разрешения'; + + @override + String get permissionsNeededOpenSettings => 'Открыть настройки'; + + @override + String get permissionsDeniedCameraAccess => + 'Для загрузки изображения, пожалуйста, предоставьте Zulip дополнительные разрешения в настройках.'; + + @override + String get permissionsDeniedReadExternalStorage => + 'Для загрузки файлов, пожалуйста, предоставьте Zulip дополнительные разрешения в настройках.'; + + @override + String get actionSheetOptionSubscribe => 'Подписаться'; + + @override + String get subscribeFailedTitle => 'Подписаться не удалось'; + + @override + String get actionSheetOptionMarkChannelAsRead => + 'Отметить канал как прочитанный'; + + @override + String get actionSheetOptionCopyChannelLink => 'Скопировать ссылку на канал'; + + @override + String get actionSheetOptionListOfTopics => 'Список тем'; + + @override + String get actionSheetOptionChannelFeed => 'Лента канала'; + + @override + String get actionSheetOptionUnsubscribe => 'Отписаться'; + + @override + String unsubscribeConfirmationDialogTitle(String channelName) { + return 'Отменить подписку на $channelName?'; + } + + @override + String get unsubscribeConfirmationDialogMessageCannotResubscribe => + 'Once you leave this channel, you will not be able to rejoin.'; + + @override + String get unsubscribeConfirmationDialogConfirmButton => 'Отписаться'; + + @override + String get unsubscribeFailedTitle => 'Не удалось отписаться'; + + @override + String get actionSheetOptionMuteTopic => 'Заглушить тему'; + + @override + String get actionSheetOptionUnmuteTopic => 'Включить оповещения темы'; + + @override + String get actionSheetOptionFollowTopic => 'Отслеживать тему'; + + @override + String get actionSheetOptionUnfollowTopic => 'Не отслеживать тему'; + + @override + String get actionSheetOptionResolveTopic => 'Поставить отметку \"решено\"'; + + @override + String get actionSheetOptionUnresolveTopic => 'Снять отметку \"решено\"'; + + @override + String get errorResolveTopicFailedTitle => + 'Не удалось отметить тему как решенную'; + + @override + String get errorUnresolveTopicFailedTitle => + 'Не удалось отметить тему как нерешенную'; + + @override + String get actionSheetOptionSeeWhoReacted => 'Посмотреть отреагировавших'; + + @override + String get seeWhoReactedSheetNoReactions => 'На это сообщение нет реакций.'; + + @override + String seeWhoReactedSheetHeaderLabel(int num) { + return 'Эмодзи-реакции (всего: $num)'; + } + + @override + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num голосов', + many: '$num голосов', + few: '$num голоса', + one: '1 голос', + ); + return '$emojiName: $_temp0'; + } + + @override + String seeWhoReactedSheetUserListLabel(String emojiName, int num) { + return 'Голоса за $emojiName ($num)'; + } + + @override + String get actionSheetOptionViewReadReceipts => + 'Посмотреть подтверждения прочтения'; + + @override + String get actionSheetReadReceipts => 'Подтверждения прочтения'; + + @override + String actionSheetReadReceiptsReadCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: + 'Это сообщение было прочитано $count пользователями:', + one: + 'Это сообщение было прочитано $count пользователем:', + ); + return '$_temp0'; + } + + @override + String get actionSheetReadReceiptsZeroReadCount => + 'Это сообщение еще никто не прочитал.'; + + @override + String get actionSheetReadReceiptsErrorReadCount => + 'Не удалось загрузить подтверждения прочтения.'; + + @override + String get actionSheetOptionCopyMessageText => 'Скопировать текст сообщения'; + + @override + String get actionSheetOptionCopyMessageLink => + 'Скопировать ссылку на сообщение'; + + @override + String get actionSheetOptionMarkAsUnread => + 'Отметить как непрочитанные начиная отсюда'; + + @override + String get actionSheetOptionHideMutedMessage => + 'Скрыть заглушенное сообщение'; + + @override + String get actionSheetOptionShare => 'Поделиться'; + + @override + String get actionSheetOptionQuoteMessage => 'Цитировать сообщение'; + + @override + String get actionSheetOptionStarMessage => 'Отметить сообщение'; + + @override + String get actionSheetOptionUnstarMessage => 'Снять отметку с сообщения'; + + @override + String get actionSheetOptionEditMessage => 'Редактировать сообщение'; + + @override + String get actionSheetOptionDeleteMessage => 'Удалить сообщение'; + + @override + String get deleteMessageConfirmationDialogTitle => 'Удалить сообщение?'; + + @override + String get deleteMessageConfirmationDialogMessage => + 'При удалении сообщения оно навсегда пропадет для всех.'; + + @override + String get deleteMessageConfirmationDialogConfirmButton => 'Удалить'; + + @override + String get errorDeleteMessageFailedTitle => 'Не удалось удалить сообщение'; + + @override + String get actionSheetOptionMarkTopicAsRead => + 'Отметить тему как прочитанную'; + + @override + String get actionSheetOptionCopyTopicLink => 'Скопировать ссылку на тему'; + + @override + String get errorWebAuthOperationalErrorTitle => 'Что-то пошло не так'; + + @override + String get errorWebAuthOperationalError => 'Произошла непредвиденная ошибка.'; + + @override + String get errorAccountLoggedInTitle => 'Вход в учетную запись уже выполнен'; + + @override + String errorAccountLoggedIn(String email, String server) { + return 'Учетная запись $email на $server уже присутствует.'; + } + + @override + String get errorCouldNotFetchMessageSource => + 'Не удалось извлечь источник сообщения.'; + + @override + String get errorCopyingFailed => 'Сбой копирования'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return 'Не удалось загрузить файл: $filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename: $size МиБ'; + } + + @override + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num файлов', + one: 'файла', + ); + return 'Размер $_temp0 превышает предел для сервера $maxFileUploadSizeMib МиБ, загрузка невозможна:\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: 'файлов', + one: 'файла', + ); + return 'Слишком большой размер $_temp0'; + } + + @override + String get errorLoginInvalidInputTitle => 'Неверный ввод'; + + @override + String get errorLoginFailedTitle => 'Не удалось войти в систему'; + + @override + String get errorMessageNotSent => 'Сообщение не отправлено'; + + @override + String get errorMessageEditNotSaved => 'Сообщение не сохранено'; + + @override + String errorLoginCouldNotConnect(String url) { + return 'Не удалось подключиться к серверу:\n$url'; + } + + @override + String get errorCouldNotConnectTitle => 'Нет связи с сервером'; + + @override + String get errorMessageDoesNotSeemToExist => + 'Это сообщение, похоже, отсутствует.'; + + @override + String get errorQuotationFailed => 'Цитирование не удалось'; + + @override + String errorServerMessage(String message) { + return 'Ответ сервера:\n\n$message'; + } + + @override + String get errorConnectingToServerShort => + 'Ошибка подключения к Zulip. Повторяем попытку…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return 'Ошибка подключения к Zulip на $serverUrl. Повторим попытку:\n\n$error'; + } + + @override + String get errorHandlingEventTitle => + 'Ошибка обработки события Zulip. Повторная попытка соединения…'; + + @override + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ) { + return 'Ошибка обработки события Zulip от $serverUrl; повторим попытку.\n\nОшибка: $error\n\nСобытие: $event'; + } + + @override + String get errorCouldNotOpenLinkTitle => 'Не удалось открыть ссылку'; + + @override + String errorCouldNotOpenLink(String url) { + return 'Не удалось открыть ссылку: $url'; + } + + @override + String get errorMuteTopicFailed => 'Не удалось заглушить тему'; + + @override + String get errorUnmuteTopicFailed => 'Не удалось включить оповещения темы'; + + @override + String get errorFollowTopicFailed => 'Не удалось начать отслеживать тему'; + + @override + String get errorUnfollowTopicFailed => + 'Не удалось прекратить отслеживать тему'; + + @override + String get errorSharingFailed => 'Не удалось поделиться'; + + @override + String get errorStarMessageFailedTitle => 'Не удалось отметить сообщение'; + + @override + String get errorUnstarMessageFailedTitle => + 'Не удалось снять отметку с сообщения'; + + @override + String get errorCouldNotEditMessageTitle => 'Сбой редактирования'; + + @override + String get successLinkCopied => 'Ссылка скопирована'; + + @override + String get successMessageTextCopied => 'Текст сообщения скопирован'; + + @override + String get successMessageLinkCopied => 'Ссылка на сообщение скопирована'; + + @override + String get successTopicLinkCopied => 'Ссылка на тему скопирована'; + + @override + String get successChannelLinkCopied => 'Ссылка на канал скопирована'; + + @override + String get errorBannerDeactivatedDmLabel => + 'Нельзя отправить сообщение отключенным пользователям.'; + + @override + String get errorBannerCannotPostInChannelLabel => + 'У вас нет права писать в этом канале.'; + + @override + String get composeBoxBannerLabelUnsubscribedWhenCannotSend => + 'New messages will not appear automatically.'; + + @override + String get composeBoxBannerButtonRefresh => 'Refresh'; + + @override + String get composeBoxBannerButtonSubscribe => 'Subscribe'; + + @override + String get composeBoxBannerLabelEditMessage => 'Редактирование сообщения'; + + @override + String get composeBoxBannerButtonCancel => 'Отмена'; + + @override + String get composeBoxBannerButtonSave => 'Сохранить'; + + @override + String get editAlreadyInProgressTitle => 'Редактирование недоступно'; + + @override + String get editAlreadyInProgressMessage => + 'Редактирование уже выполняется. Дождитесь завершения.'; + + @override + String get savingMessageEditLabel => 'ЗАПИСЬ ПРАВОК…'; + + @override + String get savingMessageEditFailedLabel => 'ПРАВКИ НЕ СОХРАНЕНЫ'; + + @override + String get discardDraftConfirmationDialogTitle => + 'Отказаться от написанного сообщения?'; + + @override + String get discardDraftForEditConfirmationDialogMessage => + 'При изменении сообщения текст из поля для редактирования удаляется.'; + + @override + String get discardDraftForOutboxConfirmationDialogMessage => + 'При восстановлении неотправленного сообщения содержимое поля редактирования очищается.'; + + @override + String get discardDraftConfirmationDialogConfirmButton => 'Сбросить'; + + @override + String get composeBoxAttachFilesTooltip => 'Прикрепить файлы'; + + @override + String get composeBoxAttachMediaTooltip => 'Прикрепить изображения или видео'; + + @override + String get composeBoxAttachFromCameraTooltip => 'Сделать снимок'; + + @override + String get composeBoxAttachFromVideoCallTooltip => 'Attach a video call'; + + @override + String get composeBoxGenericContentHint => 'Ввести сообщение'; + + @override + String get newDmSheetComposeButtonLabel => 'Написать'; + + @override + String get newDmSheetScreenTitle => 'Новое ЛС'; + + @override + String get newDmFabButtonLabel => 'Новое ЛС'; + + @override + String get newDmSheetSearchHintEmpty => 'Добавить пользователей'; + + @override + String get newDmSheetSearchHintSomeSelected => 'Добавить ещё…'; + + @override + String get newDmSheetNoUsersFound => 'Никто не найден'; + + @override + String composeBoxDmContentHint(String user) { + return 'Сообщение для @$user'; + } + + @override + String get composeBoxGroupDmContentHint => 'Сообщение для группы'; + + @override + String get composeBoxSelfDmContentHint => 'Сделать заметку'; + + @override + String composeBoxChannelContentHint(String destination) { + return 'Сообщение для $destination'; + } + + @override + String get preparingEditMessageContentInput => 'Подготовка…'; + + @override + String get composeBoxSendTooltip => 'Отправить'; + + @override + String get unknownChannelName => '(неизвестный канал)'; + + @override + String get composeBoxTopicHintText => 'Тема'; + + @override + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { + return 'Укажите тему (или оставьте “$defaultTopicName”)'; + } + + @override + String composeBoxUploadingFilename(String filename) { + return 'Загрузка $filename…'; + } + + @override + String get composeBoxUploadedVideoCallUrl => 'Join video call.'; + + @override + String composeBoxLoadingMessage(int messageId) { + return '(загрузка сообщения $messageId)'; + } + + @override + String get unknownUserName => '(неизвестный пользователь)'; + + @override + String get dmsWithYourselfPageTitle => 'ЛС с собой'; + + @override + String messageListGroupYouAndOthers(String others) { + return 'Вы и $others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return 'ЛС с $others'; + } + + @override + String get emptyMessageList => 'Здесь нет сообщений.'; + + @override + String get emptyMessageListSearch => 'Ничего не найдено.'; + + @override + String get messageListGroupYouWithYourself => 'Сообщения с собой'; + + @override + String get contentValidationErrorTooLong => + 'Длина сообщения не должна превышать 10000 символов.'; + + @override + String get contentValidationErrorEmpty => 'Нечего отправлять!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => + 'Пожалуйста, дождитесь завершения цитирования.'; + + @override + String get contentValidationErrorUploadInProgress => + 'Пожалуйста, дождитесь завершения загрузки.'; + + @override + String get dialogCancel => 'Отмена'; + + @override + String get dialogContinue => 'Продолжить'; + + @override + String get dialogClose => 'Закрыть'; + + @override + String get errorDialogLearnMore => 'Узнать больше'; + + @override + String get errorDialogContinue => 'OK'; + + @override + String get errorDialogTitle => 'Ошибка'; + + @override + String get snackBarDetails => 'Подробности'; + + @override + String get lightboxCopyLinkTooltip => 'Скопировать ссылку'; + + @override + String get lightboxVideoCurrentPosition => 'Место воспроизведения'; + + @override + String get lightboxVideoDuration => 'Длительность видео'; + + @override + String get loginPageTitle => 'Вход в систему'; + + @override + String get loginFormSubmitLabel => 'Войти'; + + @override + String get loginMethodDivider => 'ИЛИ'; + + @override + String signInWithFoo(String method) { + return 'Войти с помощью $method'; + } + + @override + String get loginAddAnAccountPageTitle => 'Добавление учетной записи'; + + @override + String get loginServerUrlLabel => 'URL вашего сервера Zulip'; + + @override + String get loginHidePassword => 'Скрыть пароль'; + + @override + String get loginEmailLabel => 'Адрес почты'; + + @override + String get loginErrorMissingEmail => + 'Пожалуйста, введите ваш адрес электронной почты.'; + + @override + String get loginPasswordLabel => 'Пароль'; + + @override + String get loginErrorMissingPassword => 'Пожалуйста, введите пароль.'; + + @override + String get loginUsernameLabel => 'Имя пользователя'; + + @override + String get loginErrorMissingUsername => + 'Пожалуйста, введите ваше имя пользователя.'; + + @override + String get topicValidationErrorTooLong => + 'Длина темы не должна превышать 60 символов.'; + + @override + String get topicValidationErrorMandatoryButEmpty => + 'Темы обязательны в этой организации.'; + + @override + String get errorContentNotInsertedTitle => 'Содержимое не вставлено'; + + @override + String get errorContentToInsertIsEmpty => + 'Файл для вставки пустой, или к нему нет доступа.'; + + @override + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ) { + return '$url использует Zulip Server $zulipVersion, который не поддерживается. Минимальная поддерживаемая версия — Zulip Server $minSupportedZulipVersion.'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return 'Не удалось войти в вашу учётную запись $url. Попробуйте ещё раз или используйте другую учётную запись.'; + } + + @override + String get errorInvalidResponse => 'Сервер отправил недопустимый ответ.'; + + @override + String get errorNetworkRequestFailed => 'Сбой сетевого запроса'; + + @override + String errorMalformedResponse(int httpStatus) { + return 'Сервер вернул некорректный ответ; HTTP-статус $httpStatus'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return 'Сервер вернул некорректный ответ; HTTP-статус $httpStatus; $details'; + } + + @override + String errorRequestFailed(int httpStatus) { + return 'Сбой сетевого запроса: HTTP-статус $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => 'Не удается воспроизвести видео.'; + + @override + String get serverUrlValidationErrorEmpty => 'Пожалуйста, введите URL-адрес.'; + + @override + String get serverUrlValidationErrorInvalidUrl => + 'Пожалуйста, введите корректный URL-адрес.'; + + @override + String get serverUrlValidationErrorNoUseEmail => + 'Пожалуйста, введите URL-адрес сервера, а не свой email.'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => + 'URL-адрес сервера должен начинаться с http:// или https://.'; + + @override + String get spoilerDefaultHeaderText => 'Спойлер'; + + @override + String get markAllAsReadLabel => 'Отметить все сообщения как прочитанные'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num сообщений', + one: '$num сообщения', + ); + return 'Отметка прочтения установлена для $_temp0.'; + } + + @override + String get markAsReadInProgress => 'Помечаем сообщения как прочитанные…'; + + @override + String get errorMarkAsReadFailedTitle => + 'Не удалось установить отметку прочтения'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num сообщений', + one: '$num сообщения', + ); + return 'Отметка прочтения снята для $_temp0.'; + } + + @override + String get markAsUnreadInProgress => 'Помечаем сообщения как непрочитанные…'; + + @override + String get errorMarkAsUnreadFailedTitle => + 'Не удалось снять отметку прочтения'; + + @override + String get today => 'Сегодня'; + + @override + String get yesterday => 'Вчера'; + + @override + String get userActiveNow => 'На связи'; + + @override + String get userIdle => 'Бездействует'; + + @override + String userActiveMinutesAgo(int minutes) { + String _temp0 = intl.Intl.pluralLogic( + minutes, + locale: localeName, + other: '$minutes минут', + many: '$minutes минут', + few: '$minutes минуты', + one: '$minutes минуту', + ); + return 'Был/а на связи $_temp0 назад'; + } + + @override + String userActiveHoursAgo(int hours) { + String _temp0 = intl.Intl.pluralLogic( + hours, + locale: localeName, + other: '$hours часов', + many: '$hours часов', + few: '$hours часа', + one: '$hours час', + ); + return 'Был/а на связи $_temp0 назад'; + } + + @override + String get userActiveYesterday => 'Был/а на связи вчера'; + + @override + String userActiveDaysAgo(int days) { + String _temp0 = intl.Intl.pluralLogic( + days, + locale: localeName, + other: '$days дней', + many: '$days дней', + few: '$days дня', + one: '$days день', + ); + return 'Был/а на связи $_temp0 назад'; + } + + @override + String userActiveDate(String date) { + return 'Был/а на связи $date'; + } + + @override + String get userNotActiveInYear => 'Не выходил/а на связь за последний год'; + + @override + String get invisibleMode => 'Режим невидимости'; + + @override + String get turnOnInvisibleModeErrorTitle => + 'Не удалось включить режим невидимости. Повторите попытку позже.'; + + @override + String get turnOffInvisibleModeErrorTitle => + 'Не удалось отключить режим невидимости. Повторите попытку позже.'; + + @override + String get userRoleOwner => 'Владелец'; + + @override + String get userRoleAdministrator => 'Администратор'; + + @override + String get userRoleModerator => 'Модератор'; + + @override + String get userRoleMember => 'Участник'; + + @override + String get userRoleGuest => 'Гость'; + + @override + String get userRoleUnknown => 'Неизвестно'; + + @override + String get statusButtonLabelStatusSet => 'Статус'; + + @override + String get statusButtonLabelStatusUnset => 'Установить статус'; + + @override + String get noStatusText => 'Нет текста статуса'; + + @override + String get setStatusPageTitle => 'Установить статус'; + + @override + String get statusClearButtonLabel => 'Очистить'; + + @override + String get statusSaveButtonLabel => 'Сохранить'; + + @override + String get statusTextHint => 'Ваш статус'; + + @override + String get userStatusBusy => 'В делах'; + + @override + String get userStatusInAMeeting => 'На встрече'; + + @override + String get userStatusCommuting => 'В дороге'; + + @override + String get userStatusOutSick => 'Болею'; + + @override + String get userStatusVacationing => 'В отпуске'; + + @override + String get userStatusWorkingRemotely => 'Работаю дистанционно'; + + @override + String get userStatusAtTheOffice => 'В офисе'; + + @override + String get updateStatusErrorTitle => + 'Ошибка обновления статуса пользователя. Попробуйте ещё раз.'; + + @override + String get searchMessagesPageTitle => 'Поиск'; + + @override + String get searchMessagesHintText => 'Поиск'; + + @override + String get searchMessagesClearButtonTooltip => 'Очистить'; + + @override + String get inboxPageTitle => 'Входящие'; + + @override + String get inboxEmptyPlaceholder => + 'Нет непрочитанных входящих сообщений. Используйте кнопки ниже для просмотра объединенной ленты или списка каналов.'; + + @override + String get recentDmConversationsPageTitle => 'Личные сообщения'; + + @override + String get recentDmConversationsSectionHeader => 'Личные сообщения'; + + @override + String get recentDmConversationsEmptyPlaceholder => + 'У вас пока нет личных сообщений! Почему бы не начать беседу?'; + + @override + String get combinedFeedPageTitle => 'Объединенная лента'; + + @override + String get mentionsPageTitle => 'Упоминания'; + + @override + String get starredMessagesPageTitle => 'Отмеченные сообщения'; + + @override + String get channelsPageTitle => 'Каналы'; + + @override + String get channelsEmptyPlaceholder => + 'Вы ещё не подписаны ни на один канал.'; + + @override + String channelsEmptyPlaceholderWithAllChannelsLink( + String allChannelsPageTitle, + ) { + return 'Вы ещё не подписаны ни на один канал. Можете посмотреть $allChannelsPageTitle и подписаться на какие-то из них.'; + } + + @override + String get sharePageTitle => 'Поделиться'; + + @override + String get mainMenuMyProfile => 'Мой профиль'; + + @override + String get topicsButtonTooltip => 'Темы'; + + @override + String get channelFeedButtonTooltip => 'Лента канала'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: '$numOthers другим', + one: '$numOthers другому', + ); + return '$senderFullName вам и ещё $_temp0'; + } + + @override + String get pinnedSubscriptionsLabel => 'Закреплены'; + + @override + String get unpinnedSubscriptionsLabel => 'Откреплены'; + + @override + String get notifSelfUser => 'Вы'; + + @override + String get reactedEmojiSelfUser => 'Вы'; + + @override + String get reactionChipsLabel => 'Реакции'; + + @override + String reactionChipLabel(String emojiName, String votes) { + return '$emojiName: $votes'; + } + + @override + String reactionChipVotesYouAndOthers(int otherUsersCount) { + String _temp0 = intl.Intl.pluralLogic( + otherUsersCount, + locale: localeName, + other: 'Вы и еще $otherUsersCount человек', + many: 'Вы и еще $otherUsersCount человек', + few: 'Вы и еще $otherUsersCount человека', + one: 'Вы и еще $otherUsersCount человек', + ); + return '$_temp0'; + } + + @override + String onePersonTyping(String typist) { + return '$typist набирает сообщение…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist и $otherTypist набирают сообщения…'; + } + + @override + String get manyPeopleTyping => 'Несколько человек набирают сообщения…'; + + @override + String get wildcardMentionAll => 'все'; + + @override + String get wildcardMentionEveryone => 'каждый'; + + @override + String get wildcardMentionChannel => 'канал'; + + @override + String get wildcardMentionStream => 'канал'; + + @override + String get wildcardMentionTopic => 'тема'; + + @override + String get wildcardMentionChannelDescription => 'Оповестить канал'; + + @override + String get wildcardMentionStreamDescription => 'Оповестить канал'; + + @override + String get wildcardMentionAllDmDescription => 'Оповестить получателей'; + + @override + String get wildcardMentionTopicDescription => 'Оповестить тему'; + + @override + String get messageIsEditedLabel => 'ИЗМЕНЕНО'; + + @override + String get messageIsMovedLabel => 'ПЕРЕМЕЩЕНО'; + + @override + String get messageNotSentLabel => 'СООБЩЕНИЕ НЕ ОТПРАВЛЕНО'; + + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + + @override + String get themeSettingTitle => 'РЕЖИМ'; + + @override + String get themeSettingDark => 'Темный'; + + @override + String get themeSettingLight => 'Светлый'; + + @override + String get themeSettingSystem => 'Системный'; + + @override + String get openLinksWithInAppBrowser => 'Открывать ссылки внутри приложения'; + + @override + String get pollWidgetQuestionMissing => 'Нет вопроса.'; + + @override + String get pollWidgetOptionsMissing => 'В опросе пока нет вариантов ответа.'; + + @override + String get initialAnchorSettingTitle => 'Где открывать ленту сообщений'; + + @override + String get initialAnchorSettingDescription => + 'Можно открывать ленту сообщений на первом непрочитанном сообщении или на самом новом.'; + + @override + String get initialAnchorSettingFirstUnreadAlways => + 'Первое непрочитанное сообщение'; + + @override + String get initialAnchorSettingFirstUnreadConversations => + 'Первое непрочитанное сообщение при просмотре бесед, самое новое в остальных местах'; + + @override + String get initialAnchorSettingNewestAlways => 'Самое новое сообщение'; + + @override + String get markReadOnScrollSettingTitle => + 'Отмечать сообщения как прочитанные при прокрутке'; + + @override + String get markReadOnScrollSettingDescription => + 'При прокрутке сообщений автоматически отмечать их как прочитанные?'; + + @override + String get markReadOnScrollSettingAlways => 'Всегда'; + + @override + String get markReadOnScrollSettingNever => 'Никогда'; + + @override + String get markReadOnScrollSettingConversations => + 'Только при просмотре бесед'; + + @override + String get markReadOnScrollSettingConversationsDescription => + 'Сообщения будут автоматически помечаться как прочитанные только при просмотре отдельной темы или личной беседы.'; + + @override + String get experimentalFeatureSettingsPageTitle => + 'Экспериментальные функции'; + + @override + String get experimentalFeatureSettingsWarning => + 'Эти параметры включают возможности, которые все ещё находятся в разработке и не готовы. Они могут не работать и вызывать проблемы в других местах приложения.\n\nЦель этих настроек — экспериментирование людьми, работающими над разработкой Zulip.'; + + @override + String get errorNotificationOpenTitle => 'Не удалось открыть оповещения'; + + @override + String get errorNotificationOpenAccountNotFound => + 'Учетная запись, связанная с этим уведомлением, не найдена.'; + + @override + String get errorReactionAddingFailedTitle => 'Не удалось добавить реакцию'; + + @override + String get errorReactionRemovingFailedTitle => 'Не удалось удалить реакцию'; + + @override + String get errorSharingTitle => 'Не удалось поделиться содержанием'; + + @override + String get errorSharingAccountNotLoggedIn => + 'Не выполнен вход с учетной записью. Пожалуйста, войдите в систему и повторите попытку.'; + + @override + String get emojiReactionsMore => 'ещё'; + + @override + String get emojiPickerSearchEmoji => 'Поиск эмодзи'; + + @override + String get noEarlierMessages => 'Предшествующих сообщений нет'; + + @override + String get revealButtonLabel => 'Показать сообщение'; + + @override + String get mutedUser => 'Заглушенный пользователь'; + + @override + String get scrollToBottomTooltip => 'Пролистать вниз'; + + @override + String get appVersionUnknownPlaceholder => '(…)'; + + @override + String get zulipAppTitle => 'Zulip'; +} diff --git a/lib/generated/l10n/zulip_localizations_sk.dart b/lib/generated/l10n/zulip_localizations_sk.dart index 2504894b25..bb4ce5c52b 100644 --- a/lib/generated/l10n/zulip_localizations_sk.dart +++ b/lib/generated/l10n/zulip_localizations_sk.dart @@ -1,1165 +1,1171 @@ -// ignore: unused_import -import 'package:intl/intl.dart' as intl; -import 'zulip_localizations.dart'; - -// ignore_for_file: type=lint - -/// The translations for Slovak (`sk`). -class ZulipLocalizationsSk extends ZulipLocalizations { - ZulipLocalizationsSk([String locale = 'sk']) : super(locale); - - @override - String get aboutPageTitle => 'O Zulipe'; - - @override - String get aboutPageAppVersion => 'Verzia apliḱácie'; - - @override - String get aboutPageOpenSourceLicenses => 'Licencia open-source'; - - @override - String get aboutPageTapToView => 'Klepnutím zobraziť'; - - @override - String get upgradeWelcomeDialogTitle => 'Welcome to the new Zulip app!'; - - @override - String get upgradeWelcomeDialogMessage => - 'You’ll find a familiar experience in a faster, sleeker package.'; - - @override - String get upgradeWelcomeDialogLinkText => - 'Check out the announcement blog post!'; - - @override - String get upgradeWelcomeDialogDismiss => 'Let\'s go'; - - @override - String get chooseAccountPageTitle => 'Zvoliť účet'; - - @override - String get settingsPageTitle => 'Settings'; - - @override - String get switchAccountButton => 'Zmeniť účet'; - - @override - String tryAnotherAccountMessage(Object url) { - return 'Načítavanie vášho konta na adrese $url chvílu trvá.'; - } - - @override - String get tryAnotherAccountButton => 'Skúsiť iný účet'; - - @override - String get chooseAccountPageLogOutButton => 'Odhásiť sa'; - - @override - String get logOutConfirmationDialogTitle => 'Chcete sa odhlásiť?'; - - @override - String get logOutConfirmationDialogMessage => - 'To use this account in the future, you will have to re-enter the URL for your organization and your account information.'; - - @override - String get logOutConfirmationDialogConfirmButton => 'Odhlásiť sa'; - - @override - String get chooseAccountButtonAddAnAccount => 'Pridať účet'; - - @override - String get navButtonAllChannels => 'All channels'; - - @override - String get allChannelsPageTitle => 'All channels'; - - @override - String get allChannelsEmptyPlaceholder => - 'There are no channels you can view in this organization.'; - - @override - String get profileButtonSendDirectMessage => 'Poslať priamu správu'; - - @override - String get errorCouldNotShowUserProfile => 'Could not show user profile.'; - - @override - String get permissionsNeededTitle => 'Permissions needed'; - - @override - String get permissionsNeededOpenSettings => 'Otvoriť nastavenia'; - - @override - String get permissionsDeniedCameraAccess => - 'To upload an image, please grant Zulip additional permissions in Settings.'; - - @override - String get permissionsDeniedReadExternalStorage => - 'To upload files, please grant Zulip additional permissions in Settings.'; - - @override - String get actionSheetOptionSubscribe => 'Subscribe'; - - @override - String get subscribeFailedTitle => 'Failed to subscribe'; - - @override - String get actionSheetOptionMarkChannelAsRead => 'Mark channel as read'; - - @override - String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; - - @override - String get actionSheetOptionListOfTopics => 'List of topics'; - - @override - String get actionSheetOptionChannelFeed => 'Channel feed'; - - @override - String get actionSheetOptionUnsubscribe => 'Unsubscribe'; - - @override - String unsubscribeConfirmationDialogTitle(String channelName) { - return 'Unsubscribe from $channelName?'; - } - - @override - String get unsubscribeConfirmationDialogMessageCannotResubscribe => - 'Once you leave this channel, you will not be able to rejoin.'; - - @override - String get unsubscribeConfirmationDialogConfirmButton => 'Unsubscribe'; - - @override - String get unsubscribeFailedTitle => 'Failed to unsubscribe'; - - @override - String get actionSheetOptionMuteTopic => 'Stlmiť tému'; - - @override - String get actionSheetOptionUnmuteTopic => 'Zrušiť ztlmenia témy'; - - @override - String get actionSheetOptionFollowTopic => 'Sledovať tému'; - - @override - String get actionSheetOptionUnfollowTopic => 'Prestať sledovať tému'; - - @override - String get actionSheetOptionResolveTopic => 'Mark as resolved'; - - @override - String get actionSheetOptionUnresolveTopic => 'Mark as unresolved'; - - @override - String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved'; - - @override - String get errorUnresolveTopicFailedTitle => - 'Failed to mark topic as unresolved'; - - @override - String get actionSheetOptionSeeWhoReacted => 'See who reacted'; - - @override - String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; - - @override - String seeWhoReactedSheetHeaderLabel(int num) { - return 'Emoji reactions ($num total)'; - } - - @override - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num votes', - one: '1 vote', - ); - return '$emojiName: $_temp0'; - } - - @override - String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Votes for $emojiName ($num)'; - } - - @override - String get actionSheetOptionViewReadReceipts => 'View read receipts'; - - @override - String get actionSheetReadReceipts => 'Read receipts'; - - @override - String actionSheetReadReceiptsReadCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: 'This message has been read by $count people:', - one: 'This message has been read by $count person:', - ); - return '$_temp0'; - } - - @override - String get actionSheetReadReceiptsZeroReadCount => - 'No one has read this message yet.'; - - @override - String get actionSheetReadReceiptsErrorReadCount => - 'Failed to load read receipts.'; - - @override - String get actionSheetOptionCopyMessageText => 'Skopírovať text správy'; - - @override - String get actionSheetOptionCopyMessageLink => 'Skopírovať odkaz do správy'; - - @override - String get actionSheetOptionMarkAsUnread => - 'Označiť ako neprečítané od tejto správy'; - - @override - String get actionSheetOptionHideMutedMessage => 'Hide muted message again'; - - @override - String get actionSheetOptionShare => 'Zdielať'; - - @override - String get actionSheetOptionQuoteMessage => 'Quote message'; - - @override - String get actionSheetOptionStarMessage => 'Ohviezdičkovať správu'; - - @override - String get actionSheetOptionUnstarMessage => 'Odhviezdičkovať správu'; - - @override - String get actionSheetOptionEditMessage => 'Edit message'; - - @override - String get actionSheetOptionDeleteMessage => 'Delete message'; - - @override - String get deleteMessageConfirmationDialogTitle => 'Delete message?'; - - @override - String get deleteMessageConfirmationDialogMessage => - 'Deleting a message permanently removes it for everyone.'; - - @override - String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; - - @override - String get errorDeleteMessageFailedTitle => 'Failed to delete message'; - - @override - String get actionSheetOptionMarkTopicAsRead => 'Mark topic as read'; - - @override - String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; - - @override - String get errorWebAuthOperationalErrorTitle => 'Niečo sa pokazilo'; - - @override - String get errorWebAuthOperationalError => 'Nastala neočakávaná chyba.'; - - @override - String get errorAccountLoggedInTitle => 'Účet je už prihlásený'; - - @override - String errorAccountLoggedIn(String email, String server) { - return 'The account $email at $server is already in your list of accounts.'; - } - - @override - String get errorCouldNotFetchMessageSource => - 'Nepodarilo sa nahrať zdroj správy'; - - @override - String get errorCopyingFailed => 'Kopírovanie zlyhalo'; - - @override - String errorFailedToUploadFileTitle(String filename) { - return 'Nepodarilo sa nahrať súbor: $filename'; - } - - @override - String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size MiB'; - } - - @override - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num files are', - one: 'File is', - ); - return '$_temp0 larger than the server\'s limit of $maxFileUploadSizeMib MiB and will not be uploaded:\n\n$listMessage'; - } - - @override - String errorFilesTooLargeTitle(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: 'Files', - one: 'File', - ); - return '$_temp0 príliš veľký'; - } - - @override - String get errorLoginInvalidInputTitle => 'Nesprávny vstup'; - - @override - String get errorLoginFailedTitle => 'Nepodarilo sa prihlásiť'; - - @override - String get errorMessageNotSent => 'Správa nebola odoslaná'; - - @override - String get errorMessageEditNotSaved => 'Message not saved'; - - @override - String errorLoginCouldNotConnect(String url) { - return 'Nepodarilo sa pripojiť na server:\n$url'; - } - - @override - String get errorCouldNotConnectTitle => 'Could not connect'; - - @override - String get errorMessageDoesNotSeemToExist => 'Správa zrejme neexistuje.'; - - @override - String get errorQuotationFailed => 'Nepodarila sa citácia'; - - @override - String errorServerMessage(String message) { - return 'Odozva od servera:\n\n$message'; - } - - @override - String get errorConnectingToServerShort => - 'Chyba pri pripájaní na Zulip. Skúšam znovu…'; - - @override - String errorConnectingToServerDetails(String serverUrl, String error) { - return 'Nepodarilo sa pripojiť na Zulip server $serverUrl. Skúsim znovu:\n\n$error'; - } - - @override - String get errorHandlingEventTitle => - 'Chyba pri obsluhe Zulip udalosti. Pokúšam sa znovu…'; - - @override - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ) { - return 'Chyba obsluhy Zulip udalosti na serveri $serverUrl; skúsim znovu.\n\nChyba: $error\n\nUdalosť: $event'; - } - - @override - String get errorCouldNotOpenLinkTitle => 'Unable to open link'; - - @override - String errorCouldNotOpenLink(String url) { - return 'Link could not be opened: $url'; - } - - @override - String get errorMuteTopicFailed => 'Nepodarilo sa ztíšiť tému'; - - @override - String get errorUnmuteTopicFailed => 'Nepodarilo sa odtíšiť tému'; - - @override - String get errorFollowTopicFailed => 'Failed to follow topic'; - - @override - String get errorUnfollowTopicFailed => 'Failed to unfollow topic'; - - @override - String get errorSharingFailed => 'Sharing failed'; - - @override - String get errorStarMessageFailedTitle => 'Failed to star message'; - - @override - String get errorUnstarMessageFailedTitle => 'Failed to unstar message'; - - @override - String get errorCouldNotEditMessageTitle => 'Could not edit message'; - - @override - String get successLinkCopied => 'Link copied'; - - @override - String get successMessageTextCopied => 'Message text copied'; - - @override - String get successMessageLinkCopied => 'Message link copied'; - - @override - String get successTopicLinkCopied => 'Topic link copied'; - - @override - String get successChannelLinkCopied => 'Channel link copied'; - - @override - String get errorBannerDeactivatedDmLabel => - 'You cannot send messages to deactivated users.'; - - @override - String get errorBannerCannotPostInChannelLabel => - 'You do not have permission to post in this channel.'; - - @override - String get composeBoxBannerLabelUnsubscribedWhenCannotSend => - 'New messages will not appear automatically.'; - - @override - String get composeBoxBannerButtonRefresh => 'Refresh'; - - @override - String get composeBoxBannerButtonSubscribe => 'Subscribe'; - - @override - String get composeBoxBannerLabelEditMessage => 'Edit message'; - - @override - String get composeBoxBannerButtonCancel => 'Cancel'; - - @override - String get composeBoxBannerButtonSave => 'Save'; - - @override - String get editAlreadyInProgressTitle => 'Cannot edit message'; - - @override - String get editAlreadyInProgressMessage => - 'An edit is already in progress. Please wait for it to complete.'; - - @override - String get savingMessageEditLabel => 'SAVING EDIT…'; - - @override - String get savingMessageEditFailedLabel => 'EDIT NOT SAVED'; - - @override - String get discardDraftConfirmationDialogTitle => - 'Discard the message you’re writing?'; - - @override - String get discardDraftForEditConfirmationDialogMessage => - 'When you edit a message, the content that was previously in the compose box is discarded.'; - - @override - String get discardDraftForOutboxConfirmationDialogMessage => - 'When you restore an unsent message, the content that was previously in the compose box is discarded.'; - - @override - String get discardDraftConfirmationDialogConfirmButton => 'Discard'; - - @override - String get composeBoxAttachFilesTooltip => 'Attach files'; - - @override - String get composeBoxAttachMediaTooltip => 'Attach images or videos'; - - @override - String get composeBoxAttachFromCameraTooltip => 'Take a photo'; - - @override - String get composeBoxGenericContentHint => 'Type a message'; - - @override - String get newDmSheetComposeButtonLabel => 'Compose'; - - @override - String get newDmSheetScreenTitle => 'New DM'; - - @override - String get newDmFabButtonLabel => 'New DM'; - - @override - String get newDmSheetSearchHintEmpty => 'Add one or more users'; - - @override - String get newDmSheetSearchHintSomeSelected => 'Add another user…'; - - @override - String get newDmSheetNoUsersFound => 'No users found'; - - @override - String composeBoxDmContentHint(String user) { - return 'Message @$user'; - } - - @override - String get composeBoxGroupDmContentHint => 'Message group'; - - @override - String get composeBoxSelfDmContentHint => 'Write yourself a note'; - - @override - String composeBoxChannelContentHint(String destination) { - return 'Message $destination'; - } - - @override - String get preparingEditMessageContentInput => 'Preparing…'; - - @override - String get composeBoxSendTooltip => 'Send'; - - @override - String get unknownChannelName => '(unknown channel)'; - - @override - String get composeBoxTopicHintText => 'Topic'; - - @override - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { - return 'Enter a topic (skip for “$defaultTopicName”)'; - } - - @override - String composeBoxUploadingFilename(String filename) { - return 'Uploading $filename…'; - } - - @override - String composeBoxLoadingMessage(int messageId) { - return '(loading message $messageId)'; - } - - @override - String get unknownUserName => '(unknown user)'; - - @override - String get dmsWithYourselfPageTitle => 'DMs with yourself'; - - @override - String messageListGroupYouAndOthers(String others) { - return 'You and $others'; - } - - @override - String dmsWithOthersPageTitle(String others) { - return 'DMs with $others'; - } - - @override - String get emptyMessageList => 'There are no messages here.'; - - @override - String get emptyMessageListSearch => 'No search results.'; - - @override - String get messageListGroupYouWithYourself => 'Messages with yourself'; - - @override - String get contentValidationErrorTooLong => - 'Message length shouldn\'t be greater than 10000 characters.'; - - @override - String get contentValidationErrorEmpty => 'You have nothing to send!'; - - @override - String get contentValidationErrorQuoteAndReplyInProgress => - 'Please wait for the quotation to complete.'; - - @override - String get contentValidationErrorUploadInProgress => - 'Please wait for the upload to complete.'; - - @override - String get dialogCancel => 'Cancel'; - - @override - String get dialogContinue => 'Pokračovať'; - - @override - String get dialogClose => 'Zavrieť'; - - @override - String get errorDialogLearnMore => 'Learn more'; - - @override - String get errorDialogContinue => 'OK'; - - @override - String get errorDialogTitle => 'Chyba'; - - @override - String get snackBarDetails => 'Detail'; - - @override - String get lightboxCopyLinkTooltip => 'Skopírovať odkaz'; - - @override - String get lightboxVideoCurrentPosition => 'Current position'; - - @override - String get lightboxVideoDuration => 'Video duration'; - - @override - String get loginPageTitle => 'Prihlásiť sa'; - - @override - String get loginFormSubmitLabel => 'Prihlásiť sa'; - - @override - String get loginMethodDivider => 'alebo'; - - @override - String signInWithFoo(String method) { - return 'Prihlásiť sa pomocou $method'; - } - - @override - String get loginAddAnAccountPageTitle => 'Pridať účet'; - - @override - String get loginServerUrlLabel => 'Adresa vášho Zulip servera'; - - @override - String get loginHidePassword => 'Skryť heslo'; - - @override - String get loginEmailLabel => 'Emailová adresa'; - - @override - String get loginErrorMissingEmail => 'Prosím, vložte váš email.'; - - @override - String get loginPasswordLabel => 'Heslo'; - - @override - String get loginErrorMissingPassword => 'Prosím zadaj heslo.'; - - @override - String get loginUsernameLabel => 'Prihlasovacie meno'; - - @override - String get loginErrorMissingUsername => 'Prosím zadajte prihlasovacie meno.'; - - @override - String get topicValidationErrorTooLong => - 'Topic length shouldn\'t be greater than 60 characters.'; - - @override - String get topicValidationErrorMandatoryButEmpty => - 'Topics are required in this organization.'; - - @override - String get errorContentNotInsertedTitle => 'Content not inserted'; - - @override - String get errorContentToInsertIsEmpty => - 'The file to be inserted is empty or cannot be accessed.'; - - @override - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ) { - return '$url is running Zulip Server $zulipVersion, which is unsupported. The minimum supported version is Zulip Server $minSupportedZulipVersion.'; - } - - @override - String errorInvalidApiKeyMessage(String url) { - return 'Your account at $url could not be authenticated. Please try logging in again or use another account.'; - } - - @override - String get errorInvalidResponse => 'Server poslal nesprávnu odpoveď'; - - @override - String get errorNetworkRequestFailed => 'Zlyhala sieťová požiadavka'; - - @override - String errorMalformedResponse(int httpStatus) { - return 'Server doručil zle naformátovanú odozvu; HTTP status $httpStatus'; - } - - @override - String errorMalformedResponseWithCause(int httpStatus, String details) { - return 'Server doručil zle naformátovanú odpoveď; HTTP status $httpStatus; $details'; - } - - @override - String errorRequestFailed(int httpStatus) { - return 'Zlyhala sieťová požiadavka: HTTP status $httpStatus'; - } - - @override - String get errorVideoPlayerFailed => 'Nepodarilo sa prehrať video'; - - @override - String get serverUrlValidationErrorEmpty => 'Vložte adresu.'; - - @override - String get serverUrlValidationErrorInvalidUrl => 'Vložte správnu adresu.'; - - @override - String get serverUrlValidationErrorNoUseEmail => - 'Vložte adresu servera, nie email.'; - - @override - String get serverUrlValidationErrorUnsupportedScheme => - 'Adresa servera musí začínať s http:// or https://.'; - - @override - String get spoilerDefaultHeaderText => 'Vyzradenie'; - - @override - String get markAllAsReadLabel => 'Označiť všetky správy ako prečítané'; - - @override - String markAsReadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num správy', - one: '1 správu', - ); - return 'Označiť $_temp0 ako prečítanú.'; - } - - @override - String get markAsReadInProgress => 'Označiť správy ako prečítané…'; - - @override - String get errorMarkAsReadFailedTitle => - 'Neodarilo sa označiť správy ako prečítané'; - - @override - String markAsUnreadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num správ', - one: '1 správy', - ); - return 'Označiť $_temp0 ako neprečítané.'; - } - - @override - String get markAsUnreadInProgress => 'Označiť správy ako neprečítané…'; - - @override - String get errorMarkAsUnreadFailedTitle => - 'Zlyhalo označenie správ za prečítané'; - - @override - String get today => 'Dnes'; - - @override - String get yesterday => 'Včera'; - - @override - String get userActiveNow => 'Active now'; - - @override - String get userIdle => 'Idle'; - - @override - String userActiveMinutesAgo(int minutes) { - String _temp0 = intl.Intl.pluralLogic( - minutes, - locale: localeName, - other: '$minutes minutes', - one: '1 minute', - ); - return 'Active $_temp0 ago'; - } - - @override - String userActiveHoursAgo(int hours) { - String _temp0 = intl.Intl.pluralLogic( - hours, - locale: localeName, - other: '$hours hours', - one: '1 hour', - ); - return 'Active $_temp0 ago'; - } - - @override - String get userActiveYesterday => 'Active yesterday'; - - @override - String userActiveDaysAgo(int days) { - String _temp0 = intl.Intl.pluralLogic( - days, - locale: localeName, - other: '$days days', - one: '1 day', - ); - return 'Active $_temp0 ago'; - } - - @override - String userActiveDate(String date) { - return 'Active $date'; - } - - @override - String get userNotActiveInYear => 'Not active in the last year'; - - @override - String get invisibleMode => 'Invisible mode'; - - @override - String get turnOnInvisibleModeErrorTitle => - 'Error turning on invisible mode. Please try again.'; - - @override - String get turnOffInvisibleModeErrorTitle => - 'Error turning off invisible mode. Please try again.'; - - @override - String get userRoleOwner => 'Majiteľ'; - - @override - String get userRoleAdministrator => 'Administrátor'; - - @override - String get userRoleModerator => 'Moderátor'; - - @override - String get userRoleMember => 'Člen'; - - @override - String get userRoleGuest => 'Hosť'; - - @override - String get userRoleUnknown => 'Neznáma'; - - @override - String get statusButtonLabelStatusSet => 'Status'; - - @override - String get statusButtonLabelStatusUnset => 'Set status'; - - @override - String get noStatusText => 'No status text'; - - @override - String get setStatusPageTitle => 'Set status'; - - @override - String get statusClearButtonLabel => 'Clear'; - - @override - String get statusSaveButtonLabel => 'Save'; - - @override - String get statusTextHint => 'Your status'; - - @override - String get userStatusBusy => 'Busy'; - - @override - String get userStatusInAMeeting => 'In a meeting'; - - @override - String get userStatusCommuting => 'Commuting'; - - @override - String get userStatusOutSick => 'Out sick'; - - @override - String get userStatusVacationing => 'Vacationing'; - - @override - String get userStatusWorkingRemotely => 'Working remotely'; - - @override - String get userStatusAtTheOffice => 'At the office'; - - @override - String get updateStatusErrorTitle => - 'Error updating user status. Please try again.'; - - @override - String get searchMessagesPageTitle => 'Search'; - - @override - String get searchMessagesHintText => 'Search'; - - @override - String get searchMessagesClearButtonTooltip => 'Clear'; - - @override - String get inboxPageTitle => 'Inbox'; - - @override - String get inboxEmptyPlaceholder => - 'There are no unread messages in your inbox. Use the buttons below to view the combined feed or list of channels.'; - - @override - String get recentDmConversationsPageTitle => 'Priama správa'; - - @override - String get recentDmConversationsSectionHeader => 'Direct messages'; - - @override - String get recentDmConversationsEmptyPlaceholder => - 'You have no direct messages yet! Why not start the conversation?'; - - @override - String get combinedFeedPageTitle => 'Zlúčený kanál'; - - @override - String get mentionsPageTitle => 'Spomenutia'; - - @override - String get starredMessagesPageTitle => 'Označené správy'; - - @override - String get channelsPageTitle => 'Kanály'; - - @override - String get channelsEmptyPlaceholder => - 'You’re not subscribed to any channels yet.'; - - @override - String channelsEmptyPlaceholderWithAllChannelsLink( - String allChannelsPageTitle, - ) { - return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; - } - - @override - String get sharePageTitle => 'Share'; - - @override - String get mainMenuMyProfile => 'Môj profil'; - - @override - String get topicsButtonTooltip => 'Topics'; - - @override - String get channelFeedButtonTooltip => 'Channel feed'; - - @override - String notifGroupDmConversationLabel(String senderFullName, int numOthers) { - String _temp0 = intl.Intl.pluralLogic( - numOthers, - locale: localeName, - other: '$numOthers others', - one: '1 other', - ); - return '$senderFullName to you and $_temp0'; - } - - @override - String get pinnedSubscriptionsLabel => 'Pinned'; - - @override - String get unpinnedSubscriptionsLabel => 'Unpinned'; - - @override - String get notifSelfUser => 'Ty'; - - @override - String get reactedEmojiSelfUser => 'You'; - - @override - String get reactionChipsLabel => 'Reactions'; - - @override - String reactionChipLabel(String emojiName, String votes) { - return '$emojiName: $votes'; - } - - @override - String reactionChipVotesYouAndOthers(int otherUsersCount) { - String _temp0 = intl.Intl.pluralLogic( - otherUsersCount, - locale: localeName, - other: 'You and $otherUsersCount others', - one: 'You and 1 other', - ); - return '$_temp0'; - } - - @override - String onePersonTyping(String typist) { - return '$typist píše…'; - } - - @override - String twoPeopleTyping(String typist, String otherTypist) { - return '$typist a $otherTypist píšu…'; - } - - @override - String get manyPeopleTyping => 'Niekoľko ludí píše…'; - - @override - String get wildcardMentionAll => 'all'; - - @override - String get wildcardMentionEveryone => 'everyone'; - - @override - String get wildcardMentionChannel => 'channel'; - - @override - String get wildcardMentionStream => 'stream'; - - @override - String get wildcardMentionTopic => 'topic'; - - @override - String get wildcardMentionChannelDescription => 'Notify channel'; - - @override - String get wildcardMentionStreamDescription => 'Notify stream'; - - @override - String get wildcardMentionAllDmDescription => 'Notify recipients'; - - @override - String get wildcardMentionTopicDescription => 'Notify topic'; - - @override - String get messageIsEditedLabel => 'UPRAVENÉ'; - - @override - String get messageIsMovedLabel => 'PRESUNUTÉ'; - - @override - String get messageNotSentLabel => 'MESSAGE NOT SENT'; - - @override - String pollVoterNames(String voterNames) { - return '($voterNames)'; - } - - @override - String get themeSettingTitle => 'THEME'; - - @override - String get themeSettingDark => 'Dark'; - - @override - String get themeSettingLight => 'Light'; - - @override - String get themeSettingSystem => 'System'; - - @override - String get openLinksWithInAppBrowser => 'Open links with in-app browser'; - - @override - String get pollWidgetQuestionMissing => 'Bez otázky.'; - - @override - String get pollWidgetOptionsMissing => 'This poll has no options yet.'; - - @override - String get initialAnchorSettingTitle => 'Open message feeds at'; - - @override - String get initialAnchorSettingDescription => - 'You can choose whether message feeds open at your first unread message or at the newest messages.'; - - @override - String get initialAnchorSettingFirstUnreadAlways => 'First unread message'; - - @override - String get initialAnchorSettingFirstUnreadConversations => - 'First unread message in conversation views, newest message elsewhere'; - - @override - String get initialAnchorSettingNewestAlways => 'Newest message'; - - @override - String get markReadOnScrollSettingTitle => 'Mark messages as read on scroll'; - - @override - String get markReadOnScrollSettingDescription => - 'When scrolling through messages, should they automatically be marked as read?'; - - @override - String get markReadOnScrollSettingAlways => 'Always'; - - @override - String get markReadOnScrollSettingNever => 'Never'; - - @override - String get markReadOnScrollSettingConversations => - 'Only in conversation views'; - - @override - String get markReadOnScrollSettingConversationsDescription => - 'Messages will be automatically marked as read only when viewing a single topic or direct message conversation.'; - - @override - String get experimentalFeatureSettingsPageTitle => 'Experimental features'; - - @override - String get experimentalFeatureSettingsWarning => - 'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'; - - @override - String get errorNotificationOpenTitle => 'Nepodarilo sa otvoriť oznámenie'; - - @override - String get errorNotificationOpenAccountNotFound => - 'The account associated with this notification could not be found.'; - - @override - String get errorReactionAddingFailedTitle => 'Nepodarilo sa pridať reakciu'; - - @override - String get errorReactionRemovingFailedTitle => 'Odobranie reakcie zlyhalo'; - - @override - String get errorSharingTitle => 'Failed to share content'; - - @override - String get errorSharingAccountNotLoggedIn => - 'There is no account logged in. Please log in to an account and try again.'; - - @override - String get emojiReactionsMore => 'viac'; - - @override - String get emojiPickerSearchEmoji => 'Hľadať emotikon'; - - @override - String get noEarlierMessages => 'No earlier messages'; - - @override - String get revealButtonLabel => 'Reveal message'; - - @override - String get mutedUser => 'Muted user'; - - @override - String get scrollToBottomTooltip => 'Scroll to bottom'; - - @override - String get appVersionUnknownPlaceholder => '(…)'; - - @override - String get zulipAppTitle => 'Zulip'; -} +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'zulip_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for Slovak (`sk`). +class ZulipLocalizationsSk extends ZulipLocalizations { + ZulipLocalizationsSk([String locale = 'sk']) : super(locale); + + @override + String get aboutPageTitle => 'O Zulipe'; + + @override + String get aboutPageAppVersion => 'Verzia apliḱácie'; + + @override + String get aboutPageOpenSourceLicenses => 'Licencia open-source'; + + @override + String get aboutPageTapToView => 'Klepnutím zobraziť'; + + @override + String get upgradeWelcomeDialogTitle => 'Welcome to the new Zulip app!'; + + @override + String get upgradeWelcomeDialogMessage => + 'You’ll find a familiar experience in a faster, sleeker package.'; + + @override + String get upgradeWelcomeDialogLinkText => + 'Check out the announcement blog post!'; + + @override + String get upgradeWelcomeDialogDismiss => 'Let\'s go'; + + @override + String get chooseAccountPageTitle => 'Zvoliť účet'; + + @override + String get settingsPageTitle => 'Settings'; + + @override + String get switchAccountButton => 'Zmeniť účet'; + + @override + String tryAnotherAccountMessage(Object url) { + return 'Načítavanie vášho konta na adrese $url chvílu trvá.'; + } + + @override + String get tryAnotherAccountButton => 'Skúsiť iný účet'; + + @override + String get chooseAccountPageLogOutButton => 'Odhásiť sa'; + + @override + String get logOutConfirmationDialogTitle => 'Chcete sa odhlásiť?'; + + @override + String get logOutConfirmationDialogMessage => + 'To use this account in the future, you will have to re-enter the URL for your organization and your account information.'; + + @override + String get logOutConfirmationDialogConfirmButton => 'Odhlásiť sa'; + + @override + String get chooseAccountButtonAddAnAccount => 'Pridať účet'; + + @override + String get navButtonAllChannels => 'All channels'; + + @override + String get allChannelsPageTitle => 'All channels'; + + @override + String get allChannelsEmptyPlaceholder => + 'There are no channels you can view in this organization.'; + + @override + String get profileButtonSendDirectMessage => 'Poslať priamu správu'; + + @override + String get errorCouldNotShowUserProfile => 'Could not show user profile.'; + + @override + String get permissionsNeededTitle => 'Permissions needed'; + + @override + String get permissionsNeededOpenSettings => 'Otvoriť nastavenia'; + + @override + String get permissionsDeniedCameraAccess => + 'To upload an image, please grant Zulip additional permissions in Settings.'; + + @override + String get permissionsDeniedReadExternalStorage => + 'To upload files, please grant Zulip additional permissions in Settings.'; + + @override + String get actionSheetOptionSubscribe => 'Subscribe'; + + @override + String get subscribeFailedTitle => 'Failed to subscribe'; + + @override + String get actionSheetOptionMarkChannelAsRead => 'Mark channel as read'; + + @override + String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; + + @override + String get actionSheetOptionListOfTopics => 'List of topics'; + + @override + String get actionSheetOptionChannelFeed => 'Channel feed'; + + @override + String get actionSheetOptionUnsubscribe => 'Unsubscribe'; + + @override + String unsubscribeConfirmationDialogTitle(String channelName) { + return 'Unsubscribe from $channelName?'; + } + + @override + String get unsubscribeConfirmationDialogMessageCannotResubscribe => + 'Once you leave this channel, you will not be able to rejoin.'; + + @override + String get unsubscribeConfirmationDialogConfirmButton => 'Unsubscribe'; + + @override + String get unsubscribeFailedTitle => 'Failed to unsubscribe'; + + @override + String get actionSheetOptionMuteTopic => 'Stlmiť tému'; + + @override + String get actionSheetOptionUnmuteTopic => 'Zrušiť ztlmenia témy'; + + @override + String get actionSheetOptionFollowTopic => 'Sledovať tému'; + + @override + String get actionSheetOptionUnfollowTopic => 'Prestať sledovať tému'; + + @override + String get actionSheetOptionResolveTopic => 'Mark as resolved'; + + @override + String get actionSheetOptionUnresolveTopic => 'Mark as unresolved'; + + @override + String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved'; + + @override + String get errorUnresolveTopicFailedTitle => + 'Failed to mark topic as unresolved'; + + @override + String get actionSheetOptionSeeWhoReacted => 'See who reacted'; + + @override + String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; + + @override + String seeWhoReactedSheetHeaderLabel(int num) { + return 'Emoji reactions ($num total)'; + } + + @override + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num votes', + one: '1 vote', + ); + return '$emojiName: $_temp0'; + } + + @override + String seeWhoReactedSheetUserListLabel(String emojiName, int num) { + return 'Votes for $emojiName ($num)'; + } + + @override + String get actionSheetOptionViewReadReceipts => 'View read receipts'; + + @override + String get actionSheetReadReceipts => 'Read receipts'; + + @override + String actionSheetReadReceiptsReadCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: 'This message has been read by $count people:', + one: 'This message has been read by $count person:', + ); + return '$_temp0'; + } + + @override + String get actionSheetReadReceiptsZeroReadCount => + 'No one has read this message yet.'; + + @override + String get actionSheetReadReceiptsErrorReadCount => + 'Failed to load read receipts.'; + + @override + String get actionSheetOptionCopyMessageText => 'Skopírovať text správy'; + + @override + String get actionSheetOptionCopyMessageLink => 'Skopírovať odkaz do správy'; + + @override + String get actionSheetOptionMarkAsUnread => + 'Označiť ako neprečítané od tejto správy'; + + @override + String get actionSheetOptionHideMutedMessage => 'Hide muted message again'; + + @override + String get actionSheetOptionShare => 'Zdielať'; + + @override + String get actionSheetOptionQuoteMessage => 'Quote message'; + + @override + String get actionSheetOptionStarMessage => 'Ohviezdičkovať správu'; + + @override + String get actionSheetOptionUnstarMessage => 'Odhviezdičkovať správu'; + + @override + String get actionSheetOptionEditMessage => 'Edit message'; + + @override + String get actionSheetOptionDeleteMessage => 'Delete message'; + + @override + String get deleteMessageConfirmationDialogTitle => 'Delete message?'; + + @override + String get deleteMessageConfirmationDialogMessage => + 'Deleting a message permanently removes it for everyone.'; + + @override + String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; + + @override + String get errorDeleteMessageFailedTitle => 'Failed to delete message'; + + @override + String get actionSheetOptionMarkTopicAsRead => 'Mark topic as read'; + + @override + String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; + + @override + String get errorWebAuthOperationalErrorTitle => 'Niečo sa pokazilo'; + + @override + String get errorWebAuthOperationalError => 'Nastala neočakávaná chyba.'; + + @override + String get errorAccountLoggedInTitle => 'Účet je už prihlásený'; + + @override + String errorAccountLoggedIn(String email, String server) { + return 'The account $email at $server is already in your list of accounts.'; + } + + @override + String get errorCouldNotFetchMessageSource => + 'Nepodarilo sa nahrať zdroj správy'; + + @override + String get errorCopyingFailed => 'Kopírovanie zlyhalo'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return 'Nepodarilo sa nahrať súbor: $filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename: $size MiB'; + } + + @override + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num files are', + one: 'File is', + ); + return '$_temp0 larger than the server\'s limit of $maxFileUploadSizeMib MiB and will not be uploaded:\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: 'Files', + one: 'File', + ); + return '$_temp0 príliš veľký'; + } + + @override + String get errorLoginInvalidInputTitle => 'Nesprávny vstup'; + + @override + String get errorLoginFailedTitle => 'Nepodarilo sa prihlásiť'; + + @override + String get errorMessageNotSent => 'Správa nebola odoslaná'; + + @override + String get errorMessageEditNotSaved => 'Message not saved'; + + @override + String errorLoginCouldNotConnect(String url) { + return 'Nepodarilo sa pripojiť na server:\n$url'; + } + + @override + String get errorCouldNotConnectTitle => 'Could not connect'; + + @override + String get errorMessageDoesNotSeemToExist => 'Správa zrejme neexistuje.'; + + @override + String get errorQuotationFailed => 'Nepodarila sa citácia'; + + @override + String errorServerMessage(String message) { + return 'Odozva od servera:\n\n$message'; + } + + @override + String get errorConnectingToServerShort => + 'Chyba pri pripájaní na Zulip. Skúšam znovu…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return 'Nepodarilo sa pripojiť na Zulip server $serverUrl. Skúsim znovu:\n\n$error'; + } + + @override + String get errorHandlingEventTitle => + 'Chyba pri obsluhe Zulip udalosti. Pokúšam sa znovu…'; + + @override + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ) { + return 'Chyba obsluhy Zulip udalosti na serveri $serverUrl; skúsim znovu.\n\nChyba: $error\n\nUdalosť: $event'; + } + + @override + String get errorCouldNotOpenLinkTitle => 'Unable to open link'; + + @override + String errorCouldNotOpenLink(String url) { + return 'Link could not be opened: $url'; + } + + @override + String get errorMuteTopicFailed => 'Nepodarilo sa ztíšiť tému'; + + @override + String get errorUnmuteTopicFailed => 'Nepodarilo sa odtíšiť tému'; + + @override + String get errorFollowTopicFailed => 'Failed to follow topic'; + + @override + String get errorUnfollowTopicFailed => 'Failed to unfollow topic'; + + @override + String get errorSharingFailed => 'Sharing failed'; + + @override + String get errorStarMessageFailedTitle => 'Failed to star message'; + + @override + String get errorUnstarMessageFailedTitle => 'Failed to unstar message'; + + @override + String get errorCouldNotEditMessageTitle => 'Could not edit message'; + + @override + String get successLinkCopied => 'Link copied'; + + @override + String get successMessageTextCopied => 'Message text copied'; + + @override + String get successMessageLinkCopied => 'Message link copied'; + + @override + String get successTopicLinkCopied => 'Topic link copied'; + + @override + String get successChannelLinkCopied => 'Channel link copied'; + + @override + String get errorBannerDeactivatedDmLabel => + 'You cannot send messages to deactivated users.'; + + @override + String get errorBannerCannotPostInChannelLabel => + 'You do not have permission to post in this channel.'; + + @override + String get composeBoxBannerLabelUnsubscribedWhenCannotSend => + 'New messages will not appear automatically.'; + + @override + String get composeBoxBannerButtonRefresh => 'Refresh'; + + @override + String get composeBoxBannerButtonSubscribe => 'Subscribe'; + + @override + String get composeBoxBannerLabelEditMessage => 'Edit message'; + + @override + String get composeBoxBannerButtonCancel => 'Cancel'; + + @override + String get composeBoxBannerButtonSave => 'Save'; + + @override + String get editAlreadyInProgressTitle => 'Cannot edit message'; + + @override + String get editAlreadyInProgressMessage => + 'An edit is already in progress. Please wait for it to complete.'; + + @override + String get savingMessageEditLabel => 'SAVING EDIT…'; + + @override + String get savingMessageEditFailedLabel => 'EDIT NOT SAVED'; + + @override + String get discardDraftConfirmationDialogTitle => + 'Discard the message you’re writing?'; + + @override + String get discardDraftForEditConfirmationDialogMessage => + 'When you edit a message, the content that was previously in the compose box is discarded.'; + + @override + String get discardDraftForOutboxConfirmationDialogMessage => + 'When you restore an unsent message, the content that was previously in the compose box is discarded.'; + + @override + String get discardDraftConfirmationDialogConfirmButton => 'Discard'; + + @override + String get composeBoxAttachFilesTooltip => 'Attach files'; + + @override + String get composeBoxAttachMediaTooltip => 'Attach images or videos'; + + @override + String get composeBoxAttachFromCameraTooltip => 'Take a photo'; + + @override + String get composeBoxAttachFromVideoCallTooltip => 'Attach a video call'; + + @override + String get composeBoxGenericContentHint => 'Type a message'; + + @override + String get newDmSheetComposeButtonLabel => 'Compose'; + + @override + String get newDmSheetScreenTitle => 'New DM'; + + @override + String get newDmFabButtonLabel => 'New DM'; + + @override + String get newDmSheetSearchHintEmpty => 'Add one or more users'; + + @override + String get newDmSheetSearchHintSomeSelected => 'Add another user…'; + + @override + String get newDmSheetNoUsersFound => 'No users found'; + + @override + String composeBoxDmContentHint(String user) { + return 'Message @$user'; + } + + @override + String get composeBoxGroupDmContentHint => 'Message group'; + + @override + String get composeBoxSelfDmContentHint => 'Write yourself a note'; + + @override + String composeBoxChannelContentHint(String destination) { + return 'Message $destination'; + } + + @override + String get preparingEditMessageContentInput => 'Preparing…'; + + @override + String get composeBoxSendTooltip => 'Send'; + + @override + String get unknownChannelName => '(unknown channel)'; + + @override + String get composeBoxTopicHintText => 'Topic'; + + @override + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { + return 'Enter a topic (skip for “$defaultTopicName”)'; + } + + @override + String composeBoxUploadingFilename(String filename) { + return 'Uploading $filename…'; + } + + @override + String get composeBoxUploadedVideoCallUrl => 'Join video call.'; + + @override + String composeBoxLoadingMessage(int messageId) { + return '(loading message $messageId)'; + } + + @override + String get unknownUserName => '(unknown user)'; + + @override + String get dmsWithYourselfPageTitle => 'DMs with yourself'; + + @override + String messageListGroupYouAndOthers(String others) { + return 'You and $others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return 'DMs with $others'; + } + + @override + String get emptyMessageList => 'There are no messages here.'; + + @override + String get emptyMessageListSearch => 'No search results.'; + + @override + String get messageListGroupYouWithYourself => 'Messages with yourself'; + + @override + String get contentValidationErrorTooLong => + 'Message length shouldn\'t be greater than 10000 characters.'; + + @override + String get contentValidationErrorEmpty => 'You have nothing to send!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => + 'Please wait for the quotation to complete.'; + + @override + String get contentValidationErrorUploadInProgress => + 'Please wait for the upload to complete.'; + + @override + String get dialogCancel => 'Cancel'; + + @override + String get dialogContinue => 'Pokračovať'; + + @override + String get dialogClose => 'Zavrieť'; + + @override + String get errorDialogLearnMore => 'Learn more'; + + @override + String get errorDialogContinue => 'OK'; + + @override + String get errorDialogTitle => 'Chyba'; + + @override + String get snackBarDetails => 'Detail'; + + @override + String get lightboxCopyLinkTooltip => 'Skopírovať odkaz'; + + @override + String get lightboxVideoCurrentPosition => 'Current position'; + + @override + String get lightboxVideoDuration => 'Video duration'; + + @override + String get loginPageTitle => 'Prihlásiť sa'; + + @override + String get loginFormSubmitLabel => 'Prihlásiť sa'; + + @override + String get loginMethodDivider => 'alebo'; + + @override + String signInWithFoo(String method) { + return 'Prihlásiť sa pomocou $method'; + } + + @override + String get loginAddAnAccountPageTitle => 'Pridať účet'; + + @override + String get loginServerUrlLabel => 'Adresa vášho Zulip servera'; + + @override + String get loginHidePassword => 'Skryť heslo'; + + @override + String get loginEmailLabel => 'Emailová adresa'; + + @override + String get loginErrorMissingEmail => 'Prosím, vložte váš email.'; + + @override + String get loginPasswordLabel => 'Heslo'; + + @override + String get loginErrorMissingPassword => 'Prosím zadaj heslo.'; + + @override + String get loginUsernameLabel => 'Prihlasovacie meno'; + + @override + String get loginErrorMissingUsername => 'Prosím zadajte prihlasovacie meno.'; + + @override + String get topicValidationErrorTooLong => + 'Topic length shouldn\'t be greater than 60 characters.'; + + @override + String get topicValidationErrorMandatoryButEmpty => + 'Topics are required in this organization.'; + + @override + String get errorContentNotInsertedTitle => 'Content not inserted'; + + @override + String get errorContentToInsertIsEmpty => + 'The file to be inserted is empty or cannot be accessed.'; + + @override + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ) { + return '$url is running Zulip Server $zulipVersion, which is unsupported. The minimum supported version is Zulip Server $minSupportedZulipVersion.'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return 'Your account at $url could not be authenticated. Please try logging in again or use another account.'; + } + + @override + String get errorInvalidResponse => 'Server poslal nesprávnu odpoveď'; + + @override + String get errorNetworkRequestFailed => 'Zlyhala sieťová požiadavka'; + + @override + String errorMalformedResponse(int httpStatus) { + return 'Server doručil zle naformátovanú odozvu; HTTP status $httpStatus'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return 'Server doručil zle naformátovanú odpoveď; HTTP status $httpStatus; $details'; + } + + @override + String errorRequestFailed(int httpStatus) { + return 'Zlyhala sieťová požiadavka: HTTP status $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => 'Nepodarilo sa prehrať video'; + + @override + String get serverUrlValidationErrorEmpty => 'Vložte adresu.'; + + @override + String get serverUrlValidationErrorInvalidUrl => 'Vložte správnu adresu.'; + + @override + String get serverUrlValidationErrorNoUseEmail => + 'Vložte adresu servera, nie email.'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => + 'Adresa servera musí začínať s http:// or https://.'; + + @override + String get spoilerDefaultHeaderText => 'Vyzradenie'; + + @override + String get markAllAsReadLabel => 'Označiť všetky správy ako prečítané'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num správy', + one: '1 správu', + ); + return 'Označiť $_temp0 ako prečítanú.'; + } + + @override + String get markAsReadInProgress => 'Označiť správy ako prečítané…'; + + @override + String get errorMarkAsReadFailedTitle => + 'Neodarilo sa označiť správy ako prečítané'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num správ', + one: '1 správy', + ); + return 'Označiť $_temp0 ako neprečítané.'; + } + + @override + String get markAsUnreadInProgress => 'Označiť správy ako neprečítané…'; + + @override + String get errorMarkAsUnreadFailedTitle => + 'Zlyhalo označenie správ za prečítané'; + + @override + String get today => 'Dnes'; + + @override + String get yesterday => 'Včera'; + + @override + String get userActiveNow => 'Active now'; + + @override + String get userIdle => 'Idle'; + + @override + String userActiveMinutesAgo(int minutes) { + String _temp0 = intl.Intl.pluralLogic( + minutes, + locale: localeName, + other: '$minutes minutes', + one: '1 minute', + ); + return 'Active $_temp0 ago'; + } + + @override + String userActiveHoursAgo(int hours) { + String _temp0 = intl.Intl.pluralLogic( + hours, + locale: localeName, + other: '$hours hours', + one: '1 hour', + ); + return 'Active $_temp0 ago'; + } + + @override + String get userActiveYesterday => 'Active yesterday'; + + @override + String userActiveDaysAgo(int days) { + String _temp0 = intl.Intl.pluralLogic( + days, + locale: localeName, + other: '$days days', + one: '1 day', + ); + return 'Active $_temp0 ago'; + } + + @override + String userActiveDate(String date) { + return 'Active $date'; + } + + @override + String get userNotActiveInYear => 'Not active in the last year'; + + @override + String get invisibleMode => 'Invisible mode'; + + @override + String get turnOnInvisibleModeErrorTitle => + 'Error turning on invisible mode. Please try again.'; + + @override + String get turnOffInvisibleModeErrorTitle => + 'Error turning off invisible mode. Please try again.'; + + @override + String get userRoleOwner => 'Majiteľ'; + + @override + String get userRoleAdministrator => 'Administrátor'; + + @override + String get userRoleModerator => 'Moderátor'; + + @override + String get userRoleMember => 'Člen'; + + @override + String get userRoleGuest => 'Hosť'; + + @override + String get userRoleUnknown => 'Neznáma'; + + @override + String get statusButtonLabelStatusSet => 'Status'; + + @override + String get statusButtonLabelStatusUnset => 'Set status'; + + @override + String get noStatusText => 'No status text'; + + @override + String get setStatusPageTitle => 'Set status'; + + @override + String get statusClearButtonLabel => 'Clear'; + + @override + String get statusSaveButtonLabel => 'Save'; + + @override + String get statusTextHint => 'Your status'; + + @override + String get userStatusBusy => 'Busy'; + + @override + String get userStatusInAMeeting => 'In a meeting'; + + @override + String get userStatusCommuting => 'Commuting'; + + @override + String get userStatusOutSick => 'Out sick'; + + @override + String get userStatusVacationing => 'Vacationing'; + + @override + String get userStatusWorkingRemotely => 'Working remotely'; + + @override + String get userStatusAtTheOffice => 'At the office'; + + @override + String get updateStatusErrorTitle => + 'Error updating user status. Please try again.'; + + @override + String get searchMessagesPageTitle => 'Search'; + + @override + String get searchMessagesHintText => 'Search'; + + @override + String get searchMessagesClearButtonTooltip => 'Clear'; + + @override + String get inboxPageTitle => 'Inbox'; + + @override + String get inboxEmptyPlaceholder => + 'There are no unread messages in your inbox. Use the buttons below to view the combined feed or list of channels.'; + + @override + String get recentDmConversationsPageTitle => 'Priama správa'; + + @override + String get recentDmConversationsSectionHeader => 'Direct messages'; + + @override + String get recentDmConversationsEmptyPlaceholder => + 'You have no direct messages yet! Why not start the conversation?'; + + @override + String get combinedFeedPageTitle => 'Zlúčený kanál'; + + @override + String get mentionsPageTitle => 'Spomenutia'; + + @override + String get starredMessagesPageTitle => 'Označené správy'; + + @override + String get channelsPageTitle => 'Kanály'; + + @override + String get channelsEmptyPlaceholder => + 'You’re not subscribed to any channels yet.'; + + @override + String channelsEmptyPlaceholderWithAllChannelsLink( + String allChannelsPageTitle, + ) { + return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; + } + + @override + String get sharePageTitle => 'Share'; + + @override + String get mainMenuMyProfile => 'Môj profil'; + + @override + String get topicsButtonTooltip => 'Topics'; + + @override + String get channelFeedButtonTooltip => 'Channel feed'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: '$numOthers others', + one: '1 other', + ); + return '$senderFullName to you and $_temp0'; + } + + @override + String get pinnedSubscriptionsLabel => 'Pinned'; + + @override + String get unpinnedSubscriptionsLabel => 'Unpinned'; + + @override + String get notifSelfUser => 'Ty'; + + @override + String get reactedEmojiSelfUser => 'You'; + + @override + String get reactionChipsLabel => 'Reactions'; + + @override + String reactionChipLabel(String emojiName, String votes) { + return '$emojiName: $votes'; + } + + @override + String reactionChipVotesYouAndOthers(int otherUsersCount) { + String _temp0 = intl.Intl.pluralLogic( + otherUsersCount, + locale: localeName, + other: 'You and $otherUsersCount others', + one: 'You and 1 other', + ); + return '$_temp0'; + } + + @override + String onePersonTyping(String typist) { + return '$typist píše…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist a $otherTypist píšu…'; + } + + @override + String get manyPeopleTyping => 'Niekoľko ludí píše…'; + + @override + String get wildcardMentionAll => 'all'; + + @override + String get wildcardMentionEveryone => 'everyone'; + + @override + String get wildcardMentionChannel => 'channel'; + + @override + String get wildcardMentionStream => 'stream'; + + @override + String get wildcardMentionTopic => 'topic'; + + @override + String get wildcardMentionChannelDescription => 'Notify channel'; + + @override + String get wildcardMentionStreamDescription => 'Notify stream'; + + @override + String get wildcardMentionAllDmDescription => 'Notify recipients'; + + @override + String get wildcardMentionTopicDescription => 'Notify topic'; + + @override + String get messageIsEditedLabel => 'UPRAVENÉ'; + + @override + String get messageIsMovedLabel => 'PRESUNUTÉ'; + + @override + String get messageNotSentLabel => 'MESSAGE NOT SENT'; + + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + + @override + String get themeSettingTitle => 'THEME'; + + @override + String get themeSettingDark => 'Dark'; + + @override + String get themeSettingLight => 'Light'; + + @override + String get themeSettingSystem => 'System'; + + @override + String get openLinksWithInAppBrowser => 'Open links with in-app browser'; + + @override + String get pollWidgetQuestionMissing => 'Bez otázky.'; + + @override + String get pollWidgetOptionsMissing => 'This poll has no options yet.'; + + @override + String get initialAnchorSettingTitle => 'Open message feeds at'; + + @override + String get initialAnchorSettingDescription => + 'You can choose whether message feeds open at your first unread message or at the newest messages.'; + + @override + String get initialAnchorSettingFirstUnreadAlways => 'First unread message'; + + @override + String get initialAnchorSettingFirstUnreadConversations => + 'First unread message in conversation views, newest message elsewhere'; + + @override + String get initialAnchorSettingNewestAlways => 'Newest message'; + + @override + String get markReadOnScrollSettingTitle => 'Mark messages as read on scroll'; + + @override + String get markReadOnScrollSettingDescription => + 'When scrolling through messages, should they automatically be marked as read?'; + + @override + String get markReadOnScrollSettingAlways => 'Always'; + + @override + String get markReadOnScrollSettingNever => 'Never'; + + @override + String get markReadOnScrollSettingConversations => + 'Only in conversation views'; + + @override + String get markReadOnScrollSettingConversationsDescription => + 'Messages will be automatically marked as read only when viewing a single topic or direct message conversation.'; + + @override + String get experimentalFeatureSettingsPageTitle => 'Experimental features'; + + @override + String get experimentalFeatureSettingsWarning => + 'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'; + + @override + String get errorNotificationOpenTitle => 'Nepodarilo sa otvoriť oznámenie'; + + @override + String get errorNotificationOpenAccountNotFound => + 'The account associated with this notification could not be found.'; + + @override + String get errorReactionAddingFailedTitle => 'Nepodarilo sa pridať reakciu'; + + @override + String get errorReactionRemovingFailedTitle => 'Odobranie reakcie zlyhalo'; + + @override + String get errorSharingTitle => 'Failed to share content'; + + @override + String get errorSharingAccountNotLoggedIn => + 'There is no account logged in. Please log in to an account and try again.'; + + @override + String get emojiReactionsMore => 'viac'; + + @override + String get emojiPickerSearchEmoji => 'Hľadať emotikon'; + + @override + String get noEarlierMessages => 'No earlier messages'; + + @override + String get revealButtonLabel => 'Reveal message'; + + @override + String get mutedUser => 'Muted user'; + + @override + String get scrollToBottomTooltip => 'Scroll to bottom'; + + @override + String get appVersionUnknownPlaceholder => '(…)'; + + @override + String get zulipAppTitle => 'Zulip'; +} diff --git a/lib/generated/l10n/zulip_localizations_sl.dart b/lib/generated/l10n/zulip_localizations_sl.dart index 933971c93a..9126339275 100644 --- a/lib/generated/l10n/zulip_localizations_sl.dart +++ b/lib/generated/l10n/zulip_localizations_sl.dart @@ -1,1204 +1,1210 @@ -// ignore: unused_import -import 'package:intl/intl.dart' as intl; -import 'zulip_localizations.dart'; - -// ignore_for_file: type=lint - -/// The translations for Slovenian (`sl`). -class ZulipLocalizationsSl extends ZulipLocalizations { - ZulipLocalizationsSl([String locale = 'sl']) : super(locale); - - @override - String get aboutPageTitle => 'O Zulipu'; - - @override - String get aboutPageAppVersion => 'Različica aplikacije'; - - @override - String get aboutPageOpenSourceLicenses => 'Odprtokodne licence'; - - @override - String get aboutPageTapToView => 'Dotaknite se za ogled'; - - @override - String get upgradeWelcomeDialogTitle => 'Dobrodošli v novi aplikaciji Zulip!'; - - @override - String get upgradeWelcomeDialogMessage => - 'Čaka vas znana izkušnja v hitrejši in bolj elegantni obliki.'; - - @override - String get upgradeWelcomeDialogLinkText => 'Preberite objavo na blogu!'; - - @override - String get upgradeWelcomeDialogDismiss => 'Začnimo'; - - @override - String get chooseAccountPageTitle => 'Izberite račun'; - - @override - String get settingsPageTitle => 'Nastavitve'; - - @override - String get switchAccountButton => 'Preklopi račun'; - - @override - String tryAnotherAccountMessage(Object url) { - return 'Nalaganje vašega računa iz $url traja dlje kot običajno.'; - } - - @override - String get tryAnotherAccountButton => 'Poskusite z drugim računom'; - - @override - String get chooseAccountPageLogOutButton => 'Odjava'; - - @override - String get logOutConfirmationDialogTitle => 'Se želite odjaviti?'; - - @override - String get logOutConfirmationDialogMessage => - 'Če boste ta račun želeli uporabljati v prihodnje, boste morali znova vnesti URL svoje organizacije in podatke za prijavo.'; - - @override - String get logOutConfirmationDialogConfirmButton => 'Odjavi se'; - - @override - String get chooseAccountButtonAddAnAccount => 'Dodaj račun'; - - @override - String get navButtonAllChannels => 'All channels'; - - @override - String get allChannelsPageTitle => 'All channels'; - - @override - String get allChannelsEmptyPlaceholder => - 'There are no channels you can view in this organization.'; - - @override - String get profileButtonSendDirectMessage => 'Pošlji neposredno sporočilo'; - - @override - String get errorCouldNotShowUserProfile => - 'Uporabniškega profila ni mogoče prikazati.'; - - @override - String get permissionsNeededTitle => 'Potrebna so dovoljenja'; - - @override - String get permissionsNeededOpenSettings => 'Odpri nastavitve'; - - @override - String get permissionsDeniedCameraAccess => - 'Za nalaganje slik v nastavitvah omogočite Zulipu dostop do kamere.'; - - @override - String get permissionsDeniedReadExternalStorage => - 'Za nalaganje datotek v nastavitvah omogočite Zulipu dostop do shrambe datotek.'; - - @override - String get actionSheetOptionSubscribe => 'Naroči se'; - - @override - String get subscribeFailedTitle => 'Naročnina ni uspela'; - - @override - String get actionSheetOptionMarkChannelAsRead => 'Označi kanal kot prebran'; - - @override - String get actionSheetOptionCopyChannelLink => 'Kopiraj povezavo do kanala'; - - @override - String get actionSheetOptionListOfTopics => 'Seznam tem'; - - @override - String get actionSheetOptionChannelFeed => 'Vir kanala'; - - @override - String get actionSheetOptionUnsubscribe => 'Prekliči naročnino'; - - @override - String unsubscribeConfirmationDialogTitle(String channelName) { - return 'Odjava iz $channelName?'; - } - - @override - String get unsubscribeConfirmationDialogMessageCannotResubscribe => - 'Once you leave this channel, you will not be able to rejoin.'; - - @override - String get unsubscribeConfirmationDialogConfirmButton => 'Prekliči naročnino'; - - @override - String get unsubscribeFailedTitle => 'Preklic naročnine ni uspel'; - - @override - String get actionSheetOptionMuteTopic => 'Utišaj temo'; - - @override - String get actionSheetOptionUnmuteTopic => 'Prekliči utišanje teme'; - - @override - String get actionSheetOptionFollowTopic => 'Sledi temi'; - - @override - String get actionSheetOptionUnfollowTopic => 'Prenehaj slediti temi'; - - @override - String get actionSheetOptionResolveTopic => 'Označi kot razrešeno'; - - @override - String get actionSheetOptionUnresolveTopic => 'Označi kot nerazrešeno'; - - @override - String get errorResolveTopicFailedTitle => - 'Neuspela označitev teme kot razrešene'; - - @override - String get errorUnresolveTopicFailedTitle => - 'Neuspela označitev teme kot nerazrešene'; - - @override - String get actionSheetOptionSeeWhoReacted => 'Poglej, kdo se je odzval'; - - @override - String get seeWhoReactedSheetNoReactions => 'To sporočilo nima odzivov.'; - - @override - String seeWhoReactedSheetHeaderLabel(int num) { - return 'Odzivi z emodžiji (skupaj $num)'; - } - - @override - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num glasov', - few: '$num glasovi', - two: '2 glasa', - one: '1 glas', - ); - return '$emojiName: $_temp0'; - } - - @override - String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Glasovi za $emojiName ($num)'; - } - - @override - String get actionSheetOptionViewReadReceipts => 'Poglej potrdila o branju'; - - @override - String get actionSheetReadReceipts => 'Potrdila o branju'; - - @override - String actionSheetReadReceiptsReadCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: 'To sporočilo je prebralo $count oseb:', - few: 'To sporočilo so prebrale $count osebe:', - two: 'To sporočilo sta prebrali $count osebi:', - one: 'To sporočilo je prebrala $count oseba:', - ); - return '$_temp0'; - } - - @override - String get actionSheetReadReceiptsZeroReadCount => - 'Tega sporočila še nihče ni prebral.'; - - @override - String get actionSheetReadReceiptsErrorReadCount => - 'Nalaganje potrdil o branju ni uspelo.'; - - @override - String get actionSheetOptionCopyMessageText => 'Kopiraj besedilo sporočila'; - - @override - String get actionSheetOptionCopyMessageLink => - 'Kopiraj povezavo do sporočila'; - - @override - String get actionSheetOptionMarkAsUnread => - 'Od tu naprej označi kot neprebrano'; - - @override - String get actionSheetOptionHideMutedMessage => - 'Znova skrij utišano sporočilo'; - - @override - String get actionSheetOptionShare => 'Deli'; - - @override - String get actionSheetOptionQuoteMessage => 'Citiraj sporočilo'; - - @override - String get actionSheetOptionStarMessage => 'Označi sporočilo z zvezdico'; - - @override - String get actionSheetOptionUnstarMessage => 'Odstrani zvezdico s sporočila'; - - @override - String get actionSheetOptionEditMessage => 'Uredi sporočilo'; - - @override - String get actionSheetOptionDeleteMessage => 'Delete message'; - - @override - String get deleteMessageConfirmationDialogTitle => 'Delete message?'; - - @override - String get deleteMessageConfirmationDialogMessage => - 'Deleting a message permanently removes it for everyone.'; - - @override - String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; - - @override - String get errorDeleteMessageFailedTitle => 'Failed to delete message'; - - @override - String get actionSheetOptionMarkTopicAsRead => 'Označi temo kot prebrano'; - - @override - String get actionSheetOptionCopyTopicLink => 'Kopiraj povezavo do teme'; - - @override - String get errorWebAuthOperationalErrorTitle => 'Nekaj je šlo narobe'; - - @override - String get errorWebAuthOperationalError => - 'Prišlo je do nepričakovane napake.'; - - @override - String get errorAccountLoggedInTitle => 'Račun je že prijavljen'; - - @override - String errorAccountLoggedIn(String email, String server) { - return 'Račun $email na $server je že na vašem seznamu računov.'; - } - - @override - String get errorCouldNotFetchMessageSource => - 'Ni bilo mogoče pridobiti vira sporočila.'; - - @override - String get errorCopyingFailed => 'Kopiranje ni uspelo'; - - @override - String errorFailedToUploadFileTitle(String filename) { - return 'Nalaganje datoteke ni uspelo: $filename'; - } - - @override - String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size MiB'; - } - - @override - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num datotek presega', - few: '$num datoteke presegajo', - two: '$num datoteki presegata', - one: '$num datoteka presega', - ); - String _temp1 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: 'ne bodo naložene', - few: 'ne bodo naložene', - two: 'ne bosta naloženi', - one: 'ne bo naložena', - ); - return '$_temp0 omejitev velikosti strežnika ($maxFileUploadSizeMib MiB) in $_temp1:\n\n$listMessage'; - } - - @override - String errorFilesTooLargeTitle(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num datotek je prevelikih', - few: '$num datoteke so prevelike', - two: '$num datoteki sta preveliki', - one: '$num datoteka je prevelika', - ); - return '\"$_temp0\"'; - } - - @override - String get errorLoginInvalidInputTitle => 'Neveljaven vnos'; - - @override - String get errorLoginFailedTitle => 'Prijava ni uspela'; - - @override - String get errorMessageNotSent => 'Pošiljanje sporočila ni uspelo'; - - @override - String get errorMessageEditNotSaved => 'Sporočilo ni bilo shranjeno'; - - @override - String errorLoginCouldNotConnect(String url) { - return 'Ni se mogoče povezati s strežnikom:\n$url'; - } - - @override - String get errorCouldNotConnectTitle => 'Povezave ni bilo mogoče vzpostaviti'; - - @override - String get errorMessageDoesNotSeemToExist => - 'Zdi se, da to sporočilo ne obstaja.'; - - @override - String get errorQuotationFailed => 'Citiranje ni uspelo'; - - @override - String errorServerMessage(String message) { - return 'Strežnik je sporočil:\n\n$message'; - } - - @override - String get errorConnectingToServerShort => - 'Napaka pri povezovanju z Zulipom. Poskušamo znova…'; - - @override - String errorConnectingToServerDetails(String serverUrl, String error) { - return 'Napaka pri povezovanju z Zulipom na $serverUrl. Poskusili bomo znova:\n\n$error'; - } - - @override - String get errorHandlingEventTitle => - 'Napaka pri obravnavi posodobitve. Povezujemo se znova…'; - - @override - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ) { - return 'Napaka pri obravnavi posodobitve iz strežnika $serverUrl; poskusili bomo znova.\n\nNapaka: $error\n\nDogodek: $event'; - } - - @override - String get errorCouldNotOpenLinkTitle => 'Povezave ni mogoče odpreti'; - - @override - String errorCouldNotOpenLink(String url) { - return 'Povezave ni bilo mogoče odpreti: $url'; - } - - @override - String get errorMuteTopicFailed => 'Utišanje teme ni uspelo'; - - @override - String get errorUnmuteTopicFailed => 'Preklic utišanja teme ni uspel'; - - @override - String get errorFollowTopicFailed => 'Sledenje temi ni uspelo'; - - @override - String get errorUnfollowTopicFailed => 'Prenehanje sledenja temi ni uspelo'; - - @override - String get errorSharingFailed => 'Deljenje ni uspelo'; - - @override - String get errorStarMessageFailedTitle => - 'Sporočila ni bilo mogoče označiti z zvezdico'; - - @override - String get errorUnstarMessageFailedTitle => - 'Sporočilu ni bilo mogoče odstraniti zvezdice'; - - @override - String get errorCouldNotEditMessageTitle => 'Sporočila ni mogoče urediti'; - - @override - String get successLinkCopied => 'Povezava je bila kopirana'; - - @override - String get successMessageTextCopied => 'Besedilo sporočila je bilo kopirano'; - - @override - String get successMessageLinkCopied => - 'Povezava do sporočila je bila kopirana'; - - @override - String get successTopicLinkCopied => 'Povezava do teme kopirana'; - - @override - String get successChannelLinkCopied => 'Povezava do kanala kopirana'; - - @override - String get errorBannerDeactivatedDmLabel => - 'Deaktiviranim uporabnikom ne morete pošiljati sporočil.'; - - @override - String get errorBannerCannotPostInChannelLabel => - 'Nimate dovoljenja za objavljanje v tem kanalu.'; - - @override - String get composeBoxBannerLabelUnsubscribedWhenCannotSend => - 'New messages will not appear automatically.'; - - @override - String get composeBoxBannerButtonRefresh => 'Refresh'; - - @override - String get composeBoxBannerButtonSubscribe => 'Subscribe'; - - @override - String get composeBoxBannerLabelEditMessage => 'Uredi sporočilo'; - - @override - String get composeBoxBannerButtonCancel => 'Prekliči'; - - @override - String get composeBoxBannerButtonSave => 'Shrani'; - - @override - String get editAlreadyInProgressTitle => 'Urejanje sporočila ni mogoče'; - - @override - String get editAlreadyInProgressMessage => - 'Urejanje je že v teku. Počakajte, da se konča.'; - - @override - String get savingMessageEditLabel => 'SHRANJEVANJE SPREMEMB…'; - - @override - String get savingMessageEditFailedLabel => 'UREJANJE NI SHRANJENO'; - - @override - String get discardDraftConfirmationDialogTitle => - 'Želite zavreči sporočilo, ki ga pišete?'; - - @override - String get discardDraftForEditConfirmationDialogMessage => - 'Ko urejate sporočilo, se prejšnja vsebina polja za pisanje zavrže.'; - - @override - String get discardDraftForOutboxConfirmationDialogMessage => - 'Ko obnovite neodposlano sporočilo, se vsebina, ki je bila prej v polju za pisanje, zavrže.'; - - @override - String get discardDraftConfirmationDialogConfirmButton => 'Zavrzi'; - - @override - String get composeBoxAttachFilesTooltip => 'Pripni datoteke'; - - @override - String get composeBoxAttachMediaTooltip => - 'Pripni fotografije ali videoposnetke'; - - @override - String get composeBoxAttachFromCameraTooltip => 'Fotografiraj'; - - @override - String get composeBoxGenericContentHint => 'Vnesite sporočilo'; - - @override - String get newDmSheetComposeButtonLabel => 'Napiši'; - - @override - String get newDmSheetScreenTitle => 'Novo neposredno sporočilo'; - - @override - String get newDmFabButtonLabel => 'Novo neposredno sporočilo'; - - @override - String get newDmSheetSearchHintEmpty => 'Dodajte enega ali več uporabnikov'; - - @override - String get newDmSheetSearchHintSomeSelected => 'Dodajte še enega uporabnika…'; - - @override - String get newDmSheetNoUsersFound => 'Ni zadetkov med uporabniki'; - - @override - String composeBoxDmContentHint(String user) { - return 'Sporočilo @$user'; - } - - @override - String get composeBoxGroupDmContentHint => 'Skupinsko sporočilo'; - - @override - String get composeBoxSelfDmContentHint => 'Zapišite opombo zase'; - - @override - String composeBoxChannelContentHint(String destination) { - return 'Sporočilo $destination'; - } - - @override - String get preparingEditMessageContentInput => 'Pripravljanje…'; - - @override - String get composeBoxSendTooltip => 'Pošlji'; - - @override - String get unknownChannelName => '(neznan kanal)'; - - @override - String get composeBoxTopicHintText => 'Tema'; - - @override - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { - return 'Vnesite temo (ali pustite prazno za »$defaultTopicName«)'; - } - - @override - String composeBoxUploadingFilename(String filename) { - return 'Nalaganje $filename…'; - } - - @override - String composeBoxLoadingMessage(int messageId) { - return '(nalaganje sporočila $messageId)'; - } - - @override - String get unknownUserName => '(neznan uporabnik)'; - - @override - String get dmsWithYourselfPageTitle => 'Neposredna sporočila s samim seboj'; - - @override - String messageListGroupYouAndOthers(String others) { - return 'Vi in $others'; - } - - @override - String dmsWithOthersPageTitle(String others) { - return 'Neposredna sporočila z $others'; - } - - @override - String get emptyMessageList => 'Tukaj ni sporočil.'; - - @override - String get emptyMessageListSearch => 'Ni zadetkov iskanja.'; - - @override - String get messageListGroupYouWithYourself => 'Sporočila sebi'; - - @override - String get contentValidationErrorTooLong => - 'Dolžina sporočila ne sme presegati 10000 znakov.'; - - @override - String get contentValidationErrorEmpty => 'Ni vsebine za pošiljanje!'; - - @override - String get contentValidationErrorQuoteAndReplyInProgress => - 'Počakajte, da se citat zaključi.'; - - @override - String get contentValidationErrorUploadInProgress => - 'Počakajte, da se nalaganje konča.'; - - @override - String get dialogCancel => 'Prekliči'; - - @override - String get dialogContinue => 'Nadaljuj'; - - @override - String get dialogClose => 'Zapri'; - - @override - String get errorDialogLearnMore => 'Več o tem'; - - @override - String get errorDialogContinue => 'V redu'; - - @override - String get errorDialogTitle => 'Napaka'; - - @override - String get snackBarDetails => 'Podrobnosti'; - - @override - String get lightboxCopyLinkTooltip => 'Kopiraj povezavo'; - - @override - String get lightboxVideoCurrentPosition => 'Trenutni položaj'; - - @override - String get lightboxVideoDuration => 'Trajanje videa'; - - @override - String get loginPageTitle => 'Prijava'; - - @override - String get loginFormSubmitLabel => 'Prijava'; - - @override - String get loginMethodDivider => 'ALI'; - - @override - String signInWithFoo(String method) { - return 'Prijava z $method'; - } - - @override - String get loginAddAnAccountPageTitle => 'Dodaj račun'; - - @override - String get loginServerUrlLabel => 'URL strežnika Zulip'; - - @override - String get loginHidePassword => 'Skrij geslo'; - - @override - String get loginEmailLabel => 'E-poštni naslov'; - - @override - String get loginErrorMissingEmail => 'Vnesite svoj e-poštni naslov.'; - - @override - String get loginPasswordLabel => 'Geslo'; - - @override - String get loginErrorMissingPassword => 'Vnesite svoje geslo.'; - - @override - String get loginUsernameLabel => 'Uporabniško ime'; - - @override - String get loginErrorMissingUsername => 'Vnesite svoje uporabniško ime.'; - - @override - String get topicValidationErrorTooLong => - 'Dolžina teme ne sme presegati 60 znakov.'; - - @override - String get topicValidationErrorMandatoryButEmpty => - 'Teme so v tej organizaciji obvezne.'; - - @override - String get errorContentNotInsertedTitle => 'Vsebina ni vstavljena'; - - @override - String get errorContentToInsertIsEmpty => - 'Datoteka za vstavljanje je prazna ali nedostopna.'; - - @override - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ) { - return '$url uporablja strežnik Zulip $zulipVersion, ki ni podprt. Najnižja podprta različica je strežnik Zulip $minSupportedZulipVersion.'; - } - - @override - String errorInvalidApiKeyMessage(String url) { - return 'Vašega računa na $url ni bilo mogoče overiti. Poskusite se znova prijaviti ali uporabite drug račun.'; - } - - @override - String get errorInvalidResponse => 'Strežnik je poslal neveljaven odgovor.'; - - @override - String get errorNetworkRequestFailed => 'Omrežna zahteva je spodletela'; - - @override - String errorMalformedResponse(int httpStatus) { - return 'Strežnik je poslal napačno oblikovan odgovor; stanje HTTP $httpStatus'; - } - - @override - String errorMalformedResponseWithCause(int httpStatus, String details) { - return 'Strežnik je poslal napačno oblikovan odgovor; stanje HTTP $httpStatus; $details'; - } - - @override - String errorRequestFailed(int httpStatus) { - return 'Omrežna zahteva je spodletela: Stanje HTTP $httpStatus'; - } - - @override - String get errorVideoPlayerFailed => 'Videa ni mogoče predvajati.'; - - @override - String get serverUrlValidationErrorEmpty => 'Vnesite URL.'; - - @override - String get serverUrlValidationErrorInvalidUrl => 'Vnesite veljaven URL.'; - - @override - String get serverUrlValidationErrorNoUseEmail => - 'Vnesite URL strežnika, ne vašega e-poštnega naslova.'; - - @override - String get serverUrlValidationErrorUnsupportedScheme => - 'URL strežnika se mora začeti s http:// ali https://.'; - - @override - String get spoilerDefaultHeaderText => 'Skrito'; - - @override - String get markAllAsReadLabel => 'Označi vsa sporočila kot prebrana'; - - @override - String markAsReadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num sporočil', - few: '$num sporočila', - two: '$num sporočili', - one: '$num sporočilo', - ); - return 'Označeno je $_temp0 kot prebrano.'; - } - - @override - String get markAsReadInProgress => 'Označevanje sporočil kot prebranih…'; - - @override - String get errorMarkAsReadFailedTitle => 'Označevanje kot prebrano ni uspelo'; - - @override - String markAsUnreadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: 'Označeno je $num sporočil kot neprebranih', - few: 'Označena so $num sporočila kot neprebrana', - two: 'Označeni sta $num sporočili kot neprebrani', - one: 'Označeno je $num sporočilo kot neprebrano', - ); - return '$_temp0.'; - } - - @override - String get markAsUnreadInProgress => 'Označevanje sporočil kot neprebranih…'; - - @override - String get errorMarkAsUnreadFailedTitle => - 'Označevanje kot neprebrano ni uspelo'; - - @override - String get today => 'Danes'; - - @override - String get yesterday => 'Včeraj'; - - @override - String get userActiveNow => 'Trenutno aktiven'; - - @override - String get userIdle => 'Nedejaven'; - - @override - String userActiveMinutesAgo(int minutes) { - String _temp0 = intl.Intl.pluralLogic( - minutes, - locale: localeName, - other: '$minutes minutami', - few: '$minutes minutami', - two: '$minutes minutama', - one: '1 minuto', - ); - return 'Aktiven pred $_temp0'; - } - - @override - String userActiveHoursAgo(int hours) { - String _temp0 = intl.Intl.pluralLogic( - hours, - locale: localeName, - other: '$hours urami', - few: '$hours urami', - two: '$hours urama', - one: '1 uro', - ); - return 'Aktiven pred $_temp0'; - } - - @override - String get userActiveYesterday => 'Aktiven včeraj'; - - @override - String userActiveDaysAgo(int days) { - String _temp0 = intl.Intl.pluralLogic( - days, - locale: localeName, - other: '$days dnevi', - few: '$days dnevi', - two: '$days dnevoma', - one: '1 dnevom', - ); - return 'Aktiven pred $_temp0'; - } - - @override - String userActiveDate(String date) { - return 'Nazadnje aktiven $date'; - } - - @override - String get userNotActiveInYear => 'Ni bil aktiven v zadnjem letu'; - - @override - String get invisibleMode => 'Nevidni način'; - - @override - String get turnOnInvisibleModeErrorTitle => - 'Napaka pri vklopu nevidnega načina. Poskusite znova.'; - - @override - String get turnOffInvisibleModeErrorTitle => - 'Napaka pri izklopu nevidnega načina. Poskusite znova.'; - - @override - String get userRoleOwner => 'Lastnik'; - - @override - String get userRoleAdministrator => 'Skrbnik'; - - @override - String get userRoleModerator => 'Moderator'; - - @override - String get userRoleMember => 'Član'; - - @override - String get userRoleGuest => 'Gost'; - - @override - String get userRoleUnknown => 'Neznano'; - - @override - String get statusButtonLabelStatusSet => 'Status'; - - @override - String get statusButtonLabelStatusUnset => 'Nastavi status'; - - @override - String get noStatusText => 'Brez statusa'; - - @override - String get setStatusPageTitle => 'Nastavi status'; - - @override - String get statusClearButtonLabel => 'Počisti'; - - @override - String get statusSaveButtonLabel => 'Shrani'; - - @override - String get statusTextHint => 'Vaš status'; - - @override - String get userStatusBusy => 'Zaposlen'; - - @override - String get userStatusInAMeeting => 'Na sestanku'; - - @override - String get userStatusCommuting => 'Na poti v službo'; - - @override - String get userStatusOutSick => 'Na bolniški'; - - @override - String get userStatusVacationing => 'Na dopustu'; - - @override - String get userStatusWorkingRemotely => 'Delo na daljavo'; - - @override - String get userStatusAtTheOffice => 'V pisarni'; - - @override - String get updateStatusErrorTitle => - 'Napaka pri posodabljanju statusa uporabnika. Poskusite znova.'; - - @override - String get searchMessagesPageTitle => 'Iskanje'; - - @override - String get searchMessagesHintText => 'Išči'; - - @override - String get searchMessagesClearButtonTooltip => 'Počisti'; - - @override - String get inboxPageTitle => 'Nabiralnik'; - - @override - String get inboxEmptyPlaceholder => - 'V vašem nabiralniku ni neprebranih sporočil. Uporabite spodnje gumbe za ogled združenega prikaza ali seznama kanalov.'; - - @override - String get recentDmConversationsPageTitle => 'Neposredna sporočila'; - - @override - String get recentDmConversationsSectionHeader => 'Neposredna sporočila'; - - @override - String get recentDmConversationsEmptyPlaceholder => - 'Zaenkrat še nimate neposrednih sporočil! Zakaj ne bi začeli pogovora?'; - - @override - String get combinedFeedPageTitle => 'Združen prikaz'; - - @override - String get mentionsPageTitle => 'Omembe'; - - @override - String get starredMessagesPageTitle => 'Sporočila z zvezdico'; - - @override - String get channelsPageTitle => 'Kanali'; - - @override - String get channelsEmptyPlaceholder => 'Niste še naročeni na noben kanal.'; - - @override - String channelsEmptyPlaceholderWithAllChannelsLink( - String allChannelsPageTitle, - ) { - return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; - } - - @override - String get sharePageTitle => 'Deli'; - - @override - String get mainMenuMyProfile => 'Moj profil'; - - @override - String get topicsButtonTooltip => 'Teme'; - - @override - String get channelFeedButtonTooltip => 'Sporočila kanala'; - - @override - String notifGroupDmConversationLabel(String senderFullName, int numOthers) { - String _temp0 = intl.Intl.pluralLogic( - numOthers, - locale: localeName, - other: '$numOthers drugim osebam', - one: '1 drugi osebi', - ); - return '$senderFullName vam in $_temp0'; - } - - @override - String get pinnedSubscriptionsLabel => 'Pripeto'; - - @override - String get unpinnedSubscriptionsLabel => 'Nepripeto'; - - @override - String get notifSelfUser => 'Vi'; - - @override - String get reactedEmojiSelfUser => 'Vi'; - - @override - String get reactionChipsLabel => 'Odzivi'; - - @override - String reactionChipLabel(String emojiName, String votes) { - return '$emojiName: $votes'; - } - - @override - String reactionChipVotesYouAndOthers(int otherUsersCount) { - String _temp0 = intl.Intl.pluralLogic( - otherUsersCount, - locale: localeName, - other: 'Vi in $otherUsersCount drugih', - few: 'Vi in $otherUsersCount druge osebe', - two: 'Vi in 2 drugi osebi', - one: 'Vi in 1 druga oseba', - ); - return '$_temp0'; - } - - @override - String onePersonTyping(String typist) { - return '$typist tipka…'; - } - - @override - String twoPeopleTyping(String typist, String otherTypist) { - return '$typist in $otherTypist tipkata…'; - } - - @override - String get manyPeopleTyping => 'Več oseb tipka…'; - - @override - String get wildcardMentionAll => 'vsi'; - - @override - String get wildcardMentionEveryone => 'vsi'; - - @override - String get wildcardMentionChannel => 'kanal'; - - @override - String get wildcardMentionStream => 'tok'; - - @override - String get wildcardMentionTopic => 'tema'; - - @override - String get wildcardMentionChannelDescription => 'Obvesti kanal'; - - @override - String get wildcardMentionStreamDescription => 'Obvesti tok'; - - @override - String get wildcardMentionAllDmDescription => 'Obvesti prejemnike'; - - @override - String get wildcardMentionTopicDescription => 'Obvesti udeležence teme'; - - @override - String get messageIsEditedLabel => 'UREJENO'; - - @override - String get messageIsMovedLabel => 'PREMAKNJENO'; - - @override - String get messageNotSentLabel => 'SPOROČILO NI POSLANO'; - - @override - String pollVoterNames(String voterNames) { - return '($voterNames)'; - } - - @override - String get themeSettingTitle => 'TEMA'; - - @override - String get themeSettingDark => 'Temna'; - - @override - String get themeSettingLight => 'Svetla'; - - @override - String get themeSettingSystem => 'Sistemska'; - - @override - String get openLinksWithInAppBrowser => - 'Odpri povezave v brskalniku znotraj aplikacije'; - - @override - String get pollWidgetQuestionMissing => 'Brez vprašanja.'; - - @override - String get pollWidgetOptionsMissing => 'Ta anketa še nima odgovorov.'; - - @override - String get initialAnchorSettingTitle => 'Odpri tok sporočil pri'; - - @override - String get initialAnchorSettingDescription => - 'Lahko izberete, ali se tok sporočil odpre pri vašem prvem neprebranem sporočilu ali pri najnovejših sporočilih.'; - - @override - String get initialAnchorSettingFirstUnreadAlways => - 'Prvo neprebrano sporočilo'; - - @override - String get initialAnchorSettingFirstUnreadConversations => - 'Prvo neprebrano v pogovorih, najnovejše drugje'; - - @override - String get initialAnchorSettingNewestAlways => 'Najnovejše sporočilo'; - - @override - String get markReadOnScrollSettingTitle => - 'Ob pomikanju označi sporočila kot prebrana'; - - @override - String get markReadOnScrollSettingDescription => - 'Naj se sporočila ob pomikanju samodejno označijo kot prebrana?'; - - @override - String get markReadOnScrollSettingAlways => 'Vedno'; - - @override - String get markReadOnScrollSettingNever => 'Nikoli'; - - @override - String get markReadOnScrollSettingConversations => - 'Samo v pogledih pogovorov'; - - @override - String get markReadOnScrollSettingConversationsDescription => - 'Sporočila bodo samodejno označena kot prebrana samo pri ogledu ene teme ali zasebnega pogovora.'; - - @override - String get experimentalFeatureSettingsPageTitle => 'Eksperimentalne funkcije'; - - @override - String get experimentalFeatureSettingsWarning => - 'Te možnosti omogočajo funkcije, ki so še v razvoju in niso pripravljene. Morda ne bodo delovale in lahko povzročijo težave v drugih delih aplikacije.\n\nNamen teh nastavitev je eksperimentiranje za uporabnike, ki delajo na razvoju Zulipa.'; - - @override - String get errorNotificationOpenTitle => 'Obvestila ni bilo mogoče odpreti'; - - @override - String get errorNotificationOpenAccountNotFound => - 'Računa, povezanega s tem obvestilom, ni bilo mogoče najti.'; - - @override - String get errorReactionAddingFailedTitle => 'Reakcije ni bilo mogoče dodati'; - - @override - String get errorReactionRemovingFailedTitle => - 'Reakcije ni bilo mogoče odstraniti'; - - @override - String get errorSharingTitle => 'Deljenje vsebine ni uspelo'; - - @override - String get errorSharingAccountNotLoggedIn => - 'Noben račun ni prijavljen. Prijavite se v račun in poskusite znova.'; - - @override - String get emojiReactionsMore => 'več'; - - @override - String get emojiPickerSearchEmoji => 'Iskanje emojijev'; - - @override - String get noEarlierMessages => 'Ni starejših sporočil'; - - @override - String get revealButtonLabel => 'Razkrij sporočilo'; - - @override - String get mutedUser => 'Uporabnik je utišan'; - - @override - String get scrollToBottomTooltip => 'Premakni se na konec'; - - @override - String get appVersionUnknownPlaceholder => '(...)'; - - @override - String get zulipAppTitle => 'Zulip'; -} +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'zulip_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for Slovenian (`sl`). +class ZulipLocalizationsSl extends ZulipLocalizations { + ZulipLocalizationsSl([String locale = 'sl']) : super(locale); + + @override + String get aboutPageTitle => 'O Zulipu'; + + @override + String get aboutPageAppVersion => 'Različica aplikacije'; + + @override + String get aboutPageOpenSourceLicenses => 'Odprtokodne licence'; + + @override + String get aboutPageTapToView => 'Dotaknite se za ogled'; + + @override + String get upgradeWelcomeDialogTitle => 'Dobrodošli v novi aplikaciji Zulip!'; + + @override + String get upgradeWelcomeDialogMessage => + 'Čaka vas znana izkušnja v hitrejši in bolj elegantni obliki.'; + + @override + String get upgradeWelcomeDialogLinkText => 'Preberite objavo na blogu!'; + + @override + String get upgradeWelcomeDialogDismiss => 'Začnimo'; + + @override + String get chooseAccountPageTitle => 'Izberite račun'; + + @override + String get settingsPageTitle => 'Nastavitve'; + + @override + String get switchAccountButton => 'Preklopi račun'; + + @override + String tryAnotherAccountMessage(Object url) { + return 'Nalaganje vašega računa iz $url traja dlje kot običajno.'; + } + + @override + String get tryAnotherAccountButton => 'Poskusite z drugim računom'; + + @override + String get chooseAccountPageLogOutButton => 'Odjava'; + + @override + String get logOutConfirmationDialogTitle => 'Se želite odjaviti?'; + + @override + String get logOutConfirmationDialogMessage => + 'Če boste ta račun želeli uporabljati v prihodnje, boste morali znova vnesti URL svoje organizacije in podatke za prijavo.'; + + @override + String get logOutConfirmationDialogConfirmButton => 'Odjavi se'; + + @override + String get chooseAccountButtonAddAnAccount => 'Dodaj račun'; + + @override + String get navButtonAllChannels => 'All channels'; + + @override + String get allChannelsPageTitle => 'All channels'; + + @override + String get allChannelsEmptyPlaceholder => + 'There are no channels you can view in this organization.'; + + @override + String get profileButtonSendDirectMessage => 'Pošlji neposredno sporočilo'; + + @override + String get errorCouldNotShowUserProfile => + 'Uporabniškega profila ni mogoče prikazati.'; + + @override + String get permissionsNeededTitle => 'Potrebna so dovoljenja'; + + @override + String get permissionsNeededOpenSettings => 'Odpri nastavitve'; + + @override + String get permissionsDeniedCameraAccess => + 'Za nalaganje slik v nastavitvah omogočite Zulipu dostop do kamere.'; + + @override + String get permissionsDeniedReadExternalStorage => + 'Za nalaganje datotek v nastavitvah omogočite Zulipu dostop do shrambe datotek.'; + + @override + String get actionSheetOptionSubscribe => 'Naroči se'; + + @override + String get subscribeFailedTitle => 'Naročnina ni uspela'; + + @override + String get actionSheetOptionMarkChannelAsRead => 'Označi kanal kot prebran'; + + @override + String get actionSheetOptionCopyChannelLink => 'Kopiraj povezavo do kanala'; + + @override + String get actionSheetOptionListOfTopics => 'Seznam tem'; + + @override + String get actionSheetOptionChannelFeed => 'Vir kanala'; + + @override + String get actionSheetOptionUnsubscribe => 'Prekliči naročnino'; + + @override + String unsubscribeConfirmationDialogTitle(String channelName) { + return 'Odjava iz $channelName?'; + } + + @override + String get unsubscribeConfirmationDialogMessageCannotResubscribe => + 'Once you leave this channel, you will not be able to rejoin.'; + + @override + String get unsubscribeConfirmationDialogConfirmButton => 'Prekliči naročnino'; + + @override + String get unsubscribeFailedTitle => 'Preklic naročnine ni uspel'; + + @override + String get actionSheetOptionMuteTopic => 'Utišaj temo'; + + @override + String get actionSheetOptionUnmuteTopic => 'Prekliči utišanje teme'; + + @override + String get actionSheetOptionFollowTopic => 'Sledi temi'; + + @override + String get actionSheetOptionUnfollowTopic => 'Prenehaj slediti temi'; + + @override + String get actionSheetOptionResolveTopic => 'Označi kot razrešeno'; + + @override + String get actionSheetOptionUnresolveTopic => 'Označi kot nerazrešeno'; + + @override + String get errorResolveTopicFailedTitle => + 'Neuspela označitev teme kot razrešene'; + + @override + String get errorUnresolveTopicFailedTitle => + 'Neuspela označitev teme kot nerazrešene'; + + @override + String get actionSheetOptionSeeWhoReacted => 'Poglej, kdo se je odzval'; + + @override + String get seeWhoReactedSheetNoReactions => 'To sporočilo nima odzivov.'; + + @override + String seeWhoReactedSheetHeaderLabel(int num) { + return 'Odzivi z emodžiji (skupaj $num)'; + } + + @override + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num glasov', + few: '$num glasovi', + two: '2 glasa', + one: '1 glas', + ); + return '$emojiName: $_temp0'; + } + + @override + String seeWhoReactedSheetUserListLabel(String emojiName, int num) { + return 'Glasovi za $emojiName ($num)'; + } + + @override + String get actionSheetOptionViewReadReceipts => 'Poglej potrdila o branju'; + + @override + String get actionSheetReadReceipts => 'Potrdila o branju'; + + @override + String actionSheetReadReceiptsReadCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: 'To sporočilo je prebralo $count oseb:', + few: 'To sporočilo so prebrale $count osebe:', + two: 'To sporočilo sta prebrali $count osebi:', + one: 'To sporočilo je prebrala $count oseba:', + ); + return '$_temp0'; + } + + @override + String get actionSheetReadReceiptsZeroReadCount => + 'Tega sporočila še nihče ni prebral.'; + + @override + String get actionSheetReadReceiptsErrorReadCount => + 'Nalaganje potrdil o branju ni uspelo.'; + + @override + String get actionSheetOptionCopyMessageText => 'Kopiraj besedilo sporočila'; + + @override + String get actionSheetOptionCopyMessageLink => + 'Kopiraj povezavo do sporočila'; + + @override + String get actionSheetOptionMarkAsUnread => + 'Od tu naprej označi kot neprebrano'; + + @override + String get actionSheetOptionHideMutedMessage => + 'Znova skrij utišano sporočilo'; + + @override + String get actionSheetOptionShare => 'Deli'; + + @override + String get actionSheetOptionQuoteMessage => 'Citiraj sporočilo'; + + @override + String get actionSheetOptionStarMessage => 'Označi sporočilo z zvezdico'; + + @override + String get actionSheetOptionUnstarMessage => 'Odstrani zvezdico s sporočila'; + + @override + String get actionSheetOptionEditMessage => 'Uredi sporočilo'; + + @override + String get actionSheetOptionDeleteMessage => 'Delete message'; + + @override + String get deleteMessageConfirmationDialogTitle => 'Delete message?'; + + @override + String get deleteMessageConfirmationDialogMessage => + 'Deleting a message permanently removes it for everyone.'; + + @override + String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; + + @override + String get errorDeleteMessageFailedTitle => 'Failed to delete message'; + + @override + String get actionSheetOptionMarkTopicAsRead => 'Označi temo kot prebrano'; + + @override + String get actionSheetOptionCopyTopicLink => 'Kopiraj povezavo do teme'; + + @override + String get errorWebAuthOperationalErrorTitle => 'Nekaj je šlo narobe'; + + @override + String get errorWebAuthOperationalError => + 'Prišlo je do nepričakovane napake.'; + + @override + String get errorAccountLoggedInTitle => 'Račun je že prijavljen'; + + @override + String errorAccountLoggedIn(String email, String server) { + return 'Račun $email na $server je že na vašem seznamu računov.'; + } + + @override + String get errorCouldNotFetchMessageSource => + 'Ni bilo mogoče pridobiti vira sporočila.'; + + @override + String get errorCopyingFailed => 'Kopiranje ni uspelo'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return 'Nalaganje datoteke ni uspelo: $filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename: $size MiB'; + } + + @override + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num datotek presega', + few: '$num datoteke presegajo', + two: '$num datoteki presegata', + one: '$num datoteka presega', + ); + String _temp1 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: 'ne bodo naložene', + few: 'ne bodo naložene', + two: 'ne bosta naloženi', + one: 'ne bo naložena', + ); + return '$_temp0 omejitev velikosti strežnika ($maxFileUploadSizeMib MiB) in $_temp1:\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num datotek je prevelikih', + few: '$num datoteke so prevelike', + two: '$num datoteki sta preveliki', + one: '$num datoteka je prevelika', + ); + return '\"$_temp0\"'; + } + + @override + String get errorLoginInvalidInputTitle => 'Neveljaven vnos'; + + @override + String get errorLoginFailedTitle => 'Prijava ni uspela'; + + @override + String get errorMessageNotSent => 'Pošiljanje sporočila ni uspelo'; + + @override + String get errorMessageEditNotSaved => 'Sporočilo ni bilo shranjeno'; + + @override + String errorLoginCouldNotConnect(String url) { + return 'Ni se mogoče povezati s strežnikom:\n$url'; + } + + @override + String get errorCouldNotConnectTitle => 'Povezave ni bilo mogoče vzpostaviti'; + + @override + String get errorMessageDoesNotSeemToExist => + 'Zdi se, da to sporočilo ne obstaja.'; + + @override + String get errorQuotationFailed => 'Citiranje ni uspelo'; + + @override + String errorServerMessage(String message) { + return 'Strežnik je sporočil:\n\n$message'; + } + + @override + String get errorConnectingToServerShort => + 'Napaka pri povezovanju z Zulipom. Poskušamo znova…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return 'Napaka pri povezovanju z Zulipom na $serverUrl. Poskusili bomo znova:\n\n$error'; + } + + @override + String get errorHandlingEventTitle => + 'Napaka pri obravnavi posodobitve. Povezujemo se znova…'; + + @override + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ) { + return 'Napaka pri obravnavi posodobitve iz strežnika $serverUrl; poskusili bomo znova.\n\nNapaka: $error\n\nDogodek: $event'; + } + + @override + String get errorCouldNotOpenLinkTitle => 'Povezave ni mogoče odpreti'; + + @override + String errorCouldNotOpenLink(String url) { + return 'Povezave ni bilo mogoče odpreti: $url'; + } + + @override + String get errorMuteTopicFailed => 'Utišanje teme ni uspelo'; + + @override + String get errorUnmuteTopicFailed => 'Preklic utišanja teme ni uspel'; + + @override + String get errorFollowTopicFailed => 'Sledenje temi ni uspelo'; + + @override + String get errorUnfollowTopicFailed => 'Prenehanje sledenja temi ni uspelo'; + + @override + String get errorSharingFailed => 'Deljenje ni uspelo'; + + @override + String get errorStarMessageFailedTitle => + 'Sporočila ni bilo mogoče označiti z zvezdico'; + + @override + String get errorUnstarMessageFailedTitle => + 'Sporočilu ni bilo mogoče odstraniti zvezdice'; + + @override + String get errorCouldNotEditMessageTitle => 'Sporočila ni mogoče urediti'; + + @override + String get successLinkCopied => 'Povezava je bila kopirana'; + + @override + String get successMessageTextCopied => 'Besedilo sporočila je bilo kopirano'; + + @override + String get successMessageLinkCopied => + 'Povezava do sporočila je bila kopirana'; + + @override + String get successTopicLinkCopied => 'Povezava do teme kopirana'; + + @override + String get successChannelLinkCopied => 'Povezava do kanala kopirana'; + + @override + String get errorBannerDeactivatedDmLabel => + 'Deaktiviranim uporabnikom ne morete pošiljati sporočil.'; + + @override + String get errorBannerCannotPostInChannelLabel => + 'Nimate dovoljenja za objavljanje v tem kanalu.'; + + @override + String get composeBoxBannerLabelUnsubscribedWhenCannotSend => + 'New messages will not appear automatically.'; + + @override + String get composeBoxBannerButtonRefresh => 'Refresh'; + + @override + String get composeBoxBannerButtonSubscribe => 'Subscribe'; + + @override + String get composeBoxBannerLabelEditMessage => 'Uredi sporočilo'; + + @override + String get composeBoxBannerButtonCancel => 'Prekliči'; + + @override + String get composeBoxBannerButtonSave => 'Shrani'; + + @override + String get editAlreadyInProgressTitle => 'Urejanje sporočila ni mogoče'; + + @override + String get editAlreadyInProgressMessage => + 'Urejanje je že v teku. Počakajte, da se konča.'; + + @override + String get savingMessageEditLabel => 'SHRANJEVANJE SPREMEMB…'; + + @override + String get savingMessageEditFailedLabel => 'UREJANJE NI SHRANJENO'; + + @override + String get discardDraftConfirmationDialogTitle => + 'Želite zavreči sporočilo, ki ga pišete?'; + + @override + String get discardDraftForEditConfirmationDialogMessage => + 'Ko urejate sporočilo, se prejšnja vsebina polja za pisanje zavrže.'; + + @override + String get discardDraftForOutboxConfirmationDialogMessage => + 'Ko obnovite neodposlano sporočilo, se vsebina, ki je bila prej v polju za pisanje, zavrže.'; + + @override + String get discardDraftConfirmationDialogConfirmButton => 'Zavrzi'; + + @override + String get composeBoxAttachFilesTooltip => 'Pripni datoteke'; + + @override + String get composeBoxAttachMediaTooltip => + 'Pripni fotografije ali videoposnetke'; + + @override + String get composeBoxAttachFromCameraTooltip => 'Fotografiraj'; + + @override + String get composeBoxAttachFromVideoCallTooltip => 'Attach a video call'; + + @override + String get composeBoxGenericContentHint => 'Vnesite sporočilo'; + + @override + String get newDmSheetComposeButtonLabel => 'Napiši'; + + @override + String get newDmSheetScreenTitle => 'Novo neposredno sporočilo'; + + @override + String get newDmFabButtonLabel => 'Novo neposredno sporočilo'; + + @override + String get newDmSheetSearchHintEmpty => 'Dodajte enega ali več uporabnikov'; + + @override + String get newDmSheetSearchHintSomeSelected => 'Dodajte še enega uporabnika…'; + + @override + String get newDmSheetNoUsersFound => 'Ni zadetkov med uporabniki'; + + @override + String composeBoxDmContentHint(String user) { + return 'Sporočilo @$user'; + } + + @override + String get composeBoxGroupDmContentHint => 'Skupinsko sporočilo'; + + @override + String get composeBoxSelfDmContentHint => 'Zapišite opombo zase'; + + @override + String composeBoxChannelContentHint(String destination) { + return 'Sporočilo $destination'; + } + + @override + String get preparingEditMessageContentInput => 'Pripravljanje…'; + + @override + String get composeBoxSendTooltip => 'Pošlji'; + + @override + String get unknownChannelName => '(neznan kanal)'; + + @override + String get composeBoxTopicHintText => 'Tema'; + + @override + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { + return 'Vnesite temo (ali pustite prazno za »$defaultTopicName«)'; + } + + @override + String composeBoxUploadingFilename(String filename) { + return 'Nalaganje $filename…'; + } + + @override + String get composeBoxUploadedVideoCallUrl => 'Join video call.'; + + @override + String composeBoxLoadingMessage(int messageId) { + return '(nalaganje sporočila $messageId)'; + } + + @override + String get unknownUserName => '(neznan uporabnik)'; + + @override + String get dmsWithYourselfPageTitle => 'Neposredna sporočila s samim seboj'; + + @override + String messageListGroupYouAndOthers(String others) { + return 'Vi in $others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return 'Neposredna sporočila z $others'; + } + + @override + String get emptyMessageList => 'Tukaj ni sporočil.'; + + @override + String get emptyMessageListSearch => 'Ni zadetkov iskanja.'; + + @override + String get messageListGroupYouWithYourself => 'Sporočila sebi'; + + @override + String get contentValidationErrorTooLong => + 'Dolžina sporočila ne sme presegati 10000 znakov.'; + + @override + String get contentValidationErrorEmpty => 'Ni vsebine za pošiljanje!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => + 'Počakajte, da se citat zaključi.'; + + @override + String get contentValidationErrorUploadInProgress => + 'Počakajte, da se nalaganje konča.'; + + @override + String get dialogCancel => 'Prekliči'; + + @override + String get dialogContinue => 'Nadaljuj'; + + @override + String get dialogClose => 'Zapri'; + + @override + String get errorDialogLearnMore => 'Več o tem'; + + @override + String get errorDialogContinue => 'V redu'; + + @override + String get errorDialogTitle => 'Napaka'; + + @override + String get snackBarDetails => 'Podrobnosti'; + + @override + String get lightboxCopyLinkTooltip => 'Kopiraj povezavo'; + + @override + String get lightboxVideoCurrentPosition => 'Trenutni položaj'; + + @override + String get lightboxVideoDuration => 'Trajanje videa'; + + @override + String get loginPageTitle => 'Prijava'; + + @override + String get loginFormSubmitLabel => 'Prijava'; + + @override + String get loginMethodDivider => 'ALI'; + + @override + String signInWithFoo(String method) { + return 'Prijava z $method'; + } + + @override + String get loginAddAnAccountPageTitle => 'Dodaj račun'; + + @override + String get loginServerUrlLabel => 'URL strežnika Zulip'; + + @override + String get loginHidePassword => 'Skrij geslo'; + + @override + String get loginEmailLabel => 'E-poštni naslov'; + + @override + String get loginErrorMissingEmail => 'Vnesite svoj e-poštni naslov.'; + + @override + String get loginPasswordLabel => 'Geslo'; + + @override + String get loginErrorMissingPassword => 'Vnesite svoje geslo.'; + + @override + String get loginUsernameLabel => 'Uporabniško ime'; + + @override + String get loginErrorMissingUsername => 'Vnesite svoje uporabniško ime.'; + + @override + String get topicValidationErrorTooLong => + 'Dolžina teme ne sme presegati 60 znakov.'; + + @override + String get topicValidationErrorMandatoryButEmpty => + 'Teme so v tej organizaciji obvezne.'; + + @override + String get errorContentNotInsertedTitle => 'Vsebina ni vstavljena'; + + @override + String get errorContentToInsertIsEmpty => + 'Datoteka za vstavljanje je prazna ali nedostopna.'; + + @override + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ) { + return '$url uporablja strežnik Zulip $zulipVersion, ki ni podprt. Najnižja podprta različica je strežnik Zulip $minSupportedZulipVersion.'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return 'Vašega računa na $url ni bilo mogoče overiti. Poskusite se znova prijaviti ali uporabite drug račun.'; + } + + @override + String get errorInvalidResponse => 'Strežnik je poslal neveljaven odgovor.'; + + @override + String get errorNetworkRequestFailed => 'Omrežna zahteva je spodletela'; + + @override + String errorMalformedResponse(int httpStatus) { + return 'Strežnik je poslal napačno oblikovan odgovor; stanje HTTP $httpStatus'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return 'Strežnik je poslal napačno oblikovan odgovor; stanje HTTP $httpStatus; $details'; + } + + @override + String errorRequestFailed(int httpStatus) { + return 'Omrežna zahteva je spodletela: Stanje HTTP $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => 'Videa ni mogoče predvajati.'; + + @override + String get serverUrlValidationErrorEmpty => 'Vnesite URL.'; + + @override + String get serverUrlValidationErrorInvalidUrl => 'Vnesite veljaven URL.'; + + @override + String get serverUrlValidationErrorNoUseEmail => + 'Vnesite URL strežnika, ne vašega e-poštnega naslova.'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => + 'URL strežnika se mora začeti s http:// ali https://.'; + + @override + String get spoilerDefaultHeaderText => 'Skrito'; + + @override + String get markAllAsReadLabel => 'Označi vsa sporočila kot prebrana'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num sporočil', + few: '$num sporočila', + two: '$num sporočili', + one: '$num sporočilo', + ); + return 'Označeno je $_temp0 kot prebrano.'; + } + + @override + String get markAsReadInProgress => 'Označevanje sporočil kot prebranih…'; + + @override + String get errorMarkAsReadFailedTitle => 'Označevanje kot prebrano ni uspelo'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: 'Označeno je $num sporočil kot neprebranih', + few: 'Označena so $num sporočila kot neprebrana', + two: 'Označeni sta $num sporočili kot neprebrani', + one: 'Označeno je $num sporočilo kot neprebrano', + ); + return '$_temp0.'; + } + + @override + String get markAsUnreadInProgress => 'Označevanje sporočil kot neprebranih…'; + + @override + String get errorMarkAsUnreadFailedTitle => + 'Označevanje kot neprebrano ni uspelo'; + + @override + String get today => 'Danes'; + + @override + String get yesterday => 'Včeraj'; + + @override + String get userActiveNow => 'Trenutno aktiven'; + + @override + String get userIdle => 'Nedejaven'; + + @override + String userActiveMinutesAgo(int minutes) { + String _temp0 = intl.Intl.pluralLogic( + minutes, + locale: localeName, + other: '$minutes minutami', + few: '$minutes minutami', + two: '$minutes minutama', + one: '1 minuto', + ); + return 'Aktiven pred $_temp0'; + } + + @override + String userActiveHoursAgo(int hours) { + String _temp0 = intl.Intl.pluralLogic( + hours, + locale: localeName, + other: '$hours urami', + few: '$hours urami', + two: '$hours urama', + one: '1 uro', + ); + return 'Aktiven pred $_temp0'; + } + + @override + String get userActiveYesterday => 'Aktiven včeraj'; + + @override + String userActiveDaysAgo(int days) { + String _temp0 = intl.Intl.pluralLogic( + days, + locale: localeName, + other: '$days dnevi', + few: '$days dnevi', + two: '$days dnevoma', + one: '1 dnevom', + ); + return 'Aktiven pred $_temp0'; + } + + @override + String userActiveDate(String date) { + return 'Nazadnje aktiven $date'; + } + + @override + String get userNotActiveInYear => 'Ni bil aktiven v zadnjem letu'; + + @override + String get invisibleMode => 'Nevidni način'; + + @override + String get turnOnInvisibleModeErrorTitle => + 'Napaka pri vklopu nevidnega načina. Poskusite znova.'; + + @override + String get turnOffInvisibleModeErrorTitle => + 'Napaka pri izklopu nevidnega načina. Poskusite znova.'; + + @override + String get userRoleOwner => 'Lastnik'; + + @override + String get userRoleAdministrator => 'Skrbnik'; + + @override + String get userRoleModerator => 'Moderator'; + + @override + String get userRoleMember => 'Član'; + + @override + String get userRoleGuest => 'Gost'; + + @override + String get userRoleUnknown => 'Neznano'; + + @override + String get statusButtonLabelStatusSet => 'Status'; + + @override + String get statusButtonLabelStatusUnset => 'Nastavi status'; + + @override + String get noStatusText => 'Brez statusa'; + + @override + String get setStatusPageTitle => 'Nastavi status'; + + @override + String get statusClearButtonLabel => 'Počisti'; + + @override + String get statusSaveButtonLabel => 'Shrani'; + + @override + String get statusTextHint => 'Vaš status'; + + @override + String get userStatusBusy => 'Zaposlen'; + + @override + String get userStatusInAMeeting => 'Na sestanku'; + + @override + String get userStatusCommuting => 'Na poti v službo'; + + @override + String get userStatusOutSick => 'Na bolniški'; + + @override + String get userStatusVacationing => 'Na dopustu'; + + @override + String get userStatusWorkingRemotely => 'Delo na daljavo'; + + @override + String get userStatusAtTheOffice => 'V pisarni'; + + @override + String get updateStatusErrorTitle => + 'Napaka pri posodabljanju statusa uporabnika. Poskusite znova.'; + + @override + String get searchMessagesPageTitle => 'Iskanje'; + + @override + String get searchMessagesHintText => 'Išči'; + + @override + String get searchMessagesClearButtonTooltip => 'Počisti'; + + @override + String get inboxPageTitle => 'Nabiralnik'; + + @override + String get inboxEmptyPlaceholder => + 'V vašem nabiralniku ni neprebranih sporočil. Uporabite spodnje gumbe za ogled združenega prikaza ali seznama kanalov.'; + + @override + String get recentDmConversationsPageTitle => 'Neposredna sporočila'; + + @override + String get recentDmConversationsSectionHeader => 'Neposredna sporočila'; + + @override + String get recentDmConversationsEmptyPlaceholder => + 'Zaenkrat še nimate neposrednih sporočil! Zakaj ne bi začeli pogovora?'; + + @override + String get combinedFeedPageTitle => 'Združen prikaz'; + + @override + String get mentionsPageTitle => 'Omembe'; + + @override + String get starredMessagesPageTitle => 'Sporočila z zvezdico'; + + @override + String get channelsPageTitle => 'Kanali'; + + @override + String get channelsEmptyPlaceholder => 'Niste še naročeni na noben kanal.'; + + @override + String channelsEmptyPlaceholderWithAllChannelsLink( + String allChannelsPageTitle, + ) { + return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; + } + + @override + String get sharePageTitle => 'Deli'; + + @override + String get mainMenuMyProfile => 'Moj profil'; + + @override + String get topicsButtonTooltip => 'Teme'; + + @override + String get channelFeedButtonTooltip => 'Sporočila kanala'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: '$numOthers drugim osebam', + one: '1 drugi osebi', + ); + return '$senderFullName vam in $_temp0'; + } + + @override + String get pinnedSubscriptionsLabel => 'Pripeto'; + + @override + String get unpinnedSubscriptionsLabel => 'Nepripeto'; + + @override + String get notifSelfUser => 'Vi'; + + @override + String get reactedEmojiSelfUser => 'Vi'; + + @override + String get reactionChipsLabel => 'Odzivi'; + + @override + String reactionChipLabel(String emojiName, String votes) { + return '$emojiName: $votes'; + } + + @override + String reactionChipVotesYouAndOthers(int otherUsersCount) { + String _temp0 = intl.Intl.pluralLogic( + otherUsersCount, + locale: localeName, + other: 'Vi in $otherUsersCount drugih', + few: 'Vi in $otherUsersCount druge osebe', + two: 'Vi in 2 drugi osebi', + one: 'Vi in 1 druga oseba', + ); + return '$_temp0'; + } + + @override + String onePersonTyping(String typist) { + return '$typist tipka…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist in $otherTypist tipkata…'; + } + + @override + String get manyPeopleTyping => 'Več oseb tipka…'; + + @override + String get wildcardMentionAll => 'vsi'; + + @override + String get wildcardMentionEveryone => 'vsi'; + + @override + String get wildcardMentionChannel => 'kanal'; + + @override + String get wildcardMentionStream => 'tok'; + + @override + String get wildcardMentionTopic => 'tema'; + + @override + String get wildcardMentionChannelDescription => 'Obvesti kanal'; + + @override + String get wildcardMentionStreamDescription => 'Obvesti tok'; + + @override + String get wildcardMentionAllDmDescription => 'Obvesti prejemnike'; + + @override + String get wildcardMentionTopicDescription => 'Obvesti udeležence teme'; + + @override + String get messageIsEditedLabel => 'UREJENO'; + + @override + String get messageIsMovedLabel => 'PREMAKNJENO'; + + @override + String get messageNotSentLabel => 'SPOROČILO NI POSLANO'; + + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + + @override + String get themeSettingTitle => 'TEMA'; + + @override + String get themeSettingDark => 'Temna'; + + @override + String get themeSettingLight => 'Svetla'; + + @override + String get themeSettingSystem => 'Sistemska'; + + @override + String get openLinksWithInAppBrowser => + 'Odpri povezave v brskalniku znotraj aplikacije'; + + @override + String get pollWidgetQuestionMissing => 'Brez vprašanja.'; + + @override + String get pollWidgetOptionsMissing => 'Ta anketa še nima odgovorov.'; + + @override + String get initialAnchorSettingTitle => 'Odpri tok sporočil pri'; + + @override + String get initialAnchorSettingDescription => + 'Lahko izberete, ali se tok sporočil odpre pri vašem prvem neprebranem sporočilu ali pri najnovejših sporočilih.'; + + @override + String get initialAnchorSettingFirstUnreadAlways => + 'Prvo neprebrano sporočilo'; + + @override + String get initialAnchorSettingFirstUnreadConversations => + 'Prvo neprebrano v pogovorih, najnovejše drugje'; + + @override + String get initialAnchorSettingNewestAlways => 'Najnovejše sporočilo'; + + @override + String get markReadOnScrollSettingTitle => + 'Ob pomikanju označi sporočila kot prebrana'; + + @override + String get markReadOnScrollSettingDescription => + 'Naj se sporočila ob pomikanju samodejno označijo kot prebrana?'; + + @override + String get markReadOnScrollSettingAlways => 'Vedno'; + + @override + String get markReadOnScrollSettingNever => 'Nikoli'; + + @override + String get markReadOnScrollSettingConversations => + 'Samo v pogledih pogovorov'; + + @override + String get markReadOnScrollSettingConversationsDescription => + 'Sporočila bodo samodejno označena kot prebrana samo pri ogledu ene teme ali zasebnega pogovora.'; + + @override + String get experimentalFeatureSettingsPageTitle => 'Eksperimentalne funkcije'; + + @override + String get experimentalFeatureSettingsWarning => + 'Te možnosti omogočajo funkcije, ki so še v razvoju in niso pripravljene. Morda ne bodo delovale in lahko povzročijo težave v drugih delih aplikacije.\n\nNamen teh nastavitev je eksperimentiranje za uporabnike, ki delajo na razvoju Zulipa.'; + + @override + String get errorNotificationOpenTitle => 'Obvestila ni bilo mogoče odpreti'; + + @override + String get errorNotificationOpenAccountNotFound => + 'Računa, povezanega s tem obvestilom, ni bilo mogoče najti.'; + + @override + String get errorReactionAddingFailedTitle => 'Reakcije ni bilo mogoče dodati'; + + @override + String get errorReactionRemovingFailedTitle => + 'Reakcije ni bilo mogoče odstraniti'; + + @override + String get errorSharingTitle => 'Deljenje vsebine ni uspelo'; + + @override + String get errorSharingAccountNotLoggedIn => + 'Noben račun ni prijavljen. Prijavite se v račun in poskusite znova.'; + + @override + String get emojiReactionsMore => 'več'; + + @override + String get emojiPickerSearchEmoji => 'Iskanje emojijev'; + + @override + String get noEarlierMessages => 'Ni starejših sporočil'; + + @override + String get revealButtonLabel => 'Razkrij sporočilo'; + + @override + String get mutedUser => 'Uporabnik je utišan'; + + @override + String get scrollToBottomTooltip => 'Premakni se na konec'; + + @override + String get appVersionUnknownPlaceholder => '(...)'; + + @override + String get zulipAppTitle => 'Zulip'; +} diff --git a/lib/generated/l10n/zulip_localizations_uk.dart b/lib/generated/l10n/zulip_localizations_uk.dart index 24076bc706..9bc19c3ee4 100644 --- a/lib/generated/l10n/zulip_localizations_uk.dart +++ b/lib/generated/l10n/zulip_localizations_uk.dart @@ -1,1183 +1,1189 @@ -// ignore: unused_import -import 'package:intl/intl.dart' as intl; -import 'zulip_localizations.dart'; - -// ignore_for_file: type=lint - -/// The translations for Ukrainian (`uk`). -class ZulipLocalizationsUk extends ZulipLocalizations { - ZulipLocalizationsUk([String locale = 'uk']) : super(locale); - - @override - String get aboutPageTitle => 'Про Zulip'; - - @override - String get aboutPageAppVersion => 'Версія додатку'; - - @override - String get aboutPageOpenSourceLicenses => 'Ліцензії з відкритим кодом'; - - @override - String get aboutPageTapToView => 'Натисніть, щоб переглянути'; - - @override - String get upgradeWelcomeDialogTitle => - 'Ласкаво просимо у новий додаток Zulip!'; - - @override - String get upgradeWelcomeDialogMessage => - 'Ви знайдете звичні можливості у більш швидкому і легкому додатку.'; - - @override - String get upgradeWelcomeDialogLinkText => 'Ознайомтесь з анонсом у блозі!'; - - @override - String get upgradeWelcomeDialogDismiss => 'Ходімо'; - - @override - String get chooseAccountPageTitle => 'Обрати обліковий запис'; - - @override - String get settingsPageTitle => 'Налаштування'; - - @override - String get switchAccountButton => 'Змінити обліковий запис'; - - @override - String tryAnotherAccountMessage(Object url) { - return 'Ваш обліковий запис на $url завантажується деякий час.'; - } - - @override - String get tryAnotherAccountButton => 'Спробуйте інший обліковий запис'; - - @override - String get chooseAccountPageLogOutButton => 'Вийти'; - - @override - String get logOutConfirmationDialogTitle => 'Вийти?'; - - @override - String get logOutConfirmationDialogMessage => - 'Щоб використовувати цей обліковий запис у майбутньому, вам доведеться повторно ввести його дані та URL-адресу вашої організації.'; - - @override - String get logOutConfirmationDialogConfirmButton => 'Вийти'; - - @override - String get chooseAccountButtonAddAnAccount => 'Додати обліковий запис'; - - @override - String get navButtonAllChannels => 'Усі канали'; - - @override - String get allChannelsPageTitle => 'Усі канали'; - - @override - String get allChannelsEmptyPlaceholder => - 'У цій організації немає каналів, які ви можете переглянути.'; - - @override - String get profileButtonSendDirectMessage => - 'Надіслати особисте повідомлення'; - - @override - String get errorCouldNotShowUserProfile => - 'Не вдалося показати профіль користувача.'; - - @override - String get permissionsNeededTitle => 'Потрібні дозволи'; - - @override - String get permissionsNeededOpenSettings => 'Відкрити налаштування'; - - @override - String get permissionsDeniedCameraAccess => - 'Щоб завантажити зображення, надайте Zulip додаткові дозволи в налаштуваннях.'; - - @override - String get permissionsDeniedReadExternalStorage => - 'Щоб завантажувати файли, надайте Zulip додаткові дозволи в налаштуваннях.'; - - @override - String get actionSheetOptionSubscribe => 'Підписатися'; - - @override - String get subscribeFailedTitle => 'Не вдалося підписатися'; - - @override - String get actionSheetOptionMarkChannelAsRead => - 'Позначити канал як прочитаний'; - - @override - String get actionSheetOptionCopyChannelLink => 'Копіювати посилання на канал'; - - @override - String get actionSheetOptionListOfTopics => 'Список тем'; - - @override - String get actionSheetOptionChannelFeed => 'Стрічка каналу'; - - @override - String get actionSheetOptionUnsubscribe => 'Скасувати підписку'; - - @override - String unsubscribeConfirmationDialogTitle(String channelName) { - return 'Відписатися від $channelName?'; - } - - @override - String get unsubscribeConfirmationDialogMessageCannotResubscribe => - 'Once you leave this channel, you will not be able to rejoin.'; - - @override - String get unsubscribeConfirmationDialogConfirmButton => 'Скасувати підписку'; - - @override - String get unsubscribeFailedTitle => 'Не вдалося скасувати підписку'; - - @override - String get actionSheetOptionMuteTopic => 'Заглушити тему'; - - @override - String get actionSheetOptionUnmuteTopic => 'Увімкнути тему'; - - @override - String get actionSheetOptionFollowTopic => 'Підписатися на тему'; - - @override - String get actionSheetOptionUnfollowTopic => 'Відписатися від теми'; - - @override - String get actionSheetOptionResolveTopic => 'Позначити як вирішене'; - - @override - String get actionSheetOptionUnresolveTopic => 'Позначити як невирішене'; - - @override - String get errorResolveTopicFailedTitle => - 'Не вдалося позначити тему як вирішену'; - - @override - String get errorUnresolveTopicFailedTitle => - 'Не вдалося позначити тему як невирішену'; - - @override - String get actionSheetOptionSeeWhoReacted => 'Дивіться, хто відреагував'; - - @override - String get seeWhoReactedSheetNoReactions => - 'На це повідомлення немає реакцій.'; - - @override - String seeWhoReactedSheetHeaderLabel(int num) { - return 'Реакції емодзі (загалом $num)'; - } - - @override - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num голоси', - one: '1 голосу', - ); - return '$emojiName: $_temp0'; - } - - @override - String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Голоси за $emojiName ($num)'; - } - - @override - String get actionSheetOptionViewReadReceipts => - 'Переглянути сповіщення про прочитання'; - - @override - String get actionSheetReadReceipts => 'Квитанції про прочитання'; - - @override - String actionSheetReadReceiptsReadCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: 'Це повідомлення було прочитано $count людьми:', - one: 'Це повідомлення було прочитано $count особою:', - ); - return '$_temp0'; - } - - @override - String get actionSheetReadReceiptsZeroReadCount => - 'Ніхто ще не прочитав цього повідомлення.'; - - @override - String get actionSheetReadReceiptsErrorReadCount => - 'Не вдалося завантажити сповіщення про прочитання.'; - - @override - String get actionSheetOptionCopyMessageText => 'Копіювати текст повідомлення'; - - @override - String get actionSheetOptionCopyMessageLink => - 'Копіювати посилання на повідомлення'; - - @override - String get actionSheetOptionMarkAsUnread => 'Позначити як непрочитане звідси'; - - @override - String get actionSheetOptionHideMutedMessage => - 'Сховати заглушене повідомлення'; - - @override - String get actionSheetOptionShare => 'Поширити'; - - @override - String get actionSheetOptionQuoteMessage => 'Цитувати повідомлення'; - - @override - String get actionSheetOptionStarMessage => 'Вибрати повідомлення'; - - @override - String get actionSheetOptionUnstarMessage => - 'Зняти позначку зірки з повідомлення'; - - @override - String get actionSheetOptionEditMessage => 'Редагувати повідомлення'; - - @override - String get actionSheetOptionDeleteMessage => 'Видалити повідомлення'; - - @override - String get deleteMessageConfirmationDialogTitle => 'Видалити повідомлення?'; - - @override - String get deleteMessageConfirmationDialogMessage => - 'Видалення повідомлення назавжди вилучає його для всіх.'; - - @override - String get deleteMessageConfirmationDialogConfirmButton => 'Видалити'; - - @override - String get errorDeleteMessageFailedTitle => - 'Не вдалося видалити повідомлення'; - - @override - String get actionSheetOptionMarkTopicAsRead => 'Позначити тему як прочитану'; - - @override - String get actionSheetOptionCopyTopicLink => 'Копіювати посилання на тему'; - - @override - String get errorWebAuthOperationalErrorTitle => 'Щось пішло не так'; - - @override - String get errorWebAuthOperationalError => 'Сталася неочікувана помилка.'; - - @override - String get errorAccountLoggedInTitle => 'В обліковий запис уже ввійшли'; - - @override - String errorAccountLoggedIn(String email, String server) { - return 'Обліковий запис $email на $server уже є у вашому списку облікових записів.'; - } - - @override - String get errorCouldNotFetchMessageSource => - 'Не вдалося отримати джерело повідомлення.'; - - @override - String get errorCopyingFailed => 'Помилка копіювання'; - - @override - String errorFailedToUploadFileTitle(String filename) { - return 'Не вдалося завантажити файл: $filename'; - } - - @override - String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size MiB'; - } - - @override - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num файли', - one: 'Файл', - ); - return '$_temp0 перевищують ліміт сервера в $maxFileUploadSizeMib MiB і не будуть завантажені:\n\n$listMessage'; - } - - @override - String errorFilesTooLargeTitle(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: 'Файли', - one: 'Файл', - ); - return '$_temp0 занадто великий'; - } - - @override - String get errorLoginInvalidInputTitle => 'Невірний вхід'; - - @override - String get errorLoginFailedTitle => 'Помилка входу'; - - @override - String get errorMessageNotSent => 'Повідомлення не надіслано'; - - @override - String get errorMessageEditNotSaved => 'Повідомлення не збережено'; - - @override - String errorLoginCouldNotConnect(String url) { - return 'Не вдалося підключитися до сервера:\n$url'; - } - - @override - String get errorCouldNotConnectTitle => 'Не вдалося підключитися'; - - @override - String get errorMessageDoesNotSeemToExist => - 'Здається, цього повідомлення не існує.'; - - @override - String get errorQuotationFailed => 'Помилка цитування'; - - @override - String errorServerMessage(String message) { - return 'Сервер сказав:\n\n$message'; - } - - @override - String get errorConnectingToServerShort => - 'Помилка підключення до Zulip. Повторна спроба…'; - - @override - String errorConnectingToServerDetails(String serverUrl, String error) { - return 'Помилка підключення до Zulip на $serverUrl. Буде повторена спроба:\n\n$error'; - } - - @override - String get errorHandlingEventTitle => - 'Помилка обробки події Zulip. Повторна спроба підключення…'; - - @override - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ) { - return 'Помилка обробки події Zulip із $serverUrl; буде повторювати спробу.\n\nПомилка: $error\n\nПодія: $event'; - } - - @override - String get errorCouldNotOpenLinkTitle => 'Неможливо відкрити посилання'; - - @override - String errorCouldNotOpenLink(String url) { - return 'Не вдалося відкрити посилання: $url'; - } - - @override - String get errorMuteTopicFailed => 'Не вдалося заглушити тему'; - - @override - String get errorUnmuteTopicFailed => 'Не вдалося увімкнути тему'; - - @override - String get errorFollowTopicFailed => 'Не вдалося підписатися на тему'; - - @override - String get errorUnfollowTopicFailed => 'Не вдалося відписатися від теми'; - - @override - String get errorSharingFailed => 'Поширення не вдалося'; - - @override - String get errorStarMessageFailedTitle => - 'Не вдалося позначити повідомлення зіркою'; - - @override - String get errorUnstarMessageFailedTitle => - 'Не вдалося зняти позначку зірки з повідомлення'; - - @override - String get errorCouldNotEditMessageTitle => - 'Не вдалося редагувати повідомлення'; - - @override - String get successLinkCopied => 'Посилання скопійовано'; - - @override - String get successMessageTextCopied => 'Текст повідомлення скопійовано'; - - @override - String get successMessageLinkCopied => - 'Посилання на повідомлення скопійовано'; - - @override - String get successTopicLinkCopied => 'Посилання на тему скопійовано'; - - @override - String get successChannelLinkCopied => 'Посилання на канал скопійовано'; - - @override - String get errorBannerDeactivatedDmLabel => - 'Ви не можете надсилати повідомлення деактивованим користувачам.'; - - @override - String get errorBannerCannotPostInChannelLabel => - 'Ви не маєте дозволу на публікацію в цьому каналі.'; - - @override - String get composeBoxBannerLabelUnsubscribedWhenCannotSend => - 'New messages will not appear automatically.'; - - @override - String get composeBoxBannerButtonRefresh => 'Refresh'; - - @override - String get composeBoxBannerButtonSubscribe => 'Subscribe'; - - @override - String get composeBoxBannerLabelEditMessage => 'Редагування повідомлення'; - - @override - String get composeBoxBannerButtonCancel => 'Відміна'; - - @override - String get composeBoxBannerButtonSave => 'Зберегти'; - - @override - String get editAlreadyInProgressTitle => 'Неможливо редагувати повідомлення'; - - @override - String get editAlreadyInProgressMessage => - 'Редагування уже виконується. Дочекайтеся його завершення.'; - - @override - String get savingMessageEditLabel => 'ЗБЕРЕЖЕННЯ ПРАВОК…'; - - @override - String get savingMessageEditFailedLabel => 'ПРАВКИ НЕ ЗБЕРЕЖЕНІ'; - - @override - String get discardDraftConfirmationDialogTitle => - 'Відмовитися від написаного повідомлення?'; - - @override - String get discardDraftForEditConfirmationDialogMessage => - 'При редагуванні повідомлення, текст з поля для редагування видаляється.'; - - @override - String get discardDraftForOutboxConfirmationDialogMessage => - 'При відновленні невідправленого повідомлення, вміст поля редагування очищається.'; - - @override - String get discardDraftConfirmationDialogConfirmButton => 'Скинути'; - - @override - String get composeBoxAttachFilesTooltip => 'Прикріпити файли'; - - @override - String get composeBoxAttachMediaTooltip => 'Додати зображення або відео'; - - @override - String get composeBoxAttachFromCameraTooltip => 'Зробити фото'; - - @override - String get composeBoxGenericContentHint => 'Ввести повідомлення'; - - @override - String get newDmSheetComposeButtonLabel => 'Написати'; - - @override - String get newDmSheetScreenTitle => 'Нове особисте повідомлення'; - - @override - String get newDmFabButtonLabel => 'Нове особисте повідомлення'; - - @override - String get newDmSheetSearchHintEmpty => 'Додати користувачів'; - - @override - String get newDmSheetSearchHintSomeSelected => 'Додати ще…'; - - @override - String get newDmSheetNoUsersFound => 'Користувачі не знайдені'; - - @override - String composeBoxDmContentHint(String user) { - return 'Повідомлення @$user'; - } - - @override - String get composeBoxGroupDmContentHint => 'Написати групі'; - - @override - String get composeBoxSelfDmContentHint => 'Занотувати щось'; - - @override - String composeBoxChannelContentHint(String destination) { - return 'Надіслати повідомлення $destination'; - } - - @override - String get preparingEditMessageContentInput => 'Підготовка…'; - - @override - String get composeBoxSendTooltip => 'Надіслати'; - - @override - String get unknownChannelName => '(невідомий канал)'; - - @override - String get composeBoxTopicHintText => 'Тема'; - - @override - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { - return 'Вкажіть тему (або залиште “$defaultTopicName”)'; - } - - @override - String composeBoxUploadingFilename(String filename) { - return 'Завантаження $filename…'; - } - - @override - String composeBoxLoadingMessage(int messageId) { - return '(завантаження повідомлення $messageId)'; - } - - @override - String get unknownUserName => '(невідомий користувач)'; - - @override - String get dmsWithYourselfPageTitle => 'Особисті повідомлення із собою'; - - @override - String messageListGroupYouAndOthers(String others) { - return 'Ви та $others'; - } - - @override - String dmsWithOthersPageTitle(String others) { - return 'Особисті повідомлення з $others'; - } - - @override - String get emptyMessageList => 'Тут немає повідомлень.'; - - @override - String get emptyMessageListSearch => 'Немає результатів пошуку.'; - - @override - String get messageListGroupYouWithYourself => 'Повідомлення з собою'; - - @override - String get contentValidationErrorTooLong => - 'Довжина повідомлення не повинна перевищувати 10000 символів.'; - - @override - String get contentValidationErrorEmpty => 'Вам нема чого надсилати!'; - - @override - String get contentValidationErrorQuoteAndReplyInProgress => - 'Будь ласка, дочекайтеся завершення цитування.'; - - @override - String get contentValidationErrorUploadInProgress => - 'Дочекайтеся завершення завантаження.'; - - @override - String get dialogCancel => 'Відміна'; - - @override - String get dialogContinue => 'Продовжити'; - - @override - String get dialogClose => 'Закрити'; - - @override - String get errorDialogLearnMore => 'Дізнайтися більше'; - - @override - String get errorDialogContinue => 'ОК'; - - @override - String get errorDialogTitle => 'Помилка'; - - @override - String get snackBarDetails => 'Деталі'; - - @override - String get lightboxCopyLinkTooltip => 'Копіювати посилання'; - - @override - String get lightboxVideoCurrentPosition => 'Поточна позиція'; - - @override - String get lightboxVideoDuration => 'Довжина відео'; - - @override - String get loginPageTitle => 'Увійти'; - - @override - String get loginFormSubmitLabel => 'Увійти'; - - @override - String get loginMethodDivider => 'АБО'; - - @override - String signInWithFoo(String method) { - return 'Увійти з $method'; - } - - @override - String get loginAddAnAccountPageTitle => 'Додати обліковий запис'; - - @override - String get loginServerUrlLabel => 'URL-адреса вашого сервера Zulip'; - - @override - String get loginHidePassword => 'Приховати пароль'; - - @override - String get loginEmailLabel => 'Адреса електронної пошти'; - - @override - String get loginErrorMissingEmail => - 'Будь ласка, введіть свою електронну адресу.'; - - @override - String get loginPasswordLabel => 'Пароль'; - - @override - String get loginErrorMissingPassword => 'Будь ласка, введіть свій пароль.'; - - @override - String get loginUsernameLabel => 'Ім\'я користувача'; - - @override - String get loginErrorMissingUsername => 'Введіть своє ім\'я користувача.'; - - @override - String get topicValidationErrorTooLong => - 'Довжина теми не повинна перевищувати 60 символів.'; - - @override - String get topicValidationErrorMandatoryButEmpty => - 'Теми обовʼязкові в цій організації.'; - - @override - String get errorContentNotInsertedTitle => 'Вміст не вставлено'; - - @override - String get errorContentToInsertIsEmpty => - 'Файл, який потрібно вставити, порожній або до нього немає доступу.'; - - @override - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ) { - return '$url використовує Zulip Server $zulipVersion, який не підтримується. Мінімальною підтримуваною версією є Zulip Server $minSupportedZulipVersion.'; - } - - @override - String errorInvalidApiKeyMessage(String url) { - return 'Ваш обліковий запис на $url не вдалося автентифікувати. Спробуйте увійти ще раз або скористайтеся іншим обліковим записом.'; - } - - @override - String get errorInvalidResponse => 'Сервер надіслав недійсну відповідь.'; - - @override - String get errorNetworkRequestFailed => 'Помилка запиту мережі'; - - @override - String errorMalformedResponse(int httpStatus) { - return 'Сервер дав неправильну відповідь; Статус HTTP $httpStatus'; - } - - @override - String errorMalformedResponseWithCause(int httpStatus, String details) { - return 'Сервер дав неправильну відповідь; Статус HTTP $httpStatus; $details'; - } - - @override - String errorRequestFailed(int httpStatus) { - return 'Помилка мережевого запиту: статус HTTP $httpStatus'; - } - - @override - String get errorVideoPlayerFailed => 'Неможливо відтворити відео.'; - - @override - String get serverUrlValidationErrorEmpty => 'Будь ласка, введіть URL.'; - - @override - String get serverUrlValidationErrorInvalidUrl => 'Введіть дійсну URL-адресу.'; - - @override - String get serverUrlValidationErrorNoUseEmail => - 'Введіть URL-адресу сервера, а не свою електронну адресу.'; - - @override - String get serverUrlValidationErrorUnsupportedScheme => - 'URL-адреса сервера має починатися з http:// або https://.'; - - @override - String get spoilerDefaultHeaderText => 'Спойлер'; - - @override - String get markAllAsReadLabel => 'Позначити всі повідомлення як прочитані'; - - @override - String markAsReadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num повідомлення', - one: '1 повідомлення', - ); - return 'Позначено як прочитані $_temp0.'; - } - - @override - String get markAsReadInProgress => 'Позначення повідомлень як прочитаних…'; - - @override - String get errorMarkAsReadFailedTitle => 'Не вдалося позначити як прочитане'; - - @override - String markAsUnreadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num повідомлення', - one: '1 повідомлення', - ); - return 'Позначено як непрочитані $_temp0.'; - } - - @override - String get markAsUnreadInProgress => - 'Позначення повідомлень як непрочитаних…'; - - @override - String get errorMarkAsUnreadFailedTitle => - 'Не вдалося позначити як непрочитане'; - - @override - String get today => 'Сьогодні'; - - @override - String get yesterday => 'Учора'; - - @override - String get userActiveNow => 'Активний зараз'; - - @override - String get userIdle => 'Холостий хід'; - - @override - String userActiveMinutesAgo(int minutes) { - String _temp0 = intl.Intl.pluralLogic( - minutes, - locale: localeName, - other: '$minutes хвилин', - one: '1 хвилина', - ); - return 'Активний $_temp0 тому'; - } - - @override - String userActiveHoursAgo(int hours) { - String _temp0 = intl.Intl.pluralLogic( - hours, - locale: localeName, - other: '$hours години', - one: '1 година', - ); - return 'Активний $_temp0 тому'; - } - - @override - String get userActiveYesterday => 'Активний учора'; - - @override - String userActiveDaysAgo(int days) { - String _temp0 = intl.Intl.pluralLogic( - days, - locale: localeName, - other: '$days дні', - one: '1 день', - ); - return 'Активний $_temp0 тому'; - } - - @override - String userActiveDate(String date) { - return 'Активний $date'; - } - - @override - String get userNotActiveInYear => 'Неактивний протягом останнього року'; - - @override - String get invisibleMode => 'Невидимий режим'; - - @override - String get turnOnInvisibleModeErrorTitle => - 'Помилка ввімкнення режиму невидимості. Спробуйте ще раз.'; - - @override - String get turnOffInvisibleModeErrorTitle => - 'Помилка вимкнення режиму невидимості. Спробуйте ще раз.'; - - @override - String get userRoleOwner => 'Власник'; - - @override - String get userRoleAdministrator => 'Адміністратор'; - - @override - String get userRoleModerator => 'Модератор'; - - @override - String get userRoleMember => 'Учасник'; - - @override - String get userRoleGuest => 'Гість'; - - @override - String get userRoleUnknown => 'Невідомо'; - - @override - String get statusButtonLabelStatusSet => 'Статус'; - - @override - String get statusButtonLabelStatusUnset => 'Встановити статус'; - - @override - String get noStatusText => 'Немає тексту статусу'; - - @override - String get setStatusPageTitle => 'Встановити статус'; - - @override - String get statusClearButtonLabel => 'Очистити'; - - @override - String get statusSaveButtonLabel => 'Зберегти'; - - @override - String get statusTextHint => 'Ваш статус'; - - @override - String get userStatusBusy => 'Зайнятий'; - - @override - String get userStatusInAMeeting => 'На зустрічі'; - - @override - String get userStatusCommuting => 'Поїздки на роботу'; - - @override - String get userStatusOutSick => 'Хворий'; - - @override - String get userStatusVacationing => 'Відпустка'; - - @override - String get userStatusWorkingRemotely => 'Працюємо віддалено'; - - @override - String get userStatusAtTheOffice => 'В офісі'; - - @override - String get updateStatusErrorTitle => - 'Помилка оновлення статусу користувача. Спробуйте ще раз.'; - - @override - String get searchMessagesPageTitle => 'Пошук'; - - @override - String get searchMessagesHintText => 'Пошук'; - - @override - String get searchMessagesClearButtonTooltip => 'Очистити'; - - @override - String get inboxPageTitle => 'Вхідні'; - - @override - String get inboxEmptyPlaceholder => - 'Немає непрочитаних вхідних повідомлень. Використовуйте кнопки знизу для перегляду обʼєднаної стрічки або списку каналів.'; - - @override - String get recentDmConversationsPageTitle => 'Особисті повідомлення'; - - @override - String get recentDmConversationsSectionHeader => 'Особисті повідомлення'; - - @override - String get recentDmConversationsEmptyPlaceholder => - 'У вас поки що немає особистих повідомлень! Чому б не розпочати бесіду?'; - - @override - String get combinedFeedPageTitle => 'Об\'єднана стрічка'; - - @override - String get mentionsPageTitle => 'Згадки'; - - @override - String get starredMessagesPageTitle => 'Вибрані повідомлення'; - - @override - String get channelsPageTitle => 'Канали'; - - @override - String get channelsEmptyPlaceholder => 'Ви ще не підписані на жодний канал.'; - - @override - String channelsEmptyPlaceholderWithAllChannelsLink( - String allChannelsPageTitle, - ) { - return 'Ви ще не підписані на жодний канал. Спробуйте перейти за посиланням $allChannelsPageTitle та приєднатися до деяких із них.'; - } - - @override - String get sharePageTitle => 'Поділитися'; - - @override - String get mainMenuMyProfile => 'Мій профіль'; - - @override - String get topicsButtonTooltip => 'Теми'; - - @override - String get channelFeedButtonTooltip => 'Стрічка каналу'; - - @override - String notifGroupDmConversationLabel(String senderFullName, int numOthers) { - String _temp0 = intl.Intl.pluralLogic( - numOthers, - locale: localeName, - other: '$numOthers іншим', - one: '1 іншому', - ); - return '$senderFullName вам і $_temp0'; - } - - @override - String get pinnedSubscriptionsLabel => 'Закріплені'; - - @override - String get unpinnedSubscriptionsLabel => 'Відкріплені'; - - @override - String get notifSelfUser => 'Ви'; - - @override - String get reactedEmojiSelfUser => 'Ви'; - - @override - String get reactionChipsLabel => 'Реакції'; - - @override - String reactionChipLabel(String emojiName, String votes) { - return '$emojiName: $votes'; - } - - @override - String reactionChipVotesYouAndOthers(int otherUsersCount) { - String _temp0 = intl.Intl.pluralLogic( - otherUsersCount, - locale: localeName, - other: 'Ви і $otherUsersCount інші', - one: 'Ви та ще 1 особа', - ); - return '$_temp0'; - } - - @override - String onePersonTyping(String typist) { - return '$typist друкує…'; - } - - @override - String twoPeopleTyping(String typist, String otherTypist) { - return '$typist і $otherTypist друкують…'; - } - - @override - String get manyPeopleTyping => 'Кілька людей друкують…'; - - @override - String get wildcardMentionAll => 'усі'; - - @override - String get wildcardMentionEveryone => 'усі'; - - @override - String get wildcardMentionChannel => 'канал'; - - @override - String get wildcardMentionStream => 'канал'; - - @override - String get wildcardMentionTopic => 'тема'; - - @override - String get wildcardMentionChannelDescription => 'Повідомити канал'; - - @override - String get wildcardMentionStreamDescription => 'Повідомити канал'; - - @override - String get wildcardMentionAllDmDescription => 'Повідомити одержувачів'; - - @override - String get wildcardMentionTopicDescription => 'Повідомити канал'; - - @override - String get messageIsEditedLabel => 'РЕДАГОВАНО'; - - @override - String get messageIsMovedLabel => 'ПЕРЕМІЩЕНО'; - - @override - String get messageNotSentLabel => 'ПОВІДОМЛЕННЯ НЕ ВІДПРАВЛЕНО'; - - @override - String pollVoterNames(String voterNames) { - return '($voterNames)'; - } - - @override - String get themeSettingTitle => 'ТЕМА'; - - @override - String get themeSettingDark => 'Темна'; - - @override - String get themeSettingLight => 'Світла'; - - @override - String get themeSettingSystem => 'Системна'; - - @override - String get openLinksWithInAppBrowser => - 'Відкривати посилання за допомогою браузера додатку'; - - @override - String get pollWidgetQuestionMissing => 'Немає питання.'; - - @override - String get pollWidgetOptionsMissing => - 'У цьому опитуванні ще немає варіантів.'; - - @override - String get initialAnchorSettingTitle => 'Де відкривати стрічку повідомлень'; - - @override - String get initialAnchorSettingDescription => - 'Можна відкривати стрічку повідомлень на першому непрочитаному повідомленні або на найновішому.'; - - @override - String get initialAnchorSettingFirstUnreadAlways => - 'Перше непрочитане повідомлення'; - - @override - String get initialAnchorSettingFirstUnreadConversations => - 'Перше непрочитане повідомлення при перегляді бесід, найновіше у інших місцях'; - - @override - String get initialAnchorSettingNewestAlways => 'Найновіше повідомлення'; - - @override - String get markReadOnScrollSettingTitle => - 'Відмічати повідомлення як прочитані при прокручуванні'; - - @override - String get markReadOnScrollSettingDescription => - 'При прокручуванні повідомлень автоматично відмічати їх як прочитані?'; - - @override - String get markReadOnScrollSettingAlways => 'Завжди'; - - @override - String get markReadOnScrollSettingNever => 'Ніколи'; - - @override - String get markReadOnScrollSettingConversations => - 'Тільки при перегляді бесід'; - - @override - String get markReadOnScrollSettingConversationsDescription => - 'Повідомлення будуть автоматично помічатися як прочитані тільки при перегляді окремої теми або особистої бесіди.'; - - @override - String get experimentalFeatureSettingsPageTitle => 'Експериментальні функції'; - - @override - String get experimentalFeatureSettingsWarning => - 'Ці опції вмикають функції, які ще розробляються та не готові. Вони можуть не працювати та викликати проблеми в інших місцях додатку.\n\nМетою цих налаштувань є експериментування людьми, що працюють над розробкою Zulip.'; - - @override - String get errorNotificationOpenTitle => 'Не вдалося відкрити сповіщення'; - - @override - String get errorNotificationOpenAccountNotFound => - 'Обліковий запис, звʼязаний з цим сповіщенням, не знайдений.'; - - @override - String get errorReactionAddingFailedTitle => 'Не вдалося додати реакцію'; - - @override - String get errorReactionRemovingFailedTitle => 'Не вдалося видалити реакцію'; - - @override - String get errorSharingTitle => 'Не вдалося поділитися контентом'; - - @override - String get errorSharingAccountNotLoggedIn => - 'Немає облікового запису, в який ви ввійшли. Будь ласка, увійдіть в обліковий запис і спробуйте ще раз..'; - - @override - String get emojiReactionsMore => 'більше'; - - @override - String get emojiPickerSearchEmoji => 'Пошук емодзі'; - - @override - String get noEarlierMessages => 'Немає попередніх повідомлень'; - - @override - String get revealButtonLabel => 'Показати повідомлення'; - - @override - String get mutedUser => 'Заглушений користувач'; - - @override - String get scrollToBottomTooltip => 'Прокрутити вниз'; - - @override - String get appVersionUnknownPlaceholder => '(…)'; - - @override - String get zulipAppTitle => 'Zulip'; -} +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'zulip_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for Ukrainian (`uk`). +class ZulipLocalizationsUk extends ZulipLocalizations { + ZulipLocalizationsUk([String locale = 'uk']) : super(locale); + + @override + String get aboutPageTitle => 'Про Zulip'; + + @override + String get aboutPageAppVersion => 'Версія додатку'; + + @override + String get aboutPageOpenSourceLicenses => 'Ліцензії з відкритим кодом'; + + @override + String get aboutPageTapToView => 'Натисніть, щоб переглянути'; + + @override + String get upgradeWelcomeDialogTitle => + 'Ласкаво просимо у новий додаток Zulip!'; + + @override + String get upgradeWelcomeDialogMessage => + 'Ви знайдете звичні можливості у більш швидкому і легкому додатку.'; + + @override + String get upgradeWelcomeDialogLinkText => 'Ознайомтесь з анонсом у блозі!'; + + @override + String get upgradeWelcomeDialogDismiss => 'Ходімо'; + + @override + String get chooseAccountPageTitle => 'Обрати обліковий запис'; + + @override + String get settingsPageTitle => 'Налаштування'; + + @override + String get switchAccountButton => 'Змінити обліковий запис'; + + @override + String tryAnotherAccountMessage(Object url) { + return 'Ваш обліковий запис на $url завантажується деякий час.'; + } + + @override + String get tryAnotherAccountButton => 'Спробуйте інший обліковий запис'; + + @override + String get chooseAccountPageLogOutButton => 'Вийти'; + + @override + String get logOutConfirmationDialogTitle => 'Вийти?'; + + @override + String get logOutConfirmationDialogMessage => + 'Щоб використовувати цей обліковий запис у майбутньому, вам доведеться повторно ввести його дані та URL-адресу вашої організації.'; + + @override + String get logOutConfirmationDialogConfirmButton => 'Вийти'; + + @override + String get chooseAccountButtonAddAnAccount => 'Додати обліковий запис'; + + @override + String get navButtonAllChannels => 'Усі канали'; + + @override + String get allChannelsPageTitle => 'Усі канали'; + + @override + String get allChannelsEmptyPlaceholder => + 'У цій організації немає каналів, які ви можете переглянути.'; + + @override + String get profileButtonSendDirectMessage => + 'Надіслати особисте повідомлення'; + + @override + String get errorCouldNotShowUserProfile => + 'Не вдалося показати профіль користувача.'; + + @override + String get permissionsNeededTitle => 'Потрібні дозволи'; + + @override + String get permissionsNeededOpenSettings => 'Відкрити налаштування'; + + @override + String get permissionsDeniedCameraAccess => + 'Щоб завантажити зображення, надайте Zulip додаткові дозволи в налаштуваннях.'; + + @override + String get permissionsDeniedReadExternalStorage => + 'Щоб завантажувати файли, надайте Zulip додаткові дозволи в налаштуваннях.'; + + @override + String get actionSheetOptionSubscribe => 'Підписатися'; + + @override + String get subscribeFailedTitle => 'Не вдалося підписатися'; + + @override + String get actionSheetOptionMarkChannelAsRead => + 'Позначити канал як прочитаний'; + + @override + String get actionSheetOptionCopyChannelLink => 'Копіювати посилання на канал'; + + @override + String get actionSheetOptionListOfTopics => 'Список тем'; + + @override + String get actionSheetOptionChannelFeed => 'Стрічка каналу'; + + @override + String get actionSheetOptionUnsubscribe => 'Скасувати підписку'; + + @override + String unsubscribeConfirmationDialogTitle(String channelName) { + return 'Відписатися від $channelName?'; + } + + @override + String get unsubscribeConfirmationDialogMessageCannotResubscribe => + 'Once you leave this channel, you will not be able to rejoin.'; + + @override + String get unsubscribeConfirmationDialogConfirmButton => 'Скасувати підписку'; + + @override + String get unsubscribeFailedTitle => 'Не вдалося скасувати підписку'; + + @override + String get actionSheetOptionMuteTopic => 'Заглушити тему'; + + @override + String get actionSheetOptionUnmuteTopic => 'Увімкнути тему'; + + @override + String get actionSheetOptionFollowTopic => 'Підписатися на тему'; + + @override + String get actionSheetOptionUnfollowTopic => 'Відписатися від теми'; + + @override + String get actionSheetOptionResolveTopic => 'Позначити як вирішене'; + + @override + String get actionSheetOptionUnresolveTopic => 'Позначити як невирішене'; + + @override + String get errorResolveTopicFailedTitle => + 'Не вдалося позначити тему як вирішену'; + + @override + String get errorUnresolveTopicFailedTitle => + 'Не вдалося позначити тему як невирішену'; + + @override + String get actionSheetOptionSeeWhoReacted => 'Дивіться, хто відреагував'; + + @override + String get seeWhoReactedSheetNoReactions => + 'На це повідомлення немає реакцій.'; + + @override + String seeWhoReactedSheetHeaderLabel(int num) { + return 'Реакції емодзі (загалом $num)'; + } + + @override + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num голоси', + one: '1 голосу', + ); + return '$emojiName: $_temp0'; + } + + @override + String seeWhoReactedSheetUserListLabel(String emojiName, int num) { + return 'Голоси за $emojiName ($num)'; + } + + @override + String get actionSheetOptionViewReadReceipts => + 'Переглянути сповіщення про прочитання'; + + @override + String get actionSheetReadReceipts => 'Квитанції про прочитання'; + + @override + String actionSheetReadReceiptsReadCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: 'Це повідомлення було прочитано $count людьми:', + one: 'Це повідомлення було прочитано $count особою:', + ); + return '$_temp0'; + } + + @override + String get actionSheetReadReceiptsZeroReadCount => + 'Ніхто ще не прочитав цього повідомлення.'; + + @override + String get actionSheetReadReceiptsErrorReadCount => + 'Не вдалося завантажити сповіщення про прочитання.'; + + @override + String get actionSheetOptionCopyMessageText => 'Копіювати текст повідомлення'; + + @override + String get actionSheetOptionCopyMessageLink => + 'Копіювати посилання на повідомлення'; + + @override + String get actionSheetOptionMarkAsUnread => 'Позначити як непрочитане звідси'; + + @override + String get actionSheetOptionHideMutedMessage => + 'Сховати заглушене повідомлення'; + + @override + String get actionSheetOptionShare => 'Поширити'; + + @override + String get actionSheetOptionQuoteMessage => 'Цитувати повідомлення'; + + @override + String get actionSheetOptionStarMessage => 'Вибрати повідомлення'; + + @override + String get actionSheetOptionUnstarMessage => + 'Зняти позначку зірки з повідомлення'; + + @override + String get actionSheetOptionEditMessage => 'Редагувати повідомлення'; + + @override + String get actionSheetOptionDeleteMessage => 'Видалити повідомлення'; + + @override + String get deleteMessageConfirmationDialogTitle => 'Видалити повідомлення?'; + + @override + String get deleteMessageConfirmationDialogMessage => + 'Видалення повідомлення назавжди вилучає його для всіх.'; + + @override + String get deleteMessageConfirmationDialogConfirmButton => 'Видалити'; + + @override + String get errorDeleteMessageFailedTitle => + 'Не вдалося видалити повідомлення'; + + @override + String get actionSheetOptionMarkTopicAsRead => 'Позначити тему як прочитану'; + + @override + String get actionSheetOptionCopyTopicLink => 'Копіювати посилання на тему'; + + @override + String get errorWebAuthOperationalErrorTitle => 'Щось пішло не так'; + + @override + String get errorWebAuthOperationalError => 'Сталася неочікувана помилка.'; + + @override + String get errorAccountLoggedInTitle => 'В обліковий запис уже ввійшли'; + + @override + String errorAccountLoggedIn(String email, String server) { + return 'Обліковий запис $email на $server уже є у вашому списку облікових записів.'; + } + + @override + String get errorCouldNotFetchMessageSource => + 'Не вдалося отримати джерело повідомлення.'; + + @override + String get errorCopyingFailed => 'Помилка копіювання'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return 'Не вдалося завантажити файл: $filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename: $size MiB'; + } + + @override + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num файли', + one: 'Файл', + ); + return '$_temp0 перевищують ліміт сервера в $maxFileUploadSizeMib MiB і не будуть завантажені:\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: 'Файли', + one: 'Файл', + ); + return '$_temp0 занадто великий'; + } + + @override + String get errorLoginInvalidInputTitle => 'Невірний вхід'; + + @override + String get errorLoginFailedTitle => 'Помилка входу'; + + @override + String get errorMessageNotSent => 'Повідомлення не надіслано'; + + @override + String get errorMessageEditNotSaved => 'Повідомлення не збережено'; + + @override + String errorLoginCouldNotConnect(String url) { + return 'Не вдалося підключитися до сервера:\n$url'; + } + + @override + String get errorCouldNotConnectTitle => 'Не вдалося підключитися'; + + @override + String get errorMessageDoesNotSeemToExist => + 'Здається, цього повідомлення не існує.'; + + @override + String get errorQuotationFailed => 'Помилка цитування'; + + @override + String errorServerMessage(String message) { + return 'Сервер сказав:\n\n$message'; + } + + @override + String get errorConnectingToServerShort => + 'Помилка підключення до Zulip. Повторна спроба…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return 'Помилка підключення до Zulip на $serverUrl. Буде повторена спроба:\n\n$error'; + } + + @override + String get errorHandlingEventTitle => + 'Помилка обробки події Zulip. Повторна спроба підключення…'; + + @override + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ) { + return 'Помилка обробки події Zulip із $serverUrl; буде повторювати спробу.\n\nПомилка: $error\n\nПодія: $event'; + } + + @override + String get errorCouldNotOpenLinkTitle => 'Неможливо відкрити посилання'; + + @override + String errorCouldNotOpenLink(String url) { + return 'Не вдалося відкрити посилання: $url'; + } + + @override + String get errorMuteTopicFailed => 'Не вдалося заглушити тему'; + + @override + String get errorUnmuteTopicFailed => 'Не вдалося увімкнути тему'; + + @override + String get errorFollowTopicFailed => 'Не вдалося підписатися на тему'; + + @override + String get errorUnfollowTopicFailed => 'Не вдалося відписатися від теми'; + + @override + String get errorSharingFailed => 'Поширення не вдалося'; + + @override + String get errorStarMessageFailedTitle => + 'Не вдалося позначити повідомлення зіркою'; + + @override + String get errorUnstarMessageFailedTitle => + 'Не вдалося зняти позначку зірки з повідомлення'; + + @override + String get errorCouldNotEditMessageTitle => + 'Не вдалося редагувати повідомлення'; + + @override + String get successLinkCopied => 'Посилання скопійовано'; + + @override + String get successMessageTextCopied => 'Текст повідомлення скопійовано'; + + @override + String get successMessageLinkCopied => + 'Посилання на повідомлення скопійовано'; + + @override + String get successTopicLinkCopied => 'Посилання на тему скопійовано'; + + @override + String get successChannelLinkCopied => 'Посилання на канал скопійовано'; + + @override + String get errorBannerDeactivatedDmLabel => + 'Ви не можете надсилати повідомлення деактивованим користувачам.'; + + @override + String get errorBannerCannotPostInChannelLabel => + 'Ви не маєте дозволу на публікацію в цьому каналі.'; + + @override + String get composeBoxBannerLabelUnsubscribedWhenCannotSend => + 'New messages will not appear automatically.'; + + @override + String get composeBoxBannerButtonRefresh => 'Refresh'; + + @override + String get composeBoxBannerButtonSubscribe => 'Subscribe'; + + @override + String get composeBoxBannerLabelEditMessage => 'Редагування повідомлення'; + + @override + String get composeBoxBannerButtonCancel => 'Відміна'; + + @override + String get composeBoxBannerButtonSave => 'Зберегти'; + + @override + String get editAlreadyInProgressTitle => 'Неможливо редагувати повідомлення'; + + @override + String get editAlreadyInProgressMessage => + 'Редагування уже виконується. Дочекайтеся його завершення.'; + + @override + String get savingMessageEditLabel => 'ЗБЕРЕЖЕННЯ ПРАВОК…'; + + @override + String get savingMessageEditFailedLabel => 'ПРАВКИ НЕ ЗБЕРЕЖЕНІ'; + + @override + String get discardDraftConfirmationDialogTitle => + 'Відмовитися від написаного повідомлення?'; + + @override + String get discardDraftForEditConfirmationDialogMessage => + 'При редагуванні повідомлення, текст з поля для редагування видаляється.'; + + @override + String get discardDraftForOutboxConfirmationDialogMessage => + 'При відновленні невідправленого повідомлення, вміст поля редагування очищається.'; + + @override + String get discardDraftConfirmationDialogConfirmButton => 'Скинути'; + + @override + String get composeBoxAttachFilesTooltip => 'Прикріпити файли'; + + @override + String get composeBoxAttachMediaTooltip => 'Додати зображення або відео'; + + @override + String get composeBoxAttachFromCameraTooltip => 'Зробити фото'; + + @override + String get composeBoxAttachFromVideoCallTooltip => 'Attach a video call'; + + @override + String get composeBoxGenericContentHint => 'Ввести повідомлення'; + + @override + String get newDmSheetComposeButtonLabel => 'Написати'; + + @override + String get newDmSheetScreenTitle => 'Нове особисте повідомлення'; + + @override + String get newDmFabButtonLabel => 'Нове особисте повідомлення'; + + @override + String get newDmSheetSearchHintEmpty => 'Додати користувачів'; + + @override + String get newDmSheetSearchHintSomeSelected => 'Додати ще…'; + + @override + String get newDmSheetNoUsersFound => 'Користувачі не знайдені'; + + @override + String composeBoxDmContentHint(String user) { + return 'Повідомлення @$user'; + } + + @override + String get composeBoxGroupDmContentHint => 'Написати групі'; + + @override + String get composeBoxSelfDmContentHint => 'Занотувати щось'; + + @override + String composeBoxChannelContentHint(String destination) { + return 'Надіслати повідомлення $destination'; + } + + @override + String get preparingEditMessageContentInput => 'Підготовка…'; + + @override + String get composeBoxSendTooltip => 'Надіслати'; + + @override + String get unknownChannelName => '(невідомий канал)'; + + @override + String get composeBoxTopicHintText => 'Тема'; + + @override + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { + return 'Вкажіть тему (або залиште “$defaultTopicName”)'; + } + + @override + String composeBoxUploadingFilename(String filename) { + return 'Завантаження $filename…'; + } + + @override + String get composeBoxUploadedVideoCallUrl => 'Join video call.'; + + @override + String composeBoxLoadingMessage(int messageId) { + return '(завантаження повідомлення $messageId)'; + } + + @override + String get unknownUserName => '(невідомий користувач)'; + + @override + String get dmsWithYourselfPageTitle => 'Особисті повідомлення із собою'; + + @override + String messageListGroupYouAndOthers(String others) { + return 'Ви та $others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return 'Особисті повідомлення з $others'; + } + + @override + String get emptyMessageList => 'Тут немає повідомлень.'; + + @override + String get emptyMessageListSearch => 'Немає результатів пошуку.'; + + @override + String get messageListGroupYouWithYourself => 'Повідомлення з собою'; + + @override + String get contentValidationErrorTooLong => + 'Довжина повідомлення не повинна перевищувати 10000 символів.'; + + @override + String get contentValidationErrorEmpty => 'Вам нема чого надсилати!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => + 'Будь ласка, дочекайтеся завершення цитування.'; + + @override + String get contentValidationErrorUploadInProgress => + 'Дочекайтеся завершення завантаження.'; + + @override + String get dialogCancel => 'Відміна'; + + @override + String get dialogContinue => 'Продовжити'; + + @override + String get dialogClose => 'Закрити'; + + @override + String get errorDialogLearnMore => 'Дізнайтися більше'; + + @override + String get errorDialogContinue => 'ОК'; + + @override + String get errorDialogTitle => 'Помилка'; + + @override + String get snackBarDetails => 'Деталі'; + + @override + String get lightboxCopyLinkTooltip => 'Копіювати посилання'; + + @override + String get lightboxVideoCurrentPosition => 'Поточна позиція'; + + @override + String get lightboxVideoDuration => 'Довжина відео'; + + @override + String get loginPageTitle => 'Увійти'; + + @override + String get loginFormSubmitLabel => 'Увійти'; + + @override + String get loginMethodDivider => 'АБО'; + + @override + String signInWithFoo(String method) { + return 'Увійти з $method'; + } + + @override + String get loginAddAnAccountPageTitle => 'Додати обліковий запис'; + + @override + String get loginServerUrlLabel => 'URL-адреса вашого сервера Zulip'; + + @override + String get loginHidePassword => 'Приховати пароль'; + + @override + String get loginEmailLabel => 'Адреса електронної пошти'; + + @override + String get loginErrorMissingEmail => + 'Будь ласка, введіть свою електронну адресу.'; + + @override + String get loginPasswordLabel => 'Пароль'; + + @override + String get loginErrorMissingPassword => 'Будь ласка, введіть свій пароль.'; + + @override + String get loginUsernameLabel => 'Ім\'я користувача'; + + @override + String get loginErrorMissingUsername => 'Введіть своє ім\'я користувача.'; + + @override + String get topicValidationErrorTooLong => + 'Довжина теми не повинна перевищувати 60 символів.'; + + @override + String get topicValidationErrorMandatoryButEmpty => + 'Теми обовʼязкові в цій організації.'; + + @override + String get errorContentNotInsertedTitle => 'Вміст не вставлено'; + + @override + String get errorContentToInsertIsEmpty => + 'Файл, який потрібно вставити, порожній або до нього немає доступу.'; + + @override + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ) { + return '$url використовує Zulip Server $zulipVersion, який не підтримується. Мінімальною підтримуваною версією є Zulip Server $minSupportedZulipVersion.'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return 'Ваш обліковий запис на $url не вдалося автентифікувати. Спробуйте увійти ще раз або скористайтеся іншим обліковим записом.'; + } + + @override + String get errorInvalidResponse => 'Сервер надіслав недійсну відповідь.'; + + @override + String get errorNetworkRequestFailed => 'Помилка запиту мережі'; + + @override + String errorMalformedResponse(int httpStatus) { + return 'Сервер дав неправильну відповідь; Статус HTTP $httpStatus'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return 'Сервер дав неправильну відповідь; Статус HTTP $httpStatus; $details'; + } + + @override + String errorRequestFailed(int httpStatus) { + return 'Помилка мережевого запиту: статус HTTP $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => 'Неможливо відтворити відео.'; + + @override + String get serverUrlValidationErrorEmpty => 'Будь ласка, введіть URL.'; + + @override + String get serverUrlValidationErrorInvalidUrl => 'Введіть дійсну URL-адресу.'; + + @override + String get serverUrlValidationErrorNoUseEmail => + 'Введіть URL-адресу сервера, а не свою електронну адресу.'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => + 'URL-адреса сервера має починатися з http:// або https://.'; + + @override + String get spoilerDefaultHeaderText => 'Спойлер'; + + @override + String get markAllAsReadLabel => 'Позначити всі повідомлення як прочитані'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num повідомлення', + one: '1 повідомлення', + ); + return 'Позначено як прочитані $_temp0.'; + } + + @override + String get markAsReadInProgress => 'Позначення повідомлень як прочитаних…'; + + @override + String get errorMarkAsReadFailedTitle => 'Не вдалося позначити як прочитане'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num повідомлення', + one: '1 повідомлення', + ); + return 'Позначено як непрочитані $_temp0.'; + } + + @override + String get markAsUnreadInProgress => + 'Позначення повідомлень як непрочитаних…'; + + @override + String get errorMarkAsUnreadFailedTitle => + 'Не вдалося позначити як непрочитане'; + + @override + String get today => 'Сьогодні'; + + @override + String get yesterday => 'Учора'; + + @override + String get userActiveNow => 'Активний зараз'; + + @override + String get userIdle => 'Холостий хід'; + + @override + String userActiveMinutesAgo(int minutes) { + String _temp0 = intl.Intl.pluralLogic( + minutes, + locale: localeName, + other: '$minutes хвилин', + one: '1 хвилина', + ); + return 'Активний $_temp0 тому'; + } + + @override + String userActiveHoursAgo(int hours) { + String _temp0 = intl.Intl.pluralLogic( + hours, + locale: localeName, + other: '$hours години', + one: '1 година', + ); + return 'Активний $_temp0 тому'; + } + + @override + String get userActiveYesterday => 'Активний учора'; + + @override + String userActiveDaysAgo(int days) { + String _temp0 = intl.Intl.pluralLogic( + days, + locale: localeName, + other: '$days дні', + one: '1 день', + ); + return 'Активний $_temp0 тому'; + } + + @override + String userActiveDate(String date) { + return 'Активний $date'; + } + + @override + String get userNotActiveInYear => 'Неактивний протягом останнього року'; + + @override + String get invisibleMode => 'Невидимий режим'; + + @override + String get turnOnInvisibleModeErrorTitle => + 'Помилка ввімкнення режиму невидимості. Спробуйте ще раз.'; + + @override + String get turnOffInvisibleModeErrorTitle => + 'Помилка вимкнення режиму невидимості. Спробуйте ще раз.'; + + @override + String get userRoleOwner => 'Власник'; + + @override + String get userRoleAdministrator => 'Адміністратор'; + + @override + String get userRoleModerator => 'Модератор'; + + @override + String get userRoleMember => 'Учасник'; + + @override + String get userRoleGuest => 'Гість'; + + @override + String get userRoleUnknown => 'Невідомо'; + + @override + String get statusButtonLabelStatusSet => 'Статус'; + + @override + String get statusButtonLabelStatusUnset => 'Встановити статус'; + + @override + String get noStatusText => 'Немає тексту статусу'; + + @override + String get setStatusPageTitle => 'Встановити статус'; + + @override + String get statusClearButtonLabel => 'Очистити'; + + @override + String get statusSaveButtonLabel => 'Зберегти'; + + @override + String get statusTextHint => 'Ваш статус'; + + @override + String get userStatusBusy => 'Зайнятий'; + + @override + String get userStatusInAMeeting => 'На зустрічі'; + + @override + String get userStatusCommuting => 'Поїздки на роботу'; + + @override + String get userStatusOutSick => 'Хворий'; + + @override + String get userStatusVacationing => 'Відпустка'; + + @override + String get userStatusWorkingRemotely => 'Працюємо віддалено'; + + @override + String get userStatusAtTheOffice => 'В офісі'; + + @override + String get updateStatusErrorTitle => + 'Помилка оновлення статусу користувача. Спробуйте ще раз.'; + + @override + String get searchMessagesPageTitle => 'Пошук'; + + @override + String get searchMessagesHintText => 'Пошук'; + + @override + String get searchMessagesClearButtonTooltip => 'Очистити'; + + @override + String get inboxPageTitle => 'Вхідні'; + + @override + String get inboxEmptyPlaceholder => + 'Немає непрочитаних вхідних повідомлень. Використовуйте кнопки знизу для перегляду обʼєднаної стрічки або списку каналів.'; + + @override + String get recentDmConversationsPageTitle => 'Особисті повідомлення'; + + @override + String get recentDmConversationsSectionHeader => 'Особисті повідомлення'; + + @override + String get recentDmConversationsEmptyPlaceholder => + 'У вас поки що немає особистих повідомлень! Чому б не розпочати бесіду?'; + + @override + String get combinedFeedPageTitle => 'Об\'єднана стрічка'; + + @override + String get mentionsPageTitle => 'Згадки'; + + @override + String get starredMessagesPageTitle => 'Вибрані повідомлення'; + + @override + String get channelsPageTitle => 'Канали'; + + @override + String get channelsEmptyPlaceholder => 'Ви ще не підписані на жодний канал.'; + + @override + String channelsEmptyPlaceholderWithAllChannelsLink( + String allChannelsPageTitle, + ) { + return 'Ви ще не підписані на жодний канал. Спробуйте перейти за посиланням $allChannelsPageTitle та приєднатися до деяких із них.'; + } + + @override + String get sharePageTitle => 'Поділитися'; + + @override + String get mainMenuMyProfile => 'Мій профіль'; + + @override + String get topicsButtonTooltip => 'Теми'; + + @override + String get channelFeedButtonTooltip => 'Стрічка каналу'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: '$numOthers іншим', + one: '1 іншому', + ); + return '$senderFullName вам і $_temp0'; + } + + @override + String get pinnedSubscriptionsLabel => 'Закріплені'; + + @override + String get unpinnedSubscriptionsLabel => 'Відкріплені'; + + @override + String get notifSelfUser => 'Ви'; + + @override + String get reactedEmojiSelfUser => 'Ви'; + + @override + String get reactionChipsLabel => 'Реакції'; + + @override + String reactionChipLabel(String emojiName, String votes) { + return '$emojiName: $votes'; + } + + @override + String reactionChipVotesYouAndOthers(int otherUsersCount) { + String _temp0 = intl.Intl.pluralLogic( + otherUsersCount, + locale: localeName, + other: 'Ви і $otherUsersCount інші', + one: 'Ви та ще 1 особа', + ); + return '$_temp0'; + } + + @override + String onePersonTyping(String typist) { + return '$typist друкує…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist і $otherTypist друкують…'; + } + + @override + String get manyPeopleTyping => 'Кілька людей друкують…'; + + @override + String get wildcardMentionAll => 'усі'; + + @override + String get wildcardMentionEveryone => 'усі'; + + @override + String get wildcardMentionChannel => 'канал'; + + @override + String get wildcardMentionStream => 'канал'; + + @override + String get wildcardMentionTopic => 'тема'; + + @override + String get wildcardMentionChannelDescription => 'Повідомити канал'; + + @override + String get wildcardMentionStreamDescription => 'Повідомити канал'; + + @override + String get wildcardMentionAllDmDescription => 'Повідомити одержувачів'; + + @override + String get wildcardMentionTopicDescription => 'Повідомити канал'; + + @override + String get messageIsEditedLabel => 'РЕДАГОВАНО'; + + @override + String get messageIsMovedLabel => 'ПЕРЕМІЩЕНО'; + + @override + String get messageNotSentLabel => 'ПОВІДОМЛЕННЯ НЕ ВІДПРАВЛЕНО'; + + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + + @override + String get themeSettingTitle => 'ТЕМА'; + + @override + String get themeSettingDark => 'Темна'; + + @override + String get themeSettingLight => 'Світла'; + + @override + String get themeSettingSystem => 'Системна'; + + @override + String get openLinksWithInAppBrowser => + 'Відкривати посилання за допомогою браузера додатку'; + + @override + String get pollWidgetQuestionMissing => 'Немає питання.'; + + @override + String get pollWidgetOptionsMissing => + 'У цьому опитуванні ще немає варіантів.'; + + @override + String get initialAnchorSettingTitle => 'Де відкривати стрічку повідомлень'; + + @override + String get initialAnchorSettingDescription => + 'Можна відкривати стрічку повідомлень на першому непрочитаному повідомленні або на найновішому.'; + + @override + String get initialAnchorSettingFirstUnreadAlways => + 'Перше непрочитане повідомлення'; + + @override + String get initialAnchorSettingFirstUnreadConversations => + 'Перше непрочитане повідомлення при перегляді бесід, найновіше у інших місцях'; + + @override + String get initialAnchorSettingNewestAlways => 'Найновіше повідомлення'; + + @override + String get markReadOnScrollSettingTitle => + 'Відмічати повідомлення як прочитані при прокручуванні'; + + @override + String get markReadOnScrollSettingDescription => + 'При прокручуванні повідомлень автоматично відмічати їх як прочитані?'; + + @override + String get markReadOnScrollSettingAlways => 'Завжди'; + + @override + String get markReadOnScrollSettingNever => 'Ніколи'; + + @override + String get markReadOnScrollSettingConversations => + 'Тільки при перегляді бесід'; + + @override + String get markReadOnScrollSettingConversationsDescription => + 'Повідомлення будуть автоматично помічатися як прочитані тільки при перегляді окремої теми або особистої бесіди.'; + + @override + String get experimentalFeatureSettingsPageTitle => 'Експериментальні функції'; + + @override + String get experimentalFeatureSettingsWarning => + 'Ці опції вмикають функції, які ще розробляються та не готові. Вони можуть не працювати та викликати проблеми в інших місцях додатку.\n\nМетою цих налаштувань є експериментування людьми, що працюють над розробкою Zulip.'; + + @override + String get errorNotificationOpenTitle => 'Не вдалося відкрити сповіщення'; + + @override + String get errorNotificationOpenAccountNotFound => + 'Обліковий запис, звʼязаний з цим сповіщенням, не знайдений.'; + + @override + String get errorReactionAddingFailedTitle => 'Не вдалося додати реакцію'; + + @override + String get errorReactionRemovingFailedTitle => 'Не вдалося видалити реакцію'; + + @override + String get errorSharingTitle => 'Не вдалося поділитися контентом'; + + @override + String get errorSharingAccountNotLoggedIn => + 'Немає облікового запису, в який ви ввійшли. Будь ласка, увійдіть в обліковий запис і спробуйте ще раз..'; + + @override + String get emojiReactionsMore => 'більше'; + + @override + String get emojiPickerSearchEmoji => 'Пошук емодзі'; + + @override + String get noEarlierMessages => 'Немає попередніх повідомлень'; + + @override + String get revealButtonLabel => 'Показати повідомлення'; + + @override + String get mutedUser => 'Заглушений користувач'; + + @override + String get scrollToBottomTooltip => 'Прокрутити вниз'; + + @override + String get appVersionUnknownPlaceholder => '(…)'; + + @override + String get zulipAppTitle => 'Zulip'; +} diff --git a/lib/generated/l10n/zulip_localizations_zh.dart b/lib/generated/l10n/zulip_localizations_zh.dart index 4084a19aba..e3fd1ba78b 100644 --- a/lib/generated/l10n/zulip_localizations_zh.dart +++ b/lib/generated/l10n/zulip_localizations_zh.dart @@ -1,3344 +1,3350 @@ -// ignore: unused_import -import 'package:intl/intl.dart' as intl; -import 'zulip_localizations.dart'; - -// ignore_for_file: type=lint - -/// The translations for Chinese (`zh`). -class ZulipLocalizationsZh extends ZulipLocalizations { - ZulipLocalizationsZh([String locale = 'zh']) : super(locale); - - @override - String get aboutPageTitle => 'About Zulip'; - - @override - String get aboutPageAppVersion => 'App version'; - - @override - String get aboutPageOpenSourceLicenses => 'Open-source licenses'; - - @override - String get aboutPageTapToView => 'Tap to view'; - - @override - String get upgradeWelcomeDialogTitle => 'Welcome to the new Zulip app!'; - - @override - String get upgradeWelcomeDialogMessage => - 'You’ll find a familiar experience in a faster, sleeker package.'; - - @override - String get upgradeWelcomeDialogLinkText => - 'Check out the announcement blog post!'; - - @override - String get upgradeWelcomeDialogDismiss => 'Let\'s go'; - - @override - String get chooseAccountPageTitle => 'Choose account'; - - @override - String get settingsPageTitle => 'Settings'; - - @override - String get switchAccountButton => 'Switch account'; - - @override - String tryAnotherAccountMessage(Object url) { - return 'Your account at $url is taking a while to load.'; - } - - @override - String get tryAnotherAccountButton => 'Try another account'; - - @override - String get chooseAccountPageLogOutButton => 'Log out'; - - @override - String get logOutConfirmationDialogTitle => 'Log out?'; - - @override - String get logOutConfirmationDialogMessage => - 'To use this account in the future, you will have to re-enter the URL for your organization and your account information.'; - - @override - String get logOutConfirmationDialogConfirmButton => 'Log out'; - - @override - String get chooseAccountButtonAddAnAccount => 'Add an account'; - - @override - String get navButtonAllChannels => 'All channels'; - - @override - String get allChannelsPageTitle => 'All channels'; - - @override - String get allChannelsEmptyPlaceholder => - 'There are no channels you can view in this organization.'; - - @override - String get profileButtonSendDirectMessage => 'Send direct message'; - - @override - String get errorCouldNotShowUserProfile => 'Could not show user profile.'; - - @override - String get permissionsNeededTitle => 'Permissions needed'; - - @override - String get permissionsNeededOpenSettings => 'Open settings'; - - @override - String get permissionsDeniedCameraAccess => - 'To upload an image, please grant Zulip additional permissions in Settings.'; - - @override - String get permissionsDeniedReadExternalStorage => - 'To upload files, please grant Zulip additional permissions in Settings.'; - - @override - String get actionSheetOptionSubscribe => 'Subscribe'; - - @override - String get subscribeFailedTitle => 'Failed to subscribe'; - - @override - String get actionSheetOptionMarkChannelAsRead => 'Mark channel as read'; - - @override - String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; - - @override - String get actionSheetOptionListOfTopics => 'List of topics'; - - @override - String get actionSheetOptionChannelFeed => 'Channel feed'; - - @override - String get actionSheetOptionUnsubscribe => 'Unsubscribe'; - - @override - String unsubscribeConfirmationDialogTitle(String channelName) { - return 'Unsubscribe from $channelName?'; - } - - @override - String get unsubscribeConfirmationDialogMessageCannotResubscribe => - 'Once you leave this channel, you will not be able to rejoin.'; - - @override - String get unsubscribeConfirmationDialogConfirmButton => 'Unsubscribe'; - - @override - String get unsubscribeFailedTitle => 'Failed to unsubscribe'; - - @override - String get actionSheetOptionMuteTopic => 'Mute topic'; - - @override - String get actionSheetOptionUnmuteTopic => 'Unmute topic'; - - @override - String get actionSheetOptionFollowTopic => 'Follow topic'; - - @override - String get actionSheetOptionUnfollowTopic => 'Unfollow topic'; - - @override - String get actionSheetOptionResolveTopic => 'Mark as resolved'; - - @override - String get actionSheetOptionUnresolveTopic => 'Mark as unresolved'; - - @override - String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved'; - - @override - String get errorUnresolveTopicFailedTitle => - 'Failed to mark topic as unresolved'; - - @override - String get actionSheetOptionSeeWhoReacted => 'See who reacted'; - - @override - String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; - - @override - String seeWhoReactedSheetHeaderLabel(int num) { - return 'Emoji reactions ($num total)'; - } - - @override - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num votes', - one: '1 vote', - ); - return '$emojiName: $_temp0'; - } - - @override - String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Votes for $emojiName ($num)'; - } - - @override - String get actionSheetOptionViewReadReceipts => 'View read receipts'; - - @override - String get actionSheetReadReceipts => 'Read receipts'; - - @override - String actionSheetReadReceiptsReadCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: 'This message has been read by $count people:', - one: 'This message has been read by $count person:', - ); - return '$_temp0'; - } - - @override - String get actionSheetReadReceiptsZeroReadCount => - 'No one has read this message yet.'; - - @override - String get actionSheetReadReceiptsErrorReadCount => - 'Failed to load read receipts.'; - - @override - String get actionSheetOptionCopyMessageText => 'Copy message text'; - - @override - String get actionSheetOptionCopyMessageLink => 'Copy link to message'; - - @override - String get actionSheetOptionMarkAsUnread => 'Mark as unread from here'; - - @override - String get actionSheetOptionHideMutedMessage => 'Hide muted message again'; - - @override - String get actionSheetOptionShare => 'Share'; - - @override - String get actionSheetOptionQuoteMessage => 'Quote message'; - - @override - String get actionSheetOptionStarMessage => 'Star message'; - - @override - String get actionSheetOptionUnstarMessage => 'Unstar message'; - - @override - String get actionSheetOptionEditMessage => 'Edit message'; - - @override - String get actionSheetOptionDeleteMessage => 'Delete message'; - - @override - String get deleteMessageConfirmationDialogTitle => 'Delete message?'; - - @override - String get deleteMessageConfirmationDialogMessage => - 'Deleting a message permanently removes it for everyone.'; - - @override - String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; - - @override - String get errorDeleteMessageFailedTitle => 'Failed to delete message'; - - @override - String get actionSheetOptionMarkTopicAsRead => 'Mark topic as read'; - - @override - String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; - - @override - String get errorWebAuthOperationalErrorTitle => 'Something went wrong'; - - @override - String get errorWebAuthOperationalError => 'An unexpected error occurred.'; - - @override - String get errorAccountLoggedInTitle => 'Account already logged in'; - - @override - String errorAccountLoggedIn(String email, String server) { - return 'The account $email at $server is already in your list of accounts.'; - } - - @override - String get errorCouldNotFetchMessageSource => - 'Could not fetch message source.'; - - @override - String get errorCopyingFailed => 'Copying failed'; - - @override - String errorFailedToUploadFileTitle(String filename) { - return 'Failed to upload file: $filename'; - } - - @override - String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size MiB'; - } - - @override - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num files are', - one: 'File is', - ); - return '$_temp0 larger than the server\'s limit of $maxFileUploadSizeMib MiB and will not be uploaded:\n\n$listMessage'; - } - - @override - String errorFilesTooLargeTitle(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: 'Files', - one: 'File', - ); - return '$_temp0 too large'; - } - - @override - String get errorLoginInvalidInputTitle => 'Invalid input'; - - @override - String get errorLoginFailedTitle => 'Login failed'; - - @override - String get errorMessageNotSent => 'Message not sent'; - - @override - String get errorMessageEditNotSaved => 'Message not saved'; - - @override - String errorLoginCouldNotConnect(String url) { - return 'Failed to connect to server:\n$url'; - } - - @override - String get errorCouldNotConnectTitle => 'Could not connect'; - - @override - String get errorMessageDoesNotSeemToExist => - 'That message does not seem to exist.'; - - @override - String get errorQuotationFailed => 'Quotation failed'; - - @override - String errorServerMessage(String message) { - return 'The server said:\n\n$message'; - } - - @override - String get errorConnectingToServerShort => - 'Error connecting to Zulip. Retrying…'; - - @override - String errorConnectingToServerDetails(String serverUrl, String error) { - return 'Error connecting to Zulip at $serverUrl. Will retry:\n\n$error'; - } - - @override - String get errorHandlingEventTitle => - 'Error handling a Zulip event. Retrying connection…'; - - @override - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ) { - return 'Error handling a Zulip event from $serverUrl; will retry.\n\nError: $error\n\nEvent: $event'; - } - - @override - String get errorCouldNotOpenLinkTitle => 'Unable to open link'; - - @override - String errorCouldNotOpenLink(String url) { - return 'Link could not be opened: $url'; - } - - @override - String get errorMuteTopicFailed => 'Failed to mute topic'; - - @override - String get errorUnmuteTopicFailed => 'Failed to unmute topic'; - - @override - String get errorFollowTopicFailed => 'Failed to follow topic'; - - @override - String get errorUnfollowTopicFailed => 'Failed to unfollow topic'; - - @override - String get errorSharingFailed => 'Sharing failed'; - - @override - String get errorStarMessageFailedTitle => 'Failed to star message'; - - @override - String get errorUnstarMessageFailedTitle => 'Failed to unstar message'; - - @override - String get errorCouldNotEditMessageTitle => 'Could not edit message'; - - @override - String get successLinkCopied => 'Link copied'; - - @override - String get successMessageTextCopied => 'Message text copied'; - - @override - String get successMessageLinkCopied => 'Message link copied'; - - @override - String get successTopicLinkCopied => 'Topic link copied'; - - @override - String get successChannelLinkCopied => 'Channel link copied'; - - @override - String get errorBannerDeactivatedDmLabel => - 'You cannot send messages to deactivated users.'; - - @override - String get errorBannerCannotPostInChannelLabel => - 'You do not have permission to post in this channel.'; - - @override - String get composeBoxBannerLabelUnsubscribedWhenCannotSend => - 'New messages will not appear automatically.'; - - @override - String get composeBoxBannerButtonRefresh => 'Refresh'; - - @override - String get composeBoxBannerButtonSubscribe => 'Subscribe'; - - @override - String get composeBoxBannerLabelEditMessage => 'Edit message'; - - @override - String get composeBoxBannerButtonCancel => 'Cancel'; - - @override - String get composeBoxBannerButtonSave => 'Save'; - - @override - String get editAlreadyInProgressTitle => 'Cannot edit message'; - - @override - String get editAlreadyInProgressMessage => - 'An edit is already in progress. Please wait for it to complete.'; - - @override - String get savingMessageEditLabel => 'SAVING EDIT…'; - - @override - String get savingMessageEditFailedLabel => 'EDIT NOT SAVED'; - - @override - String get discardDraftConfirmationDialogTitle => - 'Discard the message you’re writing?'; - - @override - String get discardDraftForEditConfirmationDialogMessage => - 'When you edit a message, the content that was previously in the compose box is discarded.'; - - @override - String get discardDraftForOutboxConfirmationDialogMessage => - 'When you restore an unsent message, the content that was previously in the compose box is discarded.'; - - @override - String get discardDraftConfirmationDialogConfirmButton => 'Discard'; - - @override - String get composeBoxAttachFilesTooltip => 'Attach files'; - - @override - String get composeBoxAttachMediaTooltip => 'Attach images or videos'; - - @override - String get composeBoxAttachFromCameraTooltip => 'Take a photo'; - - @override - String get composeBoxGenericContentHint => 'Type a message'; - - @override - String get newDmSheetComposeButtonLabel => 'Compose'; - - @override - String get newDmSheetScreenTitle => 'New DM'; - - @override - String get newDmFabButtonLabel => 'New DM'; - - @override - String get newDmSheetSearchHintEmpty => 'Add one or more users'; - - @override - String get newDmSheetSearchHintSomeSelected => 'Add another user…'; - - @override - String get newDmSheetNoUsersFound => 'No users found'; - - @override - String composeBoxDmContentHint(String user) { - return 'Message @$user'; - } - - @override - String get composeBoxGroupDmContentHint => 'Message group'; - - @override - String get composeBoxSelfDmContentHint => 'Write yourself a note'; - - @override - String composeBoxChannelContentHint(String destination) { - return 'Message $destination'; - } - - @override - String get preparingEditMessageContentInput => 'Preparing…'; - - @override - String get composeBoxSendTooltip => 'Send'; - - @override - String get unknownChannelName => '(unknown channel)'; - - @override - String get composeBoxTopicHintText => 'Topic'; - - @override - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { - return 'Enter a topic (skip for “$defaultTopicName”)'; - } - - @override - String composeBoxUploadingFilename(String filename) { - return 'Uploading $filename…'; - } - - @override - String composeBoxLoadingMessage(int messageId) { - return '(loading message $messageId)'; - } - - @override - String get unknownUserName => '(unknown user)'; - - @override - String get dmsWithYourselfPageTitle => 'DMs with yourself'; - - @override - String messageListGroupYouAndOthers(String others) { - return 'You and $others'; - } - - @override - String dmsWithOthersPageTitle(String others) { - return 'DMs with $others'; - } - - @override - String get emptyMessageList => 'There are no messages here.'; - - @override - String get emptyMessageListSearch => 'No search results.'; - - @override - String get messageListGroupYouWithYourself => 'Messages with yourself'; - - @override - String get contentValidationErrorTooLong => - 'Message length shouldn\'t be greater than 10000 characters.'; - - @override - String get contentValidationErrorEmpty => 'You have nothing to send!'; - - @override - String get contentValidationErrorQuoteAndReplyInProgress => - 'Please wait for the quotation to complete.'; - - @override - String get contentValidationErrorUploadInProgress => - 'Please wait for the upload to complete.'; - - @override - String get dialogCancel => 'Cancel'; - - @override - String get dialogContinue => 'Continue'; - - @override - String get dialogClose => 'Close'; - - @override - String get errorDialogLearnMore => 'Learn more'; - - @override - String get errorDialogContinue => 'OK'; - - @override - String get errorDialogTitle => 'Error'; - - @override - String get snackBarDetails => 'Details'; - - @override - String get lightboxCopyLinkTooltip => 'Copy link'; - - @override - String get lightboxVideoCurrentPosition => 'Current position'; - - @override - String get lightboxVideoDuration => 'Video duration'; - - @override - String get loginPageTitle => 'Log in'; - - @override - String get loginFormSubmitLabel => 'Log in'; - - @override - String get loginMethodDivider => 'OR'; - - @override - String signInWithFoo(String method) { - return 'Sign in with $method'; - } - - @override - String get loginAddAnAccountPageTitle => 'Add an account'; - - @override - String get loginServerUrlLabel => 'Your Zulip server URL'; - - @override - String get loginHidePassword => 'Hide password'; - - @override - String get loginEmailLabel => 'Email address'; - - @override - String get loginErrorMissingEmail => 'Please enter your email.'; - - @override - String get loginPasswordLabel => 'Password'; - - @override - String get loginErrorMissingPassword => 'Please enter your password.'; - - @override - String get loginUsernameLabel => 'Username'; - - @override - String get loginErrorMissingUsername => 'Please enter your username.'; - - @override - String get topicValidationErrorTooLong => - 'Topic length shouldn\'t be greater than 60 characters.'; - - @override - String get topicValidationErrorMandatoryButEmpty => - 'Topics are required in this organization.'; - - @override - String get errorContentNotInsertedTitle => 'Content not inserted'; - - @override - String get errorContentToInsertIsEmpty => - 'The file to be inserted is empty or cannot be accessed.'; - - @override - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ) { - return '$url is running Zulip Server $zulipVersion, which is unsupported. The minimum supported version is Zulip Server $minSupportedZulipVersion.'; - } - - @override - String errorInvalidApiKeyMessage(String url) { - return 'Your account at $url could not be authenticated. Please try logging in again or use another account.'; - } - - @override - String get errorInvalidResponse => 'The server sent an invalid response.'; - - @override - String get errorNetworkRequestFailed => 'Network request failed'; - - @override - String errorMalformedResponse(int httpStatus) { - return 'Server gave malformed response; HTTP status $httpStatus'; - } - - @override - String errorMalformedResponseWithCause(int httpStatus, String details) { - return 'Server gave malformed response; HTTP status $httpStatus; $details'; - } - - @override - String errorRequestFailed(int httpStatus) { - return 'Network request failed: HTTP status $httpStatus'; - } - - @override - String get errorVideoPlayerFailed => 'Unable to play the video.'; - - @override - String get serverUrlValidationErrorEmpty => 'Please enter a URL.'; - - @override - String get serverUrlValidationErrorInvalidUrl => 'Please enter a valid URL.'; - - @override - String get serverUrlValidationErrorNoUseEmail => - 'Please enter the server URL, not your email.'; - - @override - String get serverUrlValidationErrorUnsupportedScheme => - 'The server URL must start with http:// or https://.'; - - @override - String get spoilerDefaultHeaderText => 'Spoiler'; - - @override - String get markAllAsReadLabel => 'Mark all messages as read'; - - @override - String markAsReadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num messages', - one: '1 message', - ); - return 'Marked $_temp0 as read.'; - } - - @override - String get markAsReadInProgress => 'Marking messages as read…'; - - @override - String get errorMarkAsReadFailedTitle => 'Mark as read failed'; - - @override - String markAsUnreadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num messages', - one: '1 message', - ); - return 'Marked $_temp0 as unread.'; - } - - @override - String get markAsUnreadInProgress => 'Marking messages as unread…'; - - @override - String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed'; - - @override - String get today => 'Today'; - - @override - String get yesterday => 'Yesterday'; - - @override - String get userActiveNow => 'Active now'; - - @override - String get userIdle => 'Idle'; - - @override - String userActiveMinutesAgo(int minutes) { - String _temp0 = intl.Intl.pluralLogic( - minutes, - locale: localeName, - other: '$minutes minutes', - one: '1 minute', - ); - return 'Active $_temp0 ago'; - } - - @override - String userActiveHoursAgo(int hours) { - String _temp0 = intl.Intl.pluralLogic( - hours, - locale: localeName, - other: '$hours hours', - one: '1 hour', - ); - return 'Active $_temp0 ago'; - } - - @override - String get userActiveYesterday => 'Active yesterday'; - - @override - String userActiveDaysAgo(int days) { - String _temp0 = intl.Intl.pluralLogic( - days, - locale: localeName, - other: '$days days', - one: '1 day', - ); - return 'Active $_temp0 ago'; - } - - @override - String userActiveDate(String date) { - return 'Active $date'; - } - - @override - String get userNotActiveInYear => 'Not active in the last year'; - - @override - String get invisibleMode => 'Invisible mode'; - - @override - String get turnOnInvisibleModeErrorTitle => - 'Error turning on invisible mode. Please try again.'; - - @override - String get turnOffInvisibleModeErrorTitle => - 'Error turning off invisible mode. Please try again.'; - - @override - String get userRoleOwner => 'Owner'; - - @override - String get userRoleAdministrator => 'Administrator'; - - @override - String get userRoleModerator => 'Moderator'; - - @override - String get userRoleMember => 'Member'; - - @override - String get userRoleGuest => 'Guest'; - - @override - String get userRoleUnknown => 'Unknown'; - - @override - String get statusButtonLabelStatusSet => 'Status'; - - @override - String get statusButtonLabelStatusUnset => 'Set status'; - - @override - String get noStatusText => 'No status text'; - - @override - String get setStatusPageTitle => 'Set status'; - - @override - String get statusClearButtonLabel => 'Clear'; - - @override - String get statusSaveButtonLabel => 'Save'; - - @override - String get statusTextHint => 'Your status'; - - @override - String get userStatusBusy => 'Busy'; - - @override - String get userStatusInAMeeting => 'In a meeting'; - - @override - String get userStatusCommuting => 'Commuting'; - - @override - String get userStatusOutSick => 'Out sick'; - - @override - String get userStatusVacationing => 'Vacationing'; - - @override - String get userStatusWorkingRemotely => 'Working remotely'; - - @override - String get userStatusAtTheOffice => 'At the office'; - - @override - String get updateStatusErrorTitle => - 'Error updating user status. Please try again.'; - - @override - String get searchMessagesPageTitle => 'Search'; - - @override - String get searchMessagesHintText => 'Search'; - - @override - String get searchMessagesClearButtonTooltip => 'Clear'; - - @override - String get inboxPageTitle => 'Inbox'; - - @override - String get inboxEmptyPlaceholder => - 'There are no unread messages in your inbox. Use the buttons below to view the combined feed or list of channels.'; - - @override - String get recentDmConversationsPageTitle => 'Direct messages'; - - @override - String get recentDmConversationsSectionHeader => 'Direct messages'; - - @override - String get recentDmConversationsEmptyPlaceholder => - 'You have no direct messages yet! Why not start the conversation?'; - - @override - String get combinedFeedPageTitle => 'Combined feed'; - - @override - String get mentionsPageTitle => 'Mentions'; - - @override - String get starredMessagesPageTitle => 'Starred messages'; - - @override - String get channelsPageTitle => 'Channels'; - - @override - String get channelsEmptyPlaceholder => - 'You’re not subscribed to any channels yet.'; - - @override - String channelsEmptyPlaceholderWithAllChannelsLink( - String allChannelsPageTitle, - ) { - return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; - } - - @override - String get sharePageTitle => 'Share'; - - @override - String get mainMenuMyProfile => 'My profile'; - - @override - String get topicsButtonTooltip => 'Topics'; - - @override - String get channelFeedButtonTooltip => 'Channel feed'; - - @override - String notifGroupDmConversationLabel(String senderFullName, int numOthers) { - String _temp0 = intl.Intl.pluralLogic( - numOthers, - locale: localeName, - other: '$numOthers others', - one: '1 other', - ); - return '$senderFullName to you and $_temp0'; - } - - @override - String get pinnedSubscriptionsLabel => 'Pinned'; - - @override - String get unpinnedSubscriptionsLabel => 'Unpinned'; - - @override - String get notifSelfUser => 'You'; - - @override - String get reactedEmojiSelfUser => 'You'; - - @override - String get reactionChipsLabel => 'Reactions'; - - @override - String reactionChipLabel(String emojiName, String votes) { - return '$emojiName: $votes'; - } - - @override - String reactionChipVotesYouAndOthers(int otherUsersCount) { - String _temp0 = intl.Intl.pluralLogic( - otherUsersCount, - locale: localeName, - other: 'You and $otherUsersCount others', - one: 'You and 1 other', - ); - return '$_temp0'; - } - - @override - String onePersonTyping(String typist) { - return '$typist is typing…'; - } - - @override - String twoPeopleTyping(String typist, String otherTypist) { - return '$typist and $otherTypist are typing…'; - } - - @override - String get manyPeopleTyping => 'Several people are typing…'; - - @override - String get wildcardMentionAll => 'all'; - - @override - String get wildcardMentionEveryone => 'everyone'; - - @override - String get wildcardMentionChannel => 'channel'; - - @override - String get wildcardMentionStream => 'stream'; - - @override - String get wildcardMentionTopic => 'topic'; - - @override - String get wildcardMentionChannelDescription => 'Notify channel'; - - @override - String get wildcardMentionStreamDescription => 'Notify stream'; - - @override - String get wildcardMentionAllDmDescription => 'Notify recipients'; - - @override - String get wildcardMentionTopicDescription => 'Notify topic'; - - @override - String get messageIsEditedLabel => 'EDITED'; - - @override - String get messageIsMovedLabel => 'MOVED'; - - @override - String get messageNotSentLabel => 'MESSAGE NOT SENT'; - - @override - String pollVoterNames(String voterNames) { - return '($voterNames)'; - } - - @override - String get themeSettingTitle => 'THEME'; - - @override - String get themeSettingDark => 'Dark'; - - @override - String get themeSettingLight => 'Light'; - - @override - String get themeSettingSystem => 'System'; - - @override - String get openLinksWithInAppBrowser => 'Open links with in-app browser'; - - @override - String get pollWidgetQuestionMissing => 'No question.'; - - @override - String get pollWidgetOptionsMissing => 'This poll has no options yet.'; - - @override - String get initialAnchorSettingTitle => 'Open message feeds at'; - - @override - String get initialAnchorSettingDescription => - 'You can choose whether message feeds open at your first unread message or at the newest messages.'; - - @override - String get initialAnchorSettingFirstUnreadAlways => 'First unread message'; - - @override - String get initialAnchorSettingFirstUnreadConversations => - 'First unread message in conversation views, newest message elsewhere'; - - @override - String get initialAnchorSettingNewestAlways => 'Newest message'; - - @override - String get markReadOnScrollSettingTitle => 'Mark messages as read on scroll'; - - @override - String get markReadOnScrollSettingDescription => - 'When scrolling through messages, should they automatically be marked as read?'; - - @override - String get markReadOnScrollSettingAlways => 'Always'; - - @override - String get markReadOnScrollSettingNever => 'Never'; - - @override - String get markReadOnScrollSettingConversations => - 'Only in conversation views'; - - @override - String get markReadOnScrollSettingConversationsDescription => - 'Messages will be automatically marked as read only when viewing a single topic or direct message conversation.'; - - @override - String get experimentalFeatureSettingsPageTitle => 'Experimental features'; - - @override - String get experimentalFeatureSettingsWarning => - 'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'; - - @override - String get errorNotificationOpenTitle => 'Failed to open notification'; - - @override - String get errorNotificationOpenAccountNotFound => - 'The account associated with this notification could not be found.'; - - @override - String get errorReactionAddingFailedTitle => 'Adding reaction failed'; - - @override - String get errorReactionRemovingFailedTitle => 'Removing reaction failed'; - - @override - String get errorSharingTitle => 'Failed to share content'; - - @override - String get errorSharingAccountNotLoggedIn => - 'There is no account logged in. Please log in to an account and try again.'; - - @override - String get emojiReactionsMore => 'more'; - - @override - String get emojiPickerSearchEmoji => 'Search emoji'; - - @override - String get noEarlierMessages => 'No earlier messages'; - - @override - String get revealButtonLabel => 'Reveal message'; - - @override - String get mutedUser => 'Muted user'; - - @override - String get scrollToBottomTooltip => 'Scroll to bottom'; - - @override - String get appVersionUnknownPlaceholder => '(…)'; - - @override - String get zulipAppTitle => 'Zulip'; -} - -/// The translations for Chinese, as used in China, using the Han script (`zh_Hans_CN`). -class ZulipLocalizationsZhHansCn extends ZulipLocalizationsZh { - ZulipLocalizationsZhHansCn() : super('zh_Hans_CN'); - - @override - String get aboutPageTitle => '关于 Zulip'; - - @override - String get aboutPageAppVersion => '应用程序版本'; - - @override - String get aboutPageOpenSourceLicenses => '开源许可'; - - @override - String get aboutPageTapToView => '查看更多'; - - @override - String get upgradeWelcomeDialogTitle => '欢迎来到新的 Zulip 应用程序!'; - - @override - String get upgradeWelcomeDialogMessage => '您将在更快、更流畅的版本中享受熟悉的体验。'; - - @override - String get upgradeWelcomeDialogLinkText => '来看看最新的公告博客吧!'; - - @override - String get upgradeWelcomeDialogDismiss => '开始吧'; - - @override - String get chooseAccountPageTitle => '选择账号'; - - @override - String get settingsPageTitle => '设置'; - - @override - String get switchAccountButton => '切换账号'; - - @override - String tryAnotherAccountMessage(Object url) { - return '您在 $url 的账号加载时间过长。'; - } - - @override - String get tryAnotherAccountButton => '尝试另一个账号'; - - @override - String get chooseAccountPageLogOutButton => '登出'; - - @override - String get logOutConfirmationDialogTitle => '登出?'; - - @override - String get logOutConfirmationDialogMessage => '下次登入此账号时,您将需要重新输入组织网址和账号信息。'; - - @override - String get logOutConfirmationDialogConfirmButton => '登出'; - - @override - String get chooseAccountButtonAddAnAccount => '添加一个账号'; - - @override - String get profileButtonSendDirectMessage => '发送私信'; - - @override - String get errorCouldNotShowUserProfile => '无法显示用户个人资料。'; - - @override - String get permissionsNeededTitle => '需要额外权限'; - - @override - String get permissionsNeededOpenSettings => '打开设置'; - - @override - String get permissionsDeniedCameraAccess => '上传图片前,请在设置中授予 Zulip 相应的权限。'; - - @override - String get permissionsDeniedReadExternalStorage => - '上传文件前,请在设置中授予 Zulip 相应的权限。'; - - @override - String get actionSheetOptionSubscribe => '订阅'; - - @override - String get subscribeFailedTitle => '订阅失败'; - - @override - String get actionSheetOptionMarkChannelAsRead => '标记频道为已读'; - - @override - String get actionSheetOptionCopyChannelLink => '复制频道链接'; - - @override - String get actionSheetOptionListOfTopics => '话题列表'; - - @override - String get actionSheetOptionUnsubscribe => '取消订阅'; - - @override - String unsubscribeConfirmationDialogTitle(String channelName) { - return '确定取消订阅$channelName么?'; - } - - @override - String get unsubscribeConfirmationDialogConfirmButton => '取消订阅'; - - @override - String get unsubscribeFailedTitle => '取消订阅失败'; - - @override - String get actionSheetOptionMuteTopic => '静音话题'; - - @override - String get actionSheetOptionUnmuteTopic => '取消静音话题'; - - @override - String get actionSheetOptionFollowTopic => '关注话题'; - - @override - String get actionSheetOptionUnfollowTopic => '取消关注话题'; - - @override - String get actionSheetOptionResolveTopic => '标记为已解决'; - - @override - String get actionSheetOptionUnresolveTopic => '标记为未解决'; - - @override - String get errorResolveTopicFailedTitle => '未能将话题标记为解决'; - - @override - String get errorUnresolveTopicFailedTitle => '未能将话题标记为未解决'; - - @override - String get actionSheetOptionSeeWhoReacted => '查看谁做出了表情符号回应'; - - @override - String get seeWhoReactedSheetNoReactions => '此消息尚无表情符号回应。'; - - @override - String seeWhoReactedSheetHeaderLabel(int num) { - return '表情符号回应(共$num个)'; - } - - @override - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num 票', - one: '1 票', - ); - return '$emojiName:$_temp0'; - } - - @override - String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return '$emojiName 的投票数($num)'; - } - - @override - String get actionSheetOptionViewReadReceipts => '查看已读回执'; - - @override - String get actionSheetReadReceipts => '已读回执'; - - @override - String actionSheetReadReceiptsReadCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: '此消息已被阅读,共有 $count 人:', - one: '此消息已被阅读,共有 $count 人:', - ); - return '$_temp0'; - } - - @override - String get actionSheetReadReceiptsZeroReadCount => '尚无人阅读此消息。'; - - @override - String get actionSheetReadReceiptsErrorReadCount => '加载已读回执失败。'; - - @override - String get actionSheetOptionCopyMessageText => '复制消息文本'; - - @override - String get actionSheetOptionCopyMessageLink => '复制消息链接'; - - @override - String get actionSheetOptionMarkAsUnread => '从这里开始标为未读'; - - @override - String get actionSheetOptionHideMutedMessage => '再次隐藏静音消息'; - - @override - String get actionSheetOptionShare => '分享'; - - @override - String get actionSheetOptionQuoteMessage => '引用消息'; - - @override - String get actionSheetOptionStarMessage => '添加星标消息标记'; - - @override - String get actionSheetOptionUnstarMessage => '取消星标消息标记'; - - @override - String get actionSheetOptionEditMessage => '编辑消息'; - - @override - String get actionSheetOptionMarkTopicAsRead => '将话题标为已读'; - - @override - String get actionSheetOptionCopyTopicLink => '复制话题链接'; - - @override - String get errorWebAuthOperationalErrorTitle => '出现了一些问题'; - - @override - String get errorWebAuthOperationalError => '发生了未知的错误。'; - - @override - String get errorAccountLoggedInTitle => '已经登入该账号'; - - @override - String errorAccountLoggedIn(String email, String server) { - return '在 $server 的账号 $email 已经在您的账号列表了。'; - } - - @override - String get errorCouldNotFetchMessageSource => '未能获取原始消息。'; - - @override - String get errorCopyingFailed => '未能复制消息文本'; - - @override - String errorFailedToUploadFileTitle(String filename) { - return '未能上传文件:$filename'; - } - - @override - String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size MiB'; - } - - @override - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num 个您上传的文件', - ); - return '$_temp0大小超过了该组织 $maxFileUploadSizeMib MiB 的限制:\n\n$listMessage'; - } - - @override - String errorFilesTooLargeTitle(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '文件', - one: '文件', - ); - return '$_temp0太大'; - } - - @override - String get errorLoginInvalidInputTitle => '输入的信息不正确'; - - @override - String get errorLoginFailedTitle => '未能登入'; - - @override - String get errorMessageNotSent => '未能发送消息'; - - @override - String get errorMessageEditNotSaved => '未能保存消息编辑'; - - @override - String errorLoginCouldNotConnect(String url) { - return '未能连接到服务器:\n$url'; - } - - @override - String get errorCouldNotConnectTitle => '未能连接'; - - @override - String get errorMessageDoesNotSeemToExist => '找不到此消息。'; - - @override - String get errorQuotationFailed => '未能引用消息'; - - @override - String errorServerMessage(String message) { - return '服务器:\n\n$message'; - } - - @override - String get errorConnectingToServerShort => '未能连接到 Zulip. 重试中…'; - - @override - String errorConnectingToServerDetails(String serverUrl, String error) { - return '未能连接到在 $serverUrl 的 Zulip 服务器。即将重连:\n\n$error'; - } - - @override - String get errorHandlingEventTitle => '处理 Zulip 事件时发生了一些问题。即将重连…'; - - @override - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ) { - return '处理来自 $serverUrl 的 Zulip 事件时发生了一些问题。即将重连。\n\n错误:$error\n\n事件:$event'; - } - - @override - String get errorCouldNotOpenLinkTitle => '未能打开链接'; - - @override - String errorCouldNotOpenLink(String url) { - return '未能打开此链接:$url'; - } - - @override - String get errorMuteTopicFailed => '未能静音话题'; - - @override - String get errorUnmuteTopicFailed => '未能取消静音话题'; - - @override - String get errorFollowTopicFailed => '未能关注话题'; - - @override - String get errorUnfollowTopicFailed => '未能取消关注话题'; - - @override - String get errorSharingFailed => '分享失败'; - - @override - String get errorStarMessageFailedTitle => '未能添加星标消息标记'; - - @override - String get errorUnstarMessageFailedTitle => '未能取消星标消息标记'; - - @override - String get errorCouldNotEditMessageTitle => '未能编辑消息'; - - @override - String get successLinkCopied => '已复制链接'; - - @override - String get successMessageTextCopied => '已复制消息文本'; - - @override - String get successMessageLinkCopied => '已复制消息链接'; - - @override - String get successTopicLinkCopied => '话题链接已复制'; - - @override - String get successChannelLinkCopied => '频道链接已复制'; - - @override - String get errorBannerDeactivatedDmLabel => '您不能向被停用的用户发送消息。'; - - @override - String get errorBannerCannotPostInChannelLabel => '您没有足够的权限在此频道发送消息。'; - - @override - String get composeBoxBannerLabelEditMessage => '编辑消息'; - - @override - String get composeBoxBannerButtonCancel => '取消'; - - @override - String get composeBoxBannerButtonSave => '保存'; - - @override - String get editAlreadyInProgressTitle => '未能编辑消息'; - - @override - String get editAlreadyInProgressMessage => '已有正在被编辑的消息。请在其完成后重试。'; - - @override - String get savingMessageEditLabel => '保存中…'; - - @override - String get savingMessageEditFailedLabel => '编辑失败'; - - @override - String get discardDraftConfirmationDialogTitle => '放弃您正在撰写的消息?'; - - @override - String get discardDraftForEditConfirmationDialogMessage => - '当您编辑消息时,文本框中已有的内容将会被清空。'; - - @override - String get discardDraftForOutboxConfirmationDialogMessage => - '当您恢复未能发送的消息时,文本框已有的内容将会被清空。'; - - @override - String get discardDraftConfirmationDialogConfirmButton => '清空'; - - @override - String get composeBoxAttachFilesTooltip => '上传文件'; - - @override - String get composeBoxAttachMediaTooltip => '上传图片或视频'; - - @override - String get composeBoxAttachFromCameraTooltip => '拍摄照片'; - - @override - String get composeBoxGenericContentHint => '撰写消息'; - - @override - String get newDmSheetComposeButtonLabel => '撰写消息'; - - @override - String get newDmSheetScreenTitle => '发起私信'; - - @override - String get newDmFabButtonLabel => '发起私信'; - - @override - String get newDmSheetSearchHintEmpty => '添加一个或多个用户'; - - @override - String get newDmSheetSearchHintSomeSelected => '添加更多用户…'; - - @override - String get newDmSheetNoUsersFound => '没有用户'; - - @override - String composeBoxDmContentHint(String user) { - return '发送私信给 @$user'; - } - - @override - String get composeBoxGroupDmContentHint => '发送私信到群组'; - - @override - String get composeBoxSelfDmContentHint => '向自己撰写消息'; - - @override - String composeBoxChannelContentHint(String destination) { - return '发送消息到 $destination'; - } - - @override - String get preparingEditMessageContentInput => '准备编辑消息…'; - - @override - String get composeBoxSendTooltip => '发送'; - - @override - String get unknownChannelName => '(未知频道)'; - - @override - String get composeBoxTopicHintText => '话题'; - - @override - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { - return '输入话题(默认为“$defaultTopicName”)'; - } - - @override - String composeBoxUploadingFilename(String filename) { - return '正在上传 $filename…'; - } - - @override - String composeBoxLoadingMessage(int messageId) { - return '(加载消息 $messageId)'; - } - - @override - String get unknownUserName => '(未知用户)'; - - @override - String get dmsWithYourselfPageTitle => '与自己的私信'; - - @override - String messageListGroupYouAndOthers(String others) { - return '您和$others'; - } - - @override - String dmsWithOthersPageTitle(String others) { - return '与$others的私信'; - } - - @override - String get emptyMessageList => '这里没有消息。'; - - @override - String get emptyMessageListSearch => '没有搜索结果。'; - - @override - String get messageListGroupYouWithYourself => '与自己的私信'; - - @override - String get contentValidationErrorTooLong => '消息的长度不能超过10000个字符。'; - - @override - String get contentValidationErrorEmpty => '发送的消息不能为空!'; - - @override - String get contentValidationErrorQuoteAndReplyInProgress => '请等待引用消息完成。'; - - @override - String get contentValidationErrorUploadInProgress => '请等待上传完成。'; - - @override - String get dialogCancel => '取消'; - - @override - String get dialogContinue => '继续'; - - @override - String get dialogClose => '关闭'; - - @override - String get errorDialogLearnMore => '更多信息'; - - @override - String get errorDialogContinue => '好的'; - - @override - String get errorDialogTitle => '错误'; - - @override - String get snackBarDetails => '详情'; - - @override - String get lightboxCopyLinkTooltip => '复制链接'; - - @override - String get lightboxVideoCurrentPosition => '当前进度'; - - @override - String get lightboxVideoDuration => '视频时长'; - - @override - String get loginPageTitle => '登入'; - - @override - String get loginFormSubmitLabel => '登入'; - - @override - String get loginMethodDivider => '或'; - - @override - String signInWithFoo(String method) { - return '使用$method登入'; - } - - @override - String get loginAddAnAccountPageTitle => '添加账号'; - - @override - String get loginServerUrlLabel => 'Zulip 服务器网址'; - - @override - String get loginHidePassword => '隐藏密码'; - - @override - String get loginEmailLabel => '电子邮箱地址'; - - @override - String get loginErrorMissingEmail => '请输入电子邮箱地址。'; - - @override - String get loginPasswordLabel => '密码'; - - @override - String get loginErrorMissingPassword => '请输入密码。'; - - @override - String get loginUsernameLabel => '用户名'; - - @override - String get loginErrorMissingUsername => '请输入用户名。'; - - @override - String get topicValidationErrorTooLong => '话题长度不应该超过 60 个字符。'; - - @override - String get topicValidationErrorMandatoryButEmpty => '话题在该组织为必填项。'; - - @override - String get errorContentNotInsertedTitle => '未插入内容'; - - @override - String get errorContentToInsertIsEmpty => '要插入的文件为空或无法访问。'; - - @override - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ) { - return '$url 运行的 Zulip 服务器版本 $zulipVersion 过低。该客户端只支持 $minSupportedZulipVersion 及以后的服务器版本。'; - } - - @override - String errorInvalidApiKeyMessage(String url) { - return '您在 $url 的账号无法被登入。请重试或者使用另外的账号。'; - } - - @override - String get errorInvalidResponse => '服务器的回复不合法。'; - - @override - String get errorNetworkRequestFailed => '网络请求失败'; - - @override - String errorMalformedResponse(int httpStatus) { - return '服务器的回复不合法;HTTP 状态码 $httpStatus'; - } - - @override - String errorMalformedResponseWithCause(int httpStatus, String details) { - return '服务器的回复不合法;HTTP 状态码 $httpStatus; $details'; - } - - @override - String errorRequestFailed(int httpStatus) { - return '网络请求失败;HTTP 状态码 $httpStatus'; - } - - @override - String get errorVideoPlayerFailed => '未能播放视频。'; - - @override - String get serverUrlValidationErrorEmpty => '请输入网址。'; - - @override - String get serverUrlValidationErrorInvalidUrl => '请输入正确的网址。'; - - @override - String get serverUrlValidationErrorNoUseEmail => '请输入服务器网址,而不是您的电子邮件。'; - - @override - String get serverUrlValidationErrorUnsupportedScheme => - '服务器网址必须以 http:// 或 https:// 开头。'; - - @override - String get spoilerDefaultHeaderText => '剧透'; - - @override - String get markAllAsReadLabel => '将所有消息标为已读'; - - @override - String markAsReadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num 条消息', - ); - return '已将 $_temp0标为已读。'; - } - - @override - String get markAsReadInProgress => '正在将消息标为已读…'; - - @override - String get errorMarkAsReadFailedTitle => '未能将消息标为已读'; - - @override - String markAsUnreadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num 条消息', - ); - return '已将 $_temp0标为未读。'; - } - - @override - String get markAsUnreadInProgress => '正在将消息标为未读…'; - - @override - String get errorMarkAsUnreadFailedTitle => '未能将消息标为未读'; - - @override - String get today => '今天'; - - @override - String get yesterday => '昨天'; - - @override - String get userActiveNow => '当前活跃'; - - @override - String get userIdle => '空闲'; - - @override - String userActiveMinutesAgo(int minutes) { - String _temp0 = intl.Intl.pluralLogic( - minutes, - locale: localeName, - other: '$minutes 分钟前', - one: '1 分钟前', - ); - return '上次活跃于 $_temp0'; - } - - @override - String userActiveHoursAgo(int hours) { - String _temp0 = intl.Intl.pluralLogic( - hours, - locale: localeName, - other: '$hours 小时前', - one: '1 小时前', - ); - return '上次活跃于 $_temp0'; - } - - @override - String get userActiveYesterday => '昨天活跃'; - - @override - String userActiveDaysAgo(int days) { - String _temp0 = intl.Intl.pluralLogic( - days, - locale: localeName, - other: '$days 天前', - one: '1 天前', - ); - return '上次活跃于 $_temp0'; - } - - @override - String userActiveDate(String date) { - return '上次活跃于 $date'; - } - - @override - String get userNotActiveInYear => '去年未活跃'; - - @override - String get invisibleMode => '隐身模式'; - - @override - String get turnOnInvisibleModeErrorTitle => '启用隐身模式时发生错误。请再尝试一次。'; - - @override - String get turnOffInvisibleModeErrorTitle => '关闭隐身模式时发生错误。请再尝试一次。'; - - @override - String get userRoleOwner => '所有者'; - - @override - String get userRoleAdministrator => '管理员'; - - @override - String get userRoleModerator => '版主'; - - @override - String get userRoleMember => '成员'; - - @override - String get userRoleGuest => '访客'; - - @override - String get userRoleUnknown => '未知'; - - @override - String get statusButtonLabelStatusSet => '状态'; - - @override - String get statusButtonLabelStatusUnset => '设定状态'; - - @override - String get noStatusText => '无状态文字'; - - @override - String get setStatusPageTitle => '设定状态'; - - @override - String get statusClearButtonLabel => '清除'; - - @override - String get statusSaveButtonLabel => '保存'; - - @override - String get statusTextHint => '您的状态'; - - @override - String get userStatusBusy => '忙碌'; - - @override - String get userStatusInAMeeting => '会议中'; - - @override - String get userStatusCommuting => '通勤中'; - - @override - String get userStatusOutSick => '病假中'; - - @override - String get userStatusVacationing => '休假中'; - - @override - String get userStatusWorkingRemotely => '远程工作中'; - - @override - String get userStatusAtTheOffice => '在办公室'; - - @override - String get updateStatusErrorTitle => '更新用户状态时发生错误。请再试一次。'; - - @override - String get searchMessagesPageTitle => '搜索'; - - @override - String get searchMessagesHintText => '搜索'; - - @override - String get searchMessagesClearButtonTooltip => '清除'; - - @override - String get inboxPageTitle => '收件箱'; - - @override - String get inboxEmptyPlaceholder => '您的收件箱中没有未读消息。您可以通过底部导航栏访问综合消息或者频道列表。'; - - @override - String get recentDmConversationsPageTitle => '私信'; - - @override - String get recentDmConversationsSectionHeader => '私信'; - - @override - String get recentDmConversationsEmptyPlaceholder => '您还没有任何私信消息!何不开启一个新对话?'; - - @override - String get combinedFeedPageTitle => '综合消息'; - - @override - String get mentionsPageTitle => '被提及消息'; - - @override - String get starredMessagesPageTitle => '星标消息'; - - @override - String get channelsPageTitle => '频道'; - - @override - String get channelsEmptyPlaceholder => '您还没有订阅任何频道。'; - - @override - String get sharePageTitle => '分享'; - - @override - String get mainMenuMyProfile => '个人资料'; - - @override - String get topicsButtonTooltip => '话题'; - - @override - String get channelFeedButtonTooltip => '频道订阅'; - - @override - String notifGroupDmConversationLabel(String senderFullName, int numOthers) { - String _temp0 = intl.Intl.pluralLogic( - numOthers, - locale: localeName, - other: '$numOthers 个用户', - ); - return '$senderFullName向您和其他 $_temp0'; - } - - @override - String get pinnedSubscriptionsLabel => '置顶'; - - @override - String get unpinnedSubscriptionsLabel => '未置顶'; - - @override - String get notifSelfUser => '您'; - - @override - String get reactedEmojiSelfUser => '您'; - - @override - String get reactionChipsLabel => '表情符号回应'; - - @override - String reactionChipLabel(String emojiName, String votes) { - return '$emojiName: $votes'; - } - - @override - String reactionChipVotesYouAndOthers(int otherUsersCount) { - String _temp0 = intl.Intl.pluralLogic( - otherUsersCount, - locale: localeName, - other: '你与其他 $otherUsersCount 人', - one: '你与其他 1 人', - ); - return '$_temp0'; - } - - @override - String onePersonTyping(String typist) { - return '$typist正在输入…'; - } - - @override - String twoPeopleTyping(String typist, String otherTypist) { - return '$typist和$otherTypist正在输入…'; - } - - @override - String get manyPeopleTyping => '多个用户正在输入…'; - - @override - String get wildcardMentionAll => '所有人'; - - @override - String get wildcardMentionEveryone => '所有人'; - - @override - String get wildcardMentionChannel => '频道'; - - @override - String get wildcardMentionStream => '频道'; - - @override - String get wildcardMentionTopic => '话题'; - - @override - String get wildcardMentionChannelDescription => '通知频道'; - - @override - String get wildcardMentionStreamDescription => '通知频道'; - - @override - String get wildcardMentionAllDmDescription => '通知收件人'; - - @override - String get wildcardMentionTopicDescription => '通知话题'; - - @override - String get messageIsEditedLabel => '已编辑'; - - @override - String get messageIsMovedLabel => '已移动'; - - @override - String get messageNotSentLabel => '消息未发送'; - - @override - String pollVoterNames(String voterNames) { - return '($voterNames)'; - } - - @override - String get themeSettingTitle => '主题'; - - @override - String get themeSettingDark => '暗色模式'; - - @override - String get themeSettingLight => '浅色模式'; - - @override - String get themeSettingSystem => '跟随系统'; - - @override - String get openLinksWithInAppBrowser => '使用内置浏览器打开链接'; - - @override - String get pollWidgetQuestionMissing => '无问题。'; - - @override - String get pollWidgetOptionsMissing => '该投票还没有任何选项。'; - - @override - String get initialAnchorSettingTitle => '设置消息起始位置于'; - - @override - String get initialAnchorSettingDescription => '您可以将消息的起始位置设置为第一条未读消息或者最新消息。'; - - @override - String get initialAnchorSettingFirstUnreadAlways => '第一条未读消息'; - - @override - String get initialAnchorSettingFirstUnreadConversations => - '在单个话题或私信的第一条未读消息;在其他情况下的最新消息'; - - @override - String get initialAnchorSettingNewestAlways => '最新消息'; - - @override - String get markReadOnScrollSettingTitle => '滑动时将消息标为已读'; - - @override - String get markReadOnScrollSettingDescription => '在滑动浏览消息时,是否自动将它们标记为已读?'; - - @override - String get markReadOnScrollSettingAlways => '总是'; - - @override - String get markReadOnScrollSettingNever => '从不'; - - @override - String get markReadOnScrollSettingConversations => '只在对话视图'; - - @override - String get markReadOnScrollSettingConversationsDescription => - '只将在同一个话题或私聊中的消息自动标记为已读。'; - - @override - String get experimentalFeatureSettingsPageTitle => '实验功能'; - - @override - String get experimentalFeatureSettingsWarning => - '以下选项能够启用开发中的功能。它们暂不完善,并可能造成其他的一些问题。\n\n这些选项的目的是为了帮助开发者进行实验。'; - - @override - String get errorNotificationOpenTitle => '未能打开消息提醒'; - - @override - String get errorNotificationOpenAccountNotFound => '未能找到关联该消息提醒的账号。'; - - @override - String get errorReactionAddingFailedTitle => '未能添加表情符号'; - - @override - String get errorReactionRemovingFailedTitle => '未能移除表情符号'; - - @override - String get errorSharingTitle => '分享内容失败'; - - @override - String get errorSharingAccountNotLoggedIn => '尚未登录任何账号。请登录账号后再次尝试。'; - - @override - String get emojiReactionsMore => '更多'; - - @override - String get emojiPickerSearchEmoji => '搜索表情符号'; - - @override - String get noEarlierMessages => '没有更早的消息了'; - - @override - String get revealButtonLabel => '显示消息'; - - @override - String get mutedUser => '静音用户'; - - @override - String get scrollToBottomTooltip => '拖动到最底'; - - @override - String get appVersionUnknownPlaceholder => '(…)'; - - @override - String get zulipAppTitle => 'Zulip'; -} - -/// The translations for Chinese, as used in Taiwan, using the Han script (`zh_Hant_TW`). -class ZulipLocalizationsZhHantTw extends ZulipLocalizationsZh { - ZulipLocalizationsZhHantTw() : super('zh_Hant_TW'); - - @override - String get aboutPageTitle => '關於 Zulip'; - - @override - String get aboutPageAppVersion => 'App 版本'; - - @override - String get aboutPageOpenSourceLicenses => '開源授權條款'; - - @override - String get aboutPageTapToView => '點選查看'; - - @override - String get upgradeWelcomeDialogTitle => '歡迎使用新 Zulip 應用程式!'; - - @override - String get upgradeWelcomeDialogMessage => '您將在更快、更流暢的版本中享受熟悉的體驗。'; - - @override - String get upgradeWelcomeDialogLinkText => '查看公告部落格文章!'; - - @override - String get upgradeWelcomeDialogDismiss => '開始吧'; - - @override - String get chooseAccountPageTitle => '選取帳號'; - - @override - String get settingsPageTitle => '設定'; - - @override - String get switchAccountButton => '切換帳號'; - - @override - String tryAnotherAccountMessage(Object url) { - return '您在 $url 的帳號載入的比較久。'; - } - - @override - String get tryAnotherAccountButton => '請嘗試別的帳號'; - - @override - String get chooseAccountPageLogOutButton => '登出'; - - @override - String get logOutConfirmationDialogTitle => '登出?'; - - @override - String get logOutConfirmationDialogMessage => - '要在未來使用此帳號,您將需要重新輸入您組織的網址和您的帳號資訊。'; - - @override - String get logOutConfirmationDialogConfirmButton => '登出'; - - @override - String get chooseAccountButtonAddAnAccount => '增添帳號'; - - @override - String get navButtonAllChannels => '所有頻道'; - - @override - String get allChannelsPageTitle => '所有頻道'; - - @override - String get allChannelsEmptyPlaceholder => '在此組織中沒有您可以查看的頻道。'; - - @override - String get profileButtonSendDirectMessage => '發送私訊'; - - @override - String get errorCouldNotShowUserProfile => '無法顯示使用者設定檔。'; - - @override - String get permissionsNeededTitle => '需要的權限'; - - @override - String get permissionsNeededOpenSettings => '開啟設定'; - - @override - String get permissionsDeniedCameraAccess => '要上傳圖片,請在設定中授予 Zulip 額外權限。'; - - @override - String get permissionsDeniedReadExternalStorage => - '要上傳檔案,請在設定中授予 Zulip 額外權限。'; - - @override - String get actionSheetOptionSubscribe => '訂閱'; - - @override - String get subscribeFailedTitle => '訂閱失敗'; - - @override - String get actionSheetOptionMarkChannelAsRead => '標註頻道為已讀'; - - @override - String get actionSheetOptionCopyChannelLink => '複製頻道連結'; - - @override - String get actionSheetOptionListOfTopics => '議題列表'; - - @override - String get actionSheetOptionChannelFeed => '頻道動態'; - - @override - String get actionSheetOptionUnsubscribe => '取消訂閱'; - - @override - String unsubscribeConfirmationDialogTitle(String channelName) { - return '確定要取消訂閱 $channelName 嗎?'; - } - - @override - String get unsubscribeConfirmationDialogConfirmButton => '取消訂閱'; - - @override - String get unsubscribeFailedTitle => '取消訂閱失敗'; - - @override - String get actionSheetOptionMuteTopic => '靜音話題'; - - @override - String get actionSheetOptionUnmuteTopic => '取消靜音話題'; - - @override - String get actionSheetOptionFollowTopic => '跟隨話題'; - - @override - String get actionSheetOptionUnfollowTopic => '取消跟隨話題'; - - @override - String get actionSheetOptionResolveTopic => '標註為已解決'; - - @override - String get actionSheetOptionUnresolveTopic => '標註為未解決'; - - @override - String get errorResolveTopicFailedTitle => '無法標註話題為已解決'; - - @override - String get errorUnresolveTopicFailedTitle => '無法標註話題為未解決'; - - @override - String get actionSheetOptionSeeWhoReacted => '查看誰有回應'; - - @override - String get seeWhoReactedSheetNoReactions => '此訊息尚無任何回應。'; - - @override - String seeWhoReactedSheetHeaderLabel(int num) { - return '表情符號回應 (共 $num 個)'; - } - - @override - String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num 票', - one: '1 票', - ); - return '$emojiName:$_temp0'; - } - - @override - String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return '$emojiName 的投票數($num)'; - } - - @override - String get actionSheetOptionViewReadReceipts => '查看已讀回條'; - - @override - String get actionSheetReadReceipts => '已讀回條'; - - @override - String actionSheetReadReceiptsReadCount(int count) { - String _temp0 = intl.Intl.pluralLogic( - count, - locale: localeName, - other: '此訊息已被閱讀,共有 $count 人:', - one: '此訊息已被閱讀,共有 $count 人:', - ); - return '$_temp0'; - } - - @override - String get actionSheetReadReceiptsZeroReadCount => '尚無人閱讀此訊息。'; - - @override - String get actionSheetReadReceiptsErrorReadCount => '載入已讀回條失敗。'; - - @override - String get actionSheetOptionCopyMessageText => '複製訊息文字'; - - @override - String get actionSheetOptionCopyMessageLink => '複製訊息連結'; - - @override - String get actionSheetOptionMarkAsUnread => '從這裡開始標註為未讀'; - - @override - String get actionSheetOptionHideMutedMessage => '再次隱藏已靜音的話題'; - - @override - String get actionSheetOptionShare => '分享'; - - @override - String get actionSheetOptionQuoteMessage => '引述訊息'; - - @override - String get actionSheetOptionStarMessage => '收藏訊息'; - - @override - String get actionSheetOptionUnstarMessage => '取消收藏訊息'; - - @override - String get actionSheetOptionEditMessage => '編輯訊息'; - - @override - String get actionSheetOptionDeleteMessage => '刪除訊息'; - - @override - String get deleteMessageConfirmationDialogTitle => '刪除訊息?'; - - @override - String get deleteMessageConfirmationDialogMessage => '刪除訊息將為所有人永久移除該訊息。'; - - @override - String get deleteMessageConfirmationDialogConfirmButton => '刪除'; - - @override - String get errorDeleteMessageFailedTitle => '刪除訊息失敗'; - - @override - String get actionSheetOptionMarkTopicAsRead => '標註話題為已讀'; - - @override - String get actionSheetOptionCopyTopicLink => '複製議題的連結'; - - @override - String get errorWebAuthOperationalErrorTitle => '出錯了'; - - @override - String get errorWebAuthOperationalError => '出現了意外的錯誤。'; - - @override - String get errorAccountLoggedInTitle => '帳號已經登入了'; - - @override - String errorAccountLoggedIn(String email, String server) { - return '在 $server 的帳號 $email 已經存在帳號清單中。'; - } - - @override - String get errorCouldNotFetchMessageSource => '無法取得訊息來源。'; - - @override - String get errorCopyingFailed => '複製失敗'; - - @override - String errorFailedToUploadFileTitle(String filename) { - return '上傳檔案失敗:$filename'; - } - - @override - String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size MiB'; - } - - @override - String errorFilesTooLarge( - int num, - int maxFileUploadSizeMib, - String listMessage, - ) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num 個檔案', - one: '檔案', - ); - return '$_temp0超過伺服器 $maxFileUploadSizeMib MiB 的限制,將不會上傳:\n\n$listMessage'; - } - - @override - String errorFilesTooLargeTitle(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '檔案', - one: '檔案', - ); - return '$_temp0太大'; - } - - @override - String get errorLoginInvalidInputTitle => '無效的輸入'; - - @override - String get errorLoginFailedTitle => '登入失敗'; - - @override - String get errorMessageNotSent => '訊息沒有送出'; - - @override - String get errorMessageEditNotSaved => '訊息沒有儲存'; - - @override - String errorLoginCouldNotConnect(String url) { - return '無法連線到伺服器:\n$url'; - } - - @override - String get errorCouldNotConnectTitle => '無法連線'; - - @override - String get errorMessageDoesNotSeemToExist => '該訊息似乎不存在。'; - - @override - String get errorQuotationFailed => '引述失敗'; - - @override - String errorServerMessage(String message) { - return '伺服器回應:\n\n$message'; - } - - @override - String get errorConnectingToServerShort => '連接 Zulip 時發生錯誤。重試中…'; - - @override - String errorConnectingToServerDetails(String serverUrl, String error) { - return '連接 Zulip $serverUrl 時發生錯誤。將重試:\n\n$error'; - } - - @override - String get errorHandlingEventTitle => '處理 Zulip 事件時發生錯誤。重新連線中…'; - - @override - String errorHandlingEventDetails( - String serverUrl, - String error, - String event, - ) { - return '處理來自 $serverUrl 的 Zulip 事件時發生錯誤;將重試。\n\n錯誤:$error\n\n事件:$event'; - } - - @override - String get errorCouldNotOpenLinkTitle => '無法開啟連結'; - - @override - String errorCouldNotOpenLink(String url) { - return '無法開啟連結: $url'; - } - - @override - String get errorMuteTopicFailed => '無法靜音話題'; - - @override - String get errorUnmuteTopicFailed => '無法取消靜音話題'; - - @override - String get errorFollowTopicFailed => '無法跟隨話題'; - - @override - String get errorUnfollowTopicFailed => '無法取消跟隨話題'; - - @override - String get errorSharingFailed => '分享失敗'; - - @override - String get errorStarMessageFailedTitle => '無法收藏訊息'; - - @override - String get errorUnstarMessageFailedTitle => '無法取消收藏訊息'; - - @override - String get errorCouldNotEditMessageTitle => '無法編輯訊息'; - - @override - String get successLinkCopied => '已複製連結'; - - @override - String get successMessageTextCopied => '已複製訊息文字'; - - @override - String get successMessageLinkCopied => '已複製訊息連結'; - - @override - String get successTopicLinkCopied => '議題連結已複製'; - - @override - String get successChannelLinkCopied => '頻道連結已複製'; - - @override - String get errorBannerDeactivatedDmLabel => '您無法向已停用的使用者發送訊息。'; - - @override - String get errorBannerCannotPostInChannelLabel => '您沒有權限在此頻道發佈訊息。'; - - @override - String get composeBoxBannerLabelEditMessage => '編輯訊息'; - - @override - String get composeBoxBannerButtonCancel => '取消'; - - @override - String get composeBoxBannerButtonSave => '儲存'; - - @override - String get editAlreadyInProgressTitle => '無法編輯訊息'; - - @override - String get editAlreadyInProgressMessage => '編輯已在進行中。請等待其完成。'; - - @override - String get savingMessageEditLabel => '儲存編輯中…'; - - @override - String get savingMessageEditFailedLabel => '編輯未儲存'; - - @override - String get discardDraftConfirmationDialogTitle => '要捨棄您正在編寫的訊息嗎?'; - - @override - String get discardDraftForEditConfirmationDialogMessage => - '當您編輯訊息時,編輯框中原有的內容將被捨棄。'; - - @override - String get discardDraftForOutboxConfirmationDialogMessage => - '當您還原未發送的訊息時,編輯框中原有的內容將被捨棄。'; - - @override - String get discardDraftConfirmationDialogConfirmButton => '捨棄'; - - @override - String get composeBoxAttachFilesTooltip => '附加檔案'; - - @override - String get composeBoxAttachMediaTooltip => '附加圖片或影片'; - - @override - String get composeBoxAttachFromCameraTooltip => '拍照'; - - @override - String get composeBoxGenericContentHint => '輸入訊息'; - - @override - String get newDmSheetComposeButtonLabel => '編寫'; - - @override - String get newDmSheetScreenTitle => '新增私訊'; - - @override - String get newDmFabButtonLabel => '新增私訊'; - - @override - String get newDmSheetSearchHintEmpty => '增添一個或多個使用者'; - - @override - String get newDmSheetSearchHintSomeSelected => '增添其他使用者…'; - - @override - String get newDmSheetNoUsersFound => '找不到使用者'; - - @override - String composeBoxDmContentHint(String user) { - return '訊息 @$user'; - } - - @override - String get composeBoxGroupDmContentHint => '訊息群組'; - - @override - String get composeBoxSelfDmContentHint => '記下些什麼'; - - @override - String composeBoxChannelContentHint(String destination) { - return '訊息 $destination'; - } - - @override - String get preparingEditMessageContentInput => '準備中…'; - - @override - String get composeBoxSendTooltip => '發送'; - - @override - String get unknownChannelName => '(未知頻道)'; - - @override - String get composeBoxTopicHintText => '議題'; - - @override - String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { - return '輸入議題(留空則使用「$defaultTopicName」)'; - } - - @override - String composeBoxUploadingFilename(String filename) { - return '正在上傳 $filename…'; - } - - @override - String composeBoxLoadingMessage(int messageId) { - return '(載入訊息 $messageId 中)'; - } - - @override - String get unknownUserName => '(未知使用者)'; - - @override - String get dmsWithYourselfPageTitle => '私訊給自己'; - - @override - String messageListGroupYouAndOthers(String others) { - return '您與 $others'; - } - - @override - String dmsWithOthersPageTitle(String others) { - return '與 $others 的私訊'; - } - - @override - String get emptyMessageList => '這裡沒有訊息。'; - - @override - String get emptyMessageListSearch => '沒有搜尋結果。'; - - @override - String get messageListGroupYouWithYourself => '與自己的訊息'; - - @override - String get contentValidationErrorTooLong => '訊息長度不應超過 10000 個字元。'; - - @override - String get contentValidationErrorEmpty => '您沒有要發送的內容!'; - - @override - String get contentValidationErrorQuoteAndReplyInProgress => '請等待引述完成。'; - - @override - String get contentValidationErrorUploadInProgress => '請等待上傳完成。'; - - @override - String get dialogCancel => '取消'; - - @override - String get dialogContinue => '繼續'; - - @override - String get dialogClose => '關閉'; - - @override - String get errorDialogLearnMore => '了解更多'; - - @override - String get errorDialogContinue => 'OK'; - - @override - String get errorDialogTitle => '錯誤'; - - @override - String get snackBarDetails => '詳細資訊'; - - @override - String get lightboxCopyLinkTooltip => '複製連結'; - - @override - String get lightboxVideoCurrentPosition => '目前位置'; - - @override - String get lightboxVideoDuration => '影片長度'; - - @override - String get loginPageTitle => '登入'; - - @override - String get loginFormSubmitLabel => '登入'; - - @override - String get loginMethodDivider => '或'; - - @override - String signInWithFoo(String method) { - return '使用 $method 登入'; - } - - @override - String get loginAddAnAccountPageTitle => '增添帳號'; - - @override - String get loginServerUrlLabel => '您的 Zulip 伺服器網址'; - - @override - String get loginHidePassword => '隱藏密碼'; - - @override - String get loginEmailLabel => '電子郵件地址'; - - @override - String get loginErrorMissingEmail => '請輸入您的電子郵件地址。'; - - @override - String get loginPasswordLabel => '密碼'; - - @override - String get loginErrorMissingPassword => '請輸入您的密碼。'; - - @override - String get loginUsernameLabel => '使用者名稱'; - - @override - String get loginErrorMissingUsername => '請輸入您的使用者名稱。'; - - @override - String get topicValidationErrorTooLong => '議題長度不得超過 60 個字元。'; - - @override - String get topicValidationErrorMandatoryButEmpty => '此組織要求必須填寫議題。'; - - @override - String get errorContentNotInsertedTitle => '未插入內容'; - - @override - String get errorContentToInsertIsEmpty => '要插入的檔案為空或無法存取。'; - - @override - String errorServerVersionUnsupportedMessage( - String url, - String zulipVersion, - String minSupportedZulipVersion, - ) { - return '$url 執行的 Zulip Server 為 $zulipVersion,此版本已不受支援。最低支援版本為 Zulip Server $minSupportedZulipVersion。'; - } - - @override - String errorInvalidApiKeyMessage(String url) { - return '您在 $url 的帳號無法通過驗證。請重新登入或使用其他帳號。'; - } - - @override - String get errorInvalidResponse => '伺服器傳送了無效的請求。'; - - @override - String get errorNetworkRequestFailed => '網路請求失敗'; - - @override - String errorMalformedResponse(int httpStatus) { - return '伺服器回傳了格式錯誤的回應;HTTP 狀態碼為 $httpStatus'; - } - - @override - String errorMalformedResponseWithCause(int httpStatus, String details) { - return '伺服器回傳了格式錯誤的回應;HTTP 狀態碼為 $httpStatus;$details'; - } - - @override - String errorRequestFailed(int httpStatus) { - return '網路請求失敗:HTTP 狀態碼為 $httpStatus'; - } - - @override - String get errorVideoPlayerFailed => '無法播放影片。'; - - @override - String get serverUrlValidationErrorEmpty => '請輸入網址。'; - - @override - String get serverUrlValidationErrorInvalidUrl => '請輸入有效的網址。'; - - @override - String get serverUrlValidationErrorNoUseEmail => '請輸入伺服器網址,而非您的電子郵件。'; - - @override - String get serverUrlValidationErrorUnsupportedScheme => - '伺服器 URL 必須以 http:// 或 https:// 開頭。'; - - @override - String get spoilerDefaultHeaderText => '劇透'; - - @override - String get markAllAsReadLabel => '標註所有訊息為已讀'; - - @override - String markAsReadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num 則訊息', - one: '1 則訊息', - ); - return '已標為已讀:$_temp0。'; - } - - @override - String get markAsReadInProgress => '正在標記訊息為已讀…'; - - @override - String get errorMarkAsReadFailedTitle => '標記為已讀失敗'; - - @override - String markAsUnreadComplete(int num) { - String _temp0 = intl.Intl.pluralLogic( - num, - locale: localeName, - other: '$num 則訊息', - one: '1 則訊息', - ); - return '已標為未讀:$_temp0。'; - } - - @override - String get markAsUnreadInProgress => '正在標註訊息為未讀…'; - - @override - String get errorMarkAsUnreadFailedTitle => '標記為未讀失敗'; - - @override - String get today => '今天'; - - @override - String get yesterday => '昨天'; - - @override - String get userActiveNow => '目前活躍'; - - @override - String get userIdle => '閒置'; - - @override - String userActiveMinutesAgo(int minutes) { - String _temp0 = intl.Intl.pluralLogic( - minutes, - locale: localeName, - other: '$minutes 分鐘前', - one: '1 分鐘前', - ); - return '上次活躍於 $_temp0'; - } - - @override - String userActiveHoursAgo(int hours) { - String _temp0 = intl.Intl.pluralLogic( - hours, - locale: localeName, - other: '$hours 小時前', - one: '1 小時前', - ); - return '上次活躍於 $_temp0'; - } - - @override - String get userActiveYesterday => '昨天活躍'; - - @override - String userActiveDaysAgo(int days) { - String _temp0 = intl.Intl.pluralLogic( - days, - locale: localeName, - other: '$days 天前', - one: '1 天前', - ); - return '上次活躍於 $_temp0'; - } - - @override - String userActiveDate(String date) { - return '上次活躍於 $date'; - } - - @override - String get userNotActiveInYear => '去年未活躍'; - - @override - String get invisibleMode => '隱身模式'; - - @override - String get turnOnInvisibleModeErrorTitle => '啟用隱身模式時發生錯誤。請再試一次。'; - - @override - String get turnOffInvisibleModeErrorTitle => '關閉隱身模式時發生錯誤。請再試一次。'; - - @override - String get userRoleOwner => '擁有者'; - - @override - String get userRoleAdministrator => '管理員'; - - @override - String get userRoleModerator => '版主'; - - @override - String get userRoleMember => '成員'; - - @override - String get userRoleGuest => '訪客'; - - @override - String get userRoleUnknown => '未知'; - - @override - String get statusButtonLabelStatusSet => '狀態'; - - @override - String get statusButtonLabelStatusUnset => '設定狀態'; - - @override - String get noStatusText => '無狀態文字'; - - @override - String get setStatusPageTitle => '設定狀態'; - - @override - String get statusClearButtonLabel => '清除'; - - @override - String get statusSaveButtonLabel => '儲存'; - - @override - String get statusTextHint => '您的狀態'; - - @override - String get userStatusBusy => '忙碌'; - - @override - String get userStatusInAMeeting => '會議中'; - - @override - String get userStatusCommuting => '通勤中'; - - @override - String get userStatusOutSick => '請病假'; - - @override - String get userStatusVacationing => '休假中'; - - @override - String get userStatusWorkingRemotely => '遠端工作中'; - - @override - String get userStatusAtTheOffice => '在辦公室'; - - @override - String get updateStatusErrorTitle => '更新使用者狀態時發生錯誤。請再試一次。'; - - @override - String get searchMessagesPageTitle => '搜尋'; - - @override - String get searchMessagesHintText => '搜尋'; - - @override - String get searchMessagesClearButtonTooltip => '清除'; - - @override - String get inboxPageTitle => '收件匣'; - - @override - String get inboxEmptyPlaceholder => '您的收件匣中沒有未讀訊息。請使用下方按鈕查看整合訊息流或頻道清單。'; - - @override - String get recentDmConversationsPageTitle => '私人訊息'; - - @override - String get recentDmConversationsSectionHeader => '私人訊息'; - - @override - String get recentDmConversationsEmptyPlaceholder => '您尚未有任何私人訊息!不如開始一段對話吧?'; - - @override - String get combinedFeedPageTitle => '綜合饋給'; - - @override - String get mentionsPageTitle => '提及'; - - @override - String get starredMessagesPageTitle => '已加星號的訊息'; - - @override - String get channelsPageTitle => '頻道'; - - @override - String get channelsEmptyPlaceholder => '您尚未訂閱任何頻道。'; - - @override - String channelsEmptyPlaceholderWithAllChannelsLink( - String allChannelsPageTitle, - ) { - return '您尚未訂閱任何頻道。請前往 $allChannelsPageTitle 並加入一些頻道。'; - } - - @override - String get sharePageTitle => '分享'; - - @override - String get mainMenuMyProfile => '我的設定檔'; - - @override - String get topicsButtonTooltip => '話題'; - - @override - String get channelFeedButtonTooltip => '頻道饋給'; - - @override - String notifGroupDmConversationLabel(String senderFullName, int numOthers) { - String _temp0 = intl.Intl.pluralLogic( - numOthers, - locale: localeName, - other: '$numOthers 位其他對象', - one: '1 位其他對象、', - ); - return '$senderFullName 傳送給您和 $_temp0'; - } - - @override - String get pinnedSubscriptionsLabel => '已釘選'; - - @override - String get unpinnedSubscriptionsLabel => '未釘選'; - - @override - String get notifSelfUser => '您'; - - @override - String get reactedEmojiSelfUser => '您'; - - @override - String get reactionChipsLabel => '反應'; - - @override - String reactionChipLabel(String emojiName, String votes) { - return '$emojiName: $votes'; - } - - @override - String reactionChipVotesYouAndOthers(int otherUsersCount) { - String _temp0 = intl.Intl.pluralLogic( - otherUsersCount, - locale: localeName, - other: '你與其他 $otherUsersCount 人', - one: '你與其他 1 人', - ); - return '$_temp0'; - } - - @override - String onePersonTyping(String typist) { - return '$typist 正在輸入…'; - } - - @override - String twoPeopleTyping(String typist, String otherTypist) { - return '$typist 和 $otherTypist 正在輸入…'; - } - - @override - String get manyPeopleTyping => '有些人正在輸入…'; - - @override - String get wildcardMentionAll => '全部'; - - @override - String get wildcardMentionEveryone => '所有人'; - - @override - String get wildcardMentionChannel => '頻道'; - - @override - String get wildcardMentionStream => '串流'; - - @override - String get wildcardMentionTopic => '議題'; - - @override - String get wildcardMentionChannelDescription => '通知頻道'; - - @override - String get wildcardMentionStreamDescription => '通知串流'; - - @override - String get wildcardMentionAllDmDescription => '通知收件人'; - - @override - String get wildcardMentionTopicDescription => '通知話題'; - - @override - String get messageIsEditedLabel => '已編輯'; - - @override - String get messageIsMovedLabel => '已移動'; - - @override - String get messageNotSentLabel => '訊息未送出'; - - @override - String pollVoterNames(String voterNames) { - return '($voterNames)'; - } - - @override - String get themeSettingTitle => '主題'; - - @override - String get themeSettingDark => '深色主題'; - - @override - String get themeSettingLight => '淺色主題'; - - @override - String get themeSettingSystem => '系統主題'; - - @override - String get openLinksWithInAppBrowser => '使用應用程式內建瀏覽器開啟連結'; - - @override - String get pollWidgetQuestionMissing => '沒有問題。'; - - @override - String get pollWidgetOptionsMissing => '此投票尚未有任何選項。'; - - @override - String get initialAnchorSettingTitle => '開啟訊息串於'; - - @override - String get initialAnchorSettingDescription => '您可以選擇將訊息串開啟在第一則未讀訊息,或是最新的訊息。'; - - @override - String get initialAnchorSettingFirstUnreadAlways => '第一則未讀訊息'; - - @override - String get initialAnchorSettingFirstUnreadConversations => - '在對話檢視中開啟第一則未讀訊息,其餘情況則開啟最新訊息'; - - @override - String get initialAnchorSettingNewestAlways => '最新訊息'; - - @override - String get markReadOnScrollSettingTitle => '捲動時將訊息標記為已讀'; - - @override - String get markReadOnScrollSettingDescription => '在捲動瀏覽訊息時,是否要自動將其標記為已讀?'; - - @override - String get markReadOnScrollSettingAlways => '總是'; - - @override - String get markReadOnScrollSettingNever => '從不'; - - @override - String get markReadOnScrollSettingConversations => '僅在對話檢視中'; - - @override - String get markReadOnScrollSettingConversationsDescription => - '只有在查看單一議題或私人訊息對話時,訊息才會自動標記為已讀。'; - - @override - String get experimentalFeatureSettingsPageTitle => '實驗性功能'; - - @override - String get experimentalFeatureSettingsWarning => - '這些選項啟用的功能仍在開發中,尚未完善。它們可能無法正常運作,且可能導致應用程式其他部分出現問題。\n\n這些設定的目的是供參與 Zulip 開發的人員進行試驗使用。'; - - @override - String get errorNotificationOpenTitle => '無法開啟通知'; - - @override - String get errorNotificationOpenAccountNotFound => '找不到與此通知相關聯的帳號。'; - - @override - String get errorReactionAddingFailedTitle => '新增表情反應失敗'; - - @override - String get errorReactionRemovingFailedTitle => '移除表情反應失敗'; - - @override - String get errorSharingTitle => '分享內容失敗'; - - @override - String get errorSharingAccountNotLoggedIn => '尚未登入任何帳號。請登入帳號後再試一次。'; - - @override - String get emojiReactionsMore => '更多'; - - @override - String get emojiPickerSearchEmoji => '搜尋表情符號'; - - @override - String get noEarlierMessages => '沒有更早的訊息'; - - @override - String get revealButtonLabel => '顯示訊息'; - - @override - String get mutedUser => '已靜音的使用者'; - - @override - String get scrollToBottomTooltip => '捲動至底部'; - - @override - String get appVersionUnknownPlaceholder => '(…)'; - - @override - String get zulipAppTitle => 'Zulip'; -} +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'zulip_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for Chinese (`zh`). +class ZulipLocalizationsZh extends ZulipLocalizations { + ZulipLocalizationsZh([String locale = 'zh']) : super(locale); + + @override + String get aboutPageTitle => 'About Zulip'; + + @override + String get aboutPageAppVersion => 'App version'; + + @override + String get aboutPageOpenSourceLicenses => 'Open-source licenses'; + + @override + String get aboutPageTapToView => 'Tap to view'; + + @override + String get upgradeWelcomeDialogTitle => 'Welcome to the new Zulip app!'; + + @override + String get upgradeWelcomeDialogMessage => + 'You’ll find a familiar experience in a faster, sleeker package.'; + + @override + String get upgradeWelcomeDialogLinkText => + 'Check out the announcement blog post!'; + + @override + String get upgradeWelcomeDialogDismiss => 'Let\'s go'; + + @override + String get chooseAccountPageTitle => 'Choose account'; + + @override + String get settingsPageTitle => 'Settings'; + + @override + String get switchAccountButton => 'Switch account'; + + @override + String tryAnotherAccountMessage(Object url) { + return 'Your account at $url is taking a while to load.'; + } + + @override + String get tryAnotherAccountButton => 'Try another account'; + + @override + String get chooseAccountPageLogOutButton => 'Log out'; + + @override + String get logOutConfirmationDialogTitle => 'Log out?'; + + @override + String get logOutConfirmationDialogMessage => + 'To use this account in the future, you will have to re-enter the URL for your organization and your account information.'; + + @override + String get logOutConfirmationDialogConfirmButton => 'Log out'; + + @override + String get chooseAccountButtonAddAnAccount => 'Add an account'; + + @override + String get navButtonAllChannels => 'All channels'; + + @override + String get allChannelsPageTitle => 'All channels'; + + @override + String get allChannelsEmptyPlaceholder => + 'There are no channels you can view in this organization.'; + + @override + String get profileButtonSendDirectMessage => 'Send direct message'; + + @override + String get errorCouldNotShowUserProfile => 'Could not show user profile.'; + + @override + String get permissionsNeededTitle => 'Permissions needed'; + + @override + String get permissionsNeededOpenSettings => 'Open settings'; + + @override + String get permissionsDeniedCameraAccess => + 'To upload an image, please grant Zulip additional permissions in Settings.'; + + @override + String get permissionsDeniedReadExternalStorage => + 'To upload files, please grant Zulip additional permissions in Settings.'; + + @override + String get actionSheetOptionSubscribe => 'Subscribe'; + + @override + String get subscribeFailedTitle => 'Failed to subscribe'; + + @override + String get actionSheetOptionMarkChannelAsRead => 'Mark channel as read'; + + @override + String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; + + @override + String get actionSheetOptionListOfTopics => 'List of topics'; + + @override + String get actionSheetOptionChannelFeed => 'Channel feed'; + + @override + String get actionSheetOptionUnsubscribe => 'Unsubscribe'; + + @override + String unsubscribeConfirmationDialogTitle(String channelName) { + return 'Unsubscribe from $channelName?'; + } + + @override + String get unsubscribeConfirmationDialogMessageCannotResubscribe => + 'Once you leave this channel, you will not be able to rejoin.'; + + @override + String get unsubscribeConfirmationDialogConfirmButton => 'Unsubscribe'; + + @override + String get unsubscribeFailedTitle => 'Failed to unsubscribe'; + + @override + String get actionSheetOptionMuteTopic => 'Mute topic'; + + @override + String get actionSheetOptionUnmuteTopic => 'Unmute topic'; + + @override + String get actionSheetOptionFollowTopic => 'Follow topic'; + + @override + String get actionSheetOptionUnfollowTopic => 'Unfollow topic'; + + @override + String get actionSheetOptionResolveTopic => 'Mark as resolved'; + + @override + String get actionSheetOptionUnresolveTopic => 'Mark as unresolved'; + + @override + String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved'; + + @override + String get errorUnresolveTopicFailedTitle => + 'Failed to mark topic as unresolved'; + + @override + String get actionSheetOptionSeeWhoReacted => 'See who reacted'; + + @override + String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; + + @override + String seeWhoReactedSheetHeaderLabel(int num) { + return 'Emoji reactions ($num total)'; + } + + @override + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num votes', + one: '1 vote', + ); + return '$emojiName: $_temp0'; + } + + @override + String seeWhoReactedSheetUserListLabel(String emojiName, int num) { + return 'Votes for $emojiName ($num)'; + } + + @override + String get actionSheetOptionViewReadReceipts => 'View read receipts'; + + @override + String get actionSheetReadReceipts => 'Read receipts'; + + @override + String actionSheetReadReceiptsReadCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: 'This message has been read by $count people:', + one: 'This message has been read by $count person:', + ); + return '$_temp0'; + } + + @override + String get actionSheetReadReceiptsZeroReadCount => + 'No one has read this message yet.'; + + @override + String get actionSheetReadReceiptsErrorReadCount => + 'Failed to load read receipts.'; + + @override + String get actionSheetOptionCopyMessageText => 'Copy message text'; + + @override + String get actionSheetOptionCopyMessageLink => 'Copy link to message'; + + @override + String get actionSheetOptionMarkAsUnread => 'Mark as unread from here'; + + @override + String get actionSheetOptionHideMutedMessage => 'Hide muted message again'; + + @override + String get actionSheetOptionShare => 'Share'; + + @override + String get actionSheetOptionQuoteMessage => 'Quote message'; + + @override + String get actionSheetOptionStarMessage => 'Star message'; + + @override + String get actionSheetOptionUnstarMessage => 'Unstar message'; + + @override + String get actionSheetOptionEditMessage => 'Edit message'; + + @override + String get actionSheetOptionDeleteMessage => 'Delete message'; + + @override + String get deleteMessageConfirmationDialogTitle => 'Delete message?'; + + @override + String get deleteMessageConfirmationDialogMessage => + 'Deleting a message permanently removes it for everyone.'; + + @override + String get deleteMessageConfirmationDialogConfirmButton => 'Delete'; + + @override + String get errorDeleteMessageFailedTitle => 'Failed to delete message'; + + @override + String get actionSheetOptionMarkTopicAsRead => 'Mark topic as read'; + + @override + String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; + + @override + String get errorWebAuthOperationalErrorTitle => 'Something went wrong'; + + @override + String get errorWebAuthOperationalError => 'An unexpected error occurred.'; + + @override + String get errorAccountLoggedInTitle => 'Account already logged in'; + + @override + String errorAccountLoggedIn(String email, String server) { + return 'The account $email at $server is already in your list of accounts.'; + } + + @override + String get errorCouldNotFetchMessageSource => + 'Could not fetch message source.'; + + @override + String get errorCopyingFailed => 'Copying failed'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return 'Failed to upload file: $filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename: $size MiB'; + } + + @override + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num files are', + one: 'File is', + ); + return '$_temp0 larger than the server\'s limit of $maxFileUploadSizeMib MiB and will not be uploaded:\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: 'Files', + one: 'File', + ); + return '$_temp0 too large'; + } + + @override + String get errorLoginInvalidInputTitle => 'Invalid input'; + + @override + String get errorLoginFailedTitle => 'Login failed'; + + @override + String get errorMessageNotSent => 'Message not sent'; + + @override + String get errorMessageEditNotSaved => 'Message not saved'; + + @override + String errorLoginCouldNotConnect(String url) { + return 'Failed to connect to server:\n$url'; + } + + @override + String get errorCouldNotConnectTitle => 'Could not connect'; + + @override + String get errorMessageDoesNotSeemToExist => + 'That message does not seem to exist.'; + + @override + String get errorQuotationFailed => 'Quotation failed'; + + @override + String errorServerMessage(String message) { + return 'The server said:\n\n$message'; + } + + @override + String get errorConnectingToServerShort => + 'Error connecting to Zulip. Retrying…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return 'Error connecting to Zulip at $serverUrl. Will retry:\n\n$error'; + } + + @override + String get errorHandlingEventTitle => + 'Error handling a Zulip event. Retrying connection…'; + + @override + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ) { + return 'Error handling a Zulip event from $serverUrl; will retry.\n\nError: $error\n\nEvent: $event'; + } + + @override + String get errorCouldNotOpenLinkTitle => 'Unable to open link'; + + @override + String errorCouldNotOpenLink(String url) { + return 'Link could not be opened: $url'; + } + + @override + String get errorMuteTopicFailed => 'Failed to mute topic'; + + @override + String get errorUnmuteTopicFailed => 'Failed to unmute topic'; + + @override + String get errorFollowTopicFailed => 'Failed to follow topic'; + + @override + String get errorUnfollowTopicFailed => 'Failed to unfollow topic'; + + @override + String get errorSharingFailed => 'Sharing failed'; + + @override + String get errorStarMessageFailedTitle => 'Failed to star message'; + + @override + String get errorUnstarMessageFailedTitle => 'Failed to unstar message'; + + @override + String get errorCouldNotEditMessageTitle => 'Could not edit message'; + + @override + String get successLinkCopied => 'Link copied'; + + @override + String get successMessageTextCopied => 'Message text copied'; + + @override + String get successMessageLinkCopied => 'Message link copied'; + + @override + String get successTopicLinkCopied => 'Topic link copied'; + + @override + String get successChannelLinkCopied => 'Channel link copied'; + + @override + String get errorBannerDeactivatedDmLabel => + 'You cannot send messages to deactivated users.'; + + @override + String get errorBannerCannotPostInChannelLabel => + 'You do not have permission to post in this channel.'; + + @override + String get composeBoxBannerLabelUnsubscribedWhenCannotSend => + 'New messages will not appear automatically.'; + + @override + String get composeBoxBannerButtonRefresh => 'Refresh'; + + @override + String get composeBoxBannerButtonSubscribe => 'Subscribe'; + + @override + String get composeBoxBannerLabelEditMessage => 'Edit message'; + + @override + String get composeBoxBannerButtonCancel => 'Cancel'; + + @override + String get composeBoxBannerButtonSave => 'Save'; + + @override + String get editAlreadyInProgressTitle => 'Cannot edit message'; + + @override + String get editAlreadyInProgressMessage => + 'An edit is already in progress. Please wait for it to complete.'; + + @override + String get savingMessageEditLabel => 'SAVING EDIT…'; + + @override + String get savingMessageEditFailedLabel => 'EDIT NOT SAVED'; + + @override + String get discardDraftConfirmationDialogTitle => + 'Discard the message you’re writing?'; + + @override + String get discardDraftForEditConfirmationDialogMessage => + 'When you edit a message, the content that was previously in the compose box is discarded.'; + + @override + String get discardDraftForOutboxConfirmationDialogMessage => + 'When you restore an unsent message, the content that was previously in the compose box is discarded.'; + + @override + String get discardDraftConfirmationDialogConfirmButton => 'Discard'; + + @override + String get composeBoxAttachFilesTooltip => 'Attach files'; + + @override + String get composeBoxAttachMediaTooltip => 'Attach images or videos'; + + @override + String get composeBoxAttachFromCameraTooltip => 'Take a photo'; + + @override + String get composeBoxAttachFromVideoCallTooltip => 'Attach a video call'; + + @override + String get composeBoxGenericContentHint => 'Type a message'; + + @override + String get newDmSheetComposeButtonLabel => 'Compose'; + + @override + String get newDmSheetScreenTitle => 'New DM'; + + @override + String get newDmFabButtonLabel => 'New DM'; + + @override + String get newDmSheetSearchHintEmpty => 'Add one or more users'; + + @override + String get newDmSheetSearchHintSomeSelected => 'Add another user…'; + + @override + String get newDmSheetNoUsersFound => 'No users found'; + + @override + String composeBoxDmContentHint(String user) { + return 'Message @$user'; + } + + @override + String get composeBoxGroupDmContentHint => 'Message group'; + + @override + String get composeBoxSelfDmContentHint => 'Write yourself a note'; + + @override + String composeBoxChannelContentHint(String destination) { + return 'Message $destination'; + } + + @override + String get preparingEditMessageContentInput => 'Preparing…'; + + @override + String get composeBoxSendTooltip => 'Send'; + + @override + String get unknownChannelName => '(unknown channel)'; + + @override + String get composeBoxTopicHintText => 'Topic'; + + @override + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { + return 'Enter a topic (skip for “$defaultTopicName”)'; + } + + @override + String composeBoxUploadingFilename(String filename) { + return 'Uploading $filename…'; + } + + @override + String get composeBoxUploadedVideoCallUrl => 'Join video call.'; + + @override + String composeBoxLoadingMessage(int messageId) { + return '(loading message $messageId)'; + } + + @override + String get unknownUserName => '(unknown user)'; + + @override + String get dmsWithYourselfPageTitle => 'DMs with yourself'; + + @override + String messageListGroupYouAndOthers(String others) { + return 'You and $others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return 'DMs with $others'; + } + + @override + String get emptyMessageList => 'There are no messages here.'; + + @override + String get emptyMessageListSearch => 'No search results.'; + + @override + String get messageListGroupYouWithYourself => 'Messages with yourself'; + + @override + String get contentValidationErrorTooLong => + 'Message length shouldn\'t be greater than 10000 characters.'; + + @override + String get contentValidationErrorEmpty => 'You have nothing to send!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => + 'Please wait for the quotation to complete.'; + + @override + String get contentValidationErrorUploadInProgress => + 'Please wait for the upload to complete.'; + + @override + String get dialogCancel => 'Cancel'; + + @override + String get dialogContinue => 'Continue'; + + @override + String get dialogClose => 'Close'; + + @override + String get errorDialogLearnMore => 'Learn more'; + + @override + String get errorDialogContinue => 'OK'; + + @override + String get errorDialogTitle => 'Error'; + + @override + String get snackBarDetails => 'Details'; + + @override + String get lightboxCopyLinkTooltip => 'Copy link'; + + @override + String get lightboxVideoCurrentPosition => 'Current position'; + + @override + String get lightboxVideoDuration => 'Video duration'; + + @override + String get loginPageTitle => 'Log in'; + + @override + String get loginFormSubmitLabel => 'Log in'; + + @override + String get loginMethodDivider => 'OR'; + + @override + String signInWithFoo(String method) { + return 'Sign in with $method'; + } + + @override + String get loginAddAnAccountPageTitle => 'Add an account'; + + @override + String get loginServerUrlLabel => 'Your Zulip server URL'; + + @override + String get loginHidePassword => 'Hide password'; + + @override + String get loginEmailLabel => 'Email address'; + + @override + String get loginErrorMissingEmail => 'Please enter your email.'; + + @override + String get loginPasswordLabel => 'Password'; + + @override + String get loginErrorMissingPassword => 'Please enter your password.'; + + @override + String get loginUsernameLabel => 'Username'; + + @override + String get loginErrorMissingUsername => 'Please enter your username.'; + + @override + String get topicValidationErrorTooLong => + 'Topic length shouldn\'t be greater than 60 characters.'; + + @override + String get topicValidationErrorMandatoryButEmpty => + 'Topics are required in this organization.'; + + @override + String get errorContentNotInsertedTitle => 'Content not inserted'; + + @override + String get errorContentToInsertIsEmpty => + 'The file to be inserted is empty or cannot be accessed.'; + + @override + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ) { + return '$url is running Zulip Server $zulipVersion, which is unsupported. The minimum supported version is Zulip Server $minSupportedZulipVersion.'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return 'Your account at $url could not be authenticated. Please try logging in again or use another account.'; + } + + @override + String get errorInvalidResponse => 'The server sent an invalid response.'; + + @override + String get errorNetworkRequestFailed => 'Network request failed'; + + @override + String errorMalformedResponse(int httpStatus) { + return 'Server gave malformed response; HTTP status $httpStatus'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return 'Server gave malformed response; HTTP status $httpStatus; $details'; + } + + @override + String errorRequestFailed(int httpStatus) { + return 'Network request failed: HTTP status $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => 'Unable to play the video.'; + + @override + String get serverUrlValidationErrorEmpty => 'Please enter a URL.'; + + @override + String get serverUrlValidationErrorInvalidUrl => 'Please enter a valid URL.'; + + @override + String get serverUrlValidationErrorNoUseEmail => + 'Please enter the server URL, not your email.'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => + 'The server URL must start with http:// or https://.'; + + @override + String get spoilerDefaultHeaderText => 'Spoiler'; + + @override + String get markAllAsReadLabel => 'Mark all messages as read'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num messages', + one: '1 message', + ); + return 'Marked $_temp0 as read.'; + } + + @override + String get markAsReadInProgress => 'Marking messages as read…'; + + @override + String get errorMarkAsReadFailedTitle => 'Mark as read failed'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num messages', + one: '1 message', + ); + return 'Marked $_temp0 as unread.'; + } + + @override + String get markAsUnreadInProgress => 'Marking messages as unread…'; + + @override + String get errorMarkAsUnreadFailedTitle => 'Mark as unread failed'; + + @override + String get today => 'Today'; + + @override + String get yesterday => 'Yesterday'; + + @override + String get userActiveNow => 'Active now'; + + @override + String get userIdle => 'Idle'; + + @override + String userActiveMinutesAgo(int minutes) { + String _temp0 = intl.Intl.pluralLogic( + minutes, + locale: localeName, + other: '$minutes minutes', + one: '1 minute', + ); + return 'Active $_temp0 ago'; + } + + @override + String userActiveHoursAgo(int hours) { + String _temp0 = intl.Intl.pluralLogic( + hours, + locale: localeName, + other: '$hours hours', + one: '1 hour', + ); + return 'Active $_temp0 ago'; + } + + @override + String get userActiveYesterday => 'Active yesterday'; + + @override + String userActiveDaysAgo(int days) { + String _temp0 = intl.Intl.pluralLogic( + days, + locale: localeName, + other: '$days days', + one: '1 day', + ); + return 'Active $_temp0 ago'; + } + + @override + String userActiveDate(String date) { + return 'Active $date'; + } + + @override + String get userNotActiveInYear => 'Not active in the last year'; + + @override + String get invisibleMode => 'Invisible mode'; + + @override + String get turnOnInvisibleModeErrorTitle => + 'Error turning on invisible mode. Please try again.'; + + @override + String get turnOffInvisibleModeErrorTitle => + 'Error turning off invisible mode. Please try again.'; + + @override + String get userRoleOwner => 'Owner'; + + @override + String get userRoleAdministrator => 'Administrator'; + + @override + String get userRoleModerator => 'Moderator'; + + @override + String get userRoleMember => 'Member'; + + @override + String get userRoleGuest => 'Guest'; + + @override + String get userRoleUnknown => 'Unknown'; + + @override + String get statusButtonLabelStatusSet => 'Status'; + + @override + String get statusButtonLabelStatusUnset => 'Set status'; + + @override + String get noStatusText => 'No status text'; + + @override + String get setStatusPageTitle => 'Set status'; + + @override + String get statusClearButtonLabel => 'Clear'; + + @override + String get statusSaveButtonLabel => 'Save'; + + @override + String get statusTextHint => 'Your status'; + + @override + String get userStatusBusy => 'Busy'; + + @override + String get userStatusInAMeeting => 'In a meeting'; + + @override + String get userStatusCommuting => 'Commuting'; + + @override + String get userStatusOutSick => 'Out sick'; + + @override + String get userStatusVacationing => 'Vacationing'; + + @override + String get userStatusWorkingRemotely => 'Working remotely'; + + @override + String get userStatusAtTheOffice => 'At the office'; + + @override + String get updateStatusErrorTitle => + 'Error updating user status. Please try again.'; + + @override + String get searchMessagesPageTitle => 'Search'; + + @override + String get searchMessagesHintText => 'Search'; + + @override + String get searchMessagesClearButtonTooltip => 'Clear'; + + @override + String get inboxPageTitle => 'Inbox'; + + @override + String get inboxEmptyPlaceholder => + 'There are no unread messages in your inbox. Use the buttons below to view the combined feed or list of channels.'; + + @override + String get recentDmConversationsPageTitle => 'Direct messages'; + + @override + String get recentDmConversationsSectionHeader => 'Direct messages'; + + @override + String get recentDmConversationsEmptyPlaceholder => + 'You have no direct messages yet! Why not start the conversation?'; + + @override + String get combinedFeedPageTitle => 'Combined feed'; + + @override + String get mentionsPageTitle => 'Mentions'; + + @override + String get starredMessagesPageTitle => 'Starred messages'; + + @override + String get channelsPageTitle => 'Channels'; + + @override + String get channelsEmptyPlaceholder => + 'You’re not subscribed to any channels yet.'; + + @override + String channelsEmptyPlaceholderWithAllChannelsLink( + String allChannelsPageTitle, + ) { + return 'You’re not subscribed to any channels yet. Try going to $allChannelsPageTitle and joining some of them.'; + } + + @override + String get sharePageTitle => 'Share'; + + @override + String get mainMenuMyProfile => 'My profile'; + + @override + String get topicsButtonTooltip => 'Topics'; + + @override + String get channelFeedButtonTooltip => 'Channel feed'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: '$numOthers others', + one: '1 other', + ); + return '$senderFullName to you and $_temp0'; + } + + @override + String get pinnedSubscriptionsLabel => 'Pinned'; + + @override + String get unpinnedSubscriptionsLabel => 'Unpinned'; + + @override + String get notifSelfUser => 'You'; + + @override + String get reactedEmojiSelfUser => 'You'; + + @override + String get reactionChipsLabel => 'Reactions'; + + @override + String reactionChipLabel(String emojiName, String votes) { + return '$emojiName: $votes'; + } + + @override + String reactionChipVotesYouAndOthers(int otherUsersCount) { + String _temp0 = intl.Intl.pluralLogic( + otherUsersCount, + locale: localeName, + other: 'You and $otherUsersCount others', + one: 'You and 1 other', + ); + return '$_temp0'; + } + + @override + String onePersonTyping(String typist) { + return '$typist is typing…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist and $otherTypist are typing…'; + } + + @override + String get manyPeopleTyping => 'Several people are typing…'; + + @override + String get wildcardMentionAll => 'all'; + + @override + String get wildcardMentionEveryone => 'everyone'; + + @override + String get wildcardMentionChannel => 'channel'; + + @override + String get wildcardMentionStream => 'stream'; + + @override + String get wildcardMentionTopic => 'topic'; + + @override + String get wildcardMentionChannelDescription => 'Notify channel'; + + @override + String get wildcardMentionStreamDescription => 'Notify stream'; + + @override + String get wildcardMentionAllDmDescription => 'Notify recipients'; + + @override + String get wildcardMentionTopicDescription => 'Notify topic'; + + @override + String get messageIsEditedLabel => 'EDITED'; + + @override + String get messageIsMovedLabel => 'MOVED'; + + @override + String get messageNotSentLabel => 'MESSAGE NOT SENT'; + + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + + @override + String get themeSettingTitle => 'THEME'; + + @override + String get themeSettingDark => 'Dark'; + + @override + String get themeSettingLight => 'Light'; + + @override + String get themeSettingSystem => 'System'; + + @override + String get openLinksWithInAppBrowser => 'Open links with in-app browser'; + + @override + String get pollWidgetQuestionMissing => 'No question.'; + + @override + String get pollWidgetOptionsMissing => 'This poll has no options yet.'; + + @override + String get initialAnchorSettingTitle => 'Open message feeds at'; + + @override + String get initialAnchorSettingDescription => + 'You can choose whether message feeds open at your first unread message or at the newest messages.'; + + @override + String get initialAnchorSettingFirstUnreadAlways => 'First unread message'; + + @override + String get initialAnchorSettingFirstUnreadConversations => + 'First unread message in conversation views, newest message elsewhere'; + + @override + String get initialAnchorSettingNewestAlways => 'Newest message'; + + @override + String get markReadOnScrollSettingTitle => 'Mark messages as read on scroll'; + + @override + String get markReadOnScrollSettingDescription => + 'When scrolling through messages, should they automatically be marked as read?'; + + @override + String get markReadOnScrollSettingAlways => 'Always'; + + @override + String get markReadOnScrollSettingNever => 'Never'; + + @override + String get markReadOnScrollSettingConversations => + 'Only in conversation views'; + + @override + String get markReadOnScrollSettingConversationsDescription => + 'Messages will be automatically marked as read only when viewing a single topic or direct message conversation.'; + + @override + String get experimentalFeatureSettingsPageTitle => 'Experimental features'; + + @override + String get experimentalFeatureSettingsWarning => + 'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'; + + @override + String get errorNotificationOpenTitle => 'Failed to open notification'; + + @override + String get errorNotificationOpenAccountNotFound => + 'The account associated with this notification could not be found.'; + + @override + String get errorReactionAddingFailedTitle => 'Adding reaction failed'; + + @override + String get errorReactionRemovingFailedTitle => 'Removing reaction failed'; + + @override + String get errorSharingTitle => 'Failed to share content'; + + @override + String get errorSharingAccountNotLoggedIn => + 'There is no account logged in. Please log in to an account and try again.'; + + @override + String get emojiReactionsMore => 'more'; + + @override + String get emojiPickerSearchEmoji => 'Search emoji'; + + @override + String get noEarlierMessages => 'No earlier messages'; + + @override + String get revealButtonLabel => 'Reveal message'; + + @override + String get mutedUser => 'Muted user'; + + @override + String get scrollToBottomTooltip => 'Scroll to bottom'; + + @override + String get appVersionUnknownPlaceholder => '(…)'; + + @override + String get zulipAppTitle => 'Zulip'; +} + +/// The translations for Chinese, as used in China, using the Han script (`zh_Hans_CN`). +class ZulipLocalizationsZhHansCn extends ZulipLocalizationsZh { + ZulipLocalizationsZhHansCn() : super('zh_Hans_CN'); + + @override + String get aboutPageTitle => '关于 Zulip'; + + @override + String get aboutPageAppVersion => '应用程序版本'; + + @override + String get aboutPageOpenSourceLicenses => '开源许可'; + + @override + String get aboutPageTapToView => '查看更多'; + + @override + String get upgradeWelcomeDialogTitle => '欢迎来到新的 Zulip 应用程序!'; + + @override + String get upgradeWelcomeDialogMessage => '您将在更快、更流畅的版本中享受熟悉的体验。'; + + @override + String get upgradeWelcomeDialogLinkText => '来看看最新的公告博客吧!'; + + @override + String get upgradeWelcomeDialogDismiss => '开始吧'; + + @override + String get chooseAccountPageTitle => '选择账号'; + + @override + String get settingsPageTitle => '设置'; + + @override + String get switchAccountButton => '切换账号'; + + @override + String tryAnotherAccountMessage(Object url) { + return '您在 $url 的账号加载时间过长。'; + } + + @override + String get tryAnotherAccountButton => '尝试另一个账号'; + + @override + String get chooseAccountPageLogOutButton => '登出'; + + @override + String get logOutConfirmationDialogTitle => '登出?'; + + @override + String get logOutConfirmationDialogMessage => '下次登入此账号时,您将需要重新输入组织网址和账号信息。'; + + @override + String get logOutConfirmationDialogConfirmButton => '登出'; + + @override + String get chooseAccountButtonAddAnAccount => '添加一个账号'; + + @override + String get profileButtonSendDirectMessage => '发送私信'; + + @override + String get errorCouldNotShowUserProfile => '无法显示用户个人资料。'; + + @override + String get permissionsNeededTitle => '需要额外权限'; + + @override + String get permissionsNeededOpenSettings => '打开设置'; + + @override + String get permissionsDeniedCameraAccess => '上传图片前,请在设置中授予 Zulip 相应的权限。'; + + @override + String get permissionsDeniedReadExternalStorage => + '上传文件前,请在设置中授予 Zulip 相应的权限。'; + + @override + String get actionSheetOptionSubscribe => '订阅'; + + @override + String get subscribeFailedTitle => '订阅失败'; + + @override + String get actionSheetOptionMarkChannelAsRead => '标记频道为已读'; + + @override + String get actionSheetOptionCopyChannelLink => '复制频道链接'; + + @override + String get actionSheetOptionListOfTopics => '话题列表'; + + @override + String get actionSheetOptionUnsubscribe => '取消订阅'; + + @override + String unsubscribeConfirmationDialogTitle(String channelName) { + return '确定取消订阅$channelName么?'; + } + + @override + String get unsubscribeConfirmationDialogConfirmButton => '取消订阅'; + + @override + String get unsubscribeFailedTitle => '取消订阅失败'; + + @override + String get actionSheetOptionMuteTopic => '静音话题'; + + @override + String get actionSheetOptionUnmuteTopic => '取消静音话题'; + + @override + String get actionSheetOptionFollowTopic => '关注话题'; + + @override + String get actionSheetOptionUnfollowTopic => '取消关注话题'; + + @override + String get actionSheetOptionResolveTopic => '标记为已解决'; + + @override + String get actionSheetOptionUnresolveTopic => '标记为未解决'; + + @override + String get errorResolveTopicFailedTitle => '未能将话题标记为解决'; + + @override + String get errorUnresolveTopicFailedTitle => '未能将话题标记为未解决'; + + @override + String get actionSheetOptionSeeWhoReacted => '查看谁做出了表情符号回应'; + + @override + String get seeWhoReactedSheetNoReactions => '此消息尚无表情符号回应。'; + + @override + String seeWhoReactedSheetHeaderLabel(int num) { + return '表情符号回应(共$num个)'; + } + + @override + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num 票', + one: '1 票', + ); + return '$emojiName:$_temp0'; + } + + @override + String seeWhoReactedSheetUserListLabel(String emojiName, int num) { + return '$emojiName 的投票数($num)'; + } + + @override + String get actionSheetOptionViewReadReceipts => '查看已读回执'; + + @override + String get actionSheetReadReceipts => '已读回执'; + + @override + String actionSheetReadReceiptsReadCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: '此消息已被阅读,共有 $count 人:', + one: '此消息已被阅读,共有 $count 人:', + ); + return '$_temp0'; + } + + @override + String get actionSheetReadReceiptsZeroReadCount => '尚无人阅读此消息。'; + + @override + String get actionSheetReadReceiptsErrorReadCount => '加载已读回执失败。'; + + @override + String get actionSheetOptionCopyMessageText => '复制消息文本'; + + @override + String get actionSheetOptionCopyMessageLink => '复制消息链接'; + + @override + String get actionSheetOptionMarkAsUnread => '从这里开始标为未读'; + + @override + String get actionSheetOptionHideMutedMessage => '再次隐藏静音消息'; + + @override + String get actionSheetOptionShare => '分享'; + + @override + String get actionSheetOptionQuoteMessage => '引用消息'; + + @override + String get actionSheetOptionStarMessage => '添加星标消息标记'; + + @override + String get actionSheetOptionUnstarMessage => '取消星标消息标记'; + + @override + String get actionSheetOptionEditMessage => '编辑消息'; + + @override + String get actionSheetOptionMarkTopicAsRead => '将话题标为已读'; + + @override + String get actionSheetOptionCopyTopicLink => '复制话题链接'; + + @override + String get errorWebAuthOperationalErrorTitle => '出现了一些问题'; + + @override + String get errorWebAuthOperationalError => '发生了未知的错误。'; + + @override + String get errorAccountLoggedInTitle => '已经登入该账号'; + + @override + String errorAccountLoggedIn(String email, String server) { + return '在 $server 的账号 $email 已经在您的账号列表了。'; + } + + @override + String get errorCouldNotFetchMessageSource => '未能获取原始消息。'; + + @override + String get errorCopyingFailed => '未能复制消息文本'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return '未能上传文件:$filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename: $size MiB'; + } + + @override + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num 个您上传的文件', + ); + return '$_temp0大小超过了该组织 $maxFileUploadSizeMib MiB 的限制:\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '文件', + one: '文件', + ); + return '$_temp0太大'; + } + + @override + String get errorLoginInvalidInputTitle => '输入的信息不正确'; + + @override + String get errorLoginFailedTitle => '未能登入'; + + @override + String get errorMessageNotSent => '未能发送消息'; + + @override + String get errorMessageEditNotSaved => '未能保存消息编辑'; + + @override + String errorLoginCouldNotConnect(String url) { + return '未能连接到服务器:\n$url'; + } + + @override + String get errorCouldNotConnectTitle => '未能连接'; + + @override + String get errorMessageDoesNotSeemToExist => '找不到此消息。'; + + @override + String get errorQuotationFailed => '未能引用消息'; + + @override + String errorServerMessage(String message) { + return '服务器:\n\n$message'; + } + + @override + String get errorConnectingToServerShort => '未能连接到 Zulip. 重试中…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return '未能连接到在 $serverUrl 的 Zulip 服务器。即将重连:\n\n$error'; + } + + @override + String get errorHandlingEventTitle => '处理 Zulip 事件时发生了一些问题。即将重连…'; + + @override + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ) { + return '处理来自 $serverUrl 的 Zulip 事件时发生了一些问题。即将重连。\n\n错误:$error\n\n事件:$event'; + } + + @override + String get errorCouldNotOpenLinkTitle => '未能打开链接'; + + @override + String errorCouldNotOpenLink(String url) { + return '未能打开此链接:$url'; + } + + @override + String get errorMuteTopicFailed => '未能静音话题'; + + @override + String get errorUnmuteTopicFailed => '未能取消静音话题'; + + @override + String get errorFollowTopicFailed => '未能关注话题'; + + @override + String get errorUnfollowTopicFailed => '未能取消关注话题'; + + @override + String get errorSharingFailed => '分享失败'; + + @override + String get errorStarMessageFailedTitle => '未能添加星标消息标记'; + + @override + String get errorUnstarMessageFailedTitle => '未能取消星标消息标记'; + + @override + String get errorCouldNotEditMessageTitle => '未能编辑消息'; + + @override + String get successLinkCopied => '已复制链接'; + + @override + String get successMessageTextCopied => '已复制消息文本'; + + @override + String get successMessageLinkCopied => '已复制消息链接'; + + @override + String get successTopicLinkCopied => '话题链接已复制'; + + @override + String get successChannelLinkCopied => '频道链接已复制'; + + @override + String get errorBannerDeactivatedDmLabel => '您不能向被停用的用户发送消息。'; + + @override + String get errorBannerCannotPostInChannelLabel => '您没有足够的权限在此频道发送消息。'; + + @override + String get composeBoxBannerLabelEditMessage => '编辑消息'; + + @override + String get composeBoxBannerButtonCancel => '取消'; + + @override + String get composeBoxBannerButtonSave => '保存'; + + @override + String get editAlreadyInProgressTitle => '未能编辑消息'; + + @override + String get editAlreadyInProgressMessage => '已有正在被编辑的消息。请在其完成后重试。'; + + @override + String get savingMessageEditLabel => '保存中…'; + + @override + String get savingMessageEditFailedLabel => '编辑失败'; + + @override + String get discardDraftConfirmationDialogTitle => '放弃您正在撰写的消息?'; + + @override + String get discardDraftForEditConfirmationDialogMessage => + '当您编辑消息时,文本框中已有的内容将会被清空。'; + + @override + String get discardDraftForOutboxConfirmationDialogMessage => + '当您恢复未能发送的消息时,文本框已有的内容将会被清空。'; + + @override + String get discardDraftConfirmationDialogConfirmButton => '清空'; + + @override + String get composeBoxAttachFilesTooltip => '上传文件'; + + @override + String get composeBoxAttachMediaTooltip => '上传图片或视频'; + + @override + String get composeBoxAttachFromCameraTooltip => '拍摄照片'; + + @override + String get composeBoxGenericContentHint => '撰写消息'; + + @override + String get newDmSheetComposeButtonLabel => '撰写消息'; + + @override + String get newDmSheetScreenTitle => '发起私信'; + + @override + String get newDmFabButtonLabel => '发起私信'; + + @override + String get newDmSheetSearchHintEmpty => '添加一个或多个用户'; + + @override + String get newDmSheetSearchHintSomeSelected => '添加更多用户…'; + + @override + String get newDmSheetNoUsersFound => '没有用户'; + + @override + String composeBoxDmContentHint(String user) { + return '发送私信给 @$user'; + } + + @override + String get composeBoxGroupDmContentHint => '发送私信到群组'; + + @override + String get composeBoxSelfDmContentHint => '向自己撰写消息'; + + @override + String composeBoxChannelContentHint(String destination) { + return '发送消息到 $destination'; + } + + @override + String get preparingEditMessageContentInput => '准备编辑消息…'; + + @override + String get composeBoxSendTooltip => '发送'; + + @override + String get unknownChannelName => '(未知频道)'; + + @override + String get composeBoxTopicHintText => '话题'; + + @override + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { + return '输入话题(默认为“$defaultTopicName”)'; + } + + @override + String composeBoxUploadingFilename(String filename) { + return '正在上传 $filename…'; + } + + @override + String composeBoxLoadingMessage(int messageId) { + return '(加载消息 $messageId)'; + } + + @override + String get unknownUserName => '(未知用户)'; + + @override + String get dmsWithYourselfPageTitle => '与自己的私信'; + + @override + String messageListGroupYouAndOthers(String others) { + return '您和$others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return '与$others的私信'; + } + + @override + String get emptyMessageList => '这里没有消息。'; + + @override + String get emptyMessageListSearch => '没有搜索结果。'; + + @override + String get messageListGroupYouWithYourself => '与自己的私信'; + + @override + String get contentValidationErrorTooLong => '消息的长度不能超过10000个字符。'; + + @override + String get contentValidationErrorEmpty => '发送的消息不能为空!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => '请等待引用消息完成。'; + + @override + String get contentValidationErrorUploadInProgress => '请等待上传完成。'; + + @override + String get dialogCancel => '取消'; + + @override + String get dialogContinue => '继续'; + + @override + String get dialogClose => '关闭'; + + @override + String get errorDialogLearnMore => '更多信息'; + + @override + String get errorDialogContinue => '好的'; + + @override + String get errorDialogTitle => '错误'; + + @override + String get snackBarDetails => '详情'; + + @override + String get lightboxCopyLinkTooltip => '复制链接'; + + @override + String get lightboxVideoCurrentPosition => '当前进度'; + + @override + String get lightboxVideoDuration => '视频时长'; + + @override + String get loginPageTitle => '登入'; + + @override + String get loginFormSubmitLabel => '登入'; + + @override + String get loginMethodDivider => '或'; + + @override + String signInWithFoo(String method) { + return '使用$method登入'; + } + + @override + String get loginAddAnAccountPageTitle => '添加账号'; + + @override + String get loginServerUrlLabel => 'Zulip 服务器网址'; + + @override + String get loginHidePassword => '隐藏密码'; + + @override + String get loginEmailLabel => '电子邮箱地址'; + + @override + String get loginErrorMissingEmail => '请输入电子邮箱地址。'; + + @override + String get loginPasswordLabel => '密码'; + + @override + String get loginErrorMissingPassword => '请输入密码。'; + + @override + String get loginUsernameLabel => '用户名'; + + @override + String get loginErrorMissingUsername => '请输入用户名。'; + + @override + String get topicValidationErrorTooLong => '话题长度不应该超过 60 个字符。'; + + @override + String get topicValidationErrorMandatoryButEmpty => '话题在该组织为必填项。'; + + @override + String get errorContentNotInsertedTitle => '未插入内容'; + + @override + String get errorContentToInsertIsEmpty => '要插入的文件为空或无法访问。'; + + @override + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ) { + return '$url 运行的 Zulip 服务器版本 $zulipVersion 过低。该客户端只支持 $minSupportedZulipVersion 及以后的服务器版本。'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return '您在 $url 的账号无法被登入。请重试或者使用另外的账号。'; + } + + @override + String get errorInvalidResponse => '服务器的回复不合法。'; + + @override + String get errorNetworkRequestFailed => '网络请求失败'; + + @override + String errorMalformedResponse(int httpStatus) { + return '服务器的回复不合法;HTTP 状态码 $httpStatus'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return '服务器的回复不合法;HTTP 状态码 $httpStatus; $details'; + } + + @override + String errorRequestFailed(int httpStatus) { + return '网络请求失败;HTTP 状态码 $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => '未能播放视频。'; + + @override + String get serverUrlValidationErrorEmpty => '请输入网址。'; + + @override + String get serverUrlValidationErrorInvalidUrl => '请输入正确的网址。'; + + @override + String get serverUrlValidationErrorNoUseEmail => '请输入服务器网址,而不是您的电子邮件。'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => + '服务器网址必须以 http:// 或 https:// 开头。'; + + @override + String get spoilerDefaultHeaderText => '剧透'; + + @override + String get markAllAsReadLabel => '将所有消息标为已读'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num 条消息', + ); + return '已将 $_temp0标为已读。'; + } + + @override + String get markAsReadInProgress => '正在将消息标为已读…'; + + @override + String get errorMarkAsReadFailedTitle => '未能将消息标为已读'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num 条消息', + ); + return '已将 $_temp0标为未读。'; + } + + @override + String get markAsUnreadInProgress => '正在将消息标为未读…'; + + @override + String get errorMarkAsUnreadFailedTitle => '未能将消息标为未读'; + + @override + String get today => '今天'; + + @override + String get yesterday => '昨天'; + + @override + String get userActiveNow => '当前活跃'; + + @override + String get userIdle => '空闲'; + + @override + String userActiveMinutesAgo(int minutes) { + String _temp0 = intl.Intl.pluralLogic( + minutes, + locale: localeName, + other: '$minutes 分钟前', + one: '1 分钟前', + ); + return '上次活跃于 $_temp0'; + } + + @override + String userActiveHoursAgo(int hours) { + String _temp0 = intl.Intl.pluralLogic( + hours, + locale: localeName, + other: '$hours 小时前', + one: '1 小时前', + ); + return '上次活跃于 $_temp0'; + } + + @override + String get userActiveYesterday => '昨天活跃'; + + @override + String userActiveDaysAgo(int days) { + String _temp0 = intl.Intl.pluralLogic( + days, + locale: localeName, + other: '$days 天前', + one: '1 天前', + ); + return '上次活跃于 $_temp0'; + } + + @override + String userActiveDate(String date) { + return '上次活跃于 $date'; + } + + @override + String get userNotActiveInYear => '去年未活跃'; + + @override + String get invisibleMode => '隐身模式'; + + @override + String get turnOnInvisibleModeErrorTitle => '启用隐身模式时发生错误。请再尝试一次。'; + + @override + String get turnOffInvisibleModeErrorTitle => '关闭隐身模式时发生错误。请再尝试一次。'; + + @override + String get userRoleOwner => '所有者'; + + @override + String get userRoleAdministrator => '管理员'; + + @override + String get userRoleModerator => '版主'; + + @override + String get userRoleMember => '成员'; + + @override + String get userRoleGuest => '访客'; + + @override + String get userRoleUnknown => '未知'; + + @override + String get statusButtonLabelStatusSet => '状态'; + + @override + String get statusButtonLabelStatusUnset => '设定状态'; + + @override + String get noStatusText => '无状态文字'; + + @override + String get setStatusPageTitle => '设定状态'; + + @override + String get statusClearButtonLabel => '清除'; + + @override + String get statusSaveButtonLabel => '保存'; + + @override + String get statusTextHint => '您的状态'; + + @override + String get userStatusBusy => '忙碌'; + + @override + String get userStatusInAMeeting => '会议中'; + + @override + String get userStatusCommuting => '通勤中'; + + @override + String get userStatusOutSick => '病假中'; + + @override + String get userStatusVacationing => '休假中'; + + @override + String get userStatusWorkingRemotely => '远程工作中'; + + @override + String get userStatusAtTheOffice => '在办公室'; + + @override + String get updateStatusErrorTitle => '更新用户状态时发生错误。请再试一次。'; + + @override + String get searchMessagesPageTitle => '搜索'; + + @override + String get searchMessagesHintText => '搜索'; + + @override + String get searchMessagesClearButtonTooltip => '清除'; + + @override + String get inboxPageTitle => '收件箱'; + + @override + String get inboxEmptyPlaceholder => '您的收件箱中没有未读消息。您可以通过底部导航栏访问综合消息或者频道列表。'; + + @override + String get recentDmConversationsPageTitle => '私信'; + + @override + String get recentDmConversationsSectionHeader => '私信'; + + @override + String get recentDmConversationsEmptyPlaceholder => '您还没有任何私信消息!何不开启一个新对话?'; + + @override + String get combinedFeedPageTitle => '综合消息'; + + @override + String get mentionsPageTitle => '被提及消息'; + + @override + String get starredMessagesPageTitle => '星标消息'; + + @override + String get channelsPageTitle => '频道'; + + @override + String get channelsEmptyPlaceholder => '您还没有订阅任何频道。'; + + @override + String get sharePageTitle => '分享'; + + @override + String get mainMenuMyProfile => '个人资料'; + + @override + String get topicsButtonTooltip => '话题'; + + @override + String get channelFeedButtonTooltip => '频道订阅'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: '$numOthers 个用户', + ); + return '$senderFullName向您和其他 $_temp0'; + } + + @override + String get pinnedSubscriptionsLabel => '置顶'; + + @override + String get unpinnedSubscriptionsLabel => '未置顶'; + + @override + String get notifSelfUser => '您'; + + @override + String get reactedEmojiSelfUser => '您'; + + @override + String get reactionChipsLabel => '表情符号回应'; + + @override + String reactionChipLabel(String emojiName, String votes) { + return '$emojiName: $votes'; + } + + @override + String reactionChipVotesYouAndOthers(int otherUsersCount) { + String _temp0 = intl.Intl.pluralLogic( + otherUsersCount, + locale: localeName, + other: '你与其他 $otherUsersCount 人', + one: '你与其他 1 人', + ); + return '$_temp0'; + } + + @override + String onePersonTyping(String typist) { + return '$typist正在输入…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist和$otherTypist正在输入…'; + } + + @override + String get manyPeopleTyping => '多个用户正在输入…'; + + @override + String get wildcardMentionAll => '所有人'; + + @override + String get wildcardMentionEveryone => '所有人'; + + @override + String get wildcardMentionChannel => '频道'; + + @override + String get wildcardMentionStream => '频道'; + + @override + String get wildcardMentionTopic => '话题'; + + @override + String get wildcardMentionChannelDescription => '通知频道'; + + @override + String get wildcardMentionStreamDescription => '通知频道'; + + @override + String get wildcardMentionAllDmDescription => '通知收件人'; + + @override + String get wildcardMentionTopicDescription => '通知话题'; + + @override + String get messageIsEditedLabel => '已编辑'; + + @override + String get messageIsMovedLabel => '已移动'; + + @override + String get messageNotSentLabel => '消息未发送'; + + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + + @override + String get themeSettingTitle => '主题'; + + @override + String get themeSettingDark => '暗色模式'; + + @override + String get themeSettingLight => '浅色模式'; + + @override + String get themeSettingSystem => '跟随系统'; + + @override + String get openLinksWithInAppBrowser => '使用内置浏览器打开链接'; + + @override + String get pollWidgetQuestionMissing => '无问题。'; + + @override + String get pollWidgetOptionsMissing => '该投票还没有任何选项。'; + + @override + String get initialAnchorSettingTitle => '设置消息起始位置于'; + + @override + String get initialAnchorSettingDescription => '您可以将消息的起始位置设置为第一条未读消息或者最新消息。'; + + @override + String get initialAnchorSettingFirstUnreadAlways => '第一条未读消息'; + + @override + String get initialAnchorSettingFirstUnreadConversations => + '在单个话题或私信的第一条未读消息;在其他情况下的最新消息'; + + @override + String get initialAnchorSettingNewestAlways => '最新消息'; + + @override + String get markReadOnScrollSettingTitle => '滑动时将消息标为已读'; + + @override + String get markReadOnScrollSettingDescription => '在滑动浏览消息时,是否自动将它们标记为已读?'; + + @override + String get markReadOnScrollSettingAlways => '总是'; + + @override + String get markReadOnScrollSettingNever => '从不'; + + @override + String get markReadOnScrollSettingConversations => '只在对话视图'; + + @override + String get markReadOnScrollSettingConversationsDescription => + '只将在同一个话题或私聊中的消息自动标记为已读。'; + + @override + String get experimentalFeatureSettingsPageTitle => '实验功能'; + + @override + String get experimentalFeatureSettingsWarning => + '以下选项能够启用开发中的功能。它们暂不完善,并可能造成其他的一些问题。\n\n这些选项的目的是为了帮助开发者进行实验。'; + + @override + String get errorNotificationOpenTitle => '未能打开消息提醒'; + + @override + String get errorNotificationOpenAccountNotFound => '未能找到关联该消息提醒的账号。'; + + @override + String get errorReactionAddingFailedTitle => '未能添加表情符号'; + + @override + String get errorReactionRemovingFailedTitle => '未能移除表情符号'; + + @override + String get errorSharingTitle => '分享内容失败'; + + @override + String get errorSharingAccountNotLoggedIn => '尚未登录任何账号。请登录账号后再次尝试。'; + + @override + String get emojiReactionsMore => '更多'; + + @override + String get emojiPickerSearchEmoji => '搜索表情符号'; + + @override + String get noEarlierMessages => '没有更早的消息了'; + + @override + String get revealButtonLabel => '显示消息'; + + @override + String get mutedUser => '静音用户'; + + @override + String get scrollToBottomTooltip => '拖动到最底'; + + @override + String get appVersionUnknownPlaceholder => '(…)'; + + @override + String get zulipAppTitle => 'Zulip'; +} + +/// The translations for Chinese, as used in Taiwan, using the Han script (`zh_Hant_TW`). +class ZulipLocalizationsZhHantTw extends ZulipLocalizationsZh { + ZulipLocalizationsZhHantTw() : super('zh_Hant_TW'); + + @override + String get aboutPageTitle => '關於 Zulip'; + + @override + String get aboutPageAppVersion => 'App 版本'; + + @override + String get aboutPageOpenSourceLicenses => '開源授權條款'; + + @override + String get aboutPageTapToView => '點選查看'; + + @override + String get upgradeWelcomeDialogTitle => '歡迎使用新 Zulip 應用程式!'; + + @override + String get upgradeWelcomeDialogMessage => '您將在更快、更流暢的版本中享受熟悉的體驗。'; + + @override + String get upgradeWelcomeDialogLinkText => '查看公告部落格文章!'; + + @override + String get upgradeWelcomeDialogDismiss => '開始吧'; + + @override + String get chooseAccountPageTitle => '選取帳號'; + + @override + String get settingsPageTitle => '設定'; + + @override + String get switchAccountButton => '切換帳號'; + + @override + String tryAnotherAccountMessage(Object url) { + return '您在 $url 的帳號載入的比較久。'; + } + + @override + String get tryAnotherAccountButton => '請嘗試別的帳號'; + + @override + String get chooseAccountPageLogOutButton => '登出'; + + @override + String get logOutConfirmationDialogTitle => '登出?'; + + @override + String get logOutConfirmationDialogMessage => + '要在未來使用此帳號,您將需要重新輸入您組織的網址和您的帳號資訊。'; + + @override + String get logOutConfirmationDialogConfirmButton => '登出'; + + @override + String get chooseAccountButtonAddAnAccount => '增添帳號'; + + @override + String get navButtonAllChannels => '所有頻道'; + + @override + String get allChannelsPageTitle => '所有頻道'; + + @override + String get allChannelsEmptyPlaceholder => '在此組織中沒有您可以查看的頻道。'; + + @override + String get profileButtonSendDirectMessage => '發送私訊'; + + @override + String get errorCouldNotShowUserProfile => '無法顯示使用者設定檔。'; + + @override + String get permissionsNeededTitle => '需要的權限'; + + @override + String get permissionsNeededOpenSettings => '開啟設定'; + + @override + String get permissionsDeniedCameraAccess => '要上傳圖片,請在設定中授予 Zulip 額外權限。'; + + @override + String get permissionsDeniedReadExternalStorage => + '要上傳檔案,請在設定中授予 Zulip 額外權限。'; + + @override + String get actionSheetOptionSubscribe => '訂閱'; + + @override + String get subscribeFailedTitle => '訂閱失敗'; + + @override + String get actionSheetOptionMarkChannelAsRead => '標註頻道為已讀'; + + @override + String get actionSheetOptionCopyChannelLink => '複製頻道連結'; + + @override + String get actionSheetOptionListOfTopics => '議題列表'; + + @override + String get actionSheetOptionChannelFeed => '頻道動態'; + + @override + String get actionSheetOptionUnsubscribe => '取消訂閱'; + + @override + String unsubscribeConfirmationDialogTitle(String channelName) { + return '確定要取消訂閱 $channelName 嗎?'; + } + + @override + String get unsubscribeConfirmationDialogConfirmButton => '取消訂閱'; + + @override + String get unsubscribeFailedTitle => '取消訂閱失敗'; + + @override + String get actionSheetOptionMuteTopic => '靜音話題'; + + @override + String get actionSheetOptionUnmuteTopic => '取消靜音話題'; + + @override + String get actionSheetOptionFollowTopic => '跟隨話題'; + + @override + String get actionSheetOptionUnfollowTopic => '取消跟隨話題'; + + @override + String get actionSheetOptionResolveTopic => '標註為已解決'; + + @override + String get actionSheetOptionUnresolveTopic => '標註為未解決'; + + @override + String get errorResolveTopicFailedTitle => '無法標註話題為已解決'; + + @override + String get errorUnresolveTopicFailedTitle => '無法標註話題為未解決'; + + @override + String get actionSheetOptionSeeWhoReacted => '查看誰有回應'; + + @override + String get seeWhoReactedSheetNoReactions => '此訊息尚無任何回應。'; + + @override + String seeWhoReactedSheetHeaderLabel(int num) { + return '表情符號回應 (共 $num 個)'; + } + + @override + String seeWhoReactedSheetEmojiNameWithVoteCount(String emojiName, int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num 票', + one: '1 票', + ); + return '$emojiName:$_temp0'; + } + + @override + String seeWhoReactedSheetUserListLabel(String emojiName, int num) { + return '$emojiName 的投票數($num)'; + } + + @override + String get actionSheetOptionViewReadReceipts => '查看已讀回條'; + + @override + String get actionSheetReadReceipts => '已讀回條'; + + @override + String actionSheetReadReceiptsReadCount(int count) { + String _temp0 = intl.Intl.pluralLogic( + count, + locale: localeName, + other: '此訊息已被閱讀,共有 $count 人:', + one: '此訊息已被閱讀,共有 $count 人:', + ); + return '$_temp0'; + } + + @override + String get actionSheetReadReceiptsZeroReadCount => '尚無人閱讀此訊息。'; + + @override + String get actionSheetReadReceiptsErrorReadCount => '載入已讀回條失敗。'; + + @override + String get actionSheetOptionCopyMessageText => '複製訊息文字'; + + @override + String get actionSheetOptionCopyMessageLink => '複製訊息連結'; + + @override + String get actionSheetOptionMarkAsUnread => '從這裡開始標註為未讀'; + + @override + String get actionSheetOptionHideMutedMessage => '再次隱藏已靜音的話題'; + + @override + String get actionSheetOptionShare => '分享'; + + @override + String get actionSheetOptionQuoteMessage => '引述訊息'; + + @override + String get actionSheetOptionStarMessage => '收藏訊息'; + + @override + String get actionSheetOptionUnstarMessage => '取消收藏訊息'; + + @override + String get actionSheetOptionEditMessage => '編輯訊息'; + + @override + String get actionSheetOptionDeleteMessage => '刪除訊息'; + + @override + String get deleteMessageConfirmationDialogTitle => '刪除訊息?'; + + @override + String get deleteMessageConfirmationDialogMessage => '刪除訊息將為所有人永久移除該訊息。'; + + @override + String get deleteMessageConfirmationDialogConfirmButton => '刪除'; + + @override + String get errorDeleteMessageFailedTitle => '刪除訊息失敗'; + + @override + String get actionSheetOptionMarkTopicAsRead => '標註話題為已讀'; + + @override + String get actionSheetOptionCopyTopicLink => '複製議題的連結'; + + @override + String get errorWebAuthOperationalErrorTitle => '出錯了'; + + @override + String get errorWebAuthOperationalError => '出現了意外的錯誤。'; + + @override + String get errorAccountLoggedInTitle => '帳號已經登入了'; + + @override + String errorAccountLoggedIn(String email, String server) { + return '在 $server 的帳號 $email 已經存在帳號清單中。'; + } + + @override + String get errorCouldNotFetchMessageSource => '無法取得訊息來源。'; + + @override + String get errorCopyingFailed => '複製失敗'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return '上傳檔案失敗:$filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename: $size MiB'; + } + + @override + String errorFilesTooLarge( + int num, + int maxFileUploadSizeMib, + String listMessage, + ) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num 個檔案', + one: '檔案', + ); + return '$_temp0超過伺服器 $maxFileUploadSizeMib MiB 的限制,將不會上傳:\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '檔案', + one: '檔案', + ); + return '$_temp0太大'; + } + + @override + String get errorLoginInvalidInputTitle => '無效的輸入'; + + @override + String get errorLoginFailedTitle => '登入失敗'; + + @override + String get errorMessageNotSent => '訊息沒有送出'; + + @override + String get errorMessageEditNotSaved => '訊息沒有儲存'; + + @override + String errorLoginCouldNotConnect(String url) { + return '無法連線到伺服器:\n$url'; + } + + @override + String get errorCouldNotConnectTitle => '無法連線'; + + @override + String get errorMessageDoesNotSeemToExist => '該訊息似乎不存在。'; + + @override + String get errorQuotationFailed => '引述失敗'; + + @override + String errorServerMessage(String message) { + return '伺服器回應:\n\n$message'; + } + + @override + String get errorConnectingToServerShort => '連接 Zulip 時發生錯誤。重試中…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return '連接 Zulip $serverUrl 時發生錯誤。將重試:\n\n$error'; + } + + @override + String get errorHandlingEventTitle => '處理 Zulip 事件時發生錯誤。重新連線中…'; + + @override + String errorHandlingEventDetails( + String serverUrl, + String error, + String event, + ) { + return '處理來自 $serverUrl 的 Zulip 事件時發生錯誤;將重試。\n\n錯誤:$error\n\n事件:$event'; + } + + @override + String get errorCouldNotOpenLinkTitle => '無法開啟連結'; + + @override + String errorCouldNotOpenLink(String url) { + return '無法開啟連結: $url'; + } + + @override + String get errorMuteTopicFailed => '無法靜音話題'; + + @override + String get errorUnmuteTopicFailed => '無法取消靜音話題'; + + @override + String get errorFollowTopicFailed => '無法跟隨話題'; + + @override + String get errorUnfollowTopicFailed => '無法取消跟隨話題'; + + @override + String get errorSharingFailed => '分享失敗'; + + @override + String get errorStarMessageFailedTitle => '無法收藏訊息'; + + @override + String get errorUnstarMessageFailedTitle => '無法取消收藏訊息'; + + @override + String get errorCouldNotEditMessageTitle => '無法編輯訊息'; + + @override + String get successLinkCopied => '已複製連結'; + + @override + String get successMessageTextCopied => '已複製訊息文字'; + + @override + String get successMessageLinkCopied => '已複製訊息連結'; + + @override + String get successTopicLinkCopied => '議題連結已複製'; + + @override + String get successChannelLinkCopied => '頻道連結已複製'; + + @override + String get errorBannerDeactivatedDmLabel => '您無法向已停用的使用者發送訊息。'; + + @override + String get errorBannerCannotPostInChannelLabel => '您沒有權限在此頻道發佈訊息。'; + + @override + String get composeBoxBannerLabelEditMessage => '編輯訊息'; + + @override + String get composeBoxBannerButtonCancel => '取消'; + + @override + String get composeBoxBannerButtonSave => '儲存'; + + @override + String get editAlreadyInProgressTitle => '無法編輯訊息'; + + @override + String get editAlreadyInProgressMessage => '編輯已在進行中。請等待其完成。'; + + @override + String get savingMessageEditLabel => '儲存編輯中…'; + + @override + String get savingMessageEditFailedLabel => '編輯未儲存'; + + @override + String get discardDraftConfirmationDialogTitle => '要捨棄您正在編寫的訊息嗎?'; + + @override + String get discardDraftForEditConfirmationDialogMessage => + '當您編輯訊息時,編輯框中原有的內容將被捨棄。'; + + @override + String get discardDraftForOutboxConfirmationDialogMessage => + '當您還原未發送的訊息時,編輯框中原有的內容將被捨棄。'; + + @override + String get discardDraftConfirmationDialogConfirmButton => '捨棄'; + + @override + String get composeBoxAttachFilesTooltip => '附加檔案'; + + @override + String get composeBoxAttachMediaTooltip => '附加圖片或影片'; + + @override + String get composeBoxAttachFromCameraTooltip => '拍照'; + + @override + String get composeBoxGenericContentHint => '輸入訊息'; + + @override + String get newDmSheetComposeButtonLabel => '編寫'; + + @override + String get newDmSheetScreenTitle => '新增私訊'; + + @override + String get newDmFabButtonLabel => '新增私訊'; + + @override + String get newDmSheetSearchHintEmpty => '增添一個或多個使用者'; + + @override + String get newDmSheetSearchHintSomeSelected => '增添其他使用者…'; + + @override + String get newDmSheetNoUsersFound => '找不到使用者'; + + @override + String composeBoxDmContentHint(String user) { + return '訊息 @$user'; + } + + @override + String get composeBoxGroupDmContentHint => '訊息群組'; + + @override + String get composeBoxSelfDmContentHint => '記下些什麼'; + + @override + String composeBoxChannelContentHint(String destination) { + return '訊息 $destination'; + } + + @override + String get preparingEditMessageContentInput => '準備中…'; + + @override + String get composeBoxSendTooltip => '發送'; + + @override + String get unknownChannelName => '(未知頻道)'; + + @override + String get composeBoxTopicHintText => '議題'; + + @override + String composeBoxEnterTopicOrSkipHintText(String defaultTopicName) { + return '輸入議題(留空則使用「$defaultTopicName」)'; + } + + @override + String composeBoxUploadingFilename(String filename) { + return '正在上傳 $filename…'; + } + + @override + String composeBoxLoadingMessage(int messageId) { + return '(載入訊息 $messageId 中)'; + } + + @override + String get unknownUserName => '(未知使用者)'; + + @override + String get dmsWithYourselfPageTitle => '私訊給自己'; + + @override + String messageListGroupYouAndOthers(String others) { + return '您與 $others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return '與 $others 的私訊'; + } + + @override + String get emptyMessageList => '這裡沒有訊息。'; + + @override + String get emptyMessageListSearch => '沒有搜尋結果。'; + + @override + String get messageListGroupYouWithYourself => '與自己的訊息'; + + @override + String get contentValidationErrorTooLong => '訊息長度不應超過 10000 個字元。'; + + @override + String get contentValidationErrorEmpty => '您沒有要發送的內容!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => '請等待引述完成。'; + + @override + String get contentValidationErrorUploadInProgress => '請等待上傳完成。'; + + @override + String get dialogCancel => '取消'; + + @override + String get dialogContinue => '繼續'; + + @override + String get dialogClose => '關閉'; + + @override + String get errorDialogLearnMore => '了解更多'; + + @override + String get errorDialogContinue => 'OK'; + + @override + String get errorDialogTitle => '錯誤'; + + @override + String get snackBarDetails => '詳細資訊'; + + @override + String get lightboxCopyLinkTooltip => '複製連結'; + + @override + String get lightboxVideoCurrentPosition => '目前位置'; + + @override + String get lightboxVideoDuration => '影片長度'; + + @override + String get loginPageTitle => '登入'; + + @override + String get loginFormSubmitLabel => '登入'; + + @override + String get loginMethodDivider => '或'; + + @override + String signInWithFoo(String method) { + return '使用 $method 登入'; + } + + @override + String get loginAddAnAccountPageTitle => '增添帳號'; + + @override + String get loginServerUrlLabel => '您的 Zulip 伺服器網址'; + + @override + String get loginHidePassword => '隱藏密碼'; + + @override + String get loginEmailLabel => '電子郵件地址'; + + @override + String get loginErrorMissingEmail => '請輸入您的電子郵件地址。'; + + @override + String get loginPasswordLabel => '密碼'; + + @override + String get loginErrorMissingPassword => '請輸入您的密碼。'; + + @override + String get loginUsernameLabel => '使用者名稱'; + + @override + String get loginErrorMissingUsername => '請輸入您的使用者名稱。'; + + @override + String get topicValidationErrorTooLong => '議題長度不得超過 60 個字元。'; + + @override + String get topicValidationErrorMandatoryButEmpty => '此組織要求必須填寫議題。'; + + @override + String get errorContentNotInsertedTitle => '未插入內容'; + + @override + String get errorContentToInsertIsEmpty => '要插入的檔案為空或無法存取。'; + + @override + String errorServerVersionUnsupportedMessage( + String url, + String zulipVersion, + String minSupportedZulipVersion, + ) { + return '$url 執行的 Zulip Server 為 $zulipVersion,此版本已不受支援。最低支援版本為 Zulip Server $minSupportedZulipVersion。'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return '您在 $url 的帳號無法通過驗證。請重新登入或使用其他帳號。'; + } + + @override + String get errorInvalidResponse => '伺服器傳送了無效的請求。'; + + @override + String get errorNetworkRequestFailed => '網路請求失敗'; + + @override + String errorMalformedResponse(int httpStatus) { + return '伺服器回傳了格式錯誤的回應;HTTP 狀態碼為 $httpStatus'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return '伺服器回傳了格式錯誤的回應;HTTP 狀態碼為 $httpStatus;$details'; + } + + @override + String errorRequestFailed(int httpStatus) { + return '網路請求失敗:HTTP 狀態碼為 $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => '無法播放影片。'; + + @override + String get serverUrlValidationErrorEmpty => '請輸入網址。'; + + @override + String get serverUrlValidationErrorInvalidUrl => '請輸入有效的網址。'; + + @override + String get serverUrlValidationErrorNoUseEmail => '請輸入伺服器網址,而非您的電子郵件。'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => + '伺服器 URL 必須以 http:// 或 https:// 開頭。'; + + @override + String get spoilerDefaultHeaderText => '劇透'; + + @override + String get markAllAsReadLabel => '標註所有訊息為已讀'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num 則訊息', + one: '1 則訊息', + ); + return '已標為已讀:$_temp0。'; + } + + @override + String get markAsReadInProgress => '正在標記訊息為已讀…'; + + @override + String get errorMarkAsReadFailedTitle => '標記為已讀失敗'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num 則訊息', + one: '1 則訊息', + ); + return '已標為未讀:$_temp0。'; + } + + @override + String get markAsUnreadInProgress => '正在標註訊息為未讀…'; + + @override + String get errorMarkAsUnreadFailedTitle => '標記為未讀失敗'; + + @override + String get today => '今天'; + + @override + String get yesterday => '昨天'; + + @override + String get userActiveNow => '目前活躍'; + + @override + String get userIdle => '閒置'; + + @override + String userActiveMinutesAgo(int minutes) { + String _temp0 = intl.Intl.pluralLogic( + minutes, + locale: localeName, + other: '$minutes 分鐘前', + one: '1 分鐘前', + ); + return '上次活躍於 $_temp0'; + } + + @override + String userActiveHoursAgo(int hours) { + String _temp0 = intl.Intl.pluralLogic( + hours, + locale: localeName, + other: '$hours 小時前', + one: '1 小時前', + ); + return '上次活躍於 $_temp0'; + } + + @override + String get userActiveYesterday => '昨天活躍'; + + @override + String userActiveDaysAgo(int days) { + String _temp0 = intl.Intl.pluralLogic( + days, + locale: localeName, + other: '$days 天前', + one: '1 天前', + ); + return '上次活躍於 $_temp0'; + } + + @override + String userActiveDate(String date) { + return '上次活躍於 $date'; + } + + @override + String get userNotActiveInYear => '去年未活躍'; + + @override + String get invisibleMode => '隱身模式'; + + @override + String get turnOnInvisibleModeErrorTitle => '啟用隱身模式時發生錯誤。請再試一次。'; + + @override + String get turnOffInvisibleModeErrorTitle => '關閉隱身模式時發生錯誤。請再試一次。'; + + @override + String get userRoleOwner => '擁有者'; + + @override + String get userRoleAdministrator => '管理員'; + + @override + String get userRoleModerator => '版主'; + + @override + String get userRoleMember => '成員'; + + @override + String get userRoleGuest => '訪客'; + + @override + String get userRoleUnknown => '未知'; + + @override + String get statusButtonLabelStatusSet => '狀態'; + + @override + String get statusButtonLabelStatusUnset => '設定狀態'; + + @override + String get noStatusText => '無狀態文字'; + + @override + String get setStatusPageTitle => '設定狀態'; + + @override + String get statusClearButtonLabel => '清除'; + + @override + String get statusSaveButtonLabel => '儲存'; + + @override + String get statusTextHint => '您的狀態'; + + @override + String get userStatusBusy => '忙碌'; + + @override + String get userStatusInAMeeting => '會議中'; + + @override + String get userStatusCommuting => '通勤中'; + + @override + String get userStatusOutSick => '請病假'; + + @override + String get userStatusVacationing => '休假中'; + + @override + String get userStatusWorkingRemotely => '遠端工作中'; + + @override + String get userStatusAtTheOffice => '在辦公室'; + + @override + String get updateStatusErrorTitle => '更新使用者狀態時發生錯誤。請再試一次。'; + + @override + String get searchMessagesPageTitle => '搜尋'; + + @override + String get searchMessagesHintText => '搜尋'; + + @override + String get searchMessagesClearButtonTooltip => '清除'; + + @override + String get inboxPageTitle => '收件匣'; + + @override + String get inboxEmptyPlaceholder => '您的收件匣中沒有未讀訊息。請使用下方按鈕查看整合訊息流或頻道清單。'; + + @override + String get recentDmConversationsPageTitle => '私人訊息'; + + @override + String get recentDmConversationsSectionHeader => '私人訊息'; + + @override + String get recentDmConversationsEmptyPlaceholder => '您尚未有任何私人訊息!不如開始一段對話吧?'; + + @override + String get combinedFeedPageTitle => '綜合饋給'; + + @override + String get mentionsPageTitle => '提及'; + + @override + String get starredMessagesPageTitle => '已加星號的訊息'; + + @override + String get channelsPageTitle => '頻道'; + + @override + String get channelsEmptyPlaceholder => '您尚未訂閱任何頻道。'; + + @override + String channelsEmptyPlaceholderWithAllChannelsLink( + String allChannelsPageTitle, + ) { + return '您尚未訂閱任何頻道。請前往 $allChannelsPageTitle 並加入一些頻道。'; + } + + @override + String get sharePageTitle => '分享'; + + @override + String get mainMenuMyProfile => '我的設定檔'; + + @override + String get topicsButtonTooltip => '話題'; + + @override + String get channelFeedButtonTooltip => '頻道饋給'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: '$numOthers 位其他對象', + one: '1 位其他對象、', + ); + return '$senderFullName 傳送給您和 $_temp0'; + } + + @override + String get pinnedSubscriptionsLabel => '已釘選'; + + @override + String get unpinnedSubscriptionsLabel => '未釘選'; + + @override + String get notifSelfUser => '您'; + + @override + String get reactedEmojiSelfUser => '您'; + + @override + String get reactionChipsLabel => '反應'; + + @override + String reactionChipLabel(String emojiName, String votes) { + return '$emojiName: $votes'; + } + + @override + String reactionChipVotesYouAndOthers(int otherUsersCount) { + String _temp0 = intl.Intl.pluralLogic( + otherUsersCount, + locale: localeName, + other: '你與其他 $otherUsersCount 人', + one: '你與其他 1 人', + ); + return '$_temp0'; + } + + @override + String onePersonTyping(String typist) { + return '$typist 正在輸入…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist 和 $otherTypist 正在輸入…'; + } + + @override + String get manyPeopleTyping => '有些人正在輸入…'; + + @override + String get wildcardMentionAll => '全部'; + + @override + String get wildcardMentionEveryone => '所有人'; + + @override + String get wildcardMentionChannel => '頻道'; + + @override + String get wildcardMentionStream => '串流'; + + @override + String get wildcardMentionTopic => '議題'; + + @override + String get wildcardMentionChannelDescription => '通知頻道'; + + @override + String get wildcardMentionStreamDescription => '通知串流'; + + @override + String get wildcardMentionAllDmDescription => '通知收件人'; + + @override + String get wildcardMentionTopicDescription => '通知話題'; + + @override + String get messageIsEditedLabel => '已編輯'; + + @override + String get messageIsMovedLabel => '已移動'; + + @override + String get messageNotSentLabel => '訊息未送出'; + + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + + @override + String get themeSettingTitle => '主題'; + + @override + String get themeSettingDark => '深色主題'; + + @override + String get themeSettingLight => '淺色主題'; + + @override + String get themeSettingSystem => '系統主題'; + + @override + String get openLinksWithInAppBrowser => '使用應用程式內建瀏覽器開啟連結'; + + @override + String get pollWidgetQuestionMissing => '沒有問題。'; + + @override + String get pollWidgetOptionsMissing => '此投票尚未有任何選項。'; + + @override + String get initialAnchorSettingTitle => '開啟訊息串於'; + + @override + String get initialAnchorSettingDescription => '您可以選擇將訊息串開啟在第一則未讀訊息,或是最新的訊息。'; + + @override + String get initialAnchorSettingFirstUnreadAlways => '第一則未讀訊息'; + + @override + String get initialAnchorSettingFirstUnreadConversations => + '在對話檢視中開啟第一則未讀訊息,其餘情況則開啟最新訊息'; + + @override + String get initialAnchorSettingNewestAlways => '最新訊息'; + + @override + String get markReadOnScrollSettingTitle => '捲動時將訊息標記為已讀'; + + @override + String get markReadOnScrollSettingDescription => '在捲動瀏覽訊息時,是否要自動將其標記為已讀?'; + + @override + String get markReadOnScrollSettingAlways => '總是'; + + @override + String get markReadOnScrollSettingNever => '從不'; + + @override + String get markReadOnScrollSettingConversations => '僅在對話檢視中'; + + @override + String get markReadOnScrollSettingConversationsDescription => + '只有在查看單一議題或私人訊息對話時,訊息才會自動標記為已讀。'; + + @override + String get experimentalFeatureSettingsPageTitle => '實驗性功能'; + + @override + String get experimentalFeatureSettingsWarning => + '這些選項啟用的功能仍在開發中,尚未完善。它們可能無法正常運作,且可能導致應用程式其他部分出現問題。\n\n這些設定的目的是供參與 Zulip 開發的人員進行試驗使用。'; + + @override + String get errorNotificationOpenTitle => '無法開啟通知'; + + @override + String get errorNotificationOpenAccountNotFound => '找不到與此通知相關聯的帳號。'; + + @override + String get errorReactionAddingFailedTitle => '新增表情反應失敗'; + + @override + String get errorReactionRemovingFailedTitle => '移除表情反應失敗'; + + @override + String get errorSharingTitle => '分享內容失敗'; + + @override + String get errorSharingAccountNotLoggedIn => '尚未登入任何帳號。請登入帳號後再試一次。'; + + @override + String get emojiReactionsMore => '更多'; + + @override + String get emojiPickerSearchEmoji => '搜尋表情符號'; + + @override + String get noEarlierMessages => '沒有更早的訊息'; + + @override + String get revealButtonLabel => '顯示訊息'; + + @override + String get mutedUser => '已靜音的使用者'; + + @override + String get scrollToBottomTooltip => '捲動至底部'; + + @override + String get appVersionUnknownPlaceholder => '(…)'; + + @override + String get zulipAppTitle => 'Zulip'; +} diff --git a/lib/model/realm.dart b/lib/model/realm.dart index 48036a343a..6b33ad7483 100644 --- a/lib/model/realm.dart +++ b/lib/model/realm.dart @@ -32,6 +32,8 @@ mixin RealmStore on PerAccountStoreBase, UserGroupStore { Duration get serverTypingStartedWaitPeriod => Duration(milliseconds: serverTypingStartedWaitPeriodMilliseconds); int get serverTypingStartedWaitPeriodMilliseconds; + String? get jitsiServerUrl; + int get realmVideoChatProvider; //|////////////////////////////////////////////////////////////// // Realm settings. @@ -174,6 +176,10 @@ mixin ProxyRealmStore on RealmStore { @override bool get realmMandatoryTopics => realmStore.realmMandatoryTopics; @override + int get realmVideoChatProvider => realmStore.realmVideoChatProvider; + @override + String? get jitsiServerUrl => realmStore.jitsiServerUrl; + @override int get maxFileUploadSizeMib => realmStore.maxFileUploadSizeMib; @override int? get realmMessageContentDeleteLimitSeconds => realmStore.realmMessageContentDeleteLimitSeconds; @@ -230,6 +236,8 @@ class RealmStoreImpl extends HasUserGroupStore with RealmStore { realmCanDeleteAnyMessageGroup = initialSnapshot.realmCanDeleteAnyMessageGroup, realmCanDeleteOwnMessageGroup = initialSnapshot.realmCanDeleteOwnMessageGroup, realmMandatoryTopics = initialSnapshot.realmMandatoryTopics, + realmVideoChatProvider = initialSnapshot.realmVideoChatProvider, + jitsiServerUrl = initialSnapshot.jitsiServerUrl, maxFileUploadSizeMib = initialSnapshot.maxFileUploadSizeMib, realmMessageContentDeleteLimitSeconds = initialSnapshot.realmMessageContentDeleteLimitSeconds, realmMessageContentEditLimitSeconds = initialSnapshot.realmMessageContentEditLimitSeconds, @@ -380,6 +388,10 @@ class RealmStoreImpl extends HasUserGroupStore with RealmStore { @override final bool realmMandatoryTopics; @override + final int realmVideoChatProvider; + @override + final String? jitsiServerUrl; + @override final int maxFileUploadSizeMib; @override final int? realmMessageContentDeleteLimitSeconds; diff --git a/lib/widgets/compose_box.dart b/lib/widgets/compose_box.dart index 0d12efc5e6..97c0ee0b5b 100644 --- a/lib/widgets/compose_box.dart +++ b/lib/widgets/compose_box.dart @@ -1031,6 +1031,63 @@ Future _uploadFiles({ } } +class _AttachVideoChatUrlButton extends StatelessWidget { + const _AttachVideoChatUrlButton({ + required this.controller, + required this.enabled, + }); + + final ComposeBoxController controller; + final bool enabled; + + static const int jitsi = 1; + static const int zoom = 2; //TODO: Add other supported video chat providers + + String _generateJitsiUrl(String serverUrl, String visibleText) { + final id = List.generate(15, (_) => Random.secure().nextInt(10)).join(); + return inlineLink(visibleText, '$serverUrl/$id#config.startWithVideoMuted=false'); + } + + String? _getMeetingUrl(ZulipLocalizations zulipLocalization, int? provider, String? jitsiServerUrl) { + final visibleText = zulipLocalization.composeBoxUploadedVideoCallUrl; + + switch (provider) { + case 0: return null; //TODO: Implement feedback no video chat provider is setup + case jitsi: return jitsiServerUrl == null ? null :_generateJitsiUrl(jitsiServerUrl, visibleText); + case zoom: return inlineLink(visibleText, + 'https://zoom.us/start/meeting'); + default: return null; + } + } + + void _handlePress(BuildContext context) { + final store = PerAccountStoreWidget.of(context); + final zulipLocalizations = ZulipLocalizations.of(context); + + final placeholder = _getMeetingUrl(zulipLocalizations, + store.realmVideoChatProvider, store.jitsiServerUrl); + if (placeholder == null) return; + + final contentController = controller.content; + final insertionRange = contentController.insertionIndex(); + contentController.value = contentController.value.replaced(insertionRange, '$placeholder\n\n'); + controller.contentFocusNode.requestFocus(); + } + + @override + Widget build(BuildContext context) { + final designVariables = DesignVariables.of(context); + final zulipLocalizations = ZulipLocalizations.of(context); + + return SizedBox( + width: _composeButtonSize, + child: IconButton( + icon: Icon(ZulipIcons.video, color: designVariables.foreground.withFadedAlpha(0.5)), + tooltip: zulipLocalizations.composeBoxAttachFromVideoCallTooltip, + onPressed: enabled ? () => _handlePress(context) : null)); + } +} + abstract class _AttachUploadsButton extends StatelessWidget { const _AttachUploadsButton({required this.controller, required this.enabled}); @@ -1469,6 +1526,7 @@ abstract class _ComposeBoxBody extends StatelessWidget { _AttachFileButton(controller: controller, enabled: composeButtonsEnabled), _AttachMediaButton(controller: controller, enabled: composeButtonsEnabled), _AttachFromCameraButton(controller: controller, enabled: composeButtonsEnabled), + _AttachVideoChatUrlButton(controller: controller, enabled: composeButtonsEnabled), ]; final topicInput = buildTopicInput(); diff --git a/lib/widgets/icons.dart b/lib/widgets/icons.dart index c9eb68361b..9be1e664ea 100644 --- a/lib/widgets/icons.dart +++ b/lib/widgets/icons.dart @@ -1,28 +1,28 @@ - -import 'package:flutter/widgets.dart'; - -import '../api/model/model.dart'; - -// ignore_for_file: constant_identifier_names - -/// Identifiers for Zulip's custom icons. -/// -/// Use these with the [Icon] widget, in the same way as one uses -/// the members of the [Icons] class from Flutter's Material library. -abstract final class ZulipIcons { - // Generated code; do not edit. - // - // To add a new icon, or otherwise edit the set of icons: - // - // * Add an SVG file in `assets/icons/`, - // or otherwise edit the SVG files there. - // The files' names (before ".svg") should be valid Dart identifiers. - // - // * Then run the command `tools/icons/build-icon-font`. - // That will update this file and the generated icon font, - // `assets/icons/ZulipIcons.ttf`. - // - // BEGIN GENERATED ICON DATA + +import 'package:flutter/widgets.dart'; + +import '../api/model/model.dart'; + +// ignore_for_file: constant_identifier_names + +/// Identifiers for Zulip's custom icons. +/// +/// Use these with the [Icon] widget, in the same way as one uses +/// the members of the [Icons] class from Flutter's Material library. +abstract final class ZulipIcons { + // Generated code; do not edit. + // + // To add a new icon, or otherwise edit the set of icons: + // + // * Add an SVG file in `assets/icons/`, + // or otherwise edit the SVG files there. + // The files' names (before ".svg") should be valid Dart identifiers. + // + // * Then run the command `tools/icons/build-icon-font`. + // That will update this file and the generated icon font, + // `assets/icons/ZulipIcons.ttf`. + // + // BEGIN GENERATED ICON DATA /// The Zulip custom icon "arrow_down". static const IconData arrow_down = IconData(0xf101, fontFamily: "Zulip Icons"); @@ -198,34 +198,39 @@ abstract final class ZulipIcons { /// The Zulip custom icon "unmute". static const IconData unmute = IconData(0xf13a, fontFamily: "Zulip Icons"); - // END GENERATED ICON DATA -} - -IconData iconDataForStream(ZulipStream stream) { - // TODO: these icons aren't quite right yet; - // see this message and the one after it: - // https://chat.zulip.org/#narrow/stream/243-mobile-team/topic/design.3A.20.23F117.20.22Inbox.22.20screen/near/1680637 - return switch(stream) { - ZulipStream(isWebPublic: true) => ZulipIcons.globe, - ZulipStream(inviteOnly: true) => ZulipIcons.lock, - ZulipStream() => ZulipIcons.hash_sign, - }; -} - -IconData? iconDataForTopicVisibilityPolicy(UserTopicVisibilityPolicy policy) { - switch (policy) { - case UserTopicVisibilityPolicy.muted: - return ZulipIcons.mute; - case UserTopicVisibilityPolicy.unmuted: - return ZulipIcons.unmute; - case UserTopicVisibilityPolicy.followed: - return ZulipIcons.follow; - case UserTopicVisibilityPolicy.none: - return null; - case UserTopicVisibilityPolicy.unknown: - // This case is unreachable (or should be) because we keep `unknown` out - // of our data structures. We plan to remove the `unknown` case in #1074. - assert(false); - return null; - } -} + /// The Zulip custom icon "video". + static const IconData video = IconData(0xf13b, fontFamily: "Zulip Icons"); + + + + // END GENERATED ICON DATA +} + +IconData iconDataForStream(ZulipStream stream) { + // TODO: these icons aren't quite right yet; + // see this message and the one after it: + // https://chat.zulip.org/#narrow/stream/243-mobile-team/topic/design.3A.20.23F117.20.22Inbox.22.20screen/near/1680637 + return switch(stream) { + ZulipStream(isWebPublic: true) => ZulipIcons.globe, + ZulipStream(inviteOnly: true) => ZulipIcons.lock, + ZulipStream() => ZulipIcons.hash_sign, + }; +} + +IconData? iconDataForTopicVisibilityPolicy(UserTopicVisibilityPolicy policy) { + switch (policy) { + case UserTopicVisibilityPolicy.muted: + return ZulipIcons.mute; + case UserTopicVisibilityPolicy.unmuted: + return ZulipIcons.unmute; + case UserTopicVisibilityPolicy.followed: + return ZulipIcons.follow; + case UserTopicVisibilityPolicy.none: + return null; + case UserTopicVisibilityPolicy.unknown: + // This case is unreachable (or should be) because we keep `unknown` out + // of our data structures. We plan to remove the `unknown` case in #1074. + assert(false); + return null; + } +} diff --git a/test/example_data.dart b/test/example_data.dart index e894882225..c0858d8eee 100644 --- a/test/example_data.dart +++ b/test/example_data.dart @@ -1335,6 +1335,7 @@ InitialSnapshot initialSnapshot({ RealmDeleteOwnMessagePolicy? realmDeleteOwnMessagePolicy, RealmWildcardMentionPolicy? realmWildcardMentionPolicy, bool? realmMandatoryTopics, + int? realmVideoChatProvider, String? realmName, int? realmWaitingPeriodThreshold, int? realmMessageContentDeleteLimitSeconds, @@ -1344,6 +1345,7 @@ InitialSnapshot initialSnapshot({ Uri? realmIconUrl, bool? realmPresenceDisabled, Map? realmDefaultExternalAccounts, + String? jitsiServerUrl, int? maxFileUploadSizeMib, Uri? serverEmojiDataUrl, String? realmEmptyTopicDisplayName, @@ -1398,6 +1400,7 @@ InitialSnapshot initialSnapshot({ realmDeleteOwnMessagePolicy: realmDeleteOwnMessagePolicy, realmWildcardMentionPolicy: realmWildcardMentionPolicy ?? RealmWildcardMentionPolicy.everyone, realmMandatoryTopics: realmMandatoryTopics ?? true, + realmVideoChatProvider: realmVideoChatProvider ?? 1, realmName: realmName ?? 'Example Zulip organization', realmWaitingPeriodThreshold: realmWaitingPeriodThreshold ?? 0, realmMessageContentDeleteLimitSeconds: realmMessageContentDeleteLimitSeconds, @@ -1407,6 +1410,7 @@ InitialSnapshot initialSnapshot({ realmIconUrl: realmIconUrl ?? _realmIcon, realmPresenceDisabled: realmPresenceDisabled ?? false, realmDefaultExternalAccounts: realmDefaultExternalAccounts ?? {}, + jitsiServerUrl: jitsiServerUrl ?? 'https://meet.jit.si', maxFileUploadSizeMib: maxFileUploadSizeMib ?? 25, serverEmojiDataUrl: serverEmojiDataUrl ?? realmUrl.replace(path: '/static/emoji.json'), diff --git a/test/widgets/compose_box_test.dart b/test/widgets/compose_box_test.dart index 15a0a7f81e..a318793054 100644 --- a/test/widgets/compose_box_test.dart +++ b/test/widgets/compose_box_test.dart @@ -63,6 +63,8 @@ void main() { List subscriptions = const [], List? messages, bool? mandatoryTopics, + int? realmVideoChatProvider, + String? jitsiServerUrl, int? zulipFeatureLevel, }) async { streams ??= subscriptions; @@ -89,6 +91,8 @@ void main() { subscriptions: subscriptions, zulipFeatureLevel: zulipFeatureLevel, realmMandatoryTopics: mandatoryTopics, + realmVideoChatProvider: realmVideoChatProvider, + jitsiServerUrl: jitsiServerUrl, realmAllowMessageEditing: true, realmMessageContentEditLimitSeconds: null, )); @@ -1037,6 +1041,54 @@ void main() { }); }); + group('video call button', () { + Future prepare(WidgetTester tester, { + String? jitsiServerUrl, + int? realmVideoChatProvider, + }) async { + TypingNotifier.debugEnable = false; + addTearDown(TypingNotifier.debugReset); + + final channel = eg.stream(); + final narrow = ChannelNarrow(channel.streamId); + await prepareComposeBox(tester, + narrow: narrow, + streams: [channel], + jitsiServerUrl : jitsiServerUrl, + realmVideoChatProvider : realmVideoChatProvider, + ); + + await enterTopic(tester, narrow: narrow, topic: 'some topic'); + await tester.pump(); + } + + group('attach video call link', () { + testWidgets('jitsi success', (tester) async { + await prepare(tester); + connection.prepare(); + + await tester.tap(find.byIcon(ZulipIcons.video)); + await tester.pump(); + + check(controller!.content.text) + ..startsWith('[Join video call.](https://meet.jit.si') + ..endsWith('#config.startWithVideoMuted=false)\n\n'); + }); + + testWidgets('zoom success', (tester) async { + await prepare(tester, jitsiServerUrl: '', + realmVideoChatProvider: 2); + connection.prepare(); + + await tester.tap(find.byIcon(ZulipIcons.video)); + await tester.pump(); + + check(controller!.content.text) + .equals('[Join video call.](https://zoom.us/start/meeting)\n\n'); + }); + }); + }); + group('uploads', () { void checkAppearsLoading(WidgetTester tester, bool expected) { final sendButtonElement = tester.element(find.ancestor( @@ -1314,6 +1366,7 @@ void main() { check(attachButtonFinder(ZulipIcons.attach_file).evaluate().length).equals(areShown ? 1 : 0); check(attachButtonFinder(ZulipIcons.image).evaluate().length).equals(areShown ? 1 : 0); check(attachButtonFinder(ZulipIcons.camera).evaluate().length).equals(areShown ? 1 : 0); + check(attachButtonFinder(ZulipIcons.video).evaluate().length).equals(areShown ? 1 : 0); } void checkBannerWithLabel(String label, {required bool isShown}) { diff --git a/tools/icons/package-lock.json b/tools/icons/package-lock.json index 729b9d87e3..25366e7e32 100644 --- a/tools/icons/package-lock.json +++ b/tools/icons/package-lock.json @@ -1,1649 +1,1649 @@ -{ - "name": "icons", - "version": "0.0.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "dependencies": { - "@vusion/webfonts-generator": "^0.8.0" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@npmcli/fs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", - "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@vusion/webfonts-generator": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@vusion/webfonts-generator/-/webfonts-generator-0.8.0.tgz", - "integrity": "sha512-1q17CF6umBEjlAtO37TzRw3aOCCAyFX+T4HPG70BmM6qx8s6H4/LQOa8eHFZq/oiMuMyd0FehKgUt/pqYlIMWA==", - "dependencies": { - "handlebars": "^4.0.11", - "mkdirp": "^1.0.4", - "q": "^1.1.2", - "svg2ttf": "^6.0.3", - "svgicons2svgfont": "^10.0.4", - "ttf2eot": "^3.0.0", - "ttf2woff": "^3.0.0", - "ttf2woff2": "^4.0.4", - "underscore": "^1.9.1", - "url-join": "^4.0.0" - } - }, - "node_modules/@xmldom/xmldom": { - "version": "0.7.12", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.12.tgz", - "integrity": "sha512-JpcbUyxzrUShspIZ9uzcIuxTdE+X15sY7dCKGfXrXbQ1CqpMBfqkrNSde2dGqhlC4+EdAF+csoTCiAvYAKVKlA==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", - "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", - "dependencies": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/bufferstreams": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-3.0.0.tgz", - "integrity": "sha512-Qg0ggJUWJq90vtg4lDsGN9CDWvzBMQxhiEkSOD/sJfYt6BLect3eV1/S6K7SCSKJ34n60rf6U5eUPmQENVE4UA==", - "dependencies": { - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/cacache": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.3.tgz", - "integrity": "sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg==", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/cacache/node_modules/glob": { - "version": "10.3.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", - "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cubic2quad": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/cubic2quad/-/cubic2quad-1.2.1.tgz", - "integrity": "sha512-wT5Y7mO8abrV16gnssKdmIhIbA9wSkeMzhh27jAguKrV82i24wER0vL5TGhUJ9dbJNDcigoRZ0IAHFEEEI4THQ==" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fs-minipass": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", - "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", - "dependencies": { - "minipass": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/geometry-interfaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/geometry-interfaces/-/geometry-interfaces-1.1.4.tgz", - "integrity": "sha512-qD6OdkT6NcES9l4Xx3auTpwraQruU7dARbQPVO71MKvkGYw5/z/oIiGymuFXrRaEQa5Y67EIojUpaLeGEa5hGA==" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/jackspeak": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", - "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/microbuffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/microbuffer/-/microbuffer-1.0.0.tgz", - "integrity": "sha512-O/SUXauVN4x6RaEJFqSPcXNtLFL+QzJHKZlyDVYFwcDDRVca3Fa/37QXXC+4zAGGa4YhHrHxKXuuHvLDIQECtA==" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-fetch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", - "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", - "dependencies": { - "minipass": "^5.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" - }, - "node_modules/neatequal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/neatequal/-/neatequal-1.0.0.tgz", - "integrity": "sha512-sVt5awO4a4w24QmAthdrCPiVRW3naB8FGLdyadin01BH+6BzNPEBwGrpwCczQvPlULS6uXTItTe1PJ5P0kYm7A==", - "dependencies": { - "varstream": "^0.3.2" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/node-gyp": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz", - "integrity": "sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==", - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^11.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^12.13 || ^14.13 || >=16" - } - }, - "node_modules/nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", - "dependencies": { - "abbrev": "^1.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", - "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "optional": true - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssri": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", - "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", - "dependencies": { - "minipass": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/svg-pathdata": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz", - "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/svg2ttf": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/svg2ttf/-/svg2ttf-6.0.3.tgz", - "integrity": "sha512-CgqMyZrbOPpc+WqH7aga4JWkDPso23EgypLsbQ6gN3uoPWwwiLjXvzgrwGADBExvCRJrWFzAeK1bSoSpE7ixSQ==", - "dependencies": { - "@xmldom/xmldom": "^0.7.2", - "argparse": "^2.0.1", - "cubic2quad": "^1.2.1", - "lodash": "^4.17.10", - "microbuffer": "^1.0.0", - "svgpath": "^2.1.5" - }, - "bin": { - "svg2ttf": "svg2ttf.js" - } - }, - "node_modules/svgicons2svgfont": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/svgicons2svgfont/-/svgicons2svgfont-10.0.6.tgz", - "integrity": "sha512-fUgQEVg3XwTbOHvlXahHGqCet5Wvfo1bV4DCvbSRvjsOCPCRunYbG4dUJCPegps37BMph3eOrfoobhH5AWuC6A==", - "dependencies": { - "commander": "^7.2.0", - "geometry-interfaces": "^1.1.4", - "glob": "^7.1.6", - "neatequal": "^1.0.0", - "readable-stream": "^3.4.0", - "sax": "^1.2.4", - "svg-pathdata": "^6.0.0" - }, - "bin": { - "svgicons2svgfont": "bin/svgicons2svgfont.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/svgpath": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/svgpath/-/svgpath-2.6.0.tgz", - "integrity": "sha512-OIWR6bKzXvdXYyO4DK/UWa1VA1JeKq8E+0ug2DG98Y/vOmMpfZNj+TIG988HjfYSqtcy/hFOtZq/n/j5GSESNg==", - "funding": { - "url": "https://github.com/fontello/svg2ttf?sponsor=1" - } - }, - "node_modules/tar": { - "version": "6.1.15", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", - "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ttf2eot": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ttf2eot/-/ttf2eot-3.1.0.tgz", - "integrity": "sha512-aHTbcYosNHVqb2Qtt9Xfta77ae/5y0VfdwNLUS6sGBeGr22cX2JDMo/i5h3uuOf+FAD3akYOr17+fYd5NK8aXw==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "ttf2eot": "ttf2eot.js" - } - }, - "node_modules/ttf2woff": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ttf2woff/-/ttf2woff-3.0.0.tgz", - "integrity": "sha512-OvmFcj70PhmAsVQKfC15XoKH55cRWuaRzvr2fpTNhTNer6JBpG8n6vOhRrIgxMjcikyYt88xqYXMMVapJ4Rjvg==", - "dependencies": { - "argparse": "^2.0.1", - "pako": "^1.0.0" - }, - "bin": { - "ttf2woff": "ttf2woff.js" - } - }, - "node_modules/ttf2woff2": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/ttf2woff2/-/ttf2woff2-4.0.5.tgz", - "integrity": "sha512-zpoU0NopfjoyVqkFeQ722SyKk/n607mm5OHxuDS/wCCSy82B8H3hHXrezftA2KMbKqfJIjie2lsJHdvPnBGbsw==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "bufferstreams": "^3.0.0", - "nan": "^2.14.2", - "node-gyp": "^9.0.0" - }, - "bin": { - "ttf2woff2": "bin/ttf2woff2.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" - }, - "node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "dependencies": { - "unique-slug": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/varstream": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/varstream/-/varstream-0.3.2.tgz", - "integrity": "sha512-OpR3Usr9dGZZbDttlTxdviGdxiURI0prX68+DuaN/JfIDbK9ZOmREKM6PgmelsejMnhgjXmEEEgf+E4NbsSqMg==", - "dependencies": { - "readable-stream": "^1.0.33" - }, - "bin": { - "json2varstream": "cli/json2varstream.js", - "varstream2json": "cli/varstream2json.js" - }, - "engines": { - "node": ">=0.10.*" - } - }, - "node_modules/varstream/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/varstream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } -} +{ + "name": "icons", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@vusion/webfonts-generator": "^0.8.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@vusion/webfonts-generator": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@vusion/webfonts-generator/-/webfonts-generator-0.8.0.tgz", + "integrity": "sha512-1q17CF6umBEjlAtO37TzRw3aOCCAyFX+T4HPG70BmM6qx8s6H4/LQOa8eHFZq/oiMuMyd0FehKgUt/pqYlIMWA==", + "dependencies": { + "handlebars": "^4.0.11", + "mkdirp": "^1.0.4", + "q": "^1.1.2", + "svg2ttf": "^6.0.3", + "svgicons2svgfont": "^10.0.4", + "ttf2eot": "^3.0.0", + "ttf2woff": "^3.0.0", + "ttf2woff2": "^4.0.4", + "underscore": "^1.9.1", + "url-join": "^4.0.0" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.7.12", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.12.tgz", + "integrity": "sha512-JpcbUyxzrUShspIZ9uzcIuxTdE+X15sY7dCKGfXrXbQ1CqpMBfqkrNSde2dGqhlC4+EdAF+csoTCiAvYAKVKlA==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", + "dependencies": { + "debug": "^4.1.0", + "depd": "^2.0.0", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/bufferstreams": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-3.0.0.tgz", + "integrity": "sha512-Qg0ggJUWJq90vtg4lDsGN9CDWvzBMQxhiEkSOD/sJfYt6BLect3eV1/S6K7SCSKJ34n60rf6U5eUPmQENVE4UA==", + "dependencies": { + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/cacache": { + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.3.tgz", + "integrity": "sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg==", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.3.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.3.tgz", + "integrity": "sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cubic2quad": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cubic2quad/-/cubic2quad-1.2.1.tgz", + "integrity": "sha512-wT5Y7mO8abrV16gnssKdmIhIbA9wSkeMzhh27jAguKrV82i24wER0vL5TGhUJ9dbJNDcigoRZ0IAHFEEEI4THQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", + "dependencies": { + "minipass": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/geometry-interfaces": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/geometry-interfaces/-/geometry-interfaces-1.1.4.tgz", + "integrity": "sha512-qD6OdkT6NcES9l4Xx3auTpwraQruU7dARbQPVO71MKvkGYw5/z/oIiGymuFXrRaEQa5Y67EIojUpaLeGEa5hGA==" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jackspeak": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", + "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/make-fetch-happen": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^5.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/microbuffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/microbuffer/-/microbuffer-1.0.0.tgz", + "integrity": "sha512-O/SUXauVN4x6RaEJFqSPcXNtLFL+QzJHKZlyDVYFwcDDRVca3Fa/37QXXC+4zAGGa4YhHrHxKXuuHvLDIQECtA==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-collect/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", + "dependencies": { + "minipass": "^5.0.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==" + }, + "node_modules/neatequal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/neatequal/-/neatequal-1.0.0.tgz", + "integrity": "sha512-sVt5awO4a4w24QmAthdrCPiVRW3naB8FGLdyadin01BH+6BzNPEBwGrpwCczQvPlULS6uXTItTe1PJ5P0kYm7A==", + "dependencies": { + "varstream": "^0.3.2" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/node-gyp": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz", + "integrity": "sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^11.0.3", + "nopt": "^6.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^12.13 || ^14.13 || >=16" + } + }, + "node_modules/nopt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", + "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "optional": true + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", + "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", + "dependencies": { + "minipass": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svg-pathdata": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-6.0.3.tgz", + "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/svg2ttf": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/svg2ttf/-/svg2ttf-6.0.3.tgz", + "integrity": "sha512-CgqMyZrbOPpc+WqH7aga4JWkDPso23EgypLsbQ6gN3uoPWwwiLjXvzgrwGADBExvCRJrWFzAeK1bSoSpE7ixSQ==", + "dependencies": { + "@xmldom/xmldom": "^0.7.2", + "argparse": "^2.0.1", + "cubic2quad": "^1.2.1", + "lodash": "^4.17.10", + "microbuffer": "^1.0.0", + "svgpath": "^2.1.5" + }, + "bin": { + "svg2ttf": "svg2ttf.js" + } + }, + "node_modules/svgicons2svgfont": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/svgicons2svgfont/-/svgicons2svgfont-10.0.6.tgz", + "integrity": "sha512-fUgQEVg3XwTbOHvlXahHGqCet5Wvfo1bV4DCvbSRvjsOCPCRunYbG4dUJCPegps37BMph3eOrfoobhH5AWuC6A==", + "dependencies": { + "commander": "^7.2.0", + "geometry-interfaces": "^1.1.4", + "glob": "^7.1.6", + "neatequal": "^1.0.0", + "readable-stream": "^3.4.0", + "sax": "^1.2.4", + "svg-pathdata": "^6.0.0" + }, + "bin": { + "svgicons2svgfont": "bin/svgicons2svgfont.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/svgpath": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/svgpath/-/svgpath-2.6.0.tgz", + "integrity": "sha512-OIWR6bKzXvdXYyO4DK/UWa1VA1JeKq8E+0ug2DG98Y/vOmMpfZNj+TIG988HjfYSqtcy/hFOtZq/n/j5GSESNg==", + "funding": { + "url": "https://github.com/fontello/svg2ttf?sponsor=1" + } + }, + "node_modules/tar": { + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ttf2eot": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ttf2eot/-/ttf2eot-3.1.0.tgz", + "integrity": "sha512-aHTbcYosNHVqb2Qtt9Xfta77ae/5y0VfdwNLUS6sGBeGr22cX2JDMo/i5h3uuOf+FAD3akYOr17+fYd5NK8aXw==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "ttf2eot": "ttf2eot.js" + } + }, + "node_modules/ttf2woff": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ttf2woff/-/ttf2woff-3.0.0.tgz", + "integrity": "sha512-OvmFcj70PhmAsVQKfC15XoKH55cRWuaRzvr2fpTNhTNer6JBpG8n6vOhRrIgxMjcikyYt88xqYXMMVapJ4Rjvg==", + "dependencies": { + "argparse": "^2.0.1", + "pako": "^1.0.0" + }, + "bin": { + "ttf2woff": "ttf2woff.js" + } + }, + "node_modules/ttf2woff2": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/ttf2woff2/-/ttf2woff2-4.0.5.tgz", + "integrity": "sha512-zpoU0NopfjoyVqkFeQ722SyKk/n607mm5OHxuDS/wCCSy82B8H3hHXrezftA2KMbKqfJIjie2lsJHdvPnBGbsw==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.5.0", + "bufferstreams": "^3.0.0", + "nan": "^2.14.2", + "node-gyp": "^9.0.0" + }, + "bin": { + "ttf2woff2": "bin/ttf2woff2.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/varstream": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/varstream/-/varstream-0.3.2.tgz", + "integrity": "sha512-OpR3Usr9dGZZbDttlTxdviGdxiURI0prX68+DuaN/JfIDbK9ZOmREKM6PgmelsejMnhgjXmEEEgf+E4NbsSqMg==", + "dependencies": { + "readable-stream": "^1.0.33" + }, + "bin": { + "json2varstream": "cli/json2varstream.js", + "varstream2json": "cli/varstream2json.js" + }, + "engines": { + "node": ">=0.10.*" + } + }, + "node_modules/varstream/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/varstream/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } +}