diff --git a/messages/de-DE.json b/messages/de-DE.json index 2a9668d8..43374cc3 100644 --- a/messages/de-DE.json +++ b/messages/de-DE.json @@ -1,33 +1,33 @@ { - "setupCreate": "Erstelle eine Organisation, Site und Ressourcen", + "setupCreate": "Erstelle deine Organisation, Seite und Ressourcen", "setupNewOrg": "Neue Organisation", "setupCreateOrg": "Organisation erstellen", "setupCreateResources": "Ressource erstellen", - "setupOrgName": "Name der Organisation", - "orgDisplayName": "Anzeigename der Organisation.", + "setupOrgName": "Organisation's Name", + "orgDisplayName": "Dies ist der Anzeigename Ihrer Organisation.", "orgId": "Organisations-ID", - "setupIdentifierMessage": "Dies ist eine Eindeutige ID für Ihre Organisation. Diese ist unabhängig vom Anzeigenamen.", - "setupErrorIdentifier": "Organisations-ID ist bereits vergeben. Bitte wähle eine andere.", - "componentsErrorNoMemberCreate": "Du bist derzeit kein Mitglied einer Organisation. Erstelle eine Organisation, um zu starten.", + "setupIdentifierMessage": "Dies ist der eindeutige Bezeichner für Ihre Organisation. Dies ist getrennt vom Anzeigenamen.", + "setupErrorIdentifier": "Organisations-ID ist bereits vergeben. Bitte wählen Sie eine andere.", + "componentsErrorNoMemberCreate": "Sie sind derzeit kein Mitglied einer Organisation. Erstellen Sie eine Organisation, um loszulegen.", "componentsErrorNoMember": "Du bist aktuell kein Mitglied einer Organisation.", "welcome": "Willkommen zu Pangolin", "componentsCreateOrg": "Erstelle eine Organisation", "componentsMember": "Du bist Mitglied von {count, plural, =0 {keiner Organisation} =1 {einer Organisation} other {# Organisationen}}.", - "componentsInvalidKey": "Ungültige oder abgelaufene Lizenzschlüssel erkannt. Beachte die Lizenzbedingungen, um alle Funktionen weiterhin zu nutzen.", + "componentsInvalidKey": "Ungültige oder abgelaufene Lizenzschlüssel erkannt. Folgen Sie den Lizenzbedingungen, um alle Funktionen weiter zu nutzen.", "dismiss": "Verwerfen", - "componentsLicenseViolation": "Lizenzverstoß: Dieser Server benutzt {usedSites} Sites, die das Lizenzlimit der {maxSites} Sites überschreiten. Beachte die Lizenzbedingungen, um alle Funktionen weiterhin zu nutzen.", + "componentsLicenseViolation": "Lizenzverletzung: Dieser Server benutzt {usedSites} Sites, die das Lizenzlimit der {maxSites} Sites überschreiten. Folgen Sie den Lizenzbedingungen, um alle Funktionen weiter zu nutzen.", "componentsSupporterMessage": "Vielen Dank für die Unterstützung von Pangolin als {tier}!", - "inviteErrorNotValid": "Es tut uns leid, aber es sieht so aus, als wäre die Einladung, auf die du zugreifen möchtest, entweder nicht angenommen worden oder nicht mehr gültig.", - "inviteErrorUser": "Es tut uns leid, aber es scheint, als sei die Einladung, auf die du zugreifen möchtest, nicht für diesen Benutzer bestimmt.", - "inviteLoginUser": "Bitte stelle sicher, dass du als korrekter Benutzer angemeldet bist.", - "inviteErrorNoUser": "Es tut uns leid, aber es sieht so aus, als sei die Einladung, auf die du zugreifen möchtest, nicht für einen existierenden Benutzer bestimmt.", - "inviteCreateUser": "Bitte erstelle zuerst ein Konto.", - "goHome": "Zur Startseite", + "inviteErrorNotValid": "Es tut uns leid, aber es sieht so aus, als ob die Einladung, auf die du zugreifen möchtest, nicht angenommen wurde oder nicht mehr gültig ist.", + "inviteErrorUser": "Es tut uns leid, aber es sieht so aus, als ob die Einladung, auf die du zugreifen möchtest, nicht für diesen Benutzer ist.", + "inviteLoginUser": "Bitte stellen Sie sicher, dass Sie als korrekter Benutzer angemeldet sind.", + "inviteErrorNoUser": "Es tut uns leid, aber es sieht so aus, als ob die Einladung, auf die du zugreifen möchtest, nicht für einen Benutzer ist, der existiert.", + "inviteCreateUser": "Bitte erstellen Sie zuerst ein Konto.", + "goHome": "Nach Hause", "inviteLogInOtherUser": "Als anderer Benutzer anmelden", "createAnAccount": "Konto erstellen", "inviteNotAccepted": "Einladung nicht angenommen", - "authCreateAccount": "Erstellen ein Konto um loszulegen", - "authNoAccount": "Du besitzt noch kein Konto?", + "authCreateAccount": "Erstellen Sie ein Konto um loszulegen", + "authNoAccount": "Sie haben noch kein Konto?", "email": "E-Mail", "password": "Passwort", "confirmPassword": "Passwort bestätigen", @@ -38,8 +38,8 @@ "online": "Online", "offline": "Offline", "site": "Site", - "dataIn": "Daten eingehend", - "dataOut": "Daten ausgehend", + "dataIn": "Daten in", + "dataOut": "Daten raus", "connectionType": "Verbindungstyp", "tunnelType": "Tunneltyp", "local": "Lokal", @@ -47,57 +47,57 @@ "siteConfirmDelete": "Site löschen bestätigen", "siteDelete": "Site löschen", "siteMessageRemove": "Sobald diese Seite entfernt ist, wird sie nicht mehr zugänglich sein. Alle Ressourcen und Ziele, die mit der Site verbunden sind, werden ebenfalls entfernt.", - "siteMessageConfirm": "Um zu bestätigen, gib den Namen der Site ein.", - "siteQuestionRemove": "Bist du sicher, dass Sie die Site {selectedSite} aus der Organisation entfernt werden soll?", + "siteMessageConfirm": "Um zu bestätigen, geben Sie bitte den Namen der Seite unten ein.", + "siteQuestionRemove": "Sind Sie sicher, dass Sie die Site {selectedSite} aus der Organisation entfernen möchten?", "siteManageSites": "Sites verwalten", - "siteDescription": "Verbindung zum Netzwerk durch sichere Tunnel erlauben", + "siteDescription": "Verbindung zu Ihrem Netzwerk durch sichere Tunnel erlauben", "siteCreate": "Site erstellen", - "siteCreateDescription2": "Folge den nachfolgenden Schritten, um eine neue Site zu erstellen und zu verbinden", - "siteCreateDescription": "Erstelle eine neue Site, um Ressourcen zu verbinden", + "siteCreateDescription2": "Folgen Sie den Schritten unten, um eine neue Seite zu erstellen und zu verbinden", + "siteCreateDescription": "Erstellen Sie eine neue Seite, um Ihre Ressourcen zu verbinden", "close": "Schließen", - "siteErrorCreate": "Fehler beim Erstellen der Site", + "siteErrorCreate": "Fehler beim Erstellen der Seite", "siteErrorCreateKeyPair": "Schlüsselpaar oder Standardwerte nicht gefunden", "siteErrorCreateDefaults": "Standardwerte der Site nicht gefunden", - "siteNameDescription": "Dies ist der Anzeigename für die Site.", + "siteNameDescription": "Dies ist der Anzeigename für die Website.", "method": "Methode", - "siteMethodDescription": "So werden Verbindungen freigegeben.", - "siteLearnNewt": "Wie du Newt auf deinem System installieren kannst", - "siteSeeConfigOnce": "Du kannst die Konfiguration nur einmalig ansehen.", + "siteMethodDescription": "Auf diese Weise werden Sie Verbindungen freigeben.", + "siteLearnNewt": "Erfahren Sie, wie Sie Newt auf Ihrem System installieren", + "siteSeeConfigOnce": "Sie können die Konfiguration nur einmal sehen.", "siteLoadWGConfig": "Lade WireGuard Konfiguration...", - "siteDocker": "Erweitern für Docker Details", + "siteDocker": "Erweitern für Docker-Details", "toggle": "Umschalten", - "dockerCompose": "Docker Compose", + "dockerCompose": "Docker komponieren", "dockerRun": "Docker Run", - "siteLearnLocal": "Mehr Infos zu lokalen Sites", + "siteLearnLocal": "Lokale Sites nicht Tunnel, erfahren Sie mehr", "siteConfirmCopy": "Ich habe die Konfiguration kopiert", - "searchSitesProgress": "Sites durchsuchen...", + "searchSitesProgress": "Seiten suchen...", "siteAdd": "Site hinzufügen", - "siteInstallNewt": "Newt installieren", - "siteInstallNewtDescription": "Installiere Newt auf deinem System.", + "siteInstallNewt": "Neustart installieren", + "siteInstallNewtDescription": "Lass Newt auf deinem System laufen", "WgConfiguration": "WireGuard Konfiguration", - "WgConfigurationDescription": "Verwende folgende Konfiguration, um dich mit deinem Netzwerk zu verbinden", + "WgConfigurationDescription": "Verwenden Sie folgende Konfiguration, um sich mit Ihrem Netzwerk zu verbinden", "operatingSystem": "Betriebssystem", "commands": "Befehle", "recommended": "Empfohlen", - "siteNewtDescription": "Nutze Newt für die beste Benutzererfahrung. Newt verwendet WireGuard as Basis und erlaubt Ihnen, Ihre privaten Ressourcen über ihre LAN-Adresse in Ihrem privaten Netzwerk aus dem Pangolin-Dashboard heraus zu adressieren.", - "siteRunsInDocker": "Läuft in Docker", - "siteRunsInShell": "Läuft in der Konsole auf macOS, Linux und Windows", - "siteErrorDelete": "Fehler beim Löschen der Site", - "siteErrorUpdate": "Fehler beim Aktualisieren der Site", - "siteErrorUpdateDescription": "Beim Aktualisieren der Site ist ein Fehler aufgetreten.", + "siteNewtDescription": "Nutzen Sie Newt für die beste Benutzererfahrung. Es verwendet WireGuard unter der Haube und erlaubt Ihnen, Ihre privaten Ressourcen über ihre LAN-Adresse in Ihrem privaten Netzwerk aus dem Pangolin-Dashboard heraus zu adressieren.", + "siteRunsInDocker": "Läuft im Docker", + "siteRunsInShell": "Läuft in der Shell auf macOS, Linux und Windows", + "siteErrorDelete": "Fehler beim Löschen der Seite", + "siteErrorUpdate": "Fehler beim Aktualisieren der Seite", + "siteErrorUpdateDescription": "Beim Aktualisieren der Seite ist ein Fehler aufgetreten.", "siteUpdated": "Site aktualisiert", - "siteUpdatedDescription": "Die Site wurde aktualisiert.", - "siteGeneralDescription": "Allgemeine Einstellungen für diese Site konfigurieren", - "siteSettingDescription": "Konfigurieren der Site Einstellungen", + "siteUpdatedDescription": "Die Seite wurde aktualisiert.", + "siteGeneralDescription": "Allgemeine Einstellungen für diese Seite konfigurieren", + "siteSettingDescription": "Konfigurieren Sie die Einstellungen auf Ihrer Seite", "siteSetting": "{siteName} Einstellungen", "siteNewtTunnel": "Newt-Tunnel (empfohlen)", - "siteNewtTunnelDescription": "Einfachster Weg, einen Zugriffspunkt zu deinem Netzwerk zu erstellen. Keine zusätzliche Einrichtung erforderlich.", - "siteWg": "Einfacher WireGuard Tunnel", - "siteWgDescription": "Verwende jeden WireGuard-Client, um einen Tunnel einzurichten. Manuelles NAT-Setup erforderlich.", + "siteNewtTunnelDescription": "Einfachster Weg, einen Einstiegspunkt in Ihr Netzwerk zu erstellen. Keine zusätzliche Einrichtung.", + "siteWg": "Einfacher WireGuard", + "siteWgDescription": "Verwenden Sie jeden WireGuard-Client, um einen Tunnel zu errichten. Manuelle NAT-Setup erforderlich.", "siteLocalDescription": "Nur lokale Ressourcen. Kein Tunneling.", - "siteSeeAll": "Alle Sites anzeigen", - "siteTunnelDescription": "Lege fest, wie du dich mit deiner Site verbinden möchtest", - "siteNewtCredentials": "Neue Newt Zugangsdaten", + "siteSeeAll": "Alle Seiten anzeigen", + "siteTunnelDescription": "Legen Sie fest, wie Sie sich mit Ihrer Website verbinden möchten", + "siteNewtCredentials": "Anmeldedaten neu", "siteNewtCredentialsDescription": "So wird sich Newt mit dem Server authentifizieren", "siteCredentialsSave": "Ihre Zugangsdaten speichern", "siteCredentialsSaveDescription": "Du kannst das nur einmal sehen. Stelle sicher, dass du es an einen sicheren Ort kopierst.", @@ -482,8 +482,8 @@ "targetAddr": "IP / Hostname", "targetPort": "Port", "targetProtocol": "Protokoll", - "targetTlsSettings": "HTTPS & TLS Einstellungen", - "targetTlsSettingsDescription": "Konfigurieren Sie TLS-Einstellungen für Ihre Ressource", + "targetTlsSettings": "Sicherheitskonfiguration", + "targetTlsSettingsDescription": "Konfiguriere SSL/TLS Einstellungen für deine Ressource", "targetTlsSettingsAdvanced": "Erweiterte TLS-Einstellungen", "targetTlsSni": "TLS-Servername (SNI)", "targetTlsSniDescription": "Der zu verwendende TLS-Servername für SNI. Leer lassen, um den Standard zu verwenden.", @@ -1089,5 +1089,40 @@ "sidebarSettings": "Einstellungen", "sidebarAllUsers": "Alle Benutzer", "sidebarIdentityProviders": "Identitätsanbieter", - "sidebarLicense": "Lizenz" -} + "sidebarLicense": "Lizenz", + "enableDockerSocket": "Docker Socket aktivieren", + "enableDockerSocketDescription": "Aktiviere Docker Socket-Erkennung, um Containerinformationen zu füllen, nützlich für Ressourcenziele.", + "enableDockerSocketLink": "Aktiviere Docker Socket-Erkennung, um Containerinformationen zu füllen, nützlich für Ressourcenziele.", + "viewDockerContainers": "Docker Container anzeigen", + "containersIn": "Container in {siteName}", + "selectContainerDescription": "Wählen Sie einen Container, der als Hostname für dieses Ziel verwendet werden soll. Klicken Sie auf einen Port, um einen Port zu verwenden.", + "containerName": "Name", + "containerImage": "Bild", + "containerState": "Bundesland", + "containerNetworks": "Netzwerke", + "containerHostnameIp": "Hostname/IP", + "containerLabels": "Etiketten", + "containerLabelsCount": "{count} Label{s,plural,one{} other{s}}", + "containerLabelsTitle": "Container-Labels", + "containerLabelEmpty": "", + "containerPorts": "Häfen", + "containerPortsMore": "+{count} mehr", + "containerActions": "Aktionen", + "select": "Auswählen", + "noContainersMatchingFilters": "Es wurden keine Container gefunden, die den aktuellen Filtern entsprechen.", + "showContainersWithoutPorts": "Container ohne Ports anzeigen", + "showStoppedContainers": "Stoppte Container anzeigen", + "noContainersFound": "Keine Container gefunden. Stellen Sie sicher, dass Docker Container laufen.", + "searchContainersPlaceholder": "Durchsuche {count} Container...", + "searchResultsCount": "{count} Ergebnis{s,plural,one{} other{s}}", + "filters": "Filter", + "filterOptions": "Filteroptionen", + "filterPorts": "Häfen", + "filterStopped": "Stoppt", + "clearAllFilters": "Alle Filter löschen", + "columns": "Spalten", + "toggleColumns": "Spalten umschalten", + "refreshContainersList": "Container-Liste aktualisieren", + "searching": "Suche...", + "noContainersFoundMatching": "Keine Container gefunden mit \"{filter}\"." +} \ No newline at end of file diff --git a/messages/es-ES.json b/messages/es-ES.json index 145a78e2..da914d5b 100644 --- a/messages/es-ES.json +++ b/messages/es-ES.json @@ -482,8 +482,8 @@ "targetAddr": "IP / Hostname", "targetPort": "Puerto", "targetProtocol": "Protocol", - "targetTlsSettings": "Configuración HTTPS y TLS", - "targetTlsSettingsDescription": "Configurar ajustes TLS para su recurso", + "targetTlsSettings": "Configuración de conexión segura", + "targetTlsSettingsDescription": "Configurar ajustes SSL/TLS para su recurso", "targetTlsSettingsAdvanced": "Ajustes avanzados de TLS", "targetTlsSni": "Nombre del servidor TLS (SNI)", "targetTlsSniDescription": "El nombre del servidor TLS a usar para SNI. Deje en blanco para usar el valor predeterminado.", @@ -1089,5 +1089,40 @@ "sidebarSettings": "Ajustes", "sidebarAllUsers": "Todos los usuarios", "sidebarIdentityProviders": "Proveedores de identidad", - "sidebarLicense": "Licencia" + "sidebarLicense": "Licencia", + "enableDockerSocket": "Habilitar conector Docker", + "enableDockerSocketDescription": "Habilita el descubrimiento del conector Docker para rellenar la información del contenedor, útil en los objetivos de recursos.", + "enableDockerSocketLink": "Habilita el descubrimiento del conector Docker para rellenar la información del contenedor, útil en los objetivos de recursos.", + "viewDockerContainers": "Ver contenedores Docker", + "containersIn": "Contenedores en {siteName}", + "selectContainerDescription": "Seleccione cualquier contenedor para usar como nombre de host para este objetivo. Haga clic en un puerto para usar un puerto.", + "containerName": "Nombre", + "containerImage": "Imagen", + "containerState": "Estado", + "containerNetworks": "Redes", + "containerHostnameIp": "Hostname/IP", + "containerLabels": "Etiquetas", + "containerLabelsCount": "{count} etiqueta{s,plural,one{} other{s}}", + "containerLabelsTitle": "Etiquetas de contenedor", + "containerLabelEmpty": "", + "containerPorts": "Puertos", + "containerPortsMore": "+{count} más", + "containerActions": "Acciones", + "select": "Seleccionar", + "noContainersMatchingFilters": "No se encontraron contenedores que coincidan con los filtros actuales.", + "showContainersWithoutPorts": "Mostrar contenedores sin puertos", + "showStoppedContainers": "Mostrar contenedores parados", + "noContainersFound": "No se han encontrado contenedores. Asegúrate de que los contenedores Docker se estén ejecutando.", + "searchContainersPlaceholder": "Buscar a través de contenedores {count}...", + "searchResultsCount": "{count} resultado{s,plural,one{} other{s}}", + "filters": "Filtros", + "filterOptions": "Opciones de filtro", + "filterPorts": "Puertos", + "filterStopped": "Detenido", + "clearAllFilters": "Borrar todos los filtros", + "columns": "Columnas", + "toggleColumns": "Cambiar Columnas", + "refreshContainersList": "Actualizar lista de contenedores", + "searching": "Buscando...", + "noContainersFoundMatching": "No se han encontrado contenedores que coincidan con \"{filter}\"." } \ No newline at end of file diff --git a/messages/fr-FR.json b/messages/fr-FR.json index 36ac30af..ccfd5bf2 100644 --- a/messages/fr-FR.json +++ b/messages/fr-FR.json @@ -482,8 +482,8 @@ "targetAddr": "IP / Nom d'hôte", "targetPort": "Port", "targetProtocol": "Protocole", - "targetTlsSettings": "Paramètres HTTPS & TLS", - "targetTlsSettingsDescription": "Configurer les paramètres TLS pour votre ressource", + "targetTlsSettings": "Configuration sécurisée de connexion", + "targetTlsSettingsDescription": "Configurer les paramètres SSL/TLS pour votre ressource", "targetTlsSettingsAdvanced": "Paramètres TLS avancés", "targetTlsSni": "Nom de serveur TLS (SNI)", "targetTlsSniDescription": "Le nom de serveur TLS à utiliser pour SNI. Laissez vide pour utiliser la valeur par défaut.", @@ -1089,5 +1089,40 @@ "sidebarSettings": "Réglages", "sidebarAllUsers": "Tous les utilisateurs", "sidebarIdentityProviders": "Fournisseurs d'identité", - "sidebarLicense": "Licence" + "sidebarLicense": "Licence", + "enableDockerSocket": "Activer Docker Socket", + "enableDockerSocketDescription": "Activer la découverte de sockets Docker pour le remplissage des informations de conteneur, utile dans les cibles de ressources.", + "enableDockerSocketLink": "Activer la découverte de sockets Docker pour le remplissage des informations de conteneur, utile dans les cibles de ressources.", + "viewDockerContainers": "Voir les conteneurs Docker", + "containersIn": "Conteneurs en {siteName}", + "selectContainerDescription": "Sélectionnez n'importe quel conteneur à utiliser comme nom d'hôte pour cette cible. Cliquez sur un port pour utiliser un port.", + "containerName": "Nom", + "containerImage": "Image", + "containerState": "État", + "containerNetworks": "Réseaux", + "containerHostnameIp": "Hostname/IP", + "containerLabels": "Étiquettes", + "containerLabelsCount": "{count} label{s,plural,one{} other{s}}", + "containerLabelsTitle": "Étiquettes de conteneur", + "containerLabelEmpty": "", + "containerPorts": "Ports", + "containerPortsMore": "+{count} de plus", + "containerActions": "Actions", + "select": "Sélectionner", + "noContainersMatchingFilters": "Aucun conteneur ne correspond aux filtres actuels.", + "showContainersWithoutPorts": "Afficher les conteneurs sans ports", + "showStoppedContainers": "Afficher les conteneurs arrêtés", + "noContainersFound": "Aucun conteneur trouvé. Assurez-vous que les conteneurs Docker sont en cours d'exécution.", + "searchContainersPlaceholder": "Rechercher dans les conteneurs {count}...", + "searchResultsCount": "{count} résultat{s,plural,one{} other{s}}", + "filters": "Filtres", + "filterOptions": "Options de filtre", + "filterPorts": "Ports", + "filterStopped": "Arrêté", + "clearAllFilters": "Effacer tous les filtres", + "columns": "Colonnes", + "toggleColumns": "Activer/désactiver les colonnes", + "refreshContainersList": "Rafraîchir la liste des conteneurs", + "searching": "Recherche en cours...", + "noContainersFoundMatching": "Aucun conteneur correspondant à \"{filter}\"." } \ No newline at end of file diff --git a/messages/it-IT.json b/messages/it-IT.json index ee37f218..12a58713 100644 --- a/messages/it-IT.json +++ b/messages/it-IT.json @@ -482,8 +482,8 @@ "targetAddr": "IP / Nome host", "targetPort": "Porta", "targetProtocol": "Protocollo", - "targetTlsSettings": "Impostazioni HTTPS e TLS", - "targetTlsSettingsDescription": "Configura le impostazioni TLS per la tua risorsa", + "targetTlsSettings": "Configurazione Connessione Sicura", + "targetTlsSettingsDescription": "Configura le impostazioni SSL/TLS per la tua risorsa", "targetTlsSettingsAdvanced": "Impostazioni TLS Avanzate", "targetTlsSni": "Nome Server TLS (SNI)", "targetTlsSniDescription": "Il Nome Server TLS da usare per SNI. Lascia vuoto per usare quello predefinito.", @@ -1089,5 +1089,40 @@ "sidebarSettings": "Impostazioni", "sidebarAllUsers": "Tutti Gli Utenti", "sidebarIdentityProviders": "Fornitori Di Identità", - "sidebarLicense": "Licenza" + "sidebarLicense": "Licenza", + "enableDockerSocket": "Abilita Docker Socket", + "enableDockerSocketDescription": "Abilita la scoperta del Docker Socket per la popolazione delle informazioni del contenitore, utili negli obiettivi delle risorse.", + "enableDockerSocketLink": "Abilita la scoperta del Docker Socket per la popolazione delle informazioni del contenitore, utili negli obiettivi delle risorse.", + "viewDockerContainers": "Visualizza Contenitori Docker", + "containersIn": "Contenitori in {siteName}", + "selectContainerDescription": "Seleziona qualsiasi contenitore da usare come hostname per questo obiettivo. Fai clic su una porta per usare una porta.", + "containerName": "Nome", + "containerImage": "Immagine", + "containerState": "Stato", + "containerNetworks": "Reti", + "containerHostnameIp": "Hostname/IP", + "containerLabels": "Etichette", + "containerLabelsCount": "{count} etichetta{s,plural,one{} other{s}}", + "containerLabelsTitle": "Etichette Del Contenitore", + "containerLabelEmpty": "", + "containerPorts": "Porte", + "containerPortsMore": "+{count} in più", + "containerActions": "Azioni", + "select": "Seleziona", + "noContainersMatchingFilters": "Nessun contenitore trovato corrispondente ai filtri correnti.", + "showContainersWithoutPorts": "Mostra contenitori senza porte", + "showStoppedContainers": "Mostra contenitori fermati", + "noContainersFound": "Nessun contenitore trovato. Assicurarsi che i contenitori Docker siano in esecuzione.", + "searchContainersPlaceholder": "Cerca tra i contenitori {count}...", + "searchResultsCount": "{count} risultato{s,plural,one{} other{s}}", + "filters": "Filtri", + "filterOptions": "Opzioni Filtro", + "filterPorts": "Porte", + "filterStopped": "Fermato", + "clearAllFilters": "Cancella tutti i filtri", + "columns": "Colonne", + "toggleColumns": "Attiva/Disattiva Colonne", + "refreshContainersList": "Aggiorna elenco contenitori", + "searching": "Ricerca...", + "noContainersFoundMatching": "Nessun contenitore trovato corrispondente \"{filter}\"." } \ No newline at end of file diff --git a/messages/nl-NL.json b/messages/nl-NL.json index ef8007c7..46fb6aa8 100644 --- a/messages/nl-NL.json +++ b/messages/nl-NL.json @@ -483,7 +483,7 @@ "targetPort": "Poort", "targetProtocol": "Protocol", "targetTlsSettings": "HTTPS & TLS instellingen", - "targetTlsSettingsDescription": "Configureer TLS instellingen voor jouw bron", + "targetTlsSettingsDescription": "SSL/TLS-instellingen voor uw bron configureren", "targetTlsSettingsAdvanced": "Geavanceerde TLS instellingen", "targetTlsSni": "TLS Server Naam (SNI)", "targetTlsSniDescription": "De TLS servernaam om te gebruiken voor SNI. Laat leeg om de standaard te gebruiken.", @@ -1089,5 +1089,40 @@ "sidebarSettings": "Instellingen", "sidebarAllUsers": "Alle gebruikers", "sidebarIdentityProviders": "Identiteit aanbieders", - "sidebarLicense": "Licentie" + "sidebarLicense": "Licentie", + "enableDockerSocket": "Docker Socket inschakelen", + "enableDockerSocketDescription": "Schakel Docker Socket ontdekking in voor het vullen van containerinformatie, handig in brondoelen.", + "enableDockerSocketLink": "Schakel Docker Socket ontdekking in voor het vullen van containerinformatie, handig in brondoelen.", + "viewDockerContainers": "Bekijk Docker containers", + "containersIn": "Containers in {siteName}", + "selectContainerDescription": "Selecteer een container om als hostnaam voor dit doel te gebruiken. Klik op een poort om een poort te gebruiken.", + "containerName": "naam", + "containerImage": "Afbeelding", + "containerState": "Provincie", + "containerNetworks": "Netwerken", + "containerHostnameIp": "Hostname/IP", + "containerLabels": "Labels", + "containerLabelsCount": "{count} label{s,plural,one{} other{s}}", + "containerLabelsTitle": "Container labels", + "containerLabelEmpty": "", + "containerPorts": "Poorten", + "containerPortsMore": "+{count} meer", + "containerActions": "acties", + "select": "Selecteren", + "noContainersMatchingFilters": "Geen containers gevonden die overeenkomen met de huidige filters.", + "showContainersWithoutPorts": "Toon containers zonder poorten", + "showStoppedContainers": "Toon gestopte containers", + "noContainersFound": "Geen containers gevonden. Zorg ervoor dat Docker containers draaien.", + "searchContainersPlaceholder": "Zoek tussen {count} containers...", + "searchResultsCount": "{count} resultaat{s,plural,one{} other{s}}", + "filters": "Filters", + "filterOptions": "Filter opties", + "filterPorts": "Poorten", + "filterStopped": "Gestopt", + "clearAllFilters": "Alle filters wissen", + "columns": "Kolommen", + "toggleColumns": "Kolommen omschakelen", + "refreshContainersList": "Vernieuw containers lijst", + "searching": "Zoeken...", + "noContainersFoundMatching": "Geen containers gevonden die overeenkomen met \"{filter}\"." } \ No newline at end of file diff --git a/messages/pl-PL.json b/messages/pl-PL.json index b20c4040..713f2749 100644 --- a/messages/pl-PL.json +++ b/messages/pl-PL.json @@ -482,8 +482,8 @@ "targetAddr": "IP / Nazwa hosta", "targetPort": "Port", "targetProtocol": "Protokół", - "targetTlsSettings": "Ustawienia HTTPS & TLS", - "targetTlsSettingsDescription": "Skonfiguruj ustawienia TLS dla swojego zasobu", + "targetTlsSettings": "Konfiguracja bezpiecznego połączenia", + "targetTlsSettingsDescription": "Skonfiguruj ustawienia SSL/TLS dla twojego zasobu", "targetTlsSettingsAdvanced": "Zaawansowane ustawienia TLS", "targetTlsSni": "Nazwa serwera TLS (SNI)", "targetTlsSniDescription": "Nazwa serwera TLS do użycia dla SNI. Pozostaw puste, aby użyć domyślnej.", @@ -1089,5 +1089,40 @@ "sidebarSettings": "Ustawienia", "sidebarAllUsers": "Wszyscy użytkownicy", "sidebarIdentityProviders": "Dostawcy tożsamości", - "sidebarLicense": "Licencja" + "sidebarLicense": "Licencja", + "enableDockerSocket": "Włącz gniazdo dokera", + "enableDockerSocketDescription": "Włącz wyszukiwanie gniazda dokującego w celu zbierania informacji o pojemniku, przydatne w celach zasobowych.", + "enableDockerSocketLink": "Włącz wyszukiwanie gniazda dokującego w celu zbierania informacji o pojemniku, przydatne w celach zasobowych.", + "viewDockerContainers": "Zobacz kontenery dokujące", + "containersIn": "Pojemniki w {siteName}", + "selectContainerDescription": "Wybierz dowolny kontener do użycia jako nazwa hosta dla tego celu. Kliknij port, aby użyć portu.", + "containerName": "Nazwisko", + "containerImage": "Obraz", + "containerState": "Stan", + "containerNetworks": "Sieci", + "containerHostnameIp": "Hostname/IP", + "containerLabels": "Etykiety", + "containerLabelsCount": "{count} etykieta{s,plural,one{} other{s}}", + "containerLabelsTitle": "Etykiety kontenera", + "containerLabelEmpty": "", + "containerPorts": "Porty", + "containerPortsMore": "+{count} więcej", + "containerActions": "Akcje", + "select": "Wybierz", + "noContainersMatchingFilters": "Nie znaleziono kontenerów pasujących do obecnych filtrów.", + "showContainersWithoutPorts": "Pokaż kontenery bez portów", + "showStoppedContainers": "Pokaż zatrzymane kontenery", + "noContainersFound": "Nie znaleziono kontenerów. Upewnij się, że kontenery dokujące są uruchomione.", + "searchContainersPlaceholder": "Szukaj w {count} kontenerach...", + "searchResultsCount": "{count} wynik{s,plural,one{} other{s}}", + "filters": "Filtry", + "filterOptions": "Opcje filtru", + "filterPorts": "Porty", + "filterStopped": "Zatrzymano", + "clearAllFilters": "Wyczyść wszystkie filtry", + "columns": "Kwota, którą należy zgłosić w kolumnie 060 tego wiersza: pierwotne odliczenie, art. 36 ust. 1 lit. b) CRR.", + "toggleColumns": "Przełącz kolumny", + "refreshContainersList": "Odśwież listę kontenerów", + "searching": "Wyszukiwanie...", + "noContainersFoundMatching": "Nie znaleziono kontenerów pasujących do \"{filter}\"." } \ No newline at end of file diff --git a/messages/pt-PT.json b/messages/pt-PT.json index 4a84d262..261bbdb7 100644 --- a/messages/pt-PT.json +++ b/messages/pt-PT.json @@ -482,8 +482,8 @@ "targetAddr": "IP / Nome do Host", "targetPort": "Porta", "targetProtocol": "Protocolo", - "targetTlsSettings": "Configurações HTTPS & TLS", - "targetTlsSettingsDescription": "Configure as configurações TLS para seu recurso", + "targetTlsSettings": "Configuração de conexão segura", + "targetTlsSettingsDescription": "Configurar configurações SSL/TLS para seu recurso", "targetTlsSettingsAdvanced": "Configurações TLS Avançadas", "targetTlsSni": "Nome do Servidor TLS (SNI)", "targetTlsSniDescription": "O Nome do Servidor TLS para usar para SNI. Deixe vazio para usar o padrão.", @@ -1089,5 +1089,40 @@ "sidebarSettings": "Confirgurações", "sidebarAllUsers": "Todos os usuários", "sidebarIdentityProviders": "Provedores de identidade", - "sidebarLicense": "Tipo:" + "sidebarLicense": "Tipo:", + "enableDockerSocket": "Habilitar Docker Socket", + "enableDockerSocketDescription": "Habilitar a descoberta de Socket Docker para preencher informações de contêineres, útil em alvos de recursos.", + "enableDockerSocketLink": "Habilitar a descoberta de Socket Docker para preencher informações de contêineres, útil em alvos de recursos.", + "viewDockerContainers": "Ver contêineres Docker", + "containersIn": "Contêineres em {siteName}", + "selectContainerDescription": "Selecione qualquer contêiner para usar como hostname para este alvo. Clique em uma porta para usar uma porta.", + "containerName": "Nome:", + "containerImage": "Imagem:", + "containerState": "Estado:", + "containerNetworks": "Redes", + "containerHostnameIp": "Hostname/IP", + "containerLabels": "Marcadores", + "containerLabelsCount": "{count} label{s,plural,one{} other{s}}", + "containerLabelsTitle": "Etiquetas do Contêiner", + "containerLabelEmpty": "", + "containerPorts": "Portas", + "containerPortsMore": "+ Mais{count}", + "containerActions": "Ações.", + "select": "Selecionar", + "noContainersMatchingFilters": "Nenhum contêiner encontrado corresponde aos filtros atuais.", + "showContainersWithoutPorts": "Mostrar contêineres sem portas", + "showStoppedContainers": "Mostrar contêineres parados", + "noContainersFound": "Nenhum contêiner encontrado. Certifique-se de que os contêineres Docker estão em execução.", + "searchContainersPlaceholder": "Pesquisar entre os contêineres {count}...", + "searchResultsCount": "{count} result{s,plural,one{} other{s}}", + "filters": "Filtros", + "filterOptions": "Opções de Filtro", + "filterPorts": "Portas", + "filterStopped": "Parado", + "clearAllFilters": "Limpar todos os filtros", + "columns": "Colunas", + "toggleColumns": "Alternar Colunas", + "refreshContainersList": "Atualizar lista de contêineres", + "searching": "Buscando...", + "noContainersFoundMatching": "Nenhum recipiente encontrado \"{filter}\"." } \ No newline at end of file diff --git a/messages/tr-TR.json b/messages/tr-TR.json index f09dc233..a986f0d1 100644 --- a/messages/tr-TR.json +++ b/messages/tr-TR.json @@ -1089,5 +1089,40 @@ "sidebarSettings": "Settings", "sidebarAllUsers": "All Users", "sidebarIdentityProviders": "Identity Providers", - "sidebarLicense": "License" + "sidebarLicense": "License", + "enableDockerSocket": "Enable Docker Socket", + "enableDockerSocketDescription": "Enable Docker Socket discovery for populating container information, useful in resource targets.", + "enableDockerSocketLink": "Enable Docker Socket discovery for populating container information, useful in resource targets.", + "viewDockerContainers": "View Docker Containers", + "containersIn": "Containers in {siteName}", + "selectContainerDescription": "Select any container to use as a hostname for this target. Click a port to use a port.", + "containerName": "Name", + "containerImage": "Image", + "containerState": "State", + "containerNetworks": "Networks", + "containerHostnameIp": "Hostname/IP", + "containerLabels": "Labels", + "containerLabelsCount": "{count} label{s,plural,one{} other{s}}", + "containerLabelsTitle": "Container Labels", + "containerLabelEmpty": "", + "containerPorts": "Ports", + "containerPortsMore": "+{count} more", + "containerActions": "Actions", + "select": "Select", + "noContainersMatchingFilters": "No containers found matching the current filters.", + "showContainersWithoutPorts": "Show containers without ports", + "showStoppedContainers": "Show stopped containers", + "noContainersFound": "No containers found. Make sure Docker containers are running.", + "searchContainersPlaceholder": "Search across {count} containers...", + "searchResultsCount": "{count} result{s,plural,one{} other{s}}", + "filters": "Filters", + "filterOptions": "Filter Options", + "filterPorts": "Ports", + "filterStopped": "Stopped", + "clearAllFilters": "Clear all filters", + "columns": "Columns", + "toggleColumns": "Toggle Columns", + "refreshContainersList": "Refresh containers list", + "searching": "Searching...", + "noContainersFoundMatching": "No containers found matching \"{filter}\"." } \ No newline at end of file diff --git a/messages/zh-CN.json b/messages/zh-CN.json index c2420ca4..71628a0c 100644 --- a/messages/zh-CN.json +++ b/messages/zh-CN.json @@ -1,5 +1,5 @@ { - "setupCreate": "创建您的第一个组织、网站和资源", + "setupCreate": "创建您的组织、网站和资源", "setupNewOrg": "新建组织", "setupCreateOrg": "创建组织", "setupCreateResources": "创建资源", @@ -7,17 +7,17 @@ "orgDisplayName": "这是您组织的显示名称。", "orgId": "组织ID", "setupIdentifierMessage": "这是您组织的唯一标识符。这是与显示名称分开的。", - "setupErrorIdentifier": "组织ID 已被使用。请另选一个。", + "setupErrorIdentifier": "组织 ID 已被使用。请另选一个。", "componentsErrorNoMemberCreate": "您目前不是任何组织的成员。创建组织以开始操作。", "componentsErrorNoMember": "您目前不是任何组织的成员。", "welcome": "欢迎使用 Pangolin", "componentsCreateOrg": "创建组织", - "componentsMember": "{count, plural, =0 {您目前不是任何组织的成员。} other {你已加入 # 个组织。}}.", - "componentsInvalidKey": "检测到无效或过期的许可证密钥。按照许可证条款操作以继续使用所有功能。", - "dismiss": "忽略", + "componentsMember": "You're a member of {count, plural, =0 {no organization} =1 {one organization} other {# organizations}}.", + "componentsInvalidKey": "检测到无效或过期的许可证密钥。按照许可证条款继续使用所有功能。", + "dismiss": "关闭", "componentsLicenseViolation": "许可证超限:该服务器使用了 {usedSites} 个站点,已超过授权的 {maxSites} 个。请遵守许可证条款以继续使用全部功能。", "componentsSupporterMessage": "感谢您的支持!您现在是 Pangolin 的 {tier} 用户。", - "inviteErrorNotValid": "很抱歉,但看起来你试图访问的邀请尚未被接受或不再有效。", + "inviteErrorNotValid": "我们很抱歉,但看起来你试图访问的邀请尚未被接受或不再有效。", "inviteErrorUser": "很抱歉,但看起来你想要访问的邀请不是这个用户。", "inviteLoginUser": "请确保您以正确的用户登录。", "inviteErrorNoUser": "很抱歉,但看起来你想访问的邀请不是一个存在的用户。", @@ -61,27 +61,27 @@ "siteNameDescription": "这是站点的显示名称。", "method": "方法", "siteMethodDescription": "这是您将如何显示连接。", - "siteLearnNewt": "学习如何在您的系统上安装 Newt", + "siteLearnNewt": "学习如何在您的系统上安装Newt", "siteSeeConfigOnce": "您只能看到一次配置。", - "siteLoadWGConfig": "正在载入 WireGuard 配置...", + "siteLoadWGConfig": "正在载入Wire保护配置...", "siteDocker": "扩展 Docker 部署详细信息", - "toggle": "切换", - "dockerCompose": "Docker Compose", - "dockerRun": "Docker Run", - "siteLearnLocal": "本地站点不需要隧道连接,点击了解更多", - "siteConfirmCopy": "我已经复制了配置信息", + "toggle": "切换键", + "dockerCompose": "Docker 配置", + "dockerRun": "停靠栏", + "siteLearnLocal": "本地站点没有隧道,学习更多", + "siteConfirmCopy": "我已复制配置", "searchSitesProgress": "搜索站点...", "siteAdd": "添加站点", - "siteInstallNewt": "安装 Newt", - "siteInstallNewtDescription": "在您的系统中运行 Newt", - "WgConfiguration": "WireGuard 配置", + "siteInstallNewt": "安装新的", + "siteInstallNewtDescription": "在您的系统上获得新的运行", + "WgConfiguration": "Wire护卫配置", "WgConfigurationDescription": "使用以下配置连接到您的网络", "operatingSystem": "操作系统", "commands": "命令", - "recommended": "推荐", - "siteNewtDescription": "为获得最佳用户体验,请使用 Newt。其底层采用 WireGuard 技术,可直接通过 Pangolin 控制台,使用局域网地址访问您私有网络中的资源。", - "siteRunsInDocker": "在 Docker 中运行", - "siteRunsInShell": "在 macOS 、 Linux 和 Windows 的 Shell 中运行", + "recommended": "推荐的", + "siteNewtDescription": "为了获得最好的用户体验,请使用新的。 它使用ireGuard,让您能够使用Pangolin仪表板内他们的局域网地址处理您的私人资源。", + "siteRunsInDocker": "运行在停靠栏", + "siteRunsInShell": "在 macOS 、 Linux 和 Windows 的 shell 中运行", "siteErrorDelete": "删除站点出错", "siteErrorUpdate": "更新站点失败", "siteErrorUpdateDescription": "更新站点时出错。", @@ -90,17 +90,17 @@ "siteGeneralDescription": "配置此站点的常规设置", "siteSettingDescription": "配置您网站上的设置", "siteSetting": "{siteName} 设置", - "siteNewtTunnel": "Newt 隧道 (推荐)", - "siteNewtTunnelDescription": "最简单的方式来连接到您的网络。不需要任何额外设置。", - "siteWg": "基本 WireGuard", - "siteWgDescription": "使用任何 WireGuard 客户端来建立隧道。需要手动配置 NAT。", - "siteLocalDescription": "仅限本地资源。不需要隧道。", + "siteNewtTunnel": "新隧道(推荐)", + "siteNewtTunnelDescription": "最简单的方式来创建一个入口到您的网络。没有额外的设置。", + "siteWg": "基本线甲", + "siteWgDescription": "使用任何 WireGuard 客户端来建立隧道。需要手动设置NAT。", + "siteLocalDescription": "仅本地资源。没有隧道。", "siteSeeAll": "查看所有站点", "siteTunnelDescription": "确定如何连接到您的网站", - "siteNewtCredentials": "Newt 凭据", - "siteNewtCredentialsDescription": "这是 Newt 服务器的身份验证凭据", - "siteCredentialsSave": "保存您的凭据", - "siteCredentialsSaveDescription": "您只能看到一次。请确保将其复制并保存到一个安全的地方。", + "siteNewtCredentials": "新建凭据", + "siteNewtCredentialsDescription": "这是新建服务器的身份验证方式", + "siteCredentialsSave": "保存您的证书", + "siteCredentialsSaveDescription": "您只能看到一次。请确保将其复制到一个安全的地方。", "siteInfo": "站点信息", "status": "状态", "shareTitle": "管理共享链接", @@ -111,16 +111,16 @@ "shareErrorDeleteMessage": "删除链接时出错", "shareDeleted": "链接已删除", "shareDeletedDescription": "链接已删除", - "shareTokenDescription": "您的访问令牌可以通过两种方式传递:作为查询参数或请求头。 每次验证访问请求都必须从客户端传递。", + "shareTokenDescription": "您的访问令牌可以通过两种方式传递:作为查询参数或请求标题。 每次验证访问请求都必须从客户端传递。", "accessToken": "访问令牌", "usageExamples": "用法示例", - "tokenId": "令牌 ID", - "requestHeades": "请求头", + "tokenId": "Token ID", + "requestHeades": "请求标题", "queryParameter": "查询参数", - "importantNote": "重要提示", - "shareImportantDescription": "出于安全考虑,建议尽可能在使用请求头传递参数,因为查询参数可能会被浏览器历史记录或服务器日志记录。", + "importantNote": "重要笔记", + "shareImportantDescription": "出于安全考虑,建议尽可能在查询参数中使用头部,因为查询参数可能会在服务器日志或浏览器历史记录中记录。", "token": "令牌", - "shareTokenSecurety": "请妥善保管您的访问令牌,不要将其暴露在公开访问的区域或客户端代码中。", + "shareTokenSecurety": "保持您的访问令牌安全。请不要在公开可访问的区域或客户端代码中共享。", "shareErrorFetchResource": "获取资源失败", "shareErrorFetchResourceDescription": "获取资源时出错", "shareErrorCreate": "无法创建共享链接", @@ -141,7 +141,7 @@ "title": "标题", "created": "已创建", "expires": "过期时间", - "never": "永不过期", + "never": "从不使用", "shareErrorSelectResource": "请选择一个资源", "resourceTitle": "管理资源", "resourceDescription": "为您的私人应用程序创建安全代理", @@ -149,14 +149,14 @@ "resourceAdd": "添加资源", "resourceErrorDelte": "删除资源时出错", "authentication": "认证", - "protected": "受到保护", - "notProtected": "未受到保护", - "resourceMessageRemove": "一旦删除,资源将不再可访问。与该资源相关的所有目标也将被删除。", + "protected": "保护", + "notProtected": "不保护", + "resourceMessageRemove": "一旦删除,资源将不再可访问。与资源相关的所有目标也将被删除。", "resourceMessageConfirm": "请在下面输入资源名称以确认。", "resourceQuestionRemove": "您确定要从组织中删除 {selectedResource} 吗?", "resourceHTTP": "HTTPS 资源", - "resourceHTTPDescription": "使用子域或根域名通过 HTTPS 向您的应用程序提出代理请求。", - "resourceRaw": "TCP/UDP 资源", + "resourceHTTPDescription": "使用子域或基本域名通过 HTTPS 向您的应用程序提出代理请求。", + "resourceRaw": "Raw TCP/UDP 资源", "resourceRawDescription": "使用 TCP/UDP 使用端口号向您的应用提出代理请求。", "resourceCreate": "创建资源", "resourceCreateDescription": "按照下面的步骤创建新资源", @@ -172,20 +172,20 @@ "resourceHTTPSSettings": "HTTPS 设置", "resourceHTTPSSettingsDescription": "配置如何通过 HTTPS 访问您的资源", "domainType": "域类型", - "subdomain": "子域名", - "baseDomain": "根域名", - "subdomnainDescription": "您的资源可以访问的子域名。", + "subdomain": "子域", + "baseDomain": "基础域", + "subdomnainDescription": "您的资源可以访问的子域。", "resourceRawSettings": "TCP/UDP 设置", "resourceRawSettingsDescription": "配置如何通过 TCP/UDP 访问您的资源", - "protocol": "协议", - "protocolSelect": "选择协议", + "protocol": "Protocol", + "protocolSelect": "Select a protocol", "resourcePortNumber": "端口号", "resourcePortNumberDescription": "代理请求的外部端口号。", "cancel": "取消", "resourceConfig": "配置片段", "resourceConfigDescription": "复制并粘贴这些配置片段以设置您的 TCP/UDP 资源", "resourceAddEntrypoints": "Traefik: 添加入口点", - "resourceExposePorts": "Gerbil:在 Docker Compose 中显示端口", + "resourceExposePorts": "Gerbil:在Docker Compose 中显示端口", "resourceLearnRaw": "学习如何配置 TCP/UDP 资源", "resourceBack": "返回资源", "resourceGoTo": "转到资源", @@ -194,23 +194,23 @@ "visibility": "可见性", "enabled": "已启用", "disabled": "已禁用", - "general": "概览", + "general": "A. 概况", "generalSettings": "常规设置", "proxy": "代理服务器", "rules": "规则", "resourceSettingDescription": "配置您资源上的设置", "resourceSetting": "{resourceName} 设置", - "alwaysAllow": "一律允许", - "alwaysDeny": "一律拒绝", + "alwaysAllow": "总是允许", + "alwaysDeny": "总是拒绝", "orgSettingsDescription": "配置您组织的一般设置", "orgGeneralSettings": "组织设置", "orgGeneralSettingsDescription": "管理您的机构详细信息和配置", "saveGeneralSettings": "保存常规设置", "orgDangerZone": "危险区域", - "orgDangerZoneDescription": "一旦删除该组织,将无法恢复,请务必确认。", + "orgDangerZoneDescription": "一旦你删除了这个组织,就没有回去了。请放心。", "orgDelete": "删除组织", "orgDeleteConfirm": "确认删除组织", - "orgMessageRemove": "此操作不可逆,这将删除所有相关数据。", + "orgMessageRemove": "此操作不可逆,将删除所有相关数据。", "orgMessageConfirm": "要确认,请在下面输入组织名称。", "orgQuestionRemove": "你确定要删除 “{selectedOrg}” 组织吗?", "orgUpdated": "组织已更新", @@ -224,15 +224,15 @@ "orgDeleted": "组织已删除", "orgDeletedMessage": "组织及其数据已被删除。", "orgMissing": "缺少组织 ID", - "orgMissingMessage": "没有组织ID,无法重新生成邀请。", + "orgMissingMessage": "没有机构ID,无法重新生成邀请。", "accessUsersManage": "管理用户", - "accessUsersDescription": "邀请用户并位他们添加角色以管理访问您的组织", + "accessUsersDescription": "邀请用户并将他们添加到角色以管理访问您的组织", "accessUsersSearch": "搜索用户...", "accessUserCreate": "创建用户", "accessUserRemove": "删除用户", "username": "用户名", "identityProvider": "身份提供商", - "role": "角色", + "role": "作用", "nameRequired": "名称是必填项", "accessRolesManage": "管理角色", "accessRolesDescription": "配置角色来管理访问您的组织", @@ -244,13 +244,13 @@ "inviteDescription": "管理您给其他用户的邀请", "inviteSearch": "搜索邀请...", "minutes": "分钟", - "hours": "小时", + "hours": "小时数", "days": "天", "weeks": "周", "months": "月", "years": "年", "day": "{count, plural, =1 {# 天} other {# 天}}", - "apiKeysTitle": "API 密钥", + "apiKeysTitle": "API 密钥信息", "apiKeysConfirmCopy2": "您必须确认您已复制 API 密钥。", "apiKeysErrorCreate": "创建 API 密钥出错", "apiKeysErrorSetPermission": "设置权限出错", @@ -260,7 +260,7 @@ "apiKeysGeneralSettingsDescription": "确定此 API 密钥可以做什么", "apiKeysList": "您的 API 密钥", "apiKeysSave": "保存您的 API 密钥", - "apiKeysSaveDescription": "该信息仅会显示一次,请确保将其复制到安全的位置。", + "apiKeysSaveDescription": "您只能看到一次。请确保将其复制到一个安全的地方。", "apiKeysInfo": "您的 API 密钥是:", "apiKeysConfirmCopy": "我已复制 API 密钥", "generate": "生成", @@ -280,7 +280,7 @@ "apiKeysErrorDelete": "删除 API 密钥出错", "apiKeysErrorDeleteMessage": "删除 API 密钥出错", "apiKeysQuestionRemove": "您确定要从组织中删除 “{selectedApiKey}” API密钥吗?", - "apiKeysMessageRemove": "一旦删除,此API密钥将无法被使用。", + "apiKeysMessageRemove": "一旦移除,API密钥将无法再使用。", "apiKeysMessageConfirm": "要确认,请在下方输入API密钥名称。", "apiKeysDeleteConfirm": "确认删除 API 密钥", "apiKeysDelete": "删除 API 密钥", @@ -290,7 +290,7 @@ "userTitle": "管理所有用户", "userDescription": "查看和管理系统中的所有用户", "userAbount": "关于用户管理", - "userAbountDescription": "此表格显示系统中所有根用户对象。每个用户可能属于多个组织。 从组织中删除用户不会删除其根用户对象 - 他们将保留在系统中。 要从系统中完全删除用户,您必须使用此表格中的删除操作删除其根用户对象。", + "userAbountDescription": "此表显示系统中所有根用户对象。每个用户可能属于多个组织。 从组织中删除用户不会删除其根用户对象 - 他们将保留在系统中。 要从系统中完全删除用户,您必须使用此表中的删除操作删除其根用户对象。", "userServer": "服务器用户", "userSearch": "搜索服务器用户...", "userErrorDelete": "删除用户时出错", @@ -300,7 +300,7 @@ "userMessageConfirm": "请在下面输入用户名称以确认。", "userQuestionRemove": "您确定要从服务器中永久删除 {selectedUser} 吗?", "licenseKey": "许可证密钥", - "valid": "有效", + "valid": "Valid", "numberOfSites": "站点数量", "licenseKeySearch": "搜索许可证密钥...", "licenseKeyAdd": "添加许可证密钥", @@ -334,7 +334,7 @@ "licenseQuestionRemove": "Are you sure you want to delete the license key {selectedKey} ?", "licenseKeyDelete": "删除许可证密钥", "licenseKeyDeleteConfirm": "确认删除许可证密钥", - "licenseTitle": "管理许可证状态", + "licenseTitle": "管理许可状态", "licenseTitleDescription": "查看和管理系统中的许可证密钥", "licenseHost": "主机许可证", "licenseHostDescription": "管理主机的主许可证密钥。", @@ -347,14 +347,14 @@ "licensePurchase": "购买许可证", "licensePurchaseSites": "购买更多站点", "licenseSitesUsedMax": "使用了 {usedSites}/{maxSites} 个站点", - "licenseSitesUsed": "{count, plural, =0 {# 站点} =1 {# 站点} other {# 站点}}", - "licensePurchaseDescription": "请选择您希望 {selectedMode, select, license {直接购买许可证,您可以随时增加更多站点。} other {为现有许可证购买更多站点}}", - "licenseFee": "许可证费用", - "licensePriceSite": "每个站点的价格", + "licenseSitesUsed": "{count, plural, =0 {# 站点} =1 {# 站点} other {#站点}}", + "licensePurchaseDescription": "选择你想要多少站点 {selectedMode, select, license {购买许可证。 您可以稍后添加更多网站} other {添加到您现有的许可证}}", + "licenseFee": "许可费", + "licensePriceSite": "每个站点价格", "total": "总计", "licenseContinuePayment": "继续付款", "pricingPage": "定价页面", - "pricingPortal": "前往付款页面", + "pricingPortal": "查看购买门户网站", "licensePricingPage": "关于最新的价格和折扣,请访问 ", "invite": "邀请", "inviteRegenerate": "重新生成邀请", @@ -365,7 +365,7 @@ "inviteRemoved": "邀请已删除", "inviteRemovedDescription": "为 {email} 创建的邀请已删除", "inviteQuestionRemove": "您确定要删除 {email} 的邀请吗?", - "inviteMessageRemove": "一旦删除,这个邀请将不再有效。", + "inviteMessageRemove": "一旦删除,这个邀请将不再有效。您可以随时重新邀请用户。", "inviteMessageConfirm": "要确认,请在下面输入邀请的电子邮件地址。", "inviteQuestionRegenerate": "您确定要重新邀请 {email} 吗?这将会撤销掉之前的邀请", "inviteRemoveConfirm": "确认删除邀请", @@ -373,7 +373,7 @@ "inviteSent": "邀请邮件已成功发送至 {email}。", "inviteSentEmail": "发送电子邮件通知给用户", "inviteGenerate": "已为 {email} 创建新的邀请。", - "inviteDuplicateError": "重复的邀请", + "inviteDuplicateError": "Duplicate Invite", "inviteDuplicateErrorDescription": "此用户的邀请已存在。", "inviteRateLimitError": "超出速率限制", "inviteRateLimitErrorDescription": "您超过了每小时3次再生的限制。请稍后再试。", @@ -463,7 +463,7 @@ "targetErrorFetchDescription": "获取目标时出错", "siteErrorFetch": "获取资源失败", "siteErrorFetchDescription": "获取资源时出错", - "targetErrorDuplicate": "重复的目标", + "targetErrorDuplicate": "Duplicate target", "targetErrorDuplicateDescription": "具有这些设置的目标已存在", "targetWireGuardErrorInvalidIp": "Invalid target IP", "targetWireGuardErrorInvalidIpDescription": "目标IP必须在站点子网内", @@ -479,11 +479,11 @@ "proxyUpdatedDescription": "您的代理设置已成功更新", "proxyErrorUpdate": "更新代理设置失败", "proxyErrorUpdateDescription": "更新代理设置时出错", - "targetAddr": "IP / 域名", + "targetAddr": "IP / Hostname", "targetPort": "端口", - "targetProtocol": "协议", - "targetTlsSettings": "HTTPS & TLS 设置", - "targetTlsSettingsDescription": "配置资源的 TLS 设置", + "targetProtocol": "Protocol", + "targetTlsSettings": "安全连接配置", + "targetTlsSettingsDescription": "配置资源的 SSL/TLS 设置", "targetTlsSettingsAdvanced": "高级TLS设置", "targetTlsSni": "TLS 服务器名称 (SNI)", "targetTlsSniDescription": "SNI使用的 TLS 服务器名称。留空使用默认值。", @@ -493,7 +493,7 @@ "targetStickySessions": "启用置顶会话", "targetStickySessionsDescription": "将连接保持在同一个后端目标的整个会话中。", "methodSelect": "选择方法", - "targetSubmit": "添加目标", + "targetSubmit": "Add Target", "targetNoOne": "没有目标。使用表单添加目标。", "targetNoOneDescription": "在上面添加多个目标将启用负载平衡。", "targetsSubmit": "保存目标", @@ -504,7 +504,7 @@ "proxyAdditionalSubmit": "保存代理设置", "subnetMaskErrorInvalid": "子网掩码无效。必须在 0 和 32 之间。", "ipAddressErrorInvalidFormat": "无效的 IP 地址格式", - "ipAddressErrorInvalidOctet": "无效的 IP 地址", + "ipAddressErrorInvalidOctet": "无效的 IP 地址octet", "path": "路径", "ipAddressRange": "IP 范围", "rulesErrorFetch": "获取规则失败", @@ -520,7 +520,7 @@ "rulesErrorUpdate": "更新规则失败", "rulesErrorUpdateDescription": "更新规则时出错", "rulesUpdated": "启用规则", - "rulesUpdatedDescription": "规则已更新", + "rulesUpdatedDescription": "规则评价已更新", "rulesMatchIpAddressRangeDescription": "以 CIDR 格式输入地址(如:103.21.244.0/22)", "rulesMatchIpAddress": "输入IP地址(例如,103.21.244.12)", "rulesMatchUrl": "输入一个 URL 路径或模式(例如/api/v1/todos 或 /api/v1/*)", @@ -533,18 +533,18 @@ "ruleErrorUpdate": "操作失败", "ruleErrorUpdateDescription": "保存过程中发生错误", "rulesPriority": "优先权", - "rulesAction": "行为", - "rulesMatchType": "匹配类型", + "rulesAction": "行 动", + "rulesMatchType": "比赛类型", "value": "值", "rulesAbout": "关于规则", - "rulesAboutDescription": "规则使您能够依据特定条件控制资源访问权限。您可以创建基于 IP 地址或 URL 路径的规则,以允许或拒绝访问。", + "rulesAboutDescription": "规则允许您根据一组标准控制对资源的访问。 您可以创建规则允许或拒绝基于IP地址或 URL 路径的访问。", "rulesActions": "行动", "rulesActionAlwaysAllow": "总是允许:绕过所有身份验证方法", "rulesActionAlwaysDeny": "总是拒绝:阻止所有请求;无法尝试验证", "rulesMatchCriteria": "匹配条件", "rulesMatchCriteriaIpAddress": "匹配一个指定的 IP 地址", "rulesMatchCriteriaIpAddressRange": "在 CIDR 符号中匹配一系列IP地址", - "rulesMatchCriteriaUrl": "匹配一个 URL 路径或模式", + "rulesMatchCriteriaUrl": "匹配一个 URL 路径或图案", "rulesEnable": "启用规则", "rulesEnableDescription": "启用或禁用此资源的规则评估", "rulesResource": "资源规则配置", @@ -562,10 +562,10 @@ "domainsErrorFetch": "获取域名出错", "domainsErrorFetchDescription": "获取域时出错", "none": "无", - "unknown": "未知", + "unknown": "未知的", "resources": "资源", - "resourcesDescription": "资源是您私有网络中运行的应用程序的代理。您可以为私有网络中的任何 HTTP/HTTPS 或 TCP/UDP 服务创建资源。每个资源都必须连接到一个站点,以通过加密的 WireGuard 隧道实现私密且安全的连接。", - "resourcesWireGuardConnect": "采用 WireGuard 提供的加密安全连接", + "resourcesDescription": "资源是在您的私人网络上运行的应用程序的代理。在您的私人网络上为任何 HTTP/HTTPS 或raw TCP/UDP 服务创建资源。 每个资源必须连接到一个站点,以便通过加密的 WireGuard 隧道启用私密安全连接。", + "resourcesWireGuardConnect": "与Wire护卫加密安全连接", "resourcesMultipleAuthenticationMethods": "配置多个身份验证方法", "resourcesUsersRolesAccess": "基于用户和角色的访问控制", "resourcesErrorUpdate": "切换资源失败", @@ -574,7 +574,7 @@ "shareLink": "{resource} 的分享链接", "resourceSelect": "选择资源", "shareLinks": "分享链接", - "share": "分享链接", + "share": "可共享链接", "shareDescription2": "创建资源共享链接。链接提供对资源的临时或无限制访问。 当您创建链接时,您可以配置链接的到期时间。", "shareEasyCreate": "轻松创建和分享", "shareConfigurableExpirationDuration": "可配置的过期时间", @@ -585,29 +585,29 @@ "unknownCommand": "未知命令", "newtErrorFetchReleases": "无法获取版本信息: {err}", "newtErrorFetchLatest": "无法获取最新版信息: {err}", - "newtEndpoint": "Newt 端点", + "newtEndpoint": "Newt Endpoint", "newtId": "Newt ID", - "newtSecretKey": "Newt 私钥", - "architecture": "架构", + "newtSecretKey": "新的秘密密钥", + "architecture": "结构", "sites": "站点", "siteWgAnyClients": "使用任何 WireGuard 客户端连接。您必须使用对等IP解决您的内部资源。", "siteWgCompatibleAllClients": "与所有WireGuard客户端兼容", "siteWgManualConfigurationRequired": "需要手动配置", "userErrorNotAdminOrOwner": "用户不是管理员或所有者", - "pangolinSettings": "设置 - Pangolin", + "pangolinSettings": "设置-Pangolin", "accessRoleYour": "您的角色:", "accessRoleSelect2": "选择角色", "accessUserSelect": "选择一个用户", "otpEmailEnter": "输入电子邮件", "otpEmailEnterDescription": "在输入字段输入后按回车键添加电子邮件。", - "otpEmailErrorInvalid": "无效的邮箱地址。通配符(*)必须占据整个开头部分。", - "otpEmailSmtpRequired": "需要先配置SMTP", + "otpEmailErrorInvalid": "无效的电子邮件地址。通用卡 (*) 必须是整个本地部分。", + "otpEmailSmtpRequired": "需要SMTP", "otpEmailSmtpRequiredDescription": "必须在服务器上启用SMTP才能使用一次性密码验证。", "otpEmailTitle": "一次性密码", "otpEmailTitleDescription": "资源访问需要基于电子邮件的身份验证", "otpEmailWhitelist": "电子邮件白名单", "otpEmailWhitelistList": "白名单邮件", - "otpEmailWhitelistListDescription": "只有拥有这些电子邮件地址的用户才能访问此资源。 他们将被提示输入一次性密码发送到他们的电子邮件。 通配符 (*@example.com) 可以用来允许来自一个域名的任何电子邮件地址。", + "otpEmailWhitelistListDescription": "只有拥有这些电子邮件地址的用户才能访问此资源。 他们将被提示输入一次性密码发送到他们的电子邮件。 通配符 (*@example.com) 可以用来允许来自一个域的任何电子邮件地址。", "otpEmailWhitelistSave": "保存白名单", "passwordAdd": "添加密码", "passwordRemove": "删除密码", @@ -642,12 +642,12 @@ "resourcePincode": "PIN 码", "resourcePincodeSubmit": "启用 PIN 码保护", "resourcePincodeProtection": "PIN 码保护 {status}", - "resourcePincodeRemove": "资源 PIN 码已删除", - "resourcePincodeRemoveDescription": "已成功删除资源 PIN 码", - "resourcePincodeSetup": "资源 PIN 码已设置", - "resourcePincodeSetupDescription": "资源 PIN 码已成功设置", - "resourcePincodeSetupTitle": "设置 PIN 码", - "resourcePincodeSetupTitleDescription": "设置 PIN 码来保护此资源", + "resourcePincodeRemove": "资源粉码已删除", + "resourcePincodeRemoveDescription": "已成功删除资源密码", + "resourcePincodeSetup": "资源PIN 码已设置", + "resourcePincodeSetupDescription": "资源固定码已成功设置", + "resourcePincodeSetupTitle": "设置粉码", + "resourcePincodeSetupTitleDescription": "设置置顶码来保护此资源", "resourceRoleDescription": "管理员总是可以访问此资源。", "resourceUsersRoles": "用户和角色", "resourceUsersRolesDescription": "配置用户和角色可以访问此资源", @@ -658,14 +658,14 @@ "ssoUseDescription": "对于所有启用此功能的资源,现有用户只需登录一次。", "proxyErrorInvalidPort": "无效的端口号", "subdomainErrorInvalid": "无效的子域", - "domainErrorFetch": "获取域名失败", - "domainErrorFetchDescription": "获取域名时出错", + "domainErrorFetch": "获取域名出错", + "domainErrorFetchDescription": "获取域时出错", "resourceErrorUpdate": "更新资源失败", "resourceErrorUpdateDescription": "更新资源时出错", "resourceUpdated": "资源已更新", "resourceUpdatedDescription": "资源已成功更新", - "resourceErrorTransfer": "转移资源失败", - "resourceErrorTransferDescription": "转移资源时出错", + "resourceErrorTransfer": "传输资源失败", + "resourceErrorTransferDescription": "传输资源时出错", "resourceTransferred": "资源已传输", "resourceTransferredDescription": "资源已成功传输", "resourceErrorToggle": "切换资源失败", @@ -675,9 +675,9 @@ "resourceGeneral": "常规设置", "resourceGeneralDescription": "配置此资源的常规设置", "resourceEnable": "启用资源", - "resourceTransfer": "转移资源", + "resourceTransfer": "传输资源", "resourceTransferDescription": "将此资源转移到另一个站点", - "resourceTransferSubmit": "转移资源", + "resourceTransferSubmit": "传输资源", "siteDestination": "目标站点", "searchSites": "搜索站点", "accessRoleCreate": "创建角色", @@ -704,13 +704,13 @@ "licenseTierProfessional": "专业许可证", "licenseTierEnterprise": "企业许可证", "licenseTierCommercial": "商业许可证", - "licensed": "已授权", - "yes": "是", + "licensed": "许可的", + "yes": "否", "no": "否", "sitesAdditional": "其他站点", "licenseKeys": "许可证密钥", - "sitestCountDecrease": "减少站点数量", - "sitestCountIncrease": "增加站点数量", + "sitestCountDecrease": "减少站点计数", + "sitestCountIncrease": "增加站点计数", "idpManage": "管理身份提供商", "idpManageDescription": "查看和管理系统中的身份提供商", "idpDeletedDescription": "身份提供商删除成功", @@ -723,12 +723,12 @@ "idp": "身份提供商", "idpSearch": "搜索身份提供者...", "idpAdd": "添加身份提供商", - "idpClientIdRequired": "客户端ID 是必需的。", - "idpClientSecretRequired": "客户端密钥是必需的。", - "idpErrorAuthUrlInvalid": "身份验证URL 必须是有效的 URL。", - "idpErrorTokenUrlInvalid": "令牌URL 必须是有效的 URL。", - "idpPathRequired": "标识符路径是必需的。", - "idpScopeRequired": "授权范围是必需的。", + "idpClientIdRequired": "客户端ID是必需的。", + "idpClientSecretRequired": "客户端密码是必需的。", + "idpErrorAuthUrlInvalid": "身份验证URL必须是有效的 URL。", + "idpErrorTokenUrlInvalid": "令牌URL必须是有效的 URL。", + "idpPathRequired": "标识路径是必需的。", + "idpScopeRequired": "范围是必需的。", "idpOidcDescription": "配置 OpenID 连接身份提供商", "idpCreatedDescription": "身份提供商创建成功", "idpCreate": "创建身份提供商", @@ -748,24 +748,24 @@ "idpClientSecret": "客户端密钥", "idpClientSecretDescription": "来自身份提供商的 OAuth2 客户端密钥", "idpAuthUrl": "授权 URL", - "idpAuthUrlDescription": "OAuth2 授权端点的 URL", - "idpTokenUrl": "令牌 URL", - "idpTokenUrlDescription": "OAuth2 令牌端点的 URL", - "idpOidcConfigureAlert": "重要提示", - "idpOidcConfigureAlertDescription": "创建身份提供方后,您需要在其设置中配置回调 URL。回调 URL 会在创建成功后提供。", + "idpAuthUrlDescription": "OAuth2 授权终点 URL", + "idpTokenUrl": "令牌网址", + "idpTokenUrlDescription": "OAuth2 令牌端点URL", + "idpOidcConfigureAlert": "重要信息", + "idpOidcConfigureAlertDescription": "在创建身份提供商后,您需要在身份提供商的设置中配置回调URL。 成功创建后将提供回调URL。", "idpToken": "令牌配置", - "idpTokenDescription": "配置如何从 ID 令牌中提取用户信息", + "idpTokenDescription": "配置如何从ID令牌中提取用户信息", "idpJmespathAbout": "关于 JMESPath", - "idpJmespathAboutDescription": "以下路径使用 JMESPath 语法从 ID 令牌中提取值。", - "idpJmespathAboutDescriptionLink": "了解更多 JMESPath 信息", - "idpJmespathLabel": "标识符路径", - "idpJmespathLabelDescription": "ID 令牌中用户标识符的路径", - "idpJmespathEmailPathOptional": "邮箱路径(可选)", - "idpJmespathEmailPathOptionalDescription": "ID 令牌中用户邮箱的路径", - "idpJmespathNamePathOptional": "用户名路径(可选)", - "idpJmespathNamePathOptionalDescription": "ID 令牌中用户名的路径", - "idpOidcConfigureScopes": "作用域(Scopes)", - "idpOidcConfigureScopesDescription": "以空格分隔的 OAuth2 请求作用域列表", + "idpJmespathAboutDescription": "下面的路径使用 JMESPath 语法从ID标记中提取值。", + "idpJmespathAboutDescriptionLink": "了解更多关于 JMESPath", + "idpJmespathLabel": "标识路径", + "idpJmespathLabelDescription": "用户标识符的路径", + "idpJmespathEmailPathOptional": "电子邮件路径(可选)", + "idpJmespathEmailPathOptionalDescription": "用户的 ID 令牌电子邮件的路径", + "idpJmespathNamePathOptional": "名称路径(可选)", + "idpJmespathNamePathOptionalDescription": "用户名在ID令牌中的路径", + "idpOidcConfigureScopes": "范围", + "idpOidcConfigureScopesDescription": "要请求的 OAuth2 范围空间分隔列表", "idpSubmit": "创建身份提供商", "orgPolicies": "组织策略", "idpSettings": "{idpName} 设置", @@ -789,13 +789,13 @@ "defaultMappingsRole": "默认角色映射", "defaultMappingsRoleDescription": "此表达式的结果必须返回组织中定义的角色名称作为字符串。", "defaultMappingsOrg": "默认组织映射", - "defaultMappingsOrgDescription": "此表达式必须返回 组织ID 或 true 才能允许用户访问组织。", + "defaultMappingsOrgDescription": "此表达式必须返回 org ID或true 才能允许用户访问组织。", "defaultMappingsSubmit": "保存默认映射", "orgPoliciesEdit": "编辑组织策略", "org": "组织", "orgSelect": "选择组织", "orgSearch": "搜索", - "orgNotFound": "找不到组织。", + "orgNotFound": "找不到 org 。", "roleMappingPathOptional": "角色映射路径(可选)", "orgMappingPathOptional": "组织映射路径(可选)", "orgPolicyUpdate": "更新策略", @@ -822,7 +822,7 @@ "emailVerifyResend": "没有收到代码?点击此处重新发送", "passwordNotMatch": "密码不匹配", "signupError": "注册时出错", - "pangolinLogoAlt": "Pangolin Logo", + "pangolinLogoAlt": "邦戈林徽标", "inviteAlready": "看起来您已被邀请!", "inviteAlreadyDescription": "要接受邀请,您必须登录或创建一个帐户。", "signupQuestion": "已经有一个帐户?", @@ -851,13 +851,13 @@ "otpEmail": "一次性密码 (OTP)", "otpEmailSubmit": "提交 OTP", "backToEmail": "回到电子邮件", - "noSupportKey": "服务器当前未使用支持者密钥,欢迎支持本项目!", + "noSupportKey": "服务器运行时没有支持者密钥。请考虑支持项目!", "accessDenied": "访问被拒绝", - "accessDeniedDescription": "当前账户无权访问此资源。如认为这是错误,请与管理员联系。", + "accessDeniedDescription": "您无权访问此资源。如果这是错误,请与管理员联系。", "accessTokenError": "检查访问令牌时出错", "accessGranted": "已授予访问", "accessUrlInvalid": "访问 URL 无效", - "accessGrantedDescription": "您已获准访问此资源,正在为您跳转...", + "accessGrantedDescription": "您已获准访问此资源。重定向您...", "accessUrlInvalidDescription": "此共享访问URL无效。请联系资源所有者获取新URL。", "tokenInvalid": "无效的令牌", "pincodeInvalid": "无效的代码", @@ -866,9 +866,9 @@ "passwordResetSuccess": "密码重置成功!返回登录...", "passwordReset": "重置密码", "passwordResetDescription": "按照步骤重置您的密码", - "passwordResetSent": "我们将发送一个验证码到这个电子邮件地址。", - "passwordResetCode": "验证码", - "passwordResetCodeDescription": "请检查您的电子邮件以获取验证码。", + "passwordResetSent": "我们将发送一个密码重置代码到这个电子邮件地址。", + "passwordResetCode": "Reset Code", + "passwordResetCodeDescription": "请检查您的电子邮件以获取重置代码。", "passwordNew": "新密码", "passwordNewConfirm": "确认新密码", "pincodeAuth": "验证器代码", @@ -898,7 +898,7 @@ "pangolinSetup": "Setup - Pangolin", "orgNameRequired": "组织名称是必需的", "orgIdRequired": "组织ID是必需的", - "orgErrorCreate": "创建组织时出错", + "orgErrorCreate": "创建 org 时出错", "pageNotFound": "找不到页面", "pageNotFoundDescription": "哎呀!您正在查找的页面不存在。", "overview": "概览", @@ -923,13 +923,13 @@ "tagWarnDuplicate": "未添加重复标签 {tagText}", "supportKeyInvalid": "无效密钥", "supportKeyInvalidDescription": "您的支持者密钥无效。", - "supportKeyValid": "有效的密钥", + "supportKeyValid": "Valid Key", "supportKeyValidDescription": "您的支持者密钥已被验证。感谢您的支持!", "supportKeyErrorValidationDescription": "验证支持者密钥失败。", - "supportKey": "支持开发和通过一个 Pangolin !", - "supportKeyDescription": "购买支持者钥匙,帮助我们继续为社区发展 Pangolin 。 您的贡献使我们能够投入更多的时间来维护和添加所有人的新功能。 我们永远不会用这个来支付墙上的功能。这与任何商业版是分开的。", - "supportKeyPet": "您还可以领养并见到属于自己的 Pangolin!", - "supportKeyPurchase": "付款通过 GitHub 进行处理,之后您可以在以下位置获取您的密钥:", + "supportKey": "支持开发和通过一个潘戈林!", + "supportKeyDescription": "购买支持者钥匙,帮助我们继续为社区发展潘戈林。 您的贡献使我们能够投入更多的时间来维护和添加所有人的新功能。 我们永远不会用这个来支付墙上的功能。这与任何商业版是分开的。", + "supportKeyPet": "你也会通过并与你自己的宠物Pangolin会面!", + "supportKeyPurchase": "付款通过 GitHub 处理。然后您可以检索您的密钥", "supportKeyPurchaseLink": "我们的网站", "supportKeyPurchase2": "并在这里兑换。", "supportKeyLearnMore": "了解更多。", @@ -944,15 +944,15 @@ "supportKeyRedeem": "兑换支持者密钥", "supportKeyHideSevenDays": "隐藏7天", "supportKeyEnter": "输入支持者密钥", - "supportKeyEnterDescription": "见到你自己的 Pangolin!", - "githubUsername": "GitHub 用户名", + "supportKeyEnterDescription": "见到你自己的宠物Pangolin!", + "githubUsername": "GitHub Username", "supportKeyInput": "支持者密钥", "supportKeyBuy": "购买支持者密钥", "logoutError": "注销错误", "signingAs": "登录为", "serverAdmin": "服务器管理员", - "otpEnable": "启用双因子认证", - "otpDisable": "禁用双因子认证", + "otpEnable": "启用双因子", + "otpDisable": "禁用双因子", "logout": "登出", "licenseTierProfessionalRequired": "需要专业版", "licenseTierProfessionalRequiredDescription": "此功能仅在专业版可用。", @@ -979,11 +979,11 @@ "actionSetResourcePincode": "设置资源粉码", "actionSetResourceEmailWhitelist": "设置资源电子邮件白名单", "actionGetResourceEmailWhitelist": "获取资源电子邮件白名单", - "actionCreateTarget": "创建目标", + "actionCreateTarget": "Create Target", "actionDeleteTarget": "删除目标", "actionGetTarget": "获取目标", "actionListTargets": "列表目标", - "actionUpdateTarget": "更新目标", + "actionUpdateTarget": "Update Target", "actionCreateRole": "创建角色", "actionDeleteRole": "删除角色", "actionGetRole": "获取角色", @@ -1002,7 +1002,7 @@ "actionListResourceRules": "列出资源规则", "actionUpdateResourceRule": "更新资源规则", "actionListOrgs": "列出组织", - "actionCheckOrgId": "检查组织ID", + "actionCheckOrgId": "检查 ID", "actionCreateOrg": "创建组织", "actionDeleteOrg": "删除组织", "actionListApiKeys": "列出API密钥", @@ -1013,15 +1013,15 @@ "actionCreateIdp": "创建IDP", "actionUpdateIdp": "更新IDP", "actionDeleteIdp": "删除IDP", - "actionListIdps": "列出IDP", + "actionListIdps": "列出国内流离失所者", "actionGetIdp": "获取IDP", - "actionCreateIdpOrg": "创建 IDP组织策略", - "actionDeleteIdpOrg": "删除 IDP组织策略", - "actionListIdpOrgs": "列出 IDP组织", - "actionUpdateIdpOrg": "更新 IDP组织", + "actionCreateIdpOrg": "创建IDP Org 策略", + "actionDeleteIdpOrg": "删除IDP Org 策略", + "actionListIdpOrgs": "列出国内流离失所者组织", + "actionUpdateIdpOrg": "更新IDP Org", "noneSelected": "未选择", "orgNotFound2": "未找到组织。", - "searchProgress": "搜索中...", + "searchProgress": "搜索...", "create": "创建", "orgs": "组织", "loginError": "登录时出错", @@ -1031,13 +1031,13 @@ "otpAuthSubmit": "提交代码", "idpContinue": "或者继续", "otpAuthBack": "返回登录", - "navbar": "导航菜单", + "navbar": "Navigation Menu", "navbarDescription": "应用程序的主导航菜单", "navbarDocsLink": "文件", "commercialEdition": "商业版", "otpErrorEnable": "无法启用 2FA", - "otpErrorEnableDescription": "启用 2FA 时出错", - "otpSetupCheckCode": "请输入您的6位数字代码", + "otpErrorEnableDescription": "启用2FA 时出错", + "otpSetupCheckCode": "请输入一个6位数字", "otpSetupCheckCodeRetry": "无效的代码。请重试。", "otpSetup": "启用两步验证", "otpSetupDescription": "用额外的保护层来保护您的帐户", @@ -1061,20 +1061,20 @@ "copyTextFailed": "复制文本失败: ", "copyTextClipboard": "复制到剪贴板", "inviteErrorInvalidConfirmation": "无效确认", - "passwordRequired": "必须填写密码", + "passwordRequired": "密码是必需的", "allowAll": "允许所有", "permissionsAllowAll": "允许所有权限", - "githubUsernameRequired": "必须填写 GitHub 用户名", - "supportKeyRequired": "必须填写支持者密钥", - "passwordRequirementsChars": "密码至少需要 8 个字符", + "githubUsernameRequired": "GitHub 用户名是必需的", + "supportKeyRequired": "支持者密钥是必需的", + "passwordRequirementsChars": "密码必须至少 8 个字符", "language": "语言", "verificationCodeRequired": "必须输入代码", "userErrorNoUpdate": "没有要更新的用户", "siteErrorNoUpdate": "没有要更新的站点", "resourceErrorNoUpdate": "没有可更新的资源", "authErrorNoUpdate": "没有要更新的身份验证信息", - "orgErrorNoUpdate": "没有要更新的组织", - "orgErrorNoProvided": "未提供组织", + "orgErrorNoUpdate": "没有要更新的 org", + "orgErrorNoProvided": "未提供 org", "apiKeysErrorNoUpdate": "没有要更新的 API 密钥", "sidebarOverview": "概览", "sidebarHome": "首页", @@ -1089,5 +1089,40 @@ "sidebarSettings": "设置", "sidebarAllUsers": "所有用户", "sidebarIdentityProviders": "身份提供商", - "sidebarLicense": "证书" -} + "sidebarLicense": "证书", + "enableDockerSocket": "启用停靠套接字", + "enableDockerSocketDescription": "启用 Docker Socket 发现用于散布容器信息,在资源目标中有用。", + "enableDockerSocketLink": "启用 Docker Socket 发现用于散布容器信息,在资源目标中有用。", + "viewDockerContainers": "查看停靠容器", + "containersIn": "Containers in {siteName}", + "selectContainerDescription": "选择任何容器作为目标的主机名。点击端口使用端口。", + "containerName": "名称", + "containerImage": "图片", + "containerState": "状态", + "containerNetworks": "网络", + "containerHostnameIp": "Hostname/IP", + "containerLabels": "标签", + "containerLabelsCount": "{count} label{s,plural,one{} other{s}}", + "containerLabelsTitle": "容器标签", + "containerLabelEmpty": "", + "containerPorts": "端口", + "containerPortsMore": "+{count} more", + "containerActions": "行动", + "select": "选择", + "noContainersMatchingFilters": "没有找到匹配当前过滤器的容器。", + "showContainersWithoutPorts": "显示没有端口的容器", + "showStoppedContainers": "显示已停止的容器", + "noContainersFound": "未找到容器。请确保Docker容器正在运行。", + "searchContainersPlaceholder": "Search across {count} containers...", + "searchResultsCount": "{count} result{s,plural,one{} other{s}}", + "filters": "筛选器", + "filterOptions": "过滤器选项", + "filterPorts": "端口", + "filterStopped": "已停止", + "clearAllFilters": "清除所有过滤器", + "columns": "列", + "toggleColumns": "切换列", + "refreshContainersList": "刷新容器列表", + "searching": "搜索中...", + "noContainersFoundMatching": "No containers found matching \"{filter}\"." +} \ No newline at end of file