// 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 scanningForDevices => 'Поиск устройств...';

  @override
  String get noDevicesFound => 'Устройства не найдены';

  @override
  String get scanAgain => 'Повторить поиск';

  @override
  String get tapToConnect => 'Нажмите для подключения';

  @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 advertisedAtLocation(String latitude, String longitude) {
    return 'Транслируется в $latitude, $longitude';
  }

  @override
  String failedToAdvertise(String error) {
    return 'Ошибка трансляции: $error';
  }

  @override
  String reconnecting(int attempt, int max) {
    return 'Переподключение... ($attempt/$max)';
  }

  @override
  String get cancelReconnection => 'Отменить переподключение';

  @override
  String get mapManagement => 'Управление картой';

  @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 displayPacketActivity =>
      'Отображать активность пакетов в верхней панели';

  @override
  String get simpleMode => 'Простой режим';

  @override
  String get simpleModeDescription =>
      'Скрыть второстепенную информацию в сообщениях и контактах';

  @override
  String get disableMap => 'Отключить карту';

  @override
  String get disableMapDescription =>
      'Скрыть вкладку карты для экономии заряда батареи';

  @override
  String get language => 'Язык';

  @override
  String get chooseLanguage => 'Выбрать язык';

  @override
  String get english => 'Английский';

  @override
  String get slovenian => 'Словенский';

  @override
  String get croatian => 'Хорватский';

  @override
  String get german => 'Немецкий';

  @override
  String get spanish => 'Испанский';

  @override
  String get french => 'Французский';

  @override
  String get italian => 'Итальянский';

  @override
  String get locationBroadcasting => 'Трансляция местоположения';

  @override
  String get autoLocationTracking => 'Авто-отслеживание геолокации';

  @override
  String get automaticallyBroadcastPosition =>
      'Автоматически транслировать обновления позиции';

  @override
  String get configureTracking => 'Настроить отслеживание';

  @override
  String get distanceAndTimeThresholds => 'Пороги расстояния и времени';

  @override
  String get locationTrackingConfiguration =>
      'Настройка отслеживания геолокации';

  @override
  String get configureWhenLocationBroadcasts =>
      'Настройте условия отправки обновлений геолокации в mesh-сеть';

  @override
  String get minimumDistance => 'Минимальное расстояние';

  @override
  String broadcastAfterMoving(String distance) {
    return 'Транслировать только после перемещения на $distance м';
  }

  @override
  String get maximumDistance => 'Максимальное расстояние';

  @override
  String alwaysBroadcastAfterMoving(String distance) {
    return 'Всегда транслировать после перемещения на $distance м';
  }

  @override
  String get minimumTimeInterval => 'Минимальный интервал времени';

  @override
  String alwaysBroadcastEvery(String duration) {
    return 'Всегда транслировать каждые $duration';
  }

  @override
  String get save => 'Сохранить';

  @override
  String get cancel => 'Отмена';

  @override
  String get close => 'Закрыть';

  @override
  String get about => 'О приложении';

  @override
  String get appVersion => 'Версия приложения';

  @override
  String get appName => 'Название приложения';

  @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 learnMoreAbout => 'Узнать больше о MeshCore SAR';

  @override
  String get developer => 'Разработчик';

  @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 sendDirectMessage => 'Отправить';

  @override
  String get resetPath => 'Сбросить маршрут (перепроложить)';

  @override
  String get publicKeyCopied => 'Публичный ключ скопирован в буфер обмена';

  @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 sentDrawingsToRoom(int count, String plural, String roomName) {
    return 'Отправлено $count рисун$plural в $roomName';
  }

  @override
  String sharedDrawingsToRoom(
    int success,
    int total,
    String plural,
    String roomName,
  ) {
    return 'Передано $success/$total рисун$plural в $roomName';
  }

  @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 noLocalDrawings => 'Нет локальных рисунков для отправки';

  @override
  String get publicChannel => 'Публичный канал';

  @override
  String get broadcastToAll => 'Трансляция всем ближайшим узлам (временно)';

  @override
  String get storedPermanently => 'Сохранено постоянно в комнате';

  @override
  String drawingsSentToPublicChannel(int count, String plural) {
    return 'Отправлено $count рисун$plural в публичный канал';
  }

  @override
  String drawingsSharedToPublicChannel(int success, int total) {
    return 'Передано $success/$total рисунков в публичный канал';
  }

  @override
  String get notConnectedToDevice => 'Устройство не подключено';

  @override
  String get directMessage => 'Личное сообщение';

  @override
  String directMessageSentTo(String contactName) {
    return 'Личное сообщение отправлено $contactName';
  }

  @override
  String failedToSend(String error) {
    return 'Не удалось отправить: $error';
  }

  @override
  String directMessageInfo(String contactName) {
    return 'Это сообщение будет отправлено напрямую $contactName. Оно также появится в общей ленте сообщений.';
  }

  @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 myLocation => 'Моё местоположение';

  @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 admin => 'Администратор';

  @override
  String get loggedIn => 'Вход выполнен';

  @override
  String get noGpsData => 'Нет данных GPS';

  @override
  String get distance => 'Расстояние';

  @override
  String pingingDirect(String name) {
    return 'Пинг $name (напрямую по маршруту)...';
  }

  @override
  String pingingFlood(String name) {
    return 'Пинг $name (широковещательно — нет маршрута)...';
  }

  @override
  String directPingTimeout(String name) {
    return 'Таймаут прямого пинга — повтор $name широковещательно...';
  }

  @override
  String pingSuccessful(String name, String fallback) {
    return 'Пинг успешен: $name$fallback';
  }

  @override
  String get viaFloodingFallback => ' (через широковещательный резерв)';

  @override
  String pingFailed(String name) {
    return 'Пинг не удался: $name — ответ не получен';
  }

  @override
  String deleteContactConfirmation(String name) {
    return 'Вы уверены, что хотите удалить \"$name\"?\n\nЭто удалит контакт как из приложения, так и с сопряжённого радиоустройства.';
  }

  @override
  String removingContact(String name) {
    return 'Удаление $name...';
  }

  @override
  String contactRemoved(String name) {
    return 'Контакт \"$name\" удалён';
  }

  @override
  String failedToRemoveContact(String error) {
    return 'Не удалось удалить контакт: $error';
  }

  @override
  String get type => 'Тип';

  @override
  String get publicKey => 'Публичный ключ';

  @override
  String get lastSeen => 'Последнее появление';

  @override
  String get roomStatus => 'Статус комнаты';

  @override
  String get loginStatus => 'Статус входа';

  @override
  String get notLoggedIn => 'Не выполнен вход';

  @override
  String get adminAccess => 'Доступ администратора';

  @override
  String get yes => 'Да';

  @override
  String get no => 'Нет';

  @override
  String get permissions => 'Разрешения';

  @override
  String get passwordSaved => 'Пароль сохранён';

  @override
  String get locationColon => 'Местоположение:';

  @override
  String get telemetry => 'Телеметрия';

  @override
  String requestingTelemetry(String name) {
    return 'Запрос телеметрии от $name...';
  }

  @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 updated => 'Обновлено';

  @override
  String pathResetInfo(String name) {
    return 'Маршрут сброшен для $name. Следующее сообщение найдёт новый путь.';
  }

  @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 nearbyContacts => 'Ближайшие контакты';

  @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 cacheStatistics => 'Статистика кэша';

  @override
  String get totalTiles => 'Всего тайлов';

  @override
  String get cacheSize => 'Размер кэша';

  @override
  String get storeName => 'Имя хранилища';

  @override
  String get noCacheStatistics => 'Статистика кэша недоступна';

  @override
  String get downloadRegion => 'Скачать регион';

  @override
  String get mapLayer => 'Слой карты';

  @override
  String get regionBounds => 'Границы региона';

  @override
  String get north => 'Север';

  @override
  String get south => 'Юг';

  @override
  String get east => 'Восток';

  @override
  String get west => 'Запад';

  @override
  String get zoomLevels => 'Уровни масштаба';

  @override
  String minZoom(int zoom) {
    return 'Мин: $zoom';
  }

  @override
  String maxZoom(int zoom) {
    return 'Макс: $zoom';
  }

  @override
  String get downloadingDots => 'Загрузка...';

  @override
  String get cancelDownload => 'Отменить загрузку';

  @override
  String get downloadRegionButton => 'Скачать регион';

  @override
  String get downloadNote =>
      'Внимание: большие регионы или высокие уровни масштаба могут потребовать значительного времени и места.';

  @override
  String get cacheManagement => 'Управление кэшем';

  @override
  String get clearAllMaps => 'Очистить все карты';

  @override
  String get clearMapsConfirmTitle => 'Очистить все карты';

  @override
  String get clearMapsConfirmMessage =>
      'Вы уверены, что хотите удалить все загруженные карты? Это действие нельзя отменить.';

  @override
  String get mapDownloadCompleted => 'Загрузка карты завершена!';

  @override
  String get cacheClearedSuccessfully => 'Кэш успешно очищен!';

  @override
  String get downloadCancelled => 'Загрузка отменена';

  @override
  String get startingDownload => 'Начало загрузки...';

  @override
  String get downloadingMapTiles => 'Загрузка тайлов карты...';

  @override
  String get downloadCompletedSuccessfully => 'Загрузка успешно завершена!';

  @override
  String get cancellingDownload => 'Отмена загрузки...';

  @override
  String errorLoadingStats(String error) {
    return 'Ошибка загрузки статистики: $error';
  }

  @override
  String downloadFailed(String error) {
    return 'Ошибка загрузки: $error';
  }

  @override
  String cancelFailed(String error) {
    return 'Ошибка отмены: $error';
  }

  @override
  String clearCacheFailed(String error) {
    return 'Ошибка очистки кэша: $error';
  }

  @override
  String minZoomError(String error) {
    return 'Мин. масштаб: $error';
  }

  @override
  String maxZoomError(String error) {
    return 'Макс. масштаб: $error';
  }

  @override
  String get minZoomGreaterThanMax =>
      'Минимальный масштаб должен быть меньше или равен максимальному';

  @override
  String get selectMapLayer => 'Выбрать слой карты';

  @override
  String get mapOptions => 'Параметры карты';

  @override
  String get showLegend => 'Показать легенду';

  @override
  String get displayMarkerTypeCounts => 'Отображать счётчики типов маркеров';

  @override
  String get rotateMapWithHeading => 'Поворачивать карту по курсу';

  @override
  String get mapFollowsDirection => 'Карта следует вашему направлению движения';

  @override
  String get resetMapRotation => 'Сбросить поворот';

  @override
  String get resetMapRotationTooltip => 'Вернуть карту на север';

  @override
  String get showMapDebugInfo => 'Показать отладочную информацию карты';

  @override
  String get displayZoomLevelBounds => 'Отображать уровень масштаба и границы';

  @override
  String get fullscreenMode => 'Полноэкранный режим';

  @override
  String get hideUiFullMapView =>
      'Скрыть все элементы интерфейса для полного вида карты';

  @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 downloadVisibleArea => 'Скачать видимую область';

  @override
  String get initializingMap => 'Инициализация карты...';

  @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 messageSentToPublicChannel =>
      'Сообщение отправлено в публичный канал';

  @override
  String get pleaseSelectRoomToSendSar =>
      'Пожалуйста, выберите комнату для отправки маркера SAR';

  @override
  String failedToSendSarMarker(String error) {
    return 'Не удалось отправить маркер SAR: $error';
  }

  @override
  String sarMarkerSentTo(String roomName) {
    return 'Маркер SAR отправлен в $roomName';
  }

  @override
  String get notConnectedCannotSync =>
      'Нет подключения — синхронизация невозможна';

  @override
  String syncedMessageCount(int count) {
    return 'Синхронизировано $count сообщение(й)';
  }

  @override
  String get noNewMessages => 'Новых сообщений нет';

  @override
  String syncFailed(String error) {
    return 'Синхронизация не удалась: $error';
  }

  @override
  String get failedToResendMessage => 'Не удалось повторно отправить сообщение';

  @override
  String get retryingMessage => 'Повторная отправка сообщения...';

  @override
  String retryFailed(String error) {
    return 'Повтор не удался: $error';
  }

  @override
  String get textCopiedToClipboard => 'Текст скопирован в буфер обмена';

  @override
  String get cannotReplySenderMissing =>
      'Не удаётся ответить: нет информации об отправителе';

  @override
  String get cannotReplyContactNotFound =>
      'Не удаётся ответить: контакт не найден';

  @override
  String get messageDeleted => 'Сообщение удалено';

  @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 locationShared => 'Местоположение передано';

  @override
  String get refreshedContacts => 'Контакты обновлены';

  @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 frequencyExample => 'например, 869.618';

  @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 get offlineVectorMaps => 'Офлайн-векторные карты';

  @override
  String get offlineVectorMapsDescription =>
      'Импортируйте офлайн-векторные тайлы карт (формат MBTiles) для использования без интернета';

  @override
  String get importMbtiles => 'Импортировать файл MBTiles';

  @override
  String get importMbtilesNote =>
      'Поддерживаются файлы MBTiles с векторными тайлами (формат PBF/MVT). Отлично подходят выгрузки Geofabrik!';

  @override
  String get noMbtilesFiles => 'Офлайн-векторные карты не найдены';

  @override
  String get mbtilesImportedSuccessfully => 'Файл MBTiles успешно импортирован';

  @override
  String get failedToImportMbtiles => 'Не удалось импортировать файл MBTiles';

  @override
  String get deleteMbtilesConfirmTitle => 'Удалить офлайн-карту';

  @override
  String deleteMbtilesConfirmMessage(String name) {
    return 'Вы уверены, что хотите удалить \"$name\"? Офлайн-карта будет удалена безвозвратно.';
  }

  @override
  String get mbtilesDeletedSuccessfully => 'Офлайн-карта успешно удалена';

  @override
  String get failedToDeleteMbtiles => 'Не удалось удалить офлайн-карту';

  @override
  String get importExportCachedTiles => 'Импорт/Экспорт кэшированных тайлов';

  @override
  String get importExportDescription =>
      'Резервное копирование, обмен и восстановление загруженных тайлов карт между устройствами';

  @override
  String get exportTilesToFile => 'Экспортировать тайлы в файл';

  @override
  String get importTilesFromFile => 'Импортировать тайлы из файла';

  @override
  String get selectExportLocation => 'Выберите место для экспорта';

  @override
  String get selectImportFile => 'Выберите архив тайлов';

  @override
  String get exportingTiles => 'Экспорт тайлов...';

  @override
  String get importingTiles => 'Импорт тайлов...';

  @override
  String exportSuccess(int count) {
    return 'Экспортировано $count тайлов';
  }

  @override
  String importSuccess(int count) {
    return 'Импортировано $count хранилищ';
  }

  @override
  String exportFailed(String error) {
    return 'Ошибка экспорта: $error';
  }

  @override
  String importFailed(String error) {
    return 'Ошибка импорта: $error';
  }

  @override
  String get exportNote =>
      'Создаёт сжатый архив (.fmtc), которым можно поделиться и импортировать на других устройствах.';

  @override
  String get importNote =>
      'Импортирует тайлы карт из ранее экспортированного архива. Тайлы будут объединены с существующим кэшем.';

  @override
  String get noTilesToExport => 'Нет доступных тайлов для экспорта';

  @override
  String archiveContainsStores(int count) {
    return 'Архив содержит $count хранилищ';
  }

  @override
  String get vectorTiles => 'Векторные тайлы';

  @override
  String get schema => 'Схема';

  @override
  String get unknown => 'Неизвестно';

  @override
  String get bounds => 'Границы';

  @override
  String get onlineLayers => 'Онлайн-слои';

  @override
  String get offlineLayers => 'Офлайн-слои';

  @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 exportTrailToGpx => 'Экспортировать трек в GPX';

  @override
  String get importTrailFromGpx => 'Импортировать трек из GPX';

  @override
  String get trailExportedSuccessfully => 'Трек успешно экспортирован!';

  @override
  String get failedToExportTrail => 'Не удалось экспортировать трек';

  @override
  String failedToImportTrail(String error) {
    return 'Не удалось импортировать трек: $error';
  }

  @override
  String get importTrail => 'Импортировать трек';

  @override
  String importTrailQuestion(int pointCount) {
    return 'Импортировать трек из $pointCount точек?\n\nВы можете заменить текущий трек или просмотреть его рядом.';
  }

  @override
  String get viewAlongside => 'Просмотреть рядом';

  @override
  String get replaceCurrent => 'Заменить текущий';

  @override
  String trailImported(int pointCount) {
    return 'Трек импортирован! ($pointCount точек)';
  }

  @override
  String trailReplaced(int pointCount) {
    return 'Трек заменён! ($pointCount точек)';
  }

  @override
  String get contactTrails => 'Треки контактов';

  @override
  String get showAllContactTrails => 'Показать все треки контактов';

  @override
  String get noContactsWithLocationHistory =>
      'Нет контактов с историей местоположения';

  @override
  String showingTrailsForContacts(int count) {
    return 'Показаны треки для $count контактов';
  }

  @override
  String get individualContactTrails => 'Индивидуальные треки контактов';

  @override
  String get deviceInformation => 'Информация об устройстве';

  @override
  String get bleName => 'Имя BLE';

  @override
  String get meshName => 'Имя в сети Mesh';

  @override
  String get notSet => 'Не задано';

  @override
  String get model => 'Модель';

  @override
  String get version => 'Версия';

  @override
  String get buildDate => 'Дата сборки';

  @override
  String get firmware => 'Прошивка';

  @override
  String get maxContacts => 'Макс. контактов';

  @override
  String get maxChannels => 'Макс. каналов';

  @override
  String get publicInfo => 'Публичная информация';

  @override
  String get meshNetworkName => 'Название сети Mesh';

  @override
  String get nameBroadcastInMesh => 'Имя, транслируемое в mesh-объявлениях';

  @override
  String get telemetryAndLocationSharing =>
      'Телеметрия и передача местоположения';

  @override
  String get lat => 'Ш';

  @override
  String get lon => 'Д';

  @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 copiedToClipboardShort(String label) {
    return '$label скопировано в буфер обмена';
  }

  @override
  String failedToSave(String error) {
    return 'Не удалось сохранить: $error';
  }

  @override
  String failedToGetLocation(String error) {
    return 'Не удалось получить местоположение: $error';
  }

  @override
  String get sarTemplates => 'Шаблоны SAR';

  @override
  String get manageSarTemplates => 'Управление шаблонами целеуказания';

  @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 permissionsSection => 'Разрешения';

  @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 noContactsOrRoomsAvailable => 'Нет доступных контактов или комнат';

  @override
  String get noRecipientsAvailable => 'Нет доступных получателей';

  @override
  String get noChannelsFound => 'Каналы не найдены';

  @override
  String get messagesWillBeSentToPublicChannel =>
      'Сообщения будут отправлены в публичный канал';

  @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 coordinatesCopiedToClipboard =>
      'Координаты скопированы в буфер обмена';

  @override
  String get manualCoordinates => 'Ввод координат вручную';

  @override
  String get enterCoordinatesManually => 'Ввести координаты вручную';

  @override
  String get latitudeLabel => 'Широта';

  @override
  String get longitudeLabel => 'Долгота';

  @override
  String get invalidLatitude => 'Неверная широта (от -90 до 90)';

  @override
  String get invalidLongitude => 'Неверная долгота (от -180 до 180)';

  @override
  String get exampleCoordinates => 'Пример: 55.7558, 37.6173';

  @override
  String get drawingShared => 'Рисунок на карте';

  @override
  String get drawingHidden => 'Рисунок скрыт с карты';

  @override
  String alreadyShared(int count) {
    String _temp0 = intl.Intl.pluralLogic(
      count,
      locale: localeName,
      other: '$count уже передано',
      one: '1 уже передан',
    );
    return '$_temp0';
  }

  @override
  String newDrawingsShared(int count, String plural) {
    return 'Передано $count новых рисунк$plural';
  }

  @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 showCadastralParcels => 'Показать кадастровые участки';

  @override
  String get showForestRoads => 'Показать лесные дороги';

  @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 allChannelSlotsInUse =>
      'Все слоты каналов заняты (максимум 39 пользовательских каналов)';

  @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 wizardWelcomeDescription =>
      'Мощный инструмент связи вне сети для поисково-спасательных операций. Поддерживайте связь с командой через mesh-радио, когда традиционные сети недоступны.';

  @override
  String get wizardConnectingTitle => 'Подключение к радиоустройству';

  @override
  String get wizardConnectingDescription =>
      'Подключите смартфон к радиоустройству MeshCore по Bluetooth для связи вне сети.';

  @override
  String get wizardConnectingFeature1 => 'Поиск ближайших устройств MeshCore';

  @override
  String get wizardConnectingFeature2 =>
      'Сопряжение с радиоустройством по Bluetooth';

  @override
  String get wizardConnectingFeature3 =>
      'Работает полностью офлайн — интернет не нужен';

  @override
  String get wizardSimpleModeTitle => 'Простой режим';

  @override
  String get wizardSimpleModeDescription =>
      'Впервые работаете с mesh-сетью? Включите простой режим для упрощённого интерфейса с основными функциями.';

  @override
  String get wizardSimpleModeFeature1 =>
      'Удобный для новичков интерфейс с основными функциями';

  @override
  String get wizardSimpleModeFeature2 =>
      'Переключиться в расширенный режим можно в любое время в настройках';

  @override
  String get wizardChannelTitle => 'Каналы';

  @override
  String get wizardChannelDescription =>
      'Транслируйте сообщения всем участникам канала — идеально для общих объявлений и координации команды.';

  @override
  String get wizardChannelFeature1 => 'Публичный канал для общей связи команды';

  @override
  String get wizardChannelFeature2 =>
      'Создавайте пользовательские каналы для отдельных групп';

  @override
  String get wizardChannelFeature3 =>
      'Сообщения автоматически ретранслируются через mesh';

  @override
  String get wizardContactsTitle => 'Контакты';

  @override
  String get wizardContactsDescription =>
      'Члены вашей команды появляются автоматически по мере подключения к mesh-сети. Отправляйте им личные сообщения или просматривайте их местоположение.';

  @override
  String get wizardContactsFeature1 => 'Контакты обнаруживаются автоматически';

  @override
  String get wizardContactsFeature2 => 'Отправка личных сообщений';

  @override
  String get wizardContactsFeature3 =>
      'Просмотр уровня заряда и времени последнего появления';

  @override
  String get wizardMapTitle => 'Карта и местоположение';

  @override
  String get wizardMapDescription =>
      'Отслеживайте команду в реальном времени и отмечайте важные места для поисково-спасательных операций.';

  @override
  String get wizardMapFeature1 =>
      'Маркеры SAR для найденных людей, пожаров и мест сбора';

  @override
  String get wizardMapFeature2 =>
      'GPS-отслеживание членов команды в реальном времени';

  @override
  String get wizardMapFeature3 => 'Загрузка офлайн-карт для отдалённых районов';

  @override
  String get wizardMapFeature4 =>
      'Рисование фигур и обмен тактической информацией';

  @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 => 'Запрос голоса';
}
