diff --git a/assets/l10n/app_pl.arb b/assets/l10n/app_pl.arb index 260942bdcd..da8d2c8664 100644 --- a/assets/l10n/app_pl.arb +++ b/assets/l10n/app_pl.arb @@ -976,5 +976,35 @@ "openLinksWithInAppBrowser": "Otwieraj odnośniki w aplikacji", "@openLinksWithInAppBrowser": { "description": "Label for toggling setting to open links with in-app browser" + }, + "experimentalFeatureSettingsPageTitle": "Funkcje eksperymentalne", + "@experimentalFeatureSettingsPageTitle": { + "description": "Title of settings page for experimental, in-development features" + }, + "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" + }, + "errorDialogLearnMore": "Dowiedz się więcej", + "@errorDialogLearnMore": { + "description": "Button label in error dialogs to open a web page with more information." + }, + "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.", + "placeholders": { + "url": { + "type": "String", + "example": "http://chat.example.com/" + }, + "zulipVersion": { + "type": "String", + "example": "3.2" + }, + "minSupportedZulipVersion": { + "type": "String", + "example": "4.0" + } + } } } diff --git a/assets/l10n/app_ru.arb b/assets/l10n/app_ru.arb index b0717b14ab..57cf48e3e0 100644 --- a/assets/l10n/app_ru.arb +++ b/assets/l10n/app_ru.arb @@ -377,7 +377,7 @@ "@composeBoxTopicHintText": { "description": "Hint text for topic input widget in compose box." }, - "messageListGroupYouWithYourself": "Вы с собой", + "messageListGroupYouWithYourself": "Сообщения с собой", "@messageListGroupYouWithYourself": { "description": "Message list recipient header for a DM group that only includes yourself." }, @@ -754,5 +754,257 @@ "errorMessageNotSent": "Сообщение не отправлено", "@errorMessageNotSent": { "description": "Error message for compose box when a message could not be sent." + }, + "openLinksWithInAppBrowser": "Открывать ссылки внутри приложения", + "@openLinksWithInAppBrowser": { + "description": "Label for toggling setting to open links with in-app browser" + }, + "errorCouldNotShowUserProfile": "Не удалось показать профиль пользователя.", + "@errorCouldNotShowUserProfile": { + "description": "Message that appears on the user profile page when the profile cannot be shown." + }, + "errorCouldNotOpenLinkTitle": "Не удалось открыть ссылку", + "@errorCouldNotOpenLinkTitle": { + "description": "Error title when opening a link failed." + }, + "composeBoxLoadingMessage": "(загрузка сообщения {messageId})", + "@composeBoxLoadingMessage": { + "description": "Placeholder in compose box showing the quoted message is currently loading.", + "placeholders": { + "messageId": { + "type": "int", + "example": "1234" + } + } + }, + "dmsWithYourselfPageTitle": "ЛС с собой", + "@dmsWithYourselfPageTitle": { + "description": "Message list page title for a DM group that only includes yourself." + }, + "dmsWithOthersPageTitle": "ЛС с {others}", + "@dmsWithOthersPageTitle": { + "description": "Message list page title for a DM group with others.", + "placeholders": { + "others": { + "type": "String", + "example": "Alice, Bob" + } + } + }, + "lightboxVideoDuration": "Длительность видео", + "@lightboxVideoDuration": { + "description": "The total duration of the video playing in the lightbox." + }, + "pinnedSubscriptionsLabel": "Закреплены", + "@pinnedSubscriptionsLabel": { + "description": "Label for the list of pinned subscribed channels." + }, + "unpinnedSubscriptionsLabel": "Откреплены", + "@unpinnedSubscriptionsLabel": { + "description": "Label for the list of unpinned subscribed channels." + }, + "subscriptionListNoChannels": "Каналы не найдены", + "@subscriptionListNoChannels": { + "description": "Text to display on subscribed-channels page when there are no subscribed channels." + }, + "wildcardMentionAll": "все", + "@wildcardMentionAll": { + "description": "Text for \"@all\" wildcard-mention autocomplete option when writing a channel or DM message." + }, + "noEarlierMessages": "Предшествующих сообщений нет", + "@noEarlierMessages": { + "description": "Text to show at the start of a message list if there are no earlier messages." + }, + "actionSheetOptionMarkChannelAsRead": "Отметить канал как прочитанный", + "@actionSheetOptionMarkChannelAsRead": { + "description": "Label for marking a channel as read." + }, + "actionSheetOptionMarkTopicAsRead": "Отметить тему как прочитанную", + "@actionSheetOptionMarkTopicAsRead": { + "description": "Option to mark a specific topic as read in the action sheet." + }, + "reactedEmojiSelfUser": "Вы", + "@reactedEmojiSelfUser": { + "description": "Display name for the user themself, to show on an emoji reaction added by the user." + }, + "wildcardMentionEveryone": "каждый", + "@wildcardMentionEveryone": { + "description": "Text for \"@everyone\" wildcard-mention autocomplete option when writing a channel or DM message." + }, + "zulipAppTitle": "Zulip", + "@zulipAppTitle": { + "description": "The name of Zulip. This should be either 'Zulip' or a transliteration." + }, + "actionSheetOptionResolveTopic": "Поставить отметку \"решено\"", + "@actionSheetOptionResolveTopic": { + "description": "Label for the 'Mark as resolved' button on the topic action sheet." + }, + "filenameAndSizeInMiB": "{filename}: {size} МиБ", + "@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" + } + } + }, + "errorCouldNotOpenLink": "Не удалось открыть ссылку: {url}", + "@errorCouldNotOpenLink": { + "description": "Error message when opening a link failed.", + "placeholders": { + "url": { + "type": "String", + "example": "https://chat.example.com" + } + } + }, + "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" + } + } + }, + "unknownChannelName": "(неизвестный канал)", + "@unknownChannelName": { + "description": "Replacement name for channel when it cannot be found in the store." + }, + "recentDmConversationsSectionHeader": "Личные сообщения", + "@recentDmConversationsSectionHeader": { + "description": "Heading for direct messages section on the 'Inbox' message view." + }, + "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" + } + } + }, + "settingsPageTitle": "Настройки", + "@settingsPageTitle": { + "description": "Title for the settings page." + }, + "actionSheetOptionUnresolveTopic": "Снять отметку \"решено\"", + "@actionSheetOptionUnresolveTopic": { + "description": "Label for the 'Mark as unresolved' button on the topic action sheet." + }, + "errorResolveTopicFailedTitle": "Не удалось отметить тему как решенную", + "@errorResolveTopicFailedTitle": { + "description": "Error title when marking a topic as resolved failed." + }, + "errorUnresolveTopicFailedTitle": "Не удалось отметить тему как нерешенную", + "@errorUnresolveTopicFailedTitle": { + "description": "Error title when marking a topic as unresolved failed." + }, + "lightboxVideoCurrentPosition": "Место воспроизведения", + "@lightboxVideoCurrentPosition": { + "description": "The current playback position of the video playing in the lightbox." + }, + "wildcardMentionChannel": "канал", + "@wildcardMentionChannel": { + "description": "Text for \"@channel\" wildcard-mention autocomplete option when writing a channel message." + }, + "wildcardMentionStreamDescription": "Оповестить канал", + "@wildcardMentionStreamDescription": { + "description": "Description for \"@all\", \"@everyone\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message in older servers." + }, + "themeSettingTitle": "РЕЖИМ", + "@themeSettingTitle": { + "description": "Title for theme setting. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + }, + "themeSettingDark": "Темный", + "@themeSettingDark": { + "description": "Label for dark theme setting." + }, + "themeSettingLight": "Светлый", + "@themeSettingLight": { + "description": "Label for light theme setting." + }, + "themeSettingSystem": "Системный", + "@themeSettingSystem": { + "description": "Label for system theme setting." + }, + "scrollToBottomTooltip": "Пролистать вниз", + "@scrollToBottomTooltip": { + "description": "Tooltip for button to scroll to bottom." + }, + "errorCouldNotConnectTitle": "Нет связи с сервером", + "@errorCouldNotConnectTitle": { + "description": "Error title when the app could not connect to the server." + }, + "errorInvalidApiKeyMessage": "Не удалось войти в вашу учетную запись {url}. Попробуйте еще раз или используйте другую учетную запись.", + "@errorInvalidApiKeyMessage": { + "description": "Error message in the dialog for invalid API key.", + "placeholders": { + "url": { + "type": "String", + "example": "http://chat.example.com/" + } + } + }, + "appVersionUnknownPlaceholder": "(…)", + "@appVersionUnknownPlaceholder": { + "description": "Placeholder to show in place of the app version when it is unknown." + }, + "wildcardMentionChannelDescription": "Оповестить канал", + "@wildcardMentionChannelDescription": { + "description": "Description for \"@all\", \"@everyone\", \"@channel\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message." + }, + "wildcardMentionTopicDescription": "Оповестить тему", + "@wildcardMentionTopicDescription": { + "description": "Description for \"@topic\" wildcard-mention autocomplete options when writing a channel message." + }, + "wildcardMentionStream": "канал", + "@wildcardMentionStream": { + "description": "Text for \"@stream\" wildcard-mention autocomplete option when writing a channel message in older servers." + }, + "wildcardMentionTopic": "тема", + "@wildcardMentionTopic": { + "description": "Text for \"@topic\" wildcard-mention autocomplete option when writing a channel message." + }, + "wildcardMentionAllDmDescription": "Оповестить получателей", + "@wildcardMentionAllDmDescription": { + "description": "Description for \"@all\" and \"@everyone\" wildcard-mention autocomplete options when writing a DM message." + }, + "errorServerVersionUnsupportedMessage": "{url} использует Zulip Server {zulipVersion}, который не поддерживается. Минимальная поддерживаемая версия — Zulip Server {minSupportedZulipVersion}.", + "@errorServerVersionUnsupportedMessage": { + "description": "Error message in the dialog for when the Zulip Server version is unsupported.", + "placeholders": { + "url": { + "type": "String", + "example": "http://chat.example.com/" + }, + "zulipVersion": { + "type": "String", + "example": "3.2" + }, + "minSupportedZulipVersion": { + "type": "String", + "example": "4.0" + } + } + }, + "errorDialogLearnMore": "Узнать больше", + "@errorDialogLearnMore": { + "description": "Button label in error dialogs to open a web page with more information." + }, + "experimentalFeatureSettingsPageTitle": "Экспериментальные функции", + "@experimentalFeatureSettingsPageTitle": { + "description": "Title of settings page for experimental, in-development features" + }, + "experimentalFeatureSettingsWarning": "Эти параметры включают функции, которые все еще находятся в стадии разработки и не готовы. Они могут не работать и вызывать проблемы в других местах приложения.\n\nЦель этих настроек — экспериментирование людьми, работающими над разработкой Zulip.", + "@experimentalFeatureSettingsWarning": { + "description": "Warning text on settings page for experimental, in-development features" } } diff --git a/assets/l10n/app_uk.arb b/assets/l10n/app_uk.arb new file mode 100644 index 0000000000..b851404ad8 --- /dev/null +++ b/assets/l10n/app_uk.arb @@ -0,0 +1,1010 @@ +{ + "tryAnotherAccountButton": "Спробуйте інший обліковий запис", + "@tryAnotherAccountButton": { + "description": "Label for loading screen button prompting user to try another account." + }, + "actionSheetOptionFollowTopic": "Підписатися на тему", + "@actionSheetOptionFollowTopic": { + "description": "Label for following a topic on action sheet." + }, + "actionSheetOptionUnstarMessage": "Зняти позначку зірочки з повідомлення", + "@actionSheetOptionUnstarMessage": { + "description": "Label for unstar button on action sheet." + }, + "errorAccountLoggedInTitle": "В обліковий запис уже ввійшли", + "@errorAccountLoggedInTitle": { + "description": "Error title on attempting to log into an account that's already logged in." + }, + "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" + } + } + }, + "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" + } + } + }, + "errorConnectingToServerShort": "Помилка підключення до Zulip. Повторна спроба…", + "@errorConnectingToServerShort": { + "description": "Short error message for a generic unknown error connecting to the server." + }, + "dialogContinue": "Продовжити", + "@dialogContinue": { + "description": "Button label in dialogs to proceed." + }, + "errorSharingFailed": "Поширення не вдалося", + "@errorSharingFailed": { + "description": "Error message when sharing a message failed." + }, + "errorStarMessageFailedTitle": "Не вдалося позначити повідомлення зірочкою", + "@errorStarMessageFailedTitle": { + "description": "Error title when starring a message failed." + }, + "errorUnstarMessageFailedTitle": "Не вдалося зняти позначку зірочки з повідомлення", + "@errorUnstarMessageFailedTitle": { + "description": "Error title when unstarring a message failed." + }, + "contentValidationErrorQuoteAndReplyInProgress": "Будь ласка, дочекайтеся завершення цитування.", + "@contentValidationErrorQuoteAndReplyInProgress": { + "description": "Content validation error message when a quotation has not completed yet." + }, + "successMessageLinkCopied": "Посилання на повідомлення скопійовано", + "@successMessageLinkCopied": { + "description": "Message when link of a message was copied to the user's system clipboard." + }, + "composeBoxSendTooltip": "Надіслати", + "@composeBoxSendTooltip": { + "description": "Tooltip for send button in compose box." + }, + "composeBoxLoadingMessage": "(завантаження повідомлення {messageId})", + "@composeBoxLoadingMessage": { + "description": "Placeholder in compose box showing the quoted message is currently loading.", + "placeholders": { + "messageId": { + "type": "int", + "example": "1234" + } + } + }, + "lightboxVideoDuration": "Довжина відео", + "@lightboxVideoDuration": { + "description": "The total duration of the video playing in the lightbox." + }, + "aboutPageTapToView": "Натисніть, щоб переглянути", + "@aboutPageTapToView": { + "description": "Item subtitle in About Zulip page to navigate to Licenses page" + }, + "logOutConfirmationDialogConfirmButton": "Вийти", + "@logOutConfirmationDialogConfirmButton": { + "description": "Label for the 'Log out' button on a confirmation dialog for logging out." + }, + "actionSheetOptionMarkTopicAsRead": "Позначити тему як прочитану", + "@actionSheetOptionMarkTopicAsRead": { + "description": "Option to mark a specific topic as read in the action sheet." + }, + "errorCouldNotOpenLinkTitle": "Неможливо відкрити посилання", + "@errorCouldNotOpenLinkTitle": { + "description": "Error title when opening a link failed." + }, + "aboutPageTitle": "Про Zulip", + "@aboutPageTitle": { + "description": "Title for About Zulip page." + }, + "permissionsNeededOpenSettings": "Відкрити налаштування", + "@permissionsNeededOpenSettings": { + "description": "Button label for permissions dialog button that opens the system settings screen." + }, + "actionSheetOptionMarkChannelAsRead": "Позначити канал як прочитаний", + "@actionSheetOptionMarkChannelAsRead": { + "description": "Label for marking a channel as read." + }, + "successMessageTextCopied": "Текст повідомлення скопійовано", + "@successMessageTextCopied": { + "description": "Message when content of a message was copied to the user's system clipboard." + }, + "logOutConfirmationDialogTitle": "Вийти?", + "@logOutConfirmationDialogTitle": { + "description": "Title for a confirmation dialog for logging out." + }, + "actionSheetOptionMuteTopic": "Заглушити тему", + "@actionSheetOptionMuteTopic": { + "description": "Label for muting a topic 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/" + } + }, + "errorCopyingFailed": "Помилка копіювання", + "@errorCopyingFailed": { + "description": "Error message when copying the text of a message to the user's system clipboard failed." + }, + "logOutConfirmationDialogMessage": "Щоб використовувати цей обліковий запис у майбутньому, вам доведеться повторно ввести його дані та URL-адресу вашої організації.", + "@logOutConfirmationDialogMessage": { + "description": "Message for a confirmation dialog for logging out." + }, + "errorWebAuthOperationalErrorTitle": "Щось пішло не так", + "@errorWebAuthOperationalErrorTitle": { + "description": "Error title when third-party authentication has an operational error (not necessarily caused by invalid credentials)." + }, + "permissionsNeededTitle": "Потрібні дозволи", + "@permissionsNeededTitle": { + "description": "Title for dialog asking the user to grant additional permissions." + }, + "permissionsDeniedCameraAccess": "Щоб завантажити зображення, надайте Zulip додаткові дозволи в налаштуваннях.", + "@permissionsDeniedCameraAccess": { + "description": "Message for dialog asking the user to grant permissions for camera access." + }, + "permissionsDeniedReadExternalStorage": "Щоб завантажувати файли, надайте Zulip додаткові дозволи в налаштуваннях.", + "@permissionsDeniedReadExternalStorage": { + "description": "Message for dialog asking the user to grant permissions for external storage read access." + }, + "actionSheetOptionStarMessage": "Позначити повідомлення зірочкою", + "@actionSheetOptionStarMessage": { + "description": "Label for star button on action sheet." + }, + "actionSheetOptionUnresolveTopic": "Позначити як невирішене", + "@actionSheetOptionUnresolveTopic": { + "description": "Label for the 'Mark as unresolved' button on the topic action sheet." + }, + "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." + }, + "actionSheetOptionQuoteAndReply": "Цитата і відповідь", + "@actionSheetOptionQuoteAndReply": { + "description": "Label for Quote and reply button on action sheet." + }, + "signInWithFoo": "Увійти з {method}", + "@signInWithFoo": { + "description": "Button to use {method} to sign in to the app.", + "placeholders": { + "method": { + "type": "String", + "example": "Google" + } + } + }, + "aboutPageOpenSourceLicenses": "Ліцензії з відкритим кодом", + "@aboutPageOpenSourceLicenses": { + "description": "Item title in About Zulip page to navigate to Licenses page" + }, + "chooseAccountPageTitle": "Обрати обліковий запис", + "@chooseAccountPageTitle": { + "description": "Title for the page to choose between Zulip accounts." + }, + "chooseAccountPageLogOutButton": "Вийти", + "@chooseAccountPageLogOutButton": { + "description": "Label for the 'Log out' button for an account on the choose-account page" + }, + "errorFailedToUploadFileTitle": "Не вдалося завантажити файл: {filename}", + "@errorFailedToUploadFileTitle": { + "description": "Error title when the specified file failed to upload.", + "placeholders": { + "filename": { + "type": "String", + "example": "file.txt" + } + } + }, + "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" + } + } + }, + "errorFilesTooLarge": "{num, plural, =1{Файл} other{{num} файли}} перевищують ліміт сервера в {maxFileUploadSizeMib} MiB і не будуть завантажені:\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" + } + } + }, + "errorFilesTooLargeTitle": "{num, plural, =1{Файл} other{Файли}} занадто великий", + "@errorFilesTooLargeTitle": { + "description": "Error title when attached files are too large in size.", + "placeholders": { + "num": { + "type": "int", + "example": "4" + } + } + }, + "errorLoginFailedTitle": "Помилка входу", + "@errorLoginFailedTitle": { + "description": "Error title for login when signing into a Zulip server fails." + }, + "errorMessageNotSent": "Повідомлення не надіслано", + "@errorMessageNotSent": { + "description": "Error message for compose box when a message could not be sent." + }, + "errorLoginCouldNotConnect": "Не вдалося підключитися до сервера:\n{url}", + "@errorLoginCouldNotConnect": { + "description": "Error message when the app could not connect to the server.", + "placeholders": { + "url": { + "type": "String", + "example": "http://example.com/" + } + } + }, + "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." + }, + "errorMuteTopicFailed": "Не вдалося заглушити тему", + "@errorMuteTopicFailed": { + "description": "Error message when muting a topic failed." + }, + "errorUnmuteTopicFailed": "Не вдалося увімкнути тему", + "@errorUnmuteTopicFailed": { + "description": "Error message when unmuting a topic failed." + }, + "errorFollowTopicFailed": "Не вдалося підписатися на тему", + "@errorFollowTopicFailed": { + "description": "Error message when following a topic failed." + }, + "errorBannerCannotPostInChannelLabel": "Ви не маєте дозволу на публікацію в цьому каналі.", + "@errorBannerCannotPostInChannelLabel": { + "description": "Error-banner text replacing the compose box when you do not have permission to send a message to the channel." + }, + "composeBoxAttachMediaTooltip": "Додати зображення або відео", + "@composeBoxAttachMediaTooltip": { + "description": "Tooltip for compose box icon to attach media to the message." + }, + "composeBoxAttachFromCameraTooltip": "Зробити фото", + "@composeBoxAttachFromCameraTooltip": { + "description": "Tooltip for compose box icon to attach an image from the camera to the message." + }, + "composeBoxGenericContentHint": "Ввести повідомлення", + "@composeBoxGenericContentHint": { + "description": "Hint text for content input when sending a message." + }, + "composeBoxDmContentHint": "Повідомлення @{user}", + "@composeBoxDmContentHint": { + "description": "Hint text for content input when sending a message to one other person.", + "placeholders": { + "user": { + "type": "String", + "example": "channel name" + } + } + }, + "composeBoxGroupDmContentHint": "Група повідомлень", + "@composeBoxGroupDmContentHint": { + "description": "Hint text for content input when sending a message to a group." + }, + "unknownChannelName": "(невідомий канал)", + "@unknownChannelName": { + "description": "Replacement name for channel when it cannot be found in the store." + }, + "composeBoxUploadingFilename": "Завантаження {filename}…", + "@composeBoxUploadingFilename": { + "description": "Placeholder in compose box showing the specified file is currently uploading.", + "placeholders": { + "filename": { + "type": "String", + "example": "file.txt" + } + } + }, + "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.", + "placeholders": { + "others": { + "type": "String", + "example": "Alice, Bob" + } + } + }, + "dmsWithOthersPageTitle": "Особисті повідомлення з {others}", + "@dmsWithOthersPageTitle": { + "description": "Message list page title for a DM group with others.", + "placeholders": { + "others": { + "type": "String", + "example": "Alice, Bob" + } + } + }, + "messageListGroupYouWithYourself": "Повідомлення з собою", + "@messageListGroupYouWithYourself": { + "description": "Message list recipient header for a DM group that only includes yourself." + }, + "contentValidationErrorTooLong": "Довжина повідомлення не повинна перевищувати 10000 символів.", + "@contentValidationErrorTooLong": { + "description": "Content validation error message when the message is too long." + }, + "contentValidationErrorEmpty": "Вам нема чого надсилати!", + "@contentValidationErrorEmpty": { + "description": "Content validation error message when the message is empty." + }, + "dialogCancel": "Відміна", + "@dialogCancel": { + "description": "Button label in dialogs to cancel." + }, + "dialogClose": "Закрити", + "@dialogClose": { + "description": "Button label in dialogs to close." + }, + "errorDialogContinue": "ОК", + "@errorDialogContinue": { + "description": "Button label in error dialogs to acknowledge the error and close the dialog." + }, + "errorDialogTitle": "Помилка", + "@errorDialogTitle": { + "description": "Generic title for error dialog." + }, + "settingsPageTitle": "Налаштування", + "@settingsPageTitle": { + "description": "Title for the settings page." + }, + "actionSheetOptionCopyMessageText": "Копіювати текст повідомлення", + "@actionSheetOptionCopyMessageText": { + "description": "Label for copy message text button on action sheet." + }, + "aboutPageAppVersion": "Версія додатку", + "@aboutPageAppVersion": { + "description": "Label for Zulip app version in About Zulip page" + }, + "profileButtonSendDirectMessage": "Надіслати особисте повідомлення", + "@profileButtonSendDirectMessage": { + "description": "Label for button in profile screen to navigate to DMs with the shown user." + }, + "errorLoginInvalidInputTitle": "Невірний вхід", + "@errorLoginInvalidInputTitle": { + "description": "Error title for login when input is invalid." + }, + "contentValidationErrorUploadInProgress": "Дочекайтеся завершення завантаження.", + "@contentValidationErrorUploadInProgress": { + "description": "Content validation error message when attachments have not finished uploading." + }, + "switchAccountButton": "Змінити обліковий запис", + "@switchAccountButton": { + "description": "Label for main-menu button leading to the choose-account page." + }, + "actionSheetOptionUnfollowTopic": "Відписатися від теми", + "@actionSheetOptionUnfollowTopic": { + "description": "Label for unfollowing a topic on action sheet." + }, + "errorMessageDoesNotSeemToExist": "Здається, цього повідомлення не існує.", + "@errorMessageDoesNotSeemToExist": { + "description": "Error message when loading a message that does not exist." + }, + "snackBarDetails": "Деталі", + "@snackBarDetails": { + "description": "Button label for snack bar button that opens a dialog with more details." + }, + "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." + }, + "errorCouldNotShowUserProfile": "Не вдалося показати профіль користувача.", + "@errorCouldNotShowUserProfile": { + "description": "Message that appears on the user profile page when the profile cannot be shown." + }, + "actionSheetOptionUnmuteTopic": "Увімкнути тему", + "@actionSheetOptionUnmuteTopic": { + "description": "Label for unmuting a topic on action sheet." + }, + "actionSheetOptionResolveTopic": "Позначити як вирішене", + "@actionSheetOptionResolveTopic": { + "description": "Label for the 'Mark as resolved' button on the topic action sheet." + }, + "errorUnresolveTopicFailedTitle": "Не вдалося позначити тему як невирішену", + "@errorUnresolveTopicFailedTitle": { + "description": "Error title when marking a topic as unresolved failed." + }, + "actionSheetOptionCopyMessageLink": "Копіювати посилання на повідомлення", + "@actionSheetOptionCopyMessageLink": { + "description": "Label for copy message link button on action sheet." + }, + "loginFormSubmitLabel": "Увійти", + "@loginFormSubmitLabel": { + "description": "Button text to submit login credentials." + }, + "actionSheetOptionShare": "Поширити", + "@actionSheetOptionShare": { + "description": "Label for share button on action sheet." + }, + "errorWebAuthOperationalError": "Сталася неочікувана помилка.", + "@errorWebAuthOperationalError": { + "description": "Error message when third-party authentication has an operational error (not necessarily caused by invalid credentials)." + }, + "errorCouldNotFetchMessageSource": "Не вдалося отримати джерело повідомлення", + "@errorCouldNotFetchMessageSource": { + "description": "Error message when the source of a message could not be fetched." + }, + "loginPageTitle": "Увійти", + "@loginPageTitle": { + "description": "Title for login page." + }, + "composeBoxTopicHintText": "Тема", + "@composeBoxTopicHintText": { + "description": "Hint text for topic input widget in compose box." + }, + "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." + }, + "lightboxCopyLinkTooltip": "Копіювати посилання", + "@lightboxCopyLinkTooltip": { + "description": "Tooltip in lightbox for the copy link action." + }, + "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" + } + } + }, + "successLinkCopied": "Посилання скопійовано", + "@successLinkCopied": { + "description": "Success message after copy link action completed." + }, + "errorHandlingEventDetails": "Помилка обробки події Zulip із {serverUrl}; буде повторювати спробу.\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')" + } + } + }, + "errorUnfollowTopicFailed": "Не вдалося відписатися від теми", + "@errorUnfollowTopicFailed": { + "description": "Error message when unfollowing a topic failed." + }, + "errorCouldNotOpenLink": "Не вдалося відкрити посилання: {url}", + "@errorCouldNotOpenLink": { + "description": "Error message when opening a link failed.", + "placeholders": { + "url": { + "type": "String", + "example": "https://chat.example.com" + } + } + }, + "lightboxVideoCurrentPosition": "Поточна позиція", + "@lightboxVideoCurrentPosition": { + "description": "The current playback position of the video playing in the lightbox." + }, + "loginAddAnAccountPageTitle": "Додати обліковий запис", + "@loginAddAnAccountPageTitle": { + "description": "Title for page to add a Zulip account." + }, + "loginMethodDivider": "АБО", + "@loginMethodDivider": { + "description": "Text on the divider between the username/password form and the third-party login options. Uppercase (for languages with letter case)." + }, + "loginServerUrlLabel": "URL-адреса вашого сервера Zulip", + "@loginServerUrlLabel": { + "description": "Label in login page for Zulip server URL entry." + }, + "manyPeopleTyping": "Кілька людей друкують…", + "@manyPeopleTyping": { + "description": "Text to display when there are multiple users typing." + }, + "noEarlierMessages": "Немає попередніх повідомлень", + "@noEarlierMessages": { + "description": "Text to show at the start of a message list if there are no earlier messages." + }, + "loginErrorMissingEmail": "Будь ласка, введіть свою електронну адресу.", + "@loginErrorMissingEmail": { + "description": "Error message when an empty email was provided." + }, + "loginPasswordLabel": "Пароль", + "@loginPasswordLabel": { + "description": "Label for password input field." + }, + "errorDialogLearnMore": "Дізнайтися більше", + "@errorDialogLearnMore": { + "description": "Button label in error dialogs to open a web page with more information." + }, + "loginUsernameLabel": "Ім'я користувача", + "@loginUsernameLabel": { + "description": "Label for input when a username is required to log in." + }, + "topicValidationErrorMandatoryButEmpty": "Теми обовʼязкові в цій організації.", + "@topicValidationErrorMandatoryButEmpty": { + "description": "Topic validation error when topic is required but was empty." + }, + "errorServerVersionUnsupportedMessage": "{url} використовує Zulip Server {zulipVersion}, який не підтримується. Мінімальною підтримуваною версією є Zulip Server {minSupportedZulipVersion}.", + "@errorServerVersionUnsupportedMessage": { + "description": "Error message in the dialog for when the Zulip Server version is unsupported.", + "placeholders": { + "url": { + "type": "String", + "example": "http://chat.example.com/" + }, + "zulipVersion": { + "type": "String", + "example": "3.2" + }, + "minSupportedZulipVersion": { + "type": "String", + "example": "4.0" + } + } + }, + "errorInvalidResponse": "Сервер надіслав недійсну відповідь", + "@errorInvalidResponse": { + "description": "Error message when an API call returned an invalid response." + }, + "errorNetworkRequestFailed": "Помилка запиту мережі", + "@errorNetworkRequestFailed": { + "description": "Error message when a network request fails." + }, + "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" + } + } + }, + "errorVideoPlayerFailed": "Неможливо відтворити відео", + "@errorVideoPlayerFailed": { + "description": "Error message when a video fails to play." + }, + "serverUrlValidationErrorEmpty": "Будь ласка, введіть URL.", + "@serverUrlValidationErrorEmpty": { + "description": "Error message when URL is empty" + }, + "serverUrlValidationErrorInvalidUrl": "Введіть дійсну URL-адресу.", + "@serverUrlValidationErrorInvalidUrl": { + "description": "Error message when URL is not in a valid format." + }, + "spoilerDefaultHeaderText": "Спойлер", + "@spoilerDefaultHeaderText": { + "description": "The default header text in a spoiler block ( https://zulip.com/help/spoilers )." + }, + "markAllAsReadLabel": "Позначити всі повідомлення як прочитані", + "@markAllAsReadLabel": { + "description": "Button text to mark messages as read." + }, + "errorMarkAsReadFailedTitle": "Не вдалося позначити як прочитане", + "@errorMarkAsReadFailedTitle": { + "description": "Error title when mark as read action failed." + }, + "markAsUnreadComplete": "Позначено як непрочитані {num, plural, =1{1 повідомлення} other{{num} повідомлення}}.", + "@markAsUnreadComplete": { + "description": "Message when marking messages as unread has completed.", + "placeholders": { + "num": { + "type": "int", + "example": "4" + } + } + }, + "errorMarkAsUnreadFailedTitle": "Не вдалося позначити як непрочитане", + "@errorMarkAsUnreadFailedTitle": { + "description": "Error title when mark as unread action failed." + }, + "today": "Сьогодні", + "@today": { + "description": "Term to use to reference the current day." + }, + "yesterday": "Учора", + "@yesterday": { + "description": "Term to use to reference the previous day." + }, + "inboxPageTitle": "Вхідні", + "@inboxPageTitle": { + "description": "Title for the page with unreads." + }, + "mentionsPageTitle": "Згадки", + "@mentionsPageTitle": { + "description": "Page title for the 'Mentions' message view." + }, + "starredMessagesPageTitle": "Повідомлення, позначені зірочкою", + "@starredMessagesPageTitle": { + "description": "Page title for the 'Starred messages' message view." + }, + "mainMenuMyProfile": "Мій профіль", + "@mainMenuMyProfile": { + "description": "Label for main-menu button leading to the user's own profile." + }, + "channelFeedButtonTooltip": "Стрічка каналу", + "@channelFeedButtonTooltip": { + "description": "Tooltip for button to navigate to a given channel's feed" + }, + "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" + } + } + }, + "pinnedSubscriptionsLabel": "Закріплені", + "@pinnedSubscriptionsLabel": { + "description": "Label for the list of pinned subscribed channels." + }, + "unpinnedSubscriptionsLabel": "Відкріплені", + "@unpinnedSubscriptionsLabel": { + "description": "Label for the list of unpinned subscribed channels." + }, + "notifSelfUser": "Ви", + "@notifSelfUser": { + "description": "Display name for the user themself, to show after replying in an Android notification" + }, + "onePersonTyping": "{typist} друкує…", + "@onePersonTyping": { + "description": "Text to display when there is one user typing.", + "placeholders": { + "typist": { + "type": "String", + "example": "Alice" + } + } + }, + "twoPeopleTyping": "{typist} і {otherTypist} друкують…", + "@twoPeopleTyping": { + "description": "Text to display when there are two users typing.", + "placeholders": { + "typist": { + "type": "String", + "example": "Alice" + }, + "otherTypist": { + "type": "String", + "example": "Bob" + } + } + }, + "wildcardMentionAll": "усі", + "@wildcardMentionAll": { + "description": "Text for \"@all\" wildcard-mention autocomplete option when writing a channel or DM message." + }, + "wildcardMentionEveryone": "усі", + "@wildcardMentionEveryone": { + "description": "Text for \"@everyone\" wildcard-mention autocomplete option when writing a channel or DM message." + }, + "wildcardMentionChannel": "канал", + "@wildcardMentionChannel": { + "description": "Text for \"@channel\" wildcard-mention autocomplete option when writing a channel message." + }, + "wildcardMentionAllDmDescription": "Повідомити одержувачів", + "@wildcardMentionAllDmDescription": { + "description": "Description for \"@all\" and \"@everyone\" wildcard-mention autocomplete options when writing a DM message." + }, + "wildcardMentionTopicDescription": "Повідомити канал", + "@wildcardMentionTopicDescription": { + "description": "Description for \"@topic\" wildcard-mention autocomplete options when writing a channel 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.)" + }, + "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" + } + } + }, + "themeSettingTitle": "ТЕМА", + "@themeSettingTitle": { + "description": "Title for theme setting. (Use ALL CAPS for cased alphabets: Latin, Greek, Cyrillic, etc.)" + }, + "themeSettingDark": "Темна", + "@themeSettingDark": { + "description": "Label for dark theme setting." + }, + "themeSettingLight": "Світла", + "@themeSettingLight": { + "description": "Label for light theme setting." + }, + "pollWidgetQuestionMissing": "Немає питання.", + "@pollWidgetQuestionMissing": { + "description": "Text to display for a poll when the question is missing" + }, + "pollWidgetOptionsMissing": "У цьому опитуванні ще немає варіантів.", + "@pollWidgetOptionsMissing": { + "description": "Text to display for a poll when it has no options" + }, + "experimentalFeatureSettingsPageTitle": "Експериментальні функції", + "@experimentalFeatureSettingsPageTitle": { + "description": "Title of settings page for experimental, in-development features" + }, + "emojiPickerSearchEmoji": "Пошук емодзі", + "@emojiPickerSearchEmoji": { + "description": "Hint text for the emoji picker search text field." + }, + "scrollToBottomTooltip": "Прокрутити вниз", + "@scrollToBottomTooltip": { + "description": "Tooltip for button to scroll to bottom." + }, + "appVersionUnknownPlaceholder": "(…)", + "@appVersionUnknownPlaceholder": { + "description": "Placeholder to show in place of the app version when it is unknown." + }, + "zulipAppTitle": "Zulip", + "@zulipAppTitle": { + "description": "The name of Zulip. This should be either 'Zulip' or a transliteration." + }, + "loginEmailLabel": "Адреса електронної пошти", + "@loginEmailLabel": { + "description": "Label for input when an email is required to log in." + }, + "channelsPageTitle": "Канали", + "@channelsPageTitle": { + "description": "Title for the page with a list of subscribed channels." + }, + "themeSettingSystem": "Системна", + "@themeSettingSystem": { + "description": "Label for system theme setting." + }, + "loginErrorMissingUsername": "Введіть своє ім'я користувача.", + "@loginErrorMissingUsername": { + "description": "Error message when an empty username was provided." + }, + "markAsReadInProgress": "Позначення повідомлень як прочитаних…", + "@markAsReadInProgress": { + "description": "Progress message when marking messages as read." + }, + "recentDmConversationsSectionHeader": "Особисті повідомлення", + "@recentDmConversationsSectionHeader": { + "description": "Heading for direct messages section on the 'Inbox' message view." + }, + "errorNotificationOpenTitle": "Не вдалося відкрити сповіщення", + "@errorNotificationOpenTitle": { + "description": "Error title when notification opening fails" + }, + "loginErrorMissingPassword": "Будь ласка, введіть свій пароль.", + "@loginErrorMissingPassword": { + "description": "Error message when an empty password was provided." + }, + "loginHidePassword": "Приховати пароль", + "@loginHidePassword": { + "description": "Icon label for button to hide password in input form." + }, + "errorRequestFailed": "Помилка мережевого запиту: статус HTTP {httpStatus}", + "@errorRequestFailed": { + "description": "Error message when an API call fails.", + "placeholders": { + "httpStatus": { + "type": "int", + "example": "500" + } + } + }, + "userRoleGuest": "Гість", + "@userRoleGuest": { + "description": "Label for UserRole.guest" + }, + "userRoleAdministrator": "Адміністратор", + "@userRoleAdministrator": { + "description": "Label for UserRole.administrator" + }, + "userRoleUnknown": "Невідомо", + "@userRoleUnknown": { + "description": "Label for UserRole.unknown" + }, + "topicValidationErrorTooLong": "Довжина теми не повинна перевищувати 60 символів.", + "@topicValidationErrorTooLong": { + "description": "Topic validation error when topic is too long." + }, + "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.", + "placeholders": { + "num": { + "type": "int", + "example": "4" + } + } + }, + "userRoleOwner": "Власник", + "@userRoleOwner": { + "description": "Label for UserRole.owner" + }, + "errorInvalidApiKeyMessage": "Ваш обліковий запис на {url} не вдалося автентифікувати. Спробуйте увійти ще раз або скористайтеся іншим обліковим записом.", + "@errorInvalidApiKeyMessage": { + "description": "Error message in the dialog for invalid API key.", + "placeholders": { + "url": { + "type": "String", + "example": "http://chat.example.com/" + } + } + }, + "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" + } + } + }, + "serverUrlValidationErrorNoUseEmail": "Введіть URL-адресу сервера, а не свою електронну адресу.", + "@serverUrlValidationErrorNoUseEmail": { + "description": "Error message when URL looks like an email" + }, + "markAsUnreadInProgress": "Позначення повідомлень як непрочитаних…", + "@markAsUnreadInProgress": { + "description": "Progress message when marking messages as unread." + }, + "userRoleModerator": "Модератор", + "@userRoleModerator": { + "description": "Label for UserRole.moderator" + }, + "userRoleMember": "Учасник", + "@userRoleMember": { + "description": "Label for UserRole.member" + }, + "recentDmConversationsPageTitle": "Особисті повідомлення", + "@recentDmConversationsPageTitle": { + "description": "Title for the page with a list of DM conversations." + }, + "combinedFeedPageTitle": "Комбінована стрічка", + "@combinedFeedPageTitle": { + "description": "Page title for the 'Combined feed' message view." + }, + "subscriptionListNoChannels": "Канали не знайдено", + "@subscriptionListNoChannels": { + "description": "Text to display on subscribed-channels page when there are no subscribed channels." + }, + "reactedEmojiSelfUser": "Ви", + "@reactedEmojiSelfUser": { + "description": "Display name for the user themself, to show on an emoji reaction added by the user." + }, + "wildcardMentionStream": "канал", + "@wildcardMentionStream": { + "description": "Text for \"@stream\" wildcard-mention autocomplete option when writing a channel message in older servers." + }, + "wildcardMentionTopic": "тема", + "@wildcardMentionTopic": { + "description": "Text for \"@topic\" wildcard-mention autocomplete option when writing a channel message." + }, + "wildcardMentionChannelDescription": "Повідомити канал", + "@wildcardMentionChannelDescription": { + "description": "Description for \"@all\", \"@everyone\", \"@channel\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message." + }, + "wildcardMentionStreamDescription": "Повідомити канал", + "@wildcardMentionStreamDescription": { + "description": "Description for \"@all\", \"@everyone\", and \"@stream\" wildcard-mention autocomplete options when writing a channel message in older servers." + }, + "openLinksWithInAppBrowser": "Відкривати посилання за допомогою браузера додатку", + "@openLinksWithInAppBrowser": { + "description": "Label for toggling setting to open links with in-app browser" + }, + "experimentalFeatureSettingsWarning": "Ці опції вмикають функції, які ще розробляються та не готові. Вони можуть не працювати та викликати проблеми в інших місцях додатку.\n\nМетою цих налаштувань є експериментування людьми, що працюють над розробкою Zulip.", + "@experimentalFeatureSettingsWarning": { + "description": "Warning text on settings page for experimental, in-development features" + }, + "errorNotificationOpenAccountMissing": "Обліковий запис, пов’язаний із цим сповіщенням, більше не існує.", + "@errorNotificationOpenAccountMissing": { + "description": "Error message when the account associated with the notification is not found" + }, + "errorReactionAddingFailedTitle": "Не вдалося додати реакцію", + "@errorReactionAddingFailedTitle": { + "description": "Error title when adding a message reaction fails" + }, + "errorReactionRemovingFailedTitle": "Не вдалося видалити реакцію", + "@errorReactionRemovingFailedTitle": { + "description": "Error title when removing a message reaction fails" + }, + "emojiReactionsMore": "більше", + "@emojiReactionsMore": { + "description": "Label for a button opening the emoji picker." + } +} diff --git a/lib/generated/l10n/zulip_localizations.dart b/lib/generated/l10n/zulip_localizations.dart index d09393e774..e8b15440e3 100644 --- a/lib/generated/l10n/zulip_localizations.dart +++ b/lib/generated/l10n/zulip_localizations.dart @@ -12,6 +12,7 @@ import 'zulip_localizations_nb.dart'; import 'zulip_localizations_pl.dart'; import 'zulip_localizations_ru.dart'; import 'zulip_localizations_sk.dart'; +import 'zulip_localizations_uk.dart'; // ignore_for_file: type=lint @@ -102,7 +103,8 @@ abstract class ZulipLocalizations { Locale('nb'), Locale('pl'), Locale('ru'), - Locale('sk') + Locale('sk'), + Locale('uk') ]; /// Title for About Zulip page. @@ -1297,7 +1299,7 @@ class _ZulipLocalizationsDelegate extends LocalizationsDelegate ['ar', 'en', 'ja', 'nb', 'pl', 'ru', 'sk'].contains(locale.languageCode); + bool isSupported(Locale locale) => ['ar', 'en', 'ja', 'nb', 'pl', 'ru', 'sk', 'uk'].contains(locale.languageCode); @override bool shouldReload(_ZulipLocalizationsDelegate old) => false; @@ -1315,6 +1317,7 @@ ZulipLocalizations lookupZulipLocalizations(Locale locale) { case 'pl': return ZulipLocalizationsPl(); case 'ru': return ZulipLocalizationsRu(); case 'sk': return ZulipLocalizationsSk(); + case 'uk': return ZulipLocalizationsUk(); } throw FlutterError( diff --git a/lib/generated/l10n/zulip_localizations_pl.dart b/lib/generated/l10n/zulip_localizations_pl.dart index 64705fbe02..d4c3a033d9 100644 --- a/lib/generated/l10n/zulip_localizations_pl.dart +++ b/lib/generated/l10n/zulip_localizations_pl.dart @@ -349,7 +349,7 @@ class ZulipLocalizationsPl extends ZulipLocalizations { String get dialogClose => 'Zamknij'; @override - String get errorDialogLearnMore => 'Learn more'; + String get errorDialogLearnMore => 'Dowiedz się więcej'; @override String get errorDialogContinue => 'OK'; @@ -418,7 +418,7 @@ class ZulipLocalizationsPl extends ZulipLocalizations { @override String errorServerVersionUnsupportedMessage(String url, String zulipVersion, String minSupportedZulipVersion) { - return '$url is running Zulip Server $zulipVersion, which is unsupported. The minimum supported version is Zulip Server $minSupportedZulipVersion.'; + return '$url uruchamia Zulip Server $zulipVersion, który nie jest obsługiwany. Minimalna obsługiwana wersja to Zulip Server $minSupportedZulipVersion.'; } @override @@ -652,10 +652,10 @@ class ZulipLocalizationsPl extends ZulipLocalizations { String get pollWidgetOptionsMissing => 'Ta sonda nie ma opcji do wyboru.'; @override - String get experimentalFeatureSettingsPageTitle => 'Experimental features'; + String get experimentalFeatureSettingsPageTitle => 'Funkcje eksperymentalne'; @override - String get experimentalFeatureSettingsWarning => 'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'; + String get experimentalFeatureSettingsWarning => 'W ten sposób aktywujesz funkcje, które są w fazie testów. Mogą one nie działać lub powodować problemy z tym co bez nich działa poprawnie.\n\nTo ustawienie przewidziane jest dla tych, którzy pracują nad ulepszeniem aplikacji Zulip.'; @override String get errorNotificationOpenTitle => 'Otwieranie powiadomienia bez powodzenia'; diff --git a/lib/generated/l10n/zulip_localizations_ru.dart b/lib/generated/l10n/zulip_localizations_ru.dart index 911fc281b2..cb09ca516e 100644 --- a/lib/generated/l10n/zulip_localizations_ru.dart +++ b/lib/generated/l10n/zulip_localizations_ru.dart @@ -24,7 +24,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get chooseAccountPageTitle => 'Выберите учетную запись'; @override - String get settingsPageTitle => 'Settings'; + String get settingsPageTitle => 'Настройки'; @override String get switchAccountButton => 'Сменить учетную запись'; @@ -56,7 +56,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get profileButtonSendDirectMessage => 'Отправить личное сообщение'; @override - String get errorCouldNotShowUserProfile => 'Could not show user profile.'; + String get errorCouldNotShowUserProfile => 'Не удалось показать профиль пользователя.'; @override String get permissionsNeededTitle => 'Требуются разрешения'; @@ -71,7 +71,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get permissionsDeniedReadExternalStorage => 'Для загрузки файлов, пожалуйста, предоставьте Zulip дополнительные разрешения в настройках.'; @override - String get actionSheetOptionMarkChannelAsRead => 'Mark channel as read'; + String get actionSheetOptionMarkChannelAsRead => 'Отметить канал как прочитанный'; @override String get actionSheetOptionMuteTopic => 'Отключить тему'; @@ -86,16 +86,16 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get actionSheetOptionUnfollowTopic => 'Не отслеживать тему'; @override - String get actionSheetOptionResolveTopic => 'Mark as resolved'; + String get actionSheetOptionResolveTopic => 'Поставить отметку \"решено\"'; @override - String get actionSheetOptionUnresolveTopic => 'Mark as unresolved'; + String get actionSheetOptionUnresolveTopic => 'Снять отметку \"решено\"'; @override - String get errorResolveTopicFailedTitle => 'Failed to mark topic as resolved'; + String get errorResolveTopicFailedTitle => 'Не удалось отметить тему как решенную'; @override - String get errorUnresolveTopicFailedTitle => 'Failed to mark topic as unresolved'; + String get errorUnresolveTopicFailedTitle => 'Не удалось отметить тему как нерешенную'; @override String get actionSheetOptionCopyMessageText => 'Скопировать текст сообщения'; @@ -119,7 +119,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get actionSheetOptionUnstarMessage => 'Снять отметку с сообщения'; @override - String get actionSheetOptionMarkTopicAsRead => 'Mark topic as read'; + String get actionSheetOptionMarkTopicAsRead => 'Отметить тему как прочитанную'; @override String get errorWebAuthOperationalErrorTitle => 'Что-то пошло не так'; @@ -148,7 +148,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { @override String filenameAndSizeInMiB(String filename, String size) { - return '$filename: $size MiB'; + return '$filename: $size МиБ'; } @override @@ -188,7 +188,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { } @override - String get errorCouldNotConnectTitle => 'Could not connect'; + String get errorCouldNotConnectTitle => 'Нет связи с сервером'; @override String get errorMessageDoesNotSeemToExist => 'Это сообщение, похоже, отсутствует.'; @@ -218,11 +218,11 @@ class ZulipLocalizationsRu extends ZulipLocalizations { } @override - String get errorCouldNotOpenLinkTitle => 'Unable to open link'; + String get errorCouldNotOpenLinkTitle => 'Не удалось открыть ссылку'; @override String errorCouldNotOpenLink(String url) { - return 'Link could not be opened: $url'; + return 'Не удалось открыть ссылку: $url'; } @override @@ -286,14 +286,14 @@ class ZulipLocalizationsRu extends ZulipLocalizations { @override String composeBoxChannelContentHint(String destination) { - return 'Message $destination'; + return 'Сообщение для $destination'; } @override String get composeBoxSendTooltip => 'Отправить'; @override - String get unknownChannelName => '(unknown channel)'; + String get unknownChannelName => '(неизвестный канал)'; @override String get composeBoxTopicHintText => 'Тема'; @@ -305,14 +305,14 @@ class ZulipLocalizationsRu extends ZulipLocalizations { @override String composeBoxLoadingMessage(int messageId) { - return '(loading message $messageId)'; + return '(загрузка сообщения $messageId)'; } @override String get unknownUserName => '(неизвестный пользователь)'; @override - String get dmsWithYourselfPageTitle => 'DMs with yourself'; + String get dmsWithYourselfPageTitle => 'ЛС с собой'; @override String messageListGroupYouAndOthers(String others) { @@ -321,11 +321,11 @@ class ZulipLocalizationsRu extends ZulipLocalizations { @override String dmsWithOthersPageTitle(String others) { - return 'DMs with $others'; + return 'ЛС с $others'; } @override - String get messageListGroupYouWithYourself => 'Вы с собой'; + String get messageListGroupYouWithYourself => 'Сообщения с собой'; @override String get contentValidationErrorTooLong => 'Длина сообщения не должна превышать 10000 символов.'; @@ -349,7 +349,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get dialogClose => 'Закрыть'; @override - String get errorDialogLearnMore => 'Learn more'; + String get errorDialogLearnMore => 'Узнать больше'; @override String get errorDialogContinue => 'OK'; @@ -364,10 +364,10 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get lightboxCopyLinkTooltip => 'Скопировать ссылку'; @override - String get lightboxVideoCurrentPosition => 'Current position'; + String get lightboxVideoCurrentPosition => 'Место воспроизведения'; @override - String get lightboxVideoDuration => 'Video duration'; + String get lightboxVideoDuration => 'Длительность видео'; @override String get loginPageTitle => 'Вход в систему'; @@ -418,12 +418,12 @@ class ZulipLocalizationsRu extends ZulipLocalizations { @override String errorServerVersionUnsupportedMessage(String url, String zulipVersion, String minSupportedZulipVersion) { - return '$url is running Zulip Server $zulipVersion, which is unsupported. The minimum supported version is Zulip Server $minSupportedZulipVersion.'; + return '$url использует Zulip Server $zulipVersion, который не поддерживается. Минимальная поддерживаемая версия — Zulip Server $minSupportedZulipVersion.'; } @override String errorInvalidApiKeyMessage(String url) { - return 'Your account at $url could not be authenticated. Please try logging in again or use another account.'; + return 'Не удалось войти в вашу учетную запись $url. Попробуйте еще раз или используйте другую учетную запись.'; } @override @@ -533,7 +533,7 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get recentDmConversationsPageTitle => 'Личные сообщения'; @override - String get recentDmConversationsSectionHeader => 'Direct messages'; + String get recentDmConversationsSectionHeader => 'Личные сообщения'; @override String get combinedFeedPageTitle => 'Объединенная лента'; @@ -565,19 +565,19 @@ class ZulipLocalizationsRu extends ZulipLocalizations { } @override - String get pinnedSubscriptionsLabel => 'Pinned'; + String get pinnedSubscriptionsLabel => 'Закреплены'; @override - String get unpinnedSubscriptionsLabel => 'Unpinned'; + String get unpinnedSubscriptionsLabel => 'Откреплены'; @override - String get subscriptionListNoChannels => 'No channels found'; + String get subscriptionListNoChannels => 'Каналы не найдены'; @override String get notifSelfUser => 'Вы'; @override - String get reactedEmojiSelfUser => 'You'; + String get reactedEmojiSelfUser => 'Вы'; @override String onePersonTyping(String typist) { @@ -593,31 +593,31 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get manyPeopleTyping => 'Несколько человек набирают сообщения…'; @override - String get wildcardMentionAll => 'all'; + String get wildcardMentionAll => 'все'; @override - String get wildcardMentionEveryone => 'everyone'; + String get wildcardMentionEveryone => 'каждый'; @override - String get wildcardMentionChannel => 'channel'; + String get wildcardMentionChannel => 'канал'; @override - String get wildcardMentionStream => 'stream'; + String get wildcardMentionStream => 'канал'; @override - String get wildcardMentionTopic => 'topic'; + String get wildcardMentionTopic => 'тема'; @override - String get wildcardMentionChannelDescription => 'Notify channel'; + String get wildcardMentionChannelDescription => 'Оповестить канал'; @override - String get wildcardMentionStreamDescription => 'Notify stream'; + String get wildcardMentionStreamDescription => 'Оповестить канал'; @override - String get wildcardMentionAllDmDescription => 'Notify recipients'; + String get wildcardMentionAllDmDescription => 'Оповестить получателей'; @override - String get wildcardMentionTopicDescription => 'Notify topic'; + String get wildcardMentionTopicDescription => 'Оповестить тему'; @override String get messageIsEditedLabel => 'ИЗМЕНЕНО'; @@ -631,19 +631,19 @@ class ZulipLocalizationsRu extends ZulipLocalizations { } @override - String get themeSettingTitle => 'THEME'; + String get themeSettingTitle => 'РЕЖИМ'; @override - String get themeSettingDark => 'Dark'; + String get themeSettingDark => 'Темный'; @override - String get themeSettingLight => 'Light'; + String get themeSettingLight => 'Светлый'; @override - String get themeSettingSystem => 'System'; + String get themeSettingSystem => 'Системный'; @override - String get openLinksWithInAppBrowser => 'Open links with in-app browser'; + String get openLinksWithInAppBrowser => 'Открывать ссылки внутри приложения'; @override String get pollWidgetQuestionMissing => 'Нет вопроса.'; @@ -652,10 +652,10 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get pollWidgetOptionsMissing => 'В опросе пока нет вариантов ответа.'; @override - String get experimentalFeatureSettingsPageTitle => 'Experimental features'; + String get experimentalFeatureSettingsPageTitle => 'Экспериментальные функции'; @override - String get experimentalFeatureSettingsWarning => 'These options enable features which are still under development and not ready. They may not work, and may cause issues in other areas of the app.\n\nThe purpose of these settings is for experimentation by people working on developing Zulip.'; + String get experimentalFeatureSettingsWarning => 'Эти параметры включают функции, которые все еще находятся в стадии разработки и не готовы. Они могут не работать и вызывать проблемы в других местах приложения.\n\nЦель этих настроек — экспериментирование людьми, работающими над разработкой Zulip.'; @override String get errorNotificationOpenTitle => 'Не удалось открыть оповещения'; @@ -676,10 +676,10 @@ class ZulipLocalizationsRu extends ZulipLocalizations { String get emojiPickerSearchEmoji => 'Поиск эмодзи'; @override - String get noEarlierMessages => 'No earlier messages'; + String get noEarlierMessages => 'Предшествующих сообщений нет'; @override - String get scrollToBottomTooltip => 'Scroll to bottom'; + String get scrollToBottomTooltip => 'Пролистать вниз'; @override String get appVersionUnknownPlaceholder => '(…)'; diff --git a/lib/generated/l10n/zulip_localizations_uk.dart b/lib/generated/l10n/zulip_localizations_uk.dart new file mode 100644 index 0000000000..b7e6d792f2 --- /dev/null +++ b/lib/generated/l10n/zulip_localizations_uk.dart @@ -0,0 +1,689 @@ +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'zulip_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for Ukrainian (`uk`). +class ZulipLocalizationsUk extends ZulipLocalizations { + ZulipLocalizationsUk([String locale = 'uk']) : super(locale); + + @override + String get aboutPageTitle => 'Про Zulip'; + + @override + String get aboutPageAppVersion => 'Версія додатку'; + + @override + String get aboutPageOpenSourceLicenses => 'Ліцензії з відкритим кодом'; + + @override + String get aboutPageTapToView => 'Натисніть, щоб переглянути'; + + @override + String get chooseAccountPageTitle => 'Обрати обліковий запис'; + + @override + String get settingsPageTitle => 'Налаштування'; + + @override + String get switchAccountButton => 'Змінити обліковий запис'; + + @override + String tryAnotherAccountMessage(Object url) { + return 'Ваш обліковий запис на $url завантажується деякий час.'; + } + + @override + String get tryAnotherAccountButton => 'Спробуйте інший обліковий запис'; + + @override + String get chooseAccountPageLogOutButton => 'Вийти'; + + @override + String get logOutConfirmationDialogTitle => 'Вийти?'; + + @override + String get logOutConfirmationDialogMessage => 'Щоб використовувати цей обліковий запис у майбутньому, вам доведеться повторно ввести його дані та URL-адресу вашої організації.'; + + @override + String get logOutConfirmationDialogConfirmButton => 'Вийти'; + + @override + String get chooseAccountButtonAddAnAccount => 'Додати обліковий запис'; + + @override + String get profileButtonSendDirectMessage => 'Надіслати особисте повідомлення'; + + @override + String get errorCouldNotShowUserProfile => 'Не вдалося показати профіль користувача.'; + + @override + String get permissionsNeededTitle => 'Потрібні дозволи'; + + @override + String get permissionsNeededOpenSettings => 'Відкрити налаштування'; + + @override + String get permissionsDeniedCameraAccess => 'Щоб завантажити зображення, надайте Zulip додаткові дозволи в налаштуваннях.'; + + @override + String get permissionsDeniedReadExternalStorage => 'Щоб завантажувати файли, надайте Zulip додаткові дозволи в налаштуваннях.'; + + @override + String get actionSheetOptionMarkChannelAsRead => 'Позначити канал як прочитаний'; + + @override + String get actionSheetOptionMuteTopic => 'Заглушити тему'; + + @override + String get actionSheetOptionUnmuteTopic => 'Увімкнути тему'; + + @override + String get actionSheetOptionFollowTopic => 'Підписатися на тему'; + + @override + String get actionSheetOptionUnfollowTopic => 'Відписатися від теми'; + + @override + String get actionSheetOptionResolveTopic => 'Позначити як вирішене'; + + @override + String get actionSheetOptionUnresolveTopic => 'Позначити як невирішене'; + + @override + String get errorResolveTopicFailedTitle => 'Не вдалося позначити тему як вирішену'; + + @override + String get errorUnresolveTopicFailedTitle => 'Не вдалося позначити тему як невирішену'; + + @override + String get actionSheetOptionCopyMessageText => 'Копіювати текст повідомлення'; + + @override + String get actionSheetOptionCopyMessageLink => 'Копіювати посилання на повідомлення'; + + @override + String get actionSheetOptionMarkAsUnread => 'Позначити як непрочитане звідси'; + + @override + String get actionSheetOptionShare => 'Поширити'; + + @override + String get actionSheetOptionQuoteAndReply => 'Цитата і відповідь'; + + @override + String get actionSheetOptionStarMessage => 'Позначити повідомлення зірочкою'; + + @override + String get actionSheetOptionUnstarMessage => 'Зняти позначку зірочки з повідомлення'; + + @override + String get actionSheetOptionMarkTopicAsRead => 'Позначити тему як прочитану'; + + @override + String get errorWebAuthOperationalErrorTitle => 'Щось пішло не так'; + + @override + String get errorWebAuthOperationalError => 'Сталася неочікувана помилка.'; + + @override + String get errorAccountLoggedInTitle => 'В обліковий запис уже ввійшли'; + + @override + String errorAccountLoggedIn(String email, String server) { + return 'Обліковий запис $email на $server уже є у вашому списку облікових записів.'; + } + + @override + String get errorCouldNotFetchMessageSource => 'Не вдалося отримати джерело повідомлення'; + + @override + String get errorCopyingFailed => 'Помилка копіювання'; + + @override + String errorFailedToUploadFileTitle(String filename) { + return 'Не вдалося завантажити файл: $filename'; + } + + @override + String filenameAndSizeInMiB(String filename, String size) { + return '$filename: $size MiB'; + } + + @override + String errorFilesTooLarge(int num, int maxFileUploadSizeMib, String listMessage) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num файли', + one: 'Файл', + ); + return '$_temp0 перевищують ліміт сервера в $maxFileUploadSizeMib MiB і не будуть завантажені:\n\n$listMessage'; + } + + @override + String errorFilesTooLargeTitle(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: 'Файли', + one: 'Файл', + ); + return '$_temp0 занадто великий'; + } + + @override + String get errorLoginInvalidInputTitle => 'Невірний вхід'; + + @override + String get errorLoginFailedTitle => 'Помилка входу'; + + @override + String get errorMessageNotSent => 'Повідомлення не надіслано'; + + @override + String errorLoginCouldNotConnect(String url) { + return 'Не вдалося підключитися до сервера:\n$url'; + } + + @override + String get errorCouldNotConnectTitle => 'Не вдалося підключитися'; + + @override + String get errorMessageDoesNotSeemToExist => 'Здається, цього повідомлення не існує.'; + + @override + String get errorQuotationFailed => 'Помилка цитування'; + + @override + String errorServerMessage(String message) { + return 'Сервер сказав:\n\n$message'; + } + + @override + String get errorConnectingToServerShort => 'Помилка підключення до Zulip. Повторна спроба…'; + + @override + String errorConnectingToServerDetails(String serverUrl, String error) { + return 'Помилка підключення до Zulip на $serverUrl. Буде повторена спроба:\n\n$error'; + } + + @override + String get errorHandlingEventTitle => 'Помилка обробки події Zulip. Повторна спроба підключення…'; + + @override + String errorHandlingEventDetails(String serverUrl, String error, String event) { + return 'Помилка обробки події Zulip із $serverUrl; буде повторювати спробу.\n\nПомилка: $error\n\nПодія: $event'; + } + + @override + String get errorCouldNotOpenLinkTitle => 'Неможливо відкрити посилання'; + + @override + String errorCouldNotOpenLink(String url) { + return 'Не вдалося відкрити посилання: $url'; + } + + @override + String get errorMuteTopicFailed => 'Не вдалося заглушити тему'; + + @override + String get errorUnmuteTopicFailed => 'Не вдалося увімкнути тему'; + + @override + String get errorFollowTopicFailed => 'Не вдалося підписатися на тему'; + + @override + String get errorUnfollowTopicFailed => 'Не вдалося відписатися від теми'; + + @override + String get errorSharingFailed => 'Поширення не вдалося'; + + @override + String get errorStarMessageFailedTitle => 'Не вдалося позначити повідомлення зірочкою'; + + @override + String get errorUnstarMessageFailedTitle => 'Не вдалося зняти позначку зірочки з повідомлення'; + + @override + String get successLinkCopied => 'Посилання скопійовано'; + + @override + String get successMessageTextCopied => 'Текст повідомлення скопійовано'; + + @override + String get successMessageLinkCopied => 'Посилання на повідомлення скопійовано'; + + @override + String get errorBannerDeactivatedDmLabel => 'Ви не можете надсилати повідомлення деактивованим користувачам.'; + + @override + String get errorBannerCannotPostInChannelLabel => 'Ви не маєте дозволу на публікацію в цьому каналі.'; + + @override + String get composeBoxAttachFilesTooltip => 'Прикріпити файли'; + + @override + String get composeBoxAttachMediaTooltip => 'Додати зображення або відео'; + + @override + String get composeBoxAttachFromCameraTooltip => 'Зробити фото'; + + @override + String get composeBoxGenericContentHint => 'Ввести повідомлення'; + + @override + String composeBoxDmContentHint(String user) { + return 'Повідомлення @$user'; + } + + @override + String get composeBoxGroupDmContentHint => 'Група повідомлень'; + + @override + String get composeBoxSelfDmContentHint => 'Занотувати щось'; + + @override + String composeBoxChannelContentHint(String destination) { + return 'Надіслати повідомлення $destination'; + } + + @override + String get composeBoxSendTooltip => 'Надіслати'; + + @override + String get unknownChannelName => '(невідомий канал)'; + + @override + String get composeBoxTopicHintText => 'Тема'; + + @override + String composeBoxUploadingFilename(String filename) { + return 'Завантаження $filename…'; + } + + @override + String composeBoxLoadingMessage(int messageId) { + return '(завантаження повідомлення $messageId)'; + } + + @override + String get unknownUserName => '(невідомий користувач)'; + + @override + String get dmsWithYourselfPageTitle => 'Особисті повідомлення із собою'; + + @override + String messageListGroupYouAndOthers(String others) { + return 'Ви та $others'; + } + + @override + String dmsWithOthersPageTitle(String others) { + return 'Особисті повідомлення з $others'; + } + + @override + String get messageListGroupYouWithYourself => 'Повідомлення з собою'; + + @override + String get contentValidationErrorTooLong => 'Довжина повідомлення не повинна перевищувати 10000 символів.'; + + @override + String get contentValidationErrorEmpty => 'Вам нема чого надсилати!'; + + @override + String get contentValidationErrorQuoteAndReplyInProgress => 'Будь ласка, дочекайтеся завершення цитування.'; + + @override + String get contentValidationErrorUploadInProgress => 'Дочекайтеся завершення завантаження.'; + + @override + String get dialogCancel => 'Відміна'; + + @override + String get dialogContinue => 'Продовжити'; + + @override + String get dialogClose => 'Закрити'; + + @override + String get errorDialogLearnMore => 'Дізнайтися більше'; + + @override + String get errorDialogContinue => 'ОК'; + + @override + String get errorDialogTitle => 'Помилка'; + + @override + String get snackBarDetails => 'Деталі'; + + @override + String get lightboxCopyLinkTooltip => 'Копіювати посилання'; + + @override + String get lightboxVideoCurrentPosition => 'Поточна позиція'; + + @override + String get lightboxVideoDuration => 'Довжина відео'; + + @override + String get loginPageTitle => 'Увійти'; + + @override + String get loginFormSubmitLabel => 'Увійти'; + + @override + String get loginMethodDivider => 'АБО'; + + @override + String signInWithFoo(String method) { + return 'Увійти з $method'; + } + + @override + String get loginAddAnAccountPageTitle => 'Додати обліковий запис'; + + @override + String get loginServerUrlLabel => 'URL-адреса вашого сервера Zulip'; + + @override + String get loginHidePassword => 'Приховати пароль'; + + @override + String get loginEmailLabel => 'Адреса електронної пошти'; + + @override + String get loginErrorMissingEmail => 'Будь ласка, введіть свою електронну адресу.'; + + @override + String get loginPasswordLabel => 'Пароль'; + + @override + String get loginErrorMissingPassword => 'Будь ласка, введіть свій пароль.'; + + @override + String get loginUsernameLabel => 'Ім\'я користувача'; + + @override + String get loginErrorMissingUsername => 'Введіть своє ім\'я користувача.'; + + @override + String get topicValidationErrorTooLong => 'Довжина теми не повинна перевищувати 60 символів.'; + + @override + String get topicValidationErrorMandatoryButEmpty => 'Теми обовʼязкові в цій організації.'; + + @override + String errorServerVersionUnsupportedMessage(String url, String zulipVersion, String minSupportedZulipVersion) { + return '$url використовує Zulip Server $zulipVersion, який не підтримується. Мінімальною підтримуваною версією є Zulip Server $minSupportedZulipVersion.'; + } + + @override + String errorInvalidApiKeyMessage(String url) { + return 'Ваш обліковий запис на $url не вдалося автентифікувати. Спробуйте увійти ще раз або скористайтеся іншим обліковим записом.'; + } + + @override + String get errorInvalidResponse => 'Сервер надіслав недійсну відповідь'; + + @override + String get errorNetworkRequestFailed => 'Помилка запиту мережі'; + + @override + String errorMalformedResponse(int httpStatus) { + return 'Сервер дав неправильну відповідь; Статус HTTP $httpStatus'; + } + + @override + String errorMalformedResponseWithCause(int httpStatus, String details) { + return 'Сервер дав неправильну відповідь; Статус HTTP $httpStatus; $details'; + } + + @override + String errorRequestFailed(int httpStatus) { + return 'Помилка мережевого запиту: статус HTTP $httpStatus'; + } + + @override + String get errorVideoPlayerFailed => 'Неможливо відтворити відео'; + + @override + String get serverUrlValidationErrorEmpty => 'Будь ласка, введіть URL.'; + + @override + String get serverUrlValidationErrorInvalidUrl => 'Введіть дійсну URL-адресу.'; + + @override + String get serverUrlValidationErrorNoUseEmail => 'Введіть URL-адресу сервера, а не свою електронну адресу.'; + + @override + String get serverUrlValidationErrorUnsupportedScheme => 'URL-адреса сервера має починатися з http:// або https://.'; + + @override + String get spoilerDefaultHeaderText => 'Спойлер'; + + @override + String get markAllAsReadLabel => 'Позначити всі повідомлення як прочитані'; + + @override + String markAsReadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num повідомлення', + one: '1 повідомлення', + ); + return 'Позначено як прочитані $_temp0.'; + } + + @override + String get markAsReadInProgress => 'Позначення повідомлень як прочитаних…'; + + @override + String get errorMarkAsReadFailedTitle => 'Не вдалося позначити як прочитане'; + + @override + String markAsUnreadComplete(int num) { + String _temp0 = intl.Intl.pluralLogic( + num, + locale: localeName, + other: '$num повідомлення', + one: '1 повідомлення', + ); + return 'Позначено як непрочитані $_temp0.'; + } + + @override + String get markAsUnreadInProgress => 'Позначення повідомлень як непрочитаних…'; + + @override + String get errorMarkAsUnreadFailedTitle => 'Не вдалося позначити як непрочитане'; + + @override + String get today => 'Сьогодні'; + + @override + String get yesterday => 'Учора'; + + @override + String get userRoleOwner => 'Власник'; + + @override + String get userRoleAdministrator => 'Адміністратор'; + + @override + String get userRoleModerator => 'Модератор'; + + @override + String get userRoleMember => 'Учасник'; + + @override + String get userRoleGuest => 'Гість'; + + @override + String get userRoleUnknown => 'Невідомо'; + + @override + String get inboxPageTitle => 'Вхідні'; + + @override + String get recentDmConversationsPageTitle => 'Особисті повідомлення'; + + @override + String get recentDmConversationsSectionHeader => 'Особисті повідомлення'; + + @override + String get combinedFeedPageTitle => 'Комбінована стрічка'; + + @override + String get mentionsPageTitle => 'Згадки'; + + @override + String get starredMessagesPageTitle => 'Повідомлення, позначені зірочкою'; + + @override + String get channelsPageTitle => 'Канали'; + + @override + String get mainMenuMyProfile => 'Мій профіль'; + + @override + String get channelFeedButtonTooltip => 'Стрічка каналу'; + + @override + String notifGroupDmConversationLabel(String senderFullName, int numOthers) { + String _temp0 = intl.Intl.pluralLogic( + numOthers, + locale: localeName, + other: '$numOthers іншим', + one: '1 іншому', + ); + return '$senderFullName вам і $_temp0'; + } + + @override + String get pinnedSubscriptionsLabel => 'Закріплені'; + + @override + String get unpinnedSubscriptionsLabel => 'Відкріплені'; + + @override + String get subscriptionListNoChannels => 'Канали не знайдено'; + + @override + String get notifSelfUser => 'Ви'; + + @override + String get reactedEmojiSelfUser => 'Ви'; + + @override + String onePersonTyping(String typist) { + return '$typist друкує…'; + } + + @override + String twoPeopleTyping(String typist, String otherTypist) { + return '$typist і $otherTypist друкують…'; + } + + @override + String get manyPeopleTyping => 'Кілька людей друкують…'; + + @override + String get wildcardMentionAll => 'усі'; + + @override + String get wildcardMentionEveryone => 'усі'; + + @override + String get wildcardMentionChannel => 'канал'; + + @override + String get wildcardMentionStream => 'канал'; + + @override + String get wildcardMentionTopic => 'тема'; + + @override + String get wildcardMentionChannelDescription => 'Повідомити канал'; + + @override + String get wildcardMentionStreamDescription => 'Повідомити канал'; + + @override + String get wildcardMentionAllDmDescription => 'Повідомити одержувачів'; + + @override + String get wildcardMentionTopicDescription => 'Повідомити канал'; + + @override + String get messageIsEditedLabel => 'РЕДАГОВАНО'; + + @override + String get messageIsMovedLabel => 'ПЕРЕМІЩЕНО'; + + @override + String pollVoterNames(String voterNames) { + return '($voterNames)'; + } + + @override + String get themeSettingTitle => 'ТЕМА'; + + @override + String get themeSettingDark => 'Темна'; + + @override + String get themeSettingLight => 'Світла'; + + @override + String get themeSettingSystem => 'Системна'; + + @override + String get openLinksWithInAppBrowser => 'Відкривати посилання за допомогою браузера додатку'; + + @override + String get pollWidgetQuestionMissing => 'Немає питання.'; + + @override + String get pollWidgetOptionsMissing => 'У цьому опитуванні ще немає варіантів.'; + + @override + String get experimentalFeatureSettingsPageTitle => 'Експериментальні функції'; + + @override + String get experimentalFeatureSettingsWarning => 'Ці опції вмикають функції, які ще розробляються та не готові. Вони можуть не працювати та викликати проблеми в інших місцях додатку.\n\nМетою цих налаштувань є експериментування людьми, що працюють над розробкою Zulip.'; + + @override + String get errorNotificationOpenTitle => 'Не вдалося відкрити сповіщення'; + + @override + String get errorNotificationOpenAccountMissing => 'Обліковий запис, пов’язаний із цим сповіщенням, більше не існує.'; + + @override + String get errorReactionAddingFailedTitle => 'Не вдалося додати реакцію'; + + @override + String get errorReactionRemovingFailedTitle => 'Не вдалося видалити реакцію'; + + @override + String get emojiReactionsMore => 'більше'; + + @override + String get emojiPickerSearchEmoji => 'Пошук емодзі'; + + @override + String get noEarlierMessages => 'Немає попередніх повідомлень'; + + @override + String get scrollToBottomTooltip => 'Прокрутити вниз'; + + @override + String get appVersionUnknownPlaceholder => '(…)'; + + @override + String get zulipAppTitle => 'Zulip'; +}