mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-08-11 08:20:36 +00:00
2696 lines
80 KiB
Dart
2696 lines
80 KiB
Dart
// ignore: unused_import
|
||
import 'package:intl/intl.dart' as intl;
|
||
import 'app_localizations.dart';
|
||
|
||
// ignore_for_file: type=lint
|
||
|
||
/// The translations for Russian (`ru`).
|
||
class AppLocalizationsRu extends AppLocalizations {
|
||
AppLocalizationsRu([String locale = 'ru']) : super(locale);
|
||
|
||
@override
|
||
String get 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 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 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 displayPacketActivity =>
|
||
'Отображать активность пакетов в верхней панели';
|
||
|
||
@override
|
||
String get disableMap => 'Отключить карту';
|
||
|
||
@override
|
||
String get disableMapDescription =>
|
||
'Скрыть вкладку карты для экономии заряда батареи';
|
||
|
||
@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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 => 'Запрос голоса';
|
||
|
||
@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 => 'Discover repeaters now?';
|
||
|
||
@override
|
||
String get postConnectDiscoveryDescription =>
|
||
'Run repeater discovery right after connecting so you can see nearby MeshCore nodes and add them to your network faster.';
|
||
|
||
@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 frequency => 'Частота';
|
||
|
||
@override
|
||
String get australia => 'Австралия';
|
||
|
||
@override
|
||
String get australiaNarrow => 'Австралия (Узкий)';
|
||
|
||
@override
|
||
String get australiaQld => 'Австралия: QLD';
|
||
|
||
@override
|
||
String get australiaSaWa => 'Австралия: SA, WA';
|
||
|
||
@override
|
||
String get newZealand => 'Новая Зеландия';
|
||
|
||
@override
|
||
String get newZealandNarrow => 'Новая Зеландия (Узкий)';
|
||
|
||
@override
|
||
String get switzerland => 'Швейцария';
|
||
|
||
@override
|
||
String get portugal433 => 'Португалия 433';
|
||
|
||
@override
|
||
String get portugal868 => 'Португалия 868';
|
||
|
||
@override
|
||
String get czechRepublicNarrow => 'Чехия (Узкий)';
|
||
|
||
@override
|
||
String get eu433mhzLongRange => 'ЕС 433МГц (Дальний)';
|
||
|
||
@override
|
||
String get euukDeprecated => 'ЕС/Великобритания (Устарело)';
|
||
|
||
@override
|
||
String get euukNarrow => 'ЕС/Великобритания (Узкий)';
|
||
|
||
@override
|
||
String get usacanadaRecommended => 'США/Канада (Рекомендуется)';
|
||
|
||
@override
|
||
String get vietnamDeprecated => 'Вьетнам (Устарело)';
|
||
|
||
@override
|
||
String get vietnamNarrow => 'Вьетнам (Узкий)';
|
||
|
||
@override
|
||
String get active => 'Активно';
|
||
|
||
@override
|
||
String get addContact => 'Добавить контакт';
|
||
|
||
@override
|
||
String get all => 'Все';
|
||
|
||
@override
|
||
String get autoResolve => 'Автоматическое разрешение';
|
||
|
||
@override
|
||
String get clearAllLabel => 'Очистить все';
|
||
|
||
@override
|
||
String get clearRelays => 'Очистить реле';
|
||
|
||
@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 shareContact => 'Поделиться контактом';
|
||
|
||
@override
|
||
String get trace => 'Трассировка';
|
||
|
||
@override
|
||
String get use => 'Использовать';
|
||
|
||
@override
|
||
String get useSelectedFrequency => 'Использовать выбранную частоту';
|
||
|
||
@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 spectrumScan => 'Сканирование спектра';
|
||
|
||
@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 autoRouteRotation => 'Автоматическая ротация маршрута';
|
||
|
||
@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 displaySarMarkersOnTheMainMap =>
|
||
'Отображать SAR-маркеры на основной карте';
|
||
|
||
@override
|
||
String get showAllContactTrailsLabel => 'Показать все следы контактов';
|
||
|
||
@override
|
||
String get hideRepeatersOnMap => 'Скрыть повторители на карте';
|
||
|
||
@override
|
||
String get setMapScale => 'Установить масштаб карты';
|
||
|
||
@override
|
||
String get customMapScaleSaved => 'Пользовательский масштаб карты сохранён';
|
||
|
||
@override
|
||
String get voiceBitrate => 'Битрейт голоса';
|
||
|
||
@override
|
||
String get voiceCompressor => 'Компрессор голоса';
|
||
|
||
@override
|
||
String get balancesQuietAndLoudSpeechLevels =>
|
||
'Выравнивает тихую и громкую речь';
|
||
|
||
@override
|
||
String get voiceLimiter => 'Лимитер голоса';
|
||
|
||
@override
|
||
String get preventsClippingPeaksBeforeEncoding =>
|
||
'Предотвращает обрезку пиков перед кодированием';
|
||
|
||
@override
|
||
String get micAutoGain => 'Автоусиление микрофона';
|
||
|
||
@override
|
||
String get letsTheRecorderAdjustInputLevel =>
|
||
'Позволяет рекордеру регулировать уровень входа';
|
||
|
||
@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 moderate => 'Умеренно';
|
||
|
||
@override
|
||
String get busy => 'Занято';
|
||
|
||
@override
|
||
String get spectrumScanReturnedNoCandidateFrequencies =>
|
||
'Сканирование спектра не нашло частот-кандидатов';
|
||
|
||
@override
|
||
String get searchMessages => 'Поиск сообщений';
|
||
|
||
@override
|
||
String get sendImageFromGallery => 'Отправить изображение из галереи';
|
||
|
||
@override
|
||
String get takePhoto => 'Сделать фото';
|
||
|
||
@override
|
||
String get dmOnly => 'Только личные сообщения';
|
||
|
||
@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 chooseTheNameAndLocationThisDeviceShares =>
|
||
'Выберите имя и местоположение, которыми делится устройство.';
|
||
|
||
@override
|
||
String get availableSpaceOnThisDevice =>
|
||
'Доступное место на этом устройстве.';
|
||
|
||
@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 manualRouteEdit => 'Ручное редактирование маршрута';
|
||
|
||
@override
|
||
String get observedMeshRoute => 'Наблюдаемый mesh-маршрут';
|
||
|
||
@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 => 'Нет контактов устройства для очистки.';
|
||
}
|