From 97b0082072c275be84a22cc796a68a92fc1fd442 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 9 Aug 2025 02:02:09 +0200 Subject: [PATCH] l10n: Update translations from Weblate. --- assets/l10n/app_de.arb | 1936 ++++++++-------- assets/l10n/app_fr.arb | 459 +++- assets/l10n/app_pl.arb | 2006 +++++++++-------- assets/l10n/app_ru.arb | 1970 ++++++++-------- assets/l10n/app_uk.arb | 1978 ++++++++-------- assets/l10n/app_zh_Hant_TW.arb | 1974 +++++++++------- .../l10n/zulip_localizations_de.dart | 67 +- .../l10n/zulip_localizations_fr.dart | 206 +- .../l10n/zulip_localizations_pl.dart | 56 +- .../l10n/zulip_localizations_ru.dart | 110 +- .../l10n/zulip_localizations_uk.dart | 90 +- .../l10n/zulip_localizations_zh.dart | 175 +- 12 files changed, 6301 insertions(+), 4726 deletions(-) diff --git a/assets/l10n/app_de.arb b/assets/l10n/app_de.arb index 819b687ea4..967b767594 100644 --- a/assets/l10n/app_de.arb +++ b/assets/l10n/app_de.arb @@ -1,1196 +1,1348 @@ { - "settingsPageTitle": "Einstellungen", - "@settingsPageTitle": { - "description": "Title for the settings page." - }, - "aboutPageTitle": "Über Zulip", - "@aboutPageTitle": { - "description": "Title for About Zulip page." - }, - "aboutPageAppVersion": "App-Version", "@aboutPageAppVersion": { "description": "Label for Zulip app version in About Zulip page" }, - "chooseAccountPageTitle": "Konto auswählen", - "@chooseAccountPageTitle": { - "description": "Title for the page to choose between Zulip accounts." - }, - "switchAccountButton": "Konto wechseln", - "@switchAccountButton": { - "description": "Label for main-menu button leading to the choose-account page." - }, - "aboutPageOpenSourceLicenses": "Open-Source-Lizenzen", "@aboutPageOpenSourceLicenses": { "description": "Item title in About Zulip page to navigate to Licenses page" }, - "newDmSheetComposeButtonLabel": "Verfassen", - "@newDmSheetComposeButtonLabel": { - "description": "Label for the compose button in the new DM sheet that starts composing a message to the selected users." + "@aboutPageTapToView": { + "description": "Item subtitle in About Zulip page to navigate to Licenses page" }, - "newDmSheetScreenTitle": "Neue DN", - "@newDmSheetScreenTitle": { - "description": "Title displayed at the top of the new DM screen." + "@aboutPageTitle": { + "description": "Title for About Zulip page." }, - "newDmFabButtonLabel": "Neue DN", - "@newDmFabButtonLabel": { - "description": "Label for the floating action button (FAB) that opens the new DM sheet." + "@actionSheetOptionCopyChannelLink": { + "description": "Label for copy channel link button on action sheet." }, - "unknownChannelName": "(unbekannter Kanal)", - "@unknownChannelName": { - "description": "Replacement name for channel when it cannot be found in the store." + "@actionSheetOptionCopyMessageLink": { + "description": "Label for copy message link button on action sheet." }, - "composeBoxTopicHintText": "Thema", - "@composeBoxTopicHintText": { - "description": "Hint text for topic input widget in compose box." + "@actionSheetOptionCopyMessageText": { + "description": "Label for copy message text button on action sheet." }, - "composeBoxEnterTopicOrSkipHintText": "Gib ein Thema ein (leer lassen für “{defaultTopicName}”)", - "@composeBoxEnterTopicOrSkipHintText": { - "description": "Hint text for topic input widget in compose box when topics are optional.", - "placeholders": { - "defaultTopicName": { - "type": "String", - "example": "general chat" - } - } + "@actionSheetOptionCopyTopicLink": { + "description": "Label for copy topic link button in action sheet." }, - "contentValidationErrorTooLong": "Nachrichtenlänge sollte nicht größer als 10000 Zeichen sein.", - "@contentValidationErrorTooLong": { - "description": "Content validation error message when the message is too long." + "@actionSheetOptionEditMessage": { + "description": "Label for the 'Edit message' button in the message action sheet." }, - "contentValidationErrorEmpty": "Du hast nichts zum Senden!", - "@contentValidationErrorEmpty": { - "description": "Content validation error message when the message is empty." + "@actionSheetOptionFollowTopic": { + "description": "Label for following a topic on action sheet." }, - "errorDialogLearnMore": "Mehr erfahren", - "@errorDialogLearnMore": { - "description": "Button label in error dialogs to open a web page with more information." + "@actionSheetOptionHideMutedMessage": { + "description": "Label for hide muted message again button on action sheet." }, - "snackBarDetails": "Details", - "@snackBarDetails": { - "description": "Button label for snack bar button that opens a dialog with more details." + "@actionSheetOptionListOfTopics": { + "description": "Label for navigating to a channel's topic-list page." }, - "loginMethodDivider": "ODER", - "@loginMethodDivider": { - "description": "Text on the divider between the username/password form and the third-party login options. Uppercase (for languages with letter case)." + "@actionSheetOptionMarkAsUnread": { + "description": "Label for mark as unread button on action sheet." }, - "topicValidationErrorTooLong": "Länge des Themas sollte 60 Zeichen nicht überschreiten.", - "@topicValidationErrorTooLong": { - "description": "Topic validation error when topic is too long." + "@actionSheetOptionMarkChannelAsRead": { + "description": "Label for marking a channel as read." }, - "spoilerDefaultHeaderText": "Spoiler", - "@spoilerDefaultHeaderText": { - "description": "The default header text in a spoiler block ( https://zulip.com/help/spoilers )." + "@actionSheetOptionMarkTopicAsRead": { + "description": "Option to mark a specific topic as read in the action sheet." }, - "markAllAsReadLabel": "Alle Nachrichten als gelesen markieren", - "@markAllAsReadLabel": { - "description": "Button text to mark messages as read." + "@actionSheetOptionMuteTopic": { + "description": "Label for muting a topic on action sheet." }, - "userRoleOwner": "Besitzer", - "@userRoleOwner": { - "description": "Label for UserRole.owner" + "@actionSheetOptionQuoteMessage": { + "description": "Label for the 'Quote message' button in the message action sheet." }, - "userRoleAdministrator": "Administrator", - "@userRoleAdministrator": { - "description": "Label for UserRole.administrator" + "@actionSheetOptionResolveTopic": { + "description": "Label for the 'Mark as resolved' button on the topic action sheet." }, - "inboxEmptyPlaceholder": "Es sind keine ungelesenen Nachrichten in deinem Eingang. Verwende die Buttons unten um den kombinierten Feed oder die Kanalliste anzusehen.", - "@inboxEmptyPlaceholder": { - "description": "Centered text on the 'Inbox' page saying that there is no content to show." + "@actionSheetOptionSeeWhoReacted": { + "description": "Label for the 'See who reacted' button in the message action sheet." }, - "recentDmConversationsSectionHeader": "Direktnachrichten", - "@recentDmConversationsSectionHeader": { - "description": "Heading for direct messages section on the 'Inbox' message view." + "@actionSheetOptionShare": { + "description": "Label for share button on action sheet." }, - "recentDmConversationsEmptyPlaceholder": "Du hast noch keine Direktnachrichten! Warum nicht die Unterhaltung beginnen?", - "@recentDmConversationsEmptyPlaceholder": { - "description": "Centered text on the 'Direct messages' page saying that there is no content to show." + "@actionSheetOptionStarMessage": { + "description": "Label for star button on action sheet." }, - "starredMessagesPageTitle": "Markierte Nachrichten", - "@starredMessagesPageTitle": { - "description": "Page title for the 'Starred messages' message view." + "@actionSheetOptionSubscribe": { + "description": "Label in the channel action sheet for subscribing to the channel." }, - "channelsPageTitle": "Kanäle", - "@channelsPageTitle": { - "description": "Title for the page with a list of subscribed channels." + "@actionSheetOptionUnfollowTopic": { + "description": "Label for unfollowing a topic on action sheet." }, - "channelsEmptyPlaceholder": "Du hast noch keine Kanäle abonniert.", - "@channelsEmptyPlaceholder": { - "description": "Centered text on the 'Channels' page saying that there is no content to show." + "@actionSheetOptionUnmuteTopic": { + "description": "Label for unmuting a topic on action sheet." }, - "onePersonTyping": "{typist} tippt…", - "@onePersonTyping": { - "description": "Text to display when there is one user typing.", - "placeholders": { - "typist": { - "type": "String", - "example": "Alice" - } - } + "@actionSheetOptionUnresolveTopic": { + "description": "Label for the 'Mark as unresolved' button on the topic action sheet." }, - "errorReactionAddingFailedTitle": "Hinzufügen der Reaktion fehlgeschlagen", - "@errorReactionAddingFailedTitle": { - "description": "Error title when adding a message reaction fails" + "@actionSheetOptionUnstarMessage": { + "description": "Label for unstar button on action sheet." }, - "wildcardMentionTopicDescription": "Thema benachrichtigen", - "@wildcardMentionTopicDescription": { - "description": "Description for \"@topic\" wildcard-mention autocomplete options when writing a channel message." + "@actionSheetOptionUnsubscribe": { + "description": "Label in the channel action sheet for unsubscribing from the channel." }, - "messageIsEditedLabel": "BEARBEITET", - "@messageIsEditedLabel": { - "description": "Label for an edited message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + "@appVersionUnknownPlaceholder": { + "description": "Placeholder to show in place of the app version when it is unknown." }, - "themeSettingTitle": "THEMA", - "@themeSettingTitle": { - "description": "Title for theme setting. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + "@channelFeedButtonTooltip": { + "description": "Tooltip for button to navigate to a given channel's feed" }, - "errorNotificationOpenAccountNotFound": "Der Account, der mit dieser Benachrichtigung verknüpft ist, konnte nicht gefunden werden.", - "@errorNotificationOpenAccountNotFound": { - "description": "Error message when the account associated with the notification could not be found" + "@channelsEmptyPlaceholder": { + "description": "Centered text on the 'Channels' page saying that there is no content to show." }, - "initialAnchorSettingTitle": "Nachrichten-Feed öffnen bei", - "@initialAnchorSettingTitle": { - "description": "Title of setting controlling initial anchor of message list." + "@channelsPageTitle": { + "description": "Title for the page with a list of subscribed channels." }, - "initialAnchorSettingFirstUnreadAlways": "Erste ungelesene Nachricht", - "@initialAnchorSettingFirstUnreadAlways": { - "description": "Label for a value of setting controlling initial anchor of message list." + "@chooseAccountButtonAddAnAccount": { + "description": "Label for ChooseAccountPage button to add an account" }, - "initialAnchorSettingFirstUnreadConversations": "Erste ungelesene Nachricht in Unterhaltungsansicht, sonst neueste Nachricht", - "@initialAnchorSettingFirstUnreadConversations": { - "description": "Label for a value of setting controlling initial anchor of message list." + "@chooseAccountPageLogOutButton": { + "description": "Label for the 'Log out' button for an account on the choose-account page" }, - "revealButtonLabel": "Nachricht für stummgeschalteten Absender anzeigen", - "@revealButtonLabel": { - "description": "Label for the button revealing hidden message from a muted sender in message list." + "@chooseAccountPageTitle": { + "description": "Title for the page to choose between Zulip accounts." }, - "actionSheetOptionListOfTopics": "Themenliste", - "@actionSheetOptionListOfTopics": { - "description": "Label for navigating to a channel's topic-list page." + "@combinedFeedPageTitle": { + "description": "Page title for the 'Combined feed' message view." }, - "actionSheetOptionUnresolveTopic": "Als ungelöst markieren", - "@actionSheetOptionUnresolveTopic": { - "description": "Label for the 'Mark as unresolved' button on the topic action sheet." + "@composeBoxAttachFilesTooltip": { + "description": "Tooltip for compose box icon to attach a file to the message." }, - "errorResolveTopicFailedTitle": "Thema konnte nicht als gelöst markiert werden", - "@errorResolveTopicFailedTitle": { - "description": "Error title when marking a topic as resolved failed." + "@composeBoxAttachFromCameraTooltip": { + "description": "Tooltip for compose box icon to attach an image from the camera to the message." }, - "actionSheetOptionCopyMessageText": "Nachrichtentext kopieren", - "@actionSheetOptionCopyMessageText": { - "description": "Label for copy message text button on action sheet." + "@composeBoxAttachMediaTooltip": { + "description": "Tooltip for compose box icon to attach media to the message." }, - "actionSheetOptionCopyMessageLink": "Link zur Nachricht kopieren", - "@actionSheetOptionCopyMessageLink": { - "description": "Label for copy message link button on action sheet." + "@composeBoxBannerButtonCancel": { + "description": "Label text for the 'Cancel' button in the compose-box banner when you are editing a message." }, - "actionSheetOptionUnstarMessage": "Markierung aufheben", - "@actionSheetOptionUnstarMessage": { - "description": "Label for unstar button on action sheet." + "@composeBoxBannerButtonSave": { + "description": "Label text for the 'Save' button in the compose-box banner when you are editing a message." }, - "errorCouldNotFetchMessageSource": "Konnte Nachrichtenquelle nicht abrufen.", - "@errorCouldNotFetchMessageSource": { - "description": "Error message when the source of a message could not be fetched." + "@composeBoxBannerLabelEditMessage": { + "description": "Label text for the compose-box banner when you are editing a message." }, - "errorLoginFailedTitle": "Anmeldung fehlgeschlagen", - "@errorLoginFailedTitle": { - "description": "Error title for login when signing into a Zulip server fails." + "@composeBoxChannelContentHint": { + "description": "Hint text for content input when sending a message to a channel.", + "placeholders": { + "destination": { + "example": "#channel name > topic name", + "type": "String" + } + } }, - "errorCouldNotOpenLink": "Link konnte nicht geöffnet werden: {url}", - "@errorCouldNotOpenLink": { - "description": "Error message when opening a link failed.", + "@composeBoxDmContentHint": { + "description": "Hint text for content input when sending a message to one other person.", "placeholders": { - "url": { - "type": "String", - "example": "https://chat.example.com" + "user": { + "example": "channel name", + "type": "String" } } }, - "errorMuteTopicFailed": "Konnte Thema nicht stummschalten", - "@errorMuteTopicFailed": { - "description": "Error message when muting a topic failed." + "@composeBoxEnterTopicOrSkipHintText": { + "description": "Hint text for topic input widget in compose box when topics are optional.", + "placeholders": { + "defaultTopicName": { + "example": "general chat", + "type": "String" + } + } }, - "errorCouldNotEditMessageTitle": "Konnte Nachricht nicht bearbeiten", - "@errorCouldNotEditMessageTitle": { - "description": "Error title when an exception prevented us from opening the compose box for editing a message." + "@composeBoxGenericContentHint": { + "description": "Hint text for content input when sending a message." }, - "composeBoxBannerLabelEditMessage": "Nachricht bearbeiten", - "@composeBoxBannerLabelEditMessage": { - "description": "Label text for the compose-box banner when you are editing a message." + "@composeBoxGroupDmContentHint": { + "description": "Hint text for content input when sending a message to a group." }, - "composeBoxBannerButtonCancel": "Abbrechen", - "@composeBoxBannerButtonCancel": { - "description": "Label text for the 'Cancel' button in the compose-box banner when you are editing a message." + "@composeBoxLoadingMessage": { + "description": "Placeholder in compose box showing the quoted message is currently loading.", + "placeholders": { + "messageId": { + "example": "1234", + "type": "int" + } + } }, - "preparingEditMessageContentInput": "Bereite vor…", - "@preparingEditMessageContentInput": { - "description": "Hint text for content input when the compose box is preparing to edit a message." - }, - "discardDraftConfirmationDialogConfirmButton": "Verwerfen", - "@discardDraftConfirmationDialogConfirmButton": { - "description": "Label for the 'Discard' button on a confirmation dialog for discarding message text that was typed into the compose box." - }, - "messageListGroupYouAndOthers": "Du und {others}", - "@messageListGroupYouAndOthers": { - "description": "Message list recipient header for a DM group with others.", - "placeholders": { - "others": { - "type": "String", - "example": "Alice, Bob" - } - } + "@composeBoxSelfDmContentHint": { + "description": "Hint text for content input when sending a message to yourself." }, - "unknownUserName": "(Nutzer:in unbekannt)", - "@unknownUserName": { - "description": "Name placeholder to use for a user when we don't know their name." + "@composeBoxSendTooltip": { + "description": "Tooltip for send button in compose box." }, - "dialogCancel": "Abbrechen", - "@dialogCancel": { - "description": "Button label in dialogs to cancel." + "@composeBoxTopicHintText": { + "description": "Hint text for topic input widget in compose box." }, - "errorMalformedResponseWithCause": "Server lieferte fehlerhafte Antwort; HTTP Status {httpStatus}; {details}", - "@errorMalformedResponseWithCause": { - "description": "Error message when an API call fails because we could not parse the response, with details of the failure.", + "@composeBoxUploadingFilename": { + "description": "Placeholder in compose box showing the specified file is currently uploading.", "placeholders": { - "httpStatus": { - "type": "int", - "example": "200" - }, - "details": { - "type": "String", - "example": "type 'Null' is not a subtype of type 'String' in type cast" + "filename": { + "example": "file.txt", + "type": "String" } } }, - "userRoleModerator": "Moderator", - "@userRoleModerator": { - "description": "Label for UserRole.moderator" - }, - "userRoleGuest": "Gast", - "@userRoleGuest": { - "description": "Label for UserRole.guest" - }, - "userRoleMember": "Mitglied", - "@userRoleMember": { - "description": "Label for UserRole.member" + "@contentValidationErrorEmpty": { + "description": "Content validation error message when the message is empty." }, - "userRoleUnknown": "Unbekannt", - "@userRoleUnknown": { - "description": "Label for UserRole.unknown" + "@contentValidationErrorQuoteAndReplyInProgress": { + "description": "Content validation error message when a quotation has not completed yet." }, - "unpinnedSubscriptionsLabel": "Nicht angeheftet", - "@unpinnedSubscriptionsLabel": { - "description": "Label for the list of unpinned subscribed channels." + "@contentValidationErrorTooLong": { + "description": "Content validation error message when the message is too long." }, - "wildcardMentionChannelDescription": "Kanal benachrichtigen", - "@wildcardMentionChannelDescription": { - "description": "Description for \"@all\", \"@everyone\", \"@channel\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message." + "@contentValidationErrorUploadInProgress": { + "description": "Content validation error message when attachments have not finished uploading." }, - "wildcardMentionStreamDescription": "Stream benachrichtigen", - "@wildcardMentionStreamDescription": { - "description": "Description for \"@all\", \"@everyone\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message in older servers." + "@dialogCancel": { + "description": "Button label in dialogs to cancel." }, - "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.", - "@experimentalFeatureSettingsWarning": { - "description": "Warning text on settings page for experimental, in-development features" + "@dialogClose": { + "description": "Button label in dialogs to close." }, - "savingMessageEditLabel": "SPEICHERE BEARBEITUNG…", - "@savingMessageEditLabel": { - "description": "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.)" + "@dialogContinue": { + "description": "Button label in dialogs to proceed." }, - "savingMessageEditFailedLabel": "BEARBEITUNG NICHT GESPEICHERT", - "@savingMessageEditFailedLabel": { - "description": "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.)" + "@discardDraftConfirmationDialogConfirmButton": { + "description": "Label for the 'Discard' button on a confirmation dialog for discarding message text that was typed into the compose box." }, - "discardDraftConfirmationDialogTitle": "Die Nachricht, die du schreibst, verwerfen?", "@discardDraftConfirmationDialogTitle": { "description": "Title for a confirmation dialog for discarding message text that was typed into the compose box." }, - "discardDraftForOutboxConfirmationDialogMessage": "Wenn du eine nicht gesendete Nachricht wiederherstellst, wird der vorherige Inhalt der Nachrichteneingabe verworfen.", + "@discardDraftForEditConfirmationDialogMessage": { + "description": "Message for a confirmation dialog for discarding message text that was typed into the compose box, when editing a message." + }, "@discardDraftForOutboxConfirmationDialogMessage": { "description": "Message for a confirmation dialog when restoring an outbox message, for discarding message text that was typed into the compose box." }, - "dialogContinue": "Fortsetzen", - "@dialogContinue": { - "description": "Button label in dialogs to proceed." + "@dmsWithOthersPageTitle": { + "description": "Message list page title for a DM group with others.", + "placeholders": { + "others": { + "example": "Alice, Bob", + "type": "String" + } + } }, - "loginServerUrlLabel": "Deine Zulip Server URL", - "@loginServerUrlLabel": { - "description": "Label in login page for Zulip server URL entry." + "@dmsWithYourselfPageTitle": { + "description": "Message list page title for a DM group that only includes yourself." }, - "loginErrorMissingEmail": "Bitte gib deine E-Mail ein.", - "@loginErrorMissingEmail": { - "description": "Error message when an empty email was provided." + "@editAlreadyInProgressMessage": { + "description": "Error message when a message edit cannot be saved because there is another edit already in progress." }, - "loginErrorMissingPassword": "Bitte gib dein Passwort ein.", - "@loginErrorMissingPassword": { - "description": "Error message when an empty password was provided." + "@editAlreadyInProgressTitle": { + "description": "Error title when a message edit cannot be saved because there is another edit already in progress." }, - "actionSheetOptionQuoteMessage": "Nachricht zitieren", - "@actionSheetOptionQuoteMessage": { - "description": "Label for the 'Quote message' button in the message action sheet." + "@emojiPickerSearchEmoji": { + "description": "Hint text for the emoji picker search text field." }, - "markReadOnScrollSettingAlways": "Immer", - "@markReadOnScrollSettingAlways": { - "description": "Label for a value of setting controlling which message-list views should mark read on scroll." + "@emojiReactionsMore": { + "description": "Label for a button opening the emoji picker." }, - "actionSheetOptionStarMessage": "Nachricht markieren", - "@actionSheetOptionStarMessage": { - "description": "Label for star button on action sheet." + "@errorAccountLoggedIn": { + "description": "Error message on attempting to log into an account that's already logged in.", + "placeholders": { + "email": { + "example": "user@example.com", + "type": "String" + }, + "server": { + "example": "https://example.com", + "type": "String" + } + } }, - "errorAccountLoggedInTitle": "Account bereits angemeldet", "@errorAccountLoggedInTitle": { "description": "Error title on attempting to log into an account that's already logged in." }, - "actionSheetOptionEditMessage": "Nachricht bearbeiten", - "@actionSheetOptionEditMessage": { - "description": "Label for the 'Edit message' button in the message action sheet." - }, - "composeBoxGenericContentHint": "Eine Nachricht eingeben", - "@composeBoxGenericContentHint": { - "description": "Hint text for content input when sending a message." - }, - "actionSheetOptionMarkAsUnread": "Ab hier als ungelesen markieren", - "@actionSheetOptionMarkAsUnread": { - "description": "Label for mark as unread button on action sheet." - }, - "errorUnresolveTopicFailedTitle": "Thema konnte nicht als ungelöst markiert werden", - "@errorUnresolveTopicFailedTitle": { - "description": "Error title when marking a topic as unresolved failed." - }, - "logOutConfirmationDialogMessage": "Um diesen Account in Zukunft zu verwenden, musst du die URL deiner Organisation und deine Account-Informationen erneut eingeben.", - "@logOutConfirmationDialogMessage": { - "description": "Message for a confirmation dialog for logging out." + "@errorBannerCannotPostInChannelLabel": { + "description": "Error-banner text replacing the compose box when you do not have permission to send a message to the channel." }, - "actionSheetOptionMarkTopicAsRead": "Thema als gelesen markieren", - "@actionSheetOptionMarkTopicAsRead": { - "description": "Option to mark a specific topic as read in the action sheet." + "@errorBannerDeactivatedDmLabel": { + "description": "Label text for error banner when sending a message to one or multiple deactivated users." }, - "errorHandlingEventDetails": "Fehler beim Verarbeiten eines Zulip-Ereignisses von {serverUrl}; Wird wiederholt.\n\nFehler: {error}\n\nEreignis: {event}", - "@errorHandlingEventDetails": { - "description": "Error details on failing to handle a Zulip server event.", + "@errorConnectingToServerDetails": { + "description": "Dialog error message for a generic unknown error connecting to the server with details.", "placeholders": { - "serverUrl": { - "type": "String", - "example": "https://chat.example.com" - }, "error": { - "type": "String", - "example": "Unexpected null value" + "example": "Invalid format", + "type": "String" }, - "event": { - "type": "String", - "example": "UpdateMessageEvent(id: 123, messageIds: [2345, 3456], newTopic: 'dinner')" + "serverUrl": { + "example": "http://example.com/", + "type": "String" } } }, - "markReadOnScrollSettingConversationsDescription": "Nachrichten werden nur beim Ansehen einzelner Themen oder Direktnachrichten automatisch als gelesen markiert.", - "@markReadOnScrollSettingConversationsDescription": { - "description": "Description for a value of setting controlling which message-list views should mark read on scroll." + "@errorConnectingToServerShort": { + "description": "Short error message for a generic unknown error connecting to the server." }, - "markAsReadComplete": "{num, plural, =1{Eine Nachricht} other{{num} Nachrichten}} als gelesen markiert.", - "@markAsReadComplete": { - "description": "Message when marking messages as read has completed.", + "@errorCopyingFailed": { + "description": "Error message when copying the text of a message to the user's system clipboard failed." + }, + "@errorCouldNotConnectTitle": { + "description": "Error title when the app could not connect to the server." + }, + "@errorCouldNotEditMessageTitle": { + "description": "Error title when an exception prevented us from opening the compose box for editing a message." + }, + "@errorCouldNotFetchMessageSource": { + "description": "Error message when the source of a message could not be fetched." + }, + "@errorCouldNotOpenLink": { + "description": "Error message when opening a link failed.", "placeholders": { - "num": { - "type": "int", - "example": "4" + "url": { + "example": "https://chat.example.com", + "type": "String" } } }, - "contentValidationErrorUploadInProgress": "Bitte warte bis das Hochladen abgeschlossen ist.", - "@contentValidationErrorUploadInProgress": { - "description": "Content validation error message when attachments have not finished uploading." + "@errorCouldNotOpenLinkTitle": { + "description": "Error title when opening a link failed." }, - "composeBoxBannerButtonSave": "Speichern", - "@composeBoxBannerButtonSave": { - "description": "Label text for the 'Save' button in the compose-box banner when you are editing a message." + "@errorCouldNotShowUserProfile": { + "description": "Message that appears on the user profile page when the profile cannot be shown." }, - "loginEmailLabel": "E-Mail-Adresse", - "@loginEmailLabel": { - "description": "Label for input when an email is required to log in." + "@errorDialogContinue": { + "description": "Button label in error dialogs to acknowledge the error and close the dialog." }, - "dialogClose": "Schließen", - "@dialogClose": { - "description": "Button label in dialogs to close." + "@errorDialogLearnMore": { + "description": "Button label in error dialogs to open a web page with more information." }, - "loginHidePassword": "Passwort verstecken", - "@loginHidePassword": { - "description": "Icon label for button to hide password in input form." + "@errorDialogTitle": { + "description": "Generic title for error dialog." }, - "markAsUnreadComplete": "{num, plural, =1{Eine Nachricht} other{{num} Nachrichten}} als ungelesen markiert.", - "@markAsUnreadComplete": { - "description": "Message when marking messages as unread has completed.", + "@errorFailedToUploadFileTitle": { + "description": "Error title when the specified file failed to upload.", "placeholders": { - "num": { - "type": "int", - "example": "4" + "filename": { + "example": "file.txt", + "type": "String" } } }, - "topicsButtonTooltip": "Themen", - "@topicsButtonTooltip": { - "description": "Tooltip for button to navigate to topic-list page." - }, - "markReadOnScrollSettingTitle": "Nachrichten beim Scrollen als gelesen markieren", - "@markReadOnScrollSettingTitle": { - "description": "Title of setting controlling which message-list views should mark read on scroll." + "@errorFilesTooLarge": { + "description": "Error message when attached files are too large in size.", + "placeholders": { + "listMessage": { + "example": "foo.txt: 10.1 MiB\nbar.txt 20.2 MiB", + "type": "String" + }, + "maxFileUploadSizeMib": { + "example": "15", + "type": "int" + }, + "num": { + "example": "2", + "type": "int" + } + } }, - "errorMarkAsReadFailedTitle": "Als gelesen markieren fehlgeschlagen", - "@errorMarkAsReadFailedTitle": { - "description": "Error title when mark as read action failed." + "@errorFilesTooLargeTitle": { + "description": "Error title when attached files are too large in size.", + "placeholders": { + "num": { + "example": "4", + "type": "int" + } + } }, - "pinnedSubscriptionsLabel": "Angeheftet", - "@pinnedSubscriptionsLabel": { - "description": "Label for the list of pinned subscribed channels." + "@errorFollowTopicFailed": { + "description": "Error message when following a topic failed." }, - "initialAnchorSettingDescription": "Du kannst auswählen ob Nachrichten-Feeds bei deiner ersten ungelesenen oder bei den neuesten Nachrichten geöffnet werden.", - "@initialAnchorSettingDescription": { - "description": "Description of setting controlling initial anchor of message list." + "@errorHandlingEventDetails": { + "description": "Error details on failing to handle a Zulip server event.", + "placeholders": { + "error": { + "example": "Unexpected null value", + "type": "String" + }, + "event": { + "example": "UpdateMessageEvent(id: 123, messageIds: [2345, 3456], newTopic: 'dinner')", + "type": "String" + }, + "serverUrl": { + "example": "https://chat.example.com", + "type": "String" + } + } }, - "markReadOnScrollSettingNever": "Nie", - "@markReadOnScrollSettingNever": { - "description": "Label for a value of setting controlling which message-list views should mark read on scroll." + "@errorHandlingEventTitle": { + "description": "Error title on failing to handle a Zulip server event." }, - "initialAnchorSettingNewestAlways": "Neueste Nachricht", - "@initialAnchorSettingNewestAlways": { - "description": "Label for a value of setting controlling initial anchor of message list." + "@errorInvalidApiKeyMessage": { + "description": "Error message in the dialog for invalid API key.", + "placeholders": { + "url": { + "example": "http://chat.example.com/", + "type": "String" + } + } }, - "markReadOnScrollSettingDescription": "Sollen Nachrichten automatisch als gelesen markiert werden, wenn du sie durchscrollst?", - "@markReadOnScrollSettingDescription": { - "description": "Description of setting controlling which message-list views should mark read on scroll." + "@errorInvalidResponse": { + "description": "Error message when an API call returned an invalid response." }, - "markReadOnScrollSettingConversations": "Nur in Unterhaltungsansichten", - "@markReadOnScrollSettingConversations": { - "description": "Label for a value of setting controlling which message-list views should mark read on scroll." + "@errorLoginCouldNotConnect": { + "description": "Error message when the app could not connect to the server.", + "placeholders": { + "url": { + "example": "http://example.com/", + "type": "String" + } + } }, - "errorAccountLoggedIn": "Der Account {email} auf {server} ist bereits in deiner Account-Liste.", - "@errorAccountLoggedIn": { - "description": "Error message on attempting to log into an account that's already logged in.", + "@errorLoginFailedTitle": { + "description": "Error title for login when signing into a Zulip server fails." + }, + "@errorLoginInvalidInputTitle": { + "description": "Error title for login when input is invalid." + }, + "@errorMalformedResponse": { + "description": "Error message when an API call fails because we could not parse the response.", "placeholders": { - "email": { - "type": "String", - "example": "user@example.com" + "httpStatus": { + "example": "200", + "type": "int" + } + } + }, + "@errorMalformedResponseWithCause": { + "description": "Error message when an API call fails because we could not parse the response, with details of the failure.", + "placeholders": { + "details": { + "example": "type 'Null' is not a subtype of type 'String' in type cast", + "type": "String" }, - "server": { - "type": "String", - "example": "https://example.com" + "httpStatus": { + "example": "200", + "type": "int" } } }, - "errorCopyingFailed": "Kopieren fehlgeschlagen", - "@errorCopyingFailed": { - "description": "Error message when copying the text of a message to the user's system clipboard failed." + "@errorMarkAsReadFailedTitle": { + "description": "Error title when mark as read action failed." }, - "actionSheetOptionHideMutedMessage": "Stummgeschaltete Nachricht wieder ausblenden", - "@actionSheetOptionHideMutedMessage": { - "description": "Label for hide muted message again button on action sheet." + "@errorMarkAsUnreadFailedTitle": { + "description": "Error title when mark as unread action failed." }, - "errorMessageNotSent": "Nachricht nicht versendet", - "@errorMessageNotSent": { - "description": "Error message for compose box when a message could not be sent." + "@errorMessageDoesNotSeemToExist": { + "description": "Error message when loading a message that does not exist." }, - "errorMessageEditNotSaved": "Nachricht nicht gespeichert", "@errorMessageEditNotSaved": { "description": "Error message for compose box when a message edit could not be saved." }, - "editAlreadyInProgressTitle": "Kann Nachricht nicht bearbeiten", - "@editAlreadyInProgressTitle": { - "description": "Error title when a message edit cannot be saved because there is another edit already in progress." - }, - "editAlreadyInProgressMessage": "Eine Bearbeitung läuft gerade. Bitte warte bis sie abgeschlossen ist.", - "@editAlreadyInProgressMessage": { - "description": "Error message when a message edit cannot be saved because there is another edit already in progress." + "@errorMessageNotSent": { + "description": "Error message for compose box when a message could not be sent." }, - "discardDraftForEditConfirmationDialogMessage": "Wenn du eine Nachricht bearbeitest, wird der vorherige Inhalt der Nachrichteneingabe verworfen.", - "@discardDraftForEditConfirmationDialogMessage": { - "description": "Message for a confirmation dialog for discarding message text that was typed into the compose box, when editing a message." + "@errorMuteTopicFailed": { + "description": "Error message when muting a topic failed." }, - "newDmSheetNoUsersFound": "Keine Nutzer:innen gefunden", - "@newDmSheetNoUsersFound": { - "description": "Message shown in the new DM sheet when no users match the search." + "@errorNetworkRequestFailed": { + "description": "Error message when a network request fails." }, - "newDmSheetSearchHintEmpty": "Füge ein oder mehrere Nutzer:innen hinzu", - "@newDmSheetSearchHintEmpty": { - "description": "Hint text for the search bar when no users are selected" + "@errorNotificationOpenAccountNotFound": { + "description": "Error message when the account associated with the notification could not be found" }, - "newDmSheetSearchHintSomeSelected": "Füge weitere Nutzer:in hinzu…", - "@newDmSheetSearchHintSomeSelected": { - "description": "Hint text for the search bar when at least one user is selected." + "@errorNotificationOpenTitle": { + "description": "Error title when notification opening fails" }, - "lightboxVideoCurrentPosition": "Aktuelle Position", - "@lightboxVideoCurrentPosition": { - "description": "The current playback position of the video playing in the lightbox." + "@errorQuotationFailed": { + "description": "Error message when quoting a message failed." }, - "lightboxCopyLinkTooltip": "Link kopieren", - "@lightboxCopyLinkTooltip": { - "description": "Tooltip in lightbox for the copy link action." + "@errorReactionAddingFailedTitle": { + "description": "Error title when adding a message reaction fails" }, - "serverUrlValidationErrorInvalidUrl": "Bitte gib eine gültige URL ein.", - "@serverUrlValidationErrorInvalidUrl": { - "description": "Error message when URL is not in a valid format." + "@errorReactionRemovingFailedTitle": { + "description": "Error title when removing a message reaction fails" }, - "errorRequestFailed": "Netzwerkanfrage fehlgeschlagen: HTTP Status {httpStatus}", "@errorRequestFailed": { "description": "Error message when an API call fails.", "placeholders": { "httpStatus": { - "type": "int", - "example": "500" + "example": "500", + "type": "int" } } }, - "errorVideoPlayerFailed": "Video konnte nicht wiedergegeben werden.", - "@errorVideoPlayerFailed": { - "description": "Error message when a video fails to play." + "@errorResolveTopicFailedTitle": { + "description": "Error title when marking a topic as resolved failed." }, - "serverUrlValidationErrorEmpty": "Bitte gib eine URL ein.", - "@serverUrlValidationErrorEmpty": { - "description": "Error message when URL is empty" + "@errorServerMessage": { + "description": "Error message that quotes an error from the server.", + "placeholders": { + "message": { + "example": "Invalid format", + "type": "String" + } + } }, - "messageNotSentLabel": "NACHRICHT NICHT GESENDET", - "@messageNotSentLabel": { - "description": "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.)" + "@errorServerVersionUnsupportedMessage": { + "description": "Error message in the dialog for when the Zulip Server version is unsupported.", + "placeholders": { + "minSupportedZulipVersion": { + "example": "4.0", + "type": "String" + }, + "url": { + "example": "http://chat.example.com/", + "type": "String" + }, + "zulipVersion": { + "example": "3.2", + "type": "String" + } + } }, - "mutedUser": "Stummgeschaltete:r Nutzer:in", - "@mutedUser": { - "description": "Name for a muted user to display all over the app." + "@errorSharingFailed": { + "description": "Error message when sharing a message failed." }, - "aboutPageTapToView": "Antippen zum Ansehen", - "@aboutPageTapToView": { - "description": "Item subtitle in About Zulip page to navigate to Licenses page" + "@errorStarMessageFailedTitle": { + "description": "Error title when starring a message failed." }, - "tryAnotherAccountMessage": "Dein Account bei {url} benötigt einige Zeit zum Laden.", - "@tryAnotherAccountMessage": { - "description": "Message that appears on the loading screen after waiting for some time.", - "url": { - "type": "String", - "example": "http://chat.example.com/" - } + "@errorUnfollowTopicFailed": { + "description": "Error message when unfollowing a topic failed." }, - "tryAnotherAccountButton": "Anderen Account ausprobieren", - "@tryAnotherAccountButton": { - "description": "Label for loading screen button prompting user to try another account." + "@errorUnmuteTopicFailed": { + "description": "Error message when unmuting a topic failed." }, - "chooseAccountPageLogOutButton": "Abmelden", - "@chooseAccountPageLogOutButton": { - "description": "Label for the 'Log out' button for an account on the choose-account page" + "@errorUnresolveTopicFailedTitle": { + "description": "Error title when marking a topic as unresolved failed." }, - "logOutConfirmationDialogTitle": "Abmelden?", - "@logOutConfirmationDialogTitle": { - "description": "Title for a confirmation dialog for logging out." + "@errorUnstarMessageFailedTitle": { + "description": "Error title when unstarring a message failed." }, - "logOutConfirmationDialogConfirmButton": "Abmelden", - "@logOutConfirmationDialogConfirmButton": { - "description": "Label for the 'Log out' button on a confirmation dialog for logging out." + "@errorVideoPlayerFailed": { + "description": "Error message when a video fails to play." }, - "chooseAccountButtonAddAnAccount": "Account hinzufügen", - "@chooseAccountButtonAddAnAccount": { - "description": "Label for ChooseAccountPage button to add an account" + "@errorWebAuthOperationalError": { + "description": "Error message when third-party authentication has an operational error (not necessarily caused by invalid credentials)." }, - "profileButtonSendDirectMessage": "Direktnachricht senden", - "@profileButtonSendDirectMessage": { - "description": "Label for button in profile screen to navigate to DMs with the shown user." + "@errorWebAuthOperationalErrorTitle": { + "description": "Error title when third-party authentication has an operational error (not necessarily caused by invalid credentials)." }, - "permissionsNeededTitle": "Berechtigungen erforderlich", - "@permissionsNeededTitle": { - "description": "Title for dialog asking the user to grant additional permissions." + "@experimentalFeatureSettingsPageTitle": { + "description": "Title of settings page for experimental, in-development features" }, - "errorCouldNotShowUserProfile": "Nutzerprofil kann nicht angezeigt werden.", - "@errorCouldNotShowUserProfile": { - "description": "Message that appears on the user profile page when the profile cannot be shown." + "@experimentalFeatureSettingsWarning": { + "description": "Warning text on settings page for experimental, in-development features" }, - "permissionsNeededOpenSettings": "Einstellungen öffnen", - "@permissionsNeededOpenSettings": { - "description": "Button label for permissions dialog button that opens the system settings screen." + "@filenameAndSizeInMiB": { + "description": "The name of a file, and its size in mebibytes.", + "placeholders": { + "filename": { + "example": "foo.txt", + "type": "String" + }, + "size": { + "example": "20.2", + "type": "String" + } + } }, - "permissionsDeniedCameraAccess": "Bitte gewähre Zulip zusätzliche Berechtigungen in den Einstellungen, um ein Bild hochzuladen.", - "@permissionsDeniedCameraAccess": { - "description": "Message for dialog asking the user to grant permissions for camera access." + "@inboxEmptyPlaceholder": { + "description": "Centered text on the 'Inbox' page saying that there is no content to show." }, - "actionSheetOptionUnfollowTopic": "Thema entfolgen", - "@actionSheetOptionUnfollowTopic": { - "description": "Label for unfollowing a topic on action sheet." + "@inboxPageTitle": { + "description": "Title for the page with unreads." }, - "permissionsDeniedReadExternalStorage": "Bitte gewähre Zulip zusätzliche Berechtigungen in den Einstellungen, um Dateien hochzuladen.", - "@permissionsDeniedReadExternalStorage": { - "description": "Message for dialog asking the user to grant permissions for external storage read access." + "@initialAnchorSettingDescription": { + "description": "Description of setting controlling initial anchor of message list." }, - "actionSheetOptionMarkChannelAsRead": "Kanal als gelesen markieren", - "@actionSheetOptionMarkChannelAsRead": { - "description": "Label for marking a channel as read." + "@initialAnchorSettingFirstUnreadAlways": { + "description": "Label for a value of setting controlling initial anchor of message list." }, - "actionSheetOptionMuteTopic": "Thema stummschalten", - "@actionSheetOptionMuteTopic": { - "description": "Label for muting a topic on action sheet." + "@initialAnchorSettingFirstUnreadConversations": { + "description": "Label for a value of setting controlling initial anchor of message list." }, - "actionSheetOptionUnmuteTopic": "Thema lautschalten", - "@actionSheetOptionUnmuteTopic": { - "description": "Label for unmuting a topic on action sheet." + "@initialAnchorSettingNewestAlways": { + "description": "Label for a value of setting controlling initial anchor of message list." }, - "actionSheetOptionFollowTopic": "Thema folgen", - "@actionSheetOptionFollowTopic": { - "description": "Label for following a topic on action sheet." + "@initialAnchorSettingTitle": { + "description": "Title of setting controlling initial anchor of message list." }, - "actionSheetOptionResolveTopic": "Als gelöst markieren", - "@actionSheetOptionResolveTopic": { - "description": "Label for the 'Mark as resolved' button on the topic action sheet." + "@lightboxCopyLinkTooltip": { + "description": "Tooltip in lightbox for the copy link action." }, - "actionSheetOptionShare": "Teilen", - "@actionSheetOptionShare": { - "description": "Label for share button on action sheet." + "@lightboxVideoCurrentPosition": { + "description": "The current playback position of the video playing in the lightbox." }, - "errorWebAuthOperationalErrorTitle": "Etwas ist schiefgelaufen", - "@errorWebAuthOperationalErrorTitle": { - "description": "Error title when third-party authentication has an operational error (not necessarily caused by invalid credentials)." + "@lightboxVideoDuration": { + "description": "The total duration of the video playing in the lightbox." }, - "errorWebAuthOperationalError": "Ein unerwarteter Fehler ist aufgetreten.", - "@errorWebAuthOperationalError": { - "description": "Error message when third-party authentication has an operational error (not necessarily caused by invalid credentials)." + "@logOutConfirmationDialogConfirmButton": { + "description": "Label for the 'Log out' button on a confirmation dialog for logging out." }, - "errorFilesTooLarge": "{num, plural, =1{Datei ist} other{{num} Dateien sind}} größer als das Serverlimit von {maxFileUploadSizeMib} MiB und {num, plural, =1{wird} other{{num} werden}} nicht hochgeladen:\n\n{listMessage}", - "@errorFilesTooLarge": { - "description": "Error message when attached files are too large in size.", - "placeholders": { - "num": { - "type": "int", - "example": "2" - }, - "maxFileUploadSizeMib": { - "type": "int", - "example": "15" - }, - "listMessage": { - "type": "String", - "example": "foo.txt: 10.1 MiB\nbar.txt 20.2 MiB" - } - } + "@logOutConfirmationDialogMessage": { + "description": "Message for a confirmation dialog for logging out." }, - "errorFilesTooLargeTitle": "{num, plural, =1{Datei} other{Dateien}} zu groß", - "@errorFilesTooLargeTitle": { - "description": "Error title when attached files are too large in size.", - "placeholders": { - "num": { - "type": "int", - "example": "4" - } - } + "@logOutConfirmationDialogTitle": { + "description": "Title for a confirmation dialog for logging out." }, - "errorLoginInvalidInputTitle": "Ungültige Eingabe", - "@errorLoginInvalidInputTitle": { - "description": "Error title for login when input is invalid." + "@loginAddAnAccountPageTitle": { + "description": "Title for page to add a Zulip account." }, - "errorLoginCouldNotConnect": "Verbindung zu Server fehlgeschlagen:\n{url}", - "@errorLoginCouldNotConnect": { - "description": "Error message when the app could not connect to the server.", - "placeholders": { - "url": { - "type": "String", - "example": "http://example.com/" - } - } + "@loginEmailLabel": { + "description": "Label for input when an email is required to log in." }, - "errorCouldNotConnectTitle": "Konnte nicht verbinden", - "@errorCouldNotConnectTitle": { - "description": "Error title when the app could not connect to the server." + "@loginErrorMissingEmail": { + "description": "Error message when an empty email was provided." }, - "errorMessageDoesNotSeemToExist": "Diese Nachricht scheint nicht zu existieren.", - "@errorMessageDoesNotSeemToExist": { - "description": "Error message when loading a message that does not exist." + "@loginErrorMissingPassword": { + "description": "Error message when an empty password was provided." }, - "errorQuotationFailed": "Zitat fehlgeschlagen", - "@errorQuotationFailed": { - "description": "Error message when quoting a message failed." + "@loginErrorMissingUsername": { + "description": "Error message when an empty username was provided." }, - "errorServerMessage": "Der Server sagte:\n\n{message}", - "@errorServerMessage": { - "description": "Error message that quotes an error from the server.", + "@loginFormSubmitLabel": { + "description": "Button text to submit login credentials." + }, + "@loginHidePassword": { + "description": "Icon label for button to hide password in input form." + }, + "@loginMethodDivider": { + "description": "Text on the divider between the username/password form and the third-party login options. Uppercase (for languages with letter case)." + }, + "@loginPageTitle": { + "description": "Title for login page." + }, + "@loginPasswordLabel": { + "description": "Label for password input field." + }, + "@loginServerUrlLabel": { + "description": "Label in login page for Zulip server URL entry." + }, + "@loginUsernameLabel": { + "description": "Label for input when a username is required to log in." + }, + "@mainMenuMyProfile": { + "description": "Label for main-menu button leading to the user's own profile." + }, + "@manyPeopleTyping": { + "description": "Text to display when there are multiple users typing." + }, + "@markAllAsReadLabel": { + "description": "Button text to mark messages as read." + }, + "@markAsReadComplete": { + "description": "Message when marking messages as read has completed.", "placeholders": { - "message": { - "type": "String", - "example": "Invalid format" + "num": { + "example": "4", + "type": "int" } } }, - "errorConnectingToServerDetails": "Fehler beim Verbinden mit Zulip auf {serverUrl}. Wird wiederholt:\n\n{error}", - "@errorConnectingToServerDetails": { - "description": "Dialog error message for a generic unknown error connecting to the server with details.", + "@markAsReadInProgress": { + "description": "Progress message when marking messages as read." + }, + "@markAsUnreadComplete": { + "description": "Message when marking messages as unread has completed.", "placeholders": { - "serverUrl": { - "type": "String", - "example": "http://example.com/" - }, - "error": { - "type": "String", - "example": "Invalid format" + "num": { + "example": "4", + "type": "int" } } }, - "errorConnectingToServerShort": "Fehler beim Verbinden mit Zulip. Wiederhole…", - "@errorConnectingToServerShort": { - "description": "Short error message for a generic unknown error connecting to the server." + "@markAsUnreadInProgress": { + "description": "Progress message when marking messages as unread." }, - "errorHandlingEventTitle": "Fehler beim Verarbeiten eines Zulip-Ereignisses. Wiederhole Verbindung…", - "@errorHandlingEventTitle": { - "description": "Error title on failing to handle a Zulip server event." + "@markReadOnScrollSettingAlways": { + "description": "Label for a value of setting controlling which message-list views should mark read on scroll." }, - "errorCouldNotOpenLinkTitle": "Link kann nicht geöffnet werden", - "@errorCouldNotOpenLinkTitle": { - "description": "Error title when opening a link failed." + "@markReadOnScrollSettingConversations": { + "description": "Label for a value of setting controlling which message-list views should mark read on scroll." }, - "errorUnfollowTopicFailed": "Konnte Thema nicht entfolgen", - "@errorUnfollowTopicFailed": { - "description": "Error message when unfollowing a topic failed." + "@markReadOnScrollSettingConversationsDescription": { + "description": "Description for a value of setting controlling which message-list views should mark read on scroll." }, - "errorFollowTopicFailed": "Konnte Thema nicht folgen", - "@errorFollowTopicFailed": { - "description": "Error message when following a topic failed." + "@markReadOnScrollSettingDescription": { + "description": "Description of setting controlling which message-list views should mark read on scroll." }, - "errorStarMessageFailedTitle": "Konnte Nachricht nicht markieren", - "@errorStarMessageFailedTitle": { - "description": "Error title when starring a message failed." + "@markReadOnScrollSettingNever": { + "description": "Label for a value of setting controlling which message-list views should mark read on scroll." }, - "errorUnmuteTopicFailed": "Konnte Thema nicht lautschalten", - "@errorUnmuteTopicFailed": { - "description": "Error message when unmuting a topic failed." + "@markReadOnScrollSettingTitle": { + "description": "Title of setting controlling which message-list views should mark read on scroll." }, - "errorSharingFailed": "Teilen fehlgeschlagen", - "@errorSharingFailed": { - "description": "Error message when sharing a message failed." + "@mentionsPageTitle": { + "description": "Page title for the 'Mentions' message view." }, - "errorUnstarMessageFailedTitle": "Konnte Markierung nicht von der Nachricht entfernen", - "@errorUnstarMessageFailedTitle": { - "description": "Error title when unstarring a message failed." + "@messageIsEditedLabel": { + "description": "Label for an edited message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" }, - "successLinkCopied": "Link kopiert", - "@successLinkCopied": { - "description": "Success message after copy link action completed." + "@messageIsMovedLabel": { + "description": "Label for a moved message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" }, - "successMessageTextCopied": "Nachrichtentext kopiert", - "@successMessageTextCopied": { - "description": "Message when content of a message was copied to the user's system clipboard." + "@messageListGroupYouAndOthers": { + "description": "Message list recipient header for a DM group with others.", + "placeholders": { + "others": { + "example": "Alice, Bob", + "type": "String" + } + } }, - "successMessageLinkCopied": "Nachrichtenlink kopiert", - "@successMessageLinkCopied": { - "description": "Message when link of a message was copied to the user's system clipboard." + "@messageListGroupYouWithYourself": { + "description": "Message list recipient header for a DM group that only includes yourself." }, - "errorBannerDeactivatedDmLabel": "Du kannst keine Nachrichten an deaktivierte Nutzer:innen senden.", - "@errorBannerDeactivatedDmLabel": { - "description": "Label text for error banner when sending a message to one or multiple deactivated users." + "@messageNotSentLabel": { + "description": "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.)" }, - "errorBannerCannotPostInChannelLabel": "Du hast keine Berechtigung in diesen Kanal zu schreiben.", - "@errorBannerCannotPostInChannelLabel": { - "description": "Error-banner text replacing the compose box when you do not have permission to send a message to the channel." + "@mutedUser": { + "description": "Name for a muted user to display all over the app." }, - "composeBoxAttachFilesTooltip": "Dateien anhängen", - "@composeBoxAttachFilesTooltip": { - "description": "Tooltip for compose box icon to attach a file to the message." + "@newDmFabButtonLabel": { + "description": "Label for the floating action button (FAB) that opens the new DM sheet." }, - "composeBoxAttachMediaTooltip": "Bilder oder Videos anhängen", - "@composeBoxAttachMediaTooltip": { - "description": "Tooltip for compose box icon to attach media to the message." + "@newDmSheetComposeButtonLabel": { + "description": "Label for the compose button in the new DM sheet that starts composing a message to the selected users." }, - "composeBoxAttachFromCameraTooltip": "Ein Foto aufnehmen", - "@composeBoxAttachFromCameraTooltip": { - "description": "Tooltip for compose box icon to attach an image from the camera to the message." + "@newDmSheetNoUsersFound": { + "description": "Message shown in the new DM sheet when no users match the search." }, - "composeBoxSelfDmContentHint": "Schreibe etwas", - "@composeBoxSelfDmContentHint": { - "description": "Hint text for content input when sending a message to yourself." + "@newDmSheetScreenTitle": { + "description": "Title displayed at the top of the new DM screen." }, - "composeBoxDmContentHint": "Nachricht an @{user}", - "@composeBoxDmContentHint": { - "description": "Hint text for content input when sending a message to one other person.", - "placeholders": { - "user": { - "type": "String", - "example": "channel name" - } - } + "@newDmSheetSearchHintEmpty": { + "description": "Hint text for the search bar when no users are selected" }, - "composeBoxGroupDmContentHint": "Nachricht an Gruppe", - "@composeBoxGroupDmContentHint": { - "description": "Hint text for content input when sending a message to a group." + "@newDmSheetSearchHintSomeSelected": { + "description": "Hint text for the search bar when at least one user is selected." }, - "composeBoxChannelContentHint": "Nachricht an {destination}", - "@composeBoxChannelContentHint": { - "description": "Hint text for content input when sending a message to a channel.", + "@noEarlierMessages": { + "description": "Text to show at the start of a message list if there are no earlier messages." + }, + "@notifGroupDmConversationLabel": { + "description": "Label for a group DM conversation notification.", "placeholders": { - "destination": { - "type": "String", - "example": "#channel name > topic name" + "numOthers": { + "example": "4", + "type": "int" + }, + "senderFullName": { + "example": "Alice", + "type": "String" } } }, - "composeBoxSendTooltip": "Senden", - "@composeBoxSendTooltip": { - "description": "Tooltip for send button in compose box." + "@notifSelfUser": { + "description": "Display name for the user themself, to show after replying in an Android notification" }, - "composeBoxUploadingFilename": "Lade {filename} hoch…", - "@composeBoxUploadingFilename": { - "description": "Placeholder in compose box showing the specified file is currently uploading.", + "@onePersonTyping": { + "description": "Text to display when there is one user typing.", "placeholders": { - "filename": { - "type": "String", - "example": "file.txt" + "typist": { + "example": "Alice", + "type": "String" } } }, - "composeBoxLoadingMessage": "(lade Nachricht {messageId})", - "@composeBoxLoadingMessage": { - "description": "Placeholder in compose box showing the quoted message is currently loading.", - "placeholders": { - "messageId": { - "type": "int", - "example": "1234" - } - } + "@openLinksWithInAppBrowser": { + "description": "Label for toggling setting to open links with in-app browser" }, - "dmsWithOthersPageTitle": "DNs mit {others}", - "@dmsWithOthersPageTitle": { - "description": "Message list page title for a DM group with others.", + "@permissionsDeniedCameraAccess": { + "description": "Message for dialog asking the user to grant permissions for camera access." + }, + "@permissionsDeniedReadExternalStorage": { + "description": "Message for dialog asking the user to grant permissions for external storage read access." + }, + "@permissionsNeededOpenSettings": { + "description": "Button label for permissions dialog button that opens the system settings screen." + }, + "@permissionsNeededTitle": { + "description": "Title for dialog asking the user to grant additional permissions." + }, + "@pinnedSubscriptionsLabel": { + "description": "Label for the list of pinned subscribed channels." + }, + "@pollVoterNames": { + "description": "The list of people who voted for a poll option, wrapped in parentheses.", "placeholders": { - "others": { - "type": "String", - "example": "Alice, Bob" + "voterNames": { + "example": "Alice, Bob, Chad", + "type": "String" } } }, - "messageListGroupYouWithYourself": "Nachrichten mit dir selbst", - "@messageListGroupYouWithYourself": { - "description": "Message list recipient header for a DM group that only includes yourself." + "@pollWidgetOptionsMissing": { + "description": "Text to display for a poll when it has no options" }, - "contentValidationErrorQuoteAndReplyInProgress": "Bitte warte bis das Zitat abgeschlossen ist.", - "@contentValidationErrorQuoteAndReplyInProgress": { - "description": "Content validation error message when a quotation has not completed yet." + "@pollWidgetQuestionMissing": { + "description": "Text to display for a poll when the question is missing" }, - "errorDialogContinue": "OK", - "@errorDialogContinue": { - "description": "Button label in error dialogs to acknowledge the error and close the dialog." + "@preparingEditMessageContentInput": { + "description": "Hint text for content input when the compose box is preparing to edit a message." }, - "errorDialogTitle": "Fehler", - "@errorDialogTitle": { - "description": "Generic title for error dialog." + "@profileButtonSendDirectMessage": { + "description": "Label for button in profile screen to navigate to DMs with the shown user." }, - "loginFormSubmitLabel": "Anmelden", - "@loginFormSubmitLabel": { - "description": "Button text to submit login credentials." + "@reactedEmojiSelfUser": { + "description": "Display name for the user themself, to show on an emoji reaction added by the user." }, - "lightboxVideoDuration": "Videolänge", - "@lightboxVideoDuration": { - "description": "The total duration of the video playing in the lightbox." + "@recentDmConversationsEmptyPlaceholder": { + "description": "Centered text on the 'Direct messages' page saying that there is no content to show." }, - "loginPageTitle": "Anmelden", - "@loginPageTitle": { - "description": "Title for login page." + "@recentDmConversationsPageTitle": { + "description": "Title for the page with a list of DM conversations." }, - "signInWithFoo": "Anmelden mit {method}", - "@signInWithFoo": { - "description": "Button to use {method} to sign in to the app.", - "placeholders": { - "method": { - "type": "String", - "example": "Google" - } - } + "@recentDmConversationsSectionHeader": { + "description": "Heading for direct messages section on the 'Inbox' message view." }, - "loginAddAnAccountPageTitle": "Account hinzufügen", - "@loginAddAnAccountPageTitle": { - "description": "Title for page to add a Zulip account." + "@revealButtonLabel": { + "description": "Label for the button revealing hidden message from a muted sender in message list." }, - "loginPasswordLabel": "Passwort", - "@loginPasswordLabel": { - "description": "Label for password input field." + "@savingMessageEditFailedLabel": { + "description": "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.)" }, - "loginUsernameLabel": "Benutzername", - "@loginUsernameLabel": { - "description": "Label for input when a username is required to log in." + "@savingMessageEditLabel": { + "description": "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.)" }, - "loginErrorMissingUsername": "Bitte gib deinen Benutzernamen ein.", - "@loginErrorMissingUsername": { - "description": "Error message when an empty username was provided." + "@scrollToBottomTooltip": { + "description": "Tooltip for button to scroll to bottom." }, - "errorServerVersionUnsupportedMessage": "{url} nutzt Zulip Server {zulipVersion}, welche nicht unterstützt wird. Die unterstützte Mindestversion ist Zulip Server {minSupportedZulipVersion}.", - "@errorServerVersionUnsupportedMessage": { - "description": "Error message in the dialog for when the Zulip Server version is unsupported.", + "@searchMessagesClearButtonTooltip": { + "description": "Tooltip for the 'x' button in the search text field." + }, + "@searchMessagesHintText": { + "description": "Hint text for the message search text field." + }, + "@searchMessagesPageTitle": { + "description": "Page title for the 'Search' message view." + }, + "@seeWhoReactedSheetEmojiNameWithVoteCount": { + "description": "In the 'See who reacted' sheet, an emoji reaction's name and how many votes it has. (An accessibility label for assistive technology.)", "placeholders": { - "url": { - "type": "String", - "example": "http://chat.example.com/" - }, - "zulipVersion": { - "type": "String", - "example": "3.2" + "emojiName": { + "example": "working_on_it", + "type": "String" }, - "minSupportedZulipVersion": { - "type": "String", - "example": "4.0" + "num": { + "example": "2", + "type": "int" } } }, - "topicValidationErrorMandatoryButEmpty": "Themen sind in dieser Organisation erforderlich.", - "@topicValidationErrorMandatoryButEmpty": { - "description": "Topic validation error when topic is required but was empty." - }, - "errorMalformedResponse": "Server lieferte fehlerhafte Antwort; HTTP Status {httpStatus}", - "@errorMalformedResponse": { - "description": "Error message when an API call fails because we could not parse the response.", + "@seeWhoReactedSheetHeaderLabel": { + "description": "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.)", "placeholders": { - "httpStatus": { - "type": "int", - "example": "200" + "num": { + "example": "2", + "type": "int" } } }, - "errorInvalidApiKeyMessage": "Dein Account bei {url} konnte nicht authentifiziert werden. Bitte wiederhole die Anmeldung oder verwende einen anderen Account.", - "@errorInvalidApiKeyMessage": { - "description": "Error message in the dialog for invalid API key.", + "@seeWhoReactedSheetNoReactions": { + "description": "Explanation on the 'See who reacted' sheet when the message has no reactions (because they were removed after the sheet was opened)." + }, + "@seeWhoReactedSheetUserListLabel": { + "description": "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.)", "placeholders": { - "url": { - "type": "String", - "example": "http://chat.example.com/" + "emojiName": { + "example": "working_on_it", + "type": "String" + }, + "num": { + "example": "2", + "type": "int" } } }, - "errorInvalidResponse": "Der Server hat eine ungültige Antwort gesendet.", - "@errorInvalidResponse": { - "description": "Error message when an API call returned an invalid response." + "@serverUrlValidationErrorEmpty": { + "description": "Error message when URL is empty" }, - "errorNetworkRequestFailed": "Netzwerkanfrage fehlgeschlagen", - "@errorNetworkRequestFailed": { - "description": "Error message when a network request fails." + "@serverUrlValidationErrorInvalidUrl": { + "description": "Error message when URL is not in a valid format." }, - "serverUrlValidationErrorNoUseEmail": "Bitte gib die Server-URL ein, nicht deine E-Mail-Adresse.", "@serverUrlValidationErrorNoUseEmail": { "description": "Error message when URL looks like an email" }, - "serverUrlValidationErrorUnsupportedScheme": "Die Server-URL muss mit http:// oder https:// beginnen.", "@serverUrlValidationErrorUnsupportedScheme": { "description": "Error message when URL has an unsupported scheme." }, - "markAsReadInProgress": "Nachrichten werden als gelesen markiert…", - "@markAsReadInProgress": { - "description": "Progress message when marking messages as read." - }, - "today": "Heute", - "@today": { - "description": "Term to use to reference the current day." - }, - "markAsUnreadInProgress": "Nachrichten werden als ungelesen markiert…", - "@markAsUnreadInProgress": { - "description": "Progress message when marking messages as unread." - }, - "errorMarkAsUnreadFailedTitle": "Als ungelesen markieren fehlgeschlagen", - "@errorMarkAsUnreadFailedTitle": { - "description": "Error title when mark as unread action failed." - }, - "yesterday": "Gestern", - "@yesterday": { - "description": "Term to use to reference the previous day." - }, - "inboxPageTitle": "Eingang", - "@inboxPageTitle": { - "description": "Title for the page with unreads." - }, - "recentDmConversationsPageTitle": "Direktnachrichten", - "@recentDmConversationsPageTitle": { - "description": "Title for the page with a list of DM conversations." - }, - "combinedFeedPageTitle": "Kombinierter Feed", - "@combinedFeedPageTitle": { - "description": "Page title for the 'Combined feed' message view." - }, - "mentionsPageTitle": "Erwähnungen", - "@mentionsPageTitle": { - "description": "Page title for the 'Mentions' message view." - }, - "mainMenuMyProfile": "Mein Profil", - "@mainMenuMyProfile": { - "description": "Label for main-menu button leading to the user's own profile." + "@setStatusPageTitle": { + "description": "Title for the 'Set status' page." }, - "channelFeedButtonTooltip": "Kanal-Feed", - "@channelFeedButtonTooltip": { - "description": "Tooltip for button to navigate to a given channel's feed" + "@settingsPageTitle": { + "description": "Title for the settings page." }, - "notifGroupDmConversationLabel": "{senderFullName} an dich und {numOthers, plural, =1{1 weitere:n} other{{numOthers} weitere}}", - "@notifGroupDmConversationLabel": { - "description": "Label for a group DM conversation notification.", + "@signInWithFoo": { + "description": "Button to use {method} to sign in to the app.", "placeholders": { - "senderFullName": { - "type": "String", - "example": "Alice" - }, - "numOthers": { - "type": "int", - "example": "4" + "method": { + "example": "Google", + "type": "String" } } }, - "notifSelfUser": "Du", - "@notifSelfUser": { - "description": "Display name for the user themself, to show after replying in an Android notification" + "@snackBarDetails": { + "description": "Button label for snack bar button that opens a dialog with more details." }, - "reactedEmojiSelfUser": "Du", - "@reactedEmojiSelfUser": { - "description": "Display name for the user themself, to show on an emoji reaction added by the user." + "@spoilerDefaultHeaderText": { + "description": "The default header text in a spoiler block ( https://zulip.com/help/spoilers )." }, - "twoPeopleTyping": "{typist} und {otherTypist} tippen…", - "@twoPeopleTyping": { - "description": "Text to display when there are two users typing.", - "placeholders": { - "typist": { - "type": "String", - "example": "Alice" - }, - "otherTypist": { - "type": "String", - "example": "Bob" - } - } + "@starredMessagesPageTitle": { + "description": "Page title for the 'Starred messages' message view." }, - "manyPeopleTyping": "Mehrere Leute tippen…", - "@manyPeopleTyping": { - "description": "Text to display when there are multiple users typing." + "@statusClearButtonLabel": { + "description": "Label for the button that clears the user status, in 'Set status' page." }, - "wildcardMentionAll": "alle", - "@wildcardMentionAll": { - "description": "Text for \"@all\" wildcard-mention autocomplete option when writing a channel or DM message." + "@statusSaveButtonLabel": { + "description": "Label for the button that saves the user status, in 'Set status' page." }, - "wildcardMentionEveryone": "jeder", - "@wildcardMentionEveryone": { - "description": "Text for \"@everyone\" wildcard-mention autocomplete option when writing a channel or DM message." + "@statusTextHint": { + "description": "Hint text for the status text input field in 'Set status' page." }, - "wildcardMentionChannel": "Kanal", - "@wildcardMentionChannel": { - "description": "Text for \"@channel\" wildcard-mention autocomplete option when writing a channel message." + "@subscribeFailedTitle": { + "description": "Error title when subscribing to a channel failed." }, - "wildcardMentionStream": "Stream", - "@wildcardMentionStream": { - "description": "Text for \"@stream\" wildcard-mention autocomplete option when writing a channel message in older servers." + "@successLinkCopied": { + "description": "Success message after copy link action completed." }, - "wildcardMentionTopic": "Thema", - "@wildcardMentionTopic": { - "description": "Text for \"@topic\" wildcard-mention autocomplete option when writing a channel message." + "@successMessageLinkCopied": { + "description": "Message when link of a message was copied to the user's system clipboard." }, - "wildcardMentionAllDmDescription": "Empfänger benachrichtigen", - "@wildcardMentionAllDmDescription": { - "description": "Description for \"@all\" and \"@everyone\" wildcard-mention autocomplete options when writing a DM message." + "@successMessageTextCopied": { + "description": "Message when content of a message was copied to the user's system clipboard." }, - "pollVoterNames": "{voterNames}", - "@pollVoterNames": { - "description": "The list of people who voted for a poll option, wrapped in parentheses.", - "placeholders": { - "voterNames": { - "type": "String", - "example": "Alice, Bob, Chad" - } - } + "@successTopicLinkCopied": { + "description": "Message when link of a topic was copied to the user's system clipboard." }, - "messageIsMovedLabel": "VERSCHOBEN", - "@messageIsMovedLabel": { - "description": "Label for a moved message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + "@switchAccountButton": { + "description": "Label for main-menu button leading to the choose-account page." }, - "themeSettingDark": "Dunkel", "@themeSettingDark": { "description": "Label for dark theme setting." }, - "themeSettingLight": "Hell", "@themeSettingLight": { "description": "Label for light theme setting." }, - "themeSettingSystem": "System", "@themeSettingSystem": { "description": "Label for system theme setting." }, - "openLinksWithInAppBrowser": "Links mit In-App-Browser öffnen", - "@openLinksWithInAppBrowser": { - "description": "Label for toggling setting to open links with in-app browser" + "@themeSettingTitle": { + "description": "Title for theme setting. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" }, - "pollWidgetOptionsMissing": "Diese Umfrage hat noch keine Optionen.", - "@pollWidgetOptionsMissing": { - "description": "Text to display for a poll when it has no options" + "@today": { + "description": "Term to use to reference the current day." }, - "pollWidgetQuestionMissing": "Keine Frage.", - "@pollWidgetQuestionMissing": { - "description": "Text to display for a poll when the question is missing" - }, - "experimentalFeatureSettingsPageTitle": "Experimentelle Funktionen", - "@experimentalFeatureSettingsPageTitle": { - "description": "Title of settings page for experimental, in-development features" - }, - "errorNotificationOpenTitle": "Fehler beim Öffnen der Benachrichtigung", - "@errorNotificationOpenTitle": { - "description": "Error title when notification opening fails" + "@topicValidationErrorMandatoryButEmpty": { + "description": "Topic validation error when topic is required but was empty." }, - "errorReactionRemovingFailedTitle": "Entfernen der Reaktion fehlgeschlagen", - "@errorReactionRemovingFailedTitle": { - "description": "Error title when removing a message reaction fails" + "@topicValidationErrorTooLong": { + "description": "Topic validation error when topic is too long." }, - "emojiReactionsMore": "mehr", - "@emojiReactionsMore": { - "description": "Label for a button opening the emoji picker." + "@topicsButtonTooltip": { + "description": "Tooltip for button to navigate to topic-list page." }, - "scrollToBottomTooltip": "Nach unten Scrollen", - "@scrollToBottomTooltip": { - "description": "Tooltip for button to scroll to bottom." + "@tryAnotherAccountButton": { + "description": "Label for loading screen button prompting user to try another account." }, - "zulipAppTitle": "Zulip", - "@zulipAppTitle": { - "description": "The name of Zulip. This should be either 'Zulip' or a transliteration." + "@tryAnotherAccountMessage": { + "description": "Message that appears on the loading screen after waiting for some time.", + "url": { + "example": "http://chat.example.com/", + "type": "String" + } }, - "filenameAndSizeInMiB": "{filename}: {size} MiB", - "@filenameAndSizeInMiB": { - "description": "The name of a file, and its size in mebibytes.", + "@twoPeopleTyping": { + "description": "Text to display when there are two users typing.", "placeholders": { - "filename": { - "type": "String", - "example": "foo.txt" + "otherTypist": { + "example": "Bob", + "type": "String" }, - "size": { - "type": "String", - "example": "20.2" + "typist": { + "example": "Alice", + "type": "String" } } }, - "errorFailedToUploadFileTitle": "Fehler beim Upload der Datei: {filename}", - "@errorFailedToUploadFileTitle": { - "description": "Error title when the specified file failed to upload.", + "@unknownChannelName": { + "description": "Replacement name for channel when it cannot be found in the store." + }, + "@unknownUserName": { + "description": "Name placeholder to use for a user when we don't know their name." + }, + "@unpinnedSubscriptionsLabel": { + "description": "Label for the list of unpinned subscribed channels." + }, + "@unsubscribeConfirmationDialogConfirmButton": { + "description": "Label for the 'Unsubscribe' button on a confirmation dialog for unsubscribing from a channel." + }, + "@unsubscribeConfirmationDialogMessageMaybeCannotResubscribe": { + "description": "Message for a confirmation dialog for unsubscribing from a channel when you might not have permission to resubscribe." + }, + "@unsubscribeConfirmationDialogTitle": { + "description": "Title for a confirmation dialog for unsubscribing from a channel.", "placeholders": { - "filename": { - "type": "String", - "example": "file.txt" + "channelName": { + "example": "mobile", + "type": "String" } } }, - "dmsWithYourselfPageTitle": "DNs mit dir selbst", - "@dmsWithYourselfPageTitle": { - "description": "Message list page title for a DM group that only includes yourself." + "@unsubscribeFailedTitle": { + "description": "Error title when unsubscribing from a channel failed." }, - "noEarlierMessages": "Keine früheren Nachrichten", - "@noEarlierMessages": { - "description": "Text to show at the start of a message list if there are no earlier messages." + "@updateStatusErrorTitle": { + "description": "Error title when updating user status failed." }, - "appVersionUnknownPlaceholder": "(…)", - "@appVersionUnknownPlaceholder": { - "description": "Placeholder to show in place of the app version when it is unknown." + "@upgradeWelcomeDialogDismiss": { + "description": "Label for button dismissing dialog shown on first upgrade from the legacy Zulip app." }, - "emojiPickerSearchEmoji": "Emoji suchen", - "@emojiPickerSearchEmoji": { - "description": "Hint text for the emoji picker search text field." + "@upgradeWelcomeDialogLinkText": { + "description": "Text of link in dialog shown on first upgrade from the legacy Zulip app." + }, + "@upgradeWelcomeDialogMessage": { + "description": "Message text for dialog shown on first upgrade from the legacy Zulip app." }, - "upgradeWelcomeDialogTitle": "Willkommen bei der neuen Zulip-App!", "@upgradeWelcomeDialogTitle": { "description": "Title for dialog shown on first upgrade from the legacy Zulip app." }, - "upgradeWelcomeDialogMessage": "Du wirst ein vertrautes Erlebnis in einer schnelleren, schlankeren App erleben.", - "@upgradeWelcomeDialogMessage": { - "description": "Message text for dialog shown on first upgrade from the legacy Zulip app." + "@userRoleAdministrator": { + "description": "Label for UserRole.administrator" }, - "upgradeWelcomeDialogLinkText": "Sieh dir den Ankündigungs-Blogpost an!", - "@upgradeWelcomeDialogLinkText": { - "description": "Text of link in dialog shown on first upgrade from the legacy Zulip app." + "@userRoleGuest": { + "description": "Label for UserRole.guest" + }, + "@userRoleMember": { + "description": "Label for UserRole.member" + }, + "@userRoleModerator": { + "description": "Label for UserRole.moderator" + }, + "@userRoleOwner": { + "description": "Label for UserRole.owner" + }, + "@userRoleUnknown": { + "description": "Label for UserRole.unknown" + }, + "@userStatusAtTheOffice": { + "description": "A suggested user status text, 'At the office'." + }, + "@userStatusBusy": { + "description": "A suggested user status text, 'Busy'." + }, + "@userStatusCommuting": { + "description": "A suggested user status text, 'Commuting'." + }, + "@userStatusInAMeeting": { + "description": "A suggested user status text, 'In a meeting'." + }, + "@userStatusOutSick": { + "description": "A suggested user status text, 'Out sick'." + }, + "@userStatusVacationing": { + "description": "A suggested user status text, 'Vacationing'." + }, + "@userStatusWorkingRemotely": { + "description": "A suggested user status text, 'Working remotely'." + }, + "@wildcardMentionAll": { + "description": "Text for \"@all\" wildcard-mention autocomplete option when writing a channel or DM message." + }, + "@wildcardMentionAllDmDescription": { + "description": "Description for \"@all\" and \"@everyone\" wildcard-mention autocomplete options when writing a DM message." + }, + "@wildcardMentionChannel": { + "description": "Text for \"@channel\" wildcard-mention autocomplete option when writing a channel message." + }, + "@wildcardMentionChannelDescription": { + "description": "Description for \"@all\", \"@everyone\", \"@channel\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message." + }, + "@wildcardMentionEveryone": { + "description": "Text for \"@everyone\" wildcard-mention autocomplete option when writing a channel or DM message." }, + "@wildcardMentionStream": { + "description": "Text for \"@stream\" wildcard-mention autocomplete option when writing a channel message in older servers." + }, + "@wildcardMentionStreamDescription": { + "description": "Description for \"@all\", \"@everyone\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message in older servers." + }, + "@wildcardMentionTopic": { + "description": "Text for \"@topic\" wildcard-mention autocomplete option when writing a channel message." + }, + "@wildcardMentionTopicDescription": { + "description": "Description for \"@topic\" wildcard-mention autocomplete options when writing a channel message." + }, + "@yesterday": { + "description": "Term to use to reference the previous day." + }, + "@zulipAppTitle": { + "description": "The name of Zulip. This should be either 'Zulip' or a transliteration." + }, + "aboutPageAppVersion": "App-Version", + "aboutPageOpenSourceLicenses": "Open-Source-Lizenzen", + "aboutPageTapToView": "Antippen zum Ansehen", + "aboutPageTitle": "Über Zulip", + "actionSheetOptionCopyChannelLink": "Link zum Kanal kopieren", + "actionSheetOptionCopyMessageLink": "Link zur Nachricht kopieren", + "actionSheetOptionCopyMessageText": "Nachrichtentext kopieren", + "actionSheetOptionCopyTopicLink": "Link zum Thema kopieren", + "actionSheetOptionEditMessage": "Nachricht bearbeiten", + "actionSheetOptionFollowTopic": "Thema folgen", + "actionSheetOptionHideMutedMessage": "Stummgeschaltete Nachricht wieder ausblenden", + "actionSheetOptionListOfTopics": "Themenliste", + "actionSheetOptionMarkAsUnread": "Ab hier als ungelesen markieren", + "actionSheetOptionMarkChannelAsRead": "Kanal als gelesen markieren", + "actionSheetOptionMarkTopicAsRead": "Thema als gelesen markieren", + "actionSheetOptionMuteTopic": "Thema stummschalten", + "actionSheetOptionQuoteMessage": "Nachricht zitieren", + "actionSheetOptionResolveTopic": "Als gelöst markieren", + "actionSheetOptionSeeWhoReacted": "Wer hat reagiert", + "actionSheetOptionShare": "Teilen", + "actionSheetOptionStarMessage": "Nachricht markieren", + "actionSheetOptionSubscribe": "Abonnieren", + "actionSheetOptionUnfollowTopic": "Thema entfolgen", + "actionSheetOptionUnmuteTopic": "Thema lautschalten", + "actionSheetOptionUnresolveTopic": "Als ungelöst markieren", + "actionSheetOptionUnstarMessage": "Markierung aufheben", + "actionSheetOptionUnsubscribe": "Deabonnieren", + "appVersionUnknownPlaceholder": "(…)", + "channelFeedButtonTooltip": "Kanal-Feed", + "channelsEmptyPlaceholder": "Du hast noch keine Kanäle abonniert.", + "channelsPageTitle": "Kanäle", + "chooseAccountButtonAddAnAccount": "Account hinzufügen", + "chooseAccountPageLogOutButton": "Abmelden", + "chooseAccountPageTitle": "Konto auswählen", + "combinedFeedPageTitle": "Kombinierter Feed", + "composeBoxAttachFilesTooltip": "Dateien anhängen", + "composeBoxAttachFromCameraTooltip": "Ein Foto aufnehmen", + "composeBoxAttachMediaTooltip": "Bilder oder Videos anhängen", + "composeBoxBannerButtonCancel": "Abbrechen", + "composeBoxBannerButtonSave": "Speichern", + "composeBoxBannerLabelEditMessage": "Nachricht bearbeiten", + "composeBoxChannelContentHint": "Nachricht an {destination}", + "composeBoxDmContentHint": "Nachricht an @{user}", + "composeBoxEnterTopicOrSkipHintText": "Gib ein Thema ein (leer lassen für “{defaultTopicName}”)", + "composeBoxGenericContentHint": "Eine Nachricht eingeben", + "composeBoxGroupDmContentHint": "Nachricht an Gruppe", + "composeBoxLoadingMessage": "(lade Nachricht {messageId})", + "composeBoxSelfDmContentHint": "Schreibe etwas", + "composeBoxSendTooltip": "Senden", + "composeBoxTopicHintText": "Thema", + "composeBoxUploadingFilename": "Lade {filename} hoch…", + "contentValidationErrorEmpty": "Du hast nichts zum Senden!", + "contentValidationErrorQuoteAndReplyInProgress": "Bitte warte bis das Zitat abgeschlossen ist.", + "contentValidationErrorTooLong": "Nachrichtenlänge sollte nicht größer als 10000 Zeichen sein.", + "contentValidationErrorUploadInProgress": "Bitte warte bis das Hochladen abgeschlossen ist.", + "dialogCancel": "Abbrechen", + "dialogClose": "Schließen", + "dialogContinue": "Fortsetzen", + "discardDraftConfirmationDialogConfirmButton": "Verwerfen", + "discardDraftConfirmationDialogTitle": "Die Nachricht, die du schreibst, verwerfen?", + "discardDraftForEditConfirmationDialogMessage": "Wenn du eine Nachricht bearbeitest, wird der vorherige Inhalt der Nachrichteneingabe verworfen.", + "discardDraftForOutboxConfirmationDialogMessage": "Wenn du eine nicht gesendete Nachricht wiederherstellst, wird der vorherige Inhalt der Nachrichteneingabe verworfen.", + "dmsWithOthersPageTitle": "DNs mit {others}", + "dmsWithYourselfPageTitle": "DNs mit dir selbst", + "editAlreadyInProgressMessage": "Eine Bearbeitung läuft gerade. Bitte warte bis sie abgeschlossen ist.", + "editAlreadyInProgressTitle": "Kann Nachricht nicht bearbeiten", + "emojiPickerSearchEmoji": "Emoji suchen", + "emojiReactionsMore": "mehr", + "errorAccountLoggedIn": "Der Account {email} auf {server} ist bereits in deiner Account-Liste.", + "errorAccountLoggedInTitle": "Account bereits angemeldet", + "errorBannerCannotPostInChannelLabel": "Du hast keine Berechtigung in diesen Kanal zu schreiben.", + "errorBannerDeactivatedDmLabel": "Du kannst keine Nachrichten an deaktivierte Nutzer:innen senden.", + "errorConnectingToServerDetails": "Fehler beim Verbinden mit Zulip auf {serverUrl}. Wird wiederholt:\n\n{error}", + "errorConnectingToServerShort": "Fehler beim Verbinden mit Zulip. Wiederhole…", + "errorCopyingFailed": "Kopieren fehlgeschlagen", + "errorCouldNotConnectTitle": "Konnte nicht verbinden", + "errorCouldNotEditMessageTitle": "Konnte Nachricht nicht bearbeiten", + "errorCouldNotFetchMessageSource": "Konnte Nachrichtenquelle nicht abrufen.", + "errorCouldNotOpenLink": "Link konnte nicht geöffnet werden: {url}", + "errorCouldNotOpenLinkTitle": "Link kann nicht geöffnet werden", + "errorCouldNotShowUserProfile": "Nutzerprofil kann nicht angezeigt werden.", + "errorDialogContinue": "OK", + "errorDialogLearnMore": "Mehr erfahren", + "errorDialogTitle": "Fehler", + "errorFailedToUploadFileTitle": "Fehler beim Upload der Datei: {filename}", + "errorFilesTooLarge": "{num, plural, =1{Datei ist} other{{num} Dateien sind}} größer als das Serverlimit von {maxFileUploadSizeMib} MiB und {num, plural, =1{wird} other{{num} werden}} nicht hochgeladen:\n\n{listMessage}", + "errorFilesTooLargeTitle": "{num, plural, =1{Datei} other{Dateien}} zu groß", + "errorFollowTopicFailed": "Konnte Thema nicht folgen", + "errorHandlingEventDetails": "Fehler beim Verarbeiten eines Zulip-Ereignisses von {serverUrl}; Wird wiederholt.\n\nFehler: {error}\n\nEreignis: {event}", + "errorHandlingEventTitle": "Fehler beim Verarbeiten eines Zulip-Ereignisses. Wiederhole Verbindung…", + "errorInvalidApiKeyMessage": "Dein Account bei {url} konnte nicht authentifiziert werden. Bitte wiederhole die Anmeldung oder verwende einen anderen Account.", + "errorInvalidResponse": "Der Server hat eine ungültige Antwort gesendet.", + "errorLoginCouldNotConnect": "Verbindung zu Server fehlgeschlagen:\n{url}", + "errorLoginFailedTitle": "Anmeldung fehlgeschlagen", + "errorLoginInvalidInputTitle": "Ungültige Eingabe", + "errorMalformedResponse": "Server lieferte fehlerhafte Antwort; HTTP Status {httpStatus}", + "errorMalformedResponseWithCause": "Server lieferte fehlerhafte Antwort; HTTP Status {httpStatus}; {details}", + "errorMarkAsReadFailedTitle": "Als gelesen markieren fehlgeschlagen", + "errorMarkAsUnreadFailedTitle": "Als ungelesen markieren fehlgeschlagen", + "errorMessageDoesNotSeemToExist": "Diese Nachricht scheint nicht zu existieren.", + "errorMessageEditNotSaved": "Nachricht nicht gespeichert", + "errorMessageNotSent": "Nachricht nicht versendet", + "errorMuteTopicFailed": "Konnte Thema nicht stummschalten", + "errorNetworkRequestFailed": "Netzwerkanfrage fehlgeschlagen", + "errorNotificationOpenAccountNotFound": "Der Account, der mit dieser Benachrichtigung verknüpft ist, konnte nicht gefunden werden.", + "errorNotificationOpenTitle": "Fehler beim Öffnen der Benachrichtigung", + "errorQuotationFailed": "Zitat fehlgeschlagen", + "errorReactionAddingFailedTitle": "Hinzufügen der Reaktion fehlgeschlagen", + "errorReactionRemovingFailedTitle": "Entfernen der Reaktion fehlgeschlagen", + "errorRequestFailed": "Netzwerkanfrage fehlgeschlagen: HTTP Status {httpStatus}", + "errorResolveTopicFailedTitle": "Thema konnte nicht als gelöst markiert werden", + "errorServerMessage": "Der Server sagte:\n\n{message}", + "errorServerVersionUnsupportedMessage": "{url} nutzt Zulip Server {zulipVersion}, welche nicht unterstützt wird. Die unterstützte Mindestversion ist Zulip Server {minSupportedZulipVersion}.", + "errorSharingFailed": "Teilen fehlgeschlagen", + "errorStarMessageFailedTitle": "Konnte Nachricht nicht markieren", + "errorUnfollowTopicFailed": "Konnte Thema nicht entfolgen", + "errorUnmuteTopicFailed": "Konnte Thema nicht lautschalten", + "errorUnresolveTopicFailedTitle": "Thema konnte nicht als ungelöst markiert werden", + "errorUnstarMessageFailedTitle": "Konnte Markierung nicht von der Nachricht entfernen", + "errorVideoPlayerFailed": "Video konnte nicht wiedergegeben werden.", + "errorWebAuthOperationalError": "Ein unerwarteter Fehler ist aufgetreten.", + "errorWebAuthOperationalErrorTitle": "Etwas ist schiefgelaufen", + "experimentalFeatureSettingsPageTitle": "Experimentelle Funktionen", + "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.", + "filenameAndSizeInMiB": "{filename}: {size} MiB", + "inboxEmptyPlaceholder": "Es sind keine ungelesenen Nachrichten in deinem Eingang. Verwende die Buttons unten, um den kombinierten Feed oder die Kanalliste anzusehen.", + "inboxPageTitle": "Eingang", + "initialAnchorSettingDescription": "Du kannst auswählen ob Nachrichten-Feeds bei deiner ersten ungelesenen oder bei den neuesten Nachrichten geöffnet werden.", + "initialAnchorSettingFirstUnreadAlways": "Erste ungelesene Nachricht", + "initialAnchorSettingFirstUnreadConversations": "Erste ungelesene Nachricht in Unterhaltungsansicht, sonst neueste Nachricht", + "initialAnchorSettingNewestAlways": "Neueste Nachricht", + "initialAnchorSettingTitle": "Nachrichten-Feed öffnen bei", + "lightboxCopyLinkTooltip": "Link kopieren", + "lightboxVideoCurrentPosition": "Aktuelle Position", + "lightboxVideoDuration": "Videolänge", + "logOutConfirmationDialogConfirmButton": "Abmelden", + "logOutConfirmationDialogMessage": "Um diesen Account in Zukunft zu verwenden, musst du die URL deiner Organisation und deine Account-Informationen erneut eingeben.", + "logOutConfirmationDialogTitle": "Abmelden?", + "loginAddAnAccountPageTitle": "Account hinzufügen", + "loginEmailLabel": "E-Mail-Adresse", + "loginErrorMissingEmail": "Bitte gib deine E-Mail ein.", + "loginErrorMissingPassword": "Bitte gib dein Passwort ein.", + "loginErrorMissingUsername": "Bitte gib deinen Benutzernamen ein.", + "loginFormSubmitLabel": "Anmelden", + "loginHidePassword": "Passwort verstecken", + "loginMethodDivider": "ODER", + "loginPageTitle": "Anmelden", + "loginPasswordLabel": "Passwort", + "loginServerUrlLabel": "Deine Zulip Server URL", + "loginUsernameLabel": "Benutzername", + "mainMenuMyProfile": "Mein Profil", + "manyPeopleTyping": "Mehrere Leute tippen…", + "markAllAsReadLabel": "Alle Nachrichten als gelesen markieren", + "markAsReadComplete": "{num, plural, =1{Eine Nachricht} other{{num} Nachrichten}} als gelesen markiert.", + "markAsReadInProgress": "Nachrichten werden als gelesen markiert…", + "markAsUnreadComplete": "{num, plural, =1{Eine Nachricht} other{{num} Nachrichten}} als ungelesen markiert.", + "markAsUnreadInProgress": "Nachrichten werden als ungelesen markiert…", + "markReadOnScrollSettingAlways": "Immer", + "markReadOnScrollSettingConversations": "Nur in Unterhaltungsansichten", + "markReadOnScrollSettingConversationsDescription": "Nachrichten werden nur beim Ansehen einzelner Themen oder Direktnachrichten automatisch als gelesen markiert.", + "markReadOnScrollSettingDescription": "Sollen Nachrichten automatisch als gelesen markiert werden, wenn du sie durchscrollst?", + "markReadOnScrollSettingNever": "Nie", + "markReadOnScrollSettingTitle": "Nachrichten beim Scrollen als gelesen markieren", + "mentionsPageTitle": "Erwähnungen", + "messageIsEditedLabel": "BEARBEITET", + "messageIsMovedLabel": "VERSCHOBEN", + "messageListGroupYouAndOthers": "Du und {others}", + "messageListGroupYouWithYourself": "Nachrichten mit dir selbst", + "messageNotSentLabel": "NACHRICHT NICHT GESENDET", + "mutedUser": "Stummgeschaltete:r Nutzer:in", + "newDmFabButtonLabel": "Neue DN", + "newDmSheetComposeButtonLabel": "Verfassen", + "newDmSheetNoUsersFound": "Keine Nutzer:innen gefunden", + "newDmSheetScreenTitle": "Neue DN", + "newDmSheetSearchHintEmpty": "Füge ein oder mehrere Nutzer:innen hinzu", + "newDmSheetSearchHintSomeSelected": "Füge weitere Nutzer:in hinzu…", + "noEarlierMessages": "Keine früheren Nachrichten", + "notifGroupDmConversationLabel": "{senderFullName} an dich und {numOthers, plural, =1{1 weitere:n} other{{numOthers} weitere}}", + "notifSelfUser": "Du", + "onePersonTyping": "{typist} tippt…", + "openLinksWithInAppBrowser": "Links mit In-App-Browser öffnen", + "permissionsDeniedCameraAccess": "Bitte gewähre Zulip zusätzliche Berechtigungen in den Einstellungen, um ein Bild hochzuladen.", + "permissionsDeniedReadExternalStorage": "Bitte gewähre Zulip zusätzliche Berechtigungen in den Einstellungen, um Dateien hochzuladen.", + "permissionsNeededOpenSettings": "Einstellungen öffnen", + "permissionsNeededTitle": "Berechtigungen erforderlich", + "pinnedSubscriptionsLabel": "Angeheftet", + "pollVoterNames": "{voterNames}", + "pollWidgetOptionsMissing": "Diese Umfrage hat noch keine Optionen.", + "pollWidgetQuestionMissing": "Keine Frage.", + "preparingEditMessageContentInput": "Bereite vor…", + "profileButtonSendDirectMessage": "Direktnachricht senden", + "reactedEmojiSelfUser": "Du", + "recentDmConversationsEmptyPlaceholder": "Du hast noch keine Direktnachrichten! Warum nicht die Unterhaltung beginnen?", + "recentDmConversationsPageTitle": "Direktnachrichten", + "recentDmConversationsSectionHeader": "Direktnachrichten", + "revealButtonLabel": "Nachricht für stummgeschalteten Absender anzeigen", + "savingMessageEditFailedLabel": "BEARBEITUNG NICHT GESPEICHERT", + "savingMessageEditLabel": "SPEICHERE BEARBEITUNG…", + "scrollToBottomTooltip": "Nach unten Scrollen", + "searchMessagesClearButtonTooltip": "Leeren", + "searchMessagesHintText": "Suche", + "searchMessagesPageTitle": "Suche", + "seeWhoReactedSheetEmojiNameWithVoteCount": "{emojiName}: {num, plural, =1{1 Stimme} other{{num} Stimmen}}", + "seeWhoReactedSheetHeaderLabel": "Emoji-Reaktionen (insgesamt {num})", + "seeWhoReactedSheetNoReactions": "Diese Nachricht hat keine Reaktionen.", + "seeWhoReactedSheetUserListLabel": "Stimmen für {emojiName} ({num})", + "serverUrlValidationErrorEmpty": "Bitte gib eine URL ein.", + "serverUrlValidationErrorInvalidUrl": "Bitte gib eine gültige URL ein.", + "serverUrlValidationErrorNoUseEmail": "Bitte gib die Server-URL ein, nicht deine E-Mail-Adresse.", + "serverUrlValidationErrorUnsupportedScheme": "Die Server-URL muss mit http:// oder https:// beginnen.", + "setStatusPageTitle": "Status setzen", + "settingsPageTitle": "Einstellungen", + "signInWithFoo": "Anmelden mit {method}", + "snackBarDetails": "Details", + "spoilerDefaultHeaderText": "Spoiler", + "starredMessagesPageTitle": "Markierte Nachrichten", + "statusClearButtonLabel": "Leeren", + "statusSaveButtonLabel": "Speichern", + "statusTextHint": "Dein Status", + "subscribeFailedTitle": "Konnte nicht abonnieren", + "successLinkCopied": "Link kopiert", + "successMessageLinkCopied": "Nachrichtenlink kopiert", + "successMessageTextCopied": "Nachrichtentext kopiert", + "successTopicLinkCopied": "Link zum Thema kopiert", + "switchAccountButton": "Konto wechseln", + "themeSettingDark": "Dunkel", + "themeSettingLight": "Hell", + "themeSettingSystem": "System", + "themeSettingTitle": "THEMA", + "today": "Heute", + "topicValidationErrorMandatoryButEmpty": "Themen sind in dieser Organisation erforderlich.", + "topicValidationErrorTooLong": "Länge des Themas sollte 60 Zeichen nicht überschreiten.", + "topicsButtonTooltip": "Themen", + "tryAnotherAccountButton": "Anderen Account ausprobieren", + "tryAnotherAccountMessage": "Dein Account bei {url} benötigt einige Zeit zum Laden.", + "twoPeopleTyping": "{typist} und {otherTypist} tippen…", + "unknownChannelName": "(unbekannter Kanal)", + "unknownUserName": "(Nutzer:in unbekannt)", + "unpinnedSubscriptionsLabel": "Nicht angeheftet", + "unsubscribeConfirmationDialogConfirmButton": "Deabonnieren", + "unsubscribeConfirmationDialogMessageMaybeCannotResubscribe": "Wenn du diesen Kanal verlässt, kannst du sich vielleicht nicht wieder beitreten.", + "unsubscribeConfirmationDialogTitle": "{channelName} deabonnieren?", + "unsubscribeFailedTitle": "Konnte nicht deabonnieren", + "updateStatusErrorTitle": "Fehler beim Update des Benutzerstatus. Bitte versuche es nochmal.", "upgradeWelcomeDialogDismiss": "Los gehts", - "@upgradeWelcomeDialogDismiss": { - "description": "Label for button dismissing dialog shown on first upgrade from the legacy Zulip app." - } + "upgradeWelcomeDialogLinkText": "Sieh dir den Ankündigungs-Blogpost an!", + "upgradeWelcomeDialogMessage": "Du wirst ein vertrautes Erlebnis in einer schnelleren, schlankeren App erleben.", + "upgradeWelcomeDialogTitle": "Willkommen in der neuen Zulip-App!", + "userRoleAdministrator": "Administrator", + "userRoleGuest": "Gast", + "userRoleMember": "Mitglied", + "userRoleModerator": "Moderator", + "userRoleOwner": "Besitzer", + "userRoleUnknown": "Unbekannt", + "userStatusAtTheOffice": "Im Büro", + "userStatusBusy": "Beschäftigt", + "userStatusCommuting": "Unterwegs", + "userStatusInAMeeting": "In einem Meeting", + "userStatusOutSick": "Krankgemeldet", + "userStatusVacationing": "Im Urlaub", + "userStatusWorkingRemotely": "Arbeitet von zu Hause", + "wildcardMentionAll": "alle", + "wildcardMentionAllDmDescription": "Empfänger benachrichtigen", + "wildcardMentionChannel": "Kanal", + "wildcardMentionChannelDescription": "Kanal benachrichtigen", + "wildcardMentionEveryone": "jeder", + "wildcardMentionStream": "Stream", + "wildcardMentionStreamDescription": "Stream benachrichtigen", + "wildcardMentionTopic": "Thema", + "wildcardMentionTopicDescription": "Thema benachrichtigen", + "yesterday": "Gestern", + "zulipAppTitle": "Zulip" } diff --git a/assets/l10n/app_fr.arb b/assets/l10n/app_fr.arb index 0967ef424b..a8baf0a057 100644 --- a/assets/l10n/app_fr.arb +++ b/assets/l10n/app_fr.arb @@ -1 +1,458 @@ -{} +{ + "@aboutPageAppVersion": { + "description": "Label for Zulip app version in About Zulip page" + }, + "@aboutPageOpenSourceLicenses": { + "description": "Item title in About Zulip page to navigate to Licenses page" + }, + "@aboutPageTapToView": { + "description": "Item subtitle in About Zulip page to navigate to Licenses page" + }, + "@aboutPageTitle": { + "description": "Title for About Zulip page." + }, + "@actionSheetOptionCopyChannelLink": { + "description": "Label for copy channel link button on action sheet." + }, + "@actionSheetOptionCopyMessageLink": { + "description": "Label for copy message link button on action sheet." + }, + "@actionSheetOptionCopyMessageText": { + "description": "Label for copy message text button on action sheet." + }, + "@actionSheetOptionCopyTopicLink": { + "description": "Label for copy topic link button in action sheet." + }, + "@actionSheetOptionEditMessage": { + "description": "Label for the 'Edit message' button in the message action sheet." + }, + "@actionSheetOptionFollowTopic": { + "description": "Label for following a topic on action sheet." + }, + "@actionSheetOptionHideMutedMessage": { + "description": "Label for hide muted message again button on action sheet." + }, + "@actionSheetOptionListOfTopics": { + "description": "Label for navigating to a channel's topic-list page." + }, + "@actionSheetOptionMarkAsUnread": { + "description": "Label for mark as unread button on action sheet." + }, + "@actionSheetOptionMarkChannelAsRead": { + "description": "Label for marking a channel as read." + }, + "@actionSheetOptionMarkTopicAsRead": { + "description": "Option to mark a specific topic as read in the action sheet." + }, + "@actionSheetOptionMuteTopic": { + "description": "Label for muting a topic on action sheet." + }, + "@actionSheetOptionQuoteMessage": { + "description": "Label for the 'Quote message' button in the message action sheet." + }, + "@actionSheetOptionResolveTopic": { + "description": "Label for the 'Mark as resolved' button on the topic action sheet." + }, + "@actionSheetOptionShare": { + "description": "Label for share button on action sheet." + }, + "@actionSheetOptionStarMessage": { + "description": "Label for star button on action sheet." + }, + "@actionSheetOptionUnfollowTopic": { + "description": "Label for unfollowing a topic on action sheet." + }, + "@actionSheetOptionUnmuteTopic": { + "description": "Label for unmuting a topic on action sheet." + }, + "@actionSheetOptionUnresolveTopic": { + "description": "Label for the 'Mark as unresolved' button on the topic action sheet." + }, + "@actionSheetOptionUnstarMessage": { + "description": "Label for unstar button on action sheet." + }, + "@chooseAccountButtonAddAnAccount": { + "description": "Label for ChooseAccountPage button to add an account" + }, + "@chooseAccountPageLogOutButton": { + "description": "Label for the 'Log out' button for an account on the choose-account page" + }, + "@chooseAccountPageTitle": { + "description": "Title for the page to choose between Zulip accounts." + }, + "@composeBoxBannerButtonCancel": { + "description": "Label text for the 'Cancel' button in the compose-box banner when you are editing a message." + }, + "@composeBoxBannerButtonSave": { + "description": "Label text for the 'Save' button in the compose-box banner when you are editing a message." + }, + "@composeBoxBannerLabelEditMessage": { + "description": "Label text for the compose-box banner when you are editing a message." + }, + "@editAlreadyInProgressMessage": { + "description": "Error message when a message edit cannot be saved because there is another edit already in progress." + }, + "@editAlreadyInProgressTitle": { + "description": "Error title when a message edit cannot be saved because there is another edit already in progress." + }, + "@errorAccountLoggedIn": { + "description": "Error message on attempting to log into an account that's already logged in.", + "placeholders": { + "email": { + "example": "user@example.com", + "type": "String" + }, + "server": { + "example": "https://example.com", + "type": "String" + } + } + }, + "@errorAccountLoggedInTitle": { + "description": "Error title on attempting to log into an account that's already logged in." + }, + "@errorBannerCannotPostInChannelLabel": { + "description": "Error-banner text replacing the compose box when you do not have permission to send a message to the channel." + }, + "@errorBannerDeactivatedDmLabel": { + "description": "Label text for error banner when sending a message to one or multiple deactivated users." + }, + "@errorConnectingToServerDetails": { + "description": "Dialog error message for a generic unknown error connecting to the server with details.", + "placeholders": { + "error": { + "example": "Invalid format", + "type": "String" + }, + "serverUrl": { + "example": "http://example.com/", + "type": "String" + } + } + }, + "@errorConnectingToServerShort": { + "description": "Short error message for a generic unknown error connecting to the server." + }, + "@errorCopyingFailed": { + "description": "Error message when copying the text of a message to the user's system clipboard failed." + }, + "@errorCouldNotConnectTitle": { + "description": "Error title when the app could not connect to the server." + }, + "@errorCouldNotEditMessageTitle": { + "description": "Error title when an exception prevented us from opening the compose box for editing a message." + }, + "@errorCouldNotFetchMessageSource": { + "description": "Error message when the source of a message could not be fetched." + }, + "@errorCouldNotOpenLink": { + "description": "Error message when opening a link failed.", + "placeholders": { + "url": { + "example": "https://chat.example.com", + "type": "String" + } + } + }, + "@errorCouldNotOpenLinkTitle": { + "description": "Error title when opening a link failed." + }, + "@errorCouldNotShowUserProfile": { + "description": "Message that appears on the user profile page when the profile cannot be shown." + }, + "@errorFailedToUploadFileTitle": { + "description": "Error title when the specified file failed to upload.", + "placeholders": { + "filename": { + "example": "file.txt", + "type": "String" + } + } + }, + "@errorFilesTooLarge": { + "description": "Error message when attached files are too large in size.", + "placeholders": { + "listMessage": { + "example": "foo.txt: 10.1 MiB\nbar.txt 20.2 MiB", + "type": "String" + }, + "maxFileUploadSizeMib": { + "example": "15", + "type": "int" + }, + "num": { + "example": "2", + "type": "int" + } + } + }, + "@errorFilesTooLargeTitle": { + "description": "Error title when attached files are too large in size.", + "placeholders": { + "num": { + "example": "4", + "type": "int" + } + } + }, + "@errorFollowTopicFailed": { + "description": "Error message when following a topic failed." + }, + "@errorHandlingEventDetails": { + "description": "Error details on failing to handle a Zulip server event.", + "placeholders": { + "error": { + "example": "Unexpected null value", + "type": "String" + }, + "event": { + "example": "UpdateMessageEvent(id: 123, messageIds: [2345, 3456], newTopic: 'dinner')", + "type": "String" + }, + "serverUrl": { + "example": "https://chat.example.com", + "type": "String" + } + } + }, + "@errorHandlingEventTitle": { + "description": "Error title on failing to handle a Zulip server event." + }, + "@errorLoginCouldNotConnect": { + "description": "Error message when the app could not connect to the server.", + "placeholders": { + "url": { + "example": "http://example.com/", + "type": "String" + } + } + }, + "@errorLoginFailedTitle": { + "description": "Error title for login when signing into a Zulip server fails." + }, + "@errorLoginInvalidInputTitle": { + "description": "Error title for login when input is invalid." + }, + "@errorMessageDoesNotSeemToExist": { + "description": "Error message when loading a message that does not exist." + }, + "@errorMessageEditNotSaved": { + "description": "Error message for compose box when a message edit could not be saved." + }, + "@errorMessageNotSent": { + "description": "Error message for compose box when a message could not be sent." + }, + "@errorMuteTopicFailed": { + "description": "Error message when muting a topic failed." + }, + "@errorQuotationFailed": { + "description": "Error message when quoting a message failed." + }, + "@errorResolveTopicFailedTitle": { + "description": "Error title when marking a topic as resolved failed." + }, + "@errorServerMessage": { + "description": "Error message that quotes an error from the server.", + "placeholders": { + "message": { + "example": "Invalid format", + "type": "String" + } + } + }, + "@errorSharingFailed": { + "description": "Error message when sharing a message failed." + }, + "@errorStarMessageFailedTitle": { + "description": "Error title when starring a message failed." + }, + "@errorUnfollowTopicFailed": { + "description": "Error message when unfollowing a topic failed." + }, + "@errorUnmuteTopicFailed": { + "description": "Error message when unmuting a topic failed." + }, + "@errorUnresolveTopicFailedTitle": { + "description": "Error title when marking a topic as unresolved failed." + }, + "@errorUnstarMessageFailedTitle": { + "description": "Error title when unstarring a message failed." + }, + "@errorWebAuthOperationalError": { + "description": "Error message when third-party authentication has an operational error (not necessarily caused by invalid credentials)." + }, + "@errorWebAuthOperationalErrorTitle": { + "description": "Error title when third-party authentication has an operational error (not necessarily caused by invalid credentials)." + }, + "@filenameAndSizeInMiB": { + "description": "The name of a file, and its size in mebibytes.", + "placeholders": { + "filename": { + "example": "foo.txt", + "type": "String" + }, + "size": { + "example": "20.2", + "type": "String" + } + } + }, + "@logOutConfirmationDialogConfirmButton": { + "description": "Label for the 'Log out' button on a confirmation dialog for logging out." + }, + "@logOutConfirmationDialogMessage": { + "description": "Message for a confirmation dialog for logging out." + }, + "@logOutConfirmationDialogTitle": { + "description": "Title for a confirmation dialog for logging out." + }, + "@permissionsDeniedCameraAccess": { + "description": "Message for dialog asking the user to grant permissions for camera access." + }, + "@permissionsDeniedReadExternalStorage": { + "description": "Message for dialog asking the user to grant permissions for external storage read access." + }, + "@permissionsNeededOpenSettings": { + "description": "Button label for permissions dialog button that opens the system settings screen." + }, + "@permissionsNeededTitle": { + "description": "Title for dialog asking the user to grant additional permissions." + }, + "@profileButtonSendDirectMessage": { + "description": "Label for button in profile screen to navigate to DMs with the shown user." + }, + "@settingsPageTitle": { + "description": "Title for the settings page." + }, + "@successChannelLinkCopied": { + "description": "Message when link of a channel was copied to the user's system clipboard." + }, + "@successLinkCopied": { + "description": "Success message after copy link action completed." + }, + "@successMessageLinkCopied": { + "description": "Message when link of a message was copied to the user's system clipboard." + }, + "@successMessageTextCopied": { + "description": "Message when content of a message was copied to the user's system clipboard." + }, + "@successTopicLinkCopied": { + "description": "Message when link of a topic was copied to the user's system clipboard." + }, + "@switchAccountButton": { + "description": "Label for main-menu button leading to the choose-account page." + }, + "@tryAnotherAccountButton": { + "description": "Label for loading screen button prompting user to try another account." + }, + "@tryAnotherAccountMessage": { + "description": "Message that appears on the loading screen after waiting for some time.", + "url": { + "example": "http://chat.example.com/", + "type": "String" + } + }, + "@upgradeWelcomeDialogDismiss": { + "description": "Label for button dismissing dialog shown on first upgrade from the legacy Zulip app." + }, + "@upgradeWelcomeDialogLinkText": { + "description": "Text of link in dialog shown on first upgrade from the legacy Zulip app." + }, + "@upgradeWelcomeDialogMessage": { + "description": "Message text for dialog shown on first upgrade from the legacy Zulip app." + }, + "@upgradeWelcomeDialogTitle": { + "description": "Title for dialog shown on first upgrade from the legacy Zulip app." + }, + "aboutPageAppVersion": "Version de l'application", + "aboutPageOpenSourceLicenses": "Licences de logiciel libre", + "aboutPageTapToView": "Toucher pour voir", + "aboutPageTitle": "À propos de Zulip", + "actionSheetOptionCopyChannelLink": "Copier le lien du canal", + "actionSheetOptionCopyMessageLink": "Copier le lien au message", + "actionSheetOptionCopyMessageText": "Copier le contenu du message", + "actionSheetOptionCopyTopicLink": "Copier le lien sur le sujet", + "actionSheetOptionEditMessage": "Modifier le message", + "actionSheetOptionFollowTopic": "Suivre le sujet", + "actionSheetOptionHideMutedMessage": "Cacher à nouveau le message silencieux", + "actionSheetOptionListOfTopics": "Liste des sujets", + "actionSheetOptionMarkAsUnread": "Marquer non lu à partir d'ici", + "actionSheetOptionMarkChannelAsRead": "Marquer le canal comme lu", + "actionSheetOptionMarkTopicAsRead": "Marquer le sujet comme lu", + "actionSheetOptionMuteTopic": "Rendre le sujet silencieux", + "actionSheetOptionQuoteMessage": "Citer le message", + "actionSheetOptionResolveTopic": "Marquer comme résolu", + "actionSheetOptionShare": "Partager", + "actionSheetOptionStarMessage": "Mettre le message en favori", + "actionSheetOptionUnfollowTopic": "Ne plus suivre le sujet", + "actionSheetOptionUnmuteTopic": "Rendre le sujet non silencieux", + "actionSheetOptionUnresolveTopic": "Marquer comme non résolu", + "actionSheetOptionUnstarMessage": "Retirer ce message de la liste des favoris", + "chooseAccountButtonAddAnAccount": "Ajouter un compte", + "chooseAccountPageLogOutButton": "Déconnexion", + "chooseAccountPageTitle": "Choisir un compte", + "composeBoxBannerButtonCancel": "Annuler", + "composeBoxBannerButtonSave": "Sauvegarder", + "composeBoxBannerLabelEditMessage": "Editer le message", + "editAlreadyInProgressMessage": "Une modification est déjà en cours. Merci d'attendre qu'elle soit terminée.", + "editAlreadyInProgressTitle": "Impossible de modifier le message", + "errorAccountLoggedIn": "Le compte {email} at {server} figure déjà dans votre liste de comptes.", + "errorAccountLoggedInTitle": "Vous êtes déjà connecté à ce compte.", + "errorBannerCannotPostInChannelLabel": "Vous n'avez pas l'autorisation de poster sur ce canal.", + "errorBannerDeactivatedDmLabel": "Vous ne pouvez pas envoyer de messages aux utilisateurs désactivés.", + "errorConnectingToServerDetails": "Une erreur s'est produite lors de la connexion à Zulip sur {serverUrl}. Nouvelle tentative imminente :\n\n{error}", + "errorConnectingToServerShort": "Une erreur s'est produite lors de la connexion au serveur. Nouvelle tentative en cours…", + "errorCopyingFailed": "Échec de la copie", + "errorCouldNotConnectTitle": "Impossible de se connecter au serveur", + "errorCouldNotEditMessageTitle": "Le message n'a pas pu être modifié", + "errorCouldNotFetchMessageSource": "Impossible d'atteindre le message source.", + "errorCouldNotOpenLink": "Le lien suivant n'a pas pu être ouvert : {url}", + "errorCouldNotOpenLinkTitle": "Impossible d'ouvrir le lien", + "errorCouldNotShowUserProfile": "Impossible de montrer le profil de l'utilisateur.", + "errorFailedToUploadFileTitle": "Impossible de charger le fichier {filename}", + "errorFilesTooLarge": "{num, plural, =1{Fichier est} other{{num} fichiers sont}} plus gros que la limite de capacité du serveur ({maxFileUploadSizeMib} MO) et ne peu(ven)t pas être chargé(s) :\n\n{listMessage}", + "errorFilesTooLargeTitle": "{num, plural, =1{Le fichier est trop lourd} other{Les fichier sont trop lourds}}", + "errorFollowTopicFailed": "Échec du suivi du sujet", + "errorHandlingEventDetails": "Une erreur s'est produite sur le serveur {serverUrl} ; tentative de reconnexion imminente.\n\nErreur : {error}\n\nÉvénement : {event}", + "errorHandlingEventTitle": "Une erreur s'est produite sur le serveur. Reconnexion en cours…", + "errorLoginCouldNotConnect": "La connexion au serveur a échoué :\n{url}", + "errorLoginFailedTitle": "La connexion a échoué.", + "errorLoginInvalidInputTitle": "Identifiant incorrect", + "errorMessageDoesNotSeemToExist": "Ce message est introuvable.", + "errorMessageEditNotSaved": "Le message n'a pas pu être sauvegardé.", + "errorMessageNotSent": "Le message n'a pas pu être envoyé.", + "errorMuteTopicFailed": "Le sujet n'a pas pu être rendu silencieux", + "errorQuotationFailed": "Échec de la citation", + "errorResolveTopicFailedTitle": "Impossible de marquer le sujet comme résolu", + "errorServerMessage": "Message d'erreur du serveur :\n\n{message}", + "errorSharingFailed": "Échec du partage", + "errorStarMessageFailedTitle": "Échec de marquage du message en favori", + "errorUnfollowTopicFailed": "Échec de la tentative de ne plus suivre le sujet", + "errorUnmuteTopicFailed": "Impossible de ne plus mettre le sujet en sourdine", + "errorUnresolveTopicFailedTitle": "Impossible de marquer le sujet comme non résolu", + "errorUnstarMessageFailedTitle": "Échec de la tentative d'enlever le message des favoris", + "errorWebAuthOperationalError": "Oups, une erreur s'est produite.", + "errorWebAuthOperationalErrorTitle": "Une erreur s'est produite", + "filenameAndSizeInMiB": "{filename} : {size} MiB", + "logOutConfirmationDialogConfirmButton": "Déconnexion", + "logOutConfirmationDialogMessage": "Pour utiliser ce compte à l'avenir, vous devrez ré-entrer l'adresse pour votre organisation et les informations de votre compte.", + "logOutConfirmationDialogTitle": "Se déconnecter?", + "permissionsDeniedCameraAccess": "Pour charger une image, merci d'accorder des autorisations supplémentaires à Zulip, dans les préférences.", + "permissionsDeniedReadExternalStorage": "Pour charger des fichiers, merci d'accorder des autorisations supplémentaires à Zulip, dans les préférences.", + "permissionsNeededOpenSettings": "Ouvrir les préférences", + "permissionsNeededTitle": "Permissions requises", + "profileButtonSendDirectMessage": "Envoyer un message direct", + "settingsPageTitle": "Paramètres", + "successChannelLinkCopied": "Lien sur le canal copié", + "successLinkCopied": "Lien copié", + "successMessageLinkCopied": "Lien sur le message copié", + "successMessageTextCopied": "Texte du message copié", + "successTopicLinkCopied": "Lien sur le sujet copié", + "switchAccountButton": "Changer de compte", + "tryAnotherAccountButton": "Essayer un autre compte", + "tryAnotherAccountMessage": "Votre compte à {url} prend du temps à se charger.", + "upgradeWelcomeDialogDismiss": "Allons-y", + "upgradeWelcomeDialogLinkText": "Allez voir les articles sur le blog des annonces !", + "upgradeWelcomeDialogMessage": "Vous retrouverez une expérience familière dans un logiciel plus rapide et plus élégant.", + "upgradeWelcomeDialogTitle": "Bienvenue dans la nouvelle application Zulip !" +} diff --git a/assets/l10n/app_pl.arb b/assets/l10n/app_pl.arb index 1350cf82a4..73ade45245 100644 --- a/assets/l10n/app_pl.arb +++ b/assets/l10n/app_pl.arb @@ -1,1228 +1,1378 @@ { - "errorConnectingToServerDetails": "Błąd połączenia z Zulip {serverUrl}. Spróbujmy ponownie:\n\n{error}", - "@errorConnectingToServerDetails": { - "description": "Dialog error message for a generic unknown error connecting to the server with details.", - "placeholders": { - "serverUrl": { - "type": "String", - "example": "http://example.com/" - }, - "error": { - "type": "String", - "example": "Invalid format" - } - } - }, - "aboutPageAppVersion": "Wydanie apki", "@aboutPageAppVersion": { "description": "Label for Zulip app version in About Zulip page" }, - "aboutPageTapToView": "Dotknij, aby pokazać", + "@aboutPageOpenSourceLicenses": { + "description": "Item title in About Zulip page to navigate to Licenses page" + }, "@aboutPageTapToView": { "description": "Item subtitle in About Zulip page to navigate to Licenses page" }, - "logOutConfirmationDialogConfirmButton": "Wyloguj", - "@logOutConfirmationDialogConfirmButton": { - "description": "Label for the 'Log out' button on a confirmation dialog for logging out." - }, - "chooseAccountButtonAddAnAccount": "Dodaj konto", - "@chooseAccountButtonAddAnAccount": { - "description": "Label for ChooseAccountPage button to add an account" - }, - "profileButtonSendDirectMessage": "Wyślij wiadomość bezpośrednią", - "@profileButtonSendDirectMessage": { - "description": "Label for button in profile screen to navigate to DMs with the shown user." + "@aboutPageTitle": { + "description": "Title for About Zulip page." }, - "permissionsNeededTitle": "Wymagane uprawnienia", - "@permissionsNeededTitle": { - "description": "Title for dialog asking the user to grant additional permissions." + "@actionSheetOptionCopyChannelLink": { + "description": "Label for copy channel link button on action sheet." }, - "permissionsNeededOpenSettings": "Otwórz ustawienia", - "@permissionsNeededOpenSettings": { - "description": "Button label for permissions dialog button that opens the system settings screen." + "@actionSheetOptionCopyMessageLink": { + "description": "Label for copy message link button on action sheet." }, - "actionSheetOptionCopyMessageText": "Skopiuj tekst wiadomości", "@actionSheetOptionCopyMessageText": { "description": "Label for copy message text button on action sheet." }, - "actionSheetOptionCopyMessageLink": "Skopiuj odnośnik do wiadomości", - "@actionSheetOptionCopyMessageLink": { - "description": "Label for copy message link button on action sheet." + "@actionSheetOptionCopyTopicLink": { + "description": "Label for copy topic link button in action sheet." + }, + "@actionSheetOptionEditMessage": { + "description": "Label for the 'Edit message' button in the message action sheet." + }, + "@actionSheetOptionFollowTopic": { + "description": "Label for following a topic on action sheet." + }, + "@actionSheetOptionHideMutedMessage": { + "description": "Label for hide muted message again button on action sheet." + }, + "@actionSheetOptionListOfTopics": { + "description": "Label for navigating to a channel's topic-list page." + }, + "@actionSheetOptionMarkAsUnread": { + "description": "Label for mark as unread button on action sheet." + }, + "@actionSheetOptionMarkChannelAsRead": { + "description": "Label for marking a channel as read." + }, + "@actionSheetOptionMarkTopicAsRead": { + "description": "Option to mark a specific topic as read in the action sheet." + }, + "@actionSheetOptionMuteTopic": { + "description": "Label for muting a topic on action sheet." + }, + "@actionSheetOptionQuoteMessage": { + "description": "Label for the 'Quote message' button in the message action sheet." + }, + "@actionSheetOptionResolveTopic": { + "description": "Label for the 'Mark as resolved' button on the topic action sheet." + }, + "@actionSheetOptionSeeWhoReacted": { + "description": "Label for the 'See who reacted' button in the message action sheet." }, - "actionSheetOptionShare": "Udostępnij", "@actionSheetOptionShare": { "description": "Label for share button on action sheet." }, - "actionSheetOptionStarMessage": "Oznacz gwiazdką", "@actionSheetOptionStarMessage": { "description": "Label for star button on action sheet." }, - "actionSheetOptionUnstarMessage": "Odbierz gwiazdkę", + "@actionSheetOptionUnfollowTopic": { + "description": "Label for unfollowing a topic on action sheet." + }, + "@actionSheetOptionUnmuteTopic": { + "description": "Label for unmuting a topic on action sheet." + }, + "@actionSheetOptionUnresolveTopic": { + "description": "Label for the 'Mark as unresolved' button on the topic action sheet." + }, "@actionSheetOptionUnstarMessage": { "description": "Label for unstar button on action sheet." }, - "errorWebAuthOperationalErrorTitle": "Coś poszło nie tak", - "@errorWebAuthOperationalErrorTitle": { - "description": "Error title when third-party authentication has an operational error (not necessarily caused by invalid credentials)." + "@appVersionUnknownPlaceholder": { + "description": "Placeholder to show in place of the app version when it is unknown." }, - "actionSheetOptionMarkAsUnread": "Odtąd oznacz jako nieprzeczytane", - "@actionSheetOptionMarkAsUnread": { - "description": "Label for mark as unread button on action sheet." + "@channelFeedButtonTooltip": { + "description": "Tooltip for button to navigate to a given channel's feed" }, - "logOutConfirmationDialogMessage": "Aby użyć tego konta należy wskazać URL organizacji oraz dane konta.", - "@logOutConfirmationDialogMessage": { - "description": "Message for a confirmation dialog for logging out." + "@channelsEmptyPlaceholder": { + "description": "Centered text on the 'Channels' page saying that there is no content to show." }, - "permissionsDeniedCameraAccess": "Aby odebrać obraz Zulip musi uzyskać dodatkowe uprawnienia w Ustawieniach.", - "@permissionsDeniedCameraAccess": { - "description": "Message for dialog asking the user to grant permissions for camera access." + "@channelsPageTitle": { + "description": "Title for the page with a list of subscribed channels." }, - "permissionsDeniedReadExternalStorage": "Aby odebrać pliki Zulip musi uzyskać dodatkowe uprawnienia w Ustawieniach.", - "@permissionsDeniedReadExternalStorage": { - "description": "Message for dialog asking the user to grant permissions for external storage read access." + "@chooseAccountButtonAddAnAccount": { + "description": "Label for ChooseAccountPage button to add an account" }, - "errorWebAuthOperationalError": "Wystąpił niespodziewany błąd.", - "@errorWebAuthOperationalError": { - "description": "Error message when third-party authentication has an operational error (not necessarily caused by invalid credentials)." + "@chooseAccountPageLogOutButton": { + "description": "Label for the 'Log out' button for an account on the choose-account page" }, - "errorAccountLoggedInTitle": "Konto już wylogowane", - "@errorAccountLoggedInTitle": { - "description": "Error title on attempting to log into an account that's already logged in." + "@chooseAccountPageTitle": { + "description": "Title for the page to choose between Zulip accounts." }, - "errorAccountLoggedIn": "Konto {email} na {server} znajduje się już na liście dodanych kont.", - "@errorAccountLoggedIn": { - "description": "Error message on attempting to log into an account that's already logged in.", - "placeholders": { - "email": { - "type": "String", - "example": "user@example.com" - }, - "server": { - "type": "String", - "example": "https://example.com" - } - } + "@combinedFeedPageTitle": { + "description": "Page title for the 'Combined feed' message view." }, - "errorCouldNotFetchMessageSource": "Nie można uzyskać źródłowej wiadomości.", - "@errorCouldNotFetchMessageSource": { - "description": "Error message when the source of a message could not be fetched." + "@composeBoxAttachFilesTooltip": { + "description": "Tooltip for compose box icon to attach a file to the message." }, - "errorCopyingFailed": "Nie udało się skopiować", - "@errorCopyingFailed": { - "description": "Error message when copying the text of a message to the user's system clipboard failed." + "@composeBoxAttachFromCameraTooltip": { + "description": "Tooltip for compose box icon to attach an image from the camera to the message." }, - "errorFilesTooLargeTitle": "{num, plural, =1{Plik} other{Pliki}} ponad limit", - "@errorFilesTooLargeTitle": { - "description": "Error title when attached files are too large in size.", - "placeholders": { - "num": { - "type": "int", - "example": "4" - } - } + "@composeBoxAttachMediaTooltip": { + "description": "Tooltip for compose box icon to attach media to the message." }, - "errorLoginInvalidInputTitle": "Błędny wsad", - "@errorLoginInvalidInputTitle": { - "description": "Error title for login when input is invalid." + "@composeBoxBannerButtonCancel": { + "description": "Label text for the 'Cancel' button in the compose-box banner when you are editing a message." }, - "errorLoginFailedTitle": "Logowanie bez powodzenia", - "@errorLoginFailedTitle": { - "description": "Error title for login when signing into a Zulip server fails." + "@composeBoxBannerButtonSave": { + "description": "Label text for the 'Save' button in the compose-box banner when you are editing a message." }, - "errorMessageNotSent": "Nie wysłano wiadomości", - "@errorMessageNotSent": { - "description": "Error message for compose box when a message could not be sent." + "@composeBoxBannerLabelEditMessage": { + "description": "Label text for the compose-box banner when you are editing a message." }, - "errorLoginCouldNotConnect": "Nie udało się połączyć z serwerem:\n{url}", - "@errorLoginCouldNotConnect": { - "description": "Error message when the app could not connect to the server.", + "@composeBoxChannelContentHint": { + "description": "Hint text for content input when sending a message to a channel.", "placeholders": { - "url": { - "type": "String", - "example": "http://example.com/" + "destination": { + "example": "#channel name > topic name", + "type": "String" } } }, - "errorFilesTooLarge": "{num, plural, =1{Plik jest} other{{num} Pliki są}} ponad limit serwera {maxFileUploadSizeMib} MiB i nie zostaną przyjęte:\n\n{listMessage}", - "@errorFilesTooLarge": { - "description": "Error message when attached files are too large in size.", + "@composeBoxDmContentHint": { + "description": "Hint text for content input when sending a message to one other person.", "placeholders": { - "num": { - "type": "int", - "example": "2" - }, - "maxFileUploadSizeMib": { - "type": "int", - "example": "15" - }, - "listMessage": { - "type": "String", - "example": "foo.txt\nbar.txt" + "user": { + "example": "channel name", + "type": "String" } } }, - "errorServerMessage": "Odpowiedź serwera:\n\n{message}", - "@errorServerMessage": { - "description": "Error message that quotes an error from the server.", + "@composeBoxEnterTopicOrSkipHintText": { + "description": "Hint text for topic input widget in compose box when topics are optional.", "placeholders": { - "message": { - "type": "String", - "example": "Invalid format" + "defaultTopicName": { + "example": "general chat", + "type": "String" } } }, - "errorConnectingToServerShort": "Błąd połączenia z Zulip. Ponawiam…", - "@errorConnectingToServerShort": { - "description": "Short error message for a generic unknown error connecting to the server." + "@composeBoxGenericContentHint": { + "description": "Hint text for content input when sending a message." }, - "errorHandlingEventTitle": "Błąd obsługi zdarzenia Zulip. Ponnawiam połączenie…", - "@errorHandlingEventTitle": { - "description": "Error title on failing to handle a Zulip server event." + "@composeBoxGroupDmContentHint": { + "description": "Hint text for content input when sending a message to a group." }, - "errorHandlingEventDetails": "Błąd zdarzenia Zulip z {serverUrl}; ponawiam.\n\nBłąd: {error}\n\nZdarzenie: {event}", - "@errorHandlingEventDetails": { - "description": "Error details on failing to handle a Zulip server event.", + "@composeBoxLoadingMessage": { + "description": "Placeholder in compose box showing the quoted message is currently loading.", "placeholders": { - "serverUrl": { - "type": "String", - "example": "https://chat.example.com" - }, - "error": { - "type": "String", - "example": "Unexpected null value" - }, - "event": { - "type": "String", - "example": "UpdateMessageEvent(id: 123, messageIds: [2345, 3456], newTopic: 'dinner')" + "messageId": { + "example": "1234", + "type": "int" } } }, - "errorSharingFailed": "Udostępnianie bez powodzenia", - "@errorSharingFailed": { - "description": "Error message when sharing a message failed." + "@composeBoxSelfDmContentHint": { + "description": "Hint text for content input when sending a message to yourself." }, - "errorStarMessageFailedTitle": "Dodanie gwiazdki bez powodzenia", - "@errorStarMessageFailedTitle": { - "description": "Error title when starring a message failed." + "@composeBoxSendTooltip": { + "description": "Tooltip for send button in compose box." }, - "errorUnstarMessageFailedTitle": "Odebranie gwiazdki bez powodzenia", - "@errorUnstarMessageFailedTitle": { - "description": "Error title when unstarring a message failed." + "@composeBoxTopicHintText": { + "description": "Hint text for topic input widget in compose box." }, - "successLinkCopied": "Skopiowano odnośnik", - "@successLinkCopied": { - "description": "Success message after copy link action completed." + "@composeBoxUploadingFilename": { + "description": "Placeholder in compose box showing the specified file is currently uploading.", + "placeholders": { + "filename": { + "example": "file.txt", + "type": "String" + } + } }, - "successMessageTextCopied": "Skopiowano tekst wiadomości", - "@successMessageTextCopied": { - "description": "Message when content of a message was copied to the user's system clipboard." + "@contentValidationErrorEmpty": { + "description": "Content validation error message when the message is empty." }, - "successMessageLinkCopied": "Skopiowano odnośnik wiadomości", - "@successMessageLinkCopied": { - "description": "Message when link of a message was copied to the user's system clipboard." + "@contentValidationErrorQuoteAndReplyInProgress": { + "description": "Content validation error message when a quotation has not completed yet." }, - "errorBannerCannotPostInChannelLabel": "Nie masz uprawnień do dodawania wpisów w tym kanale.", - "@errorBannerCannotPostInChannelLabel": { - "description": "Error-banner text replacing the compose box when you do not have permission to send a message to the channel." + "@contentValidationErrorTooLong": { + "description": "Content validation error message when the message is too long." }, - "composeBoxAttachFilesTooltip": "Dołącz pliki", - "@composeBoxAttachFilesTooltip": { - "description": "Tooltip for compose box icon to attach a file to the message." + "@contentValidationErrorUploadInProgress": { + "description": "Content validation error message when attachments have not finished uploading." }, - "composeBoxAttachMediaTooltip": "Dołącz obrazy lub wideo", - "@composeBoxAttachMediaTooltip": { - "description": "Tooltip for compose box icon to attach media to the message." - }, - "composeBoxAttachFromCameraTooltip": "Zrób zdjęcie", - "@composeBoxAttachFromCameraTooltip": { - "description": "Tooltip for compose box icon to attach an image from the camera to the message." - }, - "composeBoxGenericContentHint": "Wpisz wiadomość", - "@composeBoxGenericContentHint": { - "description": "Hint text for content input when sending a message." + "@dialogCancel": { + "description": "Button label in dialogs to cancel." }, - "composeBoxDmContentHint": "Napisz do @{user}", - "@composeBoxDmContentHint": { - "description": "Hint text for content input when sending a message to one other person.", - "placeholders": { - "user": { - "type": "String", - "example": "channel name" - } - } + "@dialogClose": { + "description": "Button label in dialogs to close." }, - "composeBoxGroupDmContentHint": "Napisz do grupy", - "@composeBoxGroupDmContentHint": { - "description": "Hint text for content input when sending a message to a group." + "@dialogContinue": { + "description": "Button label in dialogs to proceed." }, - "composeBoxSelfDmContentHint": "Zanotuj coś na przyszłość", - "@composeBoxSelfDmContentHint": { - "description": "Hint text for content input when sending a message to yourself." + "@discardDraftConfirmationDialogConfirmButton": { + "description": "Label for the 'Discard' button on a confirmation dialog for discarding message text that was typed into the compose box." }, - "composeBoxTopicHintText": "Wątek", - "@composeBoxTopicHintText": { - "description": "Hint text for topic input widget in compose box." + "@discardDraftConfirmationDialogTitle": { + "description": "Title for a confirmation dialog for discarding message text that was typed into the compose box." }, - "composeBoxUploadingFilename": "Przekazywanie {filename}…", - "@composeBoxUploadingFilename": { - "description": "Placeholder in compose box showing the specified file is currently uploading.", - "placeholders": { - "filename": { - "type": "String", - "example": "file.txt" - } - } + "@discardDraftForEditConfirmationDialogMessage": { + "description": "Message for a confirmation dialog for discarding message text that was typed into the compose box, when editing a message." }, - "unknownUserName": "(nieznany użytkownik)", - "@unknownUserName": { - "description": "Name placeholder to use for a user when we don't know their name." + "@discardDraftForOutboxConfirmationDialogMessage": { + "description": "Message for a confirmation dialog when restoring an outbox message, for discarding message text that was typed into the compose box." }, - "messageListGroupYouAndOthers": "Ty i {others}", - "@messageListGroupYouAndOthers": { - "description": "Message list recipient header for a DM group with others.", + "@dmsWithOthersPageTitle": { + "description": "Message list page title for a DM group with others.", "placeholders": { "others": { - "type": "String", - "example": "Alice, Bob" + "example": "Alice, Bob", + "type": "String" } } }, - "contentValidationErrorTooLong": "Wiadomość nie może być dłuższa niż 10000 znaków.", - "@contentValidationErrorTooLong": { - "description": "Content validation error message when the message is too long." - }, - "dialogCancel": "Anuluj", - "@dialogCancel": { - "description": "Button label in dialogs to cancel." - }, - "dialogContinue": "Kontynuuj", - "@dialogContinue": { - "description": "Button label in dialogs to proceed." + "@dmsWithYourselfPageTitle": { + "description": "Message list page title for a DM group that only includes yourself." }, - "errorDialogTitle": "Błąd", - "@errorDialogTitle": { - "description": "Generic title for error dialog." + "@editAlreadyInProgressMessage": { + "description": "Error message when a message edit cannot be saved because there is another edit already in progress." }, - "snackBarDetails": "Szczegóły", - "@snackBarDetails": { - "description": "Button label for snack bar button that opens a dialog with more details." + "@editAlreadyInProgressTitle": { + "description": "Error title when a message edit cannot be saved because there is another edit already in progress." }, - "lightboxCopyLinkTooltip": "Skopiuj odnośnik", - "@lightboxCopyLinkTooltip": { - "description": "Tooltip in lightbox for the copy link action." + "@emojiPickerSearchEmoji": { + "description": "Hint text for the emoji picker search text field." }, - "loginPageTitle": "Zaloguj", - "@loginPageTitle": { - "description": "Title for login page." + "@emojiReactionsMore": { + "description": "Label for a button opening the emoji picker." }, - "loginFormSubmitLabel": "Zaloguj", - "@loginFormSubmitLabel": { - "description": "Button text to submit login credentials." + "@emptyMessageList": { + "description": "Placeholder for some message-list pages when there are no messages." }, - "loginMethodDivider": "LUB", - "@loginMethodDivider": { - "description": "Text on the divider between the username/password form and the third-party login options. Uppercase (for languages with letter case)." + "@emptyMessageListSearch": { + "description": "Placeholder for the 'Search' page when there are no messages." }, - "signInWithFoo": "Logowanie z {method}", - "@signInWithFoo": { - "description": "Button to use {method} to sign in to the app.", + "@errorAccountLoggedIn": { + "description": "Error message on attempting to log into an account that's already logged in.", "placeholders": { - "method": { - "type": "String", - "example": "Google" + "email": { + "example": "user@example.com", + "type": "String" + }, + "server": { + "example": "https://example.com", + "type": "String" } } }, - "loginAddAnAccountPageTitle": "Dodaj konto", - "@loginAddAnAccountPageTitle": { - "description": "Title for page to add a Zulip account." - }, - "loginServerUrlLabel": "URL serwera Zulip", - "@loginServerUrlLabel": { - "description": "Label in login page for Zulip server URL entry." + "@errorAccountLoggedInTitle": { + "description": "Error title on attempting to log into an account that's already logged in." }, - "loginHidePassword": "Ukryj hasło", - "@loginHidePassword": { - "description": "Icon label for button to hide password in input form." + "@errorBannerCannotPostInChannelLabel": { + "description": "Error-banner text replacing the compose box when you do not have permission to send a message to the channel." }, - "loginEmailLabel": "Adres email", - "@loginEmailLabel": { - "description": "Label for input when an email is required to log in." + "@errorBannerDeactivatedDmLabel": { + "description": "Label text for error banner when sending a message to one or multiple deactivated users." }, - "loginErrorMissingEmail": "Proszę podaj swój email.", - "@loginErrorMissingEmail": { - "description": "Error message when an empty email was provided." + "@errorConnectingToServerDetails": { + "description": "Dialog error message for a generic unknown error connecting to the server with details.", + "placeholders": { + "error": { + "example": "Invalid format", + "type": "String" + }, + "serverUrl": { + "example": "http://example.com/", + "type": "String" + } + } }, - "loginPasswordLabel": "Hasło", - "@loginPasswordLabel": { - "description": "Label for password input field." + "@errorConnectingToServerShort": { + "description": "Short error message for a generic unknown error connecting to the server." }, - "loginErrorMissingPassword": "Proszę wprowadź hasło.", - "@loginErrorMissingPassword": { - "description": "Error message when an empty password was provided." + "@errorCopyingFailed": { + "description": "Error message when copying the text of a message to the user's system clipboard failed." }, - "loginUsernameLabel": "Użytkownik", - "@loginUsernameLabel": { - "description": "Label for input when a username is required to log in." + "@errorCouldNotConnectTitle": { + "description": "Error title when the app could not connect to the server." }, - "loginErrorMissingUsername": "Proszę podaj nazwę użytkownika.", - "@loginErrorMissingUsername": { - "description": "Error message when an empty username was provided." + "@errorCouldNotEditMessageTitle": { + "description": "Error title when an exception prevented us from opening the compose box for editing a message." }, - "topicValidationErrorMandatoryButEmpty": "Wątki są wymagane przez tę organizację.", - "@topicValidationErrorMandatoryButEmpty": { - "description": "Topic validation error when topic is required but was empty." + "@errorCouldNotFetchMessageSource": { + "description": "Error message when the source of a message could not be fetched." }, - "errorInvalidResponse": "Nieprawidłowa odpowiedź serwera.", - "@errorInvalidResponse": { - "description": "Error message when an API call returned an invalid response." + "@errorCouldNotOpenLink": { + "description": "Error message when opening a link failed.", + "placeholders": { + "url": { + "example": "https://chat.example.com", + "type": "String" + } + } }, - "errorVideoPlayerFailed": "Nie da rady odtworzyć wideo.", - "@errorVideoPlayerFailed": { - "description": "Error message when a video fails to play." + "@errorCouldNotOpenLinkTitle": { + "description": "Error title when opening a link failed." }, - "serverUrlValidationErrorEmpty": "Proszę podaj URL.", - "@serverUrlValidationErrorEmpty": { - "description": "Error message when URL is empty" + "@errorCouldNotShowUserProfile": { + "description": "Message that appears on the user profile page when the profile cannot be shown." }, - "serverUrlValidationErrorInvalidUrl": "Proszę podaj poprawny URL.", - "@serverUrlValidationErrorInvalidUrl": { - "description": "Error message when URL is not in a valid format." + "@errorDialogContinue": { + "description": "Button label in error dialogs to acknowledge the error and close the dialog." }, - "serverUrlValidationErrorNoUseEmail": "Proszę podaj adres URL serwera a nie swój email.", - "@serverUrlValidationErrorNoUseEmail": { - "description": "Error message when URL looks like an email" + "@errorDialogLearnMore": { + "description": "Button label in error dialogs to open a web page with more information." }, - "spoilerDefaultHeaderText": "Spoiler", - "@spoilerDefaultHeaderText": { - "description": "The default header text in a spoiler block ( https://zulip.com/help/spoilers )." + "@errorDialogTitle": { + "description": "Generic title for error dialog." }, - "markAllAsReadLabel": "Oznacz wszystkie jako przeczytane", - "@markAllAsReadLabel": { - "description": "Button text to mark messages as read." + "@errorFailedToUploadFileTitle": { + "description": "Error title when the specified file failed to upload.", + "placeholders": { + "filename": { + "example": "file.txt", + "type": "String" + } + } }, - "markAsReadComplete": "Oznaczono {num, plural, =1{1 wiadomość} other{{num} wiadomości}} jako przeczytane.", - "@markAsReadComplete": { - "description": "Message when marking messages as read has completed.", + "@errorFilesTooLarge": { + "description": "Error message when attached files are too large in size.", "placeholders": { + "listMessage": { + "example": "foo.txt\nbar.txt", + "type": "String" + }, + "maxFileUploadSizeMib": { + "example": "15", + "type": "int" + }, "num": { - "type": "int", - "example": "4" + "example": "2", + "type": "int" } } }, - "topicValidationErrorTooLong": "Tytuł nie może być dłuższy niż 60 znaków.", - "@topicValidationErrorTooLong": { - "description": "Topic validation error when topic is too long." - }, - "errorMalformedResponse": "Zdeforomowana odpowiedź serwera; status HTTP {httpStatus}", - "@errorMalformedResponse": { - "description": "Error message when an API call fails because we could not parse the response.", + "@errorFilesTooLargeTitle": { + "description": "Error title when attached files are too large in size.", "placeholders": { - "httpStatus": { - "type": "int", - "example": "200" + "num": { + "example": "4", + "type": "int" } } }, - "errorRequestFailed": "Błąd uzyskania sieci: status HTTP {httpStatus}", - "@errorRequestFailed": { - "description": "Error message when an API call fails.", + "@errorFollowTopicFailed": { + "description": "Error message when following a topic failed." + }, + "@errorHandlingEventDetails": { + "description": "Error details on failing to handle a Zulip server event.", "placeholders": { - "httpStatus": { - "type": "int", - "example": "500" + "error": { + "example": "Unexpected null value", + "type": "String" + }, + "event": { + "example": "UpdateMessageEvent(id: 123, messageIds: [2345, 3456], newTopic: 'dinner')", + "type": "String" + }, + "serverUrl": { + "example": "https://chat.example.com", + "type": "String" } } }, - "errorMarkAsReadFailedTitle": "Oznaczanie jako przeczytane bez powodzenia", - "@errorMarkAsReadFailedTitle": { - "description": "Error title when mark as read action failed." + "@errorHandlingEventTitle": { + "description": "Error title on failing to handle a Zulip server event." }, - "markAsUnreadInProgress": "Oznaczanie jako nieprzeczytane…", - "@markAsUnreadInProgress": { - "description": "Progress message when marking messages as unread." + "@errorInvalidApiKeyMessage": { + "description": "Error message in the dialog for invalid API key.", + "placeholders": { + "url": { + "example": "http://chat.example.com/", + "type": "String" + } + } }, - "errorMarkAsUnreadFailedTitle": "Oznaczanie jako nieprzeczytane bez powodzenia", - "@errorMarkAsUnreadFailedTitle": { - "description": "Error title when mark as unread action failed." + "@errorInvalidResponse": { + "description": "Error message when an API call returned an invalid response." }, - "today": "Dzisiaj", - "@today": { - "description": "Term to use to reference the current day." - }, - "yesterday": "Wczoraj", - "@yesterday": { - "description": "Term to use to reference the previous day." - }, - "userRoleOwner": "Właściciel", - "@userRoleOwner": { - "description": "Label for UserRole.owner" - }, - "userRoleAdministrator": "Administrator", - "@userRoleAdministrator": { - "description": "Label for UserRole.administrator" - }, - "userRoleMember": "Członek", - "@userRoleMember": { - "description": "Label for UserRole.member" - }, - "userRoleGuest": "Gość", - "@userRoleGuest": { - "description": "Label for UserRole.guest" - }, - "userRoleUnknown": "Nieznany", - "@userRoleUnknown": { - "description": "Label for UserRole.unknown" - }, - "recentDmConversationsPageTitle": "Wiadomości bezpośrednie", - "@recentDmConversationsPageTitle": { - "description": "Title for the page with a list of DM conversations." - }, - "combinedFeedPageTitle": "Mieszany widok", - "@combinedFeedPageTitle": { - "description": "Page title for the 'Combined feed' message view." - }, - "starredMessagesPageTitle": "Wiadomości z gwiazdką", - "@starredMessagesPageTitle": { - "description": "Page title for the 'Starred messages' message view." - }, - "channelFeedButtonTooltip": "Strumień kanału", - "@channelFeedButtonTooltip": { - "description": "Tooltip for button to navigate to a given channel's feed" - }, - "notifGroupDmConversationLabel": "{senderFullName} do ciebie i {numOthers, plural, =1{1 innego} other{{numOthers} innych}}", - "@notifGroupDmConversationLabel": { - "description": "Label for a group DM conversation notification.", + "@errorLoginCouldNotConnect": { + "description": "Error message when the app could not connect to the server.", "placeholders": { - "senderFullName": { - "type": "String", - "example": "Alice" - }, - "numOthers": { - "type": "int", - "example": "4" + "url": { + "example": "http://example.com/", + "type": "String" } } }, - "notifSelfUser": "Ty", - "@notifSelfUser": { - "description": "Display name for the user themself, to show after replying in an Android notification" + "@errorLoginFailedTitle": { + "description": "Error title for login when signing into a Zulip server fails." }, - "onePersonTyping": "{typist} coś pisze…", - "@onePersonTyping": { - "description": "Text to display when there is one user typing.", + "@errorLoginInvalidInputTitle": { + "description": "Error title for login when input is invalid." + }, + "@errorMalformedResponse": { + "description": "Error message when an API call fails because we could not parse the response.", "placeholders": { - "typist": { - "type": "String", - "example": "Alice" + "httpStatus": { + "example": "200", + "type": "int" } } }, - "twoPeopleTyping": "{typist} i {otherTypist} coś piszą…", - "@twoPeopleTyping": { - "description": "Text to display when there are two users typing.", + "@errorMalformedResponseWithCause": { + "description": "Error message when an API call fails because we could not parse the response, with details of the failure.", "placeholders": { - "typist": { - "type": "String", - "example": "Alice" + "details": { + "example": "type 'Null' is not a subtype of type 'String' in type cast", + "type": "String" }, - "otherTypist": { - "type": "String", - "example": "Bob" + "httpStatus": { + "example": "200", + "type": "int" } } }, - "manyPeopleTyping": "Wielu ludzi coś pisze…", - "@manyPeopleTyping": { - "description": "Text to display when there are multiple users typing." - }, - "messageIsEditedLabel": "ZMIENIONO", - "@messageIsEditedLabel": { - "description": "Label for an edited message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" - }, - "pollWidgetQuestionMissing": "Brak pytania.", - "@pollWidgetQuestionMissing": { - "description": "Text to display for a poll when the question is missing" - }, - "pollWidgetOptionsMissing": "Ta sonda nie ma opcji do wyboru.", - "@pollWidgetOptionsMissing": { - "description": "Text to display for a poll when it has no options" - }, - "errorNotificationOpenTitle": "Otwieranie powiadomienia bez powodzenia", - "@errorNotificationOpenTitle": { - "description": "Error title when notification opening fails" - }, - "aboutPageOpenSourceLicenses": "Licencje otwartego źródła", - "@aboutPageOpenSourceLicenses": { - "description": "Item title in About Zulip page to navigate to Licenses page" + "@errorMarkAsReadFailedTitle": { + "description": "Error title when mark as read action failed." }, - "serverUrlValidationErrorUnsupportedScheme": "Adres URL serwera musi zaczynać się od http:// or https://.", - "@serverUrlValidationErrorUnsupportedScheme": { - "description": "Error message when URL has an unsupported scheme." + "@errorMarkAsUnreadFailedTitle": { + "description": "Error title when mark as unread action failed." }, - "errorMessageDoesNotSeemToExist": "Taka wiadomość raczej nie istnieje.", "@errorMessageDoesNotSeemToExist": { "description": "Error message when loading a message that does not exist." }, - "chooseAccountPageTitle": "Wybierz konto", - "@chooseAccountPageTitle": { - "description": "Title for the page to choose between Zulip accounts." + "@errorMessageEditNotSaved": { + "description": "Error message for compose box when a message edit could not be saved." }, - "chooseAccountPageLogOutButton": "Wyloguj", - "@chooseAccountPageLogOutButton": { - "description": "Label for the 'Log out' button for an account on the choose-account page" + "@errorMessageNotSent": { + "description": "Error message for compose box when a message could not be sent." }, - "composeBoxSendTooltip": "Wyślij", - "@composeBoxSendTooltip": { - "description": "Tooltip for send button in compose box." + "@errorMuteTopicFailed": { + "description": "Error message when muting a topic failed." }, - "messageListGroupYouWithYourself": "Zapiski na własne konto", - "@messageListGroupYouWithYourself": { - "description": "Message list recipient header for a DM group that only includes yourself." + "@errorNetworkRequestFailed": { + "description": "Error message when a network request fails." }, - "logOutConfirmationDialogTitle": "Wylogować?", - "@logOutConfirmationDialogTitle": { - "description": "Title for a confirmation dialog for logging out." + "@errorNotificationOpenAccountNotFound": { + "description": "Error message when the account associated with the notification could not be found" }, - "aboutPageTitle": "O Zulip", - "@aboutPageTitle": { - "description": "Title for About Zulip page." + "@errorNotificationOpenTitle": { + "description": "Error title when notification opening fails" }, - "contentValidationErrorEmpty": "Nie masz nic do wysłania!", - "@contentValidationErrorEmpty": { - "description": "Content validation error message when the message is empty." + "@errorQuotationFailed": { + "description": "Error message when quoting a message failed." }, - "errorDialogContinue": "OK", - "@errorDialogContinue": { - "description": "Button label in error dialogs to acknowledge the error and close the dialog." + "@errorReactionAddingFailedTitle": { + "description": "Error title when adding a message reaction fails" }, - "errorFailedToUploadFileTitle": "Nie udało się załadować pliku: {filename}", - "@errorFailedToUploadFileTitle": { - "description": "Error title when the specified file failed to upload.", - "placeholders": { - "filename": { - "type": "String", - "example": "file.txt" - } - } + "@errorReactionRemovingFailedTitle": { + "description": "Error title when removing a message reaction fails" }, - "errorMalformedResponseWithCause": "Zdeformowana odpowiedź serwera; status HTTP {httpStatus}; {details}", - "@errorMalformedResponseWithCause": { - "description": "Error message when an API call fails because we could not parse the response, with details of the failure.", + "@errorRequestFailed": { + "description": "Error message when an API call fails.", "placeholders": { "httpStatus": { - "type": "int", - "example": "200" - }, - "details": { - "type": "String", - "example": "type 'Null' is not a subtype of type 'String' in type cast" + "example": "500", + "type": "int" } } }, - "errorQuotationFailed": "Cytowanie bez powodzenia", - "@errorQuotationFailed": { - "description": "Error message when quoting a message failed." - }, - "errorBannerDeactivatedDmLabel": "Nie można wysyłać wiadomości do dezaktywowanych użytkowników.", - "@errorBannerDeactivatedDmLabel": { - "description": "Label text for error banner when sending a message to one or multiple deactivated users." - }, - "contentValidationErrorUploadInProgress": "Zaczekaj na zakończenie przekazywania.", - "@contentValidationErrorUploadInProgress": { - "description": "Content validation error message when attachments have not finished uploading." + "@errorResolveTopicFailedTitle": { + "description": "Error title when marking a topic as resolved failed." }, - "messageIsMovedLabel": "PRZENIESIONO", - "@messageIsMovedLabel": { - "description": "Label for a moved message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + "@errorServerMessage": { + "description": "Error message that quotes an error from the server.", + "placeholders": { + "message": { + "example": "Invalid format", + "type": "String" + } + } }, - "markAsUnreadComplete": "Oznaczono {num, plural, =1{1 wiadomość} other{{num} wiadomości}} jako nieprzeczytane.", - "@markAsUnreadComplete": { - "description": "Message when marking messages as unread has completed.", + "@errorServerVersionUnsupportedMessage": { + "description": "Error message in the dialog for when the Zulip Server version is unsupported.", "placeholders": { - "num": { - "type": "int", - "example": "4" + "minSupportedZulipVersion": { + "example": "4.0", + "type": "String" + }, + "url": { + "example": "http://chat.example.com/", + "type": "String" + }, + "zulipVersion": { + "example": "3.2", + "type": "String" } } }, - "contentValidationErrorQuoteAndReplyInProgress": "Zaczekaj na zakończenie pobierania cytatu.", - "@contentValidationErrorQuoteAndReplyInProgress": { - "description": "Content validation error message when a quotation has not completed yet." + "@errorSharingFailed": { + "description": "Error message when sharing a message failed." }, - "errorNetworkRequestFailed": "Dostęp do sieci bez powodzenia", - "@errorNetworkRequestFailed": { - "description": "Error message when a network request fails." + "@errorStarMessageFailedTitle": { + "description": "Error title when starring a message failed." }, - "markAsReadInProgress": "Oznaczanie wiadomości jako przeczytane…", - "@markAsReadInProgress": { - "description": "Progress message when marking messages as read." + "@errorUnfollowTopicFailed": { + "description": "Error message when unfollowing a topic failed." }, - "mentionsPageTitle": "Wzmianki", - "@mentionsPageTitle": { - "description": "Page title for the 'Mentions' message view." + "@errorUnmuteTopicFailed": { + "description": "Error message when unmuting a topic failed." }, - "userRoleModerator": "Moderator", - "@userRoleModerator": { - "description": "Label for UserRole.moderator" + "@errorUnresolveTopicFailedTitle": { + "description": "Error title when marking a topic as unresolved failed." }, - "actionSheetOptionMuteTopic": "Wycisz wątek", - "@actionSheetOptionMuteTopic": { - "description": "Label for muting a topic on action sheet." + "@errorUnstarMessageFailedTitle": { + "description": "Error title when unstarring a message failed." }, - "actionSheetOptionUnmuteTopic": "Wznów wątek", - "@actionSheetOptionUnmuteTopic": { - "description": "Label for unmuting a topic on action sheet." + "@errorVideoPlayerFailed": { + "description": "Error message when a video fails to play." }, - "actionSheetOptionFollowTopic": "Śledź wątek", - "@actionSheetOptionFollowTopic": { - "description": "Label for following a topic on action sheet." + "@errorWebAuthOperationalError": { + "description": "Error message when third-party authentication has an operational error (not necessarily caused by invalid credentials)." }, - "actionSheetOptionUnfollowTopic": "Nie śledź wątku", - "@actionSheetOptionUnfollowTopic": { - "description": "Label for unfollowing a topic on action sheet." + "@errorWebAuthOperationalErrorTitle": { + "description": "Error title when third-party authentication has an operational error (not necessarily caused by invalid credentials)." }, - "switchAccountButton": "Przełącz konto", - "@switchAccountButton": { - "description": "Label for main-menu button leading to the choose-account page." + "@experimentalFeatureSettingsPageTitle": { + "description": "Title of settings page for experimental, in-development features" }, - "tryAnotherAccountMessage": "Twoje konto na {url} wymaga jeszcze chwili na załadowanie.", - "@tryAnotherAccountMessage": { - "description": "Message that appears on the loading screen after waiting for some time.", - "url": { - "type": "String", - "example": "http://chat.example.com/" - } + "@experimentalFeatureSettingsWarning": { + "description": "Warning text on settings page for experimental, in-development features" }, - "tryAnotherAccountButton": "Użyj innego konta", - "@tryAnotherAccountButton": { - "description": "Label for loading screen button prompting user to try another account." + "@filenameAndSizeInMiB": { + "description": "The name of a file, and its size in mebibytes.", + "placeholders": { + "filename": { + "example": "foo.txt", + "type": "String" + }, + "size": { + "example": "20.2", + "type": "String" + } + } }, - "errorFollowTopicFailed": "Śledzenie bez powodzenia", - "@errorFollowTopicFailed": { - "description": "Error message when following a topic failed." + "@inboxEmptyPlaceholder": { + "description": "Centered text on the 'Inbox' page saying that there is no content to show." }, - "inboxPageTitle": "Odebrane", "@inboxPageTitle": { "description": "Title for the page with unreads." }, - "channelsPageTitle": "Kanały", - "@channelsPageTitle": { - "description": "Title for the page with a list of subscribed channels." - }, - "emojiReactionsMore": "więcej", - "@emojiReactionsMore": { - "description": "Label for a button opening the emoji picker." + "@initialAnchorSettingDescription": { + "description": "Description of setting controlling initial anchor of message list." }, - "emojiPickerSearchEmoji": "Szukaj emoji", - "@emojiPickerSearchEmoji": { - "description": "Hint text for the emoji picker search text field." + "@initialAnchorSettingFirstUnreadAlways": { + "description": "Label for a value of setting controlling initial anchor of message list." }, - "dialogClose": "Zamknij", - "@dialogClose": { - "description": "Button label in dialogs to close." + "@initialAnchorSettingFirstUnreadConversations": { + "description": "Label for a value of setting controlling initial anchor of message list." }, - "errorReactionRemovingFailedTitle": "Usuwanie reakcji bez powodzenia", - "@errorReactionRemovingFailedTitle": { - "description": "Error title when removing a message reaction fails" + "@initialAnchorSettingNewestAlways": { + "description": "Label for a value of setting controlling initial anchor of message list." }, - "errorReactionAddingFailedTitle": "Dodanie reakcji bez powodzenia", - "@errorReactionAddingFailedTitle": { - "description": "Error title when adding a message reaction fails" + "@initialAnchorSettingTitle": { + "description": "Title of setting controlling initial anchor of message list." }, - "errorMuteTopicFailed": "Wyciszenie bez powodzenia", - "@errorMuteTopicFailed": { - "description": "Error message when muting a topic failed." + "@invisibleMode": { + "description": "Label for the 'Invisible mode' switch on the profile page." }, - "mainMenuMyProfile": "Mój profil", - "@mainMenuMyProfile": { - "description": "Label for main-menu button leading to the user's own profile." + "@lightboxCopyLinkTooltip": { + "description": "Tooltip in lightbox for the copy link action." }, - "errorUnfollowTopicFailed": "Nie śledź bez powodzenia", - "@errorUnfollowTopicFailed": { - "description": "Error message when unfollowing a topic failed." + "@lightboxVideoCurrentPosition": { + "description": "The current playback position of the video playing in the lightbox." }, - "errorUnmuteTopicFailed": "Wznowienie bez powodzenia", - "@errorUnmuteTopicFailed": { - "description": "Error message when unmuting a topic failed." + "@lightboxVideoDuration": { + "description": "The total duration of the video playing in the lightbox." }, - "wildcardMentionAll": "wszyscy", - "@wildcardMentionAll": { - "description": "Text for \"@all\" wildcard-mention autocomplete option when writing a channel or DM message." + "@logOutConfirmationDialogConfirmButton": { + "description": "Label for the 'Log out' button on a confirmation dialog for logging out." }, - "wildcardMentionStream": "strumień", - "@wildcardMentionStream": { - "description": "Text for \"@stream\" wildcard-mention autocomplete option when writing a channel message in older servers." + "@logOutConfirmationDialogMessage": { + "description": "Message for a confirmation dialog for logging out." }, - "wildcardMentionEveryone": "każdy", - "@wildcardMentionEveryone": { - "description": "Text for \"@everyone\" wildcard-mention autocomplete option when writing a channel or DM message." + "@logOutConfirmationDialogTitle": { + "description": "Title for a confirmation dialog for logging out." }, - "wildcardMentionChannel": "kanał", - "@wildcardMentionChannel": { - "description": "Text for \"@channel\" wildcard-mention autocomplete option when writing a channel message." + "@loginAddAnAccountPageTitle": { + "description": "Title for page to add a Zulip account." }, - "wildcardMentionTopic": "wątek", - "@wildcardMentionTopic": { - "description": "Text for \"@topic\" wildcard-mention autocomplete option when writing a channel message." + "@loginEmailLabel": { + "description": "Label for input when an email is required to log in." }, - "wildcardMentionTopicDescription": "Powiadom w wątku", - "@wildcardMentionTopicDescription": { - "description": "Description for \"@topic\" wildcard-mention autocomplete options when writing a channel message." + "@loginErrorMissingEmail": { + "description": "Error message when an empty email was provided." }, - "wildcardMentionAllDmDescription": "Powiadom zainteresowanych", - "@wildcardMentionAllDmDescription": { - "description": "Description for \"@all\" and \"@everyone\" wildcard-mention autocomplete options when writing a DM message." + "@loginErrorMissingPassword": { + "description": "Error message when an empty password was provided." }, - "wildcardMentionStreamDescription": "Powiadom w strumieniu", - "@wildcardMentionStreamDescription": { - "description": "Description for \"@all\", \"@everyone\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message in older servers." + "@loginErrorMissingUsername": { + "description": "Error message when an empty username was provided." }, - "wildcardMentionChannelDescription": "Powiadom w kanale", - "@wildcardMentionChannelDescription": { - "description": "Description for \"@all\", \"@everyone\", \"@channel\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message." + "@loginFormSubmitLabel": { + "description": "Button text to submit login credentials." }, - "errorCouldNotShowUserProfile": "Nie udało się wyświetlić profilu.", - "@errorCouldNotShowUserProfile": { - "description": "Message that appears on the user profile page when the profile cannot be shown." + "@loginHidePassword": { + "description": "Icon label for button to hide password in input form." }, - "errorCouldNotOpenLinkTitle": "Nie udało się otworzyć odnośnika", - "@errorCouldNotOpenLinkTitle": { - "description": "Error title when opening a link failed." + "@loginMethodDivider": { + "description": "Text on the divider between the username/password form and the third-party login options. Uppercase (for languages with letter case)." }, - "errorCouldNotOpenLink": "Nie można otworzyć: {url}", - "@errorCouldNotOpenLink": { - "description": "Error message when opening a link failed.", - "placeholders": { - "url": { - "type": "String", - "example": "https://chat.example.com" - } - } + "@loginPageTitle": { + "description": "Title for login page." }, - "dmsWithYourselfPageTitle": "DM do siebie", - "@dmsWithYourselfPageTitle": { - "description": "Message list page title for a DM group that only includes yourself." + "@loginPasswordLabel": { + "description": "Label for password input field." }, - "dmsWithOthersPageTitle": "DM z {others}", - "@dmsWithOthersPageTitle": { - "description": "Message list page title for a DM group with others.", - "placeholders": { - "others": { - "type": "String", - "example": "Alice, Bob" - } - } + "@loginServerUrlLabel": { + "description": "Label in login page for Zulip server URL entry." }, - "lightboxVideoCurrentPosition": "Obecna pozycja", - "@lightboxVideoCurrentPosition": { - "description": "The current playback position of the video playing in the lightbox." + "@loginUsernameLabel": { + "description": "Label for input when a username is required to log in." }, - "lightboxVideoDuration": "Długość wideo", - "@lightboxVideoDuration": { - "description": "The total duration of the video playing in the lightbox." + "@mainMenuMyProfile": { + "description": "Label for main-menu button leading to the user's own profile." }, - "recentDmConversationsSectionHeader": "Wiadomości bezpośrednie", - "@recentDmConversationsSectionHeader": { - "description": "Heading for direct messages section on the 'Inbox' message view." + "@manyPeopleTyping": { + "description": "Text to display when there are multiple users typing." }, - "reactedEmojiSelfUser": "Ty", - "@reactedEmojiSelfUser": { - "description": "Display name for the user themself, to show on an emoji reaction added by the user." + "@markAllAsReadLabel": { + "description": "Button text to mark messages as read." }, - "pollVoterNames": "({voterNames})", - "@pollVoterNames": { - "description": "The list of people who voted for a poll option, wrapped in parentheses.", + "@markAsReadComplete": { + "description": "Message when marking messages as read has completed.", "placeholders": { - "voterNames": { - "type": "String", - "example": "Alice, Bob, Chad" + "num": { + "example": "4", + "type": "int" } } }, - "noEarlierMessages": "Brak historii", - "@noEarlierMessages": { - "description": "Text to show at the start of a message list if there are no earlier messages." - }, - "scrollToBottomTooltip": "Przewiń do dołu", - "@scrollToBottomTooltip": { - "description": "Tooltip for button to scroll to bottom." + "@markAsReadInProgress": { + "description": "Progress message when marking messages as read." }, - "composeBoxLoadingMessage": "(ładowanie wiadomości {messageId})", - "@composeBoxLoadingMessage": { - "description": "Placeholder in compose box showing the quoted message is currently loading.", + "@markAsUnreadComplete": { + "description": "Message when marking messages as unread has completed.", "placeholders": { - "messageId": { - "type": "int", - "example": "1234" + "num": { + "example": "4", + "type": "int" } } }, - "pinnedSubscriptionsLabel": "Przypięte", - "@pinnedSubscriptionsLabel": { - "description": "Label for the list of pinned subscribed channels." + "@markAsUnreadInProgress": { + "description": "Progress message when marking messages as unread." }, - "unknownChannelName": "(nieznany kanał)", - "@unknownChannelName": { - "description": "Replacement name for channel when it cannot be found in the store." + "@markReadOnScrollSettingAlways": { + "description": "Label for a value of setting controlling which message-list views should mark read on scroll." }, - "unpinnedSubscriptionsLabel": "Odpięte", - "@unpinnedSubscriptionsLabel": { - "description": "Label for the list of unpinned subscribed channels." + "@markReadOnScrollSettingConversations": { + "description": "Label for a value of setting controlling which message-list views should mark read on scroll." }, - "actionSheetOptionResolveTopic": "Oznacz jako rozwiązany", - "@actionSheetOptionResolveTopic": { - "description": "Label for the 'Mark as resolved' button on the topic action sheet." + "@markReadOnScrollSettingConversationsDescription": { + "description": "Description for a value of setting controlling which message-list views should mark read on scroll." }, - "actionSheetOptionUnresolveTopic": "Oznacz brak rozwiązania", - "@actionSheetOptionUnresolveTopic": { - "description": "Label for the 'Mark as unresolved' button on the topic action sheet." + "@markReadOnScrollSettingDescription": { + "description": "Description of setting controlling which message-list views should mark read on scroll." }, - "errorResolveTopicFailedTitle": "Nie udało się oznaczyć jako rozwiązany", - "@errorResolveTopicFailedTitle": { - "description": "Error title when marking a topic as resolved failed." + "@markReadOnScrollSettingNever": { + "description": "Label for a value of setting controlling which message-list views should mark read on scroll." }, - "errorUnresolveTopicFailedTitle": "Nie udało się oznaczyć brak rozwiązania", - "@errorUnresolveTopicFailedTitle": { - "description": "Error title when marking a topic as unresolved failed." + "@markReadOnScrollSettingTitle": { + "description": "Title of setting controlling which message-list views should mark read on scroll." }, - "appVersionUnknownPlaceholder": "(…)", - "@appVersionUnknownPlaceholder": { - "description": "Placeholder to show in place of the app version when it is unknown." + "@mentionsPageTitle": { + "description": "Page title for the 'Mentions' message view." }, - "zulipAppTitle": "Zulip", - "@zulipAppTitle": { - "description": "The name of Zulip. This should be either 'Zulip' or a transliteration." + "@messageIsEditedLabel": { + "description": "Label for an edited message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" }, - "filenameAndSizeInMiB": "{filename}: {size} MiB", - "@filenameAndSizeInMiB": { - "description": "The name of a file, and its size in mebibytes.", - "placeholders": { - "filename": { - "type": "String", - "example": "foo.txt" - }, - "size": { - "type": "String", - "example": "20.2" - } - } + "@messageIsMovedLabel": { + "description": "Label for a moved message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" }, - "errorInvalidApiKeyMessage": "Konto w ramach {url} nie zostało przyjęte. Spróbuj ponownie lub skorzystaj z innego konta.", - "@errorInvalidApiKeyMessage": { - "description": "Error message in the dialog for invalid API key.", + "@messageListGroupYouAndOthers": { + "description": "Message list recipient header for a DM group with others.", "placeholders": { - "url": { - "type": "String", - "example": "http://chat.example.com/" + "others": { + "example": "Alice, Bob", + "type": "String" } } }, - "errorCouldNotConnectTitle": "Brak połączenia", - "@errorCouldNotConnectTitle": { - "description": "Error title when the app could not connect to the server." + "@messageListGroupYouWithYourself": { + "description": "Message list recipient header for a DM group that only includes yourself." }, - "composeBoxChannelContentHint": "Wiadomość do {destination}", - "@composeBoxChannelContentHint": { - "description": "Hint text for content input when sending a message to a channel.", - "placeholders": { - "destination": { - "type": "String", - "example": "#channel name > topic name" - } - } - }, - "actionSheetOptionMarkChannelAsRead": "Oznacz kanał jako przeczytany", - "@actionSheetOptionMarkChannelAsRead": { - "description": "Label for marking a channel as read." - }, - "actionSheetOptionMarkTopicAsRead": "Oznacz wątek jako przeczytany", - "@actionSheetOptionMarkTopicAsRead": { - "description": "Option to mark a specific topic as read in the action sheet." + "@messageNotSentLabel": { + "description": "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.)" }, - "themeSettingLight": "Jasny", - "@themeSettingLight": { - "description": "Label for light theme setting." + "@mutedUser": { + "description": "Name for a muted user to display all over the app." }, - "themeSettingSystem": "Systemowy", - "@themeSettingSystem": { - "description": "Label for system theme setting." + "@newDmFabButtonLabel": { + "description": "Label for the floating action button (FAB) that opens the new DM sheet." }, - "themeSettingDark": "Ciemny", - "@themeSettingDark": { - "description": "Label for dark theme setting." + "@newDmSheetComposeButtonLabel": { + "description": "Label for the compose button in the new DM sheet that starts composing a message to the selected users." }, - "themeSettingTitle": "WYSTRÓJ", - "@themeSettingTitle": { - "description": "Title for theme setting. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + "@newDmSheetNoUsersFound": { + "description": "Message shown in the new DM sheet when no users match the search." }, - "settingsPageTitle": "Ustawienia", - "@settingsPageTitle": { - "description": "Title for the settings page." + "@newDmSheetScreenTitle": { + "description": "Title displayed at the top of the new DM screen." }, - "openLinksWithInAppBrowser": "Otwieraj odnośniki w aplikacji", - "@openLinksWithInAppBrowser": { - "description": "Label for toggling setting to open links with in-app browser" + "@newDmSheetSearchHintEmpty": { + "description": "Hint text for the search bar when no users are selected" }, - "experimentalFeatureSettingsPageTitle": "Funkcje eksperymentalne", - "@experimentalFeatureSettingsPageTitle": { - "description": "Title of settings page for experimental, in-development features" + "@newDmSheetSearchHintSomeSelected": { + "description": "Hint text for the search bar when at least one user is selected" }, - "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.", - "@experimentalFeatureSettingsWarning": { - "description": "Warning text on settings page for experimental, in-development features" + "@noEarlierMessages": { + "description": "Text to show at the start of a message list if there are no earlier messages." }, - "errorDialogLearnMore": "Dowiedz się więcej", - "@errorDialogLearnMore": { - "description": "Button label in error dialogs to open a web page with more information." + "@noStatusText": { + "description": "The text part of the status button sub-label in self-user profile page when status text is not set." }, - "errorServerVersionUnsupportedMessage": "{url} uruchamia Zulip Server {zulipVersion}, który nie jest obsługiwany. Minimalna obsługiwana wersja to Zulip Server {minSupportedZulipVersion}.", - "@errorServerVersionUnsupportedMessage": { - "description": "Error message in the dialog for when the Zulip Server version is unsupported.", + "@notifGroupDmConversationLabel": { + "description": "Label for a group DM conversation notification.", "placeholders": { - "url": { - "type": "String", - "example": "http://chat.example.com/" - }, - "zulipVersion": { - "type": "String", - "example": "3.2" + "numOthers": { + "example": "4", + "type": "int" }, - "minSupportedZulipVersion": { - "type": "String", - "example": "4.0" + "senderFullName": { + "example": "Alice", + "type": "String" } } }, - "composeBoxEnterTopicOrSkipHintText": "Wpisz tytuł wątku (pomiń aby uzyskać “{defaultTopicName}”)", - "@composeBoxEnterTopicOrSkipHintText": { - "description": "Hint text for topic input widget in compose box when topics are optional.", + "@notifSelfUser": { + "description": "Display name for the user themself, to show after replying in an Android notification" + }, + "@onePersonTyping": { + "description": "Text to display when there is one user typing.", "placeholders": { - "defaultTopicName": { - "type": "String", - "example": "general chat" + "typist": { + "example": "Alice", + "type": "String" } } }, - "actionSheetOptionEditMessage": "Zmień wiadomość", - "@actionSheetOptionEditMessage": { - "description": "Label for the 'Edit message' button in the message action sheet." - }, - "errorMessageEditNotSaved": "Nie zapisano wiadomości", - "@errorMessageEditNotSaved": { - "description": "Error message for compose box when a message edit could not be saved." - }, - "errorCouldNotEditMessageTitle": "Nie można zmienić wiadomości", - "@errorCouldNotEditMessageTitle": { - "description": "Error title when an exception prevented us from opening the compose box for editing a message." + "@openLinksWithInAppBrowser": { + "description": "Label for toggling setting to open links with in-app browser" }, - "composeBoxBannerLabelEditMessage": "Zmień wiadomość", - "@composeBoxBannerLabelEditMessage": { - "description": "Label text for the compose-box banner when you are editing a message." + "@permissionsDeniedCameraAccess": { + "description": "Message for dialog asking the user to grant permissions for camera access." }, - "editAlreadyInProgressMessage": "Operacja zmiany w toku. Zaczekaj na jej zakończenie.", - "@editAlreadyInProgressMessage": { - "description": "Error message when a message edit cannot be saved because there is another edit already in progress." + "@permissionsDeniedReadExternalStorage": { + "description": "Message for dialog asking the user to grant permissions for external storage read access." }, - "savingMessageEditLabel": "ZAPIS ZMIANY…", - "@savingMessageEditLabel": { - "description": "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.)" + "@permissionsNeededOpenSettings": { + "description": "Button label for permissions dialog button that opens the system settings screen." }, - "savingMessageEditFailedLabel": "NIE ZAPISANO ZMIANY", - "@savingMessageEditFailedLabel": { - "description": "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.)" + "@permissionsNeededTitle": { + "description": "Title for dialog asking the user to grant additional permissions." }, - "discardDraftConfirmationDialogTitle": "Czy chcesz przerwać szykowanie wpisu?", - "@discardDraftConfirmationDialogTitle": { - "description": "Title for a confirmation dialog for discarding message text that was typed into the compose box." + "@pinnedSubscriptionsLabel": { + "description": "Label for the list of pinned subscribed channels." }, - "discardDraftForEditConfirmationDialogMessage": "Miej na uwadze, że przechodząc do zmiany wiadomości wyczyścisz okno nowej wiadomości.", - "@discardDraftForEditConfirmationDialogMessage": { - "description": "Message for a confirmation dialog for discarding message text that was typed into the compose box, when editing a message." + "@pollVoterNames": { + "description": "The list of people who voted for a poll option, wrapped in parentheses.", + "placeholders": { + "voterNames": { + "example": "Alice, Bob, Chad", + "type": "String" + } + } }, - "discardDraftConfirmationDialogConfirmButton": "Odrzuć", - "@discardDraftConfirmationDialogConfirmButton": { - "description": "Label for the 'Discard' button on a confirmation dialog for discarding message text that was typed into the compose box." + "@pollWidgetOptionsMissing": { + "description": "Text to display for a poll when it has no options" }, - "composeBoxBannerButtonCancel": "Anuluj", - "@composeBoxBannerButtonCancel": { - "description": "Label text for the 'Cancel' button in the compose-box banner when you are editing a message." + "@pollWidgetQuestionMissing": { + "description": "Text to display for a poll when the question is missing" }, - "preparingEditMessageContentInput": "Przygotowywanie…", "@preparingEditMessageContentInput": { "description": "Hint text for content input when the compose box is preparing to edit a message." }, - "editAlreadyInProgressTitle": "Nie udało się zapisać zmiany", - "@editAlreadyInProgressTitle": { - "description": "Error title when a message edit cannot be saved because there is another edit already in progress." - }, - "composeBoxBannerButtonSave": "Zapisz", - "@composeBoxBannerButtonSave": { - "description": "Label text for the 'Save' button in the compose-box banner when you are editing a message." + "@profileButtonSendDirectMessage": { + "description": "Label for button in profile screen to navigate to DMs with the shown user." }, - "topicsButtonTooltip": "Wątki", - "@topicsButtonTooltip": { - "description": "Tooltip for button to navigate to topic-list page." + "@reactedEmojiSelfUser": { + "description": "Display name for the user themself, to show on an emoji reaction added by the user." }, - "actionSheetOptionListOfTopics": "Lista wątków", - "@actionSheetOptionListOfTopics": { - "description": "Label for navigating to a channel's topic-list page." + "@reactionChipLabel": { + "description": "Text describing a reaction chip, with the emoji name and a list or number of votes. (An accessibility label for assistive technology.)", + "placeholders": { + "emojiName": { + "example": "working_on_it", + "type": "String" + }, + "votes": { + "example": "You, Chris, Greg", + "type": "String" + } + } }, - "newDmSheetScreenTitle": "Nowa DM", - "@newDmSheetScreenTitle": { - "description": "Title displayed at the top of the new DM screen." + "@reactionChipVotesYouAndOthers": { + "description": "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.)", + "placeholders": { + "otherUsersCount": { + "example": "4", + "type": "int" + } + } }, - "newDmFabButtonLabel": "Nowa DM", - "@newDmFabButtonLabel": { - "description": "Label for the floating action button (FAB) that opens the new DM sheet." + "@reactionChipsLabel": { + "description": "Text identifying the container of reaction chips on a message. (An accessibility label for assistive technology.)" }, - "newDmSheetSearchHintSomeSelected": "Dodaj kolejnego użytkownika…", - "@newDmSheetSearchHintSomeSelected": { - "description": "Hint text for the search bar when at least one user is selected" + "@recentDmConversationsEmptyPlaceholder": { + "description": "Centered text on the 'Direct messages' page saying that there is no content to show." }, - "mutedUser": "Wyciszony użytkownik", - "@mutedUser": { - "description": "Name for a muted user to display all over the app." + "@recentDmConversationsPageTitle": { + "description": "Title for the page with a list of DM conversations." }, - "newDmSheetNoUsersFound": "Nie odnaleziono użytkowników", - "@newDmSheetNoUsersFound": { - "description": "Message shown in the new DM sheet when no users match the search." + "@recentDmConversationsSectionHeader": { + "description": "Heading for direct messages section on the 'Inbox' message view." }, - "actionSheetOptionHideMutedMessage": "Ukryj ponownie wyciszone wiadomości", - "@actionSheetOptionHideMutedMessage": { - "description": "Label for hide muted message again button on action sheet." + "@revealButtonLabel": { + "description": "Label for the button revealing hidden message from a muted sender in message list." }, - "newDmSheetSearchHintEmpty": "Dodaj jednego lub więcej użytkowników", - "@newDmSheetSearchHintEmpty": { - "description": "Hint text for the search bar when no users are selected" + "@savingMessageEditFailedLabel": { + "description": "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.)" }, - "messageNotSentLabel": "NIE WYSŁANO WIADOMOŚCI", - "@messageNotSentLabel": { - "description": "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.)" + "@savingMessageEditLabel": { + "description": "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.)" }, - "errorNotificationOpenAccountNotFound": "Nie odnaleziono konta powiązanego z tym powiadomieniem.", - "@errorNotificationOpenAccountNotFound": { - "description": "Error message when the account associated with the notification could not be found" + "@scrollToBottomTooltip": { + "description": "Tooltip for button to scroll to bottom." }, - "newDmSheetComposeButtonLabel": "Utwórz", - "@newDmSheetComposeButtonLabel": { - "description": "Label for the compose button in the new DM sheet that starts composing a message to the selected users." + "@searchMessagesClearButtonTooltip": { + "description": "Tooltip for the 'x' button in the search text field." }, - "inboxEmptyPlaceholder": "Obecnie brak nowych wiadomości. Skorzystaj z przycisków u dołu ekranu aby przejść do widoku mieszanego lub listy kanałów.", - "@inboxEmptyPlaceholder": { - "description": "Centered text on the 'Inbox' page saying that there is no content to show." + "@searchMessagesHintText": { + "description": "Hint text for the message search text field." }, - "recentDmConversationsEmptyPlaceholder": "Brak wiadomości w archiwum! Może warto rozpocząć dyskusję?", - "@recentDmConversationsEmptyPlaceholder": { - "description": "Centered text on the 'Direct messages' page saying that there is no content to show." + "@searchMessagesPageTitle": { + "description": "Page title for the 'Search' message view." }, - "channelsEmptyPlaceholder": "Nie śledzisz żadnego z kanałów.", - "@channelsEmptyPlaceholder": { - "description": "Centered text on the 'Channels' page saying that there is no content to show." + "@seeWhoReactedSheetEmojiNameWithVoteCount": { + "description": "In the 'See who reacted' sheet, an emoji reaction's name and how many votes it has. (An accessibility label for assistive technology.)", + "placeholders": { + "emojiName": { + "example": "working_on_it", + "type": "String" + }, + "num": { + "example": "2", + "type": "int" + } + } }, - "initialAnchorSettingDescription": "Możesz wybrać czy bardziej odpowiada Ci odczyt nieprzeczytanych lub najnowszych wiadomości.", - "@initialAnchorSettingDescription": { - "description": "Description of setting controlling initial anchor of message list." + "@seeWhoReactedSheetHeaderLabel": { + "description": "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.)", + "placeholders": { + "num": { + "example": "2", + "type": "int" + } + } }, - "initialAnchorSettingFirstUnreadAlways": "Pierwsza nieprzeczytana wiadomość", - "@initialAnchorSettingFirstUnreadAlways": { - "description": "Label for a value of setting controlling initial anchor of message list." + "@seeWhoReactedSheetNoReactions": { + "description": "Explanation on the 'See who reacted' sheet when the message has no reactions (because they were removed after the sheet was opened)." }, - "initialAnchorSettingTitle": "Pokaż wiadomości w porządku", - "@initialAnchorSettingTitle": { - "description": "Title of setting controlling initial anchor of message list." + "@seeWhoReactedSheetUserListLabel": { + "description": "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.)", + "placeholders": { + "emojiName": { + "example": "working_on_it", + "type": "String" + }, + "num": { + "example": "2", + "type": "int" + } + } }, - "discardDraftForOutboxConfirmationDialogMessage": "Przywracając wiadomość, która nie została wysłana, wyczyścisz zawartość kreatora nowej.", - "@discardDraftForOutboxConfirmationDialogMessage": { - "description": "Message for a confirmation dialog when restoring an outbox message, for discarding message text that was typed into the compose box." + "@serverUrlValidationErrorEmpty": { + "description": "Error message when URL is empty" }, - "initialAnchorSettingFirstUnreadConversations": "Pierwsza nieprzeczytana wiadomość w widoku dyskusji, wszędzie indziej najnowsza wiadomość", - "@initialAnchorSettingFirstUnreadConversations": { - "description": "Label for a value of setting controlling initial anchor of message list." + "@serverUrlValidationErrorInvalidUrl": { + "description": "Error message when URL is not in a valid format." }, - "initialAnchorSettingNewestAlways": "Najnowsza wiadomość", - "@initialAnchorSettingNewestAlways": { - "description": "Label for a value of setting controlling initial anchor of message list." + "@serverUrlValidationErrorNoUseEmail": { + "description": "Error message when URL looks like an email" }, - "actionSheetOptionQuoteMessage": "Cytuj wiadomość", - "@actionSheetOptionQuoteMessage": { - "description": "Label for the 'Quote message' button in the message action sheet." + "@serverUrlValidationErrorUnsupportedScheme": { + "description": "Error message when URL has an unsupported scheme." }, - "markReadOnScrollSettingTitle": "Oznacz wiadomości jako przeczytane przy przwijaniu", - "@markReadOnScrollSettingTitle": { - "description": "Title of setting controlling which message-list views should mark read on scroll." + "@setStatusPageTitle": { + "description": "Title for the 'Set status' page." }, - "markReadOnScrollSettingAlways": "Zawsze", - "@markReadOnScrollSettingAlways": { - "description": "Label for a value of setting controlling which message-list views should mark read on scroll." + "@settingsPageTitle": { + "description": "Title for the settings page." }, - "markReadOnScrollSettingConversations": "Tylko w widoku dyskusji", - "@markReadOnScrollSettingConversations": { - "description": "Label for a value of setting controlling which message-list views should mark read on scroll." + "@signInWithFoo": { + "description": "Button to use {method} to sign in to the app.", + "placeholders": { + "method": { + "example": "Google", + "type": "String" + } + } }, - "markReadOnScrollSettingNever": "Nigdy", - "@markReadOnScrollSettingNever": { - "description": "Label for a value of setting controlling which message-list views should mark read on scroll." + "@snackBarDetails": { + "description": "Button label for snack bar button that opens a dialog with more details." }, - "markReadOnScrollSettingDescription": "Czy chcesz z automatu oznaczać wiadomości jako przeczytane przy przewijaniu?", - "@markReadOnScrollSettingDescription": { - "description": "Description of setting controlling which message-list views should mark read on scroll." + "@spoilerDefaultHeaderText": { + "description": "The default header text in a spoiler block ( https://zulip.com/help/spoilers )." }, - "markReadOnScrollSettingConversationsDescription": "Wiadomości zostaną z automatu oznaczone jako przeczytane tylko w pojedyczym wątku lub w wymianie wiadomości bezpośrednich.", - "@markReadOnScrollSettingConversationsDescription": { - "description": "Description for a value of setting controlling which message-list views should mark read on scroll." + "@starredMessagesPageTitle": { + "description": "Page title for the 'Starred messages' message view." }, - "upgradeWelcomeDialogTitle": "Witaj w nowej apce Zulip!", - "@upgradeWelcomeDialogTitle": { - "description": "Title for dialog shown on first upgrade from the legacy Zulip app." + "@statusButtonLabelStatusSet": { + "description": "The status button label in self-user profile page when status is set." }, - "upgradeWelcomeDialogMessage": "Napotkasz na znane rozwiązania, które upakowaliśmy w szybszy i elegancki pakiet.", - "@upgradeWelcomeDialogMessage": { - "description": "Message text for dialog shown on first upgrade from the legacy Zulip app." + "@statusButtonLabelStatusUnset": { + "description": "The status button label in self-user profile page when status is not set." }, - "upgradeWelcomeDialogLinkText": "Sprawdź blog pod kątem obwieszczenia!", - "@upgradeWelcomeDialogLinkText": { - "description": "Text of link in dialog shown on first upgrade from the legacy Zulip app." + "@statusClearButtonLabel": { + "description": "Label for the button that clears the user status, in 'Set status' page." }, - "upgradeWelcomeDialogDismiss": "Zaczynajmy", - "@upgradeWelcomeDialogDismiss": { - "description": "Label for button dismissing dialog shown on first upgrade from the legacy Zulip app." + "@statusSaveButtonLabel": { + "description": "Label for the button that saves the user status, in 'Set status' page." }, - "emptyMessageList": "Póki co brak wiadomości.", - "@emptyMessageList": { - "description": "Placeholder for some message-list pages when there are no messages." + "@statusTextHint": { + "description": "Hint text for the status text input field in 'Set status' page." }, - "revealButtonLabel": "Odsłoń wiadomość", - "@revealButtonLabel": { - "description": "Label for the button revealing hidden message from a muted sender in message list." + "@successChannelLinkCopied": { + "description": "Message when link of a channel was copied to the user's system clipboard." }, - "emptyMessageListSearch": "Brak wyników wyszukiwania.", - "@emptyMessageListSearch": { - "description": "Placeholder for the 'Search' page when there are no messages." + "@successLinkCopied": { + "description": "Success message after copy link action completed." }, - "searchMessagesPageTitle": "Szukaj", - "@searchMessagesPageTitle": { - "description": "Page title for the 'Search' message view." + "@successMessageLinkCopied": { + "description": "Message when link of a message was copied to the user's system clipboard." }, - "searchMessagesHintText": "Szukaj", - "@searchMessagesHintText": { - "description": "Hint text for the message search text field." + "@successMessageTextCopied": { + "description": "Message when content of a message was copied to the user's system clipboard." }, - "searchMessagesClearButtonTooltip": "Wyczyść", - "@searchMessagesClearButtonTooltip": { - "description": "Tooltip for the 'x' button in the search text field." + "@successTopicLinkCopied": { + "description": "Message when link of a topic was copied to the user's system clipboard." }, - "invisibleMode": "Tryb ukrycia", - "@invisibleMode": { - "description": "Label for the 'Invisible mode' switch on the profile page." + "@switchAccountButton": { + "description": "Label for main-menu button leading to the choose-account page." + }, + "@themeSettingDark": { + "description": "Label for dark theme setting." + }, + "@themeSettingLight": { + "description": "Label for light theme setting." + }, + "@themeSettingSystem": { + "description": "Label for system theme setting." + }, + "@themeSettingTitle": { + "description": "Title for theme setting. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + }, + "@today": { + "description": "Term to use to reference the current day." + }, + "@topicValidationErrorMandatoryButEmpty": { + "description": "Topic validation error when topic is required but was empty." + }, + "@topicValidationErrorTooLong": { + "description": "Topic validation error when topic is too long." + }, + "@topicsButtonTooltip": { + "description": "Tooltip for button to navigate to topic-list page." + }, + "@tryAnotherAccountButton": { + "description": "Label for loading screen button prompting user to try another account." + }, + "@tryAnotherAccountMessage": { + "description": "Message that appears on the loading screen after waiting for some time.", + "url": { + "example": "http://chat.example.com/", + "type": "String" + } + }, + "@turnOffInvisibleModeErrorTitle": { + "description": "Error title when turning off invisible mode failed." }, - "turnOnInvisibleModeErrorTitle": "Problem z włączeniem trybu ukrycia. Spróbuj ponownie.", "@turnOnInvisibleModeErrorTitle": { "description": "Error title when turning on invisible mode failed." }, + "@twoPeopleTyping": { + "description": "Text to display when there are two users typing.", + "placeholders": { + "otherTypist": { + "example": "Bob", + "type": "String" + }, + "typist": { + "example": "Alice", + "type": "String" + } + } + }, + "@unknownChannelName": { + "description": "Replacement name for channel when it cannot be found in the store." + }, + "@unknownUserName": { + "description": "Name placeholder to use for a user when we don't know their name." + }, + "@unpinnedSubscriptionsLabel": { + "description": "Label for the list of unpinned subscribed channels." + }, + "@updateStatusErrorTitle": { + "description": "Error title when updating user status failed." + }, + "@upgradeWelcomeDialogDismiss": { + "description": "Label for button dismissing dialog shown on first upgrade from the legacy Zulip app." + }, + "@upgradeWelcomeDialogLinkText": { + "description": "Text of link in dialog shown on first upgrade from the legacy Zulip app." + }, + "@upgradeWelcomeDialogMessage": { + "description": "Message text for dialog shown on first upgrade from the legacy Zulip app." + }, + "@upgradeWelcomeDialogTitle": { + "description": "Title for dialog shown on first upgrade from the legacy Zulip app." + }, + "@userRoleAdministrator": { + "description": "Label for UserRole.administrator" + }, + "@userRoleGuest": { + "description": "Label for UserRole.guest" + }, + "@userRoleMember": { + "description": "Label for UserRole.member" + }, + "@userRoleModerator": { + "description": "Label for UserRole.moderator" + }, + "@userRoleOwner": { + "description": "Label for UserRole.owner" + }, + "@userRoleUnknown": { + "description": "Label for UserRole.unknown" + }, + "@userStatusAtTheOffice": { + "description": "A suggested user status text, 'At the office'." + }, + "@userStatusBusy": { + "description": "A suggested user status text, 'Busy'." + }, + "@userStatusCommuting": { + "description": "A suggested user status text, 'Commuting'." + }, + "@userStatusInAMeeting": { + "description": "A suggested user status text, 'In a meeting'." + }, + "@userStatusOutSick": { + "description": "A suggested user status text, 'Out sick'." + }, + "@userStatusVacationing": { + "description": "A suggested user status text, 'Vacationing'." + }, + "@userStatusWorkingRemotely": { + "description": "A suggested user status text, 'Working remotely'." + }, + "@wildcardMentionAll": { + "description": "Text for \"@all\" wildcard-mention autocomplete option when writing a channel or DM message." + }, + "@wildcardMentionAllDmDescription": { + "description": "Description for \"@all\" and \"@everyone\" wildcard-mention autocomplete options when writing a DM message." + }, + "@wildcardMentionChannel": { + "description": "Text for \"@channel\" wildcard-mention autocomplete option when writing a channel message." + }, + "@wildcardMentionChannelDescription": { + "description": "Description for \"@all\", \"@everyone\", \"@channel\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message." + }, + "@wildcardMentionEveryone": { + "description": "Text for \"@everyone\" wildcard-mention autocomplete option when writing a channel or DM message." + }, + "@wildcardMentionStream": { + "description": "Text for \"@stream\" wildcard-mention autocomplete option when writing a channel message in older servers." + }, + "@wildcardMentionStreamDescription": { + "description": "Description for \"@all\", \"@everyone\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message in older servers." + }, + "@wildcardMentionTopic": { + "description": "Text for \"@topic\" wildcard-mention autocomplete option when writing a channel message." + }, + "@wildcardMentionTopicDescription": { + "description": "Description for \"@topic\" wildcard-mention autocomplete options when writing a channel message." + }, + "@yesterday": { + "description": "Term to use to reference the previous day." + }, + "@zulipAppTitle": { + "description": "The name of Zulip. This should be either 'Zulip' or a transliteration." + }, + "aboutPageAppVersion": "Wydanie apki", + "aboutPageOpenSourceLicenses": "Licencje otwartego źródła", + "aboutPageTapToView": "Dotknij, aby pokazać", + "aboutPageTitle": "O Zulip", + "actionSheetOptionCopyChannelLink": "Skopiuj odnośnik do kanału", + "actionSheetOptionCopyMessageLink": "Skopiuj odnośnik do wiadomości", + "actionSheetOptionCopyMessageText": "Skopiuj tekst wiadomości", + "actionSheetOptionCopyTopicLink": "Skopiuj odnośnik do wątku", + "actionSheetOptionEditMessage": "Zmień wiadomość", + "actionSheetOptionFollowTopic": "Śledź wątek", + "actionSheetOptionHideMutedMessage": "Ukryj ponownie wyciszone wiadomości", + "actionSheetOptionListOfTopics": "Lista wątków", + "actionSheetOptionMarkAsUnread": "Odtąd oznacz jako nieprzeczytane", + "actionSheetOptionMarkChannelAsRead": "Oznacz kanał jako przeczytany", + "actionSheetOptionMarkTopicAsRead": "Oznacz wątek jako przeczytany", + "actionSheetOptionMuteTopic": "Wycisz wątek", + "actionSheetOptionQuoteMessage": "Cytuj wiadomość", + "actionSheetOptionResolveTopic": "Oznacz jako rozwiązany", + "actionSheetOptionSeeWhoReacted": "Pokaż kto zareagował", + "actionSheetOptionShare": "Udostępnij", + "actionSheetOptionStarMessage": "Oznacz gwiazdką", + "actionSheetOptionUnfollowTopic": "Nie śledź wątku", + "actionSheetOptionUnmuteTopic": "Wznów wątek", + "actionSheetOptionUnresolveTopic": "Oznacz brak rozwiązania", + "actionSheetOptionUnstarMessage": "Odbierz gwiazdkę", + "appVersionUnknownPlaceholder": "(…)", + "channelFeedButtonTooltip": "Strumień kanału", + "channelsEmptyPlaceholder": "Nie śledzisz żadnego z kanałów.", + "channelsPageTitle": "Kanały", + "chooseAccountButtonAddAnAccount": "Dodaj konto", + "chooseAccountPageLogOutButton": "Wyloguj", + "chooseAccountPageTitle": "Wybierz konto", + "combinedFeedPageTitle": "Mieszany widok", + "composeBoxAttachFilesTooltip": "Dołącz pliki", + "composeBoxAttachFromCameraTooltip": "Zrób zdjęcie", + "composeBoxAttachMediaTooltip": "Dołącz obrazy lub wideo", + "composeBoxBannerButtonCancel": "Anuluj", + "composeBoxBannerButtonSave": "Zapisz", + "composeBoxBannerLabelEditMessage": "Zmień wiadomość", + "composeBoxChannelContentHint": "Wiadomość do {destination}", + "composeBoxDmContentHint": "Napisz do @{user}", + "composeBoxEnterTopicOrSkipHintText": "Wpisz tytuł wątku (pomiń aby uzyskać “{defaultTopicName}”)", + "composeBoxGenericContentHint": "Wpisz wiadomość", + "composeBoxGroupDmContentHint": "Napisz do grupy", + "composeBoxLoadingMessage": "(ładowanie wiadomości {messageId})", + "composeBoxSelfDmContentHint": "Zanotuj coś na przyszłość", + "composeBoxSendTooltip": "Wyślij", + "composeBoxTopicHintText": "Wątek", + "composeBoxUploadingFilename": "Przekazywanie {filename}…", + "contentValidationErrorEmpty": "Nie masz nic do wysłania!", + "contentValidationErrorQuoteAndReplyInProgress": "Zaczekaj na zakończenie pobierania cytatu.", + "contentValidationErrorTooLong": "Wiadomość nie może być dłuższa niż 10000 znaków.", + "contentValidationErrorUploadInProgress": "Zaczekaj na zakończenie przekazywania.", + "dialogCancel": "Anuluj", + "dialogClose": "Zamknij", + "dialogContinue": "Kontynuuj", + "discardDraftConfirmationDialogConfirmButton": "Odrzuć", + "discardDraftConfirmationDialogTitle": "Czy chcesz przerwać szykowanie wpisu?", + "discardDraftForEditConfirmationDialogMessage": "Miej na uwadze, że przechodząc do zmiany wiadomości wyczyścisz okno nowej wiadomości.", + "discardDraftForOutboxConfirmationDialogMessage": "Przywracając wiadomość, która nie została wysłana, wyczyścisz zawartość kreatora nowej.", + "dmsWithOthersPageTitle": "DM z {others}", + "dmsWithYourselfPageTitle": "DM do siebie", + "editAlreadyInProgressMessage": "Operacja zmiany w toku. Zaczekaj na jej zakończenie.", + "editAlreadyInProgressTitle": "Nie udało się zapisać zmiany", + "emojiPickerSearchEmoji": "Szukaj emoji", + "emojiReactionsMore": "więcej", + "emptyMessageList": "Póki co brak wiadomości.", + "emptyMessageListSearch": "Brak wyników wyszukiwania.", + "errorAccountLoggedIn": "Konto {email} na {server} znajduje się już na liście dodanych kont.", + "errorAccountLoggedInTitle": "Konto już wylogowane", + "errorBannerCannotPostInChannelLabel": "Nie masz uprawnień do dodawania wpisów w tym kanale.", + "errorBannerDeactivatedDmLabel": "Nie można wysyłać wiadomości do dezaktywowanych użytkowników.", + "errorConnectingToServerDetails": "Błąd połączenia z Zulip {serverUrl}. Spróbujmy ponownie:\n\n{error}", + "errorConnectingToServerShort": "Błąd połączenia z Zulip. Ponawiam…", + "errorCopyingFailed": "Nie udało się skopiować", + "errorCouldNotConnectTitle": "Brak połączenia", + "errorCouldNotEditMessageTitle": "Nie można zmienić wiadomości", + "errorCouldNotFetchMessageSource": "Nie można uzyskać źródłowej wiadomości.", + "errorCouldNotOpenLink": "Nie można otworzyć: {url}", + "errorCouldNotOpenLinkTitle": "Nie udało się otworzyć odnośnika", + "errorCouldNotShowUserProfile": "Nie udało się wyświetlić profilu.", + "errorDialogContinue": "OK", + "errorDialogLearnMore": "Dowiedz się więcej", + "errorDialogTitle": "Błąd", + "errorFailedToUploadFileTitle": "Nie udało się załadować pliku: {filename}", + "errorFilesTooLarge": "{num, plural, =1{Plik jest} other{{num} Pliki są}} ponad limit serwera {maxFileUploadSizeMib} MiB i nie zostaną przyjęte:\n\n{listMessage}", + "errorFilesTooLargeTitle": "{num, plural, =1{Plik} other{Pliki}} ponad limit", + "errorFollowTopicFailed": "Śledzenie bez powodzenia", + "errorHandlingEventDetails": "Błąd zdarzenia Zulip z {serverUrl}; ponawiam.\n\nBłąd: {error}\n\nZdarzenie: {event}", + "errorHandlingEventTitle": "Błąd obsługi zdarzenia Zulip. Ponnawiam połączenie…", + "errorInvalidApiKeyMessage": "Konto w ramach {url} nie zostało przyjęte. Spróbuj ponownie lub skorzystaj z innego konta.", + "errorInvalidResponse": "Nieprawidłowa odpowiedź serwera.", + "errorLoginCouldNotConnect": "Nie udało się połączyć z serwerem:\n{url}", + "errorLoginFailedTitle": "Logowanie bez powodzenia", + "errorLoginInvalidInputTitle": "Błędny wsad", + "errorMalformedResponse": "Zdeforomowana odpowiedź serwera; status HTTP {httpStatus}", + "errorMalformedResponseWithCause": "Zdeformowana odpowiedź serwera; status HTTP {httpStatus}; {details}", + "errorMarkAsReadFailedTitle": "Oznaczanie jako przeczytane bez powodzenia", + "errorMarkAsUnreadFailedTitle": "Oznaczanie jako nieprzeczytane bez powodzenia", + "errorMessageDoesNotSeemToExist": "Taka wiadomość raczej nie istnieje.", + "errorMessageEditNotSaved": "Nie zapisano wiadomości", + "errorMessageNotSent": "Nie wysłano wiadomości", + "errorMuteTopicFailed": "Wyciszenie bez powodzenia", + "errorNetworkRequestFailed": "Dostęp do sieci bez powodzenia", + "errorNotificationOpenAccountNotFound": "Nie odnaleziono konta powiązanego z tym powiadomieniem.", + "errorNotificationOpenTitle": "Otwieranie powiadomienia bez powodzenia", + "errorQuotationFailed": "Cytowanie bez powodzenia", + "errorReactionAddingFailedTitle": "Dodanie reakcji bez powodzenia", + "errorReactionRemovingFailedTitle": "Usuwanie reakcji bez powodzenia", + "errorRequestFailed": "Błąd uzyskania sieci: status HTTP {httpStatus}", + "errorResolveTopicFailedTitle": "Nie udało się oznaczyć jako rozwiązany", + "errorServerMessage": "Odpowiedź serwera:\n\n{message}", + "errorServerVersionUnsupportedMessage": "{url} uruchamia Zulip Server {zulipVersion}, który nie jest obsługiwany. Minimalna obsługiwana wersja to Zulip Server {minSupportedZulipVersion}.", + "errorSharingFailed": "Udostępnianie bez powodzenia", + "errorStarMessageFailedTitle": "Dodanie gwiazdki bez powodzenia", + "errorUnfollowTopicFailed": "Nie śledź bez powodzenia", + "errorUnmuteTopicFailed": "Wznowienie bez powodzenia", + "errorUnresolveTopicFailedTitle": "Nie udało się oznaczyć brak rozwiązania", + "errorUnstarMessageFailedTitle": "Odebranie gwiazdki bez powodzenia", + "errorVideoPlayerFailed": "Nie da rady odtworzyć wideo.", + "errorWebAuthOperationalError": "Wystąpił niespodziewany błąd.", + "errorWebAuthOperationalErrorTitle": "Coś poszło nie tak", + "experimentalFeatureSettingsPageTitle": "Funkcje eksperymentalne", + "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.", + "filenameAndSizeInMiB": "{filename}: {size} MiB", + "inboxEmptyPlaceholder": "Obecnie brak nowych wiadomości. Skorzystaj z przycisków u dołu ekranu aby przejść do widoku mieszanego lub listy kanałów.", + "inboxPageTitle": "Odebrane", + "initialAnchorSettingDescription": "Możesz wybrać czy bardziej odpowiada Ci odczyt nieprzeczytanych lub najnowszych wiadomości.", + "initialAnchorSettingFirstUnreadAlways": "Pierwsza nieprzeczytana wiadomość", + "initialAnchorSettingFirstUnreadConversations": "Pierwsza nieprzeczytana wiadomość w widoku dyskusji, wszędzie indziej najnowsza wiadomość", + "initialAnchorSettingNewestAlways": "Najnowsza wiadomość", + "initialAnchorSettingTitle": "Pokaż wiadomości w porządku", + "invisibleMode": "Tryb ukrycia", + "lightboxCopyLinkTooltip": "Skopiuj odnośnik", + "lightboxVideoCurrentPosition": "Obecna pozycja", + "lightboxVideoDuration": "Długość wideo", + "logOutConfirmationDialogConfirmButton": "Wyloguj", + "logOutConfirmationDialogMessage": "Aby użyć tego konta należy wskazać URL organizacji oraz dane konta.", + "logOutConfirmationDialogTitle": "Wylogować?", + "loginAddAnAccountPageTitle": "Dodaj konto", + "loginEmailLabel": "Adres email", + "loginErrorMissingEmail": "Proszę podaj swój email.", + "loginErrorMissingPassword": "Proszę wprowadź hasło.", + "loginErrorMissingUsername": "Proszę podaj nazwę użytkownika.", + "loginFormSubmitLabel": "Zaloguj", + "loginHidePassword": "Ukryj hasło", + "loginMethodDivider": "LUB", + "loginPageTitle": "Zaloguj", + "loginPasswordLabel": "Hasło", + "loginServerUrlLabel": "URL serwera Zulip", + "loginUsernameLabel": "Użytkownik", + "mainMenuMyProfile": "Mój profil", + "manyPeopleTyping": "Wielu ludzi coś pisze…", + "markAllAsReadLabel": "Oznacz wszystkie jako przeczytane", + "markAsReadComplete": "Oznaczono {num, plural, =1{1 wiadomość} other{{num} wiadomości}} jako przeczytane.", + "markAsReadInProgress": "Oznaczanie wiadomości jako przeczytane…", + "markAsUnreadComplete": "Oznaczono {num, plural, =1{1 wiadomość} other{{num} wiadomości}} jako nieprzeczytane.", + "markAsUnreadInProgress": "Oznaczanie jako nieprzeczytane…", + "markReadOnScrollSettingAlways": "Zawsze", + "markReadOnScrollSettingConversations": "Tylko w widoku dyskusji", + "markReadOnScrollSettingConversationsDescription": "Wiadomości zostaną z automatu oznaczone jako przeczytane tylko w pojedyczym wątku lub w wymianie wiadomości bezpośrednich.", + "markReadOnScrollSettingDescription": "Czy chcesz z automatu oznaczać wiadomości jako przeczytane przy przewijaniu?", + "markReadOnScrollSettingNever": "Nigdy", + "markReadOnScrollSettingTitle": "Oznacz wiadomości jako przeczytane przy przwijaniu", + "mentionsPageTitle": "Wzmianki", + "messageIsEditedLabel": "ZMIENIONO", + "messageIsMovedLabel": "PRZENIESIONO", + "messageListGroupYouAndOthers": "Ty i {others}", + "messageListGroupYouWithYourself": "Zapiski na własne konto", + "messageNotSentLabel": "NIE WYSŁANO WIADOMOŚCI", + "mutedUser": "Wyciszony użytkownik", + "newDmFabButtonLabel": "Nowa DM", + "newDmSheetComposeButtonLabel": "Utwórz", + "newDmSheetNoUsersFound": "Nie odnaleziono użytkowników", + "newDmSheetScreenTitle": "Nowa DM", + "newDmSheetSearchHintEmpty": "Dodaj jednego lub więcej użytkowników", + "newDmSheetSearchHintSomeSelected": "Dodaj kolejnego użytkownika…", + "noEarlierMessages": "Brak historii", + "noStatusText": "Brak tekstu stanu", + "notifGroupDmConversationLabel": "{senderFullName} do ciebie i {numOthers, plural, =1{1 innego} other{{numOthers} innych}}", + "notifSelfUser": "Ty", + "onePersonTyping": "{typist} coś pisze…", + "openLinksWithInAppBrowser": "Otwieraj odnośniki w aplikacji", + "permissionsDeniedCameraAccess": "Aby odebrać obraz Zulip musi uzyskać dodatkowe uprawnienia w Ustawieniach.", + "permissionsDeniedReadExternalStorage": "Aby odebrać pliki Zulip musi uzyskać dodatkowe uprawnienia w Ustawieniach.", + "permissionsNeededOpenSettings": "Otwórz ustawienia", + "permissionsNeededTitle": "Wymagane uprawnienia", + "pinnedSubscriptionsLabel": "Przypięte", + "pollVoterNames": "({voterNames})", + "pollWidgetOptionsMissing": "Ta sonda nie ma opcji do wyboru.", + "pollWidgetQuestionMissing": "Brak pytania.", + "preparingEditMessageContentInput": "Przygotowywanie…", + "profileButtonSendDirectMessage": "Wyślij wiadomość bezpośrednią", + "reactedEmojiSelfUser": "Ty", + "reactionChipLabel": "{emojiName}: {votes}", + "reactionChipVotesYouAndOthers": "{otherUsersCount, plural, =1{Ty i 1 inny} other{Ty i {otherUsersCount} innych}}", + "reactionChipsLabel": "Reakcje", + "recentDmConversationsEmptyPlaceholder": "Brak wiadomości w archiwum! Może warto rozpocząć dyskusję?", + "recentDmConversationsPageTitle": "Wiadomości bezpośrednie", + "recentDmConversationsSectionHeader": "Wiadomości bezpośrednie", + "revealButtonLabel": "Odsłoń wiadomość", + "savingMessageEditFailedLabel": "NIE ZAPISANO ZMIANY", + "savingMessageEditLabel": "ZAPIS ZMIANY…", + "scrollToBottomTooltip": "Przewiń do dołu", + "searchMessagesClearButtonTooltip": "Wyczyść", + "searchMessagesHintText": "Szukaj", + "searchMessagesPageTitle": "Szukaj", + "seeWhoReactedSheetEmojiNameWithVoteCount": "{emojiName}: {num, plural, =1{1 głos} other{{num} głosów}}", + "seeWhoReactedSheetHeaderLabel": "Reakcje emoji (łącznie {num})", + "seeWhoReactedSheetNoReactions": "Brak reakcji na tę wiadomość.", + "seeWhoReactedSheetUserListLabel": "Głosów {emojiName} ({num})", + "serverUrlValidationErrorEmpty": "Proszę podaj URL.", + "serverUrlValidationErrorInvalidUrl": "Proszę podaj poprawny URL.", + "serverUrlValidationErrorNoUseEmail": "Proszę podaj adres URL serwera a nie swój email.", + "serverUrlValidationErrorUnsupportedScheme": "Adres URL serwera musi zaczynać się od http:// or https://.", + "setStatusPageTitle": "Ustaw stan", + "settingsPageTitle": "Ustawienia", + "signInWithFoo": "Logowanie z {method}", + "snackBarDetails": "Szczegóły", + "spoilerDefaultHeaderText": "Spoiler", + "starredMessagesPageTitle": "Wiadomości z gwiazdką", + "statusButtonLabelStatusSet": "Stan", + "statusButtonLabelStatusUnset": "Ustaw stan", + "statusClearButtonLabel": "Wyczyść", + "statusSaveButtonLabel": "Zapisz", + "statusTextHint": "Twój stan", + "successChannelLinkCopied": "Skopiowano odnośnik do kanału", + "successLinkCopied": "Skopiowano odnośnik", + "successMessageLinkCopied": "Skopiowano odnośnik wiadomości", + "successMessageTextCopied": "Skopiowano tekst wiadomości", + "successTopicLinkCopied": "Skopiowano odnośnik do wątku", + "switchAccountButton": "Przełącz konto", + "themeSettingDark": "Ciemny", + "themeSettingLight": "Jasny", + "themeSettingSystem": "Systemowy", + "themeSettingTitle": "WYSTRÓJ", + "today": "Dzisiaj", + "topicValidationErrorMandatoryButEmpty": "Wątki są wymagane przez tę organizację.", + "topicValidationErrorTooLong": "Tytuł nie może być dłuższy niż 60 znaków.", + "topicsButtonTooltip": "Wątki", + "tryAnotherAccountButton": "Użyj innego konta", + "tryAnotherAccountMessage": "Twoje konto na {url} wymaga jeszcze chwili na załadowanie.", "turnOffInvisibleModeErrorTitle": "Problem z wyłączeniem trybu ukrycia. Spróbuj ponownie.", - "@turnOffInvisibleModeErrorTitle": { - "description": "Error title when turning off invisible mode failed." - } + "turnOnInvisibleModeErrorTitle": "Problem z włączeniem trybu ukrycia. Spróbuj ponownie.", + "twoPeopleTyping": "{typist} i {otherTypist} coś piszą…", + "unknownChannelName": "(nieznany kanał)", + "unknownUserName": "(nieznany użytkownik)", + "unpinnedSubscriptionsLabel": "Odpięte", + "updateStatusErrorTitle": "Błąd aktualizacji stanu. Spróbuj ponownie.", + "upgradeWelcomeDialogDismiss": "Zaczynajmy", + "upgradeWelcomeDialogLinkText": "Sprawdź blog pod kątem obwieszczenia!", + "upgradeWelcomeDialogMessage": "Napotkasz na znane rozwiązania, które upakowaliśmy w szybszy i elegancki pakiet.", + "upgradeWelcomeDialogTitle": "Witaj w nowej apce Zulip!", + "userRoleAdministrator": "Administrator", + "userRoleGuest": "Gość", + "userRoleMember": "Członek", + "userRoleModerator": "Moderator", + "userRoleOwner": "Właściciel", + "userRoleUnknown": "Nieznany", + "userStatusAtTheOffice": "W biurze", + "userStatusBusy": "Zajęty", + "userStatusCommuting": "W drodze", + "userStatusInAMeeting": "Na spotkaniu", + "userStatusOutSick": "Chorobowe", + "userStatusVacationing": "Na urlopie", + "userStatusWorkingRemotely": "Praca zdalna", + "wildcardMentionAll": "wszyscy", + "wildcardMentionAllDmDescription": "Powiadom zainteresowanych", + "wildcardMentionChannel": "kanał", + "wildcardMentionChannelDescription": "Powiadom w kanale", + "wildcardMentionEveryone": "każdy", + "wildcardMentionStream": "strumień", + "wildcardMentionStreamDescription": "Powiadom w strumieniu", + "wildcardMentionTopic": "wątek", + "wildcardMentionTopicDescription": "Powiadom w wątku", + "yesterday": "Wczoraj", + "zulipAppTitle": "Zulip" } diff --git a/assets/l10n/app_ru.arb b/assets/l10n/app_ru.arb index d1cd596e2b..b147a7f321 100644 --- a/assets/l10n/app_ru.arb +++ b/assets/l10n/app_ru.arb @@ -1,1228 +1,1412 @@ { - "aboutPageTitle": "О Zulip", - "@aboutPageTitle": { - "description": "Title for About Zulip page." - }, - "aboutPageAppVersion": "Версия приложения", "@aboutPageAppVersion": { "description": "Label for Zulip app version in About Zulip page" }, - "aboutPageOpenSourceLicenses": "Лицензии открытого исходного кода", "@aboutPageOpenSourceLicenses": { "description": "Item title in About Zulip page to navigate to Licenses page" }, - "aboutPageTapToView": "Нажмите для просмотра", "@aboutPageTapToView": { "description": "Item subtitle in About Zulip page to navigate to Licenses page" }, - "chooseAccountPageTitle": "Выберите учетную запись", - "@chooseAccountPageTitle": { - "description": "Title for the page to choose between Zulip accounts." + "@aboutPageTitle": { + "description": "Title for About Zulip page." }, - "chooseAccountPageLogOutButton": "Выход из системы", - "@chooseAccountPageLogOutButton": { - "description": "Label for the 'Log out' button for an account on the choose-account page" + "@actionSheetOptionCopyChannelLink": { + "description": "Label for copy channel link button on action sheet." }, - "logOutConfirmationDialogTitle": "Выйти из системы?", - "@logOutConfirmationDialogTitle": { - "description": "Title for a confirmation dialog for logging out." + "@actionSheetOptionCopyMessageLink": { + "description": "Label for copy message link button on action sheet." }, - "logOutConfirmationDialogMessage": "Чтобы использовать эту учетную запись в будущем, вам придется заново ввести URL-адрес вашей организации и информацию о вашей учетной записи.", - "@logOutConfirmationDialogMessage": { - "description": "Message for a confirmation dialog for logging out." + "@actionSheetOptionCopyMessageText": { + "description": "Label for copy message text button on action sheet." }, - "logOutConfirmationDialogConfirmButton": "Выйти", - "@logOutConfirmationDialogConfirmButton": { - "description": "Label for the 'Log out' button on a confirmation dialog for logging out." + "@actionSheetOptionCopyTopicLink": { + "description": "Label for copy topic link button in action sheet." }, - "chooseAccountButtonAddAnAccount": "Добавить учетную запись", - "@chooseAccountButtonAddAnAccount": { - "description": "Label for ChooseAccountPage button to add an account" + "@actionSheetOptionEditMessage": { + "description": "Label for the 'Edit message' button in the message action sheet." }, - "profileButtonSendDirectMessage": "Отправить личное сообщение", - "@profileButtonSendDirectMessage": { - "description": "Label for button in profile screen to navigate to DMs with the shown user." + "@actionSheetOptionFollowTopic": { + "description": "Label for following a topic on action sheet." }, - "permissionsNeededTitle": "Требуются разрешения", - "@permissionsNeededTitle": { - "description": "Title for dialog asking the user to grant additional permissions." + "@actionSheetOptionHideMutedMessage": { + "description": "Label for hide muted message again button on action sheet." }, - "permissionsNeededOpenSettings": "Открыть настройки", - "@permissionsNeededOpenSettings": { - "description": "Button label for permissions dialog button that opens the system settings screen." + "@actionSheetOptionListOfTopics": { + "description": "Label for navigating to a channel's topic-list page." }, - "permissionsDeniedCameraAccess": "Для загрузки изображения, пожалуйста, предоставьте Zulip дополнительные разрешения в настройках.", - "@permissionsDeniedCameraAccess": { - "description": "Message for dialog asking the user to grant permissions for camera access." + "@actionSheetOptionMarkAsUnread": { + "description": "Label for mark as unread button on action sheet." }, - "permissionsDeniedReadExternalStorage": "Для загрузки файлов, пожалуйста, предоставьте Zulip дополнительные разрешения в настройках.", - "@permissionsDeniedReadExternalStorage": { - "description": "Message for dialog asking the user to grant permissions for external storage read access." + "@actionSheetOptionMarkChannelAsRead": { + "description": "Label for marking a channel as read." }, - "actionSheetOptionCopyMessageText": "Скопировать текст сообщения", - "@actionSheetOptionCopyMessageText": { - "description": "Label for copy message text button on action sheet." + "@actionSheetOptionMarkTopicAsRead": { + "description": "Option to mark a specific topic as read in the action sheet." }, - "actionSheetOptionCopyMessageLink": "Скопировать ссылку на сообщение", - "@actionSheetOptionCopyMessageLink": { - "description": "Label for copy message link button on action sheet." + "@actionSheetOptionMuteTopic": { + "description": "Label for muting a topic on action sheet." }, - "actionSheetOptionMarkAsUnread": "Отметить как непрочитанные начиная отсюда", - "@actionSheetOptionMarkAsUnread": { - "description": "Label for mark as unread button on action sheet." + "@actionSheetOptionQuoteMessage": { + "description": "Label for the 'Quote message' button in the message action sheet." + }, + "@actionSheetOptionResolveTopic": { + "description": "Label for the 'Mark as resolved' button on the topic action sheet." + }, + "@actionSheetOptionSeeWhoReacted": { + "description": "Label for the 'See who reacted' button in the message action sheet." }, - "actionSheetOptionShare": "Поделиться", "@actionSheetOptionShare": { "description": "Label for share button on action sheet." }, - "actionSheetOptionStarMessage": "Отметить сообщение", "@actionSheetOptionStarMessage": { "description": "Label for star button on action sheet." }, - "actionSheetOptionUnstarMessage": "Снять отметку с сообщения", + "@actionSheetOptionSubscribe": { + "description": "Label in the channel action sheet for subscribing to the channel." + }, + "@actionSheetOptionUnfollowTopic": { + "description": "Label for unfollowing a topic on action sheet." + }, + "@actionSheetOptionUnmuteTopic": { + "description": "Label for unmuting a topic on action sheet." + }, + "@actionSheetOptionUnresolveTopic": { + "description": "Label for the 'Mark as unresolved' button on the topic action sheet." + }, "@actionSheetOptionUnstarMessage": { "description": "Label for unstar button on action sheet." }, - "errorWebAuthOperationalErrorTitle": "Что-то пошло не так", - "@errorWebAuthOperationalErrorTitle": { - "description": "Error title when third-party authentication has an operational error (not necessarily caused by invalid credentials)." + "@actionSheetOptionUnsubscribe": { + "description": "Label in the channel action sheet for unsubscribing from the channel." }, - "errorWebAuthOperationalError": "Произошла непредвиденная ошибка.", - "@errorWebAuthOperationalError": { - "description": "Error message when third-party authentication has an operational error (not necessarily caused by invalid credentials)." + "@appVersionUnknownPlaceholder": { + "description": "Placeholder to show in place of the app version when it is unknown." }, - "errorAccountLoggedInTitle": "Вход в учетную запись уже выполнен", - "@errorAccountLoggedInTitle": { - "description": "Error title on attempting to log into an account that's already logged in." + "@channelFeedButtonTooltip": { + "description": "Tooltip for button to navigate to a given channel's feed" }, - "errorAccountLoggedIn": "Учетная запись {email} на {server} уже присутствует.", - "@errorAccountLoggedIn": { - "description": "Error message on attempting to log into an account that's already logged in.", - "placeholders": { - "email": { - "type": "String", - "example": "user@example.com" - }, - "server": { - "type": "String", - "example": "https://example.com" - } - } + "@channelsEmptyPlaceholder": { + "description": "Centered text on the 'Channels' page saying that there is no content to show." }, - "errorCouldNotFetchMessageSource": "Не удалось извлечь источник сообщения.", - "@errorCouldNotFetchMessageSource": { - "description": "Error message when the source of a message could not be fetched." + "@channelsPageTitle": { + "description": "Title for the page with a list of subscribed channels." }, - "errorCopyingFailed": "Сбой копирования", - "@errorCopyingFailed": { - "description": "Error message when copying the text of a message to the user's system clipboard failed." + "@chooseAccountButtonAddAnAccount": { + "description": "Label for ChooseAccountPage button to add an account" }, - "errorFailedToUploadFileTitle": "Не удалось загрузить файл: {filename}", - "@errorFailedToUploadFileTitle": { - "description": "Error title when the specified file failed to upload.", - "placeholders": { - "filename": { - "type": "String", - "example": "file.txt" - } - } + "@chooseAccountPageLogOutButton": { + "description": "Label for the 'Log out' button for an account on the choose-account page" }, - "errorStarMessageFailedTitle": "Не удалось отметить сообщение", - "@errorStarMessageFailedTitle": { - "description": "Error title when starring a message failed." + "@chooseAccountPageTitle": { + "description": "Title for the page to choose between Zulip accounts." }, - "errorUnstarMessageFailedTitle": "Не удалось снять отметку с сообщения", - "@errorUnstarMessageFailedTitle": { - "description": "Error title when unstarring a message failed." + "@combinedFeedPageTitle": { + "description": "Page title for the 'Combined feed' message view." }, - "serverUrlValidationErrorUnsupportedScheme": "URL-адрес сервера должен начинаться с http:// или https://.", - "@serverUrlValidationErrorUnsupportedScheme": { - "description": "Error message when URL has an unsupported scheme." + "@composeBoxAttachFilesTooltip": { + "description": "Tooltip for compose box icon to attach a file to the message." }, - "starredMessagesPageTitle": "Отмеченные сообщения", - "@starredMessagesPageTitle": { - "description": "Page title for the 'Starred messages' message view." + "@composeBoxAttachFromCameraTooltip": { + "description": "Tooltip for compose box icon to attach an image from the camera to the message." }, - "errorLoginInvalidInputTitle": "Неверный ввод", - "@errorLoginInvalidInputTitle": { - "description": "Error title for login when input is invalid." + "@composeBoxAttachMediaTooltip": { + "description": "Tooltip for compose box icon to attach media to the message." }, - "tryAnotherAccountButton": "Попробовать другую учетную запись", - "@tryAnotherAccountButton": { - "description": "Label for loading screen button prompting user to try another account." + "@composeBoxBannerButtonCancel": { + "description": "Label text for the 'Cancel' button in the compose-box banner when you are editing a message." }, - "errorQuotationFailed": "Цитирование не удалось", - "@errorQuotationFailed": { - "description": "Error message when quoting a message failed." + "@composeBoxBannerButtonSave": { + "description": "Label text for the 'Save' button in the compose-box banner when you are editing a message." }, - "errorFilesTooLargeTitle": "Слишком большой размер {num, plural, =1{файла} other{файлов}}", - "@errorFilesTooLargeTitle": { - "description": "Error title when attached files are too large in size.", + "@composeBoxBannerLabelEditMessage": { + "description": "Label text for the compose-box banner when you are editing a message." + }, + "@composeBoxChannelContentHint": { + "description": "Hint text for content input when sending a message to a channel.", "placeholders": { - "num": { - "type": "int", - "example": "4" + "destination": { + "example": "#channel name > topic name", + "type": "String" } } }, - "composeBoxSelfDmContentHint": "Сделать заметку", - "@composeBoxSelfDmContentHint": { - "description": "Hint text for content input when sending a message to yourself." + "@composeBoxDmContentHint": { + "description": "Hint text for content input when sending a message to one other person.", + "placeholders": { + "user": { + "example": "channel name", + "type": "String" + } + } + }, + "@composeBoxEnterTopicOrSkipHintText": { + "description": "Hint text for topic input widget in compose box when topics are optional.", + "placeholders": { + "defaultTopicName": { + "example": "general chat", + "type": "String" + } + } + }, + "@composeBoxGenericContentHint": { + "description": "Hint text for content input when sending a message." }, - "composeBoxGroupDmContentHint": "Сообщение для группы", "@composeBoxGroupDmContentHint": { "description": "Hint text for content input when sending a message to a group." }, - "contentValidationErrorEmpty": "Нечего отправлять!", - "@contentValidationErrorEmpty": { - "description": "Content validation error message when the message is empty." + "@composeBoxLoadingMessage": { + "description": "Placeholder in compose box showing the quoted message is currently loading.", + "placeholders": { + "messageId": { + "example": "1234", + "type": "int" + } + } }, - "loginPageTitle": "Вход в систему", - "@loginPageTitle": { - "description": "Title for login page." + "@composeBoxSelfDmContentHint": { + "description": "Hint text for content input when sending a message to yourself." }, - "loginFormSubmitLabel": "Войти", - "@loginFormSubmitLabel": { - "description": "Button text to submit login credentials." + "@composeBoxSendTooltip": { + "description": "Tooltip for send button in compose box." }, - "loginMethodDivider": "ИЛИ", - "@loginMethodDivider": { - "description": "Text on the divider between the username/password form and the third-party login options. Uppercase (for languages with letter case)." + "@composeBoxTopicHintText": { + "description": "Hint text for topic input widget in compose box." }, - "signInWithFoo": "Войти с помощью {method}", - "@signInWithFoo": { - "description": "Button to use {method} to sign in to the app.", + "@composeBoxUploadingFilename": { + "description": "Placeholder in compose box showing the specified file is currently uploading.", "placeholders": { - "method": { - "type": "String", - "example": "Google" + "filename": { + "example": "file.txt", + "type": "String" } } }, - "loginAddAnAccountPageTitle": "Добавление учетной записи", - "@loginAddAnAccountPageTitle": { - "description": "Title for page to add a Zulip account." + "@contentValidationErrorEmpty": { + "description": "Content validation error message when the message is empty." }, - "loginServerUrlLabel": "URL вашего сервера Zulip", - "@loginServerUrlLabel": { - "description": "Label in login page for Zulip server URL entry." + "@contentValidationErrorQuoteAndReplyInProgress": { + "description": "Content validation error message when a quotation has not completed yet." }, - "loginHidePassword": "Скрыть пароль", - "@loginHidePassword": { - "description": "Icon label for button to hide password in input form." + "@contentValidationErrorTooLong": { + "description": "Content validation error message when the message is too long." }, - "loginEmailLabel": "Адрес почты", - "@loginEmailLabel": { - "description": "Label for input when an email is required to log in." + "@contentValidationErrorUploadInProgress": { + "description": "Content validation error message when attachments have not finished uploading." }, - "loginErrorMissingEmail": "Пожалуйста, введите ваш адрес электронной почты.", - "@loginErrorMissingEmail": { - "description": "Error message when an empty email was provided." + "@dialogCancel": { + "description": "Button label in dialogs to cancel." }, - "topicValidationErrorMandatoryButEmpty": "Темы обязательны в этой организации.", - "@topicValidationErrorMandatoryButEmpty": { - "description": "Topic validation error when topic is required but was empty." + "@dialogClose": { + "description": "Button label in dialogs to close." }, - "errorNetworkRequestFailed": "Сбой сетевого запроса", - "@errorNetworkRequestFailed": { - "description": "Error message when a network request fails." + "@dialogContinue": { + "description": "Button label in dialogs to proceed." }, - "errorMalformedResponseWithCause": "Сервер вернул некорректный ответ; HTTP-статус {httpStatus}; {details}", - "@errorMalformedResponseWithCause": { - "description": "Error message when an API call fails because we could not parse the response, with details of the failure.", - "placeholders": { - "httpStatus": { - "type": "int", - "example": "200" - }, - "details": { - "type": "String", - "example": "type 'Null' is not a subtype of type 'String' in type cast" - } - } + "@discardDraftConfirmationDialogConfirmButton": { + "description": "Label for the 'Discard' button on a confirmation dialog for discarding message text that was typed into the compose box." }, - "spoilerDefaultHeaderText": "Спойлер", - "@spoilerDefaultHeaderText": { - "description": "The default header text in a spoiler block ( https://zulip.com/help/spoilers )." + "@discardDraftConfirmationDialogTitle": { + "description": "Title for a confirmation dialog for discarding message text that was typed into the compose box." }, - "markAllAsReadLabel": "Отметить все сообщения как прочитанные", - "@markAllAsReadLabel": { - "description": "Button text to mark messages as read." + "@discardDraftForEditConfirmationDialogMessage": { + "description": "Message for a confirmation dialog for discarding message text that was typed into the compose box." }, - "markAsReadComplete": "Отметка прочтения установлена для {num, plural, =1{1 сообщения} other{{num} шт. сообщений}}.", - "@markAsReadComplete": { - "description": "Message when marking messages as read has completed.", + "@discardDraftForOutboxConfirmationDialogMessage": { + "description": "Message for a confirmation dialog when restoring an outbox message, for discarding message text that was typed into the compose box." + }, + "@dmsWithOthersPageTitle": { + "description": "Message list page title for a DM group with others.", "placeholders": { - "num": { - "type": "int", - "example": "4" + "others": { + "example": "Alice, Bob", + "type": "String" } } }, - "markAsReadInProgress": "Помечаем сообщения как прочитанные…", - "@markAsReadInProgress": { - "description": "Progress message when marking messages as read." - }, - "errorMarkAsReadFailedTitle": "Не удалось установить отметку прочтения", - "@errorMarkAsReadFailedTitle": { - "description": "Error title when mark as read action failed." - }, - "userRoleOwner": "Владелец", - "@userRoleOwner": { - "description": "Label for UserRole.owner" - }, - "userRoleAdministrator": "Администратор", - "@userRoleAdministrator": { - "description": "Label for UserRole.administrator" - }, - "userRoleModerator": "Модератор", - "@userRoleModerator": { - "description": "Label for UserRole.moderator" + "@dmsWithYourselfPageTitle": { + "description": "Message list page title for a DM group that only includes yourself." }, - "errorNotificationOpenTitle": "Не удалось открыть оповещения", - "@errorNotificationOpenTitle": { - "description": "Error title when notification opening fails" + "@editAlreadyInProgressMessage": { + "description": "Error message when a message edit cannot be saved because there is another edit already in progress." }, - "switchAccountButton": "Сменить учетную запись", - "@switchAccountButton": { - "description": "Label for main-menu button leading to the choose-account page." + "@editAlreadyInProgressTitle": { + "description": "Error title when a message edit cannot be saved because there is another edit already in progress." }, - "tryAnotherAccountMessage": "Ваша учетная запись на {url} загружается медленно.", - "@tryAnotherAccountMessage": { - "description": "Message that appears on the loading screen after waiting for some time.", - "url": { - "type": "String", - "example": "http://chat.example.com/" - } + "@emojiPickerSearchEmoji": { + "description": "Hint text for the emoji picker search text field." }, - "actionSheetOptionMuteTopic": "Отключить тему", - "@actionSheetOptionMuteTopic": { - "description": "Label for muting a topic on action sheet." + "@emojiReactionsMore": { + "description": "Label for a button opening the emoji picker." }, - "actionSheetOptionUnmuteTopic": "Включить тему", - "@actionSheetOptionUnmuteTopic": { - "description": "Label for unmuting a topic on action sheet." + "@emptyMessageList": { + "description": "Placeholder for some message-list pages when there are no messages." }, - "errorLoginFailedTitle": "Не удалось войти в систему", - "@errorLoginFailedTitle": { - "description": "Error title for login when signing into a Zulip server fails." + "@emptyMessageListSearch": { + "description": "Placeholder for the 'Search' page when there are no messages." }, - "errorLoginCouldNotConnect": "Не удалось подключиться к серверу:\n{url}", - "@errorLoginCouldNotConnect": { - "description": "Error message when the app could not connect to the server.", + "@errorAccountLoggedIn": { + "description": "Error message on attempting to log into an account that's already logged in.", "placeholders": { - "url": { - "type": "String", - "example": "http://example.com/" + "email": { + "example": "user@example.com", + "type": "String" + }, + "server": { + "example": "https://example.com", + "type": "String" } } }, - "errorMessageDoesNotSeemToExist": "Это сообщение, похоже, отсутствует.", - "@errorMessageDoesNotSeemToExist": { - "description": "Error message when loading a message that does not exist." + "@errorAccountLoggedInTitle": { + "description": "Error title on attempting to log into an account that's already logged in." }, - "errorServerMessage": "Ответ сервера:\n\n{message}", - "@errorServerMessage": { - "description": "Error message that quotes an error from the server.", - "placeholders": { - "message": { - "type": "String", - "example": "Invalid format" - } - } + "@errorBannerCannotPostInChannelLabel": { + "description": "Error-banner text replacing the compose box when you do not have permission to send a message to the channel." }, - "errorConnectingToServerShort": "Ошибка подключения к Zulip. Повторяем попытку…", - "@errorConnectingToServerShort": { - "description": "Short error message for a generic unknown error connecting to the server." + "@errorBannerDeactivatedDmLabel": { + "description": "Label text for error banner when sending a message to one or multiple deactivated users." }, - "errorConnectingToServerDetails": "Ошибка подключения к Zulip на {serverUrl}. Повторим попытку:\n\n{error}", "@errorConnectingToServerDetails": { "description": "Dialog error message for a generic unknown error connecting to the server with details.", "placeholders": { - "serverUrl": { - "type": "String", - "example": "http://example.com/" - }, "error": { - "type": "String", - "example": "Invalid format" + "example": "Invalid format", + "type": "String" + }, + "serverUrl": { + "example": "http://example.com/", + "type": "String" } } }, - "errorMuteTopicFailed": "Не удалось отключить тему", - "@errorMuteTopicFailed": { - "description": "Error message when muting a topic failed." - }, - "errorUnfollowTopicFailed": "Не удалось прекратить отслеживать тему", - "@errorUnfollowTopicFailed": { - "description": "Error message when unfollowing a topic failed." - }, - "composeBoxGenericContentHint": "Ввести сообщение", - "@composeBoxGenericContentHint": { - "description": "Hint text for content input when sending a message." + "@errorConnectingToServerShort": { + "description": "Short error message for a generic unknown error connecting to the server." }, - "composeBoxSendTooltip": "Отправить", - "@composeBoxSendTooltip": { - "description": "Tooltip for send button in compose box." + "@errorCopyingFailed": { + "description": "Error message when copying the text of a message to the user's system clipboard failed." }, - "composeBoxTopicHintText": "Тема", - "@composeBoxTopicHintText": { - "description": "Hint text for topic input widget in compose box." + "@errorCouldNotConnectTitle": { + "description": "Error title when the app could not connect to the server." }, - "messageListGroupYouWithYourself": "Сообщения с собой", - "@messageListGroupYouWithYourself": { - "description": "Message list recipient header for a DM group that only includes yourself." + "@errorCouldNotEditMessageTitle": { + "description": "Error title when an exception prevented us from opening the compose box for editing a message." }, - "contentValidationErrorTooLong": "Длина сообщения не должна превышать 10000 символов.", - "@contentValidationErrorTooLong": { - "description": "Content validation error message when the message is too long." + "@errorCouldNotFetchMessageSource": { + "description": "Error message when the source of a message could not be fetched." }, - "errorDialogTitle": "Ошибка", - "@errorDialogTitle": { - "description": "Generic title for error dialog." + "@errorCouldNotOpenLink": { + "description": "Error message when opening a link failed.", + "placeholders": { + "url": { + "example": "https://chat.example.com", + "type": "String" + } + } }, - "serverUrlValidationErrorNoUseEmail": "Пожалуйста, введите URL-адрес сервера, а не свой email.", - "@serverUrlValidationErrorNoUseEmail": { - "description": "Error message when URL looks like an email" + "@errorCouldNotOpenLinkTitle": { + "description": "Error title when opening a link failed." }, - "errorVideoPlayerFailed": "Не удается воспроизвести видео.", - "@errorVideoPlayerFailed": { - "description": "Error message when a video fails to play." + "@errorCouldNotShowUserProfile": { + "description": "Message that appears on the user profile page when the profile cannot be shown." }, - "inboxPageTitle": "Входящие", - "@inboxPageTitle": { - "description": "Title for the page with unreads." + "@errorDialogContinue": { + "description": "Button label in error dialogs to acknowledge the error and close the dialog." }, - "dialogClose": "Закрыть", - "@dialogClose": { - "description": "Button label in dialogs to close." + "@errorDialogLearnMore": { + "description": "Button label in error dialogs to open a web page with more information." }, - "snackBarDetails": "Подробности", - "@snackBarDetails": { - "description": "Button label for snack bar button that opens a dialog with more details." + "@errorDialogTitle": { + "description": "Generic title for error dialog." }, - "errorMalformedResponse": "Сервер вернул некорректный ответ; HTTP-статус {httpStatus}", - "@errorMalformedResponse": { - "description": "Error message when an API call fails because we could not parse the response.", + "@errorFailedToUploadFileTitle": { + "description": "Error title when the specified file failed to upload.", "placeholders": { - "httpStatus": { - "type": "int", - "example": "200" + "filename": { + "example": "file.txt", + "type": "String" } } }, - "today": "Сегодня", - "@today": { - "description": "Term to use to reference the current day." + "@errorFilesTooLarge": { + "description": "Error message when attached files are too large in size.", + "placeholders": { + "listMessage": { + "example": "foo.txt\nbar.txt", + "type": "String" + }, + "maxFileUploadSizeMib": { + "example": "15", + "type": "int" + }, + "num": { + "example": "2", + "type": "int" + } + } }, - "userRoleUnknown": "Неизвестно", - "@userRoleUnknown": { - "description": "Label for UserRole.unknown" + "@errorFilesTooLargeTitle": { + "description": "Error title when attached files are too large in size.", + "placeholders": { + "num": { + "example": "4", + "type": "int" + } + } }, - "combinedFeedPageTitle": "Объединенная лента", - "@combinedFeedPageTitle": { - "description": "Page title for the 'Combined feed' message view." + "@errorFollowTopicFailed": { + "description": "Error message when following a topic failed." }, - "twoPeopleTyping": "{typist} и {otherTypist} набирают сообщения…", - "@twoPeopleTyping": { - "description": "Text to display when there are two users typing.", + "@errorHandlingEventDetails": { + "description": "Error details on failing to handle a Zulip server event.", "placeholders": { - "typist": { - "type": "String", - "example": "Alice" + "error": { + "example": "Unexpected null value", + "type": "String" }, - "otherTypist": { - "type": "String", - "example": "Bob" + "event": { + "example": "UpdateMessageEvent(id: 123, messageIds: [2345, 3456], newTopic: 'dinner')", + "type": "String" + }, + "serverUrl": { + "example": "https://chat.example.com", + "type": "String" } } }, - "manyPeopleTyping": "Несколько человек набирают сообщения…", - "@manyPeopleTyping": { - "description": "Text to display when there are multiple users typing." - }, - "messageIsEditedLabel": "ИЗМЕНЕНО", - "@messageIsEditedLabel": { - "description": "Label for an edited message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + "@errorHandlingEventTitle": { + "description": "Error title on failing to handle a Zulip server event." }, - "errorReactionAddingFailedTitle": "Не удалось добавить реакцию", - "@errorReactionAddingFailedTitle": { - "description": "Error title when adding a message reaction fails" + "@errorInvalidApiKeyMessage": { + "description": "Error message in the dialog for invalid API key.", + "placeholders": { + "url": { + "example": "http://chat.example.com/", + "type": "String" + } + } }, - "errorReactionRemovingFailedTitle": "Не удалось удалить реакцию", - "@errorReactionRemovingFailedTitle": { - "description": "Error title when removing a message reaction fails" + "@errorInvalidResponse": { + "description": "Error message when an API call returned an invalid response." }, - "emojiReactionsMore": "еще", - "@emojiReactionsMore": { - "description": "Label for a button opening the emoji picker." - }, - "emojiPickerSearchEmoji": "Поиск эмодзи", - "@emojiPickerSearchEmoji": { - "description": "Hint text for the emoji picker search text field." - }, - "errorMarkAsUnreadFailedTitle": "Не удалось снять отметку прочтения", - "@errorMarkAsUnreadFailedTitle": { - "description": "Error title when mark as unread action failed." + "@errorLoginCouldNotConnect": { + "description": "Error message when the app could not connect to the server.", + "placeholders": { + "url": { + "example": "http://example.com/", + "type": "String" + } + } }, - "actionSheetOptionFollowTopic": "Отслеживать тему", - "@actionSheetOptionFollowTopic": { - "description": "Label for following a topic on action sheet." + "@errorLoginFailedTitle": { + "description": "Error title for login when signing into a Zulip server fails." }, - "actionSheetOptionUnfollowTopic": "Не отслеживать тему", - "@actionSheetOptionUnfollowTopic": { - "description": "Label for unfollowing a topic on action sheet." + "@errorLoginInvalidInputTitle": { + "description": "Error title for login when input is invalid." }, - "errorFilesTooLarge": "Размер {num, plural, =1{файла} other{{num} файлов}} превышает предел для сервера {maxFileUploadSizeMib} МиБ, загрузка невозможна:\n\n{listMessage}", - "@errorFilesTooLarge": { - "description": "Error message when attached files are too large in size.", + "@errorMalformedResponse": { + "description": "Error message when an API call fails because we could not parse the response.", "placeholders": { - "num": { - "type": "int", - "example": "2" - }, - "maxFileUploadSizeMib": { - "type": "int", - "example": "15" - }, - "listMessage": { - "type": "String", - "example": "foo.txt\nbar.txt" + "httpStatus": { + "example": "200", + "type": "int" } } }, - "errorHandlingEventDetails": "Ошибка обработки события Zulip от {serverUrl}; повторим попытку.\n\nОшибка: {error}\n\nСобытие: {event}", - "@errorHandlingEventDetails": { - "description": "Error details on failing to handle a Zulip server event.", + "@errorMalformedResponseWithCause": { + "description": "Error message when an API call fails because we could not parse the response, with details of the failure.", "placeholders": { - "serverUrl": { - "type": "String", - "example": "https://chat.example.com" - }, - "error": { - "type": "String", - "example": "Unexpected null value" + "details": { + "example": "type 'Null' is not a subtype of type 'String' in type cast", + "type": "String" }, - "event": { - "type": "String", - "example": "UpdateMessageEvent(id: 123, messageIds: [2345, 3456], newTopic: 'dinner')" + "httpStatus": { + "example": "200", + "type": "int" } } }, - "errorHandlingEventTitle": "Ошибка обработки события Zulip. Повторная попытка соединения…", - "@errorHandlingEventTitle": { - "description": "Error title on failing to handle a Zulip server event." + "@errorMarkAsReadFailedTitle": { + "description": "Error title when mark as read action failed." }, - "successMessageTextCopied": "Текст сообщения скопирован", - "@successMessageTextCopied": { - "description": "Message when content of a message was copied to the user's system clipboard." + "@errorMarkAsUnreadFailedTitle": { + "description": "Error title when mark as unread action failed." }, - "errorInvalidResponse": "Сервер отправил недопустимый ответ.", - "@errorInvalidResponse": { - "description": "Error message when an API call returned an invalid response." + "@errorMessageDoesNotSeemToExist": { + "description": "Error message when loading a message that does not exist." }, - "successMessageLinkCopied": "Ссылка на сообщение скопирована", - "@successMessageLinkCopied": { - "description": "Message when link of a message was copied to the user's system clipboard." + "@errorMessageEditNotSaved": { + "description": "Error message for compose box when a message edit could not be saved." }, - "contentValidationErrorQuoteAndReplyInProgress": "Пожалуйста, дождитесь завершения цитирования.", - "@contentValidationErrorQuoteAndReplyInProgress": { - "description": "Content validation error message when a quotation has not completed yet." + "@errorMessageNotSent": { + "description": "Error message for compose box when a message could not be sent." }, - "unknownUserName": "(неизвестный пользователь)", - "@unknownUserName": { - "description": "Name placeholder to use for a user when we don't know their name." + "@errorMuteTopicFailed": { + "description": "Error message when muting a topic failed." }, - "errorDialogContinue": "OK", - "@errorDialogContinue": { - "description": "Button label in error dialogs to acknowledge the error and close the dialog." + "@errorNetworkRequestFailed": { + "description": "Error message when a network request fails." }, - "errorUnmuteTopicFailed": "Не удалось включить тему", - "@errorUnmuteTopicFailed": { - "description": "Error message when unmuting a topic failed." + "@errorNotificationOpenAccountNotFound": { + "description": "Error message when the account associated with the notification could not be found" }, - "errorFollowTopicFailed": "Не удалось начать отслеживать тему", - "@errorFollowTopicFailed": { - "description": "Error message when following a topic failed." + "@errorNotificationOpenTitle": { + "description": "Error title when notification opening fails" }, - "dialogContinue": "Продолжить", - "@dialogContinue": { - "description": "Button label in dialogs to proceed." + "@errorQuotationFailed": { + "description": "Error message when quoting a message failed." }, - "composeBoxUploadingFilename": "Загрузка {filename}…", - "@composeBoxUploadingFilename": { - "description": "Placeholder in compose box showing the specified file is currently uploading.", + "@errorReactionAddingFailedTitle": { + "description": "Error title when adding a message reaction fails" + }, + "@errorReactionRemovingFailedTitle": { + "description": "Error title when removing a message reaction fails" + }, + "@errorRequestFailed": { + "description": "Error message when an API call fails.", "placeholders": { - "filename": { - "type": "String", - "example": "file.txt" + "httpStatus": { + "example": "500", + "type": "int" } } }, - "messageListGroupYouAndOthers": "Вы и {others}", - "@messageListGroupYouAndOthers": { - "description": "Message list recipient header for a DM group with others.", + "@errorResolveTopicFailedTitle": { + "description": "Error title when marking a topic as resolved failed." + }, + "@errorServerMessage": { + "description": "Error message that quotes an error from the server.", "placeholders": { - "others": { - "type": "String", - "example": "Alice, Bob" + "message": { + "example": "Invalid format", + "type": "String" } } }, - "markAsUnreadComplete": "Отметка прочтения снята для {num, plural, =1{1 сообщения} other{{num} шт. сообщений}}.", - "@markAsUnreadComplete": { - "description": "Message when marking messages as unread has completed.", + "@errorServerVersionUnsupportedMessage": { + "description": "Error message in the dialog for when the Zulip Server version is unsupported.", "placeholders": { - "num": { - "type": "int", - "example": "4" + "minSupportedZulipVersion": { + "example": "4.0", + "type": "String" + }, + "url": { + "example": "http://chat.example.com/", + "type": "String" + }, + "zulipVersion": { + "example": "3.2", + "type": "String" } } }, - "markAsUnreadInProgress": "Помечаем сообщения как непрочитанные…", - "@markAsUnreadInProgress": { - "description": "Progress message when marking messages as unread." - }, - "channelsPageTitle": "Каналы", - "@channelsPageTitle": { - "description": "Title for the page with a list of subscribed channels." + "@errorSharingFailed": { + "description": "Error message when sharing a message failed." }, - "pollWidgetQuestionMissing": "Нет вопроса.", - "@pollWidgetQuestionMissing": { - "description": "Text to display for a poll when the question is missing" + "@errorStarMessageFailedTitle": { + "description": "Error title when starring a message failed." }, - "userRoleGuest": "Гость", - "@userRoleGuest": { - "description": "Label for UserRole.guest" + "@errorUnfollowTopicFailed": { + "description": "Error message when unfollowing a topic failed." }, - "channelFeedButtonTooltip": "Лента канала", - "@channelFeedButtonTooltip": { - "description": "Tooltip for button to navigate to a given channel's feed" + "@errorUnmuteTopicFailed": { + "description": "Error message when unmuting a topic failed." }, - "messageIsMovedLabel": "ПЕРЕМЕЩЕНО", - "@messageIsMovedLabel": { - "description": "Label for a moved message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + "@errorUnresolveTopicFailedTitle": { + "description": "Error title when marking a topic as unresolved failed." }, - "onePersonTyping": "{typist} набирает сообщение…", - "@onePersonTyping": { - "description": "Text to display when there is one user typing.", - "placeholders": { - "typist": { - "type": "String", - "example": "Alice" - } - } + "@errorUnstarMessageFailedTitle": { + "description": "Error title when unstarring a message failed." }, - "contentValidationErrorUploadInProgress": "Пожалуйста, дождитесь завершения загрузки.", - "@contentValidationErrorUploadInProgress": { - "description": "Content validation error message when attachments have not finished uploading." + "@errorVideoPlayerFailed": { + "description": "Error message when a video fails to play." }, - "dialogCancel": "Отмена", - "@dialogCancel": { - "description": "Button label in dialogs to cancel." + "@errorWebAuthOperationalError": { + "description": "Error message when third-party authentication has an operational error (not necessarily caused by invalid credentials)." }, - "lightboxCopyLinkTooltip": "Скопировать ссылку", - "@lightboxCopyLinkTooltip": { - "description": "Tooltip in lightbox for the copy link action." + "@errorWebAuthOperationalErrorTitle": { + "description": "Error title when third-party authentication has an operational error (not necessarily caused by invalid credentials)." }, - "recentDmConversationsPageTitle": "Личные сообщения", - "@recentDmConversationsPageTitle": { - "description": "Title for the page with a list of DM conversations." + "@experimentalFeatureSettingsPageTitle": { + "description": "Title of settings page for experimental, in-development features" }, - "mainMenuMyProfile": "Мой профиль", - "@mainMenuMyProfile": { - "description": "Label for main-menu button leading to the user's own profile." + "@experimentalFeatureSettingsWarning": { + "description": "Warning text on settings page for experimental, in-development features" }, - "errorRequestFailed": "Сбой сетевого запроса: HTTP-статус {httpStatus}", - "@errorRequestFailed": { - "description": "Error message when an API call fails.", + "@filenameAndSizeInMiB": { + "description": "The name of a file, and its size in mebibytes.", "placeholders": { - "httpStatus": { - "type": "int", - "example": "500" + "filename": { + "example": "foo.txt", + "type": "String" + }, + "size": { + "example": "20.2", + "type": "String" } } }, - "userRoleMember": "Участник", - "@userRoleMember": { - "description": "Label for UserRole.member" + "@inboxEmptyPlaceholder": { + "description": "Centered text on the 'Inbox' page saying that there is no content to show." }, - "yesterday": "Вчера", - "@yesterday": { - "description": "Term to use to reference the previous day." + "@inboxPageTitle": { + "description": "Title for the page with unreads." }, - "errorSharingFailed": "Не удалось поделиться", - "@errorSharingFailed": { - "description": "Error message when sharing a message failed." + "@initialAnchorSettingDescription": { + "description": "Description of setting controlling initial anchor of message list." }, - "successLinkCopied": "Ссылка скопирована", - "@successLinkCopied": { - "description": "Success message after copy link action completed." + "@initialAnchorSettingFirstUnreadAlways": { + "description": "Label for a value of setting controlling initial anchor of message list." }, - "composeBoxAttachFilesTooltip": "Прикрепить файлы", - "@composeBoxAttachFilesTooltip": { - "description": "Tooltip for compose box icon to attach a file to the message." + "@initialAnchorSettingFirstUnreadConversations": { + "description": "Label for a value of setting controlling initial anchor of message list." }, - "errorBannerDeactivatedDmLabel": "Нельзя отправить сообщение отключенным пользователям.", - "@errorBannerDeactivatedDmLabel": { - "description": "Label text for error banner when sending a message to one or multiple deactivated users." + "@initialAnchorSettingNewestAlways": { + "description": "Label for a value of setting controlling initial anchor of message list." }, - "errorBannerCannotPostInChannelLabel": "У вас нет права писать в этом канале.", - "@errorBannerCannotPostInChannelLabel": { - "description": "Error-banner text replacing the compose box when you do not have permission to send a message to the channel." + "@initialAnchorSettingTitle": { + "description": "Title of setting controlling initial anchor of message list." }, - "composeBoxAttachFromCameraTooltip": "Сделать снимок", - "@composeBoxAttachFromCameraTooltip": { - "description": "Tooltip for compose box icon to attach an image from the camera to the message." + "@invisibleMode": { + "description": "Label for the 'Invisible mode' switch on the profile page." }, - "composeBoxAttachMediaTooltip": "Прикрепить изображения или видео", - "@composeBoxAttachMediaTooltip": { - "description": "Tooltip for compose box icon to attach media to the message." + "@lightboxCopyLinkTooltip": { + "description": "Tooltip in lightbox for the copy link action." }, - "composeBoxDmContentHint": "Сообщение для @{user}", - "@composeBoxDmContentHint": { - "description": "Hint text for content input when sending a message to one other person.", - "placeholders": { - "user": { - "type": "String", - "example": "channel name" - } - } + "@lightboxVideoCurrentPosition": { + "description": "The current playback position of the video playing in the lightbox." + }, + "@lightboxVideoDuration": { + "description": "The total duration of the video playing in the lightbox." + }, + "@logOutConfirmationDialogConfirmButton": { + "description": "Label for the 'Log out' button on a confirmation dialog for logging out." + }, + "@logOutConfirmationDialogMessage": { + "description": "Message for a confirmation dialog for logging out." + }, + "@logOutConfirmationDialogTitle": { + "description": "Title for a confirmation dialog for logging out." + }, + "@loginAddAnAccountPageTitle": { + "description": "Title for page to add a Zulip account." + }, + "@loginEmailLabel": { + "description": "Label for input when an email is required to log in." + }, + "@loginErrorMissingEmail": { + "description": "Error message when an empty email was provided." + }, + "@loginErrorMissingPassword": { + "description": "Error message when an empty password was provided." }, - "loginErrorMissingUsername": "Пожалуйста, введите ваше имя пользователя.", "@loginErrorMissingUsername": { "description": "Error message when an empty username was provided." }, - "loginPasswordLabel": "Пароль", + "@loginFormSubmitLabel": { + "description": "Button text to submit login credentials." + }, + "@loginHidePassword": { + "description": "Icon label for button to hide password in input form." + }, + "@loginMethodDivider": { + "description": "Text on the divider between the username/password form and the third-party login options. Uppercase (for languages with letter case)." + }, + "@loginPageTitle": { + "description": "Title for login page." + }, "@loginPasswordLabel": { "description": "Label for password input field." }, - "loginErrorMissingPassword": "Пожалуйста, введите пароль.", - "@loginErrorMissingPassword": { - "description": "Error message when an empty password was provided." + "@loginServerUrlLabel": { + "description": "Label in login page for Zulip server URL entry." }, - "loginUsernameLabel": "Имя пользователя", "@loginUsernameLabel": { "description": "Label for input when a username is required to log in." }, - "topicValidationErrorTooLong": "Длина темы не должна превышать 60 символов.", - "@topicValidationErrorTooLong": { - "description": "Topic validation error when topic is too long." + "@mainMenuMyProfile": { + "description": "Label for main-menu button leading to the user's own profile." }, - "serverUrlValidationErrorEmpty": "Пожалуйста, введите URL-адрес.", - "@serverUrlValidationErrorEmpty": { - "description": "Error message when URL is empty" + "@manyPeopleTyping": { + "description": "Text to display when there are multiple users typing." }, - "serverUrlValidationErrorInvalidUrl": "Пожалуйста, введите корректный URL-адрес.", - "@serverUrlValidationErrorInvalidUrl": { - "description": "Error message when URL is not in a valid format." + "@markAllAsReadLabel": { + "description": "Button text to mark messages as read." }, - "mentionsPageTitle": "Упоминания", - "@mentionsPageTitle": { - "description": "Page title for the 'Mentions' message view." + "@markAsReadComplete": { + "description": "Message when marking messages as read has completed.", + "placeholders": { + "num": { + "example": "4", + "type": "int" + } + } }, - "notifGroupDmConversationLabel": "{senderFullName} вам и еще {numOthers, plural, =1{1 чел.} other{{numOthers} чел.}}", - "@notifGroupDmConversationLabel": { - "description": "Label for a group DM conversation notification.", + "@markAsReadInProgress": { + "description": "Progress message when marking messages as read." + }, + "@markAsUnreadComplete": { + "description": "Message when marking messages as unread has completed.", "placeholders": { - "senderFullName": { - "type": "String", - "example": "Alice" - }, - "numOthers": { - "type": "int", - "example": "4" + "num": { + "example": "4", + "type": "int" } } }, - "notifSelfUser": "Вы", - "@notifSelfUser": { - "description": "Display name for the user themself, to show after replying in an Android notification" + "@markAsUnreadInProgress": { + "description": "Progress message when marking messages as unread." }, - "pollWidgetOptionsMissing": "В опросе пока нет вариантов ответа.", - "@pollWidgetOptionsMissing": { - "description": "Text to display for a poll when it has no options" + "@markReadOnScrollSettingAlways": { + "description": "Label for a value of setting controlling which message-list views should mark read on scroll." }, - "errorMessageNotSent": "Сообщение не отправлено", - "@errorMessageNotSent": { - "description": "Error message for compose box when a message could not be sent." + "@markReadOnScrollSettingConversations": { + "description": "Label for a value of setting controlling which message-list views should mark read on scroll." }, - "openLinksWithInAppBrowser": "Открывать ссылки внутри приложения", - "@openLinksWithInAppBrowser": { - "description": "Label for toggling setting to open links with in-app browser" + "@markReadOnScrollSettingConversationsDescription": { + "description": "Description for a value of setting controlling which message-list views should mark read on scroll." }, - "errorCouldNotShowUserProfile": "Не удалось показать профиль пользователя.", - "@errorCouldNotShowUserProfile": { - "description": "Message that appears on the user profile page when the profile cannot be shown." + "@markReadOnScrollSettingDescription": { + "description": "Description of setting controlling which message-list views should mark read on scroll." }, - "errorCouldNotOpenLinkTitle": "Не удалось открыть ссылку", - "@errorCouldNotOpenLinkTitle": { - "description": "Error title when opening a link failed." + "@markReadOnScrollSettingNever": { + "description": "Label for a value of setting controlling which message-list views should mark read on scroll." }, - "composeBoxLoadingMessage": "(загрузка сообщения {messageId})", - "@composeBoxLoadingMessage": { - "description": "Placeholder in compose box showing the quoted message is currently loading.", - "placeholders": { - "messageId": { - "type": "int", - "example": "1234" - } - } + "@markReadOnScrollSettingTitle": { + "description": "Title of setting controlling which message-list views should mark read on scroll." }, - "dmsWithYourselfPageTitle": "ЛС с собой", - "@dmsWithYourselfPageTitle": { - "description": "Message list page title for a DM group that only includes yourself." + "@mentionsPageTitle": { + "description": "Page title for the 'Mentions' message view." }, - "dmsWithOthersPageTitle": "ЛС с {others}", - "@dmsWithOthersPageTitle": { - "description": "Message list page title for a DM group with others.", + "@messageIsEditedLabel": { + "description": "Label for an edited message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + }, + "@messageIsMovedLabel": { + "description": "Label for a moved message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + }, + "@messageListGroupYouAndOthers": { + "description": "Message list recipient header for a DM group with others.", "placeholders": { "others": { - "type": "String", - "example": "Alice, Bob" + "example": "Alice, Bob", + "type": "String" } } }, - "lightboxVideoDuration": "Длительность видео", - "@lightboxVideoDuration": { - "description": "The total duration of the video playing in the lightbox." + "@messageListGroupYouWithYourself": { + "description": "Message list recipient header for a DM group that only includes yourself." }, - "pinnedSubscriptionsLabel": "Закреплены", - "@pinnedSubscriptionsLabel": { - "description": "Label for the list of pinned subscribed channels." + "@messageNotSentLabel": { + "description": "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.)" }, - "unpinnedSubscriptionsLabel": "Откреплены", - "@unpinnedSubscriptionsLabel": { - "description": "Label for the list of unpinned subscribed channels." + "@mutedUser": { + "description": "Name for a muted user to display all over the app." }, - "wildcardMentionAll": "все", - "@wildcardMentionAll": { - "description": "Text for \"@all\" wildcard-mention autocomplete option when writing a channel or DM message." + "@newDmFabButtonLabel": { + "description": "Label for the floating action button (FAB) that opens the new DM sheet." }, - "noEarlierMessages": "Предшествующих сообщений нет", - "@noEarlierMessages": { - "description": "Text to show at the start of a message list if there are no earlier messages." + "@newDmSheetComposeButtonLabel": { + "description": "Label for the compose button in the new DM sheet that starts composing a message to the selected users." }, - "actionSheetOptionMarkChannelAsRead": "Отметить канал как прочитанный", - "@actionSheetOptionMarkChannelAsRead": { - "description": "Label for marking a channel as read." + "@newDmSheetNoUsersFound": { + "description": "Message shown in the new DM sheet when no users match the search." }, - "actionSheetOptionMarkTopicAsRead": "Отметить тему как прочитанную", - "@actionSheetOptionMarkTopicAsRead": { - "description": "Option to mark a specific topic as read in the action sheet." + "@newDmSheetScreenTitle": { + "description": "Title displayed at the top of the new DM screen." }, - "reactedEmojiSelfUser": "Вы", - "@reactedEmojiSelfUser": { - "description": "Display name for the user themself, to show on an emoji reaction added by the user." + "@newDmSheetSearchHintEmpty": { + "description": "Hint text for the search bar when no users are selected" }, - "wildcardMentionEveryone": "каждый", - "@wildcardMentionEveryone": { - "description": "Text for \"@everyone\" wildcard-mention autocomplete option when writing a channel or DM message." + "@newDmSheetSearchHintSomeSelected": { + "description": "Hint text for the search bar when at least one user is selected" }, - "zulipAppTitle": "Zulip", - "@zulipAppTitle": { - "description": "The name of Zulip. This should be either 'Zulip' or a transliteration." + "@noEarlierMessages": { + "description": "Text to show at the start of a message list if there are no earlier messages." }, - "actionSheetOptionResolveTopic": "Поставить отметку \"решено\"", - "@actionSheetOptionResolveTopic": { - "description": "Label for the 'Mark as resolved' button on the topic action sheet." + "@noStatusText": { + "description": "The text part of the status button sub-label in self-user profile page when status text is not set." }, - "filenameAndSizeInMiB": "{filename}: {size} МиБ", - "@filenameAndSizeInMiB": { - "description": "The name of a file, and its size in mebibytes.", + "@notifGroupDmConversationLabel": { + "description": "Label for a group DM conversation notification.", "placeholders": { - "filename": { - "type": "String", - "example": "foo.txt" + "numOthers": { + "example": "4", + "type": "int" }, - "size": { - "type": "String", - "example": "20.2" + "senderFullName": { + "example": "Alice", + "type": "String" } } }, - "errorCouldNotOpenLink": "Не удалось открыть ссылку: {url}", - "@errorCouldNotOpenLink": { - "description": "Error message when opening a link failed.", - "placeholders": { - "url": { - "type": "String", - "example": "https://chat.example.com" - } - } + "@notifSelfUser": { + "description": "Display name for the user themself, to show after replying in an Android notification" }, - "composeBoxChannelContentHint": "Сообщение для {destination}", - "@composeBoxChannelContentHint": { - "description": "Hint text for content input when sending a message to a channel.", + "@onePersonTyping": { + "description": "Text to display when there is one user typing.", "placeholders": { - "destination": { - "type": "String", - "example": "#channel name > topic name" + "typist": { + "example": "Alice", + "type": "String" } } }, - "unknownChannelName": "(неизвестный канал)", - "@unknownChannelName": { - "description": "Replacement name for channel when it cannot be found in the store." + "@openLinksWithInAppBrowser": { + "description": "Label for toggling setting to open links with in-app browser" }, - "recentDmConversationsSectionHeader": "Личные сообщения", - "@recentDmConversationsSectionHeader": { - "description": "Heading for direct messages section on the 'Inbox' message view." + "@permissionsDeniedCameraAccess": { + "description": "Message for dialog asking the user to grant permissions for camera access." + }, + "@permissionsDeniedReadExternalStorage": { + "description": "Message for dialog asking the user to grant permissions for external storage read access." + }, + "@permissionsNeededOpenSettings": { + "description": "Button label for permissions dialog button that opens the system settings screen." + }, + "@permissionsNeededTitle": { + "description": "Title for dialog asking the user to grant additional permissions." + }, + "@pinnedSubscriptionsLabel": { + "description": "Label for the list of pinned subscribed channels." }, - "pollVoterNames": "({voterNames})", "@pollVoterNames": { "description": "The list of people who voted for a poll option, wrapped in parentheses.", "placeholders": { "voterNames": { - "type": "String", - "example": "Alice, Bob, Chad" + "example": "Alice, Bob, Chad", + "type": "String" } } }, - "settingsPageTitle": "Настройки", - "@settingsPageTitle": { - "description": "Title for the settings page." + "@pollWidgetOptionsMissing": { + "description": "Text to display for a poll when it has no options" }, - "actionSheetOptionUnresolveTopic": "Снять отметку \"решено\"", - "@actionSheetOptionUnresolveTopic": { - "description": "Label for the 'Mark as unresolved' button on the topic action sheet." + "@pollWidgetQuestionMissing": { + "description": "Text to display for a poll when the question is missing" }, - "errorResolveTopicFailedTitle": "Не удалось отметить тему как решенную", - "@errorResolveTopicFailedTitle": { - "description": "Error title when marking a topic as resolved failed." + "@preparingEditMessageContentInput": { + "description": "Hint text for content input when the compose box is preparing to edit a message." }, - "errorUnresolveTopicFailedTitle": "Не удалось отметить тему как нерешенную", - "@errorUnresolveTopicFailedTitle": { - "description": "Error title when marking a topic as unresolved failed." + "@profileButtonSendDirectMessage": { + "description": "Label for button in profile screen to navigate to DMs with the shown user." }, - "lightboxVideoCurrentPosition": "Место воспроизведения", - "@lightboxVideoCurrentPosition": { - "description": "The current playback position of the video playing in the lightbox." + "@reactedEmojiSelfUser": { + "description": "Display name for the user themself, to show on an emoji reaction added by the user." }, - "wildcardMentionChannel": "канал", - "@wildcardMentionChannel": { - "description": "Text for \"@channel\" wildcard-mention autocomplete option when writing a channel message." + "@reactionChipLabel": { + "description": "Text describing a reaction chip, with the emoji name and a list or number of votes. (An accessibility label for assistive technology.)", + "placeholders": { + "emojiName": { + "example": "working_on_it", + "type": "String" + }, + "votes": { + "example": "You, Chris, Greg", + "type": "String" + } + } }, - "wildcardMentionStreamDescription": "Оповестить канал", - "@wildcardMentionStreamDescription": { - "description": "Description for \"@all\", \"@everyone\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message in older servers." + "@reactionChipVotesYouAndOthers": { + "description": "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.)", + "placeholders": { + "otherUsersCount": { + "example": "4", + "type": "int" + } + } }, - "themeSettingTitle": "РЕЖИМ", - "@themeSettingTitle": { - "description": "Title for theme setting. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + "@reactionChipsLabel": { + "description": "Text identifying the container of reaction chips on a message. (An accessibility label for assistive technology.)" }, - "themeSettingDark": "Темный", - "@themeSettingDark": { - "description": "Label for dark theme setting." + "@recentDmConversationsEmptyPlaceholder": { + "description": "Centered text on the 'Direct messages' page saying that there is no content to show." }, - "themeSettingLight": "Светлый", - "@themeSettingLight": { - "description": "Label for light theme setting." + "@recentDmConversationsPageTitle": { + "description": "Title for the page with a list of DM conversations." }, - "themeSettingSystem": "Системный", - "@themeSettingSystem": { - "description": "Label for system theme setting." + "@recentDmConversationsSectionHeader": { + "description": "Heading for direct messages section on the 'Inbox' message view." + }, + "@revealButtonLabel": { + "description": "Label for the button revealing hidden message from a muted sender in message list." + }, + "@savingMessageEditFailedLabel": { + "description": "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.)" + }, + "@savingMessageEditLabel": { + "description": "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.)" }, - "scrollToBottomTooltip": "Пролистать вниз", "@scrollToBottomTooltip": { "description": "Tooltip for button to scroll to bottom." }, - "errorCouldNotConnectTitle": "Нет связи с сервером", - "@errorCouldNotConnectTitle": { - "description": "Error title when the app could not connect to the server." + "@searchMessagesClearButtonTooltip": { + "description": "Tooltip for the 'x' button in the search text field." }, - "errorInvalidApiKeyMessage": "Не удалось войти в вашу учетную запись {url}. Попробуйте еще раз или используйте другую учетную запись.", - "@errorInvalidApiKeyMessage": { - "description": "Error message in the dialog for invalid API key.", + "@searchMessagesHintText": { + "description": "Hint text for the message search text field." + }, + "@searchMessagesPageTitle": { + "description": "Page title for the 'Search' message view." + }, + "@seeWhoReactedSheetEmojiNameWithVoteCount": { + "description": "In the 'See who reacted' sheet, an emoji reaction's name and how many votes it has. (An accessibility label for assistive technology.)", "placeholders": { - "url": { - "type": "String", - "example": "http://chat.example.com/" + "emojiName": { + "example": "working_on_it", + "type": "String" + }, + "num": { + "example": "2", + "type": "int" } } }, - "appVersionUnknownPlaceholder": "(…)", - "@appVersionUnknownPlaceholder": { - "description": "Placeholder to show in place of the app version when it is unknown." + "@seeWhoReactedSheetHeaderLabel": { + "description": "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.)", + "placeholders": { + "num": { + "example": "2", + "type": "int" + } + } }, - "wildcardMentionChannelDescription": "Оповестить канал", - "@wildcardMentionChannelDescription": { - "description": "Description for \"@all\", \"@everyone\", \"@channel\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message." + "@seeWhoReactedSheetNoReactions": { + "description": "Explanation on the 'See who reacted' sheet when the message has no reactions (because they were removed after the sheet was opened)." }, - "wildcardMentionTopicDescription": "Оповестить тему", - "@wildcardMentionTopicDescription": { - "description": "Description for \"@topic\" wildcard-mention autocomplete options when writing a channel message." + "@seeWhoReactedSheetUserListLabel": { + "description": "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.)", + "placeholders": { + "emojiName": { + "example": "working_on_it", + "type": "String" + }, + "num": { + "example": "2", + "type": "int" + } + } }, - "wildcardMentionStream": "канал", - "@wildcardMentionStream": { - "description": "Text for \"@stream\" wildcard-mention autocomplete option when writing a channel message in older servers." + "@serverUrlValidationErrorEmpty": { + "description": "Error message when URL is empty" }, - "wildcardMentionTopic": "тема", - "@wildcardMentionTopic": { - "description": "Text for \"@topic\" wildcard-mention autocomplete option when writing a channel message." + "@serverUrlValidationErrorInvalidUrl": { + "description": "Error message when URL is not in a valid format." }, - "wildcardMentionAllDmDescription": "Оповестить получателей", - "@wildcardMentionAllDmDescription": { - "description": "Description for \"@all\" and \"@everyone\" wildcard-mention autocomplete options when writing a DM message." + "@serverUrlValidationErrorNoUseEmail": { + "description": "Error message when URL looks like an email" }, - "errorServerVersionUnsupportedMessage": "{url} использует Zulip Server {zulipVersion}, который не поддерживается. Минимальная поддерживаемая версия — Zulip Server {minSupportedZulipVersion}.", - "@errorServerVersionUnsupportedMessage": { - "description": "Error message in the dialog for when the Zulip Server version is unsupported.", + "@serverUrlValidationErrorUnsupportedScheme": { + "description": "Error message when URL has an unsupported scheme." + }, + "@setStatusPageTitle": { + "description": "Title for the 'Set status' page." + }, + "@settingsPageTitle": { + "description": "Title for the settings page." + }, + "@signInWithFoo": { + "description": "Button to use {method} to sign in to the app.", "placeholders": { - "url": { - "type": "String", - "example": "http://chat.example.com/" - }, - "zulipVersion": { - "type": "String", - "example": "3.2" - }, - "minSupportedZulipVersion": { - "type": "String", - "example": "4.0" + "method": { + "example": "Google", + "type": "String" } } }, - "errorDialogLearnMore": "Узнать больше", - "@errorDialogLearnMore": { - "description": "Button label in error dialogs to open a web page with more information." + "@snackBarDetails": { + "description": "Button label for snack bar button that opens a dialog with more details." }, - "experimentalFeatureSettingsPageTitle": "Экспериментальные функции", - "@experimentalFeatureSettingsPageTitle": { - "description": "Title of settings page for experimental, in-development features" + "@spoilerDefaultHeaderText": { + "description": "The default header text in a spoiler block ( https://zulip.com/help/spoilers )." }, - "experimentalFeatureSettingsWarning": "Эти параметры включают функции, которые все еще находятся в стадии разработки и не готовы. Они могут не работать и вызывать проблемы в других местах приложения.\n\nЦель этих настроек — экспериментирование людьми, работающими над разработкой Zulip.", - "@experimentalFeatureSettingsWarning": { - "description": "Warning text on settings page for experimental, in-development features" + "@starredMessagesPageTitle": { + "description": "Page title for the 'Starred messages' message view." }, - "errorCouldNotEditMessageTitle": "Сбой редактирования", - "@errorCouldNotEditMessageTitle": { - "description": "Error title when an exception prevented us from opening the compose box for editing a message." + "@statusButtonLabelStatusSet": { + "description": "The status button label in self-user profile page when status is set." }, - "composeBoxBannerButtonSave": "Сохранить", - "@composeBoxBannerButtonSave": { - "description": "Label text for the 'Save' button in the compose-box banner when you are editing a message." + "@statusButtonLabelStatusUnset": { + "description": "The status button label in self-user profile page when status is not set." }, - "editAlreadyInProgressTitle": "Редактирование недоступно", - "@editAlreadyInProgressTitle": { - "description": "Error title when a message edit cannot be saved because there is another edit already in progress." + "@statusClearButtonLabel": { + "description": "Label for the button that clears the user status, in 'Set status' page." }, - "savingMessageEditLabel": "ЗАПИСЬ ПРАВОК…", - "@savingMessageEditLabel": { - "description": "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.)" + "@statusSaveButtonLabel": { + "description": "Label for the button that saves the user status, in 'Set status' page." }, - "savingMessageEditFailedLabel": "ПРАВКИ НЕ СОХРАНЕНЫ", - "@savingMessageEditFailedLabel": { - "description": "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.)" + "@statusTextHint": { + "description": "Hint text for the status text input field in 'Set status' page." }, - "discardDraftConfirmationDialogTitle": "Отказаться от написанного сообщения?", - "@discardDraftConfirmationDialogTitle": { - "description": "Title for a confirmation dialog for discarding message text that was typed into the compose box." + "@subscribeFailedTitle": { + "description": "Error title when subscribing to a channel failed." }, - "discardDraftConfirmationDialogConfirmButton": "Сбросить", - "@discardDraftConfirmationDialogConfirmButton": { - "description": "Label for the 'Discard' button on a confirmation dialog for discarding message text that was typed into the compose box." + "@successChannelLinkCopied": { + "description": "Message when link of a channel was copied to the user's system clipboard." }, - "composeBoxBannerButtonCancel": "Отмена", - "@composeBoxBannerButtonCancel": { - "description": "Label text for the 'Cancel' button in the compose-box banner when you are editing a message." + "@successLinkCopied": { + "description": "Success message after copy link action completed." }, - "actionSheetOptionEditMessage": "Редактировать сообщение", - "@actionSheetOptionEditMessage": { - "description": "Label for the 'Edit message' button in the message action sheet." + "@successMessageLinkCopied": { + "description": "Message when link of a message was copied to the user's system clipboard." }, - "errorMessageEditNotSaved": "Сообщение не сохранено", - "@errorMessageEditNotSaved": { - "description": "Error message for compose box when a message edit could not be saved." + "@successMessageTextCopied": { + "description": "Message when content of a message was copied to the user's system clipboard." }, - "preparingEditMessageContentInput": "Подготовка…", - "@preparingEditMessageContentInput": { - "description": "Hint text for content input when the compose box is preparing to edit a message." + "@successTopicLinkCopied": { + "description": "Message when link of a topic was copied to the user's system clipboard." }, - "composeBoxEnterTopicOrSkipHintText": "Укажите тему (или оставьте “{defaultTopicName}”)", - "@composeBoxEnterTopicOrSkipHintText": { - "description": "Hint text for topic input widget in compose box when topics are optional.", - "placeholders": { - "defaultTopicName": { - "type": "String", - "example": "general chat" - } - } + "@switchAccountButton": { + "description": "Label for main-menu button leading to the choose-account page." }, - "composeBoxBannerLabelEditMessage": "Редактирование сообщения", - "@composeBoxBannerLabelEditMessage": { - "description": "Label text for the compose-box banner when you are editing a message." + "@themeSettingDark": { + "description": "Label for dark theme setting." }, - "editAlreadyInProgressMessage": "Редактирование уже выполняется. Дождитесь завершения.", - "@editAlreadyInProgressMessage": { - "description": "Error message when a message edit cannot be saved because there is another edit already in progress." + "@themeSettingLight": { + "description": "Label for light theme setting." }, - "discardDraftForEditConfirmationDialogMessage": "При изменении сообщения текст из поля для редактирования удаляется.", - "@discardDraftForEditConfirmationDialogMessage": { - "description": "Message for a confirmation dialog for discarding message text that was typed into the compose box." + "@themeSettingSystem": { + "description": "Label for system theme setting." }, - "actionSheetOptionListOfTopics": "Список тем", - "@actionSheetOptionListOfTopics": { - "description": "Label for navigating to a channel's topic-list page." + "@themeSettingTitle": { + "description": "Title for theme setting. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + }, + "@today": { + "description": "Term to use to reference the current day." + }, + "@topicValidationErrorMandatoryButEmpty": { + "description": "Topic validation error when topic is required but was empty." + }, + "@topicValidationErrorTooLong": { + "description": "Topic validation error when topic is too long." }, - "topicsButtonTooltip": "Темы", "@topicsButtonTooltip": { "description": "Tooltip for button to navigate to topic-list page." }, - "newDmSheetSearchHintEmpty": "Добавить пользователей", - "@newDmSheetSearchHintEmpty": { - "description": "Hint text for the search bar when no users are selected" + "@tryAnotherAccountButton": { + "description": "Label for loading screen button prompting user to try another account." }, - "mutedUser": "Отключенный пользователь", - "@mutedUser": { - "description": "Name for a muted user to display all over the app." + "@tryAnotherAccountMessage": { + "description": "Message that appears on the loading screen after waiting for some time.", + "url": { + "example": "http://chat.example.com/", + "type": "String" + } }, - "newDmSheetNoUsersFound": "Никто не найден", - "@newDmSheetNoUsersFound": { - "description": "Message shown in the new DM sheet when no users match the search." + "@turnOffInvisibleModeErrorTitle": { + "description": "Error title when turning off invisible mode failed." }, - "messageNotSentLabel": "СООБЩЕНИЕ НЕ ОТПРАВЛЕНО", - "@messageNotSentLabel": { - "description": "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.)" + "@turnOnInvisibleModeErrorTitle": { + "description": "Error title when turning on invisible mode failed." }, - "actionSheetOptionHideMutedMessage": "Скрыть отключенное сообщение", - "@actionSheetOptionHideMutedMessage": { - "description": "Label for hide muted message again button on action sheet." + "@twoPeopleTyping": { + "description": "Text to display when there are two users typing.", + "placeholders": { + "otherTypist": { + "example": "Bob", + "type": "String" + }, + "typist": { + "example": "Alice", + "type": "String" + } + } }, - "newDmFabButtonLabel": "Новое ЛС", - "@newDmFabButtonLabel": { - "description": "Label for the floating action button (FAB) that opens the new DM sheet." + "@unknownChannelName": { + "description": "Replacement name for channel when it cannot be found in the store." }, - "newDmSheetScreenTitle": "Новое ЛС", - "@newDmSheetScreenTitle": { - "description": "Title displayed at the top of the new DM screen." + "@unknownUserName": { + "description": "Name placeholder to use for a user when we don't know their name." }, - "newDmSheetSearchHintSomeSelected": "Добавить еще…", - "@newDmSheetSearchHintSomeSelected": { - "description": "Hint text for the search bar when at least one user is selected" + "@unpinnedSubscriptionsLabel": { + "description": "Label for the list of unpinned subscribed channels." }, - "errorNotificationOpenAccountNotFound": "Учетная запись, связанная с этим уведомлением, не найдена.", - "@errorNotificationOpenAccountNotFound": { - "description": "Error message when the account associated with the notification could not be found" + "@unsubscribeConfirmationDialogConfirmButton": { + "description": "Label for the 'Unsubscribe' button on a confirmation dialog for unsubscribing from a channel." }, - "channelsEmptyPlaceholder": "Вы еще не подписаны ни на один канал.", - "@channelsEmptyPlaceholder": { - "description": "Centered text on the 'Channels' page saying that there is no content to show." + "@unsubscribeConfirmationDialogMessageMaybeCannotResubscribe": { + "description": "Message for a confirmation dialog for unsubscribing from a channel when you might not have permission to resubscribe." }, - "recentDmConversationsEmptyPlaceholder": "У вас пока нет личных сообщений! Почему бы не начать беседу?", - "@recentDmConversationsEmptyPlaceholder": { - "description": "Centered text on the 'Direct messages' page saying that there is no content to show." + "@unsubscribeConfirmationDialogTitle": { + "description": "Title for a confirmation dialog for unsubscribing from a channel.", + "placeholders": { + "channelName": { + "example": "mobile", + "type": "String" + } + } }, - "newDmSheetComposeButtonLabel": "Написать", - "@newDmSheetComposeButtonLabel": { - "description": "Label for the compose button in the new DM sheet that starts composing a message to the selected users." + "@unsubscribeFailedTitle": { + "description": "Error title when unsubscribing from a channel failed." }, - "inboxEmptyPlaceholder": "Нет непрочитанных входящих сообщений. Используйте кнопки ниже для просмотра объединенной ленты или списка каналов.", - "@inboxEmptyPlaceholder": { - "description": "Centered text on the 'Inbox' page saying that there is no content to show." + "@updateStatusErrorTitle": { + "description": "Error title when updating user status failed." }, - "initialAnchorSettingNewestAlways": "Самое новое сообщение", - "@initialAnchorSettingNewestAlways": { - "description": "Label for a value of setting controlling initial anchor of message list." + "@upgradeWelcomeDialogDismiss": { + "description": "Label for button dismissing dialog shown on first upgrade from the legacy Zulip app." }, - "initialAnchorSettingTitle": "Где открывать ленту сообщений", - "@initialAnchorSettingTitle": { - "description": "Title of setting controlling initial anchor of message list." + "@upgradeWelcomeDialogLinkText": { + "description": "Text of link in dialog shown on first upgrade from the legacy Zulip app." }, - "discardDraftForOutboxConfirmationDialogMessage": "При восстановлении неотправленного сообщения содержимое поля редактирования очищается.", - "@discardDraftForOutboxConfirmationDialogMessage": { - "description": "Message for a confirmation dialog when restoring an outbox message, for discarding message text that was typed into the compose box." + "@upgradeWelcomeDialogMessage": { + "description": "Message text for dialog shown on first upgrade from the legacy Zulip app." }, - "initialAnchorSettingFirstUnreadAlways": "Первое непрочитанное сообщение", - "@initialAnchorSettingFirstUnreadAlways": { - "description": "Label for a value of setting controlling initial anchor of message list." + "@upgradeWelcomeDialogTitle": { + "description": "Title for dialog shown on first upgrade from the legacy Zulip app." }, - "initialAnchorSettingDescription": "Можно открывать ленту сообщений на первом непрочитанном сообщении или на самом новом.", - "@initialAnchorSettingDescription": { - "description": "Description of setting controlling initial anchor of message list." + "@userRoleAdministrator": { + "description": "Label for UserRole.administrator" }, - "initialAnchorSettingFirstUnreadConversations": "Первое непрочитанное сообщение при просмотре бесед, самое новое в остальных местах", - "@initialAnchorSettingFirstUnreadConversations": { - "description": "Label for a value of setting controlling initial anchor of message list." + "@userRoleGuest": { + "description": "Label for UserRole.guest" }, - "actionSheetOptionQuoteMessage": "Цитировать сообщение", - "@actionSheetOptionQuoteMessage": { - "description": "Label for the 'Quote message' button in the message action sheet." + "@userRoleMember": { + "description": "Label for UserRole.member" }, - "markReadOnScrollSettingTitle": "Отмечать сообщения как прочитанные при прокрутке", - "@markReadOnScrollSettingTitle": { - "description": "Title of setting controlling which message-list views should mark read on scroll." + "@userRoleModerator": { + "description": "Label for UserRole.moderator" }, - "markReadOnScrollSettingDescription": "При прокрутке сообщений автоматически отмечать их как прочитанные?", - "@markReadOnScrollSettingDescription": { - "description": "Description of setting controlling which message-list views should mark read on scroll." + "@userRoleOwner": { + "description": "Label for UserRole.owner" }, - "markReadOnScrollSettingConversations": "Только при просмотре бесед", - "@markReadOnScrollSettingConversations": { - "description": "Label for a value of setting controlling which message-list views should mark read on scroll." + "@userRoleUnknown": { + "description": "Label for UserRole.unknown" }, - "markReadOnScrollSettingNever": "Никогда", - "@markReadOnScrollSettingNever": { - "description": "Label for a value of setting controlling which message-list views should mark read on scroll." + "@userStatusAtTheOffice": { + "description": "A suggested user status text, 'At the office'." }, - "markReadOnScrollSettingAlways": "Всегда", - "@markReadOnScrollSettingAlways": { - "description": "Label for a value of setting controlling which message-list views should mark read on scroll." + "@userStatusBusy": { + "description": "A suggested user status text, 'Busy'." }, - "markReadOnScrollSettingConversationsDescription": "Сообщения будут автоматически помечаться как прочитанные только при просмотре отдельной темы или личной беседы.", - "@markReadOnScrollSettingConversationsDescription": { - "description": "Description for a value of setting controlling which message-list views should mark read on scroll." + "@userStatusCommuting": { + "description": "A suggested user status text, 'Commuting'." }, - "upgradeWelcomeDialogDismiss": "Приступим!", - "@upgradeWelcomeDialogDismiss": { - "description": "Label for button dismissing dialog shown on first upgrade from the legacy Zulip app." + "@userStatusInAMeeting": { + "description": "A suggested user status text, 'In a meeting'." }, - "upgradeWelcomeDialogMessage": "Вы найдете привычные возможности в более быстром и легком приложении.", - "@upgradeWelcomeDialogMessage": { - "description": "Message text for dialog shown on first upgrade from the legacy Zulip app." + "@userStatusOutSick": { + "description": "A suggested user status text, 'Out sick'." }, - "upgradeWelcomeDialogTitle": "Добро пожаловать в новое приложение Zulip!", - "@upgradeWelcomeDialogTitle": { - "description": "Title for dialog shown on first upgrade from the legacy Zulip app." + "@userStatusVacationing": { + "description": "A suggested user status text, 'Vacationing'." }, - "upgradeWelcomeDialogLinkText": "Ознакомьтесь с анонсом в блоге!", - "@upgradeWelcomeDialogLinkText": { - "description": "Text of link in dialog shown on first upgrade from the legacy Zulip app." + "@userStatusWorkingRemotely": { + "description": "A suggested user status text, 'Working remotely'." }, - "emptyMessageList": "Здесь нет сообщений.", - "@emptyMessageList": { - "description": "Placeholder for some message-list pages when there are no messages." + "@wildcardMentionAll": { + "description": "Text for \"@all\" wildcard-mention autocomplete option when writing a channel or DM message." }, - "emptyMessageListSearch": "Ничего не найдено.", - "@emptyMessageListSearch": { - "description": "Placeholder for the 'Search' page when there are no messages." + "@wildcardMentionAllDmDescription": { + "description": "Description for \"@all\" and \"@everyone\" wildcard-mention autocomplete options when writing a DM message." }, - "searchMessagesPageTitle": "Поиск", - "@searchMessagesPageTitle": { - "description": "Page title for the 'Search' message view." + "@wildcardMentionChannel": { + "description": "Text for \"@channel\" wildcard-mention autocomplete option when writing a channel message." }, - "searchMessagesHintText": "Поиск", - "@searchMessagesHintText": { - "description": "Hint text for the message search text field." + "@wildcardMentionChannelDescription": { + "description": "Description for \"@all\", \"@everyone\", \"@channel\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message." }, - "searchMessagesClearButtonTooltip": "Очистить", - "@searchMessagesClearButtonTooltip": { - "description": "Tooltip for the 'x' button in the search text field." + "@wildcardMentionEveryone": { + "description": "Text for \"@everyone\" wildcard-mention autocomplete option when writing a channel or DM message." }, - "revealButtonLabel": "Показать сообщение", - "@revealButtonLabel": { - "description": "Label for the button revealing hidden message from a muted sender in message list." + "@wildcardMentionStream": { + "description": "Text for \"@stream\" wildcard-mention autocomplete option when writing a channel message in older servers." }, - "invisibleMode": "Режим невидимости", - "@invisibleMode": { - "description": "Label for the 'Invisible mode' switch on the profile page." + "@wildcardMentionStreamDescription": { + "description": "Description for \"@all\", \"@everyone\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message in older servers." }, - "turnOnInvisibleModeErrorTitle": "Не удалось включить режим невидимости. Повторите попытку позже.", - "@turnOnInvisibleModeErrorTitle": { - "description": "Error title when turning on invisible mode failed." + "@wildcardMentionTopic": { + "description": "Text for \"@topic\" wildcard-mention autocomplete option when writing a channel message." + }, + "@wildcardMentionTopicDescription": { + "description": "Description for \"@topic\" wildcard-mention autocomplete options when writing a channel message." + }, + "@yesterday": { + "description": "Term to use to reference the previous day." }, + "@zulipAppTitle": { + "description": "The name of Zulip. This should be either 'Zulip' or a transliteration." + }, + "aboutPageAppVersion": "Версия приложения", + "aboutPageOpenSourceLicenses": "Лицензии открытого исходного кода", + "aboutPageTapToView": "Нажмите для просмотра", + "aboutPageTitle": "О Zulip", + "actionSheetOptionCopyChannelLink": "Скопировать ссылку на канал", + "actionSheetOptionCopyMessageLink": "Скопировать ссылку на сообщение", + "actionSheetOptionCopyMessageText": "Скопировать текст сообщения", + "actionSheetOptionCopyTopicLink": "Скопировать ссылку на тему", + "actionSheetOptionEditMessage": "Редактировать сообщение", + "actionSheetOptionFollowTopic": "Отслеживать тему", + "actionSheetOptionHideMutedMessage": "Скрыть заглушенное сообщение", + "actionSheetOptionListOfTopics": "Список тем", + "actionSheetOptionMarkAsUnread": "Отметить как непрочитанные начиная отсюда", + "actionSheetOptionMarkChannelAsRead": "Отметить канал как прочитанный", + "actionSheetOptionMarkTopicAsRead": "Отметить тему как прочитанную", + "actionSheetOptionMuteTopic": "Заглушить тему", + "actionSheetOptionQuoteMessage": "Цитировать сообщение", + "actionSheetOptionResolveTopic": "Поставить отметку \"решено\"", + "actionSheetOptionSeeWhoReacted": "Посмотреть отреагировавших", + "actionSheetOptionShare": "Поделиться", + "actionSheetOptionStarMessage": "Отметить сообщение", + "actionSheetOptionSubscribe": "Подписаться", + "actionSheetOptionUnfollowTopic": "Не отслеживать тему", + "actionSheetOptionUnmuteTopic": "Включить оповещения темы", + "actionSheetOptionUnresolveTopic": "Снять отметку \"решено\"", + "actionSheetOptionUnstarMessage": "Снять отметку с сообщения", + "actionSheetOptionUnsubscribe": "Отписаться", + "appVersionUnknownPlaceholder": "(…)", + "channelFeedButtonTooltip": "Лента канала", + "channelsEmptyPlaceholder": "Вы ещё не подписаны ни на один канал.", + "channelsPageTitle": "Каналы", + "chooseAccountButtonAddAnAccount": "Добавить учетную запись", + "chooseAccountPageLogOutButton": "Выход из системы", + "chooseAccountPageTitle": "Выберите учетную запись", + "combinedFeedPageTitle": "Объединенная лента", + "composeBoxAttachFilesTooltip": "Прикрепить файлы", + "composeBoxAttachFromCameraTooltip": "Сделать снимок", + "composeBoxAttachMediaTooltip": "Прикрепить изображения или видео", + "composeBoxBannerButtonCancel": "Отмена", + "composeBoxBannerButtonSave": "Сохранить", + "composeBoxBannerLabelEditMessage": "Редактирование сообщения", + "composeBoxChannelContentHint": "Сообщение для {destination}", + "composeBoxDmContentHint": "Сообщение для @{user}", + "composeBoxEnterTopicOrSkipHintText": "Укажите тему (или оставьте “{defaultTopicName}”)", + "composeBoxGenericContentHint": "Ввести сообщение", + "composeBoxGroupDmContentHint": "Сообщение для группы", + "composeBoxLoadingMessage": "(загрузка сообщения {messageId})", + "composeBoxSelfDmContentHint": "Сделать заметку", + "composeBoxSendTooltip": "Отправить", + "composeBoxTopicHintText": "Тема", + "composeBoxUploadingFilename": "Загрузка {filename}…", + "contentValidationErrorEmpty": "Нечего отправлять!", + "contentValidationErrorQuoteAndReplyInProgress": "Пожалуйста, дождитесь завершения цитирования.", + "contentValidationErrorTooLong": "Длина сообщения не должна превышать 10000 символов.", + "contentValidationErrorUploadInProgress": "Пожалуйста, дождитесь завершения загрузки.", + "dialogCancel": "Отмена", + "dialogClose": "Закрыть", + "dialogContinue": "Продолжить", + "discardDraftConfirmationDialogConfirmButton": "Сбросить", + "discardDraftConfirmationDialogTitle": "Отказаться от написанного сообщения?", + "discardDraftForEditConfirmationDialogMessage": "При изменении сообщения текст из поля для редактирования удаляется.", + "discardDraftForOutboxConfirmationDialogMessage": "При восстановлении неотправленного сообщения содержимое поля редактирования очищается.", + "dmsWithOthersPageTitle": "ЛС с {others}", + "dmsWithYourselfPageTitle": "ЛС с собой", + "editAlreadyInProgressMessage": "Редактирование уже выполняется. Дождитесь завершения.", + "editAlreadyInProgressTitle": "Редактирование недоступно", + "emojiPickerSearchEmoji": "Поиск эмодзи", + "emojiReactionsMore": "ещё", + "emptyMessageList": "Здесь нет сообщений.", + "emptyMessageListSearch": "Ничего не найдено.", + "errorAccountLoggedIn": "Учетная запись {email} на {server} уже присутствует.", + "errorAccountLoggedInTitle": "Вход в учетную запись уже выполнен", + "errorBannerCannotPostInChannelLabel": "У вас нет права писать в этом канале.", + "errorBannerDeactivatedDmLabel": "Нельзя отправить сообщение отключенным пользователям.", + "errorConnectingToServerDetails": "Ошибка подключения к Zulip на {serverUrl}. Повторим попытку:\n\n{error}", + "errorConnectingToServerShort": "Ошибка подключения к Zulip. Повторяем попытку…", + "errorCopyingFailed": "Сбой копирования", + "errorCouldNotConnectTitle": "Нет связи с сервером", + "errorCouldNotEditMessageTitle": "Сбой редактирования", + "errorCouldNotFetchMessageSource": "Не удалось извлечь источник сообщения.", + "errorCouldNotOpenLink": "Не удалось открыть ссылку: {url}", + "errorCouldNotOpenLinkTitle": "Не удалось открыть ссылку", + "errorCouldNotShowUserProfile": "Не удалось показать профиль пользователя.", + "errorDialogContinue": "OK", + "errorDialogLearnMore": "Узнать больше", + "errorDialogTitle": "Ошибка", + "errorFailedToUploadFileTitle": "Не удалось загрузить файл: {filename}", + "errorFilesTooLarge": "Размер {num, plural, =1{файла} other{{num} файлов}} превышает предел для сервера {maxFileUploadSizeMib} МиБ, загрузка невозможна:\n\n{listMessage}", + "errorFilesTooLargeTitle": "Слишком большой размер {num, plural, =1{файла} other{файлов}}", + "errorFollowTopicFailed": "Не удалось начать отслеживать тему", + "errorHandlingEventDetails": "Ошибка обработки события Zulip от {serverUrl}; повторим попытку.\n\nОшибка: {error}\n\nСобытие: {event}", + "errorHandlingEventTitle": "Ошибка обработки события Zulip. Повторная попытка соединения…", + "errorInvalidApiKeyMessage": "Не удалось войти в вашу учётную запись {url}. Попробуйте ещё раз или используйте другую учётную запись.", + "errorInvalidResponse": "Сервер отправил недопустимый ответ.", + "errorLoginCouldNotConnect": "Не удалось подключиться к серверу:\n{url}", + "errorLoginFailedTitle": "Не удалось войти в систему", + "errorLoginInvalidInputTitle": "Неверный ввод", + "errorMalformedResponse": "Сервер вернул некорректный ответ; HTTP-статус {httpStatus}", + "errorMalformedResponseWithCause": "Сервер вернул некорректный ответ; HTTP-статус {httpStatus}; {details}", + "errorMarkAsReadFailedTitle": "Не удалось установить отметку прочтения", + "errorMarkAsUnreadFailedTitle": "Не удалось снять отметку прочтения", + "errorMessageDoesNotSeemToExist": "Это сообщение, похоже, отсутствует.", + "errorMessageEditNotSaved": "Сообщение не сохранено", + "errorMessageNotSent": "Сообщение не отправлено", + "errorMuteTopicFailed": "Не удалось заглушить тему", + "errorNetworkRequestFailed": "Сбой сетевого запроса", + "errorNotificationOpenAccountNotFound": "Учетная запись, связанная с этим уведомлением, не найдена.", + "errorNotificationOpenTitle": "Не удалось открыть оповещения", + "errorQuotationFailed": "Цитирование не удалось", + "errorReactionAddingFailedTitle": "Не удалось добавить реакцию", + "errorReactionRemovingFailedTitle": "Не удалось удалить реакцию", + "errorRequestFailed": "Сбой сетевого запроса: HTTP-статус {httpStatus}", + "errorResolveTopicFailedTitle": "Не удалось отметить тему как решенную", + "errorServerMessage": "Ответ сервера:\n\n{message}", + "errorServerVersionUnsupportedMessage": "{url} использует Zulip Server {zulipVersion}, который не поддерживается. Минимальная поддерживаемая версия — Zulip Server {minSupportedZulipVersion}.", + "errorSharingFailed": "Не удалось поделиться", + "errorStarMessageFailedTitle": "Не удалось отметить сообщение", + "errorUnfollowTopicFailed": "Не удалось прекратить отслеживать тему", + "errorUnmuteTopicFailed": "Не удалось включить оповещения темы", + "errorUnresolveTopicFailedTitle": "Не удалось отметить тему как нерешенную", + "errorUnstarMessageFailedTitle": "Не удалось снять отметку с сообщения", + "errorVideoPlayerFailed": "Не удается воспроизвести видео.", + "errorWebAuthOperationalError": "Произошла непредвиденная ошибка.", + "errorWebAuthOperationalErrorTitle": "Что-то пошло не так", + "experimentalFeatureSettingsPageTitle": "Экспериментальные функции", + "experimentalFeatureSettingsWarning": "Эти параметры включают возможности, которые все ещё находятся в разработке и не готовы. Они могут не работать и вызывать проблемы в других местах приложения.\n\nЦель этих настроек — экспериментирование людьми, работающими над разработкой Zulip.", + "filenameAndSizeInMiB": "{filename}: {size} МиБ", + "inboxEmptyPlaceholder": "Нет непрочитанных входящих сообщений. Используйте кнопки ниже для просмотра объединенной ленты или списка каналов.", + "inboxPageTitle": "Входящие", + "initialAnchorSettingDescription": "Можно открывать ленту сообщений на первом непрочитанном сообщении или на самом новом.", + "initialAnchorSettingFirstUnreadAlways": "Первое непрочитанное сообщение", + "initialAnchorSettingFirstUnreadConversations": "Первое непрочитанное сообщение при просмотре бесед, самое новое в остальных местах", + "initialAnchorSettingNewestAlways": "Самое новое сообщение", + "initialAnchorSettingTitle": "Где открывать ленту сообщений", + "invisibleMode": "Режим невидимости", + "lightboxCopyLinkTooltip": "Скопировать ссылку", + "lightboxVideoCurrentPosition": "Место воспроизведения", + "lightboxVideoDuration": "Длительность видео", + "logOutConfirmationDialogConfirmButton": "Выйти", + "logOutConfirmationDialogMessage": "Чтобы использовать эту учетную запись в будущем, вам придется заново ввести URL-адрес вашей организации и информацию о вашей учетной записи.", + "logOutConfirmationDialogTitle": "Выйти из системы?", + "loginAddAnAccountPageTitle": "Добавление учетной записи", + "loginEmailLabel": "Адрес почты", + "loginErrorMissingEmail": "Пожалуйста, введите ваш адрес электронной почты.", + "loginErrorMissingPassword": "Пожалуйста, введите пароль.", + "loginErrorMissingUsername": "Пожалуйста, введите ваше имя пользователя.", + "loginFormSubmitLabel": "Войти", + "loginHidePassword": "Скрыть пароль", + "loginMethodDivider": "ИЛИ", + "loginPageTitle": "Вход в систему", + "loginPasswordLabel": "Пароль", + "loginServerUrlLabel": "URL вашего сервера Zulip", + "loginUsernameLabel": "Имя пользователя", + "mainMenuMyProfile": "Мой профиль", + "manyPeopleTyping": "Несколько человек набирают сообщения…", + "markAllAsReadLabel": "Отметить все сообщения как прочитанные", + "markAsReadComplete": "Отметка прочтения установлена для {num, plural, one{{num} сообщения} other{{num} сообщений}}.", + "markAsReadInProgress": "Помечаем сообщения как прочитанные…", + "markAsUnreadComplete": "Отметка прочтения снята для {num, plural, one{{num} сообщения} other{{num} сообщений}}.", + "markAsUnreadInProgress": "Помечаем сообщения как непрочитанные…", + "markReadOnScrollSettingAlways": "Всегда", + "markReadOnScrollSettingConversations": "Только при просмотре бесед", + "markReadOnScrollSettingConversationsDescription": "Сообщения будут автоматически помечаться как прочитанные только при просмотре отдельной темы или личной беседы.", + "markReadOnScrollSettingDescription": "При прокрутке сообщений автоматически отмечать их как прочитанные?", + "markReadOnScrollSettingNever": "Никогда", + "markReadOnScrollSettingTitle": "Отмечать сообщения как прочитанные при прокрутке", + "mentionsPageTitle": "Упоминания", + "messageIsEditedLabel": "ИЗМЕНЕНО", + "messageIsMovedLabel": "ПЕРЕМЕЩЕНО", + "messageListGroupYouAndOthers": "Вы и {others}", + "messageListGroupYouWithYourself": "Сообщения с собой", + "messageNotSentLabel": "СООБЩЕНИЕ НЕ ОТПРАВЛЕНО", + "mutedUser": "Заглушенный пользователь", + "newDmFabButtonLabel": "Новое ЛС", + "newDmSheetComposeButtonLabel": "Написать", + "newDmSheetNoUsersFound": "Никто не найден", + "newDmSheetScreenTitle": "Новое ЛС", + "newDmSheetSearchHintEmpty": "Добавить пользователей", + "newDmSheetSearchHintSomeSelected": "Добавить ещё…", + "noEarlierMessages": "Предшествующих сообщений нет", + "noStatusText": "Нет текста статуса", + "notifGroupDmConversationLabel": "{senderFullName} вам и ещё {numOthers, plural, one{{numOthers} другому} other{{numOthers} другим}}", + "notifSelfUser": "Вы", + "onePersonTyping": "{typist} набирает сообщение…", + "openLinksWithInAppBrowser": "Открывать ссылки внутри приложения", + "permissionsDeniedCameraAccess": "Для загрузки изображения, пожалуйста, предоставьте Zulip дополнительные разрешения в настройках.", + "permissionsDeniedReadExternalStorage": "Для загрузки файлов, пожалуйста, предоставьте Zulip дополнительные разрешения в настройках.", + "permissionsNeededOpenSettings": "Открыть настройки", + "permissionsNeededTitle": "Требуются разрешения", + "pinnedSubscriptionsLabel": "Закреплены", + "pollVoterNames": "({voterNames})", + "pollWidgetOptionsMissing": "В опросе пока нет вариантов ответа.", + "pollWidgetQuestionMissing": "Нет вопроса.", + "preparingEditMessageContentInput": "Подготовка…", + "profileButtonSendDirectMessage": "Отправить личное сообщение", + "reactedEmojiSelfUser": "Вы", + "reactionChipLabel": "{emojiName}: {votes}", + "reactionChipVotesYouAndOthers": "{otherUsersCount, plural, one{Вы и еще {otherUsersCount} человек} few{Вы и еще {otherUsersCount} человека} many{Вы и еще {otherUsersCount} человек} other{Вы и еще {otherUsersCount} человек}}", + "reactionChipsLabel": "Реакции", + "recentDmConversationsEmptyPlaceholder": "У вас пока нет личных сообщений! Почему бы не начать беседу?", + "recentDmConversationsPageTitle": "Личные сообщения", + "recentDmConversationsSectionHeader": "Личные сообщения", + "revealButtonLabel": "Показать сообщение", + "savingMessageEditFailedLabel": "ПРАВКИ НЕ СОХРАНЕНЫ", + "savingMessageEditLabel": "ЗАПИСЬ ПРАВОК…", + "scrollToBottomTooltip": "Пролистать вниз", + "searchMessagesClearButtonTooltip": "Очистить", + "searchMessagesHintText": "Поиск", + "searchMessagesPageTitle": "Поиск", + "seeWhoReactedSheetEmojiNameWithVoteCount": "{emojiName}: {num, plural, one{1 голос} few{{num} голоса} many{{num} голосов} other{{num} голосов}}", + "seeWhoReactedSheetHeaderLabel": "Эмодзи-реакции (всего: {num})", + "seeWhoReactedSheetNoReactions": "На это сообщение нет реакций.", + "seeWhoReactedSheetUserListLabel": "Голоса за {emojiName} ({num})", + "serverUrlValidationErrorEmpty": "Пожалуйста, введите URL-адрес.", + "serverUrlValidationErrorInvalidUrl": "Пожалуйста, введите корректный URL-адрес.", + "serverUrlValidationErrorNoUseEmail": "Пожалуйста, введите URL-адрес сервера, а не свой email.", + "serverUrlValidationErrorUnsupportedScheme": "URL-адрес сервера должен начинаться с http:// или https://.", + "setStatusPageTitle": "Установить статус", + "settingsPageTitle": "Настройки", + "signInWithFoo": "Войти с помощью {method}", + "snackBarDetails": "Подробности", + "spoilerDefaultHeaderText": "Спойлер", + "starredMessagesPageTitle": "Отмеченные сообщения", + "statusButtonLabelStatusSet": "Статус", + "statusButtonLabelStatusUnset": "Установить статус", + "statusClearButtonLabel": "Очистить", + "statusSaveButtonLabel": "Сохранить", + "statusTextHint": "Ваш статус", + "subscribeFailedTitle": "Подписаться не удалось", + "successChannelLinkCopied": "Ссылка на канал скопирована", + "successLinkCopied": "Ссылка скопирована", + "successMessageLinkCopied": "Ссылка на сообщение скопирована", + "successMessageTextCopied": "Текст сообщения скопирован", + "successTopicLinkCopied": "Ссылка на тему скопирована", + "switchAccountButton": "Сменить учетную запись", + "themeSettingDark": "Темный", + "themeSettingLight": "Светлый", + "themeSettingSystem": "Системный", + "themeSettingTitle": "РЕЖИМ", + "today": "Сегодня", + "topicValidationErrorMandatoryButEmpty": "Темы обязательны в этой организации.", + "topicValidationErrorTooLong": "Длина темы не должна превышать 60 символов.", + "topicsButtonTooltip": "Темы", + "tryAnotherAccountButton": "Попробовать другую учетную запись", + "tryAnotherAccountMessage": "Ваша учетная запись на {url} загружается медленно.", "turnOffInvisibleModeErrorTitle": "Не удалось отключить режим невидимости. Повторите попытку позже.", - "@turnOffInvisibleModeErrorTitle": { - "description": "Error title when turning off invisible mode failed." - } + "turnOnInvisibleModeErrorTitle": "Не удалось включить режим невидимости. Повторите попытку позже.", + "twoPeopleTyping": "{typist} и {otherTypist} набирают сообщения…", + "unknownChannelName": "(неизвестный канал)", + "unknownUserName": "(неизвестный пользователь)", + "unpinnedSubscriptionsLabel": "Откреплены", + "unsubscribeConfirmationDialogConfirmButton": "Отписаться", + "unsubscribeConfirmationDialogMessageMaybeCannotResubscribe": "Покинув этот канал, возможно, вы не сможете присоединиться вновь.", + "unsubscribeConfirmationDialogTitle": "Отменить подписку на {channelName}?", + "unsubscribeFailedTitle": "Не удалось отписаться", + "updateStatusErrorTitle": "Ошибка обновления статуса пользователя. Попробуйте ещё раз.", + "upgradeWelcomeDialogDismiss": "Приступим!", + "upgradeWelcomeDialogLinkText": "Ознакомьтесь с анонсом в блоге!", + "upgradeWelcomeDialogMessage": "Вы найдете привычные возможности в более быстром и легком приложении.", + "upgradeWelcomeDialogTitle": "Добро пожаловать в новое приложение Zulip!", + "userRoleAdministrator": "Администратор", + "userRoleGuest": "Гость", + "userRoleMember": "Участник", + "userRoleModerator": "Модератор", + "userRoleOwner": "Владелец", + "userRoleUnknown": "Неизвестно", + "userStatusAtTheOffice": "В офисе", + "userStatusBusy": "Занят/а", + "userStatusCommuting": "В дороге", + "userStatusInAMeeting": "На встрече", + "userStatusOutSick": "Болею", + "userStatusVacationing": "В отпуске", + "userStatusWorkingRemotely": "Работаю дистанционно", + "wildcardMentionAll": "все", + "wildcardMentionAllDmDescription": "Оповестить получателей", + "wildcardMentionChannel": "канал", + "wildcardMentionChannelDescription": "Оповестить канал", + "wildcardMentionEveryone": "каждый", + "wildcardMentionStream": "канал", + "wildcardMentionStreamDescription": "Оповестить канал", + "wildcardMentionTopic": "тема", + "wildcardMentionTopicDescription": "Оповестить тему", + "yesterday": "Вчера", + "zulipAppTitle": "Zulip" } diff --git a/assets/l10n/app_uk.arb b/assets/l10n/app_uk.arb index a83421c686..06d798fe5d 100644 --- a/assets/l10n/app_uk.arb +++ b/assets/l10n/app_uk.arb @@ -1,1196 +1,1412 @@ { - "tryAnotherAccountButton": "Спробуйте інший обліковий запис", - "@tryAnotherAccountButton": { - "description": "Label for loading screen button prompting user to try another account." + "@aboutPageAppVersion": { + "description": "Label for Zulip app version in About Zulip page" }, - "actionSheetOptionFollowTopic": "Підписатися на тему", - "@actionSheetOptionFollowTopic": { - "description": "Label for following a topic on action sheet." + "@aboutPageOpenSourceLicenses": { + "description": "Item title in About Zulip page to navigate to Licenses page" }, - "actionSheetOptionUnstarMessage": "Зняти позначку зірки з повідомлення", - "@actionSheetOptionUnstarMessage": { - "description": "Label for unstar button on action sheet." + "@aboutPageTapToView": { + "description": "Item subtitle in About Zulip page to navigate to Licenses page" }, - "errorAccountLoggedInTitle": "В обліковий запис уже ввійшли", - "@errorAccountLoggedInTitle": { - "description": "Error title on attempting to log into an account that's already logged in." + "@aboutPageTitle": { + "description": "Title for About Zulip page." }, - "errorAccountLoggedIn": "Обліковий запис {email} на {server} уже є у вашому списку облікових записів.", - "@errorAccountLoggedIn": { - "description": "Error message on attempting to log into an account that's already logged in.", - "placeholders": { - "email": { - "type": "String", - "example": "user@example.com" - }, - "server": { - "type": "String", - "example": "https://example.com" - } - } + "@actionSheetOptionCopyChannelLink": { + "description": "Label for copy channel link button on action sheet." }, - "composeBoxChannelContentHint": "Надіслати повідомлення {destination}", - "@composeBoxChannelContentHint": { - "description": "Hint text for content input when sending a message to a channel.", - "placeholders": { - "destination": { - "type": "String", - "example": "#channel name > topic name" - } - } + "@actionSheetOptionCopyMessageLink": { + "description": "Label for copy message link button on action sheet." }, - "errorConnectingToServerShort": "Помилка підключення до Zulip. Повторна спроба…", - "@errorConnectingToServerShort": { - "description": "Short error message for a generic unknown error connecting to the server." + "@actionSheetOptionCopyMessageText": { + "description": "Label for copy message text button on action sheet." }, - "dialogContinue": "Продовжити", - "@dialogContinue": { - "description": "Button label in dialogs to proceed." + "@actionSheetOptionCopyTopicLink": { + "description": "Label for copy topic link button in action sheet." }, - "errorSharingFailed": "Поширення не вдалося", - "@errorSharingFailed": { - "description": "Error message when sharing a message failed." + "@actionSheetOptionEditMessage": { + "description": "Label for the 'Edit message' button in the message action sheet." }, - "errorStarMessageFailedTitle": "Не вдалося позначити повідомлення зіркою", - "@errorStarMessageFailedTitle": { - "description": "Error title when starring a message failed." + "@actionSheetOptionFollowTopic": { + "description": "Label for following a topic on action sheet." }, - "errorUnstarMessageFailedTitle": "Не вдалося зняти позначку зірки з повідомлення", - "@errorUnstarMessageFailedTitle": { - "description": "Error title when unstarring a message failed." + "@actionSheetOptionHideMutedMessage": { + "description": "Label for hide muted message again button on action sheet." }, - "contentValidationErrorQuoteAndReplyInProgress": "Будь ласка, дочекайтеся завершення цитування.", - "@contentValidationErrorQuoteAndReplyInProgress": { - "description": "Content validation error message when a quotation has not completed yet." + "@actionSheetOptionListOfTopics": { + "description": "Label for navigating to a channel's topic-list page." }, - "successMessageLinkCopied": "Посилання на повідомлення скопійовано", - "@successMessageLinkCopied": { - "description": "Message when link of a message was copied to the user's system clipboard." + "@actionSheetOptionMarkAsUnread": { + "description": "Label for mark as unread button on action sheet." }, - "composeBoxSendTooltip": "Надіслати", - "@composeBoxSendTooltip": { - "description": "Tooltip for send button in compose box." + "@actionSheetOptionMarkChannelAsRead": { + "description": "Label for marking a channel as read." }, - "composeBoxLoadingMessage": "(завантаження повідомлення {messageId})", - "@composeBoxLoadingMessage": { - "description": "Placeholder in compose box showing the quoted message is currently loading.", - "placeholders": { - "messageId": { - "type": "int", - "example": "1234" - } - } + "@actionSheetOptionMarkTopicAsRead": { + "description": "Option to mark a specific topic as read in the action sheet." }, - "lightboxVideoDuration": "Довжина відео", - "@lightboxVideoDuration": { - "description": "The total duration of the video playing in the lightbox." + "@actionSheetOptionMuteTopic": { + "description": "Label for muting a topic on action sheet." }, - "aboutPageTapToView": "Натисніть, щоб переглянути", - "@aboutPageTapToView": { - "description": "Item subtitle in About Zulip page to navigate to Licenses page" + "@actionSheetOptionQuoteMessage": { + "description": "Label for the 'Quote message' button in the message action sheet." }, - "logOutConfirmationDialogConfirmButton": "Вийти", - "@logOutConfirmationDialogConfirmButton": { - "description": "Label for the 'Log out' button on a confirmation dialog for logging out." + "@actionSheetOptionResolveTopic": { + "description": "Label for the 'Mark as resolved' button on the topic action sheet." }, - "actionSheetOptionMarkTopicAsRead": "Позначити тему як прочитану", - "@actionSheetOptionMarkTopicAsRead": { - "description": "Option to mark a specific topic as read in the action sheet." + "@actionSheetOptionSeeWhoReacted": { + "description": "Label for the 'See who reacted' button in the message action sheet." }, - "errorCouldNotOpenLinkTitle": "Неможливо відкрити посилання", - "@errorCouldNotOpenLinkTitle": { - "description": "Error title when opening a link failed." + "@actionSheetOptionShare": { + "description": "Label for share button on action sheet." }, - "aboutPageTitle": "Про Zulip", - "@aboutPageTitle": { - "description": "Title for About Zulip page." + "@actionSheetOptionStarMessage": { + "description": "Label for star button on action sheet." }, - "permissionsNeededOpenSettings": "Відкрити налаштування", - "@permissionsNeededOpenSettings": { - "description": "Button label for permissions dialog button that opens the system settings screen." + "@actionSheetOptionSubscribe": { + "description": "Label in the channel action sheet for subscribing to the channel." }, - "actionSheetOptionMarkChannelAsRead": "Позначити канал як прочитаний", - "@actionSheetOptionMarkChannelAsRead": { - "description": "Label for marking a channel as read." + "@actionSheetOptionUnfollowTopic": { + "description": "Label for unfollowing a topic on action sheet." }, - "successMessageTextCopied": "Текст повідомлення скопійовано", - "@successMessageTextCopied": { - "description": "Message when content of a message was copied to the user's system clipboard." + "@actionSheetOptionUnmuteTopic": { + "description": "Label for unmuting a topic on action sheet." }, - "logOutConfirmationDialogTitle": "Вийти?", - "@logOutConfirmationDialogTitle": { - "description": "Title for a confirmation dialog for logging out." + "@actionSheetOptionUnresolveTopic": { + "description": "Label for the 'Mark as unresolved' button on the topic action sheet." }, - "actionSheetOptionMuteTopic": "Заглушити тему", - "@actionSheetOptionMuteTopic": { - "description": "Label for muting a topic on action sheet." + "@actionSheetOptionUnstarMessage": { + "description": "Label for unstar button on action sheet." }, - "tryAnotherAccountMessage": "Ваш обліковий запис на {url} завантажується деякий час.", - "@tryAnotherAccountMessage": { - "description": "Message that appears on the loading screen after waiting for some time.", - "url": { - "type": "String", - "example": "http://chat.example.com/" - } + "@actionSheetOptionUnsubscribe": { + "description": "Label in the channel action sheet for unsubscribing from the channel." }, - "errorCopyingFailed": "Помилка копіювання", - "@errorCopyingFailed": { - "description": "Error message when copying the text of a message to the user's system clipboard failed." + "@appVersionUnknownPlaceholder": { + "description": "Placeholder to show in place of the app version when it is unknown." }, - "logOutConfirmationDialogMessage": "Щоб використовувати цей обліковий запис у майбутньому, вам доведеться повторно ввести його дані та URL-адресу вашої організації.", - "@logOutConfirmationDialogMessage": { - "description": "Message for a confirmation dialog for logging out." + "@channelFeedButtonTooltip": { + "description": "Tooltip for button to navigate to a given channel's feed" }, - "errorWebAuthOperationalErrorTitle": "Щось пішло не так", - "@errorWebAuthOperationalErrorTitle": { - "description": "Error title when third-party authentication has an operational error (not necessarily caused by invalid credentials)." + "@channelsEmptyPlaceholder": { + "description": "Centered text on the 'Channels' page saying that there is no content to show." }, - "permissionsNeededTitle": "Потрібні дозволи", - "@permissionsNeededTitle": { - "description": "Title for dialog asking the user to grant additional permissions." + "@channelsPageTitle": { + "description": "Title for the page with a list of subscribed channels." }, - "permissionsDeniedCameraAccess": "Щоб завантажити зображення, надайте Zulip додаткові дозволи в налаштуваннях.", - "@permissionsDeniedCameraAccess": { - "description": "Message for dialog asking the user to grant permissions for camera access." + "@chooseAccountButtonAddAnAccount": { + "description": "Label for ChooseAccountPage button to add an account" }, - "permissionsDeniedReadExternalStorage": "Щоб завантажувати файли, надайте Zulip додаткові дозволи в налаштуваннях.", - "@permissionsDeniedReadExternalStorage": { - "description": "Message for dialog asking the user to grant permissions for external storage read access." + "@chooseAccountPageLogOutButton": { + "description": "Label for the 'Log out' button for an account on the choose-account page" }, - "actionSheetOptionStarMessage": "Вибрати повідомлення", - "@actionSheetOptionStarMessage": { - "description": "Label for star button on action sheet." + "@chooseAccountPageTitle": { + "description": "Title for the page to choose between Zulip accounts." }, - "actionSheetOptionUnresolveTopic": "Позначити як невирішене", - "@actionSheetOptionUnresolveTopic": { - "description": "Label for the 'Mark as unresolved' button on the topic action sheet." + "@combinedFeedPageTitle": { + "description": "Page title for the 'Combined feed' message view." }, - "composeBoxAttachFilesTooltip": "Прикріпити файли", "@composeBoxAttachFilesTooltip": { "description": "Tooltip for compose box icon to attach a file to the message." }, - "errorResolveTopicFailedTitle": "Не вдалося позначити тему як вирішену", - "@errorResolveTopicFailedTitle": { - "description": "Error title when marking a topic as resolved failed." + "@composeBoxAttachFromCameraTooltip": { + "description": "Tooltip for compose box icon to attach an image from the camera to the message." }, - "signInWithFoo": "Увійти з {method}", - "@signInWithFoo": { - "description": "Button to use {method} to sign in to the app.", - "placeholders": { - "method": { - "type": "String", - "example": "Google" - } - } + "@composeBoxAttachMediaTooltip": { + "description": "Tooltip for compose box icon to attach media to the message." }, - "aboutPageOpenSourceLicenses": "Ліцензії з відкритим кодом", - "@aboutPageOpenSourceLicenses": { - "description": "Item title in About Zulip page to navigate to Licenses page" + "@composeBoxBannerButtonCancel": { + "description": "Label text for the 'Cancel' button in the compose-box banner when you are editing a message." }, - "chooseAccountPageTitle": "Обрати обліковий запис", - "@chooseAccountPageTitle": { - "description": "Title for the page to choose between Zulip accounts." + "@composeBoxBannerButtonSave": { + "description": "Label text for the 'Save' button in the compose-box banner when you are editing a message." }, - "chooseAccountPageLogOutButton": "Вийти", - "@chooseAccountPageLogOutButton": { - "description": "Label for the 'Log out' button for an account on the choose-account page" + "@composeBoxBannerLabelEditMessage": { + "description": "Label text for the compose-box banner when you are editing a message." }, - "errorFailedToUploadFileTitle": "Не вдалося завантажити файл: {filename}", - "@errorFailedToUploadFileTitle": { - "description": "Error title when the specified file failed to upload.", + "@composeBoxChannelContentHint": { + "description": "Hint text for content input when sending a message to a channel.", "placeholders": { - "filename": { - "type": "String", - "example": "file.txt" + "destination": { + "example": "#channel name > topic name", + "type": "String" } } }, - "filenameAndSizeInMiB": "{filename}: {size} MiB", - "@filenameAndSizeInMiB": { - "description": "The name of a file, and its size in mebibytes.", + "@composeBoxDmContentHint": { + "description": "Hint text for content input when sending a message to one other person.", "placeholders": { - "filename": { - "type": "String", - "example": "foo.txt" - }, - "size": { - "type": "String", - "example": "20.2" + "user": { + "example": "channel name", + "type": "String" } } }, - "errorFilesTooLarge": "{num, plural, =1{Файл} other{{num} файли}} перевищують ліміт сервера в {maxFileUploadSizeMib} MiB і не будуть завантажені:\n\n{listMessage}", - "@errorFilesTooLarge": { - "description": "Error message when attached files are too large in size.", + "@composeBoxEnterTopicOrSkipHintText": { + "description": "Hint text for topic input widget in compose box when topics are optional.", "placeholders": { - "num": { - "type": "int", - "example": "2" - }, - "maxFileUploadSizeMib": { - "type": "int", - "example": "15" - }, - "listMessage": { - "type": "String", - "example": "foo.txt: 10.1 MiB\nbar.txt 20.2 MiB" + "defaultTopicName": { + "example": "general chat", + "type": "String" } } }, - "errorFilesTooLargeTitle": "{num, plural, =1{Файл} other{Файли}} занадто великий", - "@errorFilesTooLargeTitle": { - "description": "Error title when attached files are too large in size.", + "@composeBoxGenericContentHint": { + "description": "Hint text for content input when sending a message." + }, + "@composeBoxGroupDmContentHint": { + "description": "Hint text for content input when sending a message to a group." + }, + "@composeBoxLoadingMessage": { + "description": "Placeholder in compose box showing the quoted message is currently loading.", "placeholders": { - "num": { - "type": "int", - "example": "4" + "messageId": { + "example": "1234", + "type": "int" } } }, - "errorLoginFailedTitle": "Помилка входу", - "@errorLoginFailedTitle": { - "description": "Error title for login when signing into a Zulip server fails." + "@composeBoxSelfDmContentHint": { + "description": "Hint text for content input when sending a message to yourself." }, - "errorMessageNotSent": "Повідомлення не надіслано", - "@errorMessageNotSent": { - "description": "Error message for compose box when a message could not be sent." + "@composeBoxSendTooltip": { + "description": "Tooltip for send button in compose box." }, - "errorLoginCouldNotConnect": "Не вдалося підключитися до сервера:\n{url}", - "@errorLoginCouldNotConnect": { - "description": "Error message when the app could not connect to the server.", + "@composeBoxTopicHintText": { + "description": "Hint text for topic input widget in compose box." + }, + "@composeBoxUploadingFilename": { + "description": "Placeholder in compose box showing the specified file is currently uploading.", "placeholders": { - "url": { - "type": "String", - "example": "http://example.com/" + "filename": { + "example": "file.txt", + "type": "String" } } }, - "errorCouldNotConnectTitle": "Не вдалося підключитися", - "@errorCouldNotConnectTitle": { - "description": "Error title when the app could not connect to the server." - }, - "errorHandlingEventTitle": "Помилка обробки події Zulip. Повторна спроба підключення…", - "@errorHandlingEventTitle": { - "description": "Error title on failing to handle a Zulip server event." + "@contentValidationErrorEmpty": { + "description": "Content validation error message when the message is empty." }, - "errorMuteTopicFailed": "Не вдалося заглушити тему", - "@errorMuteTopicFailed": { - "description": "Error message when muting a topic failed." + "@contentValidationErrorQuoteAndReplyInProgress": { + "description": "Content validation error message when a quotation has not completed yet." }, - "errorUnmuteTopicFailed": "Не вдалося увімкнути тему", - "@errorUnmuteTopicFailed": { - "description": "Error message when unmuting a topic failed." + "@contentValidationErrorTooLong": { + "description": "Content validation error message when the message is too long." }, - "errorFollowTopicFailed": "Не вдалося підписатися на тему", - "@errorFollowTopicFailed": { - "description": "Error message when following a topic failed." + "@contentValidationErrorUploadInProgress": { + "description": "Content validation error message when attachments have not finished uploading." }, - "errorBannerCannotPostInChannelLabel": "Ви не маєте дозволу на публікацію в цьому каналі.", - "@errorBannerCannotPostInChannelLabel": { - "description": "Error-banner text replacing the compose box when you do not have permission to send a message to the channel." + "@dialogCancel": { + "description": "Button label in dialogs to cancel." }, - "composeBoxAttachMediaTooltip": "Додати зображення або відео", - "@composeBoxAttachMediaTooltip": { - "description": "Tooltip for compose box icon to attach media to the message." + "@dialogClose": { + "description": "Button label in dialogs to close." }, - "composeBoxAttachFromCameraTooltip": "Зробити фото", - "@composeBoxAttachFromCameraTooltip": { - "description": "Tooltip for compose box icon to attach an image from the camera to the message." + "@dialogContinue": { + "description": "Button label in dialogs to proceed." }, - "composeBoxGenericContentHint": "Ввести повідомлення", - "@composeBoxGenericContentHint": { - "description": "Hint text for content input when sending a message." + "@discardDraftConfirmationDialogConfirmButton": { + "description": "Label for the 'Discard' button on a confirmation dialog for discarding message text that was typed into the compose box." }, - "composeBoxDmContentHint": "Повідомлення @{user}", - "@composeBoxDmContentHint": { - "description": "Hint text for content input when sending a message to one other person.", - "placeholders": { - "user": { - "type": "String", - "example": "channel name" - } - } + "@discardDraftConfirmationDialogTitle": { + "description": "Title for a confirmation dialog for discarding message text that was typed into the compose box." }, - "composeBoxGroupDmContentHint": "Написати групі", - "@composeBoxGroupDmContentHint": { - "description": "Hint text for content input when sending a message to a group." + "@discardDraftForEditConfirmationDialogMessage": { + "description": "Message for a confirmation dialog for discarding message text that was typed into the compose box, when editing a message." }, - "unknownChannelName": "(невідомий канал)", - "@unknownChannelName": { - "description": "Replacement name for channel when it cannot be found in the store." + "@discardDraftForOutboxConfirmationDialogMessage": { + "description": "Message for a confirmation dialog when restoring an outbox message, for discarding message text that was typed into the compose box." }, - "composeBoxUploadingFilename": "Завантаження {filename}…", - "@composeBoxUploadingFilename": { - "description": "Placeholder in compose box showing the specified file is currently uploading.", + "@dmsWithOthersPageTitle": { + "description": "Message list page title for a DM group with others.", "placeholders": { - "filename": { - "type": "String", - "example": "file.txt" + "others": { + "example": "Alice, Bob", + "type": "String" } } }, - "unknownUserName": "(невідомий користувач)", - "@unknownUserName": { - "description": "Name placeholder to use for a user when we don't know their name." - }, - "dmsWithYourselfPageTitle": "Особисті повідомлення із собою", "@dmsWithYourselfPageTitle": { "description": "Message list page title for a DM group that only includes yourself." }, - "messageListGroupYouAndOthers": "Ви та {others}", - "@messageListGroupYouAndOthers": { - "description": "Message list recipient header for a DM group with others.", + "@editAlreadyInProgressMessage": { + "description": "Error message when a message edit cannot be saved because there is another edit already in progress." + }, + "@editAlreadyInProgressTitle": { + "description": "Error title when a message edit cannot be saved because there is another edit already in progress." + }, + "@emojiPickerSearchEmoji": { + "description": "Hint text for the emoji picker search text field." + }, + "@emojiReactionsMore": { + "description": "Label for a button opening the emoji picker." + }, + "@emptyMessageList": { + "description": "Placeholder for some message-list pages when there are no messages." + }, + "@emptyMessageListSearch": { + "description": "Placeholder for the 'Search' page when there are no messages." + }, + "@errorAccountLoggedIn": { + "description": "Error message on attempting to log into an account that's already logged in.", "placeholders": { - "others": { - "type": "String", - "example": "Alice, Bob" + "email": { + "example": "user@example.com", + "type": "String" + }, + "server": { + "example": "https://example.com", + "type": "String" } } }, - "dmsWithOthersPageTitle": "Особисті повідомлення з {others}", - "@dmsWithOthersPageTitle": { - "description": "Message list page title for a DM group with others.", + "@errorAccountLoggedInTitle": { + "description": "Error title on attempting to log into an account that's already logged in." + }, + "@errorBannerCannotPostInChannelLabel": { + "description": "Error-banner text replacing the compose box when you do not have permission to send a message to the channel." + }, + "@errorBannerDeactivatedDmLabel": { + "description": "Label text for error banner when sending a message to one or multiple deactivated users." + }, + "@errorConnectingToServerDetails": { + "description": "Dialog error message for a generic unknown error connecting to the server with details.", "placeholders": { - "others": { - "type": "String", - "example": "Alice, Bob" + "error": { + "example": "Invalid format", + "type": "String" + }, + "serverUrl": { + "example": "http://example.com/", + "type": "String" } } }, - "messageListGroupYouWithYourself": "Повідомлення з собою", - "@messageListGroupYouWithYourself": { - "description": "Message list recipient header for a DM group that only includes yourself." + "@errorConnectingToServerShort": { + "description": "Short error message for a generic unknown error connecting to the server." }, - "contentValidationErrorTooLong": "Довжина повідомлення не повинна перевищувати 10000 символів.", - "@contentValidationErrorTooLong": { - "description": "Content validation error message when the message is too long." + "@errorCopyingFailed": { + "description": "Error message when copying the text of a message to the user's system clipboard failed." }, - "contentValidationErrorEmpty": "Вам нема чого надсилати!", - "@contentValidationErrorEmpty": { - "description": "Content validation error message when the message is empty." + "@errorCouldNotConnectTitle": { + "description": "Error title when the app could not connect to the server." }, - "dialogCancel": "Відміна", - "@dialogCancel": { - "description": "Button label in dialogs to cancel." + "@errorCouldNotEditMessageTitle": { + "description": "Error title when an exception prevented us from opening the compose box for editing a message." }, - "dialogClose": "Закрити", - "@dialogClose": { - "description": "Button label in dialogs to close." + "@errorCouldNotFetchMessageSource": { + "description": "Error message when the source of a message could not be fetched." + }, + "@errorCouldNotOpenLink": { + "description": "Error message when opening a link failed.", + "placeholders": { + "url": { + "example": "https://chat.example.com", + "type": "String" + } + } + }, + "@errorCouldNotOpenLinkTitle": { + "description": "Error title when opening a link failed." + }, + "@errorCouldNotShowUserProfile": { + "description": "Message that appears on the user profile page when the profile cannot be shown." }, - "errorDialogContinue": "ОК", "@errorDialogContinue": { "description": "Button label in error dialogs to acknowledge the error and close the dialog." }, - "errorDialogTitle": "Помилка", + "@errorDialogLearnMore": { + "description": "Button label in error dialogs to open a web page with more information." + }, "@errorDialogTitle": { "description": "Generic title for error dialog." }, - "settingsPageTitle": "Налаштування", - "@settingsPageTitle": { - "description": "Title for the settings page." + "@errorFailedToUploadFileTitle": { + "description": "Error title when the specified file failed to upload.", + "placeholders": { + "filename": { + "example": "file.txt", + "type": "String" + } + } }, - "actionSheetOptionCopyMessageText": "Копіювати текст повідомлення", - "@actionSheetOptionCopyMessageText": { - "description": "Label for copy message text button on action sheet." + "@errorFilesTooLarge": { + "description": "Error message when attached files are too large in size.", + "placeholders": { + "listMessage": { + "example": "foo.txt: 10.1 MiB\nbar.txt 20.2 MiB", + "type": "String" + }, + "maxFileUploadSizeMib": { + "example": "15", + "type": "int" + }, + "num": { + "example": "2", + "type": "int" + } + } }, - "aboutPageAppVersion": "Версія додатку", - "@aboutPageAppVersion": { - "description": "Label for Zulip app version in About Zulip page" + "@errorFilesTooLargeTitle": { + "description": "Error title when attached files are too large in size.", + "placeholders": { + "num": { + "example": "4", + "type": "int" + } + } }, - "profileButtonSendDirectMessage": "Надіслати особисте повідомлення", - "@profileButtonSendDirectMessage": { - "description": "Label for button in profile screen to navigate to DMs with the shown user." + "@errorFollowTopicFailed": { + "description": "Error message when following a topic failed." }, - "errorLoginInvalidInputTitle": "Невірний вхід", - "@errorLoginInvalidInputTitle": { - "description": "Error title for login when input is invalid." + "@errorHandlingEventDetails": { + "description": "Error details on failing to handle a Zulip server event.", + "placeholders": { + "error": { + "example": "Unexpected null value", + "type": "String" + }, + "event": { + "example": "UpdateMessageEvent(id: 123, messageIds: [2345, 3456], newTopic: 'dinner')", + "type": "String" + }, + "serverUrl": { + "example": "https://chat.example.com", + "type": "String" + } + } }, - "contentValidationErrorUploadInProgress": "Дочекайтеся завершення завантаження.", - "@contentValidationErrorUploadInProgress": { - "description": "Content validation error message when attachments have not finished uploading." + "@errorHandlingEventTitle": { + "description": "Error title on failing to handle a Zulip server event." }, - "switchAccountButton": "Змінити обліковий запис", - "@switchAccountButton": { - "description": "Label for main-menu button leading to the choose-account page." + "@errorInvalidApiKeyMessage": { + "description": "Error message in the dialog for invalid API key.", + "placeholders": { + "url": { + "example": "http://chat.example.com/", + "type": "String" + } + } }, - "actionSheetOptionUnfollowTopic": "Відписатися від теми", - "@actionSheetOptionUnfollowTopic": { - "description": "Label for unfollowing a topic on action sheet." + "@errorInvalidResponse": { + "description": "Error message when an API call returned an invalid response." }, - "errorMessageDoesNotSeemToExist": "Здається, цього повідомлення не існує.", - "@errorMessageDoesNotSeemToExist": { - "description": "Error message when loading a message that does not exist." + "@errorLoginCouldNotConnect": { + "description": "Error message when the app could not connect to the server.", + "placeholders": { + "url": { + "example": "http://example.com/", + "type": "String" + } + } }, - "snackBarDetails": "Деталі", - "@snackBarDetails": { - "description": "Button label for snack bar button that opens a dialog with more details." + "@errorLoginFailedTitle": { + "description": "Error title for login when signing into a Zulip server fails." }, - "chooseAccountButtonAddAnAccount": "Додати обліковий запис", - "@chooseAccountButtonAddAnAccount": { - "description": "Label for ChooseAccountPage button to add an account" - }, - "actionSheetOptionMarkAsUnread": "Позначити як непрочитане звідси", - "@actionSheetOptionMarkAsUnread": { - "description": "Label for mark as unread button on action sheet." - }, - "errorBannerDeactivatedDmLabel": "Ви не можете надсилати повідомлення деактивованим користувачам.", - "@errorBannerDeactivatedDmLabel": { - "description": "Label text for error banner when sending a message to one or multiple deactivated users." + "@errorLoginInvalidInputTitle": { + "description": "Error title for login when input is invalid." }, - "errorCouldNotShowUserProfile": "Не вдалося показати профіль користувача.", - "@errorCouldNotShowUserProfile": { - "description": "Message that appears on the user profile page when the profile cannot be shown." + "@errorMalformedResponse": { + "description": "Error message when an API call fails because we could not parse the response.", + "placeholders": { + "httpStatus": { + "example": "200", + "type": "int" + } + } }, - "actionSheetOptionUnmuteTopic": "Увімкнути тему", - "@actionSheetOptionUnmuteTopic": { - "description": "Label for unmuting a topic on action sheet." + "@errorMalformedResponseWithCause": { + "description": "Error message when an API call fails because we could not parse the response, with details of the failure.", + "placeholders": { + "details": { + "example": "type 'Null' is not a subtype of type 'String' in type cast", + "type": "String" + }, + "httpStatus": { + "example": "200", + "type": "int" + } + } }, - "actionSheetOptionResolveTopic": "Позначити як вирішене", - "@actionSheetOptionResolveTopic": { - "description": "Label for the 'Mark as resolved' button on the topic action sheet." + "@errorMarkAsReadFailedTitle": { + "description": "Error title when mark as read action failed." }, - "errorUnresolveTopicFailedTitle": "Не вдалося позначити тему як невирішену", - "@errorUnresolveTopicFailedTitle": { - "description": "Error title when marking a topic as unresolved failed." + "@errorMarkAsUnreadFailedTitle": { + "description": "Error title when mark as unread action failed." }, - "actionSheetOptionCopyMessageLink": "Копіювати посилання на повідомлення", - "@actionSheetOptionCopyMessageLink": { - "description": "Label for copy message link button on action sheet." + "@errorMessageDoesNotSeemToExist": { + "description": "Error message when loading a message that does not exist." }, - "loginFormSubmitLabel": "Увійти", - "@loginFormSubmitLabel": { - "description": "Button text to submit login credentials." + "@errorMessageEditNotSaved": { + "description": "Error message for compose box when a message edit could not be saved." }, - "actionSheetOptionShare": "Поширити", - "@actionSheetOptionShare": { - "description": "Label for share button on action sheet." + "@errorMessageNotSent": { + "description": "Error message for compose box when a message could not be sent." }, - "errorWebAuthOperationalError": "Сталася неочікувана помилка.", - "@errorWebAuthOperationalError": { - "description": "Error message when third-party authentication has an operational error (not necessarily caused by invalid credentials)." + "@errorMuteTopicFailed": { + "description": "Error message when muting a topic failed." }, - "errorCouldNotFetchMessageSource": "Не вдалося отримати джерело повідомлення.", - "@errorCouldNotFetchMessageSource": { - "description": "Error message when the source of a message could not be fetched." + "@errorNetworkRequestFailed": { + "description": "Error message when a network request fails." }, - "loginPageTitle": "Увійти", - "@loginPageTitle": { - "description": "Title for login page." + "@errorNotificationOpenAccountNotFound": { + "description": "Error message when the account associated with the notification could not be found" }, - "composeBoxTopicHintText": "Тема", - "@composeBoxTopicHintText": { - "description": "Hint text for topic input widget in compose box." + "@errorNotificationOpenTitle": { + "description": "Error title when notification opening fails" }, - "errorQuotationFailed": "Помилка цитування", "@errorQuotationFailed": { "description": "Error message when quoting a message failed." }, - "errorServerMessage": "Сервер сказав:\n\n{message}", - "@errorServerMessage": { - "description": "Error message that quotes an error from the server.", - "placeholders": { - "message": { - "type": "String", - "example": "Invalid format" - } - } - }, - "composeBoxSelfDmContentHint": "Занотувати щось", - "@composeBoxSelfDmContentHint": { - "description": "Hint text for content input when sending a message to yourself." + "@errorReactionAddingFailedTitle": { + "description": "Error title when adding a message reaction fails" }, - "lightboxCopyLinkTooltip": "Копіювати посилання", - "@lightboxCopyLinkTooltip": { - "description": "Tooltip in lightbox for the copy link action." + "@errorReactionRemovingFailedTitle": { + "description": "Error title when removing a message reaction fails" }, - "errorConnectingToServerDetails": "Помилка підключення до Zulip на {serverUrl}. Буде повторена спроба:\n\n{error}", - "@errorConnectingToServerDetails": { - "description": "Dialog error message for a generic unknown error connecting to the server with details.", + "@errorRequestFailed": { + "description": "Error message when an API call fails.", "placeholders": { - "serverUrl": { - "type": "String", - "example": "http://example.com/" - }, - "error": { - "type": "String", - "example": "Invalid format" + "httpStatus": { + "example": "500", + "type": "int" } } }, - "successLinkCopied": "Посилання скопійовано", - "@successLinkCopied": { - "description": "Success message after copy link action completed." + "@errorResolveTopicFailedTitle": { + "description": "Error title when marking a topic as resolved failed." }, - "errorHandlingEventDetails": "Помилка обробки події Zulip із {serverUrl}; буде повторювати спробу.\n\nПомилка: {error}\n\nПодія: {event}", - "@errorHandlingEventDetails": { - "description": "Error details on failing to handle a Zulip server event.", + "@errorServerMessage": { + "description": "Error message that quotes an error from the server.", "placeholders": { - "serverUrl": { - "type": "String", - "example": "https://chat.example.com" - }, - "error": { - "type": "String", - "example": "Unexpected null value" - }, - "event": { - "type": "String", - "example": "UpdateMessageEvent(id: 123, messageIds: [2345, 3456], newTopic: 'dinner')" + "message": { + "example": "Invalid format", + "type": "String" } } }, - "errorUnfollowTopicFailed": "Не вдалося відписатися від теми", - "@errorUnfollowTopicFailed": { - "description": "Error message when unfollowing a topic failed." - }, - "errorCouldNotOpenLink": "Не вдалося відкрити посилання: {url}", - "@errorCouldNotOpenLink": { - "description": "Error message when opening a link failed.", + "@errorServerVersionUnsupportedMessage": { + "description": "Error message in the dialog for when the Zulip Server version is unsupported.", "placeholders": { + "minSupportedZulipVersion": { + "example": "4.0", + "type": "String" + }, "url": { - "type": "String", - "example": "https://chat.example.com" + "example": "http://chat.example.com/", + "type": "String" + }, + "zulipVersion": { + "example": "3.2", + "type": "String" } } }, - "lightboxVideoCurrentPosition": "Поточна позиція", - "@lightboxVideoCurrentPosition": { - "description": "The current playback position of the video playing in the lightbox." + "@errorSharingFailed": { + "description": "Error message when sharing a message failed." }, - "loginAddAnAccountPageTitle": "Додати обліковий запис", - "@loginAddAnAccountPageTitle": { - "description": "Title for page to add a Zulip account." + "@errorStarMessageFailedTitle": { + "description": "Error title when starring a message failed." }, - "loginMethodDivider": "АБО", - "@loginMethodDivider": { - "description": "Text on the divider between the username/password form and the third-party login options. Uppercase (for languages with letter case)." + "@errorUnfollowTopicFailed": { + "description": "Error message when unfollowing a topic failed." }, - "loginServerUrlLabel": "URL-адреса вашого сервера Zulip", - "@loginServerUrlLabel": { - "description": "Label in login page for Zulip server URL entry." + "@errorUnmuteTopicFailed": { + "description": "Error message when unmuting a topic failed." }, - "manyPeopleTyping": "Кілька людей друкують…", - "@manyPeopleTyping": { - "description": "Text to display when there are multiple users typing." + "@errorUnresolveTopicFailedTitle": { + "description": "Error title when marking a topic as unresolved failed." }, - "noEarlierMessages": "Немає попередніх повідомлень", - "@noEarlierMessages": { - "description": "Text to show at the start of a message list if there are no earlier messages." + "@errorUnstarMessageFailedTitle": { + "description": "Error title when unstarring a message failed." }, - "loginErrorMissingEmail": "Будь ласка, введіть свою електронну адресу.", - "@loginErrorMissingEmail": { - "description": "Error message when an empty email was provided." + "@errorVideoPlayerFailed": { + "description": "Error message when a video fails to play." }, - "loginPasswordLabel": "Пароль", - "@loginPasswordLabel": { - "description": "Label for password input field." + "@errorWebAuthOperationalError": { + "description": "Error message when third-party authentication has an operational error (not necessarily caused by invalid credentials)." }, - "errorDialogLearnMore": "Дізнайтися більше", - "@errorDialogLearnMore": { - "description": "Button label in error dialogs to open a web page with more information." + "@errorWebAuthOperationalErrorTitle": { + "description": "Error title when third-party authentication has an operational error (not necessarily caused by invalid credentials)." }, - "loginUsernameLabel": "Ім'я користувача", - "@loginUsernameLabel": { - "description": "Label for input when a username is required to log in." + "@experimentalFeatureSettingsPageTitle": { + "description": "Title of settings page for experimental, in-development features" }, - "topicValidationErrorMandatoryButEmpty": "Теми обовʼязкові в цій організації.", - "@topicValidationErrorMandatoryButEmpty": { - "description": "Topic validation error when topic is required but was empty." + "@experimentalFeatureSettingsWarning": { + "description": "Warning text on settings page for experimental, in-development features" }, - "errorServerVersionUnsupportedMessage": "{url} використовує Zulip Server {zulipVersion}, який не підтримується. Мінімальною підтримуваною версією є Zulip Server {minSupportedZulipVersion}.", - "@errorServerVersionUnsupportedMessage": { - "description": "Error message in the dialog for when the Zulip Server version is unsupported.", + "@filenameAndSizeInMiB": { + "description": "The name of a file, and its size in mebibytes.", "placeholders": { - "url": { - "type": "String", - "example": "http://chat.example.com/" - }, - "zulipVersion": { - "type": "String", - "example": "3.2" + "filename": { + "example": "foo.txt", + "type": "String" }, - "minSupportedZulipVersion": { - "type": "String", - "example": "4.0" + "size": { + "example": "20.2", + "type": "String" } } }, - "errorInvalidResponse": "Сервер надіслав недійсну відповідь.", - "@errorInvalidResponse": { - "description": "Error message when an API call returned an invalid response." - }, - "errorNetworkRequestFailed": "Помилка запиту мережі", - "@errorNetworkRequestFailed": { - "description": "Error message when a network request fails." + "@inboxEmptyPlaceholder": { + "description": "Centered text on the 'Inbox' page saying that there is no content to show." }, - "errorMalformedResponse": "Сервер дав неправильну відповідь; Статус HTTP {httpStatus}", - "@errorMalformedResponse": { - "description": "Error message when an API call fails because we could not parse the response.", - "placeholders": { - "httpStatus": { - "type": "int", - "example": "200" - } - } + "@inboxPageTitle": { + "description": "Title for the page with unreads." }, - "errorVideoPlayerFailed": "Неможливо відтворити відео.", - "@errorVideoPlayerFailed": { - "description": "Error message when a video fails to play." + "@initialAnchorSettingDescription": { + "description": "Description of setting controlling initial anchor of message list." }, - "serverUrlValidationErrorEmpty": "Будь ласка, введіть URL.", - "@serverUrlValidationErrorEmpty": { - "description": "Error message when URL is empty" + "@initialAnchorSettingFirstUnreadAlways": { + "description": "Label for a value of setting controlling initial anchor of message list." }, - "serverUrlValidationErrorInvalidUrl": "Введіть дійсну URL-адресу.", - "@serverUrlValidationErrorInvalidUrl": { - "description": "Error message when URL is not in a valid format." + "@initialAnchorSettingFirstUnreadConversations": { + "description": "Label for a value of setting controlling initial anchor of message list." }, - "spoilerDefaultHeaderText": "Спойлер", - "@spoilerDefaultHeaderText": { - "description": "The default header text in a spoiler block ( https://zulip.com/help/spoilers )." + "@initialAnchorSettingNewestAlways": { + "description": "Label for a value of setting controlling initial anchor of message list." }, - "markAllAsReadLabel": "Позначити всі повідомлення як прочитані", - "@markAllAsReadLabel": { - "description": "Button text to mark messages as read." + "@initialAnchorSettingTitle": { + "description": "Title of setting controlling initial anchor of message list." }, - "errorMarkAsReadFailedTitle": "Не вдалося позначити як прочитане", - "@errorMarkAsReadFailedTitle": { - "description": "Error title when mark as read action failed." + "@invisibleMode": { + "description": "Label for the 'Invisible mode' switch on the profile page." }, - "markAsUnreadComplete": "Позначено як непрочитані {num, plural, =1{1 повідомлення} other{{num} повідомлення}}.", - "@markAsUnreadComplete": { - "description": "Message when marking messages as unread has completed.", - "placeholders": { - "num": { - "type": "int", - "example": "4" - } - } + "@lightboxCopyLinkTooltip": { + "description": "Tooltip in lightbox for the copy link action." }, - "errorMarkAsUnreadFailedTitle": "Не вдалося позначити як непрочитане", - "@errorMarkAsUnreadFailedTitle": { - "description": "Error title when mark as unread action failed." + "@lightboxVideoCurrentPosition": { + "description": "The current playback position of the video playing in the lightbox." }, - "today": "Сьогодні", - "@today": { - "description": "Term to use to reference the current day." + "@lightboxVideoDuration": { + "description": "The total duration of the video playing in the lightbox." }, - "yesterday": "Учора", - "@yesterday": { - "description": "Term to use to reference the previous day." + "@logOutConfirmationDialogConfirmButton": { + "description": "Label for the 'Log out' button on a confirmation dialog for logging out." }, - "inboxPageTitle": "Вхідні", - "@inboxPageTitle": { - "description": "Title for the page with unreads." + "@logOutConfirmationDialogMessage": { + "description": "Message for a confirmation dialog for logging out." }, - "mentionsPageTitle": "Згадки", - "@mentionsPageTitle": { - "description": "Page title for the 'Mentions' message view." + "@logOutConfirmationDialogTitle": { + "description": "Title for a confirmation dialog for logging out." }, - "starredMessagesPageTitle": "Вибрані повідомлення", - "@starredMessagesPageTitle": { - "description": "Page title for the 'Starred messages' message view." + "@loginAddAnAccountPageTitle": { + "description": "Title for page to add a Zulip account." }, - "mainMenuMyProfile": "Мій профіль", - "@mainMenuMyProfile": { - "description": "Label for main-menu button leading to the user's own profile." + "@loginEmailLabel": { + "description": "Label for input when an email is required to log in." }, - "channelFeedButtonTooltip": "Стрічка каналу", - "@channelFeedButtonTooltip": { - "description": "Tooltip for button to navigate to a given channel's feed" + "@loginErrorMissingEmail": { + "description": "Error message when an empty email was provided." }, - "notifGroupDmConversationLabel": "{senderFullName} вам і {numOthers, plural, =1{1 іншому} other{{numOthers} іншим}}", - "@notifGroupDmConversationLabel": { - "description": "Label for a group DM conversation notification.", - "placeholders": { - "senderFullName": { - "type": "String", - "example": "Alice" - }, - "numOthers": { - "type": "int", - "example": "4" - } - } + "@loginErrorMissingPassword": { + "description": "Error message when an empty password was provided." }, - "pinnedSubscriptionsLabel": "Закріплені", - "@pinnedSubscriptionsLabel": { - "description": "Label for the list of pinned subscribed channels." + "@loginErrorMissingUsername": { + "description": "Error message when an empty username was provided." }, - "unpinnedSubscriptionsLabel": "Відкріплені", - "@unpinnedSubscriptionsLabel": { - "description": "Label for the list of unpinned subscribed channels." + "@loginFormSubmitLabel": { + "description": "Button text to submit login credentials." }, - "notifSelfUser": "Ви", - "@notifSelfUser": { - "description": "Display name for the user themself, to show after replying in an Android notification" + "@loginHidePassword": { + "description": "Icon label for button to hide password in input form." }, - "onePersonTyping": "{typist} друкує…", - "@onePersonTyping": { - "description": "Text to display when there is one user typing.", + "@loginMethodDivider": { + "description": "Text on the divider between the username/password form and the third-party login options. Uppercase (for languages with letter case)." + }, + "@loginPageTitle": { + "description": "Title for login page." + }, + "@loginPasswordLabel": { + "description": "Label for password input field." + }, + "@loginServerUrlLabel": { + "description": "Label in login page for Zulip server URL entry." + }, + "@loginUsernameLabel": { + "description": "Label for input when a username is required to log in." + }, + "@mainMenuMyProfile": { + "description": "Label for main-menu button leading to the user's own profile." + }, + "@manyPeopleTyping": { + "description": "Text to display when there are multiple users typing." + }, + "@markAllAsReadLabel": { + "description": "Button text to mark messages as read." + }, + "@markAsReadComplete": { + "description": "Message when marking messages as read has completed.", "placeholders": { - "typist": { - "type": "String", - "example": "Alice" + "num": { + "example": "4", + "type": "int" } } }, - "twoPeopleTyping": "{typist} і {otherTypist} друкують…", - "@twoPeopleTyping": { - "description": "Text to display when there are two users typing.", + "@markAsReadInProgress": { + "description": "Progress message when marking messages as read." + }, + "@markAsUnreadComplete": { + "description": "Message when marking messages as unread has completed.", "placeholders": { - "typist": { - "type": "String", - "example": "Alice" - }, - "otherTypist": { - "type": "String", - "example": "Bob" + "num": { + "example": "4", + "type": "int" } } }, - "wildcardMentionAll": "усі", - "@wildcardMentionAll": { - "description": "Text for \"@all\" wildcard-mention autocomplete option when writing a channel or DM message." + "@markAsUnreadInProgress": { + "description": "Progress message when marking messages as unread." }, - "wildcardMentionEveryone": "усі", - "@wildcardMentionEveryone": { - "description": "Text for \"@everyone\" wildcard-mention autocomplete option when writing a channel or DM message." + "@markReadOnScrollSettingAlways": { + "description": "Label for a value of setting controlling which message-list views should mark read on scroll." }, - "wildcardMentionChannel": "канал", - "@wildcardMentionChannel": { - "description": "Text for \"@channel\" wildcard-mention autocomplete option when writing a channel message." + "@markReadOnScrollSettingConversations": { + "description": "Label for a value of setting controlling which message-list views should mark read on scroll." }, - "wildcardMentionAllDmDescription": "Повідомити одержувачів", - "@wildcardMentionAllDmDescription": { - "description": "Description for \"@all\" and \"@everyone\" wildcard-mention autocomplete options when writing a DM message." + "@markReadOnScrollSettingConversationsDescription": { + "description": "Description for a value of setting controlling which message-list views should mark read on scroll." }, - "wildcardMentionTopicDescription": "Повідомити канал", - "@wildcardMentionTopicDescription": { - "description": "Description for \"@topic\" wildcard-mention autocomplete options when writing a channel message." + "@markReadOnScrollSettingDescription": { + "description": "Description of setting controlling which message-list views should mark read on scroll." + }, + "@markReadOnScrollSettingNever": { + "description": "Label for a value of setting controlling which message-list views should mark read on scroll." + }, + "@markReadOnScrollSettingTitle": { + "description": "Title of setting controlling which message-list views should mark read on scroll." + }, + "@mentionsPageTitle": { + "description": "Page title for the 'Mentions' message view." }, - "messageIsEditedLabel": "РЕДАГОВАНО", "@messageIsEditedLabel": { "description": "Label for an edited message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" }, - "messageIsMovedLabel": "ПЕРЕМІЩЕНО", "@messageIsMovedLabel": { "description": "Label for a moved message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" }, - "pollVoterNames": "({voterNames})", - "@pollVoterNames": { - "description": "The list of people who voted for a poll option, wrapped in parentheses.", + "@messageListGroupYouAndOthers": { + "description": "Message list recipient header for a DM group with others.", "placeholders": { - "voterNames": { - "type": "String", - "example": "Alice, Bob, Chad" + "others": { + "example": "Alice, Bob", + "type": "String" } } }, - "themeSettingTitle": "ТЕМА", - "@themeSettingTitle": { - "description": "Title for theme setting. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + "@messageListGroupYouWithYourself": { + "description": "Message list recipient header for a DM group that only includes yourself." }, - "themeSettingDark": "Темна", - "@themeSettingDark": { - "description": "Label for dark theme setting." + "@messageNotSentLabel": { + "description": "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.)" }, - "themeSettingLight": "Світла", - "@themeSettingLight": { - "description": "Label for light theme setting." + "@mutedUser": { + "description": "Name for a muted user to display all over the app." }, - "pollWidgetQuestionMissing": "Немає питання.", - "@pollWidgetQuestionMissing": { - "description": "Text to display for a poll when the question is missing" + "@newDmFabButtonLabel": { + "description": "Label for the floating action button (FAB) that opens the new DM sheet." }, - "pollWidgetOptionsMissing": "У цьому опитуванні ще немає варіантів.", - "@pollWidgetOptionsMissing": { - "description": "Text to display for a poll when it has no options" + "@newDmSheetComposeButtonLabel": { + "description": "Label for the compose button in the new DM sheet that starts composing a message to the selected users." }, - "experimentalFeatureSettingsPageTitle": "Експериментальні функції", - "@experimentalFeatureSettingsPageTitle": { - "description": "Title of settings page for experimental, in-development features" + "@newDmSheetNoUsersFound": { + "description": "Message shown in the new DM sheet when no users match the search." }, - "emojiPickerSearchEmoji": "Пошук емодзі", - "@emojiPickerSearchEmoji": { - "description": "Hint text for the emoji picker search text field." + "@newDmSheetScreenTitle": { + "description": "Title displayed at the top of the new DM screen." }, - "scrollToBottomTooltip": "Прокрутити вниз", - "@scrollToBottomTooltip": { - "description": "Tooltip for button to scroll to bottom." + "@newDmSheetSearchHintEmpty": { + "description": "Hint text for the search bar when no users are selected" }, - "appVersionUnknownPlaceholder": "(…)", - "@appVersionUnknownPlaceholder": { - "description": "Placeholder to show in place of the app version when it is unknown." + "@newDmSheetSearchHintSomeSelected": { + "description": "Hint text for the search bar when at least one user is selected." }, - "zulipAppTitle": "Zulip", - "@zulipAppTitle": { - "description": "The name of Zulip. This should be either 'Zulip' or a transliteration." + "@noEarlierMessages": { + "description": "Text to show at the start of a message list if there are no earlier messages." }, - "loginEmailLabel": "Адреса електронної пошти", - "@loginEmailLabel": { - "description": "Label for input when an email is required to log in." + "@noStatusText": { + "description": "The text part of the status button sub-label in self-user profile page when status text is not set." }, - "channelsPageTitle": "Канали", - "@channelsPageTitle": { - "description": "Title for the page with a list of subscribed channels." + "@notifGroupDmConversationLabel": { + "description": "Label for a group DM conversation notification.", + "placeholders": { + "numOthers": { + "example": "4", + "type": "int" + }, + "senderFullName": { + "example": "Alice", + "type": "String" + } + } }, - "themeSettingSystem": "Системна", - "@themeSettingSystem": { - "description": "Label for system theme setting." + "@notifSelfUser": { + "description": "Display name for the user themself, to show after replying in an Android notification" }, - "loginErrorMissingUsername": "Введіть своє ім'я користувача.", - "@loginErrorMissingUsername": { - "description": "Error message when an empty username was provided." + "@onePersonTyping": { + "description": "Text to display when there is one user typing.", + "placeholders": { + "typist": { + "example": "Alice", + "type": "String" + } + } }, - "markAsReadInProgress": "Позначення повідомлень як прочитаних…", - "@markAsReadInProgress": { - "description": "Progress message when marking messages as read." + "@openLinksWithInAppBrowser": { + "description": "Label for toggling setting to open links with in-app browser" }, - "recentDmConversationsSectionHeader": "Особисті повідомлення", - "@recentDmConversationsSectionHeader": { - "description": "Heading for direct messages section on the 'Inbox' message view." + "@permissionsDeniedCameraAccess": { + "description": "Message for dialog asking the user to grant permissions for camera access." }, - "errorNotificationOpenTitle": "Не вдалося відкрити сповіщення", - "@errorNotificationOpenTitle": { - "description": "Error title when notification opening fails" + "@permissionsDeniedReadExternalStorage": { + "description": "Message for dialog asking the user to grant permissions for external storage read access." }, - "loginErrorMissingPassword": "Будь ласка, введіть свій пароль.", - "@loginErrorMissingPassword": { - "description": "Error message when an empty password was provided." + "@permissionsNeededOpenSettings": { + "description": "Button label for permissions dialog button that opens the system settings screen." }, - "loginHidePassword": "Приховати пароль", - "@loginHidePassword": { - "description": "Icon label for button to hide password in input form." + "@permissionsNeededTitle": { + "description": "Title for dialog asking the user to grant additional permissions." }, - "errorRequestFailed": "Помилка мережевого запиту: статус HTTP {httpStatus}", - "@errorRequestFailed": { - "description": "Error message when an API call fails.", + "@pinnedSubscriptionsLabel": { + "description": "Label for the list of pinned subscribed channels." + }, + "@pollVoterNames": { + "description": "The list of people who voted for a poll option, wrapped in parentheses.", "placeholders": { - "httpStatus": { - "type": "int", - "example": "500" + "voterNames": { + "example": "Alice, Bob, Chad", + "type": "String" } } }, - "userRoleGuest": "Гість", - "@userRoleGuest": { - "description": "Label for UserRole.guest" + "@pollWidgetOptionsMissing": { + "description": "Text to display for a poll when it has no options" }, - "userRoleAdministrator": "Адміністратор", - "@userRoleAdministrator": { - "description": "Label for UserRole.administrator" + "@pollWidgetQuestionMissing": { + "description": "Text to display for a poll when the question is missing" }, - "userRoleUnknown": "Невідомо", - "@userRoleUnknown": { - "description": "Label for UserRole.unknown" + "@preparingEditMessageContentInput": { + "description": "Hint text for content input when the compose box is preparing to edit a message." }, - "topicValidationErrorTooLong": "Довжина теми не повинна перевищувати 60 символів.", - "@topicValidationErrorTooLong": { - "description": "Topic validation error when topic is too long." + "@profileButtonSendDirectMessage": { + "description": "Label for button in profile screen to navigate to DMs with the shown user." }, - "serverUrlValidationErrorUnsupportedScheme": "URL-адреса сервера має починатися з http:// або https://.", - "@serverUrlValidationErrorUnsupportedScheme": { - "description": "Error message when URL has an unsupported scheme." + "@reactedEmojiSelfUser": { + "description": "Display name for the user themself, to show on an emoji reaction added by the user." }, - "markAsReadComplete": "Позначено як прочитані {num, plural, =1{1 повідомлення} other{{num} повідомлення}}.", - "@markAsReadComplete": { - "description": "Message when marking messages as read has completed.", + "@reactionChipLabel": { + "description": "Text describing a reaction chip, with the emoji name and a list or number of votes. (An accessibility label for assistive technology.)", "placeholders": { - "num": { - "type": "int", - "example": "4" + "emojiName": { + "example": "working_on_it", + "type": "String" + }, + "votes": { + "example": "You, Chris, Greg", + "type": "String" } } }, - "userRoleOwner": "Власник", - "@userRoleOwner": { - "description": "Label for UserRole.owner" + "@reactionChipVotesYouAndOthers": { + "description": "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.)", + "placeholders": { + "otherUsersCount": { + "example": "4", + "type": "int" + } + } }, - "errorInvalidApiKeyMessage": "Ваш обліковий запис на {url} не вдалося автентифікувати. Спробуйте увійти ще раз або скористайтеся іншим обліковим записом.", - "@errorInvalidApiKeyMessage": { - "description": "Error message in the dialog for invalid API key.", + "@reactionChipsLabel": { + "description": "Text identifying the container of reaction chips on a message. (An accessibility label for assistive technology.)" + }, + "@recentDmConversationsEmptyPlaceholder": { + "description": "Centered text on the 'Direct messages' page saying that there is no content to show." + }, + "@recentDmConversationsPageTitle": { + "description": "Title for the page with a list of DM conversations." + }, + "@recentDmConversationsSectionHeader": { + "description": "Heading for direct messages section on the 'Inbox' message view." + }, + "@revealButtonLabel": { + "description": "Label for the button revealing hidden message from a muted sender in message list." + }, + "@savingMessageEditFailedLabel": { + "description": "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.)" + }, + "@savingMessageEditLabel": { + "description": "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.)" + }, + "@scrollToBottomTooltip": { + "description": "Tooltip for button to scroll to bottom." + }, + "@searchMessagesClearButtonTooltip": { + "description": "Tooltip for the 'x' button in the search text field." + }, + "@searchMessagesHintText": { + "description": "Hint text for the message search text field." + }, + "@searchMessagesPageTitle": { + "description": "Page title for the 'Search' message view." + }, + "@seeWhoReactedSheetEmojiNameWithVoteCount": { + "description": "In the 'See who reacted' sheet, an emoji reaction's name and how many votes it has. (An accessibility label for assistive technology.)", "placeholders": { - "url": { - "type": "String", - "example": "http://chat.example.com/" + "emojiName": { + "example": "working_on_it", + "type": "String" + }, + "num": { + "example": "2", + "type": "int" } } }, - "errorMalformedResponseWithCause": "Сервер дав неправильну відповідь; Статус HTTP {httpStatus}; {details}", - "@errorMalformedResponseWithCause": { - "description": "Error message when an API call fails because we could not parse the response, with details of the failure.", + "@seeWhoReactedSheetHeaderLabel": { + "description": "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.)", "placeholders": { - "httpStatus": { - "type": "int", - "example": "200" + "num": { + "example": "2", + "type": "int" + } + } + }, + "@seeWhoReactedSheetNoReactions": { + "description": "Explanation on the 'See who reacted' sheet when the message has no reactions (because they were removed after the sheet was opened)." + }, + "@seeWhoReactedSheetUserListLabel": { + "description": "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.)", + "placeholders": { + "emojiName": { + "example": "working_on_it", + "type": "String" }, - "details": { - "type": "String", - "example": "type 'Null' is not a subtype of type 'String' in type cast" + "num": { + "example": "2", + "type": "int" } } }, - "serverUrlValidationErrorNoUseEmail": "Введіть URL-адресу сервера, а не свою електронну адресу.", + "@serverUrlValidationErrorEmpty": { + "description": "Error message when URL is empty" + }, + "@serverUrlValidationErrorInvalidUrl": { + "description": "Error message when URL is not in a valid format." + }, "@serverUrlValidationErrorNoUseEmail": { "description": "Error message when URL looks like an email" }, - "markAsUnreadInProgress": "Позначення повідомлень як непрочитаних…", - "@markAsUnreadInProgress": { - "description": "Progress message when marking messages as unread." + "@serverUrlValidationErrorUnsupportedScheme": { + "description": "Error message when URL has an unsupported scheme." }, - "userRoleModerator": "Модератор", - "@userRoleModerator": { - "description": "Label for UserRole.moderator" + "@setStatusPageTitle": { + "description": "Title for the 'Set status' page." }, - "userRoleMember": "Учасник", - "@userRoleMember": { - "description": "Label for UserRole.member" + "@settingsPageTitle": { + "description": "Title for the settings page." }, - "recentDmConversationsPageTitle": "Особисті повідомлення", - "@recentDmConversationsPageTitle": { - "description": "Title for the page with a list of DM conversations." + "@signInWithFoo": { + "description": "Button to use {method} to sign in to the app.", + "placeholders": { + "method": { + "example": "Google", + "type": "String" + } + } }, - "combinedFeedPageTitle": "Об'єднана стрічка", - "@combinedFeedPageTitle": { - "description": "Page title for the 'Combined feed' message view." + "@snackBarDetails": { + "description": "Button label for snack bar button that opens a dialog with more details." }, - "reactedEmojiSelfUser": "Ви", - "@reactedEmojiSelfUser": { - "description": "Display name for the user themself, to show on an emoji reaction added by the user." + "@spoilerDefaultHeaderText": { + "description": "The default header text in a spoiler block ( https://zulip.com/help/spoilers )." }, - "wildcardMentionStream": "канал", - "@wildcardMentionStream": { - "description": "Text for \"@stream\" wildcard-mention autocomplete option when writing a channel message in older servers." + "@starredMessagesPageTitle": { + "description": "Page title for the 'Starred messages' message view." }, - "wildcardMentionTopic": "тема", - "@wildcardMentionTopic": { - "description": "Text for \"@topic\" wildcard-mention autocomplete option when writing a channel message." + "@statusButtonLabelStatusSet": { + "description": "The status button label in self-user profile page when status is set." }, - "wildcardMentionChannelDescription": "Повідомити канал", - "@wildcardMentionChannelDescription": { - "description": "Description for \"@all\", \"@everyone\", \"@channel\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message." + "@statusButtonLabelStatusUnset": { + "description": "The status button label in self-user profile page when status is not set." }, - "wildcardMentionStreamDescription": "Повідомити канал", - "@wildcardMentionStreamDescription": { - "description": "Description for \"@all\", \"@everyone\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message in older servers." + "@statusClearButtonLabel": { + "description": "Label for the button that clears the user status, in 'Set status' page." }, - "openLinksWithInAppBrowser": "Відкривати посилання за допомогою браузера додатку", - "@openLinksWithInAppBrowser": { - "description": "Label for toggling setting to open links with in-app browser" + "@statusSaveButtonLabel": { + "description": "Label for the button that saves the user status, in 'Set status' page." }, - "experimentalFeatureSettingsWarning": "Ці опції вмикають функції, які ще розробляються та не готові. Вони можуть не працювати та викликати проблеми в інших місцях додатку.\n\nМетою цих налаштувань є експериментування людьми, що працюють над розробкою Zulip.", - "@experimentalFeatureSettingsWarning": { - "description": "Warning text on settings page for experimental, in-development features" + "@statusTextHint": { + "description": "Hint text for the status text input field in 'Set status' page." }, - "errorReactionAddingFailedTitle": "Не вдалося додати реакцію", - "@errorReactionAddingFailedTitle": { - "description": "Error title when adding a message reaction fails" + "@subscribeFailedTitle": { + "description": "Error title when subscribing to a channel failed." }, - "errorReactionRemovingFailedTitle": "Не вдалося видалити реакцію", - "@errorReactionRemovingFailedTitle": { - "description": "Error title when removing a message reaction fails" + "@successChannelLinkCopied": { + "description": "Message when link of a channel was copied to the user's system clipboard." }, - "emojiReactionsMore": "більше", - "@emojiReactionsMore": { - "description": "Label for a button opening the emoji picker." + "@successLinkCopied": { + "description": "Success message after copy link action completed." }, - "newDmSheetSearchHintEmpty": "Додати користувачів", - "@newDmSheetSearchHintEmpty": { - "description": "Hint text for the search bar when no users are selected" + "@successMessageLinkCopied": { + "description": "Message when link of a message was copied to the user's system clipboard." }, - "newDmSheetSearchHintSomeSelected": "Додати ще…", - "@newDmSheetSearchHintSomeSelected": { - "description": "Hint text for the search bar when at least one user is selected." + "@successMessageTextCopied": { + "description": "Message when content of a message was copied to the user's system clipboard." }, - "newDmSheetComposeButtonLabel": "Написати", - "@newDmSheetComposeButtonLabel": { - "description": "Label for the compose button in the new DM sheet that starts composing a message to the selected users." + "@successTopicLinkCopied": { + "description": "Message when link of a topic was copied to the user's system clipboard." }, - "channelsEmptyPlaceholder": "Ви ще не підписані на жодний канал.", - "@channelsEmptyPlaceholder": { - "description": "Centered text on the 'Channels' page saying that there is no content to show." + "@switchAccountButton": { + "description": "Label for main-menu button leading to the choose-account page." }, - "recentDmConversationsEmptyPlaceholder": "У вас поки що немає особистих повідомлень! Чому б не розпочати бесіду?", - "@recentDmConversationsEmptyPlaceholder": { - "description": "Centered text on the 'Direct messages' page saying that there is no content to show." + "@themeSettingDark": { + "description": "Label for dark theme setting." }, - "inboxEmptyPlaceholder": "Немає непрочитаних вхідних повідомлень. Використовуйте кнопки знизу для перегляду обʼєднаної стрічки або списку каналів.", - "@inboxEmptyPlaceholder": { - "description": "Centered text on the 'Inbox' page saying that there is no content to show." + "@themeSettingLight": { + "description": "Label for light theme setting." }, - "actionSheetOptionListOfTopics": "Список тем", - "@actionSheetOptionListOfTopics": { - "description": "Label for navigating to a channel's topic-list page." + "@themeSettingSystem": { + "description": "Label for system theme setting." }, - "composeBoxBannerButtonCancel": "Відміна", - "@composeBoxBannerButtonCancel": { - "description": "Label text for the 'Cancel' button in the compose-box banner when you are editing a message." + "@themeSettingTitle": { + "description": "Title for theme setting. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" }, - "editAlreadyInProgressTitle": "Неможливо редагувати повідомлення", - "@editAlreadyInProgressTitle": { - "description": "Error title when a message edit cannot be saved because there is another edit already in progress." + "@today": { + "description": "Term to use to reference the current day." + }, + "@topicValidationErrorMandatoryButEmpty": { + "description": "Topic validation error when topic is required but was empty." + }, + "@topicValidationErrorTooLong": { + "description": "Topic validation error when topic is too long." }, - "topicsButtonTooltip": "Теми", "@topicsButtonTooltip": { "description": "Tooltip for button to navigate to topic-list page." }, - "actionSheetOptionHideMutedMessage": "Сховати заглушене повідомлення", - "@actionSheetOptionHideMutedMessage": { - "description": "Label for hide muted message again button on action sheet." + "@tryAnotherAccountButton": { + "description": "Label for loading screen button prompting user to try another account." }, - "composeBoxBannerLabelEditMessage": "Редагування повідомлення", - "@composeBoxBannerLabelEditMessage": { - "description": "Label text for the compose-box banner when you are editing a message." + "@tryAnotherAccountMessage": { + "description": "Message that appears on the loading screen after waiting for some time.", + "url": { + "example": "http://chat.example.com/", + "type": "String" + } }, - "discardDraftForEditConfirmationDialogMessage": "При редагуванні повідомлення, текст з поля для редагування видаляється.", - "@discardDraftForEditConfirmationDialogMessage": { - "description": "Message for a confirmation dialog for discarding message text that was typed into the compose box, when editing a message." + "@turnOffInvisibleModeErrorTitle": { + "description": "Error title when turning off invisible mode failed." }, - "newDmSheetScreenTitle": "Нове особисте повідомлення", - "@newDmSheetScreenTitle": { - "description": "Title displayed at the top of the new DM screen." + "@turnOnInvisibleModeErrorTitle": { + "description": "Error title when turning on invisible mode failed." }, - "newDmFabButtonLabel": "Нове особисте повідомлення", - "@newDmFabButtonLabel": { - "description": "Label for the floating action button (FAB) that opens the new DM sheet." + "@twoPeopleTyping": { + "description": "Text to display when there are two users typing.", + "placeholders": { + "otherTypist": { + "example": "Bob", + "type": "String" + }, + "typist": { + "example": "Alice", + "type": "String" + } + } }, - "newDmSheetNoUsersFound": "Користувачі не знайдені", - "@newDmSheetNoUsersFound": { - "description": "Message shown in the new DM sheet when no users match the search." + "@unknownChannelName": { + "description": "Replacement name for channel when it cannot be found in the store." }, - "revealButtonLabel": "Показати повідомлення заглушеного відправника", - "@revealButtonLabel": { - "description": "Label for the button revealing hidden message from a muted sender in message list." + "@unknownUserName": { + "description": "Name placeholder to use for a user when we don't know their name." }, - "messageNotSentLabel": "ПОВІДОМЛЕННЯ НЕ ВІДПРАВЛЕНО", - "@messageNotSentLabel": { - "description": "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.)" + "@unpinnedSubscriptionsLabel": { + "description": "Label for the list of unpinned subscribed channels." }, - "errorNotificationOpenAccountNotFound": "Обліковий запис, звʼязаний з цим сповіщенням, не знайдений.", - "@errorNotificationOpenAccountNotFound": { - "description": "Error message when the account associated with the notification could not be found" + "@unsubscribeConfirmationDialogConfirmButton": { + "description": "Label for the 'Unsubscribe' button on a confirmation dialog for unsubscribing from a channel." }, - "actionSheetOptionEditMessage": "Редагувати повідомлення", - "@actionSheetOptionEditMessage": { - "description": "Label for the 'Edit message' button in the message action sheet." + "@unsubscribeConfirmationDialogMessageMaybeCannotResubscribe": { + "description": "Message for a confirmation dialog for unsubscribing from a channel when you might not have permission to resubscribe." }, - "errorMessageEditNotSaved": "Повідомлення не збережено", - "@errorMessageEditNotSaved": { - "description": "Error message for compose box when a message edit could not be saved." + "@unsubscribeConfirmationDialogTitle": { + "description": "Title for a confirmation dialog for unsubscribing from a channel.", + "placeholders": { + "channelName": { + "example": "mobile", + "type": "String" + } + } }, - "errorCouldNotEditMessageTitle": "Не вдалося редагувати повідомлення", - "@errorCouldNotEditMessageTitle": { - "description": "Error title when an exception prevented us from opening the compose box for editing a message." + "@unsubscribeFailedTitle": { + "description": "Error title when unsubscribing from a channel failed." }, - "composeBoxBannerButtonSave": "Зберегти", - "@composeBoxBannerButtonSave": { - "description": "Label text for the 'Save' button in the compose-box banner when you are editing a message." + "@updateStatusErrorTitle": { + "description": "Error title when updating user status failed." }, - "editAlreadyInProgressMessage": "Редагування уже виконується. Дочекайтеся його завершення.", - "@editAlreadyInProgressMessage": { - "description": "Error message when a message edit cannot be saved because there is another edit already in progress." + "@upgradeWelcomeDialogDismiss": { + "description": "Label for button dismissing dialog shown on first upgrade from the legacy Zulip app." }, - "savingMessageEditLabel": "ЗБЕРЕЖЕННЯ ПРАВОК…", - "@savingMessageEditLabel": { - "description": "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.)" + "@upgradeWelcomeDialogLinkText": { + "description": "Text of link in dialog shown on first upgrade from the legacy Zulip app." }, - "savingMessageEditFailedLabel": "ПРАВКИ НЕ ЗБЕРЕЖЕНІ", - "@savingMessageEditFailedLabel": { - "description": "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.)" + "@upgradeWelcomeDialogMessage": { + "description": "Message text for dialog shown on first upgrade from the legacy Zulip app." }, - "discardDraftConfirmationDialogTitle": "Відмовитися від написаного повідомлення?", - "@discardDraftConfirmationDialogTitle": { - "description": "Title for a confirmation dialog for discarding message text that was typed into the compose box." + "@upgradeWelcomeDialogTitle": { + "description": "Title for dialog shown on first upgrade from the legacy Zulip app." }, - "discardDraftConfirmationDialogConfirmButton": "Скинути", - "@discardDraftConfirmationDialogConfirmButton": { - "description": "Label for the 'Discard' button on a confirmation dialog for discarding message text that was typed into the compose box." + "@userRoleAdministrator": { + "description": "Label for UserRole.administrator" }, - "preparingEditMessageContentInput": "Підготовка…", - "@preparingEditMessageContentInput": { - "description": "Hint text for content input when the compose box is preparing to edit a message." + "@userRoleGuest": { + "description": "Label for UserRole.guest" }, - "composeBoxEnterTopicOrSkipHintText": "Вкажіть тему (або залиште “{defaultTopicName}”)", - "@composeBoxEnterTopicOrSkipHintText": { - "description": "Hint text for topic input widget in compose box when topics are optional.", - "placeholders": { - "defaultTopicName": { - "type": "String", - "example": "general chat" - } - } + "@userRoleMember": { + "description": "Label for UserRole.member" }, - "mutedUser": "Заглушений користувач", - "@mutedUser": { - "description": "Name for a muted user to display all over the app." + "@userRoleModerator": { + "description": "Label for UserRole.moderator" }, - "initialAnchorSettingFirstUnreadAlways": "Перше непрочитане повідомлення", - "@initialAnchorSettingFirstUnreadAlways": { - "description": "Label for a value of setting controlling initial anchor of message list." + "@userRoleOwner": { + "description": "Label for UserRole.owner" }, - "upgradeWelcomeDialogTitle": "Ласкаво просимо у новий додаток Zulip!", - "@upgradeWelcomeDialogTitle": { - "description": "Title for dialog shown on first upgrade from the legacy Zulip app." + "@userRoleUnknown": { + "description": "Label for UserRole.unknown" }, - "upgradeWelcomeDialogLinkText": "Ознайомтесь з анонсом у блозі!", - "@upgradeWelcomeDialogLinkText": { - "description": "Text of link in dialog shown on first upgrade from the legacy Zulip app." + "@userStatusAtTheOffice": { + "description": "A suggested user status text, 'At the office'." }, - "upgradeWelcomeDialogDismiss": "Ходімо!", - "@upgradeWelcomeDialogDismiss": { - "description": "Label for button dismissing dialog shown on first upgrade from the legacy Zulip app." + "@userStatusBusy": { + "description": "A suggested user status text, 'Busy'." }, - "initialAnchorSettingTitle": "Де відкривати стрічку повідомлень", - "@initialAnchorSettingTitle": { - "description": "Title of setting controlling initial anchor of message list." + "@userStatusCommuting": { + "description": "A suggested user status text, 'Commuting'." }, - "initialAnchorSettingNewestAlways": "Найновіше повідомлення", - "@initialAnchorSettingNewestAlways": { - "description": "Label for a value of setting controlling initial anchor of message list." + "@userStatusInAMeeting": { + "description": "A suggested user status text, 'In a meeting'." }, - "initialAnchorSettingFirstUnreadConversations": "Перше непрочитане повідомлення при перегляді бесід, найновіше у інших місцях", - "@initialAnchorSettingFirstUnreadConversations": { - "description": "Label for a value of setting controlling initial anchor of message list." + "@userStatusOutSick": { + "description": "A suggested user status text, 'Out sick'." }, - "upgradeWelcomeDialogMessage": "Ви знайдете звичні можливості у більш швидкому і легкому додатку.", - "@upgradeWelcomeDialogMessage": { - "description": "Message text for dialog shown on first upgrade from the legacy Zulip app." + "@userStatusVacationing": { + "description": "A suggested user status text, 'Vacationing'." }, - "initialAnchorSettingDescription": "Можна відкривати стрічку повідомлень на першому непрочитаному повідомленні або на найновішому.", - "@initialAnchorSettingDescription": { - "description": "Description of setting controlling initial anchor of message list." + "@userStatusWorkingRemotely": { + "description": "A suggested user status text, 'Working remotely'." }, - "markReadOnScrollSettingDescription": "При прокручуванні повідомлень автоматично відмічати їх як прочитані?", - "@markReadOnScrollSettingDescription": { - "description": "Description of setting controlling which message-list views should mark read on scroll." + "@wildcardMentionAll": { + "description": "Text for \"@all\" wildcard-mention autocomplete option when writing a channel or DM message." }, - "markReadOnScrollSettingNever": "Ніколи", - "@markReadOnScrollSettingNever": { - "description": "Label for a value of setting controlling which message-list views should mark read on scroll." + "@wildcardMentionAllDmDescription": { + "description": "Description for \"@all\" and \"@everyone\" wildcard-mention autocomplete options when writing a DM message." }, - "markReadOnScrollSettingConversations": "Тільки при перегляді бесід", - "@markReadOnScrollSettingConversations": { - "description": "Label for a value of setting controlling which message-list views should mark read on scroll." + "@wildcardMentionChannel": { + "description": "Text for \"@channel\" wildcard-mention autocomplete option when writing a channel message." }, - "markReadOnScrollSettingAlways": "Завжди", - "@markReadOnScrollSettingAlways": { - "description": "Label for a value of setting controlling which message-list views should mark read on scroll." + "@wildcardMentionChannelDescription": { + "description": "Description for \"@all\", \"@everyone\", \"@channel\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message." }, - "markReadOnScrollSettingTitle": "Відмічати повідомлення як прочитані при прокручуванні", - "@markReadOnScrollSettingTitle": { - "description": "Title of setting controlling which message-list views should mark read on scroll." + "@wildcardMentionEveryone": { + "description": "Text for \"@everyone\" wildcard-mention autocomplete option when writing a channel or DM message." }, - "actionSheetOptionQuoteMessage": "Цитувати повідомлення", - "@actionSheetOptionQuoteMessage": { - "description": "Label for the 'Quote message' button in the message action sheet." + "@wildcardMentionStream": { + "description": "Text for \"@stream\" wildcard-mention autocomplete option when writing a channel message in older servers." }, - "discardDraftForOutboxConfirmationDialogMessage": "При відновленні невідправленого повідомлення, вміст поля редагування очищається.", - "@discardDraftForOutboxConfirmationDialogMessage": { - "description": "Message for a confirmation dialog when restoring an outbox message, for discarding message text that was typed into the compose box." + "@wildcardMentionStreamDescription": { + "description": "Description for \"@all\", \"@everyone\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message in older servers." + }, + "@wildcardMentionTopic": { + "description": "Text for \"@topic\" wildcard-mention autocomplete option when writing a channel message." + }, + "@wildcardMentionTopicDescription": { + "description": "Description for \"@topic\" wildcard-mention autocomplete options when writing a channel message." }, + "@yesterday": { + "description": "Term to use to reference the previous day." + }, + "@zulipAppTitle": { + "description": "The name of Zulip. This should be either 'Zulip' or a transliteration." + }, + "aboutPageAppVersion": "Версія додатку", + "aboutPageOpenSourceLicenses": "Ліцензії з відкритим кодом", + "aboutPageTapToView": "Натисніть, щоб переглянути", + "aboutPageTitle": "Про Zulip", + "actionSheetOptionCopyChannelLink": "Копіювати посилання на канал", + "actionSheetOptionCopyMessageLink": "Копіювати посилання на повідомлення", + "actionSheetOptionCopyMessageText": "Копіювати текст повідомлення", + "actionSheetOptionCopyTopicLink": "Копіювати посилання на тему", + "actionSheetOptionEditMessage": "Редагувати повідомлення", + "actionSheetOptionFollowTopic": "Підписатися на тему", + "actionSheetOptionHideMutedMessage": "Сховати заглушене повідомлення", + "actionSheetOptionListOfTopics": "Список тем", + "actionSheetOptionMarkAsUnread": "Позначити як непрочитане звідси", + "actionSheetOptionMarkChannelAsRead": "Позначити канал як прочитаний", + "actionSheetOptionMarkTopicAsRead": "Позначити тему як прочитану", + "actionSheetOptionMuteTopic": "Заглушити тему", + "actionSheetOptionQuoteMessage": "Цитувати повідомлення", + "actionSheetOptionResolveTopic": "Позначити як вирішене", + "actionSheetOptionSeeWhoReacted": "Дивіться, хто відреагував", + "actionSheetOptionShare": "Поширити", + "actionSheetOptionStarMessage": "Вибрати повідомлення", + "actionSheetOptionSubscribe": "Підписатися", + "actionSheetOptionUnfollowTopic": "Відписатися від теми", + "actionSheetOptionUnmuteTopic": "Увімкнути тему", + "actionSheetOptionUnresolveTopic": "Позначити як невирішене", + "actionSheetOptionUnstarMessage": "Зняти позначку зірки з повідомлення", + "actionSheetOptionUnsubscribe": "Скасувати підписку", + "appVersionUnknownPlaceholder": "(…)", + "channelFeedButtonTooltip": "Стрічка каналу", + "channelsEmptyPlaceholder": "Ви ще не підписані на жодний канал.", + "channelsPageTitle": "Канали", + "chooseAccountButtonAddAnAccount": "Додати обліковий запис", + "chooseAccountPageLogOutButton": "Вийти", + "chooseAccountPageTitle": "Обрати обліковий запис", + "combinedFeedPageTitle": "Об'єднана стрічка", + "composeBoxAttachFilesTooltip": "Прикріпити файли", + "composeBoxAttachFromCameraTooltip": "Зробити фото", + "composeBoxAttachMediaTooltip": "Додати зображення або відео", + "composeBoxBannerButtonCancel": "Відміна", + "composeBoxBannerButtonSave": "Зберегти", + "composeBoxBannerLabelEditMessage": "Редагування повідомлення", + "composeBoxChannelContentHint": "Надіслати повідомлення {destination}", + "composeBoxDmContentHint": "Повідомлення @{user}", + "composeBoxEnterTopicOrSkipHintText": "Вкажіть тему (або залиште “{defaultTopicName}”)", + "composeBoxGenericContentHint": "Ввести повідомлення", + "composeBoxGroupDmContentHint": "Написати групі", + "composeBoxLoadingMessage": "(завантаження повідомлення {messageId})", + "composeBoxSelfDmContentHint": "Занотувати щось", + "composeBoxSendTooltip": "Надіслати", + "composeBoxTopicHintText": "Тема", + "composeBoxUploadingFilename": "Завантаження {filename}…", + "contentValidationErrorEmpty": "Вам нема чого надсилати!", + "contentValidationErrorQuoteAndReplyInProgress": "Будь ласка, дочекайтеся завершення цитування.", + "contentValidationErrorTooLong": "Довжина повідомлення не повинна перевищувати 10000 символів.", + "contentValidationErrorUploadInProgress": "Дочекайтеся завершення завантаження.", + "dialogCancel": "Відміна", + "dialogClose": "Закрити", + "dialogContinue": "Продовжити", + "discardDraftConfirmationDialogConfirmButton": "Скинути", + "discardDraftConfirmationDialogTitle": "Відмовитися від написаного повідомлення?", + "discardDraftForEditConfirmationDialogMessage": "При редагуванні повідомлення, текст з поля для редагування видаляється.", + "discardDraftForOutboxConfirmationDialogMessage": "При відновленні невідправленого повідомлення, вміст поля редагування очищається.", + "dmsWithOthersPageTitle": "Особисті повідомлення з {others}", + "dmsWithYourselfPageTitle": "Особисті повідомлення із собою", + "editAlreadyInProgressMessage": "Редагування уже виконується. Дочекайтеся його завершення.", + "editAlreadyInProgressTitle": "Неможливо редагувати повідомлення", + "emojiPickerSearchEmoji": "Пошук емодзі", + "emojiReactionsMore": "більше", + "emptyMessageList": "Тут немає повідомлень.", + "emptyMessageListSearch": "Немає результатів пошуку.", + "errorAccountLoggedIn": "Обліковий запис {email} на {server} уже є у вашому списку облікових записів.", + "errorAccountLoggedInTitle": "В обліковий запис уже ввійшли", + "errorBannerCannotPostInChannelLabel": "Ви не маєте дозволу на публікацію в цьому каналі.", + "errorBannerDeactivatedDmLabel": "Ви не можете надсилати повідомлення деактивованим користувачам.", + "errorConnectingToServerDetails": "Помилка підключення до Zulip на {serverUrl}. Буде повторена спроба:\n\n{error}", + "errorConnectingToServerShort": "Помилка підключення до Zulip. Повторна спроба…", + "errorCopyingFailed": "Помилка копіювання", + "errorCouldNotConnectTitle": "Не вдалося підключитися", + "errorCouldNotEditMessageTitle": "Не вдалося редагувати повідомлення", + "errorCouldNotFetchMessageSource": "Не вдалося отримати джерело повідомлення.", + "errorCouldNotOpenLink": "Не вдалося відкрити посилання: {url}", + "errorCouldNotOpenLinkTitle": "Неможливо відкрити посилання", + "errorCouldNotShowUserProfile": "Не вдалося показати профіль користувача.", + "errorDialogContinue": "ОК", + "errorDialogLearnMore": "Дізнайтися більше", + "errorDialogTitle": "Помилка", + "errorFailedToUploadFileTitle": "Не вдалося завантажити файл: {filename}", + "errorFilesTooLarge": "{num, plural, =1{Файл} other{{num} файли}} перевищують ліміт сервера в {maxFileUploadSizeMib} MiB і не будуть завантажені:\n\n{listMessage}", + "errorFilesTooLargeTitle": "{num, plural, =1{Файл} other{Файли}} занадто великий", + "errorFollowTopicFailed": "Не вдалося підписатися на тему", + "errorHandlingEventDetails": "Помилка обробки події Zulip із {serverUrl}; буде повторювати спробу.\n\nПомилка: {error}\n\nПодія: {event}", + "errorHandlingEventTitle": "Помилка обробки події Zulip. Повторна спроба підключення…", + "errorInvalidApiKeyMessage": "Ваш обліковий запис на {url} не вдалося автентифікувати. Спробуйте увійти ще раз або скористайтеся іншим обліковим записом.", + "errorInvalidResponse": "Сервер надіслав недійсну відповідь.", + "errorLoginCouldNotConnect": "Не вдалося підключитися до сервера:\n{url}", + "errorLoginFailedTitle": "Помилка входу", + "errorLoginInvalidInputTitle": "Невірний вхід", + "errorMalformedResponse": "Сервер дав неправильну відповідь; Статус HTTP {httpStatus}", + "errorMalformedResponseWithCause": "Сервер дав неправильну відповідь; Статус HTTP {httpStatus}; {details}", + "errorMarkAsReadFailedTitle": "Не вдалося позначити як прочитане", + "errorMarkAsUnreadFailedTitle": "Не вдалося позначити як непрочитане", + "errorMessageDoesNotSeemToExist": "Здається, цього повідомлення не існує.", + "errorMessageEditNotSaved": "Повідомлення не збережено", + "errorMessageNotSent": "Повідомлення не надіслано", + "errorMuteTopicFailed": "Не вдалося заглушити тему", + "errorNetworkRequestFailed": "Помилка запиту мережі", + "errorNotificationOpenAccountNotFound": "Обліковий запис, звʼязаний з цим сповіщенням, не знайдений.", + "errorNotificationOpenTitle": "Не вдалося відкрити сповіщення", + "errorQuotationFailed": "Помилка цитування", + "errorReactionAddingFailedTitle": "Не вдалося додати реакцію", + "errorReactionRemovingFailedTitle": "Не вдалося видалити реакцію", + "errorRequestFailed": "Помилка мережевого запиту: статус HTTP {httpStatus}", + "errorResolveTopicFailedTitle": "Не вдалося позначити тему як вирішену", + "errorServerMessage": "Сервер сказав:\n\n{message}", + "errorServerVersionUnsupportedMessage": "{url} використовує Zulip Server {zulipVersion}, який не підтримується. Мінімальною підтримуваною версією є Zulip Server {minSupportedZulipVersion}.", + "errorSharingFailed": "Поширення не вдалося", + "errorStarMessageFailedTitle": "Не вдалося позначити повідомлення зіркою", + "errorUnfollowTopicFailed": "Не вдалося відписатися від теми", + "errorUnmuteTopicFailed": "Не вдалося увімкнути тему", + "errorUnresolveTopicFailedTitle": "Не вдалося позначити тему як невирішену", + "errorUnstarMessageFailedTitle": "Не вдалося зняти позначку зірки з повідомлення", + "errorVideoPlayerFailed": "Неможливо відтворити відео.", + "errorWebAuthOperationalError": "Сталася неочікувана помилка.", + "errorWebAuthOperationalErrorTitle": "Щось пішло не так", + "experimentalFeatureSettingsPageTitle": "Експериментальні функції", + "experimentalFeatureSettingsWarning": "Ці опції вмикають функції, які ще розробляються та не готові. Вони можуть не працювати та викликати проблеми в інших місцях додатку.\n\nМетою цих налаштувань є експериментування людьми, що працюють над розробкою Zulip.", + "filenameAndSizeInMiB": "{filename}: {size} MiB", + "inboxEmptyPlaceholder": "Немає непрочитаних вхідних повідомлень. Використовуйте кнопки знизу для перегляду обʼєднаної стрічки або списку каналів.", + "inboxPageTitle": "Вхідні", + "initialAnchorSettingDescription": "Можна відкривати стрічку повідомлень на першому непрочитаному повідомленні або на найновішому.", + "initialAnchorSettingFirstUnreadAlways": "Перше непрочитане повідомлення", + "initialAnchorSettingFirstUnreadConversations": "Перше непрочитане повідомлення при перегляді бесід, найновіше у інших місцях", + "initialAnchorSettingNewestAlways": "Найновіше повідомлення", + "initialAnchorSettingTitle": "Де відкривати стрічку повідомлень", + "invisibleMode": "Невидимий режим", + "lightboxCopyLinkTooltip": "Копіювати посилання", + "lightboxVideoCurrentPosition": "Поточна позиція", + "lightboxVideoDuration": "Довжина відео", + "logOutConfirmationDialogConfirmButton": "Вийти", + "logOutConfirmationDialogMessage": "Щоб використовувати цей обліковий запис у майбутньому, вам доведеться повторно ввести його дані та URL-адресу вашої організації.", + "logOutConfirmationDialogTitle": "Вийти?", + "loginAddAnAccountPageTitle": "Додати обліковий запис", + "loginEmailLabel": "Адреса електронної пошти", + "loginErrorMissingEmail": "Будь ласка, введіть свою електронну адресу.", + "loginErrorMissingPassword": "Будь ласка, введіть свій пароль.", + "loginErrorMissingUsername": "Введіть своє ім'я користувача.", + "loginFormSubmitLabel": "Увійти", + "loginHidePassword": "Приховати пароль", + "loginMethodDivider": "АБО", + "loginPageTitle": "Увійти", + "loginPasswordLabel": "Пароль", + "loginServerUrlLabel": "URL-адреса вашого сервера Zulip", + "loginUsernameLabel": "Ім'я користувача", + "mainMenuMyProfile": "Мій профіль", + "manyPeopleTyping": "Кілька людей друкують…", + "markAllAsReadLabel": "Позначити всі повідомлення як прочитані", + "markAsReadComplete": "Позначено як прочитані {num, plural, =1{1 повідомлення} other{{num} повідомлення}}.", + "markAsReadInProgress": "Позначення повідомлень як прочитаних…", + "markAsUnreadComplete": "Позначено як непрочитані {num, plural, =1{1 повідомлення} other{{num} повідомлення}}.", + "markAsUnreadInProgress": "Позначення повідомлень як непрочитаних…", + "markReadOnScrollSettingAlways": "Завжди", + "markReadOnScrollSettingConversations": "Тільки при перегляді бесід", "markReadOnScrollSettingConversationsDescription": "Повідомлення будуть автоматично помічатися як прочитані тільки при перегляді окремої теми або особистої бесіди.", - "@markReadOnScrollSettingConversationsDescription": { - "description": "Description for a value of setting controlling which message-list views should mark read on scroll." - } + "markReadOnScrollSettingDescription": "При прокручуванні повідомлень автоматично відмічати їх як прочитані?", + "markReadOnScrollSettingNever": "Ніколи", + "markReadOnScrollSettingTitle": "Відмічати повідомлення як прочитані при прокручуванні", + "mentionsPageTitle": "Згадки", + "messageIsEditedLabel": "РЕДАГОВАНО", + "messageIsMovedLabel": "ПЕРЕМІЩЕНО", + "messageListGroupYouAndOthers": "Ви та {others}", + "messageListGroupYouWithYourself": "Повідомлення з собою", + "messageNotSentLabel": "ПОВІДОМЛЕННЯ НЕ ВІДПРАВЛЕНО", + "mutedUser": "Заглушений користувач", + "newDmFabButtonLabel": "Нове особисте повідомлення", + "newDmSheetComposeButtonLabel": "Написати", + "newDmSheetNoUsersFound": "Користувачі не знайдені", + "newDmSheetScreenTitle": "Нове особисте повідомлення", + "newDmSheetSearchHintEmpty": "Додати користувачів", + "newDmSheetSearchHintSomeSelected": "Додати ще…", + "noEarlierMessages": "Немає попередніх повідомлень", + "noStatusText": "Немає тексту статусу", + "notifGroupDmConversationLabel": "{senderFullName} вам і {numOthers, plural, =1{1 іншому} other{{numOthers} іншим}}", + "notifSelfUser": "Ви", + "onePersonTyping": "{typist} друкує…", + "openLinksWithInAppBrowser": "Відкривати посилання за допомогою браузера додатку", + "permissionsDeniedCameraAccess": "Щоб завантажити зображення, надайте Zulip додаткові дозволи в налаштуваннях.", + "permissionsDeniedReadExternalStorage": "Щоб завантажувати файли, надайте Zulip додаткові дозволи в налаштуваннях.", + "permissionsNeededOpenSettings": "Відкрити налаштування", + "permissionsNeededTitle": "Потрібні дозволи", + "pinnedSubscriptionsLabel": "Закріплені", + "pollVoterNames": "({voterNames})", + "pollWidgetOptionsMissing": "У цьому опитуванні ще немає варіантів.", + "pollWidgetQuestionMissing": "Немає питання.", + "preparingEditMessageContentInput": "Підготовка…", + "profileButtonSendDirectMessage": "Надіслати особисте повідомлення", + "reactedEmojiSelfUser": "Ви", + "reactionChipLabel": "{emojiName}: {votes}", + "reactionChipVotesYouAndOthers": "{otherUsersCount, plural, =1{Ви та ще 1 особа} other{Ви і {otherUsersCount} інші}}", + "reactionChipsLabel": "Реакції", + "recentDmConversationsEmptyPlaceholder": "У вас поки що немає особистих повідомлень! Чому б не розпочати бесіду?", + "recentDmConversationsPageTitle": "Особисті повідомлення", + "recentDmConversationsSectionHeader": "Особисті повідомлення", + "revealButtonLabel": "Показати повідомлення", + "savingMessageEditFailedLabel": "ПРАВКИ НЕ ЗБЕРЕЖЕНІ", + "savingMessageEditLabel": "ЗБЕРЕЖЕННЯ ПРАВОК…", + "scrollToBottomTooltip": "Прокрутити вниз", + "searchMessagesClearButtonTooltip": "Очистити", + "searchMessagesHintText": "Пошук", + "searchMessagesPageTitle": "Пошук", + "seeWhoReactedSheetEmojiNameWithVoteCount": "{emojiName}: {num, plural, =1{1 голосу} other{{num} голоси}}", + "seeWhoReactedSheetHeaderLabel": "Реакції емодзі (загалом {num})", + "seeWhoReactedSheetNoReactions": "На це повідомлення немає реакцій.", + "seeWhoReactedSheetUserListLabel": "Голоси за {emojiName} ({num})", + "serverUrlValidationErrorEmpty": "Будь ласка, введіть URL.", + "serverUrlValidationErrorInvalidUrl": "Введіть дійсну URL-адресу.", + "serverUrlValidationErrorNoUseEmail": "Введіть URL-адресу сервера, а не свою електронну адресу.", + "serverUrlValidationErrorUnsupportedScheme": "URL-адреса сервера має починатися з http:// або https://.", + "setStatusPageTitle": "Встановити статус", + "settingsPageTitle": "Налаштування", + "signInWithFoo": "Увійти з {method}", + "snackBarDetails": "Деталі", + "spoilerDefaultHeaderText": "Спойлер", + "starredMessagesPageTitle": "Вибрані повідомлення", + "statusButtonLabelStatusSet": "Статус", + "statusButtonLabelStatusUnset": "Встановити статус", + "statusClearButtonLabel": "Очистити", + "statusSaveButtonLabel": "Зберегти", + "statusTextHint": "Ваш статус", + "subscribeFailedTitle": "Не вдалося підписатися", + "successChannelLinkCopied": "Посилання на канал скопійовано", + "successLinkCopied": "Посилання скопійовано", + "successMessageLinkCopied": "Посилання на повідомлення скопійовано", + "successMessageTextCopied": "Текст повідомлення скопійовано", + "successTopicLinkCopied": "Посилання на тему скопійовано", + "switchAccountButton": "Змінити обліковий запис", + "themeSettingDark": "Темна", + "themeSettingLight": "Світла", + "themeSettingSystem": "Системна", + "themeSettingTitle": "ТЕМА", + "today": "Сьогодні", + "topicValidationErrorMandatoryButEmpty": "Теми обовʼязкові в цій організації.", + "topicValidationErrorTooLong": "Довжина теми не повинна перевищувати 60 символів.", + "topicsButtonTooltip": "Теми", + "tryAnotherAccountButton": "Спробуйте інший обліковий запис", + "tryAnotherAccountMessage": "Ваш обліковий запис на {url} завантажується деякий час.", + "turnOffInvisibleModeErrorTitle": "Помилка вимкнення режиму невидимості. Спробуйте ще раз.", + "turnOnInvisibleModeErrorTitle": "Помилка ввімкнення режиму невидимості. Спробуйте ще раз.", + "twoPeopleTyping": "{typist} і {otherTypist} друкують…", + "unknownChannelName": "(невідомий канал)", + "unknownUserName": "(невідомий користувач)", + "unpinnedSubscriptionsLabel": "Відкріплені", + "unsubscribeConfirmationDialogConfirmButton": "Скасувати підписку", + "unsubscribeConfirmationDialogMessageMaybeCannotResubscribe": "Після того, як ви залишите цей канал, ви, можливо, не зможете приєднатися знову.", + "unsubscribeConfirmationDialogTitle": "Відписатися від {channelName}?", + "unsubscribeFailedTitle": "Не вдалося скасувати підписку", + "updateStatusErrorTitle": "Помилка оновлення статусу користувача. Спробуйте ще раз.", + "upgradeWelcomeDialogDismiss": "Ходімо!", + "upgradeWelcomeDialogLinkText": "Ознайомтесь з анонсом у блозі!", + "upgradeWelcomeDialogMessage": "Ви знайдете звичні можливості у більш швидкому і легкому додатку.", + "upgradeWelcomeDialogTitle": "Ласкаво просимо у новий додаток Zulip!", + "userRoleAdministrator": "Адміністратор", + "userRoleGuest": "Гість", + "userRoleMember": "Учасник", + "userRoleModerator": "Модератор", + "userRoleOwner": "Власник", + "userRoleUnknown": "Невідомо", + "userStatusAtTheOffice": "В офісі", + "userStatusBusy": "Зайнятий", + "userStatusCommuting": "Поїздки на роботу", + "userStatusInAMeeting": "На зустрічі", + "userStatusOutSick": "Хворий", + "userStatusVacationing": "Відпустка", + "userStatusWorkingRemotely": "Працюємо віддалено", + "wildcardMentionAll": "усі", + "wildcardMentionAllDmDescription": "Повідомити одержувачів", + "wildcardMentionChannel": "канал", + "wildcardMentionChannelDescription": "Повідомити канал", + "wildcardMentionEveryone": "усі", + "wildcardMentionStream": "канал", + "wildcardMentionStreamDescription": "Повідомити канал", + "wildcardMentionTopic": "тема", + "wildcardMentionTopicDescription": "Повідомити канал", + "yesterday": "Учора", + "zulipAppTitle": "Zulip" } diff --git a/assets/l10n/app_zh_Hant_TW.arb b/assets/l10n/app_zh_Hant_TW.arb index 076a7b452a..dcb8475653 100644 --- a/assets/l10n/app_zh_Hant_TW.arb +++ b/assets/l10n/app_zh_Hant_TW.arb @@ -1,1178 +1,1410 @@ { - "settingsPageTitle": "設定", - "@settingsPageTitle": {}, - "aboutPageTitle": "關於 Zulip", - "@aboutPageTitle": { - "description": "Title for About Zulip page." - }, - "chooseAccountPageLogOutButton": "登出", - "@chooseAccountPageLogOutButton": { - "description": "Label for the 'Log out' button for an account on the choose-account page" - }, - "tryAnotherAccountMessage": "你在 {url} 的帳號載入的比較久", - "@tryAnotherAccountMessage": { - "description": "Message that appears on the loading screen after waiting for some time.", - "url": { - "type": "String", - "example": "http://chat.example.com/" - } - }, - "chooseAccountPageTitle": "選取帳號", - "@chooseAccountPageTitle": { - "description": "Title for the page to choose between Zulip accounts." - }, - "aboutPageAppVersion": "App 版本", "@aboutPageAppVersion": { "description": "Label for Zulip app version in About Zulip page" }, - "switchAccountButton": "切換帳號", - "@switchAccountButton": { - "description": "Label for main-menu button leading to the choose-account page." - }, - "actionSheetOptionListOfTopics": "議題列表", - "@actionSheetOptionListOfTopics": { - "description": "Label for navigating to a channel's topic-list page." - }, - "actionSheetOptionMuteTopic": "靜音話題", - "@actionSheetOptionMuteTopic": { - "description": "Label for muting a topic on action sheet." - }, - "actionSheetOptionResolveTopic": "標註為已解決", - "@actionSheetOptionResolveTopic": { - "description": "Label for the 'Mark as resolved' button on the topic action sheet." - }, - "tryAnotherAccountButton": "請嘗試別的帳號", - "@tryAnotherAccountButton": { - "description": "Label for loading screen button prompting user to try another account." + "@aboutPageOpenSourceLicenses": { + "description": "Item title in About Zulip page to navigate to Licenses page" }, - "aboutPageTapToView": "點選查看", "@aboutPageTapToView": { "description": "Item subtitle in About Zulip page to navigate to Licenses page" }, - "aboutPageOpenSourceLicenses": "開源授權條款", - "@aboutPageOpenSourceLicenses": { - "description": "Item title in About Zulip page to navigate to Licenses page" + "@aboutPageTitle": { + "description": "Title for About Zulip page." }, - "logOutConfirmationDialogTitle": "登出?", - "@logOutConfirmationDialogTitle": { - "description": "Title for a confirmation dialog for logging out." + "@actionSheetOptionCopyChannelLink": { + "description": "Label for copy channel link button on action sheet." }, - "logOutConfirmationDialogConfirmButton": "登出", - "@logOutConfirmationDialogConfirmButton": { - "description": "Label for the 'Log out' button on a confirmation dialog for logging out." + "@actionSheetOptionCopyMessageLink": { + "description": "Label for copy message link button on action sheet." }, - "profileButtonSendDirectMessage": "發送私訊", - "@profileButtonSendDirectMessage": { - "description": "Label for button in profile screen to navigate to DMs with the shown user." + "@actionSheetOptionCopyMessageText": { + "description": "Label for copy message text button on action sheet." }, - "chooseAccountButtonAddAnAccount": "增添帳號", - "@chooseAccountButtonAddAnAccount": { - "description": "Label for ChooseAccountPage button to add an account" + "@actionSheetOptionCopyTopicLink": { + "description": "Label for copy topic link button in action sheet." }, - "permissionsNeededTitle": "需要的權限", - "@permissionsNeededTitle": { - "description": "Title for dialog asking the user to grant additional permissions." + "@actionSheetOptionEditMessage": { + "description": "Label for the 'Edit message' button in the message action sheet." }, - "permissionsNeededOpenSettings": "開啟設定", - "@permissionsNeededOpenSettings": { - "description": "Button label for permissions dialog button that opens the system settings screen." + "@actionSheetOptionFollowTopic": { + "description": "Label for following a topic on action sheet." }, - "actionSheetOptionMarkChannelAsRead": "標註頻道為已讀", - "@actionSheetOptionMarkChannelAsRead": { - "description": "Label for marking a channel as read." + "@actionSheetOptionHideMutedMessage": { + "description": "Label for hide muted message again button on action sheet." }, - "actionSheetOptionUnmuteTopic": "取消靜音話題", - "@actionSheetOptionUnmuteTopic": { - "description": "Label for unmuting a topic on action sheet." + "@actionSheetOptionListOfTopics": { + "description": "Label for navigating to a channel's topic-list page." }, - "actionSheetOptionUnresolveTopic": "標註為未解決", - "@actionSheetOptionUnresolveTopic": { - "description": "Label for the 'Mark as unresolved' button on the topic action sheet." + "@actionSheetOptionMarkAsUnread": { + "description": "Label for mark as unread button on action sheet." }, - "errorResolveTopicFailedTitle": "無法標註話題為已解決", - "@errorResolveTopicFailedTitle": { - "description": "Error title when marking a topic as resolved failed." + "@actionSheetOptionMarkChannelAsRead": { + "description": "Label for marking a channel as read." }, - "errorUnresolveTopicFailedTitle": "無法標註話題為未解決", - "@errorUnresolveTopicFailedTitle": { - "description": "Error title when marking a topic as unresolved failed." + "@actionSheetOptionMarkTopicAsRead": { + "description": "Option to mark a specific topic as read in the action sheet." }, - "actionSheetOptionCopyMessageText": "複製訊息文字", - "@actionSheetOptionCopyMessageText": { - "description": "Label for copy message text button on action sheet." + "@actionSheetOptionMuteTopic": { + "description": "Label for muting a topic on action sheet." }, - "actionSheetOptionCopyMessageLink": "複製訊息連結", - "@actionSheetOptionCopyMessageLink": { - "description": "Label for copy message link button on action sheet." + "@actionSheetOptionQuoteMessage": { + "description": "Label for the 'Quote message' button in the message action sheet." }, - "actionSheetOptionMarkAsUnread": "從這裡開始標註為未讀", - "@actionSheetOptionMarkAsUnread": { - "description": "Label for mark as unread button on action sheet." + "@actionSheetOptionResolveTopic": { + "description": "Label for the 'Mark as resolved' button on the topic action sheet." }, - "actionSheetOptionMarkTopicAsRead": "標註話題為已讀", - "@actionSheetOptionMarkTopicAsRead": { - "description": "Option to mark a specific topic as read in the action sheet." + "@actionSheetOptionSeeWhoReacted": { + "description": "Label for the 'See who reacted' button in the message action sheet." }, - "actionSheetOptionShare": "分享", "@actionSheetOptionShare": { "description": "Label for share button on action sheet." }, - "actionSheetOptionStarMessage": "收藏訊息", "@actionSheetOptionStarMessage": { "description": "Label for star button on action sheet." }, - "actionSheetOptionUnstarMessage": "取消收藏訊息", - "@actionSheetOptionUnstarMessage": { - "description": "Label for unstar button on action sheet." - }, - "actionSheetOptionEditMessage": "編輯訊息", - "@actionSheetOptionEditMessage": { - "description": "Label for the 'Edit message' button in the message action sheet." - }, - "errorWebAuthOperationalErrorTitle": "出錯了", - "@errorWebAuthOperationalErrorTitle": { - "description": "Error title when third-party authentication has an operational error (not necessarily caused by invalid credentials)." - }, - "errorWebAuthOperationalError": "出現了意外的錯誤。", - "@errorWebAuthOperationalError": { - "description": "Error message when third-party authentication has an operational error (not necessarily caused by invalid credentials)." - }, - "errorAccountLoggedInTitle": "帳號已經登入了", - "@errorAccountLoggedInTitle": { - "description": "Error title on attempting to log into an account that's already logged in." - }, - "errorAccountLoggedIn": "在 {server} 的帳號 {email} 已經存在帳號清單中。", - "@errorAccountLoggedIn": { - "description": "Error message on attempting to log into an account that's already logged in.", - "placeholders": { - "email": { - "type": "String", - "example": "user@example.com" - }, - "server": { - "type": "String", - "example": "https://example.com" - } - } - }, - "initialAnchorSettingFirstUnreadAlways": "第一則未讀訊息", - "@initialAnchorSettingFirstUnreadAlways": { - "description": "Label for a value of setting controlling initial anchor of message list." + "@actionSheetOptionSubscribe": { + "description": "Label in the channel action sheet for subscribing to the channel." }, - "actionSheetOptionUnfollowTopic": "取消跟隨話題", "@actionSheetOptionUnfollowTopic": { "description": "Label for unfollowing a topic on action sheet." }, - "errorUnmuteTopicFailed": "無法取消靜音話題", - "@errorUnmuteTopicFailed": { - "description": "Error message when unmuting a topic failed." - }, - "errorMuteTopicFailed": "無法靜音話題", - "@errorMuteTopicFailed": { - "description": "Error message when muting a topic failed." + "@actionSheetOptionUnmuteTopic": { + "description": "Label for unmuting a topic on action sheet." }, - "errorUnstarMessageFailedTitle": "無法取消收藏訊息", - "@errorUnstarMessageFailedTitle": { - "description": "Error title when unstarring a message failed." + "@actionSheetOptionUnresolveTopic": { + "description": "Label for the 'Mark as unresolved' button on the topic action sheet." }, - "successLinkCopied": "已複製連結", - "@successLinkCopied": { - "description": "Success message after copy link action completed." + "@actionSheetOptionUnstarMessage": { + "description": "Label for unstar button on action sheet." }, - "successMessageLinkCopied": "已複製訊息連結", - "@successMessageLinkCopied": { - "description": "Message when link of a message was copied to the user's system clipboard." + "@actionSheetOptionUnsubscribe": { + "description": "Label in the channel action sheet for unsubscribing from the channel." }, - "composeBoxBannerButtonCancel": "取消", - "@composeBoxBannerButtonCancel": { - "description": "Label text for the 'Cancel' button in the compose-box banner when you are editing a message." + "@appVersionUnknownPlaceholder": { + "description": "Placeholder to show in place of the app version when it is unknown." }, - "composeBoxAttachMediaTooltip": "附加圖片或影片", - "@composeBoxAttachMediaTooltip": { - "description": "Tooltip for compose box icon to attach media to the message." + "@channelFeedButtonTooltip": { + "description": "Tooltip for button to navigate to a given channel's feed" }, - "loginPageTitle": "登入", - "@loginPageTitle": { - "description": "Title for login page." + "@channelsEmptyPlaceholder": { + "description": "Centered text on the 'Channels' page saying that there is no content to show." }, - "loginHidePassword": "隱藏密碼", - "@loginHidePassword": { - "description": "Icon label for button to hide password in input form." + "@channelsPageTitle": { + "description": "Title for the page with a list of subscribed channels." }, - "loginErrorMissingUsername": "請輸入您的使用者名稱。", - "@loginErrorMissingUsername": { - "description": "Error message when an empty username was provided." + "@chooseAccountButtonAddAnAccount": { + "description": "Label for ChooseAccountPage button to add an account" }, - "userRoleMember": "成員", - "@userRoleMember": { - "description": "Label for UserRole.member" + "@chooseAccountPageLogOutButton": { + "description": "Label for the 'Log out' button for an account on the choose-account page" }, - "wildcardMentionTopic": "topic", - "@wildcardMentionTopic": { - "description": "Text for \"@topic\" wildcard-mention autocomplete option when writing a channel message." + "@chooseAccountPageTitle": { + "description": "Title for the page to choose between Zulip accounts." }, - "emojiPickerSearchEmoji": "搜尋表情符號", - "@emojiPickerSearchEmoji": { - "description": "Hint text for the emoji picker search text field." + "@combinedFeedPageTitle": { + "description": "Page title for the 'Combined feed' message view." }, - "actionSheetOptionFollowTopic": "跟隨話題", - "@actionSheetOptionFollowTopic": { - "description": "Label for following a topic on action sheet." + "@composeBoxAttachFilesTooltip": { + "description": "Tooltip for compose box icon to attach a file to the message." }, - "errorUnfollowTopicFailed": "無法取消跟隨話題", - "@errorUnfollowTopicFailed": { - "description": "Error message when unfollowing a topic failed." + "@composeBoxAttachFromCameraTooltip": { + "description": "Tooltip for compose box icon to attach an image from the camera to the message." }, - "errorStarMessageFailedTitle": "無法收藏訊息", - "@errorStarMessageFailedTitle": { - "description": "Error title when starring a message failed." + "@composeBoxAttachMediaTooltip": { + "description": "Tooltip for compose box icon to attach media to the message." }, - "editAlreadyInProgressTitle": "無法編輯訊息", - "@editAlreadyInProgressTitle": { - "description": "Error title when a message edit cannot be saved because there is another edit already in progress." + "@composeBoxBannerButtonCancel": { + "description": "Label text for the 'Cancel' button in the compose-box banner when you are editing a message." }, - "errorCouldNotEditMessageTitle": "無法編輯訊息", - "@errorCouldNotEditMessageTitle": { - "description": "Error title when an exception prevented us from opening the compose box for editing a message." + "@composeBoxBannerButtonSave": { + "description": "Label text for the 'Save' button in the compose-box banner when you are editing a message." }, - "composeBoxGroupDmContentHint": "訊息群組", - "@composeBoxGroupDmContentHint": { - "description": "Hint text for content input when sending a message to a group." + "@composeBoxBannerLabelEditMessage": { + "description": "Label text for the compose-box banner when you are editing a message." }, - "composeBoxChannelContentHint": "訊息 {destination}", "@composeBoxChannelContentHint": { "description": "Hint text for content input when sending a message to a channel.", "placeholders": { "destination": { - "type": "String", - "example": "#channel name > topic name" + "example": "#channel name > topic name", + "type": "String" } } }, - "errorDialogLearnMore": "了解更多", - "@errorDialogLearnMore": { - "description": "Button label in error dialogs to open a web page with more information." - }, - "loginEmailLabel": "電子郵件地址", - "@loginEmailLabel": { - "description": "Label for input when an email is required to log in." + "@composeBoxDmContentHint": { + "description": "Hint text for content input when sending a message to one other person.", + "placeholders": { + "user": { + "example": "channel name", + "type": "String" + } + } }, - "markAllAsReadLabel": "標註所有訊息為已讀", - "@markAllAsReadLabel": { - "description": "Button text to mark messages as read." + "@composeBoxEnterTopicOrSkipHintText": { + "description": "Hint text for topic input widget in compose box when topics are optional.", + "placeholders": { + "defaultTopicName": { + "example": "general chat", + "type": "String" + } + } }, - "wildcardMentionChannel": "channel", - "@wildcardMentionChannel": { - "description": "Text for \"@channel\" wildcard-mention autocomplete option when writing a channel message." + "@composeBoxGenericContentHint": { + "description": "Hint text for content input when sending a message." }, - "themeSettingDark": "深色主題", - "@themeSettingDark": { - "description": "Label for dark theme setting." + "@composeBoxGroupDmContentHint": { + "description": "Hint text for content input when sending a message to a group." }, - "themeSettingSystem": "系統主題", - "@themeSettingSystem": { - "description": "Label for system theme setting." + "@composeBoxLoadingMessage": { + "description": "Placeholder in compose box showing the quoted message is currently loading.", + "placeholders": { + "messageId": { + "example": "1234", + "type": "int" + } + } }, - "actionSheetOptionHideMutedMessage": "再次隱藏已靜音的話題", - "@actionSheetOptionHideMutedMessage": { - "description": "Label for hide muted message again button on action sheet." + "@composeBoxSelfDmContentHint": { + "description": "Hint text for content input when sending a message to yourself." }, - "errorQuotationFailed": "引述失敗", - "@errorQuotationFailed": { - "description": "Error message when quoting a message failed." + "@composeBoxSendTooltip": { + "description": "Tooltip for send button in compose box." }, - "successMessageTextCopied": "已複製訊息文字", - "@successMessageTextCopied": { - "description": "Message when content of a message was copied to the user's system clipboard." + "@composeBoxTopicHintText": { + "description": "Hint text for topic input widget in compose box." }, - "composeBoxBannerLabelEditMessage": "編輯訊息", - "@composeBoxBannerLabelEditMessage": { - "description": "Label text for the compose-box banner when you are editing a message." + "@composeBoxUploadingFilename": { + "description": "Placeholder in compose box showing the specified file is currently uploading.", + "placeholders": { + "filename": { + "example": "file.txt", + "type": "String" + } + } }, - "composeBoxAttachFilesTooltip": "附加檔案", - "@composeBoxAttachFilesTooltip": { - "description": "Tooltip for compose box icon to attach a file to the message." + "@contentValidationErrorEmpty": { + "description": "Content validation error message when the message is empty." }, - "newDmSheetScreenTitle": "新增私訊", - "@newDmSheetScreenTitle": { - "description": "Title displayed at the top of the new DM screen." + "@contentValidationErrorQuoteAndReplyInProgress": { + "description": "Content validation error message when a quotation has not completed yet." }, - "newDmFabButtonLabel": "新增私訊", - "@newDmFabButtonLabel": { - "description": "Label for the floating action button (FAB) that opens the new DM sheet." + "@contentValidationErrorTooLong": { + "description": "Content validation error message when the message is too long." + }, + "@contentValidationErrorUploadInProgress": { + "description": "Content validation error message when attachments have not finished uploading." }, - "dialogCancel": "取消", "@dialogCancel": { "description": "Button label in dialogs to cancel." }, - "dialogContinue": "繼續", + "@dialogClose": { + "description": "Button label in dialogs to close." + }, "@dialogContinue": { "description": "Button label in dialogs to proceed." }, - "loginFormSubmitLabel": "登入", - "@loginFormSubmitLabel": { - "description": "Button text to submit login credentials." + "@discardDraftConfirmationDialogConfirmButton": { + "description": "Label for the 'Discard' button on a confirmation dialog for discarding message text that was typed into the compose box." }, - "signInWithFoo": "使用 {method} 登入", - "@signInWithFoo": { - "description": "Button to use {method} to sign in to the app.", + "@discardDraftConfirmationDialogTitle": { + "description": "Title for a confirmation dialog for discarding message text that was typed into the compose box." + }, + "@discardDraftForEditConfirmationDialogMessage": { + "description": "Message for a confirmation dialog for discarding message text that was typed into the compose box, when editing a message." + }, + "@discardDraftForOutboxConfirmationDialogMessage": { + "description": "Message for a confirmation dialog when restoring an outbox message, for discarding message text that was typed into the compose box." + }, + "@dmsWithOthersPageTitle": { + "description": "Message list page title for a DM group with others.", "placeholders": { - "method": { - "type": "String", - "example": "Google" + "others": { + "example": "Alice, Bob", + "type": "String" } } }, - "loginPasswordLabel": "密碼", - "@loginPasswordLabel": { - "description": "Label for password input field." + "@dmsWithYourselfPageTitle": { + "description": "Message list page title for a DM group that only includes yourself." }, - "loginServerUrlLabel": "您的 Zulip 伺服器網址", - "@loginServerUrlLabel": { - "description": "Label in login page for Zulip server URL entry." + "@editAlreadyInProgressMessage": { + "description": "Error message when a message edit cannot be saved because there is another edit already in progress." }, - "loginUsernameLabel": "使用者名稱", - "@loginUsernameLabel": { - "description": "Label for input when a username is required to log in." + "@editAlreadyInProgressTitle": { + "description": "Error title when a message edit cannot be saved because there is another edit already in progress." }, - "yesterday": "昨天", - "@yesterday": { - "description": "Term to use to reference the previous day." + "@emojiPickerSearchEmoji": { + "description": "Hint text for the emoji picker search text field." }, - "userRoleOwner": "擁有者", - "@userRoleOwner": { - "description": "Label for UserRole.owner" + "@emojiReactionsMore": { + "description": "Label for a button opening the emoji picker." }, - "userRoleAdministrator": "管理員", - "@userRoleAdministrator": { - "description": "Label for UserRole.administrator" + "@emptyMessageList": { + "description": "Placeholder for some message-list pages when there are no messages." }, - "userRoleModerator": "版主", - "@userRoleModerator": { - "description": "Label for UserRole.moderator" + "@emptyMessageListSearch": { + "description": "Placeholder for the 'Search' page when there are no messages." }, - "errorFollowTopicFailed": "無法跟隨話題", - "@errorFollowTopicFailed": { - "description": "Error message when following a topic failed." + "@errorAccountLoggedIn": { + "description": "Error message on attempting to log into an account that's already logged in.", + "placeholders": { + "email": { + "example": "user@example.com", + "type": "String" + }, + "server": { + "example": "https://example.com", + "type": "String" + } + } }, - "actionSheetOptionQuoteMessage": "引述訊息", - "@actionSheetOptionQuoteMessage": { - "description": "Label for the 'Quote message' button in the message action sheet." + "@errorAccountLoggedInTitle": { + "description": "Error title on attempting to log into an account that's already logged in." }, - "recentDmConversationsPageTitle": "私人訊息", - "@recentDmConversationsPageTitle": { - "description": "Title for the page with a list of DM conversations." + "@errorBannerCannotPostInChannelLabel": { + "description": "Error-banner text replacing the compose box when you do not have permission to send a message to the channel." }, - "composeBoxTopicHintText": "議題", - "@composeBoxTopicHintText": { - "description": "Hint text for topic input widget in compose box." + "@errorBannerDeactivatedDmLabel": { + "description": "Label text for error banner when sending a message to one or multiple deactivated users." }, - "today": "今天", - "@today": { - "description": "Term to use to reference the current day." + "@errorConnectingToServerDetails": { + "description": "Dialog error message for a generic unknown error connecting to the server with details.", + "placeholders": { + "error": { + "example": "Invalid format", + "type": "String" + }, + "serverUrl": { + "example": "http://example.com/", + "type": "String" + } + } }, - "channelsPageTitle": "頻道", - "@channelsPageTitle": { - "description": "Title for the page with a list of subscribed channels." + "@errorConnectingToServerShort": { + "description": "Short error message for a generic unknown error connecting to the server." }, - "loginErrorMissingPassword": "請輸入您的密碼。", - "@loginErrorMissingPassword": { - "description": "Error message when an empty password was provided." + "@errorCopyingFailed": { + "description": "Error message when copying the text of a message to the user's system clipboard failed." }, - "userRoleGuest": "訪客", - "@userRoleGuest": { - "description": "Label for UserRole.guest" + "@errorCouldNotConnectTitle": { + "description": "Error title when the app could not connect to the server." }, - "mentionsPageTitle": "提及", - "@mentionsPageTitle": { - "description": "Page title for the 'Mentions' message view." + "@errorCouldNotEditMessageTitle": { + "description": "Error title when an exception prevented us from opening the compose box for editing a message." }, - "recentDmConversationsSectionHeader": "私人訊息", - "@recentDmConversationsSectionHeader": { - "description": "Heading for direct messages section on the 'Inbox' message view." + "@errorCouldNotFetchMessageSource": { + "description": "Error message when the source of a message could not be fetched." }, - "composeBoxDmContentHint": "訊息 @{user}", - "@composeBoxDmContentHint": { - "description": "Hint text for content input when sending a message to one other person.", + "@errorCouldNotOpenLink": { + "description": "Error message when opening a link failed.", "placeholders": { - "user": { - "type": "String", - "example": "channel name" + "url": { + "example": "https://chat.example.com", + "type": "String" } } }, - "dialogClose": "關閉", - "@dialogClose": { - "description": "Button label in dialogs to close." + "@errorCouldNotOpenLinkTitle": { + "description": "Error title when opening a link failed." }, - "loginErrorMissingEmail": "請輸入您的電子郵件地址。", - "@loginErrorMissingEmail": { - "description": "Error message when an empty email was provided." + "@errorCouldNotShowUserProfile": { + "description": "Message that appears on the user profile page when the profile cannot be shown." }, - "lightboxCopyLinkTooltip": "複製連結", - "@lightboxCopyLinkTooltip": { - "description": "Tooltip in lightbox for the copy link action." + "@errorDialogContinue": { + "description": "Button label in error dialogs to acknowledge the error and close the dialog." }, - "composeBoxUploadingFilename": "正在上傳 {filename}…", - "@composeBoxUploadingFilename": { - "description": "Placeholder in compose box showing the specified file is currently uploading.", + "@errorDialogLearnMore": { + "description": "Button label in error dialogs to open a web page with more information." + }, + "@errorDialogTitle": { + "description": "Generic title for error dialog." + }, + "@errorFailedToUploadFileTitle": { + "description": "Error title when the specified file failed to upload.", "placeholders": { "filename": { - "type": "String", - "example": "file.txt" + "example": "file.txt", + "type": "String" } } }, - "topicsButtonTooltip": "話題", - "@topicsButtonTooltip": { - "description": "Tooltip for button to navigate to topic-list page." - }, - "themeSettingLight": "淺色主題", - "@themeSettingLight": { - "description": "Label for light theme setting." + "@errorFilesTooLarge": { + "description": "Error message when attached files are too large in size.", + "placeholders": { + "listMessage": { + "example": "foo.txt: 10.1 MiB\nbar.txt 20.2 MiB", + "type": "String" + }, + "maxFileUploadSizeMib": { + "example": "15", + "type": "int" + }, + "num": { + "example": "2", + "type": "int" + } + } }, - "themeSettingTitle": "主題", - "@themeSettingTitle": { - "description": "Title for theme setting. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + "@errorFilesTooLargeTitle": { + "description": "Error title when attached files are too large in size.", + "placeholders": { + "num": { + "example": "4", + "type": "int" + } + } }, - "errorVideoPlayerFailed": "無法播放影片。", - "@errorVideoPlayerFailed": { - "description": "Error message when a video fails to play." + "@errorFollowTopicFailed": { + "description": "Error message when following a topic failed." }, - "errorDialogTitle": "錯誤", - "@errorDialogTitle": { - "description": "Generic title for error dialog." + "@errorHandlingEventDetails": { + "description": "Error details on failing to handle a Zulip server event.", + "placeholders": { + "error": { + "example": "Unexpected null value", + "type": "String" + }, + "event": { + "example": "UpdateMessageEvent(id: 123, messageIds: [2345, 3456], newTopic: 'dinner')", + "type": "String" + }, + "serverUrl": { + "example": "https://chat.example.com", + "type": "String" + } + } }, - "wildcardMentionChannelDescription": "通知頻道", - "@wildcardMentionChannelDescription": { - "description": "Description for \"@all\", \"@everyone\", \"@channel\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message." + "@errorHandlingEventTitle": { + "description": "Error title on failing to handle a Zulip server event." }, - "upgradeWelcomeDialogTitle": "歡迎使用新 Zulip 應用程式!", - "@upgradeWelcomeDialogTitle": { - "description": "Title for dialog shown on first upgrade from the legacy Zulip app." + "@errorInvalidApiKeyMessage": { + "description": "Error message in the dialog for invalid API key.", + "placeholders": { + "url": { + "example": "http://chat.example.com/", + "type": "String" + } + } }, - "errorCouldNotOpenLinkTitle": "無法開啟連結", - "@errorCouldNotOpenLinkTitle": { - "description": "Error title when opening a link failed." + "@errorInvalidResponse": { + "description": "Error message when an API call returned an invalid response." }, - "emojiReactionsMore": "更多", - "@emojiReactionsMore": { - "description": "Label for a button opening the emoji picker." + "@errorLoginCouldNotConnect": { + "description": "Error message when the app could not connect to the server.", + "placeholders": { + "url": { + "example": "http://example.com/", + "type": "String" + } + } }, - "errorSharingFailed": "分享失敗。", - "@errorSharingFailed": { - "description": "Error message when sharing a message failed." + "@errorLoginFailedTitle": { + "description": "Error title for login when signing into a Zulip server fails." }, - "contentValidationErrorUploadInProgress": "請等待上傳完成。", - "@contentValidationErrorUploadInProgress": { - "description": "Content validation error message when attachments have not finished uploading." + "@errorLoginInvalidInputTitle": { + "description": "Error title for login when input is invalid." }, - "newDmSheetSearchHintEmpty": "增添一個或多個使用者", - "@newDmSheetSearchHintEmpty": { - "description": "Hint text for the search bar when no users are selected" + "@errorMalformedResponse": { + "description": "Error message when an API call fails because we could not parse the response.", + "placeholders": { + "httpStatus": { + "example": "200", + "type": "int" + } + } }, - "contentValidationErrorQuoteAndReplyInProgress": "請等待引述完成。", - "@contentValidationErrorQuoteAndReplyInProgress": { - "description": "Content validation error message when a quotation has not completed yet." + "@errorMalformedResponseWithCause": { + "description": "Error message when an API call fails because we could not parse the response, with details of the failure.", + "placeholders": { + "details": { + "example": "type 'Null' is not a subtype of type 'String' in type cast", + "type": "String" + }, + "httpStatus": { + "example": "200", + "type": "int" + } + } }, - "errorLoginFailedTitle": "登入失敗", - "@errorLoginFailedTitle": { - "description": "Error title for login when signing into a Zulip server fails." + "@errorMarkAsReadFailedTitle": { + "description": "Error title when mark as read action failed." + }, + "@errorMarkAsUnreadFailedTitle": { + "description": "Error title when mark as unread action failed." + }, + "@errorMessageDoesNotSeemToExist": { + "description": "Error message when loading a message that does not exist." + }, + "@errorMessageEditNotSaved": { + "description": "Error message for compose box when a message edit could not be saved." + }, + "@errorMessageNotSent": { + "description": "Error message for compose box when a message could not be sent." + }, + "@errorMuteTopicFailed": { + "description": "Error message when muting a topic failed." }, - "errorNetworkRequestFailed": "網路請求失敗", "@errorNetworkRequestFailed": { "description": "Error message when a network request fails." }, - "serverUrlValidationErrorInvalidUrl": "請輸入有效的網址。", - "@serverUrlValidationErrorInvalidUrl": { - "description": "Error message when URL is not in a valid format." + "@errorNotificationOpenAccountNotFound": { + "description": "Error message when the account associated with the notification could not be found" }, - "errorCopyingFailed": "複製失敗", - "@errorCopyingFailed": { - "description": "Error message when copying the text of a message to the user's system clipboard failed." + "@errorNotificationOpenTitle": { + "description": "Error title when notification opening fails" }, - "serverUrlValidationErrorNoUseEmail": "請輸入伺服器網址,而非您的電子郵件。", - "@serverUrlValidationErrorNoUseEmail": { - "description": "Error message when URL looks like an email" + "@errorQuotationFailed": { + "description": "Error message when quoting a message failed." }, - "serverUrlValidationErrorEmpty": "請輸入網址。", - "@serverUrlValidationErrorEmpty": { - "description": "Error message when URL is empty" + "@errorReactionAddingFailedTitle": { + "description": "Error title when adding a message reaction fails" }, - "errorMessageDoesNotSeemToExist": "該訊息似乎不存在。", - "@errorMessageDoesNotSeemToExist": { - "description": "Error message when loading a message that does not exist." + "@errorReactionRemovingFailedTitle": { + "description": "Error title when removing a message reaction fails" }, - "errorCouldNotOpenLink": "無法開啟連結: {url}", - "@errorCouldNotOpenLink": { - "description": "Error message when opening a link failed.", + "@errorRequestFailed": { + "description": "Error message when an API call fails.", "placeholders": { - "url": { - "type": "String", - "example": "https://chat.example.com" + "httpStatus": { + "example": "500", + "type": "int" } } }, - "spoilerDefaultHeaderText": "劇透", - "@spoilerDefaultHeaderText": { - "description": "The default header text in a spoiler block ( https://zulip.com/help/spoilers )." + "@errorResolveTopicFailedTitle": { + "description": "Error title when marking a topic as resolved failed." }, - "markAsUnreadInProgress": "正在標註訊息為未讀…", - "@markAsUnreadInProgress": { - "description": "Progress message when marking messages as unread." + "@errorServerMessage": { + "description": "Error message that quotes an error from the server.", + "placeholders": { + "message": { + "example": "Invalid format", + "type": "String" + } + } }, - "errorLoginCouldNotConnect": "無法連線到伺服器:\n{url}", - "@errorLoginCouldNotConnect": { - "description": "Error message when the app could not connect to the server.", + "@errorServerVersionUnsupportedMessage": { + "description": "Error message in the dialog for when the Zulip Server version is unsupported.", "placeholders": { + "minSupportedZulipVersion": { + "example": "4.0", + "type": "String" + }, "url": { - "type": "String", - "example": "http://example.com/" + "example": "http://chat.example.com/", + "type": "String" + }, + "zulipVersion": { + "example": "3.2", + "type": "String" } } }, - "errorCouldNotConnectTitle": "無法連線", - "@errorCouldNotConnectTitle": { - "description": "Error title when the app could not connect to the server." + "@errorSharingFailed": { + "description": "Error message when sharing a message failed." }, - "errorInvalidResponse": "伺服器傳送了無效的請求。", - "@errorInvalidResponse": { - "description": "Error message when an API call returned an invalid response." + "@errorStarMessageFailedTitle": { + "description": "Error title when starring a message failed." }, - "newDmSheetSearchHintSomeSelected": "增添其他使用者…", - "@newDmSheetSearchHintSomeSelected": { - "description": "Hint text for the search bar when at least one user is selected." + "@errorUnfollowTopicFailed": { + "description": "Error message when unfollowing a topic failed." }, - "inboxPageTitle": "收件匣", - "@inboxPageTitle": { - "description": "Title for the page with unreads." + "@errorUnmuteTopicFailed": { + "description": "Error message when unmuting a topic failed." }, - "initialAnchorSettingNewestAlways": "最新訊息", - "@initialAnchorSettingNewestAlways": { - "description": "Label for a value of setting controlling initial anchor of message list." + "@errorUnresolveTopicFailedTitle": { + "description": "Error title when marking a topic as unresolved failed." + }, + "@errorUnstarMessageFailedTitle": { + "description": "Error title when unstarring a message failed." + }, + "@errorVideoPlayerFailed": { + "description": "Error message when a video fails to play." + }, + "@errorWebAuthOperationalError": { + "description": "Error message when third-party authentication has an operational error (not necessarily caused by invalid credentials)." + }, + "@errorWebAuthOperationalErrorTitle": { + "description": "Error title when third-party authentication has an operational error (not necessarily caused by invalid credentials)." }, - "experimentalFeatureSettingsPageTitle": "實驗性功能", "@experimentalFeatureSettingsPageTitle": { "description": "Title of settings page for experimental, in-development features" }, - "errorNotificationOpenTitle": "無法開啟通知", - "@errorNotificationOpenTitle": { - "description": "Error title when notification opening fails" + "@experimentalFeatureSettingsWarning": { + "description": "Warning text on settings page for experimental, in-development features" }, - "loginAddAnAccountPageTitle": "增添帳號", - "@loginAddAnAccountPageTitle": { - "description": "Title for page to add a Zulip account." + "@filenameAndSizeInMiB": { + "description": "The name of a file, and its size in mebibytes.", + "placeholders": { + "filename": { + "example": "foo.txt", + "type": "String" + }, + "size": { + "example": "20.2", + "type": "String" + } + } }, - "channelFeedButtonTooltip": "頻道饋給", - "@channelFeedButtonTooltip": { - "description": "Tooltip for button to navigate to a given channel's feed" + "@inboxEmptyPlaceholder": { + "description": "Centered text on the 'Inbox' page saying that there is no content to show." }, - "unpinnedSubscriptionsLabel": "未釘選", - "@unpinnedSubscriptionsLabel": { - "description": "Label for the list of unpinned subscribed channels." + "@inboxPageTitle": { + "description": "Title for the page with unreads." }, - "wildcardMentionTopicDescription": "通知話題", - "@wildcardMentionTopicDescription": { - "description": "Description for \"@topic\" wildcard-mention autocomplete options when writing a channel message." + "@initialAnchorSettingDescription": { + "description": "Description of setting controlling initial anchor of message list." }, - "pinnedSubscriptionsLabel": "已釘選", - "@pinnedSubscriptionsLabel": { - "description": "Label for the list of pinned subscribed channels." + "@initialAnchorSettingFirstUnreadAlways": { + "description": "Label for a value of setting controlling initial anchor of message list." }, - "mutedUser": "已靜音的使用者", - "@mutedUser": { - "description": "Name for a muted user to display all over the app." + "@initialAnchorSettingFirstUnreadConversations": { + "description": "Label for a value of setting controlling initial anchor of message list." }, - "combinedFeedPageTitle": "綜合饋給", - "@combinedFeedPageTitle": { - "description": "Page title for the 'Combined feed' message view." + "@initialAnchorSettingNewestAlways": { + "description": "Label for a value of setting controlling initial anchor of message list." }, - "searchMessagesPageTitle": "搜尋", - "@searchMessagesPageTitle": { - "description": "Page title for the 'Search' message view." + "@initialAnchorSettingTitle": { + "description": "Title of setting controlling initial anchor of message list." }, - "searchMessagesHintText": "搜尋", - "@searchMessagesHintText": { - "description": "Hint text for the message search text field." + "@invisibleMode": { + "description": "Label for the 'Invisible mode' switch on the profile page." }, - "searchMessagesClearButtonTooltip": "清除", - "@searchMessagesClearButtonTooltip": { - "description": "Tooltip for the 'x' button in the search text field." + "@lightboxCopyLinkTooltip": { + "description": "Tooltip in lightbox for the copy link action." }, - "upgradeWelcomeDialogMessage": "您將在更快、更流暢的版本中享受熟悉的體驗。", - "@upgradeWelcomeDialogMessage": { - "description": "Message text for dialog shown on first upgrade from the legacy Zulip app." + "@lightboxVideoCurrentPosition": { + "description": "The current playback position of the video playing in the lightbox." }, - "upgradeWelcomeDialogLinkText": "查看公告部落格文章!", - "@upgradeWelcomeDialogLinkText": { - "description": "Text of link in dialog shown on first upgrade from the legacy Zulip app." + "@lightboxVideoDuration": { + "description": "The total duration of the video playing in the lightbox." }, - "upgradeWelcomeDialogDismiss": "開始吧", - "@upgradeWelcomeDialogDismiss": { - "description": "Label for button dismissing dialog shown on first upgrade from the legacy Zulip app." + "@logOutConfirmationDialogConfirmButton": { + "description": "Label for the 'Log out' button on a confirmation dialog for logging out." }, - "logOutConfirmationDialogMessage": "要在未來使用此帳號,您將需要重新輸入您組織的網址和您的帳號資訊。", "@logOutConfirmationDialogMessage": { "description": "Message for a confirmation dialog for logging out." }, - "errorCouldNotShowUserProfile": "無法顯示使用者設定檔。", - "@errorCouldNotShowUserProfile": { - "description": "Message that appears on the user profile page when the profile cannot be shown." - }, - "permissionsDeniedCameraAccess": "要上傳圖片,請在設定中授予 Zulip 額外權限。", - "@permissionsDeniedCameraAccess": { - "description": "Message for dialog asking the user to grant permissions for camera access." + "@logOutConfirmationDialogTitle": { + "description": "Title for a confirmation dialog for logging out." }, - "permissionsDeniedReadExternalStorage": "要上傳檔案,請在設定中授予 Zulip 額外權限。", - "@permissionsDeniedReadExternalStorage": { - "description": "Message for dialog asking the user to grant permissions for external storage read access." + "@loginAddAnAccountPageTitle": { + "description": "Title for page to add a Zulip account." }, - "errorCouldNotFetchMessageSource": "無法取得訊息來源。", - "@errorCouldNotFetchMessageSource": { - "description": "Error message when the source of a message could not be fetched." + "@loginEmailLabel": { + "description": "Label for input when an email is required to log in." }, - "errorFailedToUploadFileTitle": "上傳檔案失敗:{filename}", - "@errorFailedToUploadFileTitle": { - "description": "Error title when the specified file failed to upload.", - "placeholders": { - "filename": { - "type": "String", - "example": "file.txt" - } - } + "@loginErrorMissingEmail": { + "description": "Error message when an empty email was provided." }, - "filenameAndSizeInMiB": "{filename}: {size} MiB", - "@filenameAndSizeInMiB": { - "description": "The name of a file, and its size in mebibytes.", - "placeholders": { - "filename": { - "type": "String", - "example": "foo.txt" - }, - "size": { - "type": "String", - "example": "20.2" - } - } + "@loginErrorMissingPassword": { + "description": "Error message when an empty password was provided." }, - "errorFilesTooLarge": "{num, plural, =1{檔案} other{{num} 個檔案}}超過伺服器 {maxFileUploadSizeMib} MiB 的限制,將不會上傳:\n\n{listMessage}", - "@errorFilesTooLarge": { - "description": "Error message when attached files are too large in size.", + "@loginErrorMissingUsername": { + "description": "Error message when an empty username was provided." + }, + "@loginFormSubmitLabel": { + "description": "Button text to submit login credentials." + }, + "@loginHidePassword": { + "description": "Icon label for button to hide password in input form." + }, + "@loginMethodDivider": { + "description": "Text on the divider between the username/password form and the third-party login options. Uppercase (for languages with letter case)." + }, + "@loginPageTitle": { + "description": "Title for login page." + }, + "@loginPasswordLabel": { + "description": "Label for password input field." + }, + "@loginServerUrlLabel": { + "description": "Label in login page for Zulip server URL entry." + }, + "@loginUsernameLabel": { + "description": "Label for input when a username is required to log in." + }, + "@mainMenuMyProfile": { + "description": "Label for main-menu button leading to the user's own profile." + }, + "@manyPeopleTyping": { + "description": "Text to display when there are multiple users typing." + }, + "@markAllAsReadLabel": { + "description": "Button text to mark messages as read." + }, + "@markAsReadComplete": { + "description": "Message when marking messages as read has completed.", "placeholders": { "num": { - "type": "int", - "example": "2" - }, - "maxFileUploadSizeMib": { - "type": "int", - "example": "15" - }, - "listMessage": { - "type": "String", - "example": "foo.txt: 10.1 MiB\nbar.txt 20.2 MiB" + "example": "4", + "type": "int" } } }, - "errorFilesTooLargeTitle": "{num, plural, =1{檔案} other{檔案}}太大", - "@errorFilesTooLargeTitle": { - "description": "Error title when attached files are too large in size.", + "@markAsReadInProgress": { + "description": "Progress message when marking messages as read." + }, + "@markAsUnreadComplete": { + "description": "Message when marking messages as unread has completed.", "placeholders": { "num": { - "type": "int", - "example": "4" + "example": "4", + "type": "int" } } }, - "errorLoginInvalidInputTitle": "無效的輸入", - "@errorLoginInvalidInputTitle": { - "description": "Error title for login when input is invalid." - }, - "errorMessageNotSent": "訊息沒有送出", - "@errorMessageNotSent": { - "description": "Error message for compose box when a message could not be sent." + "@markAsUnreadInProgress": { + "description": "Progress message when marking messages as unread." }, - "errorMessageEditNotSaved": "訊息沒有儲存", - "@errorMessageEditNotSaved": { - "description": "Error message for compose box when a message edit could not be saved." + "@markReadOnScrollSettingAlways": { + "description": "Label for a value of setting controlling which message-list views should mark read on scroll." }, - "errorServerMessage": "伺服器回應:\n\n{message}", - "@errorServerMessage": { - "description": "Error message that quotes an error from the server.", - "placeholders": { - "message": { - "type": "String", - "example": "Invalid format" - } - } + "@markReadOnScrollSettingConversations": { + "description": "Label for a value of setting controlling which message-list views should mark read on scroll." }, - "errorConnectingToServerShort": "連接 Zulip 時發生錯誤。重試中…", - "@errorConnectingToServerShort": { - "description": "Short error message for a generic unknown error connecting to the server." + "@markReadOnScrollSettingConversationsDescription": { + "description": "Description for a value of setting controlling which message-list views should mark read on scroll." }, - "errorConnectingToServerDetails": "連接 Zulip {serverUrl} 時發生錯誤。將重試:\n\n{error}", - "@errorConnectingToServerDetails": { - "description": "Dialog error message for a generic unknown error connecting to the server with details.", - "placeholders": { - "serverUrl": { - "type": "String", - "example": "http://example.com/" - }, - "error": { - "type": "String", - "example": "Invalid format" - } - } + "@markReadOnScrollSettingDescription": { + "description": "Description of setting controlling which message-list views should mark read on scroll." }, - "errorHandlingEventTitle": "處理 Zulip 事件時發生錯誤。重新連線中…", - "@errorHandlingEventTitle": { - "description": "Error title on failing to handle a Zulip server event." + "@markReadOnScrollSettingNever": { + "description": "Label for a value of setting controlling which message-list views should mark read on scroll." }, - "errorHandlingEventDetails": "處理來自 {serverUrl} 的 Zulip 事件時發生錯誤;將重試。\n\n錯誤:{error}\n\n事件:{event}", - "@errorHandlingEventDetails": { - "description": "Error details on failing to handle a Zulip server event.", - "placeholders": { - "serverUrl": { - "type": "String", - "example": "https://chat.example.com" - }, - "error": { - "type": "String", - "example": "Unexpected null value" - }, - "event": { - "type": "String", - "example": "UpdateMessageEvent(id: 123, messageIds: [2345, 3456], newTopic: 'dinner')" - } - } + "@markReadOnScrollSettingTitle": { + "description": "Title of setting controlling which message-list views should mark read on scroll." }, - "errorBannerDeactivatedDmLabel": "您無法向已停用的使用者發送訊息。", - "@errorBannerDeactivatedDmLabel": { - "description": "Label text for error banner when sending a message to one or multiple deactivated users." + "@mentionsPageTitle": { + "description": "Page title for the 'Mentions' message view." }, - "errorBannerCannotPostInChannelLabel": "您沒有權限在此頻道發佈訊息。", - "@errorBannerCannotPostInChannelLabel": { - "description": "Error-banner text replacing the compose box when you do not have permission to send a message to the channel." + "@messageIsEditedLabel": { + "description": "Label for an edited message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" }, - "composeBoxBannerButtonSave": "儲存", - "@composeBoxBannerButtonSave": { - "description": "Label text for the 'Save' button in the compose-box banner when you are editing a message." + "@messageIsMovedLabel": { + "description": "Label for a moved message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" }, - "editAlreadyInProgressMessage": "編輯已在進行中。請等待其完成。", - "@editAlreadyInProgressMessage": { - "description": "Error message when a message edit cannot be saved because there is another edit already in progress." + "@messageListGroupYouAndOthers": { + "description": "Message list recipient header for a DM group with others.", + "placeholders": { + "others": { + "example": "Alice, Bob", + "type": "String" + } + } }, - "savingMessageEditLabel": "儲存編輯中…", - "@savingMessageEditLabel": { - "description": "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.)" + "@messageListGroupYouWithYourself": { + "description": "Message list recipient header for a DM group that only includes yourself." }, - "savingMessageEditFailedLabel": "編輯未儲存", - "@savingMessageEditFailedLabel": { - "description": "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.)" + "@messageNotSentLabel": { + "description": "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.)" }, - "composeBoxAttachFromCameraTooltip": "拍照", - "@composeBoxAttachFromCameraTooltip": { - "description": "Tooltip for compose box icon to attach an image from the camera to the message." + "@mutedUser": { + "description": "Name for a muted user to display all over the app." }, - "composeBoxGenericContentHint": "輸入訊息", - "@composeBoxGenericContentHint": { - "description": "Hint text for content input when sending a message." + "@newDmFabButtonLabel": { + "description": "Label for the floating action button (FAB) that opens the new DM sheet." }, - "newDmSheetComposeButtonLabel": "編寫", "@newDmSheetComposeButtonLabel": { "description": "Label for the compose button in the new DM sheet that starts composing a message to the selected users." }, - "newDmSheetNoUsersFound": "找不到使用者", "@newDmSheetNoUsersFound": { "description": "Message shown in the new DM sheet when no users match the search." }, - "composeBoxSelfDmContentHint": "記下些什麼", - "@composeBoxSelfDmContentHint": { - "description": "Hint text for content input when sending a message to yourself." + "@newDmSheetScreenTitle": { + "description": "Title displayed at the top of the new DM screen." }, - "preparingEditMessageContentInput": "準備中…", - "@preparingEditMessageContentInput": { - "description": "Hint text for content input when the compose box is preparing to edit a message." + "@newDmSheetSearchHintEmpty": { + "description": "Hint text for the search bar when no users are selected" }, - "composeBoxSendTooltip": "發送", - "@composeBoxSendTooltip": { - "description": "Tooltip for send button in compose box." + "@newDmSheetSearchHintSomeSelected": { + "description": "Hint text for the search bar when at least one user is selected." }, - "unknownChannelName": "(未知頻道)", - "@unknownChannelName": { - "description": "Replacement name for channel when it cannot be found in the store." + "@noEarlierMessages": { + "description": "Text to show at the start of a message list if there are no earlier messages." }, - "composeBoxEnterTopicOrSkipHintText": "輸入議題(留空則使用「{defaultTopicName}」)", - "@composeBoxEnterTopicOrSkipHintText": { - "description": "Hint text for topic input widget in compose box when topics are optional.", + "@noStatusText": { + "description": "The text part of the status button sub-label in self-user profile page when status text is not set." + }, + "@notifGroupDmConversationLabel": { + "description": "Label for a group DM conversation notification.", "placeholders": { - "defaultTopicName": { - "type": "String", - "example": "general chat" + "numOthers": { + "example": "4", + "type": "int" + }, + "senderFullName": { + "example": "Alice", + "type": "String" } } }, - "composeBoxLoadingMessage": "(載入訊息 {messageId} 中)", - "@composeBoxLoadingMessage": { - "description": "Placeholder in compose box showing the quoted message is currently loading.", + "@notifSelfUser": { + "description": "Display name for the user themself, to show after replying in an Android notification" + }, + "@onePersonTyping": { + "description": "Text to display when there is one user typing.", "placeholders": { - "messageId": { - "type": "int", - "example": "1234" + "typist": { + "example": "Alice", + "type": "String" } } }, - "unknownUserName": "(未知使用者)", - "@unknownUserName": { - "description": "Name placeholder to use for a user when we don't know their name." + "@openLinksWithInAppBrowser": { + "description": "Label for toggling setting to open links with in-app browser" }, - "dmsWithYourselfPageTitle": "私訊給自己", - "@dmsWithYourselfPageTitle": { - "description": "Message list page title for a DM group that only includes yourself." + "@permissionsDeniedCameraAccess": { + "description": "Message for dialog asking the user to grant permissions for camera access." }, - "messageListGroupYouAndOthers": "您與 {others}", - "@messageListGroupYouAndOthers": { - "description": "Message list recipient header for a DM group with others.", + "@permissionsDeniedReadExternalStorage": { + "description": "Message for dialog asking the user to grant permissions for external storage read access." + }, + "@permissionsNeededOpenSettings": { + "description": "Button label for permissions dialog button that opens the system settings screen." + }, + "@permissionsNeededTitle": { + "description": "Title for dialog asking the user to grant additional permissions." + }, + "@pinnedSubscriptionsLabel": { + "description": "Label for the list of pinned subscribed channels." + }, + "@pollVoterNames": { + "description": "The list of people who voted for a poll option, wrapped in parentheses.", "placeholders": { - "others": { - "type": "String", - "example": "Alice, Bob" + "voterNames": { + "example": "Alice, Bob, Chad", + "type": "String" } } }, - "dmsWithOthersPageTitle": "與 {others} 的私訊", - "@dmsWithOthersPageTitle": { - "description": "Message list page title for a DM group with others.", - "placeholders": { - "others": { - "type": "String", - "example": "Alice, Bob" - } - } + "@pollWidgetOptionsMissing": { + "description": "Text to display for a poll when it has no options" }, - "emptyMessageList": "這裡沒有訊息。", - "@emptyMessageList": { - "description": "Placeholder for some message-list pages when there are no messages." + "@pollWidgetQuestionMissing": { + "description": "Text to display for a poll when the question is missing" }, - "emptyMessageListSearch": "沒有搜尋結果。", - "@emptyMessageListSearch": { - "description": "Placeholder for the 'Search' page when there are no messages." + "@preparingEditMessageContentInput": { + "description": "Hint text for content input when the compose box is preparing to edit a message." }, - "messageListGroupYouWithYourself": "與自己的訊息", - "@messageListGroupYouWithYourself": { - "description": "Message list recipient header for a DM group that only includes yourself." + "@profileButtonSendDirectMessage": { + "description": "Label for button in profile screen to navigate to DMs with the shown user." }, - "contentValidationErrorTooLong": "訊息長度不應超過 10000 個字元。", - "@contentValidationErrorTooLong": { - "description": "Content validation error message when the message is too long." + "@reactedEmojiSelfUser": { + "description": "Display name for the user themself, to show on an emoji reaction added by the user." }, - "contentValidationErrorEmpty": "您沒有要發送的內容!", - "@contentValidationErrorEmpty": { - "description": "Content validation error message when the message is empty." + "@reactionChipLabel": { + "description": "Text describing a reaction chip, with the emoji name and a list or number of votes. (An accessibility label for assistive technology.)", + "placeholders": { + "emojiName": { + "example": "working_on_it", + "type": "String" + }, + "votes": { + "example": "You, Chris, Greg", + "type": "String" + } + } }, - "discardDraftConfirmationDialogTitle": "要捨棄您正在編寫的訊息嗎?", - "@discardDraftConfirmationDialogTitle": { - "description": "Title for a confirmation dialog for discarding message text that was typed into the compose box." + "@reactionChipVotesYouAndOthers": { + "description": "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.)", + "placeholders": { + "otherUsersCount": { + "example": "4", + "type": "int" + } + } }, - "discardDraftForEditConfirmationDialogMessage": "當您編輯訊息時,編輯框中原有的內容將被捨棄。", - "@discardDraftForEditConfirmationDialogMessage": { - "description": "Message for a confirmation dialog for discarding message text that was typed into the compose box, when editing a message." + "@reactionChipsLabel": { + "description": "Text identifying the container of reaction chips on a message. (An accessibility label for assistive technology.)" }, - "discardDraftForOutboxConfirmationDialogMessage": "當您還原未發送的訊息時,編輯框中原有的內容將被捨棄。", - "@discardDraftForOutboxConfirmationDialogMessage": { - "description": "Message for a confirmation dialog when restoring an outbox message, for discarding message text that was typed into the compose box." + "@recentDmConversationsEmptyPlaceholder": { + "description": "Centered text on the 'Direct messages' page saying that there is no content to show." }, - "discardDraftConfirmationDialogConfirmButton": "捨棄", - "@discardDraftConfirmationDialogConfirmButton": { - "description": "Label for the 'Discard' button on a confirmation dialog for discarding message text that was typed into the compose box." + "@recentDmConversationsPageTitle": { + "description": "Title for the page with a list of DM conversations." }, - "errorDialogContinue": "OK", - "@errorDialogContinue": { - "description": "Button label in error dialogs to acknowledge the error and close the dialog." + "@recentDmConversationsSectionHeader": { + "description": "Heading for direct messages section on the 'Inbox' message view." }, - "snackBarDetails": "詳細資訊", - "@snackBarDetails": { - "description": "Button label for snack bar button that opens a dialog with more details." + "@revealButtonLabel": { + "description": "Label for the button revealing hidden message from a muted sender in message list." }, - "lightboxVideoCurrentPosition": "目前位置", - "@lightboxVideoCurrentPosition": { - "description": "The current playback position of the video playing in the lightbox." + "@savingMessageEditFailedLabel": { + "description": "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.)" }, - "lightboxVideoDuration": "影片長度", - "@lightboxVideoDuration": { - "description": "The total duration of the video playing in the lightbox." + "@savingMessageEditLabel": { + "description": "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.)" }, - "loginMethodDivider": "或", - "@loginMethodDivider": { - "description": "Text on the divider between the username/password form and the third-party login options. Uppercase (for languages with letter case)." + "@scrollToBottomTooltip": { + "description": "Tooltip for button to scroll to bottom." }, - "topicValidationErrorTooLong": "議題長度不得超過 60 個字元。", - "@topicValidationErrorTooLong": { - "description": "Topic validation error when topic is too long." + "@searchMessagesClearButtonTooltip": { + "description": "Tooltip for the 'x' button in the search text field." }, - "topicValidationErrorMandatoryButEmpty": "此組織要求必須填寫議題。", - "@topicValidationErrorMandatoryButEmpty": { - "description": "Topic validation error when topic is required but was empty." + "@searchMessagesHintText": { + "description": "Hint text for the message search text field." }, - "errorServerVersionUnsupportedMessage": "{url} 執行的 Zulip Server 為 {zulipVersion},此版本已不受支援。最低支援版本為 Zulip Server {minSupportedZulipVersion}。", - "@errorServerVersionUnsupportedMessage": { - "description": "Error message in the dialog for when the Zulip Server version is unsupported.", + "@searchMessagesPageTitle": { + "description": "Page title for the 'Search' message view." + }, + "@seeWhoReactedSheetEmojiNameWithVoteCount": { + "description": "In the 'See who reacted' sheet, an emoji reaction's name and how many votes it has. (An accessibility label for assistive technology.)", "placeholders": { - "url": { - "type": "String", - "example": "http://chat.example.com/" + "emojiName": { + "example": "working_on_it", + "type": "String" }, - "zulipVersion": { - "type": "String", - "example": "3.2" - }, - "minSupportedZulipVersion": { - "type": "String", - "example": "4.0" + "num": { + "example": "2", + "type": "int" } } }, - "errorInvalidApiKeyMessage": "您在 {url} 的帳號無法通過驗證。請重新登入或使用其他帳號。", - "@errorInvalidApiKeyMessage": { - "description": "Error message in the dialog for invalid API key.", + "@seeWhoReactedSheetHeaderLabel": { + "description": "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.)", "placeholders": { - "url": { - "type": "String", - "example": "http://chat.example.com/" + "num": { + "example": "2", + "type": "int" } } }, - "errorMalformedResponse": "伺服器回傳了格式錯誤的回應;HTTP 狀態碼為 {httpStatus}", - "@errorMalformedResponse": { - "description": "Error message when an API call fails because we could not parse the response.", - "placeholders": { - "httpStatus": { - "type": "int", - "example": "200" - } - } + "@seeWhoReactedSheetNoReactions": { + "description": "Explanation on the 'See who reacted' sheet when the message has no reactions (because they were removed after the sheet was opened)." }, - "errorMalformedResponseWithCause": "伺服器回傳了格式錯誤的回應;HTTP 狀態碼為 {httpStatus};{details}", - "@errorMalformedResponseWithCause": { - "description": "Error message when an API call fails because we could not parse the response, with details of the failure.", + "@seeWhoReactedSheetUserListLabel": { + "description": "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.)", "placeholders": { - "httpStatus": { - "type": "int", - "example": "200" + "emojiName": { + "example": "working_on_it", + "type": "String" }, - "details": { - "type": "String", - "example": "type 'Null' is not a subtype of type 'String' in type cast" + "num": { + "example": "2", + "type": "int" } } }, - "errorRequestFailed": "網路請求失敗:HTTP 狀態碼為 {httpStatus}", - "@errorRequestFailed": { - "description": "Error message when an API call fails.", - "placeholders": { - "httpStatus": { - "type": "int", - "example": "500" - } - } + "@serverUrlValidationErrorEmpty": { + "description": "Error message when URL is empty" + }, + "@serverUrlValidationErrorInvalidUrl": { + "description": "Error message when URL is not in a valid format." + }, + "@serverUrlValidationErrorNoUseEmail": { + "description": "Error message when URL looks like an email" }, - "serverUrlValidationErrorUnsupportedScheme": "伺服器 URL 必須以 http:// 或 https:// 開頭。", "@serverUrlValidationErrorUnsupportedScheme": { "description": "Error message when URL has an unsupported scheme." }, - "markAsReadComplete": "已標為已讀:{num, plural, =1{1 則訊息} other{{num} 則訊息}}。", - "@markAsReadComplete": { - "description": "Message when marking messages as read has completed.", + "@setStatusPageTitle": { + "description": "Title for the 'Set status' page." + }, + "@settingsPageTitle": {}, + "@signInWithFoo": { + "description": "Button to use {method} to sign in to the app.", "placeholders": { - "num": { - "type": "int", - "example": "4" + "method": { + "example": "Google", + "type": "String" } } }, - "markAsReadInProgress": "正在標記訊息為已讀…", - "@markAsReadInProgress": { - "description": "Progress message when marking messages as read." + "@snackBarDetails": { + "description": "Button label for snack bar button that opens a dialog with more details." }, - "errorMarkAsReadFailedTitle": "標記為已讀失敗", - "@errorMarkAsReadFailedTitle": { - "description": "Error title when mark as read action failed." + "@spoilerDefaultHeaderText": { + "description": "The default header text in a spoiler block ( https://zulip.com/help/spoilers )." }, - "markAsUnreadComplete": "已標為未讀:{num, plural, =1{1 則訊息} other{{num} 則訊息}}。", - "@markAsUnreadComplete": { - "description": "Message when marking messages as unread has completed.", - "placeholders": { - "num": { - "type": "int", - "example": "4" - } - } + "@starredMessagesPageTitle": { + "description": "Page title for the 'Starred messages' message view." }, - "errorMarkAsUnreadFailedTitle": "標記為未讀失敗", - "@errorMarkAsUnreadFailedTitle": { - "description": "Error title when mark as unread action failed." + "@statusButtonLabelStatusSet": { + "description": "The status button label in self-user profile page when status is set." }, - "invisibleMode": "隱身模式", - "@invisibleMode": { - "description": "Label for the 'Invisible mode' switch on the profile page." + "@statusButtonLabelStatusUnset": { + "description": "The status button label in self-user profile page when status is not set." }, - "turnOnInvisibleModeErrorTitle": "啟用隱身模式時發生錯誤。請再試一次。", - "@turnOnInvisibleModeErrorTitle": { - "description": "Error title when turning on invisible mode failed." + "@statusClearButtonLabel": { + "description": "Label for the button that clears the user status, in 'Set status' page." }, - "turnOffInvisibleModeErrorTitle": "關閉隱身模式時發生錯誤。請再試一次。", - "@turnOffInvisibleModeErrorTitle": { - "description": "Error title when turning off invisible mode failed." + "@statusSaveButtonLabel": { + "description": "Label for the button that saves the user status, in 'Set status' page." }, - "userRoleUnknown": "未知", - "@userRoleUnknown": { - "description": "Label for UserRole.unknown" + "@statusTextHint": { + "description": "Hint text for the status text input field in 'Set status' page." }, - "inboxEmptyPlaceholder": "您的收件匣中沒有未讀訊息。請使用下方按鈕檢視整合訊息流或頻道清單。", - "@inboxEmptyPlaceholder": { - "description": "Centered text on the 'Inbox' page saying that there is no content to show." + "@subscribeFailedTitle": { + "description": "Error title when subscribing to a channel failed." }, - "recentDmConversationsEmptyPlaceholder": "您尚未有任何私人訊息!不如開始一段對話吧?", - "@recentDmConversationsEmptyPlaceholder": { - "description": "Centered text on the 'Direct messages' page saying that there is no content to show." + "@successChannelLinkCopied": { + "description": "Message when link of a channel was copied to the user's system clipboard." }, - "starredMessagesPageTitle": "已加星號的訊息", - "@starredMessagesPageTitle": { - "description": "Page title for the 'Starred messages' message view." + "@successLinkCopied": { + "description": "Success message after copy link action completed." }, - "channelsEmptyPlaceholder": "您尚未訂閱任何頻道。", - "@channelsEmptyPlaceholder": { - "description": "Centered text on the 'Channels' page saying that there is no content to show." + "@successMessageLinkCopied": { + "description": "Message when link of a message was copied to the user's system clipboard." }, - "mainMenuMyProfile": "我的設定檔", - "@mainMenuMyProfile": { - "description": "Label for main-menu button leading to the user's own profile." + "@successMessageTextCopied": { + "description": "Message when content of a message was copied to the user's system clipboard." }, - "notifGroupDmConversationLabel": "{senderFullName} 傳送給您和 {numOthers, plural, =1{1 位其他對象、} other{{numOthers} 位其他對象}}", - "@notifGroupDmConversationLabel": { - "description": "Label for a group DM conversation notification.", - "placeholders": { - "senderFullName": { - "type": "String", - "example": "Alice" - }, - "numOthers": { - "type": "int", - "example": "4" - } - } + "@successTopicLinkCopied": { + "description": "Message when link of a topic was copied to the user's system clipboard." }, - "notifSelfUser": "您", - "@notifSelfUser": { - "description": "Display name for the user themself, to show after replying in an Android notification" + "@switchAccountButton": { + "description": "Label for main-menu button leading to the choose-account page." }, - "reactedEmojiSelfUser": "您", - "@reactedEmojiSelfUser": { - "description": "Display name for the user themself, to show on an emoji reaction added by the user." + "@themeSettingDark": { + "description": "Label for dark theme setting." }, - "onePersonTyping": "{typist} 正在輸入…", - "@onePersonTyping": { - "description": "Text to display when there is one user typing.", - "placeholders": { - "typist": { - "type": "String", - "example": "Alice" - } + "@themeSettingLight": { + "description": "Label for light theme setting." + }, + "@themeSettingSystem": { + "description": "Label for system theme setting." + }, + "@themeSettingTitle": { + "description": "Title for theme setting. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + }, + "@today": { + "description": "Term to use to reference the current day." + }, + "@topicValidationErrorMandatoryButEmpty": { + "description": "Topic validation error when topic is required but was empty." + }, + "@topicValidationErrorTooLong": { + "description": "Topic validation error when topic is too long." + }, + "@topicsButtonTooltip": { + "description": "Tooltip for button to navigate to topic-list page." + }, + "@tryAnotherAccountButton": { + "description": "Label for loading screen button prompting user to try another account." + }, + "@tryAnotherAccountMessage": { + "description": "Message that appears on the loading screen after waiting for some time.", + "url": { + "example": "http://chat.example.com/", + "type": "String" } }, - "twoPeopleTyping": "{typist} 和 {otherTypist} 正在輸入…", + "@turnOffInvisibleModeErrorTitle": { + "description": "Error title when turning off invisible mode failed." + }, + "@turnOnInvisibleModeErrorTitle": { + "description": "Error title when turning on invisible mode failed." + }, "@twoPeopleTyping": { "description": "Text to display when there are two users typing.", "placeholders": { - "typist": { - "type": "String", - "example": "Alice" - }, "otherTypist": { - "type": "String", - "example": "Bob" + "example": "Bob", + "type": "String" + }, + "typist": { + "example": "Alice", + "type": "String" } } }, - "manyPeopleTyping": "有些人正在輸入…", - "@manyPeopleTyping": { - "description": "Text to display when there are multiple users typing." - }, - "wildcardMentionAll": "全部", + "@unknownChannelName": { + "description": "Replacement name for channel when it cannot be found in the store." + }, + "@unknownUserName": { + "description": "Name placeholder to use for a user when we don't know their name." + }, + "@unpinnedSubscriptionsLabel": { + "description": "Label for the list of unpinned subscribed channels." + }, + "@unsubscribeConfirmationDialogConfirmButton": { + "description": "Label for the 'Unsubscribe' button on a confirmation dialog for unsubscribing from a channel." + }, + "@unsubscribeConfirmationDialogMessageMaybeCannotResubscribe": { + "description": "Message for a confirmation dialog for unsubscribing from a channel when you might not have permission to resubscribe." + }, + "@unsubscribeConfirmationDialogTitle": { + "description": "Title for a confirmation dialog for unsubscribing from a channel.", + "placeholders": { + "channelName": { + "example": "mobile", + "type": "String" + } + } + }, + "@unsubscribeFailedTitle": { + "description": "Error title when unsubscribing from a channel failed." + }, + "@updateStatusErrorTitle": { + "description": "Error title when updating user status failed." + }, + "@upgradeWelcomeDialogDismiss": { + "description": "Label for button dismissing dialog shown on first upgrade from the legacy Zulip app." + }, + "@upgradeWelcomeDialogLinkText": { + "description": "Text of link in dialog shown on first upgrade from the legacy Zulip app." + }, + "@upgradeWelcomeDialogMessage": { + "description": "Message text for dialog shown on first upgrade from the legacy Zulip app." + }, + "@upgradeWelcomeDialogTitle": { + "description": "Title for dialog shown on first upgrade from the legacy Zulip app." + }, + "@userRoleAdministrator": { + "description": "Label for UserRole.administrator" + }, + "@userRoleGuest": { + "description": "Label for UserRole.guest" + }, + "@userRoleMember": { + "description": "Label for UserRole.member" + }, + "@userRoleModerator": { + "description": "Label for UserRole.moderator" + }, + "@userRoleOwner": { + "description": "Label for UserRole.owner" + }, + "@userRoleUnknown": { + "description": "Label for UserRole.unknown" + }, + "@userStatusAtTheOffice": { + "description": "A suggested user status text, 'At the office'." + }, + "@userStatusBusy": { + "description": "A suggested user status text, 'Busy'." + }, + "@userStatusCommuting": { + "description": "A suggested user status text, 'Commuting'." + }, + "@userStatusInAMeeting": { + "description": "A suggested user status text, 'In a meeting'." + }, + "@userStatusOutSick": { + "description": "A suggested user status text, 'Out sick'." + }, + "@userStatusVacationing": { + "description": "A suggested user status text, 'Vacationing'." + }, + "@userStatusWorkingRemotely": { + "description": "A suggested user status text, 'Working remotely'." + }, "@wildcardMentionAll": { "description": "Text for \"@all\" wildcard-mention autocomplete option when writing a channel or DM message." }, - "wildcardMentionEveryone": "所有人", + "@wildcardMentionAllDmDescription": { + "description": "Description for \"@all\" and \"@everyone\" wildcard-mention autocomplete options when writing a DM message." + }, + "@wildcardMentionChannel": { + "description": "Text for \"@channel\" wildcard-mention autocomplete option when writing a channel message." + }, + "@wildcardMentionChannelDescription": { + "description": "Description for \"@all\", \"@everyone\", \"@channel\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message." + }, "@wildcardMentionEveryone": { "description": "Text for \"@everyone\" wildcard-mention autocomplete option when writing a channel or DM message." }, - "wildcardMentionStream": "串流", "@wildcardMentionStream": { "description": "Text for \"@stream\" wildcard-mention autocomplete option when writing a channel message in older servers." }, - "wildcardMentionStreamDescription": "通知串流", "@wildcardMentionStreamDescription": { "description": "Description for \"@all\", \"@everyone\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message in older servers." }, - "wildcardMentionAllDmDescription": "通知收件人", - "@wildcardMentionAllDmDescription": { - "description": "Description for \"@all\" and \"@everyone\" wildcard-mention autocomplete options when writing a DM message." - }, - "messageIsEditedLabel": "已編輯", - "@messageIsEditedLabel": { - "description": "Label for an edited message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" - }, - "messageIsMovedLabel": "已移動", - "@messageIsMovedLabel": { - "description": "Label for a moved message. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" - }, - "messageNotSentLabel": "訊息未送出", - "@messageNotSentLabel": { - "description": "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.)" - }, - "pollVoterNames": "({voterNames})", - "@pollVoterNames": { - "description": "The list of people who voted for a poll option, wrapped in parentheses.", - "placeholders": { - "voterNames": { - "type": "String", - "example": "Alice, Bob, Chad" - } - } - }, - "openLinksWithInAppBrowser": "使用應用程式內建瀏覽器開啟連結", - "@openLinksWithInAppBrowser": { - "description": "Label for toggling setting to open links with in-app browser" + "@wildcardMentionTopic": { + "description": "Text for \"@topic\" wildcard-mention autocomplete option when writing a channel message." }, - "pollWidgetQuestionMissing": "沒有問題。", - "@pollWidgetQuestionMissing": { - "description": "Text to display for a poll when the question is missing" + "@wildcardMentionTopicDescription": { + "description": "Description for \"@topic\" wildcard-mention autocomplete options when writing a channel message." }, - "pollWidgetOptionsMissing": "此投票尚未有任何選項。", - "@pollWidgetOptionsMissing": { - "description": "Text to display for a poll when it has no options" + "@yesterday": { + "description": "Term to use to reference the previous day." }, - "initialAnchorSettingTitle": "開啟訊息串於", - "@initialAnchorSettingTitle": { - "description": "Title of setting controlling initial anchor of message list." + "@zulipAppTitle": { + "description": "The name of Zulip. This should be either 'Zulip' or a transliteration." }, + "aboutPageAppVersion": "App 版本", + "aboutPageOpenSourceLicenses": "開源授權條款", + "aboutPageTapToView": "點選查看", + "aboutPageTitle": "關於 Zulip", + "actionSheetOptionCopyChannelLink": "複製頻道連結", + "actionSheetOptionCopyMessageLink": "複製訊息連結", + "actionSheetOptionCopyMessageText": "複製訊息文字", + "actionSheetOptionCopyTopicLink": "複製議題的連結", + "actionSheetOptionEditMessage": "編輯訊息", + "actionSheetOptionFollowTopic": "跟隨話題", + "actionSheetOptionHideMutedMessage": "再次隱藏已靜音的話題", + "actionSheetOptionListOfTopics": "議題列表", + "actionSheetOptionMarkAsUnread": "從這裡開始標註為未讀", + "actionSheetOptionMarkChannelAsRead": "標註頻道為已讀", + "actionSheetOptionMarkTopicAsRead": "標註話題為已讀", + "actionSheetOptionMuteTopic": "靜音話題", + "actionSheetOptionQuoteMessage": "引述訊息", + "actionSheetOptionResolveTopic": "標註為已解決", + "actionSheetOptionSeeWhoReacted": "查看誰有回應", + "actionSheetOptionShare": "分享", + "actionSheetOptionStarMessage": "收藏訊息", + "actionSheetOptionSubscribe": "訂閱", + "actionSheetOptionUnfollowTopic": "取消跟隨話題", + "actionSheetOptionUnmuteTopic": "取消靜音話題", + "actionSheetOptionUnresolveTopic": "標註為未解決", + "actionSheetOptionUnstarMessage": "取消收藏訊息", + "actionSheetOptionUnsubscribe": "取消訂閱", + "appVersionUnknownPlaceholder": "(…)", + "channelFeedButtonTooltip": "頻道饋給", + "channelsEmptyPlaceholder": "您尚未訂閱任何頻道。", + "channelsPageTitle": "頻道", + "chooseAccountButtonAddAnAccount": "增添帳號", + "chooseAccountPageLogOutButton": "登出", + "chooseAccountPageTitle": "選取帳號", + "combinedFeedPageTitle": "綜合饋給", + "composeBoxAttachFilesTooltip": "附加檔案", + "composeBoxAttachFromCameraTooltip": "拍照", + "composeBoxAttachMediaTooltip": "附加圖片或影片", + "composeBoxBannerButtonCancel": "取消", + "composeBoxBannerButtonSave": "儲存", + "composeBoxBannerLabelEditMessage": "編輯訊息", + "composeBoxChannelContentHint": "訊息 {destination}", + "composeBoxDmContentHint": "訊息 @{user}", + "composeBoxEnterTopicOrSkipHintText": "輸入議題(留空則使用「{defaultTopicName}」)", + "composeBoxGenericContentHint": "輸入訊息", + "composeBoxGroupDmContentHint": "訊息群組", + "composeBoxLoadingMessage": "(載入訊息 {messageId} 中)", + "composeBoxSelfDmContentHint": "記下些什麼", + "composeBoxSendTooltip": "發送", + "composeBoxTopicHintText": "議題", + "composeBoxUploadingFilename": "正在上傳 {filename}…", + "contentValidationErrorEmpty": "您沒有要發送的內容!", + "contentValidationErrorQuoteAndReplyInProgress": "請等待引述完成。", + "contentValidationErrorTooLong": "訊息長度不應超過 10000 個字元。", + "contentValidationErrorUploadInProgress": "請等待上傳完成。", + "dialogCancel": "取消", + "dialogClose": "關閉", + "dialogContinue": "繼續", + "discardDraftConfirmationDialogConfirmButton": "捨棄", + "discardDraftConfirmationDialogTitle": "要捨棄您正在編寫的訊息嗎?", + "discardDraftForEditConfirmationDialogMessage": "當您編輯訊息時,編輯框中原有的內容將被捨棄。", + "discardDraftForOutboxConfirmationDialogMessage": "當您還原未發送的訊息時,編輯框中原有的內容將被捨棄。", + "dmsWithOthersPageTitle": "與 {others} 的私訊", + "dmsWithYourselfPageTitle": "私訊給自己", + "editAlreadyInProgressMessage": "編輯已在進行中。請等待其完成。", + "editAlreadyInProgressTitle": "無法編輯訊息", + "emojiPickerSearchEmoji": "搜尋表情符號", + "emojiReactionsMore": "更多", + "emptyMessageList": "這裡沒有訊息。", + "emptyMessageListSearch": "沒有搜尋結果。", + "errorAccountLoggedIn": "在 {server} 的帳號 {email} 已經存在帳號清單中。", + "errorAccountLoggedInTitle": "帳號已經登入了", + "errorBannerCannotPostInChannelLabel": "您沒有權限在此頻道發佈訊息。", + "errorBannerDeactivatedDmLabel": "您無法向已停用的使用者發送訊息。", + "errorConnectingToServerDetails": "連接 Zulip {serverUrl} 時發生錯誤。將重試:\n\n{error}", + "errorConnectingToServerShort": "連接 Zulip 時發生錯誤。重試中…", + "errorCopyingFailed": "複製失敗", + "errorCouldNotConnectTitle": "無法連線", + "errorCouldNotEditMessageTitle": "無法編輯訊息", + "errorCouldNotFetchMessageSource": "無法取得訊息來源。", + "errorCouldNotOpenLink": "無法開啟連結: {url}", + "errorCouldNotOpenLinkTitle": "無法開啟連結", + "errorCouldNotShowUserProfile": "無法顯示使用者設定檔。", + "errorDialogContinue": "OK", + "errorDialogLearnMore": "了解更多", + "errorDialogTitle": "錯誤", + "errorFailedToUploadFileTitle": "上傳檔案失敗:{filename}", + "errorFilesTooLarge": "{num, plural, =1{檔案} other{{num} 個檔案}}超過伺服器 {maxFileUploadSizeMib} MiB 的限制,將不會上傳:\n\n{listMessage}", + "errorFilesTooLargeTitle": "{num, plural, =1{檔案} other{檔案}}太大", + "errorFollowTopicFailed": "無法跟隨話題", + "errorHandlingEventDetails": "處理來自 {serverUrl} 的 Zulip 事件時發生錯誤;將重試。\n\n錯誤:{error}\n\n事件:{event}", + "errorHandlingEventTitle": "處理 Zulip 事件時發生錯誤。重新連線中…", + "errorInvalidApiKeyMessage": "您在 {url} 的帳號無法通過驗證。請重新登入或使用其他帳號。", + "errorInvalidResponse": "伺服器傳送了無效的請求。", + "errorLoginCouldNotConnect": "無法連線到伺服器:\n{url}", + "errorLoginFailedTitle": "登入失敗", + "errorLoginInvalidInputTitle": "無效的輸入", + "errorMalformedResponse": "伺服器回傳了格式錯誤的回應;HTTP 狀態碼為 {httpStatus}", + "errorMalformedResponseWithCause": "伺服器回傳了格式錯誤的回應;HTTP 狀態碼為 {httpStatus};{details}", + "errorMarkAsReadFailedTitle": "標記為已讀失敗", + "errorMarkAsUnreadFailedTitle": "標記為未讀失敗", + "errorMessageDoesNotSeemToExist": "該訊息似乎不存在。", + "errorMessageEditNotSaved": "訊息沒有儲存", + "errorMessageNotSent": "訊息沒有送出", + "errorMuteTopicFailed": "無法靜音話題", + "errorNetworkRequestFailed": "網路請求失敗", + "errorNotificationOpenAccountNotFound": "找不到與此通知相關聯的帳號。", + "errorNotificationOpenTitle": "無法開啟通知", + "errorQuotationFailed": "引述失敗", + "errorReactionAddingFailedTitle": "新增表情反應失敗", + "errorReactionRemovingFailedTitle": "移除表情反應失敗", + "errorRequestFailed": "網路請求失敗:HTTP 狀態碼為 {httpStatus}", + "errorResolveTopicFailedTitle": "無法標註話題為已解決", + "errorServerMessage": "伺服器回應:\n\n{message}", + "errorServerVersionUnsupportedMessage": "{url} 執行的 Zulip Server 為 {zulipVersion},此版本已不受支援。最低支援版本為 Zulip Server {minSupportedZulipVersion}。", + "errorSharingFailed": "分享失敗", + "errorStarMessageFailedTitle": "無法收藏訊息", + "errorUnfollowTopicFailed": "無法取消跟隨話題", + "errorUnmuteTopicFailed": "無法取消靜音話題", + "errorUnresolveTopicFailedTitle": "無法標註話題為未解決", + "errorUnstarMessageFailedTitle": "無法取消收藏訊息", + "errorVideoPlayerFailed": "無法播放影片。", + "errorWebAuthOperationalError": "出現了意外的錯誤。", + "errorWebAuthOperationalErrorTitle": "出錯了", + "experimentalFeatureSettingsPageTitle": "實驗性功能", + "experimentalFeatureSettingsWarning": "這些選項啟用的功能仍在開發中,尚未完善。它們可能無法正常運作,且可能導致應用程式其他部分出現問題。\n\n這些設定的目的是供參與 Zulip 開發的人員進行試驗使用。", + "filenameAndSizeInMiB": "{filename}: {size} MiB", + "inboxEmptyPlaceholder": "您的收件匣中沒有未讀訊息。請使用下方按鈕查看整合訊息流或頻道清單。", + "inboxPageTitle": "收件匣", "initialAnchorSettingDescription": "您可以選擇將訊息串開啟在第一則未讀訊息,或是最新的訊息。", - "@initialAnchorSettingDescription": { - "description": "Description of setting controlling initial anchor of message list." - }, + "initialAnchorSettingFirstUnreadAlways": "第一則未讀訊息", "initialAnchorSettingFirstUnreadConversations": "在對話檢視中開啟第一則未讀訊息,其餘情況則開啟最新訊息", - "@initialAnchorSettingFirstUnreadConversations": { - "description": "Label for a value of setting controlling initial anchor of message list." - }, - "markReadOnScrollSettingTitle": "捲動時將訊息標記為已讀", - "@markReadOnScrollSettingTitle": { - "description": "Title of setting controlling which message-list views should mark read on scroll." - }, - "markReadOnScrollSettingDescription": "在捲動瀏覽訊息時,是否要自動將其標記為已讀?", - "@markReadOnScrollSettingDescription": { - "description": "Description of setting controlling which message-list views should mark read on scroll." - }, + "initialAnchorSettingNewestAlways": "最新訊息", + "initialAnchorSettingTitle": "開啟訊息串於", + "invisibleMode": "隱身模式", + "lightboxCopyLinkTooltip": "複製連結", + "lightboxVideoCurrentPosition": "目前位置", + "lightboxVideoDuration": "影片長度", + "logOutConfirmationDialogConfirmButton": "登出", + "logOutConfirmationDialogMessage": "要在未來使用此帳號,您將需要重新輸入您組織的網址和您的帳號資訊。", + "logOutConfirmationDialogTitle": "登出?", + "loginAddAnAccountPageTitle": "增添帳號", + "loginEmailLabel": "電子郵件地址", + "loginErrorMissingEmail": "請輸入您的電子郵件地址。", + "loginErrorMissingPassword": "請輸入您的密碼。", + "loginErrorMissingUsername": "請輸入您的使用者名稱。", + "loginFormSubmitLabel": "登入", + "loginHidePassword": "隱藏密碼", + "loginMethodDivider": "或", + "loginPageTitle": "登入", + "loginPasswordLabel": "密碼", + "loginServerUrlLabel": "您的 Zulip 伺服器網址", + "loginUsernameLabel": "使用者名稱", + "mainMenuMyProfile": "我的設定檔", + "manyPeopleTyping": "有些人正在輸入…", + "markAllAsReadLabel": "標註所有訊息為已讀", + "markAsReadComplete": "已標為已讀:{num, plural, =1{1 則訊息} other{{num} 則訊息}}。", + "markAsReadInProgress": "正在標記訊息為已讀…", + "markAsUnreadComplete": "已標為未讀:{num, plural, =1{1 則訊息} other{{num} 則訊息}}。", + "markAsUnreadInProgress": "正在標註訊息為未讀…", "markReadOnScrollSettingAlways": "總是", - "@markReadOnScrollSettingAlways": { - "description": "Label for a value of setting controlling which message-list views should mark read on scroll." - } + "markReadOnScrollSettingConversations": "僅在對話檢視中", + "markReadOnScrollSettingConversationsDescription": "只有在查看單一議題或私人訊息對話時,訊息才會自動標記為已讀。", + "markReadOnScrollSettingDescription": "在捲動瀏覽訊息時,是否要自動將其標記為已讀?", + "markReadOnScrollSettingNever": "從不", + "markReadOnScrollSettingTitle": "捲動時將訊息標記為已讀", + "mentionsPageTitle": "提及", + "messageIsEditedLabel": "已編輯", + "messageIsMovedLabel": "已移動", + "messageListGroupYouAndOthers": "您與 {others}", + "messageListGroupYouWithYourself": "與自己的訊息", + "messageNotSentLabel": "訊息未送出", + "mutedUser": "已靜音的使用者", + "newDmFabButtonLabel": "新增私訊", + "newDmSheetComposeButtonLabel": "編寫", + "newDmSheetNoUsersFound": "找不到使用者", + "newDmSheetScreenTitle": "新增私訊", + "newDmSheetSearchHintEmpty": "增添一個或多個使用者", + "newDmSheetSearchHintSomeSelected": "增添其他使用者…", + "noEarlierMessages": "沒有更早的訊息", + "noStatusText": "無狀態文字", + "notifGroupDmConversationLabel": "{senderFullName} 傳送給您和 {numOthers, plural, =1{1 位其他對象、} other{{numOthers} 位其他對象}}", + "notifSelfUser": "您", + "onePersonTyping": "{typist} 正在輸入…", + "openLinksWithInAppBrowser": "使用應用程式內建瀏覽器開啟連結", + "permissionsDeniedCameraAccess": "要上傳圖片,請在設定中授予 Zulip 額外權限。", + "permissionsDeniedReadExternalStorage": "要上傳檔案,請在設定中授予 Zulip 額外權限。", + "permissionsNeededOpenSettings": "開啟設定", + "permissionsNeededTitle": "需要的權限", + "pinnedSubscriptionsLabel": "已釘選", + "pollVoterNames": "({voterNames})", + "pollWidgetOptionsMissing": "此投票尚未有任何選項。", + "pollWidgetQuestionMissing": "沒有問題。", + "preparingEditMessageContentInput": "準備中…", + "profileButtonSendDirectMessage": "發送私訊", + "reactedEmojiSelfUser": "您", + "reactionChipLabel": "{emojiName}: {votes}", + "reactionChipVotesYouAndOthers": "{otherUsersCount, plural, =1 {你與其他 1 人} other {你與其他 {otherUsersCount} 人}}", + "reactionChipsLabel": "反應", + "recentDmConversationsEmptyPlaceholder": "您尚未有任何私人訊息!不如開始一段對話吧?", + "recentDmConversationsPageTitle": "私人訊息", + "recentDmConversationsSectionHeader": "私人訊息", + "revealButtonLabel": "顯示訊息", + "savingMessageEditFailedLabel": "編輯未儲存", + "savingMessageEditLabel": "儲存編輯中…", + "scrollToBottomTooltip": "捲動至底部", + "searchMessagesClearButtonTooltip": "清除", + "searchMessagesHintText": "搜尋", + "searchMessagesPageTitle": "搜尋", + "seeWhoReactedSheetEmojiNameWithVoteCount": "{emojiName}:{num, plural, =1 {1 票} other {{num} 票}}", + "seeWhoReactedSheetHeaderLabel": "表情符號回應 (共 {num} 個)", + "seeWhoReactedSheetNoReactions": "此訊息尚無任何回應。", + "seeWhoReactedSheetUserListLabel": "{emojiName} 的投票數({num})", + "serverUrlValidationErrorEmpty": "請輸入網址。", + "serverUrlValidationErrorInvalidUrl": "請輸入有效的網址。", + "serverUrlValidationErrorNoUseEmail": "請輸入伺服器網址,而非您的電子郵件。", + "serverUrlValidationErrorUnsupportedScheme": "伺服器 URL 必須以 http:// 或 https:// 開頭。", + "setStatusPageTitle": "設定狀態", + "settingsPageTitle": "設定", + "signInWithFoo": "使用 {method} 登入", + "snackBarDetails": "詳細資訊", + "spoilerDefaultHeaderText": "劇透", + "starredMessagesPageTitle": "已加星號的訊息", + "statusButtonLabelStatusSet": "狀態", + "statusButtonLabelStatusUnset": "設定狀態", + "statusClearButtonLabel": "清除", + "statusSaveButtonLabel": "儲存", + "statusTextHint": "您的狀態", + "subscribeFailedTitle": "訂閱失敗", + "successChannelLinkCopied": "頻道連結已複製", + "successLinkCopied": "已複製連結", + "successMessageLinkCopied": "已複製訊息連結", + "successMessageTextCopied": "已複製訊息文字", + "successTopicLinkCopied": "議題連結已複製", + "switchAccountButton": "切換帳號", + "themeSettingDark": "深色主題", + "themeSettingLight": "淺色主題", + "themeSettingSystem": "系統主題", + "themeSettingTitle": "主題", + "today": "今天", + "topicValidationErrorMandatoryButEmpty": "此組織要求必須填寫議題。", + "topicValidationErrorTooLong": "議題長度不得超過 60 個字元。", + "topicsButtonTooltip": "話題", + "tryAnotherAccountButton": "請嘗試別的帳號", + "tryAnotherAccountMessage": "您在 {url} 的帳號載入的比較久。", + "turnOffInvisibleModeErrorTitle": "關閉隱身模式時發生錯誤。請再試一次。", + "turnOnInvisibleModeErrorTitle": "啟用隱身模式時發生錯誤。請再試一次。", + "twoPeopleTyping": "{typist} 和 {otherTypist} 正在輸入…", + "unknownChannelName": "(未知頻道)", + "unknownUserName": "(未知使用者)", + "unpinnedSubscriptionsLabel": "未釘選", + "unsubscribeConfirmationDialogConfirmButton": "取消訂閱", + "unsubscribeConfirmationDialogMessageMaybeCannotResubscribe": "一旦您離開此頻道,可能無法重新加入。", + "unsubscribeConfirmationDialogTitle": "確定要取消訂閱 {channelName} 嗎?", + "unsubscribeFailedTitle": "取消訂閱失敗", + "updateStatusErrorTitle": "更新使用者狀態時發生錯誤。請再試一次。", + "upgradeWelcomeDialogDismiss": "開始吧", + "upgradeWelcomeDialogLinkText": "查看公告部落格文章!", + "upgradeWelcomeDialogMessage": "您將在更快、更流暢的版本中享受熟悉的體驗。", + "upgradeWelcomeDialogTitle": "歡迎使用新 Zulip 應用程式!", + "userRoleAdministrator": "管理員", + "userRoleGuest": "訪客", + "userRoleMember": "成員", + "userRoleModerator": "版主", + "userRoleOwner": "擁有者", + "userRoleUnknown": "未知", + "userStatusAtTheOffice": "在辦公室", + "userStatusBusy": "忙碌", + "userStatusCommuting": "通勤中", + "userStatusInAMeeting": "會議中", + "userStatusOutSick": "請病假", + "userStatusVacationing": "休假中", + "userStatusWorkingRemotely": "遠端工作中", + "wildcardMentionAll": "全部", + "wildcardMentionAllDmDescription": "通知收件人", + "wildcardMentionChannel": "頻道", + "wildcardMentionChannelDescription": "通知頻道", + "wildcardMentionEveryone": "所有人", + "wildcardMentionStream": "串流", + "wildcardMentionStreamDescription": "通知串流", + "wildcardMentionTopic": "議題", + "wildcardMentionTopicDescription": "通知話題", + "yesterday": "昨天", + "zulipAppTitle": "Zulip" } diff --git a/lib/generated/l10n/zulip_localizations_de.dart b/lib/generated/l10n/zulip_localizations_de.dart index 8d0826bac9..2318c7d1e1 100644 --- a/lib/generated/l10n/zulip_localizations_de.dart +++ b/lib/generated/l10n/zulip_localizations_de.dart @@ -21,7 +21,7 @@ class ZulipLocalizationsDe extends ZulipLocalizations { String get aboutPageTapToView => 'Antippen zum Ansehen'; @override - String get upgradeWelcomeDialogTitle => 'Willkommen bei der neuen Zulip-App!'; + String get upgradeWelcomeDialogTitle => 'Willkommen in der neuen Zulip-App!'; @override String get upgradeWelcomeDialogMessage => @@ -89,38 +89,38 @@ class ZulipLocalizationsDe extends ZulipLocalizations { 'Bitte gewähre Zulip zusätzliche Berechtigungen in den Einstellungen, um Dateien hochzuladen.'; @override - String get actionSheetOptionSubscribe => 'Subscribe'; + String get actionSheetOptionSubscribe => 'Abonnieren'; @override - String get subscribeFailedTitle => 'Failed to subscribe'; + String get subscribeFailedTitle => 'Konnte nicht abonnieren'; @override String get actionSheetOptionMarkChannelAsRead => 'Kanal als gelesen markieren'; @override - String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; + String get actionSheetOptionCopyChannelLink => 'Link zum Kanal kopieren'; @override String get actionSheetOptionListOfTopics => 'Themenliste'; @override - String get actionSheetOptionUnsubscribe => 'Unsubscribe'; + String get actionSheetOptionUnsubscribe => 'Deabonnieren'; @override String unsubscribeConfirmationDialogTitle(String channelName) { - return 'Unsubscribe from $channelName?'; + return '$channelName deabonnieren?'; } @override String get unsubscribeConfirmationDialogMessageMaybeCannotResubscribe => - 'Once you leave this channel, you might not be able to rejoin.'; + 'Wenn du diesen Kanal verlässt, kannst du sich vielleicht nicht wieder beitreten.'; @override - String get unsubscribeConfirmationDialogConfirmButton => 'Unsubscribe'; + String get unsubscribeConfirmationDialogConfirmButton => 'Deabonnieren'; @override - String get unsubscribeFailedTitle => 'Failed to unsubscribe'; + String get unsubscribeFailedTitle => 'Konnte nicht deabonnieren'; @override String get actionSheetOptionMuteTopic => 'Thema stummschalten'; @@ -149,14 +149,15 @@ class ZulipLocalizationsDe extends ZulipLocalizations { 'Thema konnte nicht als ungelöst markiert werden'; @override - String get actionSheetOptionSeeWhoReacted => 'See who reacted'; + String get actionSheetOptionSeeWhoReacted => 'Wer hat reagiert'; @override - String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; + String get seeWhoReactedSheetNoReactions => + 'Diese Nachricht hat keine Reaktionen.'; @override String seeWhoReactedSheetHeaderLabel(int num) { - return 'Emoji reactions ($num total)'; + return 'Emoji-Reaktionen (insgesamt $num)'; } @override @@ -164,15 +165,15 @@ class ZulipLocalizationsDe extends ZulipLocalizations { String _temp0 = intl.Intl.pluralLogic( num, locale: localeName, - other: '$num votes', - one: '1 vote', + other: '$num Stimmen', + one: '1 Stimme', ); return '$emojiName: $_temp0'; } @override String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Votes for $emojiName ($num)'; + return 'Stimmen für $emojiName ($num)'; } @override @@ -207,7 +208,7 @@ class ZulipLocalizationsDe extends ZulipLocalizations { String get actionSheetOptionMarkTopicAsRead => 'Thema als gelesen markieren'; @override - String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; + String get actionSheetOptionCopyTopicLink => 'Link zum Thema kopieren'; @override String get errorWebAuthOperationalErrorTitle => 'Etwas ist schiefgelaufen'; @@ -371,7 +372,7 @@ class ZulipLocalizationsDe extends ZulipLocalizations { String get successMessageLinkCopied => 'Nachrichtenlink kopiert'; @override - String get successTopicLinkCopied => 'Topic link copied'; + String get successTopicLinkCopied => 'Link zum Thema kopiert'; @override String get successChannelLinkCopied => 'Channel link copied'; @@ -758,57 +759,57 @@ class ZulipLocalizationsDe extends ZulipLocalizations { String get noStatusText => 'No status text'; @override - String get setStatusPageTitle => 'Set status'; + String get setStatusPageTitle => 'Status setzen'; @override - String get statusClearButtonLabel => 'Clear'; + String get statusClearButtonLabel => 'Leeren'; @override - String get statusSaveButtonLabel => 'Save'; + String get statusSaveButtonLabel => 'Speichern'; @override - String get statusTextHint => 'Your status'; + String get statusTextHint => 'Dein Status'; @override - String get userStatusBusy => 'Busy'; + String get userStatusBusy => 'Beschäftigt'; @override - String get userStatusInAMeeting => 'In a meeting'; + String get userStatusInAMeeting => 'In einem Meeting'; @override - String get userStatusCommuting => 'Commuting'; + String get userStatusCommuting => 'Unterwegs'; @override - String get userStatusOutSick => 'Out sick'; + String get userStatusOutSick => 'Krankgemeldet'; @override - String get userStatusVacationing => 'Vacationing'; + String get userStatusVacationing => 'Im Urlaub'; @override - String get userStatusWorkingRemotely => 'Working remotely'; + String get userStatusWorkingRemotely => 'Arbeitet von zu Hause'; @override - String get userStatusAtTheOffice => 'At the office'; + String get userStatusAtTheOffice => 'Im Büro'; @override String get updateStatusErrorTitle => - 'Error updating user status. Please try again.'; + 'Fehler beim Update des Benutzerstatus. Bitte versuche es nochmal.'; @override - String get searchMessagesPageTitle => 'Search'; + String get searchMessagesPageTitle => 'Suche'; @override - String get searchMessagesHintText => 'Search'; + String get searchMessagesHintText => 'Suche'; @override - String get searchMessagesClearButtonTooltip => 'Clear'; + 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.'; + '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'; diff --git a/lib/generated/l10n/zulip_localizations_fr.dart b/lib/generated/l10n/zulip_localizations_fr.dart index 5001c79eed..84305656be 100644 --- a/lib/generated/l10n/zulip_localizations_fr.dart +++ b/lib/generated/l10n/zulip_localizations_fr.dart @@ -9,83 +9,85 @@ class ZulipLocalizationsFr extends ZulipLocalizations { ZulipLocalizationsFr([String locale = 'fr']) : super(locale); @override - String get aboutPageTitle => 'About Zulip'; + String get aboutPageTitle => 'À propos de Zulip'; @override - String get aboutPageAppVersion => 'App version'; + String get aboutPageAppVersion => 'Version de l\'application'; @override - String get aboutPageOpenSourceLicenses => 'Open-source licenses'; + String get aboutPageOpenSourceLicenses => 'Licences de logiciel libre'; @override - String get aboutPageTapToView => 'Tap to view'; + String get aboutPageTapToView => 'Toucher pour voir'; @override - String get upgradeWelcomeDialogTitle => 'Welcome to the new Zulip app!'; + String get upgradeWelcomeDialogTitle => + 'Bienvenue dans la nouvelle application Zulip !'; @override String get upgradeWelcomeDialogMessage => - 'You’ll find a familiar experience in a faster, sleeker package.'; + 'Vous retrouverez une expérience familière dans un logiciel plus rapide et plus élégant.'; @override String get upgradeWelcomeDialogLinkText => - 'Check out the announcement blog post!'; + 'Allez voir les articles sur le blog des annonces !'; @override - String get upgradeWelcomeDialogDismiss => 'Let\'s go'; + String get upgradeWelcomeDialogDismiss => 'Allons-y'; @override - String get chooseAccountPageTitle => 'Choose account'; + String get chooseAccountPageTitle => 'Choisir un compte'; @override - String get settingsPageTitle => 'Settings'; + String get settingsPageTitle => 'Paramètres'; @override - String get switchAccountButton => 'Switch account'; + String get switchAccountButton => 'Changer de compte'; @override String tryAnotherAccountMessage(Object url) { - return 'Your account at $url is taking a while to load.'; + return 'Votre compte à $url prend du temps à se charger.'; } @override - String get tryAnotherAccountButton => 'Try another account'; + String get tryAnotherAccountButton => 'Essayer un autre compte'; @override - String get chooseAccountPageLogOutButton => 'Log out'; + String get chooseAccountPageLogOutButton => 'Déconnexion'; @override - String get logOutConfirmationDialogTitle => 'Log out?'; + String get logOutConfirmationDialogTitle => 'Se déconnecter?'; @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.'; + '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 => 'Log out'; + String get logOutConfirmationDialogConfirmButton => 'Déconnexion'; @override - String get chooseAccountButtonAddAnAccount => 'Add an account'; + String get chooseAccountButtonAddAnAccount => 'Ajouter un compte'; @override - String get profileButtonSendDirectMessage => 'Send direct message'; + String get profileButtonSendDirectMessage => 'Envoyer un message direct'; @override - String get errorCouldNotShowUserProfile => 'Could not show user profile.'; + String get errorCouldNotShowUserProfile => + 'Impossible de montrer le profil de l\'utilisateur.'; @override - String get permissionsNeededTitle => 'Permissions needed'; + String get permissionsNeededTitle => 'Permissions requises'; @override - String get permissionsNeededOpenSettings => 'Open settings'; + String get permissionsNeededOpenSettings => 'Ouvrir les préférences'; @override String get permissionsDeniedCameraAccess => - 'To upload an image, please grant Zulip additional permissions in Settings.'; + 'Pour charger une image, merci d\'accorder des autorisations supplémentaires à Zulip, dans les préférences.'; @override String get permissionsDeniedReadExternalStorage => - 'To upload files, please grant Zulip additional permissions in Settings.'; + 'Pour charger des fichiers, merci d\'accorder des autorisations supplémentaires à Zulip, dans les préférences.'; @override String get actionSheetOptionSubscribe => 'Subscribe'; @@ -94,13 +96,13 @@ class ZulipLocalizationsFr extends ZulipLocalizations { String get subscribeFailedTitle => 'Failed to subscribe'; @override - String get actionSheetOptionMarkChannelAsRead => 'Mark channel as read'; + String get actionSheetOptionMarkChannelAsRead => 'Marquer le canal comme lu'; @override - String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; + String get actionSheetOptionCopyChannelLink => 'Copier le lien du canal'; @override - String get actionSheetOptionListOfTopics => 'List of topics'; + String get actionSheetOptionListOfTopics => 'Liste des sujets'; @override String get actionSheetOptionUnsubscribe => 'Unsubscribe'; @@ -121,29 +123,30 @@ class ZulipLocalizationsFr extends ZulipLocalizations { String get unsubscribeFailedTitle => 'Failed to unsubscribe'; @override - String get actionSheetOptionMuteTopic => 'Mute topic'; + String get actionSheetOptionMuteTopic => 'Rendre le sujet silencieux'; @override - String get actionSheetOptionUnmuteTopic => 'Unmute topic'; + String get actionSheetOptionUnmuteTopic => 'Rendre le sujet non silencieux'; @override - String get actionSheetOptionFollowTopic => 'Follow topic'; + String get actionSheetOptionFollowTopic => 'Suivre le sujet'; @override - String get actionSheetOptionUnfollowTopic => 'Unfollow topic'; + String get actionSheetOptionUnfollowTopic => 'Ne plus suivre le sujet'; @override - String get actionSheetOptionResolveTopic => 'Mark as resolved'; + String get actionSheetOptionResolveTopic => 'Marquer comme résolu'; @override - String get actionSheetOptionUnresolveTopic => 'Mark as unresolved'; + String get actionSheetOptionUnresolveTopic => 'Marquer comme non résolu'; @override - String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved'; + String get errorResolveTopicFailedTitle => + 'Impossible de marquer le sujet comme résolu'; @override String get errorUnresolveTopicFailedTitle => - 'Failed to mark topic as unresolved'; + 'Impossible de marquer le sujet comme non résolu'; @override String get actionSheetOptionSeeWhoReacted => 'See who reacted'; @@ -173,67 +176,71 @@ class ZulipLocalizationsFr extends ZulipLocalizations { } @override - String get actionSheetOptionCopyMessageText => 'Copy message text'; + String get actionSheetOptionCopyMessageText => 'Copier le contenu du message'; @override - String get actionSheetOptionCopyMessageLink => 'Copy link to message'; + String get actionSheetOptionCopyMessageLink => 'Copier le lien au message'; @override - String get actionSheetOptionMarkAsUnread => 'Mark as unread from here'; + String get actionSheetOptionMarkAsUnread => 'Marquer non lu à partir d\'ici'; @override - String get actionSheetOptionHideMutedMessage => 'Hide muted message again'; + String get actionSheetOptionHideMutedMessage => + 'Cacher à nouveau le message silencieux'; @override - String get actionSheetOptionShare => 'Share'; + String get actionSheetOptionShare => 'Partager'; @override - String get actionSheetOptionQuoteMessage => 'Quote message'; + String get actionSheetOptionQuoteMessage => 'Citer le message'; @override - String get actionSheetOptionStarMessage => 'Star message'; + String get actionSheetOptionStarMessage => 'Mettre le message en favori'; @override - String get actionSheetOptionUnstarMessage => 'Unstar message'; + String get actionSheetOptionUnstarMessage => + 'Retirer ce message de la liste des favoris'; @override - String get actionSheetOptionEditMessage => 'Edit message'; + String get actionSheetOptionEditMessage => 'Modifier le message'; @override - String get actionSheetOptionMarkTopicAsRead => 'Mark topic as read'; + String get actionSheetOptionMarkTopicAsRead => 'Marquer le sujet comme lu'; @override - String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; + String get actionSheetOptionCopyTopicLink => 'Copier le lien sur le sujet'; @override - String get errorWebAuthOperationalErrorTitle => 'Something went wrong'; + String get errorWebAuthOperationalErrorTitle => 'Une erreur s\'est produite'; @override - String get errorWebAuthOperationalError => 'An unexpected error occurred.'; + String get errorWebAuthOperationalError => + 'Oups, une erreur s\'est produite.'; @override - String get errorAccountLoggedInTitle => 'Account already logged in'; + String get errorAccountLoggedInTitle => + 'Vous êtes déjà connecté à ce compte.'; @override String errorAccountLoggedIn(String email, String server) { - return 'The account $email at $server is already in your list of accounts.'; + return 'Le compte $email at $server figure déjà dans votre liste de comptes.'; } @override String get errorCouldNotFetchMessageSource => - 'Could not fetch message source.'; + 'Impossible d\'atteindre le message source.'; @override - String get errorCopyingFailed => 'Copying failed'; + String get errorCopyingFailed => 'Échec de la copie'; @override String errorFailedToUploadFileTitle(String filename) { - return 'Failed to upload file: $filename'; + return 'Impossible de charger le fichier $filename'; } @override String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size MiB'; + return '$filename : $size MiB'; } @override @@ -245,10 +252,10 @@ class ZulipLocalizationsFr extends ZulipLocalizations { String _temp0 = intl.Intl.pluralLogic( num, locale: localeName, - other: '$num files are', - one: 'File is', + other: '$num fichiers sont', + one: 'Fichier est', ); - return '$_temp0 larger than the server\'s limit of $maxFileUploadSizeMib MiB and will not be uploaded:\n\n$listMessage'; + 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 @@ -256,56 +263,57 @@ class ZulipLocalizationsFr extends ZulipLocalizations { String _temp0 = intl.Intl.pluralLogic( num, locale: localeName, - other: 'Files', - one: 'File', + other: 'Les fichier sont trop lourds', + one: 'Le fichier est trop lourd', ); - return '$_temp0 too large'; + return '$_temp0'; } @override - String get errorLoginInvalidInputTitle => 'Invalid input'; + String get errorLoginInvalidInputTitle => 'Identifiant incorrect'; @override - String get errorLoginFailedTitle => 'Login failed'; + String get errorLoginFailedTitle => 'La connexion a échoué.'; @override - String get errorMessageNotSent => 'Message not sent'; + String get errorMessageNotSent => 'Le message n\'a pas pu être envoyé.'; @override - String get errorMessageEditNotSaved => 'Message not saved'; + String get errorMessageEditNotSaved => + 'Le message n\'a pas pu être sauvegardé.'; @override String errorLoginCouldNotConnect(String url) { - return 'Failed to connect to server:\n$url'; + return 'La connexion au serveur a échoué :\n$url'; } @override - String get errorCouldNotConnectTitle => 'Could not connect'; + String get errorCouldNotConnectTitle => + 'Impossible de se connecter au serveur'; @override - String get errorMessageDoesNotSeemToExist => - 'That message does not seem to exist.'; + String get errorMessageDoesNotSeemToExist => 'Ce message est introuvable.'; @override - String get errorQuotationFailed => 'Quotation failed'; + String get errorQuotationFailed => 'Échec de la citation'; @override String errorServerMessage(String message) { - return 'The server said:\n\n$message'; + return 'Message d\'erreur du serveur :\n\n$message'; } @override String get errorConnectingToServerShort => - 'Error connecting to Zulip. Retrying…'; + 'Une erreur s\'est produite lors de la connexion au serveur. Nouvelle tentative en cours…'; @override String errorConnectingToServerDetails(String serverUrl, String error) { - return 'Error connecting to Zulip at $serverUrl. Will retry:\n\n$error'; + return 'Une erreur s\'est produite lors de la connexion à Zulip sur $serverUrl. Nouvelle tentative imminente :\n\n$error'; } @override String get errorHandlingEventTitle => - 'Error handling a Zulip event. Retrying connection…'; + 'Une erreur s\'est produite sur le serveur. Reconnexion en cours…'; @override String errorHandlingEventDetails( @@ -313,79 +321,85 @@ class ZulipLocalizationsFr extends ZulipLocalizations { String error, String event, ) { - return 'Error handling a Zulip event from $serverUrl; will retry.\n\nError: $error\n\nEvent: $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 => 'Unable to open link'; + String get errorCouldNotOpenLinkTitle => 'Impossible d\'ouvrir le lien'; @override String errorCouldNotOpenLink(String url) { - return 'Link could not be opened: $url'; + return 'Le lien suivant n\'a pas pu être ouvert : $url'; } @override - String get errorMuteTopicFailed => 'Failed to mute topic'; + String get errorMuteTopicFailed => + 'Le sujet n\'a pas pu être rendu silencieux'; @override - String get errorUnmuteTopicFailed => 'Failed to unmute topic'; + String get errorUnmuteTopicFailed => + 'Impossible de ne plus mettre le sujet en sourdine'; @override - String get errorFollowTopicFailed => 'Failed to follow topic'; + String get errorFollowTopicFailed => 'Échec du suivi du sujet'; @override - String get errorUnfollowTopicFailed => 'Failed to unfollow topic'; + String get errorUnfollowTopicFailed => + 'Échec de la tentative de ne plus suivre le sujet'; @override - String get errorSharingFailed => 'Sharing failed'; + String get errorSharingFailed => 'Échec du partage'; @override - String get errorStarMessageFailedTitle => 'Failed to star message'; + String get errorStarMessageFailedTitle => + 'Échec de marquage du message en favori'; @override - String get errorUnstarMessageFailedTitle => 'Failed to unstar message'; + String get errorUnstarMessageFailedTitle => + 'Échec de la tentative d\'enlever le message des favoris'; @override - String get errorCouldNotEditMessageTitle => 'Could not edit message'; + String get errorCouldNotEditMessageTitle => + 'Le message n\'a pas pu être modifié'; @override - String get successLinkCopied => 'Link copied'; + String get successLinkCopied => 'Lien copié'; @override - String get successMessageTextCopied => 'Message text copied'; + String get successMessageTextCopied => 'Texte du message copié'; @override - String get successMessageLinkCopied => 'Message link copied'; + String get successMessageLinkCopied => 'Lien sur le message copié'; @override - String get successTopicLinkCopied => 'Topic link copied'; + String get successTopicLinkCopied => 'Lien sur le sujet copié'; @override - String get successChannelLinkCopied => 'Channel link copied'; + String get successChannelLinkCopied => 'Lien sur le canal copié'; @override String get errorBannerDeactivatedDmLabel => - 'You cannot send messages to deactivated users.'; + 'Vous ne pouvez pas envoyer de messages aux utilisateurs désactivés.'; @override String get errorBannerCannotPostInChannelLabel => - 'You do not have permission to post in this channel.'; + 'Vous n\'avez pas l\'autorisation de poster sur ce canal.'; @override - String get composeBoxBannerLabelEditMessage => 'Edit message'; + String get composeBoxBannerLabelEditMessage => 'Editer le message'; @override - String get composeBoxBannerButtonCancel => 'Cancel'; + String get composeBoxBannerButtonCancel => 'Annuler'; @override - String get composeBoxBannerButtonSave => 'Save'; + String get composeBoxBannerButtonSave => 'Sauvegarder'; @override - String get editAlreadyInProgressTitle => 'Cannot edit message'; + String get editAlreadyInProgressTitle => 'Impossible de modifier le message'; @override String get editAlreadyInProgressMessage => - 'An edit is already in progress. Please wait for it to complete.'; + 'Une modification est déjà en cours. Merci d\'attendre qu\'elle soit terminée.'; @override String get savingMessageEditLabel => 'SAVING EDIT…'; diff --git a/lib/generated/l10n/zulip_localizations_pl.dart b/lib/generated/l10n/zulip_localizations_pl.dart index 9b856a6aae..8572aaaa34 100644 --- a/lib/generated/l10n/zulip_localizations_pl.dart +++ b/lib/generated/l10n/zulip_localizations_pl.dart @@ -99,7 +99,7 @@ class ZulipLocalizationsPl extends ZulipLocalizations { 'Oznacz kanał jako przeczytany'; @override - String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; + String get actionSheetOptionCopyChannelLink => 'Skopiuj odnośnik do kanału'; @override String get actionSheetOptionListOfTopics => 'Lista wątków'; @@ -149,14 +149,14 @@ class ZulipLocalizationsPl extends ZulipLocalizations { 'Nie udało się oznaczyć brak rozwiązania'; @override - String get actionSheetOptionSeeWhoReacted => 'See who reacted'; + String get actionSheetOptionSeeWhoReacted => 'Pokaż kto zareagował'; @override - String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; + String get seeWhoReactedSheetNoReactions => 'Brak reakcji na tę wiadomość.'; @override String seeWhoReactedSheetHeaderLabel(int num) { - return 'Emoji reactions ($num total)'; + return 'Reakcje emoji (łącznie $num)'; } @override @@ -164,15 +164,15 @@ class ZulipLocalizationsPl extends ZulipLocalizations { String _temp0 = intl.Intl.pluralLogic( num, locale: localeName, - other: '$num votes', - one: '1 vote', + other: '$num głosów', + one: '1 głos', ); return '$emojiName: $_temp0'; } @override String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Votes for $emojiName ($num)'; + return 'Głosów $emojiName ($num)'; } @override @@ -210,7 +210,7 @@ class ZulipLocalizationsPl extends ZulipLocalizations { 'Oznacz wątek jako przeczytany'; @override - String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; + String get actionSheetOptionCopyTopicLink => 'Skopiuj odnośnik do wątku'; @override String get errorWebAuthOperationalErrorTitle => 'Coś poszło nie tak'; @@ -366,10 +366,10 @@ class ZulipLocalizationsPl extends ZulipLocalizations { String get successMessageLinkCopied => 'Skopiowano odnośnik wiadomości'; @override - String get successTopicLinkCopied => 'Topic link copied'; + String get successTopicLinkCopied => 'Skopiowano odnośnik do wątku'; @override - String get successChannelLinkCopied => 'Channel link copied'; + String get successChannelLinkCopied => 'Skopiowano odnośnik do kanału'; @override String get errorBannerDeactivatedDmLabel => @@ -739,50 +739,50 @@ class ZulipLocalizationsPl extends ZulipLocalizations { String get userRoleUnknown => 'Nieznany'; @override - String get statusButtonLabelStatusSet => 'Status'; + String get statusButtonLabelStatusSet => 'Stan'; @override - String get statusButtonLabelStatusUnset => 'Set status'; + String get statusButtonLabelStatusUnset => 'Ustaw stan'; @override - String get noStatusText => 'No status text'; + String get noStatusText => 'Brak tekstu stanu'; @override - String get setStatusPageTitle => 'Set status'; + String get setStatusPageTitle => 'Ustaw stan'; @override - String get statusClearButtonLabel => 'Clear'; + String get statusClearButtonLabel => 'Wyczyść'; @override - String get statusSaveButtonLabel => 'Save'; + String get statusSaveButtonLabel => 'Zapisz'; @override - String get statusTextHint => 'Your status'; + String get statusTextHint => 'Twój stan'; @override - String get userStatusBusy => 'Busy'; + String get userStatusBusy => 'Zajęty'; @override - String get userStatusInAMeeting => 'In a meeting'; + String get userStatusInAMeeting => 'Na spotkaniu'; @override - String get userStatusCommuting => 'Commuting'; + String get userStatusCommuting => 'W drodze'; @override - String get userStatusOutSick => 'Out sick'; + String get userStatusOutSick => 'Chorobowe'; @override - String get userStatusVacationing => 'Vacationing'; + String get userStatusVacationing => 'Na urlopie'; @override - String get userStatusWorkingRemotely => 'Working remotely'; + String get userStatusWorkingRemotely => 'Praca zdalna'; @override - String get userStatusAtTheOffice => 'At the office'; + String get userStatusAtTheOffice => 'W biurze'; @override String get updateStatusErrorTitle => - 'Error updating user status. Please try again.'; + 'Błąd aktualizacji stanu. Spróbuj ponownie.'; @override String get searchMessagesPageTitle => 'Szukaj'; @@ -858,7 +858,7 @@ class ZulipLocalizationsPl extends ZulipLocalizations { String get reactedEmojiSelfUser => 'Ty'; @override - String get reactionChipsLabel => 'Reactions'; + String get reactionChipsLabel => 'Reakcje'; @override String reactionChipLabel(String emojiName, String votes) { @@ -870,8 +870,8 @@ class ZulipLocalizationsPl extends ZulipLocalizations { String _temp0 = intl.Intl.pluralLogic( otherUsersCount, locale: localeName, - other: 'You and $otherUsersCount others', - one: 'You and 1 other', + other: 'Ty i $otherUsersCount innych', + one: 'Ty i 1 inny', ); return '$_temp0'; } diff --git a/lib/generated/l10n/zulip_localizations_ru.dart b/lib/generated/l10n/zulip_localizations_ru.dart index 848b02eefb..f19ca70ff2 100644 --- a/lib/generated/l10n/zulip_localizations_ru.dart +++ b/lib/generated/l10n/zulip_localizations_ru.dart @@ -89,44 +89,44 @@ class ZulipLocalizationsRu extends ZulipLocalizations { 'Для загрузки файлов, пожалуйста, предоставьте Zulip дополнительные разрешения в настройках.'; @override - String get actionSheetOptionSubscribe => 'Subscribe'; + String get actionSheetOptionSubscribe => 'Подписаться'; @override - String get subscribeFailedTitle => 'Failed to subscribe'; + String get subscribeFailedTitle => 'Подписаться не удалось'; @override String get actionSheetOptionMarkChannelAsRead => 'Отметить канал как прочитанный'; @override - String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; + String get actionSheetOptionCopyChannelLink => 'Скопировать ссылку на канал'; @override String get actionSheetOptionListOfTopics => 'Список тем'; @override - String get actionSheetOptionUnsubscribe => 'Unsubscribe'; + String get actionSheetOptionUnsubscribe => 'Отписаться'; @override String unsubscribeConfirmationDialogTitle(String channelName) { - return 'Unsubscribe from $channelName?'; + return 'Отменить подписку на $channelName?'; } @override String get unsubscribeConfirmationDialogMessageMaybeCannotResubscribe => - 'Once you leave this channel, you might not be able to rejoin.'; + 'Покинув этот канал, возможно, вы не сможете присоединиться вновь.'; @override - String get unsubscribeConfirmationDialogConfirmButton => 'Unsubscribe'; + String get unsubscribeConfirmationDialogConfirmButton => 'Отписаться'; @override - String get unsubscribeFailedTitle => 'Failed to unsubscribe'; + String get unsubscribeFailedTitle => 'Не удалось отписаться'; @override - String get actionSheetOptionMuteTopic => 'Отключить тему'; + String get actionSheetOptionMuteTopic => 'Заглушить тему'; @override - String get actionSheetOptionUnmuteTopic => 'Включить тему'; + String get actionSheetOptionUnmuteTopic => 'Включить оповещения темы'; @override String get actionSheetOptionFollowTopic => 'Отслеживать тему'; @@ -149,14 +149,14 @@ class ZulipLocalizationsRu extends ZulipLocalizations { 'Не удалось отметить тему как нерешенную'; @override - String get actionSheetOptionSeeWhoReacted => 'See who reacted'; + String get actionSheetOptionSeeWhoReacted => 'Посмотреть отреагировавших'; @override - String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; + String get seeWhoReactedSheetNoReactions => 'На это сообщение нет реакций.'; @override String seeWhoReactedSheetHeaderLabel(int num) { - return 'Emoji reactions ($num total)'; + return 'Эмодзи-реакции (всего: $num)'; } @override @@ -164,15 +164,17 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String _temp0 = intl.Intl.pluralLogic( num, locale: localeName, - other: '$num votes', - one: '1 vote', + other: '$num голосов', + many: '$num голосов', + few: '$num голоса', + one: '1 голос', ); return '$emojiName: $_temp0'; } @override String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Votes for $emojiName ($num)'; + return 'Голоса за $emojiName ($num)'; } @override @@ -188,7 +190,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { @override String get actionSheetOptionHideMutedMessage => - 'Скрыть отключенное сообщение'; + 'Скрыть заглушенное сообщение'; @override String get actionSheetOptionShare => 'Поделиться'; @@ -210,7 +212,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { 'Отметить тему как прочитанную'; @override - String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; + String get actionSheetOptionCopyTopicLink => 'Скопировать ссылку на тему'; @override String get errorWebAuthOperationalErrorTitle => 'Что-то пошло не так'; @@ -332,10 +334,10 @@ class ZulipLocalizationsRu extends ZulipLocalizations { } @override - String get errorMuteTopicFailed => 'Не удалось отключить тему'; + String get errorMuteTopicFailed => 'Не удалось заглушить тему'; @override - String get errorUnmuteTopicFailed => 'Не удалось включить тему'; + String get errorUnmuteTopicFailed => 'Не удалось включить оповещения темы'; @override String get errorFollowTopicFailed => 'Не удалось начать отслеживать тему'; @@ -367,10 +369,10 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get successMessageLinkCopied => 'Ссылка на сообщение скопирована'; @override - String get successTopicLinkCopied => 'Topic link copied'; + String get successTopicLinkCopied => 'Ссылка на тему скопирована'; @override - String get successChannelLinkCopied => 'Channel link copied'; + String get successChannelLinkCopied => 'Ссылка на канал скопирована'; @override String get errorBannerDeactivatedDmLabel => @@ -442,7 +444,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get newDmSheetSearchHintEmpty => 'Добавить пользователей'; @override - String get newDmSheetSearchHintSomeSelected => 'Добавить еще…'; + String get newDmSheetSearchHintSomeSelected => 'Добавить ещё…'; @override String get newDmSheetNoUsersFound => 'Никто не найден'; @@ -622,7 +624,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { @override String errorInvalidApiKeyMessage(String url) { - return 'Не удалось войти в вашу учетную запись $url. Попробуйте еще раз или используйте другую учетную запись.'; + return 'Не удалось войти в вашу учётную запись $url. Попробуйте ещё раз или используйте другую учётную запись.'; } @override @@ -675,8 +677,8 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String _temp0 = intl.Intl.pluralLogic( num, locale: localeName, - other: '$num шт. сообщений', - one: '1 сообщения', + other: '$num сообщений', + one: '$num сообщения', ); return 'Отметка прочтения установлена для $_temp0.'; } @@ -693,8 +695,8 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String _temp0 = intl.Intl.pluralLogic( num, locale: localeName, - other: '$num шт. сообщений', - one: '1 сообщения', + other: '$num сообщений', + one: '$num сообщения', ); return 'Отметка прочтения снята для $_temp0.'; } @@ -742,50 +744,50 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get userRoleUnknown => 'Неизвестно'; @override - String get statusButtonLabelStatusSet => 'Status'; + String get statusButtonLabelStatusSet => 'Статус'; @override - String get statusButtonLabelStatusUnset => 'Set status'; + String get statusButtonLabelStatusUnset => 'Установить статус'; @override - String get noStatusText => 'No status text'; + String get noStatusText => 'Нет текста статуса'; @override - String get setStatusPageTitle => 'Set status'; + String get setStatusPageTitle => 'Установить статус'; @override - String get statusClearButtonLabel => 'Clear'; + String get statusClearButtonLabel => 'Очистить'; @override - String get statusSaveButtonLabel => 'Save'; + String get statusSaveButtonLabel => 'Сохранить'; @override - String get statusTextHint => 'Your status'; + String get statusTextHint => 'Ваш статус'; @override - String get userStatusBusy => 'Busy'; + String get userStatusBusy => 'Занят/а'; @override - String get userStatusInAMeeting => 'In a meeting'; + String get userStatusInAMeeting => 'На встрече'; @override - String get userStatusCommuting => 'Commuting'; + String get userStatusCommuting => 'В дороге'; @override - String get userStatusOutSick => 'Out sick'; + String get userStatusOutSick => 'Болею'; @override - String get userStatusVacationing => 'Vacationing'; + String get userStatusVacationing => 'В отпуске'; @override - String get userStatusWorkingRemotely => 'Working remotely'; + String get userStatusWorkingRemotely => 'Работаю дистанционно'; @override - String get userStatusAtTheOffice => 'At the office'; + String get userStatusAtTheOffice => 'В офисе'; @override String get updateStatusErrorTitle => - 'Error updating user status. Please try again.'; + 'Ошибка обновления статуса пользователя. Попробуйте ещё раз.'; @override String get searchMessagesPageTitle => 'Поиск'; @@ -827,7 +829,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { @override String get channelsEmptyPlaceholder => - 'Вы еще не подписаны ни на один канал.'; + 'Вы ещё не подписаны ни на один канал.'; @override String get mainMenuMyProfile => 'Мой профиль'; @@ -843,10 +845,10 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String _temp0 = intl.Intl.pluralLogic( numOthers, locale: localeName, - other: '$numOthers чел.', - one: '1 чел.', + other: '$numOthers другим', + one: '$numOthers другому', ); - return '$senderFullName вам и еще $_temp0'; + return '$senderFullName вам и ещё $_temp0'; } @override @@ -862,7 +864,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get reactedEmojiSelfUser => 'Вы'; @override - String get reactionChipsLabel => 'Reactions'; + String get reactionChipsLabel => 'Реакции'; @override String reactionChipLabel(String emojiName, String votes) { @@ -874,8 +876,10 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String _temp0 = intl.Intl.pluralLogic( otherUsersCount, locale: localeName, - other: 'You and $otherUsersCount others', - one: 'You and 1 other', + other: 'Вы и еще $otherUsersCount человек', + many: 'Вы и еще $otherUsersCount человек', + few: 'Вы и еще $otherUsersCount человека', + one: 'Вы и еще $otherUsersCount человек', ); return '$_temp0'; } @@ -1001,7 +1005,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { @override String get experimentalFeatureSettingsWarning => - 'Эти параметры включают функции, которые все еще находятся в стадии разработки и не готовы. Они могут не работать и вызывать проблемы в других местах приложения.\n\nЦель этих настроек — экспериментирование людьми, работающими над разработкой Zulip.'; + 'Эти параметры включают возможности, которые все ещё находятся в разработке и не готовы. Они могут не работать и вызывать проблемы в других местах приложения.\n\nЦель этих настроек — экспериментирование людьми, работающими над разработкой Zulip.'; @override String get errorNotificationOpenTitle => 'Не удалось открыть оповещения'; @@ -1017,7 +1021,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get errorReactionRemovingFailedTitle => 'Не удалось удалить реакцию'; @override - String get emojiReactionsMore => 'еще'; + String get emojiReactionsMore => 'ещё'; @override String get emojiPickerSearchEmoji => 'Поиск эмодзи'; @@ -1029,7 +1033,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get revealButtonLabel => 'Показать сообщение'; @override - String get mutedUser => 'Отключенный пользователь'; + String get mutedUser => 'Заглушенный пользователь'; @override String get scrollToBottomTooltip => 'Пролистать вниз'; diff --git a/lib/generated/l10n/zulip_localizations_uk.dart b/lib/generated/l10n/zulip_localizations_uk.dart index 0c2f49363e..893242788f 100644 --- a/lib/generated/l10n/zulip_localizations_uk.dart +++ b/lib/generated/l10n/zulip_localizations_uk.dart @@ -90,38 +90,38 @@ class ZulipLocalizationsUk extends ZulipLocalizations { 'Щоб завантажувати файли, надайте Zulip додаткові дозволи в налаштуваннях.'; @override - String get actionSheetOptionSubscribe => 'Subscribe'; + String get actionSheetOptionSubscribe => 'Підписатися'; @override - String get subscribeFailedTitle => 'Failed to subscribe'; + String get subscribeFailedTitle => 'Не вдалося підписатися'; @override String get actionSheetOptionMarkChannelAsRead => 'Позначити канал як прочитаний'; @override - String get actionSheetOptionCopyChannelLink => 'Copy link to channel'; + String get actionSheetOptionCopyChannelLink => 'Копіювати посилання на канал'; @override String get actionSheetOptionListOfTopics => 'Список тем'; @override - String get actionSheetOptionUnsubscribe => 'Unsubscribe'; + String get actionSheetOptionUnsubscribe => 'Скасувати підписку'; @override String unsubscribeConfirmationDialogTitle(String channelName) { - return 'Unsubscribe from $channelName?'; + return 'Відписатися від $channelName?'; } @override String get unsubscribeConfirmationDialogMessageMaybeCannotResubscribe => - 'Once you leave this channel, you might not be able to rejoin.'; + 'Після того, як ви залишите цей канал, ви, можливо, не зможете приєднатися знову.'; @override - String get unsubscribeConfirmationDialogConfirmButton => 'Unsubscribe'; + String get unsubscribeConfirmationDialogConfirmButton => 'Скасувати підписку'; @override - String get unsubscribeFailedTitle => 'Failed to unsubscribe'; + String get unsubscribeFailedTitle => 'Не вдалося скасувати підписку'; @override String get actionSheetOptionMuteTopic => 'Заглушити тему'; @@ -150,14 +150,15 @@ class ZulipLocalizationsUk extends ZulipLocalizations { 'Не вдалося позначити тему як невирішену'; @override - String get actionSheetOptionSeeWhoReacted => 'See who reacted'; + String get actionSheetOptionSeeWhoReacted => 'Дивіться, хто відреагував'; @override - String get seeWhoReactedSheetNoReactions => 'This message has no reactions.'; + String get seeWhoReactedSheetNoReactions => + 'На це повідомлення немає реакцій.'; @override String seeWhoReactedSheetHeaderLabel(int num) { - return 'Emoji reactions ($num total)'; + return 'Реакції емодзі (загалом $num)'; } @override @@ -165,15 +166,15 @@ class ZulipLocalizationsUk extends ZulipLocalizations { String _temp0 = intl.Intl.pluralLogic( num, locale: localeName, - other: '$num votes', - one: '1 vote', + other: '$num голоси', + one: '1 голосу', ); return '$emojiName: $_temp0'; } @override String seeWhoReactedSheetUserListLabel(String emojiName, int num) { - return 'Votes for $emojiName ($num)'; + return 'Голоси за $emojiName ($num)'; } @override @@ -210,7 +211,7 @@ class ZulipLocalizationsUk extends ZulipLocalizations { String get actionSheetOptionMarkTopicAsRead => 'Позначити тему як прочитану'; @override - String get actionSheetOptionCopyTopicLink => 'Copy link to topic'; + String get actionSheetOptionCopyTopicLink => 'Копіювати посилання на тему'; @override String get errorWebAuthOperationalErrorTitle => 'Щось пішло не так'; @@ -369,10 +370,10 @@ class ZulipLocalizationsUk extends ZulipLocalizations { 'Посилання на повідомлення скопійовано'; @override - String get successTopicLinkCopied => 'Topic link copied'; + String get successTopicLinkCopied => 'Посилання на тему скопійовано'; @override - String get successChannelLinkCopied => 'Channel link copied'; + String get successChannelLinkCopied => 'Посилання на канал скопійовано'; @override String get errorBannerDeactivatedDmLabel => @@ -509,10 +510,10 @@ class ZulipLocalizationsUk extends ZulipLocalizations { } @override - String get emptyMessageList => 'There are no messages here.'; + String get emptyMessageList => 'Тут немає повідомлень.'; @override - String get emptyMessageListSearch => 'No search results.'; + String get emptyMessageListSearch => 'Немає результатів пошуку.'; @override String get messageListGroupYouWithYourself => 'Повідомлення з собою'; @@ -713,15 +714,15 @@ class ZulipLocalizationsUk extends ZulipLocalizations { String get yesterday => 'Учора'; @override - String get invisibleMode => 'Invisible mode'; + String get invisibleMode => 'Невидимий режим'; @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 => 'Власник'; @@ -742,59 +743,59 @@ class ZulipLocalizationsUk extends ZulipLocalizations { String get userRoleUnknown => 'Невідомо'; @override - String get statusButtonLabelStatusSet => 'Status'; + String get statusButtonLabelStatusSet => 'Статус'; @override - String get statusButtonLabelStatusUnset => 'Set status'; + String get statusButtonLabelStatusUnset => 'Встановити статус'; @override - String get noStatusText => 'No status text'; + String get noStatusText => 'Немає тексту статусу'; @override - String get setStatusPageTitle => 'Set status'; + String get setStatusPageTitle => 'Встановити статус'; @override - String get statusClearButtonLabel => 'Clear'; + String get statusClearButtonLabel => 'Очистити'; @override - String get statusSaveButtonLabel => 'Save'; + String get statusSaveButtonLabel => 'Зберегти'; @override - String get statusTextHint => 'Your status'; + String get statusTextHint => 'Ваш статус'; @override - String get userStatusBusy => 'Busy'; + String get userStatusBusy => 'Зайнятий'; @override - String get userStatusInAMeeting => 'In a meeting'; + String get userStatusInAMeeting => 'На зустрічі'; @override - String get userStatusCommuting => 'Commuting'; + String get userStatusCommuting => 'Поїздки на роботу'; @override - String get userStatusOutSick => 'Out sick'; + String get userStatusOutSick => 'Хворий'; @override - String get userStatusVacationing => 'Vacationing'; + String get userStatusVacationing => 'Відпустка'; @override - String get userStatusWorkingRemotely => 'Working remotely'; + String get userStatusWorkingRemotely => 'Працюємо віддалено'; @override - String get userStatusAtTheOffice => 'At the office'; + String get userStatusAtTheOffice => 'В офісі'; @override String get updateStatusErrorTitle => - 'Error updating user status. Please try again.'; + 'Помилка оновлення статусу користувача. Спробуйте ще раз.'; @override - String get searchMessagesPageTitle => 'Search'; + String get searchMessagesPageTitle => 'Пошук'; @override - String get searchMessagesHintText => 'Search'; + String get searchMessagesHintText => 'Пошук'; @override - String get searchMessagesClearButtonTooltip => 'Clear'; + String get searchMessagesClearButtonTooltip => 'Очистити'; @override String get inboxPageTitle => 'Вхідні'; @@ -861,7 +862,7 @@ class ZulipLocalizationsUk extends ZulipLocalizations { String get reactedEmojiSelfUser => 'Ви'; @override - String get reactionChipsLabel => 'Reactions'; + String get reactionChipsLabel => 'Реакції'; @override String reactionChipLabel(String emojiName, String votes) { @@ -873,8 +874,8 @@ class ZulipLocalizationsUk extends ZulipLocalizations { String _temp0 = intl.Intl.pluralLogic( otherUsersCount, locale: localeName, - other: 'You and $otherUsersCount others', - one: 'You and 1 other', + other: 'Ви і $otherUsersCount інші', + one: 'Ви та ще 1 особа', ); return '$_temp0'; } @@ -1026,8 +1027,7 @@ class ZulipLocalizationsUk extends ZulipLocalizations { String get noEarlierMessages => 'Немає попередніх повідомлень'; @override - String get revealButtonLabel => - 'Показати повідомлення заглушеного відправника'; + String get revealButtonLabel => 'Показати повідомлення'; @override String get mutedUser => 'Заглушений користувач'; diff --git a/lib/generated/l10n/zulip_localizations_zh.dart b/lib/generated/l10n/zulip_localizations_zh.dart index fdfd2966b5..6f7505d28a 100644 --- a/lib/generated/l10n/zulip_localizations_zh.dart +++ b/lib/generated/l10n/zulip_localizations_zh.dart @@ -1893,7 +1893,7 @@ class ZulipLocalizationsZhHantTw extends ZulipLocalizationsZh { @override String tryAnotherAccountMessage(Object url) { - return '你在 $url 的帳號載入的比較久'; + return '您在 $url 的帳號載入的比較久。'; } @override @@ -1934,12 +1934,39 @@ class ZulipLocalizationsZhHantTw extends ZulipLocalizationsZh { 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 unsubscribeConfirmationDialogMessageMaybeCannotResubscribe => + '一旦您離開此頻道,可能無法重新加入。'; + + @override + String get unsubscribeConfirmationDialogConfirmButton => '取消訂閱'; + + @override + String get unsubscribeFailedTitle => '取消訂閱失敗'; + @override String get actionSheetOptionMuteTopic => '靜音話題'; @@ -1964,6 +1991,33 @@ class ZulipLocalizationsZhHantTw extends ZulipLocalizationsZh { @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 actionSheetOptionCopyMessageText => '複製訊息文字'; @@ -1994,6 +2048,9 @@ class ZulipLocalizationsZhHantTw extends ZulipLocalizationsZh { @override String get actionSheetOptionMarkTopicAsRead => '標註話題為已讀'; + @override + String get actionSheetOptionCopyTopicLink => '複製議題的連結'; + @override String get errorWebAuthOperationalErrorTitle => '出錯了'; @@ -2122,7 +2179,7 @@ class ZulipLocalizationsZhHantTw extends ZulipLocalizationsZh { String get errorUnfollowTopicFailed => '無法取消跟隨話題'; @override - String get errorSharingFailed => '分享失敗。'; + String get errorSharingFailed => '分享失敗'; @override String get errorStarMessageFailedTitle => '無法收藏訊息'; @@ -2142,6 +2199,12 @@ class ZulipLocalizationsZhHantTw extends ZulipLocalizationsZh { @override String get successMessageLinkCopied => '已複製訊息連結'; + @override + String get successTopicLinkCopied => '議題連結已複製'; + + @override + String get successChannelLinkCopied => '頻道連結已複製'; + @override String get errorBannerDeactivatedDmLabel => '您無法向已停用的使用者發送訊息。'; @@ -2494,6 +2557,51 @@ class ZulipLocalizationsZhHantTw extends ZulipLocalizationsZh { @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 => '搜尋'; @@ -2507,7 +2615,7 @@ class ZulipLocalizationsZhHantTw extends ZulipLocalizationsZh { String get inboxPageTitle => '收件匣'; @override - String get inboxEmptyPlaceholder => '您的收件匣中沒有未讀訊息。請使用下方按鈕檢視整合訊息流或頻道清單。'; + String get inboxEmptyPlaceholder => '您的收件匣中沒有未讀訊息。請使用下方按鈕查看整合訊息流或頻道清單。'; @override String get recentDmConversationsPageTitle => '私人訊息'; @@ -2565,6 +2673,25 @@ class ZulipLocalizationsZhHantTw extends ZulipLocalizationsZh { @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 正在輸入…'; @@ -2585,13 +2712,13 @@ class ZulipLocalizationsZhHantTw extends ZulipLocalizationsZh { String get wildcardMentionEveryone => '所有人'; @override - String get wildcardMentionChannel => 'channel'; + String get wildcardMentionChannel => '頻道'; @override String get wildcardMentionStream => '串流'; @override - String get wildcardMentionTopic => 'topic'; + String get wildcardMentionTopic => '議題'; @override String get wildcardMentionChannelDescription => '通知頻道'; @@ -2665,18 +2792,56 @@ class ZulipLocalizationsZhHantTw extends ZulipLocalizationsZh { @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 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'; }