612 lines
42 KiB
JSON
612 lines
42 KiB
JSON
{
|
||
"app": {
|
||
"name": "Reticulum MeshChatX",
|
||
"sync_messages": "Синхронизировать сообщения",
|
||
"compose": "Написать",
|
||
"messages": "Сообщения",
|
||
"nomad_network": "Nomad Network",
|
||
"map": "Карта",
|
||
"archives": "Архивы",
|
||
"propagation_nodes": "Узлы ретрансляции",
|
||
"network_visualiser": "Визуализатор сети",
|
||
"interfaces": "Интерфейсы",
|
||
"tools": "Инструменты",
|
||
"settings": "Настройки",
|
||
"about": "О программе",
|
||
"my_identity": "Моя личность",
|
||
"identity_hash": "Хеш личности",
|
||
"lxmf_address": "Адрес LXMF",
|
||
"announce": "Анонсировать",
|
||
"announce_now": "Анонсировать сейчас",
|
||
"last_announced": "Последний анонс: {time}",
|
||
"last_announced_never": "Последний анонс: Никогда",
|
||
"display_name_placeholder": "Отображаемое имя",
|
||
"profile": "Профиль",
|
||
"manage_identity": "Управляйте своей личностью, участием в транспорте и настройками LXMF по умолчанию.",
|
||
"theme": "Тема",
|
||
"theme_mode": "Режим {mode}",
|
||
"transport": "Транспорт",
|
||
"enabled": "Включено",
|
||
"disabled": "Выключено",
|
||
"propagation": "Ретрансляция",
|
||
"local_node_running": "Локальный узел запущен",
|
||
"client_only": "Только клиент",
|
||
"copy": "Копировать",
|
||
"appearance": "Внешний вид",
|
||
"appearance_description": "Переключайтесь между светлой и темной темами в любое время.",
|
||
"light_theme": "Светлая тема",
|
||
"dark_theme": "Темная тема",
|
||
"live_preview": "Предпросмотр обновляется мгновенно.",
|
||
"realtime": "Реальное время",
|
||
"transport_mode": "Режим транспорта",
|
||
"transport_description": "Ретранслируйте пути и трафик для ближайших узлов.",
|
||
"enable_transport_mode": "Включить режим транспорта",
|
||
"transport_toggle_description": "Маршрутизировать анонсы, отвечать на запросы путей и помогать вашей сети оставаться онлайн.",
|
||
"requires_restart": "Требуется перезапуск после переключения.",
|
||
"show_community_interfaces": "Показывать интерфейсы сообщества",
|
||
"community_interfaces_description": "Показывать предустановки, поддерживаемые сообществом, при добавлении новых интерфейсов.",
|
||
"reliability": "Надежность",
|
||
"messages_description": "Настройте, как MeshChat повторяет или эскалирует неудачные доставки. Контролируйте автоматический повтор, пересылку вложений и механизмы отката для обеспечения надежной доставки сообщений в сети mesh.",
|
||
"auto_resend_title": "Автоповтор при анонсе узла",
|
||
"auto_resend_description": "Неудачные сообщения будут автоматически отправлены повторно, как только получатель снова выйдет в сеть.",
|
||
"retry_attachments_title": "Разрешить повтор для вложений",
|
||
"retry_attachments_description": "Крупные вложения также будут отправлены повторно (полезно, если у обоих узлов высокие лимиты).",
|
||
"auto_fallback_title": "Автопереключение на узел ретрансляции",
|
||
"auto_fallback_description": "Неудачные прямые доставки будут поставлены в очередь на ваш предпочтительный узел ретрансляции.",
|
||
"inbound_stamp_cost": "Стоимость входящего штампа",
|
||
"inbound_stamp_description": "Требовать штампы Proof-of-Work для сообщений, отправляемых вам напрямую. Более высокие значения требуют больше вычислительной работы от отправителей. Диапазон: 1-254. По умолчанию: 8.",
|
||
"browse_nodes": "Список узлов",
|
||
"propagation_nodes_description": "Поддерживайте общение, даже когда узлы находятся в офлайне.",
|
||
"nodes_info_1": "Узлы ретрансляции надежно хранят сообщения до тех пор, пока получатели снова не синхронизируются.",
|
||
"nodes_info_2": "Узлы соединяются друг с другом для распространения зашифрованных данных.",
|
||
"nodes_info_3": "Большинство узлов хранят данные около 30 дней, после чего недоставленные сообщения удаляются.",
|
||
"run_local_node": "Запустить локальный узел ретрансляции",
|
||
"run_local_node_description": "MeshChat будет анонсировать и поддерживать узел, используя этот локальный хеш назначения.",
|
||
"preferred_propagation_node": "Предпочтительный узел ретрансляции",
|
||
"preferred_node_placeholder": "Хеш назначения, например a39610c89d18bb48c73e429582423c24",
|
||
"fallback_node_description": "Сообщения будут отправляться на этот узел, если прямая доставка не удалась.",
|
||
"auto_sync_interval": "Интервал автосинхронизации",
|
||
"last_synced": "Последняя синхронизация {time} назад.",
|
||
"last_synced_never": "Последняя синхронизация: никогда.",
|
||
"propagation_stamp_cost": "Стоимость штампа узла ретрансляции",
|
||
"propagation_stamp_description": "Требовать штампы Proof-of-Work для сообщений, передаваемых через ваш узел. Более высокие значения требуют больше вычислительной работы. Диапазон: 13-254. По умолчанию: 16. **Примечание:** изменение требует перезапуска приложения.",
|
||
"language": "Язык",
|
||
"select_language": "Выберите предпочтительный язык.",
|
||
"custom_fork_by": "Модифицированная версия от",
|
||
"open": "Открыть",
|
||
"identity": "Личность",
|
||
"lxmf_address_hash": "Хеш адреса LXMF",
|
||
"propagation_node_status": "Статус узла ретрансляции",
|
||
"last_sync": "Синхронизация: {time} назад",
|
||
"last_sync_never": "Синхронизация: никогда",
|
||
"syncing": "Синхронизация...",
|
||
"synced": "Синхронизировано",
|
||
"not_synced": "Не синхронизировано",
|
||
"not_configured": "Не настроено",
|
||
"toggle_source": "Исходный код",
|
||
"audio_calls": "Телефон",
|
||
"calls": "Звонки",
|
||
"status": "Статус",
|
||
"active_call": "Активный звонок",
|
||
"incoming": "Входящий",
|
||
"outgoing": "Исходящий",
|
||
"call": "Звонок",
|
||
"calls_plural": "Звонки",
|
||
"hop": "прыжок",
|
||
"hops_plural": "прыжков",
|
||
"hung_up_waiting": "Отключено, ожидание звонка...",
|
||
"view_incoming_calls": "Просмотр входящих звонков",
|
||
"hangup_all_calls": "Завершить все звонки",
|
||
"clear_history": "Очистить историю",
|
||
"no_active_calls": "Нет активных звонков",
|
||
"incoming_call": "Входящий звонок...",
|
||
"outgoing_call": "Исходящий звонок...",
|
||
"call_active": "Активен",
|
||
"call_ended": "Завершен",
|
||
"propagation_node": "Узел ретрансляции",
|
||
"sync_now": "Синхронизировать сейчас"
|
||
},
|
||
"common": {
|
||
"open": "Открыть",
|
||
"cancel": "Отмена",
|
||
"save": "Сохранить",
|
||
"delete": "Удалить",
|
||
"edit": "Изменить",
|
||
"add": "Добавить",
|
||
"sync": "Синхронизировать",
|
||
"restart_app": "Перезапустить приложение",
|
||
"reveal": "Показать",
|
||
"refresh": "Обновить",
|
||
"vacuum": "Сжать базу",
|
||
"auto_recover": "Автовосстановление"
|
||
},
|
||
"about": {
|
||
"title": "О программе",
|
||
"version": "v{version}",
|
||
"rns_version": "RNS {version}",
|
||
"lxmf_version": "LXMF {version}",
|
||
"python_version": "Python {version}",
|
||
"config_path": "Путь к конфигу",
|
||
"database_path": "Путь к базе данных",
|
||
"database_size": "Размер базы данных",
|
||
"database_health": "Состояние базы данных",
|
||
"database_health_description": "Быстрая проверка, настройка WAL и инструменты восстановления базы данных MeshChatX.",
|
||
"running_checks": "Выполнение проверок...",
|
||
"integrity": "Целостность",
|
||
"journal_mode": "Режим журнала",
|
||
"wal_autocheckpoint": "WAL авточекпоинт",
|
||
"page_size": "Размер страницы",
|
||
"pages_free": "Страницы / Свободно",
|
||
"free_space_estimate": "Оценка свободного места",
|
||
"system_resources": "Системные ресурсы",
|
||
"live": "Live",
|
||
"memory_rss": "Память (RSS)",
|
||
"virtual_memory": "Виртуальная память",
|
||
"network_stats": "Статистика сети",
|
||
"sent": "Отправлено",
|
||
"received": "Получено",
|
||
"packets_sent": "Пакетов отправлено",
|
||
"packets_received": "Пакетов получено",
|
||
"reticulum_stats": "Статистика Reticulum",
|
||
"total_paths": "Всего путей",
|
||
"announces_per_second": "Анонсов / сек",
|
||
"announces_per_minute": "Анонсов / мин",
|
||
"announces_per_hour": "Анонсов / час",
|
||
"download_activity": "Активность загрузки",
|
||
"no_downloads_yet": "Загрузок пока нет",
|
||
"runtime_status": "Статус выполнения",
|
||
"shared_instance": "Общий экземпляр",
|
||
"standalone_instance": "Автономный экземпляр",
|
||
"transport_enabled": "Транспорт включен",
|
||
"transport_disabled": "Транспорт выключен",
|
||
"identity_addresses": "Личность и адреса",
|
||
"telephone_address": "Адрес телефона"
|
||
},
|
||
"interfaces": {
|
||
"title": "Интерфейсы",
|
||
"manage": "Управление",
|
||
"description": "Поиск, фильтрация и экспорт ваших адаптеров Reticulum.",
|
||
"add_interface": "Добавить интерфейс",
|
||
"import": "Импорт",
|
||
"export_all": "Экспорт всех",
|
||
"search_placeholder": "Поиск по имени, типу, хосту...",
|
||
"all": "Все",
|
||
"all_types": "Все типы",
|
||
"no_interfaces_found": "Интерфейсы не найдены",
|
||
"no_interfaces_description": "Измените параметры поиска или добавьте новый интерфейс.",
|
||
"restart_required": "Требуется перезапуск",
|
||
"restart_description": "Reticulum MeshChat необходимо перезапустить, чтобы изменения вступили в силу.",
|
||
"restart_now": "Перезапустить сейчас"
|
||
},
|
||
"map": {
|
||
"title": "Карта",
|
||
"description": "Офлайн-карта с поддержкой MBTiles.",
|
||
"upload_mbtiles": "Загрузить MBTiles",
|
||
"select_file": "Выбрать файл MBTiles",
|
||
"offline_mode": "Офлайн-режим",
|
||
"online_mode": "Онлайн-режим",
|
||
"attribution": "Атрибуция",
|
||
"bounds": "Границы",
|
||
"center": "Центр",
|
||
"zoom": "Масштаб",
|
||
"uploading": "Загрузка...",
|
||
"upload_success": "Карта успешно загружена",
|
||
"upload_failed": "Ошибка загрузки карты",
|
||
"no_map_loaded": "Офлайн-карта не загружена. Загрузите файл .mbtiles для включения офлайн-режима.",
|
||
"invalid_file": "Неверный файл MBTiles. Поддерживаются только растровые карты.",
|
||
"default_view": "Вид по умолчанию",
|
||
"set_as_default": "Установить как вид по умолчанию",
|
||
"export_area": "Экспорт области",
|
||
"export_instructions": "Выделите область на карте для экспорта.",
|
||
"min_zoom": "Мин. масштаб",
|
||
"max_zoom": "Макс. масштаб",
|
||
"tile_count": "Оценка тайлов",
|
||
"start_export": "Начать экспорт",
|
||
"exporting": "Экспорт карты...",
|
||
"download_ready": "Экспорт завершен",
|
||
"download_now": "Скачать MBTiles",
|
||
"caching_enabled": "Кэширование тайлов",
|
||
"clear_cache": "Очистить кэш",
|
||
"cache_cleared": "Кэш тайлов очищен",
|
||
"tile_server_url": "URL сервера тайлов",
|
||
"tile_server_url_placeholder": "https://tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||
"tile_server_url_hint": "Используйте {z}, {x}, {y} для масштаба, столбца, строки",
|
||
"tile_server_saved": "URL сервера тайлов сохранен",
|
||
"nominatim_api_url": "URL API Nominatim",
|
||
"nominatim_api_url_placeholder": "https://nominatim.openstreetmap.org",
|
||
"nominatim_api_url_hint": "Базовый URL для сервиса геокодирования Nominatim",
|
||
"nominatim_api_saved": "URL API Nominatim сохранен",
|
||
"search_placeholder": "Поиск места...",
|
||
"search_offline_error": "Поиск доступен только в онлайн-режиме",
|
||
"search_connection_error": "Не удалось подключиться к сервису поиска. Проверьте подключение к интернету.",
|
||
"search_error": "Ошибка поиска",
|
||
"search_no_results": "Результаты не найдены",
|
||
"custom_tile_server_unavailable": "Пользовательский сервер тайлов недоступен в офлайн-режиме",
|
||
"custom_nominatim_unavailable": "Пользовательский сервер Nominatim недоступен в офлайн-режиме",
|
||
"onboarding_title": "Экспорт в MBTiles!",
|
||
"onboarding_text": "Используйте инструмент экспорта для загрузки областей карты в виде файлов MBTiles для офлайн-использования.",
|
||
"onboarding_got_it": "Понятно"
|
||
},
|
||
"interface": {
|
||
"disable": "Выключить",
|
||
"enable": "Включить",
|
||
"edit_interface": "Изменить интерфейс",
|
||
"export_interface": "Экспорт интерфейса",
|
||
"delete_interface": "Удалить интерфейс",
|
||
"listen": "Слушать",
|
||
"forward": "Пересылать",
|
||
"port": "Порт",
|
||
"frequency": "Частота",
|
||
"bandwidth": "Полоса",
|
||
"txpower": "Мощность TX",
|
||
"spreading_factor": "SF",
|
||
"coding_rate": "Скорость кодирования",
|
||
"bitrate": "Битрейт",
|
||
"tx": "TX",
|
||
"rx": "RX",
|
||
"noise": "Шум",
|
||
"clients": "Клиенты"
|
||
},
|
||
"messages": {
|
||
"title": "Сообщения",
|
||
"conversations": "Чаты",
|
||
"announces": "Анонсы",
|
||
"search_placeholder": "Поиск по {count} чатам...",
|
||
"unread": "Непрочитанные",
|
||
"failed": "Ошибки",
|
||
"attachments": "Вложения",
|
||
"no_messages_yet": "Сообщений пока нет",
|
||
"loading_conversations": "Загрузка чатов...",
|
||
"no_conversations": "Чаты не найдены",
|
||
"discover_peers": "Ищите собеседников во вкладке 'Анонсы'",
|
||
"no_search_results": "Ничего не найдено",
|
||
"try_another_search": "Попробуйте другой поисковый запрос",
|
||
"no_search_results_conversations": "По вашему запросу чатов не найдено.",
|
||
"search_placeholder_announces": "Поиск по {count} недавним анонсам...",
|
||
"no_peers_discovered": "Собеседники не обнаружены",
|
||
"waiting_for_announce": "Ожидание анонсов!",
|
||
"no_search_results_peers": "По вашему запросу собеседников не найдено!",
|
||
"direct": "Прямая связь",
|
||
"hops": "{count} прыжков",
|
||
"hops_away": "в {count} прыжках",
|
||
"snr": "SNR {snr}",
|
||
"stamp_cost": "Стоимость штампа {cost}",
|
||
"pop_out_chat": "Открыть в отдельном окне",
|
||
"custom_display_name": "Свое имя для контакта",
|
||
"send_placeholder": "Введите сообщение...",
|
||
"no_messages_in_conversation": "В этом чате пока нет сообщений.",
|
||
"say_hello": "Скажите привет!",
|
||
"no_active_chat": "Нет активного чата",
|
||
"select_peer_or_enter_address": "Выберите собеседника из списка или введите адрес ниже",
|
||
"add_files": "Добавить файлы",
|
||
"recording": "Запись: {duration}",
|
||
"nomad_network_node": "Узел Nomad Network",
|
||
"toggle_source": "Исходный код"
|
||
},
|
||
"nomadnet": {
|
||
"remove_favourite": "Удалить из избранного",
|
||
"add_favourite": "Добавить в избранное",
|
||
"page_archives": "Архивы страницы",
|
||
"archive_current_version": "Архивировать текущую версию",
|
||
"no_archives_for_this_page": "Нет архивов для этой страницы",
|
||
"viewing_archived_version_from": "Просмотр архивной версии от {time}",
|
||
"viewing_archived_version": "Просмотр архивной версии",
|
||
"load_live": "Загрузить текущую",
|
||
"failed_to_load_page": "Ошибка загрузки страницы",
|
||
"archived_version_available": "Доступна архивная версия этой страницы.",
|
||
"view_archive": "Просмотреть архив",
|
||
"no_active_node": "Нет активного узла",
|
||
"select_node_to_browse": "Выберите узел, чтобы начать просмотр!",
|
||
"open_nomadnet_url": "Открыть URL Nomadnet",
|
||
"unknown_node": "Неизвестный узел",
|
||
"existing_download_in_progress": "Уже выполняется загрузка. Дождитесь ее завершения перед началом новой.",
|
||
"favourites": "Избранное",
|
||
"announces": "Анонсы",
|
||
"search_favourites_placeholder": "Поиск по {count} избранным...",
|
||
"rename": "Переименовать",
|
||
"remove": "Удалить",
|
||
"no_favourites": "Нет избранного",
|
||
"add_nodes_from_announces": "Добавляйте узлы из вкладки анонсов.",
|
||
"search_announces": "Поиск анонсов",
|
||
"announced_time_ago": "Анонсировано {time} назад",
|
||
"block_node": "Заблокировать узел",
|
||
"no_announces_yet": "Анонсов пока нет",
|
||
"listening_for_peers": "Ожидание узлов в сети.",
|
||
"block_node_confirm": "Вы уверены, что хотите заблокировать {name}? Его анонсы будут игнорироваться, и он не будет отображаться в списке.",
|
||
"node_blocked_successfully": "Узел успешно заблокирован",
|
||
"failed_to_block_node": "Не удалось заблокировать узел",
|
||
"rename_favourite": "Переименовать в избранном",
|
||
"remove_favourite_confirm": "Вы уверены, что хотите удалить этот узел из избранного?",
|
||
"enter_nomadnet_url": "Введите URL Nomadnet",
|
||
"archiving_page": "Архивация страницы...",
|
||
"page_archived_successfully": "Страница успешно архивирована.",
|
||
"identify_confirm": "Вы уверены, что хотите идентифицировать себя для этого узла NomadNetwork? Страница будет перезагружена после отправки вашей личности."
|
||
},
|
||
"forwarder": {
|
||
"title": "LXMF Форвардер",
|
||
"description": "Пересылка сообщений с одного адреса на другой с прозрачной обратной маршрутизацией.",
|
||
"add_rule": "Добавить правило пересылки",
|
||
"name": "Имя",
|
||
"name_placeholder": "Название правила (например, Домашний узел)...",
|
||
"forward_to_hash": "Пересылать на хеш",
|
||
"destination_placeholder": "Хеш назначения LXMF...",
|
||
"source_filter": "Фильтр источника (опционально)",
|
||
"source_filter_placeholder": "Пересылать только с этого хеша...",
|
||
"add_button": "Добавить правило",
|
||
"active_rules": "Активные правила",
|
||
"no_rules": "Правила пересылки не настроены.",
|
||
"active": "Активно",
|
||
"disabled": "Выключено",
|
||
"forwarding_to": "Пересылка на: {hash}",
|
||
"source_filter_display": "Фильтр источника: {hash}",
|
||
"delete_confirm": "Вы уверены, что хотите удалить это правило?"
|
||
},
|
||
"archives": {
|
||
"description": "Поиск и просмотр архивных страниц Nomad Network",
|
||
"search_placeholder": "Поиск по содержимому, хешу или пути...",
|
||
"loading": "Загрузка архивов...",
|
||
"no_archives_found": "Архивы не найдены",
|
||
"adjust_filters": "Попробуйте изменить параметры поиска.",
|
||
"browse_to_archive": "Архивные страницы появятся здесь после посещения сайтов Nomad Network.",
|
||
"page": "Страница",
|
||
"pages": "Страницы",
|
||
"view": "Просмотр",
|
||
"showing_range": "Показано с {start} по {end} из {total} архивов",
|
||
"page_of": "Страница {page} из {total_pages}"
|
||
},
|
||
"tools": {
|
||
"utilities": "Утилиты",
|
||
"power_tools": "Инструменты для операторов",
|
||
"diagnostics_description": "Средства диагностики и прошивки поставляются вместе с MeshChat для устранения неполадок без использования консоли.",
|
||
"ping": {
|
||
"title": "Ping",
|
||
"description": "Тест задержки для любого LXMF хеша с отображением статуса."
|
||
},
|
||
"rnprobe": {
|
||
"title": "RNProbe",
|
||
"description": "Зондирование узлов пакетами произвольного размера для проверки связи."
|
||
},
|
||
"rncp": {
|
||
"title": "RNCP",
|
||
"description": "Отправка и получение файлов через RNS с отслеживанием прогресса."
|
||
},
|
||
"rnstatus": {
|
||
"title": "RNStatus",
|
||
"description": "Статистика интерфейсов и информация о состоянии сети."
|
||
},
|
||
"translator": {
|
||
"title": "Translator",
|
||
"description": "Перевод текста через LibreTranslate API или локальный Argos Translate."
|
||
},
|
||
"forwarder": {
|
||
"title": "Forwarder",
|
||
"description": "Пересылка LXMF с маршрутизацией обратного пути."
|
||
},
|
||
"rnode_flasher": {
|
||
"title": "RNode Flasher",
|
||
"description": "Прошивка и обновление адаптеров RNode без использования командной строки."
|
||
}
|
||
},
|
||
"ping": {
|
||
"title": "Пинг узлов сети",
|
||
"description": "Только пункты назначения {code} отвечают на пинг.",
|
||
"destination_hash": "Хеш назначения",
|
||
"timeout_seconds": "Тайм-аут пинга (секунды)",
|
||
"start_ping": "Запустить пинг",
|
||
"stop": "Стоп",
|
||
"clear_results": "Очистить результаты",
|
||
"drop_path": "Сбросить путь",
|
||
"status": "Статус",
|
||
"running": "Запущено",
|
||
"idle": "Ожидание",
|
||
"last_rtt": "Последний RTT",
|
||
"last_error": "Последняя ошибка",
|
||
"console_output": "Вывод консоли",
|
||
"streaming_responses": "Потоковая передача seq-ответов в реальном времени",
|
||
"no_pings_yet": "Пингов пока нет. Запустите проверку для сбора данных RTT.",
|
||
"invalid_hash": "Неверный хеш назначения!",
|
||
"timeout_must_be_number": "Тайм-аут должен быть числом!"
|
||
},
|
||
"rncp": {
|
||
"file_transfer": "Передача файлов",
|
||
"title": "RNCP - Reticulum Network Copy",
|
||
"description": "Отправка и получение файлов через сеть Reticulum с использованием ресурсов RNS.",
|
||
"send_file": "Отправить файл",
|
||
"fetch_file": "Получить файл",
|
||
"listen": "Прослушивание",
|
||
"destination_hash": "Хеш назначения",
|
||
"file_path": "Путь к файлу",
|
||
"timeout_seconds": "Тайм-аут (секунды)",
|
||
"disable_compression": "Отключить сжатие",
|
||
"cancel": "Отмена",
|
||
"progress": "Прогресс",
|
||
"invalid_hash": "Неверный хеш назначения!",
|
||
"provide_file_path": "Пожалуйста, укажите путь к файлу!",
|
||
"file_sent_successfully": "Файл успешно отправлен. ID передачи: {id}",
|
||
"failed_to_send": "Не удалось отправить файл",
|
||
"remote_file_path": "Удаленный путь к файлу",
|
||
"save_path_optional": "Путь сохранения (опционально)",
|
||
"save_path_placeholder": "Оставьте пустым для текущей директории",
|
||
"allow_overwrite": "Разрешить перезапись",
|
||
"provide_remote_file_path": "Пожалуйста, укажите удаленный путь к файлу!",
|
||
"file_fetched_successfully": "Файл успешно получен. Сохранен в: {path}",
|
||
"failed_to_fetch": "Не удалось получить файл",
|
||
"allowed_hashes": "Разрешенные хеши идентичности (по одному в строке)",
|
||
"fetch_jail_path": "Путь изоляции (jail) для получения (опционально)",
|
||
"allow_fetch": "Разрешить получение",
|
||
"start_listening": "Начать прослушивание",
|
||
"stop_listening": "Остановить прослушивание",
|
||
"listening_on": "Прослушивание на:",
|
||
"provide_allowed_hash": "Пожалуйста, укажите хотя бы один разрешенный хеш идентичности!",
|
||
"failed_to_start_listener": "Не удалось запустить прослушиватель"
|
||
},
|
||
"rnprobe": {
|
||
"network_diagnostics": "Диагностика сети",
|
||
"title": "RNProbe - Проверка назначения",
|
||
"description": "Проверка пунктов назначения с настраиваемым размером пакетов для тестирования связности и измерения RTT.",
|
||
"destination_hash": "Хеш назначения",
|
||
"full_destination_name": "Полное имя назначения",
|
||
"probe_size_bytes": "Размер пакета (байты)",
|
||
"number_of_probes": "Количество проверок",
|
||
"wait_between_probes": "Ожидание между проверками (секунды)",
|
||
"start_probe": "Начать проверку",
|
||
"stop": "Стоп",
|
||
"clear_results": "Очистить результаты",
|
||
"summary": "Итог",
|
||
"sent": "Отправлено",
|
||
"delivered": "Доставлено",
|
||
"timeouts": "Тайм-ауты",
|
||
"failed": "Ошибка",
|
||
"probe_results": "Результаты проверки",
|
||
"probe_responses_realtime": "Ответы проверки в реальном времени",
|
||
"no_probes_yet": "Проверок пока нет. Запустите проверку для тестирования связности.",
|
||
"probe_number": "Проверка №{number}",
|
||
"bytes": "байт",
|
||
"hops": "Хопы",
|
||
"rtt": "RTT",
|
||
"rssi": "RSSI",
|
||
"snr": "SNR",
|
||
"quality": "Качество",
|
||
"timeout": "Тайм-аут",
|
||
"invalid_hash": "Неверный хеш назначения!",
|
||
"provide_full_name": "Пожалуйста, укажите полное имя назначения!",
|
||
"failed_to_probe": "Не удалось проверить назначение"
|
||
},
|
||
"rnstatus": {
|
||
"network_diagnostics": "Диагностика сети",
|
||
"title": "RNStatus - Статус сети",
|
||
"description": "Просмотр статистики интерфейсов и информации о статусе сети.",
|
||
"refresh": "Обновить",
|
||
"include_link_stats": "Включить статистику ссылок",
|
||
"sort_by": "Сортировать по:",
|
||
"none": "Нет",
|
||
"bitrate": "Битрейт",
|
||
"rx_bytes": "RX байт",
|
||
"tx_bytes": "TX байт",
|
||
"total_traffic": "Весь трафик",
|
||
"announces": "Анонсы",
|
||
"active_links": "Активные ссылки: {count}",
|
||
"no_interfaces_found": "Интерфейсы не найдены. Нажмите «Обновить» для загрузки статуса.",
|
||
"mode": "Режим",
|
||
"rx_packets": "RX пакетов",
|
||
"tx_packets": "TX пакетов",
|
||
"clients": "Клиенты",
|
||
"peers_reachable": "доступно",
|
||
"noise_floor": "Уровень шума",
|
||
"interference": "Помехи",
|
||
"cpu_load": "Загрузка ЦП",
|
||
"cpu_temp": "Темп. ЦП",
|
||
"memory_load": "Загрузка памяти",
|
||
"battery": "Батарея",
|
||
"network": "Сеть",
|
||
"incoming_announces": "Входящие анонсы",
|
||
"outgoing_announces": "Исходящие анонсы",
|
||
"airtime": "Эфирное время",
|
||
"channel_load": "Загрузка канала"
|
||
},
|
||
"translator": {
|
||
"text_translation": "Перевод текста",
|
||
"title": "Переводчик",
|
||
"description": "Перевод текста с использованием LibreTranslate API или локального Argos Translate.",
|
||
"argos_translate": "Argos Translate",
|
||
"libretranslate": "LibreTranslate",
|
||
"api_server": "Сервер API LibreTranslate",
|
||
"api_server_description": "Введите базовый URL вашего сервера LibreTranslate (например, http://localhost:5000)",
|
||
"source_language": "Исходный язык",
|
||
"auto_detect": "Автоопределение",
|
||
"target_language": "Целевой язык",
|
||
"select_target_language": "Выберите целевой язык",
|
||
"argos_not_detected": "Argos Translate не обнаружен",
|
||
"argos_not_detected_desc": "Для использования локального перевода необходимо установить пакет Argos Translate одним из следующих способов:",
|
||
"method_pip_venv": "Способ 1: pip (venv)",
|
||
"method_pipx": "Способ 2: pipx",
|
||
"note_restart_required": "Примечание: После установки может потребоваться перезапуск приложения и установка языковых пакетов через CLI Argos Translate.",
|
||
"no_language_packages": "Языковые пакеты не обнаружены",
|
||
"no_language_packages_desc": "Argos Translate установлен, но языковые пакеты недоступны. Установите языковые пакеты с помощью одной из следующих команд:",
|
||
"install_all_languages": "Установить все языки",
|
||
"install_specific_pair": "Установить конкретную языковую пару (пример: с английского на русский)",
|
||
"after_install_note": "После установки языковых пакетов нажмите «Обновить языки», чтобы перезагрузить список доступных языков.",
|
||
"text_to_translate": "Текст для перевода",
|
||
"enter_text_placeholder": "Введите текст для перевода...",
|
||
"translate": "Перевести",
|
||
"swap": "Поменять местами",
|
||
"clear": "Очистить",
|
||
"translation": "Перевод",
|
||
"source": "Источник",
|
||
"detected": "Определено",
|
||
"available_languages": "Доступные языки",
|
||
"languages_loaded_from": "Языки загружаются из LibreTranslate API или пакетов Argos Translate.",
|
||
"refresh_languages": "Обновить языки",
|
||
"failed_to_load_languages": "Не удалось загрузить языки. Убедитесь, что LibreTranslate запущен или Argos Translate установлен.",
|
||
"copied_to_clipboard": "Скопировано в буфер обмена"
|
||
},
|
||
"call": {
|
||
"phone": "Телефон",
|
||
"voicemail": "Голосовая почта",
|
||
"settings": "Настройки",
|
||
"unknown": "Неизвестно",
|
||
"call_ended": "Звонок завершен",
|
||
"incoming_call": "Входящий звонок...",
|
||
"busy": "Занято...",
|
||
"rejected": "Отклонено...",
|
||
"calling": "Вызов...",
|
||
"available": "Доступно...",
|
||
"ringing": "Звонит...",
|
||
"connecting": "Подключение...",
|
||
"connected": "Подключено",
|
||
"accept": "Принять",
|
||
"decline": "Отклонить",
|
||
"hangup": "Завершить",
|
||
"answer_call": "Ответить на звонок",
|
||
"decline_call": "Отклонить звонок",
|
||
"hangup_call": "Завершить звонок",
|
||
"mute_mic": "Отключить микрофон",
|
||
"unmute_mic": "Включить микрофон",
|
||
"mute_speaker": "Отключить динамик",
|
||
"unmute_speaker": "Включить динамик",
|
||
"telephone": "Телефон",
|
||
"enter_identity_hash_to_call": "Введите хеш личности для звонка.",
|
||
"identity_hash": "Хеш личности",
|
||
"call_history": "История звонков",
|
||
"call_back": "Перезвонить",
|
||
"no_voicemails": "Нет голосовых сообщений",
|
||
"voicemails_will_appear_here": "Когда вам оставят сообщение, оно появится здесь.",
|
||
"voicemail_inbox": "Входящие голосовой почты",
|
||
"messages": "Сообщения",
|
||
"delete": "Удалить",
|
||
"voicemail_settings": "Настройки голосовой почты",
|
||
"dependencies_missing": "Отсутствуют зависимости",
|
||
"voicemail_requires_espeak": "Голосовая почта требует `espeak-ng` для генерации приветствий. Пожалуйста, установите его в вашей системе.",
|
||
"voicemail_requires_ffmpeg": "Голосовая почта требует `ffmpeg` для обработки аудиофайлов. Пожалуйста, установите его в вашей системе.",
|
||
"enable_voicemail": "Включить голосовую почту",
|
||
"enable_voicemail_description": "Автоматически принимать звонки и записывать сообщения",
|
||
"greeting_message": "Приветственное сообщение",
|
||
"enter_greeting_text": "Введите текст приветствия...",
|
||
"greeting_text_description": "Этот текст будет преобразован в речь с помощью eSpeak NG.",
|
||
"save_and_generate": "Сохранить и создать",
|
||
"generating": "Создание...",
|
||
"preview_greeting": "Предпросмотр приветствия",
|
||
"stop_preview": "Остановить предпросмотр",
|
||
"answer_delay_seconds": "Задержка ответа (с)",
|
||
"max_recording_seconds": "Макс. время записи (с)",
|
||
"recording_voicemail": "Запись голосового сообщения",
|
||
"call_status": "Статус звонка",
|
||
"active_call": "Активный звонок",
|
||
"status": "Статус",
|
||
"failed_to_answer_call": "Не удалось ответить на звонок",
|
||
"failed_to_hangup_call": "Не удалось завершить звонок",
|
||
"failed_to_toggle_microphone": "Не удалось переключить микрофон",
|
||
"failed_to_toggle_speaker": "Не удалось переключить динамик",
|
||
"failed_to_switch_audio_profile": "Не удалось переключить аудио профиль",
|
||
"failed_to_initiate_call": "Не удалось инициировать звонок",
|
||
"enter_identity_hash_to_call_error": "Введите хеш личности для звонка",
|
||
"failed_to_save_settings": "Не удалось сохранить настройки",
|
||
"settings_saved": "Настройки сохранены",
|
||
"greeting_generated_successfully": "Приветствие успешно создано",
|
||
"failed_to_generate_greeting": "Не удалось создать приветствие",
|
||
"no_greeting_audio_found": "Аудио приветствия не найдено. Пожалуйста, создайте его сначала.",
|
||
"voicemail_deleted": "Голосовое сообщение удалено",
|
||
"failed_to_delete_voicemail": "Не удалось удалить голосовое сообщение"
|
||
}
|
||
}
|