Files
meshcore-sar_android/lib/l10n/app_localizations_ru.dart
Janez T ba27843166 feat: UX polish, localization, advert relocation, and map filter fixes
- i18n: translate connection screen + chat tab keys into 13 locales;
  add "Send my contact" (advert) strings in all locales
- feat: move self-advert from home header into composer "+" action menu
  (new lib/utils/advert_helper.dart, always shows Flood/Direct sheet)
- fix: hide-repeaters map toggle was bypassed in simple mode
- fix: simple mode map now shows only favourite chat contacts
- fix: wrap ListTiles in Material (contact_tile secondary actions,
  inferred contact group card) to satisfy Flutter ink assertions
- device-authoritative contact/channel sync and UX review fixes

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 10:01:10 +02:00

3448 lines
101 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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 appTitle => 'MeshCore SAR';
@override
String get messages => 'Сообщения';
@override
String get contacts => 'Контакты';
@override
String get map => 'Карта';
@override
String get settings => 'Настройки';
@override
String get connect => 'Подключить';
@override
String get disconnect => 'Отключить';
@override
String get noDevicesFound => 'Устройства не найдены';
@override
String get scanAgain => 'Повторить поиск';
@override
String get deviceNotConnected => 'Устройство не подключено';
@override
String get locationPermissionDenied => 'Доступ к геолокации запрещён';
@override
String get locationPermissionPermanentlyDenied =>
'Доступ к геолокации запрещён навсегда. Включите его в настройках.';
@override
String get locationPermissionRequired =>
'Доступ к геолокации необходим для GPS-трекинга и координации команды. Вы можете включить его позже в настройках.';
@override
String get locationServicesDisabled =>
'Службы геолокации отключены. Пожалуйста, включите их в настройках.';
@override
String get failedToGetGpsLocation => 'Не удалось получить GPS-координаты';
@override
String failedToAdvertise(String error) {
return 'Ошибка трансляции: $error';
}
@override
String get cancelReconnection => 'Отменить переподключение';
@override
String get general => 'Основные';
@override
String get theme => 'Тема';
@override
String get chooseTheme => 'Выбрать тему';
@override
String get light => 'Светлая';
@override
String get dark => 'Тёмная';
@override
String get blueLightTheme => 'Синяя светлая тема';
@override
String get blueDarkTheme => 'Синяя тёмная тема';
@override
String get sarRed => 'SAR Красная';
@override
String get alertEmergencyMode => 'Режим тревоги / ЧС';
@override
String get sarGreen => 'SAR Зелёная';
@override
String get safeAllClearMode => 'Режим «Всё в порядке»';
@override
String get autoSystem => 'Авто (Система)';
@override
String get followSystemTheme => 'Следовать системной теме';
@override
String get showRxTxIndicators => 'Показывать индикаторы RX/TX';
@override
String get disableMap => 'Отключить карту';
@override
String get language => 'Язык';
@override
String get chooseLanguage => 'Выбрать язык';
@override
String get save => 'Сохранить';
@override
String get cancel => 'Отмена';
@override
String get close => 'Закрыть';
@override
String get about => 'О приложении';
@override
String get appVersion => 'Версия приложения';
@override
String get aboutMeshCoreSar => 'О MeshCore SAR';
@override
String get aboutDescription =>
'Приложение для поисково-спасательных операций, разработанное для аварийно-спасательных служб. Возможности:\n\n• BLE mesh-сеть для связи между устройствами\n• Офлайн-карты с несколькими вариантами слоёв\n• Отслеживание членов команды в реальном времени\n• Тактические маркеры SAR (найденный человек, пожар, место сбора)\n• Управление контактами и обмен сообщениями\n• GPS-трекинг с показанием курса компаса\n• Кэширование тайлов карт для работы офлайн';
@override
String get technologiesUsed => 'Используемые технологии:';
@override
String get technologiesList =>
'• Flutter для кросс-платформенной разработки\n• BLE (Bluetooth Low Energy) для mesh-сети\n• OpenStreetMap для карт\n• Provider для управления состоянием\n• SharedPreferences для локального хранилища';
@override
String get moreInfo => 'Подробнее';
@override
String get packageName => 'Имя пакета';
@override
String get sampleData => 'Тестовые данные';
@override
String get sampleDataDescription =>
'Загрузить или очистить тестовые контакты, сообщения каналов и маркеры SAR';
@override
String get loadSampleData => 'Загрузить тестовые данные';
@override
String get clearAllData => 'Очистить все данные';
@override
String get clearAllDataConfirmTitle => 'Очистить все данные';
@override
String get clearAllDataConfirmMessage =>
'Это удалит все контакты и маркеры SAR. Вы уверены?';
@override
String get clear => 'Очистить';
@override
String loadedSampleData(
int teamCount,
int channelCount,
int sarCount,
int messageCount,
) {
return 'Загружено: $teamCount членов команды, $channelCount каналов, $sarCount маркеров SAR, $messageCount сообщений';
}
@override
String failedToLoadSampleData(String error) {
return 'Не удалось загрузить тестовые данные: $error';
}
@override
String get allDataCleared => 'Все данные очищены';
@override
String get failedToStartBackgroundTracking =>
'Не удалось запустить фоновое отслеживание. Проверьте разрешения и BLE-соединение.';
@override
String locationBroadcast(String latitude, String longitude) {
return 'Трансляция геолокации: $latitude, $longitude';
}
@override
String get defaultPinInfo =>
'PIN-код по умолчанию для устройств без экрана — 123456. Проблемы с сопряжением? Удалите устройство из Bluetooth в системных настройках.';
@override
String get noMessagesYet => 'Сообщений пока нет';
@override
String get pullDownToSync => 'Потяните вниз для синхронизации сообщений';
@override
String get deleteContact => 'Удалить контакт';
@override
String get delete => 'Удалить';
@override
String get viewOnMap => 'Показать на карте';
@override
String get refresh => 'Обновить';
@override
String get resetPath => 'Сбросить маршрут (перепроложить)';
@override
String copiedToClipboard(String label) {
return '$label скопировано в буфер обмена';
}
@override
String get pleaseEnterPassword => 'Пожалуйста, введите пароль';
@override
String failedToSyncContacts(String error) {
return 'Не удалось синхронизировать контакты: $error';
}
@override
String get loggedInSuccessfully =>
'Вход выполнен! Ожидание сообщений комнаты...';
@override
String get loginFailed => 'Ошибка входа — неверный пароль';
@override
String loggingIn(String roomName) {
return 'Вход в $roomName...';
}
@override
String failedToSendLogin(String error) {
return 'Не удалось отправить данные входа: $error';
}
@override
String get lowLocationAccuracy => 'Низкая точность геолокации';
@override
String get continue_ => 'Продолжить';
@override
String get sendSarMarker => 'Отправить маркер SAR';
@override
String get deleteDrawing => 'Удалить рисунок';
@override
String get drawingTools => 'Инструменты рисования';
@override
String get drawLine => 'Нарисовать линию';
@override
String get drawLineDesc => 'Нарисуйте произвольную линию на карте';
@override
String get drawRectangle => 'Нарисовать прямоугольник';
@override
String get drawRectangleDesc => 'Нарисуйте прямоугольную область на карте';
@override
String get measureDistance => 'Измерить расстояние';
@override
String get measureDistanceDesc => 'Долгое нажатие на две точки для измерения';
@override
String get clearMeasurement => 'Сбросить измерение';
@override
String distanceLabel(String distance) {
return 'Расстояние: $distance';
}
@override
String get longPressForSecondPoint => 'Долгое нажатие для второй точки';
@override
String get longPressToStartMeasurement =>
'Долгое нажатие для установки первой точки';
@override
String get longPressToStartNewMeasurement =>
'Долгое нажатие для начала нового измерения';
@override
String get shareDrawings => 'Поделиться рисунками';
@override
String get clearAllDrawings => 'Удалить все рисунки';
@override
String get completeLine => 'Завершить линию';
@override
String broadcastDrawingsToTeam(int count, String plural) {
return 'Транслировать $count рисун$plural команде';
}
@override
String removeAllDrawings(int count, String plural) {
return 'Удалить все $count рисун$plural';
}
@override
String deleteAllDrawingsConfirm(int count, String plural) {
return 'Удалить все $count рисун$plural с карты?';
}
@override
String get drawing => 'Рисунок';
@override
String shareDrawingsCount(int count, String plural) {
return 'Поделиться $count рисун$plural';
}
@override
String get showReceivedDrawings => 'Показать полученные рисунки';
@override
String get showingAllDrawings => 'Показаны все рисунки';
@override
String get showingOnlyYourDrawings => 'Показаны только ваши рисунки';
@override
String get showSarMarkers => 'Показать маркеры SAR';
@override
String get showingSarMarkers => 'Маркеры SAR отображаются';
@override
String get hidingSarMarkers => 'Маркеры SAR скрыты';
@override
String get clearAll => 'Очистить всё';
@override
String get publicChannel => 'Публичный канал';
@override
String get broadcastToAll => 'Трансляция всем ближайшим узлам (временно)';
@override
String get storedPermanently => 'Сохранено постоянно в комнате';
@override
String get notConnectedToDevice => 'Устройство не подключено';
@override
String get typeYourMessage => 'Введите сообщение...';
@override
String get quickLocationMarker => 'Быстрый маркер местоположения';
@override
String get markerType => 'Тип маркера';
@override
String get sendTo => 'Отправить в';
@override
String get noDestinationsAvailable => 'Нет доступных получателей.';
@override
String get selectDestination => 'Выберите получателя...';
@override
String get ephemeralBroadcastInfo =>
'Временно: передаётся по эфиру. Не сохраняется — узлы должны быть онлайн.';
@override
String get persistentRoomInfo =>
'Постоянно: хранится неизменно в комнате. Синхронизируется автоматически и доступно офлайн.';
@override
String get location => 'Местоположение';
@override
String get fromMap => 'С карты';
@override
String get gettingLocation => 'Получение местоположения...';
@override
String get locationError => 'Ошибка геолокации';
@override
String get retry => 'Повторить';
@override
String get refreshLocation => 'Обновить местоположение';
@override
String accuracyMeters(int accuracy) {
return 'Точность: ±$accuracyм';
}
@override
String get notesOptional => 'Заметки (необязательно)';
@override
String get addAdditionalInformation =>
'Добавьте дополнительную информацию...';
@override
String lowAccuracyWarning(int accuracy) {
return 'Точность геолокации: ±$accuracyм. Этого может быть недостаточно для операций SAR.\n\nПродолжить всё равно?';
}
@override
String get loginToRoom => 'Войти в комнату';
@override
String get enterPasswordInfo =>
'Введите пароль для доступа к этой комнате. Пароль будет сохранён для дальнейшего использования.';
@override
String get password => 'Пароль';
@override
String get enterRoomPassword => 'Введите пароль комнаты';
@override
String get loggingInDots => 'Вход...';
@override
String get login => 'Войти';
@override
String failedToAddRoom(String error) {
return 'Не удалось добавить комнату на устройство: $error\n\nВозможно, комната ещё не объявила себя.\nПопробуйте подождать, пока комната не выйдет на связь.';
}
@override
String get direct => 'Напрямую';
@override
String get flood => 'Широковещательно';
@override
String get autoSend => 'Автоотправка';
@override
String get autoSendDescription => 'Отправить текущим маршрутом.';
@override
String get sendDirect => 'Прямая отправка';
@override
String get sendDirectDescription => 'Отправить напрямую этому контакту.';
@override
String get sendFlood => 'Отправка лавиной';
@override
String get sendFloodDescription => 'Отправить через все ретрансляторы.';
@override
String get loggedIn => 'Вход выполнен';
@override
String get noGpsData => 'Нет данных GPS';
@override
String get distance => 'Расстояние';
@override
String directPingTimeout(String name) {
return 'Таймаут прямого пинга — повтор $name широковещательно...';
}
@override
String pingFailed(String name) {
return 'Пинг не удался: $name — ответ не получен';
}
@override
String deleteContactConfirmation(String name) {
return 'Вы уверены, что хотите удалить \"$name\"?\n\nЭто удалит контакт как из приложения, так и с сопряжённого радиоустройства.';
}
@override
String failedToRemoveContact(String error) {
return 'Не удалось удалить контакт: $error';
}
@override
String get type => 'Тип';
@override
String get publicKey => 'Публичный ключ';
@override
String get lastSeen => 'Последнее появление';
@override
String get yes => 'Да';
@override
String get no => 'Нет';
@override
String get permissions => 'Разрешения';
@override
String get telemetry => 'Телеметрия';
@override
String get voltage => 'Напряжение';
@override
String get battery => 'Батарея';
@override
String get temperature => 'Температура';
@override
String get humidity => 'Влажность';
@override
String get pressure => 'Давление';
@override
String get gpsTelemetry => 'GPS (телеметрия)';
@override
String get reLoginToRoom => 'Войти в комнату повторно';
@override
String get heading => 'Курс';
@override
String get elevation => 'Высота';
@override
String get accuracy => 'Точность';
@override
String get bearing => 'Азимут';
@override
String get direction => 'Направление';
@override
String get filterMarkers => 'Фильтр маркеров';
@override
String get filterMarkersTooltip => 'Фильтровать маркеры';
@override
String get contactsFilter => 'Контакты';
@override
String get repeatersFilter => 'Ретрансляторы';
@override
String get sarMarkers => 'Маркеры SAR';
@override
String get foundPerson => 'Найденный человек';
@override
String get fire => 'Пожар';
@override
String get stagingArea => 'Место сбора';
@override
String get showAll => 'Показать все';
@override
String get locationUnavailable => 'Местоположение недоступно';
@override
String get ahead => 'впереди';
@override
String degreesRight(int degrees) {
return '$degrees° вправо';
}
@override
String degreesLeft(int degrees) {
return '$degrees° влево';
}
@override
String latLonFormat(String latitude, String longitude) {
return 'Ш: $latitude Д: $longitude';
}
@override
String get noContactsYet => 'Контактов пока нет';
@override
String get connectToDeviceToLoadContacts =>
'Подключите устройство для загрузки контактов';
@override
String get teamMembers => 'Члены команды';
@override
String get repeaters => 'Ретрансляторы';
@override
String get rooms => 'Комнаты';
@override
String get channels => 'Каналы';
@override
String get selectMapLayer => 'Выбрать слой карты';
@override
String get openStreetMap => 'OpenStreetMap';
@override
String get openTopoMap => 'OpenTopoMap';
@override
String get esriSatellite => 'ESRI Спутник';
@override
String get googleHybrid => 'Google Гибрид';
@override
String get googleRoadmap => 'Google Дороги';
@override
String get googleTerrain => 'Google Рельеф';
@override
String get dragToPosition => 'Перетащите для позиционирования';
@override
String get createSarMarker => 'Создать маркер SAR';
@override
String get compass => 'Компас';
@override
String get navigationAndContacts => 'Навигация и контакты';
@override
String get sarAlert => 'ТРЕВОГА SAR';
@override
String get textCopiedToClipboard => 'Текст скопирован в буфер обмена';
@override
String get cannotReplySenderMissing =>
'Не удаётся ответить: нет информации об отправителе';
@override
String get cannotReplyContactNotFound =>
'Не удаётся ответить: контакт не найден';
@override
String get copyText => 'Копировать текст';
@override
String get saveAsTemplate => 'Сохранить как шаблон';
@override
String get templateSaved => 'Шаблон успешно сохранён';
@override
String get templateAlreadyExists => 'Шаблон с таким эмодзи уже существует';
@override
String get deleteMessage => 'Удалить сообщение';
@override
String get deleteMessageConfirmation =>
'Вы уверены, что хотите удалить это сообщение?';
@override
String get shareLocation => 'Поделиться местоположением';
@override
String shareLocationText(
String markerInfo,
String lat,
String lon,
String url,
) {
return '$markerInfo\n\nКоординаты: $lat, $lon\n\nGoogle Maps: $url';
}
@override
String get sarLocationShare => 'Местоположение SAR';
@override
String get justNow => 'Только что';
@override
String minutesAgo(int minutes) {
return '$minutesм назад';
}
@override
String hoursAgo(int hours) {
return '$hoursч назад';
}
@override
String daysAgo(int days) {
return '$daysд назад';
}
@override
String secondsAgo(int seconds) {
return '$secondsс назад';
}
@override
String get sending => 'Отправка...';
@override
String get sent => 'Отправлено';
@override
String get delivered => 'Доставлено';
@override
String deliveredWithTime(int time) {
return 'Доставлено ($timeмс)';
}
@override
String get failed => 'Ошибка';
@override
String get broadcast => 'Трансляция';
@override
String deliveredToContacts(int delivered, int total) {
return 'Доставлено $delivered/$total контактам';
}
@override
String get allDelivered => 'Все доставлено';
@override
String get recipientDetails => 'Детали получателей';
@override
String get pending => 'Ожидание';
@override
String get sarMarkerFoundPerson => 'Найденный человек';
@override
String get sarMarkerFire => 'Место пожара';
@override
String get sarMarkerStagingArea => 'Место сбора';
@override
String get sarMarkerObject => 'Найденный объект';
@override
String get from => 'От';
@override
String get coordinates => 'Координаты';
@override
String get tapToViewOnMap => 'Нажмите, чтобы открыть на карте';
@override
String get radioSettings => 'Настройки радио';
@override
String get frequencyMHz => 'Частота (МГц)';
@override
String get bandwidth => 'Полоса пропускания';
@override
String get spreadingFactor => 'Коэффициент расширения';
@override
String get codingRate => 'Скорость кодирования';
@override
String get txPowerDbm => 'Мощность TX (дБм)';
@override
String maxPowerDbm(int power) {
return 'Макс: $power дБм';
}
@override
String get you => 'Вы';
@override
String exportFailed(String error) {
return 'Ошибка экспорта: $error';
}
@override
String importFailed(String error) {
return 'Ошибка импорта: $error';
}
@override
String get unknown => 'Неизвестно';
@override
String get onlineLayers => 'Онлайн-слои';
@override
String get locationTrail => 'Трек местоположения';
@override
String get showTrailOnMap => 'Показать трек на карте';
@override
String get trailVisible => 'Трек отображается на карте';
@override
String get trailHiddenRecording => 'Трек скрыт (запись продолжается)';
@override
String get duration => 'Продолжительность';
@override
String get points => 'Точки';
@override
String get clearTrail => 'Очистить трек';
@override
String get clearTrailQuestion => 'Очистить трек?';
@override
String get clearTrailConfirmation =>
'Вы уверены, что хотите очистить текущий трек? Это действие нельзя отменить.';
@override
String get noTrailRecorded => 'Трек ещё не записан';
@override
String get startTrackingToRecord =>
'Запустите отслеживание геолокации для записи трека';
@override
String get trailControls => 'Управление треком';
@override
String get model => 'Модель';
@override
String get version => 'Версия';
@override
String get maxContacts => 'Макс. контактов';
@override
String get maxChannels => 'Макс. каналов';
@override
String get publicInfo => 'Публичная информация';
@override
String get useCurrentLocation => 'Использовать текущее местоположение';
@override
String get noneUnknown => 'Нет/Неизвестно';
@override
String get chatNode => 'Узел чата';
@override
String get repeater => 'Ретранслятор';
@override
String get roomChannel => 'Комната/Канал';
@override
String typeNumber(int number) {
return 'Тип $number';
}
@override
String failedToSave(String error) {
return 'Не удалось сохранить: $error';
}
@override
String failedToGetLocation(String error) {
return 'Не удалось получить местоположение: $error';
}
@override
String get sarTemplates => 'Шаблоны SAR';
@override
String get addTemplate => 'Добавить шаблон';
@override
String get editTemplate => 'Изменить шаблон';
@override
String get deleteTemplate => 'Удалить шаблон';
@override
String get templateName => 'Название шаблона';
@override
String get templateNameHint => 'например, Найденный человек';
@override
String get templateEmoji => 'Эмодзи';
@override
String get emojiRequired => 'Требуется эмодзи';
@override
String get nameRequired => 'Требуется название';
@override
String get templateDescription => 'Описание (необязательно)';
@override
String get templateDescriptionHint => 'Добавьте дополнительный контекст...';
@override
String get templateColor => 'Цвет';
@override
String get previewFormat => 'Предпросмотр (формат сообщения SAR)';
@override
String get importFromClipboard => 'Импорт';
@override
String get exportToClipboard => 'Экспорт';
@override
String deleteTemplateConfirmation(String name) {
return 'Удалить шаблон \'$name\'?';
}
@override
String get templateAdded => 'Шаблон добавлен';
@override
String get templateUpdated => 'Шаблон обновлён';
@override
String get templateDeleted => 'Шаблон удалён';
@override
String templatesImported(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Импортировано $count шаблонов',
one: 'Импортирован 1 шаблон',
zero: 'Шаблоны не импортированы',
);
return '$_temp0';
}
@override
String templatesExported(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count шаблонов экспортировано в буфер обмена',
one: '1 шаблон экспортирован в буфер обмена',
);
return '$_temp0';
}
@override
String get resetToDefaults => 'Сбросить до умолчаний';
@override
String get resetToDefaultsConfirmation =>
'Все пользовательские шаблоны будут удалены и восстановлены 4 шаблона по умолчанию. Продолжить?';
@override
String get reset => 'Сбросить';
@override
String get resetComplete => 'Шаблоны сброшены до умолчаний';
@override
String get noTemplates => 'Шаблоны недоступны';
@override
String get tapAddToCreate => 'Нажмите +, чтобы создать первый шаблон';
@override
String get ok => 'ОК';
@override
String get locationPermission => 'Разрешение геолокации';
@override
String get checking => 'Проверка...';
@override
String get locationPermissionGrantedAlways => 'Разрешено (всегда)';
@override
String get locationPermissionGrantedWhileInUse =>
'Разрешено (при использовании)';
@override
String get locationPermissionDeniedTapToRequest =>
'Запрещено — нажмите для запроса';
@override
String get locationPermissionPermanentlyDeniedOpenSettings =>
'Запрещено навсегда — откройте настройки';
@override
String get locationPermissionDialogContent =>
'Доступ к геолокации запрещён навсегда. Включите его в настройках устройства для GPS-трекинга и обмена местоположением.';
@override
String get openSettings => 'Открыть настройки';
@override
String get locationPermissionGranted => 'Разрешение геолокации получено!';
@override
String get locationPermissionRequiredForGps =>
'Разрешение геолокации необходимо для GPS-трекинга и обмена местоположением.';
@override
String get locationPermissionAlreadyGranted =>
'Разрешение геолокации уже предоставлено.';
@override
String get sarNavyBlue => 'SAR Тёмно-синяя';
@override
String get sarNavyBlueDescription => 'Профессиональный / оперативный режим';
@override
String get selectRecipient => 'Выбрать получателя';
@override
String get broadcastToAllNearby => 'Трансляция всем ближайшим';
@override
String get searchRecipients => 'Поиск получателей...';
@override
String get noContactsFound => 'Контакты не найдены';
@override
String get noRoomsFound => 'Комнаты не найдены';
@override
String get noRecipientsAvailable => 'Нет доступных получателей';
@override
String get noChannelsFound => 'Каналы не найдены';
@override
String get newMessage => 'Новое сообщение';
@override
String get channel => 'Канал';
@override
String get samplePoliceLead => 'Руководитель группы полиции';
@override
String get sampleDroneOperator => 'Оператор дрона';
@override
String get sampleFirefighterAlpha => 'Пожарный';
@override
String get sampleMedicCharlie => 'Медик';
@override
String get sampleCommandDelta => 'Командование';
@override
String get sampleFireEngine => 'Пожарная машина';
@override
String get sampleAirSupport => 'Авиационная поддержка';
@override
String get sampleBaseCoordinator => 'Базовый координатор';
@override
String get channelEmergency => 'Аварийный';
@override
String get channelCoordination => 'Координация';
@override
String get channelUpdates => 'Обновления';
@override
String get sampleTeamMember => 'Тестовый член команды';
@override
String get sampleScout => 'Тестовый разведчик';
@override
String get sampleBase => 'Тестовая база';
@override
String get sampleSearcher => 'Тестовый поисковик';
@override
String get sampleObjectBackpack => ' Найден рюкзак синего цвета';
@override
String get sampleObjectVehicle =>
' Брошенный автомобиль — установить владельца';
@override
String get sampleObjectCamping => ' Обнаружено туристическое снаряжение';
@override
String get sampleObjectTrailMarker => ' Указатель тропы найден вне маршрута';
@override
String get sampleMsgAllTeamsCheckIn => 'Всем группам: сообщить о готовности';
@override
String get sampleMsgWeatherUpdate => 'Погода: ясно, температура 18°C';
@override
String get sampleMsgBaseCamp => 'Базовый лагерь развёрнут у места сбора';
@override
String get sampleMsgTeamAlpha => 'Группа выдвигается в сектор 2';
@override
String get sampleMsgRadioCheck => 'Проверка связи — всем станциям ответить';
@override
String get sampleMsgWaterSupply => 'Вода доступна на контрольной точке 3';
@override
String get sampleMsgTeamBravo => 'Группа докладывает: сектор 1 чист';
@override
String get sampleMsgEtaRallyPoint => 'Прибытие на место сбора: 15 минут';
@override
String get sampleMsgSupplyDrop => 'Сброс снаряжения подтверждён на 14:00';
@override
String get sampleMsgDroneSurvey =>
'Разведка дроном завершена — ничего не обнаружено';
@override
String get sampleMsgTeamCharlie => 'Группа запрашивает подкрепление';
@override
String get sampleMsgRadioDiscipline =>
'Всем подразделениям: соблюдать радиодисциплину';
@override
String get sampleMsgUrgentMedical =>
'СРОЧНО: нужна медицинская помощь в секторе 4';
@override
String get sampleMsgAdultMale => ' Взрослый мужчина, в сознании';
@override
String get sampleMsgFireSpotted => 'Обнаружен пожар — координаты следуют';
@override
String get sampleMsgSpreadingRapidly => ' Распространяется быстро!';
@override
String get sampleMsgPriorityHelicopter =>
'ПРИОРИТЕТ: нужна поддержка вертолёта';
@override
String get sampleMsgMedicalTeamEnRoute =>
'Медицинская группа движется к вашему местоположению';
@override
String get sampleMsgEvacHelicopter =>
'Вертолёт эвакуации: прибытие через 10 минут';
@override
String get sampleMsgEmergencyResolved =>
'Чрезвычайная ситуация ликвидирована — опасности нет';
@override
String get sampleMsgEmergencyStagingArea => ' Аварийное место сбора';
@override
String get sampleMsgEmergencyServices =>
'Аварийные службы уведомлены и реагируют';
@override
String get sampleAlphaTeamLead => 'Руководитель группы';
@override
String get sampleBravoScout => 'Разведчик';
@override
String get sampleCharlieMedic => 'Медик';
@override
String get sampleDeltaNavigator => 'Навигатор';
@override
String get sampleEchoSupport => 'Поддержка';
@override
String get sampleBaseCommand => 'Базовое командование';
@override
String get sampleFieldCoordinator => 'Полевой координатор';
@override
String get sampleMedicalTeam => 'Медицинская группа';
@override
String get mapDrawing => 'Рисунок на карте';
@override
String get navigateToDrawing => 'Перейти к рисунку';
@override
String get copyCoordinates => 'Копировать координаты';
@override
String get hideFromMap => 'Скрыть с карты';
@override
String get lineDrawing => 'Линия';
@override
String get rectangleDrawing => 'Прямоугольник';
@override
String get manualCoordinates => 'Ввод координат вручную';
@override
String get enterCoordinatesManually => 'Ввести координаты вручную';
@override
String get latitudeLabel => 'Широта';
@override
String get longitudeLabel => 'Долгота';
@override
String get exampleCoordinates => 'Пример: 55.7558, 37.6173';
@override
String get shareDrawing => 'Поделиться рисунком';
@override
String get shareWithAllNearbyDevices =>
'Поделиться со всеми ближайшими устройствами';
@override
String get shareToRoom => 'Отправить в комнату';
@override
String get sendToPersistentStorage =>
'Отправить в постоянное хранилище комнаты';
@override
String get deleteDrawingConfirm =>
'Вы уверены, что хотите удалить этот рисунок?';
@override
String get drawingDeleted => 'Рисунок удалён';
@override
String yourDrawingsCount(int count) {
return 'Ваши рисунки ($count)';
}
@override
String get shared => 'Передано';
@override
String get line => 'Линия';
@override
String get rectangle => 'Прямоугольник';
@override
String get updateAvailable => 'Доступно обновление';
@override
String get currentVersion => 'Текущая';
@override
String get latestVersion => 'Последняя';
@override
String get downloadUpdate => 'Скачать';
@override
String get updateLater => 'Позже';
@override
String get cadastralParcels => 'Кадастровые участки';
@override
String get forestRoads => 'Лесные дороги';
@override
String get wmsOverlays => 'WMS-наложения';
@override
String get hikingTrails => 'Туристические маршруты';
@override
String get mainRoads => 'Главные дороги';
@override
String get houseNumbers => 'Номера домов';
@override
String get fireHazardZones => 'Пожароопасные зоны';
@override
String get historicalFires => 'Исторические пожары';
@override
String get firebreaks => 'Противопожарные просеки';
@override
String get krasFireZones => 'Пожарные зоны Краса';
@override
String get placeNames => 'Названия мест';
@override
String get municipalityBorders => 'Границы муниципалитетов';
@override
String get topographicMap => 'Топографическая карта 1:25000';
@override
String get recentMessages => 'Последние сообщения';
@override
String get addChannel => 'Добавить канал';
@override
String get channelName => 'Название канала';
@override
String get channelNameHint => 'например, Группа спасения Альфа';
@override
String get channelSecret => 'Секрет канала';
@override
String get channelSecretHint => 'Общий пароль для этого канала';
@override
String get channelSecretHelp =>
'Этот секрет необходимо передать всем членам команды, которым нужен доступ к каналу';
@override
String get channelTypesInfo =>
'Hash-каналы (#команда): секрет генерируется из названия автоматически. Одно название = один канал на всех устройствах.\n\nЗакрытые каналы: используется явный секрет. Войти могут только те, у кого есть секрет.';
@override
String get hashChannelInfo =>
'Hash-канал: секрет будет автоматически создан из названия. Все, кто использует одно и то же имя, окажутся в одном канале.';
@override
String get channelNameRequired => 'Требуется название канала';
@override
String get channelNameTooLong =>
'Название канала не должно превышать 31 символ';
@override
String get channelSecretRequired => 'Требуется секрет канала';
@override
String get channelSecretTooLong =>
'Секрет канала не должен превышать 32 символа';
@override
String get invalidAsciiCharacters => 'Разрешены только символы ASCII';
@override
String get channelCreatedSuccessfully => 'Канал успешно создан';
@override
String channelCreationFailed(String error) {
return 'Не удалось создать канал: $error';
}
@override
String get deleteChannel => 'Удалить канал';
@override
String deleteChannelConfirmation(String channelName) {
return 'Вы уверены, что хотите удалить канал \"$channelName\"? Это действие нельзя отменить.';
}
@override
String get channelDeletedSuccessfully => 'Канал успешно удалён';
@override
String channelDeletionFailed(String error) {
return 'Не удалось удалить канал: $error';
}
@override
String get createChannel => 'Создать канал';
@override
String get wizardBack => 'Назад';
@override
String get wizardSkip => 'Пропустить';
@override
String get wizardNext => 'Далее';
@override
String get wizardGetStarted => 'Начать';
@override
String get wizardWelcomeTitle => 'Добро пожаловать в MeshCore SAR';
@override
String get viewWelcomeTutorial => 'Просмотреть обучение';
@override
String get allTeamContacts => 'Все контакты команды';
@override
String directMessagesInfo(int count) {
return 'Личные сообщения с подтверждением. Отправлено $count членам команды.';
}
@override
String sarMarkerSentToContacts(int count) {
return 'Маркер SAR отправлен $count контактам';
}
@override
String get noContactsAvailable => 'Нет доступных контактов команды';
@override
String get reply => 'Ответить';
@override
String get technicalDetails => 'Технические детали';
@override
String get messageTechnicalDetails => 'Технические детали сообщения';
@override
String get linkQuality => 'Качество связи';
@override
String get delivery => 'Доставка';
@override
String get status => 'Статус';
@override
String get expectedAckTag => 'Ожидаемый тег ACK';
@override
String get roundTrip => 'Время отклика';
@override
String get retryAttempt => 'Попытка повтора';
@override
String get floodFallback => 'Широковещательный резерв';
@override
String get identity => 'Идентификатор';
@override
String get messageId => 'ID сообщения';
@override
String get sender => 'Отправитель';
@override
String get senderKey => 'Ключ отправителя';
@override
String get recipient => 'Получатель';
@override
String get recipientKey => 'Ключ получателя';
@override
String get voice => 'Голос';
@override
String get voiceId => 'ID голоса';
@override
String get envelope => 'Конверт';
@override
String get sessionProgress => 'Прогресс сессии';
@override
String get complete => 'Завершено';
@override
String get rawDump => 'Необработанные данные';
@override
String get cannotRetryMissingRecipient =>
'Повтор невозможен: нет информации о получателе';
@override
String get voiceUnavailable => 'Голос сейчас недоступен';
@override
String get requestingVoice => 'Запрос голоса';
@override
String get device => 'устройство';
@override
String get change => 'Изменить';
@override
String get wizardOverviewDescription =>
'Это приложение объединяет сообщения MeshCore, полевые обновления SAR, карты и инструменты устройства в одном месте.';
@override
String get wizardOverviewFeature1 =>
'Отправляйте личные сообщения, сообщения комнат и сообщения каналов из основной вкладки «Сообщения».';
@override
String get wizardOverviewFeature2 =>
'Делитесь SAR-маркерами, рисунками на карте, голосовыми клипами и изображениями через mesh-сеть.';
@override
String get wizardOverviewFeature3 =>
'Подключайтесь по BLE или TCP, а затем управляйте сопутствующей радиостанцией прямо из приложения.';
@override
String get wizardMessagingTitle => 'Сообщения и полевые отчёты';
@override
String get wizardMessagingDescription =>
'Здесь сообщения это больше, чем просто текст. Приложение уже поддерживает несколько видов операционных данных и сценариев передачи.';
@override
String get wizardMessagingFeature1 =>
'Отправляйте личные сообщения, сообщения комнат и трафик каналов из одного редактора.';
@override
String get wizardMessagingFeature2 =>
'Создавайте обновления SAR и повторно используемые шаблоны SAR для типовых полевых отчётов.';
@override
String get wizardMessagingFeature3 =>
'Передавайте голосовые сессии и изображения с индикатором прогресса и оценкой эфирного времени в интерфейсе.';
@override
String get wizardConnectDeviceTitle => 'Подключить устройство';
@override
String get wizardConnectDeviceDescription =>
'Подключите свою радиостанцию MeshCore, выберите имя и примените радиопрофиль перед продолжением.';
@override
String get wizardSetupBadge => 'Настройка';
@override
String get wizardOverviewBadge => 'Обзор';
@override
String wizardConnectedToDevice(String deviceName) {
return 'Подключено к $deviceName';
}
@override
String get wizardNoDeviceConnected => 'Устройство ещё не подключено';
@override
String get wizardSkipForNow => 'Пропустить пока';
@override
String get wizardDeviceNameLabel => 'Имя устройства';
@override
String get wizardDeviceNameHelp =>
'Это имя транслируется другим пользователям MeshCore.';
@override
String get wizardConfigRegionLabel => 'Регион конфигурации';
@override
String get wizardConfigRegionHelp =>
'Используется полный официальный список профилей MeshCore. По умолчанию выбран EU/UK (Narrow).';
@override
String get wizardPresetNote1 =>
'Убедитесь, что выбранный профиль соответствует местным радиоправилам.';
@override
String get wizardPresetNote2 =>
'Список соответствует официальному потоку профилей инструмента MeshCore config.';
@override
String get wizardPresetNote3 =>
'Для онбординга по умолчанию остаётся выбран EU/UK (Narrow).';
@override
String get wizardSaving => 'Сохранение...';
@override
String get wizardSaveAndContinue => 'Сохранить и продолжить';
@override
String get wizardEnterDeviceName =>
'Введите имя устройства перед продолжением.';
@override
String wizardDeviceSetupSaved(String deviceName, String presetName) {
return 'Сохранено: $deviceName, профиль $presetName.';
}
@override
String get wizardNetworkTitle => 'Контакты, комнаты и ретрансляторы';
@override
String get wizardNetworkDescription =>
'Вкладка «Контакты» организует сеть, которую вы обнаруживаете, и маршруты, которые вы узнаёте со временем.';
@override
String get wizardNetworkFeature1 =>
'Просматривайте участников команды, ретрансляторы, комнаты, каналы и ожидающие объявления в одном списке.';
@override
String get wizardNetworkFeature2 =>
'Используйте smart ping, вход в комнаты, изученные пути и инструменты сброса маршрутов, когда связь становится нестабильной.';
@override
String get wizardNetworkFeature3 =>
'Создавайте каналы и управляйте сетевыми назначениями, не покидая приложение.';
@override
String get wizardMapOpsTitle => 'Карта, следы и общая геометрия';
@override
String get wizardMapOpsDescription =>
'Карта приложения напрямую связана с сообщениями, отслеживанием и SAR-слоями, а не является отдельным просмотрщиком.';
@override
String get wizardMapOpsFeature1 =>
'Отслеживайте свою позицию, местоположение команды и траектории движения на карте.';
@override
String get wizardMapOpsFeature2 =>
'Открывайте рисунки из сообщений, просматривайте их прямо в интерфейсе и удаляйте с карты при необходимости.';
@override
String get wizardMapOpsFeature3 =>
'Используйте карты ретрансляторов и общие слои, чтобы понимать покрытие сети в поле.';
@override
String get wizardToolsTitle => 'Инструменты помимо сообщений';
@override
String get wizardToolsDescription =>
'Здесь есть больше, чем четыре основные вкладки. Приложение также включает настройку, диагностику и необязательные сценарии датчиков.';
@override
String get wizardToolsFeature1 =>
'Откройте настройки устройства, чтобы изменить параметры радио, телеметрию, мощность TX и сведения о сопутствующем устройстве.';
@override
String get wizardToolsFeature2 =>
'Включите вкладку «Датчики», если нужны панели наблюдаемых датчиков и быстрые действия обновления.';
@override
String get wizardToolsFeature3 =>
'Используйте журналы пакетов, сканирование спектра и диагностику разработчика для устранения проблем mesh-сети.';
@override
String get postConnectDiscoveryTitle => 'Обнаружить ретрансляторы сейчас?';
@override
String get postConnectDiscoveryDescription =>
'Запустите обнаружение ретрансляторов сразу после подключения, чтобы увидеть ближайшие узлы MeshCore и быстрее добавить их в свою сеть.';
@override
String get contactInSensors => 'В датчиках';
@override
String get contactAddToSensors => 'Добавить в датчики';
@override
String get contactSetPath => 'Задать путь';
@override
String contactAddedToSensors(String contactName) {
return '$contactName добавлен в Датчики';
}
@override
String contactFailedToClearRoute(String error) {
return 'Не удалось очистить маршрут: $error';
}
@override
String get contactRouteCleared => 'Маршрут очищен';
@override
String contactRouteSet(String route) {
return 'Маршрут задан: $route';
}
@override
String contactFailedToSetRoute(String error) {
return 'Не удалось задать маршрут: $error';
}
@override
String get rssi => 'RSSI';
@override
String get snr => 'SNR';
@override
String get ackTimeout => 'Таймаут ACK';
@override
String get opcode => 'Опкод';
@override
String get payload => 'Полезная нагрузка';
@override
String get hops => 'Хопы';
@override
String get hashSize => 'Размер хеша';
@override
String get pathBytes => 'Байты пути';
@override
String get selectedPath => 'Выбранный путь';
@override
String get estimatedTx => 'Ожидаемая передача';
@override
String get senderToReceipt => 'От отправителя до получения';
@override
String get receivedCopies => 'Полученные копии';
@override
String get retryCause => 'Причина повтора';
@override
String get retryMode => 'Режим повтора';
@override
String get retryResult => 'Результат повтора';
@override
String get lastRetry => 'Последний повтор';
@override
String get rxPackets => 'RX-пакеты';
@override
String get mesh => 'Mesh';
@override
String get rate => 'Скорость';
@override
String get window => 'Окно';
@override
String get posttxDelay => 'Задержка после передачи';
@override
String get bandpass => 'Полосовой';
@override
String get bandpassFilterVoice => 'Полосовой фильтр голоса';
@override
String get active => 'Активно';
@override
String get addContact => 'Добавить контакт';
@override
String get all => 'Все';
@override
String get clearAllLabel => 'Очистить все';
@override
String get clearFilters => 'Очистить фильтры';
@override
String get clearRoute => 'Очистить маршрут';
@override
String get clearMessages => 'Очистить сообщения';
@override
String get clearScale => 'Очистить масштаб';
@override
String get clearDiscoveries => 'Очистить обнаружения';
@override
String get clearOnlineTraceDatabase => 'Очистить базу трассировок';
@override
String get clearAllChannels => 'Очистить все каналы';
@override
String get clearAllContacts => 'Очистить все контакты';
@override
String get clearChannels => 'Очистить каналы';
@override
String get clearContacts => 'Очистить контакты';
@override
String get clearPathOnMaxRetry => 'Очистить путь при макс. повторе';
@override
String get create => 'Создать';
@override
String get custom => 'Пользовательский';
@override
String get defaultValue => 'По умолчанию';
@override
String get duplicate => 'Дублировать';
@override
String get editName => 'Редактировать имя';
@override
String get open => 'Открыть';
@override
String get paste => 'Вставить';
@override
String get preview => 'Предпросмотр';
@override
String get remove => 'Удалить';
@override
String get rename => 'Переименовать';
@override
String get resolveAll => 'Разрешить все';
@override
String get send => 'Отправить';
@override
String get sendAnyway => 'Отправить все равно';
@override
String get share => 'Поделиться';
@override
String get trace => 'Трассировка';
@override
String get discovery => 'Обнаружение';
@override
String get discoverRepeaters => 'Обнаружить повторители';
@override
String get discoverSensors => 'Обнаружить датчики';
@override
String get repeaterDiscoverySent => 'Обнаружение повторителей отправлено';
@override
String get sensorDiscoverySent => 'Обнаружение датчиков отправлено';
@override
String get clearedPendingDiscoveries => 'Ожидающие обнаружения очищены.';
@override
String get autoDiscovery => 'Автоматическое обнаружение';
@override
String get enableAutomaticAdding => 'Включить автоматическое добавление';
@override
String get autoaddRepeaters => 'Автодобавление повторителей';
@override
String get autoaddRoomServers => 'Автодобавление серверов комнат';
@override
String get autoaddSensors => 'Автодобавление датчиков';
@override
String get autoaddUsers => 'Автодобавление пользователей';
@override
String get overwriteOldestWhenFull => 'Перезаписать старейшие при заполнении';
@override
String get storage => 'Хранилище';
@override
String get dangerZone => 'Опасная зона';
@override
String get profiles => 'Профили';
@override
String get favourites => 'Избранное';
@override
String get sensors => 'Датчики';
@override
String get others => 'Другие';
@override
String get gpsModule => 'Модуль GPS';
@override
String get liveTraffic => 'Живой трафик';
@override
String get repeatersMap => 'Карта повторителей';
@override
String get blePacketLogs => 'Журналы BLE-пакетов';
@override
String get onlineTraceDatabase => 'База трассировок';
@override
String get routePathByteSize => 'Размер пути в байтах';
@override
String get messageNotifications => 'Уведомления о сообщениях';
@override
String get sarAlerts => 'SAR-оповещения';
@override
String get discoveryNotifications => 'Уведомления об обнаружении';
@override
String get updateNotifications => 'Уведомления об обновлениях';
@override
String get muteWhileAppIsOpen => 'Без звука при открытом приложении';
@override
String get disableContacts => 'Отключить контакты';
@override
String get enableSensorsTab => 'Включить вкладку Датчики';
@override
String get enableProfiles => 'Включить профили';
@override
String get nearestRepeaterFallback => 'Ближайший повторитель как резерв';
@override
String get deleteAllStoredMessageHistory => 'Удалить всю историю сообщений';
@override
String get messageFontSize => 'Размер шрифта сообщений';
@override
String get rotateMapWithHeading => 'Вращать карту по направлению';
@override
String get showMapDebugInfo => 'Показать отладочную информацию карты';
@override
String get openMapInFullscreen => 'Открыть карту на весь экран';
@override
String get showSarMarkersLabel => 'Показать SAR-маркеры';
@override
String get hideRepeatersOnMap => 'Скрыть повторители на карте';
@override
String get setMapScale => 'Установить масштаб карты';
@override
String get customMapScaleSaved => 'Пользовательский масштаб карты сохранён';
@override
String get voiceBitrate => 'Битрейт голоса';
@override
String get voiceCompressor => 'Компрессор голоса';
@override
String get voiceLimiter => 'Лимитер голоса';
@override
String get micAutoGain => 'Автоусиление микрофона';
@override
String get echoCancellation => 'Подавление эха';
@override
String get noiseSuppression => 'Подавление шума';
@override
String get trimSilenceInVoiceMessages =>
'Обрезать тишину в голосовых сообщениях';
@override
String get compressor => 'Компрессор';
@override
String get limiter => 'Лимитер';
@override
String get autoGain => 'Автоусиление';
@override
String get echoCancel => 'Эхо';
@override
String get noiseSuppress => 'Шум';
@override
String get silenceTrim => 'Тишина';
@override
String get maxImageSize => 'Максимальный размер изображения';
@override
String get imageCompression => 'Сжатие изображения';
@override
String get grayscale => 'Оттенки серого';
@override
String get ultraMode => 'Режим ультра';
@override
String get fastPrivateGpsUpdates => 'Быстрые приватные GPS-обновления';
@override
String get movementThreshold => 'Порог движения';
@override
String get fastGpsMovementThreshold => 'Порог движения быстрого GPS';
@override
String get fastGpsActiveuseInterval =>
'Интервал активного использования быстрого GPS';
@override
String get activeuseUpdateInterval =>
'Интервал обновления при активном использовании';
@override
String get repeatNearbyTraffic => 'Повторять ближний трафик';
@override
String get relayThroughRepeatersAcrossTheMesh =>
'Ретранслировать через повторители по сети';
@override
String get nearbyOnlyWithoutRepeaterFlooding =>
'Только рядом, без flood повторителей';
@override
String get multihop => 'Многохоповый';
@override
String get createProfile => 'Создать профиль';
@override
String get renameProfile => 'Переименовать профиль';
@override
String get newProfile => 'Новый профиль';
@override
String get manageProfiles => 'Управление профилями';
@override
String get enableProfilesToStartManagingThem =>
'Включите профили, чтобы начать управлять ими.';
@override
String get openMessage => 'Открыть сообщение';
@override
String get jumpToTheRelatedSarMessage => 'Перейти к связанному SAR-сообщению';
@override
String get removeSarMarker => 'Удалить SAR-маркер';
@override
String get pleaseSelectADestinationToSendSarMarker =>
'Выберите назначение для отправки SAR-маркера';
@override
String get sarMarkerBroadcastToPublicChannel =>
'SAR-маркер отправлен в публичный канал';
@override
String get sarMarkerSentToRoom => 'SAR-маркер отправлен в комнату';
@override
String get loadFromGallery => 'Загрузить из галереи';
@override
String get replaceImage => 'Заменить изображение';
@override
String get selectFromGallery => 'Выбрать из галереи';
@override
String get team => 'Команда';
@override
String get found => 'Найдено';
@override
String get staging => 'Место сбора';
@override
String get object => 'Объект';
@override
String get quiet => 'Тихо';
@override
String get busy => 'Занято';
@override
String get searchMessages => 'Поиск сообщений';
@override
String get sendImageFromGallery => 'Отправить изображение из галереи';
@override
String get takePhoto => 'Сделать фото';
@override
String get allMessages => 'Все сообщения';
@override
String get sendToPublicChannel => 'Отправить в публичный канал?';
@override
String get selectMarkerTypeAndDestination =>
'Выберите тип маркера и назначение';
@override
String get noDestinationsAvailableLabel => 'Нет доступных назначений';
@override
String get image => 'Изображение';
@override
String get format => 'Формат';
@override
String get dimensions => 'Размеры';
@override
String get segments => 'Сегменты';
@override
String get transfers => 'Передачи';
@override
String get downloadedBy => 'Загружено';
@override
String get saveDiscoverySettings => 'Сохранить настройки обнаружения';
@override
String get savePublicInfo => 'Сохранить публичную информацию';
@override
String get saveRadioSettings => 'Сохранить настройки радио';
@override
String get savePath => 'Сохранить путь';
@override
String get wipeDeviceData => 'Стереть данные устройства';
@override
String get wipeDevice => 'Стереть устройство';
@override
String get destructiveDeviceActions => 'Деструктивные действия устройства.';
@override
String get chooseAPresetOrFinetuneCustomRadioSettings =>
'Выберите пресет или настройте радио вручную.';
@override
String get used => 'Использовано';
@override
String get total => 'Всего';
@override
String get renameValue => 'Переименовать значение';
@override
String get customizeFields => 'Настроить поля';
@override
String get livePreview => 'Предпросмотр в реальном времени';
@override
String get refreshSchedule => 'Расписание обновления';
@override
String get noResponse => 'Нет ответа';
@override
String get refreshing => 'Обновление';
@override
String get unavailable => 'Недоступно';
@override
String get pickARelayOrNodeToWatchInSensors =>
'Выберите реле или узел для наблюдения.';
@override
String get publicKeyLabel => 'Публичный ключ';
@override
String get alreadyInContacts => 'Уже в контактах';
@override
String get connectToADeviceBeforeAddingContacts =>
'Подключитесь к устройству перед добавлением контактов';
@override
String get fromContacts => 'Из контактов';
@override
String get onlineOnly => 'Только онлайн';
@override
String get inBoth => 'В обоих';
@override
String get source => 'Источник';
@override
String get allMessagesCleared => 'Все сообщения очищены';
@override
String get onlineTraceDatabaseCleared => 'База трассировок очищена';
@override
String get packetLogsCleared => 'Журналы пакетов очищены';
@override
String get hexDataCopiedToClipboard => 'Hex-данные скопированы в буфер';
@override
String get developerModeEnabled => 'Режим разработчика включён';
@override
String get developerModeDisabled => 'Режим разработчика отключён';
@override
String get clipboardIsEmpty => 'Буфер обмена пуст';
@override
String get contactImported => 'Контакт импортирован';
@override
String get contactLinkCopiedToClipboard =>
'Ссылка на контакт скопирована в буфер';
@override
String get failedToExportContact => 'Не удалось экспортировать контакт';
@override
String get noLogsToExport => 'Нет журналов для экспорта';
@override
String get exportAsCsv => 'Экспортировать как CSV';
@override
String get exportAsText => 'Экспортировать как текст';
@override
String get receivedRfc3339 => 'Получено (RFC3339)';
@override
String get buildTime => 'Время сборки';
@override
String get downloadUrlNotAvailable => 'URL загрузки недоступен';
@override
String get cannotOpenDownloadUrl => 'Не удаётся открыть URL загрузки';
@override
String get updateCheckIsOnlyAvailableOnAndroid =>
'Проверка обновлений доступна только на Android';
@override
String get youAreRunningTheLatestVersion => 'Вы используете последнюю версию';
@override
String get updateAvailableButDownloadUrlNotFound =>
'Обновление доступно, но URL загрузки не найден';
@override
String get startTictactoe => 'Начать Tic-Tac-Toe';
@override
String get tictactoeUnavailable => 'Tic-Tac-Toe недоступно';
@override
String get tictactoeOpponentUnknown => 'Tic-Tac-Toe: противник неизвестен';
@override
String get tictactoeWaitingForStart => 'Tic-Tac-Toe: ожидание начала';
@override
String get acceptsShareLinks => 'Принимает общие ссылки';
@override
String get supportsRawHex => 'Поддерживает raw hex';
@override
String get clipboardfriendly => 'Удобно для буфера';
@override
String get captured => 'Захвачено';
@override
String get size => 'Размер';
@override
String get noCustomChannelsToClear =>
'Нет пользовательских каналов для очистки.';
@override
String get noDeviceContactsToClear => 'Нет контактов устройства для очистки.';
@override
String get aToZ => 'А';
@override
String get add => 'Добавить';
@override
String get addAdditionalDetails => 'Добавить дополнительные сведения';
@override
String get addPeer => 'Добавить узел';
@override
String get addPeerManually => 'Добавить узел вручную';
@override
String addedToContacts(String name) {
return '$name добавлен в контакты';
}
@override
String addedToSensors(String name) {
return '$name добавлен в Датчики';
}
@override
String get allowAll => 'Разрешить все';
@override
String get anonymousRxStats => 'Анонимная статистика RX';
@override
String get appearance => 'Внешний вид';
@override
String get ascii => 'ASCII';
@override
String get baseTelemetry => 'Базовая телеметрия';
@override
String get blePin => 'BLE PIN';
@override
String get buzzerAlerts => 'Звуковые оповещения';
@override
String get cancelImageReceive => 'Отменить получение изображения';
@override
String get choose => 'Выбрать';
@override
String get chooseWhichTabsAndContactSectionsToShow =>
'Выберите отображаемые вкладки и разделы контактов';
@override
String get clearCache => 'Очистить кэш';
@override
String get clearHistory => 'Очистить историю';
@override
String get clearLiveView => 'Очистить режим реального времени';
@override
String get clearLogs => 'Очистить журналы';
@override
String get clearOfflineCache => 'Очистить офлайн-кэш?';
@override
String get clearOverlay => 'Очистить наложение';
@override
String get clearRouteOnlyAfterAllRetriesFail =>
'Очищать маршрут только после всех неудачных повторов';
@override
String get codecBitrateAndAudioProcessing =>
'Кодек, битрейт и обработка звука';
@override
String get connectByIpAddress => 'Подключиться по IP-адресу';
@override
String get controlWhichAlertsYouReceive =>
'Управление получаемыми оповещениями';
@override
String get copyFullHex => 'Копировать полный Hex';
@override
String get copyRawResponse => 'Копировать необработанный ответ';
@override
String get couldNotLoadMetHistory => 'Не удалось загрузить историю MET';
@override
String customizeSensor(String name) {
return 'Настроить $name';
}
@override
String get data => 'Данные';
@override
String get deleteGroup => 'Удалить группу';
@override
String deleteStyleConfirm(String name) {
return 'Удалить $name?';
}
@override
String deleteThisDrawing(String type) {
return 'Удалить этот $type?';
}
@override
String get deny => 'Запретить';
@override
String get deviceInfo => 'Информация об устройстве';
@override
String get deviceSettings => 'Настройки устройства';
@override
String get deviceTimeSynced =>
'Время устройства синхронизировано с телефоном.';
@override
String get disableFastGpsPublishing => 'Отключить быструю публикацию GPS';
@override
String get displayMarkersAndTraceDatabase =>
'Отображение, маркеры и база трассировок';
@override
String get download => 'Скачать';
@override
String get environmentalTelemetry => 'Телеметрия окружающей среды';
@override
String errorCheckingForUpdates(String error) {
return 'Ошибка проверки обновлений: $error';
}
@override
String errorGeneric(String error) {
return 'Ошибка: $error';
}
@override
String errorOpeningDownload(String error) {
return 'Ошибка открытия загрузки: $error';
}
@override
String get exportLogs => 'Экспортировать журналы';
@override
String get extraAggressiveAvifCompression => 'Сверхагрессивное сжатие AVIF';
@override
String failedToAddContact(String error) {
return 'Не удалось добавить контакт: $error';
}
@override
String failedToAddName(String name, String error) {
return 'Не удалось добавить $name: $error';
}
@override
String failedToClearChannels(String error) {
return 'Не удалось очистить каналы: $error';
}
@override
String failedToClearContacts(String error) {
return 'Не удалось очистить контакты: $error';
}
@override
String get failedToConnectViaSerial =>
'Не удалось подключиться через последовательный порт';
@override
String failedToLoadPreviewImage(String error) {
return 'Не удалось загрузить изображение предпросмотра: $error';
}
@override
String failedToLoadTrace(String error) {
return 'Не удалось загрузить трассировку: $error';
}
@override
String failedToSendSarMarker(String error) {
return 'Не удалось отправить маркер SAR: $error';
}
@override
String failedToSetBuzzerMode(String error) {
return 'Не удалось установить режим зуммера: $error';
}
@override
String failedToSetGpsMode(String error) {
return 'Не удалось установить режим GPS: $error';
}
@override
String failedToSyncDeviceTime(String error) {
return 'Не удалось синхронизировать время устройства: $error';
}
@override
String failedToWipeDeviceData(String error) {
return 'Не удалось стереть данные устройства: $error';
}
@override
String get fastGpsTargetChannel => 'Целевой канал быстрого GPS';
@override
String get fastUpdatesThresholdsAndPermissions =>
'Быстрые обновления, пороги и разрешения';
@override
String get fetchingCatalog => 'Загрузка каталога...';
@override
String get fifteenMinutes => '15 минут';
@override
String get fifteenSeconds => '15 секунд';
@override
String get filterByDirection => 'Фильтр по направлению';
@override
String get finish => 'Завершить';
@override
String get fiveMinutes => '5 минут';
@override
String get fiveSeconds => '5 секунд';
@override
String get fix => 'Фикс';
@override
String get gps => 'GPS';
@override
String get gpsAdvertPolicy => 'Политика объявлений GPS';
@override
String get gpsAndLocation => 'GPS и местоположение';
@override
String get gpsDiagnostics => 'Диагностика GPS';
@override
String get gpsSection => 'GPS';
@override
String get help => 'Помощь';
@override
String get hex => 'Hex';
@override
String get hidden => 'Скрыто';
@override
String get howTheRadioAutoAddsDiscoveredNodes =>
'Как радио автоматически добавляет обнаруженные узлы.';
@override
String get images => 'Изображения';
@override
String get importProfile => 'Импортировать профиль';
@override
String get lastFix => 'Последний фикс';
@override
String get latest => 'Последняя';
@override
String get latitude => 'Широта';
@override
String get loadASavedRegion => 'Загрузить сохранённый регион';
@override
String get loading => 'Загрузка';
@override
String get locationSharingHardwareAndUpdateInterval =>
'Обмен местоположением, оборудование и интервал обновления.';
@override
String get locationTelemetry => 'Телеметрия местоположения';
@override
String get lockDestination => 'Зафиксировать назначение';
@override
String get longitude => 'Долгота';
@override
String get mapStyle => 'Стиль карты';
@override
String get max => 'Макс';
@override
String get maxZoom => 'Макс. масштаб';
@override
String get messaging => 'Сообщения';
@override
String get metHistory => 'История MET';
@override
String get min => 'Мин';
@override
String get minZoom => 'Мин. масштаб';
@override
String get moveDown => 'Переместить вниз';
@override
String get moveUp => 'Переместить вверх';
@override
String get multiAckMode => 'Режим множественного ACK';
@override
String get multiDeviceWorkspaceManagement =>
'Управление рабочим пространством на нескольких устройствах';
@override
String get myLocation => 'Моё местоположение';
@override
String get nameAndTelemetryShared =>
'Имя и телеметрия доступны другим устройствам.';
@override
String newVersionAvailable(String version) {
return 'Новая версия: $version';
}
@override
String get newer => 'Новее';
@override
String get noNeighboursFound => 'Соседи не найдены';
@override
String get noServersFound => 'Серверы не найдены';
@override
String get notSet => 'Не задано';
@override
String get notifications => 'Уведомления';
@override
String get offZeroSeconds => 'Выкл (0 с)';
@override
String get offlineMaps => 'Офлайн-карты';
@override
String get older => 'Старее';
@override
String get oneByteMode0 => '1 байт (режим 0)';
@override
String get oneHour => '1 час';
@override
String get oneMinute => '1 минута';
@override
String get openPacketLogs => 'Открыть журналы пакетов';
@override
String get packetTypeHelp => 'Справка по типам пакетов';
@override
String get pasteShareLinkOrHexAdvert => 'Вставьте ссылку или Hex-объявление';
@override
String get pathHash => 'Хеш пути';
@override
String get pathSize => 'Размер пути';
@override
String get ping => 'Пинг';
@override
String get polygon => 'Полигон';
@override
String get rawResponseCopied => 'Необработанный ответ скопирован';
@override
String get resendThroughNearestRepeaterOnFailure =>
'Повторить через ближайший ретранслятор при ошибке';
@override
String get resolveContact => 'Разрешить контакт';
@override
String get routingRetriesAndDestinationLock =>
'Маршрутизация, повторы и фиксация назначения';
@override
String get samples => 'Образцы';
@override
String get satellites => 'Спутники';
@override
String get saving => 'Сохранение...';
@override
String get search => 'Поиск';
@override
String get searchByNameOrToken => 'Поиск по имени или токену';
@override
String get searchDiscoveredNodes => 'Поиск обнаруженных узлов';
@override
String get searchInCurrentFilter => 'Поиск в текущем фильтре';
@override
String get searchLogs => 'Поиск по журналам...';
@override
String get searchSensors => 'Поиск датчиков';
@override
String get searchThisSection => 'Поиск в этом разделе';
@override
String get selectedRelays => 'Выбранные ретрансляторы';
@override
String get sensor => 'Датчик';
@override
String serialError(String error) {
return 'Ошибка последовательного порта: $error';
}
@override
String setPathForContact(String name) {
return 'Задать путь для $name';
}
@override
String get shareLiveGps => 'Транслировать GPS';
@override
String get shareMyTiles => 'Поделиться моими тайлами';
@override
String get sharingLocationFromPhone =>
'Трансляция местоположения на этом канале с телефона.';
@override
String get sharingLocationFromRadio =>
'Трансляция местоположения на этом канале с радио.';
@override
String signalDbm(String rssi) {
return 'Сигнал $rssi дБм';
}
@override
String get sizeCompressionAndPreview => 'Размер, сжатие и предпросмотр';
@override
String get simpleMode => 'Простой режим';
@override
String get simpleModeDescription =>
'Только чат и карта с избранными контактами';
@override
String get simpleModeRequiresLockedDestination =>
'Сначала включите «Зафиксировать назначение» с каналом, чтобы использовать простой режим';
@override
String get noFavouriteContacts => 'Нет избранных контактов';
@override
String get skip => 'Пропустить';
@override
String get smallerFileSize => 'Меньший размер файла';
@override
String get sort => 'Сортировка';
@override
String get stoppedSharingLocation =>
'Трансляция местоположения на этом канале остановлена.';
@override
String get suppressNotificationsWhileInForeground =>
'Отключить уведомления при открытом приложении';
@override
String get tabsAndNavigation => 'Вкладки и навигация';
@override
String get templatesAndTutorials => 'Шаблоны и обучение';
@override
String get tenMinutes => '10 минут';
@override
String get tenSeconds => '10 секунд';
@override
String get testSendUpdate => 'Тестовая отправка обновления';
@override
String get themeLanguageAndDisplayPreferences =>
'Тема, язык и настройки отображения';
@override
String get thirtyMinutes => '30 минут';
@override
String get thirtySeconds => '30 секунд';
@override
String get threeBytesMode2 => '3 байта (режим 2)';
@override
String get trafficStatsMessageHistoryAndDeveloperTools =>
'Статистика трафика, история сообщений и инструменты разработчика';
@override
String get twoBytesMode1 => '2 байта (режим 1)';
@override
String get twoMinutes => '2 минуты';
@override
String get undo => 'Отменить';
@override
String get updated => 'Обновлено';
@override
String get useContactFlags => 'Использовать флаги контактов';
@override
String get useSavedCoordinates => 'Использовать сохранённые координаты';
@override
String get view => 'Просмотр';
@override
String get viewNeighbours => 'Просмотр соседей';
@override
String get viewPublicStats => 'Просмотр публичной статистики';
@override
String get setRegionScope => 'Установить область региона';
@override
String get regionScope => 'Область региона';
@override
String get regionScopeNone => 'Нет (глобально)';
@override
String get clearRegionScope => 'Очистить область';
@override
String get regionScopeWarning =>
'Только ретрансляторы, разрешающие этот регион, будут пересылать.';
@override
String get discoverRegions => 'Обнаружить из ретрансляторов';
@override
String get discoveringRegions => 'Обнаружение регионов...';
@override
String get enterRegionName => 'Название региона (напр. auckland)';
@override
String get noRegionsFound => 'Регионы не найдены на этом ретрансляторе.';
@override
String regionScopeSet(String name) {
return 'Область региона установлена на $name';
}
@override
String get regionScopeCleared => 'Область региона очищена';
@override
String get selectDestinationFirst =>
'Сначала выберите канал, контакт или комнату';
@override
String get recipientNoLongerAvailable => 'Получатель больше не доступен';
@override
String failedToSendMessage(String error) {
return 'Не удалось отправить: $error';
}
@override
String get tictactoeDirectOnly =>
'Крестики-нолики работают только в личных сообщениях. Сначала выберите контакт.';
@override
String get deviceKeyUnavailable => 'Ключ устройства недоступен';
@override
String get imageCompressionFailed => 'Не удалось сжать изображение';
@override
String get imageFragmentationFailed =>
'Не удалось разделить изображение на фрагменты';
@override
String get failedToAnnounceImage => 'Не удалось анонсировать изображение';
@override
String get noRecipientSelected => 'Получатель не выбран';
@override
String get imageSendFailed => 'Не удалось отправить изображение';
@override
String get microphonePermissionRequiredForVoice =>
'Для голосовых сообщений требуется разрешение на микрофон';
@override
String get recordingDiscarded => 'Запись отменена';
@override
String publicChannelMediaWarning(String mediaType) {
return 'Вы собираетесь отправить $mediaType в публичный канал. Это не рекомендуется: получить это может любой в mesh-сети. Выберите приватный или тегированный канал, если только это не то, что вы хотите.';
}
@override
String get selectPrivateChannelToShareLocation =>
'Выберите приватный канал, чтобы поделиться местоположением.';
@override
String get stopSharingMyLocation => 'Прекратить делиться местоположением';
@override
String get shareMyLocation => 'Поделиться местоположением';
@override
String get stopRecording => 'Остановить запись';
@override
String get recordVoice => 'Записать голосовое сообщение';
@override
String get moreActions => 'Другие действия';
@override
String get noMessagesInFilter => 'В этом фильтре нет сообщений';
@override
String get noMatchesInFilter => 'В этом фильтре нет совпадений';
@override
String syncFailed(String error) {
return 'Ошибка синхронизации: $error';
}
@override
String get invalidLink => 'Недействительная ссылка';
@override
String get cannotOpenLink => 'Не удаётся открыть ссылку';
@override
String get failedToOpenLink => 'Не удалось открыть ссылку';
@override
String get failedToResendMessage => 'Не удалось повторно отправить сообщение';
@override
String retryFailed(String error) {
return 'Повторная попытка не удалась: $error';
}
@override
String get deleteDrawingAndMessage => 'Удалить рисунок и сообщение';
@override
String get lastEchoRelay => 'Последнее эхо: ретранслятор';
@override
String get lastEchoPath => 'Последнее эхо: путь';
@override
String get lastEchoBytesReport => 'Последнее эхо: отчёт о байтах';
@override
String get noGpsCoordinatesAvailable => 'Координаты GPS недоступны';
@override
String get notASarMarker => 'Это не маркер SAR';
@override
String failedToSaveTemplate(String error) {
return 'Не удалось сохранить шаблон: $error';
}
@override
String get drawingNotFound => 'Рисунок не найден';
@override
String get unknownDrawingType => 'Неизвестный тип рисунка';
@override
String get customMapMarker => 'Пользовательский маркер карты';
@override
String customMapPointLabel(String point) {
return 'Точка: $point';
}
@override
String mapIdLabel(String id) {
return 'ID карты: $id';
}
@override
String get cannotFetchVoice => 'Не удаётся получить голосовое сообщение';
@override
String get senderContactUnknown =>
'Контакт отправителя неизвестен. Сначала синхронизируйте контакты.';
@override
String get senderRouteUnknown =>
'Маршрут отправителя неизвестен. Сначала синхронизируйте контакты/путь.';
@override
String messageTooFar(String hops, String maxHops) {
return 'Сообщение слишком далеко ($hops хопов, макс. $maxHops).';
}
@override
String get senderRouteNoPathResponse =>
'Маршрут отправителя не ответил на проверку пути. Синхронизируйте контакты/путь и попробуйте снова.';
@override
String get senderRouteNoRawResponse =>
'Маршрут отправителя не ответил на raw-транспортном пути.';
@override
String voiceFetchOverHops(String hops) {
return 'Получение голоса через $hops хопов может занять время.';
}
@override
String get voiceReceiveCanceled => 'Приём голосового сообщения отменён';
@override
String get fetchingMissingVoiceFragments =>
'Получение недостающих фрагментов голоса';
@override
String get receivingVoice => 'Приём голоса';
@override
String get cannotFetchImage => 'Не удаётся получить изображение';
@override
String imageFetchOverHops(String hops) {
return 'Получение изображения через $hops хопов может занять время.';
}
@override
String get imageAlreadyBeingReceived => 'Изображение уже принимается';
@override
String get loadImage => 'Загрузить изображение';
@override
String get imageFetchFailedToSendRequest =>
'Не удалось отправить запрос на изображение';
@override
String get imageUnavailable => 'Изображение сейчас недоступно';
@override
String get imageFetchTimedOut => 'Время ожидания изображения истекло';
@override
String get imageReceiveCanceled => 'Приём изображения отменён';
@override
String get closeImagePreview => 'Закрыть просмотр изображения';
@override
String get recordingReleaseToSend => 'Запись... отпустите, чтобы отправить';
@override
String get sendingVoice => 'Отправка голоса...';
@override
String get sendLongPressToRecordVoice =>
'Отправить (удерживайте для записи голоса)';
@override
String get discardRecording => 'Удалить запись';
@override
String hopCount(num count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count хопа',
many: '$count хопов',
few: '$count хопа',
one: '$count хоп',
);
return '$_temp0';
}
@override
String get channelsSectionDescription =>
'Широковещательные каналы для mesh-трафика поблизости';
@override
String get roomsSectionDescription =>
'Общие пространства для постоянной координации команды';
@override
String get contactsSectionDescription =>
'Люди и устройства в прямой досягаемости';
@override
String get noRecentChatters => 'Нет недавних собеседников';
@override
String get public => 'Публичный';
@override
String get failedToSendTicTacToeMove =>
'Не удалось отправить ход в крестики-нолики';
@override
String get youWon => 'Вы победили';
@override
String get opponentWon => 'Победил соперник';
@override
String get gameDraw => 'Ничья';
@override
String get yourTurn => 'Ваш ход';
@override
String get opponentTurn => 'Ход соперника';
@override
String get pleaseEnterValidCoordinates => 'Введите корректные координаты';
@override
String get locationNotAvailable => 'Местоположение недоступно';
@override
String get customCaveMapPoint => 'Пользовательская точка карты пещеры';
@override
String get mapPoint => 'Точка карты';
@override
String get fetchingMissingImageFragments =>
'Получение недостающих фрагментов…';
@override
String get loadingImage => 'Загрузка…';
@override
String get receivingImage => 'Приём…';
@override
String get tapToLoad => 'Нажмите, чтобы загрузить';
@override
String get connectDevice => 'Подключить устройство';
@override
String get chooseTransportSubtitle =>
'Выберите транспорт: Bluetooth, WiFi или последовательный порт';
@override
String get ble => 'BLE';
@override
String get network => 'Сеть';
@override
String get serial => 'Последовательный порт';
@override
String get scan => 'Сканировать';
@override
String get pressScanToSearchForDevices =>
'Нажмите «Сканировать», чтобы найти устройства поблизости';
@override
String failedToConnectToDevice(String name) {
return 'Не удалось подключиться к $name';
}
@override
String get unknownDevice => 'Неизвестное устройство';
@override
String get showingCachedResultsTapRefresh =>
'Показаны кэшированные результаты. Нажмите «Обновить», чтобы пересканировать.';
@override
String scanningLocalNetworkOnPort(int port) {
return 'Сканирование локальной сети на наличие WiFi-устройств MeshCore на порту $port';
}
@override
String get cancelScanAndAddServer =>
'Отменить сканирование и добавить сервер';
@override
String get addServer => 'Добавить сервер';
@override
String scanningProgressIps(int scanned, String total) {
return 'Сканирование... $scanned/$total IP-адресов';
}
@override
String get cancelAndEnterManually => 'Отменить и ввести вручную';
@override
String get noRecentOrDiscoveredServers =>
'Пока нет недавних или обнаруженных серверов';
@override
String get recentlyUsed => 'Недавно использованные';
@override
String get connecting => 'Подключение...';
@override
String get discoveredOnThisNetwork => 'Обнаружены в этой сети';
@override
String serverNoLongerAvailable(String host, int port) {
return 'Сервер $host:$port больше недоступен. Выполните сканирование снова, чтобы найти активные серверы.';
}
@override
String failedToConnectToHost(String host, int port) {
return 'Не удалось подключиться к $host:$port';
}
@override
String get enterValidIpAddress => 'Введите корректный IP-адрес';
@override
String get enterValidTcpPort => 'Введите корректный TCP-порт';
@override
String get ipAddress => 'IP-адрес';
@override
String get tcpPort => 'TCP-порт';
@override
String get customServerPort => 'Пользовательский порт сервера';
@override
String get chat => 'Чат';
@override
String get restoringPreviousLink => 'Восстановление предыдущего подключения';
@override
String get noDeviceConnected => 'Нет подключённого устройства';
@override
String get sendAdvert => 'Отправить мой контакт';
@override
String get advertMode => 'Отправить мой контакт';
@override
String get advertModeSubtitle =>
'Выберите, как далеко должны распространиться ваши контактные данные.';
@override
String get floodAdvertSent => 'Контакт отправлен по всей mesh-сети';
@override
String get directAdvertSent => 'Контакт отправлен ближайшим устройствам';
}