♻️ 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": "Konfiguracja ADS",
"Announcement Management": "Zarządzanie ogłoszeniami",
"Application Management": "Zarządzanie aplikacjami",
"Auth Control": "Kontrola autoryzacji",
"Balance": "Saldo",
"Commerce": "Handel",
"Commission": "Prowizja",
"Coupon Management": "Zarządzanie kuponami",
"Dashboard": "Pulpit",
"Document Management": "Zarządzanie dokumentami",
"Finance": "Finanse",
"Email": "Email",
"Gift": "Prezent",
"Login": "Zaloguj się",
"Logs & Analytics": "Dzienniki i analityka",
"Maintenance": "Utrzymanie",
"Marketing Management": "Zarządzanie Marketingiem",
"Node Management": "Zarządzanie węzłami",
"Order Management": "Zarządzanie zamówieniami",
"Payment Config": "Konfiguracja płatności",
"Product Management": "Zarządzanie Produktem",
"Protocol Management": "Zarządzanie Protokołem",
"Rule Management": "Zarządzanie regułami",
"Server": "Serwer",
"Register": "Zarejestruj się",
"Reset Subscribe": "Zresetuj subskrypcję",
"SMS": "SMS",
"Server Management": "Zarządzanie serwerem",
"Settings": "Ustawienia",
"Server Traffic": "Ruch serwera",
"Subscribe": "Subskrybuj",
"Subscribe Config": "Konfiguracja subskrypcji",
"Subscribe Traffic": "Ruch subskrypcyjny",
"System": "System",
"System Config": "Konfiguracja systemu",
"System Management": "Zarządzanie systemem",
"System Tool": "Narzędzie systemowe",
"Ticket Management": "Zarządzanie zgłoszeniami",
"User": "Użytkownik",
"User Detail": "Szczegóły użytkownika",
"User Management": "Zarządzanie użytkownikami"
"User Management": "Zarządzanie użytkownikami",
"Users & Support": "Użytkownicy i wsparcie"
}
+37
View File
@@ -0,0 +1,37 @@
{
"address": "Adres",
"cancel": "Anuluj",
"confirm": "Potwierdź",
"confirmDeleteDesc": "Ta akcja nie może być cofnięta.",
"confirmDeleteTitle": "Usunąć ten węzeł?",
"copied": "Skopiowano",
"copy": "Kopiuj",
"create": "Utwórz",
"created": "Utworzono",
"delete": "Usuń",
"deleted": "Usunięto",
"drawerCreateTitle": "Utwórz węzeł",
"drawerEditTitle": "Edytuj węzeł",
"edit": "Edytuj",
"enabled": "Włączony",
"enabled_off": "Wyłączony",
"enabled_on": "Włączony",
"errors": {
"nameRequired": "Proszę wpisać nazwę",
"portRange": "Port musi być w zakresie od 1 do 65535",
"protocolRequired": "Proszę wybrać protokół",
"serverAddrRequired": "Proszę wpisać adres wejściowy",
"serverRequired": "Proszę wybrać serwer"
},
"name": "Nazwa",
"pageTitle": "Węzły",
"port": "Port",
"protocol": "Protokół",
"select_protocol": "Wybierz protokół…",
"select_server": "Wybierz serwer…",
"server": "Serwer",
"tags": "Tagi",
"tags_description": "Tag grupujący uprawnienia (w tym powiązania planu i polityki dostarczania).",
"tags_placeholder": "Użyj Enter lub przecinka (,) aby dodać wiele tagów",
"updated": "Zaktualizowano"
}
+3 -58
View File
@@ -1,59 +1,6 @@
{
"actions": "działania",
"app": {
"appDownloadURL": "URL pobierania aplikacji",
"appIcon": "Ikona aplikacji",
"appList": "Lista aplikacji",
"appName": "Nazwa aplikacji",
"backupDomains": "Lista domen zapasowych",
"backupDomainsDescription": "Lista domen zapasowych do rozwiązywania domen, jedna domena na linię",
"batchDelete": "Usuń zbiorczo",
"cancel": "Anuluj",
"communicationKey": "Klucz komunikacyjny",
"communicationKeyDescription": "Klucz używany do komunikacji z klientem",
"config": "Konfiguracja",
"configApp": "Konfiguracja aplikacji",
"confirm": "Potwierdź",
"confirmDelete": "Potwierdź usunięcie",
"create": "Utwórz",
"createApp": "Utwórz aplikację",
"createSuccess": "Utworzono pomyślnie",
"defaultVersion": "Domyślna",
"delete": "Usuń",
"deleteWarning": "Tej operacji nie można cofnąć",
"describeDescription": "Służy do opisu aplikacji, wyświetlany na liście aplikacji",
"description": "Opis",
"downloadLink": "Link do pobrania",
"edit": "Edytuj",
"editApp": "Edytuj aplikację",
"encryption": "Metoda szyfrowania",
"encryptionDescription": "Wybierz metodę szyfrowania dla komunikacji z klientem. Jeśli zostanie wybrana, klient będzie używał tej metody do komunikacji z serwerem",
"nameDescription": "Nazwa aplikacji, wyświetlana na liście aplikacji",
"platform": "Platforma",
"selectApp": "Wybierz aplikację",
"selectAppDescription": "Wybierz aplikację do skonfigurowania, wszystkie ustawienia będą dotyczyć wybranej aplikacji",
"startupPicture": "Obraz startowy",
"startupPictureDescription": "Obraz startowy, obsługuje obrazy sieciowe i lokalne. Dla obrazów sieciowych, proszę wprowadzić pełny URL obrazu",
"startupPicturePreview": "Podgląd obrazu startowego",
"startupPictureSkip": "Czas pominięcia obrazu startowego",
"startupPictureSkipDescription": "Czas wyświetlania obrazu startowego w sekundach, wprowadź 0, aby nie wyświetlać",
"subscriptionProtocol": "Protokół subskrypcji",
"updateSuccess": "Zaktualizowano pomyślnie",
"version": "Wersja"
},
"cancel": "Anuluj",
"config": {
"singleSubscriptionMode": "Tryb pojedynczej subskrypcji",
"subscriptionDomain": "Domena subskrypcji",
"subscriptionDomainDescription": "Używane do subskrypcji; pozostaw puste, aby użyć domeny witryny",
"subscriptionDomainPlaceholder": "Wprowadź domenę subskrypcji, jedna na linię",
"subscriptionPath": "Ścieżka subskrypcji",
"subscriptionPathDescription": "Używane do subskrypcji; upewnij się, że zrestartujesz system po modyfikacji dla optymalnej wydajności",
"subscriptionPathPlaceholder": "Wprowadź",
"updateSuccess": "Zaktualizowano pomyślnie",
"wildcardResolution": "Rozwiązanie wieloznaczne",
"wildcardResolutionDescription": "Używane do subskrypcji"
},
"confirm": "Potwierdź",
"confirmDelete": "Czy na pewno chcesz usunąć?",
"copy": "Kopiuj",
@@ -94,6 +41,9 @@
"name": "Nazwa",
"noLimit": "Bez ograniczeń",
"noReset": "Brak Resetu",
"node": "Węzeł",
"nodeGroup": "Grupa węzłów",
"nodes": "Węzły",
"pricing": "Cennik",
"purchaseWithDiscount": "Zezwól na Potrącenie",
"purchaseWithDiscountDescription": "Włącz lub wyłącz funkcję rezygnacji z subskrypcji. Po aktywacji system przeprowadzi proces odliczenia zgodnie z skonfigurowanymi zasadami i proporcjami, a pozostała wartość zostanie zwrócona na saldo",
@@ -106,9 +56,6 @@
"selectResetCycle": "Proszę wybrać cykl resetowania",
"selectSubscribeGroup": "Wybierz grupę subskrypcji",
"selectUnitTime": "Proszę wybrać jednostkę czasu",
"server": "Serwer",
"serverGroup": "Grupa serwerów",
"servers": "Serwery",
"speedLimit": "Limit prędkości ",
"traffic": "Ruch",
"unitPrice": "Cena jednostkowa",
@@ -150,8 +97,6 @@
"subscribeGroup": "Subskrybuj grupę",
"tabs": {
"subscribe": "Subskrybuj",
"subscribeApp": "Konfiguracja aplikacji",
"subscribeConfig": "Konfiguracja subskrypcji",
"subscribeGroup": "Grupa subskrypcji"
},
"traffic": "ruch",
-183
View File
@@ -1,183 +0,0 @@
{
"config": {
"addTimeSlot": "Dodaj przedział czasowy",
"communicationKey": "Klucz komunikacyjny",
"communicationKeyDescription": "Klucz do komunikacji węzłów w celu zapewnienia bezpieczeństwa danych",
"delete": "Usuń",
"dynamicMultiplier": "Mnożnik dynamiczny",
"dynamicMultiplierDescription": "Mnożnik dynamiczny odnosi się do przetwarzania przesyłanych danych z różnymi mnożnikami dla różnych węzłów w różnych okresach czasu.",
"endTime": "Czas zakończenia",
"inputPlaceholder": "Wprowadź",
"multiplier": "Mnożnik",
"nodePullInterval": "Interwał pobierania węzła",
"nodePullIntervalDescription": "Częstotliwość (w sekundach) pobierania danych przez węzły z panelu",
"nodePushInterval": "Interwał przesyłania węzła",
"nodePushIntervalDescription": "Częstotliwość przesyłania danych przez węzły do panelu",
"reset": "Resetuj",
"save": "Zapisz",
"saveSuccess": "Zapisano pomyślnie",
"startTime": "Czas rozpoczęcia",
"timeSlot": "Przedział czasowy"
},
"group": {
"actions": "Operacje",
"cancel": "Anuluj",
"confirm": "Potwierdź",
"confirmDelete": "Czy na pewno chcesz usunąć?",
"create": "Utwórz",
"createNodeGroup": "Utwórz grupę węzłów",
"createdSuccessfully": "Utworzono pomyślnie",
"delete": "Usuń",
"deleteWarning": "Po usunięciu dane nie będą mogły zostać odzyskane, proszę postępować ostrożnie.",
"deletedSuccessfully": "Usunięto pomyślnie",
"description": "Opis",
"edit": "Edytuj",
"editNodeGroup": "Edytuj grupę węzłów",
"name": "Nazwa",
"title": "Lista grup węzłów",
"updatedAt": "Czas aktualizacji"
},
"groupForm": {
"cancel": "Anuluj",
"confirm": "Potwierdź",
"description": "Opis",
"name": "Nazwa"
},
"node": {
"abnormal": "Nieprawidłowy",
"actions": "Działania",
"address": "Adres",
"all": "Wszystko",
"basicInfo": "Podstawowe informacje",
"cancel": "Anuluj",
"confirm": "Potwierdź",
"confirmDelete": "Czy na pewno chcesz usunąć?",
"copy": "Kopiuj",
"copySuccess": "Skopiowano pomyślnie",
"create": "Utwórz",
"createNode": "Utwórz węzeł",
"createSuccess": "Utworzono pomyślnie",
"delete": "Usuń",
"deleteSuccess": "Usunięto pomyślnie",
"deleteWarning": "Po usunięciu dane nie będą mogły zostać odzyskane. Proszę postępować ostrożnie.",
"detail": "Szczegóły",
"disabled": "Wyłączone",
"disk": "Dysk",
"edit": "Edytuj",
"editNode": "Edytuj węzeł",
"enable": "Włącz",
"enabled": "Włączone",
"expireTime": "Czas wygaśnięcia",
"hide": "Ukryj",
"id": "ID",
"ipAddresses": "Adresy IP",
"lastUpdated": "Ostatnia aktualizacja",
"location": "Lokalizacja",
"memory": "Pamięć",
"name": "Nazwa",
"noData": "--",
"node": "Węzeł",
"nodeDetail": "Szczegóły węzła",
"nodeGroup": "Grupa węzłów",
"nodeStatus": "Status węzła",
"normal": "Normalny",
"onlineCount": "Liczba osób online",
"onlineUsers": "Użytkownicy online",
"protocol": "Protokół",
"rate": "Stawka",
"relay": "Przekaźnik",
"serverAddr": "Adres serwera",
"speedLimit": "Ograniczenie prędkości",
"status": "Status",
"subscribeId": "ID subskrypcji",
"subscribeName": "Nazwa subskrypcji",
"subscription": "Subskrypcja",
"tags": "Tagi",
"trafficRatio": "Wskaźnik ruchu",
"trafficUsage": "Użycie ruchu",
"type": "Typ",
"updateSuccess": "Aktualizacja zakończona pomyślnie",
"updatedAt": "Czas aktualizacji",
"user": "Użytkownik",
"userDetail": "Szczegóły użytkownika",
"userId": "ID użytkownika"
},
"nodeForm": {
"allowInsecure": "Zezwól na niebezpieczne połączenia",
"cancel": "Anuluj",
"city": "Miasto",
"confirm": "Potwierdź",
"congestionController": "Kontroler przeciążenia",
"country": "Kraj",
"disableSni": "Wyłącz SNI",
"edit": "Edytuj",
"editSecurity": "Edytuj konfigurację zabezpieczeń",
"enableTLS": "Włącz TLS",
"encryptionMethod": "Metoda szyfrowania",
"fingerprint": "Odcisk palca",
"flow": "Algorytm kontroli przepływu",
"groupId": "Grupa węzłów",
"hopInterval": "Interwał skoków",
"hopPorts": "Porty skoków",
"hopPortsPlaceholder": "Oddziel wiele portów przecinkami",
"name": "Nazwa",
"obfsPassword": "Hasło obfuskacji",
"obfsPasswordPlaceholder": "Pozostaw puste, aby nie stosować obfuskacji",
"path": "Ścieżka",
"pleaseSelect": "Proszę wybrać",
"port": "Port serwera",
"protocol": "Protokół",
"reduceRtt": "Zredukuj RTT",
"relayHost": "Host przekaźnika",
"relayMode": "Tryb przekaźnika",
"relayPort": "Port przekaźnika",
"relayPrefix": "Prefiks przekaźnika",
"remarks": "Uwagi",
"security": "Zabezpieczenia",
"securityConfig": "Konfiguracja zabezpieczeń",
"selectEncryptionMethod": "Wybierz metodę szyfrowania",
"selectNodeGroup": "Wybierz grupę węzłów",
"selectProtocol": "Wybierz protokół",
"selectRelayMode": "Wybierz tryb przekaźnika",
"serverAddr": "Adres serwera",
"serverKey": "Klucz serwera",
"serverName": "Nazwa usługi",
"speedLimit": "Limit prędkości",
"speedLimitPlaceholder": "Nieograniczony",
"tags": "Tagi",
"tagsPlaceholder": "Użyj Enter lub przecinka (,) aby wprowadzić wiele tagów",
"trafficRatio": "Wskaźnik ruchu",
"transport": "Konfiguracja protokołu transportowego",
"transportConfig": "Konfiguracja protokołu transportowego",
"transportHost": "Adres serwera transportowego",
"transportPath": "Ścieżka transportu",
"transportServerName": "Nazwa serwera transportowego",
"udpRelayMode": "Tryb przekaźnika UDP"
},
"relayModeOptions": {
"all": "Wszystkie",
"none": "Brak",
"random": "Losowo"
},
"securityConfig": {
"fingerprint": "Odcisk palca",
"privateKey": "Klucz prywatny",
"privateKeyPlaceholder": "Pozostaw puste, aby automatycznie wygenerować",
"publicKey": "Klucz publiczny",
"publicKeyPlaceholder": "Pozostaw puste, aby automatycznie wygenerować",
"serverAddress": "Adres serwera",
"serverAddressPlaceholder": "Adres docelowy REALITY, domyślnie używa SNI",
"serverName": "Nazwa serwera (SNI)",
"serverNamePlaceholder": "REALITY wymagane, zgodne z backendem",
"serverPort": "Port serwera",
"serverPortPlaceholder": "Docelowy port REALITY, domyślnie 443",
"shortId": "Krótki ID",
"shortIdPlaceholder": "Pozostaw puste, aby automatycznie wygenerować",
"sni": "Wskazanie nazwy serwera (SNI)"
},
"tabs": {
"node": "Węzeł",
"nodeConfig": "Konfiguracja Węzła",
"nodeGroup": "Grupa węzłów"
}
}
+101
View File
@@ -0,0 +1,101 @@
{
"address": "Adres",
"address_placeholder": "Adres serwera",
"cancel": "Anuluj",
"city": "Miasto",
"config": {
"actions": {
"cancel": "Anuluj",
"save": "Zapisz"
},
"communicationKey": "Klucz komunikacyjny",
"communicationKeyDescription": "Używany do uwierzytelniania węzła.",
"description": "Zarządzaj kluczami komunikacyjnymi węzła, interwałami pobierania/wysyłania oraz dynamicznymi mnożnikami.",
"dynamicMultiplier": "Dynamiczny mnożnik",
"dynamicMultiplierDescription": "Zdefiniuj przedziały czasowe i mnożniki, aby dostosować rozliczanie ruchu.",
"endTime": "Czas zakończenia",
"inputPlaceholder": "Proszę wpisać",
"multiplier": "Mnożnik",
"nodePullInterval": "Interwał pobierania węzła",
"nodePullIntervalDescription": "Jak często węzeł pobiera konfigurację (sekundy).",
"nodePushInterval": "Interwał wysyłania węzła",
"nodePushIntervalDescription": "Jak często węzeł wysyła statystyki (sekundy).",
"reset": "Resetuj",
"save": "Zapisz",
"saveSuccess": "Zapisano pomyślnie",
"startTime": "Czas rozpoczęcia",
"timeSlot": "Przedział czasowy",
"title": "Konfiguracja węzła"
},
"confirm": "Potwierdź",
"confirmDeleteDesc": "Ta akcja nie może być cofnięta.",
"confirmDeleteTitle": "Usunąć ten serwer?",
"congestion_controller": "Kontroler przeciążenia",
"copied": "Skopiowano",
"copy": "Kopiuj",
"country": "Kraj",
"cpu": "CPU",
"create": "Utwórz",
"created": "Utworzono pomyślnie",
"delete": "Usuń",
"deleted": "Usunięto pomyślnie",
"disable_sni": "Wyłącz SNI",
"disk": "Dysk",
"drawerCreateTitle": "Utwórz serwer",
"drawerEditTitle": "Edytuj serwer",
"edit": "Edytuj",
"enabled": "Włączony",
"encryption_method": "Metoda szyfrowania",
"expireTime": "Czas wygaśnięcia",
"expired": "Wygasł",
"flow": "Przepływ",
"hop_interval": "Interwał skoku",
"hop_ports": "Porty skoku",
"hop_ports_placeholder": "np. 1-65535",
"host": "Host",
"id": "ID",
"ipAddresses": "Adresy IP",
"memory": "Pamięć",
"name": "Nazwa",
"noData": "Brak danych",
"notAvailable": "N/D",
"obfs_password": "Hasło obfuskacji",
"obfs_password_placeholder": "Wprowadź hasło obfuskacji",
"offline": "Offline",
"online": "Online",
"onlineUsers": "Użytkownicy online",
"pageTitle": "Serwery",
"path": "Ścieżka",
"please_select": "Proszę wybrać",
"port": "Port",
"protocols": "Protokoły",
"reduce_rtt": "Zredukuj RTT",
"security_allow_insecure": "Zezwól na niebezpieczne",
"security_fingerprint": "Odcisk palca",
"security_private_key": "Prywatny klucz rzeczywistości",
"security_private_key_placeholder": "Wprowadź klucz prywatny",
"security_public_key": "Publiczny klucz rzeczywistości",
"security_public_key_placeholder": "Wprowadź klucz publiczny",
"security_server_address": "Adres serwera rzeczywistości",
"security_server_address_placeholder": "np. 1.2.3.4 lub domena",
"security_server_port": "Port serwera rzeczywistości",
"security_short_id": "Krótki ID rzeczywistości",
"security_short_id_placeholder": "Ciąg szesnastkowy (do 16 znaków)",
"security_sni": "SNI",
"security_title": "Bezpieczeństwo",
"select_encryption_method": "Wybierz metodę szyfrowania",
"server_key": "Klucz serwera",
"service_name": "Nazwa usługi",
"status": "Status",
"subscribeId": "ID subskrypcji",
"subscription": "Subskrypcja",
"traffic": "Ruch",
"traffic_ratio": "Mnożnik",
"transport_title": "Transport",
"udp_relay_mode": "Tryb przekazywania UDP",
"unitSecondsShort": "S",
"unlimited": "Nieograniczone",
"updated": "Zaktualizowano pomyślnie",
"user": "Użytkownik",
"validation_failed": "Walidacja nie powiodła się. Proszę sprawdzić formularz."
}