Merge branch 'dev' of github.com:fosrl/pangolin into dev

This commit is contained in:
Owen 2025-07-17 12:26:51 -07:00
commit 417811e94f
No known key found for this signature in database
GPG key ID: 8271FDFFD9E0CCBD
13 changed files with 64 additions and 53 deletions

View file

@ -81,21 +81,23 @@ Pangolin is a self-hosted tunneled reverse proxy server with identity and access
<img src="public/auth-diagram1.png" alt="Auth and diagram"/> <img src="public/auth-diagram1.png" alt="Auth and diagram"/>
#### Manage Access to Internal Apps ## Use Cases
Grant users access to your apps from anywhere using just a web browser. No client software required. ### Manage Access to Internal Apps
#### Developers and DevOps - Grant users access to your apps from anywhere using just a web browser. No client software required.
Expose and test internal tools and dashboards like **Grafana**. Bring localhost online for easy access. ### Developers and DevOps
#### Secure API Gateway - Expose and test internal tools and dashboards like **Grafana**. Bring localhost or private IPs online for easy access.
One application load balancer across multiple clouds and on-premises. ### Secure API Gateway
#### IoT and Edge Devices - One application load balancer across multiple clouds and on-premises.
Easily expose **IoT devices**, **edge servers**, or **Raspberry Pi** to the internet for field equipment monitoring. ### IoT and Edge Devices
- Easily expose **IoT devices**, **edge servers**, or **Raspberry Pi** to the internet for field equipment monitoring.
<img src="public/screenshots/sites.png" alt="Sites"/> <img src="public/screenshots/sites.png" alt="Sites"/>
@ -103,7 +105,7 @@ Easily expose **IoT devices**, **edge servers**, or **Raspberry Pi** to the inte
### Fully Self Hosted ### Fully Self Hosted
Host the full application on your own server on your network our on the cloud with a VPS. Take a look at the [documentation](https://docs.fossorial.io/Getting%20Started/quick-install) to get started. Host the full application on your own server or on the cloud with a VPS. Take a look at the [documentation](https://docs.fossorial.io/Getting%20Started/quick-install) to get started.
> Many of our users have had a great experience with [RackNerd](https://my.racknerd.com/aff.php?aff=13788). Depending on promotions, you can get a [**VPS with 1 vCPU, 1GB RAM, and ~20GB SSD for just around $12/year**](https://my.racknerd.com/aff.php?aff=13788&pid=912). That's a great deal! > Many of our users have had a great experience with [RackNerd](https://my.racknerd.com/aff.php?aff=13788). Depending on promotions, you can get a [**VPS with 1 vCPU, 1GB RAM, and ~20GB SSD for just around $12/year**](https://my.racknerd.com/aff.php?aff=13788&pid=912). That's a great deal!
@ -111,28 +113,25 @@ Host the full application on your own server on your network our on the cloud wi
Easy to use with simple pay as you go pricing. [Check it out here](https://pangolin.fossorial.io/auth/signup). Easy to use with simple pay as you go pricing. [Check it out here](https://pangolin.fossorial.io/auth/signup).
- Everything you get with self hosted Pangolin - Everything you get with self hosted Pangolin, but fully managed for you.
- Managed for you
### Hybrid & HA ### Hybrid & High Availability
Managed control plane, your infrastructure Managed control plane, your infrastructure
- We manage database and control plane - We manage database and control plane.
- You self-host lightweight exit-node - You self-host lightweight exit-node.
- Traffic flows through your infra - Traffic flows through your infra.
- We coordinate failover between your nodes or to cloud when things go bad - We coordinate failover between your nodes or to Cloud when things go bad.
If interested contact [contact us](mailto:numbat@fossorial.io). If interested, [contact us](mailto:numbat@fossorial.io).
### Enterprise ### Full Enterprise On-Premises
[Contact us](mailto:numbat@fossorial.io) for HA distributed enterprise deployments fully controlled by your team [Contact us](mailto:numbat@fossorial.io) for a full distributed and enterprise deployments on your infrastructure controlled by your team.
## Project Development / Roadmap ## Project Development / Roadmap
View the [project board](https://github.com/orgs/fosrl/projects/1) for more detailed info.
We want to hear your feature requests! Add them to the [discussion board](https://github.com/orgs/fosrl/discussions/categories/feature-requests). We want to hear your feature requests! Add them to the [discussion board](https://github.com/orgs/fosrl/discussions/categories/feature-requests).
## Licensing ## Licensing

View file

@ -1198,7 +1198,8 @@
"newtUpdateAvailableInfo": "A new version of Newt is available. Please update to the latest version for the best experience.", "newtUpdateAvailableInfo": "A new version of Newt is available. Please update to the latest version for the best experience.",
"domainPickerEnterDomain": "Enter your domain", "domainPickerEnterDomain": "Enter your domain",
"domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com, or just myapp", "domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com, or just myapp",
"domainPickerDescription": "Enter a full domain, subdomain, or just a name to see available options", "domainPickerDescription": "Enter the full domain of the resource to see available options.",
"domainPickerDescriptionSaas": "Enter a full domain, subdomain, or just a name to see available options",
"domainPickerTabAll": "All", "domainPickerTabAll": "All",
"domainPickerTabOrganization": "Organization", "domainPickerTabOrganization": "Organization",
"domainPickerTabProvided": "Provided", "domainPickerTabProvided": "Provided",
@ -1231,7 +1232,7 @@
"securityKeyRemoveSuccess": "Security key removed successfully", "securityKeyRemoveSuccess": "Security key removed successfully",
"securityKeyRemoveError": "Failed to remove security key", "securityKeyRemoveError": "Failed to remove security key",
"securityKeyLoadError": "Failed to load security keys", "securityKeyLoadError": "Failed to load security keys",
"securityKeyLogin": "Sign in with security key", "securityKeyLogin": "Continue with security key",
"securityKeyAuthError": "Failed to authenticate with security key", "securityKeyAuthError": "Failed to authenticate with security key",
"securityKeyRecommendation": "Register a backup security key on another device to ensure you always have access to your account.", "securityKeyRecommendation": "Register a backup security key on another device to ensure you always have access to your account.",
"registering": "Registering...", "registering": "Registering...",

View file

@ -13,7 +13,7 @@
"welcome": "Willkommen zu Pangolin", "welcome": "Willkommen zu Pangolin",
"welcomeTo": "Willkommen bei", "welcomeTo": "Willkommen bei",
"componentsCreateOrg": "Erstelle eine Organisation", "componentsCreateOrg": "Erstelle eine Organisation",
"componentsMember": "You're a member of {count, plural, =0 {no organization} one {one organization} other {# organizations}}.", "componentsMember": "Du bist Mitglied von {count, plural, =0 {keiner Organisation} one {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. Beachte die Lizenzbedingungen, um alle Funktionen weiterhin zu nutzen.",
"dismiss": "Verwerfen", "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": "Lizenzverstoß: Dieser Server benutzt {usedSites} Sites, die das Lizenzlimit der {maxSites} Sites überschreiten. Beachte die Lizenzbedingungen, um alle Funktionen weiterhin zu nutzen.",
@ -349,7 +349,7 @@
"licensePurchase": "Lizenz kaufen", "licensePurchase": "Lizenz kaufen",
"licensePurchaseSites": "Zusätzliche Seiten kaufen", "licensePurchaseSites": "Zusätzliche Seiten kaufen",
"licenseSitesUsedMax": "{usedSites} der {maxSites} Seiten verwendet", "licenseSitesUsedMax": "{usedSites} der {maxSites} Seiten verwendet",
"licenseSitesUsed": "{count, plural, =0 {# sites} one {# site} other {# sites}} in system.", "licenseSitesUsed": "{count, plural, =0 {# Seiten} one {# Seite} other {# Seiten}} im System.",
"licensePurchaseDescription": "Wähle aus, für wieviele Seiten du möchtest {selectedMode, select, license {kaufe eine Lizenz. Du kannst später immer weitere Seiten hinzufügen.} other {Füge zu deiner bestehenden Lizenz hinzu.}}", "licensePurchaseDescription": "Wähle aus, für wieviele Seiten du möchtest {selectedMode, select, license {kaufe eine Lizenz. Du kannst später immer weitere Seiten hinzufügen.} other {Füge zu deiner bestehenden Lizenz hinzu.}}",
"licenseFee": "Lizenzgebühr", "licenseFee": "Lizenzgebühr",
"licensePriceSite": "Preis pro Seite", "licensePriceSite": "Preis pro Seite",
@ -1198,7 +1198,8 @@
"newtUpdateAvailableInfo": "Eine neue Version von Newt ist verfügbar. Bitte aktualisieren Sie auf die neueste Version für das beste Erlebnis.", "newtUpdateAvailableInfo": "Eine neue Version von Newt ist verfügbar. Bitte aktualisieren Sie auf die neueste Version für das beste Erlebnis.",
"domainPickerEnterDomain": "Geben Sie Ihre Domain ein", "domainPickerEnterDomain": "Geben Sie Ihre Domain ein",
"domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com, oder einfach myapp", "domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com, oder einfach myapp",
"domainPickerDescription": "Geben Sie eine vollständige Domain, Subdomain oder einfach einen Namen ein, um verfügbare Optionen zu sehen", "domainPickerDescription": "Geben Sie die vollständige Domäne der Ressource ein, um verfügbare Optionen zu sehen.",
"domainPickerDescriptionSaas": "Geben Sie eine vollständige Domäne, Subdomäne oder einfach einen Namen ein, um verfügbare Optionen zu sehen",
"domainPickerTabAll": "Alle", "domainPickerTabAll": "Alle",
"domainPickerTabOrganization": "Organisation", "domainPickerTabOrganization": "Organisation",
"domainPickerTabProvided": "Bereitgestellt", "domainPickerTabProvided": "Bereitgestellt",
@ -1231,7 +1232,7 @@
"securityKeyRemoveSuccess": "Sicherheitsschlüssel erfolgreich entfernt", "securityKeyRemoveSuccess": "Sicherheitsschlüssel erfolgreich entfernt",
"securityKeyRemoveError": "Fehler beim Entfernen des Sicherheitsschlüssels", "securityKeyRemoveError": "Fehler beim Entfernen des Sicherheitsschlüssels",
"securityKeyLoadError": "Fehler beim Laden der Sicherheitsschlüssel", "securityKeyLoadError": "Fehler beim Laden der Sicherheitsschlüssel",
"securityKeyLogin": "Mit Sicherheitsschlüssel anmelden", "securityKeyLogin": "Mit dem Sicherheitsschlüssel fortfahren",
"securityKeyAuthError": "Fehler bei der Authentifizierung mit Sicherheitsschlüssel", "securityKeyAuthError": "Fehler bei der Authentifizierung mit Sicherheitsschlüssel",
"securityKeyRecommendation": "Erwägen Sie die Registrierung eines weiteren Sicherheitsschlüssels auf einem anderen Gerät, um sicherzustellen, dass Sie sich nicht aus Ihrem Konto aussperren.", "securityKeyRecommendation": "Erwägen Sie die Registrierung eines weiteren Sicherheitsschlüssels auf einem anderen Gerät, um sicherzustellen, dass Sie sich nicht aus Ihrem Konto aussperren.",
"registering": "Registrierung...", "registering": "Registrierung...",

View file

@ -13,7 +13,7 @@
"welcome": "Bienvenido a Pangolin", "welcome": "Bienvenido a Pangolin",
"welcomeTo": "Bienvenido a", "welcomeTo": "Bienvenido a",
"componentsCreateOrg": "Crear una organización", "componentsCreateOrg": "Crear una organización",
"componentsMember": "You're a member of {count, plural, =0 {no organization} one {one organization} other {# organizations}}.", "componentsMember": "Eres un miembro de {count, plural, =0 {ninguna organización} one {una organización} other {# organizaciones}}.",
"componentsInvalidKey": "Se han detectado claves de licencia inválidas o caducadas. Siga los términos de licencia para seguir usando todas las características.", "componentsInvalidKey": "Se han detectado claves de licencia inválidas o caducadas. Siga los términos de licencia para seguir usando todas las características.",
"dismiss": "Descartar", "dismiss": "Descartar",
"componentsLicenseViolation": "Violación de la Licencia: Este servidor está usando sitios {usedSites} que exceden su límite de licencias de sitios {maxSites} . Siga los términos de licencia para seguir usando todas las características.", "componentsLicenseViolation": "Violación de la Licencia: Este servidor está usando sitios {usedSites} que exceden su límite de licencias de sitios {maxSites} . Siga los términos de licencia para seguir usando todas las características.",
@ -349,7 +349,7 @@
"licensePurchase": "Comprar Licencia", "licensePurchase": "Comprar Licencia",
"licensePurchaseSites": "Comprar sitios adicionales", "licensePurchaseSites": "Comprar sitios adicionales",
"licenseSitesUsedMax": "{usedSites} de {maxSites} sitios usados", "licenseSitesUsedMax": "{usedSites} de {maxSites} sitios usados",
"licenseSitesUsed": "{count, plural, =0 {# sites} one {# site} other {# sites}} in system.", "licenseSitesUsed": "{count, plural, =0 {# sitios} one {# sitio} other {# sitios}} en el sistema.",
"licensePurchaseDescription": "Elige cuántos sitios quieres {selectedMode, select, license {compra una licencia para. Siempre puedes añadir más sitios más tarde.} other {añadir a tu licencia existente.}}", "licensePurchaseDescription": "Elige cuántos sitios quieres {selectedMode, select, license {compra una licencia para. Siempre puedes añadir más sitios más tarde.} other {añadir a tu licencia existente.}}",
"licenseFee": "Tarifa de licencia", "licenseFee": "Tarifa de licencia",
"licensePriceSite": "Precio por sitio", "licensePriceSite": "Precio por sitio",
@ -1198,7 +1198,8 @@
"newtUpdateAvailableInfo": "Hay una nueva versión de Newt disponible. Actualice a la última versión para la mejor experiencia.", "newtUpdateAvailableInfo": "Hay una nueva versión de Newt disponible. Actualice a la última versión para la mejor experiencia.",
"domainPickerEnterDomain": "Ingresa tu dominio", "domainPickerEnterDomain": "Ingresa tu dominio",
"domainPickerPlaceholder": "myapp.example.com, api.v1.miDominio.com, o solo myapp", "domainPickerPlaceholder": "myapp.example.com, api.v1.miDominio.com, o solo myapp",
"domainPickerDescription": "Ingresa un dominio completo, subdominio, o solo un nombre para ver las opciones disponibles", "domainPickerDescription": "Ingresa el dominio completo del recurso para ver las opciones disponibles.",
"domainPickerDescriptionSaas": "Ingresa un dominio completo, subdominio o simplemente un nombre para ver las opciones disponibles",
"domainPickerTabAll": "Todo", "domainPickerTabAll": "Todo",
"domainPickerTabOrganization": "Organización", "domainPickerTabOrganization": "Organización",
"domainPickerTabProvided": "Proporcionado", "domainPickerTabProvided": "Proporcionado",
@ -1231,7 +1232,7 @@
"securityKeyRemoveSuccess": "Llave de seguridad eliminada exitosamente", "securityKeyRemoveSuccess": "Llave de seguridad eliminada exitosamente",
"securityKeyRemoveError": "Error al eliminar la llave de seguridad", "securityKeyRemoveError": "Error al eliminar la llave de seguridad",
"securityKeyLoadError": "Error al cargar las llaves de seguridad", "securityKeyLoadError": "Error al cargar las llaves de seguridad",
"securityKeyLogin": "Iniciar sesión con llave de seguridad", "securityKeyLogin": "Continuar con clave de seguridad",
"securityKeyAuthError": "Error al autenticar con llave de seguridad", "securityKeyAuthError": "Error al autenticar con llave de seguridad",
"securityKeyRecommendation": "Considere registrar otra llave de seguridad en un dispositivo diferente para asegurarse de no quedar bloqueado de su cuenta.", "securityKeyRecommendation": "Considere registrar otra llave de seguridad en un dispositivo diferente para asegurarse de no quedar bloqueado de su cuenta.",
"registering": "Registrando...", "registering": "Registrando...",

View file

@ -1198,7 +1198,8 @@
"newtUpdateAvailableInfo": "Une nouvelle version de Newt est disponible. Veuillez mettre à jour vers la dernière version pour une meilleure expérience.", "newtUpdateAvailableInfo": "Une nouvelle version de Newt est disponible. Veuillez mettre à jour vers la dernière version pour une meilleure expérience.",
"domainPickerEnterDomain": "Entrez votre domaine", "domainPickerEnterDomain": "Entrez votre domaine",
"domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com, ou simplement myapp", "domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com, ou simplement myapp",
"domainPickerDescription": "Entrez un domaine complet, un sous-domaine, ou simplement un nom pour voir les options disponibles", "domainPickerDescription": "Entrez le domaine complet de la ressource pour voir les options disponibles.",
"domainPickerDescriptionSaas": "Entrez un domaine complet, un sous-domaine ou juste un nom pour voir les options disponibles",
"domainPickerTabAll": "Tous", "domainPickerTabAll": "Tous",
"domainPickerTabOrganization": "Organisation", "domainPickerTabOrganization": "Organisation",
"domainPickerTabProvided": "Fournis", "domainPickerTabProvided": "Fournis",
@ -1231,7 +1232,7 @@
"securityKeyRemoveSuccess": "Clé de sécurité supprimée avec succès", "securityKeyRemoveSuccess": "Clé de sécurité supprimée avec succès",
"securityKeyRemoveError": "Échec de la suppression de la clé de sécurité", "securityKeyRemoveError": "Échec de la suppression de la clé de sécurité",
"securityKeyLoadError": "Échec du chargement des clés de sécurité", "securityKeyLoadError": "Échec du chargement des clés de sécurité",
"securityKeyLogin": "Se connecter avec une clé de sécurité", "securityKeyLogin": "Continuer avec une clé de sécurité",
"securityKeyAuthError": "Échec de l'authentification avec la clé de sécurité", "securityKeyAuthError": "Échec de l'authentification avec la clé de sécurité",
"securityKeyRecommendation": "Envisagez d'enregistrer une autre clé de sécurité sur un appareil différent pour vous assurer de ne pas être bloqué de votre compte.", "securityKeyRecommendation": "Envisagez d'enregistrer une autre clé de sécurité sur un appareil différent pour vous assurer de ne pas être bloqué de votre compte.",
"registering": "Enregistrement...", "registering": "Enregistrement...",

View file

@ -1198,7 +1198,8 @@
"newtUpdateAvailableInfo": "È disponibile una nuova versione di Newt. Si prega di aggiornare all'ultima versione per la migliore esperienza.", "newtUpdateAvailableInfo": "È disponibile una nuova versione di Newt. Si prega di aggiornare all'ultima versione per la migliore esperienza.",
"domainPickerEnterDomain": "Inserisci il tuo dominio", "domainPickerEnterDomain": "Inserisci il tuo dominio",
"domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com, o semplicemente myapp", "domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com, o semplicemente myapp",
"domainPickerDescription": "Inserisci un dominio completo, sottodominio o solo un nome per vedere le opzioni disponibili", "domainPickerDescription": "Inserisci il dominio completo della risorsa per vedere le opzioni disponibili.",
"domainPickerDescriptionSaas": "Inserisci un dominio completo, un sottodominio o semplicemente un nome per vedere le opzioni disponibili",
"domainPickerTabAll": "Tutti", "domainPickerTabAll": "Tutti",
"domainPickerTabOrganization": "Organizzazione", "domainPickerTabOrganization": "Organizzazione",
"domainPickerTabProvided": "Fornito", "domainPickerTabProvided": "Fornito",
@ -1231,7 +1232,7 @@
"securityKeyRemoveSuccess": "Chiave di sicurezza rimossa con successo", "securityKeyRemoveSuccess": "Chiave di sicurezza rimossa con successo",
"securityKeyRemoveError": "Errore durante la rimozione della chiave di sicurezza", "securityKeyRemoveError": "Errore durante la rimozione della chiave di sicurezza",
"securityKeyLoadError": "Errore durante il caricamento delle chiavi di sicurezza", "securityKeyLoadError": "Errore durante il caricamento delle chiavi di sicurezza",
"securityKeyLogin": "Accedi con chiave di sicurezza", "securityKeyLogin": "Continua con la chiave di sicurezza",
"securityKeyAuthError": "Errore durante l'autenticazione con chiave di sicurezza", "securityKeyAuthError": "Errore durante l'autenticazione con chiave di sicurezza",
"securityKeyRecommendation": "Considera di registrare un'altra chiave di sicurezza su un dispositivo diverso per assicurarti di non rimanere bloccato fuori dal tuo account.", "securityKeyRecommendation": "Considera di registrare un'altra chiave di sicurezza su un dispositivo diverso per assicurarti di non rimanere bloccato fuori dal tuo account.",
"registering": "Registrazione in corso...", "registering": "Registrazione in corso...",

View file

@ -1198,7 +1198,8 @@
"newtUpdateAvailableInfo": "뉴트의 새 버전이 출시되었습니다. 최상의 경험을 위해 최신 버전으로 업데이트하세요.", "newtUpdateAvailableInfo": "뉴트의 새 버전이 출시되었습니다. 최상의 경험을 위해 최신 버전으로 업데이트하세요.",
"domainPickerEnterDomain": "도메인 입력", "domainPickerEnterDomain": "도메인 입력",
"domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com, 또는 그냥 myapp", "domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com, 또는 그냥 myapp",
"domainPickerDescription": "도메인, 서브도메인, 또는 이름을 입력하여 사용 가능한 옵션을 확인하세요", "domainPickerDescription": "Enter the full domain of the resource to see available options.",
"domainPickerDescriptionSaas": "Enter a full domain, subdomain, or just a name to see available options",
"domainPickerTabAll": "모두", "domainPickerTabAll": "모두",
"domainPickerTabOrganization": "조직", "domainPickerTabOrganization": "조직",
"domainPickerTabProvided": "제공 됨", "domainPickerTabProvided": "제공 됨",
@ -1231,7 +1232,7 @@
"securityKeyRemoveSuccess": "보안 키가 성공적으로 제거되었습니다", "securityKeyRemoveSuccess": "보안 키가 성공적으로 제거되었습니다",
"securityKeyRemoveError": "보안 키 제거 실패", "securityKeyRemoveError": "보안 키 제거 실패",
"securityKeyLoadError": "보안 키를 불러오는 데 실패했습니다", "securityKeyLoadError": "보안 키를 불러오는 데 실패했습니다",
"securityKeyLogin": "보안 키로 로그인", "securityKeyLogin": "Continue with security key",
"securityKeyAuthError": "보안 키를 사용한 인증 실패", "securityKeyAuthError": "보안 키를 사용한 인증 실패",
"securityKeyRecommendation": "항상 계정에 액세스할 수 있도록 다른 장치에 백업 보안 키를 등록하세요.", "securityKeyRecommendation": "항상 계정에 액세스할 수 있도록 다른 장치에 백업 보안 키를 등록하세요.",
"registering": "등록 중...", "registering": "등록 중...",

View file

@ -1198,7 +1198,8 @@
"newtUpdateAvailableInfo": "Er is een nieuwe versie van Newt beschikbaar. Update naar de nieuwste versie voor de beste ervaring.", "newtUpdateAvailableInfo": "Er is een nieuwe versie van Newt beschikbaar. Update naar de nieuwste versie voor de beste ervaring.",
"domainPickerEnterDomain": "Voer je domein in", "domainPickerEnterDomain": "Voer je domein in",
"domainPickerPlaceholder": "mijnapp.voorbeeld.com, api.v1.mijndomein.com, of gewoon mijnapp", "domainPickerPlaceholder": "mijnapp.voorbeeld.com, api.v1.mijndomein.com, of gewoon mijnapp",
"domainPickerDescription": "Voer een volledig domein, subdomein of alleen een naam in om beschikbare opties te zien", "domainPickerDescription": "Voer de volledige domein van de bron in om beschikbare opties te zien.",
"domainPickerDescriptionSaas": "Voer een volledig domein, subdomein of gewoon een naam in om beschikbare opties te zien",
"domainPickerTabAll": "Alles", "domainPickerTabAll": "Alles",
"domainPickerTabOrganization": "Organisatie", "domainPickerTabOrganization": "Organisatie",
"domainPickerTabProvided": "Aangeboden", "domainPickerTabProvided": "Aangeboden",
@ -1231,7 +1232,7 @@
"securityKeyRemoveSuccess": "Beveiligingssleutel succesvol verwijderd", "securityKeyRemoveSuccess": "Beveiligingssleutel succesvol verwijderd",
"securityKeyRemoveError": "Fout bij verwijderen van beveiligingssleutel", "securityKeyRemoveError": "Fout bij verwijderen van beveiligingssleutel",
"securityKeyLoadError": "Fout bij laden van beveiligingssleutels", "securityKeyLoadError": "Fout bij laden van beveiligingssleutels",
"securityKeyLogin": "Inloggen met beveiligingssleutel", "securityKeyLogin": "Doorgaan met beveiligingssleutel",
"securityKeyAuthError": "Fout bij authenticatie met beveiligingssleutel", "securityKeyAuthError": "Fout bij authenticatie met beveiligingssleutel",
"securityKeyRecommendation": "Overweeg om een andere beveiligingssleutel te registreren op een ander apparaat om ervoor te zorgen dat u niet buitengesloten raakt van uw account.", "securityKeyRecommendation": "Overweeg om een andere beveiligingssleutel te registreren op een ander apparaat om ervoor te zorgen dat u niet buitengesloten raakt van uw account.",
"registering": "Registreren...", "registering": "Registreren...",

View file

@ -1174,7 +1174,7 @@
"billing": "Fakturowanie", "billing": "Fakturowanie",
"orgBillingDescription": "Zarządzaj swoimi informacjami rozliczeniowymi i subskrypcjami", "orgBillingDescription": "Zarządzaj swoimi informacjami rozliczeniowymi i subskrypcjami",
"github": "GitHub", "github": "GitHub",
"pangolinHosted": "Pangolin Hosted", "pangolinHosted": "Logo Pangolin",
"fossorial": "Fossorial", "fossorial": "Fossorial",
"completeAccountSetup": "Zakończ konfigurację konta", "completeAccountSetup": "Zakończ konfigurację konta",
"completeAccountSetupDescription": "Ustaw swoje hasło, aby rozpocząć", "completeAccountSetupDescription": "Ustaw swoje hasło, aby rozpocząć",
@ -1198,7 +1198,8 @@
"newtUpdateAvailableInfo": "Nowa wersja Newt jest dostępna. Prosimy o aktualizację do najnowszej wersji dla najlepszej pracy.", "newtUpdateAvailableInfo": "Nowa wersja Newt jest dostępna. Prosimy o aktualizację do najnowszej wersji dla najlepszej pracy.",
"domainPickerEnterDomain": "Wprowadź swoją domenę", "domainPickerEnterDomain": "Wprowadź swoją domenę",
"domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com lub po prostu myapp", "domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com lub po prostu myapp",
"domainPickerDescription": "Wprowadź pełną domenę, subdomenę, lub po prostu nazwę, aby zobaczyć dostępne opcje", "domainPickerDescription": "Wpisz pełną domenę zasobu, aby zobaczyć dostępne opcje.",
"domainPickerDescriptionSaas": "Wprowadź pełną domenę, subdomenę lub po prostu nazwę, aby zobaczyć dostępne opcje",
"domainPickerTabAll": "Wszystko", "domainPickerTabAll": "Wszystko",
"domainPickerTabOrganization": "Organizacja", "domainPickerTabOrganization": "Organizacja",
"domainPickerTabProvided": "Dostarczona", "domainPickerTabProvided": "Dostarczona",
@ -1265,7 +1266,7 @@
"createDomainName": "Nazwa:", "createDomainName": "Nazwa:",
"createDomainValue": "Wartość:", "createDomainValue": "Wartość:",
"createDomainCnameRecords": "Rekordy CNAME", "createDomainCnameRecords": "Rekordy CNAME",
"createDomainRecordNumber": "Record {number}", "createDomainRecordNumber": "Rekord {number}",
"createDomainTxtRecords": "Rekordy TXT", "createDomainTxtRecords": "Rekordy TXT",
"createDomainSaveTheseRecords": "Zapisz te rekordy", "createDomainSaveTheseRecords": "Zapisz te rekordy",
"createDomainSaveTheseRecordsDescription": "Upewnij się, że zapiszesz te rekordy DNS, ponieważ nie będziesz mieć ich ponownie na ekranie.", "createDomainSaveTheseRecordsDescription": "Upewnij się, że zapiszesz te rekordy DNS, ponieważ nie będziesz mieć ich ponownie na ekranie.",

View file

@ -1198,7 +1198,8 @@
"newtUpdateAvailableInfo": "Uma nova versão do Newt está disponível. Atualize para a versão mais recente para uma melhor experiência.", "newtUpdateAvailableInfo": "Uma nova versão do Newt está disponível. Atualize para a versão mais recente para uma melhor experiência.",
"domainPickerEnterDomain": "Insira seu domínio", "domainPickerEnterDomain": "Insira seu domínio",
"domainPickerPlaceholder": "meuapp.exemplo.com, api.v1.meudominio.com, ou apenas meuapp", "domainPickerPlaceholder": "meuapp.exemplo.com, api.v1.meudominio.com, ou apenas meuapp",
"domainPickerDescription": "Digite um domínio completo, subdomínio, ou apenas um nome para ver opções disponíveis", "domainPickerDescription": "Insira o domínio completo do recurso para ver as opções disponíveis.",
"domainPickerDescriptionSaas": "Insira um domínio completo, subdomínio ou apenas um nome para ver as opções disponíveis",
"domainPickerTabAll": "Todos", "domainPickerTabAll": "Todos",
"domainPickerTabOrganization": "Organização", "domainPickerTabOrganization": "Organização",
"domainPickerTabProvided": "Fornecido", "domainPickerTabProvided": "Fornecido",
@ -1231,7 +1232,7 @@
"securityKeyRemoveSuccess": "Chave de segurança removida com sucesso", "securityKeyRemoveSuccess": "Chave de segurança removida com sucesso",
"securityKeyRemoveError": "Erro ao remover chave de segurança", "securityKeyRemoveError": "Erro ao remover chave de segurança",
"securityKeyLoadError": "Erro ao carregar chaves de segurança", "securityKeyLoadError": "Erro ao carregar chaves de segurança",
"securityKeyLogin": "Entrar com chave de segurança", "securityKeyLogin": "Continuar com a chave de segurança",
"securityKeyAuthError": "Erro ao autenticar com chave de segurança", "securityKeyAuthError": "Erro ao autenticar com chave de segurança",
"securityKeyRecommendation": "Considere registrar outra chave de segurança em um dispositivo diferente para garantir que você não fique bloqueado da sua conta.", "securityKeyRecommendation": "Considere registrar outra chave de segurança em um dispositivo diferente para garantir que você não fique bloqueado da sua conta.",
"registering": "Registrando...", "registering": "Registrando...",

View file

@ -1198,7 +1198,8 @@
"newtUpdateAvailableInfo": "A new version of Newt is available. Please update to the latest version for the best experience.", "newtUpdateAvailableInfo": "A new version of Newt is available. Please update to the latest version for the best experience.",
"domainPickerEnterDomain": "Enter your domain", "domainPickerEnterDomain": "Enter your domain",
"domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com, or just myapp", "domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com, or just myapp",
"domainPickerDescription": "Enter a full domain, subdomain, or just a name to see available options", "domainPickerDescription": "Enter the full domain of the resource to see available options.",
"domainPickerDescriptionSaas": "Enter a full domain, subdomain, or just a name to see available options",
"domainPickerTabAll": "All", "domainPickerTabAll": "All",
"domainPickerTabOrganization": "Organization", "domainPickerTabOrganization": "Organization",
"domainPickerTabProvided": "Provided", "domainPickerTabProvided": "Provided",
@ -1231,7 +1232,7 @@
"securityKeyRemoveSuccess": "Security key removed successfully", "securityKeyRemoveSuccess": "Security key removed successfully",
"securityKeyRemoveError": "Failed to remove security key", "securityKeyRemoveError": "Failed to remove security key",
"securityKeyLoadError": "Failed to load security keys", "securityKeyLoadError": "Failed to load security keys",
"securityKeyLogin": "Sign in with security key", "securityKeyLogin": "Continue with security key",
"securityKeyAuthError": "Failed to authenticate with security key", "securityKeyAuthError": "Failed to authenticate with security key",
"securityKeyRecommendation": "Register a backup security key on another device to ensure you always have access to your account.", "securityKeyRecommendation": "Register a backup security key on another device to ensure you always have access to your account.",
"registering": "Registering...", "registering": "Registering...",

View file

@ -1198,7 +1198,8 @@
"newtUpdateAvailableInfo": "Newt'in yeni bir versiyonu mevcut. En iyi deneyim için lütfen en son sürüme güncelleyin.", "newtUpdateAvailableInfo": "Newt'in yeni bir versiyonu mevcut. En iyi deneyim için lütfen en son sürüme güncelleyin.",
"domainPickerEnterDomain": "Alan adınızı girin", "domainPickerEnterDomain": "Alan adınızı girin",
"domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com veya sadece myapp", "domainPickerPlaceholder": "myapp.example.com, api.v1.mydomain.com veya sadece myapp",
"domainPickerDescription": "Mevcut seçenekleri görmek için tam bir alan adı, alt alan adı veya sadece bir isim girin.", "domainPickerDescription": "Mevcut seçenekleri görmek için kaynağın tam etki alanını girin.",
"domainPickerDescriptionSaas": "Mevcut seçenekleri görmek için tam etki alanı, alt etki alanı veya sadece bir isim girin",
"domainPickerTabAll": "Tümü", "domainPickerTabAll": "Tümü",
"domainPickerTabOrganization": "Organizasyon", "domainPickerTabOrganization": "Organizasyon",
"domainPickerTabProvided": "Sağlanan", "domainPickerTabProvided": "Sağlanan",
@ -1231,7 +1232,7 @@
"securityKeyRemoveSuccess": "Güvenlik anahtarı başarıyla kaldırıldı", "securityKeyRemoveSuccess": "Güvenlik anahtarı başarıyla kaldırıldı",
"securityKeyRemoveError": "Güvenlik anahtarı kaldırılırken hata oluştu", "securityKeyRemoveError": "Güvenlik anahtarı kaldırılırken hata oluştu",
"securityKeyLoadError": "Güvenlik anahtarları yüklenirken hata oluştu", "securityKeyLoadError": "Güvenlik anahtarları yüklenirken hata oluştu",
"securityKeyLogin": "Güvenlik anahtarı ile giriş yap", "securityKeyLogin": "Güvenlik anahtarı ile devam edin",
"securityKeyAuthError": "Güvenlik anahtarı ile kimlik doğrulama başarısız oldu", "securityKeyAuthError": "Güvenlik anahtarı ile kimlik doğrulama başarısız oldu",
"securityKeyRecommendation": "Hesabınızdan kilitlenmediğinizden emin olmak için farklı bir cihazda başka bir güvenlik anahtarı kaydetmeyi düşünün.", "securityKeyRecommendation": "Hesabınızdan kilitlenmediğinizden emin olmak için farklı bir cihazda başka bir güvenlik anahtarı kaydetmeyi düşünün.",
"registering": "Kaydediliyor...", "registering": "Kaydediliyor...",

View file

@ -13,7 +13,7 @@
"welcome": "欢迎使用 Pangolin", "welcome": "欢迎使用 Pangolin",
"welcomeTo": "欢迎来到", "welcomeTo": "欢迎来到",
"componentsCreateOrg": "创建组织", "componentsCreateOrg": "创建组织",
"componentsMember": "You're a member of {count, plural, =0 {no organization} one {one organization} other {# organizations}}.", "componentsMember": "您属于{count, plural, =0 {没有组织} one {一个组织} other {# 个组织}}。",
"componentsInvalidKey": "检测到无效或过期的许可证密钥。按照许可证条款操作以继续使用所有功能。", "componentsInvalidKey": "检测到无效或过期的许可证密钥。按照许可证条款操作以继续使用所有功能。",
"dismiss": "忽略", "dismiss": "忽略",
"componentsLicenseViolation": "许可证超限:该服务器使用了 {usedSites} 个站点,已超过授权的 {maxSites} 个。请遵守许可证条款以继续使用全部功能。", "componentsLicenseViolation": "许可证超限:该服务器使用了 {usedSites} 个站点,已超过授权的 {maxSites} 个。请遵守许可证条款以继续使用全部功能。",
@ -349,7 +349,7 @@
"licensePurchase": "购买许可证", "licensePurchase": "购买许可证",
"licensePurchaseSites": "购买更多站点", "licensePurchaseSites": "购买更多站点",
"licenseSitesUsedMax": "使用了 {usedSites}/{maxSites} 个站点", "licenseSitesUsedMax": "使用了 {usedSites}/{maxSites} 个站点",
"licenseSitesUsed": "{count, plural, =0 {# sites} one {# site} other {# sites}} in system.", "licenseSitesUsed": "{count, plural, =0 {# 站点} one {# 站点} other {# 站点}}",
"licensePurchaseDescription": "请选择您希望 {selectedMode, select, license {直接购买许可证,您可以随时增加更多站点。} other {为现有许可证购买更多站点}}", "licensePurchaseDescription": "请选择您希望 {selectedMode, select, license {直接购买许可证,您可以随时增加更多站点。} other {为现有许可证购买更多站点}}",
"licenseFee": "许可证费用", "licenseFee": "许可证费用",
"licensePriceSite": "每个站点的价格", "licensePriceSite": "每个站点的价格",
@ -1198,7 +1198,8 @@
"newtUpdateAvailableInfo": "新版本的 Newt 已可用。请更新到最新版本以获得最佳体验。", "newtUpdateAvailableInfo": "新版本的 Newt 已可用。请更新到最新版本以获得最佳体验。",
"domainPickerEnterDomain": "输入您的域", "domainPickerEnterDomain": "输入您的域",
"domainPickerPlaceholder": "myapp.example.com、api.v1.mydomain.com 或仅 myapp", "domainPickerPlaceholder": "myapp.example.com、api.v1.mydomain.com 或仅 myapp",
"domainPickerDescription": "输入完整域名、子域或仅输入名称以查看可用选项", "domainPickerDescription": "输入资源的完整域名以查看可用选项。",
"domainPickerDescriptionSaas": "输入完整域名、子域或名称以查看可用选项。",
"domainPickerTabAll": "所有", "domainPickerTabAll": "所有",
"domainPickerTabOrganization": "组织", "domainPickerTabOrganization": "组织",
"domainPickerTabProvided": "提供的", "domainPickerTabProvided": "提供的",
@ -1231,7 +1232,7 @@
"securityKeyRemoveSuccess": "安全密钥删除成功", "securityKeyRemoveSuccess": "安全密钥删除成功",
"securityKeyRemoveError": "删除安全密钥失败", "securityKeyRemoveError": "删除安全密钥失败",
"securityKeyLoadError": "加载安全密钥失败", "securityKeyLoadError": "加载安全密钥失败",
"securityKeyLogin": "使用安全密钥登录", "securityKeyLogin": "使用安全密钥继续",
"securityKeyAuthError": "使用安全密钥认证失败", "securityKeyAuthError": "使用安全密钥认证失败",
"securityKeyRecommendation": "考虑在其他设备上注册另一个安全密钥,以确保不会被锁定在您的账户之外。", "securityKeyRecommendation": "考虑在其他设备上注册另一个安全密钥,以确保不会被锁定在您的账户之外。",
"registering": "注册中...", "registering": "注册中...",