♻️ refactor: Refactor server management API endpoints and typings

This commit is contained in:
web
2025-08-26 09:37:15 -07:00
parent 217ddce60c
commit 4f7cc807af
141 changed files with 5665 additions and 10338 deletions
+18 -9
View File
@@ -1,27 +1,36 @@
{
"ADS Config": "Конфігурація ADS",
"Announcement Management": "Управління оголошеннями",
"Application Management": "Управління додатками",
"Auth Control": "Контроль автентифікації",
"Balance": "Баланс",
"Commerce": "Комерція",
"Commission": "Комісія",
"Coupon Management": "Управління купонами",
"Dashboard": "Панель приладів",
"Document Management": "Управління документами",
"Finance": "Фінанси",
"Email": "Електронна пошта",
"Gift": "Подарунок",
"Login": "Увійти",
"Logs & Analytics": "Журнали та аналітика",
"Maintenance": "Обслуговування",
"Marketing Management": "Управління маркетингом",
"Node Management": "Управління вузлами",
"Order Management": "Управління замовленнями",
"Payment Config": "Налаштування оплати",
"Product Management": "Управління продуктом",
"Protocol Management": "Управління протоколом",
"Rule Management": "Управління правилами",
"Server": "Сервер",
"Register": "Реєстрація",
"Reset Subscribe": "Скинути підписку",
"SMS": "СМС",
"Server Management": "Управління сервером",
"Settings": "Налаштування",
"Server Traffic": "Трафік сервера",
"Subscribe": "Підписатися",
"Subscribe Config": "Конфігурація підписки",
"Subscribe Traffic": "Трафік підписки",
"System": "Система",
"System Config": "Системна конфігурація",
"System Management": "Управління системою",
"System Tool": "Системний інструмент",
"Ticket Management": "Управління заявками",
"User": "Користувач",
"User Detail": "Деталі користувача",
"User Management": "Управління користувачами"
"User Management": "Управління користувачами",
"Users & Support": "Користувачі та підтримка"
}
+37
View File
@@ -0,0 +1,37 @@
{
"address": "Адреса",
"cancel": "Скасувати",
"confirm": "Підтвердити",
"confirmDeleteDesc": "Цю дію не можна скасувати.",
"confirmDeleteTitle": "Видалити цей вузол?",
"copied": "Скопійовано",
"copy": "Копіювати",
"create": "Створити",
"created": "Створено",
"delete": "Видалити",
"deleted": "Видалено",
"drawerCreateTitle": "Створити вузол",
"drawerEditTitle": "Редагувати вузол",
"edit": "Редагувати",
"enabled": "Увімкнено",
"enabled_off": "Вимкнено",
"enabled_on": "Увімкнено",
"errors": {
"nameRequired": "Будь ласка, введіть ім'я",
"portRange": "Порт має бути між 1 і 65535",
"protocolRequired": "Будь ласка, виберіть протокол",
"serverAddrRequired": "Будь ласка, введіть адресу входу",
"serverRequired": "Будь ласка, виберіть сервер"
},
"name": "Ім'я",
"pageTitle": "Вузли",
"port": "Порт",
"protocol": "Протокол",
"select_protocol": "Виберіть протокол…",
"select_server": "Виберіть сервер…",
"server": "Сервер",
"tags": "Теги",
"tags_description": "Тег для групування дозволів (включаючи прив'язку плану та політики доставки).",
"tags_placeholder": "Використовуйте Enter або кому (,) для додавання кількох тегів",
"updated": "Оновлено"
}
+3 -58
View File
@@ -1,59 +1,6 @@
{
"actions": "дії",
"app": {
"appDownloadURL": "URL завантаження додатку",
"appIcon": "Іконка додатку",
"appList": "Список додатків",
"appName": "Назва додатку",
"backupDomains": "Список резервних доменів",
"backupDomainsDescription": "Список резервних доменів для вирішення доменів, один домен на рядок",
"batchDelete": "Пакетне видалення",
"cancel": "Скасувати",
"communicationKey": "Ключ зв'язку",
"communicationKeyDescription": "Ключ, що використовується для зв'язку з клієнтом",
"config": "Конфігурація",
"configApp": "Конфігурація додатка",
"confirm": "Підтвердити",
"confirmDelete": "Підтвердити видалення",
"create": "Створити",
"createApp": "Створити додаток",
"createSuccess": "Успішно створено",
"defaultVersion": "За замовчуванням",
"delete": "Видалити",
"deleteWarning": "Цю дію не можна скасувати",
"describeDescription": "Використовується для опису додатка, відображається у списку додатків",
"description": "Опис",
"downloadLink": "Посилання для завантаження",
"edit": "Редагувати",
"editApp": "Редагувати додаток",
"encryption": "Метод шифрування",
"encryptionDescription": "Виберіть метод шифрування для зв'язку з клієнтом. Якщо вибрано, клієнт використовуватиме цей метод для зв'язку з сервером",
"nameDescription": "Назва додатка, відображається у списку додатків",
"platform": "Платформа",
"selectApp": "Виберіть додаток",
"selectAppDescription": "Виберіть додаток для налаштування, всі параметри будуть застосовані до вибраного додатка",
"startupPicture": "Зображення при запуску",
"startupPictureDescription": "Зображення при запуску, підтримуються мережеві та локальні зображення. Для мережевих зображень, будь ласка, введіть повну URL-адресу зображення",
"startupPicturePreview": "Попередній перегляд зображення при запуску",
"startupPictureSkip": "Час пропуску зображення при запуску",
"startupPictureSkipDescription": "Час відображення зображення при запуску в секундах, введіть 0, щоб не відображати",
"subscriptionProtocol": "Протокол підписки",
"updateSuccess": "Успішно оновлено",
"version": "Версія"
},
"cancel": "Скасувати",
"config": {
"singleSubscriptionMode": "Режим Однієї Підписки",
"subscriptionDomain": "Домен Підписки",
"subscriptionDomainDescription": "Використовується для підписки; залиште порожнім, щоб використовувати домен сайту",
"subscriptionDomainPlaceholder": "Введіть домен підписки, один на рядок",
"subscriptionPath": "Шлях Підписки",
"subscriptionPathDescription": "Використовується для підписки; обов'язково перезапустіть систему після зміни для оптимальної продуктивності",
"subscriptionPathPlaceholder": "Введіть",
"updateSuccess": "Оновлено успішно",
"wildcardResolution": "Розв'язання Маски",
"wildcardResolutionDescription": "Використовується для підписки"
},
"confirm": "Підтвердити",
"confirmDelete": "Ви впевнені, що хочете видалити?",
"copy": "Копіювати",
@@ -94,6 +41,9 @@
"name": "Назва",
"noLimit": "Без обмежень",
"noReset": "Без Скидання",
"node": "Вузол",
"nodeGroup": "Група вузлів",
"nodes": "Вузли",
"pricing": "Ціноутворення",
"purchaseWithDiscount": "Дозволити Вирахування",
"purchaseWithDiscountDescription": "Увімкніть або вимкніть функцію відписки. Після активації система виконає обробку відрахувань згідно з налаштованими правилами та пропорціями, а залишкова вартість буде повернена на баланс",
@@ -106,9 +56,6 @@
"selectResetCycle": "Будь ласка, виберіть цикл скидання",
"selectSubscribeGroup": "Будь ласка, виберіть групу підписки",
"selectUnitTime": "Будь ласка, виберіть одиницю часу",
"server": "Сервер",
"serverGroup": "Група серверів",
"servers": "Сервери",
"speedLimit": "Обмеження швидкості",
"traffic": "Трафік",
"unitPrice": "Ціна за одиницю",
@@ -150,8 +97,6 @@
"subscribeGroup": "Підписатися на групу",
"tabs": {
"subscribe": "Підписатися",
"subscribeApp": "Конфігурація додатку",
"subscribeConfig": "Конфігурація підписки",
"subscribeGroup": "Група підписок"
},
"traffic": "Трафік",
-183
View File
@@ -1,183 +0,0 @@
{
"config": {
"addTimeSlot": "Додати часовий інтервал",
"communicationKey": "Ключ зв'язку",
"communicationKeyDescription": "Ключ для зв'язку вузлів для забезпечення безпеки даних",
"delete": "Видалити",
"dynamicMultiplier": "Динамічний множник",
"dynamicMultiplierDescription": "Динамічний множник означає обробку переданих даних з різними множниками для різних вузлів у різні періоди часу.",
"endTime": "Час завершення",
"inputPlaceholder": "Введіть",
"multiplier": "Множник",
"nodePullInterval": "Інтервал запиту вузла",
"nodePullIntervalDescription": "Частота (в секундах) запиту даних вузлами з панелі",
"nodePushInterval": "Інтервал передачі вузла",
"nodePushIntervalDescription": "Частота передачі даних вузлами на панель",
"reset": "Скинути",
"save": "Зберегти",
"saveSuccess": "Успішно збережено",
"startTime": "Час початку",
"timeSlot": "Часовий інтервал"
},
"group": {
"actions": "Дії",
"cancel": "Скасувати",
"confirm": "Підтвердити",
"confirmDelete": "Ви впевнені, що хочете видалити?",
"create": "Створити",
"createNodeGroup": "Створити групу вузлів",
"createdSuccessfully": "Успішно створено",
"delete": "Видалити",
"deleteWarning": "Після видалення дані не можуть бути відновлені, будь ласка, будьте обережні.",
"deletedSuccessfully": "Успішно видалено",
"description": "Опис",
"edit": "Редагувати",
"editNodeGroup": "Редагувати групу вузлів",
"name": "Назва",
"title": "Список груп вузлів",
"updatedAt": "Час оновлення"
},
"groupForm": {
"cancel": "Скасувати",
"confirm": "Підтвердити",
"description": "Опис",
"name": "Ім'я"
},
"node": {
"abnormal": "Аномалія",
"actions": "Дії",
"address": "Адреса",
"all": "Всі",
"basicInfo": "Основна інформація",
"cancel": "Скасувати",
"confirm": "Підтвердити",
"confirmDelete": "Ви впевнені, що хочете видалити?",
"copy": "Копіювати",
"copySuccess": "Успішно скопійовано",
"create": "Створити",
"createNode": "Створити вузол",
"createSuccess": "Успішно створено",
"delete": "Видалити",
"deleteSuccess": "Успішно видалено",
"deleteWarning": "Після видалення дані не можуть бути відновлені. Будь ласка, будьте обережні.",
"detail": "Деталі",
"disabled": "Вимкнено",
"disk": "Диск",
"edit": "Редагувати",
"editNode": "Редагувати вузол",
"enable": "Увімкнути",
"enabled": "Увімкнено",
"expireTime": "Час закінчення",
"hide": "Сховати",
"id": "ID",
"ipAddresses": "IP-адреси",
"lastUpdated": "Останнє оновлення",
"location": "Місцезнаходження",
"memory": "Пам'ять",
"name": "Назва",
"noData": "--",
"node": "Вузол",
"nodeDetail": "Деталі вузла",
"nodeGroup": "Група вузлів",
"nodeStatus": "Статус вузла",
"normal": "Нормальний",
"onlineCount": "Кількість онлайн",
"onlineUsers": "Онлайн користувачі",
"protocol": "Протокол",
"rate": "Швидкість",
"relay": "Реле",
"serverAddr": "Адреса сервера",
"speedLimit": "Обмеження швидкості",
"status": "Статус",
"subscribeId": "ID підписки",
"subscribeName": "Назва підписки",
"subscription": "Підписка",
"tags": "Теги",
"trafficRatio": "Швидкість трафіку",
"trafficUsage": "Використання трафіку",
"type": "Тип",
"updateSuccess": "Успішно оновлено",
"updatedAt": "Час оновлення",
"user": "Користувач",
"userDetail": "Деталі користувача",
"userId": "ID користувача"
},
"nodeForm": {
"allowInsecure": "Дозволити небезпечне з'єднання",
"cancel": "Скасувати",
"city": "Місто",
"confirm": "Підтвердити",
"congestionController": "Контролер перевантаження",
"country": "Країна",
"disableSni": "Вимкнути SNI",
"edit": "Редагувати",
"editSecurity": "Редагувати конфігурацію безпеки",
"enableTLS": "Увімкнути TLS",
"encryptionMethod": "Метод шифрування",
"fingerprint": "Відбиток",
"flow": "Алгоритм управління потоком",
"groupId": "Група вузлів",
"hopInterval": "Інтервал стрибків",
"hopPorts": "Порти стрибків",
"hopPortsPlaceholder": "Розділіть кілька портів комами",
"name": "Ім'я",
"obfsPassword": "Пароль обфускації",
"obfsPasswordPlaceholder": "Залиште порожнім для відсутності обфускації",
"path": "Шлях",
"pleaseSelect": "Будь ласка, виберіть",
"port": "Порт сервера",
"protocol": "Протокол",
"reduceRtt": "Зменшити RTT",
"relayHost": "Хост реле",
"relayMode": "Режим реле",
"relayPort": "Порт реле",
"relayPrefix": "Префікс реле",
"remarks": "Примітки",
"security": "Безпека",
"securityConfig": "Конфігурація безпеки",
"selectEncryptionMethod": "Виберіть метод шифрування",
"selectNodeGroup": "Виберіть групу вузлів",
"selectProtocol": "Виберіть протокол",
"selectRelayMode": "Виберіть режим реле",
"serverAddr": "Адреса сервера",
"serverKey": "Ключ сервера",
"serverName": "Назва служби",
"speedLimit": "Обмеження швидкості",
"speedLimitPlaceholder": "Необмежено",
"tags": "Теги",
"tagsPlaceholder": "Використовуйте Enter або кому (,) для введення кількох тегів",
"trafficRatio": "Коефіцієнт трафіку",
"transport": "Конфігурація транспортного протоколу",
"transportConfig": "Конфігурація транспортного протоколу",
"transportHost": "Адреса транспортного сервера",
"transportPath": "Транспортний шлях",
"transportServerName": "Назва транспортного сервера",
"udpRelayMode": "Режим UDP реле"
},
"relayModeOptions": {
"all": "Усі",
"none": "Жоден",
"random": "Випадковий"
},
"securityConfig": {
"fingerprint": "Відбиток",
"privateKey": "Приватний ключ",
"privateKeyPlaceholder": "Залиште порожнім для автоматичної генерації",
"publicKey": "Публічний ключ",
"publicKeyPlaceholder": "Залиште порожнім для автоматичної генерації",
"serverAddress": "Адреса сервера",
"serverAddressPlaceholder": "REALITY цільова адреса, за замовчуванням використовується SNI",
"serverName": "Назва сервера (SNI)",
"serverNamePlaceholder": "REALITY обов'язково, узгоджено з бекендом",
"serverPort": "Порт сервера",
"serverPortPlaceholder": "REALITY цільовий порт, за замовчуванням 443",
"shortId": "Короткий ID",
"shortIdPlaceholder": "Залиште порожнім для автоматичної генерації",
"sni": "Індикатор назви сервера (SNI)"
},
"tabs": {
"node": "Вузол",
"nodeConfig": "Конфігурація вузла",
"nodeGroup": "Група вузлів"
}
}
+101
View File
@@ -0,0 +1,101 @@
{
"address": "Адреса",
"address_placeholder": "Адреса сервера",
"cancel": "Скасувати",
"city": "Місто",
"config": {
"actions": {
"cancel": "Скасувати",
"save": "Зберегти"
},
"communicationKey": "Ключ комунікації",
"communicationKeyDescription": "Використовується для аутентифікації вузла.",
"description": "Керуйте ключами комунікації вузла, інтервалами витягування/відправлення та динамічними множниками.",
"dynamicMultiplier": "Динамічний множник",
"dynamicMultiplierDescription": "Визначте часові слоти та множники для коригування обліку трафіку.",
"endTime": "Час закінчення",
"inputPlaceholder": "Будь ласка, введіть",
"multiplier": "Множник",
"nodePullInterval": "Інтервал витягування вузла",
"nodePullIntervalDescription": "Як часто вузол витягує конфігурацію (секунди).",
"nodePushInterval": "Інтервал відправлення вузла",
"nodePushIntervalDescription": "Як часто вузол відправляє статистику (секунди).",
"reset": "Скинути",
"save": "Зберегти",
"saveSuccess": "Успішно збережено",
"startTime": "Час початку",
"timeSlot": "Часовий слот",
"title": "Налаштування вузла"
},
"confirm": "Підтвердити",
"confirmDeleteDesc": "Цю дію не можна скасувати.",
"confirmDeleteTitle": "Видалити цей сервер?",
"congestion_controller": "Контролер перевантаження",
"copied": "Скопійовано",
"copy": "Копіювати",
"country": "Країна",
"cpu": "ЦП",
"create": "Створити",
"created": "Успішно створено",
"delete": "Видалити",
"deleted": "Успішно видалено",
"disable_sni": "Вимкнути SNI",
"disk": "Диск",
"drawerCreateTitle": "Створити сервер",
"drawerEditTitle": "Редагувати сервер",
"edit": "Редагувати",
"enabled": "Увімкнено",
"encryption_method": "Метод шифрування",
"expireTime": "Час закінчення",
"expired": "Термін дії закінчився",
"flow": "Потік",
"hop_interval": "Інтервал стрибка",
"hop_ports": "Порти стрибка",
"hop_ports_placeholder": "наприклад, 1-65535",
"host": "Хост",
"id": "ID",
"ipAddresses": "IP адреси",
"memory": "Пам'ять",
"name": "Ім'я",
"noData": "Немає даних",
"notAvailable": "Н/Д",
"obfs_password": "Пароль обфускації",
"obfs_password_placeholder": "Введіть пароль обфускації",
"offline": "Офлайн",
"online": "Онлайн",
"onlineUsers": "Онлайн користувачі",
"pageTitle": "Сервери",
"path": "Шлях",
"please_select": "Будь ласка, виберіть",
"port": "Порт",
"protocols": "Протоколи",
"reduce_rtt": "Зменшити RTT",
"security_allow_insecure": "Дозволити небезпечне",
"security_fingerprint": "Відбиток",
"security_private_key": "Приватний ключ реальності",
"security_private_key_placeholder": "Введіть приватний ключ",
"security_public_key": "Публічний ключ реальності",
"security_public_key_placeholder": "Введіть публічний ключ",
"security_server_address": "Адреса сервера реальності",
"security_server_address_placeholder": "наприклад, 1.2.3.4 або домен",
"security_server_port": "Порт сервера реальності",
"security_short_id": "Короткий ID реальності",
"security_short_id_placeholder": "Шістнадцятковий рядок (до 16 символів)",
"security_sni": "SNI",
"security_title": "Безпека",
"select_encryption_method": "Виберіть метод шифрування",
"server_key": "Ключ сервера",
"service_name": "Назва служби",
"status": "Статус",
"subscribeId": "ID підписки",
"subscription": "Підписка",
"traffic": "Трафік",
"traffic_ratio": "Множник",
"transport_title": "Транспорт",
"udp_relay_mode": "Режим UDP ретрансляції",
"unitSecondsShort": "С",
"unlimited": "Без обмежень",
"updated": "Успішно оновлено",
"user": "Користувач",
"validation_failed": "Перевірка не вдалася. Будь ласка, перевірте форму."
}