feat(observability): phases 4-7 - complete frontend UI (big bang)
Add all frontend pages for observability & proxy management: - Proxy Viewer: /proxies with grouped view, filtering, health indicators - Proxy Creation: form with live validation, diagnostic hints, edit/delete - Stale Containers: /containers/stale with dashboard widget, cleanup actions - Event Log: /events with filters, pagination, real-time SSE streaming - Navigation: proxies and events links in sidebar - i18n: full EN/RU translations for all new features - Settings: stale threshold configuration
This commit is contained in:
+119
-2
@@ -7,6 +7,8 @@
|
||||
"dashboard": "Панель",
|
||||
"projects": "Проекты",
|
||||
"deploy": "Деплой",
|
||||
"proxies": "Прокси",
|
||||
"events": "События",
|
||||
"settings": "Настройки"
|
||||
},
|
||||
"dashboard": {
|
||||
@@ -19,7 +21,8 @@
|
||||
"retry": "Повторить",
|
||||
"noProjects": "Проектов пока нет.",
|
||||
"addFirst": "Добавьте первый проект",
|
||||
"loadFailed": "Не удалось загрузить панель"
|
||||
"loadFailed": "Не удалось загрузить панель",
|
||||
"staleContainers": "Устаревшие контейнеры"
|
||||
},
|
||||
"projects": {
|
||||
"title": "Проекты",
|
||||
@@ -176,7 +179,9 @@
|
||||
"registries": "Реестры",
|
||||
"credentials": "Учётные данные",
|
||||
"authentication": "Аутентификация",
|
||||
"appearance": "Внешний вид"
|
||||
"appearance": "Внешний вид",
|
||||
"staleThreshold": "Порог устаревания (дни)",
|
||||
"staleThresholdHelp": "Контейнеры, неактивные дольше этого срока, будут помечены как устаревшие."
|
||||
},
|
||||
"settingsGeneral": {
|
||||
"title": "Общие настройки",
|
||||
@@ -320,6 +325,27 @@
|
||||
"loginFailed": "Ошибка входа",
|
||||
"networkError": "Ошибка сети"
|
||||
},
|
||||
"proxies": {
|
||||
"title": "Менеджер прокси",
|
||||
"create": "Создать прокси",
|
||||
"standalone": "Автономные прокси",
|
||||
"managed": "Управляемые прокси",
|
||||
"noProxies": "Прокси не найдены",
|
||||
"noProxiesDesc": "Создайте автономный прокси или разверните проект с включённым прокси.",
|
||||
"filter": {
|
||||
"search": "Поиск по домену или назначению...",
|
||||
"health": "Здоровье",
|
||||
"type": "Тип",
|
||||
"all": "Все",
|
||||
"clear": "Сбросить фильтры"
|
||||
},
|
||||
"health": {
|
||||
"healthy": "Здоров",
|
||||
"unhealthy": "Нездоров",
|
||||
"unknown": "Неизвестно"
|
||||
},
|
||||
"lastChecked": "Последняя проверка"
|
||||
},
|
||||
"common": {
|
||||
"cancel": "Отмена",
|
||||
"confirm": "Подтвердить",
|
||||
@@ -387,6 +413,97 @@
|
||||
"search": "Поиск...",
|
||||
"noResults": "Ничего не найдено"
|
||||
},
|
||||
"stale": {
|
||||
"title": "Устаревшие контейнеры",
|
||||
"noStale": "Нет устаревших контейнеров",
|
||||
"noStaleDesc": "Все контейнеры исправны и работают.",
|
||||
"cleanup": "Очистить",
|
||||
"cleanupAll": "Очистить все",
|
||||
"confirmCleanup": "Это остановит и удалит контейнер. Продолжить?",
|
||||
"confirmBulkCleanup": "Это остановит и удалит все устаревшие контейнеры. Продолжить?",
|
||||
"daysStale": "дней устарел",
|
||||
"lastAlive": "Последний раз жив",
|
||||
"count": "Устаревшие",
|
||||
"cleanedUp": "Контейнер очищен",
|
||||
"bulkCleanedUp": "{count} контейнеров очищено",
|
||||
"cleanupFailed": "Не удалось очистить",
|
||||
"loadFailed": "Не удалось загрузить устаревшие контейнеры"
|
||||
},
|
||||
"proxies": {
|
||||
"title": "Прокси",
|
||||
"create": "Создать прокси",
|
||||
"noProxies": "Прокси ещё не настроены.",
|
||||
"noProxiesDesc": "Создайте автономный прокси или разверните проект, чтобы увидеть прокси здесь.",
|
||||
"standalone": "Автономные прокси",
|
||||
"managed": "Управляемые",
|
||||
"lastChecked": "Последняя проверка",
|
||||
"health": {
|
||||
"healthy": "Работает",
|
||||
"unhealthy": "Недоступен",
|
||||
"unknown": "Неизвестно"
|
||||
},
|
||||
"filter": {
|
||||
"search": "Поиск прокси...",
|
||||
"health": "Здоровье",
|
||||
"type": "Тип",
|
||||
"all": "Все",
|
||||
"clear": "Сбросить фильтры"
|
||||
},
|
||||
"form": {
|
||||
"title": "Создать прокси",
|
||||
"editTitle": "Редактировать прокси",
|
||||
"destination": "URL / IP назначения",
|
||||
"port": "Порт",
|
||||
"domain": "Домен",
|
||||
"domainHelp": "Публичный домен для этого прокси.",
|
||||
"validate": "Проверить",
|
||||
"validating": "Проверка...",
|
||||
"create": "Создать прокси",
|
||||
"save": "Сохранить изменения",
|
||||
"cancel": "Отмена",
|
||||
"delete": "Удалить",
|
||||
"deleteConfirm": "Удалить этот прокси? Это действие необратимо."
|
||||
},
|
||||
"validation": {
|
||||
"title": "Проверка назначения",
|
||||
"syntax": "Синтаксис URL",
|
||||
"dns": "DNS разрешение",
|
||||
"tcp": "TCP подключение",
|
||||
"http": "HTTP ответ",
|
||||
"checking": "Проверка...",
|
||||
"skipped": "Пропущено"
|
||||
}
|
||||
},
|
||||
"events": {
|
||||
"title": "Журнал событий",
|
||||
"noEvents": "Событий не найдено",
|
||||
"noEventsDesc": "События будут отображаться здесь по мере их возникновения.",
|
||||
"loadMore": "Загрузить ещё",
|
||||
"newEvents": "новых событий",
|
||||
"filter": {
|
||||
"severity": "Уровень",
|
||||
"source": "Источник",
|
||||
"dateRange": "Период",
|
||||
"search": "Поиск событий...",
|
||||
"lastHour": "Последний час",
|
||||
"last24h": "Последние 24 часа",
|
||||
"last7d": "Последние 7 дней",
|
||||
"allTime": "За всё время",
|
||||
"clear": "Сбросить фильтры"
|
||||
},
|
||||
"severity": {
|
||||
"info": "Инфо",
|
||||
"warn": "Предупреждение",
|
||||
"error": "Ошибка"
|
||||
},
|
||||
"source": {
|
||||
"deploy": "Развёртывание",
|
||||
"container": "Контейнер",
|
||||
"proxy": "Прокси",
|
||||
"system": "Система"
|
||||
},
|
||||
"metadata": "Подробности"
|
||||
},
|
||||
"language": {
|
||||
"en": "Английский",
|
||||
"ru": "Русский"
|
||||
|
||||
Reference in New Issue
Block a user