From 82ee4cc030b54195960f76a425b25c86c913dbe8 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 21:24:30 +0200 Subject: [PATCH 01/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 58 ++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index d941a2fae..39d0874fe 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -2377,7 +2377,7 @@ "notifications.apprise_info": "Apprise поддерживает более 100 сервисов уведомлений, включая Discord, Slack, Telegram, Microsoft Teams, электронную почту (SMTP), SMS и многие другие. Введите URL-адрес одного сервиса на каждой строке ниже.", "admin_commands.failed_load_mqtt_config": "Не удалось загрузить настройки MQTT", "automation.auto_traceroute.favorites_only": "Только избранное", - "notifications.blacklist_description": "Сообщения, содержащие эти слованикогда не будут отправлены(по одному на строку):", + "notifications.blacklist_description": "Сообщения, содержащие эти слова никогда не будут отправлены(по одному на строку):", "tileset_manager.name_help": "Удобное для пользователя имя для этого сервера тайлов (максимум 100 символов)", "position_config.position_flags_description": "Выберите, какие дополнительные данные следует включить в пакеты о местоположении.", "automation.auto_ack.sample_preview_direct": "Просмотр примера сообщения (прямое соединение)", @@ -2681,13 +2681,13 @@ "position_config.view_docs": "Просмотреть документацию по настройке положения", "import_config.status_verifying": "Проверка настроек...", "automation.timer_triggers.add": "Добавить таймер", - "notifications.filtering_description": "Эти фильтры применяются как кpush-уведомлениям, так и к уведомлениям Apprise.", + "notifications.filtering_description": "Эти фильтры применяются как к push-уведомлениям, так и к уведомлениям Apprise.", "users.remove_admin": "Удалить администратора", "admin_commands.config_ok_to_mqtt_description": "Если включено, устанавливает бит ok_to_mqtt для исходящих пакетов, позволяя пересылать их через MQTT", "automation.auto_ack.message_multihop_description": "Сообщение для отправки при много прыжков(колличество прыжков> 0).", "theme_gallery.colorblind_title": "Темы, адаптированные для людей с дальтонизмом", "remotehw_config.enabled": "Включить удаленное оборудование", - "notifications.apprise_config_description": "Настройте Apprise для отправки уведомлений во внешние сервисы, такие как Discord, Slack, электронная почта, SMS и другие. Apprise работает по протоколу HTTP, поэтому HTTPS не требуется!", + "notifications.apprise_config_description": "Настройте Apprise для отправки уведомлений во внешние сервисы, такие как Discord, Slack, электронная почта, SMS и другие. Apprise работает по протоколу HTTP, поэтому HTTPS не требуется!", "device_config.device_role_description": "Определяет, как ваш узел будет вести себя в сети.", "channels_config.channel_name": "Имя канала", "mqtt_config.username": "Имя пользователя MQTT", @@ -3791,7 +3791,7 @@ "source.form.error_network": "", "meshcore.type_message": "", "settings.analytics_domain_description": "", - "automation.auto_ping.settings_saved": "", + "automation.auto_ping.settings_saved": "Сохранены настройки автоматического пинга", "settings.analytics_provider_matomo": "", "security.offset_behind": "", "unified.telemetry.all_sources": "", @@ -3803,10 +3803,10 @@ "dashboard.widget.hop_distance_heatmap.no_data": "", "channel_database.export_title": "", "settings.analytics_site_id_description": "", - "automation.auto_ping.timeout": "", + "automation.auto_ping.timeout": "Таймаут пинга (секунды)", "automation.auto_traceroute.last_heard_within": "", "automation.distance_delete.interval_hours": "", - "automation.auto_ping.timeout_description": "", + "automation.auto_ping.timeout_description": "Как долго нужно ждать ответа, прежде чем пометить пинг как прерванный по таймауту", "settings.analytics_script_url_description": "", "firmware.wizard_verify_title": "", "automation.distance_delete.note_ignore": "", @@ -3891,7 +3891,7 @@ "security.key_mismatch_status_fixed": "", "firmware.no_backups": "", "unified.telemetry.loading": "", - "automation.auto_ping.stop_failed": "", + "automation.auto_ping.stop_failed": "Не удалось остановить сеанс пинговвания", "automation.auto_key_management.log_old_key": "", "settings.analytics_api_key_label": "", "unified.messages.modal.col_heard": "", @@ -3959,13 +3959,13 @@ "settings.analytics_provider_ga4": "", "meshcore.nodes": "", "dashboard.widget.distance_distribution.with_position": "", - "automation.auto_ping.dm_start_help": "", + "automation.auto_ping.dm_start_help": "- Запустить 5 пингов с заданным интервалом", "security.key_mismatch_empty": "", "unified.telemetry.subtitle": "", "meshcore.broadcast": "", "meshcore.tx_power": "", "settings.analytics_custom_csp_description": "", - "automation.auto_ping.session_stopped": "", + "automation.auto_ping.session_stopped": "Сеанс пинга остановлен", "automation.auto_ack.node_ignore_list": "Список игнорируемых узлов", "unified.telemetry.title": "", "unified.messages.modal.col_hops": "", @@ -3988,10 +3988,10 @@ "dashboard.widget.hop_distribution.hops_other": "", "meshcore.connect": "", "dashboard.widget.hop_distance_heatmap.distance_axis": "", - "automation.auto_ping.title": "", + "automation.auto_ping.title": "Авто пинг", "security.offset_ahead": "", "automation.auto_traceroute.hours": "", - "automation.auto_ping.interval_description": "", + "automation.auto_ping.interval_description": "Время между каждым пингом в рамках сессии", "source.form.allow_admin_commands": "", "settings.overlay_scheme_dark": "", "source.form.allow_admin_help": "", @@ -4019,7 +4019,7 @@ "unified.messages.modal.col_source": "", "auto_responder.cooldown_help": "", "automation.auto_traceroute.max_hops": "", - "automation.auto_ping.max_pings_description": "", + "automation.auto_ping.max_pings_description": "Максимальное количество запросов , которые пользователь может отправить за одну сессию", "dashboard.widget.hop_distribution.description": "", "automation.distance_delete.description": "", "dashboard.widget.distance_distribution.no_position_data": "", @@ -4030,7 +4030,7 @@ "unified.messages.subtitle_channel": "", "firmware.reboot_warning": "", "settings.analytics_provider_cloudflare": "", - "automation.auto_ping.active_sessions": "", + "automation.auto_ping.active_sessions": "Активные сессии", "unified.messages.heard_by_source": "", "source.form.host": "", "source.form.name_placeholder": "", @@ -4044,7 +4044,7 @@ "automation.distance_delete.latitude": "", "automation.distance_delete.running": "", "dashboard.widget.hop_distribution.total_nodes": "", - "automation.auto_ping.max_pings": "", + "automation.auto_ping.max_pings": "Максимальное количество пингов за сессию", "meshcore.device_type.room_server": "", "source.form.error_heartbeat_range": "", "security.offset_days_one": "", @@ -4062,7 +4062,7 @@ "unified.messages.modal.col_rssi": "", "security.offset_days_other": "", "meshcore.radio": "", - "automation.auto_ping.interval": "", + "automation.auto_ping.interval": "Интервал пинга (секунды)", "automation.auto_heap.save_error": "Настройки не сохранены", "automation.auto_key_management.log_new_key": "", "settings.analytics_provider_plausible": "", @@ -4074,11 +4074,11 @@ "unified.telemetry.sort_aria": "", "map.legend.links": "", "dashboard.widget.hop_distance_heatmap.skipped": "", - "automation.auto_ping.dm_stop_help": "", + "automation.auto_ping.dm_stop_help": "- Отменить активную сессию пинга", "security.offset_seconds_one": "", "source.topbar.logo_alt": "", "firmware.wizard_flash_title": "", - "automation.auto_ping.progress": "", + "automation.auto_ping.progress": "Прогресс", "security.offset_synchronized": "", "dashboard.widget.hop_distribution.direct_neighbors": "", "settings.custom_tileset_overlay_scheme": "", @@ -4113,19 +4113,19 @@ "meshcore.device_type.unknown": "", "security.key_mismatch_title": "", "source.status_idle": "", - "automation.auto_ping.description": "", + "automation.auto_ping.description": "При включении этой функции пользователи сети могут отправить личное сообщение с командой \"ping N\", чтобы запустить N автоматических пингов в ответ, или команду \"ping stop\", чтобы отменить активную сессию.", "automation.auto_heap.threshold_label": "Порог свободного пространства (KB)", "source.virtual_node_badge_title": "", "dashboard.widget.hop_distance_heatmap.more": "", "settings.analytics_measurement_id_label": "", "direct_links.neighbor_connection": "", - "automation.auto_ping.requested_by": "", + "automation.auto_ping.requested_by": "Запрошено", "settings.analytics_provider_custom": "", "settings.analytics_api_host_label": "", "settings.local_stats_interval_label": "", "dashboard.widget.hop_distribution.unknown": "", "automation.geofence_triggers.cooldown_help": "", - "automation.auto_ping.dm_commands": "", + "automation.auto_ping.dm_commands": "Команды прямых сообщений", "automation.auto_ack.cooldown_label": "", "firmware.channel": "", "unified.telemetry.filter_source_aria": "", @@ -4160,12 +4160,14 @@ "settings.analytics_custom_script_label": "", "meshcore.port": "", "auto_responder.cooldown_badge": "", - "settings.apprise_server_section": "Apprise API Server", - "settings.apprise_server_description": "MeshMonitor delivers Apprise notifications through an Apprise API server, which fans out to the per-user notification service URLs (Discord, email, etc.) configured elsewhere. Override the server location below if you are running it outside the bundled container.", - "settings.apprise_server_url_label": "Apprise API Server URL", - "settings.apprise_server_url_description": "Leave empty if MeshMonitor's bundled Apprise API server is running (default for Docker installs).", - "settings.apprise_server_test": "Test Connection", - "settings.apprise_server_testing": "Testing…", - "settings.apprise_server_test_success": "Connected successfully ({{latency}}ms)", - "settings.apprise_server_test_failure": "Connection failed: {{error}}" + "settings.apprise_server_section": "Apprise API сервер", + "settings.apprise_server_description": "MeshMonitor доставляет уведомления Apprise через сервер API Apprise, который, в свою очередь, рассылает их по URL-адресам служб уведомлений для каждого пользователя (Discord, электронная почта и т. д.), настроенным в другом месте. Если вы запускаете программу вне встроенного контейнера, переопределите местоположение сервера, указанное ниже.", + "settings.apprise_server_url_label": "Адрес сервера Apprise API", + "settings.apprise_server_url_description": "Оставьте поле пустым, если в MeshMonitor запущен встроенный API-сервер Apprise (по умолчанию для установок Docker).", + "settings.apprise_server_test": "Проверка соединения", + "settings.apprise_server_testing": "Проверка…", + "settings.apprise_server_test_success": "Соединение установлено успешно ({{latency}}мс)", + "settings.apprise_server_test_failure": "Соединение не удалось: {{error}}", + "info.hw_model_distribution": "Модели оборудования", + "info.hw_model_breakdown": "Узлы по модели устройства" } From b77f8418b378c623139e2aead687624650361ede Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 21:32:33 +0200 Subject: [PATCH 02/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 39d0874fe..f9050f4c5 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3799,7 +3799,7 @@ "channel_database.toast_export_success": "", "automation.auto_ack.cooldown_description": "После ответа на узел игнорировать дальнейшие триггеры от этого узла в течение указанного времени. Предотвращает злоупотребления со стороны узлов, спамящих триггерные слова.", "unified.telemetry.search_aria": "", - "automation.distance_delete.action_ignore": "", + "automation.distance_delete.action_ignore": "Игнорировать узел", "dashboard.widget.hop_distance_heatmap.no_data": "", "channel_database.export_title": "", "settings.analytics_site_id_description": "", @@ -3809,7 +3809,7 @@ "automation.auto_ping.timeout_description": "Как долго нужно ждать ответа, прежде чем пометить пинг как прерванный по таймауту", "settings.analytics_script_url_description": "", "firmware.wizard_verify_title": "", - "automation.distance_delete.note_ignore": "", + "automation.distance_delete.note_ignore": "Игнорируемые узлы скрываются и синхронизируются с подключенным устройством (требуется прошивка версии ≥ 2.7.0).", "source.form.error_vn_port_range": "", "unified.messages.modal.request_id": "", "direct_links.bidirectional": "", @@ -3846,7 +3846,7 @@ "automation.auto_key_management.immediate_purge_description": "", "meshcore.battery": "", "unified.no_text": "", - "automation.distance_delete.action": "", + "automation.distance_delete.action": "Действия для узлов, превысивших пороговое значение", "security.key_mismatch_old_key": "", "security.clock_offset": "", "source.form.auto_connect_help": "", @@ -3854,7 +3854,7 @@ "unified.messages.sign_in_required": "", "unified.messages.title": "", "network_config.rsyslog_server_description": "", - "automation.auto_ping.failed": "", + "automation.auto_ping.failed": "Неудачно", "automation.auto_heap.threshold_hint": "Запустить очистку, если узел сообщает о наличии менее указанного объема свободной памяти.", "automation.auto_traceroute.min_hops": "", "map": { @@ -4036,7 +4036,7 @@ "source.form.name_placeholder": "", "automation.geofence_triggers.cooldown": "", "source.sidebar.open_sources": "", - "automation.distance_delete.note_delete": "", + "automation.distance_delete.note_delete": "Удаленный узел может вернуться, если продолжит широковещательную передачу. Выберите «Игнорировать», чтобы постоянно подавлять его на устройстве.", "automation.distance_delete.no_home_coordinate": "", "unified.telemetry.sort_oldest": "", "source.add": "", @@ -4089,7 +4089,7 @@ "automation.distance_delete.threshold_used": "", "source.form.tcp_port": "", "security.offset_minutes_one": "", - "automation.auto_ping.elapsed": "", + "automation.auto_ping.elapsed": "Прошедшее", "map.legend.neighbor": "", "firmware.wizard_cancel": "", "firmware.save_channel": "", From a9671d756467994321068d9d7b4a2722057dab3d Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Mon, 25 May 2026 21:32:55 +0200 Subject: [PATCH 03/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index f9050f4c5..27603ccde 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3920,7 +3920,7 @@ "unified.messages.history_start": "", "meshcore.refresh": "", "automation.distance_delete.threshold": "", - "automation.auto_ping.successful": "", + "automation.auto_ping.successful": "Успешно", "unified.telemetry.empty_filters": "", "firmware.wizard_backup_title": "", "meshcore.admin_password": "", @@ -4132,7 +4132,7 @@ "settings.analytics_site_id_label": "", "unified.telemetry.sort_name_desc": "", "unified.messages.loading_older": "", - "automation.distance_delete.action_delete": "", + "automation.distance_delete.action_delete": "Удалить узел", "settings.analytics_provider_umami": "", "unified.messages.hop_count_other": "", "unified.messages.modal.channel": "", From ba9c356d6f8defe266709f92c1a14302f2ca34d0 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 21:35:03 +0200 Subject: [PATCH 04/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 27603ccde..eb333c435 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3920,7 +3920,7 @@ "unified.messages.history_start": "", "meshcore.refresh": "", "automation.distance_delete.threshold": "", - "automation.auto_ping.successful": "Успешно", + "automation.auto_ping.successful": "Выполнено", "unified.telemetry.empty_filters": "", "firmware.wizard_backup_title": "", "meshcore.admin_password": "", @@ -4132,7 +4132,7 @@ "settings.analytics_site_id_label": "", "unified.telemetry.sort_name_desc": "", "unified.messages.loading_older": "", - "automation.distance_delete.action_delete": "Удалить узел", + "automation.distance_delete.action_delete": "", "settings.analytics_provider_umami": "", "unified.messages.hop_count_other": "", "unified.messages.modal.channel": "", From 0a535c634567a2a90bfe0e50f1a225d7cd0d2c13 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 21:35:59 +0200 Subject: [PATCH 05/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index eb333c435..3213092f8 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -1335,7 +1335,7 @@ "dashboard.widget.node_status.title": "Состояние узла", "dashboard.widget.node_status.description": "Мониторинг состояния и подключения выбранных узлов", "dashboard.widget.node_status.search_placeholder": "Выполните поиск для добавления узла...", - "dashboard.widget.node_status.remove_node": "Удалить узел", + "dashboard.widget.node_status.remove_node": "", "dashboard.widget.node_status.empty": "Узлы не настроены.", "dashboard.widget.node_status.empty_editable": "Воспользуйтесь поиском выше, чтобы добавить узлы для мониторинга.", "dashboard.widget.traceroute.title": "Маршрут", From e2bddd415161b777e63f2872b052a8fd0aa9b248 Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Mon, 25 May 2026 21:36:31 +0200 Subject: [PATCH 06/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 3213092f8..675b81c4f 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -1335,7 +1335,7 @@ "dashboard.widget.node_status.title": "Состояние узла", "dashboard.widget.node_status.description": "Мониторинг состояния и подключения выбранных узлов", "dashboard.widget.node_status.search_placeholder": "Выполните поиск для добавления узла...", - "dashboard.widget.node_status.remove_node": "", + "dashboard.widget.node_status.remove_node": "Удалить узел", "dashboard.widget.node_status.empty": "Узлы не настроены.", "dashboard.widget.node_status.empty_editable": "Воспользуйтесь поиском выше, чтобы добавить узлы для мониторинга.", "dashboard.widget.traceroute.title": "Маршрут", @@ -4132,7 +4132,7 @@ "settings.analytics_site_id_label": "", "unified.telemetry.sort_name_desc": "", "unified.messages.loading_older": "", - "automation.distance_delete.action_delete": "", + "automation.distance_delete.action_delete": "Удалить узел", "settings.analytics_provider_umami": "", "unified.messages.hop_count_other": "", "unified.messages.modal.channel": "", From 32ecd0bc0598841bdbdbded7594290827fd5e190 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 21:40:42 +0200 Subject: [PATCH 07/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 675b81c4f..e76701ac0 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -4126,13 +4126,13 @@ "dashboard.widget.hop_distribution.unknown": "", "automation.geofence_triggers.cooldown_help": "", "automation.auto_ping.dm_commands": "Команды прямых сообщений", - "automation.auto_ack.cooldown_label": "", + "automation.auto_ack.cooldown_label": "Время ожидания для каждого узла (в секундах)", "firmware.channel": "", "unified.telemetry.filter_source_aria": "", "settings.analytics_site_id_label": "", "unified.telemetry.sort_name_desc": "", "unified.messages.loading_older": "", - "automation.distance_delete.action_delete": "Удалить узел", + "automation.distance_delete.action_delete": "Удалить ноду", "settings.analytics_provider_umami": "", "unified.messages.hop_count_other": "", "unified.messages.modal.channel": "", From 1b7b9cd354ce2d5ba8d9d3cf28a0811e77518f0b Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Mon, 25 May 2026 21:47:50 +0200 Subject: [PATCH 08/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index e76701ac0..8a298b4ae 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3833,7 +3833,7 @@ "automation.distance_delete.longitude": "", "meshcore.public_key": "", "meshcore.target_key_placeholder": "", - "security.key_mismatch_status_pending": "", + "security.key_mismatch_status_pending": "В очереди", "security.key_mismatch_status_exhausted": "", "meshcore.remote_node_status": "", "unified.messages.channel_option": "", @@ -3848,7 +3848,7 @@ "unified.no_text": "", "automation.distance_delete.action": "Действия для узлов, превысивших пороговое значение", "security.key_mismatch_old_key": "", - "security.clock_offset": "", + "security.clock_offset": "Смещение времени", "source.form.auto_connect_help": "", "unified.close": "", "unified.messages.sign_in_required": "", @@ -3943,7 +3943,7 @@ "meshcore.login_status": "", "meshcore.snr": "", "packet_monitor.filter.all_last_hops": "", - "security.unknown": "", + "security.unknown": "Неизвестный", "unified.messages.failed_messages": "", "meshcore.remote_admin": "", "automation.distance_delete.activity_log": "", @@ -4072,7 +4072,7 @@ "unified.telemetry.sort_name_asc": "", "source.topbar.sign_in": "", "unified.telemetry.sort_aria": "", - "map.legend.links": "", + "map.legend.links": "Ссылки", "dashboard.widget.hop_distance_heatmap.skipped": "", "automation.auto_ping.dm_stop_help": "- Отменить активную сессию пинга", "security.offset_seconds_one": "", @@ -4090,7 +4090,7 @@ "source.form.tcp_port": "", "security.offset_minutes_one": "", "automation.auto_ping.elapsed": "Прошедшее", - "map.legend.neighbor": "", + "map.legend.neighbor": "Соседи", "firmware.wizard_cancel": "", "firmware.save_channel": "", "settings.analytics_website_id_description": "", @@ -4098,11 +4098,11 @@ "source.header": "", "source.node_count": "", "settings.analytics_domain_label": "", - "map.legend.route": "", + "map.legend.route": "Маршрут", "dashboard.widget.distance_distribution.title": "", "unified.messages.refresh": "", "source.form.virtual_node": "", - "security.key_mismatch_resolved": "", + "security.key_mismatch_resolved": "Решено", "network_config.rsyslog_server": "", "settings.analytics_beacon_token_label": "", "firmware.ota_bootloader_warning": "", @@ -4137,7 +4137,7 @@ "unified.messages.hop_count_other": "", "unified.messages.modal.channel": "", "auto_responder.cooldown_label": "", - "security.key_mismatch_status_purged": "", + "security.key_mismatch_status_purged": "Удалять", "dashboard.widget.hop_distribution.direct": "", "security.offset_hours_one": "", "automation.auto_heap.title": "Автоматическое управление узлами", @@ -4169,5 +4169,7 @@ "settings.apprise_server_test_success": "Соединение установлено успешно ({{latency}}мс)", "settings.apprise_server_test_failure": "Соединение не удалось: {{error}}", "info.hw_model_distribution": "Модели оборудования", - "info.hw_model_breakdown": "Узлы по модели устройства" + "info.hw_model_breakdown": "Узлы по модели устройства", + "messages.insert_emoji_button_title": "Вставить эмодзи", + "channels.insert_emoji_button_title": "Вставить эмодзи" } From ada843643bb7366559b1bdea027cd95f167b13a6 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 21:48:36 +0200 Subject: [PATCH 09/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 8a298b4ae..9461fe358 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -186,7 +186,7 @@ "nodes.channel_utilization": "Использование канала", "nodes.air_util_tx": "Использование эфира", "nodes.uptime": "Время работы", - "nodes.neighbors": "Соседи", + "nodes.neighbors": "", "nodes.total_nodes": "Всего нод", "nodes.online_nodes": "Онлайн ноды", "nodes.unknown": "Неизвестно", @@ -3793,7 +3793,7 @@ "settings.analytics_domain_description": "", "automation.auto_ping.settings_saved": "Сохранены настройки автоматического пинга", "settings.analytics_provider_matomo": "", - "security.offset_behind": "", + "security.offset_behind": "{{value}} назад", "unified.telemetry.all_sources": "", "source.kebab.enable": "", "channel_database.toast_export_success": "", @@ -3834,11 +3834,11 @@ "meshcore.public_key": "", "meshcore.target_key_placeholder": "", "security.key_mismatch_status_pending": "В очереди", - "security.key_mismatch_status_exhausted": "", + "security.key_mismatch_status_exhausted": "Исчерпано", "meshcore.remote_node_status": "", "unified.messages.channel_option": "", - "security.key_mismatch_new_key": "", - "security.offset_minutes_other": "", + "security.key_mismatch_new_key": "Новый ключ", + "security.offset_minutes_other": "{{count}} минуты", "firmware.retry_flash_unavailable": "", "automation.distance_delete.use_node_position": "", "channel_database.toast_export_empty": "", @@ -3847,7 +3847,7 @@ "meshcore.battery": "", "unified.no_text": "", "automation.distance_delete.action": "Действия для узлов, превысивших пороговое значение", - "security.key_mismatch_old_key": "", + "security.key_mismatch_old_key": "Старый ключ", "security.clock_offset": "Смещение времени", "source.form.auto_connect_help": "", "unified.close": "", @@ -3888,7 +3888,7 @@ "source.sidebar.unified_messages": "", "source.connecting": "", "packet_monitor.today": "", - "security.key_mismatch_status_fixed": "", + "security.key_mismatch_status_fixed": "Исправлено", "firmware.no_backups": "", "unified.telemetry.loading": "", "automation.auto_ping.stop_failed": "Не удалось остановить сеанс пинговвания", @@ -3896,7 +3896,7 @@ "settings.analytics_api_key_label": "", "unified.messages.modal.col_heard": "", "meshcore.connecting": "", - "security.offset_seconds_other": "", + "security.offset_seconds_other": "{{count}} секунды", "auto_responder.cooldown_description": "", "unified.messages.no_channels": "", "dashboard.widget.hop_distance_heatmap.description": "", @@ -3960,7 +3960,7 @@ "meshcore.nodes": "", "dashboard.widget.distance_distribution.with_position": "", "automation.auto_ping.dm_start_help": "- Запустить 5 пингов с заданным интервалом", - "security.key_mismatch_empty": "", + "security.key_mismatch_empty": "Событий, связанных с несоответствием ключей, не обнаружено", "unified.telemetry.subtitle": "", "meshcore.broadcast": "", "meshcore.tx_power": "", @@ -3989,7 +3989,7 @@ "meshcore.connect": "", "dashboard.widget.hop_distance_heatmap.distance_axis": "", "automation.auto_ping.title": "Авто пинг", - "security.offset_ahead": "", + "security.offset_ahead": "{{value}} вперед", "automation.auto_traceroute.hours": "", "automation.auto_ping.interval_description": "Время между каждым пингом в рамках сессии", "source.form.allow_admin_commands": "", @@ -4047,7 +4047,7 @@ "automation.auto_ping.max_pings": "Максимальное количество пингов за сессию", "meshcore.device_type.room_server": "", "source.form.error_heartbeat_range": "", - "security.offset_days_one": "", + "security.offset_days_one": "{{count}} день", "automation.distance_delete.run_result": "", "automation.geofence_triggers.clear_shape": "", "automation.distance_delete.protected_note": "", @@ -4057,10 +4057,10 @@ "firmware.backups_title": "", "unified.telemetry.age_minutes": "", "automation.distance_delete.interval": "", - "security.offset_hours_other": "", - "security.key_mismatch_status": "", + "security.offset_hours_other": "{{count}} часы", + "security.key_mismatch_status": "Состояние", "unified.messages.modal.col_rssi": "", - "security.offset_days_other": "", + "security.offset_days_other": "{{count}} дней", "meshcore.radio": "", "automation.auto_ping.interval": "Интервал пинга (секунды)", "automation.auto_heap.save_error": "Настройки не сохранены", @@ -4072,14 +4072,14 @@ "unified.telemetry.sort_name_asc": "", "source.topbar.sign_in": "", "unified.telemetry.sort_aria": "", - "map.legend.links": "Ссылки", + "map.legend.links": "Ссылки:", "dashboard.widget.hop_distance_heatmap.skipped": "", "automation.auto_ping.dm_stop_help": "- Отменить активную сессию пинга", - "security.offset_seconds_one": "", + "security.offset_seconds_one": "{{count}} секунд", "source.topbar.logo_alt": "", "firmware.wizard_flash_title": "", "automation.auto_ping.progress": "Прогресс", - "security.offset_synchronized": "", + "security.offset_synchronized": "Синхронизировано", "dashboard.widget.hop_distribution.direct_neighbors": "", "settings.custom_tileset_overlay_scheme": "", "settings.local_stats_interval_description": "", @@ -4088,7 +4088,7 @@ "source.sidebar.map_analysis": "", "automation.distance_delete.threshold_used": "", "source.form.tcp_port": "", - "security.offset_minutes_one": "", + "security.offset_minutes_one": "{{count}} минута", "automation.auto_ping.elapsed": "Прошедшее", "map.legend.neighbor": "Соседи", "firmware.wizard_cancel": "", @@ -4108,10 +4108,10 @@ "firmware.ota_bootloader_warning": "", "source.sidebar.settings": "", "source.options": "", - "security.key_mismatch_detected": "", + "security.key_mismatch_detected": "Обнаружено", "automation.distance_delete.enabled": "", "meshcore.device_type.unknown": "", - "security.key_mismatch_title": "", + "security.key_mismatch_title": "Несоответствие ключа", "source.status_idle": "", "automation.auto_ping.description": "При включении этой функции пользователи сети могут отправить личное сообщение с командой \"ping N\", чтобы запустить N автоматических пингов в ответ, или команду \"ping stop\", чтобы отменить активную сессию.", "automation.auto_heap.threshold_label": "Порог свободного пространства (KB)", @@ -4139,7 +4139,7 @@ "auto_responder.cooldown_label": "", "security.key_mismatch_status_purged": "Удалять", "dashboard.widget.hop_distribution.direct": "", - "security.offset_hours_one": "", + "security.offset_hours_one": "{{count}} час", "automation.auto_heap.title": "Автоматическое управление узлами", "source.form.error_name_required": "", "firmware.restore_backup": "", From f72e4a329f6117550a1b24f5a0a11a496542a74d Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Mon, 25 May 2026 22:06:16 +0200 Subject: [PATCH 10/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 9461fe358..71fb2b0ba 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -186,7 +186,7 @@ "nodes.channel_utilization": "Использование канала", "nodes.air_util_tx": "Использование эфира", "nodes.uptime": "Время работы", - "nodes.neighbors": "", + "nodes.neighbors": "Соседи", "nodes.total_nodes": "Всего нод", "nodes.online_nodes": "Онлайн ноды", "nodes.unknown": "Неизвестно", From cf26f21e308eb9d725345b8c7675a4355c31827e Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 22:07:01 +0200 Subject: [PATCH 11/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 71fb2b0ba..b2e4755e6 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3780,7 +3780,7 @@ "auth.session_expired": "Ваша сессия истекла. Пожалуйста, обновите страницу и попробуйте снова.", "messages.exchange_position_channel": "Выберите канал для обмена позиционированием", "channels.location_enabled": "Включено (местоположение предоставляется)", - "security.have_time_offset": "Смещение времени", + "security.have_time_offset": "", "security.time_offset_count": "Смещение времени ({{count}} нод)", "security.time_offset_description": "Ноды с часами, значительно расходящимися с сервером времени. Это может указывать на некорректно настроенные устройства или проблемы с GPS.", "security.node_reported_time": "Время, зарегистрированное нодой", From bdac9d3e5e1a86916dc6db799ca92be589a1965e Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Mon, 25 May 2026 22:07:29 +0200 Subject: [PATCH 12/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index b2e4755e6..71fb2b0ba 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3780,7 +3780,7 @@ "auth.session_expired": "Ваша сессия истекла. Пожалуйста, обновите страницу и попробуйте снова.", "messages.exchange_position_channel": "Выберите канал для обмена позиционированием", "channels.location_enabled": "Включено (местоположение предоставляется)", - "security.have_time_offset": "", + "security.have_time_offset": "Смещение времени", "security.time_offset_count": "Смещение времени ({{count}} нод)", "security.time_offset_description": "Ноды с часами, значительно расходящимися с сервером времени. Это может указывать на некорректно настроенные устройства или проблемы с GPS.", "security.node_reported_time": "Время, зарегистрированное нодой", From 4f6f58dfa8794f11f0fc02972ac8b076ed5681c1 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 22:11:34 +0200 Subject: [PATCH 13/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 71fb2b0ba..18c0c8f51 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -186,7 +186,7 @@ "nodes.channel_utilization": "Использование канала", "nodes.air_util_tx": "Использование эфира", "nodes.uptime": "Время работы", - "nodes.neighbors": "Соседи", + "nodes.neighbors": "", "nodes.total_nodes": "Всего нод", "nodes.online_nodes": "Онлайн ноды", "nodes.unknown": "Неизвестно", @@ -3780,7 +3780,7 @@ "auth.session_expired": "Ваша сессия истекла. Пожалуйста, обновите страницу и попробуйте снова.", "messages.exchange_position_channel": "Выберите канал для обмена позиционированием", "channels.location_enabled": "Включено (местоположение предоставляется)", - "security.have_time_offset": "Смещение времени", + "security.have_time_offset": "", "security.time_offset_count": "Смещение времени ({{count}} нод)", "security.time_offset_description": "Ноды с часами, значительно расходящимися с сервером времени. Это может указывать на некорректно настроенные устройства или проблемы с GPS.", "security.node_reported_time": "Время, зарегистрированное нодой", @@ -4090,7 +4090,7 @@ "source.form.tcp_port": "", "security.offset_minutes_one": "{{count}} минута", "automation.auto_ping.elapsed": "Прошедшее", - "map.legend.neighbor": "Соседи", + "map.legend.neighbor": "Сосед", "firmware.wizard_cancel": "", "firmware.save_channel": "", "settings.analytics_website_id_description": "", From 1330089cf8f8356aa9618c2fc6460db05059cb61 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 22:12:51 +0200 Subject: [PATCH 14/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 18c0c8f51..c0290c53e 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3848,7 +3848,7 @@ "unified.no_text": "", "automation.distance_delete.action": "Действия для узлов, превысивших пороговое значение", "security.key_mismatch_old_key": "Старый ключ", - "security.clock_offset": "Смещение времени", + "security.clock_offset": "Смещение", "source.form.auto_connect_help": "", "unified.close": "", "unified.messages.sign_in_required": "", @@ -4098,7 +4098,7 @@ "source.header": "", "source.node_count": "", "settings.analytics_domain_label": "", - "map.legend.route": "Маршрут", + "map.legend.route": "", "dashboard.widget.distance_distribution.title": "", "unified.messages.refresh": "", "source.form.virtual_node": "", From d349e34d045f68b8a70db36cd954a72159094a23 Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Mon, 25 May 2026 22:13:16 +0200 Subject: [PATCH 15/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index c0290c53e..9e8c72f43 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -186,7 +186,7 @@ "nodes.channel_utilization": "Использование канала", "nodes.air_util_tx": "Использование эфира", "nodes.uptime": "Время работы", - "nodes.neighbors": "", + "nodes.neighbors": "Соседи", "nodes.total_nodes": "Всего нод", "nodes.online_nodes": "Онлайн ноды", "nodes.unknown": "Неизвестно", @@ -3780,7 +3780,7 @@ "auth.session_expired": "Ваша сессия истекла. Пожалуйста, обновите страницу и попробуйте снова.", "messages.exchange_position_channel": "Выберите канал для обмена позиционированием", "channels.location_enabled": "Включено (местоположение предоставляется)", - "security.have_time_offset": "", + "security.have_time_offset": "Смещение времени", "security.time_offset_count": "Смещение времени ({{count}} нод)", "security.time_offset_description": "Ноды с часами, значительно расходящимися с сервером времени. Это может указывать на некорректно настроенные устройства или проблемы с GPS.", "security.node_reported_time": "Время, зарегистрированное нодой", @@ -4098,7 +4098,7 @@ "source.header": "", "source.node_count": "", "settings.analytics_domain_label": "", - "map.legend.route": "", + "map.legend.route": "Маршрут", "dashboard.widget.distance_distribution.title": "", "unified.messages.refresh": "", "source.form.virtual_node": "", From cd2e6401da2d35953f60ca9adb6cef16ad9a61d3 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 22:14:55 +0200 Subject: [PATCH 16/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 9e8c72f43..688173487 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3710,7 +3710,7 @@ "firmware.title": "Обновления прошивки", "firmware.description": "Управление обновлениями прошивки для вашего узла.", "firmware.not_ota_capable": "Ваше оборудование не поддерживает обновления Wi-Fi по воздуху (OTA).", - "map.legend.neighbors": "Соседи", + "map.legend.neighbors": "", "map.legend.bidirectional": "Двунаправленный", "map.legend.unidirectional": "Однонаправленный", "map.legend.thickerBrighter": "Более толстая линия = более сильный сигнал", @@ -4098,7 +4098,7 @@ "source.header": "", "source.node_count": "", "settings.analytics_domain_label": "", - "map.legend.route": "Маршрут", + "map.legend.route": "", "dashboard.widget.distance_distribution.title": "", "unified.messages.refresh": "", "source.form.virtual_node": "", From 9243a054eabbafc7068d28c1fc0911ab52f1b70e Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Mon, 25 May 2026 22:15:09 +0200 Subject: [PATCH 17/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 688173487..92ad8cdf5 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -4098,7 +4098,7 @@ "source.header": "", "source.node_count": "", "settings.analytics_domain_label": "", - "map.legend.route": "", + "map.legend.route": "Маршрут", "dashboard.widget.distance_distribution.title": "", "unified.messages.refresh": "", "source.form.virtual_node": "", From 4c745840f1c82ee65dc2156a6411a7e10e290f2c Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Mon, 25 May 2026 22:34:44 +0200 Subject: [PATCH 18/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 92ad8cdf5..cb5d9862b 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3894,7 +3894,7 @@ "automation.auto_ping.stop_failed": "Не удалось остановить сеанс пинговвания", "automation.auto_key_management.log_old_key": "", "settings.analytics_api_key_label": "", - "unified.messages.modal.col_heard": "", + "unified.messages.modal.col_heard": "Слышал(а)", "meshcore.connecting": "", "security.offset_seconds_other": "{{count}} секунды", "auto_responder.cooldown_description": "", @@ -3949,7 +3949,7 @@ "automation.distance_delete.activity_log": "", "firmware.matched_file": "", "source.form.name": "", - "unified.messages.date_yesterday": "", + "unified.messages.date_yesterday": "Вчера", "firmware.wizard_extract_title": "", "unified.telemetry.filter_type_aria": "", "packet_monitor.column.date": "", @@ -3980,7 +3980,7 @@ "direct_links.last_seen": "", "dashboard.widget.distance_distribution.bucket_size": "", "automation.distance_delete.run_now": "", - "unified.messages.modal.col_snr": "", + "unified.messages.modal.col_snr": "SNR", "automation.distance_delete.title": "", "firmware.wizard_download_title": "", "auto_responder.channel_none": "", @@ -4016,7 +4016,7 @@ "source.sidebar.website": "", "source.sidebar.users": "", "unified.messages.date_today": "", - "unified.messages.modal.col_source": "", + "unified.messages.modal.col_source": "Источник", "auto_responder.cooldown_help": "", "automation.auto_traceroute.max_hops": "", "automation.auto_ping.max_pings_description": "Максимальное количество запросов , которые пользователь может отправить за одну сессию", @@ -4059,7 +4059,7 @@ "automation.distance_delete.interval": "", "security.offset_hours_other": "{{count}} часы", "security.key_mismatch_status": "Состояние", - "unified.messages.modal.col_rssi": "", + "unified.messages.modal.col_rssi": "RSSI", "security.offset_days_other": "{{count}} дней", "meshcore.radio": "", "automation.auto_ping.interval": "Интервал пинга (секунды)", @@ -4135,7 +4135,7 @@ "automation.distance_delete.action_delete": "Удалить ноду", "settings.analytics_provider_umami": "", "unified.messages.hop_count_other": "", - "unified.messages.modal.channel": "", + "unified.messages.modal.channel": "Канал", "auto_responder.cooldown_label": "", "security.key_mismatch_status_purged": "Удалять", "dashboard.widget.hop_distribution.direct": "", @@ -4152,7 +4152,7 @@ "settings.analytics_custom_script_description": "", "dashboard.widget.hop_distribution.longest_path": "", "source.form.error_save_failed": "", - "unified.messages.empty_channel": "", + "unified.messages.empty_channel": "Пока нет сообщений в этом канале", "unified.messages.source_filter_aria": "", "dashboard.widget.distance_distribution.miles": "", "meshcore.contacts": "", From f887d59c2ce21b0606b6333dd1d2cd9ea4c5cd72 Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Mon, 25 May 2026 23:26:45 +0200 Subject: [PATCH 19/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index cb5d9862b..3f32940e5 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3788,7 +3788,7 @@ "security.recommendation_check_gps": "Убедитесь, что нода имеет GPS-соединение или настроена с правильным часовым поясом. Перезагрузка устройства может устранить временные отклонения часов.", "security.badge_time_offset": "Смещение по времени", "packet_monitor.filter.last_hop_tooltip": "Фильтровать по последней вещавшей ноде", - "source.form.error_network": "", + "source.form.error_network": "Ошибка сети", "meshcore.type_message": "", "settings.analytics_domain_description": "", "automation.auto_ping.settings_saved": "Сохранены настройки автоматического пинга", @@ -3876,7 +3876,7 @@ "settings.analytics_script_url_label": "", "firmware.wizard_preflight_title": "", "source.form.error_host_required": "", - "source.sidebar.news": "", + "source.sidebar.news": "Новости", "admin.back_to_dashboard": "", "dashboard.widget.hop_distance_heatmap.title": "", "automation.distance_delete.home_coordinate": "", @@ -3900,15 +3900,15 @@ "auto_responder.cooldown_description": "", "unified.messages.no_channels": "", "dashboard.widget.hop_distance_heatmap.description": "", - "unified.telemetry.age_hours": "", + "unified.telemetry.age_hours": "{{count}}ч назад", "dashboard.widget.hop_distribution.title": "", "source.delete": "", "settings.analytics_custom_csp_label": "", "source.status_disabled": "", "automation.auto_heap.heap_status": "Текущее : {{kb}} KB свободно", "settings.analytics_beacon_token_description": "", - "packet_monitor.filter.unknown_hop": "", - "unified.telemetry.network_error": "", + "packet_monitor.filter.unknown_hop": "Неизвестный", + "unified.telemetry.network_error": "Ошибка сети", "meshcore.device_type.companion": "", "meshcore.type": "", "source.status_connected": "", @@ -3948,7 +3948,7 @@ "meshcore.remote_admin": "", "automation.distance_delete.activity_log": "", "firmware.matched_file": "", - "source.form.name": "", + "source.form.name": "Имя", "unified.messages.date_yesterday": "Вчера", "firmware.wizard_extract_title": "", "unified.telemetry.filter_type_aria": "", @@ -3996,12 +3996,12 @@ "settings.overlay_scheme_dark": "", "source.form.allow_admin_help": "", "meshcore.select": "", - "unified.telemetry.age_days": "", + "unified.telemetry.age_days": "{{count}}д назад", "settings.overlay_scheme_light": "", "meshcore.device_type.repeater": "", "unified.telemetry.failed": "", "meshcore.uptime": "", - "unified.back_to_sources": "", + "unified.back_to_sources": "Источники", "dashboard.widget.hop_distribution.hops": "", "firmware.rejected_files": "", "automation.auto_heap.warning": "При срабатывании MeshMonitor удалит из базы данных устройства 10 узлов, от которых дольше всего не поступало сигналов, и перезагрузит узел. Это может привести к кратковременному разрыву соединения.", @@ -4010,11 +4010,11 @@ "unified.messages.hop_count_one": "", "dashboard.widget.hop_distance_heatmap.hops_axis": "", "source.edit": "", - "source.sidebar.github": "", + "source.sidebar.github": "GitHub", "unified.messages.loading": "", "source.kebab.disconnect": "", - "source.sidebar.website": "", - "source.sidebar.users": "", + "source.sidebar.website": "Сайт", + "source.sidebar.users": "Пользователи", "unified.messages.date_today": "", "unified.messages.modal.col_source": "Источник", "auto_responder.cooldown_help": "", @@ -4039,9 +4039,9 @@ "automation.distance_delete.note_delete": "Удаленный узел может вернуться, если продолжит широковещательную передачу. Выберите «Игнорировать», чтобы постоянно подавлять его на устройстве.", "automation.distance_delete.no_home_coordinate": "", "unified.telemetry.sort_oldest": "", - "source.add": "", + "source.add": "Добавить сервер", "source.open": "", - "automation.distance_delete.latitude": "", + "automation.distance_delete.latitude": "Широта", "automation.distance_delete.running": "", "dashboard.widget.hop_distribution.total_nodes": "", "automation.auto_ping.max_pings": "Максимальное количество пингов за сессию", @@ -4055,7 +4055,7 @@ "source.form.auto_connect": "", "source.form.virtual_node_port": "", "firmware.backups_title": "", - "unified.telemetry.age_minutes": "", + "unified.telemetry.age_minutes": "{{count}}м назад", "automation.distance_delete.interval": "", "security.offset_hours_other": "{{count}} часы", "security.key_mismatch_status": "Состояние", @@ -4070,7 +4070,7 @@ "settings.analytics_site_url_description": "", "firmware.downgrade_warning": "", "unified.telemetry.sort_name_asc": "", - "source.topbar.sign_in": "", + "source.topbar.sign_in": "Войти", "unified.telemetry.sort_aria": "", "map.legend.links": "Ссылки:", "dashboard.widget.hop_distance_heatmap.skipped": "", @@ -4106,7 +4106,7 @@ "network_config.rsyslog_server": "", "settings.analytics_beacon_token_label": "", "firmware.ota_bootloader_warning": "", - "source.sidebar.settings": "", + "source.sidebar.settings": "Настройки", "source.options": "", "security.key_mismatch_detected": "Обнаружено", "automation.distance_delete.enabled": "", @@ -4127,7 +4127,7 @@ "automation.geofence_triggers.cooldown_help": "", "automation.auto_ping.dm_commands": "Команды прямых сообщений", "automation.auto_ack.cooldown_label": "Время ожидания для каждого узла (в секундах)", - "firmware.channel": "", + "firmware.channel": "Канал обновлений", "unified.telemetry.filter_source_aria": "", "settings.analytics_site_id_label": "", "unified.telemetry.sort_name_desc": "", @@ -4141,7 +4141,7 @@ "dashboard.widget.hop_distribution.direct": "", "security.offset_hours_one": "{{count}} час", "automation.auto_heap.title": "Автоматическое управление узлами", - "source.form.error_name_required": "", + "source.form.error_name_required": "Введите имя", "firmware.restore_backup": "", "source.status_connecting": "", "unified.messages.choose_channel": "", From 3c0cbf147ad878b2719b8cf1b196d92cc9862efb Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 23:28:49 +0200 Subject: [PATCH 20/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 125 ++++++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 59 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 3f32940e5..521acfa31 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -1139,11 +1139,11 @@ "api_token.usage_title": "Использование токена API", "api_token.view_api_docs": "Просмотр документации API", "settings.node_display": "Отображение ноды", - "settings.max_node_age_label": "Максимальный возраст активных нод (часы)", + "settings.max_node_age_label": "Максимальный возраст активных узлов (часы)", "settings.inactive_node_threshold_label": "Порог уведомления о неактивной ноде (часы)", - "settings.inactive_node_threshold_description": "Ноды, которых не было слышны в течение этого времени, будут активировать уведомления о неактивных нодах (если они включены на вкладке \"Уведомления\")", + "settings.inactive_node_threshold_description": "Узлы, которых не было слышны в течение этого времени, будут активировать уведомления о неактивных узлах (если они включены на вкладке \"Уведомления\")", "settings.inactive_node_check_interval_label": "Интервал проверки неактивной ноды (минуты)", - "settings.inactive_node_check_interval_description": "Как часто проверять неактивные ноды (1-1440 минут, по умолчанию: 60)", + "settings.inactive_node_check_interval_description": "Как часто проверять неактивные узлы (1-1440 минут, по умолчанию: 60)", "settings.inactive_node_cooldown_label": "Время ожидания уведомления о неактивной ноде (часы)", "telemetry.paxcounter_uptime": "Время работы счетчика прохожих", "settings.dist_unit_description": "Выберите между километрами и милями для отображения расстояния", @@ -3710,7 +3710,7 @@ "firmware.title": "Обновления прошивки", "firmware.description": "Управление обновлениями прошивки для вашего узла.", "firmware.not_ota_capable": "Ваше оборудование не поддерживает обновления Wi-Fi по воздуху (OTA).", - "map.legend.neighbors": "", + "map.legend.neighbors": "Соседи", "map.legend.bidirectional": "Двунаправленный", "map.legend.unidirectional": "Однонаправленный", "map.legend.thickerBrighter": "Более толстая линия = более сильный сигнал", @@ -3810,8 +3810,8 @@ "settings.analytics_script_url_description": "", "firmware.wizard_verify_title": "", "automation.distance_delete.note_ignore": "Игнорируемые узлы скрываются и синхронизируются с подключенным устройством (требуется прошивка версии ≥ 2.7.0).", - "source.form.error_vn_port_range": "", - "unified.messages.modal.request_id": "", + "source.form.error_vn_port_range": "Порт виртуального узла должен быть 1–65535", + "unified.messages.modal.request_id": "Запрос ID", "direct_links.bidirectional": "", "source.connect_help": "", "automation.ignored_nodes.col_ignored_at": "", @@ -3820,17 +3820,17 @@ "automation.distance_delete.no_log_entries": "", "unified.messages.hop_start_only": "", "info.virtual_node_admin_blocked": "", - "source.sidebar.close_sources": "", + "source.sidebar.close_sources": "Закрыть источник", "channel_database.toast_export_failed": "", "info.virtual_node_admin_commands": "", "automation.auto_key_management.action_mismatch": "", - "unified.telemetry.node_count_other": "", + "unified.telemetry.node_count_other": "{{count}} узлы", "settings.analytics_api_host_description": "", "automation.distance_delete.nodes_deleted": "", "meshcore.frequency": "", "source.kebab.delete": "", "automation.distance_delete.timestamp": "", - "automation.distance_delete.longitude": "", + "automation.distance_delete.longitude": "Долгота", "meshcore.public_key": "", "meshcore.target_key_placeholder": "", "security.key_mismatch_status_pending": "В очереди", @@ -3845,11 +3845,11 @@ "unified.messages.hop_direct": "", "automation.auto_key_management.immediate_purge_description": "", "meshcore.battery": "", - "unified.no_text": "", + "unified.no_text": "(нет текста)", "automation.distance_delete.action": "Действия для узлов, превысивших пороговое значение", "security.key_mismatch_old_key": "Старый ключ", "security.clock_offset": "Смещение", - "source.form.auto_connect_help": "", + "source.form.auto_connect_help": "Если этот параметр отключен, MeshMonitor не будет подключаться к этому узлу при запуске. Для начала мониторинга необходимо нажать кнопку «Подключиться».", "unified.close": "", "unified.messages.sign_in_required": "", "unified.messages.title": "", @@ -3858,26 +3858,28 @@ "automation.auto_heap.threshold_hint": "Запустить очистку, если узел сообщает о наличии менее указанного объема свободной памяти.", "automation.auto_traceroute.min_hops": "", "map": { - "showPositionHistory": "", - "showMeshCore": "", - "showMqtt": "", - "showRouteSegments": "", - "showNeighborInfo": "", - "showTraceroute": "", - "showPolarGrid": "", + "showPositionHistory": "Показать историю перемещения", + "showMeshCore": "Показать MeshCore", + "showMqtt": "Показать MQTT", + "showRouteSegments": "Показать сегменты маршрута", + "showNeighborInfo": "Показать инфо о соседях", + "showTraceroute": "Показать маршруты", + "showPolarGrid": "Показать полярную сетку", "polarGridDisabledTooltip": "", - "showAnimations": "", - "showEstimatedPositions": "", - "showAccuracyRegions": "" + "showAnimations": "Показать анимацию", + "showEstimatedPositions": "Показать предполагаеме местоположение", + "showAccuracyRegions": "Показать области погрешности", + "showUdp": "Показать UDP", + "showRf": "Показать RF" }, "settings.analytics_measurement_id_description": "", "meshcore.admin_password_placeholder": "", - "source.form.error_port_range": "", + "source.form.error_port_range": "Порт должен быть 1–65535", "settings.analytics_script_url_label": "", "firmware.wizard_preflight_title": "", "source.form.error_host_required": "", "source.sidebar.news": "Новости", - "admin.back_to_dashboard": "", + "admin.back_to_dashboard": "← Назад на панель управления", "dashboard.widget.hop_distance_heatmap.title": "", "automation.distance_delete.home_coordinate": "", "settings.analytics_site_url_label": "", @@ -3885,12 +3887,12 @@ "unified.telemetry.age_seconds": "", "unified.messages.subtitle_none": "", "source.connect": "", - "source.sidebar.unified_messages": "", + "source.sidebar.unified_messages": "💬 Единые сообщения", "source.connecting": "", "packet_monitor.today": "", "security.key_mismatch_status_fixed": "Исправлено", "firmware.no_backups": "", - "unified.telemetry.loading": "", + "unified.telemetry.loading": "Загрузка телеметрии…", "automation.auto_ping.stop_failed": "Не удалось остановить сеанс пинговвания", "automation.auto_key_management.log_old_key": "", "settings.analytics_api_key_label": "", @@ -3922,7 +3924,7 @@ "automation.distance_delete.threshold": "", "automation.auto_ping.successful": "Выполнено", "unified.telemetry.empty_filters": "", - "firmware.wizard_backup_title": "", + "firmware.wizard_backup_title": "Настройки backup", "meshcore.admin_password": "", "automation.auto_heap.saved": "Настройки автоматического управления узлами сохранены", "settings.analytics_website_id_label": "", @@ -3933,16 +3935,16 @@ "firmware.wizard_confirm": "", "automation.auto_key_management.immediate_purge": "", "automation.geofence_triggers.cooldown_display": "", - "unified.telemetry.node_count_one": "", + "unified.telemetry.node_count_one": "{{count}} узел", "meshcore.messages": "", - "unified.messages.modal.title": "", + "unified.messages.modal.title": "Детали приема", "unified.telemetry.sort_newest": "", "unified.telemetry.all_types": "", "dashboard.widget.distance_distribution.no_gps": "", - "unified.telemetry.empty_range": "", + "unified.telemetry.empty_range": "В выбранном временном диапазоне данные телеметрии не найдены.", "meshcore.login_status": "", "meshcore.snr": "", - "packet_monitor.filter.all_last_hops": "", + "packet_monitor.filter.all_last_hops": "Все последние прыжки", "security.unknown": "Неизвестный", "unified.messages.failed_messages": "", "meshcore.remote_admin": "", @@ -3961,20 +3963,20 @@ "dashboard.widget.distance_distribution.with_position": "", "automation.auto_ping.dm_start_help": "- Запустить 5 пингов с заданным интервалом", "security.key_mismatch_empty": "Событий, связанных с несоответствием ключей, не обнаружено", - "unified.telemetry.subtitle": "", + "unified.telemetry.subtitle": "Последние данные · все источники", "meshcore.broadcast": "", "meshcore.tx_power": "", "settings.analytics_custom_csp_description": "", "automation.auto_ping.session_stopped": "Сеанс пинга остановлен", "automation.auto_ack.node_ignore_list": "Список игнорируемых узлов", - "unified.telemetry.title": "", - "unified.messages.modal.col_hops": "", + "unified.telemetry.title": "Единая телеметрия", + "unified.messages.modal.col_hops": "Прыжки", "unified.telemetry.search_placeholder": "", "unified.messages.failed_channels": "", "source.delete_confirm": "", "dashboard.widget.distance_distribution.no_home_position": "", "firmware.ota_bootloader_learn_more": "", - "source.form.heartbeat_help": "", + "source.form.heartbeat_help": "Периодически отправляет на узел сигнал подтверждения соединения. Для узлов с параметром CLIENT_MUTE или других малоактивных узлов, получающих небольшой трафик в сети, попробуйте значение 30–60 секунд, в противном случае оставьте значение 0.", "source.kebab.disable": "", "dashboard.widget.distance_distribution.settings": "", "direct_links.last_seen": "", @@ -3982,7 +3984,7 @@ "automation.distance_delete.run_now": "", "unified.messages.modal.col_snr": "SNR", "automation.distance_delete.title": "", - "firmware.wizard_download_title": "", + "firmware.wizard_download_title": "Скачать прошивку", "auto_responder.channel_none": "", "meshcore.last_heard": "", "dashboard.widget.hop_distribution.hops_other": "", @@ -3992,21 +3994,21 @@ "security.offset_ahead": "{{value}} вперед", "automation.auto_traceroute.hours": "", "automation.auto_ping.interval_description": "Время между каждым пингом в рамках сессии", - "source.form.allow_admin_commands": "", + "source.form.allow_admin_commands": "Разрешить команды администрирования", "settings.overlay_scheme_dark": "", - "source.form.allow_admin_help": "", + "source.form.allow_admin_help": "Сторонние клиенты, подключенные к виртуальному узлу, могут отправлять административные команды вашему узлу Meshtastic. Отключите эту функцию, если вы не доверяете этим клиентам.", "meshcore.select": "", "unified.telemetry.age_days": "{{count}}д назад", "settings.overlay_scheme_light": "", "meshcore.device_type.repeater": "", "unified.telemetry.failed": "", "meshcore.uptime": "", - "unified.back_to_sources": "Источники", + "unified.back_to_sources": "← Источники", "dashboard.widget.hop_distribution.hops": "", "firmware.rejected_files": "", "automation.auto_heap.warning": "При срабатывании MeshMonitor удалит из базы данных устройства 10 узлов, от которых дольше всего не поступало сигналов, и перезагрузит узел. Это может привести к кратковременному разрыву соединения.", "meshcore.disconnect": "", - "source.sidebar.unified_telemetry": "", + "source.sidebar.unified_telemetry": "📡 Единая телеметрия", "unified.messages.hop_count_one": "", "dashboard.widget.hop_distance_heatmap.hops_axis": "", "source.edit": "", @@ -4026,16 +4028,16 @@ "meshcore.unknown": "", "unified.messages.hop_limit_only": "", "dashboard.widget.hop_distance_heatmap.fewer": "", - "source.form.enable_virtual_node": "", + "source.form.enable_virtual_node": "Включить виртуальный узел", "unified.messages.subtitle_channel": "", "firmware.reboot_warning": "", "settings.analytics_provider_cloudflare": "", "automation.auto_ping.active_sessions": "Активные сессии", "unified.messages.heard_by_source": "", "source.form.host": "", - "source.form.name_placeholder": "", + "source.form.name_placeholder": "Дмашний узел", "automation.geofence_triggers.cooldown": "", - "source.sidebar.open_sources": "", + "source.sidebar.open_sources": "Открыть исчточник", "automation.distance_delete.note_delete": "Удаленный узел может вернуться, если продолжит широковещательную передачу. Выберите «Игнорировать», чтобы постоянно подавлять его на устройстве.", "automation.distance_delete.no_home_coordinate": "", "unified.telemetry.sort_oldest": "", @@ -4046,14 +4048,14 @@ "dashboard.widget.hop_distribution.total_nodes": "", "automation.auto_ping.max_pings": "Максимальное количество пингов за сессию", "meshcore.device_type.room_server": "", - "source.form.error_heartbeat_range": "", + "source.form.error_heartbeat_range": "Heartbeat должен быть равен 0 (отключено) или 1–3600 секундам", "security.offset_days_one": "{{count}} день", "automation.distance_delete.run_result": "", "automation.geofence_triggers.clear_shape": "", "automation.distance_delete.protected_note": "", "source.form.heartbeat": "", - "source.form.auto_connect": "", - "source.form.virtual_node_port": "", + "source.form.auto_connect": "Автоматическое подключение при запуске", + "source.form.virtual_node_port": "Порт виртуального узла", "firmware.backups_title": "", "unified.telemetry.age_minutes": "{{count}}м назад", "automation.distance_delete.interval": "", @@ -4069,14 +4071,14 @@ "dashboard.widget.hop_distribution.hops_one": "", "settings.analytics_site_url_description": "", "firmware.downgrade_warning": "", - "unified.telemetry.sort_name_asc": "", - "source.topbar.sign_in": "Войти", - "unified.telemetry.sort_aria": "", + "unified.telemetry.sort_name_asc": "Имя (A→Z)", + "source.topbar.sign_in": "🔒 Вход", + "unified.telemetry.sort_aria": "Сортировать узлы", "map.legend.links": "Ссылки:", "dashboard.widget.hop_distance_heatmap.skipped": "", "automation.auto_ping.dm_stop_help": "- Отменить активную сессию пинга", "security.offset_seconds_one": "{{count}} секунд", - "source.topbar.logo_alt": "", + "source.topbar.logo_alt": "MeshMonitor лого", "firmware.wizard_flash_title": "", "automation.auto_ping.progress": "Прогресс", "security.offset_synchronized": "Синхронизировано", @@ -4085,9 +4087,9 @@ "settings.local_stats_interval_description": "", "direct_links.distance": "", "automation.auto_ack.cooldown_help": "", - "source.sidebar.map_analysis": "", + "source.sidebar.map_analysis": "🗺️ Анализ карты", "automation.distance_delete.threshold_used": "", - "source.form.tcp_port": "", + "source.form.tcp_port": "TCP порт", "security.offset_minutes_one": "{{count}} минута", "automation.auto_ping.elapsed": "Прошедшее", "map.legend.neighbor": "Сосед", @@ -4098,10 +4100,10 @@ "source.header": "", "source.node_count": "", "settings.analytics_domain_label": "", - "map.legend.route": "Маршрут", + "map.legend.route": "Мaршрут", "dashboard.widget.distance_distribution.title": "", "unified.messages.refresh": "", - "source.form.virtual_node": "", + "source.form.virtual_node": "Виртуальный узел", "security.key_mismatch_resolved": "Решено", "network_config.rsyslog_server": "", "settings.analytics_beacon_token_label": "", @@ -4115,7 +4117,7 @@ "source.status_idle": "", "automation.auto_ping.description": "При включении этой функции пользователи сети могут отправить личное сообщение с командой \"ping N\", чтобы запустить N автоматических пингов в ответ, или команду \"ping stop\", чтобы отменить активную сессию.", "automation.auto_heap.threshold_label": "Порог свободного пространства (KB)", - "source.virtual_node_badge_title": "", + "source.virtual_node_badge_title": "Виртуальный узел", "dashboard.widget.hop_distance_heatmap.more": "", "settings.analytics_measurement_id_label": "", "direct_links.neighbor_connection": "", @@ -4128,9 +4130,9 @@ "automation.auto_ping.dm_commands": "Команды прямых сообщений", "automation.auto_ack.cooldown_label": "Время ожидания для каждого узла (в секундах)", "firmware.channel": "Канал обновлений", - "unified.telemetry.filter_source_aria": "", + "unified.telemetry.filter_source_aria": "Фильтр по источнику", "settings.analytics_site_id_label": "", - "unified.telemetry.sort_name_desc": "", + "unified.telemetry.sort_name_desc": "Имя (Z→A)", "unified.messages.loading_older": "", "automation.distance_delete.action_delete": "Удалить ноду", "settings.analytics_provider_umami": "", @@ -4151,8 +4153,8 @@ "meshcore.send": "", "settings.analytics_custom_script_description": "", "dashboard.widget.hop_distribution.longest_path": "", - "source.form.error_save_failed": "", - "unified.messages.empty_channel": "Пока нет сообщений в этом канале", + "source.form.error_save_failed": "Ошибка сохранения", + "unified.messages.empty_channel": "Пока нет сообщений в этом канале.", "unified.messages.source_filter_aria": "", "dashboard.widget.distance_distribution.miles": "", "meshcore.contacts": "", @@ -4171,5 +4173,10 @@ "info.hw_model_distribution": "Модели оборудования", "info.hw_model_breakdown": "Узлы по модели устройства", "messages.insert_emoji_button_title": "Вставить эмодзи", - "channels.insert_emoji_button_title": "Вставить эмодзи" + "channels.insert_emoji_button_title": "Вставить эмодзи", + "packet_monitor.filter.transport_lora": "Только LoRa", + "packet_monitor.filter.transport_udp": "Только UDP", + "packet_monitor.filter.transport_mqtt": "Только MQTT", + "packet_monitor.filter.transport_api": "Только API", + "source.node_activity_title": "{{active}} из {{total}} узлов слышимые за последние 2 часа" } From 8c19d0dabf86503676f0ffeb450af1b00857334e Mon Sep 17 00:00:00 2001 From: LibreTranslate Date: Mon, 25 May 2026 22:28:14 +0200 Subject: [PATCH 21/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 521acfa31..0fb08586c 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -2711,7 +2711,7 @@ "backup_management.delete": "Удалить", "theme_gallery.category_high_contrast": "Высокая контрастность", "device_config.button_gpio": "Кнопка GPIO", - "telemetry.show_solar": "", + "telemetry.show_solar": "Показать солнечные накладки", "settings.solar_fetch_description": "", "admin_commands.mqtt_config_loaded": "Настройка MQTT успешно загружена", "automation.auto_traceroute.target_selection": "Выбор цели", From a8c53c4703e289fd9b8ee2a34fae78e07b0ea2a7 Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Mon, 25 May 2026 23:27:30 +0200 Subject: [PATCH 22/46] Translated using Weblate (Russian) Currently translated at 92.0% (3929 of 4270 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 0fb08586c..2fa3115e3 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3850,7 +3850,7 @@ "security.key_mismatch_old_key": "Старый ключ", "security.clock_offset": "Смещение", "source.form.auto_connect_help": "Если этот параметр отключен, MeshMonitor не будет подключаться к этому узлу при запуске. Для начала мониторинга необходимо нажать кнопку «Подключиться».", - "unified.close": "", + "unified.close": "Закрыть", "unified.messages.sign_in_required": "", "unified.messages.title": "", "network_config.rsyslog_server_description": "", From 9be3aa5df7463fc722f425bfb4be017fef4eca14 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 23:44:12 +0200 Subject: [PATCH 23/46] Translated using Weblate (Russian) Currently translated at 91.9% (3930 of 4272 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 2fa3115e3..630517609 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -4093,7 +4093,7 @@ "security.offset_minutes_one": "{{count}} минута", "automation.auto_ping.elapsed": "Прошедшее", "map.legend.neighbor": "Сосед", - "firmware.wizard_cancel": "", + "firmware.wizard_cancel": "Отмена обновления", "firmware.save_channel": "", "settings.analytics_website_id_description": "", "dashboard.widget.distance_distribution.km": "", From d787b3812d7c79b4f8489b6354c5071bd47b1cf9 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 23:48:17 +0200 Subject: [PATCH 24/46] Translated using Weblate (Russian) Currently translated at 92.4% (3950 of 4272 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 630517609..c9e11306b 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -24,7 +24,7 @@ "banners.default_password_warning": "Предупреждение безопасности: Учетная запись администратора использует пароль по умолчанию. Пожалуйста, измените его немедленно на вкладке Пользователи.", "banners.tx_disabled": "Передача отключена: Ваше устройство не может отправлять сообщения. Передача в настоящее время отключена в настройках LoRa. Включите его через приложение Meshtastic или повторно импортируйте конфигурацию.", "banners.config_error": "Ошибка конфигурации", - "banners.learn_more": "Узнать больше", + "banners.learn_more": "", "banners.upgrading_to": "Обновление до {{version}}...", "banners.update_available": "Доступно обновление: Версия {{version}}.", "banners.view_release_notes": "Посмотреть примечания к выпуску", @@ -3839,7 +3839,7 @@ "unified.messages.channel_option": "", "security.key_mismatch_new_key": "Новый ключ", "security.offset_minutes_other": "{{count}} минуты", - "firmware.retry_flash_unavailable": "", + "firmware.retry_flash_unavailable": "Повторная попытка невозможна: файлы прошивки больше недоступны. Пожалуйста, начните новое обновление.", "automation.distance_delete.use_node_position": "", "channel_database.toast_export_empty": "", "unified.messages.hop_direct": "", @@ -3891,7 +3891,7 @@ "source.connecting": "", "packet_monitor.today": "", "security.key_mismatch_status_fixed": "Исправлено", - "firmware.no_backups": "", + "firmware.no_backups": "Резервные настройки не найдены.", "unified.telemetry.loading": "Загрузка телеметрии…", "automation.auto_ping.stop_failed": "Не удалось остановить сеанс пинговвания", "automation.auto_key_management.log_old_key": "", @@ -3949,7 +3949,7 @@ "unified.messages.failed_messages": "", "meshcore.remote_admin": "", "automation.distance_delete.activity_log": "", - "firmware.matched_file": "", + "firmware.matched_file": "Выбирите прошивку", "source.form.name": "Имя", "unified.messages.date_yesterday": "Вчера", "firmware.wizard_extract_title": "", @@ -4005,7 +4005,7 @@ "meshcore.uptime": "", "unified.back_to_sources": "← Источники", "dashboard.widget.hop_distribution.hops": "", - "firmware.rejected_files": "", + "firmware.rejected_files": "Отклоненные файлы", "automation.auto_heap.warning": "При срабатывании MeshMonitor удалит из базы данных устройства 10 узлов, от которых дольше всего не поступало сигналов, и перезагрузит узел. Это может привести к кратковременному разрыву соединения.", "meshcore.disconnect": "", "source.sidebar.unified_telemetry": "📡 Единая телеметрия", @@ -4030,7 +4030,7 @@ "dashboard.widget.hop_distance_heatmap.fewer": "", "source.form.enable_virtual_node": "Включить виртуальный узел", "unified.messages.subtitle_channel": "", - "firmware.reboot_warning": "", + "firmware.reboot_warning": "В ходе обновления узел перезагрузится и на короткое время станет недоступен.", "settings.analytics_provider_cloudflare": "", "automation.auto_ping.active_sessions": "Активные сессии", "unified.messages.heard_by_source": "", @@ -4070,7 +4070,7 @@ "settings.analytics_provider_plausible": "", "dashboard.widget.hop_distribution.hops_one": "", "settings.analytics_site_url_description": "", - "firmware.downgrade_warning": "", + "firmware.downgrade_warning": "Внимание: понижение версии прошивки может привести к проблемам совместимости.", "unified.telemetry.sort_name_asc": "Имя (A→Z)", "source.topbar.sign_in": "🔒 Вход", "unified.telemetry.sort_aria": "Сортировать узлы", @@ -4107,7 +4107,7 @@ "security.key_mismatch_resolved": "Решено", "network_config.rsyslog_server": "", "settings.analytics_beacon_token_label": "", - "firmware.ota_bootloader_warning": "", + "firmware.ota_bootloader_warning": "Для обновления Wi-Fi по воздуху (OTA) требуется однократная прошивка загрузчика через USB. Если это ваше первое обновление по воздуху, убедитесь, что загрузчик установлен.", "source.sidebar.settings": "Настройки", "source.options": "", "security.key_mismatch_detected": "Обнаружено", From c87306727a71f17265ab500f184eb8c7e08c11a8 Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Mon, 25 May 2026 23:48:35 +0200 Subject: [PATCH 25/46] Translated using Weblate (Russian) Currently translated at 92.4% (3950 of 4272 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index c9e11306b..d5dd34b0d 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -24,7 +24,7 @@ "banners.default_password_warning": "Предупреждение безопасности: Учетная запись администратора использует пароль по умолчанию. Пожалуйста, измените его немедленно на вкладке Пользователи.", "banners.tx_disabled": "Передача отключена: Ваше устройство не может отправлять сообщения. Передача в настоящее время отключена в настройках LoRa. Включите его через приложение Meshtastic или повторно импортируйте конфигурацию.", "banners.config_error": "Ошибка конфигурации", - "banners.learn_more": "", + "banners.learn_more": "Узнать больше", "banners.upgrading_to": "Обновление до {{version}}...", "banners.update_available": "Доступно обновление: Версия {{version}}.", "banners.view_release_notes": "Посмотреть примечания к выпуску", @@ -3975,7 +3975,7 @@ "unified.messages.failed_channels": "", "source.delete_confirm": "", "dashboard.widget.distance_distribution.no_home_position": "", - "firmware.ota_bootloader_learn_more": "", + "firmware.ota_bootloader_learn_more": "Узнать больше", "source.form.heartbeat_help": "Периодически отправляет на узел сигнал подтверждения соединения. Для узлов с параметром CLIENT_MUTE или других малоактивных узлов, получающих небольшой трафик в сети, попробуйте значение 30–60 секунд, в противном случае оставьте значение 0.", "source.kebab.disable": "", "dashboard.widget.distance_distribution.settings": "", @@ -4094,7 +4094,7 @@ "automation.auto_ping.elapsed": "Прошедшее", "map.legend.neighbor": "Сосед", "firmware.wizard_cancel": "Отмена обновления", - "firmware.save_channel": "", + "firmware.save_channel": "Сохранить", "settings.analytics_website_id_description": "", "dashboard.widget.distance_distribution.km": "", "source.header": "", @@ -4144,7 +4144,7 @@ "security.offset_hours_one": "{{count}} час", "automation.auto_heap.title": "Автоматическое управление узлами", "source.form.error_name_required": "Введите имя", - "firmware.restore_backup": "", + "firmware.restore_backup": "Восстановить", "source.status_connecting": "", "unified.messages.choose_channel": "", "source.add_short": "", From b73ef4992ca1963c20e74990551a689ebfc76610 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 23:49:24 +0200 Subject: [PATCH 26/46] Translated using Weblate (Russian) Currently translated at 92.4% (3950 of 4272 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index d5dd34b0d..e6a57b4fb 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3975,7 +3975,7 @@ "unified.messages.failed_channels": "", "source.delete_confirm": "", "dashboard.widget.distance_distribution.no_home_position": "", - "firmware.ota_bootloader_learn_more": "Узнать больше", + "firmware.ota_bootloader_learn_more": "", "source.form.heartbeat_help": "Периодически отправляет на узел сигнал подтверждения соединения. Для узлов с параметром CLIENT_MUTE или других малоактивных узлов, получающих небольшой трафик в сети, попробуйте значение 30–60 секунд, в противном случае оставьте значение 0.", "source.kebab.disable": "", "dashboard.widget.distance_distribution.settings": "", From 61ec147f4cd8696e3019597b3cb3e05fa0757fa3 Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Mon, 25 May 2026 23:50:15 +0200 Subject: [PATCH 27/46] Translated using Weblate (Russian) Currently translated at 92.4% (3950 of 4272 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index e6a57b4fb..d5dd34b0d 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3975,7 +3975,7 @@ "unified.messages.failed_channels": "", "source.delete_confirm": "", "dashboard.widget.distance_distribution.no_home_position": "", - "firmware.ota_bootloader_learn_more": "", + "firmware.ota_bootloader_learn_more": "Узнать больше", "source.form.heartbeat_help": "Периодически отправляет на узел сигнал подтверждения соединения. Для узлов с параметром CLIENT_MUTE или других малоактивных узлов, получающих небольшой трафик в сети, попробуйте значение 30–60 секунд, в противном случае оставьте значение 0.", "source.kebab.disable": "", "dashboard.widget.distance_distribution.settings": "", From 0dd8e025b9baf19554d7a32f0f60d6f664eddfa6 Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Mon, 25 May 2026 23:53:11 +0200 Subject: [PATCH 28/46] Translated using Weblate (Russian) Currently translated at 92.4% (3950 of 4272 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index d5dd34b0d..069092834 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3794,11 +3794,11 @@ "automation.auto_ping.settings_saved": "Сохранены настройки автоматического пинга", "settings.analytics_provider_matomo": "", "security.offset_behind": "{{value}} назад", - "unified.telemetry.all_sources": "", + "unified.telemetry.all_sources": "Все источники", "source.kebab.enable": "", "channel_database.toast_export_success": "", "automation.auto_ack.cooldown_description": "После ответа на узел игнорировать дальнейшие триггеры от этого узла в течение указанного времени. Предотвращает злоупотребления со стороны узлов, спамящих триггерные слова.", - "unified.telemetry.search_aria": "", + "unified.telemetry.search_aria": "Поиск узлов...", "automation.distance_delete.action_ignore": "Игнорировать узел", "dashboard.widget.hop_distance_heatmap.no_data": "", "channel_database.export_title": "", @@ -3884,7 +3884,7 @@ "automation.distance_delete.home_coordinate": "", "settings.analytics_site_url_label": "", "settings.analytics_provider_posthog": "", - "unified.telemetry.age_seconds": "", + "unified.telemetry.age_seconds": "{{count}}с назад", "unified.messages.subtitle_none": "", "source.connect": "", "source.sidebar.unified_messages": "💬 Единые сообщения", @@ -3923,7 +3923,7 @@ "meshcore.refresh": "", "automation.distance_delete.threshold": "", "automation.auto_ping.successful": "Выполнено", - "unified.telemetry.empty_filters": "", + "unified.telemetry.empty_filters": "Ни один узел не соответствует текущим фильтрам", "firmware.wizard_backup_title": "Настройки backup", "meshcore.admin_password": "", "automation.auto_heap.saved": "Настройки автоматического управления узлами сохранены", @@ -3938,8 +3938,8 @@ "unified.telemetry.node_count_one": "{{count}} узел", "meshcore.messages": "", "unified.messages.modal.title": "Детали приема", - "unified.telemetry.sort_newest": "", - "unified.telemetry.all_types": "", + "unified.telemetry.sort_newest": "Первые новые", + "unified.telemetry.all_types": "Все типы", "dashboard.widget.distance_distribution.no_gps": "", "unified.telemetry.empty_range": "В выбранном временном диапазоне данные телеметрии не найдены.", "meshcore.login_status": "", @@ -3953,7 +3953,7 @@ "source.form.name": "Имя", "unified.messages.date_yesterday": "Вчера", "firmware.wizard_extract_title": "", - "unified.telemetry.filter_type_aria": "", + "unified.telemetry.filter_type_aria": "Фильтрация по типу", "packet_monitor.column.date": "", "unified.messages.channel_aria": "", "source.kebab.edit": "", @@ -3971,7 +3971,7 @@ "automation.auto_ack.node_ignore_list": "Список игнорируемых узлов", "unified.telemetry.title": "Единая телеметрия", "unified.messages.modal.col_hops": "Прыжки", - "unified.telemetry.search_placeholder": "", + "unified.telemetry.search_placeholder": "Поиск узлов…", "unified.messages.failed_channels": "", "source.delete_confirm": "", "dashboard.widget.distance_distribution.no_home_position": "", @@ -4001,7 +4001,7 @@ "unified.telemetry.age_days": "{{count}}д назад", "settings.overlay_scheme_light": "", "meshcore.device_type.repeater": "", - "unified.telemetry.failed": "", + "unified.telemetry.failed": "Ошибка загрузки данных телеметрии", "meshcore.uptime": "", "unified.back_to_sources": "← Источники", "dashboard.widget.hop_distribution.hops": "", @@ -4040,7 +4040,7 @@ "source.sidebar.open_sources": "Открыть исчточник", "automation.distance_delete.note_delete": "Удаленный узел может вернуться, если продолжит широковещательную передачу. Выберите «Игнорировать», чтобы постоянно подавлять его на устройстве.", "automation.distance_delete.no_home_coordinate": "", - "unified.telemetry.sort_oldest": "", + "unified.telemetry.sort_oldest": "Первые наиболее старые", "source.add": "Добавить сервер", "source.open": "", "automation.distance_delete.latitude": "Широта", From e646ec253b1ad5214a21ff106600a424275648e1 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 23:56:46 +0200 Subject: [PATCH 29/46] Translated using Weblate (Russian) Currently translated at 92.4% (3950 of 4272 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 069092834..b613fcfd7 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3794,11 +3794,11 @@ "automation.auto_ping.settings_saved": "Сохранены настройки автоматического пинга", "settings.analytics_provider_matomo": "", "security.offset_behind": "{{value}} назад", - "unified.telemetry.all_sources": "Все источники", + "unified.telemetry.all_sources": "", "source.kebab.enable": "", "channel_database.toast_export_success": "", "automation.auto_ack.cooldown_description": "После ответа на узел игнорировать дальнейшие триггеры от этого узла в течение указанного времени. Предотвращает злоупотребления со стороны узлов, спамящих триггерные слова.", - "unified.telemetry.search_aria": "Поиск узлов...", + "unified.telemetry.search_aria": "Поиск узлов", "automation.distance_delete.action_ignore": "Игнорировать узел", "dashboard.widget.hop_distance_heatmap.no_data": "", "channel_database.export_title": "", @@ -3818,7 +3818,7 @@ "firmware.retry_flash": "", "unified.messages.all_sources": "", "automation.distance_delete.no_log_entries": "", - "unified.messages.hop_start_only": "", + "unified.messages.hop_start_only": "начало {{value}}", "info.virtual_node_admin_blocked": "", "source.sidebar.close_sources": "Закрыть источник", "channel_database.toast_export_failed": "", @@ -3923,7 +3923,7 @@ "meshcore.refresh": "", "automation.distance_delete.threshold": "", "automation.auto_ping.successful": "Выполнено", - "unified.telemetry.empty_filters": "Ни один узел не соответствует текущим фильтрам", + "unified.telemetry.empty_filters": "Ни один узел не соответствует текущим фильтрам.", "firmware.wizard_backup_title": "Настройки backup", "meshcore.admin_password": "", "automation.auto_heap.saved": "Настройки автоматического управления узлами сохранены", @@ -3975,7 +3975,7 @@ "unified.messages.failed_channels": "", "source.delete_confirm": "", "dashboard.widget.distance_distribution.no_home_position": "", - "firmware.ota_bootloader_learn_more": "Узнать больше", + "firmware.ota_bootloader_learn_more": "Посмотреть подробности", "source.form.heartbeat_help": "Периодически отправляет на узел сигнал подтверждения соединения. Для узлов с параметром CLIENT_MUTE или других малоактивных узлов, получающих небольшой трафик в сети, попробуйте значение 30–60 секунд, в противном случае оставьте значение 0.", "source.kebab.disable": "", "dashboard.widget.distance_distribution.settings": "", @@ -4001,7 +4001,7 @@ "unified.telemetry.age_days": "{{count}}д назад", "settings.overlay_scheme_light": "", "meshcore.device_type.repeater": "", - "unified.telemetry.failed": "Ошибка загрузки данных телеметрии", + "unified.telemetry.failed": "Ошибка загрузки телеметрии", "meshcore.uptime": "", "unified.back_to_sources": "← Источники", "dashboard.widget.hop_distribution.hops": "", @@ -4026,7 +4026,7 @@ "automation.distance_delete.description": "", "dashboard.widget.distance_distribution.no_position_data": "", "meshcore.unknown": "", - "unified.messages.hop_limit_only": "", + "unified.messages.hop_limit_only": "лимит {{value}}", "dashboard.widget.hop_distance_heatmap.fewer": "", "source.form.enable_virtual_node": "Включить виртуальный узел", "unified.messages.subtitle_channel": "", From 91f4292c8a9e3114b0a5e92beebeec771279c6f0 Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Mon, 25 May 2026 23:57:34 +0200 Subject: [PATCH 30/46] Translated using Weblate (Russian) Currently translated at 92.4% (3950 of 4272 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index b613fcfd7..091e13469 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3794,7 +3794,7 @@ "automation.auto_ping.settings_saved": "Сохранены настройки автоматического пинга", "settings.analytics_provider_matomo": "", "security.offset_behind": "{{value}} назад", - "unified.telemetry.all_sources": "", + "unified.telemetry.all_sources": "Все источники", "source.kebab.enable": "", "channel_database.toast_export_success": "", "automation.auto_ack.cooldown_description": "После ответа на узел игнорировать дальнейшие триггеры от этого узла в течение указанного времени. Предотвращает злоупотребления со стороны узлов, спамящих триггерные слова.", From 54b71701bfb700c57442a0669ff198b6457d1c42 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Mon, 25 May 2026 23:59:00 +0200 Subject: [PATCH 31/46] Translated using Weblate (Russian) Currently translated at 92.4% (3950 of 4272 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 091e13469..06b839a74 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3794,7 +3794,7 @@ "automation.auto_ping.settings_saved": "Сохранены настройки автоматического пинга", "settings.analytics_provider_matomo": "", "security.offset_behind": "{{value}} назад", - "unified.telemetry.all_sources": "Все источники", + "unified.telemetry.all_sources": "", "source.kebab.enable": "", "channel_database.toast_export_success": "", "automation.auto_ack.cooldown_description": "После ответа на узел игнорировать дальнейшие триггеры от этого узла в течение указанного времени. Предотвращает злоупотребления со стороны узлов, спамящих триггерные слова.", @@ -3939,7 +3939,7 @@ "meshcore.messages": "", "unified.messages.modal.title": "Детали приема", "unified.telemetry.sort_newest": "Первые новые", - "unified.telemetry.all_types": "Все типы", + "unified.telemetry.all_types": "", "dashboard.widget.distance_distribution.no_gps": "", "unified.telemetry.empty_range": "В выбранном временном диапазоне данные телеметрии не найдены.", "meshcore.login_status": "", From 6c133997ab1319b05b2a4dbd49855f318ad29d7b Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Tue, 26 May 2026 00:03:47 +0200 Subject: [PATCH 32/46] Translated using Weblate (Russian) Currently translated at 92.6% (3956 of 4272 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 06b839a74..6b39042ca 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3795,7 +3795,7 @@ "settings.analytics_provider_matomo": "", "security.offset_behind": "{{value}} назад", "unified.telemetry.all_sources": "", - "source.kebab.enable": "", + "source.kebab.enable": "Включить", "channel_database.toast_export_success": "", "automation.auto_ack.cooldown_description": "После ответа на узел игнорировать дальнейшие триггеры от этого узла в течение указанного времени. Предотвращает злоупотребления со стороны узлов, спамящих триггерные слова.", "unified.telemetry.search_aria": "Поиск узлов", @@ -3956,7 +3956,7 @@ "unified.telemetry.filter_type_aria": "Фильтрация по типу", "packet_monitor.column.date": "", "unified.messages.channel_aria": "", - "source.kebab.edit": "", + "source.kebab.edit": "Правка", "dashboard.widget.distance_distribution.avg_distance": "", "settings.analytics_provider_ga4": "", "meshcore.nodes": "", @@ -3977,7 +3977,7 @@ "dashboard.widget.distance_distribution.no_home_position": "", "firmware.ota_bootloader_learn_more": "Посмотреть подробности", "source.form.heartbeat_help": "Периодически отправляет на узел сигнал подтверждения соединения. Для узлов с параметром CLIENT_MUTE или других малоактивных узлов, получающих небольшой трафик в сети, попробуйте значение 30–60 секунд, в противном случае оставьте значение 0.", - "source.kebab.disable": "", + "source.kebab.disable": "Отключить", "dashboard.widget.distance_distribution.settings": "", "direct_links.last_seen": "", "dashboard.widget.distance_distribution.bucket_size": "", From e53ac30fbe0d734dd715f83b07bd4f8044a54b5b Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Tue, 26 May 2026 00:04:09 +0200 Subject: [PATCH 33/46] Translated using Weblate (Russian) Currently translated at 92.6% (3956 of 4272 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 6b39042ca..6bc02e1af 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -607,7 +607,7 @@ "audit.previous": "Предыдущий", "audit.next": "Следующий", "audit.source": "Источник", - "audit.all_sources": "Все источники", + "audit.all_sources": "Все Источники", "audit.ui_only": "UI только", "audit.api_only": "только API токен", "security.description": "Отслеживание проблем безопасности ключей шифрования, включая ключи с низкой энтропией и дубликаты ключей", @@ -990,7 +990,7 @@ "packet_monitor.toggle_filters": "Переключение фильтров", "packet_monitor.export_title": "Экспорт пакетов в JSONL", "packet_monitor.clear_all": "Очистить все пакеты", - "packet_monitor.filter.all_types": "Все типы", + "packet_monitor.filter.all_types": "Все Типы", "packet_monitor.filter.all_packets": "Все пакеты", "packet_monitor.filter.encrypted_only": "Только зашифрованные", "packet_monitor.filter.decoded_only": "Только декодированные", @@ -1316,7 +1316,7 @@ "dashboard.add_widget_button": "+ Добавить виджет", "dashboard.search_placeholder": "Поиск узлов или типов телеметрии...", "dashboard.all_nodes": "Все узлы", - "dashboard.all_types": "Все типы", + "dashboard.all_types": "Все Типы", "dashboard.device_roles_all": "Роли устройств: Все", "dashboard.device_roles_selected": "Роли устройств: {{count}} выбраны", "dashboard.all_roles": "Все роли", @@ -2171,7 +2171,7 @@ "config.hop_limit_adjusted": "Ограничение по прыжкам скорректировано до допустимого диапазона (1-7)", "info.tx_statistics": "Статистика TX", "theme_editor.accessibility_check": "Проверка доступности", - "auto_responder.filter_all": "Все типы", + "auto_responder.filter_all": "Все Типы", "position_config.smart_min_interval": "\"Умный\" минимальный интервал (секунды)", "auto_responder.extracted_parameters": "Извлеченные параметры:", "automation.auto_welcome.broadcast_target_description": "Выберите, куда отправить приветственное сообщение", @@ -3794,7 +3794,7 @@ "automation.auto_ping.settings_saved": "Сохранены настройки автоматического пинга", "settings.analytics_provider_matomo": "", "security.offset_behind": "{{value}} назад", - "unified.telemetry.all_sources": "", + "unified.telemetry.all_sources": "Все источники", "source.kebab.enable": "Включить", "channel_database.toast_export_success": "", "automation.auto_ack.cooldown_description": "После ответа на узел игнорировать дальнейшие триггеры от этого узла в течение указанного времени. Предотвращает злоупотребления со стороны узлов, спамящих триггерные слова.", @@ -3915,7 +3915,7 @@ "meshcore.type": "", "source.status_connected": "", "source.status_disconnected": "", - "source.form.host_placeholder": "", + "source.form.host_placeholder": "192.168.0.100", "meshcore.rssi": "", "meshcore.no_messages": "", "dashboard.widget.distance_distribution.description": "", @@ -3939,7 +3939,7 @@ "meshcore.messages": "", "unified.messages.modal.title": "Детали приема", "unified.telemetry.sort_newest": "Первые новые", - "unified.telemetry.all_types": "", + "unified.telemetry.all_types": "Все типы", "dashboard.widget.distance_distribution.no_gps": "", "unified.telemetry.empty_range": "В выбранном временном диапазоне данные телеметрии не найдены.", "meshcore.login_status": "", @@ -3977,7 +3977,7 @@ "dashboard.widget.distance_distribution.no_home_position": "", "firmware.ota_bootloader_learn_more": "Посмотреть подробности", "source.form.heartbeat_help": "Периодически отправляет на узел сигнал подтверждения соединения. Для узлов с параметром CLIENT_MUTE или других малоактивных узлов, получающих небольшой трафик в сети, попробуйте значение 30–60 секунд, в противном случае оставьте значение 0.", - "source.kebab.disable": "Отключить", + "source.kebab.disable": "Выключить", "dashboard.widget.distance_distribution.settings": "", "direct_links.last_seen": "", "dashboard.widget.distance_distribution.bucket_size": "", From a1d6254a2e75c40351b02428591b3e212d173cf1 Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Tue, 26 May 2026 12:06:05 +0200 Subject: [PATCH 34/46] Translated using Weblate (Russian) Currently translated at 97.4% (4164 of 4275 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 6bc02e1af..3af54ad5e 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3842,7 +3842,7 @@ "firmware.retry_flash_unavailable": "Повторная попытка невозможна: файлы прошивки больше недоступны. Пожалуйста, начните новое обновление.", "automation.distance_delete.use_node_position": "", "channel_database.toast_export_empty": "", - "unified.messages.hop_direct": "", + "unified.messages.hop_direct": "Прямой", "automation.auto_key_management.immediate_purge_description": "", "meshcore.battery": "", "unified.no_text": "(нет текста)", @@ -3852,7 +3852,7 @@ "source.form.auto_connect_help": "Если этот параметр отключен, MeshMonitor не будет подключаться к этому узлу при запуске. Для начала мониторинга необходимо нажать кнопку «Подключиться».", "unified.close": "Закрыть", "unified.messages.sign_in_required": "", - "unified.messages.title": "", + "unified.messages.title": "💬 Единые сообщения", "network_config.rsyslog_server_description": "", "automation.auto_ping.failed": "Неудачно", "automation.auto_heap.threshold_hint": "Запустить очистку, если узел сообщает о наличии менее указанного объема свободной памяти.", @@ -3885,11 +3885,11 @@ "settings.analytics_site_url_label": "", "settings.analytics_provider_posthog": "", "unified.telemetry.age_seconds": "{{count}}с назад", - "unified.messages.subtitle_none": "", + "unified.messages.subtitle_none": "Выберите канал", "source.connect": "", "source.sidebar.unified_messages": "💬 Единые сообщения", "source.connecting": "", - "packet_monitor.today": "", + "packet_monitor.today": "Сегодня", "security.key_mismatch_status_fixed": "Исправлено", "firmware.no_backups": "Резервные настройки не найдены.", "unified.telemetry.loading": "Загрузка телеметрии…", @@ -3955,7 +3955,7 @@ "firmware.wizard_extract_title": "", "unified.telemetry.filter_type_aria": "Фильтрация по типу", "packet_monitor.column.date": "", - "unified.messages.channel_aria": "", + "unified.messages.channel_aria": "Канал", "source.kebab.edit": "Правка", "dashboard.widget.distance_distribution.avg_distance": "", "settings.analytics_provider_ga4": "", @@ -4009,7 +4009,7 @@ "automation.auto_heap.warning": "При срабатывании MeshMonitor удалит из базы данных устройства 10 узлов, от которых дольше всего не поступало сигналов, и перезагрузит узел. Это может привести к кратковременному разрыву соединения.", "meshcore.disconnect": "", "source.sidebar.unified_telemetry": "📡 Единая телеметрия", - "unified.messages.hop_count_one": "", + "unified.messages.hop_count_one": "{{count}} прыжок", "dashboard.widget.hop_distance_heatmap.hops_axis": "", "source.edit": "", "source.sidebar.github": "GitHub", @@ -4017,7 +4017,7 @@ "source.kebab.disconnect": "", "source.sidebar.website": "Сайт", "source.sidebar.users": "Пользователи", - "unified.messages.date_today": "", + "unified.messages.date_today": "Сегодня", "unified.messages.modal.col_source": "Источник", "auto_responder.cooldown_help": "", "automation.auto_traceroute.max_hops": "", @@ -4097,12 +4097,12 @@ "firmware.save_channel": "Сохранить", "settings.analytics_website_id_description": "", "dashboard.widget.distance_distribution.km": "", - "source.header": "", + "source.header": "Источники", "source.node_count": "", "settings.analytics_domain_label": "", "map.legend.route": "Мaршрут", "dashboard.widget.distance_distribution.title": "", - "unified.messages.refresh": "", + "unified.messages.refresh": "Обновить", "source.form.virtual_node": "Виртуальный узел", "security.key_mismatch_resolved": "Решено", "network_config.rsyslog_server": "", @@ -4136,7 +4136,7 @@ "unified.messages.loading_older": "", "automation.distance_delete.action_delete": "Удалить ноду", "settings.analytics_provider_umami": "", - "unified.messages.hop_count_other": "", + "unified.messages.hop_count_other": "{{count}} прыжки", "unified.messages.modal.channel": "Канал", "auto_responder.cooldown_label": "", "security.key_mismatch_status_purged": "Удалять", From 89a05123830f486c0194e342135b75a215730bfe Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Tue, 26 May 2026 12:13:01 +0200 Subject: [PATCH 35/46] Translated using Weblate (Russian) Currently translated at 97.4% (4164 of 4275 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 65 +++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 3af54ad5e..0a6fd637c 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -42,9 +42,9 @@ "header.connectedTo": "Подключено к: {{address}}", "header.clickForStatus": "Нажмите для статуса системы", "header.status.connected": "подключено", - "header.status.disconnected": "Отключено", + "header.status.disconnected": "", "header.status.initializing": "инициализация", - "header.status.nodeOffline": "Нода оффлайн", + "header.status.nodeOffline": "Узел оффлайн", "header.disconnect": "Отключить", "header.disconnectTitle": "Отключиться от ноды", "header.connect": "Подключить", @@ -120,7 +120,7 @@ "common.show_less": "Показать меньше", "common.view": "Вид", "common.create": "Создать", - "common.update": "Обновить", + "common.update": "Обновление", "common.test": "Тест", "common.send": "Отправить", "common.download": "Скачать", @@ -3816,7 +3816,7 @@ "source.connect_help": "", "automation.ignored_nodes.col_ignored_at": "", "firmware.retry_flash": "", - "unified.messages.all_sources": "", + "unified.messages.all_sources": "Все источники", "automation.distance_delete.no_log_entries": "", "unified.messages.hop_start_only": "начало {{value}}", "info.virtual_node_admin_blocked": "", @@ -3836,13 +3836,13 @@ "security.key_mismatch_status_pending": "В очереди", "security.key_mismatch_status_exhausted": "Исчерпано", "meshcore.remote_node_status": "", - "unified.messages.channel_option": "", + "unified.messages.channel_option": "#{{name}} ({{count}})", "security.key_mismatch_new_key": "Новый ключ", "security.offset_minutes_other": "{{count}} минуты", "firmware.retry_flash_unavailable": "Повторная попытка невозможна: файлы прошивки больше недоступны. Пожалуйста, начните новое обновление.", "automation.distance_delete.use_node_position": "", "channel_database.toast_export_empty": "", - "unified.messages.hop_direct": "Прямой", + "unified.messages.hop_direct": "прямой", "automation.auto_key_management.immediate_purge_description": "", "meshcore.battery": "", "unified.no_text": "(нет текста)", @@ -3851,8 +3851,8 @@ "security.clock_offset": "Смещение", "source.form.auto_connect_help": "Если этот параметр отключен, MeshMonitor не будет подключаться к этому узлу при запуске. Для начала мониторинга необходимо нажать кнопку «Подключиться».", "unified.close": "Закрыть", - "unified.messages.sign_in_required": "", - "unified.messages.title": "💬 Единые сообщения", + "unified.messages.sign_in_required": "Войдите, чтобы просмотреть сообщения.", + "unified.messages.title": "Единые сообщения", "network_config.rsyslog_server_description": "", "automation.auto_ping.failed": "Неудачно", "automation.auto_heap.threshold_hint": "Запустить очистку, если узел сообщает о наличии менее указанного объема свободной памяти.", @@ -3900,11 +3900,11 @@ "meshcore.connecting": "", "security.offset_seconds_other": "{{count}} секунды", "auto_responder.cooldown_description": "", - "unified.messages.no_channels": "", + "unified.messages.no_channels": "Нет каналов", "dashboard.widget.hop_distance_heatmap.description": "", "unified.telemetry.age_hours": "{{count}}ч назад", "dashboard.widget.hop_distribution.title": "", - "source.delete": "", + "source.delete": "Удалить Источник", "settings.analytics_custom_csp_label": "", "source.status_disabled": "", "automation.auto_heap.heap_status": "Текущее : {{kb}} KB свободно", @@ -3919,7 +3919,7 @@ "meshcore.rssi": "", "meshcore.no_messages": "", "dashboard.widget.distance_distribution.description": "", - "unified.messages.history_start": "", + "unified.messages.history_start": "Начало истории.", "meshcore.refresh": "", "automation.distance_delete.threshold": "", "automation.auto_ping.successful": "Выполнено", @@ -3946,7 +3946,7 @@ "meshcore.snr": "", "packet_monitor.filter.all_last_hops": "Все последние прыжки", "security.unknown": "Неизвестный", - "unified.messages.failed_messages": "", + "unified.messages.failed_messages": "Не удалось загрузить сообщения.", "meshcore.remote_admin": "", "automation.distance_delete.activity_log": "", "firmware.matched_file": "Выбирите прошивку", @@ -3954,11 +3954,11 @@ "unified.messages.date_yesterday": "Вчера", "firmware.wizard_extract_title": "", "unified.telemetry.filter_type_aria": "Фильтрация по типу", - "packet_monitor.column.date": "", + "packet_monitor.column.date": "Дата", "unified.messages.channel_aria": "Канал", "source.kebab.edit": "Правка", "dashboard.widget.distance_distribution.avg_distance": "", - "settings.analytics_provider_ga4": "", + "settings.analytics_provider_ga4": "Google аналитика (GA4)", "meshcore.nodes": "", "dashboard.widget.distance_distribution.with_position": "", "automation.auto_ping.dm_start_help": "- Запустить 5 пингов с заданным интервалом", @@ -3972,8 +3972,8 @@ "unified.telemetry.title": "Единая телеметрия", "unified.messages.modal.col_hops": "Прыжки", "unified.telemetry.search_placeholder": "Поиск узлов…", - "unified.messages.failed_channels": "", - "source.delete_confirm": "", + "unified.messages.failed_channels": "Не удалось загрузить каналы.", + "source.delete_confirm": "Вы уверены, что хотите удалить этот источник? Это удалит источник и все его данные.", "dashboard.widget.distance_distribution.no_home_position": "", "firmware.ota_bootloader_learn_more": "Посмотреть подробности", "source.form.heartbeat_help": "Периодически отправляет на узел сигнал подтверждения соединения. Для узлов с параметром CLIENT_MUTE или других малоактивных узлов, получающих небольшой трафик в сети, попробуйте значение 30–60 секунд, в противном случае оставьте значение 0.", @@ -3995,11 +3995,11 @@ "automation.auto_traceroute.hours": "", "automation.auto_ping.interval_description": "Время между каждым пингом в рамках сессии", "source.form.allow_admin_commands": "Разрешить команды администрирования", - "settings.overlay_scheme_dark": "", + "settings.overlay_scheme_dark": "Тёмный режим (яркие наложения)", "source.form.allow_admin_help": "Сторонние клиенты, подключенные к виртуальному узлу, могут отправлять административные команды вашему узлу Meshtastic. Отключите эту функцию, если вы не доверяете этим клиентам.", "meshcore.select": "", "unified.telemetry.age_days": "{{count}}д назад", - "settings.overlay_scheme_light": "", + "settings.overlay_scheme_light": "Светлый режим (насыщенные наложения)", "meshcore.device_type.repeater": "", "unified.telemetry.failed": "Ошибка загрузки телеметрии", "meshcore.uptime": "", @@ -4011,9 +4011,9 @@ "source.sidebar.unified_telemetry": "📡 Единая телеметрия", "unified.messages.hop_count_one": "{{count}} прыжок", "dashboard.widget.hop_distance_heatmap.hops_axis": "", - "source.edit": "", + "source.edit": "Редактировать Источник", "source.sidebar.github": "GitHub", - "unified.messages.loading": "", + "unified.messages.loading": "Загрузка сообщений…", "source.kebab.disconnect": "", "source.sidebar.website": "Сайт", "source.sidebar.users": "Пользователи", @@ -4033,7 +4033,7 @@ "firmware.reboot_warning": "В ходе обновления узел перезагрузится и на короткое время станет недоступен.", "settings.analytics_provider_cloudflare": "", "automation.auto_ping.active_sessions": "Активные сессии", - "unified.messages.heard_by_source": "", + "unified.messages.heard_by_source": "Услышано {{name}}", "source.form.host": "", "source.form.name_placeholder": "Дмашний узел", "automation.geofence_triggers.cooldown": "", @@ -4042,7 +4042,7 @@ "automation.distance_delete.no_home_coordinate": "", "unified.telemetry.sort_oldest": "Первые наиболее старые", "source.add": "Добавить сервер", - "source.open": "", + "source.open": "Открыть →", "automation.distance_delete.latitude": "Широта", "automation.distance_delete.running": "", "dashboard.widget.hop_distribution.total_nodes": "", @@ -4083,8 +4083,8 @@ "automation.auto_ping.progress": "Прогресс", "security.offset_synchronized": "Синхронизировано", "dashboard.widget.hop_distribution.direct_neighbors": "", - "settings.custom_tileset_overlay_scheme": "", - "settings.local_stats_interval_description": "", + "settings.custom_tileset_overlay_scheme": "Цвета слоев карты", + "settings.local_stats_interval_description": "Как часто запрашивать локальную статистику у подключенного узла (0 = отключено, по умолчанию: 15). Меньшие значения увеличивают нагрузку на узел.", "direct_links.distance": "", "automation.auto_ack.cooldown_help": "", "source.sidebar.map_analysis": "🗺️ Анализ карты", @@ -4109,7 +4109,7 @@ "settings.analytics_beacon_token_label": "", "firmware.ota_bootloader_warning": "Для обновления Wi-Fi по воздуху (OTA) требуется однократная прошивка загрузчика через USB. Если это ваше первое обновление по воздуху, убедитесь, что загрузчик установлен.", "source.sidebar.settings": "Настройки", - "source.options": "", + "source.options": "Параметры источника", "security.key_mismatch_detected": "Обнаружено", "automation.distance_delete.enabled": "", "meshcore.device_type.unknown": "", @@ -4124,7 +4124,7 @@ "automation.auto_ping.requested_by": "Запрошено", "settings.analytics_provider_custom": "", "settings.analytics_api_host_label": "", - "settings.local_stats_interval_label": "", + "settings.local_stats_interval_label": "Интервал сбора локальной статистики (минуты)", "dashboard.widget.hop_distribution.unknown": "", "automation.geofence_triggers.cooldown_help": "", "automation.auto_ping.dm_commands": "Команды прямых сообщений", @@ -4133,7 +4133,7 @@ "unified.telemetry.filter_source_aria": "Фильтр по источнику", "settings.analytics_site_id_label": "", "unified.telemetry.sort_name_desc": "Имя (Z→A)", - "unified.messages.loading_older": "", + "unified.messages.loading_older": "Загрузка старых сообщений…", "automation.distance_delete.action_delete": "Удалить ноду", "settings.analytics_provider_umami": "", "unified.messages.hop_count_other": "{{count}} прыжки", @@ -4146,8 +4146,8 @@ "source.form.error_name_required": "Введите имя", "firmware.restore_backup": "Восстановить", "source.status_connecting": "", - "unified.messages.choose_channel": "", - "source.add_short": "", + "unified.messages.choose_channel": "Выберите канал, чтобы начать.", + "source.add_short": "+ Добавить", "automation.auto_ack.node_ignore_list_description": "Не подтверждать автоматически сообщения от этих ID узлов. Вводите по одному ID на строку или через запятую, используя формат !xxxxxxxx.", "automation.auto_traceroute.filter_by_hops": "", "meshcore.send": "", @@ -4155,10 +4155,10 @@ "dashboard.widget.hop_distribution.longest_path": "", "source.form.error_save_failed": "Ошибка сохранения", "unified.messages.empty_channel": "Пока нет сообщений в этом канале.", - "unified.messages.source_filter_aria": "", + "unified.messages.source_filter_aria": "Фильтр источников", "dashboard.widget.distance_distribution.miles": "", "meshcore.contacts": "", - "unified.messages.heard_by_count": "", + "unified.messages.heard_by_count": "услышано {{count}}", "settings.analytics_custom_script_label": "", "meshcore.port": "", "auto_responder.cooldown_badge": "", @@ -4178,5 +4178,6 @@ "packet_monitor.filter.transport_udp": "Только UDP", "packet_monitor.filter.transport_mqtt": "Только MQTT", "packet_monitor.filter.transport_api": "Только API", - "source.node_activity_title": "{{active}} из {{total}} узлов слышимые за последние 2 часа" + "source.node_activity_title": "{{active}} из {{total}} узлов слышимые за последние 2 часа", + "packet_monitor.filter.transport_internal": "Только внутреннее" } From cce31a1537d20e434bdfacd795e44b5b7cf6694e Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Tue, 26 May 2026 12:13:14 +0200 Subject: [PATCH 36/46] Translated using Weblate (Russian) Currently translated at 97.4% (4164 of 4275 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 0a6fd637c..4b0e891ad 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3437,7 +3437,7 @@ "node_info.error_failed": "Не удалось изменить адрес", "node_info.short_name": "Короткое имя", "node_info.node_id": "ID узла", - "node_info.connection_section": "Подключение", + "node_info.connection_section": "Соединение", "node_info.address": "Адрес", "node_info.save": "Применить изменения", "node_info.saving": "Применяется...", @@ -3678,7 +3678,7 @@ "automation.remote_admin_scanner.schedule_window": "Ограничить по времени", "automation.schedule.starting_at": "Начиная с", "automation.schedule.ending_at": "Заканчивая в", - "meshcore.connection": "Подключение", + "meshcore.connection": "Соединение", "meshcore.connection_type": "Тип подключения", "meshcore.serial_port": "Последовательный порт", "meshcore.host": "Хост", @@ -3906,15 +3906,15 @@ "dashboard.widget.hop_distribution.title": "", "source.delete": "Удалить Источник", "settings.analytics_custom_csp_label": "", - "source.status_disabled": "", + "source.status_disabled": "Отключено", "automation.auto_heap.heap_status": "Текущее : {{kb}} KB свободно", "settings.analytics_beacon_token_description": "", "packet_monitor.filter.unknown_hop": "Неизвестный", "unified.telemetry.network_error": "Ошибка сети", "meshcore.device_type.companion": "", "meshcore.type": "", - "source.status_connected": "", - "source.status_disconnected": "", + "source.status_connected": "Подключён", + "source.status_disconnected": "Отключено", "source.form.host_placeholder": "192.168.0.100", "meshcore.rssi": "", "meshcore.no_messages": "", @@ -4145,7 +4145,7 @@ "automation.auto_heap.title": "Автоматическое управление узлами", "source.form.error_name_required": "Введите имя", "firmware.restore_backup": "Восстановить", - "source.status_connecting": "", + "source.status_connecting": "Подключение", "unified.messages.choose_channel": "Выберите канал, чтобы начать.", "source.add_short": "+ Добавить", "automation.auto_ack.node_ignore_list_description": "Не подтверждать автоматически сообщения от этих ID узлов. Вводите по одному ID на строку или через запятую, используя формат !xxxxxxxx.", From 6cb81fb7be05511301fe06fedb15e99df68833c2 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Tue, 26 May 2026 12:16:50 +0200 Subject: [PATCH 37/46] Translated using Weblate (Russian) Currently translated at 97.4% (4164 of 4275 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 4b0e891ad..87638dd8b 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -42,7 +42,7 @@ "header.connectedTo": "Подключено к: {{address}}", "header.clickForStatus": "Нажмите для статуса системы", "header.status.connected": "подключено", - "header.status.disconnected": "", + "header.status.disconnected": "Отключено", "header.status.initializing": "инициализация", "header.status.nodeOffline": "Узел оффлайн", "header.disconnect": "Отключить", @@ -1289,7 +1289,7 @@ "admin_commands.unnamed": "Безымянный", "admin_commands.primary": "Первичный", "admin_commands.secondary": "Вторичный", - "admin_commands.disabled": "Отключено", + "admin_commands.disabled": "Выключено", "admin_commands.empty": "Пусто", "admin_commands.encrypted": "Зашифрованный", "admin_commands.unencrypted": "Незашифрованный", @@ -3906,7 +3906,7 @@ "dashboard.widget.hop_distribution.title": "", "source.delete": "Удалить Источник", "settings.analytics_custom_csp_label": "", - "source.status_disabled": "Отключено", + "source.status_disabled": "Выключено", "automation.auto_heap.heap_status": "Текущее : {{kb}} KB свободно", "settings.analytics_beacon_token_description": "", "packet_monitor.filter.unknown_hop": "Неизвестный", From 4c2e1a3d0d6bbc8e89631d665469796aadddc20d Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Tue, 26 May 2026 12:17:11 +0200 Subject: [PATCH 38/46] Translated using Weblate (Russian) Currently translated at 97.4% (4164 of 4275 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 87638dd8b..537df8eda 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -4031,7 +4031,7 @@ "source.form.enable_virtual_node": "Включить виртуальный узел", "unified.messages.subtitle_channel": "", "firmware.reboot_warning": "В ходе обновления узел перезагрузится и на короткое время станет недоступен.", - "settings.analytics_provider_cloudflare": "", + "settings.analytics_provider_cloudflare": "Cloudflare Web Analytics", "automation.auto_ping.active_sessions": "Активные сессии", "unified.messages.heard_by_source": "Услышано {{name}}", "source.form.host": "", From ee5ac30d0eb5c301cbc2bae2be917d2adc6e4671 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Tue, 26 May 2026 12:35:13 +0200 Subject: [PATCH 39/46] Translated using Weblate (Russian) Currently translated at 97.4% (4164 of 4275 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 537df8eda..895f410d6 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3790,9 +3790,9 @@ "packet_monitor.filter.last_hop_tooltip": "Фильтровать по последней вещавшей ноде", "source.form.error_network": "Ошибка сети", "meshcore.type_message": "", - "settings.analytics_domain_description": "", + "settings.analytics_domain_description": "Домен вашего сайта, настроенный в Plausible", "automation.auto_ping.settings_saved": "Сохранены настройки автоматического пинга", - "settings.analytics_provider_matomo": "", + "settings.analytics_provider_matomo": "Mаtomo", "security.offset_behind": "{{value}} назад", "unified.telemetry.all_sources": "Все источники", "source.kebab.enable": "Включить", @@ -3807,7 +3807,7 @@ "automation.auto_traceroute.last_heard_within": "", "automation.distance_delete.interval_hours": "", "automation.auto_ping.timeout_description": "Как долго нужно ждать ответа, прежде чем пометить пинг как прерванный по таймауту", - "settings.analytics_script_url_description": "", + "settings.analytics_script_url_description": "URL вашего скрипта отслеживания Umami", "firmware.wizard_verify_title": "", "automation.distance_delete.note_ignore": "Игнорируемые узлы скрываются и синхронизируются с подключенным устройством (требуется прошивка версии ≥ 2.7.0).", "source.form.error_vn_port_range": "Порт виртуального узла должен быть 1–65535", @@ -3875,15 +3875,15 @@ "settings.analytics_measurement_id_description": "", "meshcore.admin_password_placeholder": "", "source.form.error_port_range": "Порт должен быть 1–65535", - "settings.analytics_script_url_label": "", + "settings.analytics_script_url_label": "Скрипт URL", "firmware.wizard_preflight_title": "", - "source.form.error_host_required": "", + "source.form.error_host_required": "Хост обязателен", "source.sidebar.news": "Новости", "admin.back_to_dashboard": "← Назад на панель управления", "dashboard.widget.hop_distance_heatmap.title": "", "automation.distance_delete.home_coordinate": "", - "settings.analytics_site_url_label": "", - "settings.analytics_provider_posthog": "", + "settings.analytics_site_url_label": "Mаtomo URL", + "settings.analytics_provider_posthog": "PоstHog", "unified.telemetry.age_seconds": "{{count}}с назад", "unified.messages.subtitle_none": "Выберите канал", "source.connect": "", @@ -3927,7 +3927,7 @@ "firmware.wizard_backup_title": "Настройки backup", "meshcore.admin_password": "", "automation.auto_heap.saved": "Настройки автоматического управления узлами сохранены", - "settings.analytics_website_id_label": "", + "settings.analytics_website_id_label": "Сайт ID", "info.virtual_node_admin_allowed": "", "automation.auto_traceroute.filter_by_last_heard": "", "dashboard.widget.distance_distribution.max_distance": "", @@ -4029,9 +4029,9 @@ "unified.messages.hop_limit_only": "лимит {{value}}", "dashboard.widget.hop_distance_heatmap.fewer": "", "source.form.enable_virtual_node": "Включить виртуальный узел", - "unified.messages.subtitle_channel": "", + "unified.messages.subtitle_channel": "#{{channel}} · по всем доступным источникам", "firmware.reboot_warning": "В ходе обновления узел перезагрузится и на короткое время станет недоступен.", - "settings.analytics_provider_cloudflare": "Cloudflare Web Analytics", + "settings.analytics_provider_cloudflare": "Cloudflare Web Аnalytics", "automation.auto_ping.active_sessions": "Активные сессии", "unified.messages.heard_by_source": "Услышано {{name}}", "source.form.host": "", @@ -4053,7 +4053,7 @@ "automation.distance_delete.run_result": "", "automation.geofence_triggers.clear_shape": "", "automation.distance_delete.protected_note": "", - "source.form.heartbeat": "", + "source.form.heartbeat": "Сердцебиение (секунды, 0 = выкл)", "source.form.auto_connect": "Автоматическое подключение при запуске", "source.form.virtual_node_port": "Порт виртуального узла", "firmware.backups_title": "", @@ -4067,7 +4067,7 @@ "automation.auto_ping.interval": "Интервал пинга (секунды)", "automation.auto_heap.save_error": "Настройки не сохранены", "automation.auto_key_management.log_new_key": "", - "settings.analytics_provider_plausible": "", + "settings.analytics_provider_plausible": "Plаusible", "dashboard.widget.hop_distribution.hops_one": "", "settings.analytics_site_url_description": "", "firmware.downgrade_warning": "Внимание: понижение версии прошивки может привести к проблемам совместимости.", @@ -4095,7 +4095,7 @@ "map.legend.neighbor": "Сосед", "firmware.wizard_cancel": "Отмена обновления", "firmware.save_channel": "Сохранить", - "settings.analytics_website_id_description": "", + "settings.analytics_website_id_description": "Ваш Umami сайт ID", "dashboard.widget.distance_distribution.km": "", "source.header": "Источники", "source.node_count": "", @@ -4119,11 +4119,11 @@ "automation.auto_heap.threshold_label": "Порог свободного пространства (KB)", "source.virtual_node_badge_title": "Виртуальный узел", "dashboard.widget.hop_distance_heatmap.more": "", - "settings.analytics_measurement_id_label": "", + "settings.analytics_measurement_id_label": "Измерение ID", "direct_links.neighbor_connection": "", "automation.auto_ping.requested_by": "Запрошено", "settings.analytics_provider_custom": "", - "settings.analytics_api_host_label": "", + "settings.analytics_api_host_label": "API Хост", "settings.local_stats_interval_label": "Интервал сбора локальной статистики (минуты)", "dashboard.widget.hop_distribution.unknown": "", "automation.geofence_triggers.cooldown_help": "", @@ -4135,7 +4135,7 @@ "unified.telemetry.sort_name_desc": "Имя (Z→A)", "unified.messages.loading_older": "Загрузка старых сообщений…", "automation.distance_delete.action_delete": "Удалить ноду", - "settings.analytics_provider_umami": "", + "settings.analytics_provider_umami": "Umаmi", "unified.messages.hop_count_other": "{{count}} прыжки", "unified.messages.modal.channel": "Канал", "auto_responder.cooldown_label": "", @@ -4179,5 +4179,7 @@ "packet_monitor.filter.transport_mqtt": "Только MQTT", "packet_monitor.filter.transport_api": "Только API", "source.node_activity_title": "{{active}} из {{total}} узлов слышимые за последние 2 часа", - "packet_monitor.filter.transport_internal": "Только внутреннее" + "packet_monitor.filter.transport_internal": "Только внутреннее", + "packet_monitor.filter.all_transports": "Все протоколы", + "packet_monitor.filter.transport_tooltip": "Фильтр по протоколу (firmware >= 2.7.x)" } From c342c6014ca7dfd160405c7a99281f69637428ae Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Tue, 26 May 2026 12:40:10 +0200 Subject: [PATCH 40/46] Translated using Weblate (Russian) Currently translated at 97.4% (4164 of 4275 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 895f410d6..8ed71a7b5 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3895,7 +3895,7 @@ "unified.telemetry.loading": "Загрузка телеметрии…", "automation.auto_ping.stop_failed": "Не удалось остановить сеанс пинговвания", "automation.auto_key_management.log_old_key": "", - "settings.analytics_api_key_label": "", + "settings.analytics_api_key_label": "Ключ API", "unified.messages.modal.col_heard": "Слышал(а)", "meshcore.connecting": "", "security.offset_seconds_other": "{{count}} секунды", @@ -3903,7 +3903,7 @@ "unified.messages.no_channels": "Нет каналов", "dashboard.widget.hop_distance_heatmap.description": "", "unified.telemetry.age_hours": "{{count}}ч назад", - "dashboard.widget.hop_distribution.title": "", + "dashboard.widget.hop_distribution.title": "Распределение", "source.delete": "Удалить Источник", "settings.analytics_custom_csp_label": "", "source.status_disabled": "Выключено", @@ -3979,7 +3979,7 @@ "source.form.heartbeat_help": "Периодически отправляет на узел сигнал подтверждения соединения. Для узлов с параметром CLIENT_MUTE или других малоактивных узлов, получающих небольшой трафик в сети, попробуйте значение 30–60 секунд, в противном случае оставьте значение 0.", "source.kebab.disable": "Выключить", "dashboard.widget.distance_distribution.settings": "", - "direct_links.last_seen": "", + "direct_links.last_seen": "Был(а):", "dashboard.widget.distance_distribution.bucket_size": "", "automation.distance_delete.run_now": "", "unified.messages.modal.col_snr": "SNR", @@ -3987,7 +3987,7 @@ "firmware.wizard_download_title": "Скачать прошивку", "auto_responder.channel_none": "", "meshcore.last_heard": "", - "dashboard.widget.hop_distribution.hops_other": "", + "dashboard.widget.hop_distribution.hops_other": "{{count}} прыжки", "meshcore.connect": "", "dashboard.widget.hop_distance_heatmap.distance_axis": "", "automation.auto_ping.title": "Авто пинг", @@ -4004,7 +4004,7 @@ "unified.telemetry.failed": "Ошибка загрузки телеметрии", "meshcore.uptime": "", "unified.back_to_sources": "← Источники", - "dashboard.widget.hop_distribution.hops": "", + "dashboard.widget.hop_distribution.hops": "{{count}} прыжки", "firmware.rejected_files": "Отклоненные файлы", "automation.auto_heap.warning": "При срабатывании MeshMonitor удалит из базы данных устройства 10 узлов, от которых дольше всего не поступало сигналов, и перезагрузит узел. Это может привести к кратковременному разрыву соединения.", "meshcore.disconnect": "", @@ -4034,7 +4034,7 @@ "settings.analytics_provider_cloudflare": "Cloudflare Web Аnalytics", "automation.auto_ping.active_sessions": "Активные сессии", "unified.messages.heard_by_source": "Услышано {{name}}", - "source.form.host": "", + "source.form.host": "Хост / IP", "source.form.name_placeholder": "Дмашний узел", "automation.geofence_triggers.cooldown": "", "source.sidebar.open_sources": "Открыть исчточник", @@ -4045,7 +4045,7 @@ "source.open": "Открыть →", "automation.distance_delete.latitude": "Широта", "automation.distance_delete.running": "", - "dashboard.widget.hop_distribution.total_nodes": "", + "dashboard.widget.hop_distribution.total_nodes": "Всего узлов", "automation.auto_ping.max_pings": "Максимальное количество пингов за сессию", "meshcore.device_type.room_server": "", "source.form.error_heartbeat_range": "Heartbeat должен быть равен 0 (отключено) или 1–3600 секундам", @@ -4068,7 +4068,7 @@ "automation.auto_heap.save_error": "Настройки не сохранены", "automation.auto_key_management.log_new_key": "", "settings.analytics_provider_plausible": "Plаusible", - "dashboard.widget.hop_distribution.hops_one": "", + "dashboard.widget.hop_distribution.hops_one": "{{count}} прыжок", "settings.analytics_site_url_description": "", "firmware.downgrade_warning": "Внимание: понижение версии прошивки может привести к проблемам совместимости.", "unified.telemetry.sort_name_asc": "Имя (A→Z)", @@ -4082,7 +4082,7 @@ "firmware.wizard_flash_title": "", "automation.auto_ping.progress": "Прогресс", "security.offset_synchronized": "Синхронизировано", - "dashboard.widget.hop_distribution.direct_neighbors": "", + "dashboard.widget.hop_distribution.direct_neighbors": "Прямой", "settings.custom_tileset_overlay_scheme": "Цвета слоев карты", "settings.local_stats_interval_description": "Как часто запрашивать локальную статистику у подключенного узла (0 = отключено, по умолчанию: 15). Меньшие значения увеличивают нагрузку на узел.", "direct_links.distance": "", @@ -4098,8 +4098,8 @@ "settings.analytics_website_id_description": "Ваш Umami сайт ID", "dashboard.widget.distance_distribution.km": "", "source.header": "Источники", - "source.node_count": "", - "settings.analytics_domain_label": "", + "source.node_count": "{{count}} узлы", + "settings.analytics_domain_label": "Домен", "map.legend.route": "Мaршрут", "dashboard.widget.distance_distribution.title": "", "unified.messages.refresh": "Обновить", @@ -4122,16 +4122,16 @@ "settings.analytics_measurement_id_label": "Измерение ID", "direct_links.neighbor_connection": "", "automation.auto_ping.requested_by": "Запрошено", - "settings.analytics_provider_custom": "", + "settings.analytics_provider_custom": "Пользовательский скрипт", "settings.analytics_api_host_label": "API Хост", "settings.local_stats_interval_label": "Интервал сбора локальной статистики (минуты)", - "dashboard.widget.hop_distribution.unknown": "", + "dashboard.widget.hop_distribution.unknown": "Неизвестный", "automation.geofence_triggers.cooldown_help": "", "automation.auto_ping.dm_commands": "Команды прямых сообщений", "automation.auto_ack.cooldown_label": "Время ожидания для каждого узла (в секундах)", "firmware.channel": "Канал обновлений", "unified.telemetry.filter_source_aria": "Фильтр по источнику", - "settings.analytics_site_id_label": "", + "settings.analytics_site_id_label": "Сайт ID", "unified.telemetry.sort_name_desc": "Имя (Z→A)", "unified.messages.loading_older": "Загрузка старых сообщений…", "automation.distance_delete.action_delete": "Удалить ноду", @@ -4140,7 +4140,7 @@ "unified.messages.modal.channel": "Канал", "auto_responder.cooldown_label": "", "security.key_mismatch_status_purged": "Удалять", - "dashboard.widget.hop_distribution.direct": "", + "dashboard.widget.hop_distribution.direct": "Прямой", "security.offset_hours_one": "{{count}} час", "automation.auto_heap.title": "Автоматическое управление узлами", "source.form.error_name_required": "Введите имя", @@ -4152,14 +4152,14 @@ "automation.auto_traceroute.filter_by_hops": "", "meshcore.send": "", "settings.analytics_custom_script_description": "", - "dashboard.widget.hop_distribution.longest_path": "", + "dashboard.widget.hop_distribution.longest_path": "Макс прыжки", "source.form.error_save_failed": "Ошибка сохранения", "unified.messages.empty_channel": "Пока нет сообщений в этом канале.", "unified.messages.source_filter_aria": "Фильтр источников", "dashboard.widget.distance_distribution.miles": "", "meshcore.contacts": "", "unified.messages.heard_by_count": "услышано {{count}}", - "settings.analytics_custom_script_label": "", + "settings.analytics_custom_script_label": "Пользовательский скрипт", "meshcore.port": "", "auto_responder.cooldown_badge": "", "settings.apprise_server_section": "Apprise API сервер", @@ -4181,5 +4181,6 @@ "source.node_activity_title": "{{active}} из {{total}} узлов слышимые за последние 2 часа", "packet_monitor.filter.transport_internal": "Только внутреннее", "packet_monitor.filter.all_transports": "Все протоколы", - "packet_monitor.filter.transport_tooltip": "Фильтр по протоколу (firmware >= 2.7.x)" + "packet_monitor.filter.transport_tooltip": "Фильтр по протоколу (firmware >= 2.7.x)", + "source.permission_restricted": "ограничено" } From 0cdfd74c18c883cc4c7f301bfa4f19842a08e474 Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Tue, 26 May 2026 13:16:30 +0200 Subject: [PATCH 41/46] Translated using Weblate (Russian) Currently translated at 97.4% (4164 of 4275 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 45 +++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 8ed71a7b5..8e470bc75 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3805,7 +3805,7 @@ "settings.analytics_site_id_description": "", "automation.auto_ping.timeout": "Таймаут пинга (секунды)", "automation.auto_traceroute.last_heard_within": "", - "automation.distance_delete.interval_hours": "", + "automation.distance_delete.interval_hours": "{{count}} часов", "automation.auto_ping.timeout_description": "Как долго нужно ждать ответа, прежде чем пометить пинг как прерванный по таймауту", "settings.analytics_script_url_description": "URL вашего скрипта отслеживания Umami", "firmware.wizard_verify_title": "", @@ -3814,12 +3814,12 @@ "unified.messages.modal.request_id": "Запрос ID", "direct_links.bidirectional": "", "source.connect_help": "", - "automation.ignored_nodes.col_ignored_at": "", + "automation.ignored_nodes.col_ignored_at": "Пропущено", "firmware.retry_flash": "", "unified.messages.all_sources": "Все источники", "automation.distance_delete.no_log_entries": "", "unified.messages.hop_start_only": "начало {{value}}", - "info.virtual_node_admin_blocked": "", + "info.virtual_node_admin_blocked": "Заблокированный", "source.sidebar.close_sources": "Закрыть источник", "channel_database.toast_export_failed": "", "info.virtual_node_admin_commands": "", @@ -3828,7 +3828,7 @@ "settings.analytics_api_host_description": "", "automation.distance_delete.nodes_deleted": "", "meshcore.frequency": "", - "source.kebab.delete": "", + "source.kebab.delete": "Удалить", "automation.distance_delete.timestamp": "", "automation.distance_delete.longitude": "Долгота", "meshcore.public_key": "", @@ -3856,7 +3856,7 @@ "network_config.rsyslog_server_description": "", "automation.auto_ping.failed": "Неудачно", "automation.auto_heap.threshold_hint": "Запустить очистку, если узел сообщает о наличии менее указанного объема свободной памяти.", - "automation.auto_traceroute.min_hops": "", + "automation.auto_traceroute.min_hops": "Мин.:", "map": { "showPositionHistory": "Показать историю перемещения", "showMeshCore": "Показать MeshCore", @@ -3886,15 +3886,15 @@ "settings.analytics_provider_posthog": "PоstHog", "unified.telemetry.age_seconds": "{{count}}с назад", "unified.messages.subtitle_none": "Выберите канал", - "source.connect": "", + "source.connect": "Соединить", "source.sidebar.unified_messages": "💬 Единые сообщения", - "source.connecting": "", + "source.connecting": "Подключение…", "packet_monitor.today": "Сегодня", "security.key_mismatch_status_fixed": "Исправлено", "firmware.no_backups": "Резервные настройки не найдены.", "unified.telemetry.loading": "Загрузка телеметрии…", "automation.auto_ping.stop_failed": "Не удалось остановить сеанс пинговвания", - "automation.auto_key_management.log_old_key": "", + "automation.auto_key_management.log_old_key": "Старый ключ", "settings.analytics_api_key_label": "Ключ API", "unified.messages.modal.col_heard": "Слышал(а)", "meshcore.connecting": "", @@ -3921,14 +3921,14 @@ "dashboard.widget.distance_distribution.description": "", "unified.messages.history_start": "Начало истории.", "meshcore.refresh": "", - "automation.distance_delete.threshold": "", + "automation.distance_delete.threshold": "Порог расстояния", "automation.auto_ping.successful": "Выполнено", "unified.telemetry.empty_filters": "Ни один узел не соответствует текущим фильтрам.", "firmware.wizard_backup_title": "Настройки backup", "meshcore.admin_password": "", "automation.auto_heap.saved": "Настройки автоматического управления узлами сохранены", "settings.analytics_website_id_label": "Сайт ID", - "info.virtual_node_admin_allowed": "", + "info.virtual_node_admin_allowed": "Разрешено", "automation.auto_traceroute.filter_by_last_heard": "", "dashboard.widget.distance_distribution.max_distance": "", "settings.analytics_api_key_description": "", @@ -3948,7 +3948,7 @@ "security.unknown": "Неизвестный", "unified.messages.failed_messages": "Не удалось загрузить сообщения.", "meshcore.remote_admin": "", - "automation.distance_delete.activity_log": "", + "automation.distance_delete.activity_log": "Журнал активности", "firmware.matched_file": "Выбирите прошивку", "source.form.name": "Имя", "unified.messages.date_yesterday": "Вчера", @@ -3981,7 +3981,7 @@ "dashboard.widget.distance_distribution.settings": "", "direct_links.last_seen": "Был(а):", "dashboard.widget.distance_distribution.bucket_size": "", - "automation.distance_delete.run_now": "", + "automation.distance_delete.run_now": "Запустить сейчас", "unified.messages.modal.col_snr": "SNR", "automation.distance_delete.title": "", "firmware.wizard_download_title": "Скачать прошивку", @@ -3992,7 +3992,7 @@ "dashboard.widget.hop_distance_heatmap.distance_axis": "", "automation.auto_ping.title": "Авто пинг", "security.offset_ahead": "{{value}} вперед", - "automation.auto_traceroute.hours": "", + "automation.auto_traceroute.hours": "час(ов)", "automation.auto_ping.interval_description": "Время между каждым пингом в рамках сессии", "source.form.allow_admin_commands": "Разрешить команды администрирования", "settings.overlay_scheme_dark": "Тёмный режим (яркие наложения)", @@ -4014,13 +4014,13 @@ "source.edit": "Редактировать Источник", "source.sidebar.github": "GitHub", "unified.messages.loading": "Загрузка сообщений…", - "source.kebab.disconnect": "", + "source.kebab.disconnect": "Отключить", "source.sidebar.website": "Сайт", "source.sidebar.users": "Пользователи", "unified.messages.date_today": "Сегодня", "unified.messages.modal.col_source": "Источник", "auto_responder.cooldown_help": "", - "automation.auto_traceroute.max_hops": "", + "automation.auto_traceroute.max_hops": "Макс:", "automation.auto_ping.max_pings_description": "Максимальное количество запросов , которые пользователь может отправить за одну сессию", "dashboard.widget.hop_distribution.description": "", "automation.distance_delete.description": "", @@ -4044,7 +4044,7 @@ "source.add": "Добавить сервер", "source.open": "Открыть →", "automation.distance_delete.latitude": "Широта", - "automation.distance_delete.running": "", + "automation.distance_delete.running": "Запущен...", "dashboard.widget.hop_distribution.total_nodes": "Всего узлов", "automation.auto_ping.max_pings": "Максимальное количество пингов за сессию", "meshcore.device_type.room_server": "", @@ -4118,7 +4118,7 @@ "automation.auto_ping.description": "При включении этой функции пользователи сети могут отправить личное сообщение с командой \"ping N\", чтобы запустить N автоматических пингов в ответ, или команду \"ping stop\", чтобы отменить активную сессию.", "automation.auto_heap.threshold_label": "Порог свободного пространства (KB)", "source.virtual_node_badge_title": "Виртуальный узел", - "dashboard.widget.hop_distance_heatmap.more": "", + "dashboard.widget.hop_distance_heatmap.more": "Больше", "settings.analytics_measurement_id_label": "Измерение ID", "direct_links.neighbor_connection": "", "automation.auto_ping.requested_by": "Запрошено", @@ -4182,5 +4182,14 @@ "packet_monitor.filter.transport_internal": "Только внутреннее", "packet_monitor.filter.all_transports": "Все протоколы", "packet_monitor.filter.transport_tooltip": "Фильтр по протоколу (firmware >= 2.7.x)", - "source.permission_restricted": "ограничено" + "source.permission_restricted": "ограничено", + "meshcore.contact_details.position": "Позиция", + "meshcore.contact_details.hops_away": "Прыжков до узла", + "meshcore.config.telemetry_mode.always": "Всегда", + "dashboard.widget.more.title": "Ещё...", + "dashboard.telemetry_help.back": "Назад", + "channel_database.import_from_url": "Импорт из URL", + "channel_database.decode_url": "Декодировать URL", + "channel_database.role_secondary": "Вторичный", + "channel_database.role_disabled": "Отключено" } From c1f50cd262f83178a16ac78b76283c2844d73dde Mon Sep 17 00:00:00 2001 From: LibreTranslate Date: Tue, 26 May 2026 11:24:47 +0200 Subject: [PATCH 42/46] Translated using Weblate (Russian) Currently translated at 97.4% (4164 of 4275 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 8e470bc75..e95f3fa6a 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -2712,7 +2712,7 @@ "theme_gallery.category_high_contrast": "Высокая контрастность", "device_config.button_gpio": "Кнопка GPIO", "telemetry.show_solar": "Показать солнечные накладки", - "settings.solar_fetch_description": "", + "settings.solar_fetch_description": "Ручной запуск солнечной оценки из Прогноза. Солнечная. Оценки автоматически загружаются каждый час в :05 в течение часа.", "admin_commands.mqtt_config_loaded": "Настройка MQTT успешно загружена", "automation.auto_traceroute.target_selection": "Выбор цели", "cannedmsg_config.enabled": "Включить шаблонные сообщения", From cca0864abbd0f6009e1ac939f16bca15e33d4f1e Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Tue, 26 May 2026 13:18:44 +0200 Subject: [PATCH 43/46] Translated using Weblate (Russian) Currently translated at 97.4% (4164 of 4275 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 169 +++++++++++++++++++++++++---------------- 1 file changed, 102 insertions(+), 67 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index e95f3fa6a..1affa793f 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -1604,7 +1604,7 @@ "extnotif_config.enabled_description": "Включить внешние средства оповещения (светодиоды, вибрация, зуммер)", "auto_upgrade_test.status_cleanup": "Очистка старых имиджей", "notifications.ios_step_add": "Прокрутите вниз и нажмите «Добавить на главный экран»", - "detectionsensor_config.state_broadcast_secs": "", + "detectionsensor_config.state_broadcast_secs": "Интервал широковещания состояния (секунды)", "admin_commands.optional": "Необязательно", "admin_commands.position_flags_description": "Выберите, какие необязательные поля следует включить в сообщения POSITION. Больше полей = более объемные сообщения = больше эфирного времени", "automation.auto_announce.settings_saved_schedule": "Настройки сохранены! Изменения в расписании применены немедленно.", @@ -1894,7 +1894,7 @@ "backup_management.auto_description": "Автоматическое создание резервных копий ежедневно в указанное время. Резервные копии сохраняются в файловой системе сервера и могут быть загружены или восстановлены позже.", "network_config.wifi_enabled": "Wi-Fi включен", "settings.confirm_purge_nodes_impact": "Влияние:", - "extnotif_config.active_high_description": "", + "extnotif_config.active_high_description": "Включить для активных высокого уровня выходов, отключить для активных низкого уровня", "notifications.config_saved": "Настройки сохранены", "theme_editor.visual_editor": "Визуальный редактор", "info.disk_free_root": "Свободное место (/):", @@ -2291,7 +2291,7 @@ "auto_responder.direct_messages": "Прямые сообщения", "auto_upgrade_test.config_test_description": "Проверяет переменные среды, права доступа к файлам, вспомогательный контейнер обновления и многое другое.", "theme_gallery.preview": "Просмотр", - "serial_config.echo_description": "", + "serial_config.echo_description": "Отправлять принятые символы обратно отправителю", "cannedmsg_config.advanced_settings": "Расширенные настройки", "power_config.shutdown_on_battery": "Время выключения от батареи (секунды)", "node_details.role": "Роль", @@ -2491,7 +2491,7 @@ "automation.auto_announce.schedule_description": "Настройте расписание объявлений с помощью cron-выражения", "auto_responder.test_patterns_description": "Проверьте свои шаблоны срабатывания с помощью примеров сообщений. Вводите по одному сообщению на строку, чтобы увидеть, какие шаблоны совпадают и какие параметры извлекаются. Зеленый цвет = соответствует триггеру, красный = не соответствует. Сопоставление в реальном времени обновляется по мере ввода.", "automation.auto_ack.tapback_with_hop_count": "Ответ со счетчиком прыжков", - "detectionsensor_config.use_pullup_description": "", + "detectionsensor_config.use_pullup_description": "Включить внутренний подтягивающий резистор на выводе мониторинга", "auto_responder.legend": "Легенда:", "automation.auto_traceroute.log_status": "Статус", "automation.auto_traceroute.specific_nodes": "Определённые узлы", @@ -3796,15 +3796,15 @@ "security.offset_behind": "{{value}} назад", "unified.telemetry.all_sources": "Все источники", "source.kebab.enable": "Включить", - "channel_database.toast_export_success": "", + "channel_database.toast_export_success": "Экспортировано {{count}} канал(ов) в JSON-файл", "automation.auto_ack.cooldown_description": "После ответа на узел игнорировать дальнейшие триггеры от этого узла в течение указанного времени. Предотвращает злоупотребления со стороны узлов, спамящих триггерные слова.", "unified.telemetry.search_aria": "Поиск узлов", "automation.distance_delete.action_ignore": "Игнорировать узел", - "dashboard.widget.hop_distance_heatmap.no_data": "", - "channel_database.export_title": "", - "settings.analytics_site_id_description": "", + "dashboard.widget.hop_distance_heatmap.no_data": "Отсутствуют узлы, содержащие одновременно данные о количестве переходов и GPS-координатах.", + "channel_database.export_title": "Скачать все каналы в формате JSON", + "settings.analytics_site_id_description": "Ваш Matomo сайт ID", "automation.auto_ping.timeout": "Таймаут пинга (секунды)", - "automation.auto_traceroute.last_heard_within": "", + "automation.auto_traceroute.last_heard_within": "Только узлы, обнаруженные в пределах", "automation.distance_delete.interval_hours": "{{count}} часов", "automation.auto_ping.timeout_description": "Как долго нужно ждать ответа, прежде чем пометить пинг как прерванный по таймауту", "settings.analytics_script_url_description": "URL вашего скрипта отслеживания Umami", @@ -3813,7 +3813,7 @@ "source.form.error_vn_port_range": "Порт виртуального узла должен быть 1–65535", "unified.messages.modal.request_id": "Запрос ID", "direct_links.bidirectional": "", - "source.connect_help": "", + "source.connect_help": "Подключитесь к этому источнику вручную. Автоматическое подключение отключено, поэтому этот источник не переподключится самостоятельно.", "automation.ignored_nodes.col_ignored_at": "Пропущено", "firmware.retry_flash": "", "unified.messages.all_sources": "Все источники", @@ -3821,15 +3821,15 @@ "unified.messages.hop_start_only": "начало {{value}}", "info.virtual_node_admin_blocked": "Заблокированный", "source.sidebar.close_sources": "Закрыть источник", - "channel_database.toast_export_failed": "", - "info.virtual_node_admin_commands": "", - "automation.auto_key_management.action_mismatch": "", + "channel_database.toast_export_failed": "Не удалось экспортировать каналы", + "info.virtual_node_admin_commands": "Команды администрирования:", + "automation.auto_key_management.action_mismatch": "Несоответствие", "unified.telemetry.node_count_other": "{{count}} узлы", - "settings.analytics_api_host_description": "", + "settings.analytics_api_host_description": "PostHоg instance URL (e.g. https://app.posthog.com)", "automation.distance_delete.nodes_deleted": "", "meshcore.frequency": "", "source.kebab.delete": "Удалить", - "automation.distance_delete.timestamp": "", + "automation.distance_delete.timestamp": "Время", "automation.distance_delete.longitude": "Долгота", "meshcore.public_key": "", "meshcore.target_key_placeholder": "", @@ -3840,10 +3840,10 @@ "security.key_mismatch_new_key": "Новый ключ", "security.offset_minutes_other": "{{count}} минуты", "firmware.retry_flash_unavailable": "Повторная попытка невозможна: файлы прошивки больше недоступны. Пожалуйста, начните новое обновление.", - "automation.distance_delete.use_node_position": "", - "channel_database.toast_export_empty": "", + "automation.distance_delete.use_node_position": "Использовать текущую позицию узла", + "channel_database.toast_export_empty": "Нет каналов для экспорта", "unified.messages.hop_direct": "прямой", - "automation.auto_key_management.immediate_purge_description": "", + "automation.auto_key_management.immediate_purge_description": "Если узел транслирует ключ, отличный от того, который кэширован на вашем устройстве, немедленно удалите его из базы данных устройства для запуска повторного обнаружения. Если эта функция отключена, используется стандартный цикл «обмен — очистка».", "meshcore.battery": "", "unified.no_text": "(нет текста)", "automation.distance_delete.action": "Действия для узлов, превысивших пороговое значение", @@ -3853,7 +3853,7 @@ "unified.close": "Закрыть", "unified.messages.sign_in_required": "Войдите, чтобы просмотреть сообщения.", "unified.messages.title": "Единые сообщения", - "network_config.rsyslog_server_description": "", + "network_config.rsyslog_server_description": "Адрес удаленного syslog-сервера (например, 192.168.1.100:514). Оставьте поле пустым для отключения.", "automation.auto_ping.failed": "Неудачно", "automation.auto_heap.threshold_hint": "Запустить очистку, если узел сообщает о наличии менее указанного объема свободной памяти.", "automation.auto_traceroute.min_hops": "Мин.:", @@ -3865,14 +3865,14 @@ "showNeighborInfo": "Показать инфо о соседях", "showTraceroute": "Показать маршруты", "showPolarGrid": "Показать полярную сетку", - "polarGridDisabledTooltip": "", + "polarGridDisabledTooltip": "Требуется собственная позиция узла", "showAnimations": "Показать анимацию", "showEstimatedPositions": "Показать предполагаеме местоположение", "showAccuracyRegions": "Показать области погрешности", "showUdp": "Показать UDP", "showRf": "Показать RF" }, - "settings.analytics_measurement_id_description": "", + "settings.analytics_measurement_id_description": "Ваш GA4 Measurement ID (e.g. G-XXXXXXXXXX)", "meshcore.admin_password_placeholder": "", "source.form.error_port_range": "Порт должен быть 1–65535", "settings.analytics_script_url_label": "Скрипт URL", @@ -3880,8 +3880,8 @@ "source.form.error_host_required": "Хост обязателен", "source.sidebar.news": "Новости", "admin.back_to_dashboard": "← Назад на панель управления", - "dashboard.widget.hop_distance_heatmap.title": "", - "automation.distance_delete.home_coordinate": "", + "dashboard.widget.hop_distance_heatmap.title": "Тепловая карта «Прыжок — Расстояние»", + "automation.distance_delete.home_coordinate": "Домашние координаты", "settings.analytics_site_url_label": "Mаtomo URL", "settings.analytics_provider_posthog": "PоstHog", "unified.telemetry.age_seconds": "{{count}}с назад", @@ -3899,16 +3899,16 @@ "unified.messages.modal.col_heard": "Слышал(а)", "meshcore.connecting": "", "security.offset_seconds_other": "{{count}} секунды", - "auto_responder.cooldown_description": "", + "auto_responder.cooldown_description": "После того как этот триггер сработает на узле, игнорировать дальнейшие совпадения с этого узла в течение указанного интервала времени.", "unified.messages.no_channels": "Нет каналов", - "dashboard.widget.hop_distance_heatmap.description": "", + "dashboard.widget.hop_distance_heatmap.description": "Тепловая карта количества узлов в зависимости от числа переходов и расстояния от вашего узла", "unified.telemetry.age_hours": "{{count}}ч назад", "dashboard.widget.hop_distribution.title": "Распределение", "source.delete": "Удалить Источник", - "settings.analytics_custom_csp_label": "", + "settings.analytics_custom_csp_label": "Разрешенные домены CSP", "source.status_disabled": "Выключено", "automation.auto_heap.heap_status": "Текущее : {{kb}} KB свободно", - "settings.analytics_beacon_token_description": "", + "settings.analytics_beacon_token_description": "Ваш Cloudflare Web Analytics beacon token", "packet_monitor.filter.unknown_hop": "Неизвестный", "unified.telemetry.network_error": "Ошибка сети", "meshcore.device_type.companion": "", @@ -3918,7 +3918,7 @@ "source.form.host_placeholder": "192.168.0.100", "meshcore.rssi": "", "meshcore.no_messages": "", - "dashboard.widget.distance_distribution.description": "", + "dashboard.widget.distance_distribution.description": "Количество узлов, сгруппированных по расстоянию от вашего узла", "unified.messages.history_start": "Начало истории.", "meshcore.refresh": "", "automation.distance_delete.threshold": "Порог расстояния", @@ -3927,20 +3927,20 @@ "firmware.wizard_backup_title": "Настройки backup", "meshcore.admin_password": "", "automation.auto_heap.saved": "Настройки автоматического управления узлами сохранены", - "settings.analytics_website_id_label": "Сайт ID", + "settings.analytics_website_id_label": "Вебсайт ID", "info.virtual_node_admin_allowed": "Разрешено", - "automation.auto_traceroute.filter_by_last_heard": "", - "dashboard.widget.distance_distribution.max_distance": "", - "settings.analytics_api_key_description": "", + "automation.auto_traceroute.filter_by_last_heard": "Последний раз слышали", + "dashboard.widget.distance_distribution.max_distance": "Макс ({{unit}})", + "settings.analytics_api_key_description": "Ваш PostHog project API ключ (e.g. phc_...)", "firmware.wizard_confirm": "", - "automation.auto_key_management.immediate_purge": "", + "automation.auto_key_management.immediate_purge": "Немедленно очищать при несовпадении ключей", "automation.geofence_triggers.cooldown_display": "", "unified.telemetry.node_count_one": "{{count}} узел", "meshcore.messages": "", "unified.messages.modal.title": "Детали приема", "unified.telemetry.sort_newest": "Первые новые", "unified.telemetry.all_types": "Все типы", - "dashboard.widget.distance_distribution.no_gps": "", + "dashboard.widget.distance_distribution.no_gps": "Нет GPS", "unified.telemetry.empty_range": "В выбранном временном диапазоне данные телеметрии не найдены.", "meshcore.login_status": "", "meshcore.snr": "", @@ -3957,16 +3957,16 @@ "packet_monitor.column.date": "Дата", "unified.messages.channel_aria": "Канал", "source.kebab.edit": "Правка", - "dashboard.widget.distance_distribution.avg_distance": "", + "dashboard.widget.distance_distribution.avg_distance": "Срдн ({{unit}})", "settings.analytics_provider_ga4": "Google аналитика (GA4)", "meshcore.nodes": "", - "dashboard.widget.distance_distribution.with_position": "", + "dashboard.widget.distance_distribution.with_position": "С GPS", "automation.auto_ping.dm_start_help": "- Запустить 5 пингов с заданным интервалом", "security.key_mismatch_empty": "Событий, связанных с несоответствием ключей, не обнаружено", "unified.telemetry.subtitle": "Последние данные · все источники", "meshcore.broadcast": "", "meshcore.tx_power": "", - "settings.analytics_custom_csp_description": "", + "settings.analytics_custom_csp_description": "Список доменов, разделенных пробелами или запятыми, разрешенных в Content Security Policy (например, https://analytics.example.com)", "automation.auto_ping.session_stopped": "Сеанс пинга остановлен", "automation.auto_ack.node_ignore_list": "Список игнорируемых узлов", "unified.telemetry.title": "Единая телеметрия", @@ -3974,22 +3974,22 @@ "unified.telemetry.search_placeholder": "Поиск узлов…", "unified.messages.failed_channels": "Не удалось загрузить каналы.", "source.delete_confirm": "Вы уверены, что хотите удалить этот источник? Это удалит источник и все его данные.", - "dashboard.widget.distance_distribution.no_home_position": "", + "dashboard.widget.distance_distribution.no_home_position": "У вашего узла отсутствуют данные о GPS-позиции.", "firmware.ota_bootloader_learn_more": "Посмотреть подробности", "source.form.heartbeat_help": "Периодически отправляет на узел сигнал подтверждения соединения. Для узлов с параметром CLIENT_MUTE или других малоактивных узлов, получающих небольшой трафик в сети, попробуйте значение 30–60 секунд, в противном случае оставьте значение 0.", "source.kebab.disable": "Выключить", - "dashboard.widget.distance_distribution.settings": "", - "direct_links.last_seen": "Был(а):", - "dashboard.widget.distance_distribution.bucket_size": "", + "dashboard.widget.distance_distribution.settings": "Настройки размера сегмента", + "direct_links.last_seen": "Был(а)", + "dashboard.widget.distance_distribution.bucket_size": "Размер сегмента", "automation.distance_delete.run_now": "Запустить сейчас", "unified.messages.modal.col_snr": "SNR", - "automation.distance_delete.title": "", + "automation.distance_delete.title": "Автоудаление по расстоянию", "firmware.wizard_download_title": "Скачать прошивку", "auto_responder.channel_none": "", "meshcore.last_heard": "", "dashboard.widget.hop_distribution.hops_other": "{{count}} прыжки", "meshcore.connect": "", - "dashboard.widget.hop_distance_heatmap.distance_axis": "", + "dashboard.widget.hop_distance_heatmap.distance_axis": "Расстояние ({{unit}})", "automation.auto_ping.title": "Авто пинг", "security.offset_ahead": "{{value}} вперед", "automation.auto_traceroute.hours": "час(ов)", @@ -4010,7 +4010,7 @@ "meshcore.disconnect": "", "source.sidebar.unified_telemetry": "📡 Единая телеметрия", "unified.messages.hop_count_one": "{{count}} прыжок", - "dashboard.widget.hop_distance_heatmap.hops_axis": "", + "dashboard.widget.hop_distance_heatmap.hops_axis": "Узлы", "source.edit": "Редактировать Источник", "source.sidebar.github": "GitHub", "unified.messages.loading": "Загрузка сообщений…", @@ -4019,15 +4019,15 @@ "source.sidebar.users": "Пользователи", "unified.messages.date_today": "Сегодня", "unified.messages.modal.col_source": "Источник", - "auto_responder.cooldown_help": "", + "auto_responder.cooldown_help": "секунд на узел (0 = отключено)", "automation.auto_traceroute.max_hops": "Макс:", "automation.auto_ping.max_pings_description": "Максимальное количество запросов , которые пользователь может отправить за одну сессию", - "dashboard.widget.hop_distribution.description": "", - "automation.distance_delete.description": "", - "dashboard.widget.distance_distribution.no_position_data": "", + "dashboard.widget.hop_distribution.description": "Количество узлов, сгруппированное по расстоянию (в прыжках) от вашего узла", + "automation.distance_delete.description": "Автоматически удалять узлы, находящиеся на расстоянии, превышающем заданное, от «домашней» координаты. Полезно для очистки от удаленных узлов, внедренных авиационными ретрансляторами.", + "dashboard.widget.distance_distribution.no_position_data": "Ни у каких других узлов нет данных о GPS-позиции.", "meshcore.unknown": "", "unified.messages.hop_limit_only": "лимит {{value}}", - "dashboard.widget.hop_distance_heatmap.fewer": "", + "dashboard.widget.hop_distance_heatmap.fewer": "Меньше", "source.form.enable_virtual_node": "Включить виртуальный узел", "unified.messages.subtitle_channel": "#{{channel}} · по всем доступным источникам", "firmware.reboot_warning": "В ходе обновления узел перезагрузится и на короткое время станет недоступен.", @@ -4050,15 +4050,15 @@ "meshcore.device_type.room_server": "", "source.form.error_heartbeat_range": "Heartbeat должен быть равен 0 (отключено) или 1–3600 секундам", "security.offset_days_one": "{{count}} день", - "automation.distance_delete.run_result": "", - "automation.geofence_triggers.clear_shape": "", + "automation.distance_delete.run_result": "Удалено {{count}} узел(ов)", + "automation.geofence_triggers.clear_shape": "Очистить форму", "automation.distance_delete.protected_note": "", "source.form.heartbeat": "Сердцебиение (секунды, 0 = выкл)", "source.form.auto_connect": "Автоматическое подключение при запуске", "source.form.virtual_node_port": "Порт виртуального узла", "firmware.backups_title": "", "unified.telemetry.age_minutes": "{{count}}м назад", - "automation.distance_delete.interval": "", + "automation.distance_delete.interval": "Интервал проверки", "security.offset_hours_other": "{{count}} часы", "security.key_mismatch_status": "Состояние", "unified.messages.modal.col_rssi": "RSSI", @@ -4066,16 +4066,16 @@ "meshcore.radio": "", "automation.auto_ping.interval": "Интервал пинга (секунды)", "automation.auto_heap.save_error": "Настройки не сохранены", - "automation.auto_key_management.log_new_key": "", + "automation.auto_key_management.log_new_key": "Новый Ключ", "settings.analytics_provider_plausible": "Plаusible", "dashboard.widget.hop_distribution.hops_one": "{{count}} прыжок", - "settings.analytics_site_url_description": "", + "settings.analytics_site_url_description": "Ваш Matomo instance URL (e.g. https://matomo.example.com)", "firmware.downgrade_warning": "Внимание: понижение версии прошивки может привести к проблемам совместимости.", "unified.telemetry.sort_name_asc": "Имя (A→Z)", "source.topbar.sign_in": "🔒 Вход", "unified.telemetry.sort_aria": "Сортировать узлы", "map.legend.links": "Ссылки:", - "dashboard.widget.hop_distance_heatmap.skipped": "", + "dashboard.widget.hop_distance_heatmap.skipped": "{{count}} узлов исключено (отсутствуют прыжки или GPS)", "automation.auto_ping.dm_stop_help": "- Отменить активную сессию пинга", "security.offset_seconds_one": "{{count}} секунд", "source.topbar.logo_alt": "MeshMonitor лого", @@ -4086,7 +4086,7 @@ "settings.custom_tileset_overlay_scheme": "Цвета слоев карты", "settings.local_stats_interval_description": "Как часто запрашивать локальную статистику у подключенного узла (0 = отключено, по умолчанию: 15). Меньшие значения увеличивают нагрузку на узел.", "direct_links.distance": "", - "automation.auto_ack.cooldown_help": "", + "automation.auto_ack.cooldown_help": "секунды (0 = выкл)", "source.sidebar.map_analysis": "🗺️ Анализ карты", "automation.distance_delete.threshold_used": "", "source.form.tcp_port": "TCP порт", @@ -4096,22 +4096,22 @@ "firmware.wizard_cancel": "Отмена обновления", "firmware.save_channel": "Сохранить", "settings.analytics_website_id_description": "Ваш Umami сайт ID", - "dashboard.widget.distance_distribution.km": "", + "dashboard.widget.distance_distribution.km": "км", "source.header": "Источники", "source.node_count": "{{count}} узлы", "settings.analytics_domain_label": "Домен", "map.legend.route": "Мaршрут", - "dashboard.widget.distance_distribution.title": "", + "dashboard.widget.distance_distribution.title": "Распределение расстояний", "unified.messages.refresh": "Обновить", "source.form.virtual_node": "Виртуальный узел", "security.key_mismatch_resolved": "Решено", - "network_config.rsyslog_server": "", - "settings.analytics_beacon_token_label": "", + "network_config.rsyslog_server": "Rsyslog сервер", + "settings.analytics_beacon_token_label": "Beаcon Token", "firmware.ota_bootloader_warning": "Для обновления Wi-Fi по воздуху (OTA) требуется однократная прошивка загрузчика через USB. Если это ваше первое обновление по воздуху, убедитесь, что загрузчик установлен.", "source.sidebar.settings": "Настройки", "source.options": "Параметры источника", "security.key_mismatch_detected": "Обнаружено", - "automation.distance_delete.enabled": "", + "automation.distance_delete.enabled": "Включить автоудаление по расстоянию", "meshcore.device_type.unknown": "", "security.key_mismatch_title": "Несоответствие ключа", "source.status_idle": "", @@ -4126,7 +4126,7 @@ "settings.analytics_api_host_label": "API Хост", "settings.local_stats_interval_label": "Интервал сбора локальной статистики (минуты)", "dashboard.widget.hop_distribution.unknown": "Неизвестный", - "automation.geofence_triggers.cooldown_help": "", + "automation.geofence_triggers.cooldown_help": "Минимальное время между срабатываниями для каждого узла. 0 = нет задержки.", "automation.auto_ping.dm_commands": "Команды прямых сообщений", "automation.auto_ack.cooldown_label": "Время ожидания для каждого узла (в секундах)", "firmware.channel": "Канал обновлений", @@ -4149,18 +4149,18 @@ "unified.messages.choose_channel": "Выберите канал, чтобы начать.", "source.add_short": "+ Добавить", "automation.auto_ack.node_ignore_list_description": "Не подтверждать автоматически сообщения от этих ID узлов. Вводите по одному ID на строку или через запятую, используя формат !xxxxxxxx.", - "automation.auto_traceroute.filter_by_hops": "", + "automation.auto_traceroute.filter_by_hops": "Диапазон прыжков", "meshcore.send": "", - "settings.analytics_custom_script_description": "", + "settings.analytics_custom_script_description": "Вставьте полный от вашего провайдера аналитики", "dashboard.widget.hop_distribution.longest_path": "Макс прыжки", "source.form.error_save_failed": "Ошибка сохранения", "unified.messages.empty_channel": "Пока нет сообщений в этом канале.", "unified.messages.source_filter_aria": "Фильтр источников", - "dashboard.widget.distance_distribution.miles": "", + "dashboard.widget.distance_distribution.miles": "ми", "meshcore.contacts": "", "unified.messages.heard_by_count": "услышано {{count}}", "settings.analytics_custom_script_label": "Пользовательский скрипт", - "meshcore.port": "", + "meshcore.port": "Порт", "auto_responder.cooldown_badge": "", "settings.apprise_server_section": "Apprise API сервер", "settings.apprise_server_description": "MeshMonitor доставляет уведомления Apprise через сервер API Apprise, который, в свою очередь, рассылает их по URL-адресам служб уведомлений для каждого пользователя (Discord, электронная почта и т. д.), настроенным в другом месте. Если вы запускаете программу вне встроенного контейнера, переопределите местоположение сервера, указанное ниже.", @@ -4191,5 +4191,40 @@ "channel_database.import_from_url": "Импорт из URL", "channel_database.decode_url": "Декодировать URL", "channel_database.role_secondary": "Вторичный", - "channel_database.role_disabled": "Отключено" + "channel_database.role_disabled": "Отключен", + "source.prune_pending": "Обрезка…", + "source.publishers_all_connected": "{{count}} шлюзов", + "source.publishers_all_connected_one": "{{count}} шлюз", + "source.publishers_partial": "{{connected}}/{{total}} шлюзы", + "source.node_activity": "{{active}}/{{total}} активно", + "dashboard.widget.more.description": "Как добавить виджеты телеметрии (температура, влажность, заряд батареи и т. д.)", + "dashboard.telemetry_help.title": "Добавление виджетов телеметрии", + "dashboard.telemetry_help.intro": "Виджеты телеметрии (температура, влажность, заряд батареи и т. д.) добавляются на странице подробной информации об узле:", + "dashboard.telemetry_help.step1": "Нажмите на узел на карте", + "dashboard.telemetry_help.step2": "Нажмите «Подробнее» внизу", + "dashboard.telemetry_help.step3": "Прокрутите вниз до раздела «Данные телеметрии»", + "dashboard.telemetry_help.step4": "Нажмите на значок звезды ⭐ рядом с метрикой, которую вы хотите закрепить на дашборде", + "users.connection_view_status": "Посмотреть статус", + "users.connection_control_device": "Управлять устройством", + "admin_commands.router_mode_warning_title": "Режим роутера", + "admin_commands.router_mode_warning": "Это устройство всегда будет ретранслировать пакеты. Режим «Роутер» следует резервировать для инфраструктурных узлов, имеющих стабильное электропитание и оптимальное размещение антенн; включение этого режима на обычном клиентском устройстве лишь создает помехи в сети.", + "channel_database.import_from_url_title": "Вставьте URL-адрес канала Meshtastic и добавьте его каналы в базу данных", + "channel_database.import_from_url_description": "Вставьте URL-адрес канала Meshtastic (https://meshtastic.org/e/#...). MeshMonitor декодирует каналы и позволяет выбрать, какие из них добавить в качестве виртуальных каналов — с их ключами и именами.", + "channel_database.imported_from_url_description": "Импортировано из URL Meshtastic", + "channel_database.imported_channel_default_name": "Импортированный канал {{index}}", + "channel_database.url_label": "URL-адрес канала Meshtastic", + "channel_database.url_decoded_channels": "Декодировано {{count}} канал(ов) — выберите, какие импортировать:", + "channel_database.url_include_channel": "Включить {{name}}", + "channel_database.url_psk_summary": "PSK: {{bytes}}-byte ключ", + "channel_database.url_psk_no_crypto": "Нет шифрования — невозможно сохранить", + "channel_database.url_add_selected": "Добавить {{count}} канал(ов)", + "channel_database.role_primary": "Первичный", + "channel_database.role_unknown": "Неизвестная роль", + "channel_database.toast_url_required": "Вставьте URL-адрес Meshtastic для декодирования", + "channel_database.toast_url_no_channels": "URL успешно декодирован, но не содержит каналов", + "channel_database.toast_url_decode_failed": "Не удалось декодировать URL Meshtastic", + "channel_database.toast_url_no_selection": "Выберите хотя бы один канал для импорта", + "channel_database.toast_url_import_success": "Импортировано {{count}} канал(ов) по URL", + "channel_database.toast_url_import_partial": "Импортировано: {{imported}}, не удалось импортировать: {{failed}}", + "channel_database.toast_url_import_all_skipped": "Нечего импортировать — все выбранные строки не содержат криптоданных" } From c52a2f0c0b529e7c40ae90ffc197d261bcdace9c Mon Sep 17 00:00:00 2001 From: Sergey Krashevich Date: Tue, 26 May 2026 13:11:06 +0200 Subject: [PATCH 44/46] Translated using Weblate (Russian) Currently translated at 97.4% (4164 of 4275 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 1affa793f..b7fe6e48c 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -1890,7 +1890,7 @@ "storeforward_config.history_return_window_description": "Временной интервал для истории сообщений (0 = значение по умолчанию)", "channels_config.preview": "Предварительный просмотр", "paxcounter_config.title": "Счетчик прохожих", - "gpio_summary.monitor_pin": "", + "gpio_summary.monitor_pin": "Monitor пин", "backup_management.auto_description": "Автоматическое создание резервных копий ежедневно в указанное время. Резервные копии сохраняются в файловой системе сервера и могут быть загружены или восстановлены позже.", "network_config.wifi_enabled": "Wi-Fi включен", "settings.confirm_purge_nodes_impact": "Влияние:", @@ -2415,7 +2415,7 @@ "cannedmsg_config.event_ccw": "Событие при вращении против часовой стрелки", "position_config.fixed_position": "Фиксированное положение", "power_config.light_sleep_description": "Продолжительность пребывания в легком сне (только для ESP32). По умолчанию: 300", - "detectionsensor_config.monitor_pin": "", + "detectionsensor_config.monitor_pin": "Monitor пин", "admin_commands.local_node_no_passkey": "✓ Местный узел - не требуется ключ шифрования", "telemetry_config.air_quality_enabled_description": "Включить сбор данных с датчиков качества воздуха", "theme_gallery.accessibility_info": "Информация о доступности", @@ -2800,7 +2800,7 @@ "remotehw_config.allow_undefined": "Разрешить доступ к неопределенным контактам", "cannedmsg_config.pin_a_description": "Контакт GPIO для входа A поворотного энкодера", "admin_commands.longitude": "Долгота", - "tileset_manager.test_matched_layers": "", + "tileset_manager.test_matched_layers": "Совпавшие слои", "theme_gallery.deuteranopia_desc": "При зеленоцветной слепоте(поражает примерно 1% мужчин)", "lora_config.use_preset": "Использовать предустановку", "users.username_label": "Имя пользователя", @@ -2928,7 +2928,7 @@ "audio_config.view_docs": "Просмотреть документацию по настройке звука", "export_config.uplink_enabled": "Uplink: включено", "backup_management.toast_settings_saved": "Настройки резервного копирования успешно сохранены", - "tileset_manager.test_missing_layers": "", + "tileset_manager.test_missing_layers": "Отсутствующие слои", "position_config.title": "Трансляция позиции", "lora_config.override_frequency": "Частота принудительного включения (МГц)", "info.rx_duplicate": "Дубликат RX:", From 62f79e3dd1777b5f17ae1d7133999f57825c8030 Mon Sep 17 00:00:00 2001 From: Weblate Translation Memory Date: Tue, 26 May 2026 13:18:50 +0200 Subject: [PATCH 45/46] Translated using Weblate (Russian) Currently translated at 97.4% (4164 of 4275 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index b7fe6e48c..5195ab9a1 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3897,7 +3897,7 @@ "automation.auto_key_management.log_old_key": "Старый ключ", "settings.analytics_api_key_label": "Ключ API", "unified.messages.modal.col_heard": "Слышал(а)", - "meshcore.connecting": "", + "meshcore.connecting": "Подключение...", "security.offset_seconds_other": "{{count}} секунды", "auto_responder.cooldown_description": "После того как этот триггер сработает на узле, игнорировать дальнейшие совпадения с этого узла в течение указанного интервала времени.", "unified.messages.no_channels": "Нет каналов", From b67bc5d241d2ea06438df107dc6dd8b247c548a2 Mon Sep 17 00:00:00 2001 From: Midnight Cowboy Date: Wed, 27 May 2026 21:28:23 +0200 Subject: [PATCH 46/46] Translated using Weblate (Russian) Currently translated at 96.6% (4164 of 4307 strings) Translation: MeshMonitor/meshmonitor Translate-URL: https://hosted.weblate.org/projects/meshmonitor/meshmonitor/ru/ --- public/locales/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/locales/ru.json b/public/locales/ru.json index 5195ab9a1..1c31787aa 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -3868,7 +3868,7 @@ "polarGridDisabledTooltip": "Требуется собственная позиция узла", "showAnimations": "Показать анимацию", "showEstimatedPositions": "Показать предполагаеме местоположение", - "showAccuracyRegions": "Показать области погрешности", + "showAccuracyRegions": "Показать радиус точности", "showUdp": "Показать UDP", "showRf": "Показать RF" },