Tests / test (push) Canceled after 0s
Build Android (FCM) / build-android-fcm (push) Canceled after 0s
Build Android / build-android (push) Canceled after 0s
Build iOS / build-ios (push) Canceled after 0s
Build Linux / build-linux (push) Canceled after 0s
Build macOS / build-macos (push) Canceled after 0s
Build Windows / build-windows (push) Canceled after 0s
Native crypto / native-crypto (push) Canceled after 0s
Release (main) / android (oneme) (push) Canceled after 0s
Release (main) / android (qlyra) (push) Canceled after 0s
Release (main) / windows (push) Canceled after 0s
Release (main) / linux (push) Canceled after 0s
Release (main) / macos (push) Canceled after 0s
Release (main) / ios (push) Canceled after 0s
Release (main) / release (push) Canceled after 0s
Adapt video editing, decrypted message actions, custom themes and gestures from PR 166. Track visible server presence per session and preserve delivery for invisible clients.
6607 lines
194 KiB
Dart
6607 lines
194 KiB
Dart
// ignore: unused_import
|
||
import 'package:intl/intl.dart' as intl;
|
||
import 'app_localizations.dart';
|
||
|
||
// ignore_for_file: type=lint
|
||
|
||
/// The translations for Russian (`ru`).
|
||
class AppLocalizationsRu extends AppLocalizations {
|
||
AppLocalizationsRu([String locale = 'ru']) : super(locale);
|
||
|
||
@override
|
||
String get phonebookSectionTitle => 'Контакты телефона';
|
||
|
||
@override
|
||
String get phonebookLongPressHint =>
|
||
'Удерживайте контакт, чтобы добавить его в ИКАР';
|
||
|
||
@override
|
||
String get phonebookAddToMax => 'Добавить в ИКАР';
|
||
|
||
@override
|
||
String get contactsSearchHint => 'Поиск по контактам';
|
||
|
||
@override
|
||
String get contactsSearchEmpty => 'Ничего не найдено';
|
||
|
||
@override
|
||
String get contactsSearchClear => 'Очистить поиск';
|
||
|
||
@override
|
||
String get contactsEmpty => 'В ИКАР пока нет контактов';
|
||
|
||
@override
|
||
String get contactsLoadFailed =>
|
||
'Не удалось загрузить контакты ИКАР. Нажмите «Обновить», чтобы повторить.';
|
||
|
||
@override
|
||
String get phonebookPermission =>
|
||
'Разрешите доступ к контактам телефона и нажмите «Обновить».';
|
||
|
||
@override
|
||
String get phonebookCheckFailed =>
|
||
'Не удалось проверить контакты в ИКАР. Проверьте соединение и нажмите «Обновить».';
|
||
|
||
@override
|
||
String get phonebookEmpty =>
|
||
'В телефонной книге не найдены контакты с аккаунтом ИКАР';
|
||
|
||
@override
|
||
String get phonebookRefresh => 'Обновить';
|
||
|
||
@override
|
||
String get phonebookLookupNotice =>
|
||
'Контакты телефона в ИКАР. Неизвестные номера передаются в ИКАР для поиска; имена из телефонной книги остаются на устройстве.';
|
||
|
||
@override
|
||
String get loginTitle => 'Войдите в ИКАР';
|
||
|
||
@override
|
||
String get loginSubtitle =>
|
||
'Проверьте код страны и введите свой\nномер телефона.';
|
||
|
||
@override
|
||
String get loginCountry => 'Страна';
|
||
|
||
@override
|
||
String get loginPhoneNumber => 'Номер телефона';
|
||
|
||
@override
|
||
String get loginOtherSignInMethods => 'Другие способы входа';
|
||
|
||
@override
|
||
String get loginTermsIntro => 'Продолжая, вы соглашаетесь с \n';
|
||
|
||
@override
|
||
String get loginTermsLink => 'пользовательскими соглашениями';
|
||
|
||
@override
|
||
String get loginTermsOfUse => 'Условия использования';
|
||
|
||
@override
|
||
String get loginConfirmPhoneTitle => 'Это правильный номер?';
|
||
|
||
@override
|
||
String get loginEdit => 'Изменить';
|
||
|
||
@override
|
||
String get loginDone => 'Готово';
|
||
|
||
@override
|
||
String get loginSpoofRedacted => 'Подмена данных';
|
||
|
||
@override
|
||
String get loginProxy => 'Прокси';
|
||
|
||
@override
|
||
String get loginChangeServer => 'Смена сервера';
|
||
|
||
@override
|
||
String get serverSettingsTitle => 'Сервер';
|
||
|
||
@override
|
||
String get serverHostLabel => 'Хост';
|
||
|
||
@override
|
||
String get serverPortLabel => 'Порт';
|
||
|
||
@override
|
||
String get serverTrustMincifryTitle => 'Доверять сертификату Минцифры';
|
||
|
||
@override
|
||
String get serverTrustMincifrySubtitle =>
|
||
'Нужно для api2.oneme.ru: его сертификат выпущен под корнем Russian Trusted Root CA, которого нет в обычном хранилище. Корень зашит в приложение, остальные хосты проверяются как раньше.';
|
||
|
||
@override
|
||
String get serverApply => 'Применить и переподключиться';
|
||
|
||
@override
|
||
String get serverUseDefault => 'Сбросить к умолчанию';
|
||
|
||
@override
|
||
String get serverInvalidHostOrPort =>
|
||
'Укажите корректный хост и порт (1–65535)';
|
||
|
||
@override
|
||
String get serverSettingsSaved => 'Настройки сервера применены';
|
||
|
||
@override
|
||
String get serverReconnectFailed => 'Не удалось подключиться к серверу';
|
||
|
||
@override
|
||
String get loginSignInWithQr => 'По QR code';
|
||
|
||
@override
|
||
String get loginSignInWithToken => 'По токену';
|
||
|
||
@override
|
||
String get tokenLoginTitle => 'Вход по токену';
|
||
|
||
@override
|
||
String get tokenLoginTokenLabel => 'Токен';
|
||
|
||
@override
|
||
String get tokenLoginNote =>
|
||
'Вход по токену работает только со спуфом. Укажите данные устройства, к которому привязан токен, в противном случае он может быть отозван.';
|
||
|
||
@override
|
||
String get tokenLoginButton => 'Войти';
|
||
|
||
@override
|
||
String get tokenLoginError =>
|
||
'Заполните токен, имя устройства, версию ОС и Device ID';
|
||
|
||
@override
|
||
String get tokenLoginFailed => 'Не удалось войти';
|
||
|
||
@override
|
||
String get loginSignInWithSessionFile => 'По файлу сессии';
|
||
|
||
@override
|
||
String get loginLanguage => 'Язык';
|
||
|
||
@override
|
||
String get languageNameRu => 'Русский';
|
||
|
||
@override
|
||
String get languageNameEn => 'English';
|
||
|
||
@override
|
||
String get selectCountryTitle => 'Выберите страну';
|
||
|
||
@override
|
||
String get selectCountrySearchHint => 'Поиск страны…';
|
||
|
||
@override
|
||
String get codeConfirmationSmsSent =>
|
||
'Мы отправили SMS с кодом подтверждения на ваш номер телефона.';
|
||
|
||
@override
|
||
String codeResendInSeconds(int seconds) {
|
||
return 'Отправить повторно через $seconds сек.';
|
||
}
|
||
|
||
@override
|
||
String get codeResendSms => 'Отправить код по SMS';
|
||
|
||
@override
|
||
String get codeError2faMissing => 'Ошибка: отсутствуют данные для 2FA';
|
||
|
||
@override
|
||
String get codeConfirmation2faWarning =>
|
||
'Вход подтверждается ключом устройства. Существующий аккаунт открывается на привязанном устройстве.';
|
||
|
||
@override
|
||
String get proxySettingsTitle => 'Прокси';
|
||
|
||
@override
|
||
String get proxyTypeNone => 'Выключен';
|
||
|
||
@override
|
||
String get proxyTypeSocks5 => 'SOCKS5';
|
||
|
||
@override
|
||
String get proxyTypeHttp => 'HTTP(S)';
|
||
|
||
@override
|
||
String get proxyHostLabel => 'Хост прокси';
|
||
|
||
@override
|
||
String get proxyPortLabel => 'Порт прокси';
|
||
|
||
@override
|
||
String get proxyUsernameLabel => 'Логин (необязательно)';
|
||
|
||
@override
|
||
String get proxyPasswordLabel => 'Пароль (необязательно)';
|
||
|
||
@override
|
||
String get proxyApply => 'Применить и переподключиться';
|
||
|
||
@override
|
||
String get proxyDisable => 'Отключить прокси';
|
||
|
||
@override
|
||
String get proxySettingsSaved => 'Настройки прокси применены';
|
||
|
||
@override
|
||
String get proxyInvalidHostOrPort =>
|
||
'Укажите корректный хост и порт прокси (1–65535)';
|
||
|
||
@override
|
||
String get spoofScreenTitle => 'Подмена данных сессии';
|
||
|
||
@override
|
||
String get spoofEnableTitle => 'Подмена устройства';
|
||
|
||
@override
|
||
String get spoofEnableSubtitleOn => 'Включена для этого аккаунта';
|
||
|
||
@override
|
||
String get spoofEnableSubtitleOff =>
|
||
'Выключена. Используется реальное устройство';
|
||
|
||
@override
|
||
String get spoofInfoHint =>
|
||
'Нажмите \"Сгенерировать\":\n• Короткое нажатие: случайный пресет.\n• Длинное нажатие: реальные данные.';
|
||
|
||
@override
|
||
String get spoofMethodTitle => 'Метод подмены';
|
||
|
||
@override
|
||
String get spoofMethodPartial => 'Частичный';
|
||
|
||
@override
|
||
String get spoofMethodFull => 'Полный';
|
||
|
||
@override
|
||
String get spoofMethodPartialDescription =>
|
||
'Рекомендуемый метод. Используются случайные данные, но ваш реальный часовой пояс и локаль остаются настоящими для правдоподобности.';
|
||
|
||
@override
|
||
String get spoofMethodFullDescription =>
|
||
'Все данные генерируются случайно. Будьте осторожны.';
|
||
|
||
@override
|
||
String get spoofDeviceTypeTitle => 'Тип устройства';
|
||
|
||
@override
|
||
String get spoofDeviceTypeDescription =>
|
||
'Определяет, какие устройства генерируются: Android или iOS';
|
||
|
||
@override
|
||
String get spoofDeviceTypeLabel => 'Тип устройства';
|
||
|
||
@override
|
||
String get spoofMainSectionTitle => 'Основные данные';
|
||
|
||
@override
|
||
String get spoofFieldDeviceName => 'Имя устройства';
|
||
|
||
@override
|
||
String get spoofFieldOsVersion => 'Версия ОС';
|
||
|
||
@override
|
||
String get spoofRegionalSectionTitle => 'Региональные данные';
|
||
|
||
@override
|
||
String get spoofFieldScreen => 'Разрешение экрана';
|
||
|
||
@override
|
||
String get spoofFieldTimezone => 'Часовой пояс';
|
||
|
||
@override
|
||
String get spoofFieldLocale => 'Локаль';
|
||
|
||
@override
|
||
String get spoofFieldDeviceLocale => 'Системная локаль (производная)';
|
||
|
||
@override
|
||
String get spoofIdentifiersSectionTitle => 'Идентификаторы';
|
||
|
||
@override
|
||
String get spoofIdentifiersDescription =>
|
||
'mt_instanceid и clientSessionId генерируются автоматически при каждом запуске приложения. Изменить можно только Device ID.';
|
||
|
||
@override
|
||
String get spoofFieldInstanceId => 'mt_instanceid';
|
||
|
||
@override
|
||
String get spoofFieldClientSessionId => 'clientSessionId';
|
||
|
||
@override
|
||
String get spoofFieldPushDeviceType => 'Тип push-уведомлений';
|
||
|
||
@override
|
||
String get spoofFieldDeviceId => 'ID Устройства';
|
||
|
||
@override
|
||
String get spoofRegenerateIdTooltip => 'Сгенерировать новый ID';
|
||
|
||
@override
|
||
String get spoofFieldAppVersion => 'Версия приложения';
|
||
|
||
@override
|
||
String get spoofFieldBuildNumber => 'Build Number';
|
||
|
||
@override
|
||
String get spoofFieldArchitecture => 'Архитектура';
|
||
|
||
@override
|
||
String get spoofButtonGenerate => 'Сгенерировать';
|
||
|
||
@override
|
||
String get spoofButtonApply => 'Применить';
|
||
|
||
@override
|
||
String get spoofDialogUnsureTitle => 'Уверен?';
|
||
|
||
@override
|
||
String get spoofDialogUnsureContent =>
|
||
'Приложение может начать работать нестабильно из-за несовместимости API';
|
||
|
||
@override
|
||
String get spoofDialogCancel => 'Отмена';
|
||
|
||
@override
|
||
String get spoofDialogYes => 'Да';
|
||
|
||
@override
|
||
String get spoofDialogApplyTitle => 'Применить настройки?';
|
||
|
||
@override
|
||
String get spoofDialogApplyContent => 'Нужно перезайти в приложение, ок?';
|
||
|
||
@override
|
||
String get spoofDialogApplyWarning => 'Ваш спуф изменится сразу. 😜';
|
||
|
||
@override
|
||
String get spoofDialogReloginTitle => 'Готово!';
|
||
|
||
@override
|
||
String get spoofDialogReloginContent =>
|
||
'Ваш спуф изменён, но в списке устройств видны изменения только при перезаходе в аккаунт.';
|
||
|
||
@override
|
||
String get spoofDialogReloginWarning => 'Перезайти сейчас?';
|
||
|
||
@override
|
||
String get spoofDialogReloginDeny => 'Позже';
|
||
|
||
@override
|
||
String get spoofDialogReloginConfirm => 'Перелогиниться сейчас';
|
||
|
||
@override
|
||
String get spoofDialogApplyDeny => 'Не';
|
||
|
||
@override
|
||
String get spoofDialogApplyConfirm => 'Ок!';
|
||
|
||
@override
|
||
String spoofErrorApplyFailed(String error) {
|
||
return 'Ошибка при применении настроек: $error';
|
||
}
|
||
|
||
@override
|
||
String get profileMenuSpoof => 'Подмена данных';
|
||
|
||
@override
|
||
String get infoTitle => 'Info';
|
||
|
||
@override
|
||
String get infoAccountSection => 'Аккаунт';
|
||
|
||
@override
|
||
String get infoPacketSection => 'Пакет входа';
|
||
|
||
@override
|
||
String get infoChatsSection => 'Чаты в пакете входа';
|
||
|
||
@override
|
||
String get infoChatSettingsSection => 'Настройки отдельных чатов';
|
||
|
||
@override
|
||
String get infoServerSection => 'Сервер';
|
||
|
||
@override
|
||
String get infoUserSection => 'Пользователь';
|
||
|
||
@override
|
||
String get infoExperimentsSection => 'Эксперименты';
|
||
|
||
@override
|
||
String get infoYMapSection => 'Y-Map';
|
||
|
||
@override
|
||
String get infoFileUploadTypes => 'запрещённые типы файлов';
|
||
|
||
@override
|
||
String get infoWhiteListLinks => 'безопасные ссылки';
|
||
|
||
@override
|
||
String get infoRegistrationTime => 'Дата регистрации:';
|
||
|
||
@override
|
||
String get infoCountry => 'Регион аккаунта:';
|
||
|
||
@override
|
||
String get infoVideoChatHistory => 'videoChatHistory';
|
||
|
||
@override
|
||
String get infoUpdateTime => 'Последнее обновление аватарки:';
|
||
|
||
@override
|
||
String get infoId => 'id аккаунта:';
|
||
|
||
@override
|
||
String get infoPhone => 'Телефон:';
|
||
|
||
@override
|
||
String get infoPhotoId => 'id аватарки:';
|
||
|
||
@override
|
||
String get infoAccountStatus => 'Статус аккаунта:';
|
||
|
||
@override
|
||
String get infoContactOptions => 'Опции контакта:';
|
||
|
||
@override
|
||
String get infoProfileOptions => 'Опции профиля:';
|
||
|
||
@override
|
||
String get infoNames => 'Имена:';
|
||
|
||
@override
|
||
String get infoBaseUrl => 'Ссылка на аватарку:';
|
||
|
||
@override
|
||
String get infoBaseRawUrl => 'Исходная аватарка:';
|
||
|
||
@override
|
||
String get infoChatMarker => 'chatMarker';
|
||
|
||
@override
|
||
String get infoServerTime => 'Время сервера:';
|
||
|
||
@override
|
||
String get infoUpdates => 'Количество обновлений:';
|
||
|
||
@override
|
||
String get infoMessagesCount => 'Сообщений в пакете:';
|
||
|
||
@override
|
||
String get infoContactsCount => 'Контактов в пакете:';
|
||
|
||
@override
|
||
String get infoPresenceCount => 'Статусов присутствия:';
|
||
|
||
@override
|
||
String get infoConfigHash => 'Хеш конфигурации:';
|
||
|
||
@override
|
||
String get infoChatsCount => 'Загружено чатов:';
|
||
|
||
@override
|
||
String get infoChatsActive => 'Активных:';
|
||
|
||
@override
|
||
String get infoChatsHidden => 'Скрытых:';
|
||
|
||
@override
|
||
String get infoChatsDialogs => 'Диалогов:';
|
||
|
||
@override
|
||
String get infoChatsGroups => 'Групп:';
|
||
|
||
@override
|
||
String get infoChatsChannels => 'Каналов:';
|
||
|
||
@override
|
||
String get infoChatsUnread => 'Непрочитанных чатов:';
|
||
|
||
@override
|
||
String get infoChatsNewMessages => 'Новых сообщений:';
|
||
|
||
@override
|
||
String get infoChatsMessages => 'Сообщений в загруженных чатах:';
|
||
|
||
@override
|
||
String get infoAccountRemovalEnabled => 'Мгновенное удаление аккаунта:';
|
||
|
||
@override
|
||
String get infoImageSize => 'image-size';
|
||
|
||
@override
|
||
String get infoGce => 'gce';
|
||
|
||
@override
|
||
String get infoGcce => 'gcce';
|
||
|
||
@override
|
||
String get infoMaxMsgLength => 'макс. длина сообщения:';
|
||
|
||
@override
|
||
String get infoQuotesEnabled => 'quotes-enabled';
|
||
|
||
@override
|
||
String get infoCallsEndpoint => 'calls-endpoint';
|
||
|
||
@override
|
||
String get infoSendLocationEnabled => 'отправка гео.:';
|
||
|
||
@override
|
||
String get infoLgce => 'lgce';
|
||
|
||
@override
|
||
String get infoWud => 'wud';
|
||
|
||
@override
|
||
String get infoVideoMsgEnabled => 'Кружки:';
|
||
|
||
@override
|
||
String get infoGrse => 'grse';
|
||
|
||
@override
|
||
String get infoEditTimeout => 'Можно редактировать сообщение в течении:';
|
||
|
||
@override
|
||
String get infoImageQuality => 'image-quality';
|
||
|
||
@override
|
||
String get infoUnsafeFilesAlert => 'unsafe-files-alert';
|
||
|
||
@override
|
||
String get infoAccountNicknameEnabled => 'account-nickname-enabled';
|
||
|
||
@override
|
||
String get infoMentionsEntityNamesLimit => 'макс. кол-во упоминаний:';
|
||
|
||
@override
|
||
String get infoReactionsEnabled => 'reactions-enabled';
|
||
|
||
@override
|
||
String get infoTile => 'tile';
|
||
|
||
@override
|
||
String get infoGeocoder => 'geocoder';
|
||
|
||
@override
|
||
String get infoStatic => 'static';
|
||
|
||
@override
|
||
String get chatInfoSubscribers => 'подписчиков:';
|
||
|
||
@override
|
||
String get chatInfoInvitedBy => 'Приглашён от:';
|
||
|
||
@override
|
||
String get chatInfoLink => 'ссылка:';
|
||
|
||
@override
|
||
String get chatInfoOfficial => 'оффициальный:';
|
||
|
||
@override
|
||
String get chatInfoComments => 'комментарии:';
|
||
|
||
@override
|
||
String get commentsWrite => 'Комментировать';
|
||
|
||
@override
|
||
String get commentsTitle => 'Комментарии';
|
||
|
||
@override
|
||
String commentsCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count комментария',
|
||
many: '$count комментариев',
|
||
few: '$count комментария',
|
||
one: '$count комментарий',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get chatInfoAplus => 'подтверждён Роскомнадзором:';
|
||
|
||
@override
|
||
String get chatInfoSignAdmin => 'Подпись админов:';
|
||
|
||
@override
|
||
String get chatInfoLastChanged => 'последнее изменение:';
|
||
|
||
@override
|
||
String get chatInfoJoinTime => 'заход в канал:';
|
||
|
||
@override
|
||
String get chatInfoCreated => 'канал создан:';
|
||
|
||
@override
|
||
String get chatInfoTitle => 'Информация';
|
||
|
||
@override
|
||
String get chatInfoMembers => 'участников:';
|
||
|
||
@override
|
||
String get chatInfoLastSeen => 'был(а) недавно';
|
||
|
||
@override
|
||
String get chatInfoHasBots => 'Есть боты:';
|
||
|
||
@override
|
||
String get chatInfoBlockedCount => 'в ЧС группы:';
|
||
|
||
@override
|
||
String get chatInfoOfficialStatus => 'Официальный статус:';
|
||
|
||
@override
|
||
String get chatInfoJoined => 'Зашли в:';
|
||
|
||
@override
|
||
String get chatInfoGroupCreated => 'Группа создана в:';
|
||
|
||
@override
|
||
String get chatInfoGroupOwner => 'Создатель группы:';
|
||
|
||
@override
|
||
String get chatInfoDialogStarted => 'ЛС начат в:';
|
||
|
||
@override
|
||
String get editProfileTitle => 'Редактирование профиля';
|
||
|
||
@override
|
||
String get editProfileSave => 'Сохранить';
|
||
|
||
@override
|
||
String get editProfileFirstName => 'Имя';
|
||
|
||
@override
|
||
String get editProfileLastName => 'Фамилия';
|
||
|
||
@override
|
||
String get editProfileBio => 'О себе';
|
||
|
||
@override
|
||
String get editProfileRemovePhoto => 'Удалить фото';
|
||
|
||
@override
|
||
String get registrationTitle => 'Создание профиля';
|
||
|
||
@override
|
||
String get registrationSubtitle => 'Укажите имя и выберите аватар';
|
||
|
||
@override
|
||
String get registrationChooseAvatar => 'Выберите аватар';
|
||
|
||
@override
|
||
String get msgActionsCopy => 'Копировать';
|
||
|
||
@override
|
||
String get msgActionsSelectAll => 'Выбрать всё';
|
||
|
||
@override
|
||
String get emojiSearchHint => 'Поиск эмодзи';
|
||
|
||
@override
|
||
String get msgActionsEdit => 'Изменить';
|
||
|
||
@override
|
||
String get msgActionsReply => 'Ответить';
|
||
|
||
@override
|
||
String get msgActionsForward => 'Переслать';
|
||
|
||
@override
|
||
String get msgActionsTranscribeVoice => 'Расшифровка голосового сообщения';
|
||
|
||
@override
|
||
String get msgActionsHideTranscription => 'Скрыть расшифровку';
|
||
|
||
@override
|
||
String get msgActionsMarkUnread => 'Непрочитанное';
|
||
|
||
@override
|
||
String get msgActionsPin => 'Закрепить';
|
||
|
||
@override
|
||
String get msgActionsUnpin => 'Открепить';
|
||
|
||
@override
|
||
String get pinnedMessageTitle => 'Закреплённое сообщение';
|
||
|
||
@override
|
||
String get msgActionsEditHistory => 'История изменений';
|
||
|
||
@override
|
||
String get msgActionsInfo => 'Info';
|
||
|
||
@override
|
||
String get msgActionsReadBy => 'Кем прочитано';
|
||
|
||
@override
|
||
String get msgActionsReadByEmpty => 'Пока никто не прочитал';
|
||
|
||
@override
|
||
String get msgActionsReadByUnknownUser => 'Пользователь';
|
||
|
||
@override
|
||
String get msgActionsReport => 'Пожаловаться';
|
||
|
||
@override
|
||
String get msgActionsDelete => 'Удалить';
|
||
|
||
@override
|
||
String get msgActionsCopied => 'Скопировано';
|
||
|
||
@override
|
||
String get msgActionsLoadReasonsFailed => 'Не удалось загрузить причины';
|
||
|
||
@override
|
||
String get msgActionsCurrentVersion => 'текущая версия';
|
||
|
||
@override
|
||
String msgActionsCurrentVersionWithDate(String date) {
|
||
return 'текущая версия · $date';
|
||
}
|
||
|
||
@override
|
||
String get msgActionsNoText => '(без текста)';
|
||
|
||
@override
|
||
String notificationsSaveFailed(String error) {
|
||
return 'Не удалось сохранить: $error';
|
||
}
|
||
|
||
@override
|
||
String get notificationsFkmAlreadyHasFcm => 'А зачем? У тебя уже FCM.';
|
||
|
||
@override
|
||
String get notificationsFkmIosUnsupported =>
|
||
'На iOS пуш-уведомления пока недоступны';
|
||
|
||
@override
|
||
String get notificationsTitle => 'Уведомления';
|
||
|
||
@override
|
||
String get notificationsFkmSectionTitle => 'FKM';
|
||
|
||
@override
|
||
String get notificationsFkmEnableLabel => 'Включить уведомления';
|
||
|
||
@override
|
||
String get notificationsFkmEnableSubtitle =>
|
||
'Для работы FKM уведомлений, приложению понадобится держать уведомление в шторке.';
|
||
|
||
@override
|
||
String get notificationsFkmUnsupported => 'FKM работает только на Android';
|
||
|
||
@override
|
||
String get notificationsFkmBatteryAction => 'Настроить';
|
||
|
||
@override
|
||
String get notificationsFkmBatteryMessage =>
|
||
'Иначе система усыпит фоновое соединение, и уведомления начнут опаздывать или пропадать.';
|
||
|
||
@override
|
||
String get notificationsFkmBatteryTitle => 'Отключить экономию батареи?';
|
||
|
||
@override
|
||
String get notificationsFkmPermissionDenied =>
|
||
'Для уведомлений требуется разрешение Android';
|
||
|
||
@override
|
||
String get notificationsCallPermissionTitle =>
|
||
'Разрешить полноэкранные входящие звонки?';
|
||
|
||
@override
|
||
String get notificationsCallPermissionMessage =>
|
||
'Android требует отдельное разрешение для показа входящего звонка поверх экрана блокировки. Системные настройки откроются только после подтверждения.';
|
||
|
||
@override
|
||
String get notificationsCallPermissionAction => 'Открыть настройки';
|
||
|
||
@override
|
||
String get notificationsFkmConfirmAction => 'Включить FKM';
|
||
|
||
@override
|
||
String get notificationsFkmConfirmMessage =>
|
||
'Уведомления начнут приходить через собственное фоновое соединение, а в шторке будет постоянно висеть уведомление сервиса. Выключить FKM можно прямо в нём.';
|
||
|
||
@override
|
||
String get notificationsMainSectionTitle => 'Уведомления';
|
||
|
||
@override
|
||
String get notificationsAllLabel => 'Все уведомления';
|
||
|
||
@override
|
||
String get notificationsNewSectionTitle => 'Все новые уведомления';
|
||
|
||
@override
|
||
String get notificationsPreviewLabel => 'Предпросмотр сообщений';
|
||
|
||
@override
|
||
String get notificationsSoundLabel => 'Звук';
|
||
|
||
@override
|
||
String get notificationsAdditionalSectionTitle => 'Дополнительно';
|
||
|
||
@override
|
||
String get notificationsCallsLabel => 'Уведомления о звонках';
|
||
|
||
@override
|
||
String get notificationsNewContactsLabel => 'Уведомления от новых контактов';
|
||
|
||
@override
|
||
String get notificationsHapticsSectionTitle => 'Тактильная отдача';
|
||
|
||
@override
|
||
String get notificationsHapticsLabel => 'Тактильная отдача';
|
||
|
||
@override
|
||
String get notificationsHapticsSubtitle =>
|
||
'Виброотклик при действиях в приложении';
|
||
|
||
@override
|
||
String devicesLoadFailed(String error) {
|
||
return 'Ошибка загрузки: $error';
|
||
}
|
||
|
||
@override
|
||
String get devicesQrLinkDialogTitle => 'Ссылка из QR';
|
||
|
||
@override
|
||
String get devicesQrLinkDialogHint => 'Вставьте содержимое QR-кода';
|
||
|
||
@override
|
||
String get devicesAllTerminated => 'Все сессии завершены';
|
||
|
||
@override
|
||
String devicesGenericError(String error) {
|
||
return 'Ошибка: $error';
|
||
}
|
||
|
||
@override
|
||
String devicesIpLookupError(String error) {
|
||
return 'Ошибка IP: $error';
|
||
}
|
||
|
||
@override
|
||
String get devicesIpLookupConfirmTitle => 'Проверить IP-адрес?';
|
||
|
||
@override
|
||
String devicesIpLookupConfirmMessage(String ip, String provider) {
|
||
return 'IP-адрес $ip будет передан стороннему сервису $provider для определения примерного местоположения и сети.';
|
||
}
|
||
|
||
@override
|
||
String get devicesIpLookupConfirmAction => 'Продолжить';
|
||
|
||
@override
|
||
String get devicesIpLookupCancelAction => 'Отмена';
|
||
|
||
@override
|
||
String get updateIntegrityFailed =>
|
||
'Обновление отклонено: размер, SHA-256, package ID или подпись APK не прошли проверку';
|
||
|
||
@override
|
||
String get devicesTitle => 'Устройства';
|
||
|
||
@override
|
||
String get devicesPromoTitle => 'Устройства в ИКАР';
|
||
|
||
@override
|
||
String get devicesPromoSubtitle => 'Кто имеет доступ к вашему аккаунту?';
|
||
|
||
@override
|
||
String get devicesScanQrButton => 'Сканировать QR';
|
||
|
||
@override
|
||
String get devicesCurrentSuffix => ' (текущая)';
|
||
|
||
@override
|
||
String get devicesOnlineStatus => 'В сети';
|
||
|
||
@override
|
||
String get devicesTerminateOthersButton =>
|
||
'Завершить все сессии, кроме текущей';
|
||
|
||
@override
|
||
String get devicesMobileNetworkLabel => 'Мобильная сеть';
|
||
|
||
@override
|
||
String get devicesProxyDetectedLabel => 'Обнаружен прокси/VPN';
|
||
|
||
@override
|
||
String get themeSettingsTitle => 'Тема';
|
||
|
||
@override
|
||
String get themeSettingsModeCardTitle => 'Режим темы';
|
||
|
||
@override
|
||
String get themeSettingsModeCardSubtitle =>
|
||
'Светлая, тёмная или авто-переключение';
|
||
|
||
@override
|
||
String get themeSettingsModeSystem => 'Системная';
|
||
|
||
@override
|
||
String get themeSettingsModeLight => 'Светлая';
|
||
|
||
@override
|
||
String get themeSettingsModeDark => 'Тёмная';
|
||
|
||
@override
|
||
String get themeSettingsModeSchedule => 'По расписанию';
|
||
|
||
@override
|
||
String get themeSettingsAmoledTitle => 'AMOLED-чёрный';
|
||
|
||
@override
|
||
String get themeSettingsAmoledSubtitle =>
|
||
'Чистый чёрный фон для OLED-экранов';
|
||
|
||
@override
|
||
String get themeSettingsScheduleTitle => 'Расписание';
|
||
|
||
@override
|
||
String get themeSettingsScheduleSubtitleEnabled =>
|
||
'Когда автоматически включается тёмная тема';
|
||
|
||
@override
|
||
String get themeSettingsScheduleSubtitleDisabled =>
|
||
'Доступно в режиме «По расписанию»';
|
||
|
||
@override
|
||
String get themeSettingsScheduleDarkFrom => 'Тёмная с';
|
||
|
||
@override
|
||
String get themeSettingsScheduleLightFrom => 'Светлая с';
|
||
|
||
@override
|
||
String get appearanceTitle => 'Внешний вид';
|
||
|
||
@override
|
||
String get appearanceVisualStyleTitle => 'Визуал';
|
||
|
||
@override
|
||
String get appearanceVisualStyleSubtitle =>
|
||
'Material You или объёмные Glossy-капсулы';
|
||
|
||
@override
|
||
String get appearanceStyleAuto => 'Как в теме';
|
||
|
||
@override
|
||
String get appearanceVisualStyleMaterialYou => 'Material You';
|
||
|
||
@override
|
||
String get appearanceVisualStyleGlossy => 'Glossy';
|
||
|
||
@override
|
||
String get appearanceVisualStyleLiquidGlass => 'Liquid Glass';
|
||
|
||
@override
|
||
String get appearanceGlassMaterial => 'Стекло';
|
||
|
||
@override
|
||
String get appearanceChatChromeTitle => 'Элементы экрана чата';
|
||
|
||
@override
|
||
String get appearanceChatChromeSubtitle =>
|
||
'Фон панелей ввода и верхнего бара';
|
||
|
||
@override
|
||
String get appearanceChatChromeColor => 'Цвет';
|
||
|
||
@override
|
||
String get appearanceChatChromeBlur => 'Блюр';
|
||
|
||
@override
|
||
String get appearanceChatChromeNone => 'Нет';
|
||
|
||
@override
|
||
String get appearanceChatChromeTransparent => 'Frost blur';
|
||
|
||
@override
|
||
String get appearanceComposerTitle => 'Вид панели ввода';
|
||
|
||
@override
|
||
String get appearanceComposerSubtitle => 'Стиль и фон панели ввода сообщений';
|
||
|
||
@override
|
||
String get appearanceComposerBackgroundStandard => 'Default';
|
||
|
||
@override
|
||
String get appearanceComposerBackgroundFrost => 'Frost blur';
|
||
|
||
@override
|
||
String get appearanceNavPillTitle => 'Вид переключателей';
|
||
|
||
@override
|
||
String get appearanceNavPillSubtitle =>
|
||
'Переключатель разделов на экране чатов';
|
||
|
||
@override
|
||
String get appearanceNavPillGlossy => 'Glossy';
|
||
|
||
@override
|
||
String get appearanceNavPillFrost => 'G-FrostBlur';
|
||
|
||
@override
|
||
String get playbackPillAt => 'в';
|
||
|
||
@override
|
||
String get playbackPillYou => 'Вы';
|
||
|
||
@override
|
||
String get appearanceGradientTitle => 'Градиент';
|
||
|
||
@override
|
||
String get appearanceGradientSubtitle => 'Объём и блики в Glossy-капсулах';
|
||
|
||
@override
|
||
String get appearanceSpectrumTitle => 'Спектр на фоне';
|
||
|
||
@override
|
||
String get appearanceSpectrumSubtitle =>
|
||
'Экспериментально — живые полосы под интерфейсом';
|
||
|
||
@override
|
||
String get appearanceAccentColorTitle => 'Акцентный цвет';
|
||
|
||
@override
|
||
String get appearanceAccentColorSystem => 'Системный';
|
||
|
||
@override
|
||
String get appearanceAccentColorSubtitle =>
|
||
'Основной цвет интерфейса и пузырей';
|
||
|
||
@override
|
||
String get appearanceAccentColorSystemActive => 'Системный цвет активен';
|
||
|
||
@override
|
||
String get appearanceAccentColorReset => 'Сбросить на системный';
|
||
|
||
@override
|
||
String get appearanceBubbleShapeTitle => 'Форма сообщения';
|
||
|
||
@override
|
||
String get appearanceBubbleShapeSubtitle => 'Скругление углов пузырей';
|
||
|
||
@override
|
||
String get appearanceBubbleShapeMobile => 'TG Mobile';
|
||
|
||
@override
|
||
String get appearanceBubbleShapeDesktop => 'TG Desktop';
|
||
|
||
@override
|
||
String get appearanceBubbleBehaviorTitle => 'Поведение сообщения';
|
||
|
||
@override
|
||
String get appearanceBubbleBehaviorSubtitle =>
|
||
'Меняется ли форма пузыря по соседям в группе';
|
||
|
||
@override
|
||
String get appearanceBubbleBehaviorMutable => 'Изменяемая';
|
||
|
||
@override
|
||
String get appearanceBubbleBehaviorImmutable => 'Неизменяемая';
|
||
|
||
@override
|
||
String get appearancePreviewHello => 'Привет!';
|
||
|
||
@override
|
||
String get appearancePreviewHowIsIt => 'Как тебе?';
|
||
|
||
@override
|
||
String get appearancePreviewHmm => 'хм...';
|
||
|
||
@override
|
||
String get appearancePreviewNotBad => 'Вполне неплохо!';
|
||
|
||
@override
|
||
String get callQlyraDetectedNotification =>
|
||
'Этот человек использует ИКАР! :3';
|
||
|
||
@override
|
||
String get callStatusConnecting => 'Соединение...';
|
||
|
||
@override
|
||
String get callGroupConnecting => 'Соединение...';
|
||
|
||
@override
|
||
String get callGroupWaitingParticipants => 'Ожидание участников…';
|
||
|
||
@override
|
||
String get callLinkGroupCall => 'Групповой звонок';
|
||
|
||
@override
|
||
String get callLinkSendInMax => 'Отправить в ИКАР';
|
||
|
||
@override
|
||
String get callLinkStart => 'Начать звонок';
|
||
|
||
@override
|
||
String get callLinkSent => 'Ссылка отправлена';
|
||
|
||
@override
|
||
String get callLinkSendFailed => 'Не удалось отправить ссылку';
|
||
|
||
@override
|
||
String get callLinkCreateFailed => 'Не удалось создать звонок';
|
||
|
||
@override
|
||
String get callParticipantYou => 'Вы';
|
||
|
||
@override
|
||
String get callParticipantFallback => 'Участник';
|
||
|
||
@override
|
||
String get callTooltipMinimize => 'Свернуть';
|
||
|
||
@override
|
||
String get callTooltipExpand => 'Развернуть';
|
||
|
||
@override
|
||
String get callTooltipQlyraHub => 'ИКАР';
|
||
|
||
@override
|
||
String get callInfoTitle => 'О звонке';
|
||
|
||
@override
|
||
String get callPeerMicOff => 'Микрофон выключен';
|
||
|
||
@override
|
||
String get callPeerCameraOn => 'Камера включена';
|
||
|
||
@override
|
||
String get callUnknownName => 'Неизвестный';
|
||
|
||
@override
|
||
String get callIncoming => 'Входящий звонок';
|
||
|
||
@override
|
||
String get callStatusRinging => 'Вызов';
|
||
|
||
@override
|
||
String get callStatusEnded => 'Звонок завершён';
|
||
|
||
@override
|
||
String get callDecline => 'Отклонить';
|
||
|
||
@override
|
||
String get callAccept => 'Принять';
|
||
|
||
@override
|
||
String get callSpeaker => 'Динамик';
|
||
|
||
@override
|
||
String get callVideoLabel => 'Видео';
|
||
|
||
@override
|
||
String get callScreenLabel => 'Экран';
|
||
|
||
@override
|
||
String get callUnmute => 'Вкл. звук';
|
||
|
||
@override
|
||
String get callMute => 'Выкл. звук';
|
||
|
||
@override
|
||
String get callEndButton => 'Завершить';
|
||
|
||
@override
|
||
String callCameraUnavailable(Object error) {
|
||
return 'Камера недоступна: $error';
|
||
}
|
||
|
||
@override
|
||
String get callTooltipMicrophone => 'Микрофон';
|
||
|
||
@override
|
||
String get callMicrophoneTitle => 'Микрофон';
|
||
|
||
@override
|
||
String get callMicrophoneSystem => 'Системный по умолчанию';
|
||
|
||
@override
|
||
String get callMicrophoneEmpty => 'Микрофоны не найдены';
|
||
|
||
@override
|
||
String get callMicrophoneRefresh => 'Обновить список';
|
||
|
||
@override
|
||
String get callMicrophoneMonitors => 'Мониторы — звук системы';
|
||
|
||
@override
|
||
String callMicrophoneFallback(Object index) {
|
||
return 'Микрофон $index';
|
||
}
|
||
|
||
@override
|
||
String callMicrophoneFailed(Object error) {
|
||
return 'Не удалось переключить микрофон: $error';
|
||
}
|
||
|
||
@override
|
||
String get callMicStillLive => 'Всё равно слышно';
|
||
|
||
@override
|
||
String get callNoMuteHint =>
|
||
'--no-mute: звук идёт даже с выключенным микрофоном';
|
||
|
||
@override
|
||
String get callInfoClient => 'Клиент';
|
||
|
||
@override
|
||
String get callInfoPlatform => 'Платформа';
|
||
|
||
@override
|
||
String get callInfoCountry => 'Страна';
|
||
|
||
@override
|
||
String get callInfoInContacts => 'В контактах';
|
||
|
||
@override
|
||
String get callValueYes => 'да';
|
||
|
||
@override
|
||
String get callValueNo => 'нет';
|
||
|
||
@override
|
||
String get callInfoPeerIp => 'IP собеседника';
|
||
|
||
@override
|
||
String get callInfoPeerNetwork => 'Сеть собеседника';
|
||
|
||
@override
|
||
String get callInfoPath => 'Путь соединения';
|
||
|
||
@override
|
||
String get callInfoCodec => 'Кодек';
|
||
|
||
@override
|
||
String get callInfoServer => 'Сервер';
|
||
|
||
@override
|
||
String get callInfoTopology => 'Топология';
|
||
|
||
@override
|
||
String get callInfoStatus => 'Статус';
|
||
|
||
@override
|
||
String get callStatusValueConnected => 'соединён';
|
||
|
||
@override
|
||
String get callStatusValueConnecting => 'соединение…';
|
||
|
||
@override
|
||
String get callInfoPeerMic => 'Микрофон собеседника';
|
||
|
||
@override
|
||
String get callMicValueOn => 'включён';
|
||
|
||
@override
|
||
String get callMicValueOff => 'выключен';
|
||
|
||
@override
|
||
String get callInfoPeerCamera => 'Камера собеседника';
|
||
|
||
@override
|
||
String get callCameraValueOn => 'включена';
|
||
|
||
@override
|
||
String get callCameraValueOff => 'выключена';
|
||
|
||
@override
|
||
String get callInfoVideoTrack => 'Видео-дорожка';
|
||
|
||
@override
|
||
String callInfoVideoTrackPresent(int count) {
|
||
return 'есть ($count)';
|
||
}
|
||
|
||
@override
|
||
String get callInfoVideoSize => 'Размер видео';
|
||
|
||
@override
|
||
String get callInfoFrameRendering => 'Отрисовка кадров';
|
||
|
||
@override
|
||
String get callBadgeEncrypted => 'Зашифрован';
|
||
|
||
@override
|
||
String get callBadgeAudio => 'Аудио';
|
||
|
||
@override
|
||
String get callBadgeRecording => 'Запись';
|
||
|
||
@override
|
||
String get callBadgeNoiseSuppression => 'Шумоподавление';
|
||
|
||
@override
|
||
String get callBadgeAnimoji => 'Анимодзи';
|
||
|
||
@override
|
||
String get callInfoNoDataYet => 'Данные появятся после соединения…';
|
||
|
||
@override
|
||
String get hubTitleMenu => 'ИКАР';
|
||
|
||
@override
|
||
String get hubChatPageTitle => 'Анонимный чат';
|
||
|
||
@override
|
||
String get hubGamesTitle => 'Игры';
|
||
|
||
@override
|
||
String get hubCheckersTitle => 'Шашки';
|
||
|
||
@override
|
||
String get hubChatTileTitle => 'Чат';
|
||
|
||
@override
|
||
String get hubChatTileSubtitle => 'Анонимные сообщения';
|
||
|
||
@override
|
||
String get hubGamesTileSubtitle => 'Сыграть с собеседником';
|
||
|
||
@override
|
||
String get hubCheckersTileSubtitle => 'Шашки';
|
||
|
||
@override
|
||
String get hubMoreSoonTitle => 'Скоро ещё…';
|
||
|
||
@override
|
||
String get hubMoreSoonSubtitle => 'В разработке';
|
||
|
||
@override
|
||
String get hubChatPrivacyNote =>
|
||
'Напрямую через звонок, нигде не сохраняется';
|
||
|
||
@override
|
||
String get hubChatEmpty => 'Сообщений пока нет';
|
||
|
||
@override
|
||
String get hubChatInputHint => 'Сообщение…';
|
||
|
||
@override
|
||
String get hubCheckersRestart => 'Заново';
|
||
|
||
@override
|
||
String get hubCheckersYouWhite => 'Вы играете белыми';
|
||
|
||
@override
|
||
String get hubCheckersYouBlack => 'Вы играете чёрными';
|
||
|
||
@override
|
||
String get hubCheckersWon => 'Вы выиграли 🎉';
|
||
|
||
@override
|
||
String get hubCheckersLost => 'Вы проиграли';
|
||
|
||
@override
|
||
String get hubCheckersYourMove => 'Ваш ход';
|
||
|
||
@override
|
||
String get hubCheckersOpponentMove => 'Ход соперника…';
|
||
|
||
@override
|
||
String get scheduledPickTimeTitle => 'Когда отправить';
|
||
|
||
@override
|
||
String get scheduledEditTitle => 'Изменить';
|
||
|
||
@override
|
||
String get scheduledMessageTextHint => 'Текст сообщения';
|
||
|
||
@override
|
||
String get scheduledSave => 'Сохранить';
|
||
|
||
@override
|
||
String get scheduledEditFailed => 'Не удалось изменить сообщение';
|
||
|
||
@override
|
||
String get scheduledDeleteConfirmTitle =>
|
||
'Удалить запланированное сообщение?';
|
||
|
||
@override
|
||
String get scheduledDeleteConfirmMessage => 'Сообщение не будет отправлено.';
|
||
|
||
@override
|
||
String get scheduledDeleteConfirmLabel => 'Удалить';
|
||
|
||
@override
|
||
String get scheduledDeleteFailed => 'Не удалось удалить сообщение';
|
||
|
||
@override
|
||
String get scheduledAppBarTitle => 'Отложенные';
|
||
|
||
@override
|
||
String get scheduledEmpty => 'Нет отложенных сообщений';
|
||
|
||
@override
|
||
String get scheduledAttachPhoto => 'Фото';
|
||
|
||
@override
|
||
String get scheduledAttachVideo => 'Видео';
|
||
|
||
@override
|
||
String get scheduledAttachVoice => 'Голосовое';
|
||
|
||
@override
|
||
String get scheduledAttachFile => 'Файл';
|
||
|
||
@override
|
||
String get scheduledAttachLocation => 'Геопозиция';
|
||
|
||
@override
|
||
String get scheduledAttachForwarded => 'Переслано';
|
||
|
||
@override
|
||
String get scheduledAttachGeneric => 'Вложение';
|
||
|
||
@override
|
||
String contactProfileLoadError(String error) {
|
||
return 'Ошибка: $error';
|
||
}
|
||
|
||
@override
|
||
String get contactProfileBot => 'Бот';
|
||
|
||
@override
|
||
String get contactProfileOnline => 'В сети';
|
||
|
||
@override
|
||
String get contactProfileRecentlyActive => 'Был(-а) недавно';
|
||
|
||
@override
|
||
String get contactProfileActionChat => 'Чат';
|
||
|
||
@override
|
||
String get contactProfileActionSound => 'Звук';
|
||
|
||
@override
|
||
String get contactProfileActionCall => 'Звонок';
|
||
|
||
@override
|
||
String get contactProfileActionAddContact => 'Добавить в контакты';
|
||
|
||
@override
|
||
String get contactProfileInfoPhone => 'Телефон';
|
||
|
||
@override
|
||
String get contactProfileInfoCountry => 'Страна';
|
||
|
||
@override
|
||
String get contactProfileInfoGender => 'Пол';
|
||
|
||
@override
|
||
String get contactProfileInfoRegistration => 'Регистрация';
|
||
|
||
@override
|
||
String get contactProfileInfoUpdated => 'Обновлён';
|
||
|
||
@override
|
||
String get contactProfileInfoAccountStatus => 'Статус аккаунта';
|
||
|
||
@override
|
||
String get contactProfileInfoDescription => 'Описание';
|
||
|
||
@override
|
||
String get contactProfileInfoLink => 'Ссылка';
|
||
|
||
@override
|
||
String get contactProfileInfoFlags => 'Флаги';
|
||
|
||
@override
|
||
String nfcPeerNameFallback(String id) {
|
||
return 'Контакт #$id';
|
||
}
|
||
|
||
@override
|
||
String get nfcPeerFirstNameFallback => 'Контакт';
|
||
|
||
@override
|
||
String get nfcContactAdded => 'Контакт добавлен';
|
||
|
||
@override
|
||
String nfcAddFailed(String error) {
|
||
return 'Не удалось добавить: $error';
|
||
}
|
||
|
||
@override
|
||
String get nfcReasonBluetoothOff => 'Включите Bluetooth и попробуйте снова';
|
||
|
||
@override
|
||
String get nfcReasonPermission => 'Нужны разрешения Bluetooth для обмена';
|
||
|
||
@override
|
||
String get nfcReasonDefault => 'Не удалось установить соединение';
|
||
|
||
@override
|
||
String get nfcSheetTitle => 'Обмен контактом';
|
||
|
||
@override
|
||
String get nfcUnsupported => 'NFC недоступен на этом устройстве';
|
||
|
||
@override
|
||
String get nfcDisabled =>
|
||
'Включите NFC в настройках телефона и попробуйте снова';
|
||
|
||
@override
|
||
String get nfcScanningTitle => 'Поднесите телефоны друг к другу';
|
||
|
||
@override
|
||
String get nfcScanningSubtitle =>
|
||
'Оба устройства должны держать этот экран открытым';
|
||
|
||
@override
|
||
String get nfcExchangingTitle => 'Идёт обмен контактами…';
|
||
|
||
@override
|
||
String get nfcExchangingSubtitle => 'Почти готово';
|
||
|
||
@override
|
||
String nfcPeerIdFallback(String id) {
|
||
return 'ID $id';
|
||
}
|
||
|
||
@override
|
||
String get nfcAdded => 'Добавлено';
|
||
|
||
@override
|
||
String get nfcAddContact => 'Добавить контакт';
|
||
|
||
@override
|
||
String get chatInfoTabGeneralChats => 'Общие чаты';
|
||
|
||
@override
|
||
String get chatInfoTabMedia => 'Медиа';
|
||
|
||
@override
|
||
String get chatInfoTabFiles => 'Файлы';
|
||
|
||
@override
|
||
String get chatInfoTabVoice => 'Голосовые';
|
||
|
||
@override
|
||
String get chatInfoTabLinks => 'Ссылки';
|
||
|
||
@override
|
||
String get chatInfoTabMembers => 'Участники';
|
||
|
||
@override
|
||
String get chatInfoEmptyGeneralChats => 'Нет общих чатов';
|
||
|
||
@override
|
||
String get chatInfoEmptyMedia => 'Нет медиа';
|
||
|
||
@override
|
||
String get chatInfoEmptyFiles => 'Нет файлов';
|
||
|
||
@override
|
||
String get chatInfoEmptyVoice => 'Нет голосовых';
|
||
|
||
@override
|
||
String get chatInfoEmptyLinks => 'Нет ссылок';
|
||
|
||
@override
|
||
String chatInfoOnlineOfTotal(String online, String total) {
|
||
return '$online из $total в сети';
|
||
}
|
||
|
||
@override
|
||
String sharedMembersCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count участника',
|
||
many: '$count участников',
|
||
few: '$count участника',
|
||
one: '$count участник',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get sharedLoadMore => 'Показать ещё';
|
||
|
||
@override
|
||
String get sharedGoToMessage => 'Перейти к сообщению';
|
||
|
||
@override
|
||
String get sharedDownload => 'Скачать';
|
||
|
||
@override
|
||
String photoViewerCounter(int index, int total) {
|
||
return 'Фото $index из $total';
|
||
}
|
||
|
||
@override
|
||
String photoViewerCounterFile(int total) {
|
||
return 'ФАЙЛ из $total';
|
||
}
|
||
|
||
@override
|
||
String photoViewerSentToday(String sender, String time) {
|
||
return '$sender • сегодня в $time';
|
||
}
|
||
|
||
@override
|
||
String photoViewerSentOn(String sender, String date, String time) {
|
||
return '$sender • $date в $time';
|
||
}
|
||
|
||
@override
|
||
String get photoViewerSaveAs => 'Сохранить как…';
|
||
|
||
@override
|
||
String get photoViewerSaveToGallery => 'Сохранить в галерею';
|
||
|
||
@override
|
||
String get photoViewerViewAll => 'Все фото чата';
|
||
|
||
@override
|
||
String get photoViewerRotate => 'Повернуть';
|
||
|
||
@override
|
||
String mediaViewerCounter(int index, int total) {
|
||
return '$index из $total';
|
||
}
|
||
|
||
@override
|
||
String get mediaViewerViewAll => 'Все медиа чата';
|
||
|
||
@override
|
||
String get videoViewerSettings => 'Настройки';
|
||
|
||
@override
|
||
String get videoViewerSpeed => 'Скорость';
|
||
|
||
@override
|
||
String get videoViewerQuality => 'Качество';
|
||
|
||
@override
|
||
String get videoViewerFailed => 'Не удалось воспроизвести видео';
|
||
|
||
@override
|
||
String get videoViewerRetry => 'Повторить';
|
||
|
||
@override
|
||
String get videoViewerClose => 'Закрыть';
|
||
|
||
@override
|
||
String get sharedCopyLink => 'Копировать ссылку';
|
||
|
||
@override
|
||
String get sharedLinkCopied => 'Ссылка скопирована';
|
||
|
||
@override
|
||
String get chatInfoActionLeave => 'Покинуть';
|
||
|
||
@override
|
||
String get chatInfoActionSubscribe => 'Подписаться';
|
||
|
||
@override
|
||
String get chatInfoSubscribed => 'Вы подписались на канал';
|
||
|
||
@override
|
||
String get chatInfoSubscribeFailed => 'Не удалось подписаться на канал';
|
||
|
||
@override
|
||
String get chatInfoActionJoin => 'Вступить';
|
||
|
||
@override
|
||
String get chatInfoJoinedGroup => 'Вы вступили в группу';
|
||
|
||
@override
|
||
String get chatInfoJoinGroupFailed => 'Не удалось вступить в группу';
|
||
|
||
@override
|
||
String get chatInfoActionMuted => 'Без звука';
|
||
|
||
@override
|
||
String get chatInfoNotificationsOn => 'Уведомления включены';
|
||
|
||
@override
|
||
String get chatInfoNotificationsOff => 'Уведомления отключены';
|
||
|
||
@override
|
||
String get chatInfoMenuBlock => 'Заблокировать';
|
||
|
||
@override
|
||
String get chatInfoMenuUnblock => 'Разблокировать';
|
||
|
||
@override
|
||
String get chatInfoMenuDeleteChat => 'Удалить чат';
|
||
|
||
@override
|
||
String get chatInfoMenuClearHistory => 'Очистить историю';
|
||
|
||
@override
|
||
String get chatInfoClearHistoryTitle => 'Очистить историю';
|
||
|
||
@override
|
||
String get chatInfoClearHistoryMessage =>
|
||
'Все сообщения в этом чате будут удалены без возможности восстановления.';
|
||
|
||
@override
|
||
String get chatInfoClearHistoryForAll => 'Для всех';
|
||
|
||
@override
|
||
String get chatInfoClearHistoryConfirm => 'Очистить';
|
||
|
||
@override
|
||
String get chatInfoClearHistoryDone => 'История очищена';
|
||
|
||
@override
|
||
String get chatInfoDeleteChatTitle => 'Удалить чат';
|
||
|
||
@override
|
||
String get chatInfoDeleteChatMessage =>
|
||
'Чат будет удалён вместе со всей перепиской.';
|
||
|
||
@override
|
||
String get chatInfoDeleteChatConfirm => 'Удалить';
|
||
|
||
@override
|
||
String get chatInfoLeaveGroupTitle => 'Покинуть группу';
|
||
|
||
@override
|
||
String get chatInfoLeaveGroupMessage =>
|
||
'Вы больше не будете получать сообщения этой группы.';
|
||
|
||
@override
|
||
String get chatInfoLeaveChannelTitle => 'Покинуть канал';
|
||
|
||
@override
|
||
String get chatInfoLeaveChannelMessage =>
|
||
'Вы больше не будете получать публикации этого канала.';
|
||
|
||
@override
|
||
String get chatInfoLeaveConfirm => 'Покинуть';
|
||
|
||
@override
|
||
String get chatInfoLeaveFailed => 'Не удалось покинуть чат';
|
||
|
||
@override
|
||
String get chatInfoCallConfirmTitle => 'Начать звонок';
|
||
|
||
@override
|
||
String chatInfoCallConfirmMessage(String name) {
|
||
return 'Позвонить $name?';
|
||
}
|
||
|
||
@override
|
||
String get chatInfoConfirmYes => 'Да';
|
||
|
||
@override
|
||
String get chatInfoConfirmNo => 'Нет';
|
||
|
||
@override
|
||
String get chatInfoCallFailed => 'Не удалось начать звонок';
|
||
|
||
@override
|
||
String get chatInfoBlockConfirmTitle => 'Заблокировать';
|
||
|
||
@override
|
||
String chatInfoBlockConfirmMessage(String name) {
|
||
return 'Вы уверены, что хотите заблокировать $name?';
|
||
}
|
||
|
||
@override
|
||
String get chatInfoBlockDone => 'Пользователь заблокирован';
|
||
|
||
@override
|
||
String get chatInfoUnblockDone => 'Пользователь разблокирован';
|
||
|
||
@override
|
||
String get chatInfoBlockFailed => 'Не удалось изменить блокировку';
|
||
|
||
@override
|
||
String get chatInfoComplaintTitle => 'Пожаловаться';
|
||
|
||
@override
|
||
String get chatInfoComplaintSubtitle => 'Выберите причину жалобы';
|
||
|
||
@override
|
||
String get chatInfoComplaintSend => 'Пожаловаться';
|
||
|
||
@override
|
||
String get chatInfoComplaintClose => 'Закрыть';
|
||
|
||
@override
|
||
String get chatInfoComplaintEmpty => 'Не удалось загрузить причины жалобы';
|
||
|
||
@override
|
||
String get chatInfoComplaintSent => 'Жалоба отправлена';
|
||
|
||
@override
|
||
String get chatInfoComplaintFailed => 'Не удалось отправить жалобу';
|
||
|
||
@override
|
||
String get chatInfoActionCancel => 'Отмена';
|
||
|
||
@override
|
||
String get chatInfoBio => 'О себе';
|
||
|
||
@override
|
||
String get chatInfoInviteLink => 'Ссылка-приглашение';
|
||
|
||
@override
|
||
String get chatInfoCollapse => 'Свернуть';
|
||
|
||
@override
|
||
String get chatInfoShowMore => 'Ещё';
|
||
|
||
@override
|
||
String get chatInfoAddMember => 'Добавить участника';
|
||
|
||
@override
|
||
String get chatInfoRoleOwner => 'Владелец';
|
||
|
||
@override
|
||
String get chatInfoRoleAdmin => 'Админ';
|
||
|
||
@override
|
||
String get chatInfoMemberDeleted => 'Аккаунт удалён';
|
||
|
||
@override
|
||
String get chatInfoInviteByLink => 'Пригласить по ссылке';
|
||
|
||
@override
|
||
String get chatInfoInviteLinkHint =>
|
||
'Вы можете пригласить любого человека по этой ссылке';
|
||
|
||
@override
|
||
String get chatInfoAddMembersAction => 'Добавить';
|
||
|
||
@override
|
||
String get chatInfoMembersSearchHint => 'Поиск';
|
||
|
||
@override
|
||
String get chatInfoAddMembersEmpty => 'Некого добавить';
|
||
|
||
@override
|
||
String get chatInfoMembersAdded => 'Участники добавлены';
|
||
|
||
@override
|
||
String get chatInfoAddMembersError => 'Не удалось добавить участников';
|
||
|
||
@override
|
||
String get chatInfoNoData => 'Нет данных';
|
||
|
||
@override
|
||
String get chatInfoHideExtra => 'Скрыть';
|
||
|
||
@override
|
||
String get chatInfoShowMoreExtra => 'Подробнее';
|
||
|
||
@override
|
||
String get chatSendConfirmMessage => 'Отправить это сообщение в чат?';
|
||
|
||
@override
|
||
String get chatSendConfirmAction => 'Отправить';
|
||
|
||
@override
|
||
String get chatInfoRowDisableForward => 'Пересылка запрещена';
|
||
|
||
@override
|
||
String get chatInfoRowCopyDisabled => 'Копирование запрещено';
|
||
|
||
@override
|
||
String get chatInfoRowOnlyAdminCall => 'Звонить могут админы';
|
||
|
||
@override
|
||
String get chatInfoRowAllCanPin => 'Все могут закреплять';
|
||
|
||
@override
|
||
String get chatInfoRowMembersSeeLink => 'Ссылка видна участникам';
|
||
|
||
@override
|
||
String get chatInfoRowConfirmBeforeSend => 'Подтверждать отправку';
|
||
|
||
@override
|
||
String get chatInfoRowOnlyOwnerIconTitle => 'Название меняет владелец';
|
||
|
||
@override
|
||
String get chatInfoRowPromotedDisabled => 'Реклама отключена';
|
||
|
||
@override
|
||
String get chatInfoRowUserId => 'ID пользователя';
|
||
|
||
@override
|
||
String get chatInfoRowId => 'ID чата';
|
||
|
||
@override
|
||
String get chatInfoRowCreated => 'Создан';
|
||
|
||
@override
|
||
String get chatInfoRowModified => 'Изменён';
|
||
|
||
@override
|
||
String get chatInfoRowMembersCount => 'Участников';
|
||
|
||
@override
|
||
String get chatInfoRowOwner => 'Владелец';
|
||
|
||
@override
|
||
String get chatInfoRowCreatedGroup => 'Создана';
|
||
|
||
@override
|
||
String get chatInfoRowJoined => 'Вступил';
|
||
|
||
@override
|
||
String get chatInfoRowModifiedGroup => 'Изменена';
|
||
|
||
@override
|
||
String get chatInfoRowHasBots => 'Есть боты';
|
||
|
||
@override
|
||
String get chatInfoRowBlockedCount => 'Заблокировано';
|
||
|
||
@override
|
||
String get chatInfoRowOfficialGroup => 'Официальная';
|
||
|
||
@override
|
||
String get chatInfoRowSignAdmin => 'Подпись адм.';
|
||
|
||
@override
|
||
String get chatInfoRowSubscribersCount => 'Подписчиков';
|
||
|
||
@override
|
||
String get chatInfoRowOfficialChannel => 'Официальный';
|
||
|
||
@override
|
||
String get chatInfoRowComments => 'Комментарии';
|
||
|
||
@override
|
||
String get chatInfoRowRkn => 'РКН';
|
||
|
||
@override
|
||
String get chatInfoRowOnlyAdmin => 'Только адм.';
|
||
|
||
@override
|
||
String get securityTitle => 'Безопасность';
|
||
|
||
@override
|
||
String securityLoadError(String error) {
|
||
return 'Ошибка загрузки: $error';
|
||
}
|
||
|
||
@override
|
||
String securitySaveError(String error) {
|
||
return 'Ошибка сохранения: $error';
|
||
}
|
||
|
||
@override
|
||
String get securityPrivacyAll => 'Все';
|
||
|
||
@override
|
||
String get securityPrivacyContacts => 'Мои контакты';
|
||
|
||
@override
|
||
String get securityPrivacyNobody => 'Никто';
|
||
|
||
@override
|
||
String get securityFamilyProtection => 'Семейная защита';
|
||
|
||
@override
|
||
String get securityEnabledFem => 'Включена';
|
||
|
||
@override
|
||
String get securityDisabledFem => 'Отключена';
|
||
|
||
@override
|
||
String get securityPasswordTitle => 'Пароль для входа';
|
||
|
||
@override
|
||
String get securityEnabledMasc => 'Включён';
|
||
|
||
@override
|
||
String get securityDisabledMasc => 'Отключён';
|
||
|
||
@override
|
||
String get securityModeTitle => 'Безопасный режим';
|
||
|
||
@override
|
||
String get securityModeSubtitle => 'Скрывает личную информацию';
|
||
|
||
@override
|
||
String get securitySettingsUnavailable =>
|
||
'Изменение настроек пока недоступно';
|
||
|
||
@override
|
||
String get securityFindByPhone => 'Найти меня по номеру';
|
||
|
||
@override
|
||
String get securityWhoCanCall => 'Кто может мне звонить';
|
||
|
||
@override
|
||
String get securityWhoCanInvite => 'Кто может приглашать в чаты';
|
||
|
||
@override
|
||
String get securityShowContent => 'Показывать контент';
|
||
|
||
@override
|
||
String get securityContentSafe => 'Безопасный';
|
||
|
||
@override
|
||
String get securityContentAll => 'Весь';
|
||
|
||
@override
|
||
String get securityShowOnlineStatus => 'Видеть статус «в сети»';
|
||
|
||
@override
|
||
String get securityShowMyNumber => 'Видеть мой номер';
|
||
|
||
@override
|
||
String get securityConfirmTitle => 'Вы уверены?';
|
||
|
||
@override
|
||
String get securityHiddenStatusWarning =>
|
||
'Вы не сможете видеть статусы посещения других пользователей.';
|
||
|
||
@override
|
||
String get securityConfidentialityHeader => 'КОНФИДЕНЦИАЛЬНОСТЬ';
|
||
|
||
@override
|
||
String get securityReadReceipts => 'Галочки «Прочитано»';
|
||
|
||
@override
|
||
String get securityAltKeyboard => 'Альтернативная клавиатура';
|
||
|
||
@override
|
||
String get securityUnsafeFiles => 'Принимать опасные файлы';
|
||
|
||
@override
|
||
String get securityAudioTranscription => 'Транскрибация аудио';
|
||
|
||
@override
|
||
String get securityBlacklistTitle => 'Чёрный список';
|
||
|
||
@override
|
||
String securityBlacklistNotification(String count) {
|
||
return 'Чёрный список: $count контактов';
|
||
}
|
||
|
||
@override
|
||
String get passwordEntryWrongPassword => 'Неверный пароль';
|
||
|
||
@override
|
||
String get passwordEntryConfirmTitle => 'Подтвердите пароль';
|
||
|
||
@override
|
||
String get passwordEntryCurrentPasswordHint => 'Текущий пароль';
|
||
|
||
@override
|
||
String get passwordEntryContinue => 'Продолжить';
|
||
|
||
@override
|
||
String get passwordEntryNotSetTitle => 'Пароль не установлен';
|
||
|
||
@override
|
||
String get passwordEntry2faSubtitle => 'Двухфакторная аутентификация';
|
||
|
||
@override
|
||
String get passwordEntrySetupAction => 'Установить пароль';
|
||
|
||
@override
|
||
String get passwordEntryGateMessage =>
|
||
'Введите пароль для входа, чтобы управлять защитой';
|
||
|
||
@override
|
||
String get passwordEntryGenericPasswordHint => 'Пароль';
|
||
|
||
@override
|
||
String get passwordEntrySetTitle => 'Пароль установлен';
|
||
|
||
@override
|
||
String passwordEntryHintPrefix(String hint) {
|
||
return 'Подсказка: $hint';
|
||
}
|
||
|
||
@override
|
||
String get passwordEntryChangePasswordAction => 'Изменить пароль';
|
||
|
||
@override
|
||
String get passwordEntryChangeEmailAction => 'Изменить почту';
|
||
|
||
@override
|
||
String get passwordEntryDeleteAction => 'Удалить пароль';
|
||
|
||
@override
|
||
String get passwordEntryMinPasswordError =>
|
||
'Пароль должен быть минимум 6 символов';
|
||
|
||
@override
|
||
String get passwordEntryMismatchError => 'Пароли не совпадают';
|
||
|
||
@override
|
||
String get passwordEntryInvalidEmailError => 'Введите нормальный email';
|
||
|
||
@override
|
||
String get passwordEntryInvalidCodeError => 'Введите 6-значный код';
|
||
|
||
@override
|
||
String get passwordEntrySetupTitle => 'Установка пароля';
|
||
|
||
@override
|
||
String get passwordEntryStepPassword => 'Пароль';
|
||
|
||
@override
|
||
String get passwordEntryStepHint => 'Подсказка';
|
||
|
||
@override
|
||
String get passwordEntryStepEmail => 'Почта';
|
||
|
||
@override
|
||
String get passwordEntryStepCode => 'Код';
|
||
|
||
@override
|
||
String get passwordEntryChoosePassword => 'Придумайте пароль';
|
||
|
||
@override
|
||
String get passwordEntryMinCharsHint => 'Минимум 6 символов';
|
||
|
||
@override
|
||
String get passwordEntryEnterPasswordHint => 'Введите пароль';
|
||
|
||
@override
|
||
String get passwordEntryEnterAgain => 'Введите пароль ещё раз';
|
||
|
||
@override
|
||
String get passwordEntryRepeatHint => 'Повторите пароль';
|
||
|
||
@override
|
||
String get passwordEntryHintForPassword => 'Подсказка для пароля';
|
||
|
||
@override
|
||
String get passwordEntryOptional => 'Необязательно';
|
||
|
||
@override
|
||
String get passwordEntryHintFieldHint => 'Введите подсказку (необязательно)';
|
||
|
||
@override
|
||
String get passwordEntryLinkEmail => 'Привяжите email';
|
||
|
||
@override
|
||
String get passwordEntryEmailPurpose =>
|
||
'Для восстановления пароля. Необязательно';
|
||
|
||
@override
|
||
String get passwordEntryEmailHintOptional =>
|
||
'example@mail.ru (необязательно)';
|
||
|
||
@override
|
||
String get passwordEntryEnterCode => 'Введите код';
|
||
|
||
@override
|
||
String passwordEntryCodeSentTo(String email) {
|
||
return 'Код отправлен на $email';
|
||
}
|
||
|
||
@override
|
||
String get passwordEntryChangedNotif => 'Пароль изменён';
|
||
|
||
@override
|
||
String get passwordEntryNewPassword => 'Новый пароль';
|
||
|
||
@override
|
||
String get passwordEntryNewPasswordHint => 'Введите новый пароль';
|
||
|
||
@override
|
||
String get passwordEntryRepeatNewPasswordHint => 'Повторите новый пароль';
|
||
|
||
@override
|
||
String get passwordEntryEmailChangedNotif => 'Почта изменена';
|
||
|
||
@override
|
||
String get passwordEntryNewEmail => 'Новая почта';
|
||
|
||
@override
|
||
String get passwordEntryEmailHint => 'example@mail.ru';
|
||
|
||
@override
|
||
String get passwordEntryRemovedNotif => 'Пароль удалён';
|
||
|
||
@override
|
||
String get passwordEntryRemoveTitle => 'Удаление пароля';
|
||
|
||
@override
|
||
String get passwordEntryRemoveWarning =>
|
||
'После удаления пароля ваш аккаунт будет менее защищен. Уверены?';
|
||
|
||
@override
|
||
String get cloudStorageNoActiveProfile => 'Нет активного профиля';
|
||
|
||
@override
|
||
String get cloudStorageSetupFailed => 'Не удалось создать среду';
|
||
|
||
@override
|
||
String get cloudStorageTitle => 'Облачное хранилище';
|
||
|
||
@override
|
||
String get cloudStorageNotConfiguredTitle =>
|
||
'Среда для облачного хранилища не настроена';
|
||
|
||
@override
|
||
String get cloudStorageNotConfiguredSubtitle => 'Начнем? Это быстро.';
|
||
|
||
@override
|
||
String get cloudStorageStart => 'Начать';
|
||
|
||
@override
|
||
String cloudStorageUploadingPercent(String percent) {
|
||
return 'Загрузка $percent%';
|
||
}
|
||
|
||
@override
|
||
String get cloudStorageStartUploadHint =>
|
||
'Начните загрузку для прогресс-бара';
|
||
|
||
@override
|
||
String get cloudStorageEmptyTitle => 'Облачных файлов пока нет...';
|
||
|
||
@override
|
||
String get cloudStorageEmptySubtitle => 'Добавите?';
|
||
|
||
@override
|
||
String get cloudStorageUpload => 'Загрузить';
|
||
|
||
@override
|
||
String get cloudStorageFromFile => 'С файла';
|
||
|
||
@override
|
||
String get cloudStorageById => 'По ID';
|
||
|
||
@override
|
||
String get cloudStorageFileIdLabel => 'ID файла';
|
||
|
||
@override
|
||
String get cloudStorageSizeLabel => 'Размер';
|
||
|
||
@override
|
||
String get cloudStorageNoLinkYet => 'Ссылки пока нет. Создайте.';
|
||
|
||
@override
|
||
String cloudStorageLinkExpiresIn(String time) {
|
||
return 'Ссылка истечет $time';
|
||
}
|
||
|
||
@override
|
||
String get cloudStorageLinkCopied => 'Ссылка скопирована';
|
||
|
||
@override
|
||
String get cloudStorageInvalidId => 'Неверный ID';
|
||
|
||
@override
|
||
String get cloudStorageSendError => 'Ошибка отправки';
|
||
|
||
@override
|
||
String get cloudStorageSendByIdTitle => 'Отправить по ID';
|
||
|
||
@override
|
||
String get cloudStorageSend => 'Отправить';
|
||
|
||
@override
|
||
String get digitalIdGosuslugiLinkUnavailable =>
|
||
'Привязка Госуслуг недоступна на этой платформе. Сделайте это в приложении на телефоне.';
|
||
|
||
@override
|
||
String get digitalIdGosuslugiLinkFailed =>
|
||
'Не удалось получить ссылку Госуслуг';
|
||
|
||
@override
|
||
String get digitalIdGosuslugiTitle => 'Госуслуги';
|
||
|
||
@override
|
||
String get digitalIdDocsUnavailable =>
|
||
'Документы пока недоступны. Попробуйте позже.';
|
||
|
||
@override
|
||
String get digitalIdTitle => 'Цифровой ID';
|
||
|
||
@override
|
||
String get digitalIdNotConfiguredTitle => 'Цифровой ID не настроен';
|
||
|
||
@override
|
||
String get digitalIdLinkGosuslugiHint =>
|
||
'Привяжите аккаунт Госуслуг, чтобы документы появились в Цифровом ID. Номер телефона в ИКАР должен совпадать с номером в профиле Госуслуг.';
|
||
|
||
@override
|
||
String get digitalIdLinkOrRefreshHint =>
|
||
'Привяжите Госуслуги, чтобы получить доступ к документам, или обновите страницу, если уже настраивали Цифровой ID.';
|
||
|
||
@override
|
||
String get digitalIdLoadDocuments => 'Загрузить документы';
|
||
|
||
@override
|
||
String get digitalIdLinkGosuslugiButton => 'Привязать Госуслуги';
|
||
|
||
@override
|
||
String get digitalIdGosuslugiProfileFallback => 'Профиль Госуслуг';
|
||
|
||
@override
|
||
String digitalIdBirthDate(String date) {
|
||
return 'Дата рождения: $date';
|
||
}
|
||
|
||
@override
|
||
String get digitalIdPersonalDataTitle => 'Личные данные';
|
||
|
||
@override
|
||
String get digitalIdSnilsLabel => 'СНИЛС';
|
||
|
||
@override
|
||
String get digitalIdInnLabel => 'ИНН';
|
||
|
||
@override
|
||
String get digitalIdBirthPlaceLabel => 'Место рождения';
|
||
|
||
@override
|
||
String get digitalIdRegistrationAddressLabel => 'Адрес регистрации';
|
||
|
||
@override
|
||
String get digitalIdDocumentsTitle => 'Документы';
|
||
|
||
@override
|
||
String digitalIdDocSeries(String series) {
|
||
return 'серия $series';
|
||
}
|
||
|
||
@override
|
||
String digitalIdDocNumber(String number) {
|
||
return '№ $number';
|
||
}
|
||
|
||
@override
|
||
String get digitalIdPassesTitle => 'Пропуска';
|
||
|
||
@override
|
||
String digitalIdCardInn(String inn) {
|
||
return 'ИНН $inn';
|
||
}
|
||
|
||
@override
|
||
String get digitalIdBiometryConfigured =>
|
||
'Биометрия настроена на этом устройстве';
|
||
|
||
@override
|
||
String get digitalIdBiometryNotConfigured =>
|
||
'Биометрия на этом устройстве не настроена';
|
||
|
||
@override
|
||
String get digitalIdDocPassport => 'Паспорт РФ';
|
||
|
||
@override
|
||
String get digitalIdDocOms => 'Полис ОМС';
|
||
|
||
@override
|
||
String get digitalIdDocDriverLicense => 'Водительское удостоверение';
|
||
|
||
@override
|
||
String get digitalIdDocVehicleSts => 'СТС';
|
||
|
||
@override
|
||
String get digitalIdDocChildBirthCert => 'Свидетельство о рождении';
|
||
|
||
@override
|
||
String get digitalIdDocPensionCert => 'Пенсионное удостоверение';
|
||
|
||
@override
|
||
String get digitalIdDocDisabledCert => 'Справка об инвалидности';
|
||
|
||
@override
|
||
String get digitalIdDocLargeFamilyCert => 'Удостоверение многодетной семьи';
|
||
|
||
@override
|
||
String get digitalIdDocStudentTicket => 'Студенческий билет';
|
||
|
||
@override
|
||
String get digitalIdDocChildInn => 'ИНН ребёнка';
|
||
|
||
@override
|
||
String get digitalIdDocChildOms => 'Полис ОМС ребёнка';
|
||
|
||
@override
|
||
String get attachSheetGallery => 'Галерея';
|
||
|
||
@override
|
||
String get attachSheetPoll => 'Опрос';
|
||
|
||
@override
|
||
String get attachSheetCameraError => 'Не удалось открыть камеру';
|
||
|
||
@override
|
||
String get attachSheetSendFileTitle => 'Отправить файл';
|
||
|
||
@override
|
||
String get attachSheetSendFileSubtitle =>
|
||
'Документ, архив или любой другой файл';
|
||
|
||
@override
|
||
String get attachSheetChooseFileButton => 'Выбрать файл';
|
||
|
||
@override
|
||
String get attachSheetShareLocationTitle => 'Поделиться геопозицией';
|
||
|
||
@override
|
||
String get attachSheetShareLocationSubtitle =>
|
||
'Отправить ваше текущее местоположение';
|
||
|
||
@override
|
||
String get attachSheetSendLocationButton => 'Отправить геопозицию';
|
||
|
||
@override
|
||
String get attachSheetCreatePoll => 'Создать опрос';
|
||
|
||
@override
|
||
String get attachSheetCreatePollSubtitle => 'Вопрос с вариантами ответа';
|
||
|
||
@override
|
||
String get attachSheetNoImagesFound => 'Изображений не найдено';
|
||
|
||
@override
|
||
String get attachSheetLimitedAccessInfo => 'Доступны не все фото';
|
||
|
||
@override
|
||
String get attachSheetAccessTitle => 'Показывать фото из галереи?';
|
||
|
||
@override
|
||
String get attachSheetAccessBody =>
|
||
'Чтобы фотографии и видео сразу появлялись в меню скрепки, разрешите полный доступ к ним в следующем системном окне. Выберите «Разрешить все фото и видео» или «Полный доступ». При ограниченном доступе здесь будут только выбранные вами файлы.';
|
||
|
||
@override
|
||
String get attachSheetAccessLimitedBody =>
|
||
'Доступны только выбранные фото. Чтобы видеть всю галерею, откройте настройки → Фото и видео → Полный доступ.';
|
||
|
||
@override
|
||
String get attachSheetSectionInProgress => 'Раздел в разработке';
|
||
|
||
@override
|
||
String get attachSheetContact => 'Контакт';
|
||
|
||
@override
|
||
String get attachSheetContactSearchHint => 'Поиск по контактам';
|
||
|
||
@override
|
||
String get attachSheetNoContacts => 'У вас пока нет контактов';
|
||
|
||
@override
|
||
String get attachSheetNoContactsFound => 'Контакты не найдены';
|
||
|
||
@override
|
||
String get attachSheetNoGalleryAccessTitle => 'Нет доступа к галерее';
|
||
|
||
@override
|
||
String get attachSheetNoGalleryAccessSubtitle =>
|
||
'Разрешите доступ к фото, чтобы выбрать их отсюда';
|
||
|
||
@override
|
||
String get attachSheetAllow => 'Разрешить';
|
||
|
||
@override
|
||
String get attachSheetGalleryFailedTitle => 'Не удалось загрузить галерею';
|
||
|
||
@override
|
||
String get attachSheetRetry => 'Повторить';
|
||
|
||
@override
|
||
String get attachSheetSettings => 'Настройки';
|
||
|
||
@override
|
||
String get attachSheetAddCaptionHint => 'Добавить подпись...';
|
||
|
||
@override
|
||
String get attachSheetCamera => 'Камера';
|
||
|
||
@override
|
||
String get attachSheetCameraAllow => 'Разрешите камеру';
|
||
|
||
@override
|
||
String get photoEditorApplyFailed => 'Не удалось применить';
|
||
|
||
@override
|
||
String get photoEditorFlipTooltip => 'Отразить';
|
||
|
||
@override
|
||
String get photoEditorRotateTooltip => 'Повернуть';
|
||
|
||
@override
|
||
String get photoEditorCancel => 'ОТМЕНА';
|
||
|
||
@override
|
||
String get photoEditorReset => 'СБРОС';
|
||
|
||
@override
|
||
String get photoEditorDone => 'ГОТОВО';
|
||
|
||
@override
|
||
String get photoEditorTextDialogTitle => 'Текст';
|
||
|
||
@override
|
||
String get photoEditorTextDialogHint => 'Введите текст';
|
||
|
||
@override
|
||
String get photoEditorOk => 'ОК';
|
||
|
||
@override
|
||
String get photoEditorApplyChangesFailed => 'Не удалось применить изменения';
|
||
|
||
@override
|
||
String get photoEditorClearAll => 'Очистить всё';
|
||
|
||
@override
|
||
String get photoEditorAddText => 'Добавить текст';
|
||
|
||
@override
|
||
String get photoEditorTabDraw => 'РИСУНОК';
|
||
|
||
@override
|
||
String get photoEditorTabStickers => 'СТИКЕРЫ';
|
||
|
||
@override
|
||
String get photoEditorTabText => 'ТЕКСТ';
|
||
|
||
@override
|
||
String get photoEditorChannelAll => 'Все';
|
||
|
||
@override
|
||
String get photoEditorChannelRed => 'Красный';
|
||
|
||
@override
|
||
String get photoEditorChannelGreen => 'Зелёный';
|
||
|
||
@override
|
||
String get photoEditorChannelBlue => 'Синий';
|
||
|
||
@override
|
||
String get photoEditorEnhance => 'Улучшение';
|
||
|
||
@override
|
||
String get photoEditorExposure => 'Экспозиция';
|
||
|
||
@override
|
||
String get photoEditorContrast => 'Контраст';
|
||
|
||
@override
|
||
String get photoEditorSaturation => 'Насыщенность';
|
||
|
||
@override
|
||
String get photoEditorWarmth => 'Тёплость';
|
||
|
||
@override
|
||
String get photoEditorVignette => 'Виньетка';
|
||
|
||
@override
|
||
String get photoEditorBlurOff => 'Откл.';
|
||
|
||
@override
|
||
String get photoEditorBlurRadial => 'Радиальное';
|
||
|
||
@override
|
||
String get photoEditorBlurLinear => 'Линейное';
|
||
|
||
@override
|
||
String get fontSettingsInvalidInput => 'Введите ссылку или название шрифта';
|
||
|
||
@override
|
||
String fontSettingsFontNotFound(String name) {
|
||
return 'Шрифт «$name» не найден или нет сети';
|
||
}
|
||
|
||
@override
|
||
String fontSettingsFontAdded(String name) {
|
||
return 'Шрифт «$name» добавлен';
|
||
}
|
||
|
||
@override
|
||
String fontSettingsFontRemoved(String name) {
|
||
return 'Шрифт «$name» удалён';
|
||
}
|
||
|
||
@override
|
||
String get fontSettingsAddFontTitle => 'Добавить шрифт';
|
||
|
||
@override
|
||
String get fontSettingsAddFontDescription =>
|
||
'Вставьте ссылку Google Fonts или название шрифта';
|
||
|
||
@override
|
||
String get fontSettingsAddFontConfirm => 'Добавить';
|
||
|
||
@override
|
||
String get fontSettingsTitle => 'Шрифты';
|
||
|
||
@override
|
||
String get fontSettingsSectionFont => 'Шрифт';
|
||
|
||
@override
|
||
String get fontSettingsLoading => 'Загрузка…';
|
||
|
||
@override
|
||
String get fontSettingsSectionFontSize => 'Размер шрифта';
|
||
|
||
@override
|
||
String get fontSettingsPreviewLabel => 'ПРЕДПРОСМОТР';
|
||
|
||
@override
|
||
String get fontSettingsReset => 'Сбросить';
|
||
|
||
@override
|
||
String get updateAvailableTitle => 'Доступно обновление';
|
||
|
||
@override
|
||
String updateAvailableBody(String version) {
|
||
return 'Вышла версия $version. Обновить приложение?';
|
||
}
|
||
|
||
@override
|
||
String get updateWhatsNew => 'ЧТО НОВОГО';
|
||
|
||
@override
|
||
String get updateAction => 'Обновить';
|
||
|
||
@override
|
||
String get updateLater => 'Позже';
|
||
|
||
@override
|
||
String get updateSkip => 'Пропустить';
|
||
|
||
@override
|
||
String get updateDownloading => 'Загрузка обновления…';
|
||
|
||
@override
|
||
String get updateDownloadFailed => 'Не удалось скачать обновление';
|
||
|
||
@override
|
||
String get updateCheck => 'Проверить обновление';
|
||
|
||
@override
|
||
String get updateChecking => 'Проверяем обновления…';
|
||
|
||
@override
|
||
String get updateUpToDate => 'Установлена актуальная версия';
|
||
|
||
@override
|
||
String get updateCheckFailed =>
|
||
'Не удалось проверить обновления. Повторите позже';
|
||
|
||
@override
|
||
String get profileResurrecting =>
|
||
'Упс! Сервер не прислал profile. Попробую регенерировать…';
|
||
|
||
@override
|
||
String get profilePhoneRegenFailed =>
|
||
'Не удалось регенерировать данные об номере. Перезайдите и сообщите об проблеме разработчикам';
|
||
|
||
@override
|
||
String get addContactTitle => 'Новый контакт';
|
||
|
||
@override
|
||
String get addContactFirstName => 'Имя';
|
||
|
||
@override
|
||
String get addContactLastName => 'Фамилия (необязательно)';
|
||
|
||
@override
|
||
String get addContactSave => 'Сохранить контакт';
|
||
|
||
@override
|
||
String addContactNotFound(String phone) {
|
||
return '$phone не найден';
|
||
}
|
||
|
||
@override
|
||
String get addContactNotFoundSubtitle =>
|
||
'ИКАР не нашёл доступный профиль по этому номеру. Проверьте номер: аккаунт может отсутствовать или поиск по номеру может быть ограничен. Если человек уже пользуется ИКАР, попросите ссылку или QR-код его профиля.';
|
||
|
||
@override
|
||
String get addContactSearchOther => 'Проверить номер';
|
||
|
||
@override
|
||
String get addContactError => 'Не удалось добавить контакт';
|
||
|
||
@override
|
||
String get contactBubbleNew => 'Новый контакт';
|
||
|
||
@override
|
||
String get contactBubbleAlreadyAdded => 'Уже твой контакт';
|
||
|
||
@override
|
||
String get contactBubbleOpenProfile => 'Открыть профиль';
|
||
|
||
@override
|
||
String get miniAppOpen => 'Открыть';
|
||
|
||
@override
|
||
String get miniAppFailed => 'Не удалось открыть приложение';
|
||
|
||
@override
|
||
String get editContactMenu => 'Редактировать контакт';
|
||
|
||
@override
|
||
String get editContactTitle => 'Редактировать контакт';
|
||
|
||
@override
|
||
String get editContactFirstName => 'Имя';
|
||
|
||
@override
|
||
String get editContactLastName => 'Фамилия';
|
||
|
||
@override
|
||
String get editContactSave => 'Сохранить';
|
||
|
||
@override
|
||
String get editContactDelete => 'Удалить контакт';
|
||
|
||
@override
|
||
String get editContactDeleteConfirmTitle => 'Удалить контакт?';
|
||
|
||
@override
|
||
String get editContactDeleteConfirmBody =>
|
||
'Контакт будет удалён из вашего списка.';
|
||
|
||
@override
|
||
String get editContactDeleteCancel => 'Отмена';
|
||
|
||
@override
|
||
String get editContactError => 'Не удалось сохранить изменения';
|
||
|
||
@override
|
||
String get downloadsTitle => 'Недавние загрузки';
|
||
|
||
@override
|
||
String get downloadsTooltip => 'Загрузки';
|
||
|
||
@override
|
||
String get downloadsSettings => 'Настройки';
|
||
|
||
@override
|
||
String get downloadsEmpty => 'Скачанные файлы появятся здесь';
|
||
|
||
@override
|
||
String get downloadsUnknownSource => 'Источник неизвестен';
|
||
|
||
@override
|
||
String get downloadsPhoto => 'Фото';
|
||
|
||
@override
|
||
String get downloadsVideo => 'Видео';
|
||
|
||
@override
|
||
String get downloadsGif => 'GIF';
|
||
|
||
@override
|
||
String get downloadsAudio => 'Аудио';
|
||
|
||
@override
|
||
String get downloadsFile => 'Файл';
|
||
|
||
@override
|
||
String get downloadsOpenFailed => 'Не удалось открыть файл';
|
||
|
||
@override
|
||
String get downloadsClearHistory => 'Очистить историю загрузок';
|
||
|
||
@override
|
||
String get downloadsClearTitle => 'Очистить историю загрузок?';
|
||
|
||
@override
|
||
String get downloadsClearBody =>
|
||
'Файлы останутся на устройстве, но этот список будет очищен.';
|
||
|
||
@override
|
||
String get downloadsClearConfirm => 'Очистить';
|
||
|
||
@override
|
||
String get downloadsHistoryCleared => 'История загрузок очищена';
|
||
|
||
@override
|
||
String uploadNotificationPhotos(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count фото',
|
||
one: 'Фото',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get uploadNotificationVideo => 'Видео';
|
||
|
||
@override
|
||
String get uploadNotificationVideoNote => 'Кружок';
|
||
|
||
@override
|
||
String get uploadNotificationVoice => 'Голосовое сообщение';
|
||
|
||
@override
|
||
String get uploadNotificationFile => 'Файл';
|
||
|
||
@override
|
||
String uploadNotificationMultiple(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: 'Отправка файлов: $count',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get uploadNotificationPreparing => 'Подготовка…';
|
||
|
||
@override
|
||
String uploadSpeedBytes(String value) {
|
||
return '$value Б/с';
|
||
}
|
||
|
||
@override
|
||
String uploadSpeedKb(String value) {
|
||
return '$value КБ/с';
|
||
}
|
||
|
||
@override
|
||
String uploadSpeedMb(String value) {
|
||
return '$value МБ/с';
|
||
}
|
||
|
||
@override
|
||
String get savedMessagesEmptyPreview => 'Сохраните что-нибудь';
|
||
|
||
@override
|
||
String proxyCurrentState(String value) {
|
||
return 'Сейчас: $value';
|
||
}
|
||
|
||
@override
|
||
String get blacklistEmpty => 'Никто не заблокирован';
|
||
|
||
@override
|
||
String get joinRequestsTitle => 'Заявки на вступление';
|
||
|
||
@override
|
||
String get joinRequestsEmpty => 'Нет заявок';
|
||
|
||
@override
|
||
String get joinRequestsApprove => 'Принять';
|
||
|
||
@override
|
||
String get joinRequestsDecline => 'Отклонить';
|
||
|
||
@override
|
||
String get joinRequestsApproved => 'Заявка принята';
|
||
|
||
@override
|
||
String get joinRequestsDeclined => 'Заявка отклонена';
|
||
|
||
@override
|
||
String get joinRequestsActionFailed => 'Не удалось, попробуйте ещё раз';
|
||
|
||
@override
|
||
String get joinRequestsLoadError => 'Не удалось загрузить заявки';
|
||
|
||
@override
|
||
String get blacklistLoadError => 'Не удалось загрузить чёрный список';
|
||
|
||
@override
|
||
String get videoEditorQualityLow => 'Небольшой размер';
|
||
|
||
@override
|
||
String get videoEditorQualityHigh => 'Высокое качество';
|
||
|
||
@override
|
||
String get videoEditorCaptionHint => 'Добавить подпись...';
|
||
|
||
@override
|
||
String get videoEditorMuteTooltip => 'Отправить без звука';
|
||
|
||
@override
|
||
String get videoEditorProcessing => 'Обработка видео…';
|
||
|
||
@override
|
||
String get videoEditorExportFailed => 'Не удалось обработать видео';
|
||
|
||
@override
|
||
String get videoEditorFrameFailed => 'Не удалось получить кадр';
|
||
|
||
@override
|
||
String get videoEditorQualityTooltip => 'Качество';
|
||
|
||
@override
|
||
String get webPushTitle => 'Уведомления на iOS';
|
||
|
||
@override
|
||
String get webPushIntro =>
|
||
'На iOS у ИКАР нет обычных пушей: Apple выдаёт токен уведомлений только приложениям, подписанным сертификатом разработчика, а sideload-сборка такого не получает.\n\nОбход — веб-приложение на экране «Домой». Уведомления шлёт сам сервер ИКАР через Apple, а показывает их отдельная иконка.\n\nДля этого нужна веб-сессия. ИКАР создаст её и подтвердит сама, с этого же устройства — вводить номер и код не придётся.';
|
||
|
||
@override
|
||
String get webPushConfirm => 'Продолжить';
|
||
|
||
@override
|
||
String get webPushPasswordExplainer =>
|
||
'На аккаунте включена двухфакторная защита.';
|
||
|
||
@override
|
||
String webPushPasswordHintLabel(String hint) {
|
||
return 'Подсказка: $hint';
|
||
}
|
||
|
||
@override
|
||
String get webPushPasswordHint => 'Пароль';
|
||
|
||
@override
|
||
String get webPushInstallTitle => 'Установите приложение';
|
||
|
||
@override
|
||
String get webPushInstallBody =>
|
||
'Авторизуйте сервис web-push ИКАР, чтобы продолжить. На iOS для уведомлений требуется установленное веб-приложение.';
|
||
|
||
@override
|
||
String get webPushLinkedTitle => 'Уведомления подключены';
|
||
|
||
@override
|
||
String get webPushLinkedBody =>
|
||
'Подписка зарегистрирована на сервере. Не удаляйте иконку с экрана «Домой» — вместе с ней пропадут уведомления.\n\nЕсли пуши перестанут приходить, откройте приложение и свяжите заново: Apple иногда меняет адрес подписки.';
|
||
|
||
@override
|
||
String get webPushSignOut => 'Отключить уведомления';
|
||
|
||
@override
|
||
String get webPushLinked => 'Уведомления подключены';
|
||
|
||
@override
|
||
String webPushLinkFailed(String error) {
|
||
return 'Не удалось подключить уведомления: $error';
|
||
}
|
||
|
||
@override
|
||
String get webPushNotAuthorized =>
|
||
'Сначала войдите в разделе «Уведомления через PWA»';
|
||
|
||
@override
|
||
String get webPushConnect => 'Подключить уведомления';
|
||
|
||
@override
|
||
String get webPushWaitingBody =>
|
||
'ИКАР подтверждает вход веб-сессии с этого устройства. Обычно занимает несколько секунд.';
|
||
|
||
@override
|
||
String get webPushNeedsOnline =>
|
||
'Нет связи с сервером. Дождитесь подключения и попробуйте снова.';
|
||
|
||
@override
|
||
String get webPushSignOutConfirm =>
|
||
'Веб-сессия будет завершена и исчезнет из списка устройств. Чтобы вернуть уведомления, подключение придётся пройти заново.';
|
||
|
||
@override
|
||
String get webPushSignOutAction => 'Отключить';
|
||
|
||
@override
|
||
String get webPushStatusService => 'Сервис';
|
||
|
||
@override
|
||
String get webPushStatusToken => 'Токен';
|
||
|
||
@override
|
||
String get webPushStatusLinkedAt => 'Привязан';
|
||
|
||
@override
|
||
String get webPushStatusDevice => 'Устройство';
|
||
|
||
@override
|
||
String get contactPresenceOnline => 'В сети';
|
||
|
||
@override
|
||
String get contactPresenceRecently => 'Был(а) недавно';
|
||
|
||
@override
|
||
String get contactPresenceLongAgo => 'Был(а) давно';
|
||
|
||
@override
|
||
String get contactPresenceUnknown => 'Статус неизвестен';
|
||
|
||
@override
|
||
String contactIdFallback(String id) {
|
||
return 'ID $id';
|
||
}
|
||
|
||
@override
|
||
String get securityModeLocked =>
|
||
'Отключите безопасный режим, чтобы изменить эту настройку';
|
||
|
||
@override
|
||
String get securityModeSheetSubtitle => 'Без лишнего общения и контента';
|
||
|
||
@override
|
||
String get securityModeSheetSearch =>
|
||
'Вас не смогут найти по номеру телефона';
|
||
|
||
@override
|
||
String get securityModeSheetCalls =>
|
||
'Позвонить вам смогут только люди из вашего списка контактов';
|
||
|
||
@override
|
||
String get securityModeSheetInvites =>
|
||
'Пригласить вас в группу смогут только те, с кем вы уже общались';
|
||
|
||
@override
|
||
String get securityModeSheetContent =>
|
||
'Вы увидите только безопасные посты и каналы';
|
||
|
||
@override
|
||
String get securityModeSheetEnable => 'Включить';
|
||
|
||
@override
|
||
String get securityConfidentialityWarning =>
|
||
'Этих тумблеров нету в оригинальном приложении, и они могут быть вам недоступны.\n\nВ случае отказа, сервер сбросит соединение. (conection closed)';
|
||
|
||
@override
|
||
String get securityConfidentialityDecline => 'Не';
|
||
|
||
@override
|
||
String get audioPlaybackChannel => 'Воспроизведение аудио';
|
||
|
||
@override
|
||
String get audioPlaybackFailed => 'Не удалось воспроизвести файл';
|
||
|
||
@override
|
||
String get securityDeleteProfileTitle => 'Удалить профиль';
|
||
|
||
@override
|
||
String get securityDeleteProfileSubtitle =>
|
||
'Профиль и все данные удалятся через 30 дней';
|
||
|
||
@override
|
||
String get securityDeleteProfileConfirmTitle => 'Удалить профиль?';
|
||
|
||
@override
|
||
String get securityDeleteProfileConfirmMessage =>
|
||
'Ваш профиль ИКАР будет удалён через 30 дней. До этого момента заявку можно отменить.';
|
||
|
||
@override
|
||
String get securityDeleteProfileConfirmAction => 'Удалить';
|
||
|
||
@override
|
||
String securityDeleteProfileScheduled(String date) {
|
||
return 'Профиль будет удалён $date';
|
||
}
|
||
|
||
@override
|
||
String get securityDeleteProfileKeep => 'Не удалять профиль';
|
||
|
||
@override
|
||
String get securityDeleteProfileRequested => 'Заявка на удаление принята';
|
||
|
||
@override
|
||
String get securityDeleteProfileCanceled => 'Удаление профиля отменено';
|
||
|
||
@override
|
||
String securityDeleteProfileError(String error) {
|
||
return 'Не удалось отправить запрос: $error';
|
||
}
|
||
|
||
@override
|
||
String get composerPasteAttachment => 'Вставить файл';
|
||
|
||
@override
|
||
String get pasteAttachTitleImage => 'Отправить изображение';
|
||
|
||
@override
|
||
String get pasteAttachTitleVideo => 'Отправить видео';
|
||
|
||
@override
|
||
String get pasteAttachTitleFile => 'Отправить файл';
|
||
|
||
@override
|
||
String pasteAttachTitleMany(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: 'Отправить $count файла',
|
||
many: 'Отправить $count файлов',
|
||
few: 'Отправить $count файла',
|
||
one: 'Отправить $count файл',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get pasteAttachCaptionHint => 'Подпись';
|
||
|
||
@override
|
||
String get pasteAttachSend => 'Отправить';
|
||
|
||
@override
|
||
String get pasteAttachCancel => 'Отмена';
|
||
|
||
@override
|
||
String get pasteAttachFailed => 'В буфере обмена нечего вставить';
|
||
|
||
@override
|
||
String get profileQrTitle => 'Мой QR-код';
|
||
|
||
@override
|
||
String get profileQrHint => 'Отсканируйте код, чтобы открыть профиль';
|
||
|
||
@override
|
||
String get profileQrUnavailable => 'Не удалось получить ссылку на профиль';
|
||
|
||
@override
|
||
String get authLimitsLoginTitle => 'Аккаунт временно ограничен';
|
||
|
||
@override
|
||
String authLimitsLoginSubtitle(DateTime until) {
|
||
final intl.DateFormat untilDateFormat = intl.DateFormat(
|
||
'd MMMM, HH:mm',
|
||
localeName,
|
||
);
|
||
final String untilString = untilDateFormat.format(until);
|
||
|
||
return 'Ограничения снимутся примерно $untilString';
|
||
}
|
||
|
||
@override
|
||
String get authLimitsLogin2faTitle => 'Двухфакторная аутентификация';
|
||
|
||
@override
|
||
String get authLimitsLogin2faBody =>
|
||
'Нельзя установить или снять пароль для входа.';
|
||
|
||
@override
|
||
String get authLimitsLoginSessionsTitle => 'Завершение сеансов';
|
||
|
||
@override
|
||
String get authLimitsLoginSessionsBody =>
|
||
'Нельзя завершить все сеансы сразу.';
|
||
|
||
@override
|
||
String get authLimitsSignupTitle => 'Аккаунт может быть ограничен';
|
||
|
||
@override
|
||
String get authLimitsSignupSubtitle =>
|
||
'Ограничения выдают не всем, и сервер снимает их сам';
|
||
|
||
@override
|
||
String get authLimitsSignupMessagesTitle => 'Сообщения';
|
||
|
||
@override
|
||
String get authLimitsSignupMessagesBody =>
|
||
'Возможно, писать получится только тем, у кого вы уже есть в контактах.';
|
||
|
||
@override
|
||
String get authLimitsSignupGroupsTitle => 'Группы';
|
||
|
||
@override
|
||
String get authLimitsSignupGroupsBody =>
|
||
'Вступление в группы может быть недоступно.';
|
||
|
||
@override
|
||
String get authLimitsSignupMoreTitle => 'Возможны и другие ограничения';
|
||
|
||
@override
|
||
String get authLimitsSignupMoreBody =>
|
||
'Полного списка сервер не сообщает — если действие не сработало, попробуйте позже.';
|
||
|
||
@override
|
||
String get authLimitsConfirm => 'Понятно';
|
||
|
||
@override
|
||
String get attachSheetSendSeparately => 'Отправить по отдельности';
|
||
|
||
@override
|
||
String get attachSheetMoreActions => 'Другие действия';
|
||
|
||
@override
|
||
String get e2eeTitle => 'Сквозное шифрование';
|
||
|
||
@override
|
||
String get e2eeStatusNone => 'Выключено';
|
||
|
||
@override
|
||
String e2eeStatusOffered(String name) {
|
||
return 'Ждём, пока $name примет запрос';
|
||
}
|
||
|
||
@override
|
||
String e2eeStatusPending(String name) {
|
||
return '$name предлагает включить шифрование';
|
||
}
|
||
|
||
@override
|
||
String get e2eeStatusEstablished => 'Включено';
|
||
|
||
@override
|
||
String e2eeStatusKeyChanged(String name) {
|
||
return 'Ключ шифрования $name изменился';
|
||
}
|
||
|
||
@override
|
||
String get e2eeEnable => 'Включить';
|
||
|
||
@override
|
||
String get e2eeAccept => 'Принять';
|
||
|
||
@override
|
||
String get e2eeDecline => 'Отклонить';
|
||
|
||
@override
|
||
String get e2eeCancelOffer => 'Отменить запрос';
|
||
|
||
@override
|
||
String get e2eeReset => 'Сбросить сессию';
|
||
|
||
@override
|
||
String get e2eeResetConfirm =>
|
||
'Сбросить зашифрованную сессию? Обеим сторонам придётся включить шифрование заново.';
|
||
|
||
@override
|
||
String get e2eeFingerprint => 'Код безопасности';
|
||
|
||
@override
|
||
String e2eeFingerprintHint(String name) {
|
||
return 'Сравните эти 60 цифр с $name вне ИКАР — при встрече или по другому каналу. Совпадают — значит, сервер не подменил ключи.';
|
||
}
|
||
|
||
@override
|
||
String get e2eeVerified => 'Проверено лично';
|
||
|
||
@override
|
||
String get e2eeCeiling =>
|
||
'Шифруется только текст сообщений и фото. Сервер по-прежнему видит, кто с кем и когда переписывается, видит, что переписка зашифрована, и может не доставлять сообщения. Скрыть это нельзя.';
|
||
|
||
@override
|
||
String e2eeNeedsKomet(String name) {
|
||
return 'Собеседнику нужен клиент с поддержкой этого протокола шифрования (ИКАР или совместимый Komet).';
|
||
}
|
||
|
||
@override
|
||
String get e2eeOfferSent => 'Запрос отправлен';
|
||
|
||
@override
|
||
String get e2eeOfferFailed => 'Не удалось отправить запрос';
|
||
|
||
@override
|
||
String get e2eeAcceptFailed => 'Не удалось принять запрос';
|
||
|
||
@override
|
||
String e2eeBannerPending(String name) {
|
||
return '$name предлагает включить сквозное шифрование';
|
||
}
|
||
|
||
@override
|
||
String e2eeBannerKeyChanged(String name) {
|
||
return 'Ключ шифрования $name изменился. Проверьте код безопасности, прежде чем принять.';
|
||
}
|
||
|
||
@override
|
||
String get e2eeTransferTitle => 'Перенос на другое устройство';
|
||
|
||
@override
|
||
String get e2eeTransferHint =>
|
||
'Файл переноса содержит ваш ключ и сессии. После импорта на новом устройстве перестаньте пользоваться этим для зашифрованных чатов.';
|
||
|
||
@override
|
||
String get e2eeExport => 'Экспортировать';
|
||
|
||
@override
|
||
String get e2eeImport => 'Импортировать';
|
||
|
||
@override
|
||
String get e2eeTransferPassword => 'Пароль переноса';
|
||
|
||
@override
|
||
String get e2eeExportFailed => 'Не удалось экспортировать';
|
||
|
||
@override
|
||
String e2eeImported(int count) {
|
||
return 'Перенесено сессий: $count';
|
||
}
|
||
|
||
@override
|
||
String get e2eeImportFailed =>
|
||
'Не удалось импортировать — неверный пароль или повреждённый файл';
|
||
|
||
@override
|
||
String get e2eeLegacyNote =>
|
||
'Парольный режим для групп: без forward secrecy, любой, кто знает пароль, читает всю историю.';
|
||
|
||
@override
|
||
String get e2eeTooLong =>
|
||
'Сообщение слишком длинное для зашифрованного чата. Разделите его.';
|
||
|
||
@override
|
||
String get e2eeEncryptFailed => 'Не удалось зашифровать сообщение';
|
||
|
||
@override
|
||
String get e2eeRotateIdentity => 'Сменить свой ключ';
|
||
|
||
@override
|
||
String get e2eeRotateConfirm =>
|
||
'Создать новый ключ? Все зашифрованные сессии сбросятся, собеседники увидят предупреждение о смене ключа, коды безопасности изменятся.';
|
||
|
||
@override
|
||
String get e2eeRotated => 'Ключ заменён';
|
||
|
||
@override
|
||
String get e2eeRotateFailed => 'Не удалось заменить ключ';
|
||
|
||
@override
|
||
String get e2eeForwardBlocked =>
|
||
'В зашифрованном чате пересылка недоступна: текст сообщения подставил бы сервер, а не ваше устройство.';
|
||
|
||
@override
|
||
String get e2eeScheduledMediaBlocked =>
|
||
'Отложенные фото в зашифрованном чате пока не поддерживаются. Отправьте сейчас или выключите шифрование.';
|
||
|
||
@override
|
||
String get e2eeSearchBlocked =>
|
||
'В зашифрованном чате поиск недоступен: запрос ушёл бы на сервер, а сервер видит только шифртекст.';
|
||
|
||
@override
|
||
String get e2eeAwaitingPeer =>
|
||
'Для перенесённой сессии нужен новый обмен ключами. Дождитесь сообщения собеседника. Если переписка ещё не началась, сбросьте сессию и включите шифрование заново.';
|
||
|
||
@override
|
||
String e2eeBannerRehandshake(String name) {
|
||
return '$name заново включает шифрование. Принимайте, только если этого ждали — иначе сервер повторяет старый запрос, чтобы сбросить вашу сессию.';
|
||
}
|
||
|
||
@override
|
||
String get e2eeExportedAndDisabled =>
|
||
'Перенос создан. На этом устройстве шифрование выключено: импортируйте файл на новом и включите там.';
|
||
|
||
@override
|
||
String get codeErrorInvalid => 'Неверный код';
|
||
|
||
@override
|
||
String get msgActionsCopyLink => 'Скопировать ссылку';
|
||
|
||
@override
|
||
String get themeSettingsCustomTitle => 'Собственная тема';
|
||
|
||
@override
|
||
String get callKometDetectedNotification =>
|
||
'Этот человек использует Komet! :3';
|
||
|
||
@override
|
||
String get callTooltipKometHub => 'Komet';
|
||
|
||
@override
|
||
String get webPushOpenSite => 'Открыть push.komet.pw';
|
||
|
||
@override
|
||
String get e2eeEditUnavailable =>
|
||
'Это сообщение не расшифровать на этом устройстве, поэтому его нельзя изменить.';
|
||
|
||
@override
|
||
String get chatNoAccessMessage => 'У вас нет доступа к этому чату';
|
||
|
||
@override
|
||
String get chatNoAccessOk => 'Ок';
|
||
|
||
@override
|
||
String get chatEmptyTitle => 'Сообщений пока нет';
|
||
|
||
@override
|
||
String get chatGreetingHint => 'Напишите сообщение или отправьте этот стикер';
|
||
|
||
@override
|
||
String get chatCallBannerTitle => 'Звонок в чате';
|
||
|
||
@override
|
||
String get chatVideoCallBannerTitle => 'Видеозвонок в чате';
|
||
|
||
@override
|
||
String chatCallParticipants(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count участника',
|
||
many: '$count участников',
|
||
few: '$count участника',
|
||
one: '$count участник',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get chatCallJoin => 'Присоединиться';
|
||
|
||
@override
|
||
String get composerHintMessage => 'Сообщение';
|
||
|
||
@override
|
||
String get composerHintComment => 'Комментарий';
|
||
|
||
@override
|
||
String get composerHintCommandArgs => 'Заполните аргументы команды';
|
||
|
||
@override
|
||
String get emojiPanelRecent => 'Недавние';
|
||
|
||
@override
|
||
String get emojiPanelAnimated => 'Анимированные';
|
||
|
||
@override
|
||
String get attachmentFileFallback => 'Файл';
|
||
|
||
@override
|
||
String get attachmentContactFallback => 'Контакт';
|
||
|
||
@override
|
||
String userFallbackName(Object id) {
|
||
return 'Пользователь #$id';
|
||
}
|
||
|
||
@override
|
||
String get devicesUnknownValue => 'Неизвестно';
|
||
|
||
@override
|
||
String infoLoadError(Object error) {
|
||
return 'Ошибка: $error';
|
||
}
|
||
|
||
@override
|
||
String get chatInfoTabInfo => 'Инфо';
|
||
|
||
@override
|
||
String get callInfoConversationId => 'ID разговора';
|
||
|
||
@override
|
||
String get chatQrTitle => 'QR-код';
|
||
|
||
@override
|
||
String get chatQrHint => 'Отсканируйте код, чтобы открыть чат';
|
||
|
||
@override
|
||
String get linkQrUnavailable => 'Не удалось получить ссылку';
|
||
|
||
@override
|
||
String get notificationsDesktopNote =>
|
||
'На компьютере уведомления пока не показываются. Ниже — push-настройки аккаунта для телефонов.';
|
||
|
||
@override
|
||
String get fileNoAppToOpen =>
|
||
'Нет приложения, чтобы открыть этот файл. Выберите, куда его отправить.';
|
||
|
||
@override
|
||
String get mediaDevicesTitle => 'Камера и микрофон';
|
||
|
||
@override
|
||
String get mediaDevicesMicrophone => 'Микрофон';
|
||
|
||
@override
|
||
String get mediaDevicesMicrophoneHint => 'Для звонков и голосовых сообщений';
|
||
|
||
@override
|
||
String get mediaDevicesCamera => 'Камера';
|
||
|
||
@override
|
||
String get mediaDevicesCameraHint => 'Для звонков и, по желанию, для кружков';
|
||
|
||
@override
|
||
String get mediaDevicesSystemMicrophone => 'Системный микрофон';
|
||
|
||
@override
|
||
String get mediaDevicesSystemCamera => 'Системная камера';
|
||
|
||
@override
|
||
String mediaDevicesCameraFallback(int number) {
|
||
return 'Камера $number';
|
||
}
|
||
|
||
@override
|
||
String get mediaDevicesFront => 'Фронтальная';
|
||
|
||
@override
|
||
String get mediaDevicesBack => 'Тыловая';
|
||
|
||
@override
|
||
String get mediaDevicesVideoNotes => 'Кружки';
|
||
|
||
@override
|
||
String get mediaDevicesVideoNoteCustom => 'Своя камера';
|
||
|
||
@override
|
||
String get mediaDevicesVideoNoteCustomHint =>
|
||
'Снимать кружки камерой, выбранной выше';
|
||
|
||
@override
|
||
String get mediaDevicesVideoNoteCustomMissing =>
|
||
'Выберите камеру выше, пока снимает системная';
|
||
|
||
@override
|
||
String get mediaDevicesVideoNoteRear => 'Начинать с тыловой камеры';
|
||
|
||
@override
|
||
String get mediaDevicesVideoNoteRearHint =>
|
||
'Иначе кружок открывается с фронтальной';
|
||
|
||
@override
|
||
String get passcodeTitle => 'Код-пароль';
|
||
|
||
@override
|
||
String get passcodeCreate => 'Придумайте код-пароль';
|
||
|
||
@override
|
||
String get passcodeRepeat => 'Повторите код-пароль';
|
||
|
||
@override
|
||
String get passcodeMismatch => 'Коды не совпали, попробуйте ещё раз';
|
||
|
||
@override
|
||
String get passcodeDigitsHint => 'Четыре цифры';
|
||
|
||
@override
|
||
String get passcodeEnable => 'Включить код-пароль';
|
||
|
||
@override
|
||
String get passcodeEnabled => 'Код-пароль включён';
|
||
|
||
@override
|
||
String get passcodeChanged => 'Код-пароль изменён';
|
||
|
||
@override
|
||
String get passcodeChange => 'Сменить код-пароль';
|
||
|
||
@override
|
||
String get passcodeBiometric => 'Разблокировка по биометрии';
|
||
|
||
@override
|
||
String get passcodeBiometricHint => 'Отпечаток или лицо вместо кода';
|
||
|
||
@override
|
||
String get passcodeAutoLock => 'Автоблокировка';
|
||
|
||
@override
|
||
String get passcodeAutoLockHint =>
|
||
'Блокировать ИКАР, если им не пользоваться';
|
||
|
||
@override
|
||
String get passcodeAutoLockOff => 'Выключена';
|
||
|
||
@override
|
||
String passcodeAutoLockAfter(int minutes) {
|
||
return 'Через $minutes мин';
|
||
}
|
||
|
||
@override
|
||
String get passcodeDisable => 'Выключить код-пароль';
|
||
|
||
@override
|
||
String get passcodeDisableTitle => 'Выключить код-пароль?';
|
||
|
||
@override
|
||
String get passcodeDisableMessage =>
|
||
'ИКАР будет открываться без кода-пароля.';
|
||
|
||
@override
|
||
String get passcodeDisableAction => 'Выключить';
|
||
|
||
@override
|
||
String get passcodeCancel => 'Отмена';
|
||
|
||
@override
|
||
String get passcodeDisabled => 'Код-пароль выключен';
|
||
|
||
@override
|
||
String get passcodeOnDescription =>
|
||
'ИКАР спрашивает код при каждом входе. Замок в шапке списка чатов закрывает его сразу.';
|
||
|
||
@override
|
||
String get passcodeOffDescription =>
|
||
'Защитите переписку: ИКАР будет спрашивать код при каждом входе.';
|
||
|
||
@override
|
||
String get passcodeForgotHint =>
|
||
'Если забудете код, придётся очистить данные ИКАР или переустановить его и войти заново. После пяти неверных попыток ввод блокируется на пять минут.';
|
||
|
||
@override
|
||
String get lockTitle => 'Введите код-пароль';
|
||
|
||
@override
|
||
String get lockBiometricReason => 'Разблокируйте ИКАР';
|
||
|
||
@override
|
||
String lockBlocked(String time) {
|
||
return 'Слишком много попыток. Повторите через $time';
|
||
}
|
||
|
||
@override
|
||
String lockAttemptsLeft(int count) {
|
||
return 'Неверный код-пароль. Осталось попыток: $count';
|
||
}
|
||
|
||
@override
|
||
String get lockNow => 'Заблокировать ИКАР';
|
||
|
||
@override
|
||
String get fontSettingsPickFile => 'Выбрать файл';
|
||
|
||
@override
|
||
String get fontSettingsPickFileHint => 'Шрифт в формате .ttf, .otf или .ttc';
|
||
|
||
@override
|
||
String get fontSettingsNotAFont => 'Это не файл шрифта';
|
||
|
||
@override
|
||
String get fontSettingsCancel => 'Отмена';
|
||
|
||
@override
|
||
String get chatPreviewMarkRead => 'Пометить прочитанным';
|
||
|
||
@override
|
||
String get chatPreviewOpen => 'Открыть';
|
||
|
||
@override
|
||
String get attachSheetSendAsVideoNote => 'Отправить как кружок';
|
||
|
||
@override
|
||
String attachSheetVideoNoteTooLong(int seconds) {
|
||
return 'Кружок не может быть длиннее $seconds с';
|
||
}
|
||
|
||
@override
|
||
String get undoAction => 'Отменить';
|
||
|
||
@override
|
||
String get undoContinue => 'Продолжить';
|
||
|
||
@override
|
||
String get undoMessageUnpinned => 'Вы открепили сообщение';
|
||
|
||
@override
|
||
String undoMessagesDeleted(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count сообщения удалены',
|
||
many: '$count сообщений удалено',
|
||
few: '$count сообщения удалены',
|
||
one: 'Сообщение удалено',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String undoChatsDeleted(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count чата удалены',
|
||
many: '$count чатов удалено',
|
||
few: '$count чата удалены',
|
||
one: 'Чат удалён',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String undoChatsArchived(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count чата в архиве',
|
||
many: '$count чатов в архиве',
|
||
few: '$count чата в архиве',
|
||
one: 'Чат в архиве',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String undoChatsUnarchived(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count чата возвращены из архива',
|
||
many: '$count чатов возвращено из архива',
|
||
few: '$count чата возвращены из архива',
|
||
one: 'Чат возвращён из архива',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get undoLeftGroup => 'Вы вышли из группы';
|
||
|
||
@override
|
||
String get undoLeftChannel => 'Вы отписались от канала';
|
||
|
||
@override
|
||
String get forwardHideSender => 'Скрыть имя отправителя';
|
||
|
||
@override
|
||
String get forwardShowSender => 'Показать имя отправителя';
|
||
|
||
@override
|
||
String get forwardHideSenderUnavailable =>
|
||
'Опросы, звонки и служебные сообщения пересылаются только с именем отправителя';
|
||
|
||
@override
|
||
String get forwardWithoutSender => 'Пересылка без автора';
|
||
|
||
@override
|
||
String forwardWithoutSenderCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: 'Пересылка без автора: $count сообщения',
|
||
many: 'Пересылка без автора: $count сообщений',
|
||
few: 'Пересылка без автора: $count сообщения',
|
||
one: 'Пересылка без автора: $count сообщение',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get adminsTitle => 'Администраторы';
|
||
|
||
@override
|
||
String get channelFollowersTitle => 'Подписчики';
|
||
|
||
@override
|
||
String get channelStatsTitle => 'Статистика канала';
|
||
|
||
@override
|
||
String get channelStatsUnavailable => 'Статистика канала пока недоступна';
|
||
|
||
@override
|
||
String get adminsAdd => 'Добавить администратора';
|
||
|
||
@override
|
||
String get channelPickAdminTitle => 'Выберите подписчика';
|
||
|
||
@override
|
||
String get adminsPickEmpty => 'Некого назначить';
|
||
|
||
@override
|
||
String get membersSearchHint => 'Найти по имени';
|
||
|
||
@override
|
||
String adminRoleYou(String role) {
|
||
return '$role (вы)';
|
||
}
|
||
|
||
@override
|
||
String get channelAddFollowers => 'Добавить подписчиков';
|
||
|
||
@override
|
||
String get channelFollowersEmpty => 'Подписчиков пока нет';
|
||
|
||
@override
|
||
String get membersLoadFailed => 'Не удалось загрузить список';
|
||
|
||
@override
|
||
String get adminAppointTitle => 'Назначить администратора';
|
||
|
||
@override
|
||
String get adminEditTitle => 'Права администратора';
|
||
|
||
@override
|
||
String get channelRightEditChannel => 'Изменять канал';
|
||
|
||
@override
|
||
String get adminRightEditInfoHint => 'Фото, название, описание';
|
||
|
||
@override
|
||
String get channelRightCreatePosts => 'Публиковать посты';
|
||
|
||
@override
|
||
String get channelRightEditPosts => 'Редактировать чужие посты';
|
||
|
||
@override
|
||
String get channelRightDeletePosts => 'Удалять чужие посты';
|
||
|
||
@override
|
||
String get channelRightPinPosts => 'Закреплять посты';
|
||
|
||
@override
|
||
String get channelRightManageFollowers => 'Добавлять и удалять подписчиков';
|
||
|
||
@override
|
||
String get channelRightViewStats => 'Смотреть статистику канала';
|
||
|
||
@override
|
||
String get adminRightManageAdmins => 'Назначать и снимать администраторов';
|
||
|
||
@override
|
||
String get adminRightManageAdminsHint =>
|
||
'Сможет снимать только тех администраторов, которых назначил сам';
|
||
|
||
@override
|
||
String get adminAppointAction => 'Назначить администратором';
|
||
|
||
@override
|
||
String get adminSave => 'Сохранить';
|
||
|
||
@override
|
||
String get adminAppointed => 'Администратор назначен';
|
||
|
||
@override
|
||
String get adminSaved => 'Права сохранены';
|
||
|
||
@override
|
||
String get ownershipTransfer => 'Передать права владельца';
|
||
|
||
@override
|
||
String ownershipTransferConfirm(String name) {
|
||
return '$name станет новым владельцем.';
|
||
}
|
||
|
||
@override
|
||
String get ownershipTransferAction => 'Передать';
|
||
|
||
@override
|
||
String get ownershipTransferred => 'Права владельца переданы';
|
||
|
||
@override
|
||
String get adminRemove => 'Снять с администраторов';
|
||
|
||
@override
|
||
String adminRemoveConfirm(String name) {
|
||
return '$name больше не будет администратором.';
|
||
}
|
||
|
||
@override
|
||
String get adminRemoveAction => 'Снять';
|
||
|
||
@override
|
||
String get adminRemoved => 'Снят с администраторов';
|
||
|
||
@override
|
||
String get adminActionFailed => 'Не удалось применить изменения';
|
||
|
||
@override
|
||
String get channelInviteSendInMax => 'Отправить в ИКАР';
|
||
|
||
@override
|
||
String get channelInviteShowQr => 'Показать QR-код';
|
||
|
||
@override
|
||
String get channelInviteRevoke => 'Перевыпустить ссылку';
|
||
|
||
@override
|
||
String get channelInviteRevokeConfirm =>
|
||
'Текущая ссылка перестанет работать, вступить можно будет только по новой.';
|
||
|
||
@override
|
||
String get channelInviteRevokeAction => 'Перевыпустить';
|
||
|
||
@override
|
||
String get channelInviteRevoked => 'Ссылка перевыпущена';
|
||
|
||
@override
|
||
String get channelJoinRequests => 'Заявки на вступление';
|
||
|
||
@override
|
||
String get channelJoinRequestsHint =>
|
||
'Вступить в канал можно будет только после одобрения заявки администратором';
|
||
|
||
@override
|
||
String get groupPickAdminTitle => 'Выберите участника';
|
||
|
||
@override
|
||
String get groupRightEditInfo => 'Изменять чат';
|
||
|
||
@override
|
||
String get groupRightDeleteMessages => 'Удалять сообщения';
|
||
|
||
@override
|
||
String get groupRightPinMessages => 'Закреплять сообщения';
|
||
|
||
@override
|
||
String get groupRightManageMembers => 'Добавлять и удалять участников';
|
||
|
||
@override
|
||
String get groupRightEditLink => 'Обновлять ссылку на чат';
|
||
|
||
@override
|
||
String get groupSettingsTitle => 'Настройки группы';
|
||
|
||
@override
|
||
String get groupSettingsName => 'Название чата';
|
||
|
||
@override
|
||
String get groupSettingsDescription => 'Описание чата';
|
||
|
||
@override
|
||
String get groupSettingsSaved => 'Изменения сохранены';
|
||
|
||
@override
|
||
String get groupSettingsPhotoUpdated => 'Фото обновлено';
|
||
|
||
@override
|
||
String get groupSettingsPhotoTooLarge =>
|
||
'Картинка слишком большая (макс 8 МБ)';
|
||
|
||
@override
|
||
String get groupSettingsLeave => 'Покинуть чат';
|
||
|
||
@override
|
||
String get reactionsTitle => 'Реакции';
|
||
|
||
@override
|
||
String get reactionsSummaryAll => 'Все';
|
||
|
||
@override
|
||
String get reactionsSummaryOff => 'Выключены';
|
||
|
||
@override
|
||
String reactionsSummaryCount(int allowed, int total) {
|
||
return '$allowed из $total';
|
||
}
|
||
|
||
@override
|
||
String get reactionsEnable => 'Включить реакции';
|
||
|
||
@override
|
||
String get reactionsCountHeader => 'Количество реакций к публикации';
|
||
|
||
@override
|
||
String reactionsCountValue(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count реакции',
|
||
many: '$count реакций',
|
||
few: '$count реакции',
|
||
one: '$count реакция',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get reactionsAllowedHeader => 'Разрешённые реакции';
|
||
|
||
@override
|
||
String get reactionsEdit => 'Изменить';
|
||
|
||
@override
|
||
String get reactionsDone => 'Готово';
|
||
|
||
@override
|
||
String get reactionsReset => 'Сбросить настройки реакций';
|
||
|
||
@override
|
||
String get reactionsLoadFailed => 'Не удалось загрузить настройки реакций';
|
||
|
||
@override
|
||
String get reactionsNoneAllowed => 'Оставьте хотя бы одну реакцию';
|
||
|
||
@override
|
||
String get memberPermissionsTitle => 'Разрешения участников';
|
||
|
||
@override
|
||
String get memberPermissionEditInfo =>
|
||
'Изменять название, фото и описание чата';
|
||
|
||
@override
|
||
String get memberPermissionAddMembers => 'Добавлять участников';
|
||
|
||
@override
|
||
String get memberPermissionPin => 'Закреплять сообщения';
|
||
|
||
@override
|
||
String get memberPermissionInvite => 'Приглашать по ссылке';
|
||
|
||
@override
|
||
String get memberPermissionCall => 'Звонить в чате';
|
||
|
||
@override
|
||
String get ownerLeaveTitle => 'Вы владелец';
|
||
|
||
@override
|
||
String get ownerLeaveChannelMessage =>
|
||
'Чтобы покинуть канал, сначала передайте права владельца другому подписчику.';
|
||
|
||
@override
|
||
String get ownerLeaveGroupMessage =>
|
||
'Чтобы покинуть группу, сначала передайте права владельца другому участнику.';
|
||
|
||
@override
|
||
String get ownershipPickTitle => 'Новый владелец';
|
||
|
||
@override
|
||
String get ownershipPickEmpty => 'Некому передать права';
|
||
|
||
@override
|
||
String get forwardOneTitle => 'Переслать сообщение';
|
||
|
||
@override
|
||
String forwardBatchTitle(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: 'Переслать $count сообщения',
|
||
many: 'Переслать $count сообщений',
|
||
few: 'Переслать $count сообщения',
|
||
one: 'Переслать $count сообщение',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get forwardCommentHint => 'Добавить комментарий...';
|
||
|
||
@override
|
||
String get forwardOffline => 'Нет соединения';
|
||
|
||
@override
|
||
String get forwardFailed => 'Не удалось переслать';
|
||
|
||
@override
|
||
String forwardDelivered(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: 'Переслано в $count чата',
|
||
many: 'Переслано в $count чатов',
|
||
few: 'Переслано в $count чата',
|
||
one: 'Переслано в $count чат',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String forwardDeliveredPartly(int delivered, int failed) {
|
||
return 'Переслано в $delivered, не удалось в $failed';
|
||
}
|
||
|
||
@override
|
||
String get reactionUnavailable => 'Эта реакция недоступна в чате';
|
||
|
||
@override
|
||
String get membersSearchMore => 'Искать среди остальных';
|
||
|
||
@override
|
||
String get groupRestrictionsTitle => 'Ограничения';
|
||
|
||
@override
|
||
String get groupRestrictionForward => 'Запретить пересылку';
|
||
|
||
@override
|
||
String get groupRestrictionForwardHint =>
|
||
'Сообщения из этого чата нельзя будет переслать';
|
||
|
||
@override
|
||
String get groupRestrictionCopy => 'Запретить копирование';
|
||
|
||
@override
|
||
String get groupRestrictionCopyHint =>
|
||
'Текст сообщений нельзя будет скопировать';
|
||
|
||
@override
|
||
String get groupRestrictionConfirmSend => 'Подтверждать отправку';
|
||
|
||
@override
|
||
String get groupRestrictionConfirmSendHint =>
|
||
'Перед отправкой каждого сообщения будет появляться подтверждение';
|
||
|
||
@override
|
||
String get accountSwitchFailed => 'Не удалось переключить аккаунт';
|
||
|
||
@override
|
||
String get accountSessionLostTitle => 'Нужно войти заново';
|
||
|
||
@override
|
||
String accountSessionLostBody(String name) {
|
||
return 'Сессия аккаунта «$name» на этом устройстве больше не действует.';
|
||
}
|
||
|
||
@override
|
||
String get accountSessionLostSignIn => 'Войти';
|
||
|
||
@override
|
||
String get accountSessionLostRemove => 'Удалить с устройства';
|
||
|
||
@override
|
||
String get accountSessionLostRemoved => 'Аккаунт удалён с устройства';
|
||
|
||
@override
|
||
String get contactsNfcExchange => 'Обмен по NFC';
|
||
|
||
@override
|
||
String get contactsFindUser => 'Добавить контакт';
|
||
|
||
@override
|
||
String get contactDeleted => 'Контакт удалён';
|
||
|
||
@override
|
||
String get contactDeleteFailed => 'Не удалось удалить контакт';
|
||
|
||
@override
|
||
String get contactLocalPhotoChoose => 'Выбрать фото';
|
||
|
||
@override
|
||
String get contactLocalPhotoReset => 'Вернуть фото профиля';
|
||
|
||
@override
|
||
String get contactLocalPhotoSaved => 'Фото видно только вам';
|
||
|
||
@override
|
||
String get contactLocalPhotoFailed => 'Не удалось обработать изображение';
|
||
|
||
@override
|
||
String get contactLocalPhotoTooLarge =>
|
||
'Картинка слишком большая (макс. 8 МБ)';
|
||
|
||
@override
|
||
String get channelTypeTitle => 'Тип канала и ссылка';
|
||
|
||
@override
|
||
String get channelCreatedTitle => 'Приватный канал создан';
|
||
|
||
@override
|
||
String get channelCreatedSubtitle => 'Его уже можно настроить';
|
||
|
||
@override
|
||
String get channelTypePrivate => 'Приватный';
|
||
|
||
@override
|
||
String get channelTypePrivateHint => 'Канал доступен только по ссылке';
|
||
|
||
@override
|
||
String get channelTypePublic => 'Публичный';
|
||
|
||
@override
|
||
String get channelTypePublicHint => 'Канал можно найти в поиске';
|
||
|
||
@override
|
||
String get channelTypePublicUnavailable => 'Публичные каналы пока недоступны';
|
||
|
||
@override
|
||
String get channelInviteLinkCaption => 'Ссылка-приглашение в ваш канал';
|
||
|
||
@override
|
||
String get channelBusinessTitle => 'Публичный для бизнеса';
|
||
|
||
@override
|
||
String get channelBusinessHint =>
|
||
'Для юрлиц, ИП, самозанятых и госорганизаций';
|
||
|
||
@override
|
||
String get channelSettingsTitle => 'Настройки канала';
|
||
|
||
@override
|
||
String get channelSettingsName => 'Название канала';
|
||
|
||
@override
|
||
String get channelSettingsDescription => 'Описание канала';
|
||
|
||
@override
|
||
String get channelConfirmPosting => 'Подтверждать публикацию';
|
||
|
||
@override
|
||
String get channelConfirmPostingHint =>
|
||
'Чтобы перепроверить пост и избежать ошибок';
|
||
|
||
@override
|
||
String get channelComments => 'Комментарии';
|
||
|
||
@override
|
||
String get channelCommentsEnableTitle => 'Комментарии — часть вашего канала';
|
||
|
||
@override
|
||
String get channelCommentsEnableMessage =>
|
||
'Следите за обсуждениями и поддерживайте порядок: комментарии можно удалять, а пользователей — ограничивать';
|
||
|
||
@override
|
||
String get channelCommentsEnable => 'Включить';
|
||
|
||
@override
|
||
String get channelCommentsKeepOff => 'Не включать';
|
||
|
||
@override
|
||
String get channelDelete => 'Удалить канал';
|
||
|
||
@override
|
||
String get channelDeleteTitle => 'Удалить канал?';
|
||
|
||
@override
|
||
String get channelDeleteMessage =>
|
||
'Чтобы канал не удалился у всех подписчиков, можно передать права другому владельцу';
|
||
|
||
@override
|
||
String get channelDeleteTransfer => 'Передать права и выйти';
|
||
|
||
@override
|
||
String get followerRemove => 'Удалить';
|
||
|
||
@override
|
||
String get followerRemoveTitle => 'Удалить подписчика';
|
||
|
||
@override
|
||
String followerRemoveConfirm(String name) {
|
||
return '$name больше не будет подписан на канал.';
|
||
}
|
||
|
||
@override
|
||
String get followerRemoved => 'Подписчик удалён';
|
||
|
||
@override
|
||
String get channelReadyTitle => 'Канал готов';
|
||
|
||
@override
|
||
String get channelReadyHint => 'Публикуйте посты и приглашайте подписчиков';
|
||
|
||
@override
|
||
String get groupReadyTitle => 'Группа готова';
|
||
|
||
@override
|
||
String get groupReadyHint =>
|
||
'Напишите первое сообщение и пригласите участников';
|
||
|
||
@override
|
||
String get botStart => 'Начать';
|
||
|
||
@override
|
||
String get memberRemoveTitle => 'Удалить участника';
|
||
|
||
@override
|
||
String memberRemoveConfirm(String name) {
|
||
return '$name будет удалён из группы.';
|
||
}
|
||
|
||
@override
|
||
String get memberRemoved => 'Участник удалён';
|
||
|
||
@override
|
||
String get chatScreenReactionUpdateFailed => 'Не удалось обновить реакцию';
|
||
|
||
@override
|
||
String get chatScreenBotStartFailed => 'Не удалось запустить бота';
|
||
|
||
@override
|
||
String get chatScreenMessageNotLoaded => 'Сообщение не загружено';
|
||
|
||
@override
|
||
String get chatScreenMarkUnreadFailed => 'Не удалось пометить непрочитанным';
|
||
|
||
@override
|
||
String get chatScreenMessagePinned => 'Сообщение закреплено';
|
||
|
||
@override
|
||
String get chatScreenNothingToForward => 'Нечего пересылать';
|
||
|
||
@override
|
||
String get chatScreenDeleteMessagesFailed => 'Не удалось удалить сообщения';
|
||
|
||
@override
|
||
String get chatScreenDeleteMessageTitle => 'Удалить сообщение';
|
||
|
||
@override
|
||
String get chatScreenDeleteMessageConfirm =>
|
||
'Вы точно хотите удалить это сообщение?';
|
||
|
||
@override
|
||
String chatScreenDeleteAlsoFor(String name) {
|
||
return 'Также удалить для $name';
|
||
}
|
||
|
||
@override
|
||
String get chatScreenMenuMute => 'Отключить уведомления';
|
||
|
||
@override
|
||
String get chatScreenMenuChangeWallpaper => 'Изменить обои';
|
||
|
||
@override
|
||
String get chatScreenMenuEncryption => 'Шифрование сообщений';
|
||
|
||
@override
|
||
String get chatScreenChatLinkUnavailable => 'Не удалось получить ссылку чата';
|
||
|
||
@override
|
||
String get chatScreenSubscribeFailed => 'Не удалось подписаться';
|
||
|
||
@override
|
||
String get chatScreenJoinFailed => 'Не удалось вступить';
|
||
|
||
@override
|
||
String get chatScreenWallpaperSaveFailed => 'Не удалось сохранить обои';
|
||
|
||
@override
|
||
String get chatScreenCallsDialogsOnly => 'Звонки доступны только в диалогах';
|
||
|
||
@override
|
||
String chatScreenMembersCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count участника',
|
||
many: '$count участников',
|
||
few: '$count участника',
|
||
one: '$count участник',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String chatScreenSubscribersCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count подписчика',
|
||
many: '$count подписчиков',
|
||
few: '$count подписчика',
|
||
one: '$count подписчик',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get chatScreenFormatHeading => 'Заголовок';
|
||
|
||
@override
|
||
String get chatScreenFormatBold => 'Жирный';
|
||
|
||
@override
|
||
String get chatScreenFormatItalic => 'Курсив';
|
||
|
||
@override
|
||
String get chatScreenFormatUnderline => 'Подчёркнутый';
|
||
|
||
@override
|
||
String get chatScreenFormatStrikethrough => 'Зачёркнутый';
|
||
|
||
@override
|
||
String get chatScreenFormatMonospace => 'Моноширинный';
|
||
|
||
@override
|
||
String get chatScreenFormatQuote => 'Цитата';
|
||
|
||
@override
|
||
String get chatScreenFormatMention => 'Упоминание';
|
||
|
||
@override
|
||
String get chatScreenMessageTooLong =>
|
||
'Слишком длинное сообщение. Разделите на несколько';
|
||
|
||
@override
|
||
String get chatScreenEncryptionKeyMissing => 'Не задан ключ шифрования';
|
||
|
||
@override
|
||
String get chatScreenPluginFilesEncryptUnsupported =>
|
||
'Файлы плагинов пока нельзя зашифровать';
|
||
|
||
@override
|
||
String chatScreenCommandMissingArgument(String name, String usage) {
|
||
return 'Не указан аргумент $name. Формат: $usage';
|
||
}
|
||
|
||
@override
|
||
String chatScreenPluginError(String error) {
|
||
return 'Ошибка плагина: $error';
|
||
}
|
||
|
||
@override
|
||
String chatScreenCommandFillField(String name) {
|
||
return 'Заполните поле $name';
|
||
}
|
||
|
||
@override
|
||
String chatScreenScheduledFor(String when) {
|
||
return 'Запланировано на $when';
|
||
}
|
||
|
||
@override
|
||
String get chatScreenScheduleFailed => 'Не удалось запланировать сообщение';
|
||
|
||
@override
|
||
String get chatScreenMessageNotSentYet => 'Сообщение ещё не отправлено';
|
||
|
||
@override
|
||
String get chatScreenChannelUnavailable => 'Канал недоступен';
|
||
|
||
@override
|
||
String get chatScreenChannelFallback => 'Канал';
|
||
|
||
@override
|
||
String get chatScreenNoEncryptFiles => 'Файлы пока нельзя зашифровать';
|
||
|
||
@override
|
||
String get chatScreenNoEncryptLocation =>
|
||
'Геолокацию пока нельзя зашифровать';
|
||
|
||
@override
|
||
String get chatScreenNoEncryptPolls => 'Опросы пока нельзя зашифровать';
|
||
|
||
@override
|
||
String get chatScreenNoEncryptContacts => 'Контакты пока нельзя зашифровать';
|
||
|
||
@override
|
||
String get stickerPackSheetRemoved => 'Стикерпак удалён';
|
||
|
||
@override
|
||
String get stickerPackSheetAdded => 'Стикерпак добавлен';
|
||
|
||
@override
|
||
String get stickerPackSheetActionFailed => 'Не удалось выполнить действие';
|
||
|
||
@override
|
||
String get stickerPackSheetLinkUnavailable => 'Ссылка недоступна';
|
||
|
||
@override
|
||
String stickerPackSheetForwardedTo(String chat) {
|
||
return 'Переслано в «$chat»';
|
||
}
|
||
|
||
@override
|
||
String get stickerPackSheetUnavailable => 'Стикерпак недоступен';
|
||
|
||
@override
|
||
String stickerPackSheetStickerCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count стикера',
|
||
many: '$count стикеров',
|
||
few: '$count стикера',
|
||
one: '$count стикер',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get stickerPackSheetRemove => 'Убрать';
|
||
|
||
@override
|
||
String get performanceScreenTitle => 'Производительность';
|
||
|
||
@override
|
||
String get performanceScreenLowWarning =>
|
||
'Производительность приложения может снизиться, вы уверены?';
|
||
|
||
@override
|
||
String get performanceScreenHighWarning =>
|
||
'Это врядли даст хотя-бы немного заметный прирост к FPS, но может потреблять больше памяти. Вы уверены?';
|
||
|
||
@override
|
||
String get performanceScreenCacheTitle => 'Кеш сообщений';
|
||
|
||
@override
|
||
String get performanceScreenCacheSubtitle =>
|
||
'Сколько пикселей сообщений держать построенными за пределами видимой области.';
|
||
|
||
@override
|
||
String performanceScreenCurrentExtent(int value) {
|
||
return 'Текущий cacheExtent: $value';
|
||
}
|
||
|
||
@override
|
||
String get performanceScreenLessUsage => 'Меньше потребление';
|
||
|
||
@override
|
||
String get performanceScreenMoreFps => 'Больше FPS';
|
||
|
||
@override
|
||
String get chatWallpaperSheetImageTooLarge =>
|
||
'Картинка слишком большая (макс 16 МБ)';
|
||
|
||
@override
|
||
String get chatWallpaperSheetTitle => 'Обои';
|
||
|
||
@override
|
||
String get chatWallpaperSheetSampleIncoming =>
|
||
'Как насчёт новых обоев для этого чата?';
|
||
|
||
@override
|
||
String get chatWallpaperSheetSampleOutgoing => 'Выглядит отлично 🔥';
|
||
|
||
@override
|
||
String get chatWallpaperSheetNone => 'Без обоев';
|
||
|
||
@override
|
||
String get chatWallpaperSheetYourPhoto => 'Ваше фото';
|
||
|
||
@override
|
||
String get chatWallpaperSheetFromGallery => 'Из галереи';
|
||
|
||
@override
|
||
String get maxLinkNavChatNotFound => 'Чат не найден';
|
||
|
||
@override
|
||
String get maxLinkNavProfileFallback => 'Профиль';
|
||
|
||
@override
|
||
String get maxLinkNavPlatformUnsupported =>
|
||
'На вашей платформе это недоступно';
|
||
|
||
@override
|
||
String get maxLinkNavAppFallback => 'Приложение';
|
||
|
||
@override
|
||
String get maxLinkNavNothingToSend => 'Нечего отправлять';
|
||
|
||
@override
|
||
String get maxLinkNavFolderNotFound => 'Папка не найдена';
|
||
|
||
@override
|
||
String get maxLinkNavSignInFirst => 'Сначала войдите в аккаунт';
|
||
|
||
@override
|
||
String get pollCreateValidationHint => 'Введите вопрос и минимум 2 варианта';
|
||
|
||
@override
|
||
String get pollCreateAnswersTitle => 'Варианты ответа';
|
||
|
||
@override
|
||
String get pollCreateMultipleAnswers => 'Несколько вариантов ответа';
|
||
|
||
@override
|
||
String get pollCreateAnonymous => 'Анонимное голосование';
|
||
|
||
@override
|
||
String get pollCreateTitle => 'Новый опрос';
|
||
|
||
@override
|
||
String get pollCreateSubmit => 'Создать';
|
||
|
||
@override
|
||
String get pollCreateQuestionHint => 'Задайте вопрос';
|
||
|
||
@override
|
||
String pollCreateOptionHint(int number) {
|
||
return 'Вариант $number';
|
||
}
|
||
|
||
@override
|
||
String get pollCreateAddOption => 'Добавить вариант';
|
||
|
||
@override
|
||
String get webQrLoginTitle => 'Вход по QR';
|
||
|
||
@override
|
||
String get webQrLoginMessage =>
|
||
'Вы точно хотите войти в аккаунт через веб или приложение ИКАР на компьютере?';
|
||
|
||
@override
|
||
String get webQrLoginConfirmed => 'Вход подтверждён';
|
||
|
||
@override
|
||
String webQrLoginFailed(String error) {
|
||
return 'Не удалось подтвердить вход: $error';
|
||
}
|
||
|
||
@override
|
||
String get messageActionsScreenTitle => 'Меню действий';
|
||
|
||
@override
|
||
String get messageActionsScreenRadialDescription =>
|
||
'Дуга кнопок вокруг точки нажатия';
|
||
|
||
@override
|
||
String get messageActionsScreenList => 'Список';
|
||
|
||
@override
|
||
String get messageActionsScreenListDescription =>
|
||
'Вертикальное меню рядом с сообщением';
|
||
|
||
@override
|
||
String get messageActionsScreenStyle => 'Стиль';
|
||
|
||
@override
|
||
String get messageActionsScreenStyleSubtitle =>
|
||
'Как показывается меню при долгом нажатии на сообщение';
|
||
|
||
@override
|
||
String get videoNoteBubbleTranscriptionFailed => 'Не удалось распознать';
|
||
|
||
@override
|
||
String get webAppScreenCloseConfirm => 'Закрыть мини-приложение?';
|
||
|
||
@override
|
||
String get voiceRecordUnsupported =>
|
||
'Голосовые сообщения недоступны на этой платформе';
|
||
|
||
@override
|
||
String get voiceRecordNoMicAccess => 'Нет доступа к микрофону';
|
||
|
||
@override
|
||
String get voiceRecordStartFailed => 'Не удалось начать запись';
|
||
|
||
@override
|
||
String get voiceRecordEncodeFailed => 'Не удалось закодировать запись';
|
||
|
||
@override
|
||
String get spoofScreenFullWarningTitle => 'Могут быть последствия.';
|
||
|
||
@override
|
||
String get spoofScreenFullWarningSubtitle =>
|
||
'Меняй, только если знаешь что делаешь.';
|
||
|
||
@override
|
||
String callScreenShareFailed(String error) {
|
||
return 'Трансляция не запустилась: $error';
|
||
}
|
||
|
||
@override
|
||
String get themeSettingsCustomizeAction => 'Настроить';
|
||
|
||
@override
|
||
String get chatListNavChats => 'Чаты';
|
||
|
||
@override
|
||
String get chatListNavCalls => 'Звонки';
|
||
|
||
@override
|
||
String get chatListNavContacts => 'Контакты';
|
||
|
||
@override
|
||
String get chatListShareSendFailed => 'Не удалось отправить';
|
||
|
||
@override
|
||
String chatListMuteFailedCount(int count, String error) {
|
||
return 'Не удалось изменить $count чат(ов): $error';
|
||
}
|
||
|
||
@override
|
||
String get chatListDeleteStatusChanged =>
|
||
'Статус чатов изменился, попробуйте ещё раз';
|
||
|
||
@override
|
||
String chatListDeleteChatWith(String name) {
|
||
return 'Удалить чат с $name?';
|
||
}
|
||
|
||
@override
|
||
String chatListDeleteChatsCount(int count) {
|
||
return 'Удалить $count чатов?';
|
||
}
|
||
|
||
@override
|
||
String get chatListDeleteIrreversible =>
|
||
'Восстановить переписку не получится';
|
||
|
||
@override
|
||
String chatListDeleteOwnedChat(String name) {
|
||
return 'Хотите удалить чат «$name»?';
|
||
}
|
||
|
||
@override
|
||
String chatListDeleteGroupsForAll(int count) {
|
||
return 'Удалить $count групп у всех?';
|
||
}
|
||
|
||
@override
|
||
String get chatListDeleteOwnedChatBody =>
|
||
'Передайте права владельца, чтобы остальные участники могли продолжить общение';
|
||
|
||
@override
|
||
String get chatListDeleteCannotUndo => 'Действие нельзя отменить';
|
||
|
||
@override
|
||
String get chatListDeleteChatForAll => 'Удалить чат у всех';
|
||
|
||
@override
|
||
String get chatListDeleteForAll => 'Удалить у всех';
|
||
|
||
@override
|
||
String get chatListYourStory => 'Ваша история';
|
||
|
||
@override
|
||
String get chatListAllChatsFolder => 'Все чаты';
|
||
|
||
@override
|
||
String chatListRecipientsCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count получателя',
|
||
many: '$count получателей',
|
||
few: '$count получателя',
|
||
one: '$count получатель',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get chatListSavedMessages => 'Избранное';
|
||
|
||
@override
|
||
String get chatListReadAll => 'Прочитать всё';
|
||
|
||
@override
|
||
String get chatListForwardingHint => 'Пересылка...';
|
||
|
||
@override
|
||
String get chatListEmpty => 'Кажется, тут пусто...';
|
||
|
||
@override
|
||
String get chatListOpenToLoad => 'зайдите в чат для подгрузки';
|
||
|
||
@override
|
||
String get chatListArchive => 'Архив';
|
||
|
||
@override
|
||
String get chatListNewStory => 'Новая история';
|
||
|
||
@override
|
||
String get chatListOpenVideoFailed => 'Не удалось открыть видео';
|
||
|
||
@override
|
||
String get chatListOpenPhotoFailed => 'Не удалось открыть фото';
|
||
|
||
@override
|
||
String get chatListDraftPrefix => 'Черновик: ';
|
||
|
||
@override
|
||
String get chatListPreviewWrongKey => 'неверный ключ';
|
||
|
||
@override
|
||
String get chatListPreviewUnavailable => 'недоступно на этом устройстве';
|
||
|
||
@override
|
||
String get chatListMessagePerson => 'Написать человеку';
|
||
|
||
@override
|
||
String get chatListCreateGroup => 'Создать группу';
|
||
|
||
@override
|
||
String get chatListCreateChannel => 'Создать канал';
|
||
|
||
@override
|
||
String get chatListCreateContact => 'Создать контакт';
|
||
|
||
@override
|
||
String get chatListCreateFolder => 'Создать папку';
|
||
|
||
@override
|
||
String get chatListMessageAction => 'Написать';
|
||
|
||
@override
|
||
String get chatListNoUnreadChats => 'Непрочитанных чатов нет';
|
||
|
||
@override
|
||
String get chatListAllMarkedRead => 'Все чаты отмечены прочитанными';
|
||
|
||
@override
|
||
String get callsTabStatusMissed => 'Пропущенный';
|
||
|
||
@override
|
||
String get callsTabStatusCanceled => 'Отменённый';
|
||
|
||
@override
|
||
String get callsTabStatusOutgoing => 'Исходящий';
|
||
|
||
@override
|
||
String get callsTabStatusIncoming => 'Входящий';
|
||
|
||
@override
|
||
String get callsTabCallBack => 'Перезвонить';
|
||
|
||
@override
|
||
String get callsTabPeerUnknown => 'Не удалось определить собеседника';
|
||
|
||
@override
|
||
String get callsTabAlreadyInCall => 'Звонок уже идёт';
|
||
|
||
@override
|
||
String callsTabStartFailed(String error) {
|
||
return 'Не удалось начать звонок: $error';
|
||
}
|
||
|
||
@override
|
||
String get callsTabJoinTitle => 'Присоединиться к звонку';
|
||
|
||
@override
|
||
String get callsTabJoinDescription => 'Вставьте ссылку-приглашение';
|
||
|
||
@override
|
||
String get callsTabNotACallLink => 'Это не ссылка на звонок';
|
||
|
||
@override
|
||
String get callsTabCreateCall => 'Создать звонок';
|
||
|
||
@override
|
||
String get callsTabMissed => 'Пропущенные';
|
||
|
||
@override
|
||
String get callsTabEmpty => 'Нет звонков';
|
||
|
||
@override
|
||
String get chatEncryptionProfileNotLoaded => 'Профиль ещё не загружен';
|
||
|
||
@override
|
||
String get chatEncryptionEnterKeyHint => 'Введите ключ шифрования';
|
||
|
||
@override
|
||
String get chatEncryptionEnabled => 'Шифрование включено';
|
||
|
||
@override
|
||
String get chatEncryptionDisabled => 'Шифрование отключено';
|
||
|
||
@override
|
||
String get chatEncryptionTitle => 'Шифрование сообщений';
|
||
|
||
@override
|
||
String get chatEncryptionToggle => 'Шифровать сообщения';
|
||
|
||
@override
|
||
String get chatEncryptionToggleSubtitle =>
|
||
'Текст сообщений в этом чате будет зашифрован ключом ниже';
|
||
|
||
@override
|
||
String get chatEncryptionKeyLabel => 'Ключ';
|
||
|
||
@override
|
||
String get chatEncryptionKeyHint => 'Введите ключ';
|
||
|
||
@override
|
||
String get chatEncryptionKeyNote =>
|
||
'Ключ хранится только на этом устройстве. Собеседник должен ввести такой же ключ, иначе он не прочитает сообщения. Это парольный режим для групп: без forward secrecy, любой, кто знает пароль, читает всю историю.';
|
||
|
||
@override
|
||
String get storyViewerDeleteTitle => 'Удалить историю?';
|
||
|
||
@override
|
||
String get storyViewerDeleteMessage =>
|
||
'История пропадёт у всех, кто может её посмотреть.';
|
||
|
||
@override
|
||
String get storyViewerDeleteFailed => 'Не удалось удалить историю';
|
||
|
||
@override
|
||
String storyViewerDeleteFailedWithReason(String reason) {
|
||
return 'Не удалось удалить историю: $reason';
|
||
}
|
||
|
||
@override
|
||
String get storyViewerEmpty => 'Историй нет';
|
||
|
||
@override
|
||
String get storyViewerJustNow => 'только что';
|
||
|
||
@override
|
||
String storyViewerMinutesAgo(int count) {
|
||
return '$count мин';
|
||
}
|
||
|
||
@override
|
||
String storyViewerHoursAgo(int count) {
|
||
return '$count ч';
|
||
}
|
||
|
||
@override
|
||
String storyViewerDaysAgo(int count) {
|
||
return '$count дн';
|
||
}
|
||
|
||
@override
|
||
String get webviewPermissionCamera => 'камера';
|
||
|
||
@override
|
||
String get webviewPermissionMicrophone => 'микрофон';
|
||
|
||
@override
|
||
String get webviewPermissionCameraAndMicrophone => 'камера и микрофон';
|
||
|
||
@override
|
||
String get webviewPermissionGeolocation => 'геолокация';
|
||
|
||
@override
|
||
String get webviewPermissionOther => 'дополнительный доступ';
|
||
|
||
@override
|
||
String get webviewPermissionWebPage => 'Веб-страница';
|
||
|
||
@override
|
||
String get webviewPermissionTitle => 'Запрос доступа';
|
||
|
||
@override
|
||
String webviewPermissionMessage(String host, String resources) {
|
||
return '$host запрашивает доступ к: $resources.';
|
||
}
|
||
|
||
@override
|
||
String get webviewPermissionDeny => 'Запретить';
|
||
|
||
@override
|
||
String get createChannelFailed => 'Не удалось создать канал';
|
||
|
||
@override
|
||
String get createChannelAvatarProcessFailed =>
|
||
'Не удалось обработать аватарку';
|
||
|
||
@override
|
||
String get createChannelAvatarUploadFailed => 'Не удалось загрузить аватарку';
|
||
|
||
@override
|
||
String get createChannelDescription =>
|
||
'В канале публикуете только вы, участники читают. Пригласить их можно после создания.';
|
||
|
||
@override
|
||
String get createChannelCancel => 'Отменить';
|
||
|
||
@override
|
||
String get createChannelCreating => 'Создаю...';
|
||
|
||
@override
|
||
String get createChannelCreate => 'Создать';
|
||
|
||
@override
|
||
String get codeConfirmationConnectionDropped =>
|
||
'Соединение прервалось, восстанавливаем…';
|
||
|
||
@override
|
||
String get codeConfirmationNoConnection => 'Нет соединения с сервером';
|
||
|
||
@override
|
||
String get codeConfirmationConnectionRestored => 'Соединение восстановлено';
|
||
|
||
@override
|
||
String codeConfirmationReconnectFailed(String error) {
|
||
return 'Не удалось восстановить соединение: $error';
|
||
}
|
||
|
||
@override
|
||
String codeConfirmationRefreshFailed(String error) {
|
||
return 'Не удалось обновить код: $error';
|
||
}
|
||
|
||
@override
|
||
String get codeConfirmationNewCodeSent => 'Выслали новый код';
|
||
|
||
@override
|
||
String get codeConfirmationSmsNoToken => 'SMS-вход: сервер не вернул токен';
|
||
|
||
@override
|
||
String get codeConfirmationCodeExpired => 'Код устарел — выслали новый';
|
||
|
||
@override
|
||
String get pollViewVoteFailed => 'Не удалось проголосовать';
|
||
|
||
@override
|
||
String get pollViewLoading => 'Загрузка опроса…';
|
||
|
||
@override
|
||
String get pollViewMultipleAnswers => 'Несколько вариантов ответа';
|
||
|
||
@override
|
||
String get pollViewSingleAnswer => 'Один вариант ответа';
|
||
|
||
@override
|
||
String pollViewVotesCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count голоса',
|
||
many: '$count голосов',
|
||
few: '$count голоса',
|
||
one: '$count голос',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get pollViewVote => 'Проголосовать';
|
||
|
||
@override
|
||
String get customizationChatBackground => 'Фон чатов';
|
||
|
||
@override
|
||
String get customizationMessageActions => 'Меню действий';
|
||
|
||
@override
|
||
String get customizationAppIcon => 'Иконка приложения';
|
||
|
||
@override
|
||
String get customizationTitle => 'Кастомизация';
|
||
|
||
@override
|
||
String get messageStatusSizeTitle => 'Галочки сообщений';
|
||
|
||
@override
|
||
String get messageStatusSizeLabel => 'Размер галочек';
|
||
|
||
@override
|
||
String get messageStatusSizeSubtitle =>
|
||
'Плавно увеличивайте галочки отправки, доставки и прочтения максимум на 50%.';
|
||
|
||
@override
|
||
String get messageStatusSizePreview => 'Предпросмотр';
|
||
|
||
@override
|
||
String get messageStatusSizeSent => 'Отправлено';
|
||
|
||
@override
|
||
String get messageStatusSizeDelivered => 'Доставлено';
|
||
|
||
@override
|
||
String get messageStatusSizeRead => 'Прочитано';
|
||
|
||
@override
|
||
String get folderActionNewFolder => 'Новая папка';
|
||
|
||
@override
|
||
String folderActionDeleteConfirm(String title) {
|
||
return 'Удалить папку «$title»? Чаты останутся на месте.';
|
||
}
|
||
|
||
@override
|
||
String get folderActionDeleteFailed => 'Не удалось удалить папку';
|
||
|
||
@override
|
||
String get webAppBiometryAccessNotice =>
|
||
'Мини-приложение сможет запрашивать подтверждение отпечатком или лицом.';
|
||
|
||
@override
|
||
String get webAppBiometryAuthReason =>
|
||
'Подтвердите действие в мини-приложении';
|
||
|
||
@override
|
||
String get webAppBiometryAccessTitle => 'Разрешить биометрию?';
|
||
|
||
@override
|
||
String get webAppPhoneRequestTitle => 'Передать номер телефона?';
|
||
|
||
@override
|
||
String get webAppPhoneRequestMessage =>
|
||
'Мини-приложение получит ваш номер телефона.';
|
||
|
||
@override
|
||
String get webAppPhoneRequestShare => 'Поделиться';
|
||
|
||
@override
|
||
String get promptDialogConfirm => 'Подтвердить';
|
||
|
||
@override
|
||
String get emojiPanelLoadFailed => 'Не удалось загрузить эмодзи';
|
||
|
||
@override
|
||
String get emojiPanelEmpty => 'Нет эмодзи';
|
||
|
||
@override
|
||
String get mediaPreviewEditorOpenFailed => 'Не удалось открыть редактор';
|
||
|
||
@override
|
||
String get fontSettingsSampleText => 'Съешь ещё этих мягких булок';
|
||
|
||
@override
|
||
String get callParticipantsNoServer => 'Нет связи с сервером звонка';
|
||
|
||
@override
|
||
String callParticipantsActionFailed(String error) {
|
||
return 'Не удалось: $error';
|
||
}
|
||
|
||
@override
|
||
String get callParticipantsMuteMic => 'Выключить микрофон';
|
||
|
||
@override
|
||
String get callParticipantsRequestCamera => 'Запросить камеру';
|
||
|
||
@override
|
||
String get callParticipantsRevokeAdmin => 'Снять администратора';
|
||
|
||
@override
|
||
String get callParticipantsRevokeSpeaker => 'Убрать из спикеров';
|
||
|
||
@override
|
||
String get callParticipantsMakeSpeaker => 'Сделать спикером';
|
||
|
||
@override
|
||
String get callParticipantsPromote => 'Повысить (promote)';
|
||
|
||
@override
|
||
String get callParticipantsDemote => 'Понизить (demote)';
|
||
|
||
@override
|
||
String get callParticipantsRemoveFromCall => 'Удалить из звонка';
|
||
|
||
@override
|
||
String get callParticipantsCallSettings => 'Настройки звонка';
|
||
|
||
@override
|
||
String get callParticipantsFeatureAccess => 'Кому доступны функции';
|
||
|
||
@override
|
||
String get callParticipantsInviteLink => 'Ссылка-приглашение участника';
|
||
|
||
@override
|
||
String get callParticipantsOptionAuthOnly => 'Только авторизованные';
|
||
|
||
@override
|
||
String get callParticipantsOptionWaitingHall => 'Зал ожидания';
|
||
|
||
@override
|
||
String get callParticipantsOptionRecurring => 'Повторяющийся звонок';
|
||
|
||
@override
|
||
String get callParticipantsOptionFeedback => 'Сбор отзывов';
|
||
|
||
@override
|
||
String get callParticipantsOptionAudienceMode => 'Режим зрителей';
|
||
|
||
@override
|
||
String get callParticipantsSpeechTranscription => 'Расшифровка речи';
|
||
|
||
@override
|
||
String get callParticipantsOptionWaitForAdmin => 'Ждать администратора';
|
||
|
||
@override
|
||
String get callParticipantsOptionAdminIsHere => 'Администратор на месте';
|
||
|
||
@override
|
||
String get callParticipantsFeatureMovieShare => 'Совместный просмотр';
|
||
|
||
@override
|
||
String get callParticipantsCallRecording => 'Запись звонка';
|
||
|
||
@override
|
||
String get callParticipantsFeatureSpeaker => 'Быть спикером';
|
||
|
||
@override
|
||
String callParticipantsTitle(int count) {
|
||
return 'Участники · $count';
|
||
}
|
||
|
||
@override
|
||
String get callParticipantsMuteAll => 'Заглушить всех';
|
||
|
||
@override
|
||
String get callParticipantsLowerAllHands => 'Опустить руки';
|
||
|
||
@override
|
||
String get callParticipantsLowerHand => 'Опустить руку';
|
||
|
||
@override
|
||
String get callParticipantsRaiseHand => 'Поднять руку';
|
||
|
||
@override
|
||
String get callParticipantsStopRecording => 'Остановить запись';
|
||
|
||
@override
|
||
String get callParticipantsStartRecording => 'Начать запись';
|
||
|
||
@override
|
||
String get callParticipantsRolePermissions => 'Права ролей';
|
||
|
||
@override
|
||
String get callParticipantsAddByLink => 'Добавить по ссылке';
|
||
|
||
@override
|
||
String get callParticipantsCreator => 'Создатель';
|
||
|
||
@override
|
||
String get callParticipantsAdmin => 'Администратор';
|
||
|
||
@override
|
||
String get callParticipantsSpeaker => 'Спикер';
|
||
|
||
@override
|
||
String get callParticipantsHandRaised => 'Поднял руку';
|
||
|
||
@override
|
||
String get chatMediaSendEnableLocation => 'Включите геолокацию';
|
||
|
||
@override
|
||
String get chatMediaSendNoLocationAccess => 'Нет доступа к геолокации';
|
||
|
||
@override
|
||
String get chatMediaSendLocationFailed => 'Не удалось получить геопозицию';
|
||
|
||
@override
|
||
String get chatMediaSendScheduledEncryptedPhotos =>
|
||
'Отложенные фото в зашифрованном чате пока не поддерживаются';
|
||
|
||
@override
|
||
String get chatMediaSendVideoNotEncryptable =>
|
||
'Видео пока нельзя зашифровать';
|
||
|
||
@override
|
||
String get chatMediaSendPhotoEncryptFailed => 'Не удалось зашифровать фото';
|
||
|
||
@override
|
||
String get chatMediaSendNoEncryptionKey => 'Не задан ключ шифрования';
|
||
|
||
@override
|
||
String get chatMediaSendNoUploadUrl => 'сервер не выдал ссылку';
|
||
|
||
@override
|
||
String get chatMediaSendUploadRejected => 'загрузка отклонена';
|
||
|
||
@override
|
||
String get chatMediaSendServerRejected => 'сервер не принял сообщение';
|
||
|
||
@override
|
||
String chatMediaSendFileFailed(String detail) {
|
||
return 'Файл не отправлен: $detail';
|
||
}
|
||
|
||
@override
|
||
String chatMediaSendVideoNoteFailed(String detail) {
|
||
return 'Кружок не отправлен: $detail';
|
||
}
|
||
|
||
@override
|
||
String chatMediaSendVoiceFailed(String detail) {
|
||
return 'Голосовое не отправлено: $detail';
|
||
}
|
||
|
||
@override
|
||
String chatMediaSendPhotoFailed(String detail) {
|
||
return 'Фото не отправлено: $detail';
|
||
}
|
||
|
||
@override
|
||
String chatMediaSendVideoFailed(String detail) {
|
||
return 'Видео не отправлено: $detail';
|
||
}
|
||
|
||
@override
|
||
String get chatMediaSendScheduled => 'Запланировано';
|
||
|
||
@override
|
||
String chatMediaSendScheduledAt(String date) {
|
||
return 'Запланировано на $date';
|
||
}
|
||
|
||
@override
|
||
String get chatMediaSendScheduleFailed => 'Не удалось запланировать';
|
||
|
||
@override
|
||
String get messageListToday => 'Сегодня';
|
||
|
||
@override
|
||
String get messageListYesterday => 'Вчера';
|
||
|
||
@override
|
||
String messageListDateThisYear(DateTime date) {
|
||
final intl.DateFormat dateDateFormat = intl.DateFormat.MMMMd(localeName);
|
||
final String dateString = dateDateFormat.format(date);
|
||
|
||
return '$dateString';
|
||
}
|
||
|
||
@override
|
||
String messageListDateOtherYear(DateTime date) {
|
||
final intl.DateFormat dateDateFormat = intl.DateFormat(
|
||
'd MMMM y',
|
||
localeName,
|
||
);
|
||
final String dateString = dateDateFormat.format(date);
|
||
|
||
return '$dateString';
|
||
}
|
||
|
||
@override
|
||
String get messageListUnreadMessages => 'Непрочитанные сообщения';
|
||
|
||
@override
|
||
String get photoViewerSavedToGallery => 'Сохранено в галерею';
|
||
|
||
@override
|
||
String photoViewerSavedTo(String path) {
|
||
return 'Сохранено: $path';
|
||
}
|
||
|
||
@override
|
||
String get photoViewerSaveFileFailed => 'Не удалось сохранить файл';
|
||
|
||
@override
|
||
String get photoViewerFileSaved => 'Файл сохранён';
|
||
|
||
@override
|
||
String get photoViewerErrorNoLink => 'нет ссылки';
|
||
|
||
@override
|
||
String get photoViewerErrorNoMedia => 'нет медиа';
|
||
|
||
@override
|
||
String get photoViewerMediaLoadFailed => 'Не удалось загрузить медиа';
|
||
|
||
@override
|
||
String get avatarPhotoLoadFailed => 'Не удалось загрузить фото';
|
||
|
||
@override
|
||
String get avatarPhotoDeleteTitle => 'Удалить фото?';
|
||
|
||
@override
|
||
String get avatarPhotoDeleteBody =>
|
||
'Фотография пропадёт из профиля и из истории аватарок.';
|
||
|
||
@override
|
||
String loginScreenReconnectFailed(String error) {
|
||
return 'Не удалось переподключиться: $error';
|
||
}
|
||
|
||
@override
|
||
String get loginScreenSmsWarningTitle =>
|
||
'ЕСЛИ НА ВАШЕМ АККАУНТЕ НЕТ 2FA ВСЕ СЕССИИ БУДУТ СБРОШЕНЫ';
|
||
|
||
@override
|
||
String get loginScreenSmsWarningBody =>
|
||
'Способ экспериментальный, его использование на ваш страх и риск.';
|
||
|
||
@override
|
||
String get loginScreenOfflineWait =>
|
||
'Нет соединения с сервером. Подождите подключения.';
|
||
|
||
@override
|
||
String get loginScreenOfflineRetry =>
|
||
'Нет соединения с сервером. Попробуйте ещё раз.';
|
||
|
||
@override
|
||
String get loginScreenConnecting => 'Подключаемся к серверу, секунду…';
|
||
|
||
@override
|
||
String get loginScreenAlwaysSendSms => 'Всегда слать СМС (ЭКСПЕРИМЕНТАЛЬНО)';
|
||
|
||
@override
|
||
String get editProfileNameEmpty => 'Имя не может быть пустым';
|
||
|
||
@override
|
||
String get editProfileSaved => 'Профиль сохранён';
|
||
|
||
@override
|
||
String get editProfileAvatarUploadFailed => 'Не удалось загрузить аватарку';
|
||
|
||
@override
|
||
String get editProfileAvatarUpdated => 'Аватарка обновлена';
|
||
|
||
@override
|
||
String get editProfilePhotoDeleted => 'Фото удалено';
|
||
|
||
@override
|
||
String get findUserInvalidPhone => 'Введите корректный номер телефона';
|
||
|
||
@override
|
||
String get findUserPhoneNotFound => 'Контакт с таким номером не найден';
|
||
|
||
@override
|
||
String get findUserSearchFailed =>
|
||
'Не удалось найти контакт. Проверьте соединение и повторите поиск.';
|
||
|
||
@override
|
||
String get findUserInvalidId => 'Введите числовой ID';
|
||
|
||
@override
|
||
String get findUserIdNotFound => 'Контакт с таким ID не найден';
|
||
|
||
@override
|
||
String get findUserPhoneTab => 'Номер';
|
||
|
||
@override
|
||
String get findUserPhoneHint => 'Введите номер телефона';
|
||
|
||
@override
|
||
String get findUserIdHint => 'Введите ID контакта';
|
||
|
||
@override
|
||
String get loginSuccessGreetingWelcome => 'Добро пожаловать в ИКАР!';
|
||
|
||
@override
|
||
String get loginSuccessGreetingEmergencyExit =>
|
||
'Аварийный выход на высоте 30 тысяч футов. Иллюзия безопасности.';
|
||
|
||
@override
|
||
String get loginSuccessGreetingFunnyThings =>
|
||
'Иногда забавные вещи могут быть уголовно наказуемы';
|
||
|
||
@override
|
||
String get loginSuccessGreetingFarewell =>
|
||
'Если вы видите это сообщение, значит меня уже нет в живых.';
|
||
|
||
@override
|
||
String get loginSuccessGreetingGondor => 'Где был Гондор когда...';
|
||
|
||
@override
|
||
String get loginSuccessGreetingEasterEgg => 'Вы нашли пасхалку!';
|
||
|
||
@override
|
||
String get chatTextSendUnknownCommand => 'ТАКОЙ КОМАНДЫ НЕТУ🚨🚨🚨';
|
||
|
||
@override
|
||
String get chatTextSendSaveFailed => 'Не удалось сохранить сообщение';
|
||
|
||
@override
|
||
String get voiceBubbleLoadFailed => 'Не удалось загрузить аудио';
|
||
|
||
@override
|
||
String get voiceBubblePlaybackError => 'Ошибка воспроизведения';
|
||
|
||
@override
|
||
String get voiceBubbleTranscribe => 'Т';
|
||
|
||
@override
|
||
String get voiceBubbleTranscribing => 'транскрибация...';
|
||
|
||
@override
|
||
String get voiceBubbleTranscriptionFailed => 'ошибка транскрибации';
|
||
|
||
@override
|
||
String chatInfoStoryCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count истории',
|
||
many: '$count историй',
|
||
few: '$count истории',
|
||
one: '$count история',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String chatInfoMemberCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count участника',
|
||
many: '$count участников',
|
||
few: '$count участника',
|
||
one: '$count участник',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String chatInfoSubscriberCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count подписчика',
|
||
many: '$count подписчиков',
|
||
few: '$count подписчика',
|
||
one: '$count подписчик',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get customGradientTitle => 'Своя тема';
|
||
|
||
@override
|
||
String get customGradientAnimation => 'Анимация';
|
||
|
||
@override
|
||
String get customGradientAnimationSubtitle => 'Плавный перелив цветов';
|
||
|
||
@override
|
||
String get videoBubbleOpenFailed => 'Не удалось открыть видео';
|
||
|
||
@override
|
||
String get videoBubbleLoadFailed => 'Не удалось получить видео';
|
||
|
||
@override
|
||
String get accountSwitcherNoName => 'Без имени';
|
||
|
||
@override
|
||
String get accountSwitcherAddAccount => 'Добавить аккаунт';
|
||
|
||
@override
|
||
String infoScreenWeeksShort(int weeks) {
|
||
return '$weeks нед';
|
||
}
|
||
|
||
@override
|
||
String infoScreenDaysShort(int days) {
|
||
return '$days дн';
|
||
}
|
||
|
||
@override
|
||
String get pluginsScreenPickKinetFile => 'Выберите файл с расширением .kinet';
|
||
|
||
@override
|
||
String get pluginsScreenReadFileFailed =>
|
||
'Не удалось прочитать выбранный файл';
|
||
|
||
@override
|
||
String pluginsScreenOpenFailed(String error) {
|
||
return 'Не удалось открыть .kinet: $error';
|
||
}
|
||
|
||
@override
|
||
String get pluginsScreenHttpsRequired => 'Нужна корректная HTTPS-ссылка';
|
||
|
||
@override
|
||
String pluginsScreenDownloadFailed(String error) {
|
||
return 'Не удалось загрузить .kinet: $error';
|
||
}
|
||
|
||
@override
|
||
String pluginsScreenVersionAuthor(String version, String author) {
|
||
return 'Версия $version · $author';
|
||
}
|
||
|
||
@override
|
||
String pluginsScreenSignatureVerified(String fingerprint) {
|
||
return 'Подпись Ed25519 проверена\n$fingerprint';
|
||
}
|
||
|
||
@override
|
||
String get pluginsScreenNotSigned => 'Плагин не подписан';
|
||
|
||
@override
|
||
String get pluginsScreenPermissionsTitle => 'Плагин получит разрешения:';
|
||
|
||
@override
|
||
String get pluginsScreenAllowAndInstall => 'Разрешить и установить';
|
||
|
||
@override
|
||
String pluginsScreenInstalled(String name) {
|
||
return '$name установлен';
|
||
}
|
||
|
||
@override
|
||
String pluginsScreenInstallFailed(String error) {
|
||
return 'Не удалось установить плагин: $error';
|
||
}
|
||
|
||
@override
|
||
String get pluginsScreenNoUpdates => 'Обновлений нет';
|
||
|
||
@override
|
||
String get pluginsScreenUpdateTitle => 'Обновить плагин?';
|
||
|
||
@override
|
||
String get pluginsScreenUpdated => 'Плагин обновлён';
|
||
|
||
@override
|
||
String pluginsScreenUpdateFailed(String error) {
|
||
return 'Не удалось обновить: $error';
|
||
}
|
||
|
||
@override
|
||
String get pluginsScreenUninstallTitle => 'Удалить плагин?';
|
||
|
||
@override
|
||
String get pluginsScreenUninstalled => 'Плагин и его данные удалены';
|
||
|
||
@override
|
||
String pluginsScreenUninstallFailed(String error) {
|
||
return 'Не удалось удалить: $error';
|
||
}
|
||
|
||
@override
|
||
String get pluginsScreenTitle => 'Плагины';
|
||
|
||
@override
|
||
String get pluginsScreenInstallFile => 'Установить .kinet';
|
||
|
||
@override
|
||
String get pluginsScreenInstallUrl => 'Установить по URL';
|
||
|
||
@override
|
||
String get pluginsScreenBundled => 'Встроенный плагин ИКАР';
|
||
|
||
@override
|
||
String pluginsScreenSigned(String fingerprint) {
|
||
return 'Подписан · $fingerprint';
|
||
}
|
||
|
||
@override
|
||
String get pluginsScreenUnsigned => 'Не подписан';
|
||
|
||
@override
|
||
String get pluginsScreenCheckUpdates => 'Проверить обновления';
|
||
|
||
@override
|
||
String get pluginsScreenDownload => 'Загрузить';
|
||
|
||
@override
|
||
String get kometSettingsViewDeletedSubtitle =>
|
||
'Показывать удалённые сообщения';
|
||
|
||
@override
|
||
String get kometSettingsViewRedactedSubtitle =>
|
||
'Показывать историю у редактированных сообщений';
|
||
|
||
@override
|
||
String get kometSettingsFullTimestampSubtitle =>
|
||
'Показывать время в секундах у сообщений';
|
||
|
||
@override
|
||
String get kometSettingsShowForwardSubtitle =>
|
||
'Показывать метку на пересланных сообщениях, даже если на них не указан автор';
|
||
|
||
@override
|
||
String get kometSettingsTypingTimeSubtitle =>
|
||
'Пытается рассчитать примерное время, сколько печаталось сообщение';
|
||
|
||
@override
|
||
String get kometSettingsFoldersHeader => 'Папки';
|
||
|
||
@override
|
||
String get kometSettingsHideAllFolderSubtitle =>
|
||
'Скрыть папку «Все», когда есть другие папки. Чаты сортируются только по вашим папкам';
|
||
|
||
@override
|
||
String get kometSettingsShowHiddenChatsSubtitle =>
|
||
'Показывать скрытые чаты, которые обычно не отображаются в списке: от групповых звонков, закрытые каналы и покинутые чаты';
|
||
|
||
@override
|
||
String get kometSettingsArchiveOnPullSubtitle =>
|
||
'Прятать архив и показывать его, если потянуть список чатов вниз, после историй';
|
||
|
||
@override
|
||
String get kometSettingsGhostModeSubtitle => 'Вас не видно в сети';
|
||
|
||
@override
|
||
String get kometSettingsAntiReadSubtitle => 'Нечиталка сообщений';
|
||
|
||
@override
|
||
String get kometSettingsSelfOnlineCheckSubtitle =>
|
||
'Каждые ~10 секунд сверяет, когда вы были онлайн. Полезно для проверки ghost mode';
|
||
|
||
@override
|
||
String get kometSettingsDebugHeader => 'Отладка';
|
||
|
||
@override
|
||
String get kometSettingsDebugLogsLabel => 'Запись отладочных логов';
|
||
|
||
@override
|
||
String get kometSettingsDebugLogsSubtitle =>
|
||
'Пишет трафик протокола в файл на устройстве — помогает диагностировать баги при репортах';
|
||
|
||
@override
|
||
String get sharedContentSavedToGallery => 'Сохранено в галерею';
|
||
|
||
@override
|
||
String get sharedContentFileSaved => 'Файл сохранён';
|
||
|
||
@override
|
||
String get sharedContentVideoLoadFailed => 'Не удалось загрузить видео';
|
||
|
||
@override
|
||
String get sharedContentAudioLoadFailed => 'Не удалось загрузить аудио';
|
||
|
||
@override
|
||
String get sharedContentPlaybackError => 'Ошибка воспроизведения';
|
||
|
||
@override
|
||
String get messageBubbleButtonUnsupported => 'Кнопка не поддерживается';
|
||
|
||
@override
|
||
String get messageBubblePlatformUnavailable =>
|
||
'На вашей платформе это недоступно';
|
||
|
||
@override
|
||
String messageBubbleEditedTime(String time) {
|
||
return '$time ред.';
|
||
}
|
||
|
||
@override
|
||
String get messageBubbleWrongKey => 'неверный ключ';
|
||
|
||
@override
|
||
String get messageBubbleUnavailableOnDevice =>
|
||
'недоступно на этом устройстве';
|
||
|
||
@override
|
||
String get messageBubbleReplyDeleted => 'сообщение удалено';
|
||
|
||
@override
|
||
String get searchScreenSavedMessages => 'Избранное';
|
||
|
||
@override
|
||
String get searchScreenStartTyping => 'Начните вводить запрос';
|
||
|
||
@override
|
||
String get searchScreenByPhone => 'По номеру';
|
||
|
||
@override
|
||
String get searchScreenContacts => 'Контакты';
|
||
|
||
@override
|
||
String get searchScreenChats => 'Чаты';
|
||
|
||
@override
|
||
String get searchScreenGlobalSearch => 'Глобальный поиск';
|
||
|
||
@override
|
||
String get searchScreenUntitled => 'Без названия';
|
||
|
||
@override
|
||
String get fileBubbleCorrupted => 'Файл повреждён';
|
||
|
||
@override
|
||
String get fileBubbleWrongKey => 'Неверный ключ';
|
||
|
||
@override
|
||
String get fileBubbleTapToOpen => 'Нажмите, чтобы открыть';
|
||
|
||
@override
|
||
String get fileBubbleDownloadFailed => 'Не удалось загрузить файл';
|
||
|
||
@override
|
||
String get fileBubbleDecryptPhotoFailed => 'Не удалось расшифровать фото';
|
||
|
||
@override
|
||
String get fileBubbleUnknownFile => 'Не удалось определить файл';
|
||
|
||
@override
|
||
String get fileBubbleOpenFailedReason => 'не удалось открыть';
|
||
|
||
@override
|
||
String get fileBubbleDownloadFailedReason => 'не удалось загрузить';
|
||
|
||
@override
|
||
String get storyComposerUploadUrlFailed =>
|
||
'Не удалось получить адрес загрузки';
|
||
|
||
@override
|
||
String get storyComposerPhotoUploadFailed => 'Не удалось загрузить фото';
|
||
|
||
@override
|
||
String get storyComposerVideoUploadFailed => 'Не удалось загрузить видео';
|
||
|
||
@override
|
||
String get storyComposerPublished => 'История опубликована';
|
||
|
||
@override
|
||
String get storyComposerPublish => 'Опубликовать';
|
||
|
||
@override
|
||
String get storyComposerContacts => 'Контакты';
|
||
|
||
@override
|
||
String textEntityProfileNotFound(String nickname) {
|
||
return 'Профиль @$nickname не найден';
|
||
}
|
||
|
||
@override
|
||
String get textEntityCopyPhone => 'Скопировать номер телефона';
|
||
|
||
@override
|
||
String get textEntityPhoneCopied => 'Номер скопирован';
|
||
|
||
@override
|
||
String get textEntityCall => 'Позвонить';
|
||
|
||
@override
|
||
String get textEntityCopyCard => 'Скопировать номер карты';
|
||
|
||
@override
|
||
String get textEntityCardCopied => 'Номер карты скопирован';
|
||
|
||
@override
|
||
String get textEntityDialFailed => 'Не удалось открыть приложение звонков';
|
||
|
||
@override
|
||
String get textEntityNotOnMax => 'Человека ещё нет в ИКАР';
|
||
|
||
@override
|
||
String get callLinkHandlerAlreadyInCall => 'Звонок уже идёт';
|
||
|
||
@override
|
||
String callLinkHandlerJoinPromptWithCount(String name, int count) {
|
||
return 'Присоединиться к звонку «$name»? Сейчас в звонке: $count.';
|
||
}
|
||
|
||
@override
|
||
String callLinkHandlerJoinPrompt(String name) {
|
||
return 'Присоединиться к звонку «$name»?';
|
||
}
|
||
|
||
@override
|
||
String get callLinkHandlerJoinFailed => 'Не удалось присоединиться к звонку';
|
||
|
||
@override
|
||
String get appIconScreenUnsupported =>
|
||
'Смена иконки доступна только на Android и iOS';
|
||
|
||
@override
|
||
String appIconScreenChanged(String name) {
|
||
return 'Иконка изменена на «$name»';
|
||
}
|
||
|
||
@override
|
||
String appIconScreenChangeFailed(String error) {
|
||
return 'Не удалось сменить иконку: $error';
|
||
}
|
||
|
||
@override
|
||
String get appIconScreenTitle => 'Иконка приложения';
|
||
|
||
@override
|
||
String get appIconScreenAppearance => 'Внешний вид иконки';
|
||
|
||
@override
|
||
String get appIconScreenHint =>
|
||
'На Android приложение закроется — лаунчер подхватит новую иконку. На iOS — мгновенно с системным диалогом.';
|
||
|
||
@override
|
||
String get appIconScreenOnlyMobile => 'Доступно только на Android и iOS';
|
||
|
||
@override
|
||
String get password2faConnectionDropped => 'Соединение прервалось…';
|
||
|
||
@override
|
||
String get password2faConnectionDroppedRelogin =>
|
||
'Соединение прервалось — войдите заново';
|
||
|
||
@override
|
||
String get password2faEnterPassword => 'Введите пароль для завершения входа';
|
||
|
||
@override
|
||
String get contactsTabFindContact => 'Найти контакт';
|
||
|
||
@override
|
||
String get contactsTabFind => 'Найти';
|
||
|
||
@override
|
||
String get contactsTabLastSeenRecently => 'Был(а) недавно';
|
||
|
||
@override
|
||
String get contactsTabTitle => 'Контакты';
|
||
|
||
@override
|
||
String get contactsTabEmpty => 'Нет контактов';
|
||
|
||
@override
|
||
String securityScreenBlockedCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: '$count контакта',
|
||
many: '$count контактов',
|
||
few: '$count контакта',
|
||
one: '$count контакт',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get attachmentPanelInvalidFileId => 'Неверный fileId';
|
||
|
||
@override
|
||
String get attachmentPanelPickFile => 'Выбрать из файла';
|
||
|
||
@override
|
||
String get attachmentPanelSendById => 'Отправить по id';
|
||
|
||
@override
|
||
String selectionBarSelectedCount(int count) {
|
||
return 'Выбрано $count';
|
||
}
|
||
|
||
@override
|
||
String get metaMarksLikelyForwarded => 'Сообщения скорее всего пересланы';
|
||
|
||
@override
|
||
String metaMarksTypingTime(String duration) {
|
||
return 'Сообщение печаталось примерно ~$duration';
|
||
}
|
||
|
||
@override
|
||
String get searchViewHint => 'Поиск...';
|
||
|
||
@override
|
||
String get searchViewNoResults => 'Поиск ничего не вернул...';
|
||
|
||
@override
|
||
String get adaptiveShellSelectChat => 'Выберите чат';
|
||
|
||
@override
|
||
String get settingsTabPhotoDeleted => 'Фото удалено';
|
||
|
||
@override
|
||
String settingsTabPhotoDeleteFailed(String error) {
|
||
return 'Не удалось удалить фото: $error';
|
||
}
|
||
|
||
@override
|
||
String settingsTabAppVersion(String version, String build) {
|
||
return 'Версия $version ($build)';
|
||
}
|
||
|
||
@override
|
||
String get settingsTabCloudStorageSubtitle => 'Через ИКАР';
|
||
|
||
@override
|
||
String get settingsTabCloudStorageWhitelistTitle =>
|
||
'Работает при белых списках';
|
||
|
||
@override
|
||
String get settingsTabCloudStorageWhitelistBody =>
|
||
'Вы сможете передать файл даже при ограниченном интернете.';
|
||
|
||
@override
|
||
String get settingsTabCloudStorageLimitsTitle =>
|
||
'Файлы до 4ГБ, безлимитное количество.';
|
||
|
||
@override
|
||
String get settingsTabCloudStorageLimitsBody =>
|
||
'Можете хранить массивный обьем информации.';
|
||
|
||
@override
|
||
String get settingsTabCloudStoragePrivacyTitle =>
|
||
'Не обеспечивается конфединциальность файлов';
|
||
|
||
@override
|
||
String get settingsTabCloudStoragePrivacyBody =>
|
||
'Облачное хранилище работает через ваш аккаунт на сервере ИКАР, нужные люди всё равно могут его посмотреть.';
|
||
|
||
@override
|
||
String get settingsTabLogoutConfirmTitle => 'Выйти из аккаунта?';
|
||
|
||
@override
|
||
String get settingsTabLogoutConfirmBody =>
|
||
'Данные аккаунта будут удалены с этого устройства.';
|
||
|
||
@override
|
||
String get settingsTabLogoutConfirm => 'Выйти';
|
||
|
||
@override
|
||
String settingsTabLogoutFailed(String error) {
|
||
return 'Не удалось выйти: $error';
|
||
}
|
||
|
||
@override
|
||
String get settingsTabSferumSignIn => 'Войти в Сферум';
|
||
|
||
@override
|
||
String get settingsTabSferumTitle => 'Сферум';
|
||
|
||
@override
|
||
String get settingsTabCloudStorageBeta => 'Облачное хранилище [BETA]';
|
||
|
||
@override
|
||
String get settingsTabDevelopers => 'Для разработчиков';
|
||
|
||
@override
|
||
String get settingsTabLogout => 'Выйти из аккаунта';
|
||
|
||
@override
|
||
String get settingsTabOnline => 'онлайн';
|
||
|
||
@override
|
||
String settingsTabLastSeen(String time) {
|
||
return 'Был(-а) $time';
|
||
}
|
||
|
||
@override
|
||
String get settingsTabOffline => 'офлайн';
|
||
|
||
@override
|
||
String get folderEditTypeContacts => 'Контакты';
|
||
|
||
@override
|
||
String get folderEditTypeNonContacts => 'Не в контактах';
|
||
|
||
@override
|
||
String get folderEditTypeChannels => 'Каналы';
|
||
|
||
@override
|
||
String get folderEditTypeBots => 'Боты';
|
||
|
||
@override
|
||
String get folderEditSavedMessages => 'Избранное';
|
||
|
||
@override
|
||
String get folderEditNoActiveAccount => 'Нет активного аккаунта';
|
||
|
||
@override
|
||
String get folderEditSaveFailed => 'Не удалось сохранить папку';
|
||
|
||
@override
|
||
String folderEditDeleteConfirm(String title) {
|
||
return 'Удалить папку «$title»? Чаты останутся на месте.';
|
||
}
|
||
|
||
@override
|
||
String get folderEditDeleteFailed => 'Не удалось удалить папку';
|
||
|
||
@override
|
||
String get folderEditNewTitle => 'Новая папка';
|
||
|
||
@override
|
||
String get folderEditEditTitle => 'Изменение папки';
|
||
|
||
@override
|
||
String get folderEditNameHint => 'Название папки';
|
||
|
||
@override
|
||
String get folderEditChatTypesSection => 'ТИПЫ ЧАТОВ';
|
||
|
||
@override
|
||
String get folderEditChatsSection => 'ЧАТЫ И КАНАЛЫ';
|
||
|
||
@override
|
||
String get folderEditSavedMessagesSubtitle => 'Сообщения себе';
|
||
|
||
@override
|
||
String get folderEditShowOnlySection => 'ПОКАЗЫВАТЬ ТОЛЬКО';
|
||
|
||
@override
|
||
String get folderEditNotMutedChats => 'Чаты с уведомлениями';
|
||
|
||
@override
|
||
String get folderEditUnreadChats => 'Непрочитанные чаты';
|
||
|
||
@override
|
||
String get folderEditClearSelection => 'Очистить выбор';
|
||
|
||
@override
|
||
String get folderEditDeleteFolder => 'Удалить папку';
|
||
|
||
@override
|
||
String get folderEditCreate => 'Создать папку';
|
||
|
||
@override
|
||
String get composerInputMuteNotifications => 'Отключить уведомления';
|
||
|
||
@override
|
||
String get composerInputForwardFromYou => 'Пересылка от вас';
|
||
|
||
@override
|
||
String get composerInputForwardMessage => 'Пересылка сообщения';
|
||
|
||
@override
|
||
String composerInputForwardFrom(String name) {
|
||
return 'Пересылка от $name';
|
||
}
|
||
|
||
@override
|
||
String composerInputForwardCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: 'Пересылка: $count сообщения',
|
||
many: 'Пересылка: $count сообщений',
|
||
few: 'Пересылка: $count сообщения',
|
||
one: 'Пересылка: $count сообщение',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String composerInputReplyTo(String name) {
|
||
return 'Ответ $name';
|
||
}
|
||
|
||
@override
|
||
String get composerInputSwipeToCancel => '‹ Влево — отмена';
|
||
|
||
@override
|
||
String get composerInputSwipeToCancelHint => '‹ влево — отмена';
|
||
|
||
@override
|
||
String get composerInputHistoryEmpty => 'история пуста...';
|
||
|
||
@override
|
||
String get createGroupFailed => 'Не удалось создать группу';
|
||
|
||
@override
|
||
String get createGroupAvatarProcessFailed => 'Не удалось обработать аватарку';
|
||
|
||
@override
|
||
String get createGroupAvatarUploadFailed => 'Не удалось загрузить аватарку';
|
||
|
||
@override
|
||
String get createGroupSelectParticipants => 'Выберите участников';
|
||
|
||
@override
|
||
String get createGroupCancel => 'Отменить';
|
||
|
||
@override
|
||
String get createGroupNext => 'Далее';
|
||
|
||
@override
|
||
String get createGroupTitle => 'Создать группу';
|
||
|
||
@override
|
||
String get createGroupNameHint => 'Название группы';
|
||
|
||
@override
|
||
String get createGroupCreating => 'Создаю...';
|
||
|
||
@override
|
||
String get createGroupCreate => 'Создать';
|
||
|
||
@override
|
||
String controlBubbleQuotedTitle(String title) {
|
||
return '«$title»';
|
||
}
|
||
|
||
@override
|
||
String get controlBubbleCreatedByMe => ' создали чат';
|
||
|
||
@override
|
||
String get controlBubbleCreatedByOther => ' создал(а) чат';
|
||
|
||
@override
|
||
String get controlBubbleAddedByMe => ' добавили ';
|
||
|
||
@override
|
||
String get controlBubbleAddedByOther => ' добавил(а) ';
|
||
|
||
@override
|
||
String get controlBubbleLeftByMe => ' покинули чат';
|
||
|
||
@override
|
||
String get controlBubbleLeftByOther => ' покинул(а) чат';
|
||
|
||
@override
|
||
String get controlBubbleJoinedByMe => ' присоединились к чату';
|
||
|
||
@override
|
||
String get controlBubbleJoinedByOther => ' присоединился(-ась) к чату';
|
||
|
||
@override
|
||
String get controlBubblePinnedByMe => ' закрепили сообщение';
|
||
|
||
@override
|
||
String get controlBubblePinnedByOther => ' закрепил(а) сообщение';
|
||
|
||
@override
|
||
String get controlBubbleRenamedByMe => ' изменили название чата';
|
||
|
||
@override
|
||
String get controlBubbleRenamedByOther => ' изменил(а) название чата';
|
||
|
||
@override
|
||
String controlBubbleRenamedTo(String title) {
|
||
return ' на $title';
|
||
}
|
||
|
||
@override
|
||
String get controlBubblePhotoChangedByMe => ' изменили фото чата';
|
||
|
||
@override
|
||
String get controlBubblePhotoChangedByOther => ' изменил(а) фото чата';
|
||
|
||
@override
|
||
String get controlBubbleBotStarted => 'Бот запущен';
|
||
|
||
@override
|
||
String get maxLinkNoPublicLink => 'У профиля нет публичной ссылки';
|
||
|
||
@override
|
||
String get maxLinkShareFailed => 'Не удалось поделиться ссылкой';
|
||
|
||
@override
|
||
String get maxLinkOpenProfileFailed => 'Не удалось открыть профиль';
|
||
|
||
@override
|
||
String get maxLinkOpenChatFailed => 'Не удалось открыть чат';
|
||
|
||
@override
|
||
String get maxLinkJoinThisChatConfirm => 'Вступить в этот чат?';
|
||
|
||
@override
|
||
String maxLinkJoinChatConfirm(String title) {
|
||
return 'Вступить в «$title»?';
|
||
}
|
||
|
||
@override
|
||
String get maxLinkProfileFallback => 'Профиль';
|
||
|
||
@override
|
||
String get videoNoteCameraUnavailable => 'Камера недоступна';
|
||
|
||
@override
|
||
String get videoNoteNeedCameraAndMic =>
|
||
'Для кружков нужен доступ к камере и микрофону';
|
||
|
||
@override
|
||
String get videoNoteNoMicAccess => 'Нет доступа к микрофону';
|
||
|
||
@override
|
||
String get videoNoteNoCameraAccess => 'Нет доступа к камере';
|
||
|
||
@override
|
||
String get videoNoteCameraNotReady => 'Камера ещё не готова';
|
||
|
||
@override
|
||
String get videoNoteStartFailed => 'Не удалось начать запись кружка';
|
||
|
||
@override
|
||
String get videoNoteSaveFailed => 'Не удалось сохранить кружок';
|
||
|
||
@override
|
||
String get scheduleTimePickerTitle => 'Отправить позже';
|
||
|
||
@override
|
||
String get scheduleTimePickerToday => 'Сегодня';
|
||
|
||
@override
|
||
String get scheduleTimePickerTomorrow => 'Завтра';
|
||
|
||
@override
|
||
String get scheduleTimePickerTodayLower => 'сегодня';
|
||
|
||
@override
|
||
String get scheduleTimePickerTomorrowLower => 'завтра';
|
||
|
||
@override
|
||
String scheduleTimePickerSendAt(String day, String time) {
|
||
return 'Отправить $day в $time';
|
||
}
|
||
|
||
@override
|
||
String get scheduleTimePickerPastTime => 'Время должно быть в будущем';
|
||
|
||
@override
|
||
String get chatBackgroundSaveFailed => 'Не удалось сохранить обои';
|
||
|
||
@override
|
||
String get chatBackgroundTitle => 'Фон чатов';
|
||
|
||
@override
|
||
String get chatBackgroundDescription =>
|
||
'Эти обои применяются ко всем чатам, где не выбран свой фон.';
|
||
|
||
@override
|
||
String get chatBackgroundTintTitle => 'Подстраивать интерфейс под обои';
|
||
|
||
@override
|
||
String get chatBackgroundTintSubtitle =>
|
||
'Акцентный цвет приложения возьмётся из фона';
|
||
|
||
@override
|
||
String get chatBackgroundPick => 'Выбрать обои';
|
||
|
||
@override
|
||
String get chatBackgroundSampleIncoming => 'Единый фон для всех чатов';
|
||
|
||
@override
|
||
String get chatBackgroundSampleOutgoing => 'Красиво ✨';
|
||
|
||
@override
|
||
String get chatWallpaperPreviewTitle => 'Обои';
|
||
|
||
@override
|
||
String get chatWallpaperPreviewBlur => 'Размытие';
|
||
|
||
@override
|
||
String get chatWallpaperPreviewMotion => 'Движение';
|
||
|
||
@override
|
||
String get chatWallpaperPreviewDimming => 'Затемнение';
|
||
|
||
@override
|
||
String get chatWallpaperPreviewSampleIncoming =>
|
||
'Как насчёт новых обоев для этого чата?';
|
||
|
||
@override
|
||
String get chatWallpaperPreviewSampleOutgoing => 'Отличная идея.';
|
||
|
||
@override
|
||
String get stickerPanelLoadFailed => 'Не удалось загрузить стикеры';
|
||
|
||
@override
|
||
String get stickerPanelEmpty => 'Нет стикеров';
|
||
|
||
@override
|
||
String get stickerPanelEmojiTab => 'Эмодзи';
|
||
|
||
@override
|
||
String get stickerPanelStickersTab => 'Стикеры';
|
||
|
||
@override
|
||
String get callBubbleGroupVideo => 'Групповой видеозвонок';
|
||
|
||
@override
|
||
String get callBubbleCanceledVideo => 'Отменённый видеозвонок';
|
||
|
||
@override
|
||
String get callBubbleMissedVideo => 'Пропущенный видеозвонок';
|
||
|
||
@override
|
||
String get callBubbleOutgoingVideo => 'Исходящий видеозвонок';
|
||
|
||
@override
|
||
String get callBubbleIncomingVideo => 'Входящий видеозвонок';
|
||
|
||
@override
|
||
String get callBubbleCanceled => 'Отменённый звонок';
|
||
|
||
@override
|
||
String get callBubbleMissed => 'Пропущенный звонок';
|
||
|
||
@override
|
||
String get callBubbleOutgoing => 'Исходящий звонок';
|
||
|
||
@override
|
||
String maxRouteUnsupported(String route) {
|
||
return 'Ссылка не поддерживается: $route';
|
||
}
|
||
|
||
@override
|
||
String maxRouteIncomplete(String route) {
|
||
return 'Неполная ссылка: $route';
|
||
}
|
||
|
||
@override
|
||
String get cloudStorageScreenExpired => 'истекла';
|
||
|
||
@override
|
||
String cloudStorageScreenExpiresInDays(int days) {
|
||
return 'через $days д';
|
||
}
|
||
|
||
@override
|
||
String cloudStorageScreenExpiresInHours(int hours, int minutes) {
|
||
return 'через $hours ч $minutes мин';
|
||
}
|
||
|
||
@override
|
||
String cloudStorageScreenExpiresInMinutes(int minutes) {
|
||
return 'через $minutes мин';
|
||
}
|
||
|
||
@override
|
||
String get webQrScanTitle => 'QR для веба и ПК';
|
||
|
||
@override
|
||
String get webQrScanCameraUnavailable => 'Камера недоступна';
|
||
|
||
@override
|
||
String get webQrScanHint => 'Наведите камеру на QR-код на экране компьютера';
|
||
|
||
@override
|
||
String get messageRowEditTitle => 'Изменить сообщение';
|
||
|
||
@override
|
||
String get locationBubbleOpenInMaps => 'Открыть на карте';
|
||
|
||
@override
|
||
String get commandArgumentsCancel => 'Отменить команду';
|
||
|
||
@override
|
||
String commandArgumentsOptional(String name) {
|
||
return '$name · необязательно';
|
||
}
|
||
|
||
@override
|
||
String get storyRingYourStory => 'Ваша история';
|
||
|
||
@override
|
||
String formatBytesB(String value) {
|
||
return '$value Б';
|
||
}
|
||
|
||
@override
|
||
String formatBytesKb(String value) {
|
||
return '$value КБ';
|
||
}
|
||
|
||
@override
|
||
String formatBytesMb(String value) {
|
||
return '$value МБ';
|
||
}
|
||
|
||
@override
|
||
String formatBytesGb(String value) {
|
||
return '$value ГБ';
|
||
}
|
||
|
||
@override
|
||
String formatApproxSeconds(String whole, String fraction) {
|
||
return '$whole,$fraction с';
|
||
}
|
||
|
||
@override
|
||
String formatApproxMinutes(String whole, String fraction) {
|
||
return '$whole,$fraction мин';
|
||
}
|
||
|
||
@override
|
||
String get lastSeenJustNow => 'Был(-а) только что';
|
||
|
||
@override
|
||
String lastSeenMinutesAgo(int minutes) {
|
||
return 'Был(-а) $minutes мин назад';
|
||
}
|
||
|
||
@override
|
||
String lastSeenHoursAgo(int hours) {
|
||
return 'Был(-а) $hours ч назад';
|
||
}
|
||
|
||
@override
|
||
String lastSeenDaysAgo(int days) {
|
||
return 'Был(-а) $days дн назад';
|
||
}
|
||
|
||
@override
|
||
String get genderMale => 'Мужской';
|
||
|
||
@override
|
||
String get genderFemale => 'Женский';
|
||
|
||
@override
|
||
String get connectionStatusConnecting => 'Соединение...';
|
||
|
||
@override
|
||
String get connectionStatusWaitingForNetwork => 'Ожидание сети...';
|
||
|
||
@override
|
||
String get chatActivityTyping => 'Печатает...';
|
||
|
||
@override
|
||
String get chatActivityChoosingSticker => 'Выбирает стикер...';
|
||
|
||
@override
|
||
String chatActivityTypingOne(String name) {
|
||
return '$name печатает...';
|
||
}
|
||
|
||
@override
|
||
String chatActivityTypingTwo(String first, String second) {
|
||
return '$first и $second печатают...';
|
||
}
|
||
|
||
@override
|
||
String chatActivityTypingMany(String name, int count) {
|
||
return '$name и ещё $count печатают...';
|
||
}
|
||
|
||
@override
|
||
String chatActivityStickerOne(String name) {
|
||
return '$name выбирает стикер...';
|
||
}
|
||
|
||
@override
|
||
String chatActivityStickerTwo(String first, String second) {
|
||
return '$first и $second выбирают стикеры...';
|
||
}
|
||
|
||
@override
|
||
String chatActivityStickerMany(String name, int count) {
|
||
return '$name и ещё $count выбирают стикеры...';
|
||
}
|
||
|
||
@override
|
||
String get shareTitleMessage => 'Отправить сообщение';
|
||
|
||
@override
|
||
String get shareTitlePhoto => 'Отправить фотографию';
|
||
|
||
@override
|
||
String shareTitlePhotos(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: 'Отправить $count фотографии',
|
||
many: 'Отправить $count фотографий',
|
||
few: 'Отправить $count фотографии',
|
||
one: 'Отправить $count фотографию',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String shareTitleVideos(int count) {
|
||
return 'Отправить $count видео';
|
||
}
|
||
|
||
@override
|
||
String shareTitleFiles(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: 'Отправить $count файла',
|
||
many: 'Отправить $count файлов',
|
||
few: 'Отправить $count файла',
|
||
one: 'Отправить $count файл',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String shareSubtitleToChats(String names) {
|
||
return 'В чат $names';
|
||
}
|
||
|
||
@override
|
||
String shareSubtitleChatCount(int count) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
count,
|
||
locale: localeName,
|
||
other: 'В $count чата',
|
||
many: 'В $count чатов',
|
||
few: 'В $count чата',
|
||
one: 'В $count чат',
|
||
);
|
||
return '$_temp0';
|
||
}
|
||
|
||
@override
|
||
String get pluginPermissionChatWrite => 'Отправка сообщений';
|
||
|
||
@override
|
||
String get pluginPermissionChatEdit =>
|
||
'Редактирование отправленных сообщений';
|
||
|
||
@override
|
||
String get pluginPermissionUiNotify => 'Показ уведомлений';
|
||
|
||
@override
|
||
String get pluginPermissionContactRead => 'Чтение данных собеседника';
|
||
|
||
@override
|
||
String get pluginPermissionReplyRead =>
|
||
'Чтение сообщения, на которое отвечает команда';
|
||
|
||
@override
|
||
String get pluginPermissionNetwork => 'Доступ к интернету';
|
||
|
||
@override
|
||
String get pluginPermissionPhotoWrite => 'Отправка фотографий';
|
||
|
||
@override
|
||
String get pluginPermissionFileWrite => 'Отправка файлов';
|
||
|
||
@override
|
||
String get pluginPermissionStorage => 'Локальное хранилище плагина';
|
||
|
||
@override
|
||
String pluginUpdateNewPermissions(String permissions) {
|
||
return 'Обновление запрашивает новые разрешения: $permissions';
|
||
}
|
||
|
||
@override
|
||
String get transcriptionNotRecognized => 'Не распознали голос';
|
||
|
||
@override
|
||
String get chatWallpaperThemeOcean => 'Океан';
|
||
|
||
@override
|
||
String get chatWallpaperThemeSunset => 'Закат';
|
||
|
||
@override
|
||
String get chatWallpaperThemeLavender => 'Лаванда';
|
||
|
||
@override
|
||
String get chatWallpaperThemeMint => 'Мята';
|
||
|
||
@override
|
||
String get chatWallpaperThemeGraphite => 'Графит';
|
||
|
||
@override
|
||
String get chatWallpaperThemeSky => 'Небо';
|
||
|
||
@override
|
||
String get chatWallpaperThemePeach => 'Персик';
|
||
|
||
@override
|
||
String get chatWallpaperThemeForest => 'Лес';
|
||
|
||
@override
|
||
String get chatWallpaperThemeGrape => 'Виноград';
|
||
|
||
@override
|
||
String get chatWallpaperThemeNight => 'Ночь';
|
||
|
||
@override
|
||
String get chatWallpaperThemeRose => 'Роза';
|
||
|
||
@override
|
||
String get chatWallpaperThemeAmber => 'Янтарь';
|
||
|
||
@override
|
||
String get mediaSaveFileNotFound => 'файл не найден';
|
||
|
||
@override
|
||
String get mediaSaveNoGalleryAccess => 'нет доступа к галерее';
|
||
|
||
@override
|
||
String get commandShrugDescription => 'отправить каомодзи';
|
||
|
||
@override
|
||
String scheduleTimePickerDayLabel(String weekday, String date) {
|
||
return '$weekday, $date.';
|
||
}
|
||
|
||
@override
|
||
String get avatarEditorSetPhoto => 'Установить фото';
|
||
|
||
@override
|
||
String get avatarEditorDraw => 'Рисовать';
|
||
|
||
@override
|
||
String get avatarPickerFilesTitle => 'Выбрать фото из файлов';
|
||
|
||
@override
|
||
String get avatarPickerFilesSubtitle => 'Если нужного фото нет в галерее';
|
||
}
|