feat: load plugin frontends at runtime and remove plugin ids from the shell

This commit is contained in:
LukeGus committed 2026-09-22 20:15:52 -05:00
1 parent 49f0286a14
commit e88d5a52e3
721 files changed
+54265 -44416

No files matched your search

@@ -0,0 +1,313 @@
{
"hostMetrics": {
"cpu": "ЦП",
"memory": "Память",
"disk": "Диск",
"network": "Сеть",
"uptime": "Время работы",
"processes": "Процессы",
"available": "Доступно",
"free": "Свободно",
"connecting": "Подключение...",
"connectionFailed": "Не удалось подключиться к серверу",
"naCpus": "Н/Д ЦП",
"cpuCores_one": "{{count}} ядро",
"cpuCores_other": "{{count}} ядер",
"cpuUsage": "Использование ЦП",
"memoryUsage": "Использование памяти",
"diskUsage": "Использование диска",
"selectFilesystem": "Выберите файловую систему",
"temperature": "Температура",
"highestTemperature": "Максимальная температура",
"primaryTemperatureSensor": "Основной датчик",
"gpu": {
"title": "GPU",
"noDevice": "Графический процессор NVIDIA не обнаружен. Установите драйвер NVIDIA (он включает nvidia-smi), чтобы увидеть показатели графического процессора.",
"driver": "Водитель {{version}}",
"utilization": "Использование",
"memory": "ВПМ",
"temperature": "Температура",
"power": "Власть",
"fan": "Вентилятор",
"processes": "процессы графического процессора",
"noProcesses": "Никакие процессы не используют графический процессор."
},
"failedToFetchHostConfig": "Не удалось получить конфигурацию хоста",
"serverOffline": "Сервер недоступен",
"cannotFetchMetrics": "Не удалось загрузить метрики с недоступного сервера",
"totpFailed": "Проверка TOTP не пройдена",
"noneAuthNotSupported": "Host Metrics не поддерживает тип аутентификации 'none'.",
"noHostSelected": "Хост не выбран",
"load": "Нагрузка",
"systemInfo": "Информация о системе",
"hostname": "Имя хоста",
"operatingSystem": "Операционная система",
"kernel": "Ядро",
"seconds": "секунды",
"networkInterfaces": "Сетевые интерфейсы",
"noInterfacesFound": "Сетевые интерфейсы не найдены",
"noProcessesFound": "Процессы не найдены",
"processesTotal": "всего",
"processesRunning": "выполняется",
"loginStats": "Статистика входов SSH",
"noRecentLoginData": "Нет данных о недавних входах",
"executingQuickAction": "Выполняется {{name}}...",
"quickActionSuccess": "{{name}} успешно завершено",
"quickActionFailed": "{{name}} не удалось",
"quickActionError": "Не удалось выполнить {{name}}",
"ports": {
"title": "Прослушиваемые порты",
"protocol": "Протокол",
"port": "Порт",
"address": "Адрес",
"process": "Процесс",
"search": "Поиск портов...",
"allProtocols": "Все",
"noData": "Нет данных о прослушиваемых портах"
},
"firewall": {
"title": "Брандмауэр",
"inactive": "Неактивен",
"policy": "Политика",
"rules": "правила",
"noRules": "Нет правил в этой цепочке",
"noData": "Нет данных о брандмауэре",
"action": "Действие",
"protocol": "Протокол",
"port": "Порт",
"source": "Источник",
"anywhere": "Любое",
"chains": "цепочки"
},
"loadAvg": "Средняя нагрузка",
"swap": "Своп",
"architecture": "Архитектура",
"refresh": "Обновить",
"retry": "Повторить",
"customize": "Настроить макет",
"reset": "Сбросить",
"tabLive": "Онлайн",
"editModeInstructions": "Перетаскивайте карточки для изменения порядка, перетаскивайте нижний край для изменения размера и используйте кнопку ширины, чтобы изменить занимаемое пространство. Добавляйте или удаляйте карточки ниже.",
"managers": {
"services": "Службы",
"processInspector": "Инспектор процессов",
"logViewer": "Просмотр журналов",
"cron": "Задания Cron",
"packages": "Пакеты",
"ssl": "SSL-сертификаты",
"firewall": "Брандмауэр",
"users": "Пользователи и разрешения",
"healthCheck": "Проверки состояния",
"diskBreakdown": "Разбивка дисков",
"systemdTimers": "Таймеры",
"topMemory": "Топ по памяти",
"noData": "Нет данных",
"sudoHint": "Установите пароль sudo для этого хоста в редакторе хостов, чтобы включить привилегированные действия.",
"filter": "Фильтр...",
"start": "Запустить",
"stop": "Остановить",
"restart": "Перезапустить",
"actionDone": "{{name}} обновлено",
"actionFailed": "Действие не удалось",
"signalSent": "Сигнал отправлен PID {{pid}}",
"killHint": "Нажмите: завершить (SIGTERM). Правый клик: принудительно завершить (SIGKILL).",
"working": "Выполняется...",
"update": "Обновить",
"upgradeAll": "Обновить всё",
"allUpToDate": "Всё актуально",
"save": "Сохранить",
"command": "Команда",
"enabled": "Включено",
"cronSaved": "Crontab обновлён",
"clients": "Клиенты",
"dryRun": "Пробный запуск",
"renew": "Продлить",
"noAcmeClient": "На этом хосте не найден ACME-клиент (certbot или acme.sh).",
"addInputRule": "Добавить правило INPUT",
"firewallWarning": "Изменения действуют только до перезагрузки, пока не сохранены. Будьте осторожны, чтобы не заблокировать себе доступ.",
"ruleApplied": "Правило применено",
"invalidPort": "Введите допустимый порт (1–65535)",
"newUsername": "Новое имя пользователя",
"addUser": "Добавить",
"deleteUser": "Удалить пользователя",
"noHealthChecks": "Проверки работоспособности ещё не настроены.",
"follow": "Следить",
"noLogData": "Нет данных журнала.",
"tree": "Дерево",
"enableDisable": "Включить/отключить при загрузке",
"grantSudo": "Предоставить sudo",
"revokeSudo": "Отозвать sudo",
"sslIssueCert": "Выпустить сертификат",
"sslExpired": "Истёк",
"sslInDays": "через {{days}}д",
"sslNeedDomain": "Введите хотя бы один домен",
"sslIssued": "Сертификат выпущен",
"sslDomainsPlaceholder": "example.com, www.example.com",
"sslHttpStandalone": "HTTP (автономный)",
"sslHttpWebroot": "HTTP (webroot)",
"sslDns": "DNS",
"sslDnsProvider": "DNS-провайдер (например, cloudflare)",
"sslIssueHint": "Учетные данные DNS-провайдера должны быть уже настроены на хосте.",
"sslRevoke": "Отозвать сертификат",
"sslRevoked": "Сертификат отозван",
"sslRevokeConfirm": "Отозвать и удалить сертификат \"{{name}}\"? Это действие нельзя отменить.",
"healthRun": "Запустить",
"healthName": "Название",
"healthTarget": "Хост / адрес",
"healthAddCheck": "Добавить проверку",
"healthSaved": "Проверки работоспособности сохранены",
"healthMissingFields": "Для каждой проверки нужны название и цель",
"logFile": "Файл",
"logUnit": "Юнит",
"logCustomPath": "Произвольный путь в /var/log (необязательно)",
"logGrep": "Фильтр строк...",
"firewallPersist": "Сохранить правила",
"firewallPersisted": "Правила брандмауэра сохранены",
"wireguard": "WireGuard",
"tailscale": "Tailscale",
"wgNotInstalled": "WireGuard не установлен на этом хосте",
"wgNoInterfaces": "Не настроено ни одного интерфейса WireGuard",
"wgInterfaceUp": "Поднять",
"wgInterfaceDown": "Отключить",
"wgBringingUp": "Поднимается {{name}}...",
"wgBringingDown": "Отключается {{name}}...",
"wgInterfaceUpDone": "{{name}} поднят",
"wgInterfaceDownDone": "{{name}} отключен",
"wgListenPort": "Порт",
"wgPublicKey": "Открытый ключ",
"wgEndpoint": "Конечная точка",
"wgAllowedIPs": "Разрешенные IP-адреса",
"wgLastHandshake": "Последнее рукопожатие",
"wgHandshakeNever": "Никогда",
"wgTransfer": "Передано",
"tsNotInstalled": "Tailscale не установлен на этом хосте",
"tsRunning": "Запущен",
"tsStopped": "Остановлен",
"tsEnable": "Подключить",
"tsDisable": "Отключить",
"tsEnabling": "Подключение к Tailscale...",
"tsDisabling": "Отключение от Tailscale...",
"tsEnabled": "Tailscale подключён",
"tsDisabled": "Tailscale отключён",
"tsIPs": "IP-адреса Tailscale",
"tsPeers": "Пиры",
"tsOnline": "Онлайн",
"tsOffline": "Офлайн",
"tsExitNode": "Выходной узел",
"tsExitNodeActive": "Выходной узел активен",
"tsHostname": "Имя хоста"
}
},
"metricsHistory": {
"title": "История метрик",
"historySuffix": "История",
"cpuMemoryDisk": "ЦП / Память / Диск",
"network": "Сеть",
"download": "RX",
"upload": "TX",
"noData": "Нет исторических данных за этот период.",
"custom": "Пользовательский",
"to": "по",
"apply": "Применить",
"viewHistory": "Просмотреть историю"
},
"proxmoxStats": {
"tabTitle": "Статистика Proxmox",
"cpuUsage": "Использование ЦП",
"memoryUsage": "Использование памяти",
"diskUsage": "Использование диска",
"networkInterfaces": "Сетевые интерфейсы",
"uptime": "Время безотказной работы",
"systemInfo": "Информация о системе",
"guestsSummary": "Гости",
"storagePools": "Бассейны для хранения",
"clusterHealth": "Здоровье кластера",
"cpuCores_one": "{{count}} Ядро",
"cpuCores_other": "{{count}} Ядра",
"used": "Использовал",
"total": "Общий",
"hostname": "Имя хоста",
"kernel": "Ядро",
"pveVersion": "Версия для PVE",
"name": "Имя",
"status": "Статус",
"type": "Тип",
"cpu": "Процессор",
"mem": "Мем",
"disk": "Диск",
"running": "Бег",
"stopped": "Остановлено",
"guestCounts": "{{running}}/{{total}} бежит",
"inactive": "Неактивный",
"notClustered": "Автономный узел (не входящий в кластер)",
"quorate": "Цитата",
"notQuorate": "Кворум не соблюден",
"nodeOnline": "Онлайн",
"nodeOffline": "Офлайн",
"noHostSelected": "Хост не выбран",
"pveshNotFound": "pvesh не найден — это узел Proxmox?",
"nodeDetectionFailed": "Не удалось определить допустимое имя узла Proxmox.",
"connecting": "Подключение...",
"connectionFailed": "Не удалось подключиться к узлу Proxmox.",
"refresh": "Обновить",
"searchGuests": "Поиск гостей...",
"filterAll": "Все",
"filterVm": "VM",
"filterLxc": "ЛХС",
"noGuests": "На этом узле не обнаружено виртуальных машин или контейнеров LXC.",
"noGuestsMatch": "Ни один из гостей не соответствует текущим фильтрам."
},
"nav": {
"hostMetrics": "Метрики хоста"
},
"hosts": {
"tabHostMetrics": "Метрики хоста",
"enableProxmoxStats": "Включить статистику Proxmox",
"enableProxmoxStatsDesc": "Отобразить вкладку Proxmox Stats для этого хоста с актуальными статистическими данными по узлам, гостевым системам, хранилищу и кластеру, собранными по SSH.",
"proxmoxStatsPollInterval": "Интервал опроса (секунды)",
"proxmoxStatsPollIntervalDesc": "Минимум 15 секунд. Как часто обновлять статистику узлов Proxmox.",
"proxmoxStatsNodeOverride": "Переопределение имени узла",
"proxmoxStatsNodeOverrideDesc": "Отключить автоматическое определение имени узла Proxmox (по умолчанию определяется по имени хоста).",
"proxmoxStatsNodeOverridePlaceholder": "Автоматически определено по имени хоста",
"metricsCollectionLabel": "Сбор метрик",
"enableMetricsLabel": "Включить метрики",
"enableMetricsDesc": "Собирать метрики ЦП, ОЗУ, диска и другие с этого хоста",
"useGlobalMetrics": "Использовать глобальный интервал",
"useGlobalMetricsDesc": "Переопределить глобальным интервалом сбора метрик сервера",
"metricsIntervalS": "Интервал сбора метрик (с)",
"metricsIntervalDesc2": "Секунд между снимками метрик",
"excludedMountsLabel": "Исключенные крепления",
"monitoredMountsLabel": "Пользовательские контролируемые пути",
"monitoredMountsDesc": "Добавьте пути, которые не отображаются как отдельные точки монтирования, включая пути Home Assistant, смонтированные с помощью bind-mount, например, /config.",
"monitoredMountPathPlaceholder": "Путь (/config, /mnt/data)",
"monitoredMountLabelPlaceholder": "Этикетка (необязательно)",
"addMonitoredMount": "Добавить путь",
"excludedMountsDesc": "Скрыть определенные точки монтирования или типы файловых систем (например, nfs, cifs) от информации об использовании диска и оповещений для этого хоста.",
"excludedMountsPlaceholder": "Путь монтирования (/mnt/nas) или тип файловой системы (nfs, cifs)",
"excludedMountsEmpty": "Исключены все точки монтирования. Отображаются все обнаруженные файловые системы.",
"addExcludedMount": "Добавлять",
"visibleWidgets": "Видимые виджеты",
"widgetsMovedToHostMetrics": "Карточки теперь добавляются, упорядочиваются и изменяются в размере непосредственно на вкладке «Метрики хоста». Откройте метрики для этого хоста и используйте «Настроить», чтобы выбрать отображаемые карточки.",
"quickActionsLabel": "Быстрые действия",
"quickActionsToolbar": "Быстрые действия отображаются в виде кнопок на панели инструментов метрик хоста для выполнения команд в один клик.",
"noQuickActions": "Пока нет быстрых действий.",
"buttonLabel": "Надпись кнопки",
"selectSnippetPlaceholder": "Выбрать сниппет...",
"addActionBtn": "Добавить действие"
},
"onboarding": {
"feature_metrics": "Метрики и оповещения",
"feature_metrics_desc": "Отслеживайте состояние процессора, памяти и диска с течением времени и получайте оповещения при возникновении неполадок."
},
"admin": {
"metricsHistoryRetention": "Срок хранения метрик",
"metricsHistoryRetentionRange": "от 1 до 90 дней",
"days": "дней"
},
"homepage": {
"noData": "Нет данных",
"showCurrentValue": "Показать текущее значение",
"chartMetric": "Метрика",
"metricRange": "Диапазон"
}
}