mirror of
https://github.com/fosrl/pangolin.git
synced 2026-07-08 07:05:08 +02:00
Compare commits
75 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 50f5495d5d | |||
| d7909c8655 | |||
| 35cef63a64 | |||
| 79e5446fe8 | |||
| e3be11c162 | |||
| 21d4ccba62 | |||
| f86aa91b58 | |||
| f69f1dd46b | |||
| 2348941543 | |||
| cce8a44eed | |||
| e83e503585 | |||
| 17b9709662 | |||
| 90a57dd4ee | |||
| 1d542eecc2 | |||
| 0920b7a6da | |||
| c7bd674691 | |||
| 6548b3d6f5 | |||
| 04f8d92d49 | |||
| 73c4a6ba6c | |||
| 315122e6fe | |||
| 8d6db74c4b | |||
| ef714fa2ed | |||
| 3fccf88e71 | |||
| aa333614c9 | |||
| c996e9e95f | |||
| e0d375ebc7 | |||
| 84e4b3c536 | |||
| 8ecefc6fad | |||
| 7a75156acd | |||
| f2d72390fd | |||
| 2f3c23c552 | |||
| 11dd7241d1 | |||
| 6ef539af4a | |||
| 06c8a9a6d8 | |||
| 908ded8aee | |||
| 520507a3e6 | |||
| 38ea582265 | |||
| dce63bdbbd | |||
| 0edf53f2b5 | |||
| ef8f3f1070 | |||
| 1bcf90ad76 | |||
| a2399a082a | |||
| fdee4a166c | |||
| 91864ae097 | |||
| 3536b9c30f | |||
| 3db28e5140 | |||
| 2e95257e09 | |||
| dcd6d6486d | |||
| df145ac14c | |||
| 00de9ed49f | |||
| 3b6ce77972 | |||
| 5589e4da1d | |||
| b662a4c06f | |||
| b4d0354740 | |||
| 949a0221d8 | |||
| c4b56b2b29 | |||
| da7676de14 | |||
| d2e7438692 | |||
| b0f196b4ec | |||
| ef9d15fded | |||
| 04a4a1899d | |||
| f9c3d0647d | |||
| 6bac384b19 | |||
| bf4426f1f9 | |||
| 7bf419d058 | |||
| e85ebe717c | |||
| 2ec527f5d7 | |||
| d334e6c3a5 | |||
| 755281abc3 | |||
| 7b05ad6b1d | |||
| edbd1a743e | |||
| fa5397095d | |||
| 3f914c4eab | |||
| 18b1460615 | |||
| 267ee63a60 |
@@ -77,7 +77,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Log in to Docker Hub
|
- name: Log in to Docker Hub
|
||||||
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
|
||||||
with:
|
with:
|
||||||
registry: docker.io
|
registry: docker.io
|
||||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||||
@@ -149,7 +149,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Log in to Docker Hub
|
- name: Log in to Docker Hub
|
||||||
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
|
||||||
with:
|
with:
|
||||||
registry: docker.io
|
registry: docker.io
|
||||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||||
@@ -204,7 +204,7 @@ jobs:
|
|||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||||
|
|
||||||
- name: Log in to Docker Hub
|
- name: Log in to Docker Hub
|
||||||
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
|
||||||
with:
|
with:
|
||||||
registry: docker.io
|
registry: docker.io
|
||||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||||
@@ -264,7 +264,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Install Go
|
- name: Install Go
|
||||||
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
|
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
|
||||||
with:
|
with:
|
||||||
go-version: 1.25
|
go-version: 1.25
|
||||||
|
|
||||||
@@ -407,7 +407,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry (for cosign)
|
- name: Login to GitHub Container Registry (for cosign)
|
||||||
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.actor }}
|
username: ${{ github.actor }}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ services:
|
|||||||
- 80:80 # Port for traefik because of the network_mode
|
- 80:80 # Port for traefik because of the network_mode
|
||||||
|
|
||||||
traefik:
|
traefik:
|
||||||
image: traefik:v3.7
|
image: traefik:v3.6
|
||||||
container_name: traefik
|
container_name: traefik
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
network_mode: service:gerbil # Ports appear on the gerbil service
|
network_mode: service:gerbil # Ports appear on the gerbil service
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ services:
|
|||||||
- 80:80{{end}}
|
- 80:80{{end}}
|
||||||
|
|
||||||
traefik:
|
traefik:
|
||||||
image: docker.io/traefik:v3.7
|
image: docker.io/traefik:v3.6
|
||||||
container_name: traefik
|
container_name: traefik
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
{{if .InstallGerbil}}network_mode: service:gerbil # Ports appear on the gerbil service{{end}}{{if not .InstallGerbil}}
|
{{if .InstallGerbil}}network_mode: service:gerbil # Ports appear on the gerbil service{{end}}{{if not .InstallGerbil}}
|
||||||
|
|||||||
+120
-7
@@ -266,6 +266,8 @@
|
|||||||
"resourceRawDescriptionCloud": "Получавайте заявки чрез суров TCP/UDP с използване на портен номер. Изисква се сайтовете да се свързват към отдалечен възел.",
|
"resourceRawDescriptionCloud": "Получавайте заявки чрез суров TCP/UDP с използване на портен номер. Изисква се сайтовете да се свързват към отдалечен възел.",
|
||||||
"resourceCreate": "Създайте ресурс",
|
"resourceCreate": "Създайте ресурс",
|
||||||
"resourceCreateDescription": "Следвайте стъпките по-долу, за да създадете нов ресурс",
|
"resourceCreateDescription": "Следвайте стъпките по-долу, за да създадете нов ресурс",
|
||||||
|
"resourcePublicCreate": "Create Public Resource",
|
||||||
|
"resourcePublicCreateDescription": "Follow the steps below to create a new public resource that is accessible through a web browser",
|
||||||
"resourceCreateGeneralDescription": "Конфигуриране на основните настройки на ресурса, включително име и тип",
|
"resourceCreateGeneralDescription": "Конфигуриране на основните настройки на ресурса, включително име и тип",
|
||||||
"resourceSeeAll": "Вижте всички ресурси",
|
"resourceSeeAll": "Вижте всички ресурси",
|
||||||
"resourceCreateGeneral": "Основни параметри",
|
"resourceCreateGeneral": "Основни параметри",
|
||||||
@@ -613,7 +615,8 @@
|
|||||||
"idpNameInternal": "Вътрешен",
|
"idpNameInternal": "Вътрешен",
|
||||||
"emailInvalid": "Невалиден имейл адрес",
|
"emailInvalid": "Невалиден имейл адрес",
|
||||||
"inviteValidityDuration": "Моля, изберете продължителност",
|
"inviteValidityDuration": "Моля, изберете продължителност",
|
||||||
"accessRoleSelectPlease": "Моля, изберете роля",
|
"accessRoleSelectPlease": "A user must belong to at least one role.",
|
||||||
|
"accessRoleRequired": "Role required",
|
||||||
"removeOwnAdminRoleConfirmTitle": "Премахване на административния ви достъп?",
|
"removeOwnAdminRoleConfirmTitle": "Премахване на административния ви достъп?",
|
||||||
"removeOwnAdminRoleConfirmDescription": "След записване няма да имате повече администраторски права в тази организация. Друг администратор може да възстанови достъпа, ако е необходимо.",
|
"removeOwnAdminRoleConfirmDescription": "След записване няма да имате повече администраторски права в тази организация. Друг администратор може да възстанови достъпа, ако е необходимо.",
|
||||||
"removeOwnAdminRoleConfirmButton": "Премахнете административния ми достъп",
|
"removeOwnAdminRoleConfirmButton": "Премахнете административния ми достъп",
|
||||||
@@ -864,8 +867,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "Базово удостоверяване чрез заглавие",
|
"policyAuthHeaderAuthTitle": "Базово удостоверяване чрез заглавие",
|
||||||
"policyAuthHeaderAuthDescription": "Валидирайте собствено HTTP заглавие и стойност при всяка заявка",
|
"policyAuthHeaderAuthDescription": "Валидирайте собствено HTTP заглавие и стойност при всяка заявка",
|
||||||
"policyAuthHeaderAuthSummary": "Конфигурирано заглавие",
|
"policyAuthHeaderAuthSummary": "Конфигурирано заглавие",
|
||||||
"policyAuthHeaderName": "Име на заглавието",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "Очаквана стойност",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "Задайте парола",
|
"policyAuthSetPasscode": "Задайте парола",
|
||||||
"policyAuthSetPincode": "Задайте ПИН код",
|
"policyAuthSetPincode": "Задайте ПИН код",
|
||||||
"policyAuthSetEmailWhitelist": "Задайте списък с имейли",
|
"policyAuthSetEmailWhitelist": "Задайте списък с имейли",
|
||||||
@@ -1431,6 +1434,15 @@
|
|||||||
"actionSetResourcePincode": "Задайте ПИН код на ресурса",
|
"actionSetResourcePincode": "Задайте ПИН код на ресурса",
|
||||||
"actionSetResourceEmailWhitelist": "Задайте списък на одобрените имейл адреси за ресурса",
|
"actionSetResourceEmailWhitelist": "Задайте списък на одобрените имейл адреси за ресурса",
|
||||||
"actionGetResourceEmailWhitelist": "Вземете списък на одобрените имейл адреси за ресурса",
|
"actionGetResourceEmailWhitelist": "Вземете списък на одобрените имейл адреси за ресурса",
|
||||||
|
"actionGetResourcePolicy": "Get Resource Policy",
|
||||||
|
"actionUpdateResourcePolicy": "Update Resource Policy",
|
||||||
|
"actionSetResourcePolicyUsers": "Set Resource Policy Users",
|
||||||
|
"actionSetResourcePolicyRoles": "Set Resource Policy Roles",
|
||||||
|
"actionSetResourcePolicyPassword": "Set Resource Policy Password",
|
||||||
|
"actionSetResourcePolicyPincode": "Set Resource Policy Pincode",
|
||||||
|
"actionSetResourcePolicyHeaderAuth": "Set Resource Policy Header Authentication",
|
||||||
|
"actionSetResourcePolicyWhitelist": "Set Resource Policy Email Whitelist",
|
||||||
|
"actionSetResourcePolicyRules": "Set Resource Policy Rules",
|
||||||
"actionCreateTarget": "Създайте цел",
|
"actionCreateTarget": "Създайте цел",
|
||||||
"actionDeleteTarget": "Изтрийте цел",
|
"actionDeleteTarget": "Изтрийте цел",
|
||||||
"actionGetTarget": "Вземете цел",
|
"actionGetTarget": "Вземете цел",
|
||||||
@@ -1507,6 +1519,30 @@
|
|||||||
"navbar": "Навигационно меню",
|
"navbar": "Навигационно меню",
|
||||||
"navbarDescription": "Главно навигационно меню за приложението",
|
"navbarDescription": "Главно навигационно меню за приложението",
|
||||||
"navbarDocsLink": "Документация",
|
"navbarDocsLink": "Документация",
|
||||||
|
"commandPaletteTitle": "Command Palette",
|
||||||
|
"commandPaletteDescription": "Search for pages, organizations, resources, and actions",
|
||||||
|
"commandPaletteSearchPlaceholder": "Search pages, resources, actions...",
|
||||||
|
"commandPaletteNoResults": "No results found.",
|
||||||
|
"commandPaletteSearching": "Searching...",
|
||||||
|
"commandPaletteNavigation": "Navigation",
|
||||||
|
"commandPaletteOrganizations": "Organizations",
|
||||||
|
"commandPaletteSites": "Sites",
|
||||||
|
"commandPaletteResources": "Resources",
|
||||||
|
"commandPaletteUsers": "Users",
|
||||||
|
"commandPaletteClients": "Machine Clients",
|
||||||
|
"commandPaletteActions": "Actions",
|
||||||
|
"commandPaletteCreateSite": "Create Site",
|
||||||
|
"commandPaletteCreateProxyResource": "Create Public Resource",
|
||||||
|
"commandPaletteCreatePrivateResource": "Create Private Resource",
|
||||||
|
"commandPaletteCreateUser": "Create User",
|
||||||
|
"commandPaletteCreateApiKey": "Create API Key",
|
||||||
|
"commandPaletteCreateMachineClient": "Create Machine Client",
|
||||||
|
"commandPaletteCreateAlertRule": "Create Alert Rule",
|
||||||
|
"commandPaletteCreateIdentityProvider": "Create Identity Provider",
|
||||||
|
"commandPaletteToggleTheme": "Toggle Theme",
|
||||||
|
"commandPaletteChooseOrganization": "Choose Organization",
|
||||||
|
"commandPaletteShortcutMac": "⌘K",
|
||||||
|
"commandPaletteShortcutWindows": "Ctrl K",
|
||||||
"otpErrorEnable": "Не може да се активира 2FA",
|
"otpErrorEnable": "Не може да се активира 2FA",
|
||||||
"otpErrorEnableDescription": "Възникна грешка при активиране на 2FA",
|
"otpErrorEnableDescription": "Възникна грешка при активиране на 2FA",
|
||||||
"otpSetupCheckCode": "Моля, въведете 6-цифрен код",
|
"otpSetupCheckCode": "Моля, въведете 6-цифрен код",
|
||||||
@@ -1584,6 +1620,45 @@
|
|||||||
"sidebarManagement": "Управление",
|
"sidebarManagement": "Управление",
|
||||||
"sidebarBillingAndLicenses": "Фактуриране & Лицензи",
|
"sidebarBillingAndLicenses": "Фактуриране & Лицензи",
|
||||||
"sidebarLogsAnalytics": "Анализи",
|
"sidebarLogsAnalytics": "Анализи",
|
||||||
|
"commandSites": "Sites",
|
||||||
|
"commandActionModeInfo": "Type \">\" To Open Action Mode",
|
||||||
|
"commandResources": "Resources",
|
||||||
|
"commandProxyResources": "Public Resources",
|
||||||
|
"commandClientResources": "Private Resources",
|
||||||
|
"commandClients": "Clients",
|
||||||
|
"commandUserDevices": "User Devices",
|
||||||
|
"commandMachineClients": "Machine Clients",
|
||||||
|
"commandDomains": "Domains",
|
||||||
|
"commandRemoteExitNodes": "Remote Nodes",
|
||||||
|
"commandTeam": "Team",
|
||||||
|
"commandUsers": "Users",
|
||||||
|
"commandRoles": "Roles",
|
||||||
|
"commandInvitations": "Invitations",
|
||||||
|
"commandPolicies": "Shared Policies",
|
||||||
|
"commandResourcePolicies": "Public Resources Policies",
|
||||||
|
"commandIdentityProviders": "Identity Providers",
|
||||||
|
"commandApprovals": "Approval Requests",
|
||||||
|
"commandShareableLinks": "Shareable Links",
|
||||||
|
"commandOrganization": "Organization",
|
||||||
|
"commandLogsAndAnalytics": "Logs & Analytics",
|
||||||
|
"commandLogsAnalytics": "Analytics",
|
||||||
|
"commandLogsRequest": "HTTP Request Logs",
|
||||||
|
"commandLogsAccess": "Authentication Logs",
|
||||||
|
"commandLogsAction": "Admin Action Logs",
|
||||||
|
"commandLogsConnection": "Network Logs",
|
||||||
|
"commandLogsStreaming": "Event Streaming",
|
||||||
|
"commandManagement": "Management",
|
||||||
|
"commandAlerting": "Alerting",
|
||||||
|
"commandProvisioning": "Provisioning",
|
||||||
|
"commandBluePrints": "Blueprints",
|
||||||
|
"commandApiKeys": "API Keys",
|
||||||
|
"commandBillingAndLicenses": "Billing & Licenses",
|
||||||
|
"commandBilling": "Billing",
|
||||||
|
"commandEnterpriseLicenses": "Licenses",
|
||||||
|
"commandSettings": "Settings",
|
||||||
|
"commandLauncher": "Launcher",
|
||||||
|
"commandResourceLauncher": "Resource Launcher",
|
||||||
|
"commandSearchResults": "Search Results",
|
||||||
"alertingTitle": "Извеждане на предупреждения",
|
"alertingTitle": "Извеждане на предупреждения",
|
||||||
"alertingDescription": "Определете източници, тригери и действия за уведомления",
|
"alertingDescription": "Определете източници, тригери и действия за уведомления",
|
||||||
"alertingRules": "Правила за предупреждение",
|
"alertingRules": "Правила за предупреждение",
|
||||||
@@ -1915,6 +1990,9 @@
|
|||||||
"billingDomains": "Домейни",
|
"billingDomains": "Домейни",
|
||||||
"billingOrganizations": "Организации",
|
"billingOrganizations": "Организации",
|
||||||
"billingRemoteExitNodes": "Дистанционни възли",
|
"billingRemoteExitNodes": "Дистанционни възли",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "Няма конфигуриран лимит",
|
"billingNoLimitConfigured": "Няма конфигуриран лимит",
|
||||||
"billingEstimatedPeriod": "Очакван период на фактуриране",
|
"billingEstimatedPeriod": "Очакван период на фактуриране",
|
||||||
"billingIncludedUsage": "Включено използване",
|
"billingIncludedUsage": "Включено използване",
|
||||||
@@ -1943,6 +2021,9 @@
|
|||||||
"billingUsersInfo": "Колко потребители можете да използвате",
|
"billingUsersInfo": "Колко потребители можете да използвате",
|
||||||
"billingDomainInfo": "Колко домейни можете да използвате",
|
"billingDomainInfo": "Колко домейни можете да използвате",
|
||||||
"billingRemoteExitNodesInfo": "Колко дистанционни възли можете да използвате",
|
"billingRemoteExitNodesInfo": "Колко дистанционни възли можете да използвате",
|
||||||
|
"billingPublicResourcesInfo": "How many public resources you can use",
|
||||||
|
"billingPrivateResourcesInfo": "How many private resources you can use",
|
||||||
|
"billingMachineClientsInfo": "How many machine clients you can use",
|
||||||
"billingLicenseKeys": "Лицензионни ключове",
|
"billingLicenseKeys": "Лицензионни ключове",
|
||||||
"billingLicenseKeysDescription": "Управлявайте вашите абонаменти за лицензионни ключове",
|
"billingLicenseKeysDescription": "Управлявайте вашите абонаменти за лицензионни ключове",
|
||||||
"billingLicenseSubscription": "Абонамент за лиценз",
|
"billingLicenseSubscription": "Абонамент за лиценз",
|
||||||
@@ -2311,6 +2392,12 @@
|
|||||||
"createInternalResourceDialogClose": "Затвори",
|
"createInternalResourceDialogClose": "Затвори",
|
||||||
"createInternalResourceDialogCreateClientResource": "Създаване на частен ресурс",
|
"createInternalResourceDialogCreateClientResource": "Създаване на частен ресурс",
|
||||||
"createInternalResourceDialogCreateClientResourceDescription": "Създайте нов ресурс, който ще бъде достъпен само за клиенти, свързани към организацията",
|
"createInternalResourceDialogCreateClientResourceDescription": "Създайте нов ресурс, който ще бъде достъпен само за клиенти, свързани към организацията",
|
||||||
|
"privateResourceCreatePageSeeAll": "See All Private Resources",
|
||||||
|
"privateResourceAllowIcmpPing": "Allow ICMP Ping",
|
||||||
|
"privateResourceNetworkAccess": "Network Access",
|
||||||
|
"privateResourceNetworkAccessDescription": "Control TCP/UDP port access and whether ICMP ping is allowed for this resource.",
|
||||||
|
"hostSettings": "Host Settings",
|
||||||
|
"cidrSettings": "CIDR Settings",
|
||||||
"createInternalResourceDialogResourceProperties": "Свойства на ресурса",
|
"createInternalResourceDialogResourceProperties": "Свойства на ресурса",
|
||||||
"createInternalResourceDialogName": "Име",
|
"createInternalResourceDialogName": "Име",
|
||||||
"createInternalResourceDialogSite": "Сайт",
|
"createInternalResourceDialogSite": "Сайт",
|
||||||
@@ -2459,6 +2546,7 @@
|
|||||||
"noRemoteExitNodesAvailableDescription": "Няма налични възли за тази организация. Първо създайте възел, за да използвате местни сайтове.",
|
"noRemoteExitNodesAvailableDescription": "Няма налични възли за тази организация. Първо създайте възел, за да използвате местни сайтове.",
|
||||||
"exitNode": "Изходен възел",
|
"exitNode": "Изходен възел",
|
||||||
"country": "Държава",
|
"country": "Държава",
|
||||||
|
"countryIsNot": "Country Is Not",
|
||||||
"rulesMatchCountry": "Понастоящем на базата на изходния IP",
|
"rulesMatchCountry": "Понастоящем на базата на изходния IP",
|
||||||
"region": "Регион",
|
"region": "Регион",
|
||||||
"selectRegion": "Изберете регион",
|
"selectRegion": "Изберете регион",
|
||||||
@@ -3177,7 +3265,7 @@
|
|||||||
"editInternalResourceDialogAddUsers": "Добавяне на потребители.",
|
"editInternalResourceDialogAddUsers": "Добавяне на потребители.",
|
||||||
"editInternalResourceDialogAddClients": "Добавяне на клиенти.",
|
"editInternalResourceDialogAddClients": "Добавяне на клиенти.",
|
||||||
"editInternalResourceDialogDestinationLabel": "Дестинация.",
|
"editInternalResourceDialogDestinationLabel": "Дестинация.",
|
||||||
"editInternalResourceDialogDestinationDescription": "Посочете адреса дестинация за вътрешния ресурс. Това може да бъде име на хост, IP адрес или CIDR обхват в зависимост от избрания режим. По избор настройте вътрешен DNS алиас за по-лесно идентифициране.",
|
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it",
|
||||||
"internalResourceFormMultiSiteRoutingHelp": "Избирайки няколко сайта, се осигурява сигурен път и пренасочване при висока достъпност.",
|
"internalResourceFormMultiSiteRoutingHelp": "Избирайки няколко сайта, се осигурява сигурен път и пренасочване при висока достъпност.",
|
||||||
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Научете повече",
|
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Научете повече",
|
||||||
"editInternalResourceDialogPortRestrictionsDescription": "Ограничете достъпа до конкретни TCP/UDP портове или позволете/блокирайте всички портове.",
|
"editInternalResourceDialogPortRestrictionsDescription": "Ограничете достъпа до конкретни TCP/UDP портове или позволете/блокирайте всички портове.",
|
||||||
@@ -3571,18 +3659,24 @@
|
|||||||
"memberPortalResourceDisabled": "Ресурсът е деактивиран",
|
"memberPortalResourceDisabled": "Ресурсът е деактивиран",
|
||||||
"memberPortalShowingResources": "Показва {start}-{end} от {total} ресурси",
|
"memberPortalShowingResources": "Показва {start}-{end} от {total} ресурси",
|
||||||
"resourceLauncherTitle": "Стартер за Ресурси",
|
"resourceLauncherTitle": "Стартер за Ресурси",
|
||||||
"resourceLauncherDescription": "Преглеждайте детайлите на ресурса и ги стартирайте от едно място",
|
"resourceSidebarLauncherTitle": "Launcher",
|
||||||
"resourceLauncherSearchPlaceholder": "Търсете във всички сайтове...",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
|
"resourceLauncherSearchPlaceholder": "Search your resources...",
|
||||||
"resourceLauncherDefaultView": "По Подразбиране",
|
"resourceLauncherDefaultView": "По Подразбиране",
|
||||||
"resourceLauncherSaveView": "Запазете Изгледа",
|
"resourceLauncherSaveView": "Запазете Изгледа",
|
||||||
"resourceLauncherSaveToCurrentView": "Запазете в Текущ Изглед",
|
"resourceLauncherSaveToCurrentView": "Запазете в Текущ Изглед",
|
||||||
|
"resourceLauncherSaveDefaultPersonal": "Save for Me",
|
||||||
"resourceLauncherResetView": "Нулирайте Изгледа",
|
"resourceLauncherResetView": "Нулирайте Изгледа",
|
||||||
|
"resourceLauncherResetSystemDefault": "Reset to System Default",
|
||||||
|
"resourceLauncherSystemDefaultRestored": "System default restored",
|
||||||
|
"resourceLauncherSystemDefaultRestoredDescription": "The default view has been reset to the original settings.",
|
||||||
"resourceLauncherSaveAsNewView": "Запазете като Нов Изглед",
|
"resourceLauncherSaveAsNewView": "Запазете като Нов Изглед",
|
||||||
"resourceLauncherSaveAsNewViewDescription": "Дайте име на този изглед, за да запазите текущите си филтри и оформление.",
|
"resourceLauncherSaveAsNewViewDescription": "Дайте име на този изглед, за да запазите текущите си филтри и оформление.",
|
||||||
"resourceLauncherSaveForEveryone": "Запазете за Всеки",
|
"resourceLauncherSaveForEveryone": "Запазете за Всеки",
|
||||||
"resourceLauncherSaveForEveryoneDescription": "Споделете този изглед с всички членове на организацията. Когато е изключено, изгледът е видим само за вас.",
|
"resourceLauncherSaveForEveryoneDescription": "Споделете този изглед с всички членове на организацията. Когато е изключено, изгледът е видим само за вас.",
|
||||||
"resourceLauncherMakePersonal": "Направи Личен",
|
"resourceLauncherMakePersonal": "Направи Личен",
|
||||||
"resourceLauncherFilter": "Филтър",
|
"resourceLauncherFilter": "Филтър",
|
||||||
|
"resourceLauncherFilterWithCount": "Filter, {count} applied",
|
||||||
"resourceLauncherSort": "Сортиране",
|
"resourceLauncherSort": "Сортиране",
|
||||||
"resourceLauncherSortAscending": "Сортиране възходящо",
|
"resourceLauncherSortAscending": "Сортиране възходящо",
|
||||||
"resourceLauncherSortDescending": "Сортиране низходящо",
|
"resourceLauncherSortDescending": "Сортиране низходящо",
|
||||||
@@ -3590,6 +3684,7 @@
|
|||||||
"resourceLauncherGroupBy": "Групирай По",
|
"resourceLauncherGroupBy": "Групирай По",
|
||||||
"resourceLauncherGroupBySite": "Сайт",
|
"resourceLauncherGroupBySite": "Сайт",
|
||||||
"resourceLauncherGroupByLabel": "Етикет",
|
"resourceLauncherGroupByLabel": "Етикет",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "Оформление",
|
"resourceLauncherLayout": "Оформление",
|
||||||
"resourceLauncherLayoutGrid": "Мрежа",
|
"resourceLauncherLayoutGrid": "Мрежа",
|
||||||
"resourceLauncherLayoutList": "Списък",
|
"resourceLauncherLayoutList": "Списък",
|
||||||
@@ -3597,8 +3692,20 @@
|
|||||||
"resourceLauncherShowSiteTags": "Показване на Тагове на Сайт",
|
"resourceLauncherShowSiteTags": "Показване на Тагове на Сайт",
|
||||||
"resourceLauncherShowRecents": "Показване на Последни",
|
"resourceLauncherShowRecents": "Показване на Последни",
|
||||||
"resourceLauncherDeleteView": "Изтриване на Изглед",
|
"resourceLauncherDeleteView": "Изтриване на Изглед",
|
||||||
|
"resourceLauncherDeleteViewTitle": "Delete View",
|
||||||
|
"resourceLauncherDeleteViewQuestion": "Are you sure you want to delete this launcher view?",
|
||||||
|
"resourceLauncherDeleteViewConfirm": "Delete View",
|
||||||
"resourceLauncherViewAsAdmin": "Вижте като Админ",
|
"resourceLauncherViewAsAdmin": "Вижте като Админ",
|
||||||
"resourceLauncherResourceDetailsDescription": "Вижте детайлите за този ресурс.",
|
"resourceLauncherResourceDetailsDescription": "Connection information and status for this resource.",
|
||||||
|
"resourceLauncherResourceDetails": "Resource Details",
|
||||||
|
"resourceLauncherAuthMethodsDescription": "Authentication methods enabled for this resource.",
|
||||||
|
"resourceLauncherPrivateClientRequired": "Connect with a client on your device to access this resource privately.",
|
||||||
|
"resourceLauncherPrivateClientRequiredTitle": "Client Connection Required",
|
||||||
|
"resourceLauncherDownloadClient": "Download client",
|
||||||
|
"resourceLauncherFailedToLoadDetails": "Could not load resource details. You may no longer have access to this resource.",
|
||||||
|
"resourceLauncherNoPortRestrictions": "No port restrictions",
|
||||||
|
"resourceLauncherTcp": "TCP",
|
||||||
|
"resourceLauncherUdp": "UDP",
|
||||||
"resourceLauncherUnlabeled": "Без Етикет",
|
"resourceLauncherUnlabeled": "Без Етикет",
|
||||||
"resourceLauncherNoSite": "Няма Сайт",
|
"resourceLauncherNoSite": "Няма Сайт",
|
||||||
"resourceLauncherNoResourcesInGroup": "Няма ресурси в тази група",
|
"resourceLauncherNoResourcesInGroup": "Няма ресурси в тази група",
|
||||||
@@ -3607,6 +3714,12 @@
|
|||||||
"resourceLauncherEmptyStateNoResultsTitle": "Няма Намерени Ресурси",
|
"resourceLauncherEmptyStateNoResultsTitle": "Няма Намерени Ресурси",
|
||||||
"resourceLauncherEmptyStateNoResultsDescription": "Никакви ресурси не съвпадат с текущото ви търсене или филтри. Опитайте да ги коригирате, за да намерите това, което търсите.",
|
"resourceLauncherEmptyStateNoResultsDescription": "Никакви ресурси не съвпадат с текущото ви търсене или филтри. Опитайте да ги коригирате, за да намерите това, което търсите.",
|
||||||
"resourceLauncherEmptyStateNoResultsWithQuery": "Никакви ресурси не съвпадат с \"{query}\". Опитайте да коригирате търсенето или да изтриете филтри, за да видите всички ресурси.",
|
"resourceLauncherEmptyStateNoResultsWithQuery": "Никакви ресурси не съвпадат с \"{query}\". Опитайте да коригирате търсенето или да изтриете филтри, за да видите всички ресурси.",
|
||||||
|
"resourceLauncherSearchFirstTitle": "Search or Filter to Browse",
|
||||||
|
"resourceLauncherSearchFirstDescription": "You have access to many resources. Use search or filter by site or label to find what you need.",
|
||||||
|
"resourceLauncherSiteGroupingDisabled": "Site grouping is unavailable at this scale. Filter by site to group a smaller set.",
|
||||||
|
"resourceLauncherLabelGroupingDisabled": "Label grouping is unavailable at this scale.",
|
||||||
|
"resourceLauncherCompactModeHint": "Showing a simplified list for faster browsing. Use search or filters to narrow results.",
|
||||||
|
"resourceLauncherCompactGroupingHint": "Apply site or label filters to enable grouping.",
|
||||||
"resourceLauncherCopiedToClipboard": "Копирано в клипборда",
|
"resourceLauncherCopiedToClipboard": "Копирано в клипборда",
|
||||||
"resourceLauncherCopiedAccessDescription": "Достъпът до ресурса е копиран на вашия клипборд.",
|
"resourceLauncherCopiedAccessDescription": "Достъпът до ресурса е копиран на вашия клипборд.",
|
||||||
"resourceLauncherViewNamePlaceholder": "Име на Изгледа",
|
"resourceLauncherViewNamePlaceholder": "Име на Изгледа",
|
||||||
|
|||||||
+120
-7
@@ -266,6 +266,8 @@
|
|||||||
"resourceRawDescriptionCloud": "Proxy požadavky na syrové TCP/UDP pomocí čísla portu. Vyžaduje připojení stránek ke vzdálenému uzlu.",
|
"resourceRawDescriptionCloud": "Proxy požadavky na syrové TCP/UDP pomocí čísla portu. Vyžaduje připojení stránek ke vzdálenému uzlu.",
|
||||||
"resourceCreate": "Vytvořit zdroj",
|
"resourceCreate": "Vytvořit zdroj",
|
||||||
"resourceCreateDescription": "Postupujte podle níže uvedených kroků, abyste vytvořili a připojili nový zdroj",
|
"resourceCreateDescription": "Postupujte podle níže uvedených kroků, abyste vytvořili a připojili nový zdroj",
|
||||||
|
"resourcePublicCreate": "Create Public Resource",
|
||||||
|
"resourcePublicCreateDescription": "Follow the steps below to create a new public resource that is accessible through a web browser",
|
||||||
"resourceCreateGeneralDescription": "Konfigurace základních nastavení zdroje včetně názvu a typu",
|
"resourceCreateGeneralDescription": "Konfigurace základních nastavení zdroje včetně názvu a typu",
|
||||||
"resourceSeeAll": "Zobrazit všechny zdroje",
|
"resourceSeeAll": "Zobrazit všechny zdroje",
|
||||||
"resourceCreateGeneral": "Obecné",
|
"resourceCreateGeneral": "Obecné",
|
||||||
@@ -613,7 +615,8 @@
|
|||||||
"idpNameInternal": "Interní",
|
"idpNameInternal": "Interní",
|
||||||
"emailInvalid": "Neplatná e-mailová adresa",
|
"emailInvalid": "Neplatná e-mailová adresa",
|
||||||
"inviteValidityDuration": "Zvolte prosím dobu trvání",
|
"inviteValidityDuration": "Zvolte prosím dobu trvání",
|
||||||
"accessRoleSelectPlease": "Vyberte prosím roli",
|
"accessRoleSelectPlease": "A user must belong to at least one role.",
|
||||||
|
"accessRoleRequired": "Role required",
|
||||||
"removeOwnAdminRoleConfirmTitle": "Odebrat přístup správce?",
|
"removeOwnAdminRoleConfirmTitle": "Odebrat přístup správce?",
|
||||||
"removeOwnAdminRoleConfirmDescription": "Po uložení již nebudete mít oprávnění správce v této organizaci. Další administrátor vám může přístup obnovit, pokud bude potřeba.",
|
"removeOwnAdminRoleConfirmDescription": "Po uložení již nebudete mít oprávnění správce v této organizaci. Další administrátor vám může přístup obnovit, pokud bude potřeba.",
|
||||||
"removeOwnAdminRoleConfirmButton": "Odebrat mé administrátorské oprávnění",
|
"removeOwnAdminRoleConfirmButton": "Odebrat mé administrátorské oprávnění",
|
||||||
@@ -864,8 +867,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "Základní Ověření Záhlaví",
|
"policyAuthHeaderAuthTitle": "Základní Ověření Záhlaví",
|
||||||
"policyAuthHeaderAuthDescription": "Ověřit vlastní HTTP hlavičku názvu a hodnoty při každém požadavku",
|
"policyAuthHeaderAuthDescription": "Ověřit vlastní HTTP hlavičku názvu a hodnoty při každém požadavku",
|
||||||
"policyAuthHeaderAuthSummary": "Nastaveno hlavička",
|
"policyAuthHeaderAuthSummary": "Nastaveno hlavička",
|
||||||
"policyAuthHeaderName": "Název hlavičky",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "Očekávaná hodnota",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "Nastavit přístupový kód",
|
"policyAuthSetPasscode": "Nastavit přístupový kód",
|
||||||
"policyAuthSetPincode": "Nastavit PIN kód",
|
"policyAuthSetPincode": "Nastavit PIN kód",
|
||||||
"policyAuthSetEmailWhitelist": "Nastavit e-mailový whitelist",
|
"policyAuthSetEmailWhitelist": "Nastavit e-mailový whitelist",
|
||||||
@@ -1431,6 +1434,15 @@
|
|||||||
"actionSetResourcePincode": "Nastavit zdrojový kód",
|
"actionSetResourcePincode": "Nastavit zdrojový kód",
|
||||||
"actionSetResourceEmailWhitelist": "Nastavit seznam povolených dokumentů",
|
"actionSetResourceEmailWhitelist": "Nastavit seznam povolených dokumentů",
|
||||||
"actionGetResourceEmailWhitelist": "Získat seznam povolených dokumentů",
|
"actionGetResourceEmailWhitelist": "Získat seznam povolených dokumentů",
|
||||||
|
"actionGetResourcePolicy": "Get Resource Policy",
|
||||||
|
"actionUpdateResourcePolicy": "Update Resource Policy",
|
||||||
|
"actionSetResourcePolicyUsers": "Set Resource Policy Users",
|
||||||
|
"actionSetResourcePolicyRoles": "Set Resource Policy Roles",
|
||||||
|
"actionSetResourcePolicyPassword": "Set Resource Policy Password",
|
||||||
|
"actionSetResourcePolicyPincode": "Set Resource Policy Pincode",
|
||||||
|
"actionSetResourcePolicyHeaderAuth": "Set Resource Policy Header Authentication",
|
||||||
|
"actionSetResourcePolicyWhitelist": "Set Resource Policy Email Whitelist",
|
||||||
|
"actionSetResourcePolicyRules": "Set Resource Policy Rules",
|
||||||
"actionCreateTarget": "Create Target",
|
"actionCreateTarget": "Create Target",
|
||||||
"actionDeleteTarget": "Odstranit cíl",
|
"actionDeleteTarget": "Odstranit cíl",
|
||||||
"actionGetTarget": "Získat cíl",
|
"actionGetTarget": "Získat cíl",
|
||||||
@@ -1507,6 +1519,30 @@
|
|||||||
"navbar": "Navigation Menu",
|
"navbar": "Navigation Menu",
|
||||||
"navbarDescription": "Hlavní navigační menu aplikace",
|
"navbarDescription": "Hlavní navigační menu aplikace",
|
||||||
"navbarDocsLink": "Dokumentace",
|
"navbarDocsLink": "Dokumentace",
|
||||||
|
"commandPaletteTitle": "Command Palette",
|
||||||
|
"commandPaletteDescription": "Search for pages, organizations, resources, and actions",
|
||||||
|
"commandPaletteSearchPlaceholder": "Search pages, resources, actions...",
|
||||||
|
"commandPaletteNoResults": "No results found.",
|
||||||
|
"commandPaletteSearching": "Searching...",
|
||||||
|
"commandPaletteNavigation": "Navigation",
|
||||||
|
"commandPaletteOrganizations": "Organizations",
|
||||||
|
"commandPaletteSites": "Sites",
|
||||||
|
"commandPaletteResources": "Resources",
|
||||||
|
"commandPaletteUsers": "Users",
|
||||||
|
"commandPaletteClients": "Machine Clients",
|
||||||
|
"commandPaletteActions": "Actions",
|
||||||
|
"commandPaletteCreateSite": "Create Site",
|
||||||
|
"commandPaletteCreateProxyResource": "Create Public Resource",
|
||||||
|
"commandPaletteCreatePrivateResource": "Create Private Resource",
|
||||||
|
"commandPaletteCreateUser": "Create User",
|
||||||
|
"commandPaletteCreateApiKey": "Create API Key",
|
||||||
|
"commandPaletteCreateMachineClient": "Create Machine Client",
|
||||||
|
"commandPaletteCreateAlertRule": "Create Alert Rule",
|
||||||
|
"commandPaletteCreateIdentityProvider": "Create Identity Provider",
|
||||||
|
"commandPaletteToggleTheme": "Toggle Theme",
|
||||||
|
"commandPaletteChooseOrganization": "Choose Organization",
|
||||||
|
"commandPaletteShortcutMac": "⌘K",
|
||||||
|
"commandPaletteShortcutWindows": "Ctrl K",
|
||||||
"otpErrorEnable": "2FA nelze povolit",
|
"otpErrorEnable": "2FA nelze povolit",
|
||||||
"otpErrorEnableDescription": "Došlo k chybě při povolování 2FA",
|
"otpErrorEnableDescription": "Došlo k chybě při povolování 2FA",
|
||||||
"otpSetupCheckCode": "Zadejte 6místný kód",
|
"otpSetupCheckCode": "Zadejte 6místný kód",
|
||||||
@@ -1584,6 +1620,45 @@
|
|||||||
"sidebarManagement": "Správa",
|
"sidebarManagement": "Správa",
|
||||||
"sidebarBillingAndLicenses": "Fakturace a licence",
|
"sidebarBillingAndLicenses": "Fakturace a licence",
|
||||||
"sidebarLogsAnalytics": "Analytici",
|
"sidebarLogsAnalytics": "Analytici",
|
||||||
|
"commandSites": "Sites",
|
||||||
|
"commandActionModeInfo": "Type \">\" To Open Action Mode",
|
||||||
|
"commandResources": "Resources",
|
||||||
|
"commandProxyResources": "Public Resources",
|
||||||
|
"commandClientResources": "Private Resources",
|
||||||
|
"commandClients": "Clients",
|
||||||
|
"commandUserDevices": "User Devices",
|
||||||
|
"commandMachineClients": "Machine Clients",
|
||||||
|
"commandDomains": "Domains",
|
||||||
|
"commandRemoteExitNodes": "Remote Nodes",
|
||||||
|
"commandTeam": "Team",
|
||||||
|
"commandUsers": "Users",
|
||||||
|
"commandRoles": "Roles",
|
||||||
|
"commandInvitations": "Invitations",
|
||||||
|
"commandPolicies": "Shared Policies",
|
||||||
|
"commandResourcePolicies": "Public Resources Policies",
|
||||||
|
"commandIdentityProviders": "Identity Providers",
|
||||||
|
"commandApprovals": "Approval Requests",
|
||||||
|
"commandShareableLinks": "Shareable Links",
|
||||||
|
"commandOrganization": "Organization",
|
||||||
|
"commandLogsAndAnalytics": "Logs & Analytics",
|
||||||
|
"commandLogsAnalytics": "Analytics",
|
||||||
|
"commandLogsRequest": "HTTP Request Logs",
|
||||||
|
"commandLogsAccess": "Authentication Logs",
|
||||||
|
"commandLogsAction": "Admin Action Logs",
|
||||||
|
"commandLogsConnection": "Network Logs",
|
||||||
|
"commandLogsStreaming": "Event Streaming",
|
||||||
|
"commandManagement": "Management",
|
||||||
|
"commandAlerting": "Alerting",
|
||||||
|
"commandProvisioning": "Provisioning",
|
||||||
|
"commandBluePrints": "Blueprints",
|
||||||
|
"commandApiKeys": "API Keys",
|
||||||
|
"commandBillingAndLicenses": "Billing & Licenses",
|
||||||
|
"commandBilling": "Billing",
|
||||||
|
"commandEnterpriseLicenses": "Licenses",
|
||||||
|
"commandSettings": "Settings",
|
||||||
|
"commandLauncher": "Launcher",
|
||||||
|
"commandResourceLauncher": "Resource Launcher",
|
||||||
|
"commandSearchResults": "Search Results",
|
||||||
"alertingTitle": "Upozornění",
|
"alertingTitle": "Upozornění",
|
||||||
"alertingDescription": "Definujte zdroje, spouštěče a akce pro oznámení",
|
"alertingDescription": "Definujte zdroje, spouštěče a akce pro oznámení",
|
||||||
"alertingRules": "Pravidla upozornění",
|
"alertingRules": "Pravidla upozornění",
|
||||||
@@ -1915,6 +1990,9 @@
|
|||||||
"billingDomains": "Domény",
|
"billingDomains": "Domény",
|
||||||
"billingOrganizations": "Tělo",
|
"billingOrganizations": "Tělo",
|
||||||
"billingRemoteExitNodes": "Vzdálené uzly",
|
"billingRemoteExitNodes": "Vzdálené uzly",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "Žádný limit nenastaven",
|
"billingNoLimitConfigured": "Žádný limit nenastaven",
|
||||||
"billingEstimatedPeriod": "Odhadované období fakturace",
|
"billingEstimatedPeriod": "Odhadované období fakturace",
|
||||||
"billingIncludedUsage": "Zahrnuto využití",
|
"billingIncludedUsage": "Zahrnuto využití",
|
||||||
@@ -1943,6 +2021,9 @@
|
|||||||
"billingUsersInfo": "Kolik uživatelů můžete použít",
|
"billingUsersInfo": "Kolik uživatelů můžete použít",
|
||||||
"billingDomainInfo": "Kolik domén můžete použít",
|
"billingDomainInfo": "Kolik domén můžete použít",
|
||||||
"billingRemoteExitNodesInfo": "Kolik vzdálených uzlů můžete použít",
|
"billingRemoteExitNodesInfo": "Kolik vzdálených uzlů můžete použít",
|
||||||
|
"billingPublicResourcesInfo": "How many public resources you can use",
|
||||||
|
"billingPrivateResourcesInfo": "How many private resources you can use",
|
||||||
|
"billingMachineClientsInfo": "How many machine clients you can use",
|
||||||
"billingLicenseKeys": "Licenční klíče",
|
"billingLicenseKeys": "Licenční klíče",
|
||||||
"billingLicenseKeysDescription": "Spravovat předplatné licenčního klíče",
|
"billingLicenseKeysDescription": "Spravovat předplatné licenčního klíče",
|
||||||
"billingLicenseSubscription": "Předplatné licence",
|
"billingLicenseSubscription": "Předplatné licence",
|
||||||
@@ -2311,6 +2392,12 @@
|
|||||||
"createInternalResourceDialogClose": "Zavřít",
|
"createInternalResourceDialogClose": "Zavřít",
|
||||||
"createInternalResourceDialogCreateClientResource": "Vytvořit soukromý zdroj",
|
"createInternalResourceDialogCreateClientResource": "Vytvořit soukromý zdroj",
|
||||||
"createInternalResourceDialogCreateClientResourceDescription": "Vytvořte nový zdroj, který bude přístupný pouze klientům připojeným k organizaci",
|
"createInternalResourceDialogCreateClientResourceDescription": "Vytvořte nový zdroj, který bude přístupný pouze klientům připojeným k organizaci",
|
||||||
|
"privateResourceCreatePageSeeAll": "See All Private Resources",
|
||||||
|
"privateResourceAllowIcmpPing": "Allow ICMP Ping",
|
||||||
|
"privateResourceNetworkAccess": "Network Access",
|
||||||
|
"privateResourceNetworkAccessDescription": "Control TCP/UDP port access and whether ICMP ping is allowed for this resource.",
|
||||||
|
"hostSettings": "Host Settings",
|
||||||
|
"cidrSettings": "CIDR Settings",
|
||||||
"createInternalResourceDialogResourceProperties": "Vlastnosti zdroje",
|
"createInternalResourceDialogResourceProperties": "Vlastnosti zdroje",
|
||||||
"createInternalResourceDialogName": "Jméno",
|
"createInternalResourceDialogName": "Jméno",
|
||||||
"createInternalResourceDialogSite": "Lokalita",
|
"createInternalResourceDialogSite": "Lokalita",
|
||||||
@@ -2459,6 +2546,7 @@
|
|||||||
"noRemoteExitNodesAvailableDescription": "Pro tuto organizaci nejsou k dispozici žádné uzly. Nejprve vytvořte uzel pro použití lokálních stránek.",
|
"noRemoteExitNodesAvailableDescription": "Pro tuto organizaci nejsou k dispozici žádné uzly. Nejprve vytvořte uzel pro použití lokálních stránek.",
|
||||||
"exitNode": "Ukončit uzel",
|
"exitNode": "Ukončit uzel",
|
||||||
"country": "L 343, 22.12.2009, s. 1).",
|
"country": "L 343, 22.12.2009, s. 1).",
|
||||||
|
"countryIsNot": "Country Is Not",
|
||||||
"rulesMatchCountry": "Aktuálně založené na zdrojové IP adrese",
|
"rulesMatchCountry": "Aktuálně založené na zdrojové IP adrese",
|
||||||
"region": "Oblasti",
|
"region": "Oblasti",
|
||||||
"selectRegion": "Vyberte region",
|
"selectRegion": "Vyberte region",
|
||||||
@@ -3177,7 +3265,7 @@
|
|||||||
"editInternalResourceDialogAddUsers": "Přidat uživatele",
|
"editInternalResourceDialogAddUsers": "Přidat uživatele",
|
||||||
"editInternalResourceDialogAddClients": "Přidat klienty",
|
"editInternalResourceDialogAddClients": "Přidat klienty",
|
||||||
"editInternalResourceDialogDestinationLabel": "Cíl",
|
"editInternalResourceDialogDestinationLabel": "Cíl",
|
||||||
"editInternalResourceDialogDestinationDescription": "Určete cílovou adresu pro interní prostředek. Může se jednat o hostname, IP adresu, nebo rozsah CIDR v závislosti na vybraném režimu. Volitelně nastavte interní DNS alias pro snazší identifikaci.",
|
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it",
|
||||||
"internalResourceFormMultiSiteRoutingHelp": "Výběrem více webů se povolí odolné směrování a přepojení pro vysokou dostupnost.",
|
"internalResourceFormMultiSiteRoutingHelp": "Výběrem více webů se povolí odolné směrování a přepojení pro vysokou dostupnost.",
|
||||||
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Zjistit více",
|
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Zjistit více",
|
||||||
"editInternalResourceDialogPortRestrictionsDescription": "Omezte přístup na specifické TCP/UDP porty nebo povolte/blokujte všechny porty.",
|
"editInternalResourceDialogPortRestrictionsDescription": "Omezte přístup na specifické TCP/UDP porty nebo povolte/blokujte všechny porty.",
|
||||||
@@ -3571,18 +3659,24 @@
|
|||||||
"memberPortalResourceDisabled": "Zdroj je zakázán",
|
"memberPortalResourceDisabled": "Zdroj je zakázán",
|
||||||
"memberPortalShowingResources": "Zobrazeny {start}-{end} z {total} zdrojů",
|
"memberPortalShowingResources": "Zobrazeny {start}-{end} z {total} zdrojů",
|
||||||
"resourceLauncherTitle": "Spouštěč zdrojů",
|
"resourceLauncherTitle": "Spouštěč zdrojů",
|
||||||
"resourceLauncherDescription": "Podívejte se na podrobnosti o zdrojích a spusťte je z jednoho místa",
|
"resourceSidebarLauncherTitle": "Launcher",
|
||||||
"resourceLauncherSearchPlaceholder": "Hledat všechny lokality...",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
|
"resourceLauncherSearchPlaceholder": "Search your resources...",
|
||||||
"resourceLauncherDefaultView": "Výchozí",
|
"resourceLauncherDefaultView": "Výchozí",
|
||||||
"resourceLauncherSaveView": "Uložit pohled",
|
"resourceLauncherSaveView": "Uložit pohled",
|
||||||
"resourceLauncherSaveToCurrentView": "Uložit do aktuálního pohledu",
|
"resourceLauncherSaveToCurrentView": "Uložit do aktuálního pohledu",
|
||||||
|
"resourceLauncherSaveDefaultPersonal": "Save for Me",
|
||||||
"resourceLauncherResetView": "Obnovit pohled",
|
"resourceLauncherResetView": "Obnovit pohled",
|
||||||
|
"resourceLauncherResetSystemDefault": "Reset to System Default",
|
||||||
|
"resourceLauncherSystemDefaultRestored": "System default restored",
|
||||||
|
"resourceLauncherSystemDefaultRestoredDescription": "The default view has been reset to the original settings.",
|
||||||
"resourceLauncherSaveAsNewView": "Uložit jako nový pohled",
|
"resourceLauncherSaveAsNewView": "Uložit jako nový pohled",
|
||||||
"resourceLauncherSaveAsNewViewDescription": "Uložte tento pohled k uloženému filtrování a rozvržení.",
|
"resourceLauncherSaveAsNewViewDescription": "Uložte tento pohled k uloženému filtrování a rozvržení.",
|
||||||
"resourceLauncherSaveForEveryone": "Uložit pro všechny",
|
"resourceLauncherSaveForEveryone": "Uložit pro všechny",
|
||||||
"resourceLauncherSaveForEveryoneDescription": "Sdílejte tento pohled se všemi členy organizace. Pokud není zaškrtnuto, pohled je viditelný pouze vám.",
|
"resourceLauncherSaveForEveryoneDescription": "Sdílejte tento pohled se všemi členy organizace. Pokud není zaškrtnuto, pohled je viditelný pouze vám.",
|
||||||
"resourceLauncherMakePersonal": "Udělat osobní",
|
"resourceLauncherMakePersonal": "Udělat osobní",
|
||||||
"resourceLauncherFilter": "Filtr",
|
"resourceLauncherFilter": "Filtr",
|
||||||
|
"resourceLauncherFilterWithCount": "Filter, {count} applied",
|
||||||
"resourceLauncherSort": "Řadit",
|
"resourceLauncherSort": "Řadit",
|
||||||
"resourceLauncherSortAscending": "Řadit vzestupně",
|
"resourceLauncherSortAscending": "Řadit vzestupně",
|
||||||
"resourceLauncherSortDescending": "Řadit sestupně",
|
"resourceLauncherSortDescending": "Řadit sestupně",
|
||||||
@@ -3590,6 +3684,7 @@
|
|||||||
"resourceLauncherGroupBy": "Seskupit podle",
|
"resourceLauncherGroupBy": "Seskupit podle",
|
||||||
"resourceLauncherGroupBySite": "Lokalita",
|
"resourceLauncherGroupBySite": "Lokalita",
|
||||||
"resourceLauncherGroupByLabel": "Název",
|
"resourceLauncherGroupByLabel": "Název",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "Rozvržení",
|
"resourceLauncherLayout": "Rozvržení",
|
||||||
"resourceLauncherLayoutGrid": "Mřížka",
|
"resourceLauncherLayoutGrid": "Mřížka",
|
||||||
"resourceLauncherLayoutList": "Seznam",
|
"resourceLauncherLayoutList": "Seznam",
|
||||||
@@ -3597,8 +3692,20 @@
|
|||||||
"resourceLauncherShowSiteTags": "Zobrazit značky lokality",
|
"resourceLauncherShowSiteTags": "Zobrazit značky lokality",
|
||||||
"resourceLauncherShowRecents": "Zobrazit nedávné",
|
"resourceLauncherShowRecents": "Zobrazit nedávné",
|
||||||
"resourceLauncherDeleteView": "Smazat pohled",
|
"resourceLauncherDeleteView": "Smazat pohled",
|
||||||
|
"resourceLauncherDeleteViewTitle": "Delete View",
|
||||||
|
"resourceLauncherDeleteViewQuestion": "Are you sure you want to delete this launcher view?",
|
||||||
|
"resourceLauncherDeleteViewConfirm": "Delete View",
|
||||||
"resourceLauncherViewAsAdmin": "Zobrazit jako administrátor",
|
"resourceLauncherViewAsAdmin": "Zobrazit jako administrátor",
|
||||||
"resourceLauncherResourceDetailsDescription": "Podívejte se na podrobnosti o tomto zdroji.",
|
"resourceLauncherResourceDetailsDescription": "Connection information and status for this resource.",
|
||||||
|
"resourceLauncherResourceDetails": "Resource Details",
|
||||||
|
"resourceLauncherAuthMethodsDescription": "Authentication methods enabled for this resource.",
|
||||||
|
"resourceLauncherPrivateClientRequired": "Connect with a client on your device to access this resource privately.",
|
||||||
|
"resourceLauncherPrivateClientRequiredTitle": "Client Connection Required",
|
||||||
|
"resourceLauncherDownloadClient": "Download client",
|
||||||
|
"resourceLauncherFailedToLoadDetails": "Could not load resource details. You may no longer have access to this resource.",
|
||||||
|
"resourceLauncherNoPortRestrictions": "No port restrictions",
|
||||||
|
"resourceLauncherTcp": "TCP",
|
||||||
|
"resourceLauncherUdp": "UDP",
|
||||||
"resourceLauncherUnlabeled": "Bez nálepky",
|
"resourceLauncherUnlabeled": "Bez nálepky",
|
||||||
"resourceLauncherNoSite": "Žádná lokalita",
|
"resourceLauncherNoSite": "Žádná lokalita",
|
||||||
"resourceLauncherNoResourcesInGroup": "V této skupině nejsou žádné zdroje",
|
"resourceLauncherNoResourcesInGroup": "V této skupině nejsou žádné zdroje",
|
||||||
@@ -3607,6 +3714,12 @@
|
|||||||
"resourceLauncherEmptyStateNoResultsTitle": "Nebyl nalezen žádný zdroj",
|
"resourceLauncherEmptyStateNoResultsTitle": "Nebyl nalezen žádný zdroj",
|
||||||
"resourceLauncherEmptyStateNoResultsDescription": "Žádný zdroj neodpovídá vašemu aktuálnímu vyhledávání nebo filtrům. Zkuste je upravit, abyste našli to, co hledáte.",
|
"resourceLauncherEmptyStateNoResultsDescription": "Žádný zdroj neodpovídá vašemu aktuálnímu vyhledávání nebo filtrům. Zkuste je upravit, abyste našli to, co hledáte.",
|
||||||
"resourceLauncherEmptyStateNoResultsWithQuery": "Žádné zdroje neodpovídají \"{query}\". Zkuste upravit vyhledávání nebo vymazat filtry, abyste viděli všechny zdroje.",
|
"resourceLauncherEmptyStateNoResultsWithQuery": "Žádné zdroje neodpovídají \"{query}\". Zkuste upravit vyhledávání nebo vymazat filtry, abyste viděli všechny zdroje.",
|
||||||
|
"resourceLauncherSearchFirstTitle": "Search or Filter to Browse",
|
||||||
|
"resourceLauncherSearchFirstDescription": "You have access to many resources. Use search or filter by site or label to find what you need.",
|
||||||
|
"resourceLauncherSiteGroupingDisabled": "Site grouping is unavailable at this scale. Filter by site to group a smaller set.",
|
||||||
|
"resourceLauncherLabelGroupingDisabled": "Label grouping is unavailable at this scale.",
|
||||||
|
"resourceLauncherCompactModeHint": "Showing a simplified list for faster browsing. Use search or filters to narrow results.",
|
||||||
|
"resourceLauncherCompactGroupingHint": "Apply site or label filters to enable grouping.",
|
||||||
"resourceLauncherCopiedToClipboard": "Zkopírováno do schránky",
|
"resourceLauncherCopiedToClipboard": "Zkopírováno do schránky",
|
||||||
"resourceLauncherCopiedAccessDescription": "Přístup ke zdroji byl zkopírován do vaší schránky.",
|
"resourceLauncherCopiedAccessDescription": "Přístup ke zdroji byl zkopírován do vaší schránky.",
|
||||||
"resourceLauncherViewNamePlaceholder": "Název pohledu",
|
"resourceLauncherViewNamePlaceholder": "Název pohledu",
|
||||||
|
|||||||
+120
-7
@@ -266,6 +266,8 @@
|
|||||||
"resourceRawDescriptionCloud": "Proxyforespørgsler over rå TCP/UDP ved hjælp af et portnummer. Kræver, at sites opretter forbindelse til en ekstern node.",
|
"resourceRawDescriptionCloud": "Proxyforespørgsler over rå TCP/UDP ved hjælp af et portnummer. Kræver, at sites opretter forbindelse til en ekstern node.",
|
||||||
"resourceCreate": "Opret ressource",
|
"resourceCreate": "Opret ressource",
|
||||||
"resourceCreateDescription": "Følg trinene nedenfor for at oprette en ny ressource",
|
"resourceCreateDescription": "Følg trinene nedenfor for at oprette en ny ressource",
|
||||||
|
"resourcePublicCreate": "Create Public Resource",
|
||||||
|
"resourcePublicCreateDescription": "Follow the steps below to create a new public resource that is accessible through a web browser",
|
||||||
"resourceCreateGeneralDescription": "Konfigurer de grunnleggende ressourceindstillingerne inklusive navnet og typen",
|
"resourceCreateGeneralDescription": "Konfigurer de grunnleggende ressourceindstillingerne inklusive navnet og typen",
|
||||||
"resourceSeeAll": "Se alle ressourcer",
|
"resourceSeeAll": "Se alle ressourcer",
|
||||||
"resourceCreateGeneral": "Generelt",
|
"resourceCreateGeneral": "Generelt",
|
||||||
@@ -613,7 +615,8 @@
|
|||||||
"idpNameInternal": "Intern",
|
"idpNameInternal": "Intern",
|
||||||
"emailInvalid": "Ugyldig e-mailadresse",
|
"emailInvalid": "Ugyldig e-mailadresse",
|
||||||
"inviteValidityDuration": "Vælg venligst en varighed",
|
"inviteValidityDuration": "Vælg venligst en varighed",
|
||||||
"accessRoleSelectPlease": "Vælg venligst en rolle",
|
"accessRoleSelectPlease": "A user must belong to at least one role.",
|
||||||
|
"accessRoleRequired": "Role required",
|
||||||
"removeOwnAdminRoleConfirmTitle": "Fjern din administratoradgang?",
|
"removeOwnAdminRoleConfirmTitle": "Fjern din administratoradgang?",
|
||||||
"removeOwnAdminRoleConfirmDescription": "Du vil ikke længere have administratorrettigheder i denne organisation efter gemning. En anden administrator kan gendanne adgang hvis nødvendig.",
|
"removeOwnAdminRoleConfirmDescription": "Du vil ikke længere have administratorrettigheder i denne organisation efter gemning. En anden administrator kan gendanne adgang hvis nødvendig.",
|
||||||
"removeOwnAdminRoleConfirmButton": "Fjern min administratoradgang",
|
"removeOwnAdminRoleConfirmButton": "Fjern min administratoradgang",
|
||||||
@@ -864,8 +867,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "Grunnleggende Header Autentificering",
|
"policyAuthHeaderAuthTitle": "Grunnleggende Header Autentificering",
|
||||||
"policyAuthHeaderAuthDescription": "Bekræft et tilpasset HTTP-headernavn og værdi ved hver forespørgsel",
|
"policyAuthHeaderAuthDescription": "Bekræft et tilpasset HTTP-headernavn og værdi ved hver forespørgsel",
|
||||||
"policyAuthHeaderAuthSummary": "Header konfigureret",
|
"policyAuthHeaderAuthSummary": "Header konfigureret",
|
||||||
"policyAuthHeaderName": "Headernavn",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "Forventet værdi",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "Angiv adgangskode",
|
"policyAuthSetPasscode": "Angiv adgangskode",
|
||||||
"policyAuthSetPincode": "Sett PIN-kode",
|
"policyAuthSetPincode": "Sett PIN-kode",
|
||||||
"policyAuthSetEmailWhitelist": "Angiv e-mail hviteliste",
|
"policyAuthSetEmailWhitelist": "Angiv e-mail hviteliste",
|
||||||
@@ -1431,6 +1434,15 @@
|
|||||||
"actionSetResourcePincode": "Angiv ressource-PIN-kode",
|
"actionSetResourcePincode": "Angiv ressource-PIN-kode",
|
||||||
"actionSetResourceEmailWhitelist": "Angiv e-mailwhitelist for ressource",
|
"actionSetResourceEmailWhitelist": "Angiv e-mailwhitelist for ressource",
|
||||||
"actionGetResourceEmailWhitelist": "Hent e-mailwhitelist for ressource",
|
"actionGetResourceEmailWhitelist": "Hent e-mailwhitelist for ressource",
|
||||||
|
"actionGetResourcePolicy": "Get Resource Policy",
|
||||||
|
"actionUpdateResourcePolicy": "Update Resource Policy",
|
||||||
|
"actionSetResourcePolicyUsers": "Set Resource Policy Users",
|
||||||
|
"actionSetResourcePolicyRoles": "Set Resource Policy Roles",
|
||||||
|
"actionSetResourcePolicyPassword": "Set Resource Policy Password",
|
||||||
|
"actionSetResourcePolicyPincode": "Set Resource Policy Pincode",
|
||||||
|
"actionSetResourcePolicyHeaderAuth": "Set Resource Policy Header Authentication",
|
||||||
|
"actionSetResourcePolicyWhitelist": "Set Resource Policy Email Whitelist",
|
||||||
|
"actionSetResourcePolicyRules": "Set Resource Policy Rules",
|
||||||
"actionCreateTarget": "Opret mål",
|
"actionCreateTarget": "Opret mål",
|
||||||
"actionDeleteTarget": "Slet mål",
|
"actionDeleteTarget": "Slet mål",
|
||||||
"actionGetTarget": "Hent mål",
|
"actionGetTarget": "Hent mål",
|
||||||
@@ -1507,6 +1519,30 @@
|
|||||||
"navbar": "Navigationsmenu",
|
"navbar": "Navigationsmenu",
|
||||||
"navbarDescription": "Hovednavigasjonsmeny for applikationen",
|
"navbarDescription": "Hovednavigasjonsmeny for applikationen",
|
||||||
"navbarDocsLink": "Dokumentation",
|
"navbarDocsLink": "Dokumentation",
|
||||||
|
"commandPaletteTitle": "Command Palette",
|
||||||
|
"commandPaletteDescription": "Search for pages, organizations, resources, and actions",
|
||||||
|
"commandPaletteSearchPlaceholder": "Search pages, resources, actions...",
|
||||||
|
"commandPaletteNoResults": "No results found.",
|
||||||
|
"commandPaletteSearching": "Searching...",
|
||||||
|
"commandPaletteNavigation": "Navigation",
|
||||||
|
"commandPaletteOrganizations": "Organizations",
|
||||||
|
"commandPaletteSites": "Sites",
|
||||||
|
"commandPaletteResources": "Resources",
|
||||||
|
"commandPaletteUsers": "Users",
|
||||||
|
"commandPaletteClients": "Machine Clients",
|
||||||
|
"commandPaletteActions": "Actions",
|
||||||
|
"commandPaletteCreateSite": "Create Site",
|
||||||
|
"commandPaletteCreateProxyResource": "Create Public Resource",
|
||||||
|
"commandPaletteCreatePrivateResource": "Create Private Resource",
|
||||||
|
"commandPaletteCreateUser": "Create User",
|
||||||
|
"commandPaletteCreateApiKey": "Create API Key",
|
||||||
|
"commandPaletteCreateMachineClient": "Create Machine Client",
|
||||||
|
"commandPaletteCreateAlertRule": "Create Alert Rule",
|
||||||
|
"commandPaletteCreateIdentityProvider": "Create Identity Provider",
|
||||||
|
"commandPaletteToggleTheme": "Toggle Theme",
|
||||||
|
"commandPaletteChooseOrganization": "Choose Organization",
|
||||||
|
"commandPaletteShortcutMac": "⌘K",
|
||||||
|
"commandPaletteShortcutWindows": "Ctrl K",
|
||||||
"otpErrorEnable": "Kunne ikke aktivere 2FA",
|
"otpErrorEnable": "Kunne ikke aktivere 2FA",
|
||||||
"otpErrorEnableDescription": "En fejl opstod under aktivering af 2FA",
|
"otpErrorEnableDescription": "En fejl opstod under aktivering af 2FA",
|
||||||
"otpSetupCheckCode": "Indtast venligst en 6-sifret kode",
|
"otpSetupCheckCode": "Indtast venligst en 6-sifret kode",
|
||||||
@@ -1584,6 +1620,45 @@
|
|||||||
"sidebarManagement": "Administration",
|
"sidebarManagement": "Administration",
|
||||||
"sidebarBillingAndLicenses": "Fakturering & licenser",
|
"sidebarBillingAndLicenses": "Fakturering & licenser",
|
||||||
"sidebarLogsAnalytics": "Analyser",
|
"sidebarLogsAnalytics": "Analyser",
|
||||||
|
"commandSites": "Sites",
|
||||||
|
"commandActionModeInfo": "Type \">\" To Open Action Mode",
|
||||||
|
"commandResources": "Resources",
|
||||||
|
"commandProxyResources": "Public Resources",
|
||||||
|
"commandClientResources": "Private Resources",
|
||||||
|
"commandClients": "Clients",
|
||||||
|
"commandUserDevices": "User Devices",
|
||||||
|
"commandMachineClients": "Machine Clients",
|
||||||
|
"commandDomains": "Domains",
|
||||||
|
"commandRemoteExitNodes": "Remote Nodes",
|
||||||
|
"commandTeam": "Team",
|
||||||
|
"commandUsers": "Users",
|
||||||
|
"commandRoles": "Roles",
|
||||||
|
"commandInvitations": "Invitations",
|
||||||
|
"commandPolicies": "Shared Policies",
|
||||||
|
"commandResourcePolicies": "Public Resources Policies",
|
||||||
|
"commandIdentityProviders": "Identity Providers",
|
||||||
|
"commandApprovals": "Approval Requests",
|
||||||
|
"commandShareableLinks": "Shareable Links",
|
||||||
|
"commandOrganization": "Organization",
|
||||||
|
"commandLogsAndAnalytics": "Logs & Analytics",
|
||||||
|
"commandLogsAnalytics": "Analytics",
|
||||||
|
"commandLogsRequest": "HTTP Request Logs",
|
||||||
|
"commandLogsAccess": "Authentication Logs",
|
||||||
|
"commandLogsAction": "Admin Action Logs",
|
||||||
|
"commandLogsConnection": "Network Logs",
|
||||||
|
"commandLogsStreaming": "Event Streaming",
|
||||||
|
"commandManagement": "Management",
|
||||||
|
"commandAlerting": "Alerting",
|
||||||
|
"commandProvisioning": "Provisioning",
|
||||||
|
"commandBluePrints": "Blueprints",
|
||||||
|
"commandApiKeys": "API Keys",
|
||||||
|
"commandBillingAndLicenses": "Billing & Licenses",
|
||||||
|
"commandBilling": "Billing",
|
||||||
|
"commandEnterpriseLicenses": "Licenses",
|
||||||
|
"commandSettings": "Settings",
|
||||||
|
"commandLauncher": "Launcher",
|
||||||
|
"commandResourceLauncher": "Resource Launcher",
|
||||||
|
"commandSearchResults": "Search Results",
|
||||||
"alertingTitle": "Varsling",
|
"alertingTitle": "Varsling",
|
||||||
"alertingDescription": "Definer kilder, triggere og handlinger for varsler",
|
"alertingDescription": "Definer kilder, triggere og handlinger for varsler",
|
||||||
"alertingRules": "Varslingsregler",
|
"alertingRules": "Varslingsregler",
|
||||||
@@ -1915,6 +1990,9 @@
|
|||||||
"billingDomains": "Domæner",
|
"billingDomains": "Domæner",
|
||||||
"billingOrganizations": "Orger",
|
"billingOrganizations": "Orger",
|
||||||
"billingRemoteExitNodes": "Eksterne noder",
|
"billingRemoteExitNodes": "Eksterne noder",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "Ingen grænse konfigureret",
|
"billingNoLimitConfigured": "Ingen grænse konfigureret",
|
||||||
"billingEstimatedPeriod": "Estimert faktureringsperiode",
|
"billingEstimatedPeriod": "Estimert faktureringsperiode",
|
||||||
"billingIncludedUsage": "Inklusive Brug",
|
"billingIncludedUsage": "Inklusive Brug",
|
||||||
@@ -1943,6 +2021,9 @@
|
|||||||
"billingUsersInfo": "Hvor mange brugere du kan bruge",
|
"billingUsersInfo": "Hvor mange brugere du kan bruge",
|
||||||
"billingDomainInfo": "Hvor mange domæner du kan bruge",
|
"billingDomainInfo": "Hvor mange domæner du kan bruge",
|
||||||
"billingRemoteExitNodesInfo": "Hvor mange fjernnoder du kan bruge",
|
"billingRemoteExitNodesInfo": "Hvor mange fjernnoder du kan bruge",
|
||||||
|
"billingPublicResourcesInfo": "How many public resources you can use",
|
||||||
|
"billingPrivateResourcesInfo": "How many private resources you can use",
|
||||||
|
"billingMachineClientsInfo": "How many machine clients you can use",
|
||||||
"billingLicenseKeys": "Licensnøgler",
|
"billingLicenseKeys": "Licensnøgler",
|
||||||
"billingLicenseKeysDescription": "Administrer dine licensnøgleabonnementer",
|
"billingLicenseKeysDescription": "Administrer dine licensnøgleabonnementer",
|
||||||
"billingLicenseSubscription": "Licens abonnement",
|
"billingLicenseSubscription": "Licens abonnement",
|
||||||
@@ -2311,6 +2392,12 @@
|
|||||||
"createInternalResourceDialogClose": "Luk",
|
"createInternalResourceDialogClose": "Luk",
|
||||||
"createInternalResourceDialogCreateClientResource": "Opret privat ressource",
|
"createInternalResourceDialogCreateClientResource": "Opret privat ressource",
|
||||||
"createInternalResourceDialogCreateClientResourceDescription": "Opret en ny ressource som kun vil være tilgængelig for kunder som er forbundet til organisationen",
|
"createInternalResourceDialogCreateClientResourceDescription": "Opret en ny ressource som kun vil være tilgængelig for kunder som er forbundet til organisationen",
|
||||||
|
"privateResourceCreatePageSeeAll": "See All Private Resources",
|
||||||
|
"privateResourceAllowIcmpPing": "Allow ICMP Ping",
|
||||||
|
"privateResourceNetworkAccess": "Network Access",
|
||||||
|
"privateResourceNetworkAccessDescription": "Control TCP/UDP port access and whether ICMP ping is allowed for this resource.",
|
||||||
|
"hostSettings": "Host Settings",
|
||||||
|
"cidrSettings": "CIDR Settings",
|
||||||
"createInternalResourceDialogResourceProperties": "Ressourceegenskaber",
|
"createInternalResourceDialogResourceProperties": "Ressourceegenskaber",
|
||||||
"createInternalResourceDialogName": "Navn",
|
"createInternalResourceDialogName": "Navn",
|
||||||
"createInternalResourceDialogSite": "Websted",
|
"createInternalResourceDialogSite": "Websted",
|
||||||
@@ -2459,6 +2546,7 @@
|
|||||||
"noRemoteExitNodesAvailableDescription": "Ingen noder er tilgængelige for denne organisation. Opret en node først for at bruge lokale sites.",
|
"noRemoteExitNodesAvailableDescription": "Ingen noder er tilgængelige for denne organisation. Opret en node først for at bruge lokale sites.",
|
||||||
"exitNode": "Exitnode",
|
"exitNode": "Exitnode",
|
||||||
"country": "Land",
|
"country": "Land",
|
||||||
|
"countryIsNot": "Country Is Not",
|
||||||
"rulesMatchCountry": "I øjeblikket baseret på kilde-IP",
|
"rulesMatchCountry": "I øjeblikket baseret på kilde-IP",
|
||||||
"region": "Fylke",
|
"region": "Fylke",
|
||||||
"selectRegion": "Vælg region",
|
"selectRegion": "Vælg region",
|
||||||
@@ -3177,7 +3265,7 @@
|
|||||||
"editInternalResourceDialogAddUsers": "Tilføj brugere",
|
"editInternalResourceDialogAddUsers": "Tilføj brugere",
|
||||||
"editInternalResourceDialogAddClients": "Tilføj klienter",
|
"editInternalResourceDialogAddClients": "Tilføj klienter",
|
||||||
"editInternalResourceDialogDestinationLabel": "Destination",
|
"editInternalResourceDialogDestinationLabel": "Destination",
|
||||||
"editInternalResourceDialogDestinationDescription": "Angiv destinationsadressen for den interne ressource. Dette kan være et værtsnavn, en IP-adresse eller et CIDR-område afhængigt af den valgte tilstand. Du kan også konfigurere et internt DNS-alias for nemmere identifikation.",
|
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it",
|
||||||
"internalResourceFormMultiSiteRoutingHelp": "Valg af flere sites muliggør robust routing og failover for høj tilgængelighed.",
|
"internalResourceFormMultiSiteRoutingHelp": "Valg af flere sites muliggør robust routing og failover for høj tilgængelighed.",
|
||||||
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Læs mere",
|
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Læs mere",
|
||||||
"editInternalResourceDialogPortRestrictionsDescription": "Begrens adgang til specifikke TCP/UDP-porte eller tillade/blokere alle porte.",
|
"editInternalResourceDialogPortRestrictionsDescription": "Begrens adgang til specifikke TCP/UDP-porte eller tillade/blokere alle porte.",
|
||||||
@@ -3571,18 +3659,24 @@
|
|||||||
"memberPortalResourceDisabled": "Ressource deaktiveret",
|
"memberPortalResourceDisabled": "Ressource deaktiveret",
|
||||||
"memberPortalShowingResources": "Viser {start}-{end} af {total} ressourcer",
|
"memberPortalShowingResources": "Viser {start}-{end} af {total} ressourcer",
|
||||||
"resourceLauncherTitle": "Ressource Starter",
|
"resourceLauncherTitle": "Ressource Starter",
|
||||||
"resourceLauncherDescription": "Se ressource detaljer og start dem fra ét sted",
|
"resourceSidebarLauncherTitle": "Launcher",
|
||||||
"resourceLauncherSearchPlaceholder": "Søg i alle sites...",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
|
"resourceLauncherSearchPlaceholder": "Search your resources...",
|
||||||
"resourceLauncherDefaultView": "Standard",
|
"resourceLauncherDefaultView": "Standard",
|
||||||
"resourceLauncherSaveView": "Gem Visning",
|
"resourceLauncherSaveView": "Gem Visning",
|
||||||
"resourceLauncherSaveToCurrentView": "Gem til nuværende visning",
|
"resourceLauncherSaveToCurrentView": "Gem til nuværende visning",
|
||||||
|
"resourceLauncherSaveDefaultPersonal": "Save for Me",
|
||||||
"resourceLauncherResetView": "Nulstil Visning",
|
"resourceLauncherResetView": "Nulstil Visning",
|
||||||
|
"resourceLauncherResetSystemDefault": "Reset to System Default",
|
||||||
|
"resourceLauncherSystemDefaultRestored": "System default restored",
|
||||||
|
"resourceLauncherSystemDefaultRestoredDescription": "The default view has been reset to the original settings.",
|
||||||
"resourceLauncherSaveAsNewView": "Gem som Ny Visning",
|
"resourceLauncherSaveAsNewView": "Gem som Ny Visning",
|
||||||
"resourceLauncherSaveAsNewViewDescription": "Giv denne visning et navn for at gemme dine nuværende filtre og layout.",
|
"resourceLauncherSaveAsNewViewDescription": "Giv denne visning et navn for at gemme dine nuværende filtre og layout.",
|
||||||
"resourceLauncherSaveForEveryone": "Gem for Alle",
|
"resourceLauncherSaveForEveryone": "Gem for Alle",
|
||||||
"resourceLauncherSaveForEveryoneDescription": "Del denne visning med alle organisationsmedlemmer. Når den er ikke markeret, er visningen kun synlig for dig.",
|
"resourceLauncherSaveForEveryoneDescription": "Del denne visning med alle organisationsmedlemmer. Når den er ikke markeret, er visningen kun synlig for dig.",
|
||||||
"resourceLauncherMakePersonal": "Gør Personlig",
|
"resourceLauncherMakePersonal": "Gør Personlig",
|
||||||
"resourceLauncherFilter": "Filter",
|
"resourceLauncherFilter": "Filter",
|
||||||
|
"resourceLauncherFilterWithCount": "Filter, {count} applied",
|
||||||
"resourceLauncherSort": "Sortér",
|
"resourceLauncherSort": "Sortér",
|
||||||
"resourceLauncherSortAscending": "Sortér stigende",
|
"resourceLauncherSortAscending": "Sortér stigende",
|
||||||
"resourceLauncherSortDescending": "Sortér faldende",
|
"resourceLauncherSortDescending": "Sortér faldende",
|
||||||
@@ -3590,6 +3684,7 @@
|
|||||||
"resourceLauncherGroupBy": "Gruppér Efter",
|
"resourceLauncherGroupBy": "Gruppér Efter",
|
||||||
"resourceLauncherGroupBySite": "Websted",
|
"resourceLauncherGroupBySite": "Websted",
|
||||||
"resourceLauncherGroupByLabel": "Etikett",
|
"resourceLauncherGroupByLabel": "Etikett",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "Layout",
|
"resourceLauncherLayout": "Layout",
|
||||||
"resourceLauncherLayoutGrid": "Gitter",
|
"resourceLauncherLayoutGrid": "Gitter",
|
||||||
"resourceLauncherLayoutList": "Liste",
|
"resourceLauncherLayoutList": "Liste",
|
||||||
@@ -3597,8 +3692,20 @@
|
|||||||
"resourceLauncherShowSiteTags": "Vis Site Tags",
|
"resourceLauncherShowSiteTags": "Vis Site Tags",
|
||||||
"resourceLauncherShowRecents": "Vis Seneste",
|
"resourceLauncherShowRecents": "Vis Seneste",
|
||||||
"resourceLauncherDeleteView": "Slet Visning",
|
"resourceLauncherDeleteView": "Slet Visning",
|
||||||
|
"resourceLauncherDeleteViewTitle": "Delete View",
|
||||||
|
"resourceLauncherDeleteViewQuestion": "Are you sure you want to delete this launcher view?",
|
||||||
|
"resourceLauncherDeleteViewConfirm": "Delete View",
|
||||||
"resourceLauncherViewAsAdmin": "Vis som Admin",
|
"resourceLauncherViewAsAdmin": "Vis som Admin",
|
||||||
"resourceLauncherResourceDetailsDescription": "Se detaljer for denne ressource.",
|
"resourceLauncherResourceDetailsDescription": "Connection information and status for this resource.",
|
||||||
|
"resourceLauncherResourceDetails": "Resource Details",
|
||||||
|
"resourceLauncherAuthMethodsDescription": "Authentication methods enabled for this resource.",
|
||||||
|
"resourceLauncherPrivateClientRequired": "Connect with a client on your device to access this resource privately.",
|
||||||
|
"resourceLauncherPrivateClientRequiredTitle": "Client Connection Required",
|
||||||
|
"resourceLauncherDownloadClient": "Download client",
|
||||||
|
"resourceLauncherFailedToLoadDetails": "Could not load resource details. You may no longer have access to this resource.",
|
||||||
|
"resourceLauncherNoPortRestrictions": "No port restrictions",
|
||||||
|
"resourceLauncherTcp": "TCP",
|
||||||
|
"resourceLauncherUdp": "UDP",
|
||||||
"resourceLauncherUnlabeled": "Uden Etiket",
|
"resourceLauncherUnlabeled": "Uden Etiket",
|
||||||
"resourceLauncherNoSite": "Ingen Site",
|
"resourceLauncherNoSite": "Ingen Site",
|
||||||
"resourceLauncherNoResourcesInGroup": "Ingen ressourcer i denne gruppe",
|
"resourceLauncherNoResourcesInGroup": "Ingen ressourcer i denne gruppe",
|
||||||
@@ -3607,6 +3714,12 @@
|
|||||||
"resourceLauncherEmptyStateNoResultsTitle": "Ingen ressourcer fundet",
|
"resourceLauncherEmptyStateNoResultsTitle": "Ingen ressourcer fundet",
|
||||||
"resourceLauncherEmptyStateNoResultsDescription": "Ingen ressourcer matcher din nuværende søgning eller filtre. Prøv at justere dem for at finde det, du leder efter.",
|
"resourceLauncherEmptyStateNoResultsDescription": "Ingen ressourcer matcher din nuværende søgning eller filtre. Prøv at justere dem for at finde det, du leder efter.",
|
||||||
"resourceLauncherEmptyStateNoResultsWithQuery": "Ingen ressourcer matcher \"{query}\". Prøv at justere din søgning eller rydde filtre for at se alle ressourcer.",
|
"resourceLauncherEmptyStateNoResultsWithQuery": "Ingen ressourcer matcher \"{query}\". Prøv at justere din søgning eller rydde filtre for at se alle ressourcer.",
|
||||||
|
"resourceLauncherSearchFirstTitle": "Search or Filter to Browse",
|
||||||
|
"resourceLauncherSearchFirstDescription": "You have access to many resources. Use search or filter by site or label to find what you need.",
|
||||||
|
"resourceLauncherSiteGroupingDisabled": "Site grouping is unavailable at this scale. Filter by site to group a smaller set.",
|
||||||
|
"resourceLauncherLabelGroupingDisabled": "Label grouping is unavailable at this scale.",
|
||||||
|
"resourceLauncherCompactModeHint": "Showing a simplified list for faster browsing. Use search or filters to narrow results.",
|
||||||
|
"resourceLauncherCompactGroupingHint": "Apply site or label filters to enable grouping.",
|
||||||
"resourceLauncherCopiedToClipboard": "Kopieret til udklipsholderen",
|
"resourceLauncherCopiedToClipboard": "Kopieret til udklipsholderen",
|
||||||
"resourceLauncherCopiedAccessDescription": "Ressourcetilgangen er kopieret til din udklipsholder.",
|
"resourceLauncherCopiedAccessDescription": "Ressourcetilgangen er kopieret til din udklipsholder.",
|
||||||
"resourceLauncherViewNamePlaceholder": "Vis navn",
|
"resourceLauncherViewNamePlaceholder": "Vis navn",
|
||||||
|
|||||||
+120
-7
@@ -266,6 +266,8 @@
|
|||||||
"resourceRawDescriptionCloud": "Proxy-Anfragen über rohe TCP/UDP mit Portnummer. Benötigt Sites, um sich mit einem entfernten Knoten zu verbinden.",
|
"resourceRawDescriptionCloud": "Proxy-Anfragen über rohe TCP/UDP mit Portnummer. Benötigt Sites, um sich mit einem entfernten Knoten zu verbinden.",
|
||||||
"resourceCreate": "Ressource erstellen",
|
"resourceCreate": "Ressource erstellen",
|
||||||
"resourceCreateDescription": "Folgen Sie den Schritten unten, um eine neue Ressource zu erstellen",
|
"resourceCreateDescription": "Folgen Sie den Schritten unten, um eine neue Ressource zu erstellen",
|
||||||
|
"resourcePublicCreate": "Create Public Resource",
|
||||||
|
"resourcePublicCreateDescription": "Follow the steps below to create a new public resource that is accessible through a web browser",
|
||||||
"resourceCreateGeneralDescription": "Konfigurieren Sie die Grundeinstellungen der Ressource, einschließlich Name und Typ",
|
"resourceCreateGeneralDescription": "Konfigurieren Sie die Grundeinstellungen der Ressource, einschließlich Name und Typ",
|
||||||
"resourceSeeAll": "Alle Ressourcen anzeigen",
|
"resourceSeeAll": "Alle Ressourcen anzeigen",
|
||||||
"resourceCreateGeneral": "Allgemein",
|
"resourceCreateGeneral": "Allgemein",
|
||||||
@@ -613,7 +615,8 @@
|
|||||||
"idpNameInternal": "Intern",
|
"idpNameInternal": "Intern",
|
||||||
"emailInvalid": "Ungültige E-Mail-Adresse",
|
"emailInvalid": "Ungültige E-Mail-Adresse",
|
||||||
"inviteValidityDuration": "Bitte wählen Sie eine Dauer",
|
"inviteValidityDuration": "Bitte wählen Sie eine Dauer",
|
||||||
"accessRoleSelectPlease": "Bitte wählen Sie eine Rolle",
|
"accessRoleSelectPlease": "A user must belong to at least one role.",
|
||||||
|
"accessRoleRequired": "Role required",
|
||||||
"removeOwnAdminRoleConfirmTitle": "Möchten Sie Ihren Administratorzugriff entfernen?",
|
"removeOwnAdminRoleConfirmTitle": "Möchten Sie Ihren Administratorzugriff entfernen?",
|
||||||
"removeOwnAdminRoleConfirmDescription": "Nach dem Speichern haben Sie keine Administratorrechte mehr in dieser Organisation. Ein anderer Administrator kann den Zugriff bei Bedarf wiederherstellen.",
|
"removeOwnAdminRoleConfirmDescription": "Nach dem Speichern haben Sie keine Administratorrechte mehr in dieser Organisation. Ein anderer Administrator kann den Zugriff bei Bedarf wiederherstellen.",
|
||||||
"removeOwnAdminRoleConfirmButton": "Meinen Administratorzugriff entfernen",
|
"removeOwnAdminRoleConfirmButton": "Meinen Administratorzugriff entfernen",
|
||||||
@@ -864,8 +867,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "Grundlegende Header-Authentifizierung",
|
"policyAuthHeaderAuthTitle": "Grundlegende Header-Authentifizierung",
|
||||||
"policyAuthHeaderAuthDescription": "Überprüfen Sie einen benutzerdefinierten HTTP-Headernamen und -wert bei jeder Anfrage",
|
"policyAuthHeaderAuthDescription": "Überprüfen Sie einen benutzerdefinierten HTTP-Headernamen und -wert bei jeder Anfrage",
|
||||||
"policyAuthHeaderAuthSummary": "Header konfiguriert",
|
"policyAuthHeaderAuthSummary": "Header konfiguriert",
|
||||||
"policyAuthHeaderName": "Header-Name",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "Erwarteter Wert",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "Passcode setzen",
|
"policyAuthSetPasscode": "Passcode setzen",
|
||||||
"policyAuthSetPincode": "PIN-Code festlegen",
|
"policyAuthSetPincode": "PIN-Code festlegen",
|
||||||
"policyAuthSetEmailWhitelist": "E-Mail-Whitelist festlegen",
|
"policyAuthSetEmailWhitelist": "E-Mail-Whitelist festlegen",
|
||||||
@@ -1431,6 +1434,15 @@
|
|||||||
"actionSetResourcePincode": "Ressourcen-PIN festlegen",
|
"actionSetResourcePincode": "Ressourcen-PIN festlegen",
|
||||||
"actionSetResourceEmailWhitelist": "Ressourcen-E-Mail-Whitelist festlegen",
|
"actionSetResourceEmailWhitelist": "Ressourcen-E-Mail-Whitelist festlegen",
|
||||||
"actionGetResourceEmailWhitelist": "Ressourcen-E-Mail-Whitelist abrufen",
|
"actionGetResourceEmailWhitelist": "Ressourcen-E-Mail-Whitelist abrufen",
|
||||||
|
"actionGetResourcePolicy": "Get Resource Policy",
|
||||||
|
"actionUpdateResourcePolicy": "Update Resource Policy",
|
||||||
|
"actionSetResourcePolicyUsers": "Set Resource Policy Users",
|
||||||
|
"actionSetResourcePolicyRoles": "Set Resource Policy Roles",
|
||||||
|
"actionSetResourcePolicyPassword": "Set Resource Policy Password",
|
||||||
|
"actionSetResourcePolicyPincode": "Set Resource Policy Pincode",
|
||||||
|
"actionSetResourcePolicyHeaderAuth": "Set Resource Policy Header Authentication",
|
||||||
|
"actionSetResourcePolicyWhitelist": "Set Resource Policy Email Whitelist",
|
||||||
|
"actionSetResourcePolicyRules": "Set Resource Policy Rules",
|
||||||
"actionCreateTarget": "Ziel erstellen",
|
"actionCreateTarget": "Ziel erstellen",
|
||||||
"actionDeleteTarget": "Ziel löschen",
|
"actionDeleteTarget": "Ziel löschen",
|
||||||
"actionGetTarget": "Ziel abrufen",
|
"actionGetTarget": "Ziel abrufen",
|
||||||
@@ -1507,6 +1519,30 @@
|
|||||||
"navbar": "Navigationsmenü",
|
"navbar": "Navigationsmenü",
|
||||||
"navbarDescription": "Hauptnavigationsmenü für die Anwendung",
|
"navbarDescription": "Hauptnavigationsmenü für die Anwendung",
|
||||||
"navbarDocsLink": "Dokumentation",
|
"navbarDocsLink": "Dokumentation",
|
||||||
|
"commandPaletteTitle": "Command Palette",
|
||||||
|
"commandPaletteDescription": "Search for pages, organizations, resources, and actions",
|
||||||
|
"commandPaletteSearchPlaceholder": "Search pages, resources, actions...",
|
||||||
|
"commandPaletteNoResults": "No results found.",
|
||||||
|
"commandPaletteSearching": "Searching...",
|
||||||
|
"commandPaletteNavigation": "Navigation",
|
||||||
|
"commandPaletteOrganizations": "Organizations",
|
||||||
|
"commandPaletteSites": "Sites",
|
||||||
|
"commandPaletteResources": "Resources",
|
||||||
|
"commandPaletteUsers": "Users",
|
||||||
|
"commandPaletteClients": "Machine Clients",
|
||||||
|
"commandPaletteActions": "Actions",
|
||||||
|
"commandPaletteCreateSite": "Create Site",
|
||||||
|
"commandPaletteCreateProxyResource": "Create Public Resource",
|
||||||
|
"commandPaletteCreatePrivateResource": "Create Private Resource",
|
||||||
|
"commandPaletteCreateUser": "Create User",
|
||||||
|
"commandPaletteCreateApiKey": "Create API Key",
|
||||||
|
"commandPaletteCreateMachineClient": "Create Machine Client",
|
||||||
|
"commandPaletteCreateAlertRule": "Create Alert Rule",
|
||||||
|
"commandPaletteCreateIdentityProvider": "Create Identity Provider",
|
||||||
|
"commandPaletteToggleTheme": "Toggle Theme",
|
||||||
|
"commandPaletteChooseOrganization": "Choose Organization",
|
||||||
|
"commandPaletteShortcutMac": "⌘K",
|
||||||
|
"commandPaletteShortcutWindows": "Ctrl K",
|
||||||
"otpErrorEnable": "2FA konnte nicht aktiviert werden",
|
"otpErrorEnable": "2FA konnte nicht aktiviert werden",
|
||||||
"otpErrorEnableDescription": "Beim Aktivieren der 2FA ist ein Fehler aufgetreten",
|
"otpErrorEnableDescription": "Beim Aktivieren der 2FA ist ein Fehler aufgetreten",
|
||||||
"otpSetupCheckCode": "Bitte geben Sie einen 6-stelligen Code ein",
|
"otpSetupCheckCode": "Bitte geben Sie einen 6-stelligen Code ein",
|
||||||
@@ -1584,6 +1620,45 @@
|
|||||||
"sidebarManagement": "Management",
|
"sidebarManagement": "Management",
|
||||||
"sidebarBillingAndLicenses": "Abrechnung & Lizenzen",
|
"sidebarBillingAndLicenses": "Abrechnung & Lizenzen",
|
||||||
"sidebarLogsAnalytics": "Analytik",
|
"sidebarLogsAnalytics": "Analytik",
|
||||||
|
"commandSites": "Sites",
|
||||||
|
"commandActionModeInfo": "Type \">\" To Open Action Mode",
|
||||||
|
"commandResources": "Resources",
|
||||||
|
"commandProxyResources": "Public Resources",
|
||||||
|
"commandClientResources": "Private Resources",
|
||||||
|
"commandClients": "Clients",
|
||||||
|
"commandUserDevices": "User Devices",
|
||||||
|
"commandMachineClients": "Machine Clients",
|
||||||
|
"commandDomains": "Domains",
|
||||||
|
"commandRemoteExitNodes": "Remote Nodes",
|
||||||
|
"commandTeam": "Team",
|
||||||
|
"commandUsers": "Users",
|
||||||
|
"commandRoles": "Roles",
|
||||||
|
"commandInvitations": "Invitations",
|
||||||
|
"commandPolicies": "Shared Policies",
|
||||||
|
"commandResourcePolicies": "Public Resources Policies",
|
||||||
|
"commandIdentityProviders": "Identity Providers",
|
||||||
|
"commandApprovals": "Approval Requests",
|
||||||
|
"commandShareableLinks": "Shareable Links",
|
||||||
|
"commandOrganization": "Organization",
|
||||||
|
"commandLogsAndAnalytics": "Logs & Analytics",
|
||||||
|
"commandLogsAnalytics": "Analytics",
|
||||||
|
"commandLogsRequest": "HTTP Request Logs",
|
||||||
|
"commandLogsAccess": "Authentication Logs",
|
||||||
|
"commandLogsAction": "Admin Action Logs",
|
||||||
|
"commandLogsConnection": "Network Logs",
|
||||||
|
"commandLogsStreaming": "Event Streaming",
|
||||||
|
"commandManagement": "Management",
|
||||||
|
"commandAlerting": "Alerting",
|
||||||
|
"commandProvisioning": "Provisioning",
|
||||||
|
"commandBluePrints": "Blueprints",
|
||||||
|
"commandApiKeys": "API Keys",
|
||||||
|
"commandBillingAndLicenses": "Billing & Licenses",
|
||||||
|
"commandBilling": "Billing",
|
||||||
|
"commandEnterpriseLicenses": "Licenses",
|
||||||
|
"commandSettings": "Settings",
|
||||||
|
"commandLauncher": "Launcher",
|
||||||
|
"commandResourceLauncher": "Resource Launcher",
|
||||||
|
"commandSearchResults": "Search Results",
|
||||||
"alertingTitle": "Benachrichtigung",
|
"alertingTitle": "Benachrichtigung",
|
||||||
"alertingDescription": "Quellen, Auslöser und Aktionen für Benachrichtigungen festlegen",
|
"alertingDescription": "Quellen, Auslöser und Aktionen für Benachrichtigungen festlegen",
|
||||||
"alertingRules": "Benachrichtigungsregeln",
|
"alertingRules": "Benachrichtigungsregeln",
|
||||||
@@ -1915,6 +1990,9 @@
|
|||||||
"billingDomains": "Domänen",
|
"billingDomains": "Domänen",
|
||||||
"billingOrganizations": "Orden",
|
"billingOrganizations": "Orden",
|
||||||
"billingRemoteExitNodes": "Entfernte Knoten",
|
"billingRemoteExitNodes": "Entfernte Knoten",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "Kein Limit konfiguriert",
|
"billingNoLimitConfigured": "Kein Limit konfiguriert",
|
||||||
"billingEstimatedPeriod": "Geschätzter Abrechnungszeitraum",
|
"billingEstimatedPeriod": "Geschätzter Abrechnungszeitraum",
|
||||||
"billingIncludedUsage": "Inklusive Nutzung",
|
"billingIncludedUsage": "Inklusive Nutzung",
|
||||||
@@ -1943,6 +2021,9 @@
|
|||||||
"billingUsersInfo": "Wie viele Benutzer Sie verwenden können",
|
"billingUsersInfo": "Wie viele Benutzer Sie verwenden können",
|
||||||
"billingDomainInfo": "Wie viele Domains Sie verwenden können",
|
"billingDomainInfo": "Wie viele Domains Sie verwenden können",
|
||||||
"billingRemoteExitNodesInfo": "Wie viele entfernte Knoten Sie verwenden können",
|
"billingRemoteExitNodesInfo": "Wie viele entfernte Knoten Sie verwenden können",
|
||||||
|
"billingPublicResourcesInfo": "How many public resources you can use",
|
||||||
|
"billingPrivateResourcesInfo": "How many private resources you can use",
|
||||||
|
"billingMachineClientsInfo": "How many machine clients you can use",
|
||||||
"billingLicenseKeys": "Lizenzschlüssel",
|
"billingLicenseKeys": "Lizenzschlüssel",
|
||||||
"billingLicenseKeysDescription": "Verwalten Sie Ihre Lizenzschlüssel Abonnements",
|
"billingLicenseKeysDescription": "Verwalten Sie Ihre Lizenzschlüssel Abonnements",
|
||||||
"billingLicenseSubscription": "Lizenzabonnement",
|
"billingLicenseSubscription": "Lizenzabonnement",
|
||||||
@@ -2311,6 +2392,12 @@
|
|||||||
"createInternalResourceDialogClose": "Schließen",
|
"createInternalResourceDialogClose": "Schließen",
|
||||||
"createInternalResourceDialogCreateClientResource": "Private Ressource erstellen",
|
"createInternalResourceDialogCreateClientResource": "Private Ressource erstellen",
|
||||||
"createInternalResourceDialogCreateClientResourceDescription": "Erstelle eine neue Ressource, die nur für Clients zugänglich ist, die mit der Organisation verbunden sind",
|
"createInternalResourceDialogCreateClientResourceDescription": "Erstelle eine neue Ressource, die nur für Clients zugänglich ist, die mit der Organisation verbunden sind",
|
||||||
|
"privateResourceCreatePageSeeAll": "See All Private Resources",
|
||||||
|
"privateResourceAllowIcmpPing": "Allow ICMP Ping",
|
||||||
|
"privateResourceNetworkAccess": "Network Access",
|
||||||
|
"privateResourceNetworkAccessDescription": "Control TCP/UDP port access and whether ICMP ping is allowed for this resource.",
|
||||||
|
"hostSettings": "Host Settings",
|
||||||
|
"cidrSettings": "CIDR Settings",
|
||||||
"createInternalResourceDialogResourceProperties": "Ressourceneigenschaften",
|
"createInternalResourceDialogResourceProperties": "Ressourceneigenschaften",
|
||||||
"createInternalResourceDialogName": "Name",
|
"createInternalResourceDialogName": "Name",
|
||||||
"createInternalResourceDialogSite": "Standort",
|
"createInternalResourceDialogSite": "Standort",
|
||||||
@@ -2459,6 +2546,7 @@
|
|||||||
"noRemoteExitNodesAvailableDescription": "Für diese Organisation sind keine Knoten verfügbar. Erstellen Sie zuerst einen Knoten, um lokale Standorte zu verwenden.",
|
"noRemoteExitNodesAvailableDescription": "Für diese Organisation sind keine Knoten verfügbar. Erstellen Sie zuerst einen Knoten, um lokale Standorte zu verwenden.",
|
||||||
"exitNode": "Exit-Node",
|
"exitNode": "Exit-Node",
|
||||||
"country": "Land",
|
"country": "Land",
|
||||||
|
"countryIsNot": "Country Is Not",
|
||||||
"rulesMatchCountry": "Derzeit basierend auf der Quell-IP",
|
"rulesMatchCountry": "Derzeit basierend auf der Quell-IP",
|
||||||
"region": "Region",
|
"region": "Region",
|
||||||
"selectRegion": "Region wählen...",
|
"selectRegion": "Region wählen...",
|
||||||
@@ -3177,7 +3265,7 @@
|
|||||||
"editInternalResourceDialogAddUsers": "Nutzer hinzufügen",
|
"editInternalResourceDialogAddUsers": "Nutzer hinzufügen",
|
||||||
"editInternalResourceDialogAddClients": "Clients hinzufügen",
|
"editInternalResourceDialogAddClients": "Clients hinzufügen",
|
||||||
"editInternalResourceDialogDestinationLabel": "Ziel",
|
"editInternalResourceDialogDestinationLabel": "Ziel",
|
||||||
"editInternalResourceDialogDestinationDescription": "Geben Sie die Zieladresse für die interne Ressource an. Dies kann ein Hostname, eine IP-Adresse oder ein CIDR-Bereich sein, abhängig vom gewählten Modus. Legen Sie optional einen internen DNS-Alias für eine vereinfachte Identifizierung fest.",
|
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it",
|
||||||
"internalResourceFormMultiSiteRoutingHelp": "Durch die Auswahl mehrerer Seiten wird ein ausfallsicheres Routing und Failover für hohe Verfügbarkeit ermöglicht.",
|
"internalResourceFormMultiSiteRoutingHelp": "Durch die Auswahl mehrerer Seiten wird ein ausfallsicheres Routing und Failover für hohe Verfügbarkeit ermöglicht.",
|
||||||
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Mehr erfahren",
|
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Mehr erfahren",
|
||||||
"editInternalResourceDialogPortRestrictionsDescription": "Den Zugriff auf bestimmte TCP/UDP-Ports beschränken oder alle Ports erlauben/blockieren.",
|
"editInternalResourceDialogPortRestrictionsDescription": "Den Zugriff auf bestimmte TCP/UDP-Ports beschränken oder alle Ports erlauben/blockieren.",
|
||||||
@@ -3571,18 +3659,24 @@
|
|||||||
"memberPortalResourceDisabled": "Ressource deaktiviert",
|
"memberPortalResourceDisabled": "Ressource deaktiviert",
|
||||||
"memberPortalShowingResources": "Zeige {start}-{end} von {total} Ressourcen",
|
"memberPortalShowingResources": "Zeige {start}-{end} von {total} Ressourcen",
|
||||||
"resourceLauncherTitle": "Ressourcenstarter",
|
"resourceLauncherTitle": "Ressourcenstarter",
|
||||||
"resourceLauncherDescription": "Sehen Sie sich Ressourcendetails an und starten Sie sie von einem Ort aus",
|
"resourceSidebarLauncherTitle": "Launcher",
|
||||||
"resourceLauncherSearchPlaceholder": "Alle Standorte durchsuchen...",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
|
"resourceLauncherSearchPlaceholder": "Search your resources...",
|
||||||
"resourceLauncherDefaultView": "Standard",
|
"resourceLauncherDefaultView": "Standard",
|
||||||
"resourceLauncherSaveView": "Ansicht speichern",
|
"resourceLauncherSaveView": "Ansicht speichern",
|
||||||
"resourceLauncherSaveToCurrentView": "In aktueller Ansicht speichern",
|
"resourceLauncherSaveToCurrentView": "In aktueller Ansicht speichern",
|
||||||
|
"resourceLauncherSaveDefaultPersonal": "Save for Me",
|
||||||
"resourceLauncherResetView": "Ansicht zurücksetzen",
|
"resourceLauncherResetView": "Ansicht zurücksetzen",
|
||||||
|
"resourceLauncherResetSystemDefault": "Reset to System Default",
|
||||||
|
"resourceLauncherSystemDefaultRestored": "System default restored",
|
||||||
|
"resourceLauncherSystemDefaultRestoredDescription": "The default view has been reset to the original settings.",
|
||||||
"resourceLauncherSaveAsNewView": "Als neue Ansicht speichern",
|
"resourceLauncherSaveAsNewView": "Als neue Ansicht speichern",
|
||||||
"resourceLauncherSaveAsNewViewDescription": "Geben Sie dieser Ansicht einen Namen, um Ihre aktuellen Filter und das Layout zu speichern.",
|
"resourceLauncherSaveAsNewViewDescription": "Geben Sie dieser Ansicht einen Namen, um Ihre aktuellen Filter und das Layout zu speichern.",
|
||||||
"resourceLauncherSaveForEveryone": "Für alle speichern",
|
"resourceLauncherSaveForEveryone": "Für alle speichern",
|
||||||
"resourceLauncherSaveForEveryoneDescription": "Teilen Sie diese Ansicht mit allen Organisationsmitgliedern. Wenn nicht aktiviert, ist die Ansicht nur für Sie sichtbar.",
|
"resourceLauncherSaveForEveryoneDescription": "Teilen Sie diese Ansicht mit allen Organisationsmitgliedern. Wenn nicht aktiviert, ist die Ansicht nur für Sie sichtbar.",
|
||||||
"resourceLauncherMakePersonal": "Persönlich machen",
|
"resourceLauncherMakePersonal": "Persönlich machen",
|
||||||
"resourceLauncherFilter": "Filter",
|
"resourceLauncherFilter": "Filter",
|
||||||
|
"resourceLauncherFilterWithCount": "Filter, {count} applied",
|
||||||
"resourceLauncherSort": "Sortieren",
|
"resourceLauncherSort": "Sortieren",
|
||||||
"resourceLauncherSortAscending": "Aufsteigend sortieren",
|
"resourceLauncherSortAscending": "Aufsteigend sortieren",
|
||||||
"resourceLauncherSortDescending": "Absteigend sortieren",
|
"resourceLauncherSortDescending": "Absteigend sortieren",
|
||||||
@@ -3590,6 +3684,7 @@
|
|||||||
"resourceLauncherGroupBy": "Gruppieren nach",
|
"resourceLauncherGroupBy": "Gruppieren nach",
|
||||||
"resourceLauncherGroupBySite": "Standort",
|
"resourceLauncherGroupBySite": "Standort",
|
||||||
"resourceLauncherGroupByLabel": "Etikett",
|
"resourceLauncherGroupByLabel": "Etikett",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "Layout",
|
"resourceLauncherLayout": "Layout",
|
||||||
"resourceLauncherLayoutGrid": "Raster",
|
"resourceLauncherLayoutGrid": "Raster",
|
||||||
"resourceLauncherLayoutList": "Liste",
|
"resourceLauncherLayoutList": "Liste",
|
||||||
@@ -3597,8 +3692,20 @@
|
|||||||
"resourceLauncherShowSiteTags": "Standort-Tags anzeigen",
|
"resourceLauncherShowSiteTags": "Standort-Tags anzeigen",
|
||||||
"resourceLauncherShowRecents": "Kürzlich anzeigen",
|
"resourceLauncherShowRecents": "Kürzlich anzeigen",
|
||||||
"resourceLauncherDeleteView": "Ansicht löschen",
|
"resourceLauncherDeleteView": "Ansicht löschen",
|
||||||
|
"resourceLauncherDeleteViewTitle": "Delete View",
|
||||||
|
"resourceLauncherDeleteViewQuestion": "Are you sure you want to delete this launcher view?",
|
||||||
|
"resourceLauncherDeleteViewConfirm": "Delete View",
|
||||||
"resourceLauncherViewAsAdmin": "Ansicht als Administrator anzeigen",
|
"resourceLauncherViewAsAdmin": "Ansicht als Administrator anzeigen",
|
||||||
"resourceLauncherResourceDetailsDescription": "Anzeigen von Details zu dieser Ressource.",
|
"resourceLauncherResourceDetailsDescription": "Connection information and status for this resource.",
|
||||||
|
"resourceLauncherResourceDetails": "Resource Details",
|
||||||
|
"resourceLauncherAuthMethodsDescription": "Authentication methods enabled for this resource.",
|
||||||
|
"resourceLauncherPrivateClientRequired": "Connect with a client on your device to access this resource privately.",
|
||||||
|
"resourceLauncherPrivateClientRequiredTitle": "Client Connection Required",
|
||||||
|
"resourceLauncherDownloadClient": "Download client",
|
||||||
|
"resourceLauncherFailedToLoadDetails": "Could not load resource details. You may no longer have access to this resource.",
|
||||||
|
"resourceLauncherNoPortRestrictions": "No port restrictions",
|
||||||
|
"resourceLauncherTcp": "TCP",
|
||||||
|
"resourceLauncherUdp": "UDP",
|
||||||
"resourceLauncherUnlabeled": "Nicht etikettiert",
|
"resourceLauncherUnlabeled": "Nicht etikettiert",
|
||||||
"resourceLauncherNoSite": "Kein Standort",
|
"resourceLauncherNoSite": "Kein Standort",
|
||||||
"resourceLauncherNoResourcesInGroup": "Keine Ressourcen in dieser Gruppe",
|
"resourceLauncherNoResourcesInGroup": "Keine Ressourcen in dieser Gruppe",
|
||||||
@@ -3607,6 +3714,12 @@
|
|||||||
"resourceLauncherEmptyStateNoResultsTitle": "Keine Ressourcen gefunden",
|
"resourceLauncherEmptyStateNoResultsTitle": "Keine Ressourcen gefunden",
|
||||||
"resourceLauncherEmptyStateNoResultsDescription": "Keine Ressourcen entsprechen Ihrer aktuellen Suche oder den Filtern. Versuchen Sie, diese anzupassen, um zu finden, wonach Sie suchen.",
|
"resourceLauncherEmptyStateNoResultsDescription": "Keine Ressourcen entsprechen Ihrer aktuellen Suche oder den Filtern. Versuchen Sie, diese anzupassen, um zu finden, wonach Sie suchen.",
|
||||||
"resourceLauncherEmptyStateNoResultsWithQuery": "Keine Ressourcen entsprechen \"{query}\". Versuchen Sie, Ihre Suche anzupassen oder die Filter zu löschen, um alle Ressourcen anzuzeigen.",
|
"resourceLauncherEmptyStateNoResultsWithQuery": "Keine Ressourcen entsprechen \"{query}\". Versuchen Sie, Ihre Suche anzupassen oder die Filter zu löschen, um alle Ressourcen anzuzeigen.",
|
||||||
|
"resourceLauncherSearchFirstTitle": "Search or Filter to Browse",
|
||||||
|
"resourceLauncherSearchFirstDescription": "You have access to many resources. Use search or filter by site or label to find what you need.",
|
||||||
|
"resourceLauncherSiteGroupingDisabled": "Site grouping is unavailable at this scale. Filter by site to group a smaller set.",
|
||||||
|
"resourceLauncherLabelGroupingDisabled": "Label grouping is unavailable at this scale.",
|
||||||
|
"resourceLauncherCompactModeHint": "Showing a simplified list for faster browsing. Use search or filters to narrow results.",
|
||||||
|
"resourceLauncherCompactGroupingHint": "Apply site or label filters to enable grouping.",
|
||||||
"resourceLauncherCopiedToClipboard": "In die Zwischenablage kopiert",
|
"resourceLauncherCopiedToClipboard": "In die Zwischenablage kopiert",
|
||||||
"resourceLauncherCopiedAccessDescription": "Der Ressourcenzugriff wurde in Ihre Zwischenablage kopiert.",
|
"resourceLauncherCopiedAccessDescription": "Der Ressourcenzugriff wurde in Ihre Zwischenablage kopiert.",
|
||||||
"resourceLauncherViewNamePlaceholder": "Ansichtsname",
|
"resourceLauncherViewNamePlaceholder": "Ansichtsname",
|
||||||
|
|||||||
@@ -1915,9 +1915,6 @@
|
|||||||
"billingDomains": "Domains",
|
"billingDomains": "Domains",
|
||||||
"billingOrganizations": "Orgs",
|
"billingOrganizations": "Orgs",
|
||||||
"billingRemoteExitNodes": "Remote Nodes",
|
"billingRemoteExitNodes": "Remote Nodes",
|
||||||
"billingPublicResources": "Public Resources",
|
|
||||||
"billingPrivateResources": "Private Resources",
|
|
||||||
"billingMachineClients": "Machine Clients",
|
|
||||||
"billingNoLimitConfigured": "No limit configured",
|
"billingNoLimitConfigured": "No limit configured",
|
||||||
"billingEstimatedPeriod": "Estimated Billing Period",
|
"billingEstimatedPeriod": "Estimated Billing Period",
|
||||||
"billingIncludedUsage": "Included Usage",
|
"billingIncludedUsage": "Included Usage",
|
||||||
@@ -1946,9 +1943,6 @@
|
|||||||
"billingUsersInfo": "How many users you can use",
|
"billingUsersInfo": "How many users you can use",
|
||||||
"billingDomainInfo": "How many domains you can use",
|
"billingDomainInfo": "How many domains you can use",
|
||||||
"billingRemoteExitNodesInfo": "How many remote nodes you can use",
|
"billingRemoteExitNodesInfo": "How many remote nodes you can use",
|
||||||
"billingPublicResourcesInfo": "How many public resources you can use",
|
|
||||||
"billingPrivateResourcesInfo": "How many private resources you can use",
|
|
||||||
"billingMachineClientsInfo": "How many machine clients you can use",
|
|
||||||
"billingLicenseKeys": "License Keys",
|
"billingLicenseKeys": "License Keys",
|
||||||
"billingLicenseKeysDescription": "Manage your license key subscriptions",
|
"billingLicenseKeysDescription": "Manage your license key subscriptions",
|
||||||
"billingLicenseSubscription": "License Subscription",
|
"billingLicenseSubscription": "License Subscription",
|
||||||
|
|||||||
+120
-7
@@ -266,6 +266,8 @@
|
|||||||
"resourceRawDescriptionCloud": "Las peticiones de proxy sobre TCP/UDP crudas usando un número de puerto. Requiere que los sitios se conecten a un nodo remoto.",
|
"resourceRawDescriptionCloud": "Las peticiones de proxy sobre TCP/UDP crudas usando un número de puerto. Requiere que los sitios se conecten a un nodo remoto.",
|
||||||
"resourceCreate": "Crear Recurso",
|
"resourceCreate": "Crear Recurso",
|
||||||
"resourceCreateDescription": "Siga los siguientes pasos para crear un nuevo recurso",
|
"resourceCreateDescription": "Siga los siguientes pasos para crear un nuevo recurso",
|
||||||
|
"resourcePublicCreate": "Create Public Resource",
|
||||||
|
"resourcePublicCreateDescription": "Follow the steps below to create a new public resource that is accessible through a web browser",
|
||||||
"resourceCreateGeneralDescription": "Configurar la configuración básica del recurso, incluido el nombre y el tipo",
|
"resourceCreateGeneralDescription": "Configurar la configuración básica del recurso, incluido el nombre y el tipo",
|
||||||
"resourceSeeAll": "Ver todos los recursos",
|
"resourceSeeAll": "Ver todos los recursos",
|
||||||
"resourceCreateGeneral": "General",
|
"resourceCreateGeneral": "General",
|
||||||
@@ -613,7 +615,8 @@
|
|||||||
"idpNameInternal": "Interno",
|
"idpNameInternal": "Interno",
|
||||||
"emailInvalid": "Dirección de correo inválida",
|
"emailInvalid": "Dirección de correo inválida",
|
||||||
"inviteValidityDuration": "Por favor, seleccione una duración",
|
"inviteValidityDuration": "Por favor, seleccione una duración",
|
||||||
"accessRoleSelectPlease": "Por favor, seleccione un rol",
|
"accessRoleSelectPlease": "A user must belong to at least one role.",
|
||||||
|
"accessRoleRequired": "Role required",
|
||||||
"removeOwnAdminRoleConfirmTitle": "¿Eliminar su acceso de administrador?",
|
"removeOwnAdminRoleConfirmTitle": "¿Eliminar su acceso de administrador?",
|
||||||
"removeOwnAdminRoleConfirmDescription": "Ya no tendrá permisos de administrador en esta organización después de guardar. Otro administrador puede restaurar el acceso si es necesario.",
|
"removeOwnAdminRoleConfirmDescription": "Ya no tendrá permisos de administrador en esta organización después de guardar. Otro administrador puede restaurar el acceso si es necesario.",
|
||||||
"removeOwnAdminRoleConfirmButton": "Eliminar Mi Acceso de Administrador",
|
"removeOwnAdminRoleConfirmButton": "Eliminar Mi Acceso de Administrador",
|
||||||
@@ -864,8 +867,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "Autenticación Básica del Encabezado",
|
"policyAuthHeaderAuthTitle": "Autenticación Básica del Encabezado",
|
||||||
"policyAuthHeaderAuthDescription": "Valida un nombre y valor de encabezado HTTP personalizado en cada petición",
|
"policyAuthHeaderAuthDescription": "Valida un nombre y valor de encabezado HTTP personalizado en cada petición",
|
||||||
"policyAuthHeaderAuthSummary": "Encabezado configurado",
|
"policyAuthHeaderAuthSummary": "Encabezado configurado",
|
||||||
"policyAuthHeaderName": "Nombre del encabezado",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "Valor esperado",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "Establecer Código de Acceso",
|
"policyAuthSetPasscode": "Establecer Código de Acceso",
|
||||||
"policyAuthSetPincode": "Establecer Código PIN",
|
"policyAuthSetPincode": "Establecer Código PIN",
|
||||||
"policyAuthSetEmailWhitelist": "Establecer Lista Blanca de Correo",
|
"policyAuthSetEmailWhitelist": "Establecer Lista Blanca de Correo",
|
||||||
@@ -1431,6 +1434,15 @@
|
|||||||
"actionSetResourcePincode": "Establecer Pincode del recurso",
|
"actionSetResourcePincode": "Establecer Pincode del recurso",
|
||||||
"actionSetResourceEmailWhitelist": "Establecer lista blanca de correo de recursos",
|
"actionSetResourceEmailWhitelist": "Establecer lista blanca de correo de recursos",
|
||||||
"actionGetResourceEmailWhitelist": "Obtener correo electrónico de recursos",
|
"actionGetResourceEmailWhitelist": "Obtener correo electrónico de recursos",
|
||||||
|
"actionGetResourcePolicy": "Get Resource Policy",
|
||||||
|
"actionUpdateResourcePolicy": "Update Resource Policy",
|
||||||
|
"actionSetResourcePolicyUsers": "Set Resource Policy Users",
|
||||||
|
"actionSetResourcePolicyRoles": "Set Resource Policy Roles",
|
||||||
|
"actionSetResourcePolicyPassword": "Set Resource Policy Password",
|
||||||
|
"actionSetResourcePolicyPincode": "Set Resource Policy Pincode",
|
||||||
|
"actionSetResourcePolicyHeaderAuth": "Set Resource Policy Header Authentication",
|
||||||
|
"actionSetResourcePolicyWhitelist": "Set Resource Policy Email Whitelist",
|
||||||
|
"actionSetResourcePolicyRules": "Set Resource Policy Rules",
|
||||||
"actionCreateTarget": "Crear destino",
|
"actionCreateTarget": "Crear destino",
|
||||||
"actionDeleteTarget": "Eliminar destino",
|
"actionDeleteTarget": "Eliminar destino",
|
||||||
"actionGetTarget": "Obtener objetivo",
|
"actionGetTarget": "Obtener objetivo",
|
||||||
@@ -1507,6 +1519,30 @@
|
|||||||
"navbar": "Menú de navegación",
|
"navbar": "Menú de navegación",
|
||||||
"navbarDescription": "Menú de navegación principal para la aplicación",
|
"navbarDescription": "Menú de navegación principal para la aplicación",
|
||||||
"navbarDocsLink": "Documentación",
|
"navbarDocsLink": "Documentación",
|
||||||
|
"commandPaletteTitle": "Command Palette",
|
||||||
|
"commandPaletteDescription": "Search for pages, organizations, resources, and actions",
|
||||||
|
"commandPaletteSearchPlaceholder": "Search pages, resources, actions...",
|
||||||
|
"commandPaletteNoResults": "No results found.",
|
||||||
|
"commandPaletteSearching": "Searching...",
|
||||||
|
"commandPaletteNavigation": "Navigation",
|
||||||
|
"commandPaletteOrganizations": "Organizations",
|
||||||
|
"commandPaletteSites": "Sites",
|
||||||
|
"commandPaletteResources": "Resources",
|
||||||
|
"commandPaletteUsers": "Users",
|
||||||
|
"commandPaletteClients": "Machine Clients",
|
||||||
|
"commandPaletteActions": "Actions",
|
||||||
|
"commandPaletteCreateSite": "Create Site",
|
||||||
|
"commandPaletteCreateProxyResource": "Create Public Resource",
|
||||||
|
"commandPaletteCreatePrivateResource": "Create Private Resource",
|
||||||
|
"commandPaletteCreateUser": "Create User",
|
||||||
|
"commandPaletteCreateApiKey": "Create API Key",
|
||||||
|
"commandPaletteCreateMachineClient": "Create Machine Client",
|
||||||
|
"commandPaletteCreateAlertRule": "Create Alert Rule",
|
||||||
|
"commandPaletteCreateIdentityProvider": "Create Identity Provider",
|
||||||
|
"commandPaletteToggleTheme": "Toggle Theme",
|
||||||
|
"commandPaletteChooseOrganization": "Choose Organization",
|
||||||
|
"commandPaletteShortcutMac": "⌘K",
|
||||||
|
"commandPaletteShortcutWindows": "Ctrl K",
|
||||||
"otpErrorEnable": "No se puede habilitar 2FA",
|
"otpErrorEnable": "No se puede habilitar 2FA",
|
||||||
"otpErrorEnableDescription": "Se ha producido un error al habilitar 2FA",
|
"otpErrorEnableDescription": "Se ha producido un error al habilitar 2FA",
|
||||||
"otpSetupCheckCode": "Por favor, introduzca un código de 6 dígitos",
|
"otpSetupCheckCode": "Por favor, introduzca un código de 6 dígitos",
|
||||||
@@ -1584,6 +1620,45 @@
|
|||||||
"sidebarManagement": "Gestión",
|
"sidebarManagement": "Gestión",
|
||||||
"sidebarBillingAndLicenses": "Facturación y licencias",
|
"sidebarBillingAndLicenses": "Facturación y licencias",
|
||||||
"sidebarLogsAnalytics": "Analíticas",
|
"sidebarLogsAnalytics": "Analíticas",
|
||||||
|
"commandSites": "Sites",
|
||||||
|
"commandActionModeInfo": "Type \">\" To Open Action Mode",
|
||||||
|
"commandResources": "Resources",
|
||||||
|
"commandProxyResources": "Public Resources",
|
||||||
|
"commandClientResources": "Private Resources",
|
||||||
|
"commandClients": "Clients",
|
||||||
|
"commandUserDevices": "User Devices",
|
||||||
|
"commandMachineClients": "Machine Clients",
|
||||||
|
"commandDomains": "Domains",
|
||||||
|
"commandRemoteExitNodes": "Remote Nodes",
|
||||||
|
"commandTeam": "Team",
|
||||||
|
"commandUsers": "Users",
|
||||||
|
"commandRoles": "Roles",
|
||||||
|
"commandInvitations": "Invitations",
|
||||||
|
"commandPolicies": "Shared Policies",
|
||||||
|
"commandResourcePolicies": "Public Resources Policies",
|
||||||
|
"commandIdentityProviders": "Identity Providers",
|
||||||
|
"commandApprovals": "Approval Requests",
|
||||||
|
"commandShareableLinks": "Shareable Links",
|
||||||
|
"commandOrganization": "Organization",
|
||||||
|
"commandLogsAndAnalytics": "Logs & Analytics",
|
||||||
|
"commandLogsAnalytics": "Analytics",
|
||||||
|
"commandLogsRequest": "HTTP Request Logs",
|
||||||
|
"commandLogsAccess": "Authentication Logs",
|
||||||
|
"commandLogsAction": "Admin Action Logs",
|
||||||
|
"commandLogsConnection": "Network Logs",
|
||||||
|
"commandLogsStreaming": "Event Streaming",
|
||||||
|
"commandManagement": "Management",
|
||||||
|
"commandAlerting": "Alerting",
|
||||||
|
"commandProvisioning": "Provisioning",
|
||||||
|
"commandBluePrints": "Blueprints",
|
||||||
|
"commandApiKeys": "API Keys",
|
||||||
|
"commandBillingAndLicenses": "Billing & Licenses",
|
||||||
|
"commandBilling": "Billing",
|
||||||
|
"commandEnterpriseLicenses": "Licenses",
|
||||||
|
"commandSettings": "Settings",
|
||||||
|
"commandLauncher": "Launcher",
|
||||||
|
"commandResourceLauncher": "Resource Launcher",
|
||||||
|
"commandSearchResults": "Search Results",
|
||||||
"alertingTitle": "Alertas",
|
"alertingTitle": "Alertas",
|
||||||
"alertingDescription": "Definir fuentes, disparadores y acciones para notificaciones",
|
"alertingDescription": "Definir fuentes, disparadores y acciones para notificaciones",
|
||||||
"alertingRules": "Reglas de alerta",
|
"alertingRules": "Reglas de alerta",
|
||||||
@@ -1915,6 +1990,9 @@
|
|||||||
"billingDomains": "Dominios",
|
"billingDomains": "Dominios",
|
||||||
"billingOrganizations": "Orgánico",
|
"billingOrganizations": "Orgánico",
|
||||||
"billingRemoteExitNodes": "Nodos remotos",
|
"billingRemoteExitNodes": "Nodos remotos",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "No se ha configurado ningún límite",
|
"billingNoLimitConfigured": "No se ha configurado ningún límite",
|
||||||
"billingEstimatedPeriod": "Período de facturación estimado",
|
"billingEstimatedPeriod": "Período de facturación estimado",
|
||||||
"billingIncludedUsage": "Uso incluido",
|
"billingIncludedUsage": "Uso incluido",
|
||||||
@@ -1943,6 +2021,9 @@
|
|||||||
"billingUsersInfo": "Cuántos usuarios puedes usar",
|
"billingUsersInfo": "Cuántos usuarios puedes usar",
|
||||||
"billingDomainInfo": "Cuántos dominios puedes usar",
|
"billingDomainInfo": "Cuántos dominios puedes usar",
|
||||||
"billingRemoteExitNodesInfo": "Cuántos nodos remotos puedes usar",
|
"billingRemoteExitNodesInfo": "Cuántos nodos remotos puedes usar",
|
||||||
|
"billingPublicResourcesInfo": "How many public resources you can use",
|
||||||
|
"billingPrivateResourcesInfo": "How many private resources you can use",
|
||||||
|
"billingMachineClientsInfo": "How many machine clients you can use",
|
||||||
"billingLicenseKeys": "Claves de licencia",
|
"billingLicenseKeys": "Claves de licencia",
|
||||||
"billingLicenseKeysDescription": "Administrar las suscripciones de su clave de licencia",
|
"billingLicenseKeysDescription": "Administrar las suscripciones de su clave de licencia",
|
||||||
"billingLicenseSubscription": "Suscripción de licencia",
|
"billingLicenseSubscription": "Suscripción de licencia",
|
||||||
@@ -2311,6 +2392,12 @@
|
|||||||
"createInternalResourceDialogClose": "Cerrar",
|
"createInternalResourceDialogClose": "Cerrar",
|
||||||
"createInternalResourceDialogCreateClientResource": "Crear recurso privado",
|
"createInternalResourceDialogCreateClientResource": "Crear recurso privado",
|
||||||
"createInternalResourceDialogCreateClientResourceDescription": "Crear un nuevo recurso que sólo será accesible a los clientes conectados a la organización",
|
"createInternalResourceDialogCreateClientResourceDescription": "Crear un nuevo recurso que sólo será accesible a los clientes conectados a la organización",
|
||||||
|
"privateResourceCreatePageSeeAll": "See All Private Resources",
|
||||||
|
"privateResourceAllowIcmpPing": "Allow ICMP Ping",
|
||||||
|
"privateResourceNetworkAccess": "Network Access",
|
||||||
|
"privateResourceNetworkAccessDescription": "Control TCP/UDP port access and whether ICMP ping is allowed for this resource.",
|
||||||
|
"hostSettings": "Host Settings",
|
||||||
|
"cidrSettings": "CIDR Settings",
|
||||||
"createInternalResourceDialogResourceProperties": "Propiedades del recurso",
|
"createInternalResourceDialogResourceProperties": "Propiedades del recurso",
|
||||||
"createInternalResourceDialogName": "Nombre",
|
"createInternalResourceDialogName": "Nombre",
|
||||||
"createInternalResourceDialogSite": "Sitio",
|
"createInternalResourceDialogSite": "Sitio",
|
||||||
@@ -2459,6 +2546,7 @@
|
|||||||
"noRemoteExitNodesAvailableDescription": "No hay nodos disponibles para esta organización. Crea un nodo primero para usar sitios locales.",
|
"noRemoteExitNodesAvailableDescription": "No hay nodos disponibles para esta organización. Crea un nodo primero para usar sitios locales.",
|
||||||
"exitNode": "Nodo de Salida",
|
"exitNode": "Nodo de Salida",
|
||||||
"country": "País",
|
"country": "País",
|
||||||
|
"countryIsNot": "Country Is Not",
|
||||||
"rulesMatchCountry": "Actualmente basado en IP de origen",
|
"rulesMatchCountry": "Actualmente basado en IP de origen",
|
||||||
"region": "Región",
|
"region": "Región",
|
||||||
"selectRegion": "Seleccionar región",
|
"selectRegion": "Seleccionar región",
|
||||||
@@ -3177,7 +3265,7 @@
|
|||||||
"editInternalResourceDialogAddUsers": "Agregar usuarios",
|
"editInternalResourceDialogAddUsers": "Agregar usuarios",
|
||||||
"editInternalResourceDialogAddClients": "Agregar clientes",
|
"editInternalResourceDialogAddClients": "Agregar clientes",
|
||||||
"editInternalResourceDialogDestinationLabel": "Destino",
|
"editInternalResourceDialogDestinationLabel": "Destino",
|
||||||
"editInternalResourceDialogDestinationDescription": "Especifique la dirección de destino para el recurso interno. Puede ser un nombre de host, dirección IP o rango CIDR dependiendo del modo seleccionado. Opcionalmente establezca un alias DNS interno para una identificación más fácil.",
|
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it",
|
||||||
"internalResourceFormMultiSiteRoutingHelp": "Seleccionar múltiples sitios habilita el enrutamiento resistente y la conmutación por error para alta disponibilidad.",
|
"internalResourceFormMultiSiteRoutingHelp": "Seleccionar múltiples sitios habilita el enrutamiento resistente y la conmutación por error para alta disponibilidad.",
|
||||||
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Más información",
|
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Más información",
|
||||||
"editInternalResourceDialogPortRestrictionsDescription": "Restringir el acceso a puertos TCP/UDP específicos o permitir/bloquear todos los puertos.",
|
"editInternalResourceDialogPortRestrictionsDescription": "Restringir el acceso a puertos TCP/UDP específicos o permitir/bloquear todos los puertos.",
|
||||||
@@ -3571,18 +3659,24 @@
|
|||||||
"memberPortalResourceDisabled": "Recurso Deshabilitado",
|
"memberPortalResourceDisabled": "Recurso Deshabilitado",
|
||||||
"memberPortalShowingResources": "Mostrando {start}-{end} de {total} recursos",
|
"memberPortalShowingResources": "Mostrando {start}-{end} de {total} recursos",
|
||||||
"resourceLauncherTitle": "Lanzador de Recursos",
|
"resourceLauncherTitle": "Lanzador de Recursos",
|
||||||
"resourceLauncherDescription": "Ve los detalles de los recursos y lánzalos desde un solo lugar",
|
"resourceSidebarLauncherTitle": "Launcher",
|
||||||
"resourceLauncherSearchPlaceholder": "Buscar en todos los sitios...",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
|
"resourceLauncherSearchPlaceholder": "Search your resources...",
|
||||||
"resourceLauncherDefaultView": "Predeterminado",
|
"resourceLauncherDefaultView": "Predeterminado",
|
||||||
"resourceLauncherSaveView": "Guardar Vista",
|
"resourceLauncherSaveView": "Guardar Vista",
|
||||||
"resourceLauncherSaveToCurrentView": "Guardar en la Vista Actual",
|
"resourceLauncherSaveToCurrentView": "Guardar en la Vista Actual",
|
||||||
|
"resourceLauncherSaveDefaultPersonal": "Save for Me",
|
||||||
"resourceLauncherResetView": "Restablecer Vista",
|
"resourceLauncherResetView": "Restablecer Vista",
|
||||||
|
"resourceLauncherResetSystemDefault": "Reset to System Default",
|
||||||
|
"resourceLauncherSystemDefaultRestored": "System default restored",
|
||||||
|
"resourceLauncherSystemDefaultRestoredDescription": "The default view has been reset to the original settings.",
|
||||||
"resourceLauncherSaveAsNewView": "Guardar como Nueva Vista",
|
"resourceLauncherSaveAsNewView": "Guardar como Nueva Vista",
|
||||||
"resourceLauncherSaveAsNewViewDescription": "Ponle un nombre a esta vista para guardar tus filtros y diseño actuales.",
|
"resourceLauncherSaveAsNewViewDescription": "Ponle un nombre a esta vista para guardar tus filtros y diseño actuales.",
|
||||||
"resourceLauncherSaveForEveryone": "Guardar para Todos",
|
"resourceLauncherSaveForEveryone": "Guardar para Todos",
|
||||||
"resourceLauncherSaveForEveryoneDescription": "Comparte esta vista con todos los miembros de la organización. Si está desmarcado, la vista solo es visible para ti.",
|
"resourceLauncherSaveForEveryoneDescription": "Comparte esta vista con todos los miembros de la organización. Si está desmarcado, la vista solo es visible para ti.",
|
||||||
"resourceLauncherMakePersonal": "Hacer Personal",
|
"resourceLauncherMakePersonal": "Hacer Personal",
|
||||||
"resourceLauncherFilter": "Filtro",
|
"resourceLauncherFilter": "Filtro",
|
||||||
|
"resourceLauncherFilterWithCount": "Filter, {count} applied",
|
||||||
"resourceLauncherSort": "Ordenar",
|
"resourceLauncherSort": "Ordenar",
|
||||||
"resourceLauncherSortAscending": "Ordenar Ascendente",
|
"resourceLauncherSortAscending": "Ordenar Ascendente",
|
||||||
"resourceLauncherSortDescending": "Ordenar Descendente",
|
"resourceLauncherSortDescending": "Ordenar Descendente",
|
||||||
@@ -3590,6 +3684,7 @@
|
|||||||
"resourceLauncherGroupBy": "Agrupar Por",
|
"resourceLauncherGroupBy": "Agrupar Por",
|
||||||
"resourceLauncherGroupBySite": "Sitio",
|
"resourceLauncherGroupBySite": "Sitio",
|
||||||
"resourceLauncherGroupByLabel": "Etiqueta",
|
"resourceLauncherGroupByLabel": "Etiqueta",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "Disposición",
|
"resourceLauncherLayout": "Disposición",
|
||||||
"resourceLauncherLayoutGrid": "Cuadrícula",
|
"resourceLauncherLayoutGrid": "Cuadrícula",
|
||||||
"resourceLauncherLayoutList": "Lista",
|
"resourceLauncherLayoutList": "Lista",
|
||||||
@@ -3597,8 +3692,20 @@
|
|||||||
"resourceLauncherShowSiteTags": "Mostrar Etiquetas del Sitio",
|
"resourceLauncherShowSiteTags": "Mostrar Etiquetas del Sitio",
|
||||||
"resourceLauncherShowRecents": "Mostrar Recientes",
|
"resourceLauncherShowRecents": "Mostrar Recientes",
|
||||||
"resourceLauncherDeleteView": "Eliminar Vista",
|
"resourceLauncherDeleteView": "Eliminar Vista",
|
||||||
|
"resourceLauncherDeleteViewTitle": "Delete View",
|
||||||
|
"resourceLauncherDeleteViewQuestion": "Are you sure you want to delete this launcher view?",
|
||||||
|
"resourceLauncherDeleteViewConfirm": "Delete View",
|
||||||
"resourceLauncherViewAsAdmin": "Ver como Administrador",
|
"resourceLauncherViewAsAdmin": "Ver como Administrador",
|
||||||
"resourceLauncherResourceDetailsDescription": "Ver detalles de este recurso.",
|
"resourceLauncherResourceDetailsDescription": "Connection information and status for this resource.",
|
||||||
|
"resourceLauncherResourceDetails": "Resource Details",
|
||||||
|
"resourceLauncherAuthMethodsDescription": "Authentication methods enabled for this resource.",
|
||||||
|
"resourceLauncherPrivateClientRequired": "Connect with a client on your device to access this resource privately.",
|
||||||
|
"resourceLauncherPrivateClientRequiredTitle": "Client Connection Required",
|
||||||
|
"resourceLauncherDownloadClient": "Download client",
|
||||||
|
"resourceLauncherFailedToLoadDetails": "Could not load resource details. You may no longer have access to this resource.",
|
||||||
|
"resourceLauncherNoPortRestrictions": "No port restrictions",
|
||||||
|
"resourceLauncherTcp": "TCP",
|
||||||
|
"resourceLauncherUdp": "UDP",
|
||||||
"resourceLauncherUnlabeled": "Sin Etiqueta",
|
"resourceLauncherUnlabeled": "Sin Etiqueta",
|
||||||
"resourceLauncherNoSite": "Sin Sitio",
|
"resourceLauncherNoSite": "Sin Sitio",
|
||||||
"resourceLauncherNoResourcesInGroup": "No hay recursos en este grupo",
|
"resourceLauncherNoResourcesInGroup": "No hay recursos en este grupo",
|
||||||
@@ -3607,6 +3714,12 @@
|
|||||||
"resourceLauncherEmptyStateNoResultsTitle": "No se Encontraron Recursos",
|
"resourceLauncherEmptyStateNoResultsTitle": "No se Encontraron Recursos",
|
||||||
"resourceLauncherEmptyStateNoResultsDescription": "No hay recursos que coincidan con tu búsqueda o filtros actuales. Intenta ajustarlos para encontrar lo que buscas.",
|
"resourceLauncherEmptyStateNoResultsDescription": "No hay recursos que coincidan con tu búsqueda o filtros actuales. Intenta ajustarlos para encontrar lo que buscas.",
|
||||||
"resourceLauncherEmptyStateNoResultsWithQuery": "No hay recursos que coincidan con \"{query}\". Intenta ajustar tu búsqueda o borrar filtros para ver todos los recursos.",
|
"resourceLauncherEmptyStateNoResultsWithQuery": "No hay recursos que coincidan con \"{query}\". Intenta ajustar tu búsqueda o borrar filtros para ver todos los recursos.",
|
||||||
|
"resourceLauncherSearchFirstTitle": "Search or Filter to Browse",
|
||||||
|
"resourceLauncherSearchFirstDescription": "You have access to many resources. Use search or filter by site or label to find what you need.",
|
||||||
|
"resourceLauncherSiteGroupingDisabled": "Site grouping is unavailable at this scale. Filter by site to group a smaller set.",
|
||||||
|
"resourceLauncherLabelGroupingDisabled": "Label grouping is unavailable at this scale.",
|
||||||
|
"resourceLauncherCompactModeHint": "Showing a simplified list for faster browsing. Use search or filters to narrow results.",
|
||||||
|
"resourceLauncherCompactGroupingHint": "Apply site or label filters to enable grouping.",
|
||||||
"resourceLauncherCopiedToClipboard": "Copiado al portapapeles",
|
"resourceLauncherCopiedToClipboard": "Copiado al portapapeles",
|
||||||
"resourceLauncherCopiedAccessDescription": "El acceso al recurso ha sido copiado a tu portapapeles.",
|
"resourceLauncherCopiedAccessDescription": "El acceso al recurso ha sido copiado a tu portapapeles.",
|
||||||
"resourceLauncherViewNamePlaceholder": "Nombre de la Vista",
|
"resourceLauncherViewNamePlaceholder": "Nombre de la Vista",
|
||||||
|
|||||||
+120
-7
@@ -266,6 +266,8 @@
|
|||||||
"resourceRawDescriptionCloud": "Requêtes de proxy sur TCP/UDP brute en utilisant un numéro de port. Nécessite des sites pour se connecter à un noeud distant.",
|
"resourceRawDescriptionCloud": "Requêtes de proxy sur TCP/UDP brute en utilisant un numéro de port. Nécessite des sites pour se connecter à un noeud distant.",
|
||||||
"resourceCreate": "Créer une ressource",
|
"resourceCreate": "Créer une ressource",
|
||||||
"resourceCreateDescription": "Suivez les étapes ci-dessous pour créer une nouvelle ressource",
|
"resourceCreateDescription": "Suivez les étapes ci-dessous pour créer une nouvelle ressource",
|
||||||
|
"resourcePublicCreate": "Create Public Resource",
|
||||||
|
"resourcePublicCreateDescription": "Follow the steps below to create a new public resource that is accessible through a web browser",
|
||||||
"resourceCreateGeneralDescription": "Configurer les paramètres de ressource de base, y compris le nom et le type",
|
"resourceCreateGeneralDescription": "Configurer les paramètres de ressource de base, y compris le nom et le type",
|
||||||
"resourceSeeAll": "Voir toutes les ressources",
|
"resourceSeeAll": "Voir toutes les ressources",
|
||||||
"resourceCreateGeneral": "Général",
|
"resourceCreateGeneral": "Général",
|
||||||
@@ -613,7 +615,8 @@
|
|||||||
"idpNameInternal": "Interne",
|
"idpNameInternal": "Interne",
|
||||||
"emailInvalid": "Adresse e-mail invalide",
|
"emailInvalid": "Adresse e-mail invalide",
|
||||||
"inviteValidityDuration": "Veuillez sélectionner une durée",
|
"inviteValidityDuration": "Veuillez sélectionner une durée",
|
||||||
"accessRoleSelectPlease": "Veuillez sélectionner un rôle",
|
"accessRoleSelectPlease": "A user must belong to at least one role.",
|
||||||
|
"accessRoleRequired": "Role required",
|
||||||
"removeOwnAdminRoleConfirmTitle": "Retirer votre accès administrateur ?",
|
"removeOwnAdminRoleConfirmTitle": "Retirer votre accès administrateur ?",
|
||||||
"removeOwnAdminRoleConfirmDescription": "Vous n'aurez plus de droits d'administrateur dans cette organisation après avoir enregistré. Un autre administrateur pourra restaurer cet accès si nécessaire.",
|
"removeOwnAdminRoleConfirmDescription": "Vous n'aurez plus de droits d'administrateur dans cette organisation après avoir enregistré. Un autre administrateur pourra restaurer cet accès si nécessaire.",
|
||||||
"removeOwnAdminRoleConfirmButton": "Retirer mon accès administrateur",
|
"removeOwnAdminRoleConfirmButton": "Retirer mon accès administrateur",
|
||||||
@@ -864,8 +867,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "Authentification de l'en-tête de base",
|
"policyAuthHeaderAuthTitle": "Authentification de l'en-tête de base",
|
||||||
"policyAuthHeaderAuthDescription": "Validez un nom et une valeur d'en-tête HTTP personnalisé à chaque requête",
|
"policyAuthHeaderAuthDescription": "Validez un nom et une valeur d'en-tête HTTP personnalisé à chaque requête",
|
||||||
"policyAuthHeaderAuthSummary": "En-tête configuré",
|
"policyAuthHeaderAuthSummary": "En-tête configuré",
|
||||||
"policyAuthHeaderName": "Nom de l'en-tête",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "Valeur attendue",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "Définir le code confidentiel",
|
"policyAuthSetPasscode": "Définir le code confidentiel",
|
||||||
"policyAuthSetPincode": "Définir le code PIN",
|
"policyAuthSetPincode": "Définir le code PIN",
|
||||||
"policyAuthSetEmailWhitelist": "Définir la liste blanche des e-mails",
|
"policyAuthSetEmailWhitelist": "Définir la liste blanche des e-mails",
|
||||||
@@ -1431,6 +1434,15 @@
|
|||||||
"actionSetResourcePincode": "Définir le code PIN de la ressource",
|
"actionSetResourcePincode": "Définir le code PIN de la ressource",
|
||||||
"actionSetResourceEmailWhitelist": "Définir la liste blanche des emails de la ressource",
|
"actionSetResourceEmailWhitelist": "Définir la liste blanche des emails de la ressource",
|
||||||
"actionGetResourceEmailWhitelist": "Obtenir la liste blanche des emails de la ressource",
|
"actionGetResourceEmailWhitelist": "Obtenir la liste blanche des emails de la ressource",
|
||||||
|
"actionGetResourcePolicy": "Get Resource Policy",
|
||||||
|
"actionUpdateResourcePolicy": "Update Resource Policy",
|
||||||
|
"actionSetResourcePolicyUsers": "Set Resource Policy Users",
|
||||||
|
"actionSetResourcePolicyRoles": "Set Resource Policy Roles",
|
||||||
|
"actionSetResourcePolicyPassword": "Set Resource Policy Password",
|
||||||
|
"actionSetResourcePolicyPincode": "Set Resource Policy Pincode",
|
||||||
|
"actionSetResourcePolicyHeaderAuth": "Set Resource Policy Header Authentication",
|
||||||
|
"actionSetResourcePolicyWhitelist": "Set Resource Policy Email Whitelist",
|
||||||
|
"actionSetResourcePolicyRules": "Set Resource Policy Rules",
|
||||||
"actionCreateTarget": "Créer une cible",
|
"actionCreateTarget": "Créer une cible",
|
||||||
"actionDeleteTarget": "Supprimer une cible",
|
"actionDeleteTarget": "Supprimer une cible",
|
||||||
"actionGetTarget": "Obtenir une cible",
|
"actionGetTarget": "Obtenir une cible",
|
||||||
@@ -1507,6 +1519,30 @@
|
|||||||
"navbar": "Menu de navigation",
|
"navbar": "Menu de navigation",
|
||||||
"navbarDescription": "Menu de navigation principal de l'application",
|
"navbarDescription": "Menu de navigation principal de l'application",
|
||||||
"navbarDocsLink": "Documentation",
|
"navbarDocsLink": "Documentation",
|
||||||
|
"commandPaletteTitle": "Command Palette",
|
||||||
|
"commandPaletteDescription": "Search for pages, organizations, resources, and actions",
|
||||||
|
"commandPaletteSearchPlaceholder": "Search pages, resources, actions...",
|
||||||
|
"commandPaletteNoResults": "No results found.",
|
||||||
|
"commandPaletteSearching": "Searching...",
|
||||||
|
"commandPaletteNavigation": "Navigation",
|
||||||
|
"commandPaletteOrganizations": "Organizations",
|
||||||
|
"commandPaletteSites": "Sites",
|
||||||
|
"commandPaletteResources": "Resources",
|
||||||
|
"commandPaletteUsers": "Users",
|
||||||
|
"commandPaletteClients": "Machine Clients",
|
||||||
|
"commandPaletteActions": "Actions",
|
||||||
|
"commandPaletteCreateSite": "Create Site",
|
||||||
|
"commandPaletteCreateProxyResource": "Create Public Resource",
|
||||||
|
"commandPaletteCreatePrivateResource": "Create Private Resource",
|
||||||
|
"commandPaletteCreateUser": "Create User",
|
||||||
|
"commandPaletteCreateApiKey": "Create API Key",
|
||||||
|
"commandPaletteCreateMachineClient": "Create Machine Client",
|
||||||
|
"commandPaletteCreateAlertRule": "Create Alert Rule",
|
||||||
|
"commandPaletteCreateIdentityProvider": "Create Identity Provider",
|
||||||
|
"commandPaletteToggleTheme": "Toggle Theme",
|
||||||
|
"commandPaletteChooseOrganization": "Choose Organization",
|
||||||
|
"commandPaletteShortcutMac": "⌘K",
|
||||||
|
"commandPaletteShortcutWindows": "Ctrl K",
|
||||||
"otpErrorEnable": "Impossible d'activer l'A2F",
|
"otpErrorEnable": "Impossible d'activer l'A2F",
|
||||||
"otpErrorEnableDescription": "Une erreur s'est produite lors de l'activation de l'A2F",
|
"otpErrorEnableDescription": "Une erreur s'est produite lors de l'activation de l'A2F",
|
||||||
"otpSetupCheckCode": "Veuillez entrer un code à 6 chiffres",
|
"otpSetupCheckCode": "Veuillez entrer un code à 6 chiffres",
|
||||||
@@ -1584,6 +1620,45 @@
|
|||||||
"sidebarManagement": "Gestion",
|
"sidebarManagement": "Gestion",
|
||||||
"sidebarBillingAndLicenses": "Facturation & Licences",
|
"sidebarBillingAndLicenses": "Facturation & Licences",
|
||||||
"sidebarLogsAnalytics": "Analyses",
|
"sidebarLogsAnalytics": "Analyses",
|
||||||
|
"commandSites": "Sites",
|
||||||
|
"commandActionModeInfo": "Type \">\" To Open Action Mode",
|
||||||
|
"commandResources": "Resources",
|
||||||
|
"commandProxyResources": "Public Resources",
|
||||||
|
"commandClientResources": "Private Resources",
|
||||||
|
"commandClients": "Clients",
|
||||||
|
"commandUserDevices": "User Devices",
|
||||||
|
"commandMachineClients": "Machine Clients",
|
||||||
|
"commandDomains": "Domains",
|
||||||
|
"commandRemoteExitNodes": "Remote Nodes",
|
||||||
|
"commandTeam": "Team",
|
||||||
|
"commandUsers": "Users",
|
||||||
|
"commandRoles": "Roles",
|
||||||
|
"commandInvitations": "Invitations",
|
||||||
|
"commandPolicies": "Shared Policies",
|
||||||
|
"commandResourcePolicies": "Public Resources Policies",
|
||||||
|
"commandIdentityProviders": "Identity Providers",
|
||||||
|
"commandApprovals": "Approval Requests",
|
||||||
|
"commandShareableLinks": "Shareable Links",
|
||||||
|
"commandOrganization": "Organization",
|
||||||
|
"commandLogsAndAnalytics": "Logs & Analytics",
|
||||||
|
"commandLogsAnalytics": "Analytics",
|
||||||
|
"commandLogsRequest": "HTTP Request Logs",
|
||||||
|
"commandLogsAccess": "Authentication Logs",
|
||||||
|
"commandLogsAction": "Admin Action Logs",
|
||||||
|
"commandLogsConnection": "Network Logs",
|
||||||
|
"commandLogsStreaming": "Event Streaming",
|
||||||
|
"commandManagement": "Management",
|
||||||
|
"commandAlerting": "Alerting",
|
||||||
|
"commandProvisioning": "Provisioning",
|
||||||
|
"commandBluePrints": "Blueprints",
|
||||||
|
"commandApiKeys": "API Keys",
|
||||||
|
"commandBillingAndLicenses": "Billing & Licenses",
|
||||||
|
"commandBilling": "Billing",
|
||||||
|
"commandEnterpriseLicenses": "Licenses",
|
||||||
|
"commandSettings": "Settings",
|
||||||
|
"commandLauncher": "Launcher",
|
||||||
|
"commandResourceLauncher": "Resource Launcher",
|
||||||
|
"commandSearchResults": "Search Results",
|
||||||
"alertingTitle": "Alertes",
|
"alertingTitle": "Alertes",
|
||||||
"alertingDescription": "Définissez des sources, des déclencheurs et des actions pour les notifications",
|
"alertingDescription": "Définissez des sources, des déclencheurs et des actions pour les notifications",
|
||||||
"alertingRules": "Règles d'alerte",
|
"alertingRules": "Règles d'alerte",
|
||||||
@@ -1915,6 +1990,9 @@
|
|||||||
"billingDomains": "Domaines",
|
"billingDomains": "Domaines",
|
||||||
"billingOrganizations": "Organes",
|
"billingOrganizations": "Organes",
|
||||||
"billingRemoteExitNodes": "Nœuds distants",
|
"billingRemoteExitNodes": "Nœuds distants",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "Aucune limite configurée",
|
"billingNoLimitConfigured": "Aucune limite configurée",
|
||||||
"billingEstimatedPeriod": "Période de facturation estimée",
|
"billingEstimatedPeriod": "Période de facturation estimée",
|
||||||
"billingIncludedUsage": "Utilisation incluse",
|
"billingIncludedUsage": "Utilisation incluse",
|
||||||
@@ -1943,6 +2021,9 @@
|
|||||||
"billingUsersInfo": "Combien d'utilisateurs vous pouvez utiliser",
|
"billingUsersInfo": "Combien d'utilisateurs vous pouvez utiliser",
|
||||||
"billingDomainInfo": "Combien de domaines vous pouvez utiliser",
|
"billingDomainInfo": "Combien de domaines vous pouvez utiliser",
|
||||||
"billingRemoteExitNodesInfo": "Combien de nœuds distants vous pouvez utiliser",
|
"billingRemoteExitNodesInfo": "Combien de nœuds distants vous pouvez utiliser",
|
||||||
|
"billingPublicResourcesInfo": "How many public resources you can use",
|
||||||
|
"billingPrivateResourcesInfo": "How many private resources you can use",
|
||||||
|
"billingMachineClientsInfo": "How many machine clients you can use",
|
||||||
"billingLicenseKeys": "Clés de licence",
|
"billingLicenseKeys": "Clés de licence",
|
||||||
"billingLicenseKeysDescription": "Gérer vos abonnements à la clé de licence",
|
"billingLicenseKeysDescription": "Gérer vos abonnements à la clé de licence",
|
||||||
"billingLicenseSubscription": "Abonnement à la licence",
|
"billingLicenseSubscription": "Abonnement à la licence",
|
||||||
@@ -2311,6 +2392,12 @@
|
|||||||
"createInternalResourceDialogClose": "Fermer",
|
"createInternalResourceDialogClose": "Fermer",
|
||||||
"createInternalResourceDialogCreateClientResource": "Créer une ressource privée",
|
"createInternalResourceDialogCreateClientResource": "Créer une ressource privée",
|
||||||
"createInternalResourceDialogCreateClientResourceDescription": "Créer une nouvelle ressource qui ne sera accessible qu'aux clients connectés à l'organisation",
|
"createInternalResourceDialogCreateClientResourceDescription": "Créer une nouvelle ressource qui ne sera accessible qu'aux clients connectés à l'organisation",
|
||||||
|
"privateResourceCreatePageSeeAll": "See All Private Resources",
|
||||||
|
"privateResourceAllowIcmpPing": "Allow ICMP Ping",
|
||||||
|
"privateResourceNetworkAccess": "Network Access",
|
||||||
|
"privateResourceNetworkAccessDescription": "Control TCP/UDP port access and whether ICMP ping is allowed for this resource.",
|
||||||
|
"hostSettings": "Host Settings",
|
||||||
|
"cidrSettings": "CIDR Settings",
|
||||||
"createInternalResourceDialogResourceProperties": "Propriétés de la ressource",
|
"createInternalResourceDialogResourceProperties": "Propriétés de la ressource",
|
||||||
"createInternalResourceDialogName": "Nom",
|
"createInternalResourceDialogName": "Nom",
|
||||||
"createInternalResourceDialogSite": "Site",
|
"createInternalResourceDialogSite": "Site",
|
||||||
@@ -2459,6 +2546,7 @@
|
|||||||
"noRemoteExitNodesAvailableDescription": "Aucun noeud n'est disponible pour cette organisation. Créez d'abord un noeud pour utiliser des sites locaux.",
|
"noRemoteExitNodesAvailableDescription": "Aucun noeud n'est disponible pour cette organisation. Créez d'abord un noeud pour utiliser des sites locaux.",
|
||||||
"exitNode": "Nœud de sortie",
|
"exitNode": "Nœud de sortie",
|
||||||
"country": "Pays",
|
"country": "Pays",
|
||||||
|
"countryIsNot": "Country Is Not",
|
||||||
"rulesMatchCountry": "Actuellement basé sur l'IP source",
|
"rulesMatchCountry": "Actuellement basé sur l'IP source",
|
||||||
"region": "Région",
|
"region": "Région",
|
||||||
"selectRegion": "Sélectionner une région",
|
"selectRegion": "Sélectionner une région",
|
||||||
@@ -3177,7 +3265,7 @@
|
|||||||
"editInternalResourceDialogAddUsers": "Ajouter des utilisateurs",
|
"editInternalResourceDialogAddUsers": "Ajouter des utilisateurs",
|
||||||
"editInternalResourceDialogAddClients": "Ajouter des clients",
|
"editInternalResourceDialogAddClients": "Ajouter des clients",
|
||||||
"editInternalResourceDialogDestinationLabel": "Destination",
|
"editInternalResourceDialogDestinationLabel": "Destination",
|
||||||
"editInternalResourceDialogDestinationDescription": "Indiquez l'adresse de destination pour la ressource interne. Cela peut être un nom d'hôte, une adresse IP ou une plage CIDR selon le mode sélectionné. Définissez éventuellement un alias DNS interne pour une identification plus facile.",
|
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it",
|
||||||
"internalResourceFormMultiSiteRoutingHelp": "La sélection de plusieurs sites permet un routage résilient et un basculement pour une haute disponibilité.",
|
"internalResourceFormMultiSiteRoutingHelp": "La sélection de plusieurs sites permet un routage résilient et un basculement pour une haute disponibilité.",
|
||||||
"internalResourceFormMultiSiteRoutingHelpLearnMore": "En savoir plus",
|
"internalResourceFormMultiSiteRoutingHelpLearnMore": "En savoir plus",
|
||||||
"editInternalResourceDialogPortRestrictionsDescription": "Restreindre l'accès à des ports TCP/UDP spécifiques ou autoriser/bloquer tous les ports.",
|
"editInternalResourceDialogPortRestrictionsDescription": "Restreindre l'accès à des ports TCP/UDP spécifiques ou autoriser/bloquer tous les ports.",
|
||||||
@@ -3571,18 +3659,24 @@
|
|||||||
"memberPortalResourceDisabled": "Ressource désactivée",
|
"memberPortalResourceDisabled": "Ressource désactivée",
|
||||||
"memberPortalShowingResources": "Affichage de {start}-{end} sur {total} ressources",
|
"memberPortalShowingResources": "Affichage de {start}-{end} sur {total} ressources",
|
||||||
"resourceLauncherTitle": "Lanceur de ressources",
|
"resourceLauncherTitle": "Lanceur de ressources",
|
||||||
"resourceLauncherDescription": "Afficher les détails des ressources et les lancer depuis un seul endroit",
|
"resourceSidebarLauncherTitle": "Launcher",
|
||||||
"resourceLauncherSearchPlaceholder": "Rechercher sur tous les sites...",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
|
"resourceLauncherSearchPlaceholder": "Search your resources...",
|
||||||
"resourceLauncherDefaultView": "Par défaut",
|
"resourceLauncherDefaultView": "Par défaut",
|
||||||
"resourceLauncherSaveView": "Enregistrer la vue",
|
"resourceLauncherSaveView": "Enregistrer la vue",
|
||||||
"resourceLauncherSaveToCurrentView": "Enregistrer dans la vue actuelle",
|
"resourceLauncherSaveToCurrentView": "Enregistrer dans la vue actuelle",
|
||||||
|
"resourceLauncherSaveDefaultPersonal": "Save for Me",
|
||||||
"resourceLauncherResetView": "Réinitialiser la vue",
|
"resourceLauncherResetView": "Réinitialiser la vue",
|
||||||
|
"resourceLauncherResetSystemDefault": "Reset to System Default",
|
||||||
|
"resourceLauncherSystemDefaultRestored": "System default restored",
|
||||||
|
"resourceLauncherSystemDefaultRestoredDescription": "The default view has been reset to the original settings.",
|
||||||
"resourceLauncherSaveAsNewView": "Enregistrer comme nouvelle vue",
|
"resourceLauncherSaveAsNewView": "Enregistrer comme nouvelle vue",
|
||||||
"resourceLauncherSaveAsNewViewDescription": "Donnez un nom à cette vue pour enregistrer vos filtres et mise en page actuels.",
|
"resourceLauncherSaveAsNewViewDescription": "Donnez un nom à cette vue pour enregistrer vos filtres et mise en page actuels.",
|
||||||
"resourceLauncherSaveForEveryone": "Enregistrer pour tout le monde",
|
"resourceLauncherSaveForEveryone": "Enregistrer pour tout le monde",
|
||||||
"resourceLauncherSaveForEveryoneDescription": "Partagez cette vue avec tous les membres de l'organisation. Lorsque décochée, la vue est visible uniquement par vous.",
|
"resourceLauncherSaveForEveryoneDescription": "Partagez cette vue avec tous les membres de l'organisation. Lorsque décochée, la vue est visible uniquement par vous.",
|
||||||
"resourceLauncherMakePersonal": "Rendre personnel",
|
"resourceLauncherMakePersonal": "Rendre personnel",
|
||||||
"resourceLauncherFilter": "Filtrer",
|
"resourceLauncherFilter": "Filtrer",
|
||||||
|
"resourceLauncherFilterWithCount": "Filter, {count} applied",
|
||||||
"resourceLauncherSort": "Trier",
|
"resourceLauncherSort": "Trier",
|
||||||
"resourceLauncherSortAscending": "Trier par ordre croissant",
|
"resourceLauncherSortAscending": "Trier par ordre croissant",
|
||||||
"resourceLauncherSortDescending": "Trier par ordre décroissant",
|
"resourceLauncherSortDescending": "Trier par ordre décroissant",
|
||||||
@@ -3590,6 +3684,7 @@
|
|||||||
"resourceLauncherGroupBy": "Grouper par",
|
"resourceLauncherGroupBy": "Grouper par",
|
||||||
"resourceLauncherGroupBySite": "Nœud",
|
"resourceLauncherGroupBySite": "Nœud",
|
||||||
"resourceLauncherGroupByLabel": "Étiquette",
|
"resourceLauncherGroupByLabel": "Étiquette",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "Mise en page",
|
"resourceLauncherLayout": "Mise en page",
|
||||||
"resourceLauncherLayoutGrid": "Grille",
|
"resourceLauncherLayoutGrid": "Grille",
|
||||||
"resourceLauncherLayoutList": "Liste",
|
"resourceLauncherLayoutList": "Liste",
|
||||||
@@ -3597,8 +3692,20 @@
|
|||||||
"resourceLauncherShowSiteTags": "Afficher les tags de site",
|
"resourceLauncherShowSiteTags": "Afficher les tags de site",
|
||||||
"resourceLauncherShowRecents": "Afficher les récents",
|
"resourceLauncherShowRecents": "Afficher les récents",
|
||||||
"resourceLauncherDeleteView": "Supprimer la vue",
|
"resourceLauncherDeleteView": "Supprimer la vue",
|
||||||
|
"resourceLauncherDeleteViewTitle": "Delete View",
|
||||||
|
"resourceLauncherDeleteViewQuestion": "Are you sure you want to delete this launcher view?",
|
||||||
|
"resourceLauncherDeleteViewConfirm": "Delete View",
|
||||||
"resourceLauncherViewAsAdmin": "Voir en tant qu'admin",
|
"resourceLauncherViewAsAdmin": "Voir en tant qu'admin",
|
||||||
"resourceLauncherResourceDetailsDescription": "Afficher les détails pour cette ressource.",
|
"resourceLauncherResourceDetailsDescription": "Connection information and status for this resource.",
|
||||||
|
"resourceLauncherResourceDetails": "Resource Details",
|
||||||
|
"resourceLauncherAuthMethodsDescription": "Authentication methods enabled for this resource.",
|
||||||
|
"resourceLauncherPrivateClientRequired": "Connect with a client on your device to access this resource privately.",
|
||||||
|
"resourceLauncherPrivateClientRequiredTitle": "Client Connection Required",
|
||||||
|
"resourceLauncherDownloadClient": "Download client",
|
||||||
|
"resourceLauncherFailedToLoadDetails": "Could not load resource details. You may no longer have access to this resource.",
|
||||||
|
"resourceLauncherNoPortRestrictions": "No port restrictions",
|
||||||
|
"resourceLauncherTcp": "TCP",
|
||||||
|
"resourceLauncherUdp": "UDP",
|
||||||
"resourceLauncherUnlabeled": "Non étiqueté",
|
"resourceLauncherUnlabeled": "Non étiqueté",
|
||||||
"resourceLauncherNoSite": "Aucun nœud",
|
"resourceLauncherNoSite": "Aucun nœud",
|
||||||
"resourceLauncherNoResourcesInGroup": "Aucune ressource dans ce groupe",
|
"resourceLauncherNoResourcesInGroup": "Aucune ressource dans ce groupe",
|
||||||
@@ -3607,6 +3714,12 @@
|
|||||||
"resourceLauncherEmptyStateNoResultsTitle": "Aucune ressource trouvée",
|
"resourceLauncherEmptyStateNoResultsTitle": "Aucune ressource trouvée",
|
||||||
"resourceLauncherEmptyStateNoResultsDescription": "Aucune ressource ne correspond à votre recherche ou filtre actuel. Essayez de les ajuster pour trouver ce que vous cherchez.",
|
"resourceLauncherEmptyStateNoResultsDescription": "Aucune ressource ne correspond à votre recherche ou filtre actuel. Essayez de les ajuster pour trouver ce que vous cherchez.",
|
||||||
"resourceLauncherEmptyStateNoResultsWithQuery": "Aucune ressource ne correspond à \"{query}\". Essayez d'ajuster votre recherche ou de supprimer les filtres pour voir toutes les ressources.",
|
"resourceLauncherEmptyStateNoResultsWithQuery": "Aucune ressource ne correspond à \"{query}\". Essayez d'ajuster votre recherche ou de supprimer les filtres pour voir toutes les ressources.",
|
||||||
|
"resourceLauncherSearchFirstTitle": "Search or Filter to Browse",
|
||||||
|
"resourceLauncherSearchFirstDescription": "You have access to many resources. Use search or filter by site or label to find what you need.",
|
||||||
|
"resourceLauncherSiteGroupingDisabled": "Site grouping is unavailable at this scale. Filter by site to group a smaller set.",
|
||||||
|
"resourceLauncherLabelGroupingDisabled": "Label grouping is unavailable at this scale.",
|
||||||
|
"resourceLauncherCompactModeHint": "Showing a simplified list for faster browsing. Use search or filters to narrow results.",
|
||||||
|
"resourceLauncherCompactGroupingHint": "Apply site or label filters to enable grouping.",
|
||||||
"resourceLauncherCopiedToClipboard": "Copié dans le presse-papiers",
|
"resourceLauncherCopiedToClipboard": "Copié dans le presse-papiers",
|
||||||
"resourceLauncherCopiedAccessDescription": "L'accès à la ressource a été copié dans votre presse-papiers.",
|
"resourceLauncherCopiedAccessDescription": "L'accès à la ressource a été copié dans votre presse-papiers.",
|
||||||
"resourceLauncherViewNamePlaceholder": "Nom de la vue",
|
"resourceLauncherViewNamePlaceholder": "Nom de la vue",
|
||||||
|
|||||||
+120
-7
@@ -266,6 +266,8 @@
|
|||||||
"resourceRawDescriptionCloud": "Richiesta proxy su TCP/UDP grezzo utilizzando un numero di porta. Richiede siti per connettersi a un nodo remoto.",
|
"resourceRawDescriptionCloud": "Richiesta proxy su TCP/UDP grezzo utilizzando un numero di porta. Richiede siti per connettersi a un nodo remoto.",
|
||||||
"resourceCreate": "Crea Risorsa",
|
"resourceCreate": "Crea Risorsa",
|
||||||
"resourceCreateDescription": "Segui i passaggi seguenti per creare una nuova risorsa",
|
"resourceCreateDescription": "Segui i passaggi seguenti per creare una nuova risorsa",
|
||||||
|
"resourcePublicCreate": "Create Public Resource",
|
||||||
|
"resourcePublicCreateDescription": "Follow the steps below to create a new public resource that is accessible through a web browser",
|
||||||
"resourceCreateGeneralDescription": "Configura le impostazioni generali delle risorse, inclusi il nome e il tipo",
|
"resourceCreateGeneralDescription": "Configura le impostazioni generali delle risorse, inclusi il nome e il tipo",
|
||||||
"resourceSeeAll": "Vedi Tutte Le Risorse",
|
"resourceSeeAll": "Vedi Tutte Le Risorse",
|
||||||
"resourceCreateGeneral": "Generale",
|
"resourceCreateGeneral": "Generale",
|
||||||
@@ -613,7 +615,8 @@
|
|||||||
"idpNameInternal": "Interno",
|
"idpNameInternal": "Interno",
|
||||||
"emailInvalid": "Indirizzo email non valido",
|
"emailInvalid": "Indirizzo email non valido",
|
||||||
"inviteValidityDuration": "Seleziona una durata",
|
"inviteValidityDuration": "Seleziona una durata",
|
||||||
"accessRoleSelectPlease": "Seleziona un ruolo",
|
"accessRoleSelectPlease": "A user must belong to at least one role.",
|
||||||
|
"accessRoleRequired": "Role required",
|
||||||
"removeOwnAdminRoleConfirmTitle": "Rimuovere il tuo accesso amministrativo?",
|
"removeOwnAdminRoleConfirmTitle": "Rimuovere il tuo accesso amministrativo?",
|
||||||
"removeOwnAdminRoleConfirmDescription": "Non avrai più i permessi di amministratore in questa organizzazione dopo il salvataggio. Un altro amministratore può ripristinare l'accesso se necessario.",
|
"removeOwnAdminRoleConfirmDescription": "Non avrai più i permessi di amministratore in questa organizzazione dopo il salvataggio. Un altro amministratore può ripristinare l'accesso se necessario.",
|
||||||
"removeOwnAdminRoleConfirmButton": "Rimuovere il Mio Accesso Amministrativo",
|
"removeOwnAdminRoleConfirmButton": "Rimuovere il Mio Accesso Amministrativo",
|
||||||
@@ -864,8 +867,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "Autenticazione Header Base",
|
"policyAuthHeaderAuthTitle": "Autenticazione Header Base",
|
||||||
"policyAuthHeaderAuthDescription": "Convalida un nome e un valore di intestazione HTTP personalizzato su ogni richiesta",
|
"policyAuthHeaderAuthDescription": "Convalida un nome e un valore di intestazione HTTP personalizzato su ogni richiesta",
|
||||||
"policyAuthHeaderAuthSummary": "Intestazione configurata",
|
"policyAuthHeaderAuthSummary": "Intestazione configurata",
|
||||||
"policyAuthHeaderName": "Nome dell'intestazione",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "Valore atteso",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "Imposta Codice di Accesso",
|
"policyAuthSetPasscode": "Imposta Codice di Accesso",
|
||||||
"policyAuthSetPincode": "Imposta Codice PIN",
|
"policyAuthSetPincode": "Imposta Codice PIN",
|
||||||
"policyAuthSetEmailWhitelist": "Imposta Lista Autorizzazioni Email",
|
"policyAuthSetEmailWhitelist": "Imposta Lista Autorizzazioni Email",
|
||||||
@@ -1431,6 +1434,15 @@
|
|||||||
"actionSetResourcePincode": "Imposta Codice PIN Risorsa",
|
"actionSetResourcePincode": "Imposta Codice PIN Risorsa",
|
||||||
"actionSetResourceEmailWhitelist": "Imposta Lista Autorizzazioni Email Risorsa",
|
"actionSetResourceEmailWhitelist": "Imposta Lista Autorizzazioni Email Risorsa",
|
||||||
"actionGetResourceEmailWhitelist": "Ottieni Lista Autorizzazioni Email Risorsa",
|
"actionGetResourceEmailWhitelist": "Ottieni Lista Autorizzazioni Email Risorsa",
|
||||||
|
"actionGetResourcePolicy": "Get Resource Policy",
|
||||||
|
"actionUpdateResourcePolicy": "Update Resource Policy",
|
||||||
|
"actionSetResourcePolicyUsers": "Set Resource Policy Users",
|
||||||
|
"actionSetResourcePolicyRoles": "Set Resource Policy Roles",
|
||||||
|
"actionSetResourcePolicyPassword": "Set Resource Policy Password",
|
||||||
|
"actionSetResourcePolicyPincode": "Set Resource Policy Pincode",
|
||||||
|
"actionSetResourcePolicyHeaderAuth": "Set Resource Policy Header Authentication",
|
||||||
|
"actionSetResourcePolicyWhitelist": "Set Resource Policy Email Whitelist",
|
||||||
|
"actionSetResourcePolicyRules": "Set Resource Policy Rules",
|
||||||
"actionCreateTarget": "Crea Target",
|
"actionCreateTarget": "Crea Target",
|
||||||
"actionDeleteTarget": "Elimina Target",
|
"actionDeleteTarget": "Elimina Target",
|
||||||
"actionGetTarget": "Ottieni Target",
|
"actionGetTarget": "Ottieni Target",
|
||||||
@@ -1507,6 +1519,30 @@
|
|||||||
"navbar": "Menu di Navigazione",
|
"navbar": "Menu di Navigazione",
|
||||||
"navbarDescription": "Menu di navigazione principale dell'applicazione",
|
"navbarDescription": "Menu di navigazione principale dell'applicazione",
|
||||||
"navbarDocsLink": "Documentazione",
|
"navbarDocsLink": "Documentazione",
|
||||||
|
"commandPaletteTitle": "Command Palette",
|
||||||
|
"commandPaletteDescription": "Search for pages, organizations, resources, and actions",
|
||||||
|
"commandPaletteSearchPlaceholder": "Search pages, resources, actions...",
|
||||||
|
"commandPaletteNoResults": "No results found.",
|
||||||
|
"commandPaletteSearching": "Searching...",
|
||||||
|
"commandPaletteNavigation": "Navigation",
|
||||||
|
"commandPaletteOrganizations": "Organizations",
|
||||||
|
"commandPaletteSites": "Sites",
|
||||||
|
"commandPaletteResources": "Resources",
|
||||||
|
"commandPaletteUsers": "Users",
|
||||||
|
"commandPaletteClients": "Machine Clients",
|
||||||
|
"commandPaletteActions": "Actions",
|
||||||
|
"commandPaletteCreateSite": "Create Site",
|
||||||
|
"commandPaletteCreateProxyResource": "Create Public Resource",
|
||||||
|
"commandPaletteCreatePrivateResource": "Create Private Resource",
|
||||||
|
"commandPaletteCreateUser": "Create User",
|
||||||
|
"commandPaletteCreateApiKey": "Create API Key",
|
||||||
|
"commandPaletteCreateMachineClient": "Create Machine Client",
|
||||||
|
"commandPaletteCreateAlertRule": "Create Alert Rule",
|
||||||
|
"commandPaletteCreateIdentityProvider": "Create Identity Provider",
|
||||||
|
"commandPaletteToggleTheme": "Toggle Theme",
|
||||||
|
"commandPaletteChooseOrganization": "Choose Organization",
|
||||||
|
"commandPaletteShortcutMac": "⌘K",
|
||||||
|
"commandPaletteShortcutWindows": "Ctrl K",
|
||||||
"otpErrorEnable": "Impossibile abilitare 2FA",
|
"otpErrorEnable": "Impossibile abilitare 2FA",
|
||||||
"otpErrorEnableDescription": "Si è verificato un errore durante l'abilitazione di 2FA",
|
"otpErrorEnableDescription": "Si è verificato un errore durante l'abilitazione di 2FA",
|
||||||
"otpSetupCheckCode": "Inserisci un codice a 6 cifre",
|
"otpSetupCheckCode": "Inserisci un codice a 6 cifre",
|
||||||
@@ -1584,6 +1620,45 @@
|
|||||||
"sidebarManagement": "Gestione",
|
"sidebarManagement": "Gestione",
|
||||||
"sidebarBillingAndLicenses": "Fatturazione E Licenze",
|
"sidebarBillingAndLicenses": "Fatturazione E Licenze",
|
||||||
"sidebarLogsAnalytics": "Analisi",
|
"sidebarLogsAnalytics": "Analisi",
|
||||||
|
"commandSites": "Sites",
|
||||||
|
"commandActionModeInfo": "Type \">\" To Open Action Mode",
|
||||||
|
"commandResources": "Resources",
|
||||||
|
"commandProxyResources": "Public Resources",
|
||||||
|
"commandClientResources": "Private Resources",
|
||||||
|
"commandClients": "Clients",
|
||||||
|
"commandUserDevices": "User Devices",
|
||||||
|
"commandMachineClients": "Machine Clients",
|
||||||
|
"commandDomains": "Domains",
|
||||||
|
"commandRemoteExitNodes": "Remote Nodes",
|
||||||
|
"commandTeam": "Team",
|
||||||
|
"commandUsers": "Users",
|
||||||
|
"commandRoles": "Roles",
|
||||||
|
"commandInvitations": "Invitations",
|
||||||
|
"commandPolicies": "Shared Policies",
|
||||||
|
"commandResourcePolicies": "Public Resources Policies",
|
||||||
|
"commandIdentityProviders": "Identity Providers",
|
||||||
|
"commandApprovals": "Approval Requests",
|
||||||
|
"commandShareableLinks": "Shareable Links",
|
||||||
|
"commandOrganization": "Organization",
|
||||||
|
"commandLogsAndAnalytics": "Logs & Analytics",
|
||||||
|
"commandLogsAnalytics": "Analytics",
|
||||||
|
"commandLogsRequest": "HTTP Request Logs",
|
||||||
|
"commandLogsAccess": "Authentication Logs",
|
||||||
|
"commandLogsAction": "Admin Action Logs",
|
||||||
|
"commandLogsConnection": "Network Logs",
|
||||||
|
"commandLogsStreaming": "Event Streaming",
|
||||||
|
"commandManagement": "Management",
|
||||||
|
"commandAlerting": "Alerting",
|
||||||
|
"commandProvisioning": "Provisioning",
|
||||||
|
"commandBluePrints": "Blueprints",
|
||||||
|
"commandApiKeys": "API Keys",
|
||||||
|
"commandBillingAndLicenses": "Billing & Licenses",
|
||||||
|
"commandBilling": "Billing",
|
||||||
|
"commandEnterpriseLicenses": "Licenses",
|
||||||
|
"commandSettings": "Settings",
|
||||||
|
"commandLauncher": "Launcher",
|
||||||
|
"commandResourceLauncher": "Resource Launcher",
|
||||||
|
"commandSearchResults": "Search Results",
|
||||||
"alertingTitle": "Allerta",
|
"alertingTitle": "Allerta",
|
||||||
"alertingDescription": "Definisci fonti, trigger e azioni per le notifiche",
|
"alertingDescription": "Definisci fonti, trigger e azioni per le notifiche",
|
||||||
"alertingRules": "Regole di allerta",
|
"alertingRules": "Regole di allerta",
|
||||||
@@ -1915,6 +1990,9 @@
|
|||||||
"billingDomains": "Domini",
|
"billingDomains": "Domini",
|
||||||
"billingOrganizations": "Organi",
|
"billingOrganizations": "Organi",
|
||||||
"billingRemoteExitNodes": "Nodi Remoti",
|
"billingRemoteExitNodes": "Nodi Remoti",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "Nessun limite configurato",
|
"billingNoLimitConfigured": "Nessun limite configurato",
|
||||||
"billingEstimatedPeriod": "Periodo di Fatturazione Stimato",
|
"billingEstimatedPeriod": "Periodo di Fatturazione Stimato",
|
||||||
"billingIncludedUsage": "Utilizzo Incluso",
|
"billingIncludedUsage": "Utilizzo Incluso",
|
||||||
@@ -1943,6 +2021,9 @@
|
|||||||
"billingUsersInfo": "Quanti utenti puoi usare",
|
"billingUsersInfo": "Quanti utenti puoi usare",
|
||||||
"billingDomainInfo": "Quanti domini puoi usare",
|
"billingDomainInfo": "Quanti domini puoi usare",
|
||||||
"billingRemoteExitNodesInfo": "Quanti nodi remoti puoi usare",
|
"billingRemoteExitNodesInfo": "Quanti nodi remoti puoi usare",
|
||||||
|
"billingPublicResourcesInfo": "How many public resources you can use",
|
||||||
|
"billingPrivateResourcesInfo": "How many private resources you can use",
|
||||||
|
"billingMachineClientsInfo": "How many machine clients you can use",
|
||||||
"billingLicenseKeys": "Chiavi di Licenza",
|
"billingLicenseKeys": "Chiavi di Licenza",
|
||||||
"billingLicenseKeysDescription": "Gestisci le sottoscrizioni alla chiave di licenza",
|
"billingLicenseKeysDescription": "Gestisci le sottoscrizioni alla chiave di licenza",
|
||||||
"billingLicenseSubscription": "Abbonamento Licenza",
|
"billingLicenseSubscription": "Abbonamento Licenza",
|
||||||
@@ -2311,6 +2392,12 @@
|
|||||||
"createInternalResourceDialogClose": "Chiudi",
|
"createInternalResourceDialogClose": "Chiudi",
|
||||||
"createInternalResourceDialogCreateClientResource": "Crea Risorsa Privata",
|
"createInternalResourceDialogCreateClientResource": "Crea Risorsa Privata",
|
||||||
"createInternalResourceDialogCreateClientResourceDescription": "Crea una nuova risorsa che sarà accessibile solo ai client connessi all'organizzazione",
|
"createInternalResourceDialogCreateClientResourceDescription": "Crea una nuova risorsa che sarà accessibile solo ai client connessi all'organizzazione",
|
||||||
|
"privateResourceCreatePageSeeAll": "See All Private Resources",
|
||||||
|
"privateResourceAllowIcmpPing": "Allow ICMP Ping",
|
||||||
|
"privateResourceNetworkAccess": "Network Access",
|
||||||
|
"privateResourceNetworkAccessDescription": "Control TCP/UDP port access and whether ICMP ping is allowed for this resource.",
|
||||||
|
"hostSettings": "Host Settings",
|
||||||
|
"cidrSettings": "CIDR Settings",
|
||||||
"createInternalResourceDialogResourceProperties": "Proprietà della Risorsa",
|
"createInternalResourceDialogResourceProperties": "Proprietà della Risorsa",
|
||||||
"createInternalResourceDialogName": "Nome",
|
"createInternalResourceDialogName": "Nome",
|
||||||
"createInternalResourceDialogSite": "Sito",
|
"createInternalResourceDialogSite": "Sito",
|
||||||
@@ -2459,6 +2546,7 @@
|
|||||||
"noRemoteExitNodesAvailableDescription": "Non ci sono nodi disponibili per questa organizzazione. Crea un nodo prima per usare i siti locali.",
|
"noRemoteExitNodesAvailableDescription": "Non ci sono nodi disponibili per questa organizzazione. Crea un nodo prima per usare i siti locali.",
|
||||||
"exitNode": "Nodo di Uscita",
|
"exitNode": "Nodo di Uscita",
|
||||||
"country": "Paese",
|
"country": "Paese",
|
||||||
|
"countryIsNot": "Country Is Not",
|
||||||
"rulesMatchCountry": "Attualmente basato sull'IP di origine",
|
"rulesMatchCountry": "Attualmente basato sull'IP di origine",
|
||||||
"region": "Regione",
|
"region": "Regione",
|
||||||
"selectRegion": "Seleziona regione",
|
"selectRegion": "Seleziona regione",
|
||||||
@@ -3177,7 +3265,7 @@
|
|||||||
"editInternalResourceDialogAddUsers": "Aggiungi Utenti",
|
"editInternalResourceDialogAddUsers": "Aggiungi Utenti",
|
||||||
"editInternalResourceDialogAddClients": "Aggiungi Clienti",
|
"editInternalResourceDialogAddClients": "Aggiungi Clienti",
|
||||||
"editInternalResourceDialogDestinationLabel": "Destinazione",
|
"editInternalResourceDialogDestinationLabel": "Destinazione",
|
||||||
"editInternalResourceDialogDestinationDescription": "Specifica l'indirizzo di destinazione per la risorsa interna. Può essere un hostname, indirizzo IP o un intervallo CIDR a seconda della modalità selezionata. Opzionalmente imposta un alias DNS interno per una più facile identificazione.",
|
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it",
|
||||||
"internalResourceFormMultiSiteRoutingHelp": "Selezionare più siti consente un routing resiliente e Failover per alta disponibilità.",
|
"internalResourceFormMultiSiteRoutingHelp": "Selezionare più siti consente un routing resiliente e Failover per alta disponibilità.",
|
||||||
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Scopri di più",
|
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Scopri di più",
|
||||||
"editInternalResourceDialogPortRestrictionsDescription": "Limita l'accesso a porte TCP/UDP specifiche o consenti/blocca tutte le porte.",
|
"editInternalResourceDialogPortRestrictionsDescription": "Limita l'accesso a porte TCP/UDP specifiche o consenti/blocca tutte le porte.",
|
||||||
@@ -3571,18 +3659,24 @@
|
|||||||
"memberPortalResourceDisabled": "Risorsa Disabilitata",
|
"memberPortalResourceDisabled": "Risorsa Disabilitata",
|
||||||
"memberPortalShowingResources": "Mostrando {start}-{end} di {total} risorse",
|
"memberPortalShowingResources": "Mostrando {start}-{end} di {total} risorse",
|
||||||
"resourceLauncherTitle": "Lanscia Risorse",
|
"resourceLauncherTitle": "Lanscia Risorse",
|
||||||
"resourceLauncherDescription": "Visualizza i dettagli delle risorse e lanciale da un solo posto",
|
"resourceSidebarLauncherTitle": "Launcher",
|
||||||
"resourceLauncherSearchPlaceholder": "Cerca tutti i siti...",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
|
"resourceLauncherSearchPlaceholder": "Search your resources...",
|
||||||
"resourceLauncherDefaultView": "Predefinito",
|
"resourceLauncherDefaultView": "Predefinito",
|
||||||
"resourceLauncherSaveView": "Salva Visualizzazione",
|
"resourceLauncherSaveView": "Salva Visualizzazione",
|
||||||
"resourceLauncherSaveToCurrentView": "Salva alla Visualizzazione Corrente",
|
"resourceLauncherSaveToCurrentView": "Salva alla Visualizzazione Corrente",
|
||||||
|
"resourceLauncherSaveDefaultPersonal": "Save for Me",
|
||||||
"resourceLauncherResetView": "Reimposta Visualizzazione",
|
"resourceLauncherResetView": "Reimposta Visualizzazione",
|
||||||
|
"resourceLauncherResetSystemDefault": "Reset to System Default",
|
||||||
|
"resourceLauncherSystemDefaultRestored": "System default restored",
|
||||||
|
"resourceLauncherSystemDefaultRestoredDescription": "The default view has been reset to the original settings.",
|
||||||
"resourceLauncherSaveAsNewView": "Salva come Nuova Visualizzazione",
|
"resourceLauncherSaveAsNewView": "Salva come Nuova Visualizzazione",
|
||||||
"resourceLauncherSaveAsNewViewDescription": "Dai un nome a questa visualizzazione per salvare i tuoi filtri e layout attuali.",
|
"resourceLauncherSaveAsNewViewDescription": "Dai un nome a questa visualizzazione per salvare i tuoi filtri e layout attuali.",
|
||||||
"resourceLauncherSaveForEveryone": "Salva per Tutti",
|
"resourceLauncherSaveForEveryone": "Salva per Tutti",
|
||||||
"resourceLauncherSaveForEveryoneDescription": "Condividi questa visualizzazione con tutti i membri dell'organizzazione. Quando non è selezionata, la visualizzazione è visibile solo a te.",
|
"resourceLauncherSaveForEveryoneDescription": "Condividi questa visualizzazione con tutti i membri dell'organizzazione. Quando non è selezionata, la visualizzazione è visibile solo a te.",
|
||||||
"resourceLauncherMakePersonal": "Rendi Personale",
|
"resourceLauncherMakePersonal": "Rendi Personale",
|
||||||
"resourceLauncherFilter": "Filtro",
|
"resourceLauncherFilter": "Filtro",
|
||||||
|
"resourceLauncherFilterWithCount": "Filter, {count} applied",
|
||||||
"resourceLauncherSort": "Ordina",
|
"resourceLauncherSort": "Ordina",
|
||||||
"resourceLauncherSortAscending": "Ordina in ordine crescente",
|
"resourceLauncherSortAscending": "Ordina in ordine crescente",
|
||||||
"resourceLauncherSortDescending": "Ordina in ordine decrescente",
|
"resourceLauncherSortDescending": "Ordina in ordine decrescente",
|
||||||
@@ -3590,6 +3684,7 @@
|
|||||||
"resourceLauncherGroupBy": "Raggruppa per",
|
"resourceLauncherGroupBy": "Raggruppa per",
|
||||||
"resourceLauncherGroupBySite": "Sito",
|
"resourceLauncherGroupBySite": "Sito",
|
||||||
"resourceLauncherGroupByLabel": "Etichetta",
|
"resourceLauncherGroupByLabel": "Etichetta",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "Layout",
|
"resourceLauncherLayout": "Layout",
|
||||||
"resourceLauncherLayoutGrid": "Griglia",
|
"resourceLauncherLayoutGrid": "Griglia",
|
||||||
"resourceLauncherLayoutList": "Lista",
|
"resourceLauncherLayoutList": "Lista",
|
||||||
@@ -3597,8 +3692,20 @@
|
|||||||
"resourceLauncherShowSiteTags": "Mostra Tag di Sito",
|
"resourceLauncherShowSiteTags": "Mostra Tag di Sito",
|
||||||
"resourceLauncherShowRecents": "Mostra Recenti",
|
"resourceLauncherShowRecents": "Mostra Recenti",
|
||||||
"resourceLauncherDeleteView": "Elimina Visualizzazione",
|
"resourceLauncherDeleteView": "Elimina Visualizzazione",
|
||||||
|
"resourceLauncherDeleteViewTitle": "Delete View",
|
||||||
|
"resourceLauncherDeleteViewQuestion": "Are you sure you want to delete this launcher view?",
|
||||||
|
"resourceLauncherDeleteViewConfirm": "Delete View",
|
||||||
"resourceLauncherViewAsAdmin": "Visualizza come Admin",
|
"resourceLauncherViewAsAdmin": "Visualizza come Admin",
|
||||||
"resourceLauncherResourceDetailsDescription": "Visualizza i dettagli per questa risorsa.",
|
"resourceLauncherResourceDetailsDescription": "Connection information and status for this resource.",
|
||||||
|
"resourceLauncherResourceDetails": "Resource Details",
|
||||||
|
"resourceLauncherAuthMethodsDescription": "Authentication methods enabled for this resource.",
|
||||||
|
"resourceLauncherPrivateClientRequired": "Connect with a client on your device to access this resource privately.",
|
||||||
|
"resourceLauncherPrivateClientRequiredTitle": "Client Connection Required",
|
||||||
|
"resourceLauncherDownloadClient": "Download client",
|
||||||
|
"resourceLauncherFailedToLoadDetails": "Could not load resource details. You may no longer have access to this resource.",
|
||||||
|
"resourceLauncherNoPortRestrictions": "No port restrictions",
|
||||||
|
"resourceLauncherTcp": "TCP",
|
||||||
|
"resourceLauncherUdp": "UDP",
|
||||||
"resourceLauncherUnlabeled": "Non Etichettato",
|
"resourceLauncherUnlabeled": "Non Etichettato",
|
||||||
"resourceLauncherNoSite": "Nessun Sito",
|
"resourceLauncherNoSite": "Nessun Sito",
|
||||||
"resourceLauncherNoResourcesInGroup": "Nessuna risorsa in questo gruppo",
|
"resourceLauncherNoResourcesInGroup": "Nessuna risorsa in questo gruppo",
|
||||||
@@ -3607,6 +3714,12 @@
|
|||||||
"resourceLauncherEmptyStateNoResultsTitle": "Nessuna risorsa trovata",
|
"resourceLauncherEmptyStateNoResultsTitle": "Nessuna risorsa trovata",
|
||||||
"resourceLauncherEmptyStateNoResultsDescription": "Nessuna risorsa corrisponde alla tua ricerca o ai tuoi filtri attuali. Prova a modificarli per trovare ciò che stai cercando.",
|
"resourceLauncherEmptyStateNoResultsDescription": "Nessuna risorsa corrisponde alla tua ricerca o ai tuoi filtri attuali. Prova a modificarli per trovare ciò che stai cercando.",
|
||||||
"resourceLauncherEmptyStateNoResultsWithQuery": "Nessuna risorsa corrisponde a \"{query}\". Prova a modificare la tua ricerca o a cancellare i filtri per vedere tutte le risorse.",
|
"resourceLauncherEmptyStateNoResultsWithQuery": "Nessuna risorsa corrisponde a \"{query}\". Prova a modificare la tua ricerca o a cancellare i filtri per vedere tutte le risorse.",
|
||||||
|
"resourceLauncherSearchFirstTitle": "Search or Filter to Browse",
|
||||||
|
"resourceLauncherSearchFirstDescription": "You have access to many resources. Use search or filter by site or label to find what you need.",
|
||||||
|
"resourceLauncherSiteGroupingDisabled": "Site grouping is unavailable at this scale. Filter by site to group a smaller set.",
|
||||||
|
"resourceLauncherLabelGroupingDisabled": "Label grouping is unavailable at this scale.",
|
||||||
|
"resourceLauncherCompactModeHint": "Showing a simplified list for faster browsing. Use search or filters to narrow results.",
|
||||||
|
"resourceLauncherCompactGroupingHint": "Apply site or label filters to enable grouping.",
|
||||||
"resourceLauncherCopiedToClipboard": "Copiato negli appunti",
|
"resourceLauncherCopiedToClipboard": "Copiato negli appunti",
|
||||||
"resourceLauncherCopiedAccessDescription": "L'accesso alla risorsa è stato copiato nei tuoi appunti.",
|
"resourceLauncherCopiedAccessDescription": "L'accesso alla risorsa è stato copiato nei tuoi appunti.",
|
||||||
"resourceLauncherViewNamePlaceholder": "Nome Visualizzazione",
|
"resourceLauncherViewNamePlaceholder": "Nome Visualizzazione",
|
||||||
|
|||||||
+120
-7
@@ -266,6 +266,8 @@
|
|||||||
"resourceRawDescriptionCloud": "포트 번호를 사용하여 원격 노드에 연결해야 합니다. 원격 노드에서 리소스를 사용하려면 사용자 지정 도메인을 사용하십시오.",
|
"resourceRawDescriptionCloud": "포트 번호를 사용하여 원격 노드에 연결해야 합니다. 원격 노드에서 리소스를 사용하려면 사용자 지정 도메인을 사용하십시오.",
|
||||||
"resourceCreate": "리소스 생성",
|
"resourceCreate": "리소스 생성",
|
||||||
"resourceCreateDescription": "아래 단계를 따라 새 리소스를 생성하세요.",
|
"resourceCreateDescription": "아래 단계를 따라 새 리소스를 생성하세요.",
|
||||||
|
"resourcePublicCreate": "Create Public Resource",
|
||||||
|
"resourcePublicCreateDescription": "Follow the steps below to create a new public resource that is accessible through a web browser",
|
||||||
"resourceCreateGeneralDescription": "이름 및 유형을 포함한 기본 리소스 설정 구성",
|
"resourceCreateGeneralDescription": "이름 및 유형을 포함한 기본 리소스 설정 구성",
|
||||||
"resourceSeeAll": "모든 리소스 보기",
|
"resourceSeeAll": "모든 리소스 보기",
|
||||||
"resourceCreateGeneral": "일반",
|
"resourceCreateGeneral": "일반",
|
||||||
@@ -613,7 +615,8 @@
|
|||||||
"idpNameInternal": "내부",
|
"idpNameInternal": "내부",
|
||||||
"emailInvalid": "유효하지 않은 이메일 주소입니다.",
|
"emailInvalid": "유효하지 않은 이메일 주소입니다.",
|
||||||
"inviteValidityDuration": "지속 시간을 선택하십시오.",
|
"inviteValidityDuration": "지속 시간을 선택하십시오.",
|
||||||
"accessRoleSelectPlease": "역할을 선택하세요",
|
"accessRoleSelectPlease": "A user must belong to at least one role.",
|
||||||
|
"accessRoleRequired": "Role required",
|
||||||
"removeOwnAdminRoleConfirmTitle": "관리자 권한을 제거하시겠습니까?",
|
"removeOwnAdminRoleConfirmTitle": "관리자 권한을 제거하시겠습니까?",
|
||||||
"removeOwnAdminRoleConfirmDescription": "저장 후 이 조직에 대한 관리자 권한이 없어집니다. 필요한 경우 다른 관리자가 접근 권한을 복구할 수 있습니다.",
|
"removeOwnAdminRoleConfirmDescription": "저장 후 이 조직에 대한 관리자 권한이 없어집니다. 필요한 경우 다른 관리자가 접근 권한을 복구할 수 있습니다.",
|
||||||
"removeOwnAdminRoleConfirmButton": "내 관리자 권한 제거",
|
"removeOwnAdminRoleConfirmButton": "내 관리자 권한 제거",
|
||||||
@@ -864,8 +867,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "기본 헤더 인증",
|
"policyAuthHeaderAuthTitle": "기본 헤더 인증",
|
||||||
"policyAuthHeaderAuthDescription": "각 요청에서 맞춤 HTTP 헤더 이름 및 값을 검증",
|
"policyAuthHeaderAuthDescription": "각 요청에서 맞춤 HTTP 헤더 이름 및 값을 검증",
|
||||||
"policyAuthHeaderAuthSummary": "헤더 구성됨",
|
"policyAuthHeaderAuthSummary": "헤더 구성됨",
|
||||||
"policyAuthHeaderName": "헤더 이름",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "예상 값",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "패스코드 설정",
|
"policyAuthSetPasscode": "패스코드 설정",
|
||||||
"policyAuthSetPincode": "PIN 코드 설정",
|
"policyAuthSetPincode": "PIN 코드 설정",
|
||||||
"policyAuthSetEmailWhitelist": "이메일 화이트리스트 설정",
|
"policyAuthSetEmailWhitelist": "이메일 화이트리스트 설정",
|
||||||
@@ -1431,6 +1434,15 @@
|
|||||||
"actionSetResourcePincode": "리소스 핀코드 설정",
|
"actionSetResourcePincode": "리소스 핀코드 설정",
|
||||||
"actionSetResourceEmailWhitelist": "리소스 이메일 화이트리스트 설정",
|
"actionSetResourceEmailWhitelist": "리소스 이메일 화이트리스트 설정",
|
||||||
"actionGetResourceEmailWhitelist": "리소스 이메일 화이트리스트 가져오기",
|
"actionGetResourceEmailWhitelist": "리소스 이메일 화이트리스트 가져오기",
|
||||||
|
"actionGetResourcePolicy": "Get Resource Policy",
|
||||||
|
"actionUpdateResourcePolicy": "Update Resource Policy",
|
||||||
|
"actionSetResourcePolicyUsers": "Set Resource Policy Users",
|
||||||
|
"actionSetResourcePolicyRoles": "Set Resource Policy Roles",
|
||||||
|
"actionSetResourcePolicyPassword": "Set Resource Policy Password",
|
||||||
|
"actionSetResourcePolicyPincode": "Set Resource Policy Pincode",
|
||||||
|
"actionSetResourcePolicyHeaderAuth": "Set Resource Policy Header Authentication",
|
||||||
|
"actionSetResourcePolicyWhitelist": "Set Resource Policy Email Whitelist",
|
||||||
|
"actionSetResourcePolicyRules": "Set Resource Policy Rules",
|
||||||
"actionCreateTarget": "대상 만들기",
|
"actionCreateTarget": "대상 만들기",
|
||||||
"actionDeleteTarget": "대상 삭제",
|
"actionDeleteTarget": "대상 삭제",
|
||||||
"actionGetTarget": "대상 가져오기",
|
"actionGetTarget": "대상 가져오기",
|
||||||
@@ -1507,6 +1519,30 @@
|
|||||||
"navbar": "탐색 메뉴",
|
"navbar": "탐색 메뉴",
|
||||||
"navbarDescription": "애플리케이션의 주요 탐색 메뉴",
|
"navbarDescription": "애플리케이션의 주요 탐색 메뉴",
|
||||||
"navbarDocsLink": "문서",
|
"navbarDocsLink": "문서",
|
||||||
|
"commandPaletteTitle": "Command Palette",
|
||||||
|
"commandPaletteDescription": "Search for pages, organizations, resources, and actions",
|
||||||
|
"commandPaletteSearchPlaceholder": "Search pages, resources, actions...",
|
||||||
|
"commandPaletteNoResults": "No results found.",
|
||||||
|
"commandPaletteSearching": "Searching...",
|
||||||
|
"commandPaletteNavigation": "Navigation",
|
||||||
|
"commandPaletteOrganizations": "Organizations",
|
||||||
|
"commandPaletteSites": "Sites",
|
||||||
|
"commandPaletteResources": "Resources",
|
||||||
|
"commandPaletteUsers": "Users",
|
||||||
|
"commandPaletteClients": "Machine Clients",
|
||||||
|
"commandPaletteActions": "Actions",
|
||||||
|
"commandPaletteCreateSite": "Create Site",
|
||||||
|
"commandPaletteCreateProxyResource": "Create Public Resource",
|
||||||
|
"commandPaletteCreatePrivateResource": "Create Private Resource",
|
||||||
|
"commandPaletteCreateUser": "Create User",
|
||||||
|
"commandPaletteCreateApiKey": "Create API Key",
|
||||||
|
"commandPaletteCreateMachineClient": "Create Machine Client",
|
||||||
|
"commandPaletteCreateAlertRule": "Create Alert Rule",
|
||||||
|
"commandPaletteCreateIdentityProvider": "Create Identity Provider",
|
||||||
|
"commandPaletteToggleTheme": "Toggle Theme",
|
||||||
|
"commandPaletteChooseOrganization": "Choose Organization",
|
||||||
|
"commandPaletteShortcutMac": "⌘K",
|
||||||
|
"commandPaletteShortcutWindows": "Ctrl K",
|
||||||
"otpErrorEnable": "2FA를 활성화할 수 없습니다.",
|
"otpErrorEnable": "2FA를 활성화할 수 없습니다.",
|
||||||
"otpErrorEnableDescription": "2FA를 활성화하는 동안 오류가 발생했습니다",
|
"otpErrorEnableDescription": "2FA를 활성화하는 동안 오류가 발생했습니다",
|
||||||
"otpSetupCheckCode": "6자리 코드를 입력하세요",
|
"otpSetupCheckCode": "6자리 코드를 입력하세요",
|
||||||
@@ -1584,6 +1620,45 @@
|
|||||||
"sidebarManagement": "관리",
|
"sidebarManagement": "관리",
|
||||||
"sidebarBillingAndLicenses": "결제 및 라이선스",
|
"sidebarBillingAndLicenses": "결제 및 라이선스",
|
||||||
"sidebarLogsAnalytics": "분석",
|
"sidebarLogsAnalytics": "분석",
|
||||||
|
"commandSites": "Sites",
|
||||||
|
"commandActionModeInfo": "Type \">\" To Open Action Mode",
|
||||||
|
"commandResources": "Resources",
|
||||||
|
"commandProxyResources": "Public Resources",
|
||||||
|
"commandClientResources": "Private Resources",
|
||||||
|
"commandClients": "Clients",
|
||||||
|
"commandUserDevices": "User Devices",
|
||||||
|
"commandMachineClients": "Machine Clients",
|
||||||
|
"commandDomains": "Domains",
|
||||||
|
"commandRemoteExitNodes": "Remote Nodes",
|
||||||
|
"commandTeam": "Team",
|
||||||
|
"commandUsers": "Users",
|
||||||
|
"commandRoles": "Roles",
|
||||||
|
"commandInvitations": "Invitations",
|
||||||
|
"commandPolicies": "Shared Policies",
|
||||||
|
"commandResourcePolicies": "Public Resources Policies",
|
||||||
|
"commandIdentityProviders": "Identity Providers",
|
||||||
|
"commandApprovals": "Approval Requests",
|
||||||
|
"commandShareableLinks": "Shareable Links",
|
||||||
|
"commandOrganization": "Organization",
|
||||||
|
"commandLogsAndAnalytics": "Logs & Analytics",
|
||||||
|
"commandLogsAnalytics": "Analytics",
|
||||||
|
"commandLogsRequest": "HTTP Request Logs",
|
||||||
|
"commandLogsAccess": "Authentication Logs",
|
||||||
|
"commandLogsAction": "Admin Action Logs",
|
||||||
|
"commandLogsConnection": "Network Logs",
|
||||||
|
"commandLogsStreaming": "Event Streaming",
|
||||||
|
"commandManagement": "Management",
|
||||||
|
"commandAlerting": "Alerting",
|
||||||
|
"commandProvisioning": "Provisioning",
|
||||||
|
"commandBluePrints": "Blueprints",
|
||||||
|
"commandApiKeys": "API Keys",
|
||||||
|
"commandBillingAndLicenses": "Billing & Licenses",
|
||||||
|
"commandBilling": "Billing",
|
||||||
|
"commandEnterpriseLicenses": "Licenses",
|
||||||
|
"commandSettings": "Settings",
|
||||||
|
"commandLauncher": "Launcher",
|
||||||
|
"commandResourceLauncher": "Resource Launcher",
|
||||||
|
"commandSearchResults": "Search Results",
|
||||||
"alertingTitle": "알림",
|
"alertingTitle": "알림",
|
||||||
"alertingDescription": "알림에 대한 소스, 트리거 및 작업 정의",
|
"alertingDescription": "알림에 대한 소스, 트리거 및 작업 정의",
|
||||||
"alertingRules": "알림 규칙",
|
"alertingRules": "알림 규칙",
|
||||||
@@ -1915,6 +1990,9 @@
|
|||||||
"billingDomains": "도메인",
|
"billingDomains": "도메인",
|
||||||
"billingOrganizations": "조직",
|
"billingOrganizations": "조직",
|
||||||
"billingRemoteExitNodes": "원격 노드",
|
"billingRemoteExitNodes": "원격 노드",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "구성된 한도가 없습니다.",
|
"billingNoLimitConfigured": "구성된 한도가 없습니다.",
|
||||||
"billingEstimatedPeriod": "예상 청구 기간",
|
"billingEstimatedPeriod": "예상 청구 기간",
|
||||||
"billingIncludedUsage": "포함 사용량",
|
"billingIncludedUsage": "포함 사용량",
|
||||||
@@ -1943,6 +2021,9 @@
|
|||||||
"billingUsersInfo": "사용할 수 있는 사용자 수",
|
"billingUsersInfo": "사용할 수 있는 사용자 수",
|
||||||
"billingDomainInfo": "사용할 수 있는 도메인 수",
|
"billingDomainInfo": "사용할 수 있는 도메인 수",
|
||||||
"billingRemoteExitNodesInfo": "사용할 수 있는 원격 노드 수",
|
"billingRemoteExitNodesInfo": "사용할 수 있는 원격 노드 수",
|
||||||
|
"billingPublicResourcesInfo": "How many public resources you can use",
|
||||||
|
"billingPrivateResourcesInfo": "How many private resources you can use",
|
||||||
|
"billingMachineClientsInfo": "How many machine clients you can use",
|
||||||
"billingLicenseKeys": "라이센스 키",
|
"billingLicenseKeys": "라이센스 키",
|
||||||
"billingLicenseKeysDescription": "라이센스 키 구독을 관리하세요",
|
"billingLicenseKeysDescription": "라이센스 키 구독을 관리하세요",
|
||||||
"billingLicenseSubscription": "라이센스 구독",
|
"billingLicenseSubscription": "라이센스 구독",
|
||||||
@@ -2311,6 +2392,12 @@
|
|||||||
"createInternalResourceDialogClose": "닫기",
|
"createInternalResourceDialogClose": "닫기",
|
||||||
"createInternalResourceDialogCreateClientResource": "사이트 리소스 생성",
|
"createInternalResourceDialogCreateClientResource": "사이트 리소스 생성",
|
||||||
"createInternalResourceDialogCreateClientResourceDescription": "선택한 사이트에 연결된 클라이언트에 접근할 새 리소스를 생성합니다",
|
"createInternalResourceDialogCreateClientResourceDescription": "선택한 사이트에 연결된 클라이언트에 접근할 새 리소스를 생성합니다",
|
||||||
|
"privateResourceCreatePageSeeAll": "See All Private Resources",
|
||||||
|
"privateResourceAllowIcmpPing": "Allow ICMP Ping",
|
||||||
|
"privateResourceNetworkAccess": "Network Access",
|
||||||
|
"privateResourceNetworkAccessDescription": "Control TCP/UDP port access and whether ICMP ping is allowed for this resource.",
|
||||||
|
"hostSettings": "Host Settings",
|
||||||
|
"cidrSettings": "CIDR Settings",
|
||||||
"createInternalResourceDialogResourceProperties": "리소스 속성",
|
"createInternalResourceDialogResourceProperties": "리소스 속성",
|
||||||
"createInternalResourceDialogName": "이름",
|
"createInternalResourceDialogName": "이름",
|
||||||
"createInternalResourceDialogSite": "사이트",
|
"createInternalResourceDialogSite": "사이트",
|
||||||
@@ -2459,6 +2546,7 @@
|
|||||||
"noRemoteExitNodesAvailableDescription": "이 조직에 사용 가능한 노드가 없습니다. 로컬 사이트를 사용하려면 먼저 노드를 생성하세요.",
|
"noRemoteExitNodesAvailableDescription": "이 조직에 사용 가능한 노드가 없습니다. 로컬 사이트를 사용하려면 먼저 노드를 생성하세요.",
|
||||||
"exitNode": "종단 노드",
|
"exitNode": "종단 노드",
|
||||||
"country": "국가",
|
"country": "국가",
|
||||||
|
"countryIsNot": "Country Is Not",
|
||||||
"rulesMatchCountry": "현재 소스 IP를 기반으로 합니다",
|
"rulesMatchCountry": "현재 소스 IP를 기반으로 합니다",
|
||||||
"region": "지역",
|
"region": "지역",
|
||||||
"selectRegion": "지역 선택",
|
"selectRegion": "지역 선택",
|
||||||
@@ -3177,7 +3265,7 @@
|
|||||||
"editInternalResourceDialogAddUsers": "사용자 추가",
|
"editInternalResourceDialogAddUsers": "사용자 추가",
|
||||||
"editInternalResourceDialogAddClients": "클라이언트 추가",
|
"editInternalResourceDialogAddClients": "클라이언트 추가",
|
||||||
"editInternalResourceDialogDestinationLabel": "대상지",
|
"editInternalResourceDialogDestinationLabel": "대상지",
|
||||||
"editInternalResourceDialogDestinationDescription": "내부 리소스의 목적지 주소를 지정하세요. 선택한 모드에 따라 이 주소는 호스트명, IP 주소, 또는 CIDR 범위가 될 수 있습니다. 더욱 쉽게 식별할 수 있도록 내부 DNS 별칭을 설정할 수 있습니다.",
|
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it",
|
||||||
"internalResourceFormMultiSiteRoutingHelp": "다중 사이트를 선택하면 높은 가용성을 위해 회복력 있는 라우팅 및 페일오버가 가능해집니다.",
|
"internalResourceFormMultiSiteRoutingHelp": "다중 사이트를 선택하면 높은 가용성을 위해 회복력 있는 라우팅 및 페일오버가 가능해집니다.",
|
||||||
"internalResourceFormMultiSiteRoutingHelpLearnMore": "자세히 알아보기",
|
"internalResourceFormMultiSiteRoutingHelpLearnMore": "자세히 알아보기",
|
||||||
"editInternalResourceDialogPortRestrictionsDescription": "특정 TCP/UDP 포트에 대한 접근을 제한하거나 모든 포트를 허용/차단하십시오.",
|
"editInternalResourceDialogPortRestrictionsDescription": "특정 TCP/UDP 포트에 대한 접근을 제한하거나 모든 포트를 허용/차단하십시오.",
|
||||||
@@ -3571,18 +3659,24 @@
|
|||||||
"memberPortalResourceDisabled": "리소스 비활성화됨",
|
"memberPortalResourceDisabled": "리소스 비활성화됨",
|
||||||
"memberPortalShowingResources": "{start}-{end} 중 {total}개의 리소스를 표시 중",
|
"memberPortalShowingResources": "{start}-{end} 중 {total}개의 리소스를 표시 중",
|
||||||
"resourceLauncherTitle": "리소스 런처",
|
"resourceLauncherTitle": "리소스 런처",
|
||||||
"resourceLauncherDescription": "리소스 세부 정보를 보고 한 곳에서 실행하세요",
|
"resourceSidebarLauncherTitle": "Launcher",
|
||||||
"resourceLauncherSearchPlaceholder": "모든 사이트 검색...",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
|
"resourceLauncherSearchPlaceholder": "Search your resources...",
|
||||||
"resourceLauncherDefaultView": "기본값",
|
"resourceLauncherDefaultView": "기본값",
|
||||||
"resourceLauncherSaveView": "보기를 저장",
|
"resourceLauncherSaveView": "보기를 저장",
|
||||||
"resourceLauncherSaveToCurrentView": "현재 보기로 저장",
|
"resourceLauncherSaveToCurrentView": "현재 보기로 저장",
|
||||||
|
"resourceLauncherSaveDefaultPersonal": "Save for Me",
|
||||||
"resourceLauncherResetView": "보기를 재설정",
|
"resourceLauncherResetView": "보기를 재설정",
|
||||||
|
"resourceLauncherResetSystemDefault": "Reset to System Default",
|
||||||
|
"resourceLauncherSystemDefaultRestored": "System default restored",
|
||||||
|
"resourceLauncherSystemDefaultRestoredDescription": "The default view has been reset to the original settings.",
|
||||||
"resourceLauncherSaveAsNewView": "새 보기로 저장",
|
"resourceLauncherSaveAsNewView": "새 보기로 저장",
|
||||||
"resourceLauncherSaveAsNewViewDescription": "현재 필터와 레이아웃을 저장할 이름을 입력하세요.",
|
"resourceLauncherSaveAsNewViewDescription": "현재 필터와 레이아웃을 저장할 이름을 입력하세요.",
|
||||||
"resourceLauncherSaveForEveryone": "모두에게 저장",
|
"resourceLauncherSaveForEveryone": "모두에게 저장",
|
||||||
"resourceLauncherSaveForEveryoneDescription": "이 보기를 모든 조직 구성원과 공유합니다. 체크 해제하면 해당 뷰는 사용자에게만 표시됩니다.",
|
"resourceLauncherSaveForEveryoneDescription": "이 보기를 모든 조직 구성원과 공유합니다. 체크 해제하면 해당 뷰는 사용자에게만 표시됩니다.",
|
||||||
"resourceLauncherMakePersonal": "개인적으로 만들기",
|
"resourceLauncherMakePersonal": "개인적으로 만들기",
|
||||||
"resourceLauncherFilter": "필터",
|
"resourceLauncherFilter": "필터",
|
||||||
|
"resourceLauncherFilterWithCount": "Filter, {count} applied",
|
||||||
"resourceLauncherSort": "정렬",
|
"resourceLauncherSort": "정렬",
|
||||||
"resourceLauncherSortAscending": "오름차순 정렬",
|
"resourceLauncherSortAscending": "오름차순 정렬",
|
||||||
"resourceLauncherSortDescending": "내림차순 정렬",
|
"resourceLauncherSortDescending": "내림차순 정렬",
|
||||||
@@ -3590,6 +3684,7 @@
|
|||||||
"resourceLauncherGroupBy": "그룹화 기준",
|
"resourceLauncherGroupBy": "그룹화 기준",
|
||||||
"resourceLauncherGroupBySite": "사이트",
|
"resourceLauncherGroupBySite": "사이트",
|
||||||
"resourceLauncherGroupByLabel": "레이블",
|
"resourceLauncherGroupByLabel": "레이블",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "레이아웃",
|
"resourceLauncherLayout": "레이아웃",
|
||||||
"resourceLauncherLayoutGrid": "그리드",
|
"resourceLauncherLayoutGrid": "그리드",
|
||||||
"resourceLauncherLayoutList": "목록",
|
"resourceLauncherLayoutList": "목록",
|
||||||
@@ -3597,8 +3692,20 @@
|
|||||||
"resourceLauncherShowSiteTags": "사이트 태그 표시",
|
"resourceLauncherShowSiteTags": "사이트 태그 표시",
|
||||||
"resourceLauncherShowRecents": "최근 항목 표시",
|
"resourceLauncherShowRecents": "최근 항목 표시",
|
||||||
"resourceLauncherDeleteView": "보기 삭제",
|
"resourceLauncherDeleteView": "보기 삭제",
|
||||||
|
"resourceLauncherDeleteViewTitle": "Delete View",
|
||||||
|
"resourceLauncherDeleteViewQuestion": "Are you sure you want to delete this launcher view?",
|
||||||
|
"resourceLauncherDeleteViewConfirm": "Delete View",
|
||||||
"resourceLauncherViewAsAdmin": "관리자로 보기",
|
"resourceLauncherViewAsAdmin": "관리자로 보기",
|
||||||
"resourceLauncherResourceDetailsDescription": "이 리소스의 세부정보를 봅니다.",
|
"resourceLauncherResourceDetailsDescription": "Connection information and status for this resource.",
|
||||||
|
"resourceLauncherResourceDetails": "Resource Details",
|
||||||
|
"resourceLauncherAuthMethodsDescription": "Authentication methods enabled for this resource.",
|
||||||
|
"resourceLauncherPrivateClientRequired": "Connect with a client on your device to access this resource privately.",
|
||||||
|
"resourceLauncherPrivateClientRequiredTitle": "Client Connection Required",
|
||||||
|
"resourceLauncherDownloadClient": "Download client",
|
||||||
|
"resourceLauncherFailedToLoadDetails": "Could not load resource details. You may no longer have access to this resource.",
|
||||||
|
"resourceLauncherNoPortRestrictions": "No port restrictions",
|
||||||
|
"resourceLauncherTcp": "TCP",
|
||||||
|
"resourceLauncherUdp": "UDP",
|
||||||
"resourceLauncherUnlabeled": "레이블 없음",
|
"resourceLauncherUnlabeled": "레이블 없음",
|
||||||
"resourceLauncherNoSite": "사이트 없음",
|
"resourceLauncherNoSite": "사이트 없음",
|
||||||
"resourceLauncherNoResourcesInGroup": "이 그룹에는 리소스가 없습니다",
|
"resourceLauncherNoResourcesInGroup": "이 그룹에는 리소스가 없습니다",
|
||||||
@@ -3607,6 +3714,12 @@
|
|||||||
"resourceLauncherEmptyStateNoResultsTitle": "리소스를 찾을 수 없음",
|
"resourceLauncherEmptyStateNoResultsTitle": "리소스를 찾을 수 없음",
|
||||||
"resourceLauncherEmptyStateNoResultsDescription": "현재 검색이나 필터에 맞는 리소스가 없습니다. 필터를 조정하여 찾으려는 항목을 확인해보세요.",
|
"resourceLauncherEmptyStateNoResultsDescription": "현재 검색이나 필터에 맞는 리소스가 없습니다. 필터를 조정하여 찾으려는 항목을 확인해보세요.",
|
||||||
"resourceLauncherEmptyStateNoResultsWithQuery": "\"{query}\"와 일치하는 리소스가 없습니다. 검색을 조정하거나 필터를 지워서 모든 리소스를 확인해보세요.",
|
"resourceLauncherEmptyStateNoResultsWithQuery": "\"{query}\"와 일치하는 리소스가 없습니다. 검색을 조정하거나 필터를 지워서 모든 리소스를 확인해보세요.",
|
||||||
|
"resourceLauncherSearchFirstTitle": "Search or Filter to Browse",
|
||||||
|
"resourceLauncherSearchFirstDescription": "You have access to many resources. Use search or filter by site or label to find what you need.",
|
||||||
|
"resourceLauncherSiteGroupingDisabled": "Site grouping is unavailable at this scale. Filter by site to group a smaller set.",
|
||||||
|
"resourceLauncherLabelGroupingDisabled": "Label grouping is unavailable at this scale.",
|
||||||
|
"resourceLauncherCompactModeHint": "Showing a simplified list for faster browsing. Use search or filters to narrow results.",
|
||||||
|
"resourceLauncherCompactGroupingHint": "Apply site or label filters to enable grouping.",
|
||||||
"resourceLauncherCopiedToClipboard": "클립보드에 복사됨",
|
"resourceLauncherCopiedToClipboard": "클립보드에 복사됨",
|
||||||
"resourceLauncherCopiedAccessDescription": "리소스 액세스가 클립보드에 복사되었습니다.",
|
"resourceLauncherCopiedAccessDescription": "리소스 액세스가 클립보드에 복사되었습니다.",
|
||||||
"resourceLauncherViewNamePlaceholder": "보기 이름",
|
"resourceLauncherViewNamePlaceholder": "보기 이름",
|
||||||
|
|||||||
+120
-7
@@ -266,6 +266,8 @@
|
|||||||
"resourceRawDescriptionCloud": "Proxy forespørsler om rå TCP/UDP ved hjelp av et portnummer. Krever sider for å koble til en ekstern node.",
|
"resourceRawDescriptionCloud": "Proxy forespørsler om rå TCP/UDP ved hjelp av et portnummer. Krever sider for å koble til en ekstern node.",
|
||||||
"resourceCreate": "Opprett ressurs",
|
"resourceCreate": "Opprett ressurs",
|
||||||
"resourceCreateDescription": "Følg trinnene nedenfor for å opprette en ny ressurs",
|
"resourceCreateDescription": "Følg trinnene nedenfor for å opprette en ny ressurs",
|
||||||
|
"resourcePublicCreate": "Create Public Resource",
|
||||||
|
"resourcePublicCreateDescription": "Follow the steps below to create a new public resource that is accessible through a web browser",
|
||||||
"resourceCreateGeneralDescription": "Konfigurer de grunnleggende ressursinnstillingene inkludert navnet og typen",
|
"resourceCreateGeneralDescription": "Konfigurer de grunnleggende ressursinnstillingene inkludert navnet og typen",
|
||||||
"resourceSeeAll": "Se alle ressurser",
|
"resourceSeeAll": "Se alle ressurser",
|
||||||
"resourceCreateGeneral": "Generelt",
|
"resourceCreateGeneral": "Generelt",
|
||||||
@@ -613,7 +615,8 @@
|
|||||||
"idpNameInternal": "Intern",
|
"idpNameInternal": "Intern",
|
||||||
"emailInvalid": "Ugyldig e-postadresse",
|
"emailInvalid": "Ugyldig e-postadresse",
|
||||||
"inviteValidityDuration": "Vennligst velg en varighet",
|
"inviteValidityDuration": "Vennligst velg en varighet",
|
||||||
"accessRoleSelectPlease": "Vennligst velg en rolle",
|
"accessRoleSelectPlease": "A user must belong to at least one role.",
|
||||||
|
"accessRoleRequired": "Role required",
|
||||||
"removeOwnAdminRoleConfirmTitle": "Fjern din administratoradgang?",
|
"removeOwnAdminRoleConfirmTitle": "Fjern din administratoradgang?",
|
||||||
"removeOwnAdminRoleConfirmDescription": "Du vil ikke lenger ha administratorrettigheter i denne organisasjonen etter lagring. En annen administrator kan gjenopprette tilgang hvis nødvendig.",
|
"removeOwnAdminRoleConfirmDescription": "Du vil ikke lenger ha administratorrettigheter i denne organisasjonen etter lagring. En annen administrator kan gjenopprette tilgang hvis nødvendig.",
|
||||||
"removeOwnAdminRoleConfirmButton": "Fjern min administratoradgang",
|
"removeOwnAdminRoleConfirmButton": "Fjern min administratoradgang",
|
||||||
@@ -864,8 +867,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "Grunnleggende Header Autentisering",
|
"policyAuthHeaderAuthTitle": "Grunnleggende Header Autentisering",
|
||||||
"policyAuthHeaderAuthDescription": "Bekreft et tilpasset HTTP-headernavn og verdi ved hver forespørsel",
|
"policyAuthHeaderAuthDescription": "Bekreft et tilpasset HTTP-headernavn og verdi ved hver forespørsel",
|
||||||
"policyAuthHeaderAuthSummary": "Header konfigurert",
|
"policyAuthHeaderAuthSummary": "Header konfigurert",
|
||||||
"policyAuthHeaderName": "Headernavn",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "Forventet verdi",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "Angi passordkode",
|
"policyAuthSetPasscode": "Angi passordkode",
|
||||||
"policyAuthSetPincode": "Sett PIN-kode",
|
"policyAuthSetPincode": "Sett PIN-kode",
|
||||||
"policyAuthSetEmailWhitelist": "Angi e-post hviteliste",
|
"policyAuthSetEmailWhitelist": "Angi e-post hviteliste",
|
||||||
@@ -1431,6 +1434,15 @@
|
|||||||
"actionSetResourcePincode": "Angi ressurspinkode",
|
"actionSetResourcePincode": "Angi ressurspinkode",
|
||||||
"actionSetResourceEmailWhitelist": "Angi e-post-hviteliste for ressurs",
|
"actionSetResourceEmailWhitelist": "Angi e-post-hviteliste for ressurs",
|
||||||
"actionGetResourceEmailWhitelist": "Hent e-post-hviteliste for ressurs",
|
"actionGetResourceEmailWhitelist": "Hent e-post-hviteliste for ressurs",
|
||||||
|
"actionGetResourcePolicy": "Get Resource Policy",
|
||||||
|
"actionUpdateResourcePolicy": "Update Resource Policy",
|
||||||
|
"actionSetResourcePolicyUsers": "Set Resource Policy Users",
|
||||||
|
"actionSetResourcePolicyRoles": "Set Resource Policy Roles",
|
||||||
|
"actionSetResourcePolicyPassword": "Set Resource Policy Password",
|
||||||
|
"actionSetResourcePolicyPincode": "Set Resource Policy Pincode",
|
||||||
|
"actionSetResourcePolicyHeaderAuth": "Set Resource Policy Header Authentication",
|
||||||
|
"actionSetResourcePolicyWhitelist": "Set Resource Policy Email Whitelist",
|
||||||
|
"actionSetResourcePolicyRules": "Set Resource Policy Rules",
|
||||||
"actionCreateTarget": "Opprett mål",
|
"actionCreateTarget": "Opprett mål",
|
||||||
"actionDeleteTarget": "Slett mål",
|
"actionDeleteTarget": "Slett mål",
|
||||||
"actionGetTarget": "Hent mål",
|
"actionGetTarget": "Hent mål",
|
||||||
@@ -1507,6 +1519,30 @@
|
|||||||
"navbar": "Navigasjonsmeny",
|
"navbar": "Navigasjonsmeny",
|
||||||
"navbarDescription": "Hovednavigasjonsmeny for applikasjonen",
|
"navbarDescription": "Hovednavigasjonsmeny for applikasjonen",
|
||||||
"navbarDocsLink": "Dokumentasjon",
|
"navbarDocsLink": "Dokumentasjon",
|
||||||
|
"commandPaletteTitle": "Command Palette",
|
||||||
|
"commandPaletteDescription": "Search for pages, organizations, resources, and actions",
|
||||||
|
"commandPaletteSearchPlaceholder": "Search pages, resources, actions...",
|
||||||
|
"commandPaletteNoResults": "No results found.",
|
||||||
|
"commandPaletteSearching": "Searching...",
|
||||||
|
"commandPaletteNavigation": "Navigation",
|
||||||
|
"commandPaletteOrganizations": "Organizations",
|
||||||
|
"commandPaletteSites": "Sites",
|
||||||
|
"commandPaletteResources": "Resources",
|
||||||
|
"commandPaletteUsers": "Users",
|
||||||
|
"commandPaletteClients": "Machine Clients",
|
||||||
|
"commandPaletteActions": "Actions",
|
||||||
|
"commandPaletteCreateSite": "Create Site",
|
||||||
|
"commandPaletteCreateProxyResource": "Create Public Resource",
|
||||||
|
"commandPaletteCreatePrivateResource": "Create Private Resource",
|
||||||
|
"commandPaletteCreateUser": "Create User",
|
||||||
|
"commandPaletteCreateApiKey": "Create API Key",
|
||||||
|
"commandPaletteCreateMachineClient": "Create Machine Client",
|
||||||
|
"commandPaletteCreateAlertRule": "Create Alert Rule",
|
||||||
|
"commandPaletteCreateIdentityProvider": "Create Identity Provider",
|
||||||
|
"commandPaletteToggleTheme": "Toggle Theme",
|
||||||
|
"commandPaletteChooseOrganization": "Choose Organization",
|
||||||
|
"commandPaletteShortcutMac": "⌘K",
|
||||||
|
"commandPaletteShortcutWindows": "Ctrl K",
|
||||||
"otpErrorEnable": "Kunne ikke aktivere 2FA",
|
"otpErrorEnable": "Kunne ikke aktivere 2FA",
|
||||||
"otpErrorEnableDescription": "En feil oppstod under aktivering av 2FA",
|
"otpErrorEnableDescription": "En feil oppstod under aktivering av 2FA",
|
||||||
"otpSetupCheckCode": "Vennligst skriv inn en 6-sifret kode",
|
"otpSetupCheckCode": "Vennligst skriv inn en 6-sifret kode",
|
||||||
@@ -1584,6 +1620,45 @@
|
|||||||
"sidebarManagement": "Administrasjon",
|
"sidebarManagement": "Administrasjon",
|
||||||
"sidebarBillingAndLicenses": "Fakturering & lisenser",
|
"sidebarBillingAndLicenses": "Fakturering & lisenser",
|
||||||
"sidebarLogsAnalytics": "Analyser",
|
"sidebarLogsAnalytics": "Analyser",
|
||||||
|
"commandSites": "Sites",
|
||||||
|
"commandActionModeInfo": "Type \">\" To Open Action Mode",
|
||||||
|
"commandResources": "Resources",
|
||||||
|
"commandProxyResources": "Public Resources",
|
||||||
|
"commandClientResources": "Private Resources",
|
||||||
|
"commandClients": "Clients",
|
||||||
|
"commandUserDevices": "User Devices",
|
||||||
|
"commandMachineClients": "Machine Clients",
|
||||||
|
"commandDomains": "Domains",
|
||||||
|
"commandRemoteExitNodes": "Remote Nodes",
|
||||||
|
"commandTeam": "Team",
|
||||||
|
"commandUsers": "Users",
|
||||||
|
"commandRoles": "Roles",
|
||||||
|
"commandInvitations": "Invitations",
|
||||||
|
"commandPolicies": "Shared Policies",
|
||||||
|
"commandResourcePolicies": "Public Resources Policies",
|
||||||
|
"commandIdentityProviders": "Identity Providers",
|
||||||
|
"commandApprovals": "Approval Requests",
|
||||||
|
"commandShareableLinks": "Shareable Links",
|
||||||
|
"commandOrganization": "Organization",
|
||||||
|
"commandLogsAndAnalytics": "Logs & Analytics",
|
||||||
|
"commandLogsAnalytics": "Analytics",
|
||||||
|
"commandLogsRequest": "HTTP Request Logs",
|
||||||
|
"commandLogsAccess": "Authentication Logs",
|
||||||
|
"commandLogsAction": "Admin Action Logs",
|
||||||
|
"commandLogsConnection": "Network Logs",
|
||||||
|
"commandLogsStreaming": "Event Streaming",
|
||||||
|
"commandManagement": "Management",
|
||||||
|
"commandAlerting": "Alerting",
|
||||||
|
"commandProvisioning": "Provisioning",
|
||||||
|
"commandBluePrints": "Blueprints",
|
||||||
|
"commandApiKeys": "API Keys",
|
||||||
|
"commandBillingAndLicenses": "Billing & Licenses",
|
||||||
|
"commandBilling": "Billing",
|
||||||
|
"commandEnterpriseLicenses": "Licenses",
|
||||||
|
"commandSettings": "Settings",
|
||||||
|
"commandLauncher": "Launcher",
|
||||||
|
"commandResourceLauncher": "Resource Launcher",
|
||||||
|
"commandSearchResults": "Search Results",
|
||||||
"alertingTitle": "Varsling",
|
"alertingTitle": "Varsling",
|
||||||
"alertingDescription": "Definer kilder, triggere og handlinger for varsler",
|
"alertingDescription": "Definer kilder, triggere og handlinger for varsler",
|
||||||
"alertingRules": "Varslingsregler",
|
"alertingRules": "Varslingsregler",
|
||||||
@@ -1915,6 +1990,9 @@
|
|||||||
"billingDomains": "Domener",
|
"billingDomains": "Domener",
|
||||||
"billingOrganizations": "Orger",
|
"billingOrganizations": "Orger",
|
||||||
"billingRemoteExitNodes": "Eksterne Noder",
|
"billingRemoteExitNodes": "Eksterne Noder",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "Ingen grense konfigurert",
|
"billingNoLimitConfigured": "Ingen grense konfigurert",
|
||||||
"billingEstimatedPeriod": "Estimert faktureringsperiode",
|
"billingEstimatedPeriod": "Estimert faktureringsperiode",
|
||||||
"billingIncludedUsage": "Inkludert Bruk",
|
"billingIncludedUsage": "Inkludert Bruk",
|
||||||
@@ -1943,6 +2021,9 @@
|
|||||||
"billingUsersInfo": "Hvor mange brukere du kan bruke",
|
"billingUsersInfo": "Hvor mange brukere du kan bruke",
|
||||||
"billingDomainInfo": "Hvor mange domener du kan bruke",
|
"billingDomainInfo": "Hvor mange domener du kan bruke",
|
||||||
"billingRemoteExitNodesInfo": "Hvor mange fjernnoder du kan bruke",
|
"billingRemoteExitNodesInfo": "Hvor mange fjernnoder du kan bruke",
|
||||||
|
"billingPublicResourcesInfo": "How many public resources you can use",
|
||||||
|
"billingPrivateResourcesInfo": "How many private resources you can use",
|
||||||
|
"billingMachineClientsInfo": "How many machine clients you can use",
|
||||||
"billingLicenseKeys": "Lisensnøkler",
|
"billingLicenseKeys": "Lisensnøkler",
|
||||||
"billingLicenseKeysDescription": "Administrer dine lisensnøkkelabonnementer",
|
"billingLicenseKeysDescription": "Administrer dine lisensnøkkelabonnementer",
|
||||||
"billingLicenseSubscription": "Lisens abonnement",
|
"billingLicenseSubscription": "Lisens abonnement",
|
||||||
@@ -2311,6 +2392,12 @@
|
|||||||
"createInternalResourceDialogClose": "Lukk",
|
"createInternalResourceDialogClose": "Lukk",
|
||||||
"createInternalResourceDialogCreateClientResource": "Opprett privat ressurs",
|
"createInternalResourceDialogCreateClientResource": "Opprett privat ressurs",
|
||||||
"createInternalResourceDialogCreateClientResourceDescription": "Opprett en ny ressurs som bare vil være tilgjengelig for kunder som er koblet til organisasjonen",
|
"createInternalResourceDialogCreateClientResourceDescription": "Opprett en ny ressurs som bare vil være tilgjengelig for kunder som er koblet til organisasjonen",
|
||||||
|
"privateResourceCreatePageSeeAll": "See All Private Resources",
|
||||||
|
"privateResourceAllowIcmpPing": "Allow ICMP Ping",
|
||||||
|
"privateResourceNetworkAccess": "Network Access",
|
||||||
|
"privateResourceNetworkAccessDescription": "Control TCP/UDP port access and whether ICMP ping is allowed for this resource.",
|
||||||
|
"hostSettings": "Host Settings",
|
||||||
|
"cidrSettings": "CIDR Settings",
|
||||||
"createInternalResourceDialogResourceProperties": "Ressursegenskaper",
|
"createInternalResourceDialogResourceProperties": "Ressursegenskaper",
|
||||||
"createInternalResourceDialogName": "Navn",
|
"createInternalResourceDialogName": "Navn",
|
||||||
"createInternalResourceDialogSite": "Område",
|
"createInternalResourceDialogSite": "Område",
|
||||||
@@ -2459,6 +2546,7 @@
|
|||||||
"noRemoteExitNodesAvailableDescription": "Ingen noder er tilgjengelige for denne organisasjonen. Opprett en node først for å bruke lokale nettsteder.",
|
"noRemoteExitNodesAvailableDescription": "Ingen noder er tilgjengelige for denne organisasjonen. Opprett en node først for å bruke lokale nettsteder.",
|
||||||
"exitNode": "Utgangsnode",
|
"exitNode": "Utgangsnode",
|
||||||
"country": "Land",
|
"country": "Land",
|
||||||
|
"countryIsNot": "Country Is Not",
|
||||||
"rulesMatchCountry": "For tiden basert på kilde IP",
|
"rulesMatchCountry": "For tiden basert på kilde IP",
|
||||||
"region": "Fylke",
|
"region": "Fylke",
|
||||||
"selectRegion": "Velg region",
|
"selectRegion": "Velg region",
|
||||||
@@ -3177,7 +3265,7 @@
|
|||||||
"editInternalResourceDialogAddUsers": "Legg til brukere",
|
"editInternalResourceDialogAddUsers": "Legg til brukere",
|
||||||
"editInternalResourceDialogAddClients": "Legg til klienter",
|
"editInternalResourceDialogAddClients": "Legg til klienter",
|
||||||
"editInternalResourceDialogDestinationLabel": "Destinasjon",
|
"editInternalResourceDialogDestinationLabel": "Destinasjon",
|
||||||
"editInternalResourceDialogDestinationDescription": "Spesifiser destinasjonsadressen for den interne ressursen. Dette kan være et vertsnavn, IP-adresse eller CIDR-sjikt avhengig av valgt modus. Valgfrie oppsett av intern DNS-alias for enklere identifikasjon.",
|
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it",
|
||||||
"internalResourceFormMultiSiteRoutingHelp": "Valg av flere nettsteder muliggjør motstandskraftig ruting og failover for høy tilgjengelighet.",
|
"internalResourceFormMultiSiteRoutingHelp": "Valg av flere nettsteder muliggjør motstandskraftig ruting og failover for høy tilgjengelighet.",
|
||||||
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Lær mer",
|
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Lær mer",
|
||||||
"editInternalResourceDialogPortRestrictionsDescription": "Begrens tilgang til spesifikke TCP/UDP-porter eller tillate/blokkere alle porter.",
|
"editInternalResourceDialogPortRestrictionsDescription": "Begrens tilgang til spesifikke TCP/UDP-porter eller tillate/blokkere alle porter.",
|
||||||
@@ -3571,18 +3659,24 @@
|
|||||||
"memberPortalResourceDisabled": "Ressurs deaktivert",
|
"memberPortalResourceDisabled": "Ressurs deaktivert",
|
||||||
"memberPortalShowingResources": "Viser {start}-{end} av {total} ressurser",
|
"memberPortalShowingResources": "Viser {start}-{end} av {total} ressurser",
|
||||||
"resourceLauncherTitle": "Ressurslansering",
|
"resourceLauncherTitle": "Ressurslansering",
|
||||||
"resourceLauncherDescription": "Vis ressursdetaljer og start dem fra ett sted",
|
"resourceSidebarLauncherTitle": "Launcher",
|
||||||
"resourceLauncherSearchPlaceholder": "Søk i alle områder...",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
|
"resourceLauncherSearchPlaceholder": "Search your resources...",
|
||||||
"resourceLauncherDefaultView": "Standard",
|
"resourceLauncherDefaultView": "Standard",
|
||||||
"resourceLauncherSaveView": "Lagre visning",
|
"resourceLauncherSaveView": "Lagre visning",
|
||||||
"resourceLauncherSaveToCurrentView": "Lagre til nåværende visning",
|
"resourceLauncherSaveToCurrentView": "Lagre til nåværende visning",
|
||||||
|
"resourceLauncherSaveDefaultPersonal": "Save for Me",
|
||||||
"resourceLauncherResetView": "Tilbakestill visning",
|
"resourceLauncherResetView": "Tilbakestill visning",
|
||||||
|
"resourceLauncherResetSystemDefault": "Reset to System Default",
|
||||||
|
"resourceLauncherSystemDefaultRestored": "System default restored",
|
||||||
|
"resourceLauncherSystemDefaultRestoredDescription": "The default view has been reset to the original settings.",
|
||||||
"resourceLauncherSaveAsNewView": "Lagre som ny visning",
|
"resourceLauncherSaveAsNewView": "Lagre som ny visning",
|
||||||
"resourceLauncherSaveAsNewViewDescription": "Gi denne visningen et navn for å lagre dine nåværende filtre og oppsett.",
|
"resourceLauncherSaveAsNewViewDescription": "Gi denne visningen et navn for å lagre dine nåværende filtre og oppsett.",
|
||||||
"resourceLauncherSaveForEveryone": "Lagre for alle",
|
"resourceLauncherSaveForEveryone": "Lagre for alle",
|
||||||
"resourceLauncherSaveForEveryoneDescription": "Del denne visningen med alle organisasjonsmedlemmer. Når avkrysset, er visningen synlig bare for deg.",
|
"resourceLauncherSaveForEveryoneDescription": "Del denne visningen med alle organisasjonsmedlemmer. Når avkrysset, er visningen synlig bare for deg.",
|
||||||
"resourceLauncherMakePersonal": "Gjør personlig",
|
"resourceLauncherMakePersonal": "Gjør personlig",
|
||||||
"resourceLauncherFilter": "Filter",
|
"resourceLauncherFilter": "Filter",
|
||||||
|
"resourceLauncherFilterWithCount": "Filter, {count} applied",
|
||||||
"resourceLauncherSort": "Sorter",
|
"resourceLauncherSort": "Sorter",
|
||||||
"resourceLauncherSortAscending": "Sorter stigende",
|
"resourceLauncherSortAscending": "Sorter stigende",
|
||||||
"resourceLauncherSortDescending": "Sorter synkende",
|
"resourceLauncherSortDescending": "Sorter synkende",
|
||||||
@@ -3590,6 +3684,7 @@
|
|||||||
"resourceLauncherGroupBy": "Grupper etter",
|
"resourceLauncherGroupBy": "Grupper etter",
|
||||||
"resourceLauncherGroupBySite": "Område",
|
"resourceLauncherGroupBySite": "Område",
|
||||||
"resourceLauncherGroupByLabel": "Etikett",
|
"resourceLauncherGroupByLabel": "Etikett",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "Oppsett",
|
"resourceLauncherLayout": "Oppsett",
|
||||||
"resourceLauncherLayoutGrid": "Rutenett",
|
"resourceLauncherLayoutGrid": "Rutenett",
|
||||||
"resourceLauncherLayoutList": "Liste",
|
"resourceLauncherLayoutList": "Liste",
|
||||||
@@ -3597,8 +3692,20 @@
|
|||||||
"resourceLauncherShowSiteTags": "Vis områdestikkord",
|
"resourceLauncherShowSiteTags": "Vis områdestikkord",
|
||||||
"resourceLauncherShowRecents": "Vis nylige",
|
"resourceLauncherShowRecents": "Vis nylige",
|
||||||
"resourceLauncherDeleteView": "Slett visning",
|
"resourceLauncherDeleteView": "Slett visning",
|
||||||
|
"resourceLauncherDeleteViewTitle": "Delete View",
|
||||||
|
"resourceLauncherDeleteViewQuestion": "Are you sure you want to delete this launcher view?",
|
||||||
|
"resourceLauncherDeleteViewConfirm": "Delete View",
|
||||||
"resourceLauncherViewAsAdmin": "Vis som administrator",
|
"resourceLauncherViewAsAdmin": "Vis som administrator",
|
||||||
"resourceLauncherResourceDetailsDescription": "Vis detaljer for denne ressursen.",
|
"resourceLauncherResourceDetailsDescription": "Connection information and status for this resource.",
|
||||||
|
"resourceLauncherResourceDetails": "Resource Details",
|
||||||
|
"resourceLauncherAuthMethodsDescription": "Authentication methods enabled for this resource.",
|
||||||
|
"resourceLauncherPrivateClientRequired": "Connect with a client on your device to access this resource privately.",
|
||||||
|
"resourceLauncherPrivateClientRequiredTitle": "Client Connection Required",
|
||||||
|
"resourceLauncherDownloadClient": "Download client",
|
||||||
|
"resourceLauncherFailedToLoadDetails": "Could not load resource details. You may no longer have access to this resource.",
|
||||||
|
"resourceLauncherNoPortRestrictions": "No port restrictions",
|
||||||
|
"resourceLauncherTcp": "TCP",
|
||||||
|
"resourceLauncherUdp": "UDP",
|
||||||
"resourceLauncherUnlabeled": "Umerket",
|
"resourceLauncherUnlabeled": "Umerket",
|
||||||
"resourceLauncherNoSite": "Ingen område",
|
"resourceLauncherNoSite": "Ingen område",
|
||||||
"resourceLauncherNoResourcesInGroup": "Ingen ressurser i denne gruppen",
|
"resourceLauncherNoResourcesInGroup": "Ingen ressurser i denne gruppen",
|
||||||
@@ -3607,6 +3714,12 @@
|
|||||||
"resourceLauncherEmptyStateNoResultsTitle": "Ingen ressurser funnet",
|
"resourceLauncherEmptyStateNoResultsTitle": "Ingen ressurser funnet",
|
||||||
"resourceLauncherEmptyStateNoResultsDescription": "Ingen ressurser matcher dine nåværende søk eller filtre. Prøv å justere dem for å finne det du leter etter.",
|
"resourceLauncherEmptyStateNoResultsDescription": "Ingen ressurser matcher dine nåværende søk eller filtre. Prøv å justere dem for å finne det du leter etter.",
|
||||||
"resourceLauncherEmptyStateNoResultsWithQuery": "Ingen ressurser samsvarer med \"{query}\". Prøv å justere søket eller fjern filtrene for å se alle ressursene.",
|
"resourceLauncherEmptyStateNoResultsWithQuery": "Ingen ressurser samsvarer med \"{query}\". Prøv å justere søket eller fjern filtrene for å se alle ressursene.",
|
||||||
|
"resourceLauncherSearchFirstTitle": "Search or Filter to Browse",
|
||||||
|
"resourceLauncherSearchFirstDescription": "You have access to many resources. Use search or filter by site or label to find what you need.",
|
||||||
|
"resourceLauncherSiteGroupingDisabled": "Site grouping is unavailable at this scale. Filter by site to group a smaller set.",
|
||||||
|
"resourceLauncherLabelGroupingDisabled": "Label grouping is unavailable at this scale.",
|
||||||
|
"resourceLauncherCompactModeHint": "Showing a simplified list for faster browsing. Use search or filters to narrow results.",
|
||||||
|
"resourceLauncherCompactGroupingHint": "Apply site or label filters to enable grouping.",
|
||||||
"resourceLauncherCopiedToClipboard": "Kopiert til utklippstavlen",
|
"resourceLauncherCopiedToClipboard": "Kopiert til utklippstavlen",
|
||||||
"resourceLauncherCopiedAccessDescription": "Ressurstilgang er kopiert til utklippstavlen din.",
|
"resourceLauncherCopiedAccessDescription": "Ressurstilgang er kopiert til utklippstavlen din.",
|
||||||
"resourceLauncherViewNamePlaceholder": "Visningsnavn",
|
"resourceLauncherViewNamePlaceholder": "Visningsnavn",
|
||||||
|
|||||||
+120
-7
@@ -266,6 +266,8 @@
|
|||||||
"resourceRawDescriptionCloud": "Proxy verzoeken over rauwe TCP/UDP met behulp van een poortnummer. Vereist sites om verbinding te maken met een remote node.",
|
"resourceRawDescriptionCloud": "Proxy verzoeken over rauwe TCP/UDP met behulp van een poortnummer. Vereist sites om verbinding te maken met een remote node.",
|
||||||
"resourceCreate": "Bron maken",
|
"resourceCreate": "Bron maken",
|
||||||
"resourceCreateDescription": "Volg de onderstaande stappen om een nieuwe bron te maken",
|
"resourceCreateDescription": "Volg de onderstaande stappen om een nieuwe bron te maken",
|
||||||
|
"resourcePublicCreate": "Create Public Resource",
|
||||||
|
"resourcePublicCreateDescription": "Follow the steps below to create a new public resource that is accessible through a web browser",
|
||||||
"resourceCreateGeneralDescription": "Configureer de basisinstellingen van de bron, inclusief de naam en het type",
|
"resourceCreateGeneralDescription": "Configureer de basisinstellingen van de bron, inclusief de naam en het type",
|
||||||
"resourceSeeAll": "Alle bronnen bekijken",
|
"resourceSeeAll": "Alle bronnen bekijken",
|
||||||
"resourceCreateGeneral": "Algemeen",
|
"resourceCreateGeneral": "Algemeen",
|
||||||
@@ -613,7 +615,8 @@
|
|||||||
"idpNameInternal": "Intern",
|
"idpNameInternal": "Intern",
|
||||||
"emailInvalid": "Ongeldig e-mailadres",
|
"emailInvalid": "Ongeldig e-mailadres",
|
||||||
"inviteValidityDuration": "Selecteer een tijdsduur",
|
"inviteValidityDuration": "Selecteer een tijdsduur",
|
||||||
"accessRoleSelectPlease": "Selecteer een rol",
|
"accessRoleSelectPlease": "A user must belong to at least one role.",
|
||||||
|
"accessRoleRequired": "Role required",
|
||||||
"removeOwnAdminRoleConfirmTitle": "Uw beheerderstoegang verwijderen?",
|
"removeOwnAdminRoleConfirmTitle": "Uw beheerderstoegang verwijderen?",
|
||||||
"removeOwnAdminRoleConfirmDescription": "U zult na het opslaan geen beheerdersrechten meer hebben in deze organisatie. Een andere beheerder kan de toegang indien nodig herstellen.",
|
"removeOwnAdminRoleConfirmDescription": "U zult na het opslaan geen beheerdersrechten meer hebben in deze organisatie. Een andere beheerder kan de toegang indien nodig herstellen.",
|
||||||
"removeOwnAdminRoleConfirmButton": "Verwijder Mijn Beheerderstoegang",
|
"removeOwnAdminRoleConfirmButton": "Verwijder Mijn Beheerderstoegang",
|
||||||
@@ -864,8 +867,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "Basic Header Authenticatie",
|
"policyAuthHeaderAuthTitle": "Basic Header Authenticatie",
|
||||||
"policyAuthHeaderAuthDescription": "Valideer een aangepaste HTTP-headernaam en waarde bij elk verzoek",
|
"policyAuthHeaderAuthDescription": "Valideer een aangepaste HTTP-headernaam en waarde bij elk verzoek",
|
||||||
"policyAuthHeaderAuthSummary": "Header geconfigureerd",
|
"policyAuthHeaderAuthSummary": "Header geconfigureerd",
|
||||||
"policyAuthHeaderName": "Header naam",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "Verwachte waarde",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "Stel toegangscode in",
|
"policyAuthSetPasscode": "Stel toegangscode in",
|
||||||
"policyAuthSetPincode": "Stel Pincode in",
|
"policyAuthSetPincode": "Stel Pincode in",
|
||||||
"policyAuthSetEmailWhitelist": "Stel E-mail Whitelist in",
|
"policyAuthSetEmailWhitelist": "Stel E-mail Whitelist in",
|
||||||
@@ -1431,6 +1434,15 @@
|
|||||||
"actionSetResourcePincode": "Stel Resource Pincode in",
|
"actionSetResourcePincode": "Stel Resource Pincode in",
|
||||||
"actionSetResourceEmailWhitelist": "Stel Resource e-mail whitelist in",
|
"actionSetResourceEmailWhitelist": "Stel Resource e-mail whitelist in",
|
||||||
"actionGetResourceEmailWhitelist": "Verkrijg Resource E-mail Whitelist",
|
"actionGetResourceEmailWhitelist": "Verkrijg Resource E-mail Whitelist",
|
||||||
|
"actionGetResourcePolicy": "Get Resource Policy",
|
||||||
|
"actionUpdateResourcePolicy": "Update Resource Policy",
|
||||||
|
"actionSetResourcePolicyUsers": "Set Resource Policy Users",
|
||||||
|
"actionSetResourcePolicyRoles": "Set Resource Policy Roles",
|
||||||
|
"actionSetResourcePolicyPassword": "Set Resource Policy Password",
|
||||||
|
"actionSetResourcePolicyPincode": "Set Resource Policy Pincode",
|
||||||
|
"actionSetResourcePolicyHeaderAuth": "Set Resource Policy Header Authentication",
|
||||||
|
"actionSetResourcePolicyWhitelist": "Set Resource Policy Email Whitelist",
|
||||||
|
"actionSetResourcePolicyRules": "Set Resource Policy Rules",
|
||||||
"actionCreateTarget": "Doelwit aanmaken",
|
"actionCreateTarget": "Doelwit aanmaken",
|
||||||
"actionDeleteTarget": "Verwijder doel",
|
"actionDeleteTarget": "Verwijder doel",
|
||||||
"actionGetTarget": "Verkrijg Doel",
|
"actionGetTarget": "Verkrijg Doel",
|
||||||
@@ -1507,6 +1519,30 @@
|
|||||||
"navbar": "Navigatiemenu",
|
"navbar": "Navigatiemenu",
|
||||||
"navbarDescription": "Hoofd navigatie menu voor de applicatie",
|
"navbarDescription": "Hoofd navigatie menu voor de applicatie",
|
||||||
"navbarDocsLink": "Documentatie",
|
"navbarDocsLink": "Documentatie",
|
||||||
|
"commandPaletteTitle": "Command Palette",
|
||||||
|
"commandPaletteDescription": "Search for pages, organizations, resources, and actions",
|
||||||
|
"commandPaletteSearchPlaceholder": "Search pages, resources, actions...",
|
||||||
|
"commandPaletteNoResults": "No results found.",
|
||||||
|
"commandPaletteSearching": "Searching...",
|
||||||
|
"commandPaletteNavigation": "Navigation",
|
||||||
|
"commandPaletteOrganizations": "Organizations",
|
||||||
|
"commandPaletteSites": "Sites",
|
||||||
|
"commandPaletteResources": "Resources",
|
||||||
|
"commandPaletteUsers": "Users",
|
||||||
|
"commandPaletteClients": "Machine Clients",
|
||||||
|
"commandPaletteActions": "Actions",
|
||||||
|
"commandPaletteCreateSite": "Create Site",
|
||||||
|
"commandPaletteCreateProxyResource": "Create Public Resource",
|
||||||
|
"commandPaletteCreatePrivateResource": "Create Private Resource",
|
||||||
|
"commandPaletteCreateUser": "Create User",
|
||||||
|
"commandPaletteCreateApiKey": "Create API Key",
|
||||||
|
"commandPaletteCreateMachineClient": "Create Machine Client",
|
||||||
|
"commandPaletteCreateAlertRule": "Create Alert Rule",
|
||||||
|
"commandPaletteCreateIdentityProvider": "Create Identity Provider",
|
||||||
|
"commandPaletteToggleTheme": "Toggle Theme",
|
||||||
|
"commandPaletteChooseOrganization": "Choose Organization",
|
||||||
|
"commandPaletteShortcutMac": "⌘K",
|
||||||
|
"commandPaletteShortcutWindows": "Ctrl K",
|
||||||
"otpErrorEnable": "Kan 2FA niet inschakelen",
|
"otpErrorEnable": "Kan 2FA niet inschakelen",
|
||||||
"otpErrorEnableDescription": "Er is een fout opgetreden tijdens het inschakelen van 2FA",
|
"otpErrorEnableDescription": "Er is een fout opgetreden tijdens het inschakelen van 2FA",
|
||||||
"otpSetupCheckCode": "Voer een 6-cijferige code in",
|
"otpSetupCheckCode": "Voer een 6-cijferige code in",
|
||||||
@@ -1584,6 +1620,45 @@
|
|||||||
"sidebarManagement": "Beheer",
|
"sidebarManagement": "Beheer",
|
||||||
"sidebarBillingAndLicenses": "Facturatie & Licenties",
|
"sidebarBillingAndLicenses": "Facturatie & Licenties",
|
||||||
"sidebarLogsAnalytics": "Analyses",
|
"sidebarLogsAnalytics": "Analyses",
|
||||||
|
"commandSites": "Sites",
|
||||||
|
"commandActionModeInfo": "Type \">\" To Open Action Mode",
|
||||||
|
"commandResources": "Resources",
|
||||||
|
"commandProxyResources": "Public Resources",
|
||||||
|
"commandClientResources": "Private Resources",
|
||||||
|
"commandClients": "Clients",
|
||||||
|
"commandUserDevices": "User Devices",
|
||||||
|
"commandMachineClients": "Machine Clients",
|
||||||
|
"commandDomains": "Domains",
|
||||||
|
"commandRemoteExitNodes": "Remote Nodes",
|
||||||
|
"commandTeam": "Team",
|
||||||
|
"commandUsers": "Users",
|
||||||
|
"commandRoles": "Roles",
|
||||||
|
"commandInvitations": "Invitations",
|
||||||
|
"commandPolicies": "Shared Policies",
|
||||||
|
"commandResourcePolicies": "Public Resources Policies",
|
||||||
|
"commandIdentityProviders": "Identity Providers",
|
||||||
|
"commandApprovals": "Approval Requests",
|
||||||
|
"commandShareableLinks": "Shareable Links",
|
||||||
|
"commandOrganization": "Organization",
|
||||||
|
"commandLogsAndAnalytics": "Logs & Analytics",
|
||||||
|
"commandLogsAnalytics": "Analytics",
|
||||||
|
"commandLogsRequest": "HTTP Request Logs",
|
||||||
|
"commandLogsAccess": "Authentication Logs",
|
||||||
|
"commandLogsAction": "Admin Action Logs",
|
||||||
|
"commandLogsConnection": "Network Logs",
|
||||||
|
"commandLogsStreaming": "Event Streaming",
|
||||||
|
"commandManagement": "Management",
|
||||||
|
"commandAlerting": "Alerting",
|
||||||
|
"commandProvisioning": "Provisioning",
|
||||||
|
"commandBluePrints": "Blueprints",
|
||||||
|
"commandApiKeys": "API Keys",
|
||||||
|
"commandBillingAndLicenses": "Billing & Licenses",
|
||||||
|
"commandBilling": "Billing",
|
||||||
|
"commandEnterpriseLicenses": "Licenses",
|
||||||
|
"commandSettings": "Settings",
|
||||||
|
"commandLauncher": "Launcher",
|
||||||
|
"commandResourceLauncher": "Resource Launcher",
|
||||||
|
"commandSearchResults": "Search Results",
|
||||||
"alertingTitle": "Waarschuwingen",
|
"alertingTitle": "Waarschuwingen",
|
||||||
"alertingDescription": "Definieer bronnen, triggers en acties voor meldingen",
|
"alertingDescription": "Definieer bronnen, triggers en acties voor meldingen",
|
||||||
"alertingRules": "Waarschuwingsregels",
|
"alertingRules": "Waarschuwingsregels",
|
||||||
@@ -1915,6 +1990,9 @@
|
|||||||
"billingDomains": "Domeinen",
|
"billingDomains": "Domeinen",
|
||||||
"billingOrganizations": "Ordenen",
|
"billingOrganizations": "Ordenen",
|
||||||
"billingRemoteExitNodes": "Externe knooppunten",
|
"billingRemoteExitNodes": "Externe knooppunten",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "Geen limiet ingesteld",
|
"billingNoLimitConfigured": "Geen limiet ingesteld",
|
||||||
"billingEstimatedPeriod": "Geschatte Facturatie Periode",
|
"billingEstimatedPeriod": "Geschatte Facturatie Periode",
|
||||||
"billingIncludedUsage": "Opgenomen Gebruik",
|
"billingIncludedUsage": "Opgenomen Gebruik",
|
||||||
@@ -1943,6 +2021,9 @@
|
|||||||
"billingUsersInfo": "Hoeveel gebruikers je kan gebruiken",
|
"billingUsersInfo": "Hoeveel gebruikers je kan gebruiken",
|
||||||
"billingDomainInfo": "Hoeveel domeinen je kunt gebruiken",
|
"billingDomainInfo": "Hoeveel domeinen je kunt gebruiken",
|
||||||
"billingRemoteExitNodesInfo": "Hoeveel externe nodes je kunt gebruiken",
|
"billingRemoteExitNodesInfo": "Hoeveel externe nodes je kunt gebruiken",
|
||||||
|
"billingPublicResourcesInfo": "How many public resources you can use",
|
||||||
|
"billingPrivateResourcesInfo": "How many private resources you can use",
|
||||||
|
"billingMachineClientsInfo": "How many machine clients you can use",
|
||||||
"billingLicenseKeys": "Licentie Sleutels",
|
"billingLicenseKeys": "Licentie Sleutels",
|
||||||
"billingLicenseKeysDescription": "Beheer uw licentiesleutelabonnementen",
|
"billingLicenseKeysDescription": "Beheer uw licentiesleutelabonnementen",
|
||||||
"billingLicenseSubscription": "Licentie abonnement",
|
"billingLicenseSubscription": "Licentie abonnement",
|
||||||
@@ -2311,6 +2392,12 @@
|
|||||||
"createInternalResourceDialogClose": "Sluiten",
|
"createInternalResourceDialogClose": "Sluiten",
|
||||||
"createInternalResourceDialogCreateClientResource": "Privé bron maken",
|
"createInternalResourceDialogCreateClientResource": "Privé bron maken",
|
||||||
"createInternalResourceDialogCreateClientResourceDescription": "Maak een nieuwe bron aan die alleen toegankelijk is voor klanten die verbonden zijn met de organisatie",
|
"createInternalResourceDialogCreateClientResourceDescription": "Maak een nieuwe bron aan die alleen toegankelijk is voor klanten die verbonden zijn met de organisatie",
|
||||||
|
"privateResourceCreatePageSeeAll": "See All Private Resources",
|
||||||
|
"privateResourceAllowIcmpPing": "Allow ICMP Ping",
|
||||||
|
"privateResourceNetworkAccess": "Network Access",
|
||||||
|
"privateResourceNetworkAccessDescription": "Control TCP/UDP port access and whether ICMP ping is allowed for this resource.",
|
||||||
|
"hostSettings": "Host Settings",
|
||||||
|
"cidrSettings": "CIDR Settings",
|
||||||
"createInternalResourceDialogResourceProperties": "Bron-eigenschappen",
|
"createInternalResourceDialogResourceProperties": "Bron-eigenschappen",
|
||||||
"createInternalResourceDialogName": "Naam",
|
"createInternalResourceDialogName": "Naam",
|
||||||
"createInternalResourceDialogSite": "Site",
|
"createInternalResourceDialogSite": "Site",
|
||||||
@@ -2459,6 +2546,7 @@
|
|||||||
"noRemoteExitNodesAvailableDescription": "Er zijn geen knooppunten beschikbaar voor deze organisatie. Maak eerst een knooppunt aan om lokale sites te gebruiken.",
|
"noRemoteExitNodesAvailableDescription": "Er zijn geen knooppunten beschikbaar voor deze organisatie. Maak eerst een knooppunt aan om lokale sites te gebruiken.",
|
||||||
"exitNode": "Exit Node",
|
"exitNode": "Exit Node",
|
||||||
"country": "Land",
|
"country": "Land",
|
||||||
|
"countryIsNot": "Country Is Not",
|
||||||
"rulesMatchCountry": "Momenteel gebaseerd op bron IP",
|
"rulesMatchCountry": "Momenteel gebaseerd op bron IP",
|
||||||
"region": "Regio",
|
"region": "Regio",
|
||||||
"selectRegion": "Selecteer regio",
|
"selectRegion": "Selecteer regio",
|
||||||
@@ -3177,7 +3265,7 @@
|
|||||||
"editInternalResourceDialogAddUsers": "Gebruikers toevoegen",
|
"editInternalResourceDialogAddUsers": "Gebruikers toevoegen",
|
||||||
"editInternalResourceDialogAddClients": "Clienten toevoegen",
|
"editInternalResourceDialogAddClients": "Clienten toevoegen",
|
||||||
"editInternalResourceDialogDestinationLabel": "Bestemming",
|
"editInternalResourceDialogDestinationLabel": "Bestemming",
|
||||||
"editInternalResourceDialogDestinationDescription": "Specificeer het bestemmingsadres voor de interne bron. Dit kan een hostnaam, IP-adres of CIDR-bereik zijn, afhankelijk van de geselecteerde modus. Stel optioneel een interne DNS-alias in voor eenvoudigere identificatie.",
|
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it",
|
||||||
"internalResourceFormMultiSiteRoutingHelp": "Selecteren van meerdere sites maakt veerkrachtige routing en failover mogelijk voor hoge beschikbaarheid.",
|
"internalResourceFormMultiSiteRoutingHelp": "Selecteren van meerdere sites maakt veerkrachtige routing en failover mogelijk voor hoge beschikbaarheid.",
|
||||||
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Meer informatie",
|
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Meer informatie",
|
||||||
"editInternalResourceDialogPortRestrictionsDescription": "Beperk toegang tot specifieke TCP/UDP-poorten of sta alle poorten toe/blokkeer.",
|
"editInternalResourceDialogPortRestrictionsDescription": "Beperk toegang tot specifieke TCP/UDP-poorten of sta alle poorten toe/blokkeer.",
|
||||||
@@ -3571,18 +3659,24 @@
|
|||||||
"memberPortalResourceDisabled": "Bron Uitgeschakeld",
|
"memberPortalResourceDisabled": "Bron Uitgeschakeld",
|
||||||
"memberPortalShowingResources": "Toont {start}-{end} van {total} bronnen",
|
"memberPortalShowingResources": "Toont {start}-{end} van {total} bronnen",
|
||||||
"resourceLauncherTitle": "Bron Launcher",
|
"resourceLauncherTitle": "Bron Launcher",
|
||||||
"resourceLauncherDescription": "Bekijk brongegevens en start ze vanaf één plek",
|
"resourceSidebarLauncherTitle": "Launcher",
|
||||||
"resourceLauncherSearchPlaceholder": "Zoek alle sites...",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
|
"resourceLauncherSearchPlaceholder": "Search your resources...",
|
||||||
"resourceLauncherDefaultView": "Standaard",
|
"resourceLauncherDefaultView": "Standaard",
|
||||||
"resourceLauncherSaveView": "Weergave Opslaan",
|
"resourceLauncherSaveView": "Weergave Opslaan",
|
||||||
"resourceLauncherSaveToCurrentView": "Opslaan naar huidige weergave",
|
"resourceLauncherSaveToCurrentView": "Opslaan naar huidige weergave",
|
||||||
|
"resourceLauncherSaveDefaultPersonal": "Save for Me",
|
||||||
"resourceLauncherResetView": "Weergave Herstellen",
|
"resourceLauncherResetView": "Weergave Herstellen",
|
||||||
|
"resourceLauncherResetSystemDefault": "Reset to System Default",
|
||||||
|
"resourceLauncherSystemDefaultRestored": "System default restored",
|
||||||
|
"resourceLauncherSystemDefaultRestoredDescription": "The default view has been reset to the original settings.",
|
||||||
"resourceLauncherSaveAsNewView": "Opslaan als Nieuwe Weergave",
|
"resourceLauncherSaveAsNewView": "Opslaan als Nieuwe Weergave",
|
||||||
"resourceLauncherSaveAsNewViewDescription": "Geef deze weergave een naam om je huidige filters en indeling op te slaan.",
|
"resourceLauncherSaveAsNewViewDescription": "Geef deze weergave een naam om je huidige filters en indeling op te slaan.",
|
||||||
"resourceLauncherSaveForEveryone": "Opslaan voor Iedereen",
|
"resourceLauncherSaveForEveryone": "Opslaan voor Iedereen",
|
||||||
"resourceLauncherSaveForEveryoneDescription": "Deel deze weergave met alle organisatieleden. Als dit niet is aangevinkt, is de weergave alleen zichtbaar voor jou.",
|
"resourceLauncherSaveForEveryoneDescription": "Deel deze weergave met alle organisatieleden. Als dit niet is aangevinkt, is de weergave alleen zichtbaar voor jou.",
|
||||||
"resourceLauncherMakePersonal": "Persoonlijk Maken",
|
"resourceLauncherMakePersonal": "Persoonlijk Maken",
|
||||||
"resourceLauncherFilter": "Filter",
|
"resourceLauncherFilter": "Filter",
|
||||||
|
"resourceLauncherFilterWithCount": "Filter, {count} applied",
|
||||||
"resourceLauncherSort": "Sorteren",
|
"resourceLauncherSort": "Sorteren",
|
||||||
"resourceLauncherSortAscending": "Oplopend sorteren",
|
"resourceLauncherSortAscending": "Oplopend sorteren",
|
||||||
"resourceLauncherSortDescending": "Aflopend sorteren",
|
"resourceLauncherSortDescending": "Aflopend sorteren",
|
||||||
@@ -3590,6 +3684,7 @@
|
|||||||
"resourceLauncherGroupBy": "Groep Op",
|
"resourceLauncherGroupBy": "Groep Op",
|
||||||
"resourceLauncherGroupBySite": "Site",
|
"resourceLauncherGroupBySite": "Site",
|
||||||
"resourceLauncherGroupByLabel": "Label",
|
"resourceLauncherGroupByLabel": "Label",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "Lay-out",
|
"resourceLauncherLayout": "Lay-out",
|
||||||
"resourceLauncherLayoutGrid": "Raster",
|
"resourceLauncherLayoutGrid": "Raster",
|
||||||
"resourceLauncherLayoutList": "Lijst",
|
"resourceLauncherLayoutList": "Lijst",
|
||||||
@@ -3597,8 +3692,20 @@
|
|||||||
"resourceLauncherShowSiteTags": "Site Tags Weergeven",
|
"resourceLauncherShowSiteTags": "Site Tags Weergeven",
|
||||||
"resourceLauncherShowRecents": "Recente Weergeven",
|
"resourceLauncherShowRecents": "Recente Weergeven",
|
||||||
"resourceLauncherDeleteView": "Weergave Verwijderen",
|
"resourceLauncherDeleteView": "Weergave Verwijderen",
|
||||||
|
"resourceLauncherDeleteViewTitle": "Delete View",
|
||||||
|
"resourceLauncherDeleteViewQuestion": "Are you sure you want to delete this launcher view?",
|
||||||
|
"resourceLauncherDeleteViewConfirm": "Delete View",
|
||||||
"resourceLauncherViewAsAdmin": "Bekijk als Admin",
|
"resourceLauncherViewAsAdmin": "Bekijk als Admin",
|
||||||
"resourceLauncherResourceDetailsDescription": "Bekijk details voor deze bron.",
|
"resourceLauncherResourceDetailsDescription": "Connection information and status for this resource.",
|
||||||
|
"resourceLauncherResourceDetails": "Resource Details",
|
||||||
|
"resourceLauncherAuthMethodsDescription": "Authentication methods enabled for this resource.",
|
||||||
|
"resourceLauncherPrivateClientRequired": "Connect with a client on your device to access this resource privately.",
|
||||||
|
"resourceLauncherPrivateClientRequiredTitle": "Client Connection Required",
|
||||||
|
"resourceLauncherDownloadClient": "Download client",
|
||||||
|
"resourceLauncherFailedToLoadDetails": "Could not load resource details. You may no longer have access to this resource.",
|
||||||
|
"resourceLauncherNoPortRestrictions": "No port restrictions",
|
||||||
|
"resourceLauncherTcp": "TCP",
|
||||||
|
"resourceLauncherUdp": "UDP",
|
||||||
"resourceLauncherUnlabeled": "Geen label",
|
"resourceLauncherUnlabeled": "Geen label",
|
||||||
"resourceLauncherNoSite": "Geen Site",
|
"resourceLauncherNoSite": "Geen Site",
|
||||||
"resourceLauncherNoResourcesInGroup": "Geen bronnen in deze groep",
|
"resourceLauncherNoResourcesInGroup": "Geen bronnen in deze groep",
|
||||||
@@ -3607,6 +3714,12 @@
|
|||||||
"resourceLauncherEmptyStateNoResultsTitle": "Geen Bronnen Gevonden",
|
"resourceLauncherEmptyStateNoResultsTitle": "Geen Bronnen Gevonden",
|
||||||
"resourceLauncherEmptyStateNoResultsDescription": "Geen bronnen komen overeen met je huidige zoekopdracht of filters. Probeer ze aan te passen om te vinden wat je zoekt.",
|
"resourceLauncherEmptyStateNoResultsDescription": "Geen bronnen komen overeen met je huidige zoekopdracht of filters. Probeer ze aan te passen om te vinden wat je zoekt.",
|
||||||
"resourceLauncherEmptyStateNoResultsWithQuery": "Geen bronnen komen overeen met \"{query}\". Probeer je zoekopdracht aan te passen of filters te wissen om alle bronnen te zien.",
|
"resourceLauncherEmptyStateNoResultsWithQuery": "Geen bronnen komen overeen met \"{query}\". Probeer je zoekopdracht aan te passen of filters te wissen om alle bronnen te zien.",
|
||||||
|
"resourceLauncherSearchFirstTitle": "Search or Filter to Browse",
|
||||||
|
"resourceLauncherSearchFirstDescription": "You have access to many resources. Use search or filter by site or label to find what you need.",
|
||||||
|
"resourceLauncherSiteGroupingDisabled": "Site grouping is unavailable at this scale. Filter by site to group a smaller set.",
|
||||||
|
"resourceLauncherLabelGroupingDisabled": "Label grouping is unavailable at this scale.",
|
||||||
|
"resourceLauncherCompactModeHint": "Showing a simplified list for faster browsing. Use search or filters to narrow results.",
|
||||||
|
"resourceLauncherCompactGroupingHint": "Apply site or label filters to enable grouping.",
|
||||||
"resourceLauncherCopiedToClipboard": "Gekopieerd naar klembord",
|
"resourceLauncherCopiedToClipboard": "Gekopieerd naar klembord",
|
||||||
"resourceLauncherCopiedAccessDescription": "Toegang tot bron is gekopieerd naar je klembord.",
|
"resourceLauncherCopiedAccessDescription": "Toegang tot bron is gekopieerd naar je klembord.",
|
||||||
"resourceLauncherViewNamePlaceholder": "Weergavenaam",
|
"resourceLauncherViewNamePlaceholder": "Weergavenaam",
|
||||||
|
|||||||
+120
-7
@@ -266,6 +266,8 @@
|
|||||||
"resourceRawDescriptionCloud": "Żądania proxy nad surowym TCP/UDP przy użyciu numeru portu. Wymaga stron aby połączyć się ze zdalnym węzłem.",
|
"resourceRawDescriptionCloud": "Żądania proxy nad surowym TCP/UDP przy użyciu numeru portu. Wymaga stron aby połączyć się ze zdalnym węzłem.",
|
||||||
"resourceCreate": "Utwórz zasób",
|
"resourceCreate": "Utwórz zasób",
|
||||||
"resourceCreateDescription": "Wykonaj poniższe kroki, aby utworzyć nowy zasób",
|
"resourceCreateDescription": "Wykonaj poniższe kroki, aby utworzyć nowy zasób",
|
||||||
|
"resourcePublicCreate": "Create Public Resource",
|
||||||
|
"resourcePublicCreateDescription": "Follow the steps below to create a new public resource that is accessible through a web browser",
|
||||||
"resourceCreateGeneralDescription": "Skonfiguruj podstawowe ustawienia zasobu, w tym nazwę i typ",
|
"resourceCreateGeneralDescription": "Skonfiguruj podstawowe ustawienia zasobu, w tym nazwę i typ",
|
||||||
"resourceSeeAll": "Zobacz wszystkie zasoby",
|
"resourceSeeAll": "Zobacz wszystkie zasoby",
|
||||||
"resourceCreateGeneral": "Ogólny",
|
"resourceCreateGeneral": "Ogólny",
|
||||||
@@ -613,7 +615,8 @@
|
|||||||
"idpNameInternal": "Wewnętrzny",
|
"idpNameInternal": "Wewnętrzny",
|
||||||
"emailInvalid": "Nieprawidłowy adres e-mail",
|
"emailInvalid": "Nieprawidłowy adres e-mail",
|
||||||
"inviteValidityDuration": "Proszę wybrać okres ważności",
|
"inviteValidityDuration": "Proszę wybrać okres ważności",
|
||||||
"accessRoleSelectPlease": "Proszę wybrać rolę",
|
"accessRoleSelectPlease": "A user must belong to at least one role.",
|
||||||
|
"accessRoleRequired": "Role required",
|
||||||
"removeOwnAdminRoleConfirmTitle": "Usunąć dostęp administratora?",
|
"removeOwnAdminRoleConfirmTitle": "Usunąć dostęp administratora?",
|
||||||
"removeOwnAdminRoleConfirmDescription": "Po zapisaniu nie będziesz już posiadał uprawnień administratora w tej organizacji. Inny administrator może przywrócić dostęp, jeśli to konieczne.",
|
"removeOwnAdminRoleConfirmDescription": "Po zapisaniu nie będziesz już posiadał uprawnień administratora w tej organizacji. Inny administrator może przywrócić dostęp, jeśli to konieczne.",
|
||||||
"removeOwnAdminRoleConfirmButton": "Usuń mój dostęp administratora",
|
"removeOwnAdminRoleConfirmButton": "Usuń mój dostęp administratora",
|
||||||
@@ -864,8 +867,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "Podstawowe Uwierzytelnianie Nagłówka",
|
"policyAuthHeaderAuthTitle": "Podstawowe Uwierzytelnianie Nagłówka",
|
||||||
"policyAuthHeaderAuthDescription": "Walidacja niestandardowej nazwy i wartości nagłówka HTTP przy każdym żądaniu",
|
"policyAuthHeaderAuthDescription": "Walidacja niestandardowej nazwy i wartości nagłówka HTTP przy każdym żądaniu",
|
||||||
"policyAuthHeaderAuthSummary": "Skonfigurowany nagłówek",
|
"policyAuthHeaderAuthSummary": "Skonfigurowany nagłówek",
|
||||||
"policyAuthHeaderName": "Nazwa nagłówka",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "Oczekiwana wartość",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "Ustaw hasło dostępu",
|
"policyAuthSetPasscode": "Ustaw hasło dostępu",
|
||||||
"policyAuthSetPincode": "Ustaw kod PIN",
|
"policyAuthSetPincode": "Ustaw kod PIN",
|
||||||
"policyAuthSetEmailWhitelist": "Ustaw białą listę e-mail",
|
"policyAuthSetEmailWhitelist": "Ustaw białą listę e-mail",
|
||||||
@@ -1431,6 +1434,15 @@
|
|||||||
"actionSetResourcePincode": "Ustaw kod PIN zasobu",
|
"actionSetResourcePincode": "Ustaw kod PIN zasobu",
|
||||||
"actionSetResourceEmailWhitelist": "Ustaw białą listę email zasobu",
|
"actionSetResourceEmailWhitelist": "Ustaw białą listę email zasobu",
|
||||||
"actionGetResourceEmailWhitelist": "Pobierz białą listę email zasobu",
|
"actionGetResourceEmailWhitelist": "Pobierz białą listę email zasobu",
|
||||||
|
"actionGetResourcePolicy": "Get Resource Policy",
|
||||||
|
"actionUpdateResourcePolicy": "Update Resource Policy",
|
||||||
|
"actionSetResourcePolicyUsers": "Set Resource Policy Users",
|
||||||
|
"actionSetResourcePolicyRoles": "Set Resource Policy Roles",
|
||||||
|
"actionSetResourcePolicyPassword": "Set Resource Policy Password",
|
||||||
|
"actionSetResourcePolicyPincode": "Set Resource Policy Pincode",
|
||||||
|
"actionSetResourcePolicyHeaderAuth": "Set Resource Policy Header Authentication",
|
||||||
|
"actionSetResourcePolicyWhitelist": "Set Resource Policy Email Whitelist",
|
||||||
|
"actionSetResourcePolicyRules": "Set Resource Policy Rules",
|
||||||
"actionCreateTarget": "Utwórz cel",
|
"actionCreateTarget": "Utwórz cel",
|
||||||
"actionDeleteTarget": "Usuń cel",
|
"actionDeleteTarget": "Usuń cel",
|
||||||
"actionGetTarget": "Pobierz cel",
|
"actionGetTarget": "Pobierz cel",
|
||||||
@@ -1507,6 +1519,30 @@
|
|||||||
"navbar": "Menu nawigacyjne",
|
"navbar": "Menu nawigacyjne",
|
||||||
"navbarDescription": "Główne menu nawigacyjne aplikacji",
|
"navbarDescription": "Główne menu nawigacyjne aplikacji",
|
||||||
"navbarDocsLink": "Dokumentacja",
|
"navbarDocsLink": "Dokumentacja",
|
||||||
|
"commandPaletteTitle": "Command Palette",
|
||||||
|
"commandPaletteDescription": "Search for pages, organizations, resources, and actions",
|
||||||
|
"commandPaletteSearchPlaceholder": "Search pages, resources, actions...",
|
||||||
|
"commandPaletteNoResults": "No results found.",
|
||||||
|
"commandPaletteSearching": "Searching...",
|
||||||
|
"commandPaletteNavigation": "Navigation",
|
||||||
|
"commandPaletteOrganizations": "Organizations",
|
||||||
|
"commandPaletteSites": "Sites",
|
||||||
|
"commandPaletteResources": "Resources",
|
||||||
|
"commandPaletteUsers": "Users",
|
||||||
|
"commandPaletteClients": "Machine Clients",
|
||||||
|
"commandPaletteActions": "Actions",
|
||||||
|
"commandPaletteCreateSite": "Create Site",
|
||||||
|
"commandPaletteCreateProxyResource": "Create Public Resource",
|
||||||
|
"commandPaletteCreatePrivateResource": "Create Private Resource",
|
||||||
|
"commandPaletteCreateUser": "Create User",
|
||||||
|
"commandPaletteCreateApiKey": "Create API Key",
|
||||||
|
"commandPaletteCreateMachineClient": "Create Machine Client",
|
||||||
|
"commandPaletteCreateAlertRule": "Create Alert Rule",
|
||||||
|
"commandPaletteCreateIdentityProvider": "Create Identity Provider",
|
||||||
|
"commandPaletteToggleTheme": "Toggle Theme",
|
||||||
|
"commandPaletteChooseOrganization": "Choose Organization",
|
||||||
|
"commandPaletteShortcutMac": "⌘K",
|
||||||
|
"commandPaletteShortcutWindows": "Ctrl K",
|
||||||
"otpErrorEnable": "Nie można włączyć 2FA",
|
"otpErrorEnable": "Nie można włączyć 2FA",
|
||||||
"otpErrorEnableDescription": "Wystąpił błąd podczas włączania 2FA",
|
"otpErrorEnableDescription": "Wystąpił błąd podczas włączania 2FA",
|
||||||
"otpSetupCheckCode": "Wprowadź 6-cyfrowy kod",
|
"otpSetupCheckCode": "Wprowadź 6-cyfrowy kod",
|
||||||
@@ -1584,6 +1620,45 @@
|
|||||||
"sidebarManagement": "Zarządzanie",
|
"sidebarManagement": "Zarządzanie",
|
||||||
"sidebarBillingAndLicenses": "Płatność i licencje",
|
"sidebarBillingAndLicenses": "Płatność i licencje",
|
||||||
"sidebarLogsAnalytics": "Analityka",
|
"sidebarLogsAnalytics": "Analityka",
|
||||||
|
"commandSites": "Sites",
|
||||||
|
"commandActionModeInfo": "Type \">\" To Open Action Mode",
|
||||||
|
"commandResources": "Resources",
|
||||||
|
"commandProxyResources": "Public Resources",
|
||||||
|
"commandClientResources": "Private Resources",
|
||||||
|
"commandClients": "Clients",
|
||||||
|
"commandUserDevices": "User Devices",
|
||||||
|
"commandMachineClients": "Machine Clients",
|
||||||
|
"commandDomains": "Domains",
|
||||||
|
"commandRemoteExitNodes": "Remote Nodes",
|
||||||
|
"commandTeam": "Team",
|
||||||
|
"commandUsers": "Users",
|
||||||
|
"commandRoles": "Roles",
|
||||||
|
"commandInvitations": "Invitations",
|
||||||
|
"commandPolicies": "Shared Policies",
|
||||||
|
"commandResourcePolicies": "Public Resources Policies",
|
||||||
|
"commandIdentityProviders": "Identity Providers",
|
||||||
|
"commandApprovals": "Approval Requests",
|
||||||
|
"commandShareableLinks": "Shareable Links",
|
||||||
|
"commandOrganization": "Organization",
|
||||||
|
"commandLogsAndAnalytics": "Logs & Analytics",
|
||||||
|
"commandLogsAnalytics": "Analytics",
|
||||||
|
"commandLogsRequest": "HTTP Request Logs",
|
||||||
|
"commandLogsAccess": "Authentication Logs",
|
||||||
|
"commandLogsAction": "Admin Action Logs",
|
||||||
|
"commandLogsConnection": "Network Logs",
|
||||||
|
"commandLogsStreaming": "Event Streaming",
|
||||||
|
"commandManagement": "Management",
|
||||||
|
"commandAlerting": "Alerting",
|
||||||
|
"commandProvisioning": "Provisioning",
|
||||||
|
"commandBluePrints": "Blueprints",
|
||||||
|
"commandApiKeys": "API Keys",
|
||||||
|
"commandBillingAndLicenses": "Billing & Licenses",
|
||||||
|
"commandBilling": "Billing",
|
||||||
|
"commandEnterpriseLicenses": "Licenses",
|
||||||
|
"commandSettings": "Settings",
|
||||||
|
"commandLauncher": "Launcher",
|
||||||
|
"commandResourceLauncher": "Resource Launcher",
|
||||||
|
"commandSearchResults": "Search Results",
|
||||||
"alertingTitle": "Alarmowanie",
|
"alertingTitle": "Alarmowanie",
|
||||||
"alertingDescription": "Zdefiniuj źródła, ustawienia, i działania dla powiadomień",
|
"alertingDescription": "Zdefiniuj źródła, ustawienia, i działania dla powiadomień",
|
||||||
"alertingRules": "Reguły alarmowe",
|
"alertingRules": "Reguły alarmowe",
|
||||||
@@ -1915,6 +1990,9 @@
|
|||||||
"billingDomains": "Domeny",
|
"billingDomains": "Domeny",
|
||||||
"billingOrganizations": "O masie całkowitej pojazdu przekraczającej 5 ton, ale nieprzekraczającej 5 ton",
|
"billingOrganizations": "O masie całkowitej pojazdu przekraczającej 5 ton, ale nieprzekraczającej 5 ton",
|
||||||
"billingRemoteExitNodes": "Zdalne węzły",
|
"billingRemoteExitNodes": "Zdalne węzły",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "Nie skonfigurowano limitu",
|
"billingNoLimitConfigured": "Nie skonfigurowano limitu",
|
||||||
"billingEstimatedPeriod": "Szacowany Okres Rozliczeniowy",
|
"billingEstimatedPeriod": "Szacowany Okres Rozliczeniowy",
|
||||||
"billingIncludedUsage": "Zawarte użycie",
|
"billingIncludedUsage": "Zawarte użycie",
|
||||||
@@ -1943,6 +2021,9 @@
|
|||||||
"billingUsersInfo": "Ile użytkowników możesz użyć",
|
"billingUsersInfo": "Ile użytkowników możesz użyć",
|
||||||
"billingDomainInfo": "Ile domen możesz użyć",
|
"billingDomainInfo": "Ile domen możesz użyć",
|
||||||
"billingRemoteExitNodesInfo": "Ile zdalnych węzłów możesz użyć",
|
"billingRemoteExitNodesInfo": "Ile zdalnych węzłów możesz użyć",
|
||||||
|
"billingPublicResourcesInfo": "How many public resources you can use",
|
||||||
|
"billingPrivateResourcesInfo": "How many private resources you can use",
|
||||||
|
"billingMachineClientsInfo": "How many machine clients you can use",
|
||||||
"billingLicenseKeys": "Klucze licencyjne",
|
"billingLicenseKeys": "Klucze licencyjne",
|
||||||
"billingLicenseKeysDescription": "Zarządzaj subskrypcjami kluczy licencyjnych",
|
"billingLicenseKeysDescription": "Zarządzaj subskrypcjami kluczy licencyjnych",
|
||||||
"billingLicenseSubscription": "Subskrypcja licencji",
|
"billingLicenseSubscription": "Subskrypcja licencji",
|
||||||
@@ -2311,6 +2392,12 @@
|
|||||||
"createInternalResourceDialogClose": "Zamknij",
|
"createInternalResourceDialogClose": "Zamknij",
|
||||||
"createInternalResourceDialogCreateClientResource": "Utwórz zasób prywatny",
|
"createInternalResourceDialogCreateClientResource": "Utwórz zasób prywatny",
|
||||||
"createInternalResourceDialogCreateClientResourceDescription": "Utwórz nowy zasób, który będzie dostępny tylko dla klientów podłączonych do organizacji",
|
"createInternalResourceDialogCreateClientResourceDescription": "Utwórz nowy zasób, który będzie dostępny tylko dla klientów podłączonych do organizacji",
|
||||||
|
"privateResourceCreatePageSeeAll": "See All Private Resources",
|
||||||
|
"privateResourceAllowIcmpPing": "Allow ICMP Ping",
|
||||||
|
"privateResourceNetworkAccess": "Network Access",
|
||||||
|
"privateResourceNetworkAccessDescription": "Control TCP/UDP port access and whether ICMP ping is allowed for this resource.",
|
||||||
|
"hostSettings": "Host Settings",
|
||||||
|
"cidrSettings": "CIDR Settings",
|
||||||
"createInternalResourceDialogResourceProperties": "Właściwości zasobów",
|
"createInternalResourceDialogResourceProperties": "Właściwości zasobów",
|
||||||
"createInternalResourceDialogName": "Nazwa",
|
"createInternalResourceDialogName": "Nazwa",
|
||||||
"createInternalResourceDialogSite": "Witryna",
|
"createInternalResourceDialogSite": "Witryna",
|
||||||
@@ -2459,6 +2546,7 @@
|
|||||||
"noRemoteExitNodesAvailableDescription": "Węzły nie są dostępne dla tej organizacji. Utwórz węzeł, aby używać lokalnych witryn.",
|
"noRemoteExitNodesAvailableDescription": "Węzły nie są dostępne dla tej organizacji. Utwórz węzeł, aby używać lokalnych witryn.",
|
||||||
"exitNode": "Węzeł Wyjściowy",
|
"exitNode": "Węzeł Wyjściowy",
|
||||||
"country": "Kraj",
|
"country": "Kraj",
|
||||||
|
"countryIsNot": "Country Is Not",
|
||||||
"rulesMatchCountry": "Obecnie bazuje na adresie IP źródła",
|
"rulesMatchCountry": "Obecnie bazuje na adresie IP źródła",
|
||||||
"region": "Region",
|
"region": "Region",
|
||||||
"selectRegion": "Wybierz region",
|
"selectRegion": "Wybierz region",
|
||||||
@@ -3177,7 +3265,7 @@
|
|||||||
"editInternalResourceDialogAddUsers": "Dodaj użytkowników",
|
"editInternalResourceDialogAddUsers": "Dodaj użytkowników",
|
||||||
"editInternalResourceDialogAddClients": "Dodaj klientów",
|
"editInternalResourceDialogAddClients": "Dodaj klientów",
|
||||||
"editInternalResourceDialogDestinationLabel": "Miejsce docelowe",
|
"editInternalResourceDialogDestinationLabel": "Miejsce docelowe",
|
||||||
"editInternalResourceDialogDestinationDescription": "Określ adres docelowy dla wewnętrznego zasobu. Może to być nazwa hosta, adres IP lub zakres CIDR, w zależności od wybranego trybu. Opcjonalnie ustaw wewnętrzny alias DNS dla łatwiejszej identyfikacji.",
|
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it",
|
||||||
"internalResourceFormMultiSiteRoutingHelp": "Wybór wielu stron umożliwia odporne trasowanie i awarię dla wysokiej dostępności.",
|
"internalResourceFormMultiSiteRoutingHelp": "Wybór wielu stron umożliwia odporne trasowanie i awarię dla wysokiej dostępności.",
|
||||||
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Dowiedz się więcej",
|
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Dowiedz się więcej",
|
||||||
"editInternalResourceDialogPortRestrictionsDescription": "Ogranicz dostęp do konkretnych portów TCP/UDP lub zezwól/zablokuj wszystkie porty.",
|
"editInternalResourceDialogPortRestrictionsDescription": "Ogranicz dostęp do konkretnych portów TCP/UDP lub zezwól/zablokuj wszystkie porty.",
|
||||||
@@ -3571,18 +3659,24 @@
|
|||||||
"memberPortalResourceDisabled": "Zasób wyłączony",
|
"memberPortalResourceDisabled": "Zasób wyłączony",
|
||||||
"memberPortalShowingResources": "Wyświetlanie zasobów od {start} do {end} z {total}",
|
"memberPortalShowingResources": "Wyświetlanie zasobów od {start} do {end} z {total}",
|
||||||
"resourceLauncherTitle": "Uruchamiacz Zasobów",
|
"resourceLauncherTitle": "Uruchamiacz Zasobów",
|
||||||
"resourceLauncherDescription": "Przeglądaj szczegóły zasobów i uruchamiaj je z jednego miejsca",
|
"resourceSidebarLauncherTitle": "Launcher",
|
||||||
"resourceLauncherSearchPlaceholder": "Szukaj we wszystkich stronach...",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
|
"resourceLauncherSearchPlaceholder": "Search your resources...",
|
||||||
"resourceLauncherDefaultView": "Domyślny",
|
"resourceLauncherDefaultView": "Domyślny",
|
||||||
"resourceLauncherSaveView": "Zapisz Widok",
|
"resourceLauncherSaveView": "Zapisz Widok",
|
||||||
"resourceLauncherSaveToCurrentView": "Zapisz do bieżącego widoku",
|
"resourceLauncherSaveToCurrentView": "Zapisz do bieżącego widoku",
|
||||||
|
"resourceLauncherSaveDefaultPersonal": "Save for Me",
|
||||||
"resourceLauncherResetView": "Resetuj Widok",
|
"resourceLauncherResetView": "Resetuj Widok",
|
||||||
|
"resourceLauncherResetSystemDefault": "Reset to System Default",
|
||||||
|
"resourceLauncherSystemDefaultRestored": "System default restored",
|
||||||
|
"resourceLauncherSystemDefaultRestoredDescription": "The default view has been reset to the original settings.",
|
||||||
"resourceLauncherSaveAsNewView": "Zapisz jako Nowy Widok",
|
"resourceLauncherSaveAsNewView": "Zapisz jako Nowy Widok",
|
||||||
"resourceLauncherSaveAsNewViewDescription": "Nadaj nazwę temu widokowi, aby zapisać swoje bieżące filtry i układ.",
|
"resourceLauncherSaveAsNewViewDescription": "Nadaj nazwę temu widokowi, aby zapisać swoje bieżące filtry i układ.",
|
||||||
"resourceLauncherSaveForEveryone": "Zapisz dla wszystkich",
|
"resourceLauncherSaveForEveryone": "Zapisz dla wszystkich",
|
||||||
"resourceLauncherSaveForEveryoneDescription": "Udostępnij ten widok wszystkim członkom organizacji. Gdy jest niezaznaczone, widok jest widoczny tylko dla Ciebie.",
|
"resourceLauncherSaveForEveryoneDescription": "Udostępnij ten widok wszystkim członkom organizacji. Gdy jest niezaznaczone, widok jest widoczny tylko dla Ciebie.",
|
||||||
"resourceLauncherMakePersonal": "Zrób osobisty",
|
"resourceLauncherMakePersonal": "Zrób osobisty",
|
||||||
"resourceLauncherFilter": "Filtr",
|
"resourceLauncherFilter": "Filtr",
|
||||||
|
"resourceLauncherFilterWithCount": "Filter, {count} applied",
|
||||||
"resourceLauncherSort": "Sortuj",
|
"resourceLauncherSort": "Sortuj",
|
||||||
"resourceLauncherSortAscending": "Sortuj rosnąco",
|
"resourceLauncherSortAscending": "Sortuj rosnąco",
|
||||||
"resourceLauncherSortDescending": "Sortuj malejąco",
|
"resourceLauncherSortDescending": "Sortuj malejąco",
|
||||||
@@ -3590,6 +3684,7 @@
|
|||||||
"resourceLauncherGroupBy": "Grupuj według",
|
"resourceLauncherGroupBy": "Grupuj według",
|
||||||
"resourceLauncherGroupBySite": "Witryna",
|
"resourceLauncherGroupBySite": "Witryna",
|
||||||
"resourceLauncherGroupByLabel": "Etykieta",
|
"resourceLauncherGroupByLabel": "Etykieta",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "Układ",
|
"resourceLauncherLayout": "Układ",
|
||||||
"resourceLauncherLayoutGrid": "Siatka",
|
"resourceLauncherLayoutGrid": "Siatka",
|
||||||
"resourceLauncherLayoutList": "Lista",
|
"resourceLauncherLayoutList": "Lista",
|
||||||
@@ -3597,8 +3692,20 @@
|
|||||||
"resourceLauncherShowSiteTags": "Pokaż tagi stron",
|
"resourceLauncherShowSiteTags": "Pokaż tagi stron",
|
||||||
"resourceLauncherShowRecents": "Pokaż ostatnie",
|
"resourceLauncherShowRecents": "Pokaż ostatnie",
|
||||||
"resourceLauncherDeleteView": "Usuń Widok",
|
"resourceLauncherDeleteView": "Usuń Widok",
|
||||||
|
"resourceLauncherDeleteViewTitle": "Delete View",
|
||||||
|
"resourceLauncherDeleteViewQuestion": "Are you sure you want to delete this launcher view?",
|
||||||
|
"resourceLauncherDeleteViewConfirm": "Delete View",
|
||||||
"resourceLauncherViewAsAdmin": "Przeglądaj jako Administrator",
|
"resourceLauncherViewAsAdmin": "Przeglądaj jako Administrator",
|
||||||
"resourceLauncherResourceDetailsDescription": "Pokaż szczegóły tego zasobu.",
|
"resourceLauncherResourceDetailsDescription": "Connection information and status for this resource.",
|
||||||
|
"resourceLauncherResourceDetails": "Resource Details",
|
||||||
|
"resourceLauncherAuthMethodsDescription": "Authentication methods enabled for this resource.",
|
||||||
|
"resourceLauncherPrivateClientRequired": "Connect with a client on your device to access this resource privately.",
|
||||||
|
"resourceLauncherPrivateClientRequiredTitle": "Client Connection Required",
|
||||||
|
"resourceLauncherDownloadClient": "Download client",
|
||||||
|
"resourceLauncherFailedToLoadDetails": "Could not load resource details. You may no longer have access to this resource.",
|
||||||
|
"resourceLauncherNoPortRestrictions": "No port restrictions",
|
||||||
|
"resourceLauncherTcp": "TCP",
|
||||||
|
"resourceLauncherUdp": "UDP",
|
||||||
"resourceLauncherUnlabeled": "Bez etykiety",
|
"resourceLauncherUnlabeled": "Bez etykiety",
|
||||||
"resourceLauncherNoSite": "Brak strony",
|
"resourceLauncherNoSite": "Brak strony",
|
||||||
"resourceLauncherNoResourcesInGroup": "W tej grupie nie ma zasobów",
|
"resourceLauncherNoResourcesInGroup": "W tej grupie nie ma zasobów",
|
||||||
@@ -3607,6 +3714,12 @@
|
|||||||
"resourceLauncherEmptyStateNoResultsTitle": "Nie znaleziono zasobów",
|
"resourceLauncherEmptyStateNoResultsTitle": "Nie znaleziono zasobów",
|
||||||
"resourceLauncherEmptyStateNoResultsDescription": "Żadne zasoby nie spełniają twojego bieżącego wyszukiwania lub filtrów. Spróbuj je dostosować, aby znaleźć to, czego szukasz.",
|
"resourceLauncherEmptyStateNoResultsDescription": "Żadne zasoby nie spełniają twojego bieżącego wyszukiwania lub filtrów. Spróbuj je dostosować, aby znaleźć to, czego szukasz.",
|
||||||
"resourceLauncherEmptyStateNoResultsWithQuery": "Żadne zasoby nie odpowiadają \"{query}\". Spróbuj dostosować swoje wyszukiwanie lub usunąć filtry, aby zobaczyć wszystkie zasoby.",
|
"resourceLauncherEmptyStateNoResultsWithQuery": "Żadne zasoby nie odpowiadają \"{query}\". Spróbuj dostosować swoje wyszukiwanie lub usunąć filtry, aby zobaczyć wszystkie zasoby.",
|
||||||
|
"resourceLauncherSearchFirstTitle": "Search or Filter to Browse",
|
||||||
|
"resourceLauncherSearchFirstDescription": "You have access to many resources. Use search or filter by site or label to find what you need.",
|
||||||
|
"resourceLauncherSiteGroupingDisabled": "Site grouping is unavailable at this scale. Filter by site to group a smaller set.",
|
||||||
|
"resourceLauncherLabelGroupingDisabled": "Label grouping is unavailable at this scale.",
|
||||||
|
"resourceLauncherCompactModeHint": "Showing a simplified list for faster browsing. Use search or filters to narrow results.",
|
||||||
|
"resourceLauncherCompactGroupingHint": "Apply site or label filters to enable grouping.",
|
||||||
"resourceLauncherCopiedToClipboard": "Skopiowano do schowka",
|
"resourceLauncherCopiedToClipboard": "Skopiowano do schowka",
|
||||||
"resourceLauncherCopiedAccessDescription": "Dostęp do zasobu został skopiowany do schowka.",
|
"resourceLauncherCopiedAccessDescription": "Dostęp do zasobu został skopiowany do schowka.",
|
||||||
"resourceLauncherViewNamePlaceholder": "Nazwa widoku",
|
"resourceLauncherViewNamePlaceholder": "Nazwa widoku",
|
||||||
|
|||||||
+120
-7
@@ -266,6 +266,8 @@
|
|||||||
"resourceRawDescriptionCloud": "Proxy solicita por TCP/UDP bruto usando um número de porta. Requer que sites se conectem a um nó remoto.",
|
"resourceRawDescriptionCloud": "Proxy solicita por TCP/UDP bruto usando um número de porta. Requer que sites se conectem a um nó remoto.",
|
||||||
"resourceCreate": "Criar Recurso",
|
"resourceCreate": "Criar Recurso",
|
||||||
"resourceCreateDescription": "Siga os passos abaixo para criar um novo recurso",
|
"resourceCreateDescription": "Siga os passos abaixo para criar um novo recurso",
|
||||||
|
"resourcePublicCreate": "Create Public Resource",
|
||||||
|
"resourcePublicCreateDescription": "Follow the steps below to create a new public resource that is accessible through a web browser",
|
||||||
"resourceCreateGeneralDescription": "Configure as configurações gerais do recurso, incluindo o nome e o tipo",
|
"resourceCreateGeneralDescription": "Configure as configurações gerais do recurso, incluindo o nome e o tipo",
|
||||||
"resourceSeeAll": "Ver todos os recursos",
|
"resourceSeeAll": "Ver todos os recursos",
|
||||||
"resourceCreateGeneral": "Gerais",
|
"resourceCreateGeneral": "Gerais",
|
||||||
@@ -613,7 +615,8 @@
|
|||||||
"idpNameInternal": "Interno",
|
"idpNameInternal": "Interno",
|
||||||
"emailInvalid": "Endereço de email inválido",
|
"emailInvalid": "Endereço de email inválido",
|
||||||
"inviteValidityDuration": "Por favor, selecione uma duração",
|
"inviteValidityDuration": "Por favor, selecione uma duração",
|
||||||
"accessRoleSelectPlease": "Por favor, selecione uma função",
|
"accessRoleSelectPlease": "A user must belong to at least one role.",
|
||||||
|
"accessRoleRequired": "Role required",
|
||||||
"removeOwnAdminRoleConfirmTitle": "Remover seu acesso de administrador?",
|
"removeOwnAdminRoleConfirmTitle": "Remover seu acesso de administrador?",
|
||||||
"removeOwnAdminRoleConfirmDescription": "Você não terá mais permissões de administrador nesta organização após salvar. Outro administrador pode restaurar seu acesso, se necessário.",
|
"removeOwnAdminRoleConfirmDescription": "Você não terá mais permissões de administrador nesta organização após salvar. Outro administrador pode restaurar seu acesso, se necessário.",
|
||||||
"removeOwnAdminRoleConfirmButton": "Remover Meu Acesso de Administrador",
|
"removeOwnAdminRoleConfirmButton": "Remover Meu Acesso de Administrador",
|
||||||
@@ -864,8 +867,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "Autenticação de Cabeçalho Básico",
|
"policyAuthHeaderAuthTitle": "Autenticação de Cabeçalho Básico",
|
||||||
"policyAuthHeaderAuthDescription": "Valide um nome e valor de cabeçalho HTTP personalizado em cada solicitação",
|
"policyAuthHeaderAuthDescription": "Valide um nome e valor de cabeçalho HTTP personalizado em cada solicitação",
|
||||||
"policyAuthHeaderAuthSummary": "Cabeçalho configurado",
|
"policyAuthHeaderAuthSummary": "Cabeçalho configurado",
|
||||||
"policyAuthHeaderName": "Nome do Cabeçalho",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "Valor esperado",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "Definir Código de Acesso",
|
"policyAuthSetPasscode": "Definir Código de Acesso",
|
||||||
"policyAuthSetPincode": "Definir Código PIN",
|
"policyAuthSetPincode": "Definir Código PIN",
|
||||||
"policyAuthSetEmailWhitelist": "Definir Lista de E-mails Permitidos",
|
"policyAuthSetEmailWhitelist": "Definir Lista de E-mails Permitidos",
|
||||||
@@ -1431,6 +1434,15 @@
|
|||||||
"actionSetResourcePincode": "Definir Código PIN do Recurso",
|
"actionSetResourcePincode": "Definir Código PIN do Recurso",
|
||||||
"actionSetResourceEmailWhitelist": "Definir Lista Permitida de Emails do Recurso",
|
"actionSetResourceEmailWhitelist": "Definir Lista Permitida de Emails do Recurso",
|
||||||
"actionGetResourceEmailWhitelist": "Obter Lista Permitida de Emails do Recurso",
|
"actionGetResourceEmailWhitelist": "Obter Lista Permitida de Emails do Recurso",
|
||||||
|
"actionGetResourcePolicy": "Get Resource Policy",
|
||||||
|
"actionUpdateResourcePolicy": "Update Resource Policy",
|
||||||
|
"actionSetResourcePolicyUsers": "Set Resource Policy Users",
|
||||||
|
"actionSetResourcePolicyRoles": "Set Resource Policy Roles",
|
||||||
|
"actionSetResourcePolicyPassword": "Set Resource Policy Password",
|
||||||
|
"actionSetResourcePolicyPincode": "Set Resource Policy Pincode",
|
||||||
|
"actionSetResourcePolicyHeaderAuth": "Set Resource Policy Header Authentication",
|
||||||
|
"actionSetResourcePolicyWhitelist": "Set Resource Policy Email Whitelist",
|
||||||
|
"actionSetResourcePolicyRules": "Set Resource Policy Rules",
|
||||||
"actionCreateTarget": "Criar Alvo",
|
"actionCreateTarget": "Criar Alvo",
|
||||||
"actionDeleteTarget": "Eliminar Alvo",
|
"actionDeleteTarget": "Eliminar Alvo",
|
||||||
"actionGetTarget": "Obter Alvo",
|
"actionGetTarget": "Obter Alvo",
|
||||||
@@ -1507,6 +1519,30 @@
|
|||||||
"navbar": "Menu de Navegação",
|
"navbar": "Menu de Navegação",
|
||||||
"navbarDescription": "Menu de navegação principal da aplicação",
|
"navbarDescription": "Menu de navegação principal da aplicação",
|
||||||
"navbarDocsLink": "Documentação",
|
"navbarDocsLink": "Documentação",
|
||||||
|
"commandPaletteTitle": "Command Palette",
|
||||||
|
"commandPaletteDescription": "Search for pages, organizations, resources, and actions",
|
||||||
|
"commandPaletteSearchPlaceholder": "Search pages, resources, actions...",
|
||||||
|
"commandPaletteNoResults": "No results found.",
|
||||||
|
"commandPaletteSearching": "Searching...",
|
||||||
|
"commandPaletteNavigation": "Navigation",
|
||||||
|
"commandPaletteOrganizations": "Organizations",
|
||||||
|
"commandPaletteSites": "Sites",
|
||||||
|
"commandPaletteResources": "Resources",
|
||||||
|
"commandPaletteUsers": "Users",
|
||||||
|
"commandPaletteClients": "Machine Clients",
|
||||||
|
"commandPaletteActions": "Actions",
|
||||||
|
"commandPaletteCreateSite": "Create Site",
|
||||||
|
"commandPaletteCreateProxyResource": "Create Public Resource",
|
||||||
|
"commandPaletteCreatePrivateResource": "Create Private Resource",
|
||||||
|
"commandPaletteCreateUser": "Create User",
|
||||||
|
"commandPaletteCreateApiKey": "Create API Key",
|
||||||
|
"commandPaletteCreateMachineClient": "Create Machine Client",
|
||||||
|
"commandPaletteCreateAlertRule": "Create Alert Rule",
|
||||||
|
"commandPaletteCreateIdentityProvider": "Create Identity Provider",
|
||||||
|
"commandPaletteToggleTheme": "Toggle Theme",
|
||||||
|
"commandPaletteChooseOrganization": "Choose Organization",
|
||||||
|
"commandPaletteShortcutMac": "⌘K",
|
||||||
|
"commandPaletteShortcutWindows": "Ctrl K",
|
||||||
"otpErrorEnable": "Não foi possível ativar 2FA",
|
"otpErrorEnable": "Não foi possível ativar 2FA",
|
||||||
"otpErrorEnableDescription": "Ocorreu um erro ao ativar 2FA",
|
"otpErrorEnableDescription": "Ocorreu um erro ao ativar 2FA",
|
||||||
"otpSetupCheckCode": "Por favor, insira um código de 6 dígitos",
|
"otpSetupCheckCode": "Por favor, insira um código de 6 dígitos",
|
||||||
@@ -1584,6 +1620,45 @@
|
|||||||
"sidebarManagement": "Gestão",
|
"sidebarManagement": "Gestão",
|
||||||
"sidebarBillingAndLicenses": "Faturamento e Licenças",
|
"sidebarBillingAndLicenses": "Faturamento e Licenças",
|
||||||
"sidebarLogsAnalytics": "Análises",
|
"sidebarLogsAnalytics": "Análises",
|
||||||
|
"commandSites": "Sites",
|
||||||
|
"commandActionModeInfo": "Type \">\" To Open Action Mode",
|
||||||
|
"commandResources": "Resources",
|
||||||
|
"commandProxyResources": "Public Resources",
|
||||||
|
"commandClientResources": "Private Resources",
|
||||||
|
"commandClients": "Clients",
|
||||||
|
"commandUserDevices": "User Devices",
|
||||||
|
"commandMachineClients": "Machine Clients",
|
||||||
|
"commandDomains": "Domains",
|
||||||
|
"commandRemoteExitNodes": "Remote Nodes",
|
||||||
|
"commandTeam": "Team",
|
||||||
|
"commandUsers": "Users",
|
||||||
|
"commandRoles": "Roles",
|
||||||
|
"commandInvitations": "Invitations",
|
||||||
|
"commandPolicies": "Shared Policies",
|
||||||
|
"commandResourcePolicies": "Public Resources Policies",
|
||||||
|
"commandIdentityProviders": "Identity Providers",
|
||||||
|
"commandApprovals": "Approval Requests",
|
||||||
|
"commandShareableLinks": "Shareable Links",
|
||||||
|
"commandOrganization": "Organization",
|
||||||
|
"commandLogsAndAnalytics": "Logs & Analytics",
|
||||||
|
"commandLogsAnalytics": "Analytics",
|
||||||
|
"commandLogsRequest": "HTTP Request Logs",
|
||||||
|
"commandLogsAccess": "Authentication Logs",
|
||||||
|
"commandLogsAction": "Admin Action Logs",
|
||||||
|
"commandLogsConnection": "Network Logs",
|
||||||
|
"commandLogsStreaming": "Event Streaming",
|
||||||
|
"commandManagement": "Management",
|
||||||
|
"commandAlerting": "Alerting",
|
||||||
|
"commandProvisioning": "Provisioning",
|
||||||
|
"commandBluePrints": "Blueprints",
|
||||||
|
"commandApiKeys": "API Keys",
|
||||||
|
"commandBillingAndLicenses": "Billing & Licenses",
|
||||||
|
"commandBilling": "Billing",
|
||||||
|
"commandEnterpriseLicenses": "Licenses",
|
||||||
|
"commandSettings": "Settings",
|
||||||
|
"commandLauncher": "Launcher",
|
||||||
|
"commandResourceLauncher": "Resource Launcher",
|
||||||
|
"commandSearchResults": "Search Results",
|
||||||
"alertingTitle": "Alertas",
|
"alertingTitle": "Alertas",
|
||||||
"alertingDescription": "Defina fontes, gatilhos e ações para notificações",
|
"alertingDescription": "Defina fontes, gatilhos e ações para notificações",
|
||||||
"alertingRules": "Regras de alerta",
|
"alertingRules": "Regras de alerta",
|
||||||
@@ -1915,6 +1990,9 @@
|
|||||||
"billingDomains": "Domínios",
|
"billingDomains": "Domínios",
|
||||||
"billingOrganizations": "Órgãos",
|
"billingOrganizations": "Órgãos",
|
||||||
"billingRemoteExitNodes": "Nós remotos",
|
"billingRemoteExitNodes": "Nós remotos",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "Nenhum limite configurado",
|
"billingNoLimitConfigured": "Nenhum limite configurado",
|
||||||
"billingEstimatedPeriod": "Período Estimado de Cobrança",
|
"billingEstimatedPeriod": "Período Estimado de Cobrança",
|
||||||
"billingIncludedUsage": "Uso Incluído",
|
"billingIncludedUsage": "Uso Incluído",
|
||||||
@@ -1943,6 +2021,9 @@
|
|||||||
"billingUsersInfo": "Quantos usuários você pode usar",
|
"billingUsersInfo": "Quantos usuários você pode usar",
|
||||||
"billingDomainInfo": "Quantos domínios você pode usar",
|
"billingDomainInfo": "Quantos domínios você pode usar",
|
||||||
"billingRemoteExitNodesInfo": "Quantos nós remotos você pode usar",
|
"billingRemoteExitNodesInfo": "Quantos nós remotos você pode usar",
|
||||||
|
"billingPublicResourcesInfo": "How many public resources you can use",
|
||||||
|
"billingPrivateResourcesInfo": "How many private resources you can use",
|
||||||
|
"billingMachineClientsInfo": "How many machine clients you can use",
|
||||||
"billingLicenseKeys": "Chaves de Licença",
|
"billingLicenseKeys": "Chaves de Licença",
|
||||||
"billingLicenseKeysDescription": "Gerenciar suas subscrições de chave de licença",
|
"billingLicenseKeysDescription": "Gerenciar suas subscrições de chave de licença",
|
||||||
"billingLicenseSubscription": "Assinatura de Licença",
|
"billingLicenseSubscription": "Assinatura de Licença",
|
||||||
@@ -2311,6 +2392,12 @@
|
|||||||
"createInternalResourceDialogClose": "Fechar",
|
"createInternalResourceDialogClose": "Fechar",
|
||||||
"createInternalResourceDialogCreateClientResource": "Criar Recurso Privado",
|
"createInternalResourceDialogCreateClientResource": "Criar Recurso Privado",
|
||||||
"createInternalResourceDialogCreateClientResourceDescription": "Criar um novo recurso que só será acessível para clientes conectados à organização",
|
"createInternalResourceDialogCreateClientResourceDescription": "Criar um novo recurso que só será acessível para clientes conectados à organização",
|
||||||
|
"privateResourceCreatePageSeeAll": "See All Private Resources",
|
||||||
|
"privateResourceAllowIcmpPing": "Allow ICMP Ping",
|
||||||
|
"privateResourceNetworkAccess": "Network Access",
|
||||||
|
"privateResourceNetworkAccessDescription": "Control TCP/UDP port access and whether ICMP ping is allowed for this resource.",
|
||||||
|
"hostSettings": "Host Settings",
|
||||||
|
"cidrSettings": "CIDR Settings",
|
||||||
"createInternalResourceDialogResourceProperties": "Propriedades do Recurso",
|
"createInternalResourceDialogResourceProperties": "Propriedades do Recurso",
|
||||||
"createInternalResourceDialogName": "Nome",
|
"createInternalResourceDialogName": "Nome",
|
||||||
"createInternalResourceDialogSite": "Site",
|
"createInternalResourceDialogSite": "Site",
|
||||||
@@ -2459,6 +2546,7 @@
|
|||||||
"noRemoteExitNodesAvailableDescription": "Nenhum nó está disponível para esta organização. Crie um nó primeiro para usar sites locais.",
|
"noRemoteExitNodesAvailableDescription": "Nenhum nó está disponível para esta organização. Crie um nó primeiro para usar sites locais.",
|
||||||
"exitNode": "Nodo de Saída",
|
"exitNode": "Nodo de Saída",
|
||||||
"country": "País",
|
"country": "País",
|
||||||
|
"countryIsNot": "Country Is Not",
|
||||||
"rulesMatchCountry": "Atualmente baseado no IP de origem",
|
"rulesMatchCountry": "Atualmente baseado no IP de origem",
|
||||||
"region": "Região",
|
"region": "Região",
|
||||||
"selectRegion": "Selecionar região",
|
"selectRegion": "Selecionar região",
|
||||||
@@ -3177,7 +3265,7 @@
|
|||||||
"editInternalResourceDialogAddUsers": "Adicionar Usuários",
|
"editInternalResourceDialogAddUsers": "Adicionar Usuários",
|
||||||
"editInternalResourceDialogAddClients": "Adicionar Clientes",
|
"editInternalResourceDialogAddClients": "Adicionar Clientes",
|
||||||
"editInternalResourceDialogDestinationLabel": "Destino",
|
"editInternalResourceDialogDestinationLabel": "Destino",
|
||||||
"editInternalResourceDialogDestinationDescription": "Especifique o endereço de destino para o recurso interno. Isso pode ser um nome de host, endereço IP ou intervalo CIDR, dependendo do modo selecionado. Opcionalmente, defina um alias interno de DNS para facilitar a identificação.",
|
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it",
|
||||||
"internalResourceFormMultiSiteRoutingHelp": "Selecionar múltiplos sites permite roteamento resiliente e failover para alta disponibilidade.",
|
"internalResourceFormMultiSiteRoutingHelp": "Selecionar múltiplos sites permite roteamento resiliente e failover para alta disponibilidade.",
|
||||||
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Saiba mais",
|
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Saiba mais",
|
||||||
"editInternalResourceDialogPortRestrictionsDescription": "Restrinja o acesso a portas TCP/UDP específicas ou permita/bloqueie todas as portas.",
|
"editInternalResourceDialogPortRestrictionsDescription": "Restrinja o acesso a portas TCP/UDP específicas ou permita/bloqueie todas as portas.",
|
||||||
@@ -3571,18 +3659,24 @@
|
|||||||
"memberPortalResourceDisabled": "Recurso Desativado",
|
"memberPortalResourceDisabled": "Recurso Desativado",
|
||||||
"memberPortalShowingResources": "Mostrando {start}-{end} de {total} recursos",
|
"memberPortalShowingResources": "Mostrando {start}-{end} de {total} recursos",
|
||||||
"resourceLauncherTitle": "Lançador de Recursos",
|
"resourceLauncherTitle": "Lançador de Recursos",
|
||||||
"resourceLauncherDescription": "Veja os detalhes do recurso e lance-os de um só lugar",
|
"resourceSidebarLauncherTitle": "Launcher",
|
||||||
"resourceLauncherSearchPlaceholder": "Procurar todos os sites...",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
|
"resourceLauncherSearchPlaceholder": "Search your resources...",
|
||||||
"resourceLauncherDefaultView": "Padrão",
|
"resourceLauncherDefaultView": "Padrão",
|
||||||
"resourceLauncherSaveView": "Salvar Visualização",
|
"resourceLauncherSaveView": "Salvar Visualização",
|
||||||
"resourceLauncherSaveToCurrentView": "Salvar na Visualização Atual",
|
"resourceLauncherSaveToCurrentView": "Salvar na Visualização Atual",
|
||||||
|
"resourceLauncherSaveDefaultPersonal": "Save for Me",
|
||||||
"resourceLauncherResetView": "Redefinir Visualização",
|
"resourceLauncherResetView": "Redefinir Visualização",
|
||||||
|
"resourceLauncherResetSystemDefault": "Reset to System Default",
|
||||||
|
"resourceLauncherSystemDefaultRestored": "System default restored",
|
||||||
|
"resourceLauncherSystemDefaultRestoredDescription": "The default view has been reset to the original settings.",
|
||||||
"resourceLauncherSaveAsNewView": "Salvar como Nova Visualização",
|
"resourceLauncherSaveAsNewView": "Salvar como Nova Visualização",
|
||||||
"resourceLauncherSaveAsNewViewDescription": "Dê um nome a esta visualização para salvar os filtros e layout atuais.",
|
"resourceLauncherSaveAsNewViewDescription": "Dê um nome a esta visualização para salvar os filtros e layout atuais.",
|
||||||
"resourceLauncherSaveForEveryone": "Salvar para Todos",
|
"resourceLauncherSaveForEveryone": "Salvar para Todos",
|
||||||
"resourceLauncherSaveForEveryoneDescription": "Compartilhe esta visualização com todos os membros da organização. Quando desmarcado, a visualização é visível apenas para você.",
|
"resourceLauncherSaveForEveryoneDescription": "Compartilhe esta visualização com todos os membros da organização. Quando desmarcado, a visualização é visível apenas para você.",
|
||||||
"resourceLauncherMakePersonal": "Tornar Pessoal",
|
"resourceLauncherMakePersonal": "Tornar Pessoal",
|
||||||
"resourceLauncherFilter": "Filtro",
|
"resourceLauncherFilter": "Filtro",
|
||||||
|
"resourceLauncherFilterWithCount": "Filter, {count} applied",
|
||||||
"resourceLauncherSort": "Ordenar",
|
"resourceLauncherSort": "Ordenar",
|
||||||
"resourceLauncherSortAscending": "Ordenar ascendente",
|
"resourceLauncherSortAscending": "Ordenar ascendente",
|
||||||
"resourceLauncherSortDescending": "Ordenar descendente",
|
"resourceLauncherSortDescending": "Ordenar descendente",
|
||||||
@@ -3590,6 +3684,7 @@
|
|||||||
"resourceLauncherGroupBy": "Agrupar por",
|
"resourceLauncherGroupBy": "Agrupar por",
|
||||||
"resourceLauncherGroupBySite": "Site",
|
"resourceLauncherGroupBySite": "Site",
|
||||||
"resourceLauncherGroupByLabel": "Marcador",
|
"resourceLauncherGroupByLabel": "Marcador",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "Layout",
|
"resourceLauncherLayout": "Layout",
|
||||||
"resourceLauncherLayoutGrid": "Grade",
|
"resourceLauncherLayoutGrid": "Grade",
|
||||||
"resourceLauncherLayoutList": "Lista",
|
"resourceLauncherLayoutList": "Lista",
|
||||||
@@ -3597,8 +3692,20 @@
|
|||||||
"resourceLauncherShowSiteTags": "Mostrar Etiquetas de Site",
|
"resourceLauncherShowSiteTags": "Mostrar Etiquetas de Site",
|
||||||
"resourceLauncherShowRecents": "Mostrar Recents",
|
"resourceLauncherShowRecents": "Mostrar Recents",
|
||||||
"resourceLauncherDeleteView": "Excluir Visualização",
|
"resourceLauncherDeleteView": "Excluir Visualização",
|
||||||
|
"resourceLauncherDeleteViewTitle": "Delete View",
|
||||||
|
"resourceLauncherDeleteViewQuestion": "Are you sure you want to delete this launcher view?",
|
||||||
|
"resourceLauncherDeleteViewConfirm": "Delete View",
|
||||||
"resourceLauncherViewAsAdmin": "Visualizar como Administrador",
|
"resourceLauncherViewAsAdmin": "Visualizar como Administrador",
|
||||||
"resourceLauncherResourceDetailsDescription": "Veja detalhes deste recurso.",
|
"resourceLauncherResourceDetailsDescription": "Connection information and status for this resource.",
|
||||||
|
"resourceLauncherResourceDetails": "Resource Details",
|
||||||
|
"resourceLauncherAuthMethodsDescription": "Authentication methods enabled for this resource.",
|
||||||
|
"resourceLauncherPrivateClientRequired": "Connect with a client on your device to access this resource privately.",
|
||||||
|
"resourceLauncherPrivateClientRequiredTitle": "Client Connection Required",
|
||||||
|
"resourceLauncherDownloadClient": "Download client",
|
||||||
|
"resourceLauncherFailedToLoadDetails": "Could not load resource details. You may no longer have access to this resource.",
|
||||||
|
"resourceLauncherNoPortRestrictions": "No port restrictions",
|
||||||
|
"resourceLauncherTcp": "TCP",
|
||||||
|
"resourceLauncherUdp": "UDP",
|
||||||
"resourceLauncherUnlabeled": "Sem Etiqueta",
|
"resourceLauncherUnlabeled": "Sem Etiqueta",
|
||||||
"resourceLauncherNoSite": "Sem Site",
|
"resourceLauncherNoSite": "Sem Site",
|
||||||
"resourceLauncherNoResourcesInGroup": "Nenhum recurso neste grupo",
|
"resourceLauncherNoResourcesInGroup": "Nenhum recurso neste grupo",
|
||||||
@@ -3607,6 +3714,12 @@
|
|||||||
"resourceLauncherEmptyStateNoResultsTitle": "Nenhum Recurso Encontrado",
|
"resourceLauncherEmptyStateNoResultsTitle": "Nenhum Recurso Encontrado",
|
||||||
"resourceLauncherEmptyStateNoResultsDescription": "Nenhum recurso corresponde à sua busca ou filtros atuais. Experimente ajustá-los para encontrar o que está procurando.",
|
"resourceLauncherEmptyStateNoResultsDescription": "Nenhum recurso corresponde à sua busca ou filtros atuais. Experimente ajustá-los para encontrar o que está procurando.",
|
||||||
"resourceLauncherEmptyStateNoResultsWithQuery": "Nenhum recurso corresponde a \"{query}\". Tente ajustar sua busca ou limpar os filtros para ver todos os recursos.",
|
"resourceLauncherEmptyStateNoResultsWithQuery": "Nenhum recurso corresponde a \"{query}\". Tente ajustar sua busca ou limpar os filtros para ver todos os recursos.",
|
||||||
|
"resourceLauncherSearchFirstTitle": "Search or Filter to Browse",
|
||||||
|
"resourceLauncherSearchFirstDescription": "You have access to many resources. Use search or filter by site or label to find what you need.",
|
||||||
|
"resourceLauncherSiteGroupingDisabled": "Site grouping is unavailable at this scale. Filter by site to group a smaller set.",
|
||||||
|
"resourceLauncherLabelGroupingDisabled": "Label grouping is unavailable at this scale.",
|
||||||
|
"resourceLauncherCompactModeHint": "Showing a simplified list for faster browsing. Use search or filters to narrow results.",
|
||||||
|
"resourceLauncherCompactGroupingHint": "Apply site or label filters to enable grouping.",
|
||||||
"resourceLauncherCopiedToClipboard": "Copiado para a área de transferência",
|
"resourceLauncherCopiedToClipboard": "Copiado para a área de transferência",
|
||||||
"resourceLauncherCopiedAccessDescription": "O acesso ao recurso foi copiado para sua área de transferência.",
|
"resourceLauncherCopiedAccessDescription": "O acesso ao recurso foi copiado para sua área de transferência.",
|
||||||
"resourceLauncherViewNamePlaceholder": "Nome da Visualização",
|
"resourceLauncherViewNamePlaceholder": "Nome da Visualização",
|
||||||
|
|||||||
+120
-7
@@ -266,6 +266,8 @@
|
|||||||
"resourceRawDescriptionCloud": "Прокси запросы через необработанный TCP/UDP с использованием номера порта. Требуется подключение сайтов к удаленному узлу.",
|
"resourceRawDescriptionCloud": "Прокси запросы через необработанный TCP/UDP с использованием номера порта. Требуется подключение сайтов к удаленному узлу.",
|
||||||
"resourceCreate": "Создание ресурса",
|
"resourceCreate": "Создание ресурса",
|
||||||
"resourceCreateDescription": "Следуйте инструкциям ниже для создания нового ресурса",
|
"resourceCreateDescription": "Следуйте инструкциям ниже для создания нового ресурса",
|
||||||
|
"resourcePublicCreate": "Create Public Resource",
|
||||||
|
"resourcePublicCreateDescription": "Follow the steps below to create a new public resource that is accessible through a web browser",
|
||||||
"resourceCreateGeneralDescription": "Настройте основные параметры ресурса, включая его имя и тип",
|
"resourceCreateGeneralDescription": "Настройте основные параметры ресурса, включая его имя и тип",
|
||||||
"resourceSeeAll": "Посмотреть все ресурсы",
|
"resourceSeeAll": "Посмотреть все ресурсы",
|
||||||
"resourceCreateGeneral": "Общие",
|
"resourceCreateGeneral": "Общие",
|
||||||
@@ -613,7 +615,8 @@
|
|||||||
"idpNameInternal": "Внутренний",
|
"idpNameInternal": "Внутренний",
|
||||||
"emailInvalid": "Неверный адрес Email",
|
"emailInvalid": "Неверный адрес Email",
|
||||||
"inviteValidityDuration": "Пожалуйста, выберите продолжительность",
|
"inviteValidityDuration": "Пожалуйста, выберите продолжительность",
|
||||||
"accessRoleSelectPlease": "Пожалуйста, выберите роль",
|
"accessRoleSelectPlease": "A user must belong to at least one role.",
|
||||||
|
"accessRoleRequired": "Role required",
|
||||||
"removeOwnAdminRoleConfirmTitle": "Удалить доступ администратора?",
|
"removeOwnAdminRoleConfirmTitle": "Удалить доступ администратора?",
|
||||||
"removeOwnAdminRoleConfirmDescription": "После сохранения у вас больше не будет прав администратора в этой организации. Другой администратор может восстановить доступ, если это необходимо.",
|
"removeOwnAdminRoleConfirmDescription": "После сохранения у вас больше не будет прав администратора в этой организации. Другой администратор может восстановить доступ, если это необходимо.",
|
||||||
"removeOwnAdminRoleConfirmButton": "Удалить мой доступ администратора",
|
"removeOwnAdminRoleConfirmButton": "Удалить мой доступ администратора",
|
||||||
@@ -864,8 +867,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "Базовая аутентификация заголовка",
|
"policyAuthHeaderAuthTitle": "Базовая аутентификация заголовка",
|
||||||
"policyAuthHeaderAuthDescription": "Проверка пользовательского имени и значения HTTP-заголовка для каждого запроса",
|
"policyAuthHeaderAuthDescription": "Проверка пользовательского имени и значения HTTP-заголовка для каждого запроса",
|
||||||
"policyAuthHeaderAuthSummary": "Заголовок настроен",
|
"policyAuthHeaderAuthSummary": "Заголовок настроен",
|
||||||
"policyAuthHeaderName": "Имя заголовка",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "Ожидаемое значение",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "Установить пароль",
|
"policyAuthSetPasscode": "Установить пароль",
|
||||||
"policyAuthSetPincode": "Установить ПИН-код",
|
"policyAuthSetPincode": "Установить ПИН-код",
|
||||||
"policyAuthSetEmailWhitelist": "Установить белый список email",
|
"policyAuthSetEmailWhitelist": "Установить белый список email",
|
||||||
@@ -1431,6 +1434,15 @@
|
|||||||
"actionSetResourcePincode": "Установить ПИН-код ресурса",
|
"actionSetResourcePincode": "Установить ПИН-код ресурса",
|
||||||
"actionSetResourceEmailWhitelist": "Настроить белый список ресурсов email",
|
"actionSetResourceEmailWhitelist": "Настроить белый список ресурсов email",
|
||||||
"actionGetResourceEmailWhitelist": "Получить белый список ресурсов email",
|
"actionGetResourceEmailWhitelist": "Получить белый список ресурсов email",
|
||||||
|
"actionGetResourcePolicy": "Get Resource Policy",
|
||||||
|
"actionUpdateResourcePolicy": "Update Resource Policy",
|
||||||
|
"actionSetResourcePolicyUsers": "Set Resource Policy Users",
|
||||||
|
"actionSetResourcePolicyRoles": "Set Resource Policy Roles",
|
||||||
|
"actionSetResourcePolicyPassword": "Set Resource Policy Password",
|
||||||
|
"actionSetResourcePolicyPincode": "Set Resource Policy Pincode",
|
||||||
|
"actionSetResourcePolicyHeaderAuth": "Set Resource Policy Header Authentication",
|
||||||
|
"actionSetResourcePolicyWhitelist": "Set Resource Policy Email Whitelist",
|
||||||
|
"actionSetResourcePolicyRules": "Set Resource Policy Rules",
|
||||||
"actionCreateTarget": "Создать цель",
|
"actionCreateTarget": "Создать цель",
|
||||||
"actionDeleteTarget": "Удалить цель",
|
"actionDeleteTarget": "Удалить цель",
|
||||||
"actionGetTarget": "Получить цель",
|
"actionGetTarget": "Получить цель",
|
||||||
@@ -1507,6 +1519,30 @@
|
|||||||
"navbar": "Навигационное меню",
|
"navbar": "Навигационное меню",
|
||||||
"navbarDescription": "Главное навигационное меню приложения",
|
"navbarDescription": "Главное навигационное меню приложения",
|
||||||
"navbarDocsLink": "Документация",
|
"navbarDocsLink": "Документация",
|
||||||
|
"commandPaletteTitle": "Command Palette",
|
||||||
|
"commandPaletteDescription": "Search for pages, organizations, resources, and actions",
|
||||||
|
"commandPaletteSearchPlaceholder": "Search pages, resources, actions...",
|
||||||
|
"commandPaletteNoResults": "No results found.",
|
||||||
|
"commandPaletteSearching": "Searching...",
|
||||||
|
"commandPaletteNavigation": "Navigation",
|
||||||
|
"commandPaletteOrganizations": "Organizations",
|
||||||
|
"commandPaletteSites": "Sites",
|
||||||
|
"commandPaletteResources": "Resources",
|
||||||
|
"commandPaletteUsers": "Users",
|
||||||
|
"commandPaletteClients": "Machine Clients",
|
||||||
|
"commandPaletteActions": "Actions",
|
||||||
|
"commandPaletteCreateSite": "Create Site",
|
||||||
|
"commandPaletteCreateProxyResource": "Create Public Resource",
|
||||||
|
"commandPaletteCreatePrivateResource": "Create Private Resource",
|
||||||
|
"commandPaletteCreateUser": "Create User",
|
||||||
|
"commandPaletteCreateApiKey": "Create API Key",
|
||||||
|
"commandPaletteCreateMachineClient": "Create Machine Client",
|
||||||
|
"commandPaletteCreateAlertRule": "Create Alert Rule",
|
||||||
|
"commandPaletteCreateIdentityProvider": "Create Identity Provider",
|
||||||
|
"commandPaletteToggleTheme": "Toggle Theme",
|
||||||
|
"commandPaletteChooseOrganization": "Choose Organization",
|
||||||
|
"commandPaletteShortcutMac": "⌘K",
|
||||||
|
"commandPaletteShortcutWindows": "Ctrl K",
|
||||||
"otpErrorEnable": "Невозможно включить 2FA",
|
"otpErrorEnable": "Невозможно включить 2FA",
|
||||||
"otpErrorEnableDescription": "Произошла ошибка при включении 2FA",
|
"otpErrorEnableDescription": "Произошла ошибка при включении 2FA",
|
||||||
"otpSetupCheckCode": "Пожалуйста, введите 6-значный код",
|
"otpSetupCheckCode": "Пожалуйста, введите 6-значный код",
|
||||||
@@ -1584,6 +1620,45 @@
|
|||||||
"sidebarManagement": "Управление",
|
"sidebarManagement": "Управление",
|
||||||
"sidebarBillingAndLicenses": "Биллинг и лицензии",
|
"sidebarBillingAndLicenses": "Биллинг и лицензии",
|
||||||
"sidebarLogsAnalytics": "Статистика",
|
"sidebarLogsAnalytics": "Статистика",
|
||||||
|
"commandSites": "Sites",
|
||||||
|
"commandActionModeInfo": "Type \">\" To Open Action Mode",
|
||||||
|
"commandResources": "Resources",
|
||||||
|
"commandProxyResources": "Public Resources",
|
||||||
|
"commandClientResources": "Private Resources",
|
||||||
|
"commandClients": "Clients",
|
||||||
|
"commandUserDevices": "User Devices",
|
||||||
|
"commandMachineClients": "Machine Clients",
|
||||||
|
"commandDomains": "Domains",
|
||||||
|
"commandRemoteExitNodes": "Remote Nodes",
|
||||||
|
"commandTeam": "Team",
|
||||||
|
"commandUsers": "Users",
|
||||||
|
"commandRoles": "Roles",
|
||||||
|
"commandInvitations": "Invitations",
|
||||||
|
"commandPolicies": "Shared Policies",
|
||||||
|
"commandResourcePolicies": "Public Resources Policies",
|
||||||
|
"commandIdentityProviders": "Identity Providers",
|
||||||
|
"commandApprovals": "Approval Requests",
|
||||||
|
"commandShareableLinks": "Shareable Links",
|
||||||
|
"commandOrganization": "Organization",
|
||||||
|
"commandLogsAndAnalytics": "Logs & Analytics",
|
||||||
|
"commandLogsAnalytics": "Analytics",
|
||||||
|
"commandLogsRequest": "HTTP Request Logs",
|
||||||
|
"commandLogsAccess": "Authentication Logs",
|
||||||
|
"commandLogsAction": "Admin Action Logs",
|
||||||
|
"commandLogsConnection": "Network Logs",
|
||||||
|
"commandLogsStreaming": "Event Streaming",
|
||||||
|
"commandManagement": "Management",
|
||||||
|
"commandAlerting": "Alerting",
|
||||||
|
"commandProvisioning": "Provisioning",
|
||||||
|
"commandBluePrints": "Blueprints",
|
||||||
|
"commandApiKeys": "API Keys",
|
||||||
|
"commandBillingAndLicenses": "Billing & Licenses",
|
||||||
|
"commandBilling": "Billing",
|
||||||
|
"commandEnterpriseLicenses": "Licenses",
|
||||||
|
"commandSettings": "Settings",
|
||||||
|
"commandLauncher": "Launcher",
|
||||||
|
"commandResourceLauncher": "Resource Launcher",
|
||||||
|
"commandSearchResults": "Search Results",
|
||||||
"alertingTitle": "Оповещения",
|
"alertingTitle": "Оповещения",
|
||||||
"alertingDescription": "Определите источники, триггеры и действия для уведомлений",
|
"alertingDescription": "Определите источники, триггеры и действия для уведомлений",
|
||||||
"alertingRules": "Правила оповещений",
|
"alertingRules": "Правила оповещений",
|
||||||
@@ -1915,6 +1990,9 @@
|
|||||||
"billingDomains": "Домены",
|
"billingDomains": "Домены",
|
||||||
"billingOrganizations": "Орги",
|
"billingOrganizations": "Орги",
|
||||||
"billingRemoteExitNodes": "Удаленные узлы",
|
"billingRemoteExitNodes": "Удаленные узлы",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "Лимит не установлен",
|
"billingNoLimitConfigured": "Лимит не установлен",
|
||||||
"billingEstimatedPeriod": "Предполагаемый период выставления счетов",
|
"billingEstimatedPeriod": "Предполагаемый период выставления счетов",
|
||||||
"billingIncludedUsage": "Включенное использование",
|
"billingIncludedUsage": "Включенное использование",
|
||||||
@@ -1943,6 +2021,9 @@
|
|||||||
"billingUsersInfo": "Сколько пользователей вы можете использовать",
|
"billingUsersInfo": "Сколько пользователей вы можете использовать",
|
||||||
"billingDomainInfo": "Сколько доменов вы можете использовать",
|
"billingDomainInfo": "Сколько доменов вы можете использовать",
|
||||||
"billingRemoteExitNodesInfo": "Сколько удаленных узлов вы можете использовать",
|
"billingRemoteExitNodesInfo": "Сколько удаленных узлов вы можете использовать",
|
||||||
|
"billingPublicResourcesInfo": "How many public resources you can use",
|
||||||
|
"billingPrivateResourcesInfo": "How many private resources you can use",
|
||||||
|
"billingMachineClientsInfo": "How many machine clients you can use",
|
||||||
"billingLicenseKeys": "Лицензионные ключи",
|
"billingLicenseKeys": "Лицензионные ключи",
|
||||||
"billingLicenseKeysDescription": "Управление подписками на лицензионные ключи",
|
"billingLicenseKeysDescription": "Управление подписками на лицензионные ключи",
|
||||||
"billingLicenseSubscription": "Лицензионное соглашение",
|
"billingLicenseSubscription": "Лицензионное соглашение",
|
||||||
@@ -2311,6 +2392,12 @@
|
|||||||
"createInternalResourceDialogClose": "Закрыть",
|
"createInternalResourceDialogClose": "Закрыть",
|
||||||
"createInternalResourceDialogCreateClientResource": "Создать приватный ресурс",
|
"createInternalResourceDialogCreateClientResource": "Создать приватный ресурс",
|
||||||
"createInternalResourceDialogCreateClientResourceDescription": "Создать новый ресурс, который будет доступен только клиентам, подключенным к организации",
|
"createInternalResourceDialogCreateClientResourceDescription": "Создать новый ресурс, который будет доступен только клиентам, подключенным к организации",
|
||||||
|
"privateResourceCreatePageSeeAll": "See All Private Resources",
|
||||||
|
"privateResourceAllowIcmpPing": "Allow ICMP Ping",
|
||||||
|
"privateResourceNetworkAccess": "Network Access",
|
||||||
|
"privateResourceNetworkAccessDescription": "Control TCP/UDP port access and whether ICMP ping is allowed for this resource.",
|
||||||
|
"hostSettings": "Host Settings",
|
||||||
|
"cidrSettings": "CIDR Settings",
|
||||||
"createInternalResourceDialogResourceProperties": "Свойства ресурса",
|
"createInternalResourceDialogResourceProperties": "Свойства ресурса",
|
||||||
"createInternalResourceDialogName": "Имя",
|
"createInternalResourceDialogName": "Имя",
|
||||||
"createInternalResourceDialogSite": "Сайт",
|
"createInternalResourceDialogSite": "Сайт",
|
||||||
@@ -2459,6 +2546,7 @@
|
|||||||
"noRemoteExitNodesAvailableDescription": "Для этой организации узлы не доступны. Сначала создайте узел, чтобы использовать локальные сайты.",
|
"noRemoteExitNodesAvailableDescription": "Для этой организации узлы не доступны. Сначала создайте узел, чтобы использовать локальные сайты.",
|
||||||
"exitNode": "Узел выхода",
|
"exitNode": "Узел выхода",
|
||||||
"country": "Страна",
|
"country": "Страна",
|
||||||
|
"countryIsNot": "Country Is Not",
|
||||||
"rulesMatchCountry": "В настоящее время основано на исходном IP",
|
"rulesMatchCountry": "В настоящее время основано на исходном IP",
|
||||||
"region": "Регион",
|
"region": "Регион",
|
||||||
"selectRegion": "Выберите регион",
|
"selectRegion": "Выберите регион",
|
||||||
@@ -3177,7 +3265,7 @@
|
|||||||
"editInternalResourceDialogAddUsers": "Добавить пользователей",
|
"editInternalResourceDialogAddUsers": "Добавить пользователей",
|
||||||
"editInternalResourceDialogAddClients": "Добавить клиентов",
|
"editInternalResourceDialogAddClients": "Добавить клиентов",
|
||||||
"editInternalResourceDialogDestinationLabel": "Пункт назначения",
|
"editInternalResourceDialogDestinationLabel": "Пункт назначения",
|
||||||
"editInternalResourceDialogDestinationDescription": "Укажите адрес назначения для внутреннего ресурса. Это может быть имя хоста, IP-адрес или диапазон CIDR в зависимости от выбранного режима. При необходимости установите внутренний DNS-алиас для облегчения идентификации.",
|
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it",
|
||||||
"internalResourceFormMultiSiteRoutingHelp": "Выбор нескольких сайтов позволяет обеспечить отказоустойчивую маршрутизацию и фейловер для высокой доступности.",
|
"internalResourceFormMultiSiteRoutingHelp": "Выбор нескольких сайтов позволяет обеспечить отказоустойчивую маршрутизацию и фейловер для высокой доступности.",
|
||||||
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Узнать больше",
|
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Узнать больше",
|
||||||
"editInternalResourceDialogPortRestrictionsDescription": "Ограничьте доступ к определенным TCP/UDP-портам или разрешите/заблокируйте все порты.",
|
"editInternalResourceDialogPortRestrictionsDescription": "Ограничьте доступ к определенным TCP/UDP-портам или разрешите/заблокируйте все порты.",
|
||||||
@@ -3571,18 +3659,24 @@
|
|||||||
"memberPortalResourceDisabled": "Ресурс отключён",
|
"memberPortalResourceDisabled": "Ресурс отключён",
|
||||||
"memberPortalShowingResources": "Показаны {start}-{end} из {total} ресурсов",
|
"memberPortalShowingResources": "Показаны {start}-{end} из {total} ресурсов",
|
||||||
"resourceLauncherTitle": "Запуск ресурса",
|
"resourceLauncherTitle": "Запуск ресурса",
|
||||||
"resourceLauncherDescription": "Просмотр деталей ресурса и запуск их из одного места",
|
"resourceSidebarLauncherTitle": "Launcher",
|
||||||
"resourceLauncherSearchPlaceholder": "Поиск всех сайтов...",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
|
"resourceLauncherSearchPlaceholder": "Search your resources...",
|
||||||
"resourceLauncherDefaultView": "По умолчанию",
|
"resourceLauncherDefaultView": "По умолчанию",
|
||||||
"resourceLauncherSaveView": "Сохранить вид",
|
"resourceLauncherSaveView": "Сохранить вид",
|
||||||
"resourceLauncherSaveToCurrentView": "Сохранить в текущий вид",
|
"resourceLauncherSaveToCurrentView": "Сохранить в текущий вид",
|
||||||
|
"resourceLauncherSaveDefaultPersonal": "Save for Me",
|
||||||
"resourceLauncherResetView": "Сбросить вид",
|
"resourceLauncherResetView": "Сбросить вид",
|
||||||
|
"resourceLauncherResetSystemDefault": "Reset to System Default",
|
||||||
|
"resourceLauncherSystemDefaultRestored": "System default restored",
|
||||||
|
"resourceLauncherSystemDefaultRestoredDescription": "The default view has been reset to the original settings.",
|
||||||
"resourceLauncherSaveAsNewView": "Сохранить как новый вид",
|
"resourceLauncherSaveAsNewView": "Сохранить как новый вид",
|
||||||
"resourceLauncherSaveAsNewViewDescription": "Дайте этому виду имя, чтобы сохранить текущие фильтры и макет.",
|
"resourceLauncherSaveAsNewViewDescription": "Дайте этому виду имя, чтобы сохранить текущие фильтры и макет.",
|
||||||
"resourceLauncherSaveForEveryone": "Сохранить для всех",
|
"resourceLauncherSaveForEveryone": "Сохранить для всех",
|
||||||
"resourceLauncherSaveForEveryoneDescription": "Поделитесь этим видом со всеми членами организации. Если не отмечено, видимость только для вас.",
|
"resourceLauncherSaveForEveryoneDescription": "Поделитесь этим видом со всеми членами организации. Если не отмечено, видимость только для вас.",
|
||||||
"resourceLauncherMakePersonal": "Сделать личным",
|
"resourceLauncherMakePersonal": "Сделать личным",
|
||||||
"resourceLauncherFilter": "Фильтр",
|
"resourceLauncherFilter": "Фильтр",
|
||||||
|
"resourceLauncherFilterWithCount": "Filter, {count} applied",
|
||||||
"resourceLauncherSort": "Сортировать",
|
"resourceLauncherSort": "Сортировать",
|
||||||
"resourceLauncherSortAscending": "Сортировать по возрастанию",
|
"resourceLauncherSortAscending": "Сортировать по возрастанию",
|
||||||
"resourceLauncherSortDescending": "Сортировать по убыванию",
|
"resourceLauncherSortDescending": "Сортировать по убыванию",
|
||||||
@@ -3590,6 +3684,7 @@
|
|||||||
"resourceLauncherGroupBy": "Группировать по",
|
"resourceLauncherGroupBy": "Группировать по",
|
||||||
"resourceLauncherGroupBySite": "Сайт",
|
"resourceLauncherGroupBySite": "Сайт",
|
||||||
"resourceLauncherGroupByLabel": "Метка",
|
"resourceLauncherGroupByLabel": "Метка",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "Макет",
|
"resourceLauncherLayout": "Макет",
|
||||||
"resourceLauncherLayoutGrid": "Сетка",
|
"resourceLauncherLayoutGrid": "Сетка",
|
||||||
"resourceLauncherLayoutList": "Список",
|
"resourceLauncherLayoutList": "Список",
|
||||||
@@ -3597,8 +3692,20 @@
|
|||||||
"resourceLauncherShowSiteTags": "Показать теги сайта",
|
"resourceLauncherShowSiteTags": "Показать теги сайта",
|
||||||
"resourceLauncherShowRecents": "Показать недавно",
|
"resourceLauncherShowRecents": "Показать недавно",
|
||||||
"resourceLauncherDeleteView": "Удалить вид",
|
"resourceLauncherDeleteView": "Удалить вид",
|
||||||
|
"resourceLauncherDeleteViewTitle": "Delete View",
|
||||||
|
"resourceLauncherDeleteViewQuestion": "Are you sure you want to delete this launcher view?",
|
||||||
|
"resourceLauncherDeleteViewConfirm": "Delete View",
|
||||||
"resourceLauncherViewAsAdmin": "Просмотр как администратор",
|
"resourceLauncherViewAsAdmin": "Просмотр как администратор",
|
||||||
"resourceLauncherResourceDetailsDescription": "Просмотр деталей этого ресурса.",
|
"resourceLauncherResourceDetailsDescription": "Connection information and status for this resource.",
|
||||||
|
"resourceLauncherResourceDetails": "Resource Details",
|
||||||
|
"resourceLauncherAuthMethodsDescription": "Authentication methods enabled for this resource.",
|
||||||
|
"resourceLauncherPrivateClientRequired": "Connect with a client on your device to access this resource privately.",
|
||||||
|
"resourceLauncherPrivateClientRequiredTitle": "Client Connection Required",
|
||||||
|
"resourceLauncherDownloadClient": "Download client",
|
||||||
|
"resourceLauncherFailedToLoadDetails": "Could not load resource details. You may no longer have access to this resource.",
|
||||||
|
"resourceLauncherNoPortRestrictions": "No port restrictions",
|
||||||
|
"resourceLauncherTcp": "TCP",
|
||||||
|
"resourceLauncherUdp": "UDP",
|
||||||
"resourceLauncherUnlabeled": "Без меток",
|
"resourceLauncherUnlabeled": "Без меток",
|
||||||
"resourceLauncherNoSite": "Без сайта",
|
"resourceLauncherNoSite": "Без сайта",
|
||||||
"resourceLauncherNoResourcesInGroup": "Нет ресурсов в данной группе",
|
"resourceLauncherNoResourcesInGroup": "Нет ресурсов в данной группе",
|
||||||
@@ -3607,6 +3714,12 @@
|
|||||||
"resourceLauncherEmptyStateNoResultsTitle": "Ресурсы не найдены",
|
"resourceLauncherEmptyStateNoResultsTitle": "Ресурсы не найдены",
|
||||||
"resourceLauncherEmptyStateNoResultsDescription": "Ни один ресурс не соответствует вашему текущему поисковому запросу или фильтрам. Попробуйте их изменить, чтобы найти нужное.",
|
"resourceLauncherEmptyStateNoResultsDescription": "Ни один ресурс не соответствует вашему текущему поисковому запросу или фильтрам. Попробуйте их изменить, чтобы найти нужное.",
|
||||||
"resourceLauncherEmptyStateNoResultsWithQuery": "Ни один ресурс не соответствует \"{query}\". Попробуйте изменить параметры поиска или очистить фильтры, чтобы увидеть все ресурсы.",
|
"resourceLauncherEmptyStateNoResultsWithQuery": "Ни один ресурс не соответствует \"{query}\". Попробуйте изменить параметры поиска или очистить фильтры, чтобы увидеть все ресурсы.",
|
||||||
|
"resourceLauncherSearchFirstTitle": "Search or Filter to Browse",
|
||||||
|
"resourceLauncherSearchFirstDescription": "You have access to many resources. Use search or filter by site or label to find what you need.",
|
||||||
|
"resourceLauncherSiteGroupingDisabled": "Site grouping is unavailable at this scale. Filter by site to group a smaller set.",
|
||||||
|
"resourceLauncherLabelGroupingDisabled": "Label grouping is unavailable at this scale.",
|
||||||
|
"resourceLauncherCompactModeHint": "Showing a simplified list for faster browsing. Use search or filters to narrow results.",
|
||||||
|
"resourceLauncherCompactGroupingHint": "Apply site or label filters to enable grouping.",
|
||||||
"resourceLauncherCopiedToClipboard": "Скопировано в буфер обмена",
|
"resourceLauncherCopiedToClipboard": "Скопировано в буфер обмена",
|
||||||
"resourceLauncherCopiedAccessDescription": "Доступ к ресурсу был скопирован в ваш буфер обмена.",
|
"resourceLauncherCopiedAccessDescription": "Доступ к ресурсу был скопирован в ваш буфер обмена.",
|
||||||
"resourceLauncherViewNamePlaceholder": "Имя вида",
|
"resourceLauncherViewNamePlaceholder": "Имя вида",
|
||||||
|
|||||||
+120
-7
@@ -266,6 +266,8 @@
|
|||||||
"resourceRawDescriptionCloud": "Proxy isteklerini bir port numarası kullanarak ham TCP/UDP üzerinden yapın. Sitelerin uzak bir düğüme bağlanması gereklidir.",
|
"resourceRawDescriptionCloud": "Proxy isteklerini bir port numarası kullanarak ham TCP/UDP üzerinden yapın. Sitelerin uzak bir düğüme bağlanması gereklidir.",
|
||||||
"resourceCreate": "Kaynak Oluştur",
|
"resourceCreate": "Kaynak Oluştur",
|
||||||
"resourceCreateDescription": "Yeni bir kaynak oluşturmak için aşağıdaki adımları izleyin",
|
"resourceCreateDescription": "Yeni bir kaynak oluşturmak için aşağıdaki adımları izleyin",
|
||||||
|
"resourcePublicCreate": "Create Public Resource",
|
||||||
|
"resourcePublicCreateDescription": "Follow the steps below to create a new public resource that is accessible through a web browser",
|
||||||
"resourceCreateGeneralDescription": "Adı ve türü dahil temel kaynak ayarlarını yapılandırın",
|
"resourceCreateGeneralDescription": "Adı ve türü dahil temel kaynak ayarlarını yapılandırın",
|
||||||
"resourceSeeAll": "Tüm Kaynakları Gör",
|
"resourceSeeAll": "Tüm Kaynakları Gör",
|
||||||
"resourceCreateGeneral": "Genel",
|
"resourceCreateGeneral": "Genel",
|
||||||
@@ -613,7 +615,8 @@
|
|||||||
"idpNameInternal": "Dahili",
|
"idpNameInternal": "Dahili",
|
||||||
"emailInvalid": "Geçersiz e-posta adresi",
|
"emailInvalid": "Geçersiz e-posta adresi",
|
||||||
"inviteValidityDuration": "Lütfen bir süre seçin",
|
"inviteValidityDuration": "Lütfen bir süre seçin",
|
||||||
"accessRoleSelectPlease": "Lütfen bir rol seçin",
|
"accessRoleSelectPlease": "A user must belong to at least one role.",
|
||||||
|
"accessRoleRequired": "Role required",
|
||||||
"removeOwnAdminRoleConfirmTitle": "Yönetici erişiminizi kaldırmak istiyor musunuz?",
|
"removeOwnAdminRoleConfirmTitle": "Yönetici erişiminizi kaldırmak istiyor musunuz?",
|
||||||
"removeOwnAdminRoleConfirmDescription": "Kaydettikten sonra, bu organizasyonda artık yönetici izinleriniz olmayacak. Gerekirse başka bir yönetici erişimi geri yükleyebilir.",
|
"removeOwnAdminRoleConfirmDescription": "Kaydettikten sonra, bu organizasyonda artık yönetici izinleriniz olmayacak. Gerekirse başka bir yönetici erişimi geri yükleyebilir.",
|
||||||
"removeOwnAdminRoleConfirmButton": "Yönetici Erişimi Kaldır",
|
"removeOwnAdminRoleConfirmButton": "Yönetici Erişimi Kaldır",
|
||||||
@@ -864,8 +867,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "Temel Başlık Kimlik Doğrulama",
|
"policyAuthHeaderAuthTitle": "Temel Başlık Kimlik Doğrulama",
|
||||||
"policyAuthHeaderAuthDescription": "Her istekte özel bir HTTP başlık adını ve değerini doğrulayın",
|
"policyAuthHeaderAuthDescription": "Her istekte özel bir HTTP başlık adını ve değerini doğrulayın",
|
||||||
"policyAuthHeaderAuthSummary": "Başlık yapılandırıldı",
|
"policyAuthHeaderAuthSummary": "Başlık yapılandırıldı",
|
||||||
"policyAuthHeaderName": "Başlık adı",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "Beklenen değer",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "Şifreyi Ayarla",
|
"policyAuthSetPasscode": "Şifreyi Ayarla",
|
||||||
"policyAuthSetPincode": "PIN Kodunu Ayarla",
|
"policyAuthSetPincode": "PIN Kodunu Ayarla",
|
||||||
"policyAuthSetEmailWhitelist": "E-posta Beyaz Listesini Ayarla",
|
"policyAuthSetEmailWhitelist": "E-posta Beyaz Listesini Ayarla",
|
||||||
@@ -1431,6 +1434,15 @@
|
|||||||
"actionSetResourcePincode": "Kaynak PIN Kodunu Ayarla",
|
"actionSetResourcePincode": "Kaynak PIN Kodunu Ayarla",
|
||||||
"actionSetResourceEmailWhitelist": "Kaynak E-posta Beyaz Listesi Ayarla",
|
"actionSetResourceEmailWhitelist": "Kaynak E-posta Beyaz Listesi Ayarla",
|
||||||
"actionGetResourceEmailWhitelist": "Kaynak E-posta Beyaz Listesini Al",
|
"actionGetResourceEmailWhitelist": "Kaynak E-posta Beyaz Listesini Al",
|
||||||
|
"actionGetResourcePolicy": "Get Resource Policy",
|
||||||
|
"actionUpdateResourcePolicy": "Update Resource Policy",
|
||||||
|
"actionSetResourcePolicyUsers": "Set Resource Policy Users",
|
||||||
|
"actionSetResourcePolicyRoles": "Set Resource Policy Roles",
|
||||||
|
"actionSetResourcePolicyPassword": "Set Resource Policy Password",
|
||||||
|
"actionSetResourcePolicyPincode": "Set Resource Policy Pincode",
|
||||||
|
"actionSetResourcePolicyHeaderAuth": "Set Resource Policy Header Authentication",
|
||||||
|
"actionSetResourcePolicyWhitelist": "Set Resource Policy Email Whitelist",
|
||||||
|
"actionSetResourcePolicyRules": "Set Resource Policy Rules",
|
||||||
"actionCreateTarget": "Hedef Oluştur",
|
"actionCreateTarget": "Hedef Oluştur",
|
||||||
"actionDeleteTarget": "Hedefi Sil",
|
"actionDeleteTarget": "Hedefi Sil",
|
||||||
"actionGetTarget": "Hedefi Al",
|
"actionGetTarget": "Hedefi Al",
|
||||||
@@ -1507,6 +1519,30 @@
|
|||||||
"navbar": "Navigasyon Menüsü",
|
"navbar": "Navigasyon Menüsü",
|
||||||
"navbarDescription": "Uygulamanın ana navigasyon menüsü",
|
"navbarDescription": "Uygulamanın ana navigasyon menüsü",
|
||||||
"navbarDocsLink": "Dokümantasyon",
|
"navbarDocsLink": "Dokümantasyon",
|
||||||
|
"commandPaletteTitle": "Command Palette",
|
||||||
|
"commandPaletteDescription": "Search for pages, organizations, resources, and actions",
|
||||||
|
"commandPaletteSearchPlaceholder": "Search pages, resources, actions...",
|
||||||
|
"commandPaletteNoResults": "No results found.",
|
||||||
|
"commandPaletteSearching": "Searching...",
|
||||||
|
"commandPaletteNavigation": "Navigation",
|
||||||
|
"commandPaletteOrganizations": "Organizations",
|
||||||
|
"commandPaletteSites": "Sites",
|
||||||
|
"commandPaletteResources": "Resources",
|
||||||
|
"commandPaletteUsers": "Users",
|
||||||
|
"commandPaletteClients": "Machine Clients",
|
||||||
|
"commandPaletteActions": "Actions",
|
||||||
|
"commandPaletteCreateSite": "Create Site",
|
||||||
|
"commandPaletteCreateProxyResource": "Create Public Resource",
|
||||||
|
"commandPaletteCreatePrivateResource": "Create Private Resource",
|
||||||
|
"commandPaletteCreateUser": "Create User",
|
||||||
|
"commandPaletteCreateApiKey": "Create API Key",
|
||||||
|
"commandPaletteCreateMachineClient": "Create Machine Client",
|
||||||
|
"commandPaletteCreateAlertRule": "Create Alert Rule",
|
||||||
|
"commandPaletteCreateIdentityProvider": "Create Identity Provider",
|
||||||
|
"commandPaletteToggleTheme": "Toggle Theme",
|
||||||
|
"commandPaletteChooseOrganization": "Choose Organization",
|
||||||
|
"commandPaletteShortcutMac": "⌘K",
|
||||||
|
"commandPaletteShortcutWindows": "Ctrl K",
|
||||||
"otpErrorEnable": "2FA etkinleştirilemedi",
|
"otpErrorEnable": "2FA etkinleştirilemedi",
|
||||||
"otpErrorEnableDescription": "2FA etkinleştirilirken bir hata oluştu",
|
"otpErrorEnableDescription": "2FA etkinleştirilirken bir hata oluştu",
|
||||||
"otpSetupCheckCode": "6 haneli bir kod girin",
|
"otpSetupCheckCode": "6 haneli bir kod girin",
|
||||||
@@ -1584,6 +1620,45 @@
|
|||||||
"sidebarManagement": "Yönetim",
|
"sidebarManagement": "Yönetim",
|
||||||
"sidebarBillingAndLicenses": "Faturalandırma & Lisanslar",
|
"sidebarBillingAndLicenses": "Faturalandırma & Lisanslar",
|
||||||
"sidebarLogsAnalytics": "Analitik",
|
"sidebarLogsAnalytics": "Analitik",
|
||||||
|
"commandSites": "Sites",
|
||||||
|
"commandActionModeInfo": "Type \">\" To Open Action Mode",
|
||||||
|
"commandResources": "Resources",
|
||||||
|
"commandProxyResources": "Public Resources",
|
||||||
|
"commandClientResources": "Private Resources",
|
||||||
|
"commandClients": "Clients",
|
||||||
|
"commandUserDevices": "User Devices",
|
||||||
|
"commandMachineClients": "Machine Clients",
|
||||||
|
"commandDomains": "Domains",
|
||||||
|
"commandRemoteExitNodes": "Remote Nodes",
|
||||||
|
"commandTeam": "Team",
|
||||||
|
"commandUsers": "Users",
|
||||||
|
"commandRoles": "Roles",
|
||||||
|
"commandInvitations": "Invitations",
|
||||||
|
"commandPolicies": "Shared Policies",
|
||||||
|
"commandResourcePolicies": "Public Resources Policies",
|
||||||
|
"commandIdentityProviders": "Identity Providers",
|
||||||
|
"commandApprovals": "Approval Requests",
|
||||||
|
"commandShareableLinks": "Shareable Links",
|
||||||
|
"commandOrganization": "Organization",
|
||||||
|
"commandLogsAndAnalytics": "Logs & Analytics",
|
||||||
|
"commandLogsAnalytics": "Analytics",
|
||||||
|
"commandLogsRequest": "HTTP Request Logs",
|
||||||
|
"commandLogsAccess": "Authentication Logs",
|
||||||
|
"commandLogsAction": "Admin Action Logs",
|
||||||
|
"commandLogsConnection": "Network Logs",
|
||||||
|
"commandLogsStreaming": "Event Streaming",
|
||||||
|
"commandManagement": "Management",
|
||||||
|
"commandAlerting": "Alerting",
|
||||||
|
"commandProvisioning": "Provisioning",
|
||||||
|
"commandBluePrints": "Blueprints",
|
||||||
|
"commandApiKeys": "API Keys",
|
||||||
|
"commandBillingAndLicenses": "Billing & Licenses",
|
||||||
|
"commandBilling": "Billing",
|
||||||
|
"commandEnterpriseLicenses": "Licenses",
|
||||||
|
"commandSettings": "Settings",
|
||||||
|
"commandLauncher": "Launcher",
|
||||||
|
"commandResourceLauncher": "Resource Launcher",
|
||||||
|
"commandSearchResults": "Search Results",
|
||||||
"alertingTitle": "Uyarı",
|
"alertingTitle": "Uyarı",
|
||||||
"alertingDescription": "Bildirimler için kaynakları, tetikleyicileri ve eylemleri tanımlayın",
|
"alertingDescription": "Bildirimler için kaynakları, tetikleyicileri ve eylemleri tanımlayın",
|
||||||
"alertingRules": "Uyarı kuralları",
|
"alertingRules": "Uyarı kuralları",
|
||||||
@@ -1915,6 +1990,9 @@
|
|||||||
"billingDomains": "Alan Adları",
|
"billingDomains": "Alan Adları",
|
||||||
"billingOrganizations": "Organizasyonlar",
|
"billingOrganizations": "Organizasyonlar",
|
||||||
"billingRemoteExitNodes": "Uzak Düğümler",
|
"billingRemoteExitNodes": "Uzak Düğümler",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "Hiçbir limit yapılandırılmadı",
|
"billingNoLimitConfigured": "Hiçbir limit yapılandırılmadı",
|
||||||
"billingEstimatedPeriod": "Tahmini Fatura Dönemi",
|
"billingEstimatedPeriod": "Tahmini Fatura Dönemi",
|
||||||
"billingIncludedUsage": "Dahil Kullanım",
|
"billingIncludedUsage": "Dahil Kullanım",
|
||||||
@@ -1943,6 +2021,9 @@
|
|||||||
"billingUsersInfo": "Kaç tane kullanıcı kullanabileceğiniz",
|
"billingUsersInfo": "Kaç tane kullanıcı kullanabileceğiniz",
|
||||||
"billingDomainInfo": "Kaç tane alan adı kullanabileceğiniz",
|
"billingDomainInfo": "Kaç tane alan adı kullanabileceğiniz",
|
||||||
"billingRemoteExitNodesInfo": "Kaç tane uzaktan düğüm kullanabileceğiniz",
|
"billingRemoteExitNodesInfo": "Kaç tane uzaktan düğüm kullanabileceğiniz",
|
||||||
|
"billingPublicResourcesInfo": "How many public resources you can use",
|
||||||
|
"billingPrivateResourcesInfo": "How many private resources you can use",
|
||||||
|
"billingMachineClientsInfo": "How many machine clients you can use",
|
||||||
"billingLicenseKeys": "Lisans Anahtarları",
|
"billingLicenseKeys": "Lisans Anahtarları",
|
||||||
"billingLicenseKeysDescription": "Lisans anahtarı aboneliklerinizi yönetin",
|
"billingLicenseKeysDescription": "Lisans anahtarı aboneliklerinizi yönetin",
|
||||||
"billingLicenseSubscription": "Lisans Aboneliği",
|
"billingLicenseSubscription": "Lisans Aboneliği",
|
||||||
@@ -2311,6 +2392,12 @@
|
|||||||
"createInternalResourceDialogClose": "Kapat",
|
"createInternalResourceDialogClose": "Kapat",
|
||||||
"createInternalResourceDialogCreateClientResource": "Özel Kaynak Oluştur",
|
"createInternalResourceDialogCreateClientResource": "Özel Kaynak Oluştur",
|
||||||
"createInternalResourceDialogCreateClientResourceDescription": "Seçilen siteye bağlı istemcilere erişilebilir olacak yeni bir kaynak oluşturun",
|
"createInternalResourceDialogCreateClientResourceDescription": "Seçilen siteye bağlı istemcilere erişilebilir olacak yeni bir kaynak oluşturun",
|
||||||
|
"privateResourceCreatePageSeeAll": "See All Private Resources",
|
||||||
|
"privateResourceAllowIcmpPing": "Allow ICMP Ping",
|
||||||
|
"privateResourceNetworkAccess": "Network Access",
|
||||||
|
"privateResourceNetworkAccessDescription": "Control TCP/UDP port access and whether ICMP ping is allowed for this resource.",
|
||||||
|
"hostSettings": "Host Settings",
|
||||||
|
"cidrSettings": "CIDR Settings",
|
||||||
"createInternalResourceDialogResourceProperties": "Kaynak Özellikleri",
|
"createInternalResourceDialogResourceProperties": "Kaynak Özellikleri",
|
||||||
"createInternalResourceDialogName": "Ad",
|
"createInternalResourceDialogName": "Ad",
|
||||||
"createInternalResourceDialogSite": "Site",
|
"createInternalResourceDialogSite": "Site",
|
||||||
@@ -2459,6 +2546,7 @@
|
|||||||
"noRemoteExitNodesAvailableDescription": "Bu organizasyon için düğüm mevcut değil. Yerel siteleri kullanmak için önce bir düğüm oluşturun.",
|
"noRemoteExitNodesAvailableDescription": "Bu organizasyon için düğüm mevcut değil. Yerel siteleri kullanmak için önce bir düğüm oluşturun.",
|
||||||
"exitNode": "Çıkış Düğümü",
|
"exitNode": "Çıkış Düğümü",
|
||||||
"country": "Ülke",
|
"country": "Ülke",
|
||||||
|
"countryIsNot": "Country Is Not",
|
||||||
"rulesMatchCountry": "Şu anda kaynak IP'ye dayanarak",
|
"rulesMatchCountry": "Şu anda kaynak IP'ye dayanarak",
|
||||||
"region": "Bölge",
|
"region": "Bölge",
|
||||||
"selectRegion": "Bölgeyi seçin",
|
"selectRegion": "Bölgeyi seçin",
|
||||||
@@ -3177,7 +3265,7 @@
|
|||||||
"editInternalResourceDialogAddUsers": "Kullanıcılar Ekle",
|
"editInternalResourceDialogAddUsers": "Kullanıcılar Ekle",
|
||||||
"editInternalResourceDialogAddClients": "Müşteriler Ekle",
|
"editInternalResourceDialogAddClients": "Müşteriler Ekle",
|
||||||
"editInternalResourceDialogDestinationLabel": "Hedef",
|
"editInternalResourceDialogDestinationLabel": "Hedef",
|
||||||
"editInternalResourceDialogDestinationDescription": "Dahili kaynak için hedef adresi belirtin. Seçilen moda bağlı olarak bu bir ana bilgisayar adı, IP adresi veya CIDR aralığı olabilir. Daha kolay tanımlama için isteğe bağlı olarak dahili bir DNS takma adı ayarlayın.",
|
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it",
|
||||||
"internalResourceFormMultiSiteRoutingHelp": "Birden fazla site seçmek, yüksek kullanılabilirlik için dirençli yönlendirme ve yedeklik sağlar.",
|
"internalResourceFormMultiSiteRoutingHelp": "Birden fazla site seçmek, yüksek kullanılabilirlik için dirençli yönlendirme ve yedeklik sağlar.",
|
||||||
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Daha fazla bilgi",
|
"internalResourceFormMultiSiteRoutingHelpLearnMore": "Daha fazla bilgi",
|
||||||
"editInternalResourceDialogPortRestrictionsDescription": "Belirtilen TCP/UDP portlarına erişimi kısıtlayın veya tüm portlara izin/engelleme verin.",
|
"editInternalResourceDialogPortRestrictionsDescription": "Belirtilen TCP/UDP portlarına erişimi kısıtlayın veya tüm portlara izin/engelleme verin.",
|
||||||
@@ -3571,18 +3659,24 @@
|
|||||||
"memberPortalResourceDisabled": "Kaynak Devre Dışı",
|
"memberPortalResourceDisabled": "Kaynak Devre Dışı",
|
||||||
"memberPortalShowingResources": "{total} kaynaktan {start}-{end} gösteriliyor",
|
"memberPortalShowingResources": "{total} kaynaktan {start}-{end} gösteriliyor",
|
||||||
"resourceLauncherTitle": "Kaynak Başlatıcı",
|
"resourceLauncherTitle": "Kaynak Başlatıcı",
|
||||||
"resourceLauncherDescription": "Kaynağın detaylarını görüntüleyin ve tek bir yerden başlatın",
|
"resourceSidebarLauncherTitle": "Launcher",
|
||||||
"resourceLauncherSearchPlaceholder": "Tüm siteleri ara...",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
|
"resourceLauncherSearchPlaceholder": "Search your resources...",
|
||||||
"resourceLauncherDefaultView": "Varsayılan",
|
"resourceLauncherDefaultView": "Varsayılan",
|
||||||
"resourceLauncherSaveView": "Görünümü Kaydet",
|
"resourceLauncherSaveView": "Görünümü Kaydet",
|
||||||
"resourceLauncherSaveToCurrentView": "Mevcut Görünüme Kaydet",
|
"resourceLauncherSaveToCurrentView": "Mevcut Görünüme Kaydet",
|
||||||
|
"resourceLauncherSaveDefaultPersonal": "Save for Me",
|
||||||
"resourceLauncherResetView": "Görünümü Sıfırla",
|
"resourceLauncherResetView": "Görünümü Sıfırla",
|
||||||
|
"resourceLauncherResetSystemDefault": "Reset to System Default",
|
||||||
|
"resourceLauncherSystemDefaultRestored": "System default restored",
|
||||||
|
"resourceLauncherSystemDefaultRestoredDescription": "The default view has been reset to the original settings.",
|
||||||
"resourceLauncherSaveAsNewView": "Yeni Görünüm Olarak Kaydet",
|
"resourceLauncherSaveAsNewView": "Yeni Görünüm Olarak Kaydet",
|
||||||
"resourceLauncherSaveAsNewViewDescription": "Geçerli filtrelerinizi ve düzeninizi kaydetmek için bu görünüme bir ad verin.",
|
"resourceLauncherSaveAsNewViewDescription": "Geçerli filtrelerinizi ve düzeninizi kaydetmek için bu görünüme bir ad verin.",
|
||||||
"resourceLauncherSaveForEveryone": "Herkes İçin Kaydet",
|
"resourceLauncherSaveForEveryone": "Herkes İçin Kaydet",
|
||||||
"resourceLauncherSaveForEveryoneDescription": "Bu görünümü tüm kuruluş üyeleriyle paylaşın. İşaretli değilse, görünüm yalnızca size görünür olur.",
|
"resourceLauncherSaveForEveryoneDescription": "Bu görünümü tüm kuruluş üyeleriyle paylaşın. İşaretli değilse, görünüm yalnızca size görünür olur.",
|
||||||
"resourceLauncherMakePersonal": "Kişisel Yap",
|
"resourceLauncherMakePersonal": "Kişisel Yap",
|
||||||
"resourceLauncherFilter": "Filtre",
|
"resourceLauncherFilter": "Filtre",
|
||||||
|
"resourceLauncherFilterWithCount": "Filter, {count} applied",
|
||||||
"resourceLauncherSort": "Sıralama",
|
"resourceLauncherSort": "Sıralama",
|
||||||
"resourceLauncherSortAscending": "Artan sırala",
|
"resourceLauncherSortAscending": "Artan sırala",
|
||||||
"resourceLauncherSortDescending": "Azalan sırala",
|
"resourceLauncherSortDescending": "Azalan sırala",
|
||||||
@@ -3590,6 +3684,7 @@
|
|||||||
"resourceLauncherGroupBy": "Grupla",
|
"resourceLauncherGroupBy": "Grupla",
|
||||||
"resourceLauncherGroupBySite": "Site",
|
"resourceLauncherGroupBySite": "Site",
|
||||||
"resourceLauncherGroupByLabel": "Etiket",
|
"resourceLauncherGroupByLabel": "Etiket",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "Düzen",
|
"resourceLauncherLayout": "Düzen",
|
||||||
"resourceLauncherLayoutGrid": "Izgara",
|
"resourceLauncherLayoutGrid": "Izgara",
|
||||||
"resourceLauncherLayoutList": "Liste",
|
"resourceLauncherLayoutList": "Liste",
|
||||||
@@ -3597,8 +3692,20 @@
|
|||||||
"resourceLauncherShowSiteTags": "Site Etiketlerini Göster",
|
"resourceLauncherShowSiteTags": "Site Etiketlerini Göster",
|
||||||
"resourceLauncherShowRecents": "Son Eklenenleri Göster",
|
"resourceLauncherShowRecents": "Son Eklenenleri Göster",
|
||||||
"resourceLauncherDeleteView": "Görünümü Sil",
|
"resourceLauncherDeleteView": "Görünümü Sil",
|
||||||
|
"resourceLauncherDeleteViewTitle": "Delete View",
|
||||||
|
"resourceLauncherDeleteViewQuestion": "Are you sure you want to delete this launcher view?",
|
||||||
|
"resourceLauncherDeleteViewConfirm": "Delete View",
|
||||||
"resourceLauncherViewAsAdmin": "Yönetici Olarak Görüntüle",
|
"resourceLauncherViewAsAdmin": "Yönetici Olarak Görüntüle",
|
||||||
"resourceLauncherResourceDetailsDescription": "Bu kaynağın detaylarını görüntüleyin.",
|
"resourceLauncherResourceDetailsDescription": "Connection information and status for this resource.",
|
||||||
|
"resourceLauncherResourceDetails": "Resource Details",
|
||||||
|
"resourceLauncherAuthMethodsDescription": "Authentication methods enabled for this resource.",
|
||||||
|
"resourceLauncherPrivateClientRequired": "Connect with a client on your device to access this resource privately.",
|
||||||
|
"resourceLauncherPrivateClientRequiredTitle": "Client Connection Required",
|
||||||
|
"resourceLauncherDownloadClient": "Download client",
|
||||||
|
"resourceLauncherFailedToLoadDetails": "Could not load resource details. You may no longer have access to this resource.",
|
||||||
|
"resourceLauncherNoPortRestrictions": "No port restrictions",
|
||||||
|
"resourceLauncherTcp": "TCP",
|
||||||
|
"resourceLauncherUdp": "UDP",
|
||||||
"resourceLauncherUnlabeled": "Etiketsiz",
|
"resourceLauncherUnlabeled": "Etiketsiz",
|
||||||
"resourceLauncherNoSite": "Site Yok",
|
"resourceLauncherNoSite": "Site Yok",
|
||||||
"resourceLauncherNoResourcesInGroup": "Bu grupta kaynak yok",
|
"resourceLauncherNoResourcesInGroup": "Bu grupta kaynak yok",
|
||||||
@@ -3607,6 +3714,12 @@
|
|||||||
"resourceLauncherEmptyStateNoResultsTitle": "Kaynak Bulunamadı",
|
"resourceLauncherEmptyStateNoResultsTitle": "Kaynak Bulunamadı",
|
||||||
"resourceLauncherEmptyStateNoResultsDescription": "Mevcut arama veya filtrelerinizle eşleşen kaynak yok. Aradığınızı bulmak için ayarları değiştirmeyi deneyin.",
|
"resourceLauncherEmptyStateNoResultsDescription": "Mevcut arama veya filtrelerinizle eşleşen kaynak yok. Aradığınızı bulmak için ayarları değiştirmeyi deneyin.",
|
||||||
"resourceLauncherEmptyStateNoResultsWithQuery": "\"{query}\" ile eşleşen kaynak yok. Tüm kaynakları görmek için aramayı düzenlemeyi veya filtreleri temizlemeyi deneyin.",
|
"resourceLauncherEmptyStateNoResultsWithQuery": "\"{query}\" ile eşleşen kaynak yok. Tüm kaynakları görmek için aramayı düzenlemeyi veya filtreleri temizlemeyi deneyin.",
|
||||||
|
"resourceLauncherSearchFirstTitle": "Search or Filter to Browse",
|
||||||
|
"resourceLauncherSearchFirstDescription": "You have access to many resources. Use search or filter by site or label to find what you need.",
|
||||||
|
"resourceLauncherSiteGroupingDisabled": "Site grouping is unavailable at this scale. Filter by site to group a smaller set.",
|
||||||
|
"resourceLauncherLabelGroupingDisabled": "Label grouping is unavailable at this scale.",
|
||||||
|
"resourceLauncherCompactModeHint": "Showing a simplified list for faster browsing. Use search or filters to narrow results.",
|
||||||
|
"resourceLauncherCompactGroupingHint": "Apply site or label filters to enable grouping.",
|
||||||
"resourceLauncherCopiedToClipboard": "Panoya kopyalandı",
|
"resourceLauncherCopiedToClipboard": "Panoya kopyalandı",
|
||||||
"resourceLauncherCopiedAccessDescription": "Kaynağa erişim panonuza kopyalandı.",
|
"resourceLauncherCopiedAccessDescription": "Kaynağa erişim panonuza kopyalandı.",
|
||||||
"resourceLauncherViewNamePlaceholder": "Görünüm adı",
|
"resourceLauncherViewNamePlaceholder": "Görünüm adı",
|
||||||
|
|||||||
+120
-7
@@ -266,6 +266,8 @@
|
|||||||
"resourceRawDescriptionCloud": "正在使用端口号使用 TCP/UDP 代理请求。需要站点连接到远程节点。",
|
"resourceRawDescriptionCloud": "正在使用端口号使用 TCP/UDP 代理请求。需要站点连接到远程节点。",
|
||||||
"resourceCreate": "创建资源",
|
"resourceCreate": "创建资源",
|
||||||
"resourceCreateDescription": "按照下面的步骤创建新资源",
|
"resourceCreateDescription": "按照下面的步骤创建新资源",
|
||||||
|
"resourcePublicCreate": "Create Public Resource",
|
||||||
|
"resourcePublicCreateDescription": "Follow the steps below to create a new public resource that is accessible through a web browser",
|
||||||
"resourceCreateGeneralDescription": "配置基本资源设置,包括名称和类型",
|
"resourceCreateGeneralDescription": "配置基本资源设置,包括名称和类型",
|
||||||
"resourceSeeAll": "查看所有资源",
|
"resourceSeeAll": "查看所有资源",
|
||||||
"resourceCreateGeneral": "概览",
|
"resourceCreateGeneral": "概览",
|
||||||
@@ -613,7 +615,8 @@
|
|||||||
"idpNameInternal": "内部设置",
|
"idpNameInternal": "内部设置",
|
||||||
"emailInvalid": "无效的电子邮件地址",
|
"emailInvalid": "无效的电子邮件地址",
|
||||||
"inviteValidityDuration": "请选择持续时间",
|
"inviteValidityDuration": "请选择持续时间",
|
||||||
"accessRoleSelectPlease": "请选择一个角色",
|
"accessRoleSelectPlease": "A user must belong to at least one role.",
|
||||||
|
"accessRoleRequired": "Role required",
|
||||||
"removeOwnAdminRoleConfirmTitle": "移除你的管理员权限?",
|
"removeOwnAdminRoleConfirmTitle": "移除你的管理员权限?",
|
||||||
"removeOwnAdminRoleConfirmDescription": "保存后,你将不再拥有该组织的管理员权限。如果需要,其他管理员可以恢复访问。",
|
"removeOwnAdminRoleConfirmDescription": "保存后,你将不再拥有该组织的管理员权限。如果需要,其他管理员可以恢复访问。",
|
||||||
"removeOwnAdminRoleConfirmButton": "移除我的管理员访问权限",
|
"removeOwnAdminRoleConfirmButton": "移除我的管理员访问权限",
|
||||||
@@ -864,8 +867,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "基础标题认证",
|
"policyAuthHeaderAuthTitle": "基础标题认证",
|
||||||
"policyAuthHeaderAuthDescription": "在每次请求上验证自定义 HTTP 标头名称和值",
|
"policyAuthHeaderAuthDescription": "在每次请求上验证自定义 HTTP 标头名称和值",
|
||||||
"policyAuthHeaderAuthSummary": "标头已配置",
|
"policyAuthHeaderAuthSummary": "标头已配置",
|
||||||
"policyAuthHeaderName": "标头名称",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "预期值",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "设定密码",
|
"policyAuthSetPasscode": "设定密码",
|
||||||
"policyAuthSetPincode": "设置 PIN 码",
|
"policyAuthSetPincode": "设置 PIN 码",
|
||||||
"policyAuthSetEmailWhitelist": "设置电子邮件白名单",
|
"policyAuthSetEmailWhitelist": "设置电子邮件白名单",
|
||||||
@@ -1431,6 +1434,15 @@
|
|||||||
"actionSetResourcePincode": "设置资源粉码",
|
"actionSetResourcePincode": "设置资源粉码",
|
||||||
"actionSetResourceEmailWhitelist": "设置资源电子邮件白名单",
|
"actionSetResourceEmailWhitelist": "设置资源电子邮件白名单",
|
||||||
"actionGetResourceEmailWhitelist": "获取资源电子邮件白名单",
|
"actionGetResourceEmailWhitelist": "获取资源电子邮件白名单",
|
||||||
|
"actionGetResourcePolicy": "Get Resource Policy",
|
||||||
|
"actionUpdateResourcePolicy": "Update Resource Policy",
|
||||||
|
"actionSetResourcePolicyUsers": "Set Resource Policy Users",
|
||||||
|
"actionSetResourcePolicyRoles": "Set Resource Policy Roles",
|
||||||
|
"actionSetResourcePolicyPassword": "Set Resource Policy Password",
|
||||||
|
"actionSetResourcePolicyPincode": "Set Resource Policy Pincode",
|
||||||
|
"actionSetResourcePolicyHeaderAuth": "Set Resource Policy Header Authentication",
|
||||||
|
"actionSetResourcePolicyWhitelist": "Set Resource Policy Email Whitelist",
|
||||||
|
"actionSetResourcePolicyRules": "Set Resource Policy Rules",
|
||||||
"actionCreateTarget": "创建目标",
|
"actionCreateTarget": "创建目标",
|
||||||
"actionDeleteTarget": "删除目标",
|
"actionDeleteTarget": "删除目标",
|
||||||
"actionGetTarget": "获取目标",
|
"actionGetTarget": "获取目标",
|
||||||
@@ -1507,6 +1519,30 @@
|
|||||||
"navbar": "导航菜单",
|
"navbar": "导航菜单",
|
||||||
"navbarDescription": "应用程序的主导航菜单",
|
"navbarDescription": "应用程序的主导航菜单",
|
||||||
"navbarDocsLink": "文件",
|
"navbarDocsLink": "文件",
|
||||||
|
"commandPaletteTitle": "Command Palette",
|
||||||
|
"commandPaletteDescription": "Search for pages, organizations, resources, and actions",
|
||||||
|
"commandPaletteSearchPlaceholder": "Search pages, resources, actions...",
|
||||||
|
"commandPaletteNoResults": "No results found.",
|
||||||
|
"commandPaletteSearching": "Searching...",
|
||||||
|
"commandPaletteNavigation": "Navigation",
|
||||||
|
"commandPaletteOrganizations": "Organizations",
|
||||||
|
"commandPaletteSites": "Sites",
|
||||||
|
"commandPaletteResources": "Resources",
|
||||||
|
"commandPaletteUsers": "Users",
|
||||||
|
"commandPaletteClients": "Machine Clients",
|
||||||
|
"commandPaletteActions": "Actions",
|
||||||
|
"commandPaletteCreateSite": "Create Site",
|
||||||
|
"commandPaletteCreateProxyResource": "Create Public Resource",
|
||||||
|
"commandPaletteCreatePrivateResource": "Create Private Resource",
|
||||||
|
"commandPaletteCreateUser": "Create User",
|
||||||
|
"commandPaletteCreateApiKey": "Create API Key",
|
||||||
|
"commandPaletteCreateMachineClient": "Create Machine Client",
|
||||||
|
"commandPaletteCreateAlertRule": "Create Alert Rule",
|
||||||
|
"commandPaletteCreateIdentityProvider": "Create Identity Provider",
|
||||||
|
"commandPaletteToggleTheme": "Toggle Theme",
|
||||||
|
"commandPaletteChooseOrganization": "Choose Organization",
|
||||||
|
"commandPaletteShortcutMac": "⌘K",
|
||||||
|
"commandPaletteShortcutWindows": "Ctrl K",
|
||||||
"otpErrorEnable": "无法启用 2FA",
|
"otpErrorEnable": "无法启用 2FA",
|
||||||
"otpErrorEnableDescription": "启用 2FA 时出错",
|
"otpErrorEnableDescription": "启用 2FA 时出错",
|
||||||
"otpSetupCheckCode": "请输入您的6位数字代码",
|
"otpSetupCheckCode": "请输入您的6位数字代码",
|
||||||
@@ -1584,6 +1620,45 @@
|
|||||||
"sidebarManagement": "管理",
|
"sidebarManagement": "管理",
|
||||||
"sidebarBillingAndLicenses": "帐单和许可证",
|
"sidebarBillingAndLicenses": "帐单和许可证",
|
||||||
"sidebarLogsAnalytics": "分析",
|
"sidebarLogsAnalytics": "分析",
|
||||||
|
"commandSites": "Sites",
|
||||||
|
"commandActionModeInfo": "Type \">\" To Open Action Mode",
|
||||||
|
"commandResources": "Resources",
|
||||||
|
"commandProxyResources": "Public Resources",
|
||||||
|
"commandClientResources": "Private Resources",
|
||||||
|
"commandClients": "Clients",
|
||||||
|
"commandUserDevices": "User Devices",
|
||||||
|
"commandMachineClients": "Machine Clients",
|
||||||
|
"commandDomains": "Domains",
|
||||||
|
"commandRemoteExitNodes": "Remote Nodes",
|
||||||
|
"commandTeam": "Team",
|
||||||
|
"commandUsers": "Users",
|
||||||
|
"commandRoles": "Roles",
|
||||||
|
"commandInvitations": "Invitations",
|
||||||
|
"commandPolicies": "Shared Policies",
|
||||||
|
"commandResourcePolicies": "Public Resources Policies",
|
||||||
|
"commandIdentityProviders": "Identity Providers",
|
||||||
|
"commandApprovals": "Approval Requests",
|
||||||
|
"commandShareableLinks": "Shareable Links",
|
||||||
|
"commandOrganization": "Organization",
|
||||||
|
"commandLogsAndAnalytics": "Logs & Analytics",
|
||||||
|
"commandLogsAnalytics": "Analytics",
|
||||||
|
"commandLogsRequest": "HTTP Request Logs",
|
||||||
|
"commandLogsAccess": "Authentication Logs",
|
||||||
|
"commandLogsAction": "Admin Action Logs",
|
||||||
|
"commandLogsConnection": "Network Logs",
|
||||||
|
"commandLogsStreaming": "Event Streaming",
|
||||||
|
"commandManagement": "Management",
|
||||||
|
"commandAlerting": "Alerting",
|
||||||
|
"commandProvisioning": "Provisioning",
|
||||||
|
"commandBluePrints": "Blueprints",
|
||||||
|
"commandApiKeys": "API Keys",
|
||||||
|
"commandBillingAndLicenses": "Billing & Licenses",
|
||||||
|
"commandBilling": "Billing",
|
||||||
|
"commandEnterpriseLicenses": "Licenses",
|
||||||
|
"commandSettings": "Settings",
|
||||||
|
"commandLauncher": "Launcher",
|
||||||
|
"commandResourceLauncher": "Resource Launcher",
|
||||||
|
"commandSearchResults": "Search Results",
|
||||||
"alertingTitle": "告警",
|
"alertingTitle": "告警",
|
||||||
"alertingDescription": "定义通知的来源、触发器和操作",
|
"alertingDescription": "定义通知的来源、触发器和操作",
|
||||||
"alertingRules": "告警规则",
|
"alertingRules": "告警规则",
|
||||||
@@ -1915,6 +1990,9 @@
|
|||||||
"billingDomains": "域",
|
"billingDomains": "域",
|
||||||
"billingOrganizations": "球队",
|
"billingOrganizations": "球队",
|
||||||
"billingRemoteExitNodes": "远程节点",
|
"billingRemoteExitNodes": "远程节点",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "未配置限制",
|
"billingNoLimitConfigured": "未配置限制",
|
||||||
"billingEstimatedPeriod": "估计结算周期",
|
"billingEstimatedPeriod": "估计结算周期",
|
||||||
"billingIncludedUsage": "包含的使用量",
|
"billingIncludedUsage": "包含的使用量",
|
||||||
@@ -1943,6 +2021,9 @@
|
|||||||
"billingUsersInfo": "您可以使用多少用户",
|
"billingUsersInfo": "您可以使用多少用户",
|
||||||
"billingDomainInfo": "您可以使用多少域",
|
"billingDomainInfo": "您可以使用多少域",
|
||||||
"billingRemoteExitNodesInfo": "您可以使用多少远程节点",
|
"billingRemoteExitNodesInfo": "您可以使用多少远程节点",
|
||||||
|
"billingPublicResourcesInfo": "How many public resources you can use",
|
||||||
|
"billingPrivateResourcesInfo": "How many private resources you can use",
|
||||||
|
"billingMachineClientsInfo": "How many machine clients you can use",
|
||||||
"billingLicenseKeys": "许可证密钥",
|
"billingLicenseKeys": "许可证密钥",
|
||||||
"billingLicenseKeysDescription": "管理您的许可证密钥订阅",
|
"billingLicenseKeysDescription": "管理您的许可证密钥订阅",
|
||||||
"billingLicenseSubscription": "许可订阅",
|
"billingLicenseSubscription": "许可订阅",
|
||||||
@@ -2311,6 +2392,12 @@
|
|||||||
"createInternalResourceDialogClose": "关闭",
|
"createInternalResourceDialogClose": "关闭",
|
||||||
"createInternalResourceDialogCreateClientResource": "创建私有资源",
|
"createInternalResourceDialogCreateClientResource": "创建私有资源",
|
||||||
"createInternalResourceDialogCreateClientResourceDescription": "创建一个新资源只能为连接到组织的客户端访问",
|
"createInternalResourceDialogCreateClientResourceDescription": "创建一个新资源只能为连接到组织的客户端访问",
|
||||||
|
"privateResourceCreatePageSeeAll": "See All Private Resources",
|
||||||
|
"privateResourceAllowIcmpPing": "Allow ICMP Ping",
|
||||||
|
"privateResourceNetworkAccess": "Network Access",
|
||||||
|
"privateResourceNetworkAccessDescription": "Control TCP/UDP port access and whether ICMP ping is allowed for this resource.",
|
||||||
|
"hostSettings": "Host Settings",
|
||||||
|
"cidrSettings": "CIDR Settings",
|
||||||
"createInternalResourceDialogResourceProperties": "资源属性",
|
"createInternalResourceDialogResourceProperties": "资源属性",
|
||||||
"createInternalResourceDialogName": "名称",
|
"createInternalResourceDialogName": "名称",
|
||||||
"createInternalResourceDialogSite": "站点",
|
"createInternalResourceDialogSite": "站点",
|
||||||
@@ -2459,6 +2546,7 @@
|
|||||||
"noRemoteExitNodesAvailableDescription": "此组织没有可用的节点。首先创建一个节点来使用本地站点。",
|
"noRemoteExitNodesAvailableDescription": "此组织没有可用的节点。首先创建一个节点来使用本地站点。",
|
||||||
"exitNode": "出口节点",
|
"exitNode": "出口节点",
|
||||||
"country": "国家",
|
"country": "国家",
|
||||||
|
"countryIsNot": "Country Is Not",
|
||||||
"rulesMatchCountry": "当前基于源 IP",
|
"rulesMatchCountry": "当前基于源 IP",
|
||||||
"region": "地区",
|
"region": "地区",
|
||||||
"selectRegion": "选择区域",
|
"selectRegion": "选择区域",
|
||||||
@@ -3177,7 +3265,7 @@
|
|||||||
"editInternalResourceDialogAddUsers": "添加用户",
|
"editInternalResourceDialogAddUsers": "添加用户",
|
||||||
"editInternalResourceDialogAddClients": "添加客户端",
|
"editInternalResourceDialogAddClients": "添加客户端",
|
||||||
"editInternalResourceDialogDestinationLabel": "目标",
|
"editInternalResourceDialogDestinationLabel": "目标",
|
||||||
"editInternalResourceDialogDestinationDescription": "指定内部资源的目标地址。根据选择的模式,这可以是主机名、IP地址或CIDR范围。可选的,设置一个内部DNS别名以便于识别。",
|
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it",
|
||||||
"internalResourceFormMultiSiteRoutingHelp": "选择多个站点可以实现高可用性的弹性路由和故障转移。",
|
"internalResourceFormMultiSiteRoutingHelp": "选择多个站点可以实现高可用性的弹性路由和故障转移。",
|
||||||
"internalResourceFormMultiSiteRoutingHelpLearnMore": "了解更多",
|
"internalResourceFormMultiSiteRoutingHelpLearnMore": "了解更多",
|
||||||
"editInternalResourceDialogPortRestrictionsDescription": "限制访问特定的TCP/UDP端口或允许/阻止所有端口。",
|
"editInternalResourceDialogPortRestrictionsDescription": "限制访问特定的TCP/UDP端口或允许/阻止所有端口。",
|
||||||
@@ -3571,18 +3659,24 @@
|
|||||||
"memberPortalResourceDisabled": "资源已禁用",
|
"memberPortalResourceDisabled": "资源已禁用",
|
||||||
"memberPortalShowingResources": "显示 {start}-{end} 共 {total} 个资源",
|
"memberPortalShowingResources": "显示 {start}-{end} 共 {total} 个资源",
|
||||||
"resourceLauncherTitle": "资源启动器",
|
"resourceLauncherTitle": "资源启动器",
|
||||||
"resourceLauncherDescription": "查看资源详情并从一个地方启动它们",
|
"resourceSidebarLauncherTitle": "Launcher",
|
||||||
"resourceLauncherSearchPlaceholder": "搜索所有站点……",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
|
"resourceLauncherSearchPlaceholder": "Search your resources...",
|
||||||
"resourceLauncherDefaultView": "默认",
|
"resourceLauncherDefaultView": "默认",
|
||||||
"resourceLauncherSaveView": "保存视图",
|
"resourceLauncherSaveView": "保存视图",
|
||||||
"resourceLauncherSaveToCurrentView": "保存至当前视图",
|
"resourceLauncherSaveToCurrentView": "保存至当前视图",
|
||||||
|
"resourceLauncherSaveDefaultPersonal": "Save for Me",
|
||||||
"resourceLauncherResetView": "重置视图",
|
"resourceLauncherResetView": "重置视图",
|
||||||
|
"resourceLauncherResetSystemDefault": "Reset to System Default",
|
||||||
|
"resourceLauncherSystemDefaultRestored": "System default restored",
|
||||||
|
"resourceLauncherSystemDefaultRestoredDescription": "The default view has been reset to the original settings.",
|
||||||
"resourceLauncherSaveAsNewView": "另存为新视图",
|
"resourceLauncherSaveAsNewView": "另存为新视图",
|
||||||
"resourceLauncherSaveAsNewViewDescription": "为此视图命名,以便保存您当前的过滤器和布局。",
|
"resourceLauncherSaveAsNewViewDescription": "为此视图命名,以便保存您当前的过滤器和布局。",
|
||||||
"resourceLauncherSaveForEveryone": "为所有人保存",
|
"resourceLauncherSaveForEveryone": "为所有人保存",
|
||||||
"resourceLauncherSaveForEveryoneDescription": "与所有组织成员共享此视图。如果未选中,此视图仅对您可见。",
|
"resourceLauncherSaveForEveryoneDescription": "与所有组织成员共享此视图。如果未选中,此视图仅对您可见。",
|
||||||
"resourceLauncherMakePersonal": "创建个人",
|
"resourceLauncherMakePersonal": "创建个人",
|
||||||
"resourceLauncherFilter": "筛选",
|
"resourceLauncherFilter": "筛选",
|
||||||
|
"resourceLauncherFilterWithCount": "Filter, {count} applied",
|
||||||
"resourceLauncherSort": "排序",
|
"resourceLauncherSort": "排序",
|
||||||
"resourceLauncherSortAscending": "按升序排序",
|
"resourceLauncherSortAscending": "按升序排序",
|
||||||
"resourceLauncherSortDescending": "按降序排序",
|
"resourceLauncherSortDescending": "按降序排序",
|
||||||
@@ -3590,6 +3684,7 @@
|
|||||||
"resourceLauncherGroupBy": "按组",
|
"resourceLauncherGroupBy": "按组",
|
||||||
"resourceLauncherGroupBySite": "站点",
|
"resourceLauncherGroupBySite": "站点",
|
||||||
"resourceLauncherGroupByLabel": "标签",
|
"resourceLauncherGroupByLabel": "标签",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "布局",
|
"resourceLauncherLayout": "布局",
|
||||||
"resourceLauncherLayoutGrid": "网格",
|
"resourceLauncherLayoutGrid": "网格",
|
||||||
"resourceLauncherLayoutList": "列表",
|
"resourceLauncherLayoutList": "列表",
|
||||||
@@ -3597,8 +3692,20 @@
|
|||||||
"resourceLauncherShowSiteTags": "显示站点标签",
|
"resourceLauncherShowSiteTags": "显示站点标签",
|
||||||
"resourceLauncherShowRecents": "显示最近使用",
|
"resourceLauncherShowRecents": "显示最近使用",
|
||||||
"resourceLauncherDeleteView": "删除视图",
|
"resourceLauncherDeleteView": "删除视图",
|
||||||
|
"resourceLauncherDeleteViewTitle": "Delete View",
|
||||||
|
"resourceLauncherDeleteViewQuestion": "Are you sure you want to delete this launcher view?",
|
||||||
|
"resourceLauncherDeleteViewConfirm": "Delete View",
|
||||||
"resourceLauncherViewAsAdmin": "以管理员身份查看",
|
"resourceLauncherViewAsAdmin": "以管理员身份查看",
|
||||||
"resourceLauncherResourceDetailsDescription": "查看此资源的详细信息。",
|
"resourceLauncherResourceDetailsDescription": "Connection information and status for this resource.",
|
||||||
|
"resourceLauncherResourceDetails": "Resource Details",
|
||||||
|
"resourceLauncherAuthMethodsDescription": "Authentication methods enabled for this resource.",
|
||||||
|
"resourceLauncherPrivateClientRequired": "Connect with a client on your device to access this resource privately.",
|
||||||
|
"resourceLauncherPrivateClientRequiredTitle": "Client Connection Required",
|
||||||
|
"resourceLauncherDownloadClient": "Download client",
|
||||||
|
"resourceLauncherFailedToLoadDetails": "Could not load resource details. You may no longer have access to this resource.",
|
||||||
|
"resourceLauncherNoPortRestrictions": "No port restrictions",
|
||||||
|
"resourceLauncherTcp": "TCP",
|
||||||
|
"resourceLauncherUdp": "UDP",
|
||||||
"resourceLauncherUnlabeled": "未标记",
|
"resourceLauncherUnlabeled": "未标记",
|
||||||
"resourceLauncherNoSite": "无站点",
|
"resourceLauncherNoSite": "无站点",
|
||||||
"resourceLauncherNoResourcesInGroup": "此组中没有资源",
|
"resourceLauncherNoResourcesInGroup": "此组中没有资源",
|
||||||
@@ -3607,6 +3714,12 @@
|
|||||||
"resourceLauncherEmptyStateNoResultsTitle": "未找到资源",
|
"resourceLauncherEmptyStateNoResultsTitle": "未找到资源",
|
||||||
"resourceLauncherEmptyStateNoResultsDescription": "没有资源与您当前的搜索或过滤器匹配。尝试调整它们以找到您想要的内容。",
|
"resourceLauncherEmptyStateNoResultsDescription": "没有资源与您当前的搜索或过滤器匹配。尝试调整它们以找到您想要的内容。",
|
||||||
"resourceLauncherEmptyStateNoResultsWithQuery": "没有资源匹配\"{query}\"。尝试调整您的搜索或清除过滤器以查看所有资源。",
|
"resourceLauncherEmptyStateNoResultsWithQuery": "没有资源匹配\"{query}\"。尝试调整您的搜索或清除过滤器以查看所有资源。",
|
||||||
|
"resourceLauncherSearchFirstTitle": "Search or Filter to Browse",
|
||||||
|
"resourceLauncherSearchFirstDescription": "You have access to many resources. Use search or filter by site or label to find what you need.",
|
||||||
|
"resourceLauncherSiteGroupingDisabled": "Site grouping is unavailable at this scale. Filter by site to group a smaller set.",
|
||||||
|
"resourceLauncherLabelGroupingDisabled": "Label grouping is unavailable at this scale.",
|
||||||
|
"resourceLauncherCompactModeHint": "Showing a simplified list for faster browsing. Use search or filters to narrow results.",
|
||||||
|
"resourceLauncherCompactGroupingHint": "Apply site or label filters to enable grouping.",
|
||||||
"resourceLauncherCopiedToClipboard": "已复制到剪贴板",
|
"resourceLauncherCopiedToClipboard": "已复制到剪贴板",
|
||||||
"resourceLauncherCopiedAccessDescription": "资源访问权限已复制到剪贴板。",
|
"resourceLauncherCopiedAccessDescription": "资源访问权限已复制到剪贴板。",
|
||||||
"resourceLauncherViewNamePlaceholder": "查看名称",
|
"resourceLauncherViewNamePlaceholder": "查看名称",
|
||||||
|
|||||||
@@ -27,12 +27,6 @@ export async function getFeatureDisplayName(
|
|||||||
return "Remote Exit Nodes";
|
return "Remote Exit Nodes";
|
||||||
case LimitId.ORGANIZATIONS:
|
case LimitId.ORGANIZATIONS:
|
||||||
return "Organizations";
|
return "Organizations";
|
||||||
case LimitId.PUBLIC_RESOURCES:
|
|
||||||
return "Public Resources";
|
|
||||||
case LimitId.PRIVATE_RESOURCES:
|
|
||||||
return "Private Resources";
|
|
||||||
case LimitId.MACHINE_CLIENTS:
|
|
||||||
return "Machine Clients";
|
|
||||||
case LimitId.TIER1:
|
case LimitId.TIER1:
|
||||||
return "Home Lab";
|
return "Home Lab";
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -1,83 +0,0 @@
|
|||||||
import logger from "@server/logger";
|
|
||||||
|
|
||||||
const MAX_RETRIES = 5;
|
|
||||||
const BASE_DELAY_MS = 50;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Detect transient errors that are safe to retry (connection drops, deadlocks,
|
|
||||||
* serialization failures). PostgreSQL deadlocks (40P01) are always safe to
|
|
||||||
* retry: the database guarantees exactly one winner per deadlock pair, so the
|
|
||||||
* loser just needs to try again.
|
|
||||||
*/
|
|
||||||
export function isTransientError(error: any): boolean {
|
|
||||||
if (!error) return false;
|
|
||||||
|
|
||||||
const message = (error.message || "").toLowerCase();
|
|
||||||
const causeMessage = (error.cause?.message || "").toLowerCase();
|
|
||||||
const code = error.code || error.cause?.code || "";
|
|
||||||
|
|
||||||
// Connection timeout / terminated
|
|
||||||
if (
|
|
||||||
message.includes("connection timeout") ||
|
|
||||||
message.includes("connection terminated") ||
|
|
||||||
message.includes("timeout exceeded when trying to connect") ||
|
|
||||||
causeMessage.includes("connection terminated unexpectedly") ||
|
|
||||||
causeMessage.includes("connection timeout")
|
|
||||||
) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// PostgreSQL deadlock detected - always safe to retry (one winner guaranteed)
|
|
||||||
if (code === "40P01" || message.includes("deadlock")) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// PostgreSQL serialization failure
|
|
||||||
if (code === "40001") {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ECONNRESET, ECONNREFUSED, EPIPE, ETIMEDOUT
|
|
||||||
if (
|
|
||||||
code === "ECONNRESET" ||
|
|
||||||
code === "ECONNREFUSED" ||
|
|
||||||
code === "EPIPE" ||
|
|
||||||
code === "ETIMEDOUT"
|
|
||||||
) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Simple retry wrapper with exponential backoff for transient errors
|
|
||||||
* (deadlocks, connection timeouts, unexpected disconnects).
|
|
||||||
*/
|
|
||||||
export async function withRetry<T>(
|
|
||||||
operation: () => Promise<T>,
|
|
||||||
context: string,
|
|
||||||
maxRetries: number = MAX_RETRIES,
|
|
||||||
baseDelayMs: number = BASE_DELAY_MS
|
|
||||||
): Promise<T> {
|
|
||||||
let attempt = 0;
|
|
||||||
while (true) {
|
|
||||||
try {
|
|
||||||
return await operation();
|
|
||||||
} catch (error: any) {
|
|
||||||
if (isTransientError(error) && attempt < maxRetries) {
|
|
||||||
attempt++;
|
|
||||||
const baseDelay = Math.pow(2, attempt - 1) * baseDelayMs;
|
|
||||||
const jitter = Math.random() * baseDelay;
|
|
||||||
const delay = baseDelay + jitter;
|
|
||||||
logger.warn(
|
|
||||||
`Transient DB error in ${context}, retrying attempt ${attempt}/${maxRetries} after ${delay.toFixed(0)}ms`,
|
|
||||||
{ code: error?.code ?? error?.cause?.code }
|
|
||||||
);
|
|
||||||
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
throw error;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,31 +1,10 @@
|
|||||||
import { db, exitNodes, Transaction } from "@server/db";
|
import { db, exitNodes } from "@server/db";
|
||||||
import config from "@server/lib/config";
|
import config from "@server/lib/config";
|
||||||
import { findNextAvailableCidr } from "@server/lib/ip";
|
import { findNextAvailableCidr } from "@server/lib/ip";
|
||||||
import { lockManager } from "#dynamic/lib/lock";
|
|
||||||
|
|
||||||
/**
|
export async function getNextAvailableSubnet(): Promise<string> {
|
||||||
* Reserves the next available exit node subnet.
|
|
||||||
*
|
|
||||||
* Exit node subnets must never overlap with one another - regardless of
|
|
||||||
* which org(s) they belong to - since HA exit nodes can end up routing for
|
|
||||||
* the same org. This acquires a lock that the caller MUST release (via the
|
|
||||||
* returned `release`) only after the chosen address has been durably
|
|
||||||
* persisted (e.g. after the enclosing transaction commits), otherwise
|
|
||||||
* concurrent callers can race and pick the same subnet.
|
|
||||||
*/
|
|
||||||
export async function getNextAvailableSubnet(
|
|
||||||
trx: Transaction | typeof db = db
|
|
||||||
): Promise<{ value: string; release: () => Promise<void> }> {
|
|
||||||
const lockKey = "exit-node-subnet-allocation";
|
|
||||||
const acquired = await lockManager.acquireLockWithRetry(lockKey, 6000);
|
|
||||||
if (!acquired) {
|
|
||||||
throw new Error(`Failed to acquire lock: ${lockKey}`);
|
|
||||||
}
|
|
||||||
const release = () => lockManager.releaseLock(lockKey, acquired);
|
|
||||||
|
|
||||||
try {
|
|
||||||
// Get all existing subnets from routes table
|
// Get all existing subnets from routes table
|
||||||
const existingAddresses = await trx
|
const existingAddresses = await db
|
||||||
.select({
|
.select({
|
||||||
address: exitNodes.address
|
address: exitNodes.address
|
||||||
})
|
})
|
||||||
@@ -47,9 +26,5 @@ export async function getNextAvailableSubnet(
|
|||||||
".1" +
|
".1" +
|
||||||
"/" +
|
"/" +
|
||||||
subnet.split("/")[1];
|
subnet.split("/")[1];
|
||||||
return { value: subnet, release };
|
return subnet;
|
||||||
} catch (e) {
|
|
||||||
await release();
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,6 @@ import {
|
|||||||
} from "@server/routers/client/targets";
|
} from "@server/routers/client/targets";
|
||||||
import { lockManager } from "#dynamic/lib/lock";
|
import { lockManager } from "#dynamic/lib/lock";
|
||||||
import { rebuildQueue } from "#dynamic/lib/rebuildQueue";
|
import { rebuildQueue } from "#dynamic/lib/rebuildQueue";
|
||||||
import { withRetry, isTransientError } from "@server/lib/dbRetry";
|
|
||||||
import {
|
import {
|
||||||
checkOrgRebuildRateLimit,
|
checkOrgRebuildRateLimit,
|
||||||
decrementOrgRebuildCount,
|
decrementOrgRebuildCount,
|
||||||
@@ -286,20 +285,10 @@ export async function rebuildClientAssociationsFromSiteResource(
|
|||||||
) {
|
) {
|
||||||
await incrementOrgRebuildCount(siteResource.orgId);
|
await incrementOrgRebuildCount(siteResource.orgId);
|
||||||
try {
|
try {
|
||||||
// The whole locked rebuild is idempotent (it diffs full expected vs.
|
return await lockManager.withLock(
|
||||||
// actual state each time), so on a transient DB error it's safe to
|
|
||||||
// retry the entire thing rather than just the failed query.
|
|
||||||
return await withRetry(
|
|
||||||
() =>
|
|
||||||
lockManager.withLock(
|
|
||||||
`rebuild-client-associations:site-resource:${siteResource.siteResourceId}`,
|
`rebuild-client-associations:site-resource:${siteResource.siteResourceId}`,
|
||||||
() =>
|
() => rebuildClientAssociationsFromSiteResourceImpl(siteResource),
|
||||||
rebuildClientAssociationsFromSiteResourceImpl(
|
|
||||||
siteResource
|
|
||||||
),
|
|
||||||
REBUILD_ASSOCIATIONS_LOCK_TTL_MS
|
REBUILD_ASSOCIATIONS_LOCK_TTL_MS
|
||||||
),
|
|
||||||
`rebuildClientAssociationsFromSiteResource:${siteResource.siteResourceId}`
|
|
||||||
);
|
);
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
if (
|
if (
|
||||||
@@ -315,17 +304,6 @@ export async function rebuildClientAssociationsFromSiteResource(
|
|||||||
});
|
});
|
||||||
return { mergedAllClients: [] };
|
return { mergedAllClients: [] };
|
||||||
}
|
}
|
||||||
if (isTransientError(err)) {
|
|
||||||
logger.warn(
|
|
||||||
`rebuildClientAssociations: transient DB error rebuilding site resource ${siteResource.siteResourceId} persisted after retries, queuing for deferred processing:`,
|
|
||||||
err
|
|
||||||
);
|
|
||||||
await rebuildQueue.enqueue({
|
|
||||||
type: "site-resource",
|
|
||||||
id: siteResource.siteResourceId
|
|
||||||
});
|
|
||||||
return { mergedAllClients: [] };
|
|
||||||
}
|
|
||||||
throw err;
|
throw err;
|
||||||
} finally {
|
} finally {
|
||||||
await decrementOrgRebuildCount(siteResource.orgId);
|
await decrementOrgRebuildCount(siteResource.orgId);
|
||||||
@@ -485,7 +463,6 @@ async function rebuildClientAssociationsFromSiteResourceImpl(
|
|||||||
await trx
|
await trx
|
||||||
.insert(clientSiteResourcesAssociationsCache)
|
.insert(clientSiteResourcesAssociationsCache)
|
||||||
.values(clientSiteResourcesToInsert)
|
.values(clientSiteResourcesToInsert)
|
||||||
.onConflictDoNothing()
|
|
||||||
.returning();
|
.returning();
|
||||||
logger.debug(
|
logger.debug(
|
||||||
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteResourceId=${siteResource.siteResourceId} inserted clientSiteResource associations`
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteResourceId=${siteResource.siteResourceId} inserted clientSiteResource associations`
|
||||||
@@ -533,7 +510,6 @@ async function rebuildClientAssociationsFromSiteResourceImpl(
|
|||||||
for (const site of sitesToProcess) {
|
for (const site of sitesToProcess) {
|
||||||
const siteId = site.siteId;
|
const siteId = site.siteId;
|
||||||
|
|
||||||
try {
|
|
||||||
logger.debug(
|
logger.debug(
|
||||||
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] processing siteId=${siteId} for siteResourceId=${siteResource.siteResourceId}`
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] processing siteId=${siteId} for siteResourceId=${siteResource.siteResourceId}`
|
||||||
);
|
);
|
||||||
@@ -563,14 +539,11 @@ async function rebuildClientAssociationsFromSiteResourceImpl(
|
|||||||
subnet: clients.subnet
|
subnet: clients.subnet
|
||||||
})
|
})
|
||||||
.from(clients)
|
.from(clients)
|
||||||
.where(
|
.where(inArray(clients.clientId, existingClientSiteIds))
|
||||||
inArray(clients.clientId, existingClientSiteIds)
|
|
||||||
)
|
|
||||||
: [];
|
: [];
|
||||||
|
|
||||||
const otherResourceClientIds =
|
const otherResourceClientIds =
|
||||||
clientsFromOtherResourcesBySite.get(siteId) ??
|
clientsFromOtherResourcesBySite.get(siteId) ?? new Set<number>();
|
||||||
new Set<number>();
|
|
||||||
|
|
||||||
logger.debug(
|
logger.debug(
|
||||||
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteId=${siteId} otherResourceClientIds=[${[...otherResourceClientIds].join(", ")}] mergedAllClientIds=[${mergedAllClientIds.join(", ")}]`
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteId=${siteId} otherResourceClientIds=[${[...otherResourceClientIds].join(", ")}] mergedAllClientIds=[${mergedAllClientIds.join(", ")}]`
|
||||||
@@ -582,17 +555,10 @@ async function rebuildClientAssociationsFromSiteResourceImpl(
|
|||||||
? mergedAllClientIds
|
? mergedAllClientIds
|
||||||
: [];
|
: [];
|
||||||
|
|
||||||
// Note: we deliberately do NOT exclude clients covered by another
|
|
||||||
// site resource here (unlike clientSitesToRemove below). Doing so
|
|
||||||
// previously caused a permanent gap: if resource A saw resource B's
|
|
||||||
// cache row and skipped adding (assuming B would maintain it), and
|
|
||||||
// B's own rebuild made the same assumption about A, the site-level
|
|
||||||
// row could end up never inserted by anyone even though both
|
|
||||||
// resources' client associations were otherwise correct.
|
|
||||||
// onConflictDoNothing makes a redundant insert harmless, so there's
|
|
||||||
// no correctness reason to skip here.
|
|
||||||
const clientSitesToAdd = expectedClientIdsForSite.filter(
|
const clientSitesToAdd = expectedClientIdsForSite.filter(
|
||||||
(clientId) => !existingClientSiteIds.includes(clientId)
|
(clientId) =>
|
||||||
|
!existingClientSiteIds.includes(clientId) &&
|
||||||
|
!otherResourceClientIds.has(clientId) // dont add if already connected via another site resource
|
||||||
);
|
);
|
||||||
|
|
||||||
const clientSitesToInsert = clientSitesToAdd.map((clientId) => ({
|
const clientSitesToInsert = clientSitesToAdd.map((clientId) => ({
|
||||||
@@ -611,7 +577,6 @@ async function rebuildClientAssociationsFromSiteResourceImpl(
|
|||||||
await trx
|
await trx
|
||||||
.insert(clientSitesAssociationsCache)
|
.insert(clientSitesAssociationsCache)
|
||||||
.values(clientSitesToInsert)
|
.values(clientSitesToInsert)
|
||||||
.onConflictDoNothing()
|
|
||||||
.returning();
|
.returning();
|
||||||
logger.debug(
|
logger.debug(
|
||||||
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteId=${siteId} inserted clientSite associations`
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteId=${siteId} inserted clientSite associations`
|
||||||
@@ -660,21 +625,6 @@ async function rebuildClientAssociationsFromSiteResourceImpl(
|
|||||||
clientSitesToRemove,
|
clientSitesToRemove,
|
||||||
trx
|
trx
|
||||||
);
|
);
|
||||||
} catch (err) {
|
|
||||||
// Don't let a failure on one site abort processing of every
|
|
||||||
// other site queued after it in this run. Since we're not
|
|
||||||
// re-throwing, the outer wrapper's retry/requeue logic never
|
|
||||||
// sees this failure, so explicitly queue this resource for a
|
|
||||||
// follow-up pass to reconcile whatever this site didn't get to.
|
|
||||||
logger.error(
|
|
||||||
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteId=${siteId} failed while processing site for siteResourceId=${siteResource.siteResourceId}, continuing with remaining sites and queuing a follow-up pass:`,
|
|
||||||
err
|
|
||||||
);
|
|
||||||
await rebuildQueue.enqueue({
|
|
||||||
type: "site-resource",
|
|
||||||
id: siteResource.siteResourceId
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle subnet proxy target updates for the resource associations
|
// Handle subnet proxy target updates for the resource associations
|
||||||
@@ -707,7 +657,7 @@ async function handleMessagesForSiteClients(
|
|||||||
trx: Transaction | typeof db = db
|
trx: Transaction | typeof db = db
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
if (!site.exitNodeId) {
|
if (!site.exitNodeId) {
|
||||||
logger.debug(
|
logger.warn(
|
||||||
`Exit node ID not on site ${site.siteId} so there is no reason to update clients because it must be offline`
|
`Exit node ID not on site ${site.siteId} so there is no reason to update clients because it must be offline`
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
@@ -721,14 +671,14 @@ async function handleMessagesForSiteClients(
|
|||||||
.limit(1);
|
.limit(1);
|
||||||
|
|
||||||
if (!exitNode) {
|
if (!exitNode) {
|
||||||
logger.debug(
|
logger.warn(
|
||||||
`Exit node not found for site ${site.siteId} so there is no reason to update clients because it must be offline`
|
`Exit node not found for site ${site.siteId} so there is no reason to update clients because it must be offline`
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!site.publicKey) {
|
if (!site.publicKey) {
|
||||||
logger.debug(
|
logger.warn(
|
||||||
`Site publicKey not set for site ${site.siteId} so cannot add peers to clients`
|
`Site publicKey not set for site ${site.siteId} so cannot add peers to clients`
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
@@ -742,7 +692,7 @@ async function handleMessagesForSiteClients(
|
|||||||
.where(eq(newts.siteId, siteId))
|
.where(eq(newts.siteId, siteId))
|
||||||
.limit(1);
|
.limit(1);
|
||||||
if (!newt) {
|
if (!newt) {
|
||||||
logger.debug(
|
logger.warn(
|
||||||
`Newt not found for site ${siteId} so cannot add peers to clients`
|
`Newt not found for site ${siteId} so cannot add peers to clients`
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
@@ -967,7 +917,7 @@ export async function updateClientSiteDestinations(
|
|||||||
|
|
||||||
for (const site of sitesData) {
|
for (const site of sitesData) {
|
||||||
if (!site.sites.subnet) {
|
if (!site.sites.subnet) {
|
||||||
logger.debug(`Site ${site.sites.siteId} has no subnet, skipping`);
|
logger.warn(`Site ${site.sites.siteId} has no subnet, skipping`);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1706,17 +1656,10 @@ export async function rebuildClientAssociationsFromClient(
|
|||||||
await incrementOrgRebuildCount(client.orgId);
|
await incrementOrgRebuildCount(client.orgId);
|
||||||
try {
|
try {
|
||||||
const trx = primaryDb;
|
const trx = primaryDb;
|
||||||
// The whole locked rebuild is idempotent (it diffs full expected vs.
|
return await lockManager.withLock(
|
||||||
// actual state each time), so on a transient DB error it's safe to
|
|
||||||
// retry the entire thing rather than just the failed query.
|
|
||||||
return await withRetry(
|
|
||||||
() =>
|
|
||||||
lockManager.withLock(
|
|
||||||
`rebuild-client-associations:client:${client.clientId}`,
|
`rebuild-client-associations:client:${client.clientId}`,
|
||||||
() => rebuildClientAssociationsFromClientImpl(client, trx),
|
() => rebuildClientAssociationsFromClientImpl(client, trx),
|
||||||
REBUILD_ASSOCIATIONS_LOCK_TTL_MS
|
REBUILD_ASSOCIATIONS_LOCK_TTL_MS
|
||||||
),
|
|
||||||
`rebuildClientAssociationsFromClient:${client.clientId}`
|
|
||||||
);
|
);
|
||||||
} catch (err: any) {
|
} catch (err: any) {
|
||||||
if (
|
if (
|
||||||
@@ -1732,17 +1675,6 @@ export async function rebuildClientAssociationsFromClient(
|
|||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (isTransientError(err)) {
|
|
||||||
logger.warn(
|
|
||||||
`rebuildClientAssociations: transient DB error rebuilding client ${client.clientId} persisted after retries, queuing for deferred processing:`,
|
|
||||||
err
|
|
||||||
);
|
|
||||||
await rebuildQueue.enqueue({
|
|
||||||
type: "client",
|
|
||||||
id: client.clientId
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
throw err;
|
throw err;
|
||||||
} finally {
|
} finally {
|
||||||
await decrementOrgRebuildCount(client.orgId);
|
await decrementOrgRebuildCount(client.orgId);
|
||||||
@@ -1894,15 +1826,12 @@ async function rebuildClientAssociationsFromClientImpl(
|
|||||||
|
|
||||||
// Insert new associations
|
// Insert new associations
|
||||||
if (resourcesToAdd.length > 0) {
|
if (resourcesToAdd.length > 0) {
|
||||||
await trx
|
await trx.insert(clientSiteResourcesAssociationsCache).values(
|
||||||
.insert(clientSiteResourcesAssociationsCache)
|
|
||||||
.values(
|
|
||||||
resourcesToAdd.map((siteResourceId) => ({
|
resourcesToAdd.map((siteResourceId) => ({
|
||||||
clientId: client.clientId,
|
clientId: client.clientId,
|
||||||
siteResourceId
|
siteResourceId
|
||||||
}))
|
}))
|
||||||
)
|
);
|
||||||
.onConflictDoNothing();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove old associations
|
// Remove old associations
|
||||||
@@ -1940,15 +1869,12 @@ async function rebuildClientAssociationsFromClientImpl(
|
|||||||
|
|
||||||
// Insert new site associations
|
// Insert new site associations
|
||||||
if (sitesToAdd.length > 0) {
|
if (sitesToAdd.length > 0) {
|
||||||
await trx
|
await trx.insert(clientSitesAssociationsCache).values(
|
||||||
.insert(clientSitesAssociationsCache)
|
|
||||||
.values(
|
|
||||||
sitesToAdd.map((siteId) => ({
|
sitesToAdd.map((siteId) => ({
|
||||||
clientId: client.clientId,
|
clientId: client.clientId,
|
||||||
siteId
|
siteId
|
||||||
}))
|
}))
|
||||||
)
|
);
|
||||||
.onConflictDoNothing();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove old site associations
|
// Remove old site associations
|
||||||
|
|||||||
@@ -1,14 +1,10 @@
|
|||||||
import logger from "@server/logger";
|
import logger from "@server/logger";
|
||||||
import { isTransientError } from "@server/lib/dbRetry";
|
|
||||||
|
|
||||||
export type RebuildJobType = "site-resource" | "client";
|
export type RebuildJobType = "site-resource" | "client";
|
||||||
|
|
||||||
export interface RebuildJob {
|
export interface RebuildJob {
|
||||||
type: RebuildJobType;
|
type: RebuildJobType;
|
||||||
id: number;
|
id: number;
|
||||||
// Number of times this job has already been re-queued after a transient
|
|
||||||
// failure. Absent/0 means it has not failed yet.
|
|
||||||
attempt?: number;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface RebuildJobHandlers {
|
export interface RebuildJobHandlers {
|
||||||
@@ -28,10 +24,6 @@ export interface RebuildQueueManager {
|
|||||||
// retried shortly after against fresh DB state.
|
// retried shortly after against fresh DB state.
|
||||||
const POLL_INTERVAL_MS = 500;
|
const POLL_INTERVAL_MS = 500;
|
||||||
const BATCH_SIZE = 5;
|
const BATCH_SIZE = 5;
|
||||||
// A job that fails with a transient DB error gets re-queued with backoff
|
|
||||||
// instead of being dropped, up to this many times.
|
|
||||||
const MAX_JOB_ATTEMPTS = 5;
|
|
||||||
const JOB_RETRY_BASE_DELAY_MS = 1000;
|
|
||||||
|
|
||||||
function dedupeKey(job: RebuildJob): string {
|
function dedupeKey(job: RebuildJob): string {
|
||||||
return `${job.type}:${job.id}`;
|
return `${job.type}:${job.id}`;
|
||||||
@@ -114,31 +106,12 @@ class InMemoryRebuildQueue implements RebuildQueueManager {
|
|||||||
`Rebuild queue: completed ${job.type}:${job.id}`
|
`Rebuild queue: completed ${job.type}:${job.id}`
|
||||||
);
|
);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
const attempt = (job.attempt ?? 0) + 1;
|
|
||||||
if (isTransientError(err) && attempt <= MAX_JOB_ATTEMPTS) {
|
|
||||||
const delay =
|
|
||||||
JOB_RETRY_BASE_DELAY_MS * Math.pow(2, attempt - 1);
|
|
||||||
logger.warn(
|
|
||||||
`Rebuild queue: job ${job.type}:${job.id} hit a transient error (attempt ${attempt}/${MAX_JOB_ATTEMPTS}), re-queuing in ${delay}ms:`,
|
|
||||||
err
|
|
||||||
);
|
|
||||||
setTimeout(() => {
|
|
||||||
this.enqueue({ ...job, attempt }).catch(
|
|
||||||
(enqueueErr) =>
|
|
||||||
logger.error(
|
|
||||||
`Rebuild queue: failed to re-queue ${job.type}:${job.id} after transient error:`,
|
|
||||||
enqueueErr
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}, delay);
|
|
||||||
} else {
|
|
||||||
logger.error(
|
logger.error(
|
||||||
`Rebuild queue: job ${job.type}:${job.id} threw an error:`,
|
`Rebuild queue: job ${job.type}:${job.id} threw an error:`,
|
||||||
err
|
err
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} finally {
|
} finally {
|
||||||
this.processing = false;
|
this.processing = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
import { redis } from "#private/lib/redis";
|
import { redis } from "#private/lib/redis";
|
||||||
import logger from "@server/logger";
|
import logger from "@server/logger";
|
||||||
|
|
||||||
export const ORG_REBUILD_CONCURRENCY_LIMIT = 10;
|
export const ORG_REBUILD_CONCURRENCY_LIMIT = 5;
|
||||||
|
|
||||||
// Safety-net TTL: slightly longer than the rebuild lock TTL (120 s). If a
|
// Safety-net TTL: slightly longer than the rebuild lock TTL (120 s). If a
|
||||||
// server process dies while holding a rebuild, this ensures the counter key
|
// server process dies while holding a rebuild, this ensures the counter key
|
||||||
|
|||||||
@@ -14,16 +14,12 @@
|
|||||||
import { redis } from "#private/lib/redis";
|
import { redis } from "#private/lib/redis";
|
||||||
import { lockManager } from "#private/lib/lock";
|
import { lockManager } from "#private/lib/lock";
|
||||||
import logger from "@server/logger";
|
import logger from "@server/logger";
|
||||||
import { isTransientError } from "@server/lib/dbRetry";
|
|
||||||
|
|
||||||
export type RebuildJobType = "site-resource" | "client";
|
export type RebuildJobType = "site-resource" | "client";
|
||||||
|
|
||||||
export interface RebuildJob {
|
export interface RebuildJob {
|
||||||
type: RebuildJobType;
|
type: RebuildJobType;
|
||||||
id: number;
|
id: number;
|
||||||
// Number of times this job has already been re-queued after a transient
|
|
||||||
// failure. Absent/0 means it has not failed yet.
|
|
||||||
attempt?: number;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface RebuildJobHandlers {
|
export interface RebuildJobHandlers {
|
||||||
@@ -47,11 +43,6 @@ const PROCESSOR_LOCK_TTL_MS = 120000 * BATCH_SIZE + 30000; // ~630 s
|
|||||||
|
|
||||||
const POLL_INTERVAL_MS = 500;
|
const POLL_INTERVAL_MS = 500;
|
||||||
|
|
||||||
// A job that fails with a transient DB error gets re-queued with backoff
|
|
||||||
// instead of being dropped, up to this many times.
|
|
||||||
const MAX_JOB_ATTEMPTS = 5;
|
|
||||||
const JOB_RETRY_BASE_DELAY_MS = 1000;
|
|
||||||
|
|
||||||
class RedisRebuildQueue {
|
class RedisRebuildQueue {
|
||||||
private processingStarted = false;
|
private processingStarted = false;
|
||||||
|
|
||||||
@@ -189,35 +180,12 @@ class RedisRebuildQueue {
|
|||||||
`Rebuild queue: completed ${job.type}:${job.id}`
|
`Rebuild queue: completed ${job.type}:${job.id}`
|
||||||
);
|
);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
const attempt = (job.attempt ?? 0) + 1;
|
|
||||||
if (
|
|
||||||
isTransientError(err) &&
|
|
||||||
attempt <= MAX_JOB_ATTEMPTS
|
|
||||||
) {
|
|
||||||
const delay =
|
|
||||||
JOB_RETRY_BASE_DELAY_MS *
|
|
||||||
Math.pow(2, attempt - 1);
|
|
||||||
logger.warn(
|
|
||||||
`Rebuild queue: job ${job.type}:${job.id} hit a transient error (attempt ${attempt}/${MAX_JOB_ATTEMPTS}), re-queuing in ${delay}ms:`,
|
|
||||||
err
|
|
||||||
);
|
|
||||||
setTimeout(() => {
|
|
||||||
this.enqueue({ ...job, attempt }).catch(
|
|
||||||
(enqueueErr) =>
|
|
||||||
logger.error(
|
|
||||||
`Rebuild queue: failed to re-queue ${job.type}:${job.id} after transient error:`,
|
|
||||||
enqueueErr
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}, delay);
|
|
||||||
} else {
|
|
||||||
logger.error(
|
logger.error(
|
||||||
`Rebuild queue: job ${job.type}:${job.id} threw an error:`,
|
`Rebuild queue: job ${job.type}:${job.id} threw an error:`,
|
||||||
err
|
err
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
PROCESSOR_LOCK_TTL_MS
|
PROCESSOR_LOCK_TTL_MS
|
||||||
);
|
);
|
||||||
|
|||||||
+18
-41
@@ -894,19 +894,6 @@ class RegionalRedisManager {
|
|||||||
return opts;
|
return opts;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The regional Redis StatefulSet's "redis" service pins to pod redis-0
|
|
||||||
// (primary). The replica (redis-1) is only reachable through the
|
|
||||||
// per-pod headless service: <svc>.<namespace>.svc.cluster.local ->
|
|
||||||
// redis-1.redis-headless.<namespace>.svc.cluster.local. Returns null
|
|
||||||
// if the configured host doesn't match that pattern (e.g. local dev),
|
|
||||||
// in which case callers should fall back to the primary for reads.
|
|
||||||
private getReplicaHost(primaryHost: string): string | null {
|
|
||||||
const match = primaryHost.match(/^redis\.([^.]+)\.svc\.cluster\.local$/);
|
|
||||||
if (!match) return null;
|
|
||||||
const namespace = match[1];
|
|
||||||
return `redis-1.redis-headless.${namespace}.svc.cluster.local`;
|
|
||||||
}
|
|
||||||
|
|
||||||
private initializeClients(): void {
|
private initializeClients(): void {
|
||||||
const cfg = this.getConfig();
|
const cfg = this.getConfig();
|
||||||
const baseOpts = {
|
const baseOpts = {
|
||||||
@@ -920,42 +907,35 @@ class RegionalRedisManager {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
this.writeClient = new Redis(baseOpts);
|
this.writeClient = new Redis(baseOpts);
|
||||||
|
// redis-1 (replica) handles reads; fall back to primary if not resolvable
|
||||||
|
this.readClient = new Redis({
|
||||||
|
...baseOpts,
|
||||||
|
host: cfg.host!.replace(/^(.*?)(\.\S+)$/, (_, h, rest) => {
|
||||||
|
// Derive replica hostname from the headless service pattern:
|
||||||
|
// redis.redis.svc.cluster.local -> redis-1.redis-headless.redis.svc.cluster.local
|
||||||
|
// If it doesn't look like a k8s service, just use the same host
|
||||||
|
return h + rest;
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
const replicaHost = this.getReplicaHost(cfg.host!);
|
// For simplicity use same host for both; callers can always read from primary
|
||||||
this.readClient = replicaHost
|
// The real replica routing is handled by the StatefulSet headless service
|
||||||
? new Redis({ ...baseOpts, host: replicaHost })
|
this.readClient = this.writeClient;
|
||||||
: this.writeClient;
|
|
||||||
|
|
||||||
this.writeClient.on("ready", () => {
|
this.writeClient.on("ready", () => {
|
||||||
logger.info("Regional Redis write client ready");
|
logger.info("Regional Redis client ready");
|
||||||
this.isHealthy = true;
|
this.isHealthy = true;
|
||||||
});
|
});
|
||||||
this.writeClient.on("error", (err) => {
|
this.writeClient.on("error", (err) => {
|
||||||
logger.error("Regional Redis write client error:", err);
|
logger.error("Regional Redis client error:", err);
|
||||||
this.isHealthy = false;
|
this.isHealthy = false;
|
||||||
});
|
});
|
||||||
this.writeClient.on("reconnecting", () => {
|
this.writeClient.on("reconnecting", () => {
|
||||||
logger.info("Regional Redis write client reconnecting...");
|
logger.info("Regional Redis client reconnecting...");
|
||||||
this.isHealthy = false;
|
this.isHealthy = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (this.readClient !== this.writeClient) {
|
logger.info("Regional Redis client initialized");
|
||||||
this.readClient.on("ready", () => {
|
|
||||||
logger.info("Regional Redis read client ready");
|
|
||||||
});
|
|
||||||
this.readClient.on("error", (err) => {
|
|
||||||
logger.error("Regional Redis read client error:", err);
|
|
||||||
});
|
|
||||||
this.readClient.on("reconnecting", () => {
|
|
||||||
logger.info("Regional Redis read client reconnecting...");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.info(
|
|
||||||
replicaHost
|
|
||||||
? `Regional Redis client initialized (reads routed to replica ${replicaHost})`
|
|
||||||
: "Regional Redis client initialized (no replica resolvable, reads routed to primary)"
|
|
||||||
);
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error("Failed to initialize regional Redis client:", error);
|
logger.error("Failed to initialize regional Redis client:", error);
|
||||||
this.isEnabled = false;
|
this.isEnabled = false;
|
||||||
@@ -1061,14 +1041,11 @@ class RegionalRedisManager {
|
|||||||
|
|
||||||
public async disconnect(): Promise<void> {
|
public async disconnect(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
if (this.readClient && this.readClient !== this.writeClient) {
|
|
||||||
await this.readClient.quit();
|
|
||||||
}
|
|
||||||
this.readClient = null;
|
|
||||||
if (this.writeClient) {
|
if (this.writeClient) {
|
||||||
await this.writeClient.quit();
|
await this.writeClient.quit();
|
||||||
this.writeClient = null;
|
this.writeClient = null;
|
||||||
}
|
}
|
||||||
|
this.readClient = null;
|
||||||
logger.info("Regional Redis client disconnected");
|
logger.info("Regional Redis client disconnected");
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error("Error disconnecting regional Redis client:", error);
|
logger.error("Error disconnecting regional Redis client:", error);
|
||||||
|
|||||||
@@ -104,18 +104,6 @@ export async function getOrgUsage(
|
|||||||
orgId,
|
orgId,
|
||||||
LimitId.ORGANIZATIONS
|
LimitId.ORGANIZATIONS
|
||||||
);
|
);
|
||||||
const publicResources = await usageService.getUsage(
|
|
||||||
orgId,
|
|
||||||
LimitId.PUBLIC_RESOURCES
|
|
||||||
);
|
|
||||||
const privateResources = await usageService.getUsage(
|
|
||||||
orgId,
|
|
||||||
LimitId.PRIVATE_RESOURCES
|
|
||||||
);
|
|
||||||
const machineClients = await usageService.getUsage(
|
|
||||||
orgId,
|
|
||||||
LimitId.MACHINE_CLIENTS
|
|
||||||
);
|
|
||||||
// const egressData = await usageService.getUsage(
|
// const egressData = await usageService.getUsage(
|
||||||
// orgId,
|
// orgId,
|
||||||
// FeatureId.EGRESS_DATA_MB
|
// FeatureId.EGRESS_DATA_MB
|
||||||
@@ -139,15 +127,6 @@ export async function getOrgUsage(
|
|||||||
if (organizations) {
|
if (organizations) {
|
||||||
usageData.push(organizations);
|
usageData.push(organizations);
|
||||||
}
|
}
|
||||||
if (publicResources) {
|
|
||||||
usageData.push(publicResources);
|
|
||||||
}
|
|
||||||
if (privateResources) {
|
|
||||||
usageData.push(privateResources);
|
|
||||||
}
|
|
||||||
if (machineClients) {
|
|
||||||
usageData.push(machineClients);
|
|
||||||
}
|
|
||||||
|
|
||||||
const orgLimits = await db
|
const orgLimits = await db
|
||||||
.select()
|
.select()
|
||||||
|
|||||||
@@ -29,8 +29,7 @@ export async function createExitNode(
|
|||||||
.where(eq(exitNodes.publicKey, publicKey));
|
.where(eq(exitNodes.publicKey, publicKey));
|
||||||
let exitNode: ExitNode;
|
let exitNode: ExitNode;
|
||||||
if (!exitNodeQuery) {
|
if (!exitNodeQuery) {
|
||||||
const { value: address, release } = await getNextAvailableSubnet();
|
const address = await getNextAvailableSubnet();
|
||||||
try {
|
|
||||||
// TODO: eventually we will want to get the next available port so that we can multiple exit nodes
|
// TODO: eventually we will want to get the next available port so that we can multiple exit nodes
|
||||||
// const listenPort = await getNextAvailablePort();
|
// const listenPort = await getNextAvailablePort();
|
||||||
const listenPort = config.getRawConfig().gerbil.start_port;
|
const listenPort = config.getRawConfig().gerbil.start_port;
|
||||||
@@ -61,9 +60,6 @@ export async function createExitNode(
|
|||||||
logger.info(
|
logger.info(
|
||||||
`Created new exit node ${exitNode.name} with address ${exitNode.address} and port ${exitNode.listenPort}`
|
`Created new exit node ${exitNode.name} with address ${exitNode.address} and port ${exitNode.listenPort}`
|
||||||
);
|
);
|
||||||
} finally {
|
|
||||||
await release();
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// update the reachable at
|
// update the reachable at
|
||||||
[exitNode] = await db
|
[exitNode] = await db
|
||||||
|
|||||||
@@ -114,6 +114,8 @@ export async function createRemoteExitNode(
|
|||||||
}
|
}
|
||||||
|
|
||||||
const secretHash = await hashPassword(secret);
|
const secretHash = await hashPassword(secret);
|
||||||
|
// const address = await getNextAvailableSubnet();
|
||||||
|
const address = "100.89.140.1/24"; // FOR NOW LETS HARDCODE THESE ADDRESSES
|
||||||
|
|
||||||
const [existingRemoteExitNode] = await db
|
const [existingRemoteExitNode] = await db
|
||||||
.select()
|
.select()
|
||||||
@@ -189,27 +191,13 @@ export async function createRemoteExitNode(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If this remote exit node isn't already backing an exit node in
|
|
||||||
// another org, we're about to create a brand new one. Reserve a
|
|
||||||
// subnet for it up front so the allocation lock is held across the
|
|
||||||
// whole insert - this guarantees exit node subnets never overlap,
|
|
||||||
// even under concurrent creation, which matters for HA setups.
|
|
||||||
let releaseSubnetLock: (() => Promise<void>) | null = null;
|
|
||||||
let newExitNodeAddress: string | null = null;
|
|
||||||
if (!existingExitNode) {
|
|
||||||
const { value, release } = await getNextAvailableSubnet();
|
|
||||||
newExitNodeAddress = value;
|
|
||||||
releaseSubnetLock = release;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
await db.transaction(async (trx) => {
|
await db.transaction(async (trx) => {
|
||||||
if (!existingExitNode) {
|
if (!existingExitNode) {
|
||||||
const [res] = await trx
|
const [res] = await trx
|
||||||
.insert(exitNodes)
|
.insert(exitNodes)
|
||||||
.values({
|
.values({
|
||||||
name: remoteExitNodeId,
|
name: remoteExitNodeId,
|
||||||
address: newExitNodeAddress!,
|
address,
|
||||||
endpoint: "",
|
endpoint: "",
|
||||||
publicKey: "",
|
publicKey: "",
|
||||||
listenPort: 0,
|
listenPort: 0,
|
||||||
@@ -286,9 +274,6 @@ export async function createRemoteExitNode(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} finally {
|
|
||||||
await releaseSubnetLock?.();
|
|
||||||
}
|
|
||||||
|
|
||||||
const token = generateSessionToken();
|
const token = generateSessionToken();
|
||||||
await createRemoteExitNodeSession(token, remoteExitNodeId);
|
await createRemoteExitNodeSession(token, remoteExitNodeId);
|
||||||
|
|||||||
@@ -13,8 +13,7 @@ export async function createExitNode(
|
|||||||
const [exitNodeQuery] = await db.select().from(exitNodes).limit(1);
|
const [exitNodeQuery] = await db.select().from(exitNodes).limit(1);
|
||||||
let exitNode: ExitNode;
|
let exitNode: ExitNode;
|
||||||
if (!exitNodeQuery) {
|
if (!exitNodeQuery) {
|
||||||
const { value: address, release } = await getNextAvailableSubnet();
|
const address = await getNextAvailableSubnet();
|
||||||
try {
|
|
||||||
// TODO: eventually we will want to get the next available port so that we can multiple exit nodes
|
// TODO: eventually we will want to get the next available port so that we can multiple exit nodes
|
||||||
// const listenPort = await getNextAvailablePort();
|
// const listenPort = await getNextAvailablePort();
|
||||||
const listenPort = config.getRawConfig().gerbil.start_port;
|
const listenPort = config.getRawConfig().gerbil.start_port;
|
||||||
@@ -45,9 +44,6 @@ export async function createExitNode(
|
|||||||
logger.info(
|
logger.info(
|
||||||
`Created new exit node ${exitNode.name} with address ${exitNode.address} and port ${exitNode.listenPort}`
|
`Created new exit node ${exitNode.name} with address ${exitNode.address} and port ${exitNode.listenPort}`
|
||||||
);
|
);
|
||||||
} finally {
|
|
||||||
await release();
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// update the existing exit node
|
// update the existing exit node
|
||||||
[exitNode] = await db
|
[exitNode] = await db
|
||||||
|
|||||||
@@ -52,13 +52,13 @@ export async function buildClientConfigurationForNewtClient(
|
|||||||
clientsRes
|
clientsRes
|
||||||
.filter((client) => {
|
.filter((client) => {
|
||||||
if (!client.clients.pubKey) {
|
if (!client.clients.pubKey) {
|
||||||
logger.debug(
|
logger.warn(
|
||||||
`Client ${client.clients.clientId} has no public key, skipping`
|
`Client ${client.clients.clientId} has no public key, skipping`
|
||||||
);
|
);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!client.clients.subnet) {
|
if (!client.clients.subnet) {
|
||||||
logger.debug(
|
logger.warn(
|
||||||
`Client ${client.clients.clientId} has no subnet, skipping`
|
`Client ${client.clients.clientId} has no subnet, skipping`
|
||||||
);
|
);
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ export const handleNewtDisconnectingMessage: MessageHandler = async (
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!newt.siteId) {
|
if (!newt.siteId) {
|
||||||
logger.warn("Newt has no site ID!");
|
logger.warn("Newt has no client ID!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,12 +34,6 @@ export const handleNewtDisconnectingMessage: MessageHandler = async (
|
|||||||
.where(eq(sites.siteId, newt.siteId!))
|
.where(eq(sites.siteId, newt.siteId!))
|
||||||
.returning();
|
.returning();
|
||||||
|
|
||||||
if (!site) {
|
|
||||||
throw new Error(
|
|
||||||
`Could not find site ${newt.siteId} to update disconnection from disconnect message`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
await fireSiteOfflineAlert(
|
await fireSiteOfflineAlert(
|
||||||
site.orgId,
|
site.orgId,
|
||||||
site.siteId,
|
site.siteId,
|
||||||
@@ -49,6 +43,6 @@ export const handleNewtDisconnectingMessage: MessageHandler = async (
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error("Error handling site disconnecting message", error);
|
logger.error("Error handling disconnecting message", { error });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,21 +5,8 @@ import { Newt } from "@server/db";
|
|||||||
import { eq } from "drizzle-orm";
|
import { eq } from "drizzle-orm";
|
||||||
import logger from "@server/logger";
|
import logger from "@server/logger";
|
||||||
import { sendNewtSyncMessage } from "./sync";
|
import { sendNewtSyncMessage } from "./sync";
|
||||||
import semver from "semver";
|
|
||||||
import { recordSitePing } from "./pingAccumulator";
|
import { recordSitePing } from "./pingAccumulator";
|
||||||
|
|
||||||
const NEWT_SUPPORTS_SYNC_VERSION = ">=1.14.0";
|
|
||||||
const PONG = {
|
|
||||||
message: {
|
|
||||||
type: "pong",
|
|
||||||
data: {
|
|
||||||
timestamp: new Date().toISOString()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
broadcast: false,
|
|
||||||
excludeSender: false
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles ping messages from newt clients.
|
* Handles ping messages from newt clients.
|
||||||
*
|
*
|
||||||
@@ -50,14 +37,6 @@ export const handleNewtPingMessage: MessageHandler = async (context) => {
|
|||||||
// cross-region latency to the database.
|
// cross-region latency to the database.
|
||||||
recordSitePing(newt.siteId);
|
recordSitePing(newt.siteId);
|
||||||
|
|
||||||
if (
|
|
||||||
newt.version &&
|
|
||||||
!semver.satisfies(newt.version, NEWT_SUPPORTS_SYNC_VERSION)
|
|
||||||
) {
|
|
||||||
// Newt does not support the sync message so not checking - stop here -
|
|
||||||
return PONG;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check config version and sync if stale.
|
// Check config version and sync if stale.
|
||||||
const configVersion = await getClientConfigVersion(newt.newtId);
|
const configVersion = await getClientConfigVersion(newt.newtId);
|
||||||
|
|
||||||
@@ -86,5 +65,14 @@ export const handleNewtPingMessage: MessageHandler = async (context) => {
|
|||||||
await sendNewtSyncMessage(newt, site);
|
await sendNewtSyncMessage(newt, site);
|
||||||
}
|
}
|
||||||
|
|
||||||
return PONG;
|
return {
|
||||||
|
message: {
|
||||||
|
type: "pong",
|
||||||
|
data: {
|
||||||
|
timestamp: new Date().toISOString()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
broadcast: false,
|
||||||
|
excludeSender: false
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { sites, clients, olms } from "@server/db";
|
|||||||
import { and, eq, inArray } from "drizzle-orm";
|
import { and, eq, inArray } from "drizzle-orm";
|
||||||
import logger from "@server/logger";
|
import logger from "@server/logger";
|
||||||
import { fireSiteOnlineAlert } from "@server/lib/alerts";
|
import { fireSiteOnlineAlert } from "@server/lib/alerts";
|
||||||
import { withRetry } from "@server/lib/dbRetry";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ping Accumulator
|
* Ping Accumulator
|
||||||
@@ -23,6 +22,8 @@ import { withRetry } from "@server/lib/dbRetry";
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
const FLUSH_INTERVAL_MS = 10_000; // Flush every 10 seconds
|
const FLUSH_INTERVAL_MS = 10_000; // Flush every 10 seconds
|
||||||
|
const MAX_RETRIES = 5;
|
||||||
|
const BASE_DELAY_MS = 50;
|
||||||
|
|
||||||
// ── Site (newt) pings ──────────────────────────────────────────────────
|
// ── Site (newt) pings ──────────────────────────────────────────────────
|
||||||
// Map of siteId -> latest ping timestamp (unix seconds)
|
// Map of siteId -> latest ping timestamp (unix seconds)
|
||||||
@@ -265,7 +266,85 @@ export async function flushPingsToDb(): Promise<void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ── Retry / Error Helpers ──────────────────────────────────────────────
|
// ── Retry / Error Helpers ──────────────────────────────────────────────
|
||||||
// See @server/lib/dbRetry for the shared withRetry/isTransientError helpers.
|
|
||||||
|
/**
|
||||||
|
* Simple retry wrapper with exponential backoff for transient errors
|
||||||
|
* (deadlocks, connection timeouts, unexpected disconnects).
|
||||||
|
*
|
||||||
|
* PostgreSQL deadlocks (40P01) are always safe to retry: the database
|
||||||
|
* guarantees exactly one winner per deadlock pair, so the loser just needs
|
||||||
|
* to try again. MAX_RETRIES is intentionally higher than typical connection
|
||||||
|
* retry budgets to give deadlock victims enough chances to succeed.
|
||||||
|
*/
|
||||||
|
async function withRetry<T>(
|
||||||
|
operation: () => Promise<T>,
|
||||||
|
context: string
|
||||||
|
): Promise<T> {
|
||||||
|
let attempt = 0;
|
||||||
|
while (true) {
|
||||||
|
try {
|
||||||
|
return await operation();
|
||||||
|
} catch (error: any) {
|
||||||
|
if (isTransientError(error) && attempt < MAX_RETRIES) {
|
||||||
|
attempt++;
|
||||||
|
const baseDelay = Math.pow(2, attempt - 1) * BASE_DELAY_MS;
|
||||||
|
const jitter = Math.random() * baseDelay;
|
||||||
|
const delay = baseDelay + jitter;
|
||||||
|
logger.warn(
|
||||||
|
`Transient DB error in ${context}, retrying attempt ${attempt}/${MAX_RETRIES} after ${delay.toFixed(0)}ms`,
|
||||||
|
{ code: error?.code ?? error?.cause?.code }
|
||||||
|
);
|
||||||
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Detect transient errors that are safe to retry.
|
||||||
|
*/
|
||||||
|
function isTransientError(error: any): boolean {
|
||||||
|
if (!error) return false;
|
||||||
|
|
||||||
|
const message = (error.message || "").toLowerCase();
|
||||||
|
const causeMessage = (error.cause?.message || "").toLowerCase();
|
||||||
|
const code = error.code || error.cause?.code || "";
|
||||||
|
|
||||||
|
// Connection timeout / terminated
|
||||||
|
if (
|
||||||
|
message.includes("connection timeout") ||
|
||||||
|
message.includes("connection terminated") ||
|
||||||
|
message.includes("timeout exceeded when trying to connect") ||
|
||||||
|
causeMessage.includes("connection terminated unexpectedly") ||
|
||||||
|
causeMessage.includes("connection timeout")
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// PostgreSQL deadlock detected - always safe to retry (one winner guaranteed)
|
||||||
|
if (code === "40P01" || message.includes("deadlock")) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// PostgreSQL serialization failure
|
||||||
|
if (code === "40001") {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ECONNRESET, ECONNREFUSED, EPIPE, ETIMEDOUT
|
||||||
|
if (
|
||||||
|
code === "ECONNRESET" ||
|
||||||
|
code === "ECONNREFUSED" ||
|
||||||
|
code === "EPIPE" ||
|
||||||
|
code === "ETIMEDOUT"
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// ── Lifecycle ──────────────────────────────────────────────────────────
|
// ── Lifecycle ──────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
|||||||
+41
-41
@@ -9,45 +9,45 @@ import {
|
|||||||
import { canCompress } from "@server/lib/clientVersionChecks";
|
import { canCompress } from "@server/lib/clientVersionChecks";
|
||||||
|
|
||||||
export async function sendNewtSyncMessage(newt: Newt, site: Site) {
|
export async function sendNewtSyncMessage(newt: Newt, site: Site) {
|
||||||
const {
|
// const {
|
||||||
tcpTargets,
|
// tcpTargets,
|
||||||
udpTargets,
|
// udpTargets,
|
||||||
validHealthCheckTargets,
|
// validHealthCheckTargets,
|
||||||
browserGatewayTargets,
|
// browserGatewayTargets,
|
||||||
remoteExitNodeSubnets
|
// remoteExitNodeSubnets
|
||||||
} = await buildTargetConfigurationForNewtClient(site.siteId);
|
// } = await buildTargetConfigurationForNewtClient(site.siteId);
|
||||||
let exitNode: ExitNode | undefined;
|
// let exitNode: ExitNode | undefined;
|
||||||
if (site.exitNodeId) {
|
// if (site.exitNodeId) {
|
||||||
[exitNode] = await db
|
// [exitNode] = await db
|
||||||
.select()
|
// .select()
|
||||||
.from(exitNodes)
|
// .from(exitNodes)
|
||||||
.where(eq(exitNodes.exitNodeId, site.exitNodeId))
|
// .where(eq(exitNodes.exitNodeId, site.exitNodeId))
|
||||||
.limit(1);
|
// .limit(1);
|
||||||
}
|
// }
|
||||||
const { peers, targets } = await buildClientConfigurationForNewtClient(
|
// const { peers, targets } = await buildClientConfigurationForNewtClient(
|
||||||
site,
|
// site,
|
||||||
exitNode
|
// exitNode
|
||||||
);
|
// );
|
||||||
await sendToClient(
|
// await sendToClient(
|
||||||
newt.newtId,
|
// newt.newtId,
|
||||||
{
|
// {
|
||||||
type: "newt/sync",
|
// type: "newt/sync",
|
||||||
data: {
|
// data: {
|
||||||
proxyTargets: {
|
// proxyTargets: {
|
||||||
udp: udpTargets,
|
// udp: udpTargets,
|
||||||
tcp: tcpTargets
|
// tcp: tcpTargets
|
||||||
},
|
// },
|
||||||
healthCheckTargets: validHealthCheckTargets,
|
// healthCheckTargets: validHealthCheckTargets,
|
||||||
peers: peers,
|
// peers: peers,
|
||||||
clientTargets: targets,
|
// clientTargets: targets,
|
||||||
browserGatewayTargets: browserGatewayTargets,
|
// browserGatewayTargets: browserGatewayTargets,
|
||||||
remoteExitNodeSubnets: remoteExitNodeSubnets
|
// remoteExitNodeSubnets: remoteExitNodeSubnets
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
compress: canCompress(newt.version, "newt")
|
// compress: canCompress(newt.version, "newt")
|
||||||
}
|
// }
|
||||||
).catch((error) => {
|
// ).catch((error) => {
|
||||||
logger.warn(`Error sending newt sync message:`, error);
|
// logger.warn(`Error sending newt sync message:`, error);
|
||||||
});
|
// });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ export async function buildSiteConfigurationForOlmClient(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!site.subnet) {
|
if (!site.subnet) {
|
||||||
logger.debug(`Site ${site.siteId} has no subnet, skipping`);
|
logger.warn(`Site ${site.siteId} has no subnet, skipping`);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,9 +6,7 @@ import logger from "@server/logger";
|
|||||||
/**
|
/**
|
||||||
* Handles disconnecting messages from clients to show disconnected in the ui
|
* Handles disconnecting messages from clients to show disconnected in the ui
|
||||||
*/
|
*/
|
||||||
export const handleOlmDisconnectingMessage: MessageHandler = async (
|
export const handleOlmDisconnectingMessage: MessageHandler = async (context) => {
|
||||||
context
|
|
||||||
) => {
|
|
||||||
const { message, client: c, sendToClient } = context;
|
const { message, client: c, sendToClient } = context;
|
||||||
const olm = c as Olm;
|
const olm = c as Olm;
|
||||||
|
|
||||||
@@ -31,6 +29,6 @@ export const handleOlmDisconnectingMessage: MessageHandler = async (
|
|||||||
})
|
})
|
||||||
.where(eq(clients.clientId, olm.clientId));
|
.where(eq(clients.clientId, olm.clientId));
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error("Error handling client disconnecting message", error);
|
logger.error("Error handling disconnecting message", { error });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -268,11 +268,7 @@ export async function createSite(
|
|||||||
|
|
||||||
let newSite: Site | undefined;
|
let newSite: Site | undefined;
|
||||||
try {
|
try {
|
||||||
if (type === "wireguard" && subnet && exitNodeId) {
|
if (subnet && exitNodeId) {
|
||||||
// Only wireguard sites actually persist the provided subnet/exitNodeId.
|
|
||||||
// Newt sites have their subnet/exit node chosen (under a lock) when the
|
|
||||||
// newt connects, so validating them here is both unnecessary and racy,
|
|
||||||
// since pickSiteDefaults does not lock the subnet it suggests.
|
|
||||||
//make sure the subnet is in the range of the exit node if provided
|
//make sure the subnet is in the range of the exit node if provided
|
||||||
const [exitNode] = await db
|
const [exitNode] = await db
|
||||||
.select()
|
.select()
|
||||||
|
|||||||
@@ -3,12 +3,8 @@ import { db, orgs } from "@server/db";
|
|||||||
import { actions, roles, roleActions } from "@server/db";
|
import { actions, roles, roleActions } from "@server/db";
|
||||||
import { eq, inArray } from "drizzle-orm";
|
import { eq, inArray } from "drizzle-orm";
|
||||||
import logger from "@server/logger";
|
import logger from "@server/logger";
|
||||||
import { build } from "@server/build";
|
|
||||||
|
|
||||||
export async function ensureActions() {
|
export async function ensureActions() {
|
||||||
if (build == "saas") {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
await db.transaction(async (trx) => {
|
await db.transaction(async (trx) => {
|
||||||
const actionIds = Object.values(ActionsEnum);
|
const actionIds = Object.values(ActionsEnum);
|
||||||
const existingActions = await trx.select().from(actions).execute();
|
const existingActions = await trx.select().from(actions).execute();
|
||||||
|
|||||||
@@ -158,9 +158,6 @@ const tierLimits: Record<
|
|||||||
domains: number;
|
domains: number;
|
||||||
remoteNodes: number;
|
remoteNodes: number;
|
||||||
organizations: number;
|
organizations: number;
|
||||||
publicResources: number;
|
|
||||||
privateResources: number;
|
|
||||||
machineClients: number;
|
|
||||||
}
|
}
|
||||||
> = {
|
> = {
|
||||||
basic: {
|
basic: {
|
||||||
@@ -168,50 +165,35 @@ const tierLimits: Record<
|
|||||||
sites: freeLimitSet[LimitId.SITES]?.value ?? 0,
|
sites: freeLimitSet[LimitId.SITES]?.value ?? 0,
|
||||||
domains: freeLimitSet[LimitId.DOMAINS]?.value ?? 0,
|
domains: freeLimitSet[LimitId.DOMAINS]?.value ?? 0,
|
||||||
remoteNodes: freeLimitSet[LimitId.REMOTE_EXIT_NODES]?.value ?? 0,
|
remoteNodes: freeLimitSet[LimitId.REMOTE_EXIT_NODES]?.value ?? 0,
|
||||||
organizations: freeLimitSet[LimitId.ORGANIZATIONS]?.value ?? 0,
|
organizations: freeLimitSet[LimitId.ORGANIZATIONS]?.value ?? 0
|
||||||
publicResources: freeLimitSet[LimitId.PUBLIC_RESOURCES]?.value ?? 0,
|
|
||||||
privateResources: freeLimitSet[LimitId.PRIVATE_RESOURCES]?.value ?? 0,
|
|
||||||
machineClients: freeLimitSet[LimitId.MACHINE_CLIENTS]?.value ?? 0
|
|
||||||
},
|
},
|
||||||
tier1: {
|
tier1: {
|
||||||
users: tier1LimitSet[LimitId.USERS]?.value ?? 0,
|
users: tier1LimitSet[LimitId.USERS]?.value ?? 0,
|
||||||
sites: tier1LimitSet[LimitId.SITES]?.value ?? 0,
|
sites: tier1LimitSet[LimitId.SITES]?.value ?? 0,
|
||||||
domains: tier1LimitSet[LimitId.DOMAINS]?.value ?? 0,
|
domains: tier1LimitSet[LimitId.DOMAINS]?.value ?? 0,
|
||||||
remoteNodes: tier1LimitSet[LimitId.REMOTE_EXIT_NODES]?.value ?? 0,
|
remoteNodes: tier1LimitSet[LimitId.REMOTE_EXIT_NODES]?.value ?? 0,
|
||||||
organizations: tier1LimitSet[LimitId.ORGANIZATIONS]?.value ?? 0,
|
organizations: tier1LimitSet[LimitId.ORGANIZATIONS]?.value ?? 0
|
||||||
publicResources: tier1LimitSet[LimitId.PUBLIC_RESOURCES]?.value ?? 0,
|
|
||||||
privateResources: tier1LimitSet[LimitId.PRIVATE_RESOURCES]?.value ?? 0,
|
|
||||||
machineClients: tier1LimitSet[LimitId.MACHINE_CLIENTS]?.value ?? 0
|
|
||||||
},
|
},
|
||||||
tier2: {
|
tier2: {
|
||||||
users: tier2LimitSet[LimitId.USERS]?.value ?? 0,
|
users: tier2LimitSet[LimitId.USERS]?.value ?? 0,
|
||||||
sites: tier2LimitSet[LimitId.SITES]?.value ?? 0,
|
sites: tier2LimitSet[LimitId.SITES]?.value ?? 0,
|
||||||
domains: tier2LimitSet[LimitId.DOMAINS]?.value ?? 0,
|
domains: tier2LimitSet[LimitId.DOMAINS]?.value ?? 0,
|
||||||
remoteNodes: tier2LimitSet[LimitId.REMOTE_EXIT_NODES]?.value ?? 0,
|
remoteNodes: tier2LimitSet[LimitId.REMOTE_EXIT_NODES]?.value ?? 0,
|
||||||
organizations: tier2LimitSet[LimitId.ORGANIZATIONS]?.value ?? 0,
|
organizations: tier2LimitSet[LimitId.ORGANIZATIONS]?.value ?? 0
|
||||||
publicResources: tier2LimitSet[LimitId.PUBLIC_RESOURCES]?.value ?? 0,
|
|
||||||
privateResources: tier2LimitSet[LimitId.PRIVATE_RESOURCES]?.value ?? 0,
|
|
||||||
machineClients: tier2LimitSet[LimitId.MACHINE_CLIENTS]?.value ?? 0
|
|
||||||
},
|
},
|
||||||
tier3: {
|
tier3: {
|
||||||
users: tier3LimitSet[LimitId.USERS]?.value ?? 0,
|
users: tier3LimitSet[LimitId.USERS]?.value ?? 0,
|
||||||
sites: tier3LimitSet[LimitId.SITES]?.value ?? 0,
|
sites: tier3LimitSet[LimitId.SITES]?.value ?? 0,
|
||||||
domains: tier3LimitSet[LimitId.DOMAINS]?.value ?? 0,
|
domains: tier3LimitSet[LimitId.DOMAINS]?.value ?? 0,
|
||||||
remoteNodes: tier3LimitSet[LimitId.REMOTE_EXIT_NODES]?.value ?? 0,
|
remoteNodes: tier3LimitSet[LimitId.REMOTE_EXIT_NODES]?.value ?? 0,
|
||||||
organizations: tier3LimitSet[LimitId.ORGANIZATIONS]?.value ?? 0,
|
organizations: tier3LimitSet[LimitId.ORGANIZATIONS]?.value ?? 0
|
||||||
publicResources: tier3LimitSet[LimitId.PUBLIC_RESOURCES]?.value ?? 0,
|
|
||||||
privateResources: tier3LimitSet[LimitId.PRIVATE_RESOURCES]?.value ?? 0,
|
|
||||||
machineClients: tier3LimitSet[LimitId.MACHINE_CLIENTS]?.value ?? 0
|
|
||||||
},
|
},
|
||||||
enterprise: {
|
enterprise: {
|
||||||
users: 0, // Custom for enterprise
|
users: 0, // Custom for enterprise
|
||||||
sites: 0, // Custom for enterprise
|
sites: 0, // Custom for enterprise
|
||||||
domains: 0, // Custom for enterprise
|
domains: 0, // Custom for enterprise
|
||||||
remoteNodes: 0, // Custom for enterprise
|
remoteNodes: 0, // Custom for enterprise
|
||||||
organizations: 0, // Custom for enterprise
|
organizations: 0 // Custom for enterprise
|
||||||
publicResources: 0, // Custom for enterprise
|
|
||||||
privateResources: 0, // Custom for enterprise
|
|
||||||
machineClients: 0 // Custom for enterprise
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -252,9 +234,6 @@ export default function BillingPage() {
|
|||||||
const DOMAINS = "domains";
|
const DOMAINS = "domains";
|
||||||
const REMOTE_EXIT_NODES = "remoteExitNodes";
|
const REMOTE_EXIT_NODES = "remoteExitNodes";
|
||||||
const ORGINIZATIONS = "organizations";
|
const ORGINIZATIONS = "organizations";
|
||||||
const PUBLIC_RESOURCES = "publicResources";
|
|
||||||
const PRIVATE_RESOURCES = "privateResources";
|
|
||||||
const MACHINE_CLIENTS = "machineClients";
|
|
||||||
|
|
||||||
// Confirmation dialog state
|
// Confirmation dialog state
|
||||||
const [showConfirmDialog, setShowConfirmDialog] = useState(false);
|
const [showConfirmDialog, setShowConfirmDialog] = useState(false);
|
||||||
@@ -290,13 +269,7 @@ export default function BillingPage() {
|
|||||||
setHasSubscription(
|
setHasSubscription(
|
||||||
tierSub.subscription.status === "active"
|
tierSub.subscription.status === "active"
|
||||||
);
|
);
|
||||||
// expiresAt is only meaningful while the trial hasn't
|
setIsTrial(tierSub.subscription.expiresAt != null);
|
||||||
// actually run out yet; a stale row with a past
|
|
||||||
// expiresAt should no longer be treated as a live trial
|
|
||||||
const expiresAt = tierSub.subscription.expiresAt;
|
|
||||||
setIsTrial(
|
|
||||||
expiresAt != null && expiresAt * 1000 > Date.now()
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find license subscription
|
// Find license subscription
|
||||||
@@ -824,45 +797,6 @@ export default function BillingPage() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check public resources
|
|
||||||
const publicResourcesUsage = getUsageValue(PUBLIC_RESOURCES);
|
|
||||||
if (
|
|
||||||
limits.publicResources > 0 &&
|
|
||||||
publicResourcesUsage > limits.publicResources
|
|
||||||
) {
|
|
||||||
violations.push({
|
|
||||||
feature: "Public Resources",
|
|
||||||
currentUsage: publicResourcesUsage,
|
|
||||||
newLimit: limits.publicResources
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check private resources
|
|
||||||
const privateResourcesUsage = getUsageValue(PRIVATE_RESOURCES);
|
|
||||||
if (
|
|
||||||
limits.privateResources > 0 &&
|
|
||||||
privateResourcesUsage > limits.privateResources
|
|
||||||
) {
|
|
||||||
violations.push({
|
|
||||||
feature: "Private Resources",
|
|
||||||
currentUsage: privateResourcesUsage,
|
|
||||||
newLimit: limits.privateResources
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check machine clients
|
|
||||||
const machineClientsUsage = getUsageValue(MACHINE_CLIENTS);
|
|
||||||
if (
|
|
||||||
limits.machineClients > 0 &&
|
|
||||||
machineClientsUsage > limits.machineClients
|
|
||||||
) {
|
|
||||||
violations.push({
|
|
||||||
feature: "Machine Clients",
|
|
||||||
currentUsage: machineClientsUsage,
|
|
||||||
newLimit: limits.machineClients
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return violations;
|
return violations;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1063,13 +997,12 @@ export default function BillingPage() {
|
|||||||
</SettingsSectionDescription>
|
</SettingsSectionDescription>
|
||||||
</SettingsSectionHeader>
|
</SettingsSectionHeader>
|
||||||
<SettingsSectionBody>
|
<SettingsSectionBody>
|
||||||
<div className="grid grid-cols-1 md:grid-cols-4 gap-6">
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||||
{/* Current Usage */}
|
{/* Current Usage */}
|
||||||
<div className="border rounded-lg p-4 md:col-span-1">
|
<div className="border rounded-lg p-4">
|
||||||
<div className="text-sm text-muted-foreground mb-2">
|
<div className="text-sm text-muted-foreground mb-2">
|
||||||
{t("billingCurrentUsage") || "Current Usage"}
|
{t("billingCurrentUsage") || "Current Usage"}
|
||||||
</div>
|
</div>
|
||||||
<div className="flex flex-col items-start gap-1">
|
|
||||||
<div className="flex items-baseline gap-2">
|
<div className="flex items-baseline gap-2">
|
||||||
<span className="text-3xl font-semibold">
|
<span className="text-3xl font-semibold">
|
||||||
{getUserCount()}
|
{getUserCount()}
|
||||||
@@ -1077,9 +1010,8 @@ export default function BillingPage() {
|
|||||||
<span className="text-lg">
|
<span className="text-lg">
|
||||||
{t("billingUsers") || "Users"}
|
{t("billingUsers") || "Users"}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
|
||||||
{hasSubscription && getPricePerUser() > 0 && (
|
{hasSubscription && getPricePerUser() > 0 && (
|
||||||
<div className="text-sm text-muted-foreground">
|
<div className="text-sm text-muted-foreground mt-1">
|
||||||
x ${getPricePerUser()} / month = $
|
x ${getPricePerUser()} / month = $
|
||||||
{getUserCount() * getPricePerUser()} /
|
{getUserCount() * getPricePerUser()} /
|
||||||
month
|
month
|
||||||
@@ -1089,11 +1021,11 @@ export default function BillingPage() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Maximum Limits */}
|
{/* Maximum Limits */}
|
||||||
<div className="border rounded-lg p-4 md:col-span-3">
|
<div className="border rounded-lg p-4">
|
||||||
<div className="text-sm text-muted-foreground mb-3">
|
<div className="text-sm text-muted-foreground mb-3">
|
||||||
{t("billingMaximumLimits") || "Maximum Limits"}
|
{t("billingMaximumLimits") || "Maximum Limits"}
|
||||||
</div>
|
</div>
|
||||||
<InfoSections cols={8}>
|
<InfoSections cols={5}>
|
||||||
<InfoSection>
|
<InfoSection>
|
||||||
<InfoSectionTitle className="flex items-center gap-1 text-xs">
|
<InfoSectionTitle className="flex items-center gap-1 text-xs">
|
||||||
{t("billingUsers") || "Users"}
|
{t("billingUsers") || "Users"}
|
||||||
@@ -1376,168 +1308,6 @@ export default function BillingPage() {
|
|||||||
)}
|
)}
|
||||||
</InfoSectionContent>
|
</InfoSectionContent>
|
||||||
</InfoSection>
|
</InfoSection>
|
||||||
<InfoSection>
|
|
||||||
<InfoSectionTitle className="flex items-center gap-1 text-xs">
|
|
||||||
{t("billingPublicResources") ||
|
|
||||||
"Public Resources"}
|
|
||||||
</InfoSectionTitle>
|
|
||||||
<InfoSectionContent className="text-sm">
|
|
||||||
{isOverLimit(PUBLIC_RESOURCES) ? (
|
|
||||||
<Tooltip>
|
|
||||||
<TooltipTrigger className="flex items-center gap-1">
|
|
||||||
<AlertTriangle className="h-3 w-3 text-orange-400" />
|
|
||||||
<span
|
|
||||||
className={cn(
|
|
||||||
"text-orange-600 dark:text-orange-400 font-medium"
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
{getLimitValue(
|
|
||||||
PUBLIC_RESOURCES
|
|
||||||
) ??
|
|
||||||
t(
|
|
||||||
"billingUnlimited"
|
|
||||||
) ??
|
|
||||||
"∞"}
|
|
||||||
</span>
|
|
||||||
</TooltipTrigger>
|
|
||||||
<TooltipContent>
|
|
||||||
<p>
|
|
||||||
{t(
|
|
||||||
"billingUsageExceedsLimit",
|
|
||||||
{
|
|
||||||
current:
|
|
||||||
getUsageValue(
|
|
||||||
PUBLIC_RESOURCES
|
|
||||||
),
|
|
||||||
limit:
|
|
||||||
getLimitValue(
|
|
||||||
PUBLIC_RESOURCES
|
|
||||||
) ?? 0
|
|
||||||
}
|
|
||||||
) ||
|
|
||||||
`Current usage (${getUsageValue(PUBLIC_RESOURCES)}) exceeds limit (${getLimitValue(PUBLIC_RESOURCES)})`}
|
|
||||||
</p>
|
|
||||||
</TooltipContent>
|
|
||||||
</Tooltip>
|
|
||||||
) : (
|
|
||||||
<>
|
|
||||||
{getLimitValue(
|
|
||||||
PUBLIC_RESOURCES
|
|
||||||
) ??
|
|
||||||
t("billingUnlimited") ??
|
|
||||||
"∞"}
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</InfoSectionContent>
|
|
||||||
</InfoSection>
|
|
||||||
<InfoSection>
|
|
||||||
<InfoSectionTitle className="flex items-center gap-1 text-xs">
|
|
||||||
{t("billingPrivateResources") ||
|
|
||||||
"Private Resources"}
|
|
||||||
</InfoSectionTitle>
|
|
||||||
<InfoSectionContent className="text-sm">
|
|
||||||
{isOverLimit(PRIVATE_RESOURCES) ? (
|
|
||||||
<Tooltip>
|
|
||||||
<TooltipTrigger className="flex items-center gap-1">
|
|
||||||
<AlertTriangle className="h-3 w-3 text-orange-400" />
|
|
||||||
<span
|
|
||||||
className={cn(
|
|
||||||
"text-orange-600 dark:text-orange-400 font-medium"
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
{getLimitValue(
|
|
||||||
PRIVATE_RESOURCES
|
|
||||||
) ??
|
|
||||||
t(
|
|
||||||
"billingUnlimited"
|
|
||||||
) ??
|
|
||||||
"∞"}
|
|
||||||
</span>
|
|
||||||
</TooltipTrigger>
|
|
||||||
<TooltipContent>
|
|
||||||
<p>
|
|
||||||
{t(
|
|
||||||
"billingUsageExceedsLimit",
|
|
||||||
{
|
|
||||||
current:
|
|
||||||
getUsageValue(
|
|
||||||
PRIVATE_RESOURCES
|
|
||||||
),
|
|
||||||
limit:
|
|
||||||
getLimitValue(
|
|
||||||
PRIVATE_RESOURCES
|
|
||||||
) ?? 0
|
|
||||||
}
|
|
||||||
) ||
|
|
||||||
`Current usage (${getUsageValue(PRIVATE_RESOURCES)}) exceeds limit (${getLimitValue(PRIVATE_RESOURCES)})`}
|
|
||||||
</p>
|
|
||||||
</TooltipContent>
|
|
||||||
</Tooltip>
|
|
||||||
) : (
|
|
||||||
<>
|
|
||||||
{getLimitValue(
|
|
||||||
PRIVATE_RESOURCES
|
|
||||||
) ??
|
|
||||||
t("billingUnlimited") ??
|
|
||||||
"∞"}
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</InfoSectionContent>
|
|
||||||
</InfoSection>
|
|
||||||
<InfoSection>
|
|
||||||
<InfoSectionTitle className="flex items-center gap-1 text-xs">
|
|
||||||
{t("billingMachineClients") ||
|
|
||||||
"Machine Clients"}
|
|
||||||
</InfoSectionTitle>
|
|
||||||
<InfoSectionContent className="text-sm">
|
|
||||||
{isOverLimit(MACHINE_CLIENTS) ? (
|
|
||||||
<Tooltip>
|
|
||||||
<TooltipTrigger className="flex items-center gap-1">
|
|
||||||
<AlertTriangle className="h-3 w-3 text-orange-400" />
|
|
||||||
<span
|
|
||||||
className={cn(
|
|
||||||
"text-orange-600 dark:text-orange-400 font-medium"
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
{getLimitValue(
|
|
||||||
MACHINE_CLIENTS
|
|
||||||
) ??
|
|
||||||
t(
|
|
||||||
"billingUnlimited"
|
|
||||||
) ??
|
|
||||||
"∞"}
|
|
||||||
</span>
|
|
||||||
</TooltipTrigger>
|
|
||||||
<TooltipContent>
|
|
||||||
<p>
|
|
||||||
{t(
|
|
||||||
"billingUsageExceedsLimit",
|
|
||||||
{
|
|
||||||
current:
|
|
||||||
getUsageValue(
|
|
||||||
MACHINE_CLIENTS
|
|
||||||
),
|
|
||||||
limit:
|
|
||||||
getLimitValue(
|
|
||||||
MACHINE_CLIENTS
|
|
||||||
) ?? 0
|
|
||||||
}
|
|
||||||
) ||
|
|
||||||
`Current usage (${getUsageValue(MACHINE_CLIENTS)}) exceeds limit (${getLimitValue(MACHINE_CLIENTS)})`}
|
|
||||||
</p>
|
|
||||||
</TooltipContent>
|
|
||||||
</Tooltip>
|
|
||||||
) : (
|
|
||||||
<>
|
|
||||||
{getLimitValue(
|
|
||||||
MACHINE_CLIENTS
|
|
||||||
) ??
|
|
||||||
t("billingUnlimited") ??
|
|
||||||
"∞"}
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</InfoSectionContent>
|
|
||||||
</InfoSection>
|
|
||||||
</InfoSections>
|
</InfoSections>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1737,45 +1507,6 @@ export default function BillingPage() {
|
|||||||
"Remote Nodes"}
|
"Remote Nodes"}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center gap-2">
|
|
||||||
<span className="w-1.5 h-1.5 rounded-full bg-muted-foreground/50 shrink-0" />
|
|
||||||
<span>
|
|
||||||
{
|
|
||||||
tierLimits[
|
|
||||||
pendingTier.tier
|
|
||||||
].publicResources
|
|
||||||
}{" "}
|
|
||||||
{t(
|
|
||||||
"billingPublicResources"
|
|
||||||
) || "Public Resources"}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div className="flex items-center gap-2">
|
|
||||||
<span className="w-1.5 h-1.5 rounded-full bg-muted-foreground/50 shrink-0" />
|
|
||||||
<span>
|
|
||||||
{
|
|
||||||
tierLimits[
|
|
||||||
pendingTier.tier
|
|
||||||
].privateResources
|
|
||||||
}{" "}
|
|
||||||
{t(
|
|
||||||
"billingPrivateResources"
|
|
||||||
) || "Private Resources"}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div className="flex items-center gap-2">
|
|
||||||
<span className="w-1.5 h-1.5 rounded-full bg-muted-foreground/50 shrink-0" />
|
|
||||||
<span>
|
|
||||||
{
|
|
||||||
tierLimits[
|
|
||||||
pendingTier.tier
|
|
||||||
].machineClients
|
|
||||||
}{" "}
|
|
||||||
{t(
|
|
||||||
"billingMachineClients"
|
|
||||||
) || "Machine Clients"}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Reference in New Issue
Block a user