diff --git a/README.md b/README.md index 8032f41f..49206e49 100644 --- a/README.md +++ b/README.md @@ -81,21 +81,23 @@ Pangolin is a self-hosted tunneled reverse proxy server with identity and access 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. Sites @@ -103,7 +105,7 @@ Easily expose **IoT devices**, **edge servers**, or **Raspberry Pi** to the inte ### 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! @@ -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). -- Everything you get with self hosted Pangolin -- Managed for you +- Everything you get with self hosted Pangolin, but fully managed for you. -### Hybrid & HA +### Hybrid & High Availability Managed control plane, your infrastructure -- We manage database and control plane -- You self-host lightweight exit-node -- Traffic flows through your infra -- We coordinate failover between your nodes or to cloud when things go bad +- We manage database and control plane. +- You self-host lightweight exit-node. +- Traffic flows through your infra. +- 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 -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). ## Licensing @@ -145,4 +144,4 @@ Looking for something to contribute? Take a look at issues marked with [help wan Please see [CONTRIBUTING](./CONTRIBUTING.md) in the repository for guidelines and best practices. -Please post bug reports and other functional issues in the [Issues](https://github.com/fosrl/pangolin/issues) section of the repository. \ No newline at end of file +Please post bug reports and other functional issues in the [Issues](https://github.com/fosrl/pangolin/issues) section of the repository. diff --git a/messages/cs-CZ.json b/messages/cs-CZ.json index 80269103..1416cede 100644 --- a/messages/cs-CZ.json +++ b/messages/cs-CZ.json @@ -1198,7 +1198,8 @@ "newtUpdateAvailableInfo": "A new version of Newt is available. Please update to the latest version for the best experience.", "domainPickerEnterDomain": "Enter your domain", "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", "domainPickerTabOrganization": "Organization", "domainPickerTabProvided": "Provided", @@ -1231,7 +1232,7 @@ "securityKeyRemoveSuccess": "Security key removed successfully", "securityKeyRemoveError": "Failed to remove security key", "securityKeyLoadError": "Failed to load security keys", - "securityKeyLogin": "Sign in with security key", + "securityKeyLogin": "Continue 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.", "registering": "Registering...", diff --git a/messages/de-DE.json b/messages/de-DE.json index a15b9dad..d139b61d 100644 --- a/messages/de-DE.json +++ b/messages/de-DE.json @@ -13,7 +13,7 @@ "welcome": "Willkommen zu Pangolin", "welcomeTo": "Willkommen bei", "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.", "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.", @@ -349,7 +349,7 @@ "licensePurchase": "Lizenz kaufen", "licensePurchaseSites": "Zusätzliche Seiten kaufen", "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.}}", "licenseFee": "Lizenzgebühr", "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.", "domainPickerEnterDomain": "Geben Sie Ihre Domain ein", "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", "domainPickerTabOrganization": "Organisation", "domainPickerTabProvided": "Bereitgestellt", @@ -1231,7 +1232,7 @@ "securityKeyRemoveSuccess": "Sicherheitsschlüssel erfolgreich entfernt", "securityKeyRemoveError": "Fehler beim Entfernen des Sicherheitsschlüssels", "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", "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...", diff --git a/messages/es-ES.json b/messages/es-ES.json index 36d0051f..f7c208bb 100644 --- a/messages/es-ES.json +++ b/messages/es-ES.json @@ -13,7 +13,7 @@ "welcome": "Bienvenido a Pangolin", "welcomeTo": "Bienvenido a", "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.", "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.", @@ -349,7 +349,7 @@ "licensePurchase": "Comprar Licencia", "licensePurchaseSites": "Comprar sitios adicionales", "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.}}", "licenseFee": "Tarifa de licencia", "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.", "domainPickerEnterDomain": "Ingresa tu dominio", "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", "domainPickerTabOrganization": "Organización", "domainPickerTabProvided": "Proporcionado", @@ -1231,7 +1232,7 @@ "securityKeyRemoveSuccess": "Llave de seguridad eliminada exitosamente", "securityKeyRemoveError": "Error al eliminar la llave 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", "securityKeyRecommendation": "Considere registrar otra llave de seguridad en un dispositivo diferente para asegurarse de no quedar bloqueado de su cuenta.", "registering": "Registrando...", diff --git a/messages/fr-FR.json b/messages/fr-FR.json index 6eed64ce..235c6a7c 100644 --- a/messages/fr-FR.json +++ b/messages/fr-FR.json @@ -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.", "domainPickerEnterDomain": "Entrez votre domaine", "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", "domainPickerTabOrganization": "Organisation", "domainPickerTabProvided": "Fournis", @@ -1231,7 +1232,7 @@ "securityKeyRemoveSuccess": "Clé de sécurité supprimée avec succès", "securityKeyRemoveError": "Échec de la suppression de la clé 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é", "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...", diff --git a/messages/it-IT.json b/messages/it-IT.json index 35728eb7..ce13ab23 100644 --- a/messages/it-IT.json +++ b/messages/it-IT.json @@ -1198,7 +1198,8 @@ "newtUpdateAvailableInfo": "È disponibile una nuova versione di Newt. Si prega di aggiornare all'ultima versione per la migliore esperienza.", "domainPickerEnterDomain": "Inserisci il tuo dominio", "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", "domainPickerTabOrganization": "Organizzazione", "domainPickerTabProvided": "Fornito", @@ -1231,7 +1232,7 @@ "securityKeyRemoveSuccess": "Chiave di sicurezza rimossa con successo", "securityKeyRemoveError": "Errore durante la rimozione della chiave 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", "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...", diff --git a/messages/ko-KR.json b/messages/ko-KR.json index 40f99f19..1406a624 100644 --- a/messages/ko-KR.json +++ b/messages/ko-KR.json @@ -1198,7 +1198,8 @@ "newtUpdateAvailableInfo": "뉴트의 새 버전이 출시되었습니다. 최상의 경험을 위해 최신 버전으로 업데이트하세요.", "domainPickerEnterDomain": "도메인 입력", "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": "모두", "domainPickerTabOrganization": "조직", "domainPickerTabProvided": "제공 됨", @@ -1231,7 +1232,7 @@ "securityKeyRemoveSuccess": "보안 키가 성공적으로 제거되었습니다", "securityKeyRemoveError": "보안 키 제거 실패", "securityKeyLoadError": "보안 키를 불러오는 데 실패했습니다", - "securityKeyLogin": "보안 키로 로그인", + "securityKeyLogin": "Continue with security key", "securityKeyAuthError": "보안 키를 사용한 인증 실패", "securityKeyRecommendation": "항상 계정에 액세스할 수 있도록 다른 장치에 백업 보안 키를 등록하세요.", "registering": "등록 중...", diff --git a/messages/nl-NL.json b/messages/nl-NL.json index fdaeff47..e756e281 100644 --- a/messages/nl-NL.json +++ b/messages/nl-NL.json @@ -1198,7 +1198,8 @@ "newtUpdateAvailableInfo": "Er is een nieuwe versie van Newt beschikbaar. Update naar de nieuwste versie voor de beste ervaring.", "domainPickerEnterDomain": "Voer je domein in", "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", "domainPickerTabOrganization": "Organisatie", "domainPickerTabProvided": "Aangeboden", @@ -1231,7 +1232,7 @@ "securityKeyRemoveSuccess": "Beveiligingssleutel succesvol verwijderd", "securityKeyRemoveError": "Fout bij verwijderen van beveiligingssleutel", "securityKeyLoadError": "Fout bij laden van beveiligingssleutels", - "securityKeyLogin": "Inloggen met beveiligingssleutel", + "securityKeyLogin": "Doorgaan 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.", "registering": "Registreren...", diff --git a/messages/pl-PL.json b/messages/pl-PL.json index c5f5297e..966dea6a 100644 --- a/messages/pl-PL.json +++ b/messages/pl-PL.json @@ -1174,7 +1174,7 @@ "billing": "Fakturowanie", "orgBillingDescription": "Zarządzaj swoimi informacjami rozliczeniowymi i subskrypcjami", "github": "GitHub", - "pangolinHosted": "Pangolin Hosted", + "pangolinHosted": "Logo Pangolin", "fossorial": "Fossorial", "completeAccountSetup": "Zakończ konfigurację konta", "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.", "domainPickerEnterDomain": "Wprowadź swoją domenę", "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", "domainPickerTabOrganization": "Organizacja", "domainPickerTabProvided": "Dostarczona", @@ -1265,7 +1266,7 @@ "createDomainName": "Nazwa:", "createDomainValue": "Wartość:", "createDomainCnameRecords": "Rekordy CNAME", - "createDomainRecordNumber": "Record {number}", + "createDomainRecordNumber": "Rekord {number}", "createDomainTxtRecords": "Rekordy TXT", "createDomainSaveTheseRecords": "Zapisz te rekordy", "createDomainSaveTheseRecordsDescription": "Upewnij się, że zapiszesz te rekordy DNS, ponieważ nie będziesz mieć ich ponownie na ekranie.", diff --git a/messages/pt-PT.json b/messages/pt-PT.json index cb3a1144..762689f9 100644 --- a/messages/pt-PT.json +++ b/messages/pt-PT.json @@ -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.", "domainPickerEnterDomain": "Insira seu domínio", "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", "domainPickerTabOrganization": "Organização", "domainPickerTabProvided": "Fornecido", @@ -1231,7 +1232,7 @@ "securityKeyRemoveSuccess": "Chave de segurança removida com sucesso", "securityKeyRemoveError": "Erro ao remover chave 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", "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...", diff --git a/messages/ru-RU.json b/messages/ru-RU.json index 6614b8a6..d72ad989 100644 --- a/messages/ru-RU.json +++ b/messages/ru-RU.json @@ -1198,7 +1198,8 @@ "newtUpdateAvailableInfo": "A new version of Newt is available. Please update to the latest version for the best experience.", "domainPickerEnterDomain": "Enter your domain", "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", "domainPickerTabOrganization": "Organization", "domainPickerTabProvided": "Provided", @@ -1231,7 +1232,7 @@ "securityKeyRemoveSuccess": "Security key removed successfully", "securityKeyRemoveError": "Failed to remove security key", "securityKeyLoadError": "Failed to load security keys", - "securityKeyLogin": "Sign in with security key", + "securityKeyLogin": "Continue 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.", "registering": "Registering...", diff --git a/messages/tr-TR.json b/messages/tr-TR.json index 12e5929d..a547a44b 100644 --- a/messages/tr-TR.json +++ b/messages/tr-TR.json @@ -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.", "domainPickerEnterDomain": "Alan adınızı girin", "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ü", "domainPickerTabOrganization": "Organizasyon", "domainPickerTabProvided": "Sağlanan", @@ -1231,7 +1232,7 @@ "securityKeyRemoveSuccess": "Güvenlik anahtarı başarıyla kaldırıldı", "securityKeyRemoveError": "Güvenlik anahtarı kaldırılırken 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", "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...", diff --git a/messages/zh-CN.json b/messages/zh-CN.json index ca8b344b..4f7d779e 100644 --- a/messages/zh-CN.json +++ b/messages/zh-CN.json @@ -13,7 +13,7 @@ "welcome": "欢迎使用 Pangolin", "welcomeTo": "欢迎来到", "componentsCreateOrg": "创建组织", - "componentsMember": "You're a member of {count, plural, =0 {no organization} one {one organization} other {# organizations}}.", + "componentsMember": "您属于{count, plural, =0 {没有组织} one {一个组织} other {# 个组织}}。", "componentsInvalidKey": "检测到无效或过期的许可证密钥。按照许可证条款操作以继续使用所有功能。", "dismiss": "忽略", "componentsLicenseViolation": "许可证超限:该服务器使用了 {usedSites} 个站点,已超过授权的 {maxSites} 个。请遵守许可证条款以继续使用全部功能。", @@ -349,7 +349,7 @@ "licensePurchase": "购买许可证", "licensePurchaseSites": "购买更多站点", "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 {为现有许可证购买更多站点}}", "licenseFee": "许可证费用", "licensePriceSite": "每个站点的价格", @@ -1198,7 +1198,8 @@ "newtUpdateAvailableInfo": "新版本的 Newt 已可用。请更新到最新版本以获得最佳体验。", "domainPickerEnterDomain": "输入您的域", "domainPickerPlaceholder": "myapp.example.com、api.v1.mydomain.com 或仅 myapp", - "domainPickerDescription": "输入完整域名、子域或仅输入名称以查看可用选项", + "domainPickerDescription": "输入资源的完整域名以查看可用选项。", + "domainPickerDescriptionSaas": "输入完整域名、子域或名称以查看可用选项。", "domainPickerTabAll": "所有", "domainPickerTabOrganization": "组织", "domainPickerTabProvided": "提供的", @@ -1231,7 +1232,7 @@ "securityKeyRemoveSuccess": "安全密钥删除成功", "securityKeyRemoveError": "删除安全密钥失败", "securityKeyLoadError": "加载安全密钥失败", - "securityKeyLogin": "使用安全密钥登录", + "securityKeyLogin": "使用安全密钥继续", "securityKeyAuthError": "使用安全密钥认证失败", "securityKeyRecommendation": "考虑在其他设备上注册另一个安全密钥,以确保不会被锁定在您的账户之外。", "registering": "注册中...",