mirror of
https://github.com/fosrl/pangolin.git
synced 2026-07-07 14:44:52 +02:00
Compare commits
45 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 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 |
+35
-5
@@ -864,8 +864,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "Базово удостоверяване чрез заглавие",
|
"policyAuthHeaderAuthTitle": "Базово удостоверяване чрез заглавие",
|
||||||
"policyAuthHeaderAuthDescription": "Валидирайте собствено HTTP заглавие и стойност при всяка заявка",
|
"policyAuthHeaderAuthDescription": "Валидирайте собствено HTTP заглавие и стойност при всяка заявка",
|
||||||
"policyAuthHeaderAuthSummary": "Конфигурирано заглавие",
|
"policyAuthHeaderAuthSummary": "Конфигурирано заглавие",
|
||||||
"policyAuthHeaderName": "Име на заглавието",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "Очаквана стойност",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "Задайте парола",
|
"policyAuthSetPasscode": "Задайте парола",
|
||||||
"policyAuthSetPincode": "Задайте ПИН код",
|
"policyAuthSetPincode": "Задайте ПИН код",
|
||||||
"policyAuthSetEmailWhitelist": "Задайте списък с имейли",
|
"policyAuthSetEmailWhitelist": "Задайте списък с имейли",
|
||||||
@@ -1915,6 +1915,9 @@
|
|||||||
"billingDomains": "Домейни",
|
"billingDomains": "Домейни",
|
||||||
"billingOrganizations": "Организации",
|
"billingOrganizations": "Организации",
|
||||||
"billingRemoteExitNodes": "Дистанционни възли",
|
"billingRemoteExitNodes": "Дистанционни възли",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "Няма конфигуриран лимит",
|
"billingNoLimitConfigured": "Няма конфигуриран лимит",
|
||||||
"billingEstimatedPeriod": "Очакван период на фактуриране",
|
"billingEstimatedPeriod": "Очакван период на фактуриране",
|
||||||
"billingIncludedUsage": "Включено използване",
|
"billingIncludedUsage": "Включено използване",
|
||||||
@@ -1943,6 +1946,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": "Абонамент за лиценз",
|
||||||
@@ -3571,18 +3577,23 @@
|
|||||||
"memberPortalResourceDisabled": "Ресурсът е деактивиран",
|
"memberPortalResourceDisabled": "Ресурсът е деактивиран",
|
||||||
"memberPortalShowingResources": "Показва {start}-{end} от {total} ресурси",
|
"memberPortalShowingResources": "Показва {start}-{end} от {total} ресурси",
|
||||||
"resourceLauncherTitle": "Стартер за Ресурси",
|
"resourceLauncherTitle": "Стартер за Ресурси",
|
||||||
"resourceLauncherDescription": "Преглеждайте детайлите на ресурса и ги стартирайте от едно място",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
"resourceLauncherSearchPlaceholder": "Търсете във всички сайтове...",
|
"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 +3601,7 @@
|
|||||||
"resourceLauncherGroupBy": "Групирай По",
|
"resourceLauncherGroupBy": "Групирай По",
|
||||||
"resourceLauncherGroupBySite": "Сайт",
|
"resourceLauncherGroupBySite": "Сайт",
|
||||||
"resourceLauncherGroupByLabel": "Етикет",
|
"resourceLauncherGroupByLabel": "Етикет",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "Оформление",
|
"resourceLauncherLayout": "Оформление",
|
||||||
"resourceLauncherLayoutGrid": "Мрежа",
|
"resourceLauncherLayoutGrid": "Мрежа",
|
||||||
"resourceLauncherLayoutList": "Списък",
|
"resourceLauncherLayoutList": "Списък",
|
||||||
@@ -3597,8 +3609,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 +3631,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": "Име на Изгледа",
|
||||||
|
|||||||
+35
-5
@@ -864,8 +864,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",
|
||||||
@@ -1915,6 +1915,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 +1946,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",
|
||||||
@@ -3571,18 +3577,23 @@
|
|||||||
"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",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
"resourceLauncherSearchPlaceholder": "Hledat všechny lokality...",
|
"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 +3601,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 +3609,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 +3631,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",
|
||||||
|
|||||||
+35
-5
@@ -864,8 +864,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",
|
||||||
@@ -1915,6 +1915,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 +1946,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",
|
||||||
@@ -3571,18 +3577,23 @@
|
|||||||
"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",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
"resourceLauncherSearchPlaceholder": "Søg i alle sites...",
|
"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 +3601,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 +3609,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 +3631,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",
|
||||||
|
|||||||
+35
-5
@@ -864,8 +864,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",
|
||||||
@@ -1915,6 +1915,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 +1946,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",
|
||||||
@@ -3571,18 +3577,23 @@
|
|||||||
"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",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
"resourceLauncherSearchPlaceholder": "Alle Standorte durchsuchen...",
|
"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 +3601,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 +3609,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 +3631,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",
|
||||||
|
|||||||
@@ -1503,7 +1503,6 @@
|
|||||||
"otpAuthDescription": "Enter the code from your authenticator app or one of your single-use backup codes.",
|
"otpAuthDescription": "Enter the code from your authenticator app or one of your single-use backup codes.",
|
||||||
"otpAuthSubmit": "Submit Code",
|
"otpAuthSubmit": "Submit Code",
|
||||||
"idpContinue": "Or continue with",
|
"idpContinue": "Or continue with",
|
||||||
"idpLastUsed": "Last used",
|
|
||||||
"otpAuthBack": "Back to Password",
|
"otpAuthBack": "Back to Password",
|
||||||
"navbar": "Navigation Menu",
|
"navbar": "Navigation Menu",
|
||||||
"navbarDescription": "Main navigation menu for the application",
|
"navbarDescription": "Main navigation menu for the application",
|
||||||
@@ -1916,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",
|
||||||
@@ -1947,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",
|
||||||
|
|||||||
+35
-5
@@ -864,8 +864,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",
|
||||||
@@ -1915,6 +1915,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 +1946,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",
|
||||||
@@ -3571,18 +3577,23 @@
|
|||||||
"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",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
"resourceLauncherSearchPlaceholder": "Buscar en todos los sitios...",
|
"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 +3601,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 +3609,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 +3631,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",
|
||||||
|
|||||||
+35
-5
@@ -864,8 +864,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",
|
||||||
@@ -1915,6 +1915,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 +1946,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",
|
||||||
@@ -3571,18 +3577,23 @@
|
|||||||
"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",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
"resourceLauncherSearchPlaceholder": "Rechercher sur tous les sites...",
|
"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 +3601,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 +3609,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 +3631,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",
|
||||||
|
|||||||
+35
-5
@@ -864,8 +864,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",
|
||||||
@@ -1915,6 +1915,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 +1946,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",
|
||||||
@@ -3571,18 +3577,23 @@
|
|||||||
"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",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
"resourceLauncherSearchPlaceholder": "Cerca tutti i siti...",
|
"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 +3601,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 +3609,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 +3631,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",
|
||||||
|
|||||||
+35
-5
@@ -864,8 +864,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "기본 헤더 인증",
|
"policyAuthHeaderAuthTitle": "기본 헤더 인증",
|
||||||
"policyAuthHeaderAuthDescription": "각 요청에서 맞춤 HTTP 헤더 이름 및 값을 검증",
|
"policyAuthHeaderAuthDescription": "각 요청에서 맞춤 HTTP 헤더 이름 및 값을 검증",
|
||||||
"policyAuthHeaderAuthSummary": "헤더 구성됨",
|
"policyAuthHeaderAuthSummary": "헤더 구성됨",
|
||||||
"policyAuthHeaderName": "헤더 이름",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "예상 값",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "패스코드 설정",
|
"policyAuthSetPasscode": "패스코드 설정",
|
||||||
"policyAuthSetPincode": "PIN 코드 설정",
|
"policyAuthSetPincode": "PIN 코드 설정",
|
||||||
"policyAuthSetEmailWhitelist": "이메일 화이트리스트 설정",
|
"policyAuthSetEmailWhitelist": "이메일 화이트리스트 설정",
|
||||||
@@ -1915,6 +1915,9 @@
|
|||||||
"billingDomains": "도메인",
|
"billingDomains": "도메인",
|
||||||
"billingOrganizations": "조직",
|
"billingOrganizations": "조직",
|
||||||
"billingRemoteExitNodes": "원격 노드",
|
"billingRemoteExitNodes": "원격 노드",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "구성된 한도가 없습니다.",
|
"billingNoLimitConfigured": "구성된 한도가 없습니다.",
|
||||||
"billingEstimatedPeriod": "예상 청구 기간",
|
"billingEstimatedPeriod": "예상 청구 기간",
|
||||||
"billingIncludedUsage": "포함 사용량",
|
"billingIncludedUsage": "포함 사용량",
|
||||||
@@ -1943,6 +1946,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": "라이센스 구독",
|
||||||
@@ -3571,18 +3577,23 @@
|
|||||||
"memberPortalResourceDisabled": "리소스 비활성화됨",
|
"memberPortalResourceDisabled": "리소스 비활성화됨",
|
||||||
"memberPortalShowingResources": "{start}-{end} 중 {total}개의 리소스를 표시 중",
|
"memberPortalShowingResources": "{start}-{end} 중 {total}개의 리소스를 표시 중",
|
||||||
"resourceLauncherTitle": "리소스 런처",
|
"resourceLauncherTitle": "리소스 런처",
|
||||||
"resourceLauncherDescription": "리소스 세부 정보를 보고 한 곳에서 실행하세요",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
"resourceLauncherSearchPlaceholder": "모든 사이트 검색...",
|
"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 +3601,7 @@
|
|||||||
"resourceLauncherGroupBy": "그룹화 기준",
|
"resourceLauncherGroupBy": "그룹화 기준",
|
||||||
"resourceLauncherGroupBySite": "사이트",
|
"resourceLauncherGroupBySite": "사이트",
|
||||||
"resourceLauncherGroupByLabel": "레이블",
|
"resourceLauncherGroupByLabel": "레이블",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "레이아웃",
|
"resourceLauncherLayout": "레이아웃",
|
||||||
"resourceLauncherLayoutGrid": "그리드",
|
"resourceLauncherLayoutGrid": "그리드",
|
||||||
"resourceLauncherLayoutList": "목록",
|
"resourceLauncherLayoutList": "목록",
|
||||||
@@ -3597,8 +3609,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 +3631,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": "보기 이름",
|
||||||
|
|||||||
+35
-5
@@ -864,8 +864,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",
|
||||||
@@ -1915,6 +1915,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 +1946,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",
|
||||||
@@ -3571,18 +3577,23 @@
|
|||||||
"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",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
"resourceLauncherSearchPlaceholder": "Søk i alle områder...",
|
"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 +3601,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 +3609,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 +3631,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",
|
||||||
|
|||||||
+35
-5
@@ -864,8 +864,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",
|
||||||
@@ -1915,6 +1915,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 +1946,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",
|
||||||
@@ -3571,18 +3577,23 @@
|
|||||||
"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",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
"resourceLauncherSearchPlaceholder": "Zoek alle sites...",
|
"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 +3601,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 +3609,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 +3631,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",
|
||||||
|
|||||||
+35
-5
@@ -864,8 +864,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",
|
||||||
@@ -1915,6 +1915,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 +1946,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",
|
||||||
@@ -3571,18 +3577,23 @@
|
|||||||
"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",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
"resourceLauncherSearchPlaceholder": "Szukaj we wszystkich stronach...",
|
"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 +3601,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 +3609,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 +3631,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",
|
||||||
|
|||||||
+35
-5
@@ -864,8 +864,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",
|
||||||
@@ -1915,6 +1915,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 +1946,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",
|
||||||
@@ -3571,18 +3577,23 @@
|
|||||||
"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",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
"resourceLauncherSearchPlaceholder": "Procurar todos os sites...",
|
"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 +3601,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 +3609,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 +3631,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",
|
||||||
|
|||||||
+35
-5
@@ -864,8 +864,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "Базовая аутентификация заголовка",
|
"policyAuthHeaderAuthTitle": "Базовая аутентификация заголовка",
|
||||||
"policyAuthHeaderAuthDescription": "Проверка пользовательского имени и значения HTTP-заголовка для каждого запроса",
|
"policyAuthHeaderAuthDescription": "Проверка пользовательского имени и значения HTTP-заголовка для каждого запроса",
|
||||||
"policyAuthHeaderAuthSummary": "Заголовок настроен",
|
"policyAuthHeaderAuthSummary": "Заголовок настроен",
|
||||||
"policyAuthHeaderName": "Имя заголовка",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "Ожидаемое значение",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "Установить пароль",
|
"policyAuthSetPasscode": "Установить пароль",
|
||||||
"policyAuthSetPincode": "Установить ПИН-код",
|
"policyAuthSetPincode": "Установить ПИН-код",
|
||||||
"policyAuthSetEmailWhitelist": "Установить белый список email",
|
"policyAuthSetEmailWhitelist": "Установить белый список email",
|
||||||
@@ -1915,6 +1915,9 @@
|
|||||||
"billingDomains": "Домены",
|
"billingDomains": "Домены",
|
||||||
"billingOrganizations": "Орги",
|
"billingOrganizations": "Орги",
|
||||||
"billingRemoteExitNodes": "Удаленные узлы",
|
"billingRemoteExitNodes": "Удаленные узлы",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "Лимит не установлен",
|
"billingNoLimitConfigured": "Лимит не установлен",
|
||||||
"billingEstimatedPeriod": "Предполагаемый период выставления счетов",
|
"billingEstimatedPeriod": "Предполагаемый период выставления счетов",
|
||||||
"billingIncludedUsage": "Включенное использование",
|
"billingIncludedUsage": "Включенное использование",
|
||||||
@@ -1943,6 +1946,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": "Лицензионное соглашение",
|
||||||
@@ -3571,18 +3577,23 @@
|
|||||||
"memberPortalResourceDisabled": "Ресурс отключён",
|
"memberPortalResourceDisabled": "Ресурс отключён",
|
||||||
"memberPortalShowingResources": "Показаны {start}-{end} из {total} ресурсов",
|
"memberPortalShowingResources": "Показаны {start}-{end} из {total} ресурсов",
|
||||||
"resourceLauncherTitle": "Запуск ресурса",
|
"resourceLauncherTitle": "Запуск ресурса",
|
||||||
"resourceLauncherDescription": "Просмотр деталей ресурса и запуск их из одного места",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
"resourceLauncherSearchPlaceholder": "Поиск всех сайтов...",
|
"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 +3601,7 @@
|
|||||||
"resourceLauncherGroupBy": "Группировать по",
|
"resourceLauncherGroupBy": "Группировать по",
|
||||||
"resourceLauncherGroupBySite": "Сайт",
|
"resourceLauncherGroupBySite": "Сайт",
|
||||||
"resourceLauncherGroupByLabel": "Метка",
|
"resourceLauncherGroupByLabel": "Метка",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "Макет",
|
"resourceLauncherLayout": "Макет",
|
||||||
"resourceLauncherLayoutGrid": "Сетка",
|
"resourceLauncherLayoutGrid": "Сетка",
|
||||||
"resourceLauncherLayoutList": "Список",
|
"resourceLauncherLayoutList": "Список",
|
||||||
@@ -3597,8 +3609,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 +3631,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": "Имя вида",
|
||||||
|
|||||||
+35
-5
@@ -864,8 +864,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",
|
||||||
@@ -1915,6 +1915,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 +1946,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",
|
||||||
@@ -3571,18 +3577,23 @@
|
|||||||
"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",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
"resourceLauncherSearchPlaceholder": "Tüm siteleri ara...",
|
"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 +3601,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 +3609,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 +3631,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ı",
|
||||||
|
|||||||
+35
-5
@@ -864,8 +864,8 @@
|
|||||||
"policyAuthHeaderAuthTitle": "基础标题认证",
|
"policyAuthHeaderAuthTitle": "基础标题认证",
|
||||||
"policyAuthHeaderAuthDescription": "在每次请求上验证自定义 HTTP 标头名称和值",
|
"policyAuthHeaderAuthDescription": "在每次请求上验证自定义 HTTP 标头名称和值",
|
||||||
"policyAuthHeaderAuthSummary": "标头已配置",
|
"policyAuthHeaderAuthSummary": "标头已配置",
|
||||||
"policyAuthHeaderName": "标头名称",
|
"policyAuthHeaderName": "Username",
|
||||||
"policyAuthHeaderValue": "预期值",
|
"policyAuthHeaderValue": "Password",
|
||||||
"policyAuthSetPasscode": "设定密码",
|
"policyAuthSetPasscode": "设定密码",
|
||||||
"policyAuthSetPincode": "设置 PIN 码",
|
"policyAuthSetPincode": "设置 PIN 码",
|
||||||
"policyAuthSetEmailWhitelist": "设置电子邮件白名单",
|
"policyAuthSetEmailWhitelist": "设置电子邮件白名单",
|
||||||
@@ -1915,6 +1915,9 @@
|
|||||||
"billingDomains": "域",
|
"billingDomains": "域",
|
||||||
"billingOrganizations": "球队",
|
"billingOrganizations": "球队",
|
||||||
"billingRemoteExitNodes": "远程节点",
|
"billingRemoteExitNodes": "远程节点",
|
||||||
|
"billingPublicResources": "Public Resources",
|
||||||
|
"billingPrivateResources": "Private Resources",
|
||||||
|
"billingMachineClients": "Machine Clients",
|
||||||
"billingNoLimitConfigured": "未配置限制",
|
"billingNoLimitConfigured": "未配置限制",
|
||||||
"billingEstimatedPeriod": "估计结算周期",
|
"billingEstimatedPeriod": "估计结算周期",
|
||||||
"billingIncludedUsage": "包含的使用量",
|
"billingIncludedUsage": "包含的使用量",
|
||||||
@@ -1943,6 +1946,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": "许可订阅",
|
||||||
@@ -3571,18 +3577,23 @@
|
|||||||
"memberPortalResourceDisabled": "资源已禁用",
|
"memberPortalResourceDisabled": "资源已禁用",
|
||||||
"memberPortalShowingResources": "显示 {start}-{end} 共 {total} 个资源",
|
"memberPortalShowingResources": "显示 {start}-{end} 共 {total} 个资源",
|
||||||
"resourceLauncherTitle": "资源启动器",
|
"resourceLauncherTitle": "资源启动器",
|
||||||
"resourceLauncherDescription": "查看资源详情并从一个地方启动它们",
|
"resourceLauncherDescription": "View all available resources and launch them from one central hub",
|
||||||
"resourceLauncherSearchPlaceholder": "搜索所有站点……",
|
"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 +3601,7 @@
|
|||||||
"resourceLauncherGroupBy": "按组",
|
"resourceLauncherGroupBy": "按组",
|
||||||
"resourceLauncherGroupBySite": "站点",
|
"resourceLauncherGroupBySite": "站点",
|
||||||
"resourceLauncherGroupByLabel": "标签",
|
"resourceLauncherGroupByLabel": "标签",
|
||||||
|
"resourceLauncherGroupByNone": "None",
|
||||||
"resourceLauncherLayout": "布局",
|
"resourceLauncherLayout": "布局",
|
||||||
"resourceLauncherLayoutGrid": "网格",
|
"resourceLauncherLayoutGrid": "网格",
|
||||||
"resourceLauncherLayoutList": "列表",
|
"resourceLauncherLayoutList": "列表",
|
||||||
@@ -3597,8 +3609,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 +3631,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:
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
+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);
|
||||||
});
|
// });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
@@ -818,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;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1057,23 +997,21 @@ 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()}
|
</span>
|
||||||
</span>
|
<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
|
||||||
@@ -1083,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"}
|
||||||
@@ -1370,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>
|
||||||
@@ -1731,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>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -16,11 +16,8 @@ import LoginCardHeader from "@app/components/LoginCardHeader";
|
|||||||
import { priv } from "@app/lib/api";
|
import { priv } from "@app/lib/api";
|
||||||
import { AxiosResponse } from "axios";
|
import { AxiosResponse } from "axios";
|
||||||
import { LoginFormIDP } from "@app/components/LoginForm";
|
import { LoginFormIDP } from "@app/components/LoginForm";
|
||||||
import { ListIdpsResponse, type GetIdpResponse } from "@server/routers/idp";
|
import { ListIdpsResponse } from "@server/routers/idp";
|
||||||
import type { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
import { cookies } from "next/headers";
|
|
||||||
import { LAST_USED_IDP_COOKIE_NAME } from "@app/lib/consts";
|
|
||||||
import z from "zod";
|
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Log In"
|
title: "Log In"
|
||||||
@@ -32,9 +29,8 @@ export default async function Page(props: {
|
|||||||
searchParams: Promise<{ [key: string]: string | string[] | undefined }>;
|
searchParams: Promise<{ [key: string]: string | string[] | undefined }>;
|
||||||
}) {
|
}) {
|
||||||
const searchParams = await props.searchParams;
|
const searchParams = await props.searchParams;
|
||||||
const user = await verifySession({ skipCheckVerifyEmail: true });
|
const getUser = cache(verifySession);
|
||||||
|
const user = await getUser({ skipCheckVerifyEmail: true });
|
||||||
const lastUsedIdpCookie = (await cookies()).get(LAST_USED_IDP_COOKIE_NAME);
|
|
||||||
|
|
||||||
const isInvite = searchParams?.redirect?.includes("/invite");
|
const isInvite = searchParams?.redirect?.includes("/invite");
|
||||||
const forceLoginParam = searchParams?.forceLogin;
|
const forceLoginParam = searchParams?.forceLogin;
|
||||||
@@ -89,47 +85,19 @@ export default async function Page(props: {
|
|||||||
(build === "enterprise" && env.app.identityProviderMode === "org");
|
(build === "enterprise" && env.app.identityProviderMode === "org");
|
||||||
|
|
||||||
let loginIdps: LoginFormIDP[] = [];
|
let loginIdps: LoginFormIDP[] = [];
|
||||||
let lastUsedIdpForSmartLogin: (LoginFormIDP & { orgId?: string }) | null =
|
|
||||||
null;
|
|
||||||
if (!useSmartLogin) {
|
if (!useSmartLogin) {
|
||||||
// Load IdPs for DashboardLoginForm (OSS or org-only IdP mode)
|
// Load IdPs for DashboardLoginForm (OSS or org-only IdP mode)
|
||||||
if (build === "oss" || env.app.identityProviderMode !== "org") {
|
if (build === "oss" || env.app.identityProviderMode !== "org") {
|
||||||
const idpsRes =
|
const idpsRes = await cache(
|
||||||
await priv.get<AxiosResponse<ListIdpsResponse>>("/idp");
|
async () =>
|
||||||
|
await priv.get<AxiosResponse<ListIdpsResponse>>("/idp")
|
||||||
|
)();
|
||||||
loginIdps = idpsRes.data.data.idps.map((idp) => ({
|
loginIdps = idpsRes.data.data.idps.map((idp) => ({
|
||||||
idpId: idp.idpId,
|
idpId: idp.idpId,
|
||||||
name: idp.name,
|
name: idp.name,
|
||||||
variant: idp.type
|
variant: idp.type
|
||||||
})) as LoginFormIDP[];
|
})) as LoginFormIDP[];
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
if (lastUsedIdpCookie) {
|
|
||||||
const lastUsedIdpSchema = z.object({
|
|
||||||
orgId: z.string().optional(),
|
|
||||||
idpId: z.number()
|
|
||||||
});
|
|
||||||
try {
|
|
||||||
const persistedData = lastUsedIdpSchema.parse(
|
|
||||||
JSON.parse(lastUsedIdpCookie.value)
|
|
||||||
);
|
|
||||||
|
|
||||||
const idpRes = await priv.get<AxiosResponse<GetIdpResponse>>(
|
|
||||||
`/idp/${persistedData.idpId}`
|
|
||||||
);
|
|
||||||
|
|
||||||
const idp = idpRes.data.data.idp;
|
|
||||||
|
|
||||||
lastUsedIdpForSmartLogin = {
|
|
||||||
idpId: idp.idpId,
|
|
||||||
name: idp.name,
|
|
||||||
variant: idp.type,
|
|
||||||
orgId: persistedData.orgId,
|
|
||||||
lastUsed: true
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
// the idp might not exist or the data is malformatted, skip this
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const t = await getTranslations();
|
const t = await getTranslations();
|
||||||
@@ -192,7 +160,6 @@ export default async function Page(props: {
|
|||||||
redirect={redirectUrl}
|
redirect={redirectUrl}
|
||||||
forceLogin={forceLogin}
|
forceLogin={forceLogin}
|
||||||
defaultUser={defaultUser}
|
defaultUser={defaultUser}
|
||||||
lastUsedIdp={lastUsedIdpForSmartLogin}
|
|
||||||
orgSignIn={
|
orgSignIn={
|
||||||
!isInvite &&
|
!isInvite &&
|
||||||
(build === "saas" ||
|
(build === "saas" ||
|
||||||
|
|||||||
+4
-1
@@ -5,6 +5,7 @@ import UserProvider from "@app/providers/UserProvider";
|
|||||||
import { ListUserOrgsResponse } from "@server/routers/org";
|
import { ListUserOrgsResponse } from "@server/routers/org";
|
||||||
import { AxiosResponse } from "axios";
|
import { AxiosResponse } from "axios";
|
||||||
import { redirect } from "next/navigation";
|
import { redirect } from "next/navigation";
|
||||||
|
import { cache } from "react";
|
||||||
import OrganizationLanding from "@app/components/OrganizationLanding";
|
import OrganizationLanding from "@app/components/OrganizationLanding";
|
||||||
import { pullEnv } from "@app/lib/pullEnv";
|
import { pullEnv } from "@app/lib/pullEnv";
|
||||||
import { cleanRedirect } from "@app/lib/cleanRedirect";
|
import { cleanRedirect } from "@app/lib/cleanRedirect";
|
||||||
@@ -12,6 +13,7 @@ import { Layout } from "@app/components/Layout";
|
|||||||
import RedirectToOrg from "@app/components/RedirectToOrg";
|
import RedirectToOrg from "@app/components/RedirectToOrg";
|
||||||
import { InitialSetupCompleteResponse } from "@server/routers/auth";
|
import { InitialSetupCompleteResponse } from "@server/routers/auth";
|
||||||
import { cookies } from "next/headers";
|
import { cookies } from "next/headers";
|
||||||
|
import { build } from "@server/build";
|
||||||
|
|
||||||
export const dynamic = "force-dynamic";
|
export const dynamic = "force-dynamic";
|
||||||
|
|
||||||
@@ -25,7 +27,8 @@ export default async function Page(props: {
|
|||||||
|
|
||||||
const env = pullEnv();
|
const env = pullEnv();
|
||||||
|
|
||||||
const user = await verifySession({ skipCheckVerifyEmail: true });
|
const getUser = cache(verifySession);
|
||||||
|
const user = await getUser({ skipCheckVerifyEmail: true });
|
||||||
|
|
||||||
let complete = false;
|
let complete = false;
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -1,25 +1,26 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { generateOidcUrlProxy } from "@app/actions/server";
|
import { useEffect, useState } from "react";
|
||||||
import IdpTypeIcon from "@app/components/IdpTypeIcon";
|
|
||||||
import { Alert, AlertDescription } from "@app/components/ui/alert";
|
|
||||||
import { Button } from "@app/components/ui/button";
|
import { Button } from "@app/components/ui/button";
|
||||||
import { cleanRedirect } from "@app/lib/cleanRedirect";
|
import { Alert, AlertDescription } from "@app/components/ui/alert";
|
||||||
import { LAST_USED_IDP_COOKIE_NAME } from "@app/lib/consts";
|
|
||||||
import { setClientCookie } from "@app/lib/setClientCookie";
|
|
||||||
import { useTranslations } from "next-intl";
|
import { useTranslations } from "next-intl";
|
||||||
|
import IdpTypeIcon from "@app/components/IdpTypeIcon";
|
||||||
|
import {
|
||||||
|
generateOidcUrlProxy,
|
||||||
|
type GenerateOidcUrlResponse
|
||||||
|
} from "@app/actions/server";
|
||||||
import {
|
import {
|
||||||
redirect as redirectTo,
|
redirect as redirectTo,
|
||||||
useRouter,
|
useParams,
|
||||||
useSearchParams
|
useSearchParams
|
||||||
} from "next/navigation";
|
} from "next/navigation";
|
||||||
import { useEffect, useState, useTransition } from "react";
|
import { useRouter } from "next/navigation";
|
||||||
|
import { cleanRedirect } from "@app/lib/cleanRedirect";
|
||||||
|
|
||||||
export type LoginFormIDP = {
|
export type LoginFormIDP = {
|
||||||
idpId: number;
|
idpId: number;
|
||||||
name: string;
|
name: string;
|
||||||
variant?: string;
|
variant?: string;
|
||||||
lastUsed?: boolean;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
type IdpLoginButtonsProps = {
|
type IdpLoginButtonsProps = {
|
||||||
@@ -34,6 +35,7 @@ export default function IdpLoginButtons({
|
|||||||
orgId
|
orgId
|
||||||
}: IdpLoginButtonsProps) {
|
}: IdpLoginButtonsProps) {
|
||||||
const [error, setError] = useState<string | null>(null);
|
const [error, setError] = useState<string | null>(null);
|
||||||
|
const [loading, setLoading] = useState(false);
|
||||||
const t = useTranslations();
|
const t = useTranslations();
|
||||||
|
|
||||||
const params = useSearchParams();
|
const params = useSearchParams();
|
||||||
@@ -50,22 +52,10 @@ export default function IdpLoginButtons({
|
|||||||
}
|
}
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const [loading, startTransition] = useTransition();
|
|
||||||
|
|
||||||
async function loginWithIdp(idpId: number) {
|
async function loginWithIdp(idpId: number) {
|
||||||
|
setLoading(true);
|
||||||
setError(null);
|
setError(null);
|
||||||
|
|
||||||
setClientCookie(
|
|
||||||
LAST_USED_IDP_COOKIE_NAME,
|
|
||||||
JSON.stringify({
|
|
||||||
orgId,
|
|
||||||
idpId
|
|
||||||
}),
|
|
||||||
{
|
|
||||||
sameSite: "Lax"
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
let redirectToUrl: string | undefined;
|
let redirectToUrl: string | undefined;
|
||||||
try {
|
try {
|
||||||
console.log("generating", idpId, redirect || "/", orgId);
|
console.log("generating", idpId, redirect || "/", orgId);
|
||||||
@@ -78,6 +68,7 @@ export default function IdpLoginButtons({
|
|||||||
|
|
||||||
if (response.error) {
|
if (response.error) {
|
||||||
setError(response.message);
|
setError(response.message);
|
||||||
|
setLoading(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,6 +84,7 @@ export default function IdpLoginButtons({
|
|||||||
"An unexpected error occurred. Please try again."
|
"An unexpected error occurred. Please try again."
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
setLoading(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (redirectToUrl) {
|
if (redirectToUrl) {
|
||||||
@@ -132,38 +124,20 @@ export default function IdpLoginButtons({
|
|||||||
idp.variant || idp.name.toLowerCase();
|
idp.variant || idp.name.toLowerCase();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<Button
|
||||||
className="w-full relative"
|
|
||||||
key={idp.idpId}
|
key={idp.idpId}
|
||||||
|
type="button"
|
||||||
|
variant="outline"
|
||||||
|
className="w-full inline-flex items-center space-x-2"
|
||||||
|
onClick={() => {
|
||||||
|
loginWithIdp(idp.idpId);
|
||||||
|
}}
|
||||||
|
disabled={loading}
|
||||||
|
loading={loading}
|
||||||
>
|
>
|
||||||
<Button
|
<IdpTypeIcon type={effectiveType} size={16} />
|
||||||
key={idp.idpId}
|
<span>{idp.name}</span>
|
||||||
type="button"
|
</Button>
|
||||||
variant="outline"
|
|
||||||
className="w-full inline-flex items-center space-x-2 after:absolute after:inset-0 after:z-10"
|
|
||||||
onClick={() => {
|
|
||||||
startTransition(() =>
|
|
||||||
loginWithIdp(idp.idpId)
|
|
||||||
);
|
|
||||||
}}
|
|
||||||
disabled={loading}
|
|
||||||
loading={loading}
|
|
||||||
>
|
|
||||||
<IdpTypeIcon
|
|
||||||
type={effectiveType}
|
|
||||||
size={16}
|
|
||||||
/>
|
|
||||||
<span>{idp.name}</span>
|
|
||||||
</Button>
|
|
||||||
|
|
||||||
{idp.lastUsed && (
|
|
||||||
<div className="absolute inset-0">
|
|
||||||
<span className="absolute top-0 right-0 text-xs bg-primary text-primary-foreground rounded-bl-sm rounded-tr-sm px-2 py-0.5">
|
|
||||||
{t("idpLastUsed")}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -30,7 +30,10 @@ import Link from "next/link";
|
|||||||
import { GenerateOidcUrlResponse } from "@server/routers/idp";
|
import { GenerateOidcUrlResponse } from "@server/routers/idp";
|
||||||
import { Separator } from "./ui/separator";
|
import { Separator } from "./ui/separator";
|
||||||
import { useTranslations } from "next-intl";
|
import { useTranslations } from "next-intl";
|
||||||
import { generateOidcUrlProxy, loginProxy } from "@app/actions/server";
|
import {
|
||||||
|
generateOidcUrlProxy,
|
||||||
|
loginProxy
|
||||||
|
} from "@app/actions/server";
|
||||||
import { redirect as redirectTo } from "next/navigation";
|
import { redirect as redirectTo } from "next/navigation";
|
||||||
import { useEnvContext } from "@app/hooks/useEnvContext";
|
import { useEnvContext } from "@app/hooks/useEnvContext";
|
||||||
import IdpTypeIcon from "@app/components/IdpTypeIcon";
|
import IdpTypeIcon from "@app/components/IdpTypeIcon";
|
||||||
@@ -38,13 +41,11 @@ import IdpTypeIcon from "@app/components/IdpTypeIcon";
|
|||||||
import { loadReoScript } from "reodotdev";
|
import { loadReoScript } from "reodotdev";
|
||||||
import { build } from "@server/build";
|
import { build } from "@server/build";
|
||||||
import MfaInputForm from "@app/components/MfaInputForm";
|
import MfaInputForm from "@app/components/MfaInputForm";
|
||||||
import { useLocalStorage } from "@app/hooks/useLocalStorage";
|
|
||||||
|
|
||||||
export type LoginFormIDP = {
|
export type LoginFormIDP = {
|
||||||
idpId: number;
|
idpId: number;
|
||||||
name: string;
|
name: string;
|
||||||
variant?: string;
|
variant?: string;
|
||||||
lastUsed?: boolean;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
type LoginFormProps = {
|
type LoginFormProps = {
|
||||||
@@ -104,6 +105,7 @@ export default function LoginForm({
|
|||||||
}
|
}
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
|
||||||
const formSchema = z.object({
|
const formSchema = z.object({
|
||||||
email: z.string().email({ message: t("emailInvalid") }),
|
email: z.string().email({ message: t("emailInvalid") }),
|
||||||
password: z.string().min(8, { message: t("passwordRequirementsChars") })
|
password: z.string().min(8, { message: t("passwordRequirementsChars") })
|
||||||
@@ -128,10 +130,6 @@ export default function LoginForm({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const [lastUsedIdpId, setLastUsedIdpId] = useLocalStorage<string | null>(
|
|
||||||
"login:last-used-idp",
|
|
||||||
null
|
|
||||||
);
|
|
||||||
|
|
||||||
async function onSubmit(values: any) {
|
async function onSubmit(values: any) {
|
||||||
const { email, password } = form.getValues();
|
const { email, password } = form.getValues();
|
||||||
@@ -181,7 +179,8 @@ export default function LoginForm({
|
|||||||
if (data.useSecurityKey) {
|
if (data.useSecurityKey) {
|
||||||
setError(
|
setError(
|
||||||
t("securityKeyRequired", {
|
t("securityKeyRequired", {
|
||||||
defaultValue: "Please use your security key to sign in."
|
defaultValue:
|
||||||
|
"Please use your security key to sign in."
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
@@ -243,8 +242,6 @@ export default function LoginForm({
|
|||||||
|
|
||||||
async function loginWithIdp(idpId: number) {
|
async function loginWithIdp(idpId: number) {
|
||||||
let redirectUrl: string | undefined;
|
let redirectUrl: string | undefined;
|
||||||
|
|
||||||
setLastUsedIdpId(idpId.toString());
|
|
||||||
try {
|
try {
|
||||||
const data = await generateOidcUrlProxy(
|
const data = await generateOidcUrlProxy(
|
||||||
idpId,
|
idpId,
|
||||||
@@ -359,6 +356,7 @@ export default function LoginForm({
|
|||||||
)}
|
)}
|
||||||
|
|
||||||
<div className="space-y-4">
|
<div className="space-y-4">
|
||||||
|
|
||||||
{!mfaRequested && (
|
{!mfaRequested && (
|
||||||
<>
|
<>
|
||||||
<SecurityKeyAuthButton
|
<SecurityKeyAuthButton
|
||||||
@@ -387,41 +385,25 @@ export default function LoginForm({
|
|||||||
idp.variant || idp.name.toLowerCase();
|
idp.variant || idp.name.toLowerCase();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<Button
|
||||||
className="w-full relative"
|
|
||||||
key={idp.idpId}
|
key={idp.idpId}
|
||||||
|
type="button"
|
||||||
|
variant="outline"
|
||||||
|
className="w-full inline-flex items-center space-x-2"
|
||||||
|
onClick={() => {
|
||||||
|
loginWithIdp(idp.idpId);
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<Button
|
<IdpTypeIcon type={effectiveType} size={16} />
|
||||||
key={idp.idpId}
|
<span>{idp.name}</span>
|
||||||
type="button"
|
</Button>
|
||||||
variant="outline"
|
|
||||||
className="w-full inline-flex items-center space-x-2 after:absolute after:inset-0 after:z-10"
|
|
||||||
onClick={() => {
|
|
||||||
loginWithIdp(idp.idpId);
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<IdpTypeIcon
|
|
||||||
type={effectiveType}
|
|
||||||
size={16}
|
|
||||||
/>
|
|
||||||
<span>{idp.name}</span>
|
|
||||||
</Button>
|
|
||||||
|
|
||||||
{lastUsedIdpId ===
|
|
||||||
idp.idpId.toString() && (
|
|
||||||
<div className="absolute inset-0">
|
|
||||||
<span className="absolute top-0 right-0 text-xs bg-primary text-primary-foreground rounded-bl-sm rounded-tr-sm px-2 py-0.5">
|
|
||||||
{t("idpLastUsed")}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -27,8 +27,6 @@ import UserProfileCard from "@app/components/UserProfileCard";
|
|||||||
import SecurityKeyAuthButton from "@app/components/SecurityKeyAuthButton";
|
import SecurityKeyAuthButton from "@app/components/SecurityKeyAuthButton";
|
||||||
import { Separator } from "@app/components/ui/separator";
|
import { Separator } from "@app/components/ui/separator";
|
||||||
import OrgSignInLink from "@app/components/OrgSignInLink";
|
import OrgSignInLink from "@app/components/OrgSignInLink";
|
||||||
import type { LoginFormIDP } from "./LoginForm";
|
|
||||||
import IdpLoginButtons from "./IdpLoginButtons";
|
|
||||||
|
|
||||||
const identifierSchema = z.object({
|
const identifierSchema = z.object({
|
||||||
identifier: z.string().min(1, "Username or email is required")
|
identifier: z.string().min(1, "Username or email is required")
|
||||||
@@ -55,7 +53,6 @@ type SmartLoginFormProps = {
|
|||||||
forceLogin?: boolean;
|
forceLogin?: boolean;
|
||||||
defaultUser?: string;
|
defaultUser?: string;
|
||||||
orgSignIn?: OrgSignInConfig;
|
orgSignIn?: OrgSignInConfig;
|
||||||
lastUsedIdp?: (LoginFormIDP & { orgId?: string }) | null;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
type ViewState =
|
type ViewState =
|
||||||
@@ -92,8 +89,7 @@ export default function SmartLoginForm({
|
|||||||
redirect,
|
redirect,
|
||||||
forceLogin,
|
forceLogin,
|
||||||
defaultUser,
|
defaultUser,
|
||||||
orgSignIn,
|
orgSignIn
|
||||||
lastUsedIdp
|
|
||||||
}: SmartLoginFormProps) {
|
}: SmartLoginFormProps) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { env } = useEnvContext();
|
const { env } = useEnvContext();
|
||||||
@@ -298,15 +294,6 @@ export default function SmartLoginForm({
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{lastUsedIdp && (
|
|
||||||
<IdpLoginButtons
|
|
||||||
idps={[lastUsedIdp]}
|
|
||||||
orgId={lastUsedIdp.orgId}
|
|
||||||
redirect={redirect}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
|
|
||||||
<OrgSignInLink
|
<OrgSignInLink
|
||||||
href={orgSignIn.href}
|
href={orgSignIn.href}
|
||||||
linkText={orgSignIn.linkText}
|
linkText={orgSignIn.linkText}
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
export const LAST_USED_IDP_COOKIE_NAME = "p__last_used_idp";
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
/**
|
|
||||||
* Set a cookie on the client side in javascript code, not on the server
|
|
||||||
* @param name
|
|
||||||
* @param value
|
|
||||||
* @param days
|
|
||||||
* @param options
|
|
||||||
*/
|
|
||||||
export function setClientCookie(
|
|
||||||
name: string,
|
|
||||||
value: string,
|
|
||||||
options: {
|
|
||||||
days?: number;
|
|
||||||
path?: string;
|
|
||||||
secure?: boolean;
|
|
||||||
sameSite?: "Strict" | "Lax" | "None";
|
|
||||||
} = {}
|
|
||||||
): void {
|
|
||||||
let cookie = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;
|
|
||||||
|
|
||||||
if (options.days) {
|
|
||||||
const date = new Date();
|
|
||||||
date.setTime(date.getTime() + options.days * 864e5);
|
|
||||||
cookie += `; expires=${date.toUTCString()}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
cookie += `; path=${options.path ?? "/"}`;
|
|
||||||
|
|
||||||
if (options.secure) cookie += "; Secure";
|
|
||||||
if (options.sameSite) cookie += `; SameSite=${options.sameSite}`;
|
|
||||||
|
|
||||||
document.cookie = cookie;
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user