mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 02:11:53 +00:00
better language and show wg config on device save (#3065)
* better language and show wg config on device save * chore: fix --------- Co-authored-by: waterplea <alexander@inkin.ru>
This commit is contained in:
@@ -535,6 +535,7 @@ export default {
|
||||
569: 'Wählen Sie eine Zertifizierungsstelle aus, um SSL/TLS-Zertifikate für diese Domain auszustellen.',
|
||||
570: 'Andere',
|
||||
571: 'Ein Name zur einfachen Identifizierung des Gateways',
|
||||
572: 'Nicht gut für öffentlichen Zugriff, da das Zertifikat von der Root-CA Ihres Servers signiert ist',
|
||||
574: 'Datei',
|
||||
575: 'StartTunnel-Konfigurationsdatei',
|
||||
576: 'Kopieren/Einfügen',
|
||||
@@ -548,7 +549,7 @@ export default {
|
||||
584: 'Verbindungen können manchmal langsam oder unzuverlässig sein',
|
||||
585: 'Öffentlich, wenn Sie die Adresse öffentlich teilen, andernfalls privat',
|
||||
586: 'Erfordert ein Tor-fähiges Gerät oder einen Browser',
|
||||
587: 'Nur nützlich für Clients, die SSL erzwingen',
|
||||
587: 'In den meisten Fällen nicht empfohlen. Nur erforderlich für Apps, die HTTPS erzwingen',
|
||||
588: 'Ideal für anonyme, zensurresistente Bereitstellung und Fernzugriff',
|
||||
589: 'Ideal für lokalen Zugriff',
|
||||
590: 'Erfordert die Verbindung mit demselben lokalen Netzwerk (LAN) wie Ihr Server, entweder physisch oder über VPN',
|
||||
@@ -561,11 +562,11 @@ export default {
|
||||
597: 'der sich auflöst zu',
|
||||
598: 'Nicht empfohlen für VPN-Zugriff. VPNs unterstützen keine „.local“-Domains ohne erweiterte Konfiguration',
|
||||
599: 'Kann für Clearnet-Zugriff verwendet werden',
|
||||
600: 'In den meisten Fällen nicht empfohlen. Öffentliche Domains werden bevorzugt',
|
||||
600: 'In den meisten Fällen nicht empfohlen. Öffentliche Domains sind üblicher und werden bevorzugt',
|
||||
601: 'Lokal',
|
||||
602: 'Kann für lokalen Zugriff verwendet werden',
|
||||
603: 'Ideal für öffentlichen Zugriff über das Internet',
|
||||
604: 'Kann für persönlichen Zugriff über das öffentliche Internet verwendet werden. VPN ist privater und sicherer',
|
||||
604: 'Kann für persönlichen Zugriff über das öffentliche Internet verwendet werden, aber ein VPN ist privater und sicherer',
|
||||
605: 'wenn die Verwendung von IP-Adressen und Ports unerwünscht ist',
|
||||
606: 'Host',
|
||||
607: 'Wert',
|
||||
|
||||
@@ -534,6 +534,7 @@ export const ENGLISH = {
|
||||
'Select a Certificate Authority to issue SSL/TLS certificates for this domain': 569,
|
||||
'Other': 570, // as in, a list option to indicate none of the options listed
|
||||
'A name to easily identify the gateway': 571,
|
||||
"Not good for public access, since the certificate is signed by your Server's Root CA": 572,
|
||||
'File': 574, // as in, a computer file
|
||||
'StartTunnel Config File': 575,
|
||||
'Copy/Paste': 576,
|
||||
@@ -547,7 +548,7 @@ export const ENGLISH = {
|
||||
'Connections can be slow or unreliable at times': 584,
|
||||
'Public if you share the address publicly, otherwise private': 585,
|
||||
'Requires using a Tor-enabled device or browser': 586,
|
||||
'Only useful for clients that require SSL': 587,
|
||||
'Not recommended in most cases. Only needed for apps that enforce HTTPS': 587,
|
||||
'Ideal for anonymous, censorship-resistant hosting and remote access': 588,
|
||||
'Ideal for local access': 589,
|
||||
'Requires being connected to the same Local Area Network (LAN) as your server, either physically or via VPN': 590,
|
||||
@@ -560,11 +561,11 @@ export const ENGLISH = {
|
||||
'that resolves to': 597, // this is a partial sentence. It is preceded by "requires a DNS record for [domain] "
|
||||
'Not recommended for VPN access. VPNs do not support ".local" domains without advanced configuration': 598,
|
||||
'Can be used for clearnet access': 599,
|
||||
'Not recommended in most cases. Public domains are preferred': 600,
|
||||
'Not recommended in most cases. Using a public domain is more common and preferred': 600,
|
||||
'Local': 601, // as in, not remote
|
||||
'Can be used for local access': 602,
|
||||
'Ideal for public access via the Internet': 603,
|
||||
'Can be used for personal access via the public Internet. VPN is more private and secure': 604,
|
||||
'Can be used for personal access via the public Internet, but a VPN is more private and secure': 604,
|
||||
'when using IP addresses and ports is undesirable': 605, // this is a partial sentence. It is preceded by "Good for connections "
|
||||
'Host': 606, // as in, a network host
|
||||
'Value': 607, // as in, the value in a column of a table
|
||||
|
||||
@@ -535,6 +535,7 @@ export default {
|
||||
569: 'Selecciona una Autoridad Certificadora para emitir certificados SSL/TLS para este dominio.',
|
||||
570: 'Otro',
|
||||
571: 'Un nombre para identificar fácilmente la puerta de enlace',
|
||||
572: 'No es adecuado para acceso público, ya que el certificado está firmado por la CA raíz de tu servidor',
|
||||
574: 'Archivo',
|
||||
575: 'Archivo de configuración de StartTunnel',
|
||||
576: 'Copiar/Pegar',
|
||||
@@ -548,7 +549,7 @@ export default {
|
||||
584: 'Las conexiones pueden ser lentas o poco confiables a veces',
|
||||
585: 'Público si compartes la dirección públicamente, de lo contrario privado',
|
||||
586: 'Requiere un dispositivo o navegador habilitado para Tor',
|
||||
587: 'Solo útil para clientes que imponen SSL',
|
||||
587: 'No recomendado en la mayoría de los casos. Solo necesario para aplicaciones que imponen HTTPS',
|
||||
588: 'Ideal para alojamiento y acceso remoto anónimo y resistente a la censura',
|
||||
589: 'Ideal para acceso local',
|
||||
590: 'Requiere estar conectado a la misma red de área local (LAN) que tu servidor, ya sea físicamente o mediante VPN',
|
||||
@@ -561,11 +562,11 @@ export default {
|
||||
597: 'que se resuelva en',
|
||||
598: 'No recomendado para acceso VPN. Las VPN no admiten dominios “.local” sin configuración avanzada',
|
||||
599: 'Se puede usar para acceso a clearnet',
|
||||
600: 'No recomendado en la mayoría de los casos. Se prefieren los dominios de públicos',
|
||||
600: 'No recomendado en la mayoría de los casos. Los dominios públicos son más comunes y preferidos',
|
||||
601: 'Local',
|
||||
602: 'Se puede usar para acceso local',
|
||||
603: 'Ideal para acceso público a través de Internet',
|
||||
604: 'Se puede usar para acceso personal a través de Internet público. VPN es más privado y seguro',
|
||||
604: 'Puede usarse para acceso personal a través de Internet público, pero una VPN es más privada y segura',
|
||||
605: 'cuando el uso de direcciones IP y puertos no es deseable',
|
||||
606: 'Host',
|
||||
607: 'Valor',
|
||||
|
||||
@@ -535,6 +535,7 @@ export default {
|
||||
569: 'Sélectionnez une Autorité de Certification pour émettre des certificats SSL/TLS pour ce domaine.',
|
||||
570: 'Autre',
|
||||
571: 'Un nom pour identifier facilement la passerelle',
|
||||
572: 'Pas idéal pour un accès public, car le certificat est signé par l’AC racine de votre serveur',
|
||||
574: 'Fichier',
|
||||
575: 'Fichier de configuration StartTunnel',
|
||||
576: 'Copier/Coller',
|
||||
@@ -548,7 +549,7 @@ export default {
|
||||
584: 'Les connexions peuvent parfois être lentes ou peu fiables',
|
||||
585: 'Public si vous partagez l’adresse publiquement, sinon privé',
|
||||
586: 'Nécessite un appareil ou un navigateur compatible Tor',
|
||||
587: 'Utile uniquement pour les clients qui imposent SSL',
|
||||
587: 'Non recommandé dans la plupart des cas. Nécessaire uniquement pour les applications qui imposent HTTPS',
|
||||
588: 'Idéal pour l’hébergement et l’accès à distance anonymes et résistants à la censure',
|
||||
589: 'Idéal pour un accès local',
|
||||
590: 'Nécessite d’être connecté au même réseau local (LAN) que votre serveur, soit physiquement, soit via VPN',
|
||||
@@ -561,11 +562,11 @@ export default {
|
||||
597: 'qui se résout en',
|
||||
598: 'Non recommandé pour l’accès VPN. Les VPN ne prennent pas en charge les domaines « .local » sans configuration avancée',
|
||||
599: 'Peut être utilisé pour un accès clearnet',
|
||||
600: 'Non recommandé dans la plupart des cas. Les domaines publics sont préférés',
|
||||
600: 'Non recommandé dans la plupart des cas. Les domaines publics sont plus courants et préférés',
|
||||
601: 'Local',
|
||||
602: 'Peut être utilisé pour un accès local',
|
||||
603: 'Idéal pour un accès public via Internet',
|
||||
604: 'Peut être utilisé pour un accès personnel via Internet public. Le VPN est plus privé et sécurisé',
|
||||
604: 'Peut être utilisé pour un accès personnel via l’Internet public, mais un VPN est plus privé et plus sécurisé',
|
||||
605: 'lorsque l’utilisation des adresses IP et des ports est indésirable',
|
||||
606: 'Hôte',
|
||||
607: 'Valeur',
|
||||
|
||||
@@ -535,6 +535,7 @@ export default {
|
||||
569: 'Wybierz Urząd Certyfikacji, aby wystawić certyfikaty SSL/TLS dla tej domeny.',
|
||||
570: 'Inne',
|
||||
571: 'Nazwa ułatwiająca identyfikację bramy',
|
||||
572: 'Niezalecane do publicznego dostępu, ponieważ certyfikat jest podpisany przez główną CA serwera',
|
||||
574: 'Plik',
|
||||
575: 'Plik konfiguracyjny StartTunnel',
|
||||
576: 'Kopiuj/Wklej',
|
||||
@@ -548,7 +549,7 @@ export default {
|
||||
584: 'Połączenia mogą być czasami wolne lub niestabilne',
|
||||
585: 'Publiczne, jeśli udostępniasz adres publicznie, w przeciwnym razie prywatne',
|
||||
586: 'Wymaga urządzenia lub przeglądarki obsługującej Tor',
|
||||
587: 'Przydatne tylko dla klientów wymuszających SSL',
|
||||
587: 'Niezalecane w większości przypadków. Wymagane tylko dla aplikacji wymuszających HTTPS',
|
||||
588: 'Idealne do anonimowego, odpornego na cenzurę hostingu i zdalnego dostępu',
|
||||
589: 'Idealne do dostępu lokalnego',
|
||||
590: 'Wymaga połączenia z tą samą siecią lokalną (LAN) co serwer, fizycznie lub przez VPN',
|
||||
@@ -561,11 +562,11 @@ export default {
|
||||
597: 'który rozwiązuje się na',
|
||||
598: 'Niezalecane do dostępu VPN. VPN-y nie obsługują domen „.local” bez zaawansowanej konfiguracji',
|
||||
599: 'Może być używane do dostępu do clearnet',
|
||||
600: 'Niezalecane w większości przypadków. Preferowane są domeny publiczne',
|
||||
600: 'Niezalecane w większości przypadków. Domeny publiczne są bardziej powszechne i preferowane',
|
||||
601: 'Lokalne',
|
||||
602: 'Może być używane do dostępu lokalnego',
|
||||
603: 'Idealne do publicznego dostępu przez Internet',
|
||||
604: 'Może być używane do osobistego dostępu przez publiczny Internet. VPN jest bardziej prywatny i bezpieczny',
|
||||
604: 'Może być używane do osobistego dostępu przez publiczny Internet, ale VPN jest bardziej prywatny i bezpieczny',
|
||||
605: 'gdy używanie adresów IP i portów jest niepożądane',
|
||||
606: 'Host',
|
||||
607: 'Wartość',
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
import { AsyncPipe } from '@angular/common'
|
||||
import {
|
||||
ChangeDetectionStrategy,
|
||||
Component,
|
||||
inject,
|
||||
Signal,
|
||||
} from '@angular/core'
|
||||
import { ChangeDetectionStrategy, Component, inject } from '@angular/core'
|
||||
import {
|
||||
NonNullableFormBuilder,
|
||||
ReactiveFormsModule,
|
||||
@@ -23,6 +18,7 @@ import {
|
||||
TuiError,
|
||||
TuiTextfield,
|
||||
} from '@taiga-ui/core'
|
||||
import { TuiDialogService } from '@taiga-ui/experimental'
|
||||
import {
|
||||
TuiChevron,
|
||||
TuiDataListWrapper,
|
||||
@@ -34,12 +30,13 @@ import { TuiForm } from '@taiga-ui/layout'
|
||||
import { injectContext, PolymorpheusComponent } from '@taiga-ui/polymorpheus'
|
||||
import { ApiService } from 'src/app/services/api/api.service'
|
||||
|
||||
import { DEVICES_CONFIG } from './config'
|
||||
import {
|
||||
getIp,
|
||||
DeviceData,
|
||||
getIp,
|
||||
ipInSubnetValidator,
|
||||
MappedSubnet,
|
||||
subnetValidator,
|
||||
ipInSubnetValidator,
|
||||
} from './utils'
|
||||
|
||||
@Component({
|
||||
@@ -118,6 +115,7 @@ export class DevicesAdd {
|
||||
private readonly loading = inject(LoadingService)
|
||||
private readonly api = inject(ApiService)
|
||||
private readonly errorService = inject(ErrorService)
|
||||
private readonly dialogs = inject(TuiDialogService)
|
||||
|
||||
protected readonly mobile = inject(TUI_IS_MOBILE)
|
||||
protected readonly context =
|
||||
@@ -167,9 +165,18 @@ export class DevicesAdd {
|
||||
const data = { ip, name, subnet: subnet?.range || '' }
|
||||
|
||||
try {
|
||||
this.context.data.device
|
||||
? await this.api.editDevice(data)
|
||||
: await this.api.addDevice(data)
|
||||
if (this.context.data.device) {
|
||||
await this.api.editDevice(data)
|
||||
} else {
|
||||
await this.api.addDevice(data)
|
||||
|
||||
const config = await this.api.showDeviceConfig({
|
||||
subnet: data.subnet,
|
||||
ip,
|
||||
})
|
||||
|
||||
this.dialogs.open(DEVICES_CONFIG, { data: config }).subscribe()
|
||||
}
|
||||
} catch (e: any) {
|
||||
console.error(e)
|
||||
this.errorService.handleError(e)
|
||||
|
||||
@@ -354,7 +354,9 @@ export class InterfaceService {
|
||||
if (ssl) {
|
||||
type = `${type} (SSL)`
|
||||
bullets = [
|
||||
this.i18n.transform('Only useful for clients that require SSL'),
|
||||
this.i18n.transform(
|
||||
'Not recommended in most cases. Only needed for apps that enforce HTTPS',
|
||||
),
|
||||
rootCaRequired,
|
||||
...bullets,
|
||||
]
|
||||
@@ -409,13 +411,13 @@ export class InterfaceService {
|
||||
bullets = [
|
||||
this.i18n.transform('Can be used for clearnet access'),
|
||||
this.i18n.transform(
|
||||
'Not recommended in most cases. Public domains are preferred',
|
||||
'Not recommended in most cases. Using a public domain is more common and preferred',
|
||||
),
|
||||
rootCaRequired,
|
||||
]
|
||||
if (!info.gateway.public) {
|
||||
bullets.push(
|
||||
`${portForwarding} "${gatewayName}": ${port} -> ${gateway?.subnets.find(s => s.isIpv4())?.address}:${port}`,
|
||||
`${portForwarding} "${gatewayName}": ${port} -> ${port}`,
|
||||
)
|
||||
}
|
||||
} else {
|
||||
@@ -452,7 +454,7 @@ export class InterfaceService {
|
||||
|
||||
if (!info.gateway.public) {
|
||||
bullets.push(
|
||||
`${portForwarding} "${gatewayName}": ${port} -> ${gateway?.subnets.find(s => s.isIpv4())?.address}:${port === 443 ? 5443 : port}`,
|
||||
`${portForwarding} "${gatewayName}": ${port} -> ${port === 443 ? 5443 : port}`,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -463,7 +465,10 @@ export class InterfaceService {
|
||||
} else {
|
||||
bullets = [
|
||||
this.i18n.transform(
|
||||
'Can be used for personal access via the public Internet. VPN is more private and secure',
|
||||
'Can be used for personal access via the public Internet, but a VPN is more private and secure',
|
||||
),
|
||||
this.i18n.transform(
|
||||
`Not good for public access, since the certificate is signed by your Server's Root CA`,
|
||||
),
|
||||
rootCaRequired,
|
||||
...bullets,
|
||||
|
||||
Reference in New Issue
Block a user