Compare commits

...

847 Commits
1.12.0 ... cicd

Author SHA1 Message Date
miloschwartz
8ed13b41d9 Merge branch 'dev' into cicd 2025-12-20 12:32:15 -05:00
Owen
b80757a129 Add blueprint validation 2025-12-20 12:16:31 -05:00
Owen
13ddf30781 Add hybrid route 2025-12-20 12:16:31 -05:00
Owen
4ecca88856 Add asn option to blueprint type 2025-12-20 12:16:31 -05:00
Thomas Wilde
4f154d212e Add ASN-based resource rule matching
- Add MaxMind ASN database integration
- Implement ASN lookup and matching in resource rule verification
- Add curated list of 100+ major ASNs (cloud, ISP, CDN, mobile carriers)
- Add ASN dropdown selector in resource rules UI with search functionality
- Support custom ASN input for unlisted ASNs
- Add 'ALL ASNs' special case handling (AS0)
- Cache ASN lookups with 5-minute TTL for performance
- Update validation schemas to support ASN match type

This allows administrators to create resource access rules based on
Autonomous System Numbers, similar to existing country-based rules.
Useful for restricting access by ISP, cloud provider, or mobile carrier.
2025-12-20 12:16:31 -05:00
dependabot[bot]
981d777a65 Bump the prod-patch-updates group across 1 directory with 6 updates
Bumps the prod-patch-updates group with 6 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@react-email/components](https://github.com/resend/react-email/tree/HEAD/packages/components) | `1.0.1` | `1.0.2` |
| [@react-email/tailwind](https://github.com/resend/react-email/tree/HEAD/packages/tailwind) | `2.0.1` | `2.0.2` |
| [@tailwindcss/forms](https://github.com/tailwindlabs/tailwindcss-forms) | `0.5.10` | `0.5.11` |
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.45.0` | `0.45.1` |
| [eslint](https://github.com/eslint/eslint) | `9.39.1` | `9.39.2` |
| [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.17.2` | `5.17.4` |



Updates `@react-email/components` from 1.0.1 to 1.0.2
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/components/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/components@1.0.2/packages/components)

Updates `@react-email/tailwind` from 2.0.1 to 2.0.2
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/tailwind/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/tailwind@2.0.2/packages/tailwind)

Updates `@tailwindcss/forms` from 0.5.10 to 0.5.11
- [Release notes](https://github.com/tailwindlabs/tailwindcss-forms/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss-forms/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.10...v0.5.11)

Updates `drizzle-orm` from 0.45.0 to 0.45.1
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.45.0...0.45.1)

Updates `eslint` from 9.39.1 to 9.39.2
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.39.1...v9.39.2)

Updates `posthog-node` from 5.17.2 to 5.17.4
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.17.4/packages/node)

---
updated-dependencies:
- dependency-name: "@react-email/components"
  dependency-version: 1.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@react-email/tailwind"
  dependency-version: 2.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@tailwindcss/forms"
  dependency-version: 0.5.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: drizzle-orm
  dependency-version: 0.45.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: eslint
  dependency-version: 9.39.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: posthog-node
  dependency-version: 5.17.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-20 12:16:31 -05:00
dependabot[bot]
dd13758085 Bump the dev-patch-updates group across 1 directory with 4 updates
Bumps the dev-patch-updates group with 4 updates in the / directory: [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx), [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss), [esbuild](https://github.com/evanw/esbuild) and [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss).


Updates `@dotenvx/dotenvx` from 1.51.1 to 1.51.2
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.51.1...v1.51.2)

Updates `@tailwindcss/postcss` from 4.1.17 to 4.1.18
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.18/packages/@tailwindcss-postcss)

Updates `esbuild` from 0.27.1 to 0.27.2
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.27.1...v0.27.2)

Updates `tailwindcss` from 4.1.17 to 4.1.18
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.18/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.51.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@tailwindcss/postcss"
  dependency-version: 4.1.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: esbuild
  dependency-version: 0.27.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tailwindcss
  dependency-version: 4.1.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-20 12:16:30 -05:00
dependabot[bot]
3d8153aeb1 Bump the prod-minor-updates group across 1 directory with 7 updates
Bumps the prod-minor-updates group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.948.0` | `3.955.0` |
| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `16.0.8` | `16.1.0` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.559.0` | `0.562.0` |
| [next-intl](https://github.com/amannn/next-intl) | `4.5.8` | `4.6.1` |
| [react-day-picker](https://github.com/gpbl/react-day-picker) | `9.12.0` | `9.13.0` |
| [stripe](https://github.com/stripe/stripe-node) | `20.0.0` | `20.1.0` |
| [zod](https://github.com/colinhacks/zod) | `4.1.13` | `4.2.1` |



Updates `@aws-sdk/client-s3` from 3.948.0 to 3.955.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.955.0/clients/client-s3)

Updates `eslint-config-next` from 16.0.8 to 16.1.0
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v16.1.0/packages/eslint-config-next)

Updates `lucide-react` from 0.559.0 to 0.562.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.562.0/packages/lucide-react)

Updates `next-intl` from 4.5.8 to 4.6.1
- [Release notes](https://github.com/amannn/next-intl/releases)
- [Changelog](https://github.com/amannn/next-intl/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amannn/next-intl/compare/v4.5.8...v4.6.1)

Updates `react-day-picker` from 9.12.0 to 9.13.0
- [Release notes](https://github.com/gpbl/react-day-picker/releases)
- [Changelog](https://github.com/gpbl/react-day-picker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gpbl/react-day-picker/compare/v9.12.0...v9.13.0)

Updates `stripe` from 20.0.0 to 20.1.0
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v20.0.0...v20.1.0)

Updates `zod` from 4.1.13 to 4.2.1
- [Release notes](https://github.com/colinhacks/zod/releases)
- [Commits](https://github.com/colinhacks/zod/compare/v4.1.13...v4.2.1)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.955.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: eslint-config-next
  dependency-version: 16.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: lucide-react
  dependency-version: 0.562.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: next-intl
  dependency-version: 4.6.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-day-picker
  dependency-version: 9.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: stripe
  dependency-version: 20.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: zod
  dependency-version: 4.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-20 12:16:30 -05:00
miloschwartz
9ffa391416 improve clean redirects 2025-12-20 12:00:58 -05:00
miloschwartz
afc19f192b visual enhancements to sidebar 2025-12-19 21:57:44 -05:00
miloschwartz
5587bd9d59 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-12-19 17:06:57 -05:00
miloschwartz
b5f8e8feb2 add org auth slug with device auth support 2025-12-19 17:04:37 -05:00
Jacky Fong
9bd66fa306 add back the blueprints api - draft 2025-12-19 15:01:33 -05:00
Owen
fea4d43920 Make utility subnet configurable 2025-12-19 14:45:00 -05:00
miloschwartz
d414617f9d add color to product updates 2025-12-19 10:45:45 -05:00
miloschwartz
1d7e55bf98 add gradient to saas 2025-12-18 18:16:22 -05:00
miloschwartz
bc45e16109 improve local table state 2025-12-18 18:08:07 -05:00
miloschwartz
4f1dc19569 sidebar enhancements 2025-12-18 17:54:29 -05:00
miloschwartz
1af938d7ea Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-12-18 17:47:59 -05:00
miloschwartz
fc924f707c add banners 2025-12-18 17:47:54 -05:00
Owen
6e7ba1dc52 Prevent overlapping resources with org subnets 2025-12-18 17:08:50 -05:00
Owen
3e01bfef7d Move primaryDb into driver 2025-12-18 17:08:50 -05:00
miloschwartz
d8b662496b Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-12-18 16:49:48 -05:00
miloschwartz
e0de003c2c Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-12-18 16:49:44 -05:00
miloschwartz
6e35c182b0 Merge branch 'dev' of https://github.com/fosrl/pangolin into dev 2025-12-18 16:13:59 -05:00
miloschwartz
2479a3c53c improved private resource modal 2025-12-18 16:13:15 -05:00
Owen
6b609bb078 Force big queries onto primary db to prevent 40001 2025-12-18 16:03:15 -05:00
Owen
9c21e3da16 Merge branch 'main' into dev 2025-12-18 15:00:13 -05:00
Owen
7ccde11e3e Fix crowdsec healthcheck
Fixes #2118
2025-12-18 13:49:55 -05:00
miloschwartz
56b0185c8f visual adjustments 2025-12-18 10:58:16 -05:00
Milo Schwartz
8b47b2aabe Merge pull request #1989 from Fredkiss3/refactor/save-button-positions
refactor: save button positionning
2025-12-18 07:28:47 -08:00
miloschwartz
416fd914cb visual enhacements 2025-12-18 10:26:28 -05:00
depado
16653dd524 fix(database): filter dates evaluated at module load time 2025-12-18 10:06:31 -05:00
Fred KISSIE
e2d3d172af Merge branch 'dev' into refactor/save-button-positions 2025-12-18 04:39:17 +01:00
Fred KISSIE
137d6c2523 🏷️ fix typescript error 2025-12-18 04:36:09 +01:00
Fred KISSIE
1a976c78ef ♻️ separate org settings page into multiple forms 2025-12-18 04:27:24 +01:00
miloschwartz
e309a125f5 move blueprints on sidebar 2025-12-17 22:23:35 -05:00
Owen
2bdb1ddb6f Update lock 2025-12-17 22:14:57 -05:00
Owen
8ff588407c Fix various small issues; blueprints working 2025-12-17 22:12:16 -05:00
Owen
c2e06725a8 Keep the same site resource id 2025-12-17 22:12:16 -05:00
Owen
bb43e0c325 Handle changing site by recreating site resource 2025-12-17 22:12:16 -05:00
Owen
35ea01610a Update API routes and ui 2025-12-17 22:12:16 -05:00
miloschwartz
79eefc0ac7 blueprints enhancements 2025-12-17 22:05:36 -05:00
miloschwartz
3a781f9ac4 add contrast to sidebar 2025-12-17 21:28:46 -05:00
Owen
cc1e551f43 Fix deleting site not terminating newt 2025-12-17 21:23:25 -05:00
miloschwartz
68191d5921 fix refresh button doesnt work for users table 2025-12-17 21:19:50 -05:00
Fred KISSIE
2b3d065650 Merge branch 'dev' into refactor/save-button-positions 2025-12-18 01:46:13 +01:00
Fred KISSIE
7ae80d2cad ♻️ apply domain picker from dev 2025-12-18 00:20:19 +01:00
miloschwartz
acf08e3ef6 simplify idp create selector 2025-12-17 16:56:31 -05:00
miloschwartz
6f50fb8a4f remote node changes 2025-12-17 16:50:39 -05:00
miloschwartz
a5b203af27 add rotate server secret command 2025-12-17 16:23:11 -05:00
miloschwartz
443b53ee37 add clear exit nodes pangctl command 2025-12-17 16:01:55 -05:00
miloschwartz
e033c10021 simplify animation 2025-12-17 15:52:12 -05:00
miloschwartz
ad4c44c325 visual adjustments 2025-12-17 15:34:36 -05:00
miloschwartz
4aef7ca8d5 small branding fixes and adjustments 2025-12-17 15:02:39 -05:00
Owen
f892acbc4c Add tcp, udp ports, and icmp to blueprints 2025-12-17 11:58:45 -05:00
Milo Schwartz
9010ed6237 Merge pull request #1846 from Fredkiss3/feat/login-page-customization
feat: login page customization
2025-12-17 08:42:55 -08:00
miloschwartz
9f29657570 Merge branch 'dev' into feat/login-page-customization 2025-12-17 11:41:17 -05:00
Milo Schwartz
1b13132845 Merge pull request #2033 from buggystick/feature/oidc-email-error
Add OIDC authentication error response support
2025-12-17 08:21:06 -08:00
Milo Schwartz
553fda265c Merge branch 'dev' into feature/oidc-email-error 2025-12-17 08:20:40 -08:00
miloschwartz
0f79826535 fix useEffect re-render too many times 2025-12-17 11:18:30 -05:00
miloschwartz
14438bd2b4 remove desc text 2025-12-17 10:47:51 -05:00
Milo Schwartz
c4445c329f Merge pull request #2034 from Fredkiss3/refactor/domain-picker-default-value
refactor:  Update `<DomainPicker />` to accept default values
2025-12-17 07:40:46 -08:00
miloschwartz
5c032ee0c3 add larger header text 2025-12-17 10:34:49 -05:00
Fred KISSIE
d3d5a1c204 🚸 trigger null domain change if the user switches from another domain type to free domain option to prevent the modal from registering it as a valid value 2025-12-17 05:22:04 +01:00
miloschwartz
809bb4a7b4 adjustments to dialog spacing 2025-12-16 23:19:18 -05:00
miloschwartz
e8f763a77f fix broken link 2025-12-16 23:06:12 -05:00
Fred KISSIE
3ad4a76f03 ♻️ pass default subdomain value to org auth page settings 2025-12-17 05:05:30 +01:00
Fred KISSIE
b133593ea2 🚸 now the domain picker is deterministic 2025-12-17 04:57:16 +01:00
Owen
43fb06084f Alias should not get double regex 2025-12-16 21:54:14 -05:00
Owen
9de39dbe42 Support wildcard resources 2025-12-16 21:54:14 -05:00
Fred KISSIE
c98d61a8fb ♻️ pass default value to domain picker 2025-12-17 02:36:29 +01:00
Fred KISSIE
fccff9c23a Merge branch 'dev' into refactor/domain-picker-default-value 2025-12-17 00:52:32 +01:00
Fred KISSIE
e02fa7c148 ♻️ pass the default domainId instead of the base domain 2025-12-17 00:52:12 +01:00
Owen
a21029582e Always send the relay port config 2025-12-16 18:38:20 -05:00
Fred KISSIE
9ef7faace7 🚧 wip 2025-12-16 23:45:53 +01:00
Owen
3d5ae9dd5c Disable icmp packets over private resources 2025-12-16 17:20:18 -05:00
miloschwartz
6072ee93fa add remove invitation to integration api 2025-12-16 17:17:03 -05:00
Owen
7f7f6eeaea Check the postgres string first
Fixes #2092
2025-12-16 10:42:32 -05:00
Owen
1b4884afd8 Make sure to push changes 2025-12-15 22:13:56 -05:00
Owen
0c0ad7029f Batch and delay for large amounts of targets 2025-12-15 22:13:56 -05:00
Owen
10f1437496 Small visual adjustments 2025-12-15 22:13:56 -05:00
Owen
c44c1a5518 Add UI, update API, send to newt 2025-12-15 22:13:56 -05:00
Owen Schwartz
48110ccda3 Merge pull request #2080 from water-sucks/server-setup-token-env-var
feat(setup): allow declaring a server setup token through env variable
2025-12-15 21:04:05 -05:00
Varun Narravula
e94f21bc05 ci: parallelize test workflow 2025-12-15 21:03:47 -05:00
Owen Schwartz
65f8a414be Merge pull request #2084 from water-sucks/parallelize-test-ci-workflow
ci: parallelize test workflow
2025-12-15 20:57:48 -05:00
Fred KISSIE
8dad38775c 🐛 use /resource instead of /site-resource 2025-12-16 01:53:20 +01:00
Fred KISSIE
0d14cb853e ♻️ invalidate everything & fix use effect condition 2025-12-16 01:53:06 +01:00
Fred KISSIE
778e6bf623 💄 lower margin y 2025-12-16 00:27:24 +01:00
miloschwartz
5a960649db fix generate password reset code only shows for non internal users 2025-12-15 18:06:29 -05:00
Fred KISSIE
23a7688789 💄 more margin top 2025-12-15 23:51:06 +01:00
Owen
0e3b6b90b7 Send reply to email in support requests 2025-12-15 17:43:45 -05:00
Fred KISSIE
872bb557c2 💄 put save org settings button into the form 2025-12-15 23:36:13 +01:00
Fred KISSIE
9125a7bccb 🚧 org settings form 2025-12-15 23:18:28 +01:00
Fred KISSIE
5a0a8893e8 Merge branch 'dev' into refactor/save-button-positions 2025-12-15 17:04:58 +01:00
Varun Narravula
abe76e5002 ci: parallelize test workflow 2025-12-15 05:30:43 -08:00
Varun Narravula
474b9a685d feat(setup): allow declaring a server setup token through env variable 2025-12-14 16:24:17 -08:00
Owen
97631c068c Clean key
Ref #1806
2025-12-14 15:58:29 -05:00
Owen Schwartz
98c77ad7e2 Update README.md 2025-12-14 03:09:45 -05:00
Owen Schwartz
3915df3200 Merge pull request #2068 from mgruszkiewicz/fix-missing-gpg-in-installer
Fix: Add missing gnupg utility during Docker installation
2025-12-13 14:28:04 -05:00
Mateusz Gruszkiewicz
9b98acb553 fix missing gpg dependency which is preventing docker from installing correctly 2025-12-13 19:27:15 +01:00
Owen
a767a31c21 Quiet log message 2025-12-13 12:28:44 -05:00
Owen
f2d4c2f83c Remove duplicate target 2025-12-13 12:16:11 -05:00
Owen
25fed23758 Speed up build 2025-12-13 12:13:33 -05:00
Owen Schwartz
5cb3fa1127 Merge pull request #2066 from fosrl/dev
Dev
2025-12-13 12:09:22 -05:00
Owen
deac26bad2 Bump version 2025-12-13 12:07:35 -05:00
miloschwartz
c7747fd4b4 add license watermark 2025-12-13 11:45:15 -05:00
Owen
1aaad43871 Format 2025-12-13 11:36:53 -05:00
Owen
143175bde7 Update react-dom 2025-12-13 11:34:58 -05:00
Owen
9f55d6b20a Try to fix issue not sending newt commands 2025-12-13 11:19:42 -05:00
miloschwartz
4366ca5836 add spacing to delete modal 2025-12-13 10:57:24 -05:00
miloschwartz
9cb95576d0 Merge branch 'dev' into cicd 2025-12-12 23:08:06 -05:00
miloschwartz
d5307adef0 fix bug preventing save resource priority closes #2063 2025-12-12 22:52:00 -05:00
miloschwartz
3d857c3b52 fix client side pagination issue 2025-12-12 22:41:10 -05:00
Owen
a012369f83 Make sure to always check retention first
Fixes #2061
2025-12-12 18:39:13 -05:00
Fred KISSIE
9cee3d9c79 ♻️ refactor 2025-12-12 23:35:24 +01:00
Fred KISSIE
8257dca340 ♻️ refactor 2025-12-12 23:34:35 +01:00
Fred KISSIE
5e0a1cf9c5 💡remove comment 2025-12-12 22:09:37 +01:00
miloschwartz
b3ec9dfda2 split builds based on arch 2025-12-12 15:56:42 -05:00
Fred KISSIE
93d4f60314 ♻️correctly init the form 2025-12-12 21:55:23 +01:00
Fred KISSIE
769d20cea1 Merge branch 'dev' into refactor/save-button-positions 2025-12-12 21:42:06 +01:00
Fred KISSIE
124ba208de ♻️ use react querty 2025-12-12 21:40:49 +01:00
Owen
ba99614d58 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-12-12 14:54:59 -05:00
Owen
27db77bca4 Format 2025-12-12 14:53:26 -05:00
miloschwartz
29b924230f add runner restart action 2025-12-12 14:48:49 -05:00
Owen
8eb3f6aacc Bump next and react again
CVE-2025-55184 and CVE-2025-67779
2025-12-12 09:55:52 -05:00
Fred KISSIE
7f07ccea44 Merge branch 'dev' into refactor/save-button-positions 2025-12-12 00:32:02 +01:00
Fred KISSIE
c13bfc709f Merge branch 'dev' into refactor/save-button-positions 2025-12-11 23:35:00 +01:00
Fred KISSIE
6fc54bcc9e ♻️ set default value on domain picker modal in proxy resource page 2025-12-11 22:51:02 +01:00
Owen
5d6ee45125 Merge branch 'dev' 2025-12-11 16:49:40 -05:00
Owen Schwartz
fceaedfcd8 Merge pull request #2045 from Fredkiss3/fix/update-full-domain-on-resource-page
fix: full domain should be updated when the form is saved on resource proxy page
2025-12-11 16:49:22 -05:00
Fred KISSIE
181612ce25 🐛 full domain should be updated when the form is saved 2025-12-11 22:26:38 +01:00
Owen
224b78fc64 Update consts 2025-12-11 16:13:33 -05:00
Owen
757e540be6 Merge branch 'main' into dev 2025-12-11 16:12:08 -05:00
Milo Schwartz
bf1675686c Update README.md 2025-12-11 15:44:47 -05:00
miloschwartz
f81909489a add client telmetry and fix missing openapi on prefault 2025-12-11 10:38:48 -05:00
miloschwartz
963468d7fa remove top border from dialog 2025-12-11 10:17:17 -05:00
miloschwartz
f67f4f8834 update screenshots and readme 2025-12-10 21:13:09 -05:00
Owen
4c819d264b Only permit ipv4 for now 2025-12-10 20:40:22 -05:00
Owen Schwartz
cbcb23ccea Merge pull request #2036 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-316ddb12fb
Bump @types/pg from 8.15.6 to 8.16.0 in the dev-minor-updates group
2025-12-10 20:35:49 -05:00
Owen Schwartz
d8b27de5ac Merge pull request #2038 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-0a59212de9
Bump the prod-minor-updates group across 1 directory with 4 updates
2025-12-10 20:35:43 -05:00
Owen
01f7842fd5 Fix function rename issue 2025-12-10 20:34:40 -05:00
Owen Schwartz
d409e58186 Merge pull request #2020 from Fredkiss3/fix/log-analytics-adjustments
refactor: adjustments for logs pages
2025-12-10 20:33:12 -05:00
Owen Schwartz
c9e1c4da1c Merge pull request #2026 from fosrl/crowdin_dev
New Crowdin updates
2025-12-10 20:25:31 -05:00
dependabot[bot]
9c38f65ad4 Bump the prod-minor-updates group across 1 directory with 4 updates
Bumps the prod-minor-updates group with 4 updates in the / directory: [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3), [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react), [npm](https://github.com/npm/cli) and [resend](https://github.com/resend/resend-node).


Updates `@aws-sdk/client-s3` from 3.947.0 to 3.948.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.948.0/clients/client-s3)

Updates `lucide-react` from 0.556.0 to 0.559.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.559.0/packages/lucide-react)

Updates `npm` from 11.6.4 to 11.7.0
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v11.6.4...v11.7.0)

Updates `resend` from 6.5.2 to 6.6.0
- [Release notes](https://github.com/resend/resend-node/releases)
- [Commits](https://github.com/resend/resend-node/compare/v6.5.2...v6.6.0)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.948.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: lucide-react
  dependency-version: 0.559.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: npm
  dependency-version: 11.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: resend
  dependency-version: 6.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-11 01:21:19 +00:00
dependabot[bot]
2316462721 Bump @types/pg from 8.15.6 to 8.16.0 in the dev-minor-updates group
Bumps the dev-minor-updates group with 1 update: [@types/pg](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/pg).


Updates `@types/pg` from 8.15.6 to 8.16.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/pg)

---
updated-dependencies:
- dependency-name: "@types/pg"
  dependency-version: 8.16.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-11 01:19:20 +00:00
Owen Schwartz
7cc990107a Merge pull request #2035 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-3ea7ca757b
Bump react-email from 5.0.6 to 5.0.7 in the dev-patch-updates group
2025-12-10 20:19:00 -05:00
dependabot[bot]
9917a569ac Bump react-email from 5.0.6 to 5.0.7 in the dev-patch-updates group
Bumps the dev-patch-updates group with 1 update: [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email).


Updates `react-email` from 5.0.6 to 5.0.7
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/react-email/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/react-email@5.0.7/packages/react-email)

---
updated-dependencies:
- dependency-name: react-email
  dependency-version: 5.0.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-11 01:18:06 +00:00
Fred KISSIE
aab0471b6b 🏷️ fix typescript errors 2025-12-10 21:26:55 +01:00
Fred KISSIE
de684b212f 🔇 remove console.log 2025-12-10 21:26:46 +01:00
Fred KISSIE
fbd3802e46 ♻️ Update domain picker component to accept default values 2025-12-10 21:17:00 +01:00
Fred KISSIE
4e842a660a 🚧 wip: refactor proxy resource page 2025-12-10 21:15:42 +01:00
Fred KISSIE
ce6b609ca2 ♻️ Update domain picker component to accept default values 2025-12-10 21:15:26 +01:00
David Reed
78369b6f6a Add OIDC authentication error response support 2025-12-10 11:13:04 -08:00
Fred KISSIE
ea43bf97c7 Merge branch 'dev' into refactor/save-button-positions 2025-12-10 20:04:59 +01:00
Owen
c56574e431 Send site add in case the client does not have the site 2025-12-10 11:57:45 -05:00
Fred KISSIE
f9c0e0ec3d 💬 updated text 2025-12-10 03:56:08 +01:00
Fred KISSIE
85986dcccb Merge branch 'dev' into fix/log-analytics-adjustments 2025-12-10 03:49:40 +01:00
Fred KISSIE
c9779254c3 💄add time range tooltip to explain it better 2025-12-10 03:44:46 +01:00
Fred KISSIE
5b620469c7 ♻️ set export logs limits to 50 000 everywhere 2025-12-10 03:42:53 +01:00
Fred KISSIE
df4b9de334 🚧 wip: export limits 2025-12-10 03:24:32 +01:00
Fred KISSIE
d490cab48c Merge dev into fix/log-analytics-adjustments 2025-12-10 03:19:14 +01:00
miloschwartz
b68c0962c6 visual enhancements 2025-12-09 20:58:45 -05:00
Owen
ee2a438602 Merge branch 'main' into dev 2025-12-09 16:26:21 -05:00
Owen
74dd3fdc9f Update packages 2025-12-09 16:18:20 -05:00
Owen
314da3ee3e Update formatting to work with ipv6 2025-12-09 16:11:12 -05:00
Owen Schwartz
68cfc84249 New translations en-us.json (German) 2025-12-09 14:09:22 -05:00
Owen
0bcf5c2b42 Update packages 2025-12-09 12:09:23 -05:00
Owen
9210e005e9 Merge branch 'main' into dev 2025-12-09 12:08:32 -05:00
Owen
f245632371 Fix expires at not updating 2025-12-09 11:50:48 -05:00
miloschwartz
6453b070bb add more resiliency to the license check 2025-12-09 11:26:11 -05:00
Owen Schwartz
8c4db93a93 Merge pull request #2024 from fosrl/dependabot/npm_and_yarn/multi-1eaea4558a
Bump next and @react-email/preview-server
2025-12-09 10:57:54 -05:00
Owen
f9b03943c3 Format all files 2025-12-09 10:56:14 -05:00
Owen
fa839a811f Merge branch 'Fredkiss3-chore/some-dx-changes' into dev 2025-12-09 10:54:35 -05:00
Owen
88d2c2eac8 Merge branch 'chore/some-dx-changes' of github.com:Fredkiss3/pangolin into Fredkiss3-chore/some-dx-changes 2025-12-09 10:54:28 -05:00
dependabot[bot]
c84cc1815b Bump next and @react-email/preview-server
Bumps [next](https://github.com/vercel/next.js) to 15.5.7 and updates ancestor dependency [@react-email/preview-server](https://github.com/resend/react-email/tree/HEAD/packages/preview-server). These dependencies need to be updated together.


Updates `next` from 15.5.2 to 15.5.7
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.5.2...v15.5.7)

Updates `@react-email/preview-server` from 4.3.2 to 5.0.6
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/preview-server/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/preview-server@5.0.6/packages/preview-server)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 15.5.7
  dependency-type: indirect
- dependency-name: "@react-email/preview-server"
  dependency-version: 5.0.6
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-09 15:50:48 +00:00
Owen
2c23ffd178 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-12-09 10:50:33 -05:00
Owen Schwartz
da3f7ae404 Merge pull request #2018 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-a5bcaae1b2
Bump the prod-minor-updates group across 1 directory with 4 updates
2025-12-09 10:49:02 -05:00
Owen Schwartz
f460559a4b Merge pull request #2021 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-cd2d8c1767
Bump @types/node from 24.10.1 to 24.10.2 in the dev-patch-updates group
2025-12-09 10:48:10 -05:00
Owen Schwartz
0c9deeb2d7 Merge pull request #2022 from fosrl/dependabot/go_modules/install/prod-minor-updates-f9eb33633d
Bump golang.org/x/term from 0.37.0 to 0.38.0 in /install in the prod-minor-updates group
2025-12-09 10:48:02 -05:00
Owen Schwartz
1289b99f14 Merge pull request #2009 from fosrl/dependabot/npm_and_yarn/stripe-20.0.0
Bump stripe from 18.2.1 to 20.0.0
2025-12-09 10:47:54 -05:00
Owen Schwartz
1a7a6e5b6f Merge pull request #2007 from fosrl/dependabot/npm_and_yarn/react-email/render-2.0.0
Bump @react-email/render from 1.4.0 to 2.0.0
2025-12-09 10:47:00 -05:00
Owen Schwartz
f56135eed3 Merge pull request #2011 from Lokowitz/fix-dev
Update packages
2025-12-09 10:46:32 -05:00
Owen
23e9a61f3e Fixing various bugs 2025-12-09 10:31:43 -05:00
Lokowitz
5428ad1009 merge upstream 2025-12-09 11:40:57 +00:00
Lokowitz
bba28bc5f2 Merge remote-tracking branch 'upstream/dev' into fix-dev 2025-12-09 11:40:04 +00:00
Owen
18498a32ce Quite log messages 2025-12-08 22:07:17 -05:00
Owen
887af85db1 Fix removing remote subnet on remove site resource 2025-12-08 22:06:37 -05:00
Owen
a306aa971b Pick client endpoint as part of the transation 2025-12-08 21:37:17 -05:00
Owen
0a9b19ecfc Try to fix deadlocks again
Fixes FOU-284
2025-12-08 21:26:23 -05:00
Owen
e011580b96 Update and add server version 2025-12-08 21:26:23 -05:00
miloschwartz
048ce850a8 get coutry using maxmind and clear stale device codes 2025-12-08 21:12:19 -05:00
dependabot[bot]
2ca1f15add Bump the prod-minor-updates group across 1 directory with 4 updates
Bumps the prod-minor-updates group with 4 updates in the / directory: [@asteasolutions/zod-to-openapi](https://github.com/asteasolutions/zod-to-openapi), [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3), [react-day-picker](https://github.com/gpbl/react-day-picker) and [winston](https://github.com/winstonjs/winston).


Updates `@asteasolutions/zod-to-openapi` from 8.1.0 to 8.2.0
- [Release notes](https://github.com/asteasolutions/zod-to-openapi/releases)
- [Commits](https://github.com/asteasolutions/zod-to-openapi/compare/v8.1.0...v8.2.0)

Updates `@aws-sdk/client-s3` from 3.943.0 to 3.946.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.946.0/clients/client-s3)

Updates `react-day-picker` from 9.11.3 to 9.12.0
- [Release notes](https://github.com/gpbl/react-day-picker/releases)
- [Changelog](https://github.com/gpbl/react-day-picker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gpbl/react-day-picker/compare/v9.11.3...v9.12.0)

Updates `winston` from 3.18.3 to 3.19.0
- [Release notes](https://github.com/winstonjs/winston/releases)
- [Changelog](https://github.com/winstonjs/winston/blob/master/CHANGELOG.md)
- [Commits](https://github.com/winstonjs/winston/compare/v3.18.3...v3.19.0)

---
updated-dependencies:
- dependency-name: "@asteasolutions/zod-to-openapi"
  dependency-version: 8.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.946.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-day-picker
  dependency-version: 9.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: winston
  dependency-version: 3.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-09 01:23:08 +00:00
dependabot[bot]
05ebd547b5 Bump golang.org/x/term in /install in the prod-minor-updates group
Bumps the prod-minor-updates group in /install with 1 update: [golang.org/x/term](https://github.com/golang/term).


Updates `golang.org/x/term` from 0.37.0 to 0.38.0
- [Commits](https://github.com/golang/term/compare/v0.37.0...v0.38.0)

---
updated-dependencies:
- dependency-name: golang.org/x/term
  dependency-version: 0.38.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-09 01:21:11 +00:00
dependabot[bot]
5a8b1383a4 Bump @types/node from 24.10.1 to 24.10.2 in the dev-patch-updates group
Bumps the dev-patch-updates group with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).


Updates `@types/node` from 24.10.1 to 24.10.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.10.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-09 01:20:03 +00:00
miloschwartz
ede51bebb5 use semver to compare versions in product updates 2025-12-08 19:51:32 -05:00
Owen Schwartz
fd29071d57 Merge pull request #2004 from fosrl/dependabot/github_actions/actions/checkout-6.0.1
Bump actions/checkout from 6.0.0 to 6.0.1
2025-12-08 19:48:01 -05:00
Owen Schwartz
8e1af79dc4 Merge pull request #2003 from fosrl/dependabot/github_actions/actions/setup-node-6.1.0
Bump actions/setup-node from 6.0.0 to 6.1.0
2025-12-08 19:47:48 -05:00
Owen Schwartz
dc8c28626d Merge pull request #2002 from fosrl/dependabot/github_actions/actions/stale-10.1.1
Bump actions/stale from 10.1.0 to 10.1.1
2025-12-08 19:47:40 -05:00
Fred KISSIE
9db2feff77 ♻️ set default time to 7 days ago in API too 2025-12-09 00:17:34 +01:00
Fred KISSIE
adf76bfb53 ♻️ set default start time to 7 days ago 2025-12-08 23:56:28 +01:00
Fred KISSIE
e0a79b7d4d ♻️ set default log analytics time range to. 7days ago 2025-12-08 22:57:05 +01:00
Owen
b63a8fd3ed Merge branch 'dev' 2025-12-08 15:16:12 -05:00
Owen
ada3c6f2ef Update and add server version 2025-12-08 15:16:05 -05:00
Owen
aafca7694d Update and add server version 2025-12-08 15:15:42 -05:00
dependabot[bot]
9ea3914a93 Bump @react-email/render from 1.4.0 to 2.0.0
Bumps [@react-email/render](https://github.com/resend/react-email/tree/HEAD/packages/render) from 1.4.0 to 2.0.0.
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/render/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/render@2.0.0/packages/render)

---
updated-dependencies:
- dependency-name: "@react-email/render"
  dependency-version: 2.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 19:13:04 +00:00
miloschwartz
4345669793 remove file 2025-12-08 14:12:46 -05:00
miloschwartz
1aeb31be04 remove file 2025-12-08 14:12:10 -05:00
Milo Schwartz
66cae9802d Merge pull request #2017 from fosrl/dev
1.13.0-rc.0
2025-12-08 11:10:36 -08:00
Fred KISSIE
64120ea878 🔨Add format script and install prettier 2025-12-08 19:57:08 +01:00
Fred KISSIE
0003ec021b 🔨add default vscode options for new contributors 2025-12-08 19:56:53 +01:00
Owen Schwartz
2325e30f26 Merge pull request #2015 from fosrl/crowdin_dev
New Crowdin updates
2025-12-08 11:57:17 -05:00
Owen Schwartz
d1c98cf650 New translations en-us.json (Norwegian Bokmal) 2025-12-08 11:56:43 -05:00
Owen Schwartz
d06cd9b5be New translations en-us.json (Chinese Simplified) 2025-12-08 11:56:42 -05:00
Owen Schwartz
2eb440d019 New translations en-us.json (Turkish) 2025-12-08 11:56:40 -05:00
Owen Schwartz
4084c85c00 New translations en-us.json (Russian) 2025-12-08 11:56:39 -05:00
Owen Schwartz
4fee65e5a4 New translations en-us.json (Portuguese) 2025-12-08 11:56:37 -05:00
Owen Schwartz
17ee51249c New translations en-us.json (Polish) 2025-12-08 11:56:36 -05:00
Owen Schwartz
f239c4370e New translations en-us.json (Dutch) 2025-12-08 11:56:34 -05:00
Owen Schwartz
c2a32a50cd New translations en-us.json (Korean) 2025-12-08 11:56:32 -05:00
Owen Schwartz
7229bfa51b New translations en-us.json (Italian) 2025-12-08 11:56:31 -05:00
Owen Schwartz
080e2f0a3a New translations en-us.json (German) 2025-12-08 11:56:28 -05:00
Owen Schwartz
64e5cc172d New translations en-us.json (Czech) 2025-12-08 11:56:27 -05:00
Owen Schwartz
c51a1c9c4d New translations en-us.json (Bulgarian) 2025-12-08 11:56:25 -05:00
Owen Schwartz
79958be380 New translations en-us.json (Spanish) 2025-12-08 11:56:22 -05:00
Owen Schwartz
05daedc6ad New translations en-us.json (French) 2025-12-08 11:56:21 -05:00
miloschwartz
0234234108 fix settings footer buttons break point on mobile 2025-12-08 10:38:29 -05:00
miloschwartz
f9b15b9156 add color to health check 2025-12-08 10:31:53 -05:00
miloschwartz
37830d211d use static.pangolin.net 2025-12-08 10:23:11 -05:00
Lokowitz
c9a1da210f revert my fix 2025-12-08 08:27:05 +00:00
Lokowitz
ace402af2d update packages 2025-12-08 08:23:32 +00:00
Lokowitz
e60dce25c9 Merge remote-tracking branch 'upstream/dev' into fix-dev
merge dev
2025-12-08 08:21:19 +00:00
Owen
24cdac95cd Fix not rebuilding site resources from blueprint 2025-12-07 22:13:26 -05:00
Owen
e10f7efcbe Fix blueprints zod update 2025-12-07 22:00:55 -05:00
Owen
1d7f4322e3 Migrations working 2025-12-07 21:14:36 -05:00
dependabot[bot]
ccfff030e5 Bump stripe from 18.2.1 to 20.0.0
Bumps [stripe](https://github.com/stripe/stripe-node) from 18.2.1 to 20.0.0.
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stripe/stripe-node/compare/v18.2.1...v20.0.0)

---
updated-dependencies:
- dependency-name: stripe
  dependency-version: 20.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 01:25:10 +00:00
dependabot[bot]
00765c1faf Bump actions/checkout from 6.0.0 to 6.0.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](1af3b93b68...8e8c483db8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 01:16:59 +00:00
dependabot[bot]
f6bbdeadb9 Bump actions/setup-node from 6.0.0 to 6.1.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](2028fbc5c2...395ad32622)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 01:16:53 +00:00
dependabot[bot]
9cf520574a Bump actions/stale from 10.1.0 to 10.1.1
Bumps [actions/stale](https://github.com/actions/stale) from 10.1.0 to 10.1.1.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](5f858e3efb...997185467f)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: 10.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 01:16:48 +00:00
Owen
e8f10b049e Generate resources for remote subnets 2025-12-07 20:04:30 -05:00
Owen
a3ba4fff54 Bump version to 1.13.0-rc.0 2025-12-07 17:57:22 -05:00
miloschwartz
eecfcd640c add pg and modify sqlite 2025-12-07 15:30:10 -05:00
Owen
40c38fa070 Clear the associations first 2025-12-07 15:19:40 -05:00
Owen
042c88ccb8 Calc session id correctly 2025-12-07 15:01:18 -05:00
Owen
5a60f66ae0 Update sqlite migration to update caches 2025-12-07 14:47:20 -05:00
Owen
4d665e8596 Try to fix the expires at problem 2025-12-07 14:30:06 -05:00
miloschwartz
9221bcf889 add disconnect button to clients 2025-12-07 13:50:05 -05:00
miloschwartz
2418813902 add sqlite migration 2025-12-07 12:58:01 -05:00
miloschwartz
f66a9bdd33 only show updates number if more than one 2025-12-07 11:47:19 -05:00
miloschwartz
bc7a1f4673 change translation 2025-12-07 11:45:58 -05:00
miloschwartz
9010803046 fix verifySiteAccess middleware 2025-12-07 11:40:06 -05:00
miloschwartz
311233b9f7 update remote node version col 2025-12-07 11:13:43 -05:00
miloschwartz
38203a0e7c adjustments to update notification 2025-12-07 11:10:44 -05:00
Owen
5e9d660e26 We need to generate a niceId every time we make a client 2025-12-07 11:07:08 -05:00
Owen
110e950476 Send site name 2025-12-07 10:51:38 -05:00
Lokowitz
f8ab5b7af7 update packages 2025-12-07 14:03:34 +00:00
Owen
4e7843c1f3 Fix null subdomain causing overwriting
Fixes #1645
2025-12-06 21:59:03 -05:00
miloschwartz
502d15b9dc fix newt version styling 2025-12-06 21:39:58 -05:00
Owen
71db29c09c Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-12-06 21:37:24 -05:00
Owen
8cced5011b Fix empty strip preventing create 2025-12-06 21:37:10 -05:00
Owen
a812dde026 Update lock 2025-12-06 21:37:05 -05:00
Owen Schwartz
58374f77c9 Merge pull request #1996 from fosrl/crowdin_dev
New Crowdin updates
2025-12-06 21:35:43 -05:00
miloschwartz
8df3fa0ac0 make product update text a more readable 2025-12-06 21:31:12 -05:00
Owen Schwartz
840e9914cb New translations en-us.json (Norwegian Bokmal) 2025-12-06 21:30:08 -05:00
Owen Schwartz
f30a4f3cfd New translations en-us.json (Chinese Simplified) 2025-12-06 21:30:07 -05:00
Owen Schwartz
27004f9d0c New translations en-us.json (Turkish) 2025-12-06 21:30:05 -05:00
Owen Schwartz
427638ed3d New translations en-us.json (Russian) 2025-12-06 21:30:04 -05:00
Owen Schwartz
350379b0c7 New translations en-us.json (Portuguese) 2025-12-06 21:30:03 -05:00
Owen Schwartz
cf80c9d45c New translations en-us.json (Polish) 2025-12-06 21:30:02 -05:00
Owen Schwartz
2d801b8ea5 New translations en-us.json (Dutch) 2025-12-06 21:30:00 -05:00
Owen Schwartz
f82d01d39b New translations en-us.json (Korean) 2025-12-06 21:29:59 -05:00
Owen Schwartz
e959ce1698 New translations en-us.json (Italian) 2025-12-06 21:29:58 -05:00
Owen Schwartz
25e176e8d5 New translations en-us.json (German) 2025-12-06 21:29:57 -05:00
Owen Schwartz
8df01eb13a New translations en-us.json (Czech) 2025-12-06 21:29:55 -05:00
Owen Schwartz
8d87f31bec New translations en-us.json (Bulgarian) 2025-12-06 21:29:54 -05:00
Owen Schwartz
2b3594a5ea New translations en-us.json (Spanish) 2025-12-06 21:29:52 -05:00
Owen Schwartz
72b7c8de0c New translations en-us.json (French) 2025-12-06 21:29:51 -05:00
miloschwartz
b329dbb585 add agent to table 2025-12-06 21:21:39 -05:00
miloschwartz
56d30ad6bd clean up targets input a little 2025-12-06 21:00:57 -05:00
Owen
e24a13fb11 Implement previous year delete 2025-12-06 20:49:53 -05:00
miloschwartz
d7e06161a8 use niceId for client routes 2025-12-06 20:31:20 -05:00
Owen
8a8c0edad3 Speed up writing to not block io operations 2025-12-06 17:54:39 -05:00
Owen
66fc8529c2 Update blueprints to support new clients 2025-12-06 17:32:49 -05:00
Owen
0beaadf512 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-12-06 17:24:16 -05:00
Owen
58177f4a02 Add niceid 2025-12-06 17:24:00 -05:00
miloschwartz
28725dd164 update logging 2025-12-06 16:18:44 -05:00
miloschwartz
1714140ee7 fix branding favicon and subtitle texts 2025-12-06 16:16:42 -05:00
Owen
6329c3d140 Merge branch 'main' into dev 2025-12-06 16:11:28 -05:00
Owen Schwartz
44113ad93a Merge pull request #1995 from fosrl/copilot/fix-crowdsec-setup-token
Fix: Display setup token after CrowdSec installation
2025-12-06 16:10:20 -05:00
Owen
ee1af459cc Add default to path for hc
Fixes #1905
2025-12-06 16:07:47 -05:00
copilot-swe-agent[bot]
69561caa74 Fix setup token display condition to include CrowdSec installation
Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-12-06 20:57:57 +00:00
Owen Schwartz
6f03d099b8 New translations en-us.json (Norwegian Bokmal) 2025-12-06 15:43:29 -05:00
Owen Schwartz
1581b5cb74 New translations en-us.json (Chinese Simplified) 2025-12-06 15:43:28 -05:00
Owen Schwartz
e09ec56fad New translations en-us.json (Turkish) 2025-12-06 15:43:26 -05:00
Owen Schwartz
8bcad76eb5 New translations en-us.json (Russian) 2025-12-06 15:43:25 -05:00
Owen Schwartz
ff4a6b1d3f New translations en-us.json (Portuguese) 2025-12-06 15:43:24 -05:00
Owen Schwartz
07b04b2603 New translations en-us.json (Polish) 2025-12-06 15:43:23 -05:00
Owen Schwartz
54471c703c New translations en-us.json (Dutch) 2025-12-06 15:43:21 -05:00
Owen Schwartz
8a160ec0fe New translations en-us.json (Korean) 2025-12-06 15:43:20 -05:00
Owen Schwartz
15da2f130b New translations en-us.json (Italian) 2025-12-06 15:43:19 -05:00
Owen Schwartz
d64d2d6916 New translations en-us.json (German) 2025-12-06 15:43:18 -05:00
Owen Schwartz
68928843a5 New translations en-us.json (Czech) 2025-12-06 15:43:16 -05:00
Owen Schwartz
1228fddb01 New translations en-us.json (Bulgarian) 2025-12-06 15:43:15 -05:00
Owen Schwartz
3fa0b01c41 New translations en-us.json (Spanish) 2025-12-06 15:43:14 -05:00
Owen Schwartz
a4884f90a9 New translations en-us.json (French) 2025-12-06 15:43:12 -05:00
copilot-swe-agent[bot]
d7311ad947 Add setup token printing after CrowdSec installation
Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-12-06 20:38:40 +00:00
copilot-swe-agent[bot]
1aa155a0af Initial plan 2025-12-06 20:35:40 +00:00
Owen Schwartz
4f1c207083 Merge pull request #1993 from fosrl/copilot/fix-install-script-no-reply-email
Make no-reply email address required in install script
2025-12-06 15:21:18 -05:00
Owen
dc6ee70eba Update lock, downgrade to node 24 2025-12-06 15:12:58 -05:00
miloschwartz
0f9f4dfaeb fix orgs query 2025-12-06 13:21:58 -05:00
miloschwartz
22941c0653 show credentials tab in oss 2025-12-06 13:11:53 -05:00
miloschwartz
d714f7d52c remove old component 2025-12-06 12:51:57 -05:00
Milo Schwartz
4f2dd92e81 Merge pull request #1988 from Fredkiss3/refactor/show-product-updates-conditionnally
refactor: Only show the product updates to an org admin or owner
2025-12-06 09:39:48 -08:00
Milo Schwartz
090706c816 Merge branch 'dev' into refactor/show-product-updates-conditionnally 2025-12-06 09:38:39 -08:00
miloschwartz
f449fdc7ec add optial disconnect on regenerate credentials 2025-12-06 12:36:31 -05:00
copilot-swe-agent[bot]
394d1503dd Make no-reply email address required when email is enabled
- Added helpful hint in prompt suggesting to use SMTP username
- Added validation to ensure no-reply email is not empty when email is enabled
- Applied gofmt formatting improvements

Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-12-06 17:35:11 +00:00
copilot-swe-agent[bot]
60380b70ed Initial plan 2025-12-06 17:27:20 +00:00
Owen Schwartz
cece7a59bf Merge pull request #1992 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-affb329a3f
Bump the prod-patch-updates group across 1 directory with 5 updates
2025-12-06 12:17:04 -05:00
miloschwartz
00174be8c0 show id in credential regen 2025-12-06 12:07:43 -05:00
miloschwartz
1d303feca2 restyle client regen credentials 2025-12-06 11:47:58 -05:00
Owen
3f4fae8f09 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-12-06 11:46:18 -05:00
Owen
dab795e94a Merge branch 'main' into dev 2025-12-06 11:45:46 -05:00
miloschwartz
bd2165c553 prevent modal flash 2025-12-06 11:44:47 -05:00
miloschwartz
646497cda0 improve site regenerate cred ui 2025-12-06 11:40:28 -05:00
Owen Schwartz
dbc046397b Merge pull request #1949 from marcschaeferger-org/fix-security/other
Fix multiple reported Security Issues
2025-12-06 11:24:01 -05:00
dependabot[bot]
fbafb48562 Bump the prod-patch-updates group across 1 directory with 5 updates
Bumps the prod-patch-updates group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `16.0.3` | `16.0.7` |
| [http-errors](https://github.com/jshttp/http-errors) | `2.0.0` | `2.0.1` |
| [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.0` | `19.2.1` |
| [react-day-picker](https://github.com/gpbl/react-day-picker) | `9.11.1` | `9.11.3` |
| [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.0` | `19.2.1` |



Updates `eslint-config-next` from 16.0.3 to 16.0.7
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v16.0.7/packages/eslint-config-next)

Updates `http-errors` from 2.0.0 to 2.0.1
- [Release notes](https://github.com/jshttp/http-errors/releases)
- [Changelog](https://github.com/jshttp/http-errors/blob/master/HISTORY.md)
- [Commits](https://github.com/jshttp/http-errors/compare/v2.0.0...v2.0.1)

Updates `react` from 19.2.0 to 19.2.1
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.1/packages/react)

Updates `react-day-picker` from 9.11.1 to 9.11.3
- [Release notes](https://github.com/gpbl/react-day-picker/releases)
- [Changelog](https://github.com/gpbl/react-day-picker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gpbl/react-day-picker/compare/v9.11.1...v9.11.3)

Updates `react-dom` from 19.2.0 to 19.2.1
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.1/packages/react-dom)

---
updated-dependencies:
- dependency-name: eslint-config-next
  dependency-version: 16.0.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: http-errors
  dependency-version: 2.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: react
  dependency-version: 19.2.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: react-day-picker
  dependency-version: 9.11.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: react-dom
  dependency-version: 19.2.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-06 16:21:43 +00:00
Owen Schwartz
ccb17cdbbf Merge pull request #1991 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-0afe584c4c
Bump the dev-patch-updates group across 1 directory with 4 updates
2025-12-06 11:21:33 -05:00
Owen Schwartz
c56512dc7d Merge pull request #1881 from fosrl/dependabot/npm_and_yarn/react-email/tailwind-2.0.1
Bump @react-email/tailwind from 1.2.2 to 2.0.1
2025-12-06 11:20:50 -05:00
Owen Schwartz
a92edf519e Merge pull request #1900 from fosrl/copilot/fix-hc-health-status-unknown
Reset hcHealth to "unknown" when health check is disabled
2025-12-06 11:20:38 -05:00
dependabot[bot]
6cd3f2df1b Bump the dev-patch-updates group across 1 directory with 4 updates
Bumps the dev-patch-updates group with 4 updates in the / directory: [@types/nodemailer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/nodemailer), [@types/yargs](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/yargs), [drizzle-kit](https://github.com/drizzle-team/drizzle-orm) and [esbuild](https://github.com/evanw/esbuild).


Updates `@types/nodemailer` from 7.0.3 to 7.0.4
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/nodemailer)

Updates `@types/yargs` from 17.0.34 to 17.0.35
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/yargs)

Updates `drizzle-kit` from 0.31.6 to 0.31.8
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/drizzle-kit@0.31.6...drizzle-kit@0.31.8)

Updates `esbuild` from 0.27.0 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.27.0...v0.27.1)

---
updated-dependencies:
- dependency-name: "@types/nodemailer"
  dependency-version: 7.0.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@types/yargs"
  dependency-version: 17.0.35
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: drizzle-kit
  dependency-version: 0.31.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-06 16:19:59 +00:00
Owen Schwartz
b9c0089fac Merge pull request #1913 from fosrl/dependabot/github_actions/actions/setup-go-6.1.0
Bump actions/setup-go from 6.0.0 to 6.1.0
2025-12-06 11:17:30 -05:00
Owen Schwartz
b2f78c9149 Merge pull request #1914 from fosrl/dependabot/github_actions/actions/checkout-6.0.0
Bump actions/checkout from 5.0.0 to 6.0.0
2025-12-06 11:17:23 -05:00
Owen Schwartz
2a361b010f Merge pull request #1962 from fosrl/dependabot/npm_and_yarn/nodemailer-7.0.11
Bump nodemailer from 7.0.10 to 7.0.11
2025-12-06 11:17:11 -05:00
Owen Schwartz
7bfa732a90 Merge pull request #1983 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-42b6b37ac0
Bump the dev-minor-updates group across 1 directory with 2 updates
2025-12-06 11:16:53 -05:00
Owen Schwartz
c554364001 Merge pull request #1985 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-35f2f5c31e
Bump the prod-minor-updates group across 1 directory with 6 updates
2025-12-06 11:16:33 -05:00
Owen
5e52c48e77 Fix import 2025-12-05 21:48:45 -05:00
Owen
c233fc564e Fix credentials 2025-12-05 21:28:41 -05:00
Fred KISSIE
72bc26f0f8 💬 update texts to be more specific 2025-12-06 01:14:15 +01:00
Fred KISSIE
151cd3e6de Trigger Build 2025-12-06 01:01:48 +01:00
Fred KISSIE
97489b9564 ♻️ check by current Org 2025-12-06 00:58:11 +01:00
Fred KISSIE
d263d282ee Merge branch 'dev' into refactor/show-product-updates-conditionnally 2025-12-06 00:55:18 +01:00
Fred KISSIE
2ec2295cd6 ♻️ separate proxy page into multiple forms 2025-12-06 00:51:36 +01:00
Owen
d1c7832e40 Update rekey endpoints and pages 2025-12-05 18:30:43 -05:00
Owen
313d3c72da Fix query logging 2025-12-05 18:30:43 -05:00
Owen
c8ec94c307 Fix session test for olm and show proper alert for ee 2025-12-05 18:30:43 -05:00
Owen
4809b64f7d Reset package lock 2025-12-05 18:30:43 -05:00
miloschwartz
26e49ca39d simplify sidebar titles 2025-12-05 17:33:30 -05:00
miloschwartz
bb1472d25c prefill alias if enter hostname in destination 2025-12-05 17:14:39 -05:00
Fred KISSIE
a0a369dc43 ♻️ refactor reverse proxy targets page 2025-12-05 23:10:10 +01:00
Owen
8ea7b2ce02 Merge branch 'clients-user' into dev 2025-12-05 16:40:56 -05:00
Owen
1ee70e04ed Fix a couple things wiht destinations 2025-12-05 16:40:43 -05:00
Fred KISSIE
d0157ea7a5 Merge branch 'dev' into feat/login-page-customization 2025-12-05 22:38:07 +01:00
miloschwartz
d90f3bb6be remember sidebar expand 2025-12-05 16:34:44 -05:00
miloschwartz
149f4c1332 remove org id from olm command 2025-12-05 16:28:34 -05:00
miloschwartz
8e3b5688d5 allow server admins to generate password reset code 2025-12-05 16:27:08 -05:00
Fred KISSIE
bfd1293847 🚨 fix lint errors 2025-12-05 22:16:55 +01:00
Fred KISSIE
f4701f3da5 🐛 fix lockfile bugs with node version 2025-12-05 22:12:44 +01:00
Fred KISSIE
93af09ee97 📦 update lockfile 2025-12-05 21:56:01 +01:00
Fred KISSIE
897ddbec01 📦 fix lockfile 2025-12-05 21:41:52 +01:00
Fred KISSIE
889b381e96 ♻️ only show product updates if the user is an admin or the owner 2025-12-05 21:33:35 +01:00
miloschwartz
54c05c8345 show contact admin on forgot password if no smtp server 2025-12-05 15:23:26 -05:00
miloschwartz
a3b852ef45 Merge branch 'dev' into clients-user 2025-12-05 15:17:32 -05:00
miloschwartz
53bb4efbb2 change tunnel to site 2025-12-05 14:58:09 -05:00
miloschwartz
96dbec9352 small fixes from testing 2025-12-05 14:48:33 -05:00
miloschwartz
2d3fbb9704 translate setup page 2025-12-05 12:19:40 -05:00
miloschwartz
d3be1fbf4c update descriptions and add adress back 2025-12-05 12:09:13 -05:00
Owen
89ee57cdf9 Enforce fqdn 2025-12-05 12:03:00 -05:00
miloschwartz
bdfc7fbcdb change phrase 2025-12-05 11:53:13 -05:00
miloschwartz
8726a7f931 remove device code ip check and fix edit resource dialog state issue 2025-12-05 11:47:59 -05:00
miloschwartz
1cae815be5 split install and run commands 2025-12-05 10:51:38 -05:00
Owen Schwartz
8d62fb3865 Merge pull request #1986 from marcschaeferger/fix-ci
Fix Github CI Action
2025-12-05 10:25:09 -05:00
miloschwartz
c5befee134 fix close button spacing on mobile 2025-12-05 10:08:35 -05:00
miloschwartz
9cf2dbc2cc fix login page spacing on mobile 2025-12-05 10:04:12 -05:00
Marc Schäfer
6217086cd5 Add login step for GitHub Container Registry
Added GitHub Container Registry login step for cosign.
2025-12-05 15:54:59 +01:00
dependabot[bot]
6fbe25e91f Bump the prod-minor-updates group across 1 directory with 6 updates
Bumps the prod-minor-updates group with 6 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.922.0` | `3.943.0` |
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.44.7` | `0.45.0` |
| [express](https://github.com/expressjs/express) | `5.1.0` | `5.2.1` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.552.0` | `0.556.0` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.66.0` | `7.68.0` |
| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `3.3.1` | `3.4.0` |



Updates `@aws-sdk/client-s3` from 3.922.0 to 3.943.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.943.0/clients/client-s3)

Updates `drizzle-orm` from 0.44.7 to 0.45.0
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.44.7...0.45.0)

Updates `express` from 5.1.0 to 5.2.1
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/v5.1.0...v5.2.1)

Updates `lucide-react` from 0.552.0 to 0.556.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.556.0/packages/lucide-react)

Updates `react-hook-form` from 7.66.0 to 7.68.0
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.66.0...v7.68.0)

Updates `tailwind-merge` from 3.3.1 to 3.4.0
- [Release notes](https://github.com/dcastil/tailwind-merge/releases)
- [Commits](https://github.com/dcastil/tailwind-merge/compare/v3.3.1...v3.4.0)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.943.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: drizzle-orm
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: express
  dependency-version: 5.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: lucide-react
  dependency-version: 0.556.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-hook-form
  dependency-version: 7.68.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: tailwind-merge
  dependency-version: 3.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-05 14:49:26 +00:00
dependabot[bot]
57b3f49819 Bump the dev-minor-updates group across 1 directory with 2 updates
Bumps the dev-minor-updates group with 2 updates in the / directory: [esbuild-node-externals](https://github.com/pradel/esbuild-node-externals) and [tsx](https://github.com/privatenumber/tsx).


Updates `esbuild-node-externals` from 1.19.1 to 1.20.1
- [Release notes](https://github.com/pradel/esbuild-node-externals/releases)
- [Commits](https://github.com/pradel/esbuild-node-externals/compare/esbuild-node-externals-v1.19.1...esbuild-node-externals-v1.20.1)

Updates `tsx` from 4.20.6 to 4.21.0
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](https://github.com/privatenumber/tsx/compare/v4.20.6...v4.21.0)

---
updated-dependencies:
- dependency-name: esbuild-node-externals
  dependency-version: 1.20.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: tsx
  dependency-version: 4.21.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-05 14:45:55 +00:00
Owen
35f9c67cfe Merge branch 'main' into dev 2025-12-05 09:45:17 -05:00
Owen
6707b3c7fe Merge branch 'main' of github.com:fosrl/pangolin 2025-12-05 09:42:58 -05:00
Owen Schwartz
dfb85f2c89 Merge pull request #1980 from bjoernch/patch-1
Update de-DE.json
2025-12-05 09:42:30 -05:00
Björn Felgner
17dec6cf0b Update de-DE.json
I noticed an odd translation in the Pangolin dashboard for the Client feature. It is currently translated into German as “Kunden”, which actually means customers. In German, there is no 1:1 translation for the IT term client, so this wording is misleading. I would suggest removing the translation entirely and leaving it as "Client" which correctly conveys the meaning of client devices.
2025-12-05 10:41:54 +01:00
miloschwartz
8ee4ee7baf remove bg-muted on target sep 2025-12-04 22:11:27 -05:00
Owen
b1b0702886 Make query optional 2025-12-04 22:07:48 -05:00
Owen
92aed108cd Update package 2025-12-04 22:07:48 -05:00
miloschwartz
2dcc94cd14 fix hc port NaN issue 2025-12-04 22:03:37 -05:00
miloschwartz
a7185ff913 add auth info tip 2025-12-04 21:28:42 -05:00
miloschwartz
04e73515b8 add alias to client resources table 2025-12-04 21:21:48 -05:00
miloschwartz
2bad9daaea move edit resource to proxy subpath 2025-12-04 21:18:17 -05:00
miloschwartz
54670e150d simplify create site wizard 2025-12-04 21:12:14 -05:00
miloschwartz
761ed1de9a ensure unique niceId for site resources and normal resources 2025-12-04 21:07:14 -05:00
Fred KISSIE
d89f5279bf ♻️address PR feedback 2025-12-05 01:08:02 +01:00
Fred KISSIE
744305ab39 ♻️ refactor 2025-12-05 00:02:13 +01:00
Fred KISSIE
ba9048a377 Merge branch 'dev' into feat/login-page-customization 2025-12-04 23:56:16 +01:00
miloschwartz
078692c818 invalidate queries on save 2025-12-04 17:56:11 -05:00
Owen
53ab51691a update packages 2025-12-04 17:26:24 -05:00
Milo Schwartz
54e2d95b55 Merge pull request #1977 from Fredkiss3/fix/some-fixes
fix: bugs introduced in `separate-tables`
2025-12-04 14:25:30 -08:00
miloschwartz
6e6fa77625 bump version 2025-12-04 17:10:59 -05:00
Owen
5c0c12cabe Update lock 2025-12-04 17:02:45 -05:00
Owen
b3ed7c0129 Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-12-04 17:00:54 -05:00
miloschwartz
10a00ff225 update next version 2025-12-04 16:56:39 -05:00
Fred KISSIE
ba09479827 ♻️ organize imports 2025-12-04 22:50:17 +01:00
Fred KISSIE
1c5c36fc12 ♻️ set the staleTime to Zero for queries so that they are refetched everytime 2025-12-04 22:50:04 +01:00
Fred KISSIE
d37ff6e15b 🐛 resource rols & resource clients shouldn't have the same query key 2025-12-04 22:49:40 +01:00
Owen Schwartz
9288575341 Merge pull request #1971 from water-sucks/add-tls-server-name-to-health-check-fields
feat(healthcheck): add SNI support for target healthchecks
2025-12-04 14:42:25 -05:00
Fred KISSIE
0ceed4c812 📦 update lockfile 2025-12-04 20:30:41 +01:00
Owen
4b61a38501 Merge branch 'add-tls-server-name-to-health-check-fields' of github.com:water-sucks/pangolin into dev 2025-12-04 12:11:41 -05:00
Varun Narravula
ca9273c9ea feat(healthcheck): add SNI input field to target healthcheck config 2025-12-04 12:11:25 -05:00
Owen
810704e190 Merge branch 'add-tls-server-name-to-health-check-fields' of github.com:water-sucks/pangolin into dev 2025-12-04 12:00:51 -05:00
Varun Narravula
f33be1434b feat(schema): add TLS server name column to target healthcheck tables 2025-12-04 12:00:40 -05:00
Varun Narravula
82a9f2b24f feat(healthcheck): add SNI input field to target healthcheck config 2025-12-04 12:00:40 -05:00
Owen
7204b5f0de Merge branch 'add-tls-server-name-to-health-check-fields' of github.com:water-sucks/pangolin into dev 2025-12-04 12:00:04 -05:00
Owen
9b372780bd Merge branch 'dev' of github.com:fosrl/pangolin into dev 2025-12-04 11:59:53 -05:00
Varun Narravula
9065385b87 feat(healthcheck): add SNI input field to target healthcheck config 2025-12-04 11:59:18 -05:00
miloschwartz
77306e8c97 add integration routes 2025-12-04 11:48:01 -05:00
miloschwartz
a746ef36a8 Merge branch 'dev' into clients-user 2025-12-04 11:38:05 -05:00
Owen
6e565f1331 Merge branch 'add-tls-server-name-to-health-check-fields' of github.com:water-sucks/pangolin into dev 2025-12-04 11:28:47 -05:00
Varun Narravula
84c608c2cf feat(healthcheck): add SNI input field to target healthcheck config 2025-12-04 11:27:18 -05:00
Milo Schwartz
6da7f58ced Merge pull request #1897 from Fredkiss3/feat/log-analytics
feat: request log analytics
2025-12-04 07:38:54 -08:00
Varun Narravula
351097b04d feat(healthcheck): add SNI input field to target healthcheck config 2025-12-04 10:33:01 -05:00
Varun Narravula
bd3d339905 feat(schema): add TLS server name column to target healthcheck tables 2025-12-04 10:18:20 -05:00
miloschwartz
c6ad36d78e update to next 15.5.7 2025-12-04 09:58:21 -05:00
miloschwartz
eaeb65e9b4 update wording 2025-12-03 22:26:22 -05:00
miloschwartz
4176bdbc81 clarify rules action types closes #1679 2025-12-03 21:30:44 -05:00
miloschwartz
a2cdd8484c changes to wording 2025-12-03 21:17:10 -05:00
Milo Schwartz
23ab76ae08 Merge pull request #1967 from Fredkiss3/refactor/separate-tables-2
Refactor: separate tables (2)
2025-12-03 17:31:46 -08:00
Owen
8eec122114 Fixing holepunching and other bugs 2025-12-03 20:31:37 -05:00
Fred KISSIE
79ccbc8e92 ♻️ compute everything in useQueries 2025-12-04 00:51:56 +01:00
Fred KISSIE
d70da2aa70 🐛 fix paths 2025-12-04 00:51:40 +01:00
Fred KISSIE
c695f50122 ♻️ use Queries 2025-12-04 00:42:59 +01:00
Fred KISSIE
1b09e5b9f9 🚚 move subpages to correct paths 2025-12-04 00:42:50 +01:00
miloschwartz
7efc947e26 auto collapse sidebar on small screens 2025-12-03 18:33:46 -05:00
miloschwartz
4b580105cd change default sort on logs tables closes #1907 2025-12-03 18:20:28 -05:00
miloschwartz
a61c82570a add logs routes to integration api routes closes #1963 2025-12-03 17:45:19 -05:00
Fred KISSIE
6734003d85 ⬆️ upgrade react & next to fix **CVE-2025-55182** 2025-12-03 22:58:02 +01:00
miloschwartz
e49d796b06 fix headers getting cleared on resource save and hide domain type without pangolin dns 2025-12-03 16:04:44 -05:00
miloschwartz
4ab4029625 ease expand animation a little 2025-12-03 15:53:41 -05:00
miloschwartz
5afff3c662 add extra org policy checks to middlewares 2025-12-03 15:50:24 -05:00
miloschwartz
9be5a01173 add niceId col back to table but hide by default 2025-12-03 15:27:58 -05:00
miloschwartz
357f297a3e remove enable_clients flag from config 2025-12-03 15:02:39 -05:00
miloschwartz
e1edbe6067 remove double clients permissions check boxes 2025-12-03 14:56:10 -05:00
miloschwartz
5a859aad29 update create client description 2025-12-03 14:52:57 -05:00
miloschwartz
a28b15a81d update descriptions 2025-12-03 14:47:59 -05:00
miloschwartz
e62186f395 change olm creds text 2025-12-03 14:46:57 -05:00
miloschwartz
11c1efc19c refactor to use DataTable component 2025-12-03 14:45:21 -05:00
Milo Schwartz
8b0491eb52 Merge pull request #1960 from Fredkiss3/refactor/separate-tables
refactor: separate tables
2025-12-03 11:28:21 -08:00
miloschwartz
0032634004 add owner devices to org on create org 2025-12-03 14:19:18 -05:00
miloschwartz
4af10c8108 change to --disable-clients flag 2025-12-03 14:12:53 -05:00
miloschwartz
56cb685813 fix spinner 2025-12-03 14:05:02 -05:00
miloschwartz
ccfe1f7d0a update description text for subnets 2025-12-03 14:01:13 -05:00
Fred KISSIE
bf987d867c 🚧 WIP 2025-12-03 19:28:07 +01:00
Fred KISSIE
3870ced635 Merge branch 'clients-user' into refactor/separate-tables 2025-12-03 17:01:50 +01:00
Fred KISSIE
cb3861a5c8 🚚 rename react-query-provider to TanstackQueryProvider 2025-12-03 16:58:40 +01:00
Fred KISSIE
f5bfddd262 🚨 run eslint --fix 2025-12-03 16:58:12 +01:00
Fred KISSIE
f060063f53 💬 update text 2025-12-02 19:24:02 +01:00
Fred KISSIE
6eb6b44f41 💬 update some text labels 2025-12-02 19:22:43 +01:00
Fred KISSIE
c93ab34021 ♻️ some refactors 2025-12-02 19:08:35 +01:00
Fred KISSIE
06a31bb716 ♻️ separate machine client & user devices tables + move common functions into hooks 2025-12-02 18:58:51 +01:00
Owen
152fb47ca4 Handle unrelay and relaying better 2025-12-02 11:17:08 -05:00
Fred KISSIE
3d400b2321 ♻️ ignore hydrateSaas script and exit(0) on PG migrations 2025-12-02 16:06:10 +01:00
dependabot[bot]
2cdc23d63e Bump nodemailer from 7.0.10 to 7.0.11
Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 7.0.10 to 7.0.11.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v7.0.10...v7.0.11)

---
updated-dependencies:
- dependency-name: nodemailer
  dependency-version: 7.0.11
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-02 03:55:03 +00:00
Fred KISSIE
45a82f3ecc 🚧WIP: Separate user & machine clients 2025-12-02 03:14:02 +01:00
Fred KISSIE
342bedc012 🎨 format with prettier 2025-12-02 02:40:50 +01:00
Fred KISSIE
18db4a11c8 ♻️ separate client & proxy resources tables 2025-12-02 02:33:43 +01:00
Owen
a7e32d4013 Fix bugs with updating a resource 2025-12-01 19:57:23 -05:00
Owen
beea28daf3 Handle hp oddities 2025-12-01 16:20:10 -05:00
Owen
b5e94d44ae Fix switching orgs having connections from other orgs 2025-12-01 15:44:25 -05:00
Owen
a623604e96 Improve holepunching 2025-12-01 13:54:30 -05:00
miloschwartz
8c62dfa706 respond with relative code expiration time 2025-12-01 12:36:13 -05:00
Fred KISSIE
610e46f2d5 🚧 WIP: separate proxy & client resources 2025-12-01 18:26:32 +01:00
Owen
92125611e9 Add validation and fix thrown error from updatePeerData 2025-11-30 17:49:55 -05:00
Owen
096da391e5 Add a utility subnet 2025-11-30 17:38:12 -05:00
Owen
dd6b1d88d3 Update peer data when HP changes 2025-11-30 11:39:40 -05:00
Owen
79f0d60533 Start working on HP IP changes 2025-11-30 11:39:40 -05:00
Owen
67665864c2 Clarify that PP is only for TCP 2025-11-29 22:58:09 -05:00
Marc Schäfer
336d31ce39 fix(validators): restore 2+ char domain label requirement
- Replace (?:[a-z\\d-]{0,61}[a-z\\d])? with (?:[a-z\\d-]{1,61}[a-z\\d]) to keep labels 2–63 chars
- Avoid unintentionally allowing single-character labels (e.g. a.com) introduced by the previous regex change

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-30 02:41:03 +01:00
Marc Schäfer
8df62e8b6a Potential fix for code scanning alert no. 19: Inefficient regular expression
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-11-29 23:40:20 +01:00
Marc Schäfer
3eab3b0827 Potential fix for code scanning alert no. 8: DOM text reinterpreted as HTML
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-11-29 23:39:54 +01:00
Marc Schäfer
fbbab60956 Potential fix for code scanning alert no. 7: Insecure randomness
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-11-29 23:39:41 +01:00
Owen Schwartz
c4de617751 Merge pull request #1940 from fosrl/dependabot/npm_and_yarn/multi-4aa959df0f
Bump dompurify and monaco-editor
2025-11-29 13:15:49 -05:00
Owen Schwartz
19e3c5045e Merge pull request #1942 from fosrl/dependabot/npm_and_yarn/multi-f170272c46
Bump glob and npm
2025-11-29 13:15:30 -05:00
Owen Schwartz
9f63d8bb5b Merge pull request #1941 from fosrl/dependabot/npm_and_yarn/multi-b50d6d7a59
Bump tar and npm
2025-11-29 13:15:09 -05:00
dependabot[bot]
49348c6ab7 Bump glob and npm
Bumps [glob](https://github.com/isaacs/node-glob) to 11.1.0 and updates ancestor dependencies [glob](https://github.com/isaacs/node-glob) and [npm](https://github.com/npm/cli). These dependencies need to be updated together.


Updates `glob` from 11.0.3 to 11.1.0
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v11.0.3...v11.1.0)

Updates `glob` from 10.4.5 to 10.5.0
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v11.0.3...v11.1.0)

Updates `npm` from 11.6.2 to 11.6.4
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v11.6.2...v11.6.4)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 11.1.0
  dependency-type: direct:production
- dependency-name: glob
  dependency-version: 10.5.0
  dependency-type: indirect
- dependency-name: npm
  dependency-version: 11.6.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-29 18:11:23 +00:00
dependabot[bot]
0961ac1da1 Bump tar and npm
Removes [tar](https://github.com/isaacs/node-tar). It's no longer used after updating ancestor dependency [npm](https://github.com/npm/cli). These dependencies need to be updated together.


Removes `tar`

Updates `npm` from 11.6.2 to 11.6.4
- [Release notes](https://github.com/npm/cli/releases)
- [Changelog](https://github.com/npm/cli/blob/latest/CHANGELOG.md)
- [Commits](https://github.com/npm/cli/compare/v11.6.2...v11.6.4)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 
  dependency-type: indirect
- dependency-name: npm
  dependency-version: 11.6.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-29 18:11:22 +00:00
dependabot[bot]
6a79436516 Bump dompurify and monaco-editor
Bumps [dompurify](https://github.com/cure53/DOMPurify) and [monaco-editor](https://github.com/microsoft/monaco-editor). These dependencies needed to be updated together.

Updates `dompurify` from 3.1.7 to 3.2.7
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.1.7...3.2.7)

Updates `monaco-editor` from 0.54.0 to 0.55.1
- [Release notes](https://github.com/microsoft/monaco-editor/releases)
- [Changelog](https://github.com/microsoft/monaco-editor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/microsoft/monaco-editor/compare/v0.54.0...v0.55.1)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.2.7
  dependency-type: indirect
- dependency-name: monaco-editor
  dependency-version: 0.55.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-29 18:11:10 +00:00
Owen Schwartz
85b46392e1 Merge pull request #1922 from fosrl/dependabot/npm_and_yarn/body-parser-2.2.1
Bump body-parser from 2.2.0 to 2.2.1
2025-11-29 13:10:02 -05:00
Owen Schwartz
f721c983aa Merge pull request #1936 from PavanendraBaahubali/Pavan/fix-custom-header-reset
Fix: prevent custom headers from being cleared on save
2025-11-29 11:00:46 -05:00
Pavan Kumar
ff0b30fc2e Merge branch 'main' of https://github.com/fosrl/pangolin into fix-custom-header-reset 2025-11-28 19:06:42 +05:30
Pavan Kumar
18070a37a8 fix: keep custom header values when editing resource 2025-11-28 19:06:09 +05:30
miloschwartz
5bd31f87f0 only allow one device auth per session 2025-11-26 15:48:49 -05:00
Owen
de83cf9d8c Handle delete org and checking org policy 2025-11-26 15:35:33 -05:00
Owen
ceae787cf5 Attempt to handle creating/deleting clients and role 2025-11-25 18:20:02 -05:00
Owen
ce6afd0019 Merge branch 'clients-user' of github.com:fosrl/pangolin into clients-user 2025-11-25 15:47:19 -05:00
miloschwartz
d977d57b2a use border instead of bg 2025-11-25 15:45:32 -05:00
dependabot[bot]
7bcd6adf01 Bump body-parser from 2.2.0 to 2.2.1
Bumps [body-parser](https://github.com/expressjs/body-parser) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/v2.2.0...v2.2.1)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-version: 2.2.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 18:31:04 +00:00
miloschwartz
ac68dbd545 add my-device and force login 2025-11-25 10:51:53 -05:00
Owen Schwartz
d450e2c3ab Merge pull request #1920 from ThanatosDi/feat/add-zh-tw-language
feat: Add zh-TW language
2025-11-25 10:17:46 -05:00
古丁丁
9440a4f879 feat: Add zh-TW language 2025-11-25 11:23:48 +08:00
Owen
73b0411e1c Add alias config 2025-11-24 20:43:26 -05:00
dependabot[bot]
a8d11d78fc Bump actions/checkout from 5.0.0 to 6.0.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](08c6903cd8...1af3b93b68)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 01:27:21 +00:00
dependabot[bot]
e16aa6e90b Bump actions/setup-go from 6.0.0 to 6.1.0
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](4469467582...4dc6199c7b)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 01:27:15 +00:00
Fred KISSIE
6368b9d837 ♻️ use linechart 2025-11-21 06:33:47 +01:00
Fred KISSIE
1b643fb4b6 🐛 fix Dockerfile 2025-11-21 06:27:13 +01:00
Fred KISSIE
d118c6b666 ♻️also export build file 2025-11-21 06:18:32 +01:00
Fred KISSIE
380e062d25 ♻️export driver in Dockerfile 2025-11-21 06:17:14 +01:00
Fred KISSIE
261f0333b8 💄 remove chart animations 2025-11-21 06:15:05 +01:00
Fred KISSIE
24adca6108 ♻️add auto refetch every 30 seconds 2025-11-21 06:14:48 +01:00
Fred KISSIE
3f440f0f7a 🏷️ fix type for SQLite 2025-11-21 06:10:01 +01:00
Fred KISSIE
ba6defa87c Add request by day chart 2025-11-21 06:03:34 +01:00
Fred KISSIE
887a0ef574 💄 chart for analytics 2025-11-21 05:36:30 +01:00
Fred KISSIE
200743747d 🚧add css variables for chart 2025-11-21 04:51:10 +01:00
Fred KISSIE
2082c5eed2 🚧 Add shadCN chart 2025-11-21 04:50:06 +01:00
Fred KISSIE
a42d012788 load logs per day 2025-11-21 04:48:01 +01:00
Fred KISSIE
82cc51424b 🔨also export driver in the db driver generation script 2025-11-21 04:47:42 +01:00
Fred KISSIE
7924f195aa 💄handle empty data 2025-11-21 04:47:13 +01:00
Fred KISSIE
d41bd3023f 🐛 filter by resource UI 2025-11-21 03:05:40 +01:00
Fred KISSIE
87a0dd2d12 ♻️ remove click 2025-11-21 02:57:44 +01:00
Fred KISSIE
5fd64596eb add top countries list 2025-11-21 02:00:47 +01:00
Owen
d23f61d995 Take into account the existing associations
Use to filter adds and removes in the associations
2025-11-20 16:42:55 -05:00
Owen
7ac27b3883 Switch to update 2025-11-20 16:08:03 -05:00
Owen
9420b41e39 Update the remote subnets 2025-11-20 15:17:48 -05:00
Owen
2cfb0e05cf Lock working without redis? 2025-11-20 14:03:25 -05:00
Owen
5b9386b18a Add lock 2025-11-20 12:40:25 -05:00
Owen
f5c3dff43c Some small bug fixes 2025-11-20 12:24:24 -05:00
Owen
eeb82c8cfe Merge branch 'main' of github.com:fosrl/pangolin 2025-11-20 10:36:38 -05:00
Owen
3750c36aa7 Working on orchestration 2025-11-20 10:31:09 -05:00
copilot-swe-agent[bot]
be4d697dfe Set hcHealth to 'unknown' when health check is disabled in updateTarget
Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-11-20 15:29:01 +00:00
copilot-swe-agent[bot]
94b34c489c Initial plan 2025-11-20 15:23:27 +00:00
Fred KISSIE
3801354ae6 🚧 add country code flag emoji function 2025-11-20 08:37:49 +01:00
Fred KISSIE
266fbb1762 💄nicer colors 2025-11-20 08:22:16 +01:00
Fred KISSIE
5d1f81a92c world map 2025-11-20 08:19:11 +01:00
Fred KISSIE
d6e8eb5307 🧑‍💻add tailwind indicator component 2025-11-20 05:23:16 +01:00
Fred KISSIE
2bc82f49ed add enpoint for getting all resource names 2025-11-20 04:20:31 +01:00
Fred KISSIE
487985558d add react compiler 2025-11-20 04:19:58 +01:00
Fred KISSIE
dc237b8052 💬 update text message from the API 2025-11-20 03:19:43 +01:00
Fred KISSIE
4ed4515262 🚧 starting request analytics page 2025-11-20 02:55:52 +01:00
Fred KISSIE
cd76fa0139 add analytics endpoint 2025-11-20 02:55:33 +01:00
Fred KISSIE
af4b9e83f7 ✏️ fix typos 2025-11-20 02:55:03 +01:00
Owen
fa5facdf33 Fix bugs 2025-11-19 20:03:57 -05:00
Owen
937b36e756 Build client site resource associations and send messages 2025-11-19 18:05:42 -05:00
Fred KISSIE
e90bdf8f97 ♻️ translate sidebar headings 2025-11-19 21:43:34 +01:00
Owen Schwartz
56491cc17b Merge pull request #1896 from fosrl/copilot/configure-auto-login-idp-blueprints
Add blueprint support for auto-login-idp configuration
2025-11-19 14:33:17 -05:00
copilot-swe-agent[bot]
6da531e99b Use IDP ID instead of IDP name for auto-login-idp
Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-11-19 19:29:52 +00:00
copilot-swe-agent[bot]
01b5158b73 Add auto-login-idp support to blueprints
Co-authored-by: oschwartz10612 <4999704+oschwartz10612@users.noreply.github.com>
2025-11-19 16:50:06 +00:00
copilot-swe-agent[bot]
8f9b665bef Initial plan 2025-11-19 16:43:50 +00:00
Owen
806949879a Merge branch 'dev' into clients-user 2025-11-18 13:53:12 -05:00
Owen
e72e2b53aa Working on targets 2025-11-18 13:53:04 -05:00
Owen Schwartz
10f42fe2e6 Merge pull request #1884 from v1rusnl/main
Bump Traefik to v3.6 due to Docker 29.X.X compatibility
2025-11-18 09:42:38 -05:00
v1rusnl
51b438117a Update Traefik image version to v3.6 2025-11-18 12:44:10 +01:00
v1rusnl
d73825dd24 Update Traefik image version to v3.6 2025-11-18 12:41:12 +01:00
Fred KISSIE
ff089ec6d7 📦update lockfile 2025-11-18 03:48:41 +01:00
Fred KISSIE
dc4f9a9bd1 ♻️ check for licence when checking for subscription 2025-11-18 03:32:05 +01:00
Fred KISSIE
e867de023a ♻️ load branding only if correctly subscribed 2025-11-18 03:14:20 +01:00
miloschwartz
b5c6191c67 add email consent and update audience 2025-11-17 20:50:24 -05:00
Fred KISSIE
e00c3f2193 🛂 check for subscription status 2025-11-18 02:46:22 +01:00
Owen
97c707248e Working on updating targets 2025-11-17 20:44:39 -05:00
Fred KISSIE
8c30995228 ♻️ refactor 2025-11-18 02:38:08 +01:00
miloschwartz
02fbc279b5 add email consent and update audience 2025-11-17 20:37:24 -05:00
Fred KISSIE
3ba65a3311 ♻️ check for disabled features in general org settings page 2025-11-18 02:35:11 +01:00
dependabot[bot]
447b706909 Bump @react-email/tailwind from 1.2.2 to 2.0.1
Bumps [@react-email/tailwind](https://github.com/resend/react-email/tree/HEAD/packages/tailwind) from 1.2.2 to 2.0.1.
- [Release notes](https://github.com/resend/react-email/releases)
- [Changelog](https://github.com/resend/react-email/blob/canary/packages/tailwind/CHANGELOG.md)
- [Commits](https://github.com/resend/react-email/commits/@react-email/tailwind@2.0.1/packages/tailwind)

---
updated-dependencies:
- dependency-name: "@react-email/tailwind"
  dependency-version: 2.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-18 01:31:38 +00:00
Fred KISSIE
c5914dc0c0 ♻️ Also check for active subscription in paid status hook 2025-11-18 02:26:49 +01:00
Fred KISSIE
30f3ab11b2 🚚 rename SecurityFeaturesAlert to PaidFeaturesAlert 2025-11-18 02:26:25 +01:00
Fred KISSIE
66b01b764f ♻️ adapt zod schema to v4 and move form description below the inptu 2025-11-18 01:07:46 +01:00
Fred KISSIE
ee7e7778b6 ♻️commit 2025-11-17 22:23:11 +01:00
Fred KISSIE
0d0c43f72b Merge branch 'dev' into feat/login-page-customization 2025-11-17 22:18:32 +01:00
Fred KISSIE
83f36bce9d ♻️refactor 2025-11-17 22:17:55 +01:00
Owen Schwartz
80a68507cd Merge pull request #1876 from fosrl/crowdin_dev
New Crowdin updates
2025-11-17 11:48:54 -05:00
Owen
dbb1e37033 Update lock 2025-11-17 11:30:25 -05:00
Owen
364b84359e Merge branch 'dev' into clients-user 2025-11-17 11:30:12 -05:00
Owen
93d4a40977 Merge branch 'main' into dev 2025-11-17 11:30:05 -05:00
Owen
97312343e4 Merge branch 'dev' into clients-user 2025-11-17 11:28:47 -05:00
Owen Schwartz
1736ad486a New translations en-us.json (Norwegian Bokmal) 2025-11-17 11:03:26 -05:00
Owen Schwartz
a07ad843a2 New translations en-us.json (Chinese Simplified) 2025-11-17 11:03:24 -05:00
Owen Schwartz
fef9101058 New translations en-us.json (Turkish) 2025-11-17 11:03:23 -05:00
Owen Schwartz
2890ff2605 New translations en-us.json (Russian) 2025-11-17 11:03:21 -05:00
Owen Schwartz
026ad2ccb9 New translations en-us.json (Portuguese) 2025-11-17 11:03:19 -05:00
Owen Schwartz
a82969b778 New translations en-us.json (Polish) 2025-11-17 11:03:18 -05:00
Owen Schwartz
612b04c26f New translations en-us.json (Dutch) 2025-11-17 11:03:16 -05:00
Owen Schwartz
2162f5f76f New translations en-us.json (Korean) 2025-11-17 11:03:14 -05:00
Owen Schwartz
710f16ce68 New translations en-us.json (Italian) 2025-11-17 11:03:13 -05:00
Owen Schwartz
61a4f468ba New translations en-us.json (German) 2025-11-17 11:03:11 -05:00
Owen Schwartz
b00fea5656 New translations en-us.json (Czech) 2025-11-17 11:03:09 -05:00
Owen Schwartz
269ff630aa New translations en-us.json (Bulgarian) 2025-11-17 11:03:08 -05:00
Owen Schwartz
986f7121bd New translations en-us.json (Spanish) 2025-11-17 11:03:06 -05:00
Owen Schwartz
21f0501bc6 New translations en-us.json (French) 2025-11-17 11:03:04 -05:00
Owen Schwartz
2b31dd955c Merge pull request #1848 from fosrl/dependabot/npm_and_yarn/dev-minor-updates-040abfaff9
Bump the dev-minor-updates group across 1 directory with 3 updates
2025-11-17 10:54:38 -05:00
Owen Schwartz
e7aeb4ff89 Merge pull request #1849 from fosrl/dependabot/go_modules/install/prod-minor-updates-4e8dbec1a6
Bump golang.org/x/term from 0.36.0 to 0.37.0 in /install in the prod-minor-updates group
2025-11-17 10:54:23 -05:00
Owen Schwartz
9dd1192033 Merge pull request #1855 from fosrl/dependabot/npm_and_yarn/prod-patch-updates-6d8f9bd785
Bump the prod-patch-updates group across 1 directory with 12 updates
2025-11-17 10:54:15 -05:00
Owen Schwartz
e61da0958f Merge pull request #1841 from fosrl/dependabot/github_actions/docker/setup-qemu-action-3.7.0
Bump docker/setup-qemu-action from 3.6.0 to 3.7.0
2025-11-17 10:49:20 -05:00
Owen Schwartz
fce588057e Merge pull request #1870 from fosrl/dependabot/npm_and_yarn/js-yaml-4.1.1
Bump js-yaml from 4.1.0 to 4.1.1
2025-11-17 10:48:32 -05:00
Owen
33331fd3c8 Merge branch 'Lokowitz-fix-zod-new' into dev 2025-11-17 10:46:40 -05:00
Owen
1261ad3a00 Standardize remote subnets build 2025-11-17 10:22:22 -05:00
Owen
7dcf4d5192 Remove remote subnet 2025-11-17 10:22:22 -05:00
Lokowitz
dc87df5d38 remove temp test 2025-11-17 14:01:11 +00:00
Lokowitz
5d2f65daa9 fix for zod 2025-11-17 13:23:30 +00:00
Lokowitz
58cf471bc4 fix z.coerce.number 2025-11-16 14:29:19 +00:00
Lokowitz
7db99a7dd5 used zod codemod 2025-11-16 14:18:17 +00:00
Lokowitz
000904eb31 upgrade zod 2025-11-16 14:09:22 +00:00
dependabot[bot]
6d1713b6b9 Bump js-yaml from 4.1.0 to 4.1.1
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-16 06:21:01 +00:00
Owen
de8262d7b9 Batch deletes 2025-11-15 11:51:52 -05:00
Fred KISSIE
2466d24c1a 🔥remove unused imports 2025-11-15 07:08:07 +01:00
Fred KISSIE
2f34def4d7 ♻️ correctly apply the CSS variable 2025-11-15 07:06:20 +01:00
Fred KISSIE
8e8f992876 💡add comment 2025-11-15 07:04:36 +01:00
Fred KISSIE
1d9ed9d219 💡remove useless comments 2025-11-15 07:01:27 +01:00
Fred KISSIE
616fb9c8e9 ♻️remove unused imports 2025-11-15 06:59:15 +01:00
Fred KISSIE
a2ab7191e5 🔇remove log 2025-11-15 06:58:05 +01:00
Fred KISSIE
7a31292ec7 revert package.json changes 2025-11-15 06:34:40 +01:00
Fred KISSIE
196fbbe334 📦update lockfile 2025-11-15 06:32:45 +01:00
Fred KISSIE
5bb5aeff36 Merge branch 'dev' into feat/login-page-customization 2025-11-15 06:32:03 +01:00
Fred KISSIE
2ada05b286 ♻️only apply org branding in saas 2025-11-15 06:26:17 +01:00
Fred KISSIE
87f23f582c apply branding to org auth page 2025-11-15 06:08:02 +01:00
Fred KISSIE
29a52f6ac4 🐛 Apply branding to auth page when not authenticated not only when authed 2025-11-15 05:43:17 +01:00
Fred KISSIE
790f7083e2 🐛 fix cols and some other refactors 2025-11-15 04:04:10 +01:00
Fred KISSIE
5c851e82ff ♻️refactor 2025-11-15 04:03:42 +01:00
Fred KISSIE
854f638da3 show toast message when updating auth page domain 2025-11-15 04:03:21 +01:00
Fred KISSIE
4842648e7b ♻️refactor 2025-11-15 02:38:51 +01:00
Fred KISSIE
8f152bdf9f add primary color branding to the page 2025-11-15 02:38:46 +01:00
Fred KISSIE
d003436179 ⚗️ generate build variable as fully typed to prevent typos (to check if it's ok) 2025-11-15 01:43:58 +01:00
Fred KISSIE
9776ef43ea ♻️ only include org settings in saas build 2025-11-15 01:42:20 +01:00
Fred KISSIE
e2c4a906c4 ♻️rename title & subtitle to orgTitle and orgSubtitle 2025-11-15 01:41:56 +01:00
Fred KISSIE
27e8250cd1 ♻️some refactor 2025-11-15 01:07:07 +01:00
Fred KISSIE
0d84b7af6e ♻️show org page branding section only in saas 2025-11-15 01:07:00 +01:00
Fred KISSIE
b961271aa6 ♻️ some refactor 2025-11-15 01:06:22 +01:00
Fred KISSIE
b505cc60b0 🗃️ Add primaryColor to login page branding 2025-11-15 01:06:09 +01:00
miloschwartz
4f026acad8 adjust icon in product update 2025-11-14 17:35:51 -05:00
miloschwartz
5b31bbce8d remove frontend env parsing 2025-11-14 12:25:32 -05:00
Milo Schwartz
e6e80f6fc7 Merge pull request #1814 from Fredkiss3/feat/update-popup
Feat: version updates & product updates popup
2025-11-14 09:13:15 -08:00
Milo Schwartz
bde4492d49 Merge branch 'dev' into feat/update-popup 2025-11-14 09:12:11 -08:00
miloschwartz
7c728c144c fix broken inputs in health check form 2025-11-14 12:00:15 -05:00
Owen
8ad7bcc0d6 Adjust rate limiting position 2025-11-14 11:33:52 -05:00
Owen
e62806d6fb Clean up old timestamps 2025-11-14 11:33:51 -05:00
miloschwartz
4e0a2e441b hide domain status info if not flags.use_pangolin_dns 2025-11-14 11:31:44 -05:00
Owen Schwartz
aabe39137b Merge pull request #1856 from LaurenceJJones/fix-remove-return-before-showing-token
fix: Remove return in installer which prevents showing token
2025-11-14 10:23:21 -05:00
miloschwartz
d9564ed6fe improve spacing and colors 2025-11-13 22:04:29 -05:00
miloschwartz
0798a0c6c2 clean up info box 2025-11-13 21:48:37 -05:00
dependabot[bot]
c9786946b7 Bump the prod-patch-updates group across 1 directory with 12 updates
Bumps the prod-patch-updates group with 12 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@radix-ui/react-avatar](https://github.com/radix-ui/primitives) | `1.1.10` | `1.1.11` |
| [@radix-ui/react-label](https://github.com/radix-ui/primitives) | `2.1.7` | `2.1.8` |
| [@radix-ui/react-progress](https://github.com/radix-ui/primitives) | `1.1.7` | `1.1.8` |
| [@radix-ui/react-separator](https://github.com/radix-ui/primitives) | `1.1.7` | `1.1.8` |
| [@radix-ui/react-slot](https://github.com/radix-ui/primitives) | `1.2.3` | `1.2.4` |
| [axios](https://github.com/axios/axios) | `1.13.1` | `1.13.2` |
| [eslint](https://github.com/eslint/eslint) | `9.39.0` | `9.39.1` |
| [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) | `16.0.1` | `16.0.2` |
| [js-yaml](https://github.com/nodeca/js-yaml) | `4.1.0` | `4.1.1` |
| [maxmind](https://github.com/runk/node-maxmind) | `5.0.0` | `5.0.1` |
| [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.11.0` | `5.11.2` |
| [resend](https://github.com/resend/resend-node) | `6.4.0` | `6.4.2` |



Updates `@radix-ui/react-avatar` from 1.1.10 to 1.1.11
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-label` from 2.1.7 to 2.1.8
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-progress` from 1.1.7 to 1.1.8
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-separator` from 1.1.7 to 1.1.8
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `@radix-ui/react-slot` from 1.2.3 to 1.2.4
- [Changelog](https://github.com/radix-ui/primitives/blob/main/release-process.md)
- [Commits](https://github.com/radix-ui/primitives/commits)

Updates `axios` from 1.13.1 to 1.13.2
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.1...v1.13.2)

Updates `eslint` from 9.39.0 to 9.39.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.39.0...v9.39.1)

Updates `eslint-config-next` from 16.0.1 to 16.0.2
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v16.0.2/packages/eslint-config-next)

Updates `js-yaml` from 4.1.0 to 4.1.1
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

Updates `maxmind` from 5.0.0 to 5.0.1
- [Release notes](https://github.com/runk/node-maxmind/releases)
- [Commits](https://github.com/runk/node-maxmind/compare/v5.0.0...v5.0.1)

Updates `posthog-node` from 5.11.0 to 5.11.2
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.11.2/packages/node)

Updates `resend` from 6.4.0 to 6.4.2
- [Release notes](https://github.com/resend/resend-node/releases)
- [Commits](https://github.com/resend/resend-node/compare/v6.4.0...v6.4.2)

---
updated-dependencies:
- dependency-name: "@radix-ui/react-avatar"
  dependency-version: 1.1.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-label"
  dependency-version: 2.1.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-progress"
  dependency-version: 1.1.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-separator"
  dependency-version: 1.1.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: "@radix-ui/react-slot"
  dependency-version: 1.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: axios
  dependency-version: 1.13.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: eslint
  dependency-version: 9.39.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: eslint-config-next
  dependency-version: 16.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: maxmind
  dependency-version: 5.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: posthog-node
  dependency-version: 5.11.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: resend
  dependency-version: 6.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-14 01:24:49 +00:00
dependabot[bot]
9344ab3546 Bump golang.org/x/term in /install in the prod-minor-updates group
Bumps the prod-minor-updates group in /install with 1 update: [golang.org/x/term](https://github.com/golang/term).


Updates `golang.org/x/term` from 0.36.0 to 0.37.0
- [Commits](https://github.com/golang/term/compare/v0.36.0...v0.37.0)

---
updated-dependencies:
- dependency-name: golang.org/x/term
  dependency-version: 0.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-14 01:23:32 +00:00
dependabot[bot]
1a4078b8a1 Bump the dev-minor-updates group across 1 directory with 3 updates
Bumps the dev-minor-updates group with 3 updates in the / directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [esbuild](https://github.com/evanw/esbuild) and [esbuild-node-externals](https://github.com/pradel/esbuild-node-externals).


Updates `@types/node` from 24.9.2 to 24.10.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `esbuild` from 0.25.12 to 0.27.0
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.25.12...v0.27.0)

Updates `esbuild-node-externals` from 1.18.0 to 1.19.1
- [Release notes](https://github.com/pradel/esbuild-node-externals/releases)
- [Commits](https://github.com/pradel/esbuild-node-externals/compare/v1.18.0...esbuild-node-externals-v1.19.1)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.10.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: esbuild
  dependency-version: 0.27.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
- dependency-name: esbuild-node-externals
  dependency-version: 1.19.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-14 01:21:19 +00:00
Fred KISSIE
955f927c59 🚧WIP 2025-11-14 01:24:15 +01:00
miloschwartz
ca66637270 remove from address in saas suppport email 2025-11-13 17:37:27 -05:00
miloschwartz
8674ca931b remove from address in saas suppport email 2025-11-13 17:34:49 -05:00
miloschwartz
08c82e072e Merge branch 'clients-user' of https://github.com/fosrl/pangolin into clients-user 2025-11-13 17:33:37 -05:00
miloschwartz
23c9827e4c remove create user client route 2025-11-13 17:32:35 -05:00
Owen Schwartz
864b587b89 Merge pull request #1858 from Pallavikumarimdb/role-in-headers
Role in headers
2025-11-13 17:16:31 -05:00
Owen Schwartz
ca89aa7ce8 Merge pull request #1847 from Pallavikumarimdb/fix/ipv6-validation
Fix: Improve IPv6 and IPV4 validation to support all variants using ipaddr.js
2025-11-13 17:10:47 -05:00
Pallavi Kumari
63a1ecfb86 role in header 2025-11-13 23:31:29 +05:30
Laurence Jones
fbce392137 Remove unnecessary return after success message
Remove redundant return statement after success message.
2025-11-13 12:52:21 +00:00
Fred KISSIE
4beed9d464 apply auth branding to resource auth page 2025-11-13 03:24:47 +01:00
Fred KISSIE
228481444f ♻️ do not manually track the loading state in ConfirmDeleteDialog 2025-11-13 02:19:25 +01:00
Fred KISSIE
02cd2cfb17 save and update branding 2025-11-13 02:18:52 +01:00
Fred KISSIE
d218a4bbc3 🏷️ fix types 2025-11-12 03:50:11 +01:00
Fred KISSIE
4bd1c4e0c6 ♻️ refactor 2025-11-12 03:50:04 +01:00
Fred KISSIE
cfde4e7443 🚧 WIP 2025-11-12 03:43:19 +01:00
Fred KISSIE
f58cf68f7c 🚧 WIP 2025-11-11 23:35:20 +01:00
Fred KISSIE
08e43400e4 🚧 frontend wip 2025-11-11 21:14:10 +01:00
Pallavi Kumari
c004e969cb improve IPv6 validation to support all variants using ipaddr.js 2025-11-12 00:30:08 +05:30
Fred KISSIE
46d60bd090 ♻️ add type 2025-11-11 17:08:52 +01:00
Fred KISSIE
5641a2aa31 🗃️ add org auth page model 2025-11-11 17:08:27 +01:00
Fred KISSIE
0abc561bb8 ♻️ refactor 2025-11-11 02:22:26 +01:00
dependabot[bot]
c6611471b1 Bump docker/setup-qemu-action from 3.6.0 to 3.7.0
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](29109295f8...c7c5346462)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 01:37:59 +00:00
Owen
bdf1625976 Add headers 2025-11-09 10:46:46 -08:00
Owen
0a5dc17800 Merge branch 'dev' into feat/option-to-regenerate-keys 2025-11-09 10:43:26 -08:00
Owen
fa7aa508ea Merge branch 'dev' into pallavi/feat/make-niceId-editable 2025-11-09 10:39:30 -08:00
Owen
2973b61676 Fix merge confilct 2025-11-08 18:01:42 -08:00
Owen
2428413442 Dont create client 2025-11-08 17:57:54 -08:00
miloschwartz
5602d8ee64 sync user clients to org on add/remove user org 2025-11-08 17:52:05 -08:00
Owen
a70799c8c0 Merge branch 'dev' into clients-user 2025-11-08 16:51:45 -08:00
Owen
d38b321f85 Add missing header 2025-11-08 16:47:03 -08:00
Owen Schwartz
b0ff50a76f Merge pull request #1834 from fosrl/dev
Small Bug Fixes
2025-11-08 16:35:50 -08:00
Owen
37acdc2796 Revert transaction 2025-11-08 16:33:48 -08:00
Owen Schwartz
f3d31cb6de Merge pull request #1833 from fosrl/crowdin_dev
New Crowdin updates
2025-11-08 16:23:11 -08:00
Owen Schwartz
a336955066 New translations en-us.json (Norwegian Bokmal) 2025-11-08 16:22:42 -08:00
Owen Schwartz
a229fc1c61 New translations en-us.json (Chinese Simplified) 2025-11-08 16:22:40 -08:00
Owen Schwartz
7995fd364e New translations en-us.json (Turkish) 2025-11-08 16:22:39 -08:00
Owen Schwartz
5e0d822d45 New translations en-us.json (Russian) 2025-11-08 16:22:38 -08:00
Owen Schwartz
4fddaa8f11 New translations en-us.json (Portuguese) 2025-11-08 16:22:36 -08:00
Owen Schwartz
4a87cecf89 New translations en-us.json (Polish) 2025-11-08 16:22:35 -08:00
Owen Schwartz
ac5ee5c7ca New translations en-us.json (Dutch) 2025-11-08 16:22:34 -08:00
Owen Schwartz
8a8c357563 New translations en-us.json (Korean) 2025-11-08 16:22:32 -08:00
Owen Schwartz
263fd80c18 New translations en-us.json (Italian) 2025-11-08 16:22:31 -08:00
Owen Schwartz
7bdf05bdf5 New translations en-us.json (German) 2025-11-08 16:22:30 -08:00
Owen Schwartz
d00f12967d New translations en-us.json (Czech) 2025-11-08 16:22:28 -08:00
Owen Schwartz
d9991a18e2 New translations en-us.json (Bulgarian) 2025-11-08 16:22:27 -08:00
Owen Schwartz
a51c21cdd2 New translations en-us.json (Spanish) 2025-11-08 16:22:26 -08:00
Owen Schwartz
265cab5b64 New translations en-us.json (French) 2025-11-08 16:22:24 -08:00
Owen
da15e5e77b Remove software-properties-common
Fixes #1828
2025-11-08 16:13:42 -08:00
Owen
a717ca2675 Only uppercase the value if its a country
Fixes #1813
2025-11-08 15:42:46 -08:00
miloschwartz
693c9fbe0f make actions sticky in targets and rules input 2025-11-08 14:39:14 -08:00
Owen
564b290244 Fix #1830 2025-11-08 14:24:28 -08:00
Owen
84d78df67e Merge branch 'main' into dev 2025-11-08 14:20:40 -08:00
Owen
107053a98f Merge branch 'main' of github.com:fosrl/pangolin 2025-11-08 14:20:35 -08:00
Owen Schwartz
6422a78e6f Merge pull request #1830 from hetlelid/patch-2
Update resourceRawSettingsDescription with details
2025-11-08 14:20:21 -08:00
miloschwartz
10f8298161 reset nav logo size 2025-11-08 14:18:43 -08:00
miloschwartz
5f11630e27 minor adjustments to blueprints screens 2025-11-08 14:15:47 -08:00
Owen
a776b2ea94 Fix: qiery perferWildcardCert from db
Fixes #1816
Fixes #1829
2025-11-08 14:14:17 -08:00
miloschwartz
b83ec1b503 remove target unique check 2025-11-08 13:57:00 -08:00
Owen
83bd5957cd Dont allow editing a config managed domain
Ref #1816
2025-11-08 12:18:36 -08:00
Owen
f98b4baa73 Add remote subnets back based on resources 2025-11-08 12:17:33 -08:00
Pallavi Kumari
0af51cebbe scope niceid to the orgId 2025-11-08 19:44:23 +05:30
Pallavi Kumari
abc5f8ec68 show the identifier in the info box 2025-11-08 19:44:23 +05:30
Owen
ddc14d164e Rename nice id to Identifier in the ui 2025-11-08 19:44:23 +05:30
Pallavi Kumari
aeda85fcfb move resource niceid update to general page 2025-11-08 19:44:23 +05:30
Pallavi Kumari
66124f09c4 move site niceId details to general setting page 2025-11-08 19:44:23 +05:30
Pallavi Kumari
ac5fe1486a update url to prevent page redirect 2025-11-08 19:44:23 +05:30
Pallavi Kumari
50ac52d316 fix lint 2025-11-08 19:44:22 +05:30
Pallavi Kumari
f85d9f8b6e fix col 2025-11-08 19:44:22 +05:30
Pallavi Kumari
feb0bd58c8 make resource niceid editable 2025-11-08 19:44:22 +05:30
Pallavi Kumari
32949127d2 Make site niceId editable 2025-11-08 19:44:22 +05:30
Pallavi Kumari
84d24d9bf5 niceId inside resource info 2025-11-08 19:44:22 +05:30
Pallavi Kumari
8e1bb6a6fd add niceId inside info box 2025-11-08 19:44:22 +05:30
hetlelid
66c14c2d09 Update resourceRawSettingsDescription with details
Expanded the description for resourceRawSettings to include mapping details and a documentation link.
2025-11-08 13:24:51 +01:00
miloschwartz
cad4d97fb3 update works 2025-11-07 22:26:28 -08:00
Owen
de53cfb912 Update package lock 2025-11-07 21:57:31 -08:00
miloschwartz
55fd276773 update to node 25? 2025-11-07 21:55:09 -08:00
miloschwartz
7125b49024 add fade 2025-11-07 20:38:36 -08:00
miloschwartz
fb9ed8f592 dont auto close hide col popover on click 2025-11-07 18:22:13 -08:00
miloschwartz
020cb2d794 add friendly col names 2025-11-07 18:16:14 -08:00
miloschwartz
9b2c0d0b67 make org selector sticky top 2025-11-07 18:05:34 -08:00
miloschwartz
3993e5b705 add sitcky table cols for left and right cols 2025-11-07 18:03:44 -08:00
Owen
47bcadb329 Also include direct associations 2025-11-07 16:55:32 -08:00
Owen
00df2c876f Fix delete issue 2025-11-07 16:44:31 -08:00
Fred KISSIE
b4535f3dc4 ✏️ typo fix 2025-11-08 01:34:08 +01:00
miloschwartz
e51fca1f61 add clients to resource 2025-11-07 16:33:17 -08:00
Fred KISSIE
0e7f5b1aef 🌐 localize product update empty text 2025-11-08 00:57:07 +01:00
Fred KISSIE
579a4e1021 add flags for enabling notifications for product updates & new releases 2025-11-08 00:51:56 +01:00
Owen
c813202f92 Add DoNotCreateNewClient 2025-11-07 15:24:32 -08:00
Fred KISSIE
94e1c534ca 💄 add link to read more 2025-11-08 00:19:30 +01:00
Owen
41e21acf42 Fix error related to user id col 2025-11-07 14:59:45 -08:00
Pallavi Kumari
b6e98632b5 move re-key API routes to private api 2025-11-08 02:43:47 +05:30
Owen Schwartz
51db267a4a Merge pull request #1779 from fosrl/dependabot/npm_and_yarn/eslint-config-next-16.0.1
Bump eslint-config-next from 15.5.6 to 16.0.1
2025-11-07 12:15:19 -08:00
Pallavi Kumari
8a5f59cb9f disable re-key button for non licensed 2025-11-08 01:38:47 +05:30
dependabot[bot]
669817818a Bump eslint-config-next from 15.5.6 to 16.0.1
Bumps [eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next) from 15.5.6 to 16.0.1.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/commits/v16.0.1/packages/eslint-config-next)

---
updated-dependencies:
- dependency-name: eslint-config-next
  dependency-version: 16.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-07 20:07:29 +00:00
Owen Schwartz
b84453bfbe Merge pull request #1825 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-282bba5f0a
Bump the dev-patch-updates group across 1 directory with 5 updates
2025-11-07 12:06:08 -08:00
Owen Schwartz
15d561f59f Merge pull request #1824 from robtec/patch-1
Fix typo in shareSeeOnce message
2025-11-07 12:05:59 -08:00
Fred KISSIE
0745734273 ♻️ include build when getting product udpates 2025-11-07 20:05:51 +01:00
Fred KISSIE
aa3f07f1ba ♻️ make fossorial remote API only configurable on the frontend and only in DEV 2025-11-07 20:05:29 +01:00
Pallavi Kumari
2b8204fdc8 seperate credentials rekeying in modal for reuse 2025-11-07 23:30:24 +05:30
Pallavi Kumari
90e72c6aca hide credentials tab for local sites 2025-11-07 19:27:03 +05:30
Pallavi Kumari
62e2b7ca9e change alert text 2025-11-07 19:27:03 +05:30
Pallavi Kumari
f7e7993fd4 regenerate secret for wireguard 2025-11-07 19:27:03 +05:30
Pallavi Kumari
18cdf070c7 add view setting options 2025-11-07 19:27:03 +05:30
Pallavi Kumari
563a5b3e7e disable credential regenerate button for local and wireguard 2025-11-07 19:27:03 +05:30
Pallavi Kumari
3756aaecda change file naming structure to reGenerate exit node keys 2025-11-07 19:27:03 +05:30
Pallavi Kumari
58a13de0ff fix lint 2025-11-07 19:27:03 +05:30
Pallavi Kumari
d32505a833 Option to regenerate Newt keys 2025-11-07 19:27:03 +05:30
Pallavi Kumari
42091e88cb rename exit node tab to credentials 2025-11-07 19:27:03 +05:30
Pallavi Kumari
c2f607bb9a Option to regenerate olm keys inside client 2025-11-07 19:27:03 +05:30
Pallavi Kumari
3f38080b46 fix lint 2025-11-07 19:27:03 +05:30
Pallavi Kumari
9f9aa07c2d Option to regenerate remote-nodes keys 2025-11-07 19:27:03 +05:30
miloschwartz
76d54b2d0f add add/remove user/roles to siteResources/resources to integration api 2025-11-06 21:27:01 -08:00
Owen
bdb564823d Require valid user token 2025-11-06 21:19:37 -08:00
miloschwartz
b3a616c9f3 remove alerts from cleints and resources tables 2025-11-06 20:21:26 -08:00
Owen
ec1f94791a Remove siteIds and build associations from user role chnages 2025-11-06 20:19:15 -08:00
miloschwartz
bea1c65076 remove remote subnets from front end 2025-11-06 20:16:24 -08:00
miloschwartz
2274a3525b update olm and client routes 2025-11-06 20:12:54 -08:00
dependabot[bot]
749cea5a4d Bump the dev-patch-updates group across 1 directory with 5 updates
Bumps the dev-patch-updates group with 4 updates in the / directory: [@dotenvx/dotenvx](https://github.com/dotenvx/dotenvx), [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss), [esbuild](https://github.com/evanw/esbuild) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@dotenvx/dotenvx` from 1.51.0 to 1.51.1
- [Release notes](https://github.com/dotenvx/dotenvx/releases)
- [Changelog](https://github.com/dotenvx/dotenvx/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dotenvx/dotenvx/compare/v1.51.0...v1.51.1)

Updates `@tailwindcss/postcss` from 4.1.16 to 4.1.17
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.17/packages/@tailwindcss-postcss)

Updates `esbuild` from 0.25.11 to 0.25.12
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.25.11...v0.25.12)

Updates `tailwindcss` from 4.1.16 to 4.1.17
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.17/packages/tailwindcss)

Updates `typescript-eslint` from 8.46.2 to 8.46.3
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.3/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@dotenvx/dotenvx"
  dependency-version: 1.51.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@tailwindcss/postcss"
  dependency-version: 4.1.17
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: esbuild
  dependency-version: 0.25.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: tailwindcss
  dependency-version: 4.1.17
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: typescript-eslint
  dependency-version: 8.46.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-07 01:23:55 +00:00
miloschwartz
999fb2fff1 Merge branch 'dev' into clients-user 2025-11-06 16:55:16 -08:00
miloschwartz
2a7529c39e don't delete user 2025-11-06 16:48:53 -08:00
Fred KISSIE
f27ae210ed Merge branch 'dev' into feat/update-popup 2025-11-07 01:30:18 +01:00
Fred KISSIE
ea744f8d28 💄 show update type 2025-11-07 01:14:05 +01:00
Fred KISSIE
0b70cbb1a3 💄 show update type in badge 2025-11-07 01:10:20 +01:00
miloschwartz
fce887436d fix bug causing auto provision to override manually created users 2025-11-06 15:46:54 -08:00
Fred KISSIE
f928708156 💄 animate exit and more 2025-11-07 00:27:57 +01:00
miloschwartz
fae899a8f1 remove dialog border 2025-11-06 15:17:19 -08:00
Rob
3489107a49 Fix typo in shareSeeOnce message 2025-11-06 23:09:52 +00:00
Fred KISSIE
45fb0a4156 💄 button for mark as read 2025-11-06 23:26:13 +01:00
Fred KISSIE
a62299c387 🎨 prettier format 2025-11-06 23:25:53 +01:00
Fred KISSIE
18757d7eb3 💄 show product updates list 2025-11-06 22:42:49 +01:00
Owen Schwartz
296b220bf3 Merge pull request #1819 from Pallavikumarimdb/fix/resourceTable-typeError
Fix/Revert column from Resource table to fix type error and match overall styling
2025-11-06 12:03:15 -08:00
Pallavi Kumari
0a9f37c44d revert column from resource table 2025-11-06 22:57:03 +05:30
miloschwartz
776c33d79d persist column filters 2025-11-05 17:34:50 -08:00
miloschwartz
9fd6af3a31 view devices for profile 2025-11-05 17:27:16 -08:00
miloschwartz
4ade878320 split clients table 2025-11-05 16:43:27 -08:00
miloschwartz
9e2477587c if one logs dont show nested 2025-11-05 16:13:51 -08:00
miloschwartz
c7787352c8 add sidebar groups 2025-11-05 16:09:12 -08:00
miloschwartz
85892c30b2 add site resource modes and alias 2025-11-05 15:24:07 -08:00
Fred KISSIE
7a2dd31019 🚧 use popup 2025-11-06 00:16:07 +01:00
Fred KISSIE
096ca379ce ♻️ refactor 2025-11-06 00:06:05 +01:00
Fred KISSIE
41601010f4 💡 comment 2025-11-05 23:58:56 +01:00
Fred KISSIE
64b87e203a 💄 animate product updates & new version 2025-11-05 23:57:43 +01:00
Fred KISSIE
c64b102aaa ♻️ refactor 2025-11-05 23:29:48 +01:00
Fred KISSIE
f371c7df81 add headless/ui for better enter/exit animations 2025-11-05 23:29:36 +01:00
Fred KISSIE
030f90db2e ♻️ validate env variables only in DEV 2025-11-05 21:41:29 +01:00
miloschwartz
e51b6b545e add users and roles to site resources 2025-11-05 12:24:50 -08:00
Owen Schwartz
ef5d72663f Merge pull request #1328 from Pallavikumarimdb/enhancement-#906/dashboard-enhancements
Enhancement #906/Resources Dashboard: Targets Column, Customizable Columns & Status Indicators
2025-11-05 11:41:43 -08:00
Owen
6ddfc9b8fe Revert columns 2025-11-05 11:41:07 -08:00
Owen
301654b63e Fix styling 2025-11-05 11:38:14 -08:00
miloschwartz
c73f8c88f7 hide sites inputs on clients 2025-11-05 10:37:52 -08:00
miloschwartz
2274404324 update tables 2025-11-05 10:29:29 -08:00
Fred KISSIE
6d349693a7 🚧 wip 2025-11-05 08:45:56 +01:00
Fred KISSIE
b9ce316574 🚧 wip 2025-11-05 08:38:23 +01:00
Fred KISSIE
a247ef7564 ♻️ import type 2025-11-05 07:33:25 +01:00
Fred KISSIE
18566c09dc add tanstack query 2025-11-05 07:32:28 +01:00
Fred KISSIE
1090dca634 Merge branch 'main' into feat/update-popup 2025-11-05 07:30:12 +01:00
Fred KISSIE
44f419d4f7 💄 animate popup 2025-11-05 07:30:01 +01:00
Fred KISSIE
162c6d567c revert package.json changes 2025-11-05 07:26:41 +01:00
Fred KISSIE
2f1abfbef8 🚧 New version popup 2025-11-05 06:55:08 +01:00
Fred KISSIE
a26a441d56 ♻️ validate env and add remote fossorial API as an env variable 2025-11-05 06:54:56 +01:00
miloschwartz
f628a76223 add them back 2025-11-04 16:56:56 -08:00
miloschwartz
8088e30e06 remove userClients and roleClients 2025-11-04 16:53:00 -08:00
miloschwartz
801cdec7f3 add deviceWebAuthCodes table to pg schema 2025-11-04 16:51:31 -08:00
Owen
3fd3f9871d Remove user check 2025-11-04 11:56:00 -08:00
miloschwartz
959a562e7c fix more shadows 2025-11-04 11:09:08 -08:00
Owen Schwartz
3b12a77cf0 Merge pull request #1809 from clemone210/patch-2
Update German translations for client and blueprint terms
2025-11-04 10:34:26 -08:00
Fred KISSIE
03e0e8d9c2 🚧 wip 2025-11-04 13:57:55 +01:00
Timo
7cd31313d8 Update German translations for client and blueprint terms
"Kunden" is generally used for "Customers", so in this case I suggest to stick with Client, as this is a widely used term in german tech sector. The same for "Bauplan" or "Blaupause". "Bauplan" is a "Construction plan" for building houses. "Blaupause" is pretty much the right translation for blueprints, but I would stick with Blueprint here as well.
2025-11-04 07:40:33 +01:00
miloschwartz
52a311bf36 fix colors and footer 2025-11-03 21:44:34 -08:00
Milo Schwartz
9822deb4bf Update README.md 2025-11-03 22:56:57 -05:00
Owen
83e0282212 Merge branch 'dev' into clients-user 2025-11-03 17:39:10 -08:00
Owen
8942cb7aa7 Update const 2025-11-03 17:38:50 -08:00
Owen
f0f219f293 Merge branch 'main' into dev 2025-11-03 17:38:43 -08:00
Owen
dc75d72522 Merge branch 'dev' into clients-user 2025-11-03 17:38:26 -08:00
Owen
6da81b3817 Fix bad request in non-enterprise 2025-11-03 17:33:50 -08:00
miloschwartz
847479b639 Merge branch 'cli-web-auth' into clients-user 2025-11-03 17:14:12 -08:00
miloschwartz
0790f37f5e hash device codes 2025-11-03 17:03:46 -08:00
Owen
9dd472c59b Creating olm working 2025-11-03 16:54:06 -08:00
miloschwartz
5746d69f98 reduce header padding 2025-11-03 16:22:40 -08:00
Owen
8356c5933f Small fixes around handling olm users 2025-11-03 16:22:13 -08:00
Owen
2c488baa80 Add name and lock client to specific olm 2025-11-03 16:16:19 -08:00
Owen
d30743a428 Update schmea; create client when registering 2025-11-03 15:42:22 -08:00
miloschwartz
009d84a3c6 remove shadows and outline ring 2025-11-03 11:22:00 -08:00
miloschwartz
e888b76747 complete web device auth flow 2025-11-03 11:10:17 -08:00
Owen
6174599754 Allow >30 days on oss 2025-11-03 09:54:41 -08:00
Owen Schwartz
8ba04aeb74 Merge pull request #1802 from fosrl/dependabot/npm_and_yarn/prod-minor-updates-700e856888
Bump the prod-minor-updates group across 1 directory with 9 updates
2025-11-03 09:49:01 -08:00
Owen
43590896e9 Add fosrl 2025-11-02 18:56:46 -08:00
Owen Schwartz
3547c4832b Revert "Refactor CI/CD workflow for improved release process" 2025-11-02 18:56:46 -08:00
Marc Schäfer
1cd098252e Refactor CI/CD workflow for improved release process
Updated CI/CD workflow to include new permissions, job definitions, and steps for version validation, tagging, and artifact management.
2025-11-02 18:56:46 -08:00
Owen
4adbc31dae Fix blueprints not applying
Fixes #1795
2025-11-02 18:56:46 -08:00
Owen
99031feb35 Fix camel case in health checks 2025-11-02 18:56:46 -08:00
Owen
d363b06d0e Fix rewritePath
Closes #1528
2025-11-02 18:56:46 -08:00
Owen
2af100cc86 Warning -> debug 2025-11-02 18:56:46 -08:00
dependabot[bot]
3e90211108 Bump the prod-minor-updates group across 1 directory with 9 updates
Bumps the prod-minor-updates group with 9 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.908.0` | `3.922.0` |
| [axios](https://github.com/axios/axios) | `1.12.2` | `1.13.1` |
| [eslint](https://github.com/eslint/eslint) | `9.37.0` | `9.39.0` |
| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.1.0` | `8.2.1` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `0.545.0` | `0.552.0` |
| [next-intl](https://github.com/amannn/next-intl) | `4.3.12` | `4.4.0` |
| [posthog-node](https://github.com/PostHog/posthog-js/tree/HEAD/packages/node) | `5.10.4` | `5.11.0` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form) | `7.65.0` | `7.66.0` |
| [resend](https://github.com/resend/resend-node) | `6.1.3` | `6.4.0` |



Updates `@aws-sdk/client-s3` from 3.908.0 to 3.922.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.922.0/clients/client-s3)

Updates `axios` from 1.12.2 to 1.13.1
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.12.2...v1.13.1)

Updates `eslint` from 9.37.0 to 9.39.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.37.0...v9.39.0)

Updates `express-rate-limit` from 8.1.0 to 8.2.1
- [Release notes](https://github.com/express-rate-limit/express-rate-limit/releases)
- [Commits](https://github.com/express-rate-limit/express-rate-limit/compare/v8.1.0...v8.2.1)

Updates `lucide-react` from 0.545.0 to 0.552.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.552.0/packages/lucide-react)

Updates `next-intl` from 4.3.12 to 4.4.0
- [Release notes](https://github.com/amannn/next-intl/releases)
- [Changelog](https://github.com/amannn/next-intl/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amannn/next-intl/compare/v4.3.12...v4.4.0)

Updates `posthog-node` from 5.10.4 to 5.11.0
- [Release notes](https://github.com/PostHog/posthog-js/releases)
- [Changelog](https://github.com/PostHog/posthog-js/blob/main/packages/node/CHANGELOG.md)
- [Commits](https://github.com/PostHog/posthog-js/commits/posthog-node@5.11.0/packages/node)

Updates `react-hook-form` from 7.65.0 to 7.66.0
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases)
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md)
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.65.0...v7.66.0)

Updates `resend` from 6.1.3 to 6.4.0
- [Release notes](https://github.com/resend/resend-node/releases)
- [Commits](https://github.com/resend/resend-node/compare/v6.1.3...v6.4.0)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.922.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: axios
  dependency-version: 1.13.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: eslint
  dependency-version: 9.39.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: express-rate-limit
  dependency-version: 8.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: lucide-react
  dependency-version: 0.552.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: next-intl
  dependency-version: 4.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: posthog-node
  dependency-version: 5.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: react-hook-form
  dependency-version: 7.66.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: resend
  dependency-version: 6.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 01:34:13 +00:00
Owen
6dd161fe17 Add fosrl 2025-11-02 15:35:02 -08:00
Owen Schwartz
558bd040c6 Merge pull request #1801 from fosrl/revert-1792-main
Revert "Refactor CI/CD workflow for improved release process"
2025-11-02 15:22:12 -08:00
Owen Schwartz
f2c48975f6 Revert "Refactor CI/CD workflow for improved release process" 2025-11-02 15:22:03 -08:00
Owen Schwartz
fc43a56bb3 Merge pull request #1792 from marcschaeferger/main
Refactor CI/CD workflow for improved release process
2025-11-02 15:00:09 -08:00
Owen
ca7f557a3c Fix blueprints not applying
Fixes #1795
2025-11-02 14:56:19 -08:00
Owen
7477713eef Fix camel case in health checks 2025-11-02 14:17:38 -08:00
Owen
c16e762fa4 Fix rewritePath
Closes #1528
2025-11-02 14:05:41 -08:00
Owen Schwartz
41592133a6 Merge pull request #1788 from Pallavikumarimdb/fix/deleting-and-adding-back-a-target
Add transaction while deleting targets
2025-11-02 13:51:08 -08:00
Pallavi Kumari
54f7525f1b add status column in resource table 2025-11-02 13:55:17 +05:30
Pallavi Kumari
ad6bb3da9f fix type error 2025-11-02 13:55:17 +05:30
Pallavi Kumari
49bc2dc5da fix duplicate 2025-11-02 13:55:16 +05:30
Pallavi
cdf77087cd get niceid 2025-11-02 13:55:16 +05:30
Pallavi
8e5dde887c list targes in frontend 2025-11-02 13:55:16 +05:30
Pallavi
f21188000e remove status check and add column filtering on all of the tables 2025-11-02 13:55:16 +05:30
Pallavi
1b3eb32bf4 Show targets and status icons in the dashboard 2025-11-02 13:55:16 +05:30
Marc Schäfer
eec3f183e6 Refactor CI/CD workflow for improved release process
Updated CI/CD workflow to include new permissions, job definitions, and steps for version validation, tagging, and artifact management.
2025-11-02 00:44:03 +01:00
Pallavi Kumari
ad425e8d9e add transaction while deleting targets 2025-11-01 11:58:09 +05:30
832 changed files with 56817 additions and 23950 deletions

View File

@@ -1,6 +1,3 @@
{ {
"extends": [ "extends": ["next/core-web-vitals", "next/typescript"]
"next/core-web-vitals",
"next/typescript"
]
} }

View File

@@ -24,25 +24,57 @@ concurrency:
cancel-in-progress: true cancel-in-progress: true
jobs: jobs:
release: pre-run:
name: Build and Release runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64] permissions: write-all
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ROLE_NAME }}
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
- name: Verify AWS identity
run: aws sts get-caller-identity
- name: Start EC2 instances
run: |
aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_AMD_RUNNER }}
echo "EC2 instances started"
release-arm:
name: Build and Release (ARM64)
runs-on: [self-hosted, linux, arm64, us-east-1]
needs: [pre-run]
if: >-
${{
needs.pre-run.result == 'success'
}}
# Job-level timeout to avoid runaway or stuck runs # Job-level timeout to avoid runaway or stuck runs
timeout-minutes: 120 timeout-minutes: 120
env: env:
# Target images # Target images
DOCKERHUB_IMAGE: docker.io/${{ secrets.DOCKER_HUB_USERNAME }}/${{ github.event.repository.name }} DOCKERHUB_IMAGE: docker.io/fosrl/${{ github.event.repository.name }}
GHCR_IMAGE: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }} GHCR_IMAGE: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Set up QEMU - name: Monitor storage space
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0 run: |
THRESHOLD=75
- name: Set up Docker Buildx USED_SPACE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 echo "Used space: $USED_SPACE%"
if [ "$USED_SPACE" -ge "$THRESHOLD" ]; then
echo "Used space is below the threshold of 75% free. Running Docker system prune."
echo y | docker system prune -a
else
echo "Storage space is above the threshold. No action needed."
fi
- name: Log in to Docker Hub - name: Log in to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
@@ -50,13 +82,110 @@ jobs:
registry: docker.io registry: docker.io
username: ${{ secrets.DOCKER_HUB_USERNAME }} username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Extract tag name
id: get-tag
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash
- name: Update version in package.json
run: |
TAG=${{ env.TAG }}
sed -i "s/export const APP_VERSION = \".*\";/export const APP_VERSION = \"$TAG\";/" server/lib/consts.ts
cat server/lib/consts.ts
shell: bash
- name: Build and push Docker images (Docker Hub - ARM64)
run: |
TAG=${{ env.TAG }}
make build-release-arm tag=$TAG
echo "Built & pushed ARM64 images to: ${{ env.DOCKERHUB_IMAGE }}:${TAG}"
shell: bash
release-amd:
name: Build and Release (AMD64)
runs-on: [self-hosted, linux, x64, us-east-1]
needs: [pre-run]
if: >-
${{
needs.pre-run.result == 'success'
}}
# Job-level timeout to avoid runaway or stuck runs
timeout-minutes: 120
env:
# Target images
DOCKERHUB_IMAGE: docker.io/fosrl/${{ github.event.repository.name }}
GHCR_IMAGE: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Monitor storage space
run: |
THRESHOLD=75
USED_SPACE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
echo "Used space: $USED_SPACE%"
if [ "$USED_SPACE" -ge "$THRESHOLD" ]; then
echo "Used space is below the threshold of 75% free. Running Docker system prune."
echo y | docker system prune -a
else
echo "Storage space is above the threshold. No action needed."
fi
- name: Log in to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: docker.io
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Extract tag name
id: get-tag
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash
- name: Update version in package.json
run: |
TAG=${{ env.TAG }}
sed -i "s/export const APP_VERSION = \".*\";/export const APP_VERSION = \"$TAG\";/" server/lib/consts.ts
cat server/lib/consts.ts
shell: bash
- name: Build and push Docker images (Docker Hub - AMD64)
run: |
TAG=${{ env.TAG }}
make build-release-amd tag=$TAG
echo "Built & pushed AMD64 images to: ${{ env.DOCKERHUB_IMAGE }}:${TAG}"
shell: bash
sign-and-package:
name: Sign and Package
runs-on: [self-hosted, linux, x64, us-east-1]
needs: [release-arm, release-amd]
if: >-
${{
needs.release-arm.result == 'success' &&
needs.release-amd.result == 'success'
}}
# Job-level timeout to avoid runaway or stuck runs
timeout-minutes: 120
env:
# Target images
DOCKERHUB_IMAGE: docker.io/fosrl/${{ github.event.repository.name }}
GHCR_IMAGE: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Extract tag name - name: Extract tag name
id: get-tag id: get-tag
run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV run: echo "TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash shell: bash
- name: Install Go - name: Install Go
uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0 uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
with: with:
go-version: 1.24 go-version: 1.24
@@ -96,7 +225,7 @@ jobs:
- name: Build installer - name: Build installer
working-directory: install working-directory: install
run: | run: |
make go-build-release make go-build-release
- name: Upload artifacts from /install/bin - name: Upload artifacts from /install/bin
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
@@ -104,13 +233,6 @@ jobs:
name: install-bin name: install-bin
path: install/bin/ path: install/bin/
- name: Build and push Docker images (Docker Hub)
run: |
TAG=${{ env.TAG }}
make build-release tag=$TAG
echo "Built & pushed to: ${{ env.DOCKERHUB_IMAGE }}:${TAG}"
shell: bash
- name: Install skopeo + jq - name: Install skopeo + jq
# skopeo: copy/inspect images between registries # skopeo: copy/inspect images between registries
# jq: JSON parsing tool used to extract digest values # jq: JSON parsing tool used to extract digest values
@@ -127,15 +249,25 @@ jobs:
- name: Copy tag from Docker Hub to GHCR - name: Copy tag from Docker Hub to GHCR
# Mirror the already-built image (all architectures) to GHCR so we can sign it # Mirror the already-built image (all architectures) to GHCR so we can sign it
# Wait a bit for both architectures to be available in Docker Hub manifest
run: | run: |
set -euo pipefail set -euo pipefail
TAG=${{ env.TAG }} TAG=${{ env.TAG }}
echo "Waiting for multi-arch manifest to be ready..."
sleep 30
echo "Copying ${{ env.DOCKERHUB_IMAGE }}:${TAG} -> ${{ env.GHCR_IMAGE }}:${TAG}" echo "Copying ${{ env.DOCKERHUB_IMAGE }}:${TAG} -> ${{ env.GHCR_IMAGE }}:${TAG}"
skopeo copy --all --retry-times 3 \ skopeo copy --all --retry-times 3 \
docker://$DOCKERHUB_IMAGE:$TAG \ docker://$DOCKERHUB_IMAGE:$TAG \
docker://$GHCR_IMAGE:$TAG docker://$GHCR_IMAGE:$TAG
shell: bash shell: bash
- name: Login to GitHub Container Registry (for cosign)
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Install cosign - name: Install cosign
# cosign is used to sign and verify container images (key and keyless) # cosign is used to sign and verify container images (key and keyless)
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0 uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0
@@ -178,3 +310,32 @@ jobs:
"${REF}" -o text "${REF}" -o text
done done
shell: bash shell: bash
post-run:
needs: [pre-run, release-arm, release-amd, sign-and-package]
if: >-
${{
always() &&
needs.pre-run.result == 'success' &&
(needs.release-arm.result == 'success' || needs.release-arm.result == 'skipped' || needs.release-arm.result == 'failure') &&
(needs.release-amd.result == 'success' || needs.release-amd.result == 'skipped' || needs.release-amd.result == 'failure') &&
(needs.sign-and-package.result == 'success' || needs.sign-and-package.result == 'skipped' || needs.sign-and-package.result == 'failure')
}}
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ROLE_NAME }}
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
- name: Verify AWS identity
run: aws sts get-caller-identity
- name: Stop EC2 instances
run: |
aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_AMD_RUNNER }}
echo "EC2 instances stopped"

View File

@@ -21,10 +21,10 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Set up Node.js - name: Set up Node.js
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with: with:
node-version: '22' node-version: '22'

39
.github/workflows/restart-runners.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: Restart Runners
on:
schedule:
- cron: '0 0 */7 * *'
permissions:
id-token: write
contents: read
jobs:
ec2-maintenance-prod:
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ROLE_NAME }}
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
- name: Verify AWS identity
run: aws sts get-caller-identity
- name: Start EC2 instance
run: |
aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_AMD_RUNNER }}
echo "EC2 instances started"
- name: Wait
run: sleep 600
- name: Stop EC2 instance
run: |
aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }}
aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_AMD_RUNNER }}
echo "EC2 instances stopped"

View File

@@ -14,7 +14,7 @@ jobs:
stale: stale:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/stale@5f858e3efba33a5ca4407a664cc011ad407f2008 # v10.1.0 - uses: actions/stale@997185467fa4f803885201cee163a9f38240193d # v10.1.1
with: with:
days-before-stale: 14 days-before-stale: 14
days-before-close: 14 days-before-close: 14

View File

@@ -12,11 +12,12 @@ on:
jobs: jobs:
test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 - name: Install Node
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with: with:
node-version: '22' node-version: '22'
@@ -57,8 +58,26 @@ jobs:
echo "App failed to start" echo "App failed to start"
exit 1 exit 1
build-sqlite:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Copy config file
run: cp config/config.example.yml config/config.yml
- name: Build Docker image sqlite - name: Build Docker image sqlite
run: make build-sqlite run: make dev-build-sqlite
build-postgres:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Copy config file
run: cp config/config.example.yml config/config.yml
- name: Build Docker image pg - name: Build Docker image pg
run: make build-pg run: make dev-build-pg

3
.gitignore vendored
View File

@@ -49,4 +49,5 @@ postgres/
dynamic/ dynamic/
*.mmdb *.mmdb
scratch/ scratch/
tsconfig.json tsconfig.json
hydrateSaas.ts

2
.nvmrc
View File

@@ -1 +1 @@
22 24

12
.prettierignore Normal file
View File

@@ -0,0 +1,12 @@
.github/
bruno/
cli/
config/
messages/
next.config.mjs/
public/
tailwind.config.js/
test/
**/*.yml
**/*.yaml
**/*.md

3
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"recommendations": ["esbenp.prettier-vscode"]
}

22
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,22 @@
{
"editor.codeActionsOnSave": {
"source.addMissingImports.ts": "always"
},
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"editor.formatOnSave": true
}

View File

@@ -1,10 +1,12 @@
FROM node:22-alpine AS builder FROM node:24-alpine AS builder
WORKDIR /app WORKDIR /app
ARG BUILD=oss ARG BUILD=oss
ARG DATABASE=sqlite ARG DATABASE=sqlite
RUN apk add --no-cache curl tzdata python3 make g++
# COPY package.json package-lock.json ./ # COPY package.json package-lock.json ./
COPY package*.json ./ COPY package*.json ./
RUN npm ci RUN npm ci
@@ -12,8 +14,9 @@ RUN npm ci
COPY . . COPY . .
RUN echo "export * from \"./$DATABASE\";" > server/db/index.ts RUN echo "export * from \"./$DATABASE\";" > server/db/index.ts
RUN echo "export const driver: \"pg\" | \"sqlite\" = \"$DATABASE\";" >> server/db/index.ts
RUN echo "export const build = \"$BUILD\" as any;" > server/build.ts RUN echo "export const build = \"$BUILD\" as \"saas\" | \"enterprise\" | \"oss\";" > server/build.ts
# Copy the appropriate TypeScript configuration based on build type # Copy the appropriate TypeScript configuration based on build type
RUN if [ "$BUILD" = "oss" ]; then cp tsconfig.oss.json tsconfig.json; \ RUN if [ "$BUILD" = "oss" ]; then cp tsconfig.oss.json tsconfig.json; \
@@ -30,9 +33,9 @@ RUN mkdir -p dist
RUN npm run next:build RUN npm run next:build
RUN node esbuild.mjs -e server/index.ts -o dist/server.mjs -b $BUILD RUN node esbuild.mjs -e server/index.ts -o dist/server.mjs -b $BUILD
RUN if [ "$DATABASE" = "pg" ]; then \ RUN if [ "$DATABASE" = "pg" ]; then \
node esbuild.mjs -e server/setup/migrationsPg.ts -o dist/migrations.mjs; \ node esbuild.mjs -e server/setup/migrationsPg.ts -o dist/migrations.mjs; \
else \ else \
node esbuild.mjs -e server/setup/migrationsSqlite.ts -o dist/migrations.mjs; \ node esbuild.mjs -e server/setup/migrationsSqlite.ts -o dist/migrations.mjs; \
fi fi
# test to make sure the build output is there and error if not # test to make sure the build output is there and error if not
@@ -40,22 +43,25 @@ RUN test -f dist/server.mjs
RUN npm run build:cli RUN npm run build:cli
FROM node:22-alpine AS runner # Prune dev dependencies and clean up to prepare for copy to runner
RUN npm prune --omit=dev && npm cache clean --force
FROM node:24-alpine AS runner
WORKDIR /app WORKDIR /app
# Curl used for the health checks # Only curl and tzdata needed at runtime - no build tools!
RUN apk add --no-cache curl tzdata RUN apk add --no-cache curl tzdata
# COPY package.json package-lock.json ./ # Copy pre-built node_modules from builder (already pruned to production only)
COPY package*.json ./ # This includes the compiled native modules like better-sqlite3
COPY --from=builder /app/node_modules ./node_modules
RUN npm ci --omit=dev && npm cache clean --force
COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/dist ./dist COPY --from=builder /app/dist ./dist
COPY --from=builder /app/init ./dist/init COPY --from=builder /app/init ./dist/init
COPY --from=builder /app/package.json ./package.json
COPY ./cli/wrapper.sh /usr/local/bin/pangctl COPY ./cli/wrapper.sh /usr/local/bin/pangctl
RUN chmod +x /usr/local/bin/pangctl ./dist/cli.mjs RUN chmod +x /usr/local/bin/pangctl ./dist/cli.mjs

119
Makefile
View File

@@ -1,8 +1,13 @@
.PHONY: build build-pg build-release build-arm build-x86 test clean .PHONY: build build-pg build-release build-release-arm build-release-amd build-arm build-x86 test clean
major_tag := $(shell echo $(tag) | cut -d. -f1) major_tag := $(shell echo $(tag) | cut -d. -f1)
minor_tag := $(shell echo $(tag) | cut -d. -f1,2) minor_tag := $(shell echo $(tag) | cut -d. -f1,2)
build-release:
.PHONY: build-release build-sqlite build-postgresql build-ee-sqlite build-ee-postgresql
build-release: build-sqlite build-postgresql build-ee-sqlite build-ee-postgresql
build-sqlite:
@if [ -z "$(tag)" ]; then \ @if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-release tag=<tag>"; \ echo "Error: tag is required. Usage: make build-release tag=<tag>"; \
exit 1; \ exit 1; \
@@ -16,6 +21,12 @@ build-release:
--tag fosrl/pangolin:$(minor_tag) \ --tag fosrl/pangolin:$(minor_tag) \
--tag fosrl/pangolin:$(tag) \ --tag fosrl/pangolin:$(tag) \
--push . --push .
build-postgresql:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-release tag=<tag>"; \
exit 1; \
fi
docker buildx build \ docker buildx build \
--build-arg BUILD=oss \ --build-arg BUILD=oss \
--build-arg DATABASE=pg \ --build-arg DATABASE=pg \
@@ -25,6 +36,12 @@ build-release:
--tag fosrl/pangolin:postgresql-$(minor_tag) \ --tag fosrl/pangolin:postgresql-$(minor_tag) \
--tag fosrl/pangolin:postgresql-$(tag) \ --tag fosrl/pangolin:postgresql-$(tag) \
--push . --push .
build-ee-sqlite:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-release tag=<tag>"; \
exit 1; \
fi
docker buildx build \ docker buildx build \
--build-arg BUILD=enterprise \ --build-arg BUILD=enterprise \
--build-arg DATABASE=sqlite \ --build-arg DATABASE=sqlite \
@@ -34,6 +51,12 @@ build-release:
--tag fosrl/pangolin:ee-$(minor_tag) \ --tag fosrl/pangolin:ee-$(minor_tag) \
--tag fosrl/pangolin:ee-$(tag) \ --tag fosrl/pangolin:ee-$(tag) \
--push . --push .
build-ee-postgresql:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-release tag=<tag>"; \
exit 1; \
fi
docker buildx build \ docker buildx build \
--build-arg BUILD=enterprise \ --build-arg BUILD=enterprise \
--build-arg DATABASE=pg \ --build-arg DATABASE=pg \
@@ -44,6 +67,94 @@ build-release:
--tag fosrl/pangolin:ee-postgresql-$(tag) \ --tag fosrl/pangolin:ee-postgresql-$(tag) \
--push . --push .
build-release-arm:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-release-arm tag=<tag>"; \
exit 1; \
fi
@MAJOR_TAG=$$(echo $(tag) | cut -d. -f1); \
MINOR_TAG=$$(echo $(tag) | cut -d. -f1,2); \
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=sqlite \
--platform linux/arm64 \
--tag fosrl/pangolin:latest \
--tag fosrl/pangolin:$$MAJOR_TAG \
--tag fosrl/pangolin:$$MINOR_TAG \
--tag fosrl/pangolin:$(tag) \
--push . && \
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=pg \
--platform linux/arm64 \
--tag fosrl/pangolin:postgresql-latest \
--tag fosrl/pangolin:postgresql-$$MAJOR_TAG \
--tag fosrl/pangolin:postgresql-$$MINOR_TAG \
--tag fosrl/pangolin:postgresql-$(tag) \
--push . && \
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=sqlite \
--platform linux/arm64 \
--tag fosrl/pangolin:ee-latest \
--tag fosrl/pangolin:ee-$$MAJOR_TAG \
--tag fosrl/pangolin:ee-$$MINOR_TAG \
--tag fosrl/pangolin:ee-$(tag) \
--push . && \
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=pg \
--platform linux/arm64 \
--tag fosrl/pangolin:ee-postgresql-latest \
--tag fosrl/pangolin:ee-postgresql-$$MAJOR_TAG \
--tag fosrl/pangolin:ee-postgresql-$$MINOR_TAG \
--tag fosrl/pangolin:ee-postgresql-$(tag) \
--push .
build-release-amd:
@if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-release-amd tag=<tag>"; \
exit 1; \
fi
@MAJOR_TAG=$$(echo $(tag) | cut -d. -f1); \
MINOR_TAG=$$(echo $(tag) | cut -d. -f1,2); \
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=sqlite \
--platform linux/amd64 \
--tag fosrl/pangolin:latest \
--tag fosrl/pangolin:$$MAJOR_TAG \
--tag fosrl/pangolin:$$MINOR_TAG \
--tag fosrl/pangolin:$(tag) \
--push . && \
docker buildx build \
--build-arg BUILD=oss \
--build-arg DATABASE=pg \
--platform linux/amd64 \
--tag fosrl/pangolin:postgresql-latest \
--tag fosrl/pangolin:postgresql-$$MAJOR_TAG \
--tag fosrl/pangolin:postgresql-$$MINOR_TAG \
--tag fosrl/pangolin:postgresql-$(tag) \
--push . && \
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=sqlite \
--platform linux/amd64 \
--tag fosrl/pangolin:ee-latest \
--tag fosrl/pangolin:ee-$$MAJOR_TAG \
--tag fosrl/pangolin:ee-$$MINOR_TAG \
--tag fosrl/pangolin:ee-$(tag) \
--push . && \
docker buildx build \
--build-arg BUILD=enterprise \
--build-arg DATABASE=pg \
--platform linux/amd64 \
--tag fosrl/pangolin:ee-postgresql-latest \
--tag fosrl/pangolin:ee-postgresql-$$MAJOR_TAG \
--tag fosrl/pangolin:ee-postgresql-$$MINOR_TAG \
--tag fosrl/pangolin:ee-postgresql-$(tag) \
--push .
build-rc: build-rc:
@if [ -z "$(tag)" ]; then \ @if [ -z "$(tag)" ]; then \
echo "Error: tag is required. Usage: make build-release tag=<tag>"; \ echo "Error: tag is required. Usage: make build-release tag=<tag>"; \
@@ -80,10 +191,10 @@ build-arm:
build-x86: build-x86:
docker buildx build --platform linux/amd64 -t fosrl/pangolin:latest . docker buildx build --platform linux/amd64 -t fosrl/pangolin:latest .
build-sqlite: dev-build-sqlite:
docker build --build-arg DATABASE=sqlite -t fosrl/pangolin:latest . docker build --build-arg DATABASE=sqlite -t fosrl/pangolin:latest .
build-pg: dev-build-pg:
docker build --build-arg DATABASE=pg -t fosrl/pangolin:postgresql-latest . docker build --build-arg DATABASE=pg -t fosrl/pangolin:postgresql-latest .
test: test:

View File

@@ -31,7 +31,7 @@
[![Slack](https://img.shields.io/badge/chat-slack-yellow?style=flat-square&logo=slack)](https://pangolin.net/slack) [![Slack](https://img.shields.io/badge/chat-slack-yellow?style=flat-square&logo=slack)](https://pangolin.net/slack)
[![Docker](https://img.shields.io/docker/pulls/fosrl/pangolin?style=flat-square)](https://hub.docker.com/r/fosrl/pangolin) [![Docker](https://img.shields.io/docker/pulls/fosrl/pangolin?style=flat-square)](https://hub.docker.com/r/fosrl/pangolin)
![Stars](https://img.shields.io/github/stars/fosrl/pangolin?style=flat-square) ![Stars](https://img.shields.io/github/stars/fosrl/pangolin?style=flat-square)
[![YouTube](https://img.shields.io/badge/YouTube-red?logo=youtube&logoColor=white&style=flat-square)](https://www.youtube.com/@fossorial-app) [![YouTube](https://img.shields.io/badge/YouTube-red?logo=youtube&logoColor=white&style=flat-square)](https://www.youtube.com/@pangolin-net)
</div> </div>
@@ -41,7 +41,7 @@
</strong> </strong>
</p> </p>
Pangolin is a self-hosted tunneled reverse proxy server with identity and context aware access control, designed to easily expose and protect applications running anywhere. Pangolin acts as a central hub and connects isolated networks — even those behind restrictive firewalls — through encrypted tunnels, enabling easy access to remote services without opening ports or requiring a VPN. Pangolin is an open-source, identity-based remote access platform built on WireGuard that enables secure, seamless connectivity to private and public resources. Pangolin combines reverse proxy and VPN capabilities into one platform, providing browser-based access to web applications and client-based access to any private resources, all with zero-trust security and granular access control.
## Installation ## Installation
@@ -60,14 +60,20 @@ Pangolin is a self-hosted tunneled reverse proxy server with identity and contex
## Key Features ## Key Features
Pangolin packages everything you need for seamless application access and exposure into one cohesive platform.
| <img width=500 /> | <img width=500 /> | | <img width=500 /> | <img width=500 /> |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------| |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| **Manage applications in one place**<br /><br /> Pangolin provides a unified dashboard where you can monitor, configure, and secure all of your services regardless of where they are hosted. | <img src="public/screenshots/hero.png" width=500 /><tr></tr> | | **Connect remote networks with sites**<br /><br />Pangolin's lightweight site connectors create secure tunnels from remote networks without requiring public IP addresses or open ports. Sites make any network anywhere available for authorized access. | <img src="public/screenshots/sites.png" width=500 /><tr></tr> |
| **Reverse proxy across networks anywhere**<br /><br />Route traffic via tunnels to any private network. Pangolin works like a reverse proxy that spans multiple networks and handles routing, load balancing, health checking, and more to the right services on the other end. | <img src="public/screenshots/sites.png" width=500 /><tr></tr> | | **Browser-based reverse proxy access**<br /><br />Expose web applications through identity and context-aware tunneled reverse proxies. Pangolin handles routing, load balancing, health checking, and automatic SSL certificates without exposing your network directly to the internet. Users access applications through any web browser with authentication and granular access control. | <img src="public/clip.gif" width=500 /><tr></tr> |
| **Enforce identity and context aware rules**<br /><br />Protect your applications with identity and context aware rules such as SSO, OIDC, PIN, password, temporary share links, geolocation, IP, and more. | <img src="public/auth-diagram1.png" width=500 /><tr></tr> | | **Client-based private resource access**<br /><br />Access private resources like SSH servers, databases, RDP, and entire network ranges through Pangolin clients. Intelligent NAT traversal enables connections even through restrictive firewalls, while DNS aliases provide friendly names and fast connections to resources across all your sites. | <img src="public/screenshots/private-resources.png" width=500 /><tr></tr> |
| **Quickly connect Pangolin sites**<br /><br />Pangolin's lightweight [Newt](https://github.com/fosrl/newt) client runs in userspace and can run anywhere. Use it as a site connector to route traffic to backends across all of your environments. | <img src="public/clip.gif" width=500 /><tr></tr> | | **Zero-trust granular access**<br /><br />Grant users access to specific resources, not entire networks. Unlike traditional VPNs that expose full network access, Pangolin's zero-trust model ensures users can only reach the applications and services you explicitly define, reducing security risk and attack surface. | <img src="public/screenshots/user-devices.png" width=500 /><tr></tr> |
## Download Clients
Download the Pangolin client for your platform:
- [Mac](https://pangolin.net/downloads/mac)
- [Windows](https://pangolin.net/downloads/windows)
- [Linux](https://pangolin.net/downloads/linux)
## Get Started ## Get Started
@@ -89,3 +95,7 @@ Pangolin is dual licensed under the AGPL-3 and the [Fossorial Commercial License
## Contributions ## Contributions
Please see [CONTRIBUTING](./CONTRIBUTING.md) in the repository for guidelines and best practices. Please see [CONTRIBUTING](./CONTRIBUTING.md) in the repository for guidelines and best practices.
---
WireGuard® is a registered trademark of Jason A. Donenfeld.

View File

@@ -31,6 +31,7 @@ proxy-resources:
# - owen@pangolin.net # - owen@pangolin.net
# whitelist-users: # whitelist-users:
# - owen@pangolin.net # - owen@pangolin.net
# auto-login-idp: 1
headers: headers:
- name: X-Example-Header - name: X-Example-Header
value: example-value value: example-value

View File

@@ -5,14 +5,14 @@ meta {
} }
post { post {
url: http://localhost:4000/api/v1/auth/login url: http://localhost:3000/api/v1/auth/login
body: json body: json
auth: none auth: none
} }
body:json { body:json {
{ {
"email": "owen@pangolin.net", "email": "admin@fosrl.io",
"password": "Password123!" "password": "Password123!"
} }
} }

15
bruno/Olm/createOlm.bru Normal file
View File

@@ -0,0 +1,15 @@
meta {
name: createOlm
type: http
seq: 1
}
put {
url: http://localhost:3000/api/v1/olm
body: none
auth: inherit
}
settings {
encodeUrl: true
}

8
bruno/Olm/folder.bru Normal file
View File

@@ -0,0 +1,8 @@
meta {
name: Olm
seq: 15
}
auth {
mode: inherit
}

View File

@@ -1,6 +1,6 @@
{ {
"version": "1", "version": "1",
"name": "Pangolin Saas", "name": "Pangolin",
"type": "collection", "type": "collection",
"ignore": [ "ignore": [
"node_modules", "node_modules",

View File

@@ -0,0 +1,36 @@
import { CommandModule } from "yargs";
import { db, exitNodes } from "@server/db";
import { eq } from "drizzle-orm";
type ClearExitNodesArgs = { };
export const clearExitNodes: CommandModule<
{},
ClearExitNodesArgs
> = {
command: "clear-exit-nodes",
describe:
"Clear all exit nodes from the database",
// no args
builder: (yargs) => {
return yargs;
},
handler: async (argv: {}) => {
try {
console.log(`Clearing all exit nodes from the database`);
// Delete all exit nodes
const deletedCount = await db
.delete(exitNodes)
.where(eq(exitNodes.exitNodeId, exitNodes.exitNodeId)) .returning();; // delete all
console.log(`Deleted ${deletedCount.length} exit node(s) from the database`);
process.exit(0);
} catch (error) {
console.error("Error:", error);
process.exit(1);
}
}
};

View File

@@ -0,0 +1,284 @@
import { CommandModule } from "yargs";
import { db, idpOidcConfig, licenseKey } from "@server/db";
import { encrypt, decrypt } from "@server/lib/crypto";
import { configFilePath1, configFilePath2 } from "@server/lib/consts";
import { eq } from "drizzle-orm";
import fs from "fs";
import yaml from "js-yaml";
type RotateServerSecretArgs = {
oldSecret: string;
newSecret: string;
force?: boolean;
};
export const rotateServerSecret: CommandModule<
{},
RotateServerSecretArgs
> = {
command: "rotate-server-secret",
describe:
"Rotate the server secret by decrypting all encrypted values with the old secret and re-encrypting with a new secret",
builder: (yargs) => {
return yargs
.option("oldSecret", {
type: "string",
demandOption: true,
describe: "The current server secret (for verification)"
})
.option("newSecret", {
type: "string",
demandOption: true,
describe: "The new server secret to use"
})
.option("force", {
type: "boolean",
default: false,
describe:
"Force rotation even if the old secret doesn't match the config file. " +
"Use this if you know the old secret is correct but the config file is out of sync. " +
"WARNING: This will attempt to decrypt all values with the provided old secret. " +
"If the old secret is incorrect, the rotation will fail or corrupt data."
});
},
handler: async (argv: {
oldSecret: string;
newSecret: string;
force?: boolean;
}) => {
try {
// Determine which config file exists
const configPath = fs.existsSync(configFilePath1)
? configFilePath1
: fs.existsSync(configFilePath2)
? configFilePath2
: null;
if (!configPath) {
console.error(
"Error: Config file not found. Expected config.yml or config.yaml in the config directory."
);
process.exit(1);
}
// Read current config
const configContent = fs.readFileSync(configPath, "utf8");
const config = yaml.load(configContent) as any;
if (!config?.server?.secret) {
console.error(
"Error: No server secret found in config file. Cannot rotate."
);
process.exit(1);
}
const configSecret = config.server.secret;
const oldSecret = argv.oldSecret;
const newSecret = argv.newSecret;
const force = argv.force || false;
// Verify that the provided old secret matches the one in config
if (configSecret !== oldSecret) {
if (!force) {
console.error(
"Error: The provided old secret does not match the secret in the config file."
);
console.error(
"\nIf you are certain the old secret is correct and the config file is out of sync,"
);
console.error(
"you can use the --force flag to bypass this check."
);
console.error(
"\nWARNING: Using --force with an incorrect old secret will cause the rotation to fail"
);
console.error(
"or corrupt encrypted data. Only use --force if you are absolutely certain."
);
process.exit(1);
} else {
console.warn(
"\nWARNING: Using --force flag. Bypassing old secret verification."
);
console.warn(
"The provided old secret does not match the config file, but proceeding anyway."
);
console.warn(
"If the old secret is incorrect, this operation will fail or corrupt data.\n"
);
}
}
// Validate new secret
if (newSecret.length < 8) {
console.error(
"Error: New secret must be at least 8 characters long"
);
process.exit(1);
}
if (oldSecret === newSecret) {
console.error("Error: New secret must be different from old secret");
process.exit(1);
}
console.log("Starting server secret rotation...");
console.log("This will decrypt and re-encrypt all encrypted values in the database.");
// Read all data first
console.log("\nReading encrypted data from database...");
const idpConfigs = await db.select().from(idpOidcConfig);
const licenseKeys = await db.select().from(licenseKey);
console.log(`Found ${idpConfigs.length} OIDC IdP configuration(s)`);
console.log(`Found ${licenseKeys.length} license key(s)`);
// Prepare all decrypted and re-encrypted values
console.log("\nDecrypting and re-encrypting values...");
type IdpUpdate = {
idpOauthConfigId: number;
encryptedClientId: string;
encryptedClientSecret: string;
};
type LicenseKeyUpdate = {
oldLicenseKeyId: string;
newLicenseKeyId: string;
encryptedToken: string;
encryptedInstanceId: string;
};
const idpUpdates: IdpUpdate[] = [];
const licenseKeyUpdates: LicenseKeyUpdate[] = [];
// Process idpOidcConfig entries
for (const idpConfig of idpConfigs) {
try {
// Decrypt with old secret
const decryptedClientId = decrypt(idpConfig.clientId, oldSecret);
const decryptedClientSecret = decrypt(
idpConfig.clientSecret,
oldSecret
);
// Re-encrypt with new secret
const encryptedClientId = encrypt(decryptedClientId, newSecret);
const encryptedClientSecret = encrypt(
decryptedClientSecret,
newSecret
);
idpUpdates.push({
idpOauthConfigId: idpConfig.idpOauthConfigId,
encryptedClientId,
encryptedClientSecret
});
} catch (error) {
console.error(
`Error processing IdP config ${idpConfig.idpOauthConfigId}:`,
error
);
throw error;
}
}
// Process licenseKey entries
for (const key of licenseKeys) {
try {
// Decrypt with old secret
const decryptedLicenseKeyId = decrypt(key.licenseKeyId, oldSecret);
const decryptedToken = decrypt(key.token, oldSecret);
const decryptedInstanceId = decrypt(key.instanceId, oldSecret);
// Re-encrypt with new secret
const encryptedLicenseKeyId = encrypt(
decryptedLicenseKeyId,
newSecret
);
const encryptedToken = encrypt(decryptedToken, newSecret);
const encryptedInstanceId = encrypt(
decryptedInstanceId,
newSecret
);
licenseKeyUpdates.push({
oldLicenseKeyId: key.licenseKeyId,
newLicenseKeyId: encryptedLicenseKeyId,
encryptedToken,
encryptedInstanceId
});
} catch (error) {
console.error(
`Error processing license key ${key.licenseKeyId}:`,
error
);
throw error;
}
}
// Perform all database updates in a single transaction
console.log("\nUpdating database in transaction...");
await db.transaction(async (trx) => {
// Update idpOidcConfig entries
for (const update of idpUpdates) {
await trx
.update(idpOidcConfig)
.set({
clientId: update.encryptedClientId,
clientSecret: update.encryptedClientSecret
})
.where(
eq(
idpOidcConfig.idpOauthConfigId,
update.idpOauthConfigId
)
);
}
// Update licenseKey entries (delete old, insert new)
for (const update of licenseKeyUpdates) {
// Delete old entry
await trx
.delete(licenseKey)
.where(eq(licenseKey.licenseKeyId, update.oldLicenseKeyId));
// Insert new entry with re-encrypted values
await trx.insert(licenseKey).values({
licenseKeyId: update.newLicenseKeyId,
token: update.encryptedToken,
instanceId: update.encryptedInstanceId
});
}
});
console.log(`Rotated ${idpUpdates.length} OIDC IdP configuration(s)`);
console.log(`Rotated ${licenseKeyUpdates.length} license key(s)`);
// Update config file with new secret
console.log("\nUpdating config file...");
config.server.secret = newSecret;
const newConfigContent = yaml.dump(config, {
indent: 2,
lineWidth: -1
});
fs.writeFileSync(configPath, newConfigContent, "utf8");
console.log(`Updated config file: ${configPath}`);
console.log("\nServer secret rotation completed successfully!");
console.log(`\nSummary:`);
console.log(` - OIDC IdP configurations: ${idpUpdates.length}`);
console.log(` - License keys: ${licenseKeyUpdates.length}`);
console.log(
`\n IMPORTANT: Restart the server for the new secret to take effect.`
);
process.exit(0);
} catch (error) {
console.error("Error rotating server secret:", error);
process.exit(1);
}
}
};

View File

@@ -4,10 +4,14 @@ import yargs from "yargs";
import { hideBin } from "yargs/helpers"; import { hideBin } from "yargs/helpers";
import { setAdminCredentials } from "@cli/commands/setAdminCredentials"; import { setAdminCredentials } from "@cli/commands/setAdminCredentials";
import { resetUserSecurityKeys } from "@cli/commands/resetUserSecurityKeys"; import { resetUserSecurityKeys } from "@cli/commands/resetUserSecurityKeys";
import { clearExitNodes } from "./commands/clearExitNodes";
import { rotateServerSecret } from "./commands/rotateServerSecret";
yargs(hideBin(process.argv)) yargs(hideBin(process.argv))
.scriptName("pangctl") .scriptName("pangctl")
.command(setAdminCredentials) .command(setAdminCredentials)
.command(resetUserSecurityKeys) .command(resetUserSecurityKeys)
.command(clearExitNodes)
.command(rotateServerSecret)
.demandCommand() .demandCommand()
.help().argv; .help().argv;

View File

@@ -17,4 +17,4 @@
"lib": "@/lib", "lib": "@/lib",
"hooks": "@/hooks" "hooks": "@/hooks"
} }
} }

View File

@@ -25,4 +25,3 @@ flags:
disable_user_create_org: true disable_user_create_org: true
allow_raw_resources: true allow_raw_resources: true
enable_integration_api: true enable_integration_api: true
enable_clients: true

View File

@@ -35,7 +35,7 @@ services:
- 80:80 # Port for traefik because of the network_mode - 80:80 # Port for traefik because of the network_mode
traefik: traefik:
image: traefik:v3.5 image: traefik:v3.6
container_name: traefik container_name: traefik
restart: unless-stopped restart: unless-stopped
network_mode: service:gerbil # Ports appear on the gerbil service network_mode: service:gerbil # Ports appear on the gerbil service
@@ -52,4 +52,4 @@ networks:
default: default:
driver: bridge driver: bridge
name: pangolin name: pangolin
enable_ipv6: true enable_ipv6: true

View File

@@ -1,9 +1,7 @@
import { defineConfig } from "drizzle-kit"; import { defineConfig } from "drizzle-kit";
import path from "path"; import path from "path";
const schema = [ const schema = [path.join("server", "db", "pg", "schema")];
path.join("server", "db", "pg", "schema"),
];
export default defineConfig({ export default defineConfig({
dialect: "postgresql", dialect: "postgresql",

View File

@@ -2,9 +2,7 @@ import { APP_PATH } from "@server/lib/consts";
import { defineConfig } from "drizzle-kit"; import { defineConfig } from "drizzle-kit";
import path from "path"; import path from "path";
const schema = [ const schema = [path.join("server", "db", "sqlite", "schema")];
path.join("server", "db", "sqlite", "schema"),
];
export default defineConfig({ export default defineConfig({
dialect: "sqlite", dialect: "sqlite",

View File

@@ -24,20 +24,20 @@ const argv = yargs(hideBin(process.argv))
alias: "e", alias: "e",
describe: "Entry point file", describe: "Entry point file",
type: "string", type: "string",
demandOption: true, demandOption: true
}) })
.option("out", { .option("out", {
alias: "o", alias: "o",
describe: "Output file path", describe: "Output file path",
type: "string", type: "string",
demandOption: true, demandOption: true
}) })
.option("build", { .option("build", {
alias: "b", alias: "b",
describe: "Build type (oss, saas, enterprise)", describe: "Build type (oss, saas, enterprise)",
type: "string", type: "string",
choices: ["oss", "saas", "enterprise"], choices: ["oss", "saas", "enterprise"],
default: "oss", default: "oss"
}) })
.help() .help()
.alias("help", "h").argv; .alias("help", "h").argv;
@@ -66,7 +66,9 @@ function privateImportGuardPlugin() {
// Check if the importing file is NOT in server/private // Check if the importing file is NOT in server/private
const normalizedImporter = path.normalize(importingFile); const normalizedImporter = path.normalize(importingFile);
const isInServerPrivate = normalizedImporter.includes(path.normalize("server/private")); const isInServerPrivate = normalizedImporter.includes(
path.normalize("server/private")
);
if (!isInServerPrivate) { if (!isInServerPrivate) {
const violation = { const violation = {
@@ -79,8 +81,8 @@ function privateImportGuardPlugin() {
console.log(`PRIVATE IMPORT VIOLATION:`); console.log(`PRIVATE IMPORT VIOLATION:`);
console.log(` File: ${importingFile}`); console.log(` File: ${importingFile}`);
console.log(` Import: ${args.path}`); console.log(` Import: ${args.path}`);
console.log(` Resolve dir: ${args.resolveDir || 'N/A'}`); console.log(` Resolve dir: ${args.resolveDir || "N/A"}`);
console.log(''); console.log("");
} }
// Return null to let the default resolver handle it // Return null to let the default resolver handle it
@@ -89,16 +91,20 @@ function privateImportGuardPlugin() {
build.onEnd((result) => { build.onEnd((result) => {
if (violations.length > 0) { if (violations.length > 0) {
console.log(`\nSUMMARY: Found ${violations.length} private import violation(s):`); console.log(
`\nSUMMARY: Found ${violations.length} private import violation(s):`
);
violations.forEach((v, i) => { violations.forEach((v, i) => {
console.log(` ${i + 1}. ${path.relative(process.cwd(), v.file)} imports ${v.importPath}`); console.log(
` ${i + 1}. ${path.relative(process.cwd(), v.file)} imports ${v.importPath}`
);
}); });
console.log(''); console.log("");
result.errors.push({ result.errors.push({
text: `Private import violations detected: ${violations.length} violation(s) found`, text: `Private import violations detected: ${violations.length} violation(s) found`,
location: null, location: null,
notes: violations.map(v => ({ notes: violations.map((v) => ({
text: `${path.relative(process.cwd(), v.file)} imports ${v.importPath}`, text: `${path.relative(process.cwd(), v.file)} imports ${v.importPath}`,
location: null location: null
})) }))
@@ -121,7 +127,9 @@ function dynamicImportGuardPlugin() {
// Check if the importing file is NOT in server/private // Check if the importing file is NOT in server/private
const normalizedImporter = path.normalize(importingFile); const normalizedImporter = path.normalize(importingFile);
const isInServerPrivate = normalizedImporter.includes(path.normalize("server/private")); const isInServerPrivate = normalizedImporter.includes(
path.normalize("server/private")
);
if (isInServerPrivate) { if (isInServerPrivate) {
const violation = { const violation = {
@@ -134,8 +142,8 @@ function dynamicImportGuardPlugin() {
console.log(`DYNAMIC IMPORT VIOLATION:`); console.log(`DYNAMIC IMPORT VIOLATION:`);
console.log(` File: ${importingFile}`); console.log(` File: ${importingFile}`);
console.log(` Import: ${args.path}`); console.log(` Import: ${args.path}`);
console.log(` Resolve dir: ${args.resolveDir || 'N/A'}`); console.log(` Resolve dir: ${args.resolveDir || "N/A"}`);
console.log(''); console.log("");
} }
// Return null to let the default resolver handle it // Return null to let the default resolver handle it
@@ -144,16 +152,20 @@ function dynamicImportGuardPlugin() {
build.onEnd((result) => { build.onEnd((result) => {
if (violations.length > 0) { if (violations.length > 0) {
console.log(`\nSUMMARY: Found ${violations.length} dynamic import violation(s):`); console.log(
`\nSUMMARY: Found ${violations.length} dynamic import violation(s):`
);
violations.forEach((v, i) => { violations.forEach((v, i) => {
console.log(` ${i + 1}. ${path.relative(process.cwd(), v.file)} imports ${v.importPath}`); console.log(
` ${i + 1}. ${path.relative(process.cwd(), v.file)} imports ${v.importPath}`
);
}); });
console.log(''); console.log("");
result.errors.push({ result.errors.push({
text: `Dynamic import violations detected: ${violations.length} violation(s) found`, text: `Dynamic import violations detected: ${violations.length} violation(s) found`,
location: null, location: null,
notes: violations.map(v => ({ notes: violations.map((v) => ({
text: `${path.relative(process.cwd(), v.file)} imports ${v.importPath}`, text: `${path.relative(process.cwd(), v.file)} imports ${v.importPath}`,
location: null location: null
})) }))
@@ -172,21 +184,28 @@ function dynamicImportSwitcherPlugin(buildValue) {
const switches = []; const switches = [];
build.onStart(() => { build.onStart(() => {
console.log(`Dynamic import switcher using build type: ${buildValue}`); console.log(
`Dynamic import switcher using build type: ${buildValue}`
);
}); });
build.onResolve({ filter: /^#dynamic\// }, (args) => { build.onResolve({ filter: /^#dynamic\// }, (args) => {
// Extract the path after #dynamic/ // Extract the path after #dynamic/
const dynamicPath = args.path.replace(/^#dynamic\//, ''); const dynamicPath = args.path.replace(/^#dynamic\//, "");
// Determine the replacement based on build type // Determine the replacement based on build type
let replacement; let replacement;
if (buildValue === "oss") { if (buildValue === "oss") {
replacement = `#open/${dynamicPath}`; replacement = `#open/${dynamicPath}`;
} else if (buildValue === "saas" || buildValue === "enterprise") { } else if (
buildValue === "saas" ||
buildValue === "enterprise"
) {
replacement = `#closed/${dynamicPath}`; // We use #closed here so that the route guards dont complain after its been changed but this is the same as #private replacement = `#closed/${dynamicPath}`; // We use #closed here so that the route guards dont complain after its been changed but this is the same as #private
} else { } else {
console.warn(`Unknown build type '${buildValue}', defaulting to #open/`); console.warn(
`Unknown build type '${buildValue}', defaulting to #open/`
);
replacement = `#open/${dynamicPath}`; replacement = `#open/${dynamicPath}`;
} }
@@ -201,8 +220,10 @@ function dynamicImportSwitcherPlugin(buildValue) {
console.log(`DYNAMIC IMPORT SWITCH:`); console.log(`DYNAMIC IMPORT SWITCH:`);
console.log(` File: ${args.importer}`); console.log(` File: ${args.importer}`);
console.log(` Original: ${args.path}`); console.log(` Original: ${args.path}`);
console.log(` Switched to: ${replacement} (build: ${buildValue})`); console.log(
console.log(''); ` Switched to: ${replacement} (build: ${buildValue})`
);
console.log("");
// Rewrite the import path and let the normal resolution continue // Rewrite the import path and let the normal resolution continue
return build.resolve(replacement, { return build.resolve(replacement, {
@@ -215,12 +236,18 @@ function dynamicImportSwitcherPlugin(buildValue) {
build.onEnd((result) => { build.onEnd((result) => {
if (switches.length > 0) { if (switches.length > 0) {
console.log(`\nDYNAMIC IMPORT SUMMARY: Switched ${switches.length} import(s) for build type '${buildValue}':`); console.log(
`\nDYNAMIC IMPORT SUMMARY: Switched ${switches.length} import(s) for build type '${buildValue}':`
);
switches.forEach((s, i) => { switches.forEach((s, i) => {
console.log(` ${i + 1}. ${path.relative(process.cwd(), s.file)}`); console.log(
console.log(` ${s.originalPath} ${s.replacementPath}`); ` ${i + 1}. ${path.relative(process.cwd(), s.file)}`
);
console.log(
` ${s.originalPath}${s.replacementPath}`
);
}); });
console.log(''); console.log("");
} }
}); });
} }
@@ -235,7 +262,7 @@ esbuild
format: "esm", format: "esm",
minify: false, minify: false,
banner: { banner: {
js: banner, js: banner
}, },
platform: "node", platform: "node",
external: ["body-parser"], external: ["body-parser"],
@@ -244,20 +271,22 @@ esbuild
dynamicImportGuardPlugin(), dynamicImportGuardPlugin(),
dynamicImportSwitcherPlugin(argv.build), dynamicImportSwitcherPlugin(argv.build),
nodeExternalsPlugin({ nodeExternalsPlugin({
packagePath: getPackagePaths(), packagePath: getPackagePaths()
}), })
], ],
sourcemap: "inline", sourcemap: "inline",
target: "node22", target: "node22"
}) })
.then((result) => { .then((result) => {
// Check if there were any errors in the build result // Check if there were any errors in the build result
if (result.errors && result.errors.length > 0) { if (result.errors && result.errors.length > 0) {
console.error(`Build failed with ${result.errors.length} error(s):`); console.error(
`Build failed with ${result.errors.length} error(s):`
);
result.errors.forEach((error, i) => { result.errors.forEach((error, i) => {
console.error(`${i + 1}. ${error.text}`); console.error(`${i + 1}. ${error.text}`);
if (error.notes) { if (error.notes) {
error.notes.forEach(note => { error.notes.forEach((note) => {
console.error(` - ${note.text}`); console.error(` - ${note.text}`);
}); });
} }

View File

@@ -1,19 +1,19 @@
import tseslint from 'typescript-eslint'; import tseslint from "typescript-eslint";
export default tseslint.config({ export default tseslint.config({
files: ["**/*.{ts,tsx,js,jsx}"], files: ["**/*.{ts,tsx,js,jsx}"],
languageOptions: { languageOptions: {
parser: tseslint.parser, parser: tseslint.parser,
parserOptions: { parserOptions: {
ecmaVersion: "latest", ecmaVersion: "latest",
sourceType: "module", sourceType: "module",
ecmaFeatures: { ecmaFeatures: {
jsx: true jsx: true
} }
}
},
rules: {
semi: "error",
"prefer-const": "warn"
} }
}, });
rules: {
"semi": "error",
"prefer-const": "warn"
}
});

View File

@@ -9,10 +9,15 @@ services:
PARSERS: crowdsecurity/whitelists PARSERS: crowdsecurity/whitelists
ENROLL_TAGS: docker ENROLL_TAGS: docker
healthcheck: healthcheck:
interval: 10s test:
retries: 15 - CMD
timeout: 10s - cscli
test: ["CMD", "cscli", "capi", "status"] - lapi
- status
interval: 10s
timeout: 5s
retries: 3
start_period: 30s
labels: labels:
- "traefik.enable=false" # Disable traefik for crowdsec - "traefik.enable=false" # Disable traefik for crowdsec
volumes: volumes:

View File

@@ -44,7 +44,7 @@ http:
crowdsecAppsecUnreachableBlock: true # Block on unreachable crowdsecAppsecUnreachableBlock: true # Block on unreachable
crowdsecAppsecBodyLimit: 10485760 crowdsecAppsecBodyLimit: 10485760
crowdsecLapiKey: "PUT_YOUR_BOUNCER_KEY_HERE_OR_IT_WILL_NOT_WORK" # CrowdSec API key which you noted down later crowdsecLapiKey: "PUT_YOUR_BOUNCER_KEY_HERE_OR_IT_WILL_NOT_WORK" # CrowdSec API key which you noted down later
crowdsecLapiHost: crowdsec:8080 # CrowdSec crowdsecLapiHost: crowdsec:8080 # CrowdSec
crowdsecLapiScheme: http # CrowdSec API scheme crowdsecLapiScheme: http # CrowdSec API scheme
forwardedHeadersTrustedIPs: # Forwarded headers trusted IPs forwardedHeadersTrustedIPs: # Forwarded headers trusted IPs
- "0.0.0.0/0" # All IP addresses are trusted for forwarded headers (CHANGE MADE HERE) - "0.0.0.0/0" # All IP addresses are trusted for forwarded headers (CHANGE MADE HERE)
@@ -106,4 +106,13 @@ http:
api-service: api-service:
loadBalancer: loadBalancer:
servers: servers:
- url: "http://pangolin:3000" # API/WebSocket server - url: "http://pangolin:3000" # API/WebSocket server
tcp:
serversTransports:
pp-transport-v1:
proxyProtocol:
version: 1
pp-transport-v2:
proxyProtocol:
version: 2

View File

@@ -35,7 +35,7 @@ services:
- 80:80 - 80:80
{{end}} {{end}}
traefik: traefik:
image: docker.io/traefik:v3.5 image: docker.io/traefik:v3.6
container_name: traefik container_name: traefik
restart: unless-stopped restart: unless-stopped
{{if .InstallGerbil}} {{if .InstallGerbil}}
@@ -59,4 +59,4 @@ networks:
default: default:
driver: bridge driver: bridge
name: pangolin name: pangolin
{{if .EnableIPv6}} enable_ipv6: true{{end}} {{if .EnableIPv6}} enable_ipv6: true{{end}}

View File

@@ -73,7 +73,7 @@ func installDocker() error {
case strings.Contains(osRelease, "ID=ubuntu"): case strings.Contains(osRelease, "ID=ubuntu"):
installCmd = exec.Command("bash", "-c", fmt.Sprintf(` installCmd = exec.Command("bash", "-c", fmt.Sprintf(`
apt-get update && apt-get update &&
apt-get install -y apt-transport-https ca-certificates curl software-properties-common && apt-get install -y apt-transport-https ca-certificates curl gpg &&
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg &&
echo "deb [arch=%s signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list && echo "deb [arch=%s signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list &&
apt-get update && apt-get update &&
@@ -82,7 +82,7 @@ func installDocker() error {
case strings.Contains(osRelease, "ID=debian"): case strings.Contains(osRelease, "ID=debian"):
installCmd = exec.Command("bash", "-c", fmt.Sprintf(` installCmd = exec.Command("bash", "-c", fmt.Sprintf(`
apt-get update && apt-get update &&
apt-get install -y apt-transport-https ca-certificates curl software-properties-common && apt-get install -y apt-transport-https ca-certificates curl gpg &&
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg &&
echo "deb [arch=%s signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list && echo "deb [arch=%s signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list &&
apt-get update && apt-get update &&

View File

@@ -3,8 +3,8 @@ module installer
go 1.24.0 go 1.24.0
require ( require (
golang.org/x/term v0.36.0 golang.org/x/term v0.38.0
gopkg.in/yaml.v3 v3.0.1 gopkg.in/yaml.v3 v3.0.1
) )
require golang.org/x/sys v0.37.0 // indirect require golang.org/x/sys v0.39.0 // indirect

View File

@@ -1,7 +1,7 @@
golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ= golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=
golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/term v0.36.0 h1:zMPR+aF8gfksFprF/Nc/rd1wRS1EI6nDBGyWAvDzx2Q= golang.org/x/term v0.38.0 h1:PQ5pkm/rLO6HnxFR7N2lJHOZX6Kez5Y1gDSJla6jo7Q=
golang.org/x/term v0.36.0/go.mod h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss= golang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=

View File

@@ -54,8 +54,8 @@ type Config struct {
type SupportedContainer string type SupportedContainer string
const ( const (
Docker SupportedContainer = "docker" Docker SupportedContainer = "docker"
Podman SupportedContainer = "podman" Podman SupportedContainer = "podman"
Undefined SupportedContainer = "undefined" Undefined SupportedContainer = "undefined"
) )
@@ -160,7 +160,7 @@ func main() {
} else { } else {
alreadyInstalled = true alreadyInstalled = true
fmt.Println("Looks like you already installed Pangolin!") fmt.Println("Looks like you already installed Pangolin!")
// Check if MaxMind database exists and offer to update it // Check if MaxMind database exists and offer to update it
fmt.Println("\n=== MaxMind Database Update ===") fmt.Println("\n=== MaxMind Database Update ===")
if _, err := os.Stat("config/GeoLite2-Country.mmdb"); err == nil { if _, err := os.Stat("config/GeoLite2-Country.mmdb"); err == nil {
@@ -209,8 +209,8 @@ func main() {
parsedURL, err := url.Parse(appConfig.DashboardURL) parsedURL, err := url.Parse(appConfig.DashboardURL)
if err != nil { if err != nil {
fmt.Printf("Error parsing URL: %v\n", err) fmt.Printf("Error parsing URL: %v\n", err)
return return
} }
config.DashboardDomain = parsedURL.Hostname() config.DashboardDomain = parsedURL.Hostname()
@@ -238,12 +238,11 @@ func main() {
} }
fmt.Println("CrowdSec installed successfully!") fmt.Println("CrowdSec installed successfully!")
return
} }
} }
} }
if !alreadyInstalled { if !alreadyInstalled || config.DoCrowdsecInstall {
// Setup Token Section // Setup Token Section
fmt.Println("\n=== Setup Token ===") fmt.Println("\n=== Setup Token ===")
@@ -360,7 +359,7 @@ func collectUserInput(reader *bufio.Reader) Config {
config.EmailSMTPPort = readInt(reader, "Enter SMTP port (default 587)", 587) config.EmailSMTPPort = readInt(reader, "Enter SMTP port (default 587)", 587)
config.EmailSMTPUser = readString(reader, "Enter SMTP username", "") config.EmailSMTPUser = readString(reader, "Enter SMTP username", "")
config.EmailSMTPPass = readString(reader, "Enter SMTP password", "") // Should this be readPassword? config.EmailSMTPPass = readString(reader, "Enter SMTP password", "") // Should this be readPassword?
config.EmailNoReply = readString(reader, "Enter no-reply email address", "") config.EmailNoReply = readString(reader, "Enter no-reply email address (often the same as SMTP username)", "")
} }
// Validate required fields // Validate required fields
@@ -372,6 +371,10 @@ func collectUserInput(reader *bufio.Reader) Config {
fmt.Println("Error: Let's Encrypt email is required") fmt.Println("Error: Let's Encrypt email is required")
os.Exit(1) os.Exit(1)
} }
if config.EnableEmail && config.EmailNoReply == "" {
fmt.Println("Error: No-reply email address is required when email is enabled")
os.Exit(1)
}
// Advanced configuration // Advanced configuration
@@ -644,28 +647,28 @@ func checkPortsAvailable(port int) error {
func downloadMaxMindDatabase() error { func downloadMaxMindDatabase() error {
fmt.Println("Downloading MaxMind GeoLite2 Country database...") fmt.Println("Downloading MaxMind GeoLite2 Country database...")
// Download the GeoLite2 Country database // Download the GeoLite2 Country database
if err := run("curl", "-L", "-o", "GeoLite2-Country.tar.gz", if err := run("curl", "-L", "-o", "GeoLite2-Country.tar.gz",
"https://github.com/GitSquared/node-geolite2-redist/raw/refs/heads/master/redist/GeoLite2-Country.tar.gz"); err != nil { "https://github.com/GitSquared/node-geolite2-redist/raw/refs/heads/master/redist/GeoLite2-Country.tar.gz"); err != nil {
return fmt.Errorf("failed to download GeoLite2 database: %v", err) return fmt.Errorf("failed to download GeoLite2 database: %v", err)
} }
// Extract the database // Extract the database
if err := run("tar", "-xzf", "GeoLite2-Country.tar.gz"); err != nil { if err := run("tar", "-xzf", "GeoLite2-Country.tar.gz"); err != nil {
return fmt.Errorf("failed to extract GeoLite2 database: %v", err) return fmt.Errorf("failed to extract GeoLite2 database: %v", err)
} }
// Find the .mmdb file and move it to the config directory // Find the .mmdb file and move it to the config directory
if err := run("bash", "-c", "mv GeoLite2-Country_*/GeoLite2-Country.mmdb config/"); err != nil { if err := run("bash", "-c", "mv GeoLite2-Country_*/GeoLite2-Country.mmdb config/"); err != nil {
return fmt.Errorf("failed to move GeoLite2 database to config directory: %v", err) return fmt.Errorf("failed to move GeoLite2 database to config directory: %v", err)
} }
// Clean up the downloaded files // Clean up the downloaded files
if err := run("rm", "-rf", "GeoLite2-Country.tar.gz", "GeoLite2-Country_*"); err != nil { if err := run("rm", "-rf", "GeoLite2-Country.tar.gz", "GeoLite2-Country_*"); err != nil {
fmt.Printf("Warning: failed to clean up temporary files: %v\n", err) fmt.Printf("Warning: failed to clean up temporary files: %v\n", err)
} }
fmt.Println("MaxMind GeoLite2 Country database downloaded successfully!") fmt.Println("MaxMind GeoLite2 Country database downloaded successfully!")
return nil return nil
} }

View File

@@ -1,12 +1,12 @@
{ {
"setupCreate": "Създайте своя организация, сайт и ресурси", "setupCreate": "Създайте организацията, сайта и ресурсите",
"setupNewOrg": "Нова организация", "setupNewOrg": "Нова организация",
"setupCreateOrg": "Създаване на организация", "setupCreateOrg": "Създаване на организация",
"setupCreateResources": "Създаване на ресурси", "setupCreateResources": "Създаване на ресурси",
"setupOrgName": "Име на организацията", "setupOrgName": "Име на организацията",
"orgDisplayName": "Това е публичното име на вашата организация.", "orgDisplayName": "Това е публичното име на организацията.",
"orgId": "Идентификатор на организация", "orgId": "Идентификатор на организация",
"setupIdentifierMessage": "Това е уникалният идентификатор на вашата организация. Това е различно от публичното ѝ име.", "setupIdentifierMessage": "Това е уникалният идентификатор за организацията.",
"setupErrorIdentifier": "Идентификаторът на организация вече е зает. Моля, изберете друг.", "setupErrorIdentifier": "Идентификаторът на организация вече е зает. Моля, изберете друг.",
"componentsErrorNoMemberCreate": "В момента не сте част от организация. Създайте организация, за да продължите.", "componentsErrorNoMemberCreate": "В момента не сте част от организация. Създайте организация, за да продължите.",
"componentsErrorNoMember": "В момента не сте част от организация.", "componentsErrorNoMember": "В момента не сте част от организация.",
@@ -50,10 +50,10 @@
"siteMessageRemove": "След премахване, сайтът вече няма да бъде достъпен. Всички цели, свързани със сайта, също ще бъдат премахнати.", "siteMessageRemove": "След премахване, сайтът вече няма да бъде достъпен. Всички цели, свързани със сайта, също ще бъдат премахнати.",
"siteQuestionRemove": "Сигурни ли сте, че искате да премахнете сайта от организацията?", "siteQuestionRemove": "Сигурни ли сте, че искате да премахнете сайта от организацията?",
"siteManageSites": "Управление на сайтове", "siteManageSites": "Управление на сайтове",
"siteDescription": "Позволете свързване към вашата мрежа чрез сигурни тунели", "siteDescription": "Създайте и управлявайте сайтове, за да осигурите свързаност със частни мрежи",
"siteCreate": "Създайте сайт", "siteCreate": "Създайте сайт",
"siteCreateDescription2": "Следвайте стъпките по-долу, за да създадете и свържете нов сайт", "siteCreateDescription2": "Следвайте стъпките по-долу, за да създадете и свържете нов сайт",
"siteCreateDescription": "Създайте нов сайт, за да започнете да свързвате вашите ресурси", "siteCreateDescription": "Създайте нов сайт, за да започнете да свързвате ресурси",
"close": "Затвори", "close": "Затвори",
"siteErrorCreate": "Грешка при създаване на сайт", "siteErrorCreate": "Грешка при създаване на сайт",
"siteErrorCreateKeyPair": "Ключова двойка или настройки по подразбиране на сайта не са намерени", "siteErrorCreateKeyPair": "Ключова двойка или настройки по подразбиране на сайта не са намерени",
@@ -74,7 +74,7 @@
"siteInstallNewt": "Инсталирайте Newt", "siteInstallNewt": "Инсталирайте Newt",
"siteInstallNewtDescription": "Пуснете Newt на вашата система", "siteInstallNewtDescription": "Пуснете Newt на вашата система",
"WgConfiguration": "WireGuard конфигурация", "WgConfiguration": "WireGuard конфигурация",
"WgConfigurationDescription": "Използвайте следната конфигурация, за да се свържете с вашата мрежа", "WgConfigurationDescription": "Използвайте следната конфигурация, за да се свържете с мрежата",
"operatingSystem": "Операционна система", "operatingSystem": "Операционна система",
"commands": "Команди", "commands": "Команди",
"recommended": "Препоръчано", "recommended": "Препоръчано",
@@ -87,32 +87,32 @@
"siteUpdated": "Сайтът е обновен", "siteUpdated": "Сайтът е обновен",
"siteUpdatedDescription": "Сайтът е актуализиран.", "siteUpdatedDescription": "Сайтът е актуализиран.",
"siteGeneralDescription": "Конфигурирайте общи настройки за този сайт", "siteGeneralDescription": "Конфигурирайте общи настройки за този сайт",
"siteSettingDescription": "Настройте настройките на вашия сайт", "siteSettingDescription": "Конфигурирайте настройките на сайта",
"siteSetting": "Настройки на {siteName}", "siteSetting": "Настройки на {siteName}",
"siteNewtTunnel": "Newt тунел (Препоръчително)", "siteNewtTunnel": "Нов Сайт (Препоръчително)",
"siteNewtTunnelDescription": "Най-лесният начин да създадете входна точка в мрежата си. Без допълнително конфигуриране.", "siteNewtTunnelDescription": "Най-лесният начин да създадете точка за достъп до всяка мрежа. Няма нужда от допълнителни настройки.",
"siteWg": "Основен WireGuard", "siteWg": "Основен WireGuard",
"siteWgDescription": "Use any WireGuard client to establish a tunnel. Manual NAT setup required. ONLY WORKS ON SELF HOSTED NODES", "siteWgDescription": "Use any WireGuard client to establish a tunnel. Manual NAT setup required. ONLY WORKS ON SELF HOSTED NODES",
"siteWgDescriptionSaas": "Използвайте всеки WireGuard клиент за установяване на тунел. Ръчно нат задаване е необходимо. РАБОТИ САМО НА СОБСТВЕНИ УЗЛИ.", "siteWgDescriptionSaas": "Използвайте всеки WireGuard клиент за установяване на тунел. Ръчно нат задаване е необходимо. РАБОТИ САМО НА СОБСТВЕНИ УЗЛИ.",
"siteLocalDescription": "Local resources only. No tunneling. ONLY WORKS ON SELF HOSTED NODES", "siteLocalDescription": "Local resources only. No tunneling. ONLY WORKS ON SELF HOSTED NODES",
"siteLocalDescriptionSaas": "Само локални ресурси. Без тунелиране. Достъпно само на отдалечени възли.", "siteLocalDescriptionSaas": "Само локални ресурси. Без тунелиране. Достъпно само на отдалечени възли.",
"siteSeeAll": "Вижте всички сайтове", "siteSeeAll": "Вижте всички сайтове",
"siteTunnelDescription": "Определете как искате да се свържете с вашия сайт", "siteTunnelDescription": "Определете как искате да се свържете със сайта",
"siteNewtCredentials": "Newt Удостоверения", "siteNewtCredentials": "Пълномощия",
"siteNewtCredentialsDescription": "Това е така, защото Newt ще се удостовери със сървъра", "siteNewtCredentialsDescription": "Това е как сайтът ще се удостоверява с сървъра",
"siteCredentialsSave": "Запазете вашите удостоверения", "siteCredentialsSave": "Запазете Пълномощията",
"siteCredentialsSaveDescription": "Ще можете да виждате това само веднъж. Уверете се да го копирате на сигурно място.", "siteCredentialsSaveDescription": "Ще можете да виждате това само веднъж. Уверете се да го копирате на сигурно място.",
"siteInfo": "Информация за сайта", "siteInfo": "Информация за сайта",
"status": "Статус", "status": "Статус",
"shareTitle": "Управление на връзки за споделяне", "shareTitle": "Управление на връзки за споделяне",
"shareDescription": "Създайте споделяеми връзки, за да разрешите временен или постоянен достъп до вашите ресурси", "shareDescription": "Създайте споделими връзки, за да предоставите временен или постоянен достъп до прокси ресурсите",
"shareSearch": "Търсене на връзки за споделяне...", "shareSearch": "Търсене на връзки за споделяне...",
"shareCreate": "Създайте връзка за споделяне", "shareCreate": "Създайте връзка за споделяне",
"shareErrorDelete": "Неуспешно изтриване на връзката", "shareErrorDelete": "Неуспешно изтриване на връзката",
"shareErrorDeleteMessage": "Възникна грешка при изтриване на връзката", "shareErrorDeleteMessage": "Възникна грешка при изтриване на връзката",
"shareDeleted": "Връзката беше изтрита", "shareDeleted": "Връзката беше изтрита",
"shareDeletedDescription": "Връзката беше премахната", "shareDeletedDescription": "Връзката беше премахната",
"shareTokenDescription": "Вашият достъп токен може да се предава по два начина: като параметър на URL или в заглавките на заявката. Тези трябва да се предават от клиента при всяка заявка за удостоверен достъп.", "shareTokenDescription": "Достъпният токен може да бъде предаван по два начина: като параметър или в хедърите на заявките. Те трябва да бъдат предавани от клиента при всяка заявка за удостоверен достъп.",
"accessToken": "Достъп Токен", "accessToken": "Достъп Токен",
"usageExamples": "Примери за използване", "usageExamples": "Примери за използване",
"tokenId": "Токен ID", "tokenId": "Токен ID",
@@ -121,7 +121,7 @@
"importantNote": "Важно бележка", "importantNote": "Важно бележка",
"shareImportantDescription": "По съображения за сигурност, използването на заглавки се препоръчва пред параметри на заявка, когато е възможно, тъй като параметри на заявка могат да бъдат записвани в логове на сървъра или в историята на браузъра.", "shareImportantDescription": "По съображения за сигурност, използването на заглавки се препоръчва пред параметри на заявка, когато е възможно, тъй като параметри на заявка могат да бъдат записвани в логове на сървъра или в историята на браузъра.",
"token": "Токен", "token": "Токен",
"shareTokenSecurety": "Пазете вашият достъп токен в безопасност. Не го споделяйте в публичнодостъпни зони или клиентски код.", "shareTokenSecurety": "Запазете сигурността на токена за достъп. Не го споделяйте в общодостъпни зони или в клиентски код.",
"shareErrorFetchResource": "Неуспешно вземане на ресурси", "shareErrorFetchResource": "Неуспешно вземане на ресурси",
"shareErrorFetchResourceDescription": "Възникна грешка при опит за вземане на ресурсите", "shareErrorFetchResourceDescription": "Възникна грешка при опит за вземане на ресурсите",
"shareErrorCreate": "Неуспешно създаване на връзка за споделяне", "shareErrorCreate": "Неуспешно създаване на връзка за споделяне",
@@ -131,7 +131,7 @@
"expireIn": "Изтече", "expireIn": "Изтече",
"neverExpire": "Никога не изтича", "neverExpire": "Никога не изтича",
"shareExpireDescription": "Времето на изтичане е колко дълго връзката ще бъде използваема и ще предоставя достъп до ресурса. След това време, връзката няма да работи и потребителите, които са я използвали, ще загубят достъп до ресурса.", "shareExpireDescription": "Времето на изтичане е колко дълго връзката ще бъде използваема и ще предоставя достъп до ресурса. След това време, връзката няма да работи и потребителите, които са я използвали, ще загубят достъп до ресурса.",
"shareSeeOnce": "Ще можете да видите тази връзка само веднъж. Уверете се да я копирате.", "shareSeeOnce": "Ще можете да видите този линк само веднъж. Уверете се, че го копирате.",
"shareAccessHint": "Всеки с тази връзка може да има достъп до ресурса. Споделяйте я с внимание.", "shareAccessHint": "Всеки с тази връзка може да има достъп до ресурса. Споделяйте я с внимание.",
"shareTokenUsage": "Вижте използването на токена за достъп", "shareTokenUsage": "Вижте използването на токена за достъп",
"createLink": "Създаване на връзка", "createLink": "Създаване на връзка",
@@ -144,8 +144,10 @@
"expires": "Изтича", "expires": "Изтича",
"never": "Никога", "never": "Никога",
"shareErrorSelectResource": "Моля, изберете ресурс", "shareErrorSelectResource": "Моля, изберете ресурс",
"resourceTitle": "Управление на ресурси", "proxyResourceTitle": "Управление на обществени ресурси",
"resourceDescription": "Създайте сигурни проксита към вашите частни приложения", "proxyResourceDescription": "Създайте и управлявайте ресурси, които са общодостъпни чрез уеб браузър.",
"clientResourceTitle": "Управление на частни ресурси",
"clientResourceDescription": "Създайте и управлявайте ресурси, които са достъпни само чрез свързан клиент.",
"resourcesSearch": "Търсене на ресурси...", "resourcesSearch": "Търсене на ресурси...",
"resourceAdd": "Добавете ресурс", "resourceAdd": "Добавете ресурс",
"resourceErrorDelte": "Грешка при изтриване на ресурс", "resourceErrorDelte": "Грешка при изтриване на ресурс",
@@ -155,9 +157,9 @@
"resourceMessageRemove": "След като се премахне, ресурсът няма повече да бъде достъпен. Всички цели, свързани с ресурса, също ще бъдат премахнати.", "resourceMessageRemove": "След като се премахне, ресурсът няма повече да бъде достъпен. Всички цели, свързани с ресурса, също ще бъдат премахнати.",
"resourceQuestionRemove": "Сигурни ли сте, че искате да премахнете ресурса от организацията?", "resourceQuestionRemove": "Сигурни ли сте, че искате да премахнете ресурса от организацията?",
"resourceHTTP": "HTTPS ресурс", "resourceHTTP": "HTTPS ресурс",
"resourceHTTPDescription": "Прокси заявки към вашето приложение през HTTPS с помощта на субдомейн или базов домейн.", "resourceHTTPDescription": "Прокси заяви към приложението по HTTPS използвайки поддомейн или базов домейн.",
"resourceRaw": "Суров TCP/UDP ресурс", "resourceRaw": "Суров TCP/UDP ресурс",
"resourceRawDescription": "Прокси заявки към вашето приложение през TCP/UDP с помощта на номер на порт.", "resourceRawDescription": "Прокси заяви към приложението по TCP/UDP използвайки номер на порт. Това работи само когато сайтовете са свързани към възли.",
"resourceCreate": "Създайте ресурс", "resourceCreate": "Създайте ресурс",
"resourceCreateDescription": "Следвайте стъпките по-долу, за да създадете нов ресурс", "resourceCreateDescription": "Следвайте стъпките по-долу, за да създадете нов ресурс",
"resourceSeeAll": "Вижте всички ресурси", "resourceSeeAll": "Вижте всички ресурси",
@@ -171,22 +173,22 @@
"noCountryFound": "Не е намерена държава.", "noCountryFound": "Не е намерена държава.",
"siteSelectionDescription": "Този сайт ще осигури свързаност до целта.", "siteSelectionDescription": "Този сайт ще осигури свързаност до целта.",
"resourceType": "Тип ресурс", "resourceType": "Тип ресурс",
"resourceTypeDescription": "Определете как искате да получите достъп до вашия ресурс", "resourceTypeDescription": "Определете как да се достъпи ресурсът",
"resourceHTTPSSettings": "HTTPS настройки", "resourceHTTPSSettings": "HTTPS настройки",
"resourceHTTPSSettingsDescription": "Конфигурирайте как вашият ресурс ще бъде достъпен през HTTPS", "resourceHTTPSSettingsDescription": "Конфигурирайте как ресурсът ще бъде достъпен по HTTPS",
"domainType": "Тип домейн", "domainType": "Тип домейн",
"subdomain": "Субдомейн", "subdomain": "Субдомейн",
"baseDomain": "Базов домейн", "baseDomain": "Базов домейн",
"subdomnainDescription": "Субдомейнът, в който ще бъде достъпен вашият ресурс.", "subdomnainDescription": "Поддомейнът, където ресурсът ще бъде достъпен.",
"resourceRawSettings": "TCP/UDP настройки", "resourceRawSettings": "TCP/UDP настройки",
"resourceRawSettingsDescription": "Конфигурирайте как вашият ресурс ще бъде достъпен през TCP/UDP", "resourceRawSettingsDescription": "Конфигурирайте как ресурсът ще бъде достъпен чрез TCP/UDP",
"protocol": "Протокол", "protocol": "Протокол",
"protocolSelect": "Изберете протокол", "protocolSelect": "Изберете протокол",
"resourcePortNumber": "Номер на порт", "resourcePortNumber": "Номер на порт",
"resourcePortNumberDescription": "Външен номер на порт за прокси заявки.", "resourcePortNumberDescription": "Външен номер на порт за прокси заявки.",
"cancel": "Отмяна", "cancel": "Отмяна",
"resourceConfig": "Конфигурационни фрагменти", "resourceConfig": "Конфигурационни фрагменти",
"resourceConfigDescription": "Копирайте и поставете тези конфигурационни фрагменти за настройка на вашия TCP/UDP ресурс", "resourceConfigDescription": "Копирайте и поставете тези конфигурационни отрязъци, за да настроите TCP/UDP ресурса",
"resourceAddEntrypoints": "Traefik: Добавете Входни точки", "resourceAddEntrypoints": "Traefik: Добавете Входни точки",
"resourceExposePorts": "Gerbil: Изложете портове в Docker Compose", "resourceExposePorts": "Gerbil: Изложете портове в Docker Compose",
"resourceLearnRaw": "Научете как да конфигурирате TCP/UDP ресурси", "resourceLearnRaw": "Научете как да конфигурирате TCP/UDP ресурси",
@@ -202,14 +204,14 @@
"proxy": "Прокси", "proxy": "Прокси",
"internal": "Вътрешен", "internal": "Вътрешен",
"rules": "Правила", "rules": "Правила",
"resourceSettingDescription": "Конфигурирайте настройките на вашия ресурс", "resourceSettingDescription": "Конфигурирайте настройките на ресурса",
"resourceSetting": "Настройки на {resourceName}", "resourceSetting": "Настройки на {resourceName}",
"alwaysAllow": "Винаги позволявай", "alwaysAllow": "Заобикаляне на Ауторизацията",
"alwaysDeny": "Винаги отказвай", "alwaysDeny": "Блокиране на Достъпа",
"passToAuth": "Прехвърляне към удостоверяване", "passToAuth": "Прехвърляне към удостоверяване",
"orgSettingsDescription": "Конфигурирайте общите настройки на вашата организация", "orgSettingsDescription": "Конфигурирайте настройките на организацията",
"orgGeneralSettings": "Настройки на организацията", "orgGeneralSettings": "Настройки на организацията",
"orgGeneralSettingsDescription": "Управлявайте детайлите и конфигурацията на вашата организация", "orgGeneralSettingsDescription": "Управлявайте детайлите и конфигурацията на организацията",
"saveGeneralSettings": "Запазете общите настройки", "saveGeneralSettings": "Запазете общите настройки",
"saveSettings": "Запазване на настройките", "saveSettings": "Запазване на настройките",
"orgDangerZone": "Опасна зона", "orgDangerZone": "Опасна зона",
@@ -232,7 +234,7 @@
"orgMissing": "Липсва идентификатор на организация", "orgMissing": "Липсва идентификатор на организация",
"orgMissingMessage": "Невъзможност за регенериране на покана без идентификатор на организация.", "orgMissingMessage": "Невъзможност за регенериране на покана без идентификатор на организация.",
"accessUsersManage": "Управление на потребители", "accessUsersManage": "Управление на потребители",
"accessUsersDescription": "Поканете потребители и ги добавете в роли, за да управлявате достъпа до вашата организация", "accessUsersDescription": "Канете и управлявайте потребители с достъп до тази организация",
"accessUsersSearch": "Търсене на потребители...", "accessUsersSearch": "Търсене на потребители...",
"accessUserCreate": "Създайте потребител", "accessUserCreate": "Създайте потребител",
"accessUserRemove": "Премахнете потребител", "accessUserRemove": "Премахнете потребител",
@@ -241,13 +243,13 @@
"role": "Роля", "role": "Роля",
"nameRequired": "Името е задължително", "nameRequired": "Името е задължително",
"accessRolesManage": "Управление на роли", "accessRolesManage": "Управление на роли",
"accessRolesDescription": "Конфигурирайте роли, за да управлявате достъпа до вашата организация", "accessRolesDescription": "Създайте и управлявайте роли за потребители в организацията",
"accessRolesSearch": "Търсене на роли...", "accessRolesSearch": "Търсене на роли...",
"accessRolesAdd": "Добавете роля", "accessRolesAdd": "Добавете роля",
"accessRoleDelete": "Изтриване на роля", "accessRoleDelete": "Изтриване на роля",
"description": "Описание", "description": "Описание",
"inviteTitle": "Отворени покани", "inviteTitle": "Отворени покани",
"inviteDescription": "Управление на вашите покани към други потребители", "inviteDescription": "Управлявайте покани за други потребители да се присъединят към организацията",
"inviteSearch": "Търсене на покани...", "inviteSearch": "Търсене на покани...",
"minutes": "Минути", "minutes": "Минути",
"hours": "Часове", "hours": "Часове",
@@ -261,13 +263,13 @@
"apiKeysErrorCreate": "Грешка при създаване на API ключ", "apiKeysErrorCreate": "Грешка при създаване на API ключ",
"apiKeysErrorSetPermission": "Грешка при задаване на разрешения", "apiKeysErrorSetPermission": "Грешка при задаване на разрешения",
"apiKeysCreate": "Генерирайте API ключ", "apiKeysCreate": "Генерирайте API ключ",
"apiKeysCreateDescription": "Генерирайте нов API ключ за вашата организация", "apiKeysCreateDescription": "Създайте нов API ключ за организацията",
"apiKeysGeneralSettings": "Разрешения", "apiKeysGeneralSettings": "Разрешения",
"apiKeysGeneralSettingsDescription": "Определете какво може да прави този API ключ", "apiKeysGeneralSettingsDescription": "Определете какво може да прави този API ключ",
"apiKeysList": "Вашият API ключ", "apiKeysList": "Нов API Ключ",
"apiKeysSave": "Запазване на вашия API ключ", "apiKeysSave": "Запазете API Ключа",
"apiKeysSaveDescription": "Ще можете да виждате това само веднъж. Уверете се да го копирате на сигурно място.", "apiKeysSaveDescription": "Ще можете да виждате това само веднъж. Уверете се да го копирате на сигурно място.",
"apiKeysInfo": "Вашият API ключ е:", "apiKeysInfo": "API ключът е:",
"apiKeysConfirmCopy": "Копирах API ключа", "apiKeysConfirmCopy": "Копирах API ключа",
"generate": "Генериране", "generate": "Генериране",
"done": "Готово", "done": "Готово",
@@ -424,7 +426,7 @@
"userCreated": "Потребителят е създаден", "userCreated": "Потребителят е създаден",
"userCreatedDescription": "Потребителят беше успешно създаден.", "userCreatedDescription": "Потребителят беше успешно създаден.",
"userTypeInternal": "Вътрешен потребител", "userTypeInternal": "Вътрешен потребител",
"userTypeInternalDescription": "Поканете потребител да се присъедини директно към вашата организация.", "userTypeInternalDescription": "Поканете потребител да се присъедини директно към организацията.",
"userTypeExternal": "Външен потребител", "userTypeExternal": "Външен потребител",
"userTypeExternalDescription": "Създайте потребител с външен доставчик на идентичност.", "userTypeExternalDescription": "Създайте потребител с външен доставчик на идентичност.",
"accessUserCreateDescription": "Следвайте стъпките по-долу, за да създадете нов потребител", "accessUserCreateDescription": "Следвайте стъпките по-долу, за да създадете нов потребител",
@@ -436,6 +438,16 @@
"inviteEmailSent": "Изпратете покана по имейл до потребителя", "inviteEmailSent": "Изпратете покана по имейл до потребителя",
"inviteValid": "Валидна за", "inviteValid": "Валидна за",
"selectDuration": "Изберете продължителност", "selectDuration": "Изберете продължителност",
"selectResource": "Изберете Ресурс",
"filterByResource": "Филтрирай По Ресурс",
"resetFilters": "Нулиране на Филтрите",
"totalBlocked": "Заявки Блокирани От Pangolin",
"totalRequests": "Общо Заявки",
"requestsByCountry": "Заявки По Държава",
"requestsByDay": "Заявки По Ден",
"blocked": "Блокирани",
"allowed": "Позволени",
"topCountries": "Топ Държави",
"accessRoleSelect": "Изберете роля", "accessRoleSelect": "Изберете роля",
"inviteEmailSentDescription": "Имейлът е изпратен до потребителя с достъпния линк по-долу. Те трябва да достъпят линка, за да приемат поканата.", "inviteEmailSentDescription": "Имейлът е изпратен до потребителя с достъпния линк по-долу. Те трябва да достъпят линка, за да приемат поканата.",
"inviteSentDescription": "Потребителят е поканен. Те трябва да достъпят линка по-долу, за да приемат поканата.", "inviteSentDescription": "Потребителят е поканен. Те трябва да достъпят линка по-долу, за да приемат поканата.",
@@ -458,13 +470,13 @@
"accessControlsSubmit": "Запазване на контролите за достъп", "accessControlsSubmit": "Запазване на контролите за достъп",
"roles": "Роли", "roles": "Роли",
"accessUsersRoles": "Управление на потребители и роли", "accessUsersRoles": "Управление на потребители и роли",
"accessUsersRolesDescription": "Поканете потребители и ги добавете към роли, за да управлявате достъпа до вашата организация", "accessUsersRolesDescription": "Поканете потребители и ги добавете към роли, за да управлявате достъпа до организацията",
"key": "Ключ", "key": "Ключ",
"createdAt": "Създаден на", "createdAt": "Създаден на",
"proxyErrorInvalidHeader": "Невалидна стойност за заглавие на хоста. Използвайте формат на име на домейн, или оставете празно поле за да премахнете персонализирано заглавие на хост.", "proxyErrorInvalidHeader": "Невалидна стойност за заглавие на хоста. Използвайте формат на име на домейн, или оставете празно поле за да премахнете персонализирано заглавие на хост.",
"proxyErrorTls": "Невалидно име на TLS сървър. Използвайте формат на име на домейн, или оставете празно за да премахнете името на TLS сървъра.", "proxyErrorTls": "Невалидно име на TLS сървър. Използвайте формат на име на домейн, или оставете празно за да премахнете името на TLS сървъра.",
"proxyEnableSSL": "Активиране на SSL", "proxyEnableSSL": "Активиране на SSL",
"proxyEnableSSLDescription": "Активиране на SSL/TLS криптиране за сигурни HTTPS връзки към вашите цели.", "proxyEnableSSLDescription": "Активирайте SSL/TLS криптиране за сигурни HTTPS връзки към целите.",
"target": "Цел", "target": "Цел",
"configureTarget": "Конфигуриране на цели", "configureTarget": "Конфигуриране на цели",
"targetErrorFetch": "Неуспешно извличане на цели", "targetErrorFetch": "Неуспешно извличане на цели",
@@ -480,29 +492,29 @@
"targetsErrorUpdate": "Неуспешно актуализиране на целите", "targetsErrorUpdate": "Неуспешно актуализиране на целите",
"targetsErrorUpdateDescription": "Възникна грешка при актуализиране на целите", "targetsErrorUpdateDescription": "Възникна грешка при актуализиране на целите",
"targetTlsUpdate": "Настройките на TLS са актуализирани", "targetTlsUpdate": "Настройките на TLS са актуализирани",
"targetTlsUpdateDescription": "Вашите настройки на TLS бяха успешно актуализирани", "targetTlsUpdateDescription": "Настройките за TLS бяха успешно актуализирани",
"targetErrorTlsUpdate": "Неуспешно актуализиране на настройки на TLS", "targetErrorTlsUpdate": "Неуспешно актуализиране на настройки на TLS",
"targetErrorTlsUpdateDescription": "Възникна грешка при актуализиране на настройки на TLS", "targetErrorTlsUpdateDescription": "Възникна грешка при актуализиране на настройки на TLS",
"proxyUpdated": "Настройките на прокси са актуализирани", "proxyUpdated": "Настройките на прокси са актуализирани",
"proxyUpdatedDescription": "Вашите настройки на прокси бяха успешно актуализирани", "proxyUpdatedDescription": "Настройките за прокси бяха успешно актуализирани",
"proxyErrorUpdate": "Неуспешно актуализиране на настройки на прокси", "proxyErrorUpdate": "Неуспешно актуализиране на настройки на прокси",
"proxyErrorUpdateDescription": "Възникна грешка при актуализиране на настройки на прокси", "proxyErrorUpdateDescription": "Възникна грешка при актуализиране на настройки на прокси",
"targetAddr": "IP / Хост име", "targetAddr": "Хост",
"targetPort": "Порт", "targetPort": "Порт",
"targetProtocol": "Протокол", "targetProtocol": "Протокол",
"targetTlsSettings": "Конфигурация на защитена връзка", "targetTlsSettings": "Конфигурация на защитена връзка",
"targetTlsSettingsDescription": "Конфигурирайте SSL/TLS настройките за вашия ресурс", "targetTlsSettingsDescription": "Конфигурирайте SSL/TLS настройки за ресурса",
"targetTlsSettingsAdvanced": "Разширени TLS настройки", "targetTlsSettingsAdvanced": "Разширени TLS настройки",
"targetTlsSni": "Имя на TLS сървър", "targetTlsSni": "Имя на TLS сървър",
"targetTlsSniDescription": "Името на TLS сървъра за използване за SNI. Оставете празно, за да използвате подразбиране.", "targetTlsSniDescription": "Името на TLS сървъра за използване за SNI. Оставете празно, за да използвате подразбиране.",
"targetTlsSubmit": "Запазване на настройките", "targetTlsSubmit": "Запазване на настройките",
"targets": "Конфигурация на целите", "targets": "Конфигурация на целите",
"targetsDescription": "Настройте цели за маршрутиране на трафик към вашите бекенд услуги", "targetsDescription": "Настройте целите да пренасочват трафика към бекенд услугите",
"targetStickySessions": "Активиране на постоянни сесии", "targetStickySessions": "Активиране на постоянни сесии",
"targetStickySessionsDescription": "Запазване на връзките със същото задно целево място за цялата сесия.", "targetStickySessionsDescription": "Запазване на връзките със същото задно целево място за цялата сесия.",
"methodSelect": "Изберете метод", "methodSelect": "Изберете метод",
"targetSubmit": "Добавяне на цел", "targetSubmit": "Добавяне на цел",
"targetNoOne": "Този ресурс няма цели. Добавете цел, за да конфигурирате къде да изпращате заявки към вашия бекенд.", "targetNoOne": "Този ресурс няма цели. Добавете цел, за да конфигурирате къде да се изпращат заявките към бекенда.",
"targetNoOneDescription": "Добавянето на повече от една цел ще активира натоварването на баланса.", "targetNoOneDescription": "Добавянето на повече от една цел ще активира натоварването на баланса.",
"targetsSubmit": "Запазване на целите", "targetsSubmit": "Запазване на целите",
"addTarget": "Добавете цел", "addTarget": "Добавете цел",
@@ -516,9 +528,11 @@
"targetCreatedDescription": "Целта беше успешно създадена", "targetCreatedDescription": "Целта беше успешно създадена",
"targetErrorCreate": "Неуспешно създаване на целта", "targetErrorCreate": "Неуспешно създаване на целта",
"targetErrorCreateDescription": "Възникна грешка при създаването на целта", "targetErrorCreateDescription": "Възникна грешка при създаването на целта",
"tlsServerName": "TLS Име на Сървъра",
"tlsServerNameDescription": "TLS името на сървъра, което ще се използва за SNI",
"save": "Запази", "save": "Запази",
"proxyAdditional": "Допълнителни настройки на прокси", "proxyAdditional": "Допълнителни настройки на прокси",
"proxyAdditionalDescription": "Конфигурирайте как вашият ресурс обработва прокси настройки", "proxyAdditionalDescription": "Конфигурирайте как ресурсът обработва настройките на прокси",
"proxyCustomHeader": "Персонализиран хост заглавие", "proxyCustomHeader": "Персонализиран хост заглавие",
"proxyCustomHeaderDescription": "Хост заглавието, което да зададете при прокси заявките. Оставете празно, за да използвате подразбиране.", "proxyCustomHeaderDescription": "Хост заглавието, което да зададете при прокси заявките. Оставете празно, за да използвате подразбиране.",
"proxyAdditionalSubmit": "Запазване на прокси настройките", "proxyAdditionalSubmit": "Запазване на прокси настройките",
@@ -558,7 +572,7 @@
"rulesMatchType": "Тип на съвпадение", "rulesMatchType": "Тип на съвпадение",
"value": "Стойност", "value": "Стойност",
"rulesAbout": "Относно правилата", "rulesAbout": "Относно правилата",
"rulesAboutDescription": "Правилата ви позволяват да контролирате достъпа до вашия ресурс въз основа на набор от критерии. Можете да създавате правила за разрешаване или отказ на достъп въз основа на IP адрес или URL път.", "rulesAboutDescription": "Правилата ви позволяват да контролирате достъпа до ресурса въз основа на набор от критерии. Можете да създадете правила за позволяване или отказ на достъп въз основа на IP адрес или URL път.",
"rulesActions": "Действия", "rulesActions": "Действия",
"rulesActionAlwaysAllow": "Винаги позволи: заобикаля всички методи за автентикация", "rulesActionAlwaysAllow": "Винаги позволи: заобикаля всички методи за автентикация",
"rulesActionAlwaysDeny": "Винаги отказвай: блокиране на всички заявки; не може да се направи опит за автентикация", "rulesActionAlwaysDeny": "Винаги отказвай: блокиране на всички заявки; не може да се направи опит за автентикация",
@@ -570,7 +584,7 @@
"rulesEnable": "Активирай правилата", "rulesEnable": "Активирай правилата",
"rulesEnableDescription": "Активиране или деактивиране на оценката на правилата за този ресурс", "rulesEnableDescription": "Активиране или деактивиране на оценката на правилата за този ресурс",
"rulesResource": "Конфигурация на правилата за ресурси", "rulesResource": "Конфигурация на правилата за ресурси",
"rulesResourceDescription": "Конфигурирайте правила, за да контролирате достъпа до вашия ресурс", "rulesResourceDescription": "Конфигурирайте правила за контролиране на достъпа до ресурса",
"ruleSubmit": "Добави правило", "ruleSubmit": "Добави правило",
"rulesNoOne": "Няма правила. Добавете правило чрез формуляра.", "rulesNoOne": "Няма правила. Добавете правило чрез формуляра.",
"rulesOrder": "Правилата се оценяват по приоритет в нарастващ ред.", "rulesOrder": "Правилата се оценяват по приоритет в нарастващ ред.",
@@ -586,7 +600,7 @@
"none": "Няма", "none": "Няма",
"unknown": "Неизвестно", "unknown": "Неизвестно",
"resources": "Ресурси", "resources": "Ресурси",
"resourcesDescription": "Ресурсите са проксита за приложения, работещи във вашата частна мрежа. Създайте ресурс за всеки HTTP/HTTPS или суров TCP/UDP услуга във вашата частна мрежа. Всеки ресурс трябва да бъде свързан със сайт, за да се осигури частна, сигурна свързаност чрез криптиран WireGuard тунел.", "resourcesDescription": "Ресурсите са прокси към приложения, работещи в частната мрежа. Създайте ресурс за всяка HTTP/HTTPS или сурова TCP/UDP услуга във вашата частна мрежа. Всеки ресурс трябва да бъде свързан със сайт, за да се позволи частна, сигурна свързаност през криптиран WireGuard тунел.",
"resourcesWireGuardConnect": "Сигурно свързване с криптиране на WireGuard", "resourcesWireGuardConnect": "Сигурно свързване с криптиране на WireGuard",
"resourcesMultipleAuthenticationMethods": "Конфигуриране на множество методи за автентикация", "resourcesMultipleAuthenticationMethods": "Конфигуриране на множество методи за автентикация",
"resourcesUsersRolesAccess": "Контрол на достъпа, базиран на потребители и роли", "resourcesUsersRolesAccess": "Контрол на достъпа, базиран на потребители и роли",
@@ -597,7 +611,7 @@
"resourceSelect": "Изберете ресурс", "resourceSelect": "Изберете ресурс",
"shareLinks": "Споделени връзки", "shareLinks": "Споделени връзки",
"share": "Споделени връзки", "share": "Споделени връзки",
"shareDescription2": "Създайте споделени връзки към вашите ресурси. Връзките осигуряват временно или неограничено достъп до вашия ресурс. Можете да конфигурирате продължителността на изтичане на връзката при създаването й.", "shareDescription2": "Създайте връзки за достъп до ресурси. Връзките предоставят временен или неограничен достъп до вашия ресурс. Можете да конфигурирате продължителността на изтичане на връзката, когато я създавате.",
"shareEasyCreate": "Лесно за създаване и споделяне", "shareEasyCreate": "Лесно за създаване и споделяне",
"shareConfigurableExpirationDuration": "Конфигурируемо време на изтичане", "shareConfigurableExpirationDuration": "Конфигурируемо време на изтичане",
"shareSecureAndRevocable": "Сигурни и отменяеми", "shareSecureAndRevocable": "Сигурни и отменяеми",
@@ -607,19 +621,19 @@
"unknownCommand": "Неизвестна команда", "unknownCommand": "Неизвестна команда",
"newtErrorFetchReleases": "Неуспешно получаване на информация за изданието: {err}", "newtErrorFetchReleases": "Неуспешно получаване на информация за изданието: {err}",
"newtErrorFetchLatest": "Грешка при получаването на последното издание: {err}", "newtErrorFetchLatest": "Грешка при получаването на последното издание: {err}",
"newtEndpoint": "Newt Изходен пункт", "newtEndpoint": "Крайна точка",
"newtId": "Newt ID", "newtId": "Идентификационен номер",
"newtSecretKey": "Newt Secret Key", "newtSecretKey": "Секретен ключ",
"architecture": "Архитектура", "architecture": "Архитектура",
"sites": "Сайтове", "sites": "Сайтове",
"siteWgAnyClients": "Използвайте всеки WireGuard клиент за свързване. Ще трябва да адресирате вашите вътрешни ресурси, използвайки IP на равностойния.", "siteWgAnyClients": "Използвайте клиент на WireGuard, за да се свържете. Ще трябва да използвате вътрешните ресурси чрез IP адреса на връстника.",
"siteWgCompatibleAllClients": "Съвместим с всички WireGuard клиенти", "siteWgCompatibleAllClients": "Съвместим с всички WireGuard клиенти",
"siteWgManualConfigurationRequired": "Необходима е ръчна конфигурация", "siteWgManualConfigurationRequired": "Необходима е ръчна конфигурация",
"userErrorNotAdminOrOwner": "Потребителят не е администратор или собственик", "userErrorNotAdminOrOwner": "Потребителят не е администратор или собственик",
"pangolinSettings": "Настройки - Панголин", "pangolinSettings": "Настройки - Панголин",
"accessRoleYour": "Вашата роля:", "accessRoleYour": "Вашата роля:",
"accessRoleSelect2": "Изберете роля", "accessRoleSelect2": "Изберете роли",
"accessUserSelect": "Изберете потребител", "accessUserSelect": "Изберете потребители",
"otpEmailEnter": "Въведете имейл", "otpEmailEnter": "Въведете имейл",
"otpEmailEnterDescription": "Натиснете Enter, за да добавите имейл след като сте го въведели в полето за въвеждане.", "otpEmailEnterDescription": "Натиснете Enter, за да добавите имейл след като сте го въведели в полето за въвеждане.",
"otpEmailErrorInvalid": "Невалиден имейл адрес. Wilcard (*) трябва да е цялата част от локалния адрес.", "otpEmailErrorInvalid": "Невалиден имейл адрес. Wilcard (*) трябва да е цялата част от локалния адрес.",
@@ -671,7 +685,7 @@
"resourcePincodeSetupTitle": "Задай ПИН код", "resourcePincodeSetupTitle": "Задай ПИН код",
"resourcePincodeSetupTitleDescription": "Задайте ПИН код, за да защитите този ресурс", "resourcePincodeSetupTitleDescription": "Задайте ПИН код, за да защитите този ресурс",
"resourceRoleDescription": "Администраторите винаги могат да имат достъп до този ресурс.", "resourceRoleDescription": "Администраторите винаги могат да имат достъп до този ресурс.",
"resourceUsersRoles": "Потребители и роли", "resourceUsersRoles": "Контроли за достъп",
"resourceUsersRolesDescription": "Конфигурирайте кои потребители и роли могат да посещават този ресурс", "resourceUsersRolesDescription": "Конфигурирайте кои потребители и роли могат да посещават този ресурс",
"resourceUsersRolesSubmit": "Запазете потребители и роли", "resourceUsersRolesSubmit": "Запазете потребители и роли",
"resourceWhitelistSave": "Успешно запазено", "resourceWhitelistSave": "Успешно запазено",
@@ -702,6 +716,7 @@
"resourceTransferSubmit": "Прехвърлете ресурс", "resourceTransferSubmit": "Прехвърлете ресурс",
"siteDestination": "Дестинационен сайт", "siteDestination": "Дестинационен сайт",
"searchSites": "Търси сайтове", "searchSites": "Търси сайтове",
"countries": "Държави",
"accessRoleCreate": "Създайте роля", "accessRoleCreate": "Създайте роля",
"accessRoleCreateDescription": "Създайте нова роля за групиране на потребители и управление на техните разрешения.", "accessRoleCreateDescription": "Създайте нова роля за групиране на потребители и управление на техните разрешения.",
"accessRoleCreateSubmit": "Създайте роля", "accessRoleCreateSubmit": "Създайте роля",
@@ -766,15 +781,15 @@
"idpOidcConfigure": "Конфигурация на OAuth2/OIDC", "idpOidcConfigure": "Конфигурация на OAuth2/OIDC",
"idpOidcConfigureDescription": "Конфигурирайте OAuth2/OIDC доставчика на крайни точки и кредити", "idpOidcConfigureDescription": "Конфигурирайте OAuth2/OIDC доставчика на крайни точки и кредити",
"idpClientId": "ID на клиента", "idpClientId": "ID на клиента",
"idpClientIdDescription": "OAuth2 идентификационен номер на клиента от вашия доставчик на идентичност", "idpClientIdDescription": "OAuth2 идентификационен клиент от доставчика на идентичност",
"idpClientSecret": "Секретен код на клиента", "idpClientSecret": "Секретен код на клиента",
"idpClientSecretDescription": "OAuth2 секретен код на клиента от вашия доставчик на идентичност", "idpClientSecretDescription": "OAuth2 секретен клиент от доставчика на идентичност",
"idpAuthUrl": "URL за удостоверение", "idpAuthUrl": "URL за удостоверение",
"idpAuthUrlDescription": "OAuth2 крайна точка за удостоверяване URL", "idpAuthUrlDescription": "OAuth2 крайна точка за удостоверяване URL",
"idpTokenUrl": "URL на токена", "idpTokenUrl": "URL на токена",
"idpTokenUrlDescription": "OAuth2 крайна точка на токена URL", "idpTokenUrlDescription": "OAuth2 крайна точка на токена URL",
"idpOidcConfigureAlert": "Важно информация", "idpOidcConfigureAlert": "Важно информация",
"idpOidcConfigureAlertDescription": "След създаването на доставчика на идентичност ще е необходимо да конфигурирате URL за обратна връзка в настройките на вашия доставчик на идентичност. URL за обратна връзка ще бъде предоставен след успешно създаване.", "idpOidcConfigureAlertDescription": "След създаването на доставчика на идентичност, ще трябва да конфигурирате адреса за callback в настройките на доставчика на идентичност. Адресът за callback ще бъде предоставен след успешно създаване.",
"idpToken": "Конфигуриране на токените", "idpToken": "Конфигуриране на токените",
"idpTokenDescription": "Конфигурирайте как да извлечете информация за потребителя от ID токена", "idpTokenDescription": "Конфигурирайте как да извлечете информация за потребителя от ID токена",
"idpJmespathAbout": "Относно JMESPath", "idpJmespathAbout": "Относно JMESPath",
@@ -791,7 +806,7 @@
"idpSubmit": "Създайте доставчик на идентичност", "idpSubmit": "Създайте доставчик на идентичност",
"orgPolicies": "Организационни политики", "orgPolicies": "Организационни политики",
"idpSettings": "{idpName} Настройки", "idpSettings": "{idpName} Настройки",
"idpCreateSettingsDescription": "Конфигурирайте настройките за вашия доставчик на идентичност", "idpCreateSettingsDescription": "Конфигурирайте настройките за доставчика на идентичност",
"roleMapping": "Ролева карта", "roleMapping": "Ролева карта",
"orgMapping": "Организационна карта", "orgMapping": "Организационна карта",
"orgPoliciesSearch": "Търсене на организационни политики...", "orgPoliciesSearch": "Търсене на организационни политики...",
@@ -826,7 +841,7 @@
"idpUpdatedDescription": "Идентификационният доставчик беше актуализиран успешно", "idpUpdatedDescription": "Идентификационният доставчик беше актуализиран успешно",
"redirectUrl": "URL за пренасочване", "redirectUrl": "URL за пренасочване",
"redirectUrlAbout": "За URL за пренасочване", "redirectUrlAbout": "За URL за пренасочване",
"redirectUrlAboutDescription": "Това е URL, към който потребителите ще бъдат пренасочени след удостоверяване. Трябва да конфигурирате този URL в настройките на вашия доставчик на идентификация.", "redirectUrlAboutDescription": "Това е URL адресът, към който потребителите ще бъдат пренасочени след удостоверяване. Трябва да конфигурирате този URL адрес в настройките на доставчика на идентичност.",
"pangolinAuth": "Authent - Pangolin", "pangolinAuth": "Authent - Pangolin",
"verificationCodeLengthRequirements": "Вашият код за удостоверяване трябва да бъде 8 символа.", "verificationCodeLengthRequirements": "Вашият код за удостоверяване трябва да бъде 8 символа.",
"errorOccurred": "Възникна грешка", "errorOccurred": "Възникна грешка",
@@ -909,6 +924,10 @@
"passwordResetSent": "Ще изпратим код за нулиране на паролата на този имейл адрес.", "passwordResetSent": "Ще изпратим код за нулиране на паролата на този имейл адрес.",
"passwordResetCode": "Код за нулиране", "passwordResetCode": "Код за нулиране",
"passwordResetCodeDescription": "Проверете имейла си за код за нулиране.", "passwordResetCodeDescription": "Проверете имейла си за код за нулиране.",
"generatePasswordResetCode": "Генериране на код за нулиране на парола",
"passwordResetCodeGenerated": "Кодът за нулиране на парола е генериран",
"passwordResetCodeGeneratedDescription": "Споделете този код с потребителя. Той може да го използва, за да нулира паролата си.",
"passwordResetUrl": "URL за нулиране",
"passwordNew": "Нова парола", "passwordNew": "Нова парола",
"passwordNewConfirm": "Потвърдете новата парола", "passwordNewConfirm": "Потвърдете новата парола",
"changePassword": "Промяна на парола", "changePassword": "Промяна на парола",
@@ -926,6 +945,9 @@
"pincodeAuth": "Код на удостоверителя", "pincodeAuth": "Код на удостоверителя",
"pincodeSubmit2": "Изпрати код", "pincodeSubmit2": "Изпрати код",
"passwordResetSubmit": "Заявка за нулиране", "passwordResetSubmit": "Заявка за нулиране",
"passwordResetAlreadyHaveCode": "Въведете код за нулиране на парола",
"passwordResetSmtpRequired": "Моля, свържете се с вашия администратор",
"passwordResetSmtpRequiredDescription": "Кодът за нулиране на парола е задължителен за нулиране на паролата ви. Моля, свържете се с вашия администратор за помощ.",
"passwordBack": "Назад към Парола", "passwordBack": "Назад към Парола",
"loginBack": "Връщане към вход", "loginBack": "Връщане към вход",
"signup": "Регистрация", "signup": "Регистрация",
@@ -1091,12 +1113,15 @@
"actionListSiteResources": "Списък на ресурсите на сайта", "actionListSiteResources": "Списък на ресурсите на сайта",
"actionUpdateSiteResource": "Актуализиране на сайт ресурс", "actionUpdateSiteResource": "Актуализиране на сайт ресурс",
"actionListInvitations": "Списък с покани", "actionListInvitations": "Списък с покани",
"actionExportLogs": "Експортиране на дневници",
"actionViewLogs": "Преглед на дневници",
"noneSelected": "Нищо не е избрано", "noneSelected": "Нищо не е избрано",
"orgNotFound2": "Няма намерени организации.", "orgNotFound2": "Няма намерени организации.",
"searchProgress": "Търсене...", "searchProgress": "Търсене...",
"create": "Създаване", "create": "Създаване",
"orgs": "Организации", "orgs": "Организации",
"loginError": "Възникна грешка при влизане", "loginError": "Възникна грешка при влизане",
"loginRequiredForDevice": "Необходим е вход за удостоверяване на вашето устройство.",
"passwordForgot": "Забравена парола?", "passwordForgot": "Забравена парола?",
"otpAuth": "Двуфакторно удостоверяване", "otpAuth": "Двуфакторно удостоверяване",
"otpAuthDescription": "Въведете кода от приложението за удостоверяване или един от вашите резервни кодове за еднократна употреба.", "otpAuthDescription": "Въведете кода от приложението за удостоверяване или един от вашите резервни кодове за еднократна употреба.",
@@ -1151,37 +1176,47 @@
"sidebarHome": "Начало", "sidebarHome": "Начало",
"sidebarSites": "Сайтове", "sidebarSites": "Сайтове",
"sidebarResources": "Ресурси", "sidebarResources": "Ресурси",
"sidebarProxyResources": "Публично",
"sidebarClientResources": "Частно",
"sidebarAccessControl": "Контрол на достъпа", "sidebarAccessControl": "Контрол на достъпа",
"sidebarLogsAndAnalytics": "Дневници и анализи",
"sidebarUsers": "Потребители", "sidebarUsers": "Потребители",
"sidebarAdmin": "Администратор",
"sidebarInvitations": "Покани", "sidebarInvitations": "Покани",
"sidebarRoles": "Роли", "sidebarRoles": "Роли",
"sidebarShareableLinks": "Споделени връзки", "sidebarShareableLinks": "Връзки",
"sidebarApiKeys": "API ключове", "sidebarApiKeys": "API ключове",
"sidebarSettings": "Настройки", "sidebarSettings": "Настройки",
"sidebarAllUsers": "Всички потребители", "sidebarAllUsers": "Всички потребители",
"sidebarIdentityProviders": "Идентификационни доставчици", "sidebarIdentityProviders": "Идентификационни доставчици",
"sidebarLicense": "Лиценз", "sidebarLicense": "Лиценз",
"sidebarClients": "Клиенти", "sidebarClients": "Клиенти",
"sidebarUserDevices": "Потребители",
"sidebarMachineClients": "Машини",
"sidebarDomains": "Домейни", "sidebarDomains": "Домейни",
"sidebarGeneral": "Общи",
"sidebarLogAndAnalytics": "Лог & Анализи",
"sidebarBluePrints": "Чертежи", "sidebarBluePrints": "Чертежи",
"sidebarOrganization": "Организация",
"sidebarLogsAnalytics": "Анализи",
"blueprints": "Чертежи", "blueprints": "Чертежи",
"blueprintsDescription": "Чертежите са декларативни YAML конфигурации, които определят вашите ресурси и техните настройки", "blueprintsDescription": "Прилагайте декларативни конфигурации и преглеждайте предишни изпълнения",
"blueprintAdd": "Добави Чертеж", "blueprintAdd": "Добави Чертеж",
"blueprintGoBack": "Виж всички Чертежи", "blueprintGoBack": "Виж всички Чертежи",
"blueprintCreate": "Създай Чертеж", "blueprintCreate": "Създай Чертеж",
"blueprintCreateDescription2": "Следвайте стъпките по-долу, за да създадете и приложите нов чертеж", "blueprintCreateDescription2": "Следвайте стъпките по-долу, за да създадете и приложите нов чертеж",
"blueprintDetails": "Детайли за Чертежа", "blueprintDetails": "Детайли на чертежа",
"blueprintDetailsDescription": "Вижте детайлите за изпълнението на чертежа", "blueprintDetailsDescription": "Вижте резултата от приложените чертежи и всички възникнали грешки",
"blueprintInfo": "Информация за Чертежа", "blueprintInfo": "Информация за Чертежа",
"message": "Съобщение", "message": "Съобщение",
"blueprintContentsDescription": "Дефинирайте YAML съдържанието, описващо вашата инфраструктура", "blueprintContentsDescription": "Определете съдържанието на YAML, описващо инфраструктурата",
"blueprintErrorCreateDescription": "Възникна грешка при прилагането на чертежа", "blueprintErrorCreateDescription": "Възникна грешка при прилагането на чертежа",
"blueprintErrorCreate": "Грешка при създаването на чертеж", "blueprintErrorCreate": "Грешка при създаването на чертеж",
"searchBlueprintProgress": "Търси чертежи...", "searchBlueprintProgress": "Търси чертежи...",
"appliedAt": "Приложено във", "appliedAt": "Приложено във",
"source": "Източник", "source": "Източник",
"contents": "Съдържание", "contents": "Съдържание",
"parsedContents": "Анализирано съдържание", "parsedContents": "Парсирано съдържание (само за четене)",
"enableDockerSocket": "Активиране на Docker Чернова", "enableDockerSocket": "Активиране на Docker Чернова",
"enableDockerSocketDescription": "Активиране на Docker Socket маркировка за изтегляне на етикети на чернова. Пътят на гнездото трябва да бъде предоставен на Newt.", "enableDockerSocketDescription": "Активиране на Docker Socket маркировка за изтегляне на етикети на чернова. Пътят на гнездото трябва да бъде предоставен на Newt.",
"enableDockerSocketLink": "Научете повече", "enableDockerSocketLink": "Научете повече",
@@ -1230,15 +1265,15 @@
"loading": "Зареждане", "loading": "Зареждане",
"restart": "Рестарт", "restart": "Рестарт",
"domains": "Домейни", "domains": "Домейни",
"domainsDescription": "Управление на домейни за вашата организация", "domainsDescription": "Създайте и управлявайте наличните домейни в организацията",
"domainsSearch": "Търсене на домейни...", "domainsSearch": "Търсене на домейни...",
"domainAdd": "Добавяне на домейн", "domainAdd": "Добавяне на домейн",
"domainAddDescription": "Регистриране на нов домейн с вашата организация", "domainAddDescription": "Регистрирайте нов домейн в организацията",
"domainCreate": "Създаване на домейн", "domainCreate": "Създаване на домейн",
"domainCreatedDescription": "Домейнът е създаден успешно", "domainCreatedDescription": "Домейнът е създаден успешно",
"domainDeletedDescription": "Домейнът е изтрит успешно", "domainDeletedDescription": "Домейнът е изтрит успешно",
"domainQuestionRemove": "Сигурни ли сте, че искате да премахнете домейна от вашия профил?", "domainQuestionRemove": "Сигурни ли сте, че искате да премахнете домейна?",
"domainMessageRemove": "След премахването, домейнът вече няма да бъде свързан с вашия профил.", "domainMessageRemove": "След като бъде премахнат, домейнът вече няма да бъде свързан с организацията.",
"domainConfirmDelete": "Потвърдете изтриването на домейн", "domainConfirmDelete": "Потвърдете изтриването на домейн",
"domainDelete": "Изтриване на домейн", "domainDelete": "Изтриване на домейн",
"domain": "Домейн", "domain": "Домейн",
@@ -1257,7 +1292,7 @@
"pending": "Чакащо", "pending": "Чакащо",
"sidebarBilling": "Фактуриране", "sidebarBilling": "Фактуриране",
"billing": "Фактуриране", "billing": "Фактуриране",
"orgBillingDescription": "Управление на информацията за фактуриране и абонаментите", "orgBillingDescription": "Управлявайте информацията за плащане и абонаментите",
"github": "GitHub", "github": "GitHub",
"pangolinHosted": "Hosted Pangolin", "pangolinHosted": "Hosted Pangolin",
"fossorial": "Fossorial", "fossorial": "Fossorial",
@@ -1279,6 +1314,15 @@
"settingsErrorUpdateDescription": "Възникна грешка при обновяване на настройките", "settingsErrorUpdateDescription": "Възникна грешка при обновяване на настройките",
"sidebarCollapse": "Свиване", "sidebarCollapse": "Свиване",
"sidebarExpand": "Разширяване", "sidebarExpand": "Разширяване",
"productUpdateMoreInfo": "{noOfUpdates} още актуализации",
"productUpdateInfo": "{noOfUpdates} актуализации",
"productUpdateWhatsNew": "Какво ново",
"productUpdateTitle": "Актуализации на продукта",
"productUpdateEmpty": "Няма актуализации",
"dismissAll": "Отхвърляне на всички",
"pangolinUpdateAvailable": "Актуализация е налична",
"pangolinUpdateAvailableInfo": "Версия {version} е готова за инсталиране",
"pangolinUpdateAvailableReleaseNotes": "Преглед на бележките за изданието",
"newtUpdateAvailable": "Ново обновление", "newtUpdateAvailable": "Ново обновление",
"newtUpdateAvailableInfo": "Нова версия на Newt е налична. Моля, обновете до последната версия за най-добро изживяване.", "newtUpdateAvailableInfo": "Нова версия на Newt е налична. Моля, обновете до последната версия за най-добро изживяване.",
"domainPickerEnterDomain": "Домейн", "domainPickerEnterDomain": "Домейн",
@@ -1291,7 +1335,7 @@
"domainPickerSortAsc": "A-Z", "domainPickerSortAsc": "A-Z",
"domainPickerSortDesc": "Z-A", "domainPickerSortDesc": "Z-A",
"domainPickerCheckingAvailability": "Проверка на наличността...", "domainPickerCheckingAvailability": "Проверка на наличността...",
"domainPickerNoMatchingDomains": "Не са намерени съвпадащи домейни. Опитайте се с друг домейн или проверете настройките на домейна на вашата организация.", "domainPickerNoMatchingDomains": "Не са намерени съвпадащи домейни. Опитайте различен домейн или проверете настройките на домейна на организацията.",
"domainPickerOrganizationDomains": "Домейни на организацията", "domainPickerOrganizationDomains": "Домейни на организацията",
"domainPickerProvidedDomains": "Предоставени домейни", "domainPickerProvidedDomains": "Предоставени домейни",
"domainPickerSubdomain": "Поддомейн: {subdomain}", "domainPickerSubdomain": "Поддомейн: {subdomain}",
@@ -1325,7 +1369,7 @@
"billingModifySubscription": "Промяна на абонамента", "billingModifySubscription": "Промяна на абонамента",
"billingStartSubscription": "Започване на абонамент", "billingStartSubscription": "Започване на абонамент",
"billingRecurringCharge": "Повтаряща се такса", "billingRecurringCharge": "Повтаряща се такса",
"billingManageSubscriptionSettings": "Управление на настройките и предпочитанията на абонамента ви", "billingManageSubscriptionSettings": "Управление на настройките и предпочитанията за абонамент",
"billingNoActiveSubscription": "Нямате активен абонамент. Започнете абонамента си, за да увеличите лимитите за използване.", "billingNoActiveSubscription": "Нямате активен абонамент. Започнете абонамента си, за да увеличите лимитите за използване.",
"billingFailedToLoadSubscription": "Грешка при зареждане на абонамент", "billingFailedToLoadSubscription": "Грешка при зареждане на абонамент",
"billingFailedToLoadUsage": "Грешка при зареждане на използването", "billingFailedToLoadUsage": "Грешка при зареждане на използването",
@@ -1336,9 +1380,9 @@
"billingPortalError": "Грешка в портала", "billingPortalError": "Грешка в портала",
"billingDataUsageInfo": "Таксува се за всички данни, прехвърляни през вашите защитени тунели, когато сте свързани към облака. Това включва както входящия, така и изходящия трафик за всички ваши сайтове. Когато достигнете лимита си, вашите сайтове ще бъдат прекъснати, докато не надстроите плана или не намалите използването. Данните не се таксуват при използване на възли.", "billingDataUsageInfo": "Таксува се за всички данни, прехвърляни през вашите защитени тунели, когато сте свързани към облака. Това включва както входящия, така и изходящия трафик за всички ваши сайтове. Когато достигнете лимита си, вашите сайтове ще бъдат прекъснати, докато не надстроите плана или не намалите използването. Данните не се таксуват при използване на възли.",
"billingOnlineTimeInfo": "Таксува се на база колко време вашите сайтове остават свързани с облака. Пример: 44,640 минути се равняват на един сайт работещ 24/7 за цял месец. Когато достигнете лимита си, вашите сайтове ще бъдат прекъснати, докато не надстроите плана или не намалите използването. Времето не се таксува при използване на възли.", "billingOnlineTimeInfo": "Таксува се на база колко време вашите сайтове остават свързани с облака. Пример: 44,640 минути се равняват на един сайт работещ 24/7 за цял месец. Когато достигнете лимита си, вашите сайтове ще бъдат прекъснати, докато не надстроите плана или не намалите използването. Времето не се таксува при използване на възли.",
"billingUsersInfo": "Таксува се за всеки потребител във вашата организация. Фактурирането се извършва ежедневно на базата на броя активни потребителски акаунти във вашата организация.", "billingUsersInfo": "Таксува се всеки потребител в организацията. Таксуването се изчислява ежедневно въз основа на броя на активните потребителски акаунти във вашата организация.",
"billingDomainInfo": "Таксува се за всеки домейн във вашата организация. Фактурирането се извършва ежедневно на базата на броя активни домейн акаунти във вашата организация.", "billingDomainInfo": "Таксува се всеки домейн в организацията. Таксуването се изчислява ежедневно въз основа на броя на активните домейн акаунти във вашата организация.",
"billingRemoteExitNodesInfo": "Таксува се за всеки управляван възел във вашата организация. Фактурирането се извършва ежедневно на базата на броя активни управлявани възли във вашата организация.", "billingRemoteExitNodesInfo": "Таксува се всеки управляван възел в организацията. Таксуването се изчислява ежедневно въз основа на броя на активните управлявани възли във вашата организация.",
"domainNotFound": "Домейнът не е намерен", "domainNotFound": "Домейнът не е намерен",
"domainNotFoundDescription": "Този ресурс е деактивиран, защото домейнът вече не съществува в нашата система. Моля, задайте нов домейн за този ресурс.", "domainNotFoundDescription": "Този ресурс е деактивиран, защото домейнът вече не съществува в нашата система. Моля, задайте нов домейн за този ресурс.",
"failed": "Неуспешно", "failed": "Неуспешно",
@@ -1421,29 +1465,32 @@
"and": "и", "and": "и",
"privacyPolicy": "политиката за поверителност" "privacyPolicy": "политиката за поверителност"
}, },
"signUpMarketing": {
"keepMeInTheLoop": "Дръж ме в течение с новини, актуализации и нови функции чрез имейл."
},
"siteRequired": "Изисква се сайт.", "siteRequired": "Изисква се сайт.",
"olmTunnel": "Olm тунел", "olmTunnel": "Olm тунел",
"olmTunnelDescription": "Използвайте Olm за клиентска свързаност", "olmTunnelDescription": "Използвайте Olm за клиентска свързаност",
"errorCreatingClient": "Възникна грешка при създаване на клиент", "errorCreatingClient": "Възникна грешка при създаване на клиент",
"clientDefaultsNotFound": "Не са намерени настройки по подразбиране за клиента", "clientDefaultsNotFound": "Не са намерени настройки по подразбиране за клиента",
"createClient": "Създаване на клиент", "createClient": "Създаване на клиент",
"createClientDescription": "Създайте нов клиент за свързване към вашите сайтове", "createClientDescription": "Създайте нов клиент за достъп до частни ресурси",
"seeAllClients": "Виж всички клиенти", "seeAllClients": "Виж всички клиенти",
"clientInformation": "Информация за клиента", "clientInformation": "Информация за клиента",
"clientNamePlaceholder": "Име на клиента", "clientNamePlaceholder": "Име на клиента",
"address": "Адрес", "address": "Адрес",
"subnetPlaceholder": "Мрежа", "subnetPlaceholder": "Мрежа",
"addressDescription": "Адресът, който клиентът ще използва за свързване", "addressDescription": "Вътрешният адрес на клиента. Трябва да пада в подмрежата на организацията.",
"selectSites": "Избор на сайтове", "selectSites": "Избор на сайтове",
"sitesDescription": "Клиентът ще има връзка с избраните сайтове", "sitesDescription": "Клиентът ще има връзка с избраните сайтове",
"clientInstallOlm": "Инсталиране на Olm", "clientInstallOlm": "Инсталиране на Olm",
"clientInstallOlmDescription": "Конфигурирайте Olm да работи на вашата система", "clientInstallOlmDescription": "Конфигурирайте Olm да работи на вашата система",
"clientOlmCredentials": "Olm Удостоверения", "clientOlmCredentials": "Удостоверителни данни",
"clientOlmCredentialsDescription": "Това е как Olm ще се удостоверява със сървъра", "clientOlmCredentialsDescription": "Това е начинът, по който клиентът ще се удостоверява със сървъра",
"olmEndpoint": "Olm Ендпойнт", "olmEndpoint": "Крайна точка",
"olmId": "Olm ID", "olmId": "Идентификационен номер",
"olmSecretKey": "Olm Тайна парола", "olmSecretKey": "Секретен ключ",
"clientCredentialsSave": "Запазете вашите удостоверения", "clientCredentialsSave": "Запазете удостоверителните данни",
"clientCredentialsSaveDescription": "Ще можете да го видите само веднъж. Уверете се, че ще го копирате на сигурно място.", "clientCredentialsSaveDescription": "Ще можете да го видите само веднъж. Уверете се, че ще го копирате на сигурно място.",
"generalSettingsDescription": "Конфигурирайте общите настройки за този клиент", "generalSettingsDescription": "Конфигурирайте общите настройки за този клиент",
"clientUpdated": "Клиентът актуализиран", "clientUpdated": "Клиентът актуализиран",
@@ -1454,9 +1501,7 @@
"sitesFetchError": "Възникна грешка при получаването на сайтовете.", "sitesFetchError": "Възникна грешка при получаването на сайтовете.",
"olmErrorFetchReleases": "Възникна грешка при получаването на Olm версиите.", "olmErrorFetchReleases": "Възникна грешка при получаването на Olm версиите.",
"olmErrorFetchLatest": "Възникна грешка при получаването на последната версия на Olm.", "olmErrorFetchLatest": "Възникна грешка при получаването на последната версия на Olm.",
"remoteSubnets": "Отдалечени подмрежи",
"enterCidrRange": "Въведете CIDR обхват", "enterCidrRange": "Въведете CIDR обхват",
"remoteSubnetsDescription": "Добавете CIDR диапазони, които могат да бъдат достъпни от този сайт отдалечено с клиенти. Използвайте формат като 10.0.0.0/24. Това се прилага САМО за VPN клиентска свързаност.",
"resourceEnableProxy": "Разрешаване на публичен прокси", "resourceEnableProxy": "Разрешаване на публичен прокси",
"resourceEnableProxyDescription": "Разрешете публично проксиране на този ресурс. Това позволява достъп до ресурса извън мрежата чрез облак на отворен порт. Изисква конфигурация на Traefik.", "resourceEnableProxyDescription": "Разрешете публично проксиране на този ресурс. Това позволява достъп до ресурса извън мрежата чрез облак на отворен порт. Изисква конфигурация на Traefik.",
"externalProxyEnabled": "Външен прокси разрешен", "externalProxyEnabled": "Външен прокси разрешен",
@@ -1474,14 +1519,15 @@
"enableHealthChecksDescription": "Мониторинг на здравето на тази цел. Можете да наблюдавате различен краен пункт от целта, ако е необходимо.", "enableHealthChecksDescription": "Мониторинг на здравето на тази цел. Можете да наблюдавате различен краен пункт от целта, ако е необходимо.",
"healthScheme": "Метод", "healthScheme": "Метод",
"healthSelectScheme": "Избор на метод", "healthSelectScheme": "Избор на метод",
"healthCheckPortInvalid": "Портът за проверка на състоянието трябва да е между 1 и 65535",
"healthCheckPath": "Път", "healthCheckPath": "Път",
"healthHostname": "IP / Хост", "healthHostname": "IP / Хост",
"healthPort": "Порт", "healthPort": "Порт",
"healthCheckPathDescription": "Пътят за проверка на здравното състояние.", "healthCheckPathDescription": "Пътят за проверка на здравното състояние.",
"healthyIntervalSeconds": "Интервал за здраве", "healthyIntervalSeconds": "Интервал на здраве (сек)",
"unhealthyIntervalSeconds": "Интервал за нездраве", "unhealthyIntervalSeconds": "Интервал на нездраве (сек)",
"IntervalSeconds": "Интервал за здраве", "IntervalSeconds": "Интервал за здраве",
"timeoutSeconds": "Време за изчакване", "timeoutSeconds": "Време за изчакване (сек)",
"timeIsInSeconds": "Времето е в секунди", "timeIsInSeconds": "Времето е в секунди",
"retryAttempts": "Опити за повторно", "retryAttempts": "Опити за повторно",
"expectedResponseCodes": "Очаквани кодове за отговор", "expectedResponseCodes": "Очаквани кодове за отговор",
@@ -1517,16 +1563,22 @@
"resourceEditDomain": "Редактиране на домейн", "resourceEditDomain": "Редактиране на домейн",
"siteName": "Име на сайта", "siteName": "Име на сайта",
"proxyPort": "Порт", "proxyPort": "Порт",
"resourcesTableProxyResources": рокси Ресурси", "resourcesTableProxyResources": убличен",
"resourcesTableClientResources": "Клиентски ресурси", "resourcesTableClientResources": "Частен",
"resourcesTableNoProxyResourcesFound": "Не са намерени ресурсни проксита.", "resourcesTableNoProxyResourcesFound": "Не са намерени ресурсни проксита.",
"resourcesTableNoInternalResourcesFound": "Не са намерени вътрешни ресурси.", "resourcesTableNoInternalResourcesFound": "Не са намерени вътрешни ресурси.",
"resourcesTableDestination": "Дестинация", "resourcesTableDestination": "Дестинация",
"resourcesTableTheseResourcesForUseWith": "Тези ресурси са за използване с", "resourcesTableAlias": "Псевдоним",
"resourcesTableClients": "Клиенти", "resourcesTableClients": "Клиенти",
"resourcesTableAndOnlyAccessibleInternally": са достъпни само вътрешно при свързване с клиент.", "resourcesTableAndOnlyAccessibleInternally": са достъпни само вътрешно при свързване с клиент.",
"editInternalResourceDialogEditClientResource": "Редактиране на клиентски ресурс", "resourcesTableNoTargets": "Без цели",
"editInternalResourceDialogUpdateResourceProperties": "Актуализирайте свойствата на ресурса и конфигурацията на целите за {resourceName}.", "resourcesTableHealthy": "Здрав",
"resourcesTableDegraded": "Влошен",
"resourcesTableOffline": "Извън линия",
"resourcesTableUnknown": "Неизвестно",
"resourcesTableNotMonitored": "Не е наблюдавано",
"editInternalResourceDialogEditClientResource": "Редактиране на частен ресурс",
"editInternalResourceDialogUpdateResourceProperties": "Актуализирайте конфигурацията на ресурса и контрола на достъпа за {resourceName}",
"editInternalResourceDialogResourceProperties": "Свойствата на ресурса", "editInternalResourceDialogResourceProperties": "Свойствата на ресурса",
"editInternalResourceDialogName": "Име", "editInternalResourceDialogName": "Име",
"editInternalResourceDialogProtocol": "Протокол", "editInternalResourceDialogProtocol": "Протокол",
@@ -1545,11 +1597,22 @@
"editInternalResourceDialogInvalidIPAddressFormat": "Невалиден формат на IP адрес", "editInternalResourceDialogInvalidIPAddressFormat": "Невалиден формат на IP адрес",
"editInternalResourceDialogDestinationPortMin": "Дестинационният порт трябва да бъде поне 1", "editInternalResourceDialogDestinationPortMin": "Дестинационният порт трябва да бъде поне 1",
"editInternalResourceDialogDestinationPortMax": "Дестинационният порт трябва да е по-малък от 65536", "editInternalResourceDialogDestinationPortMax": "Дестинационният порт трябва да е по-малък от 65536",
"editInternalResourceDialogPortModeRequired": "За порт режим се изискват протокол, прокси порт и порт на дестинация",
"editInternalResourceDialogMode": "Режим",
"editInternalResourceDialogModePort": "Порт",
"editInternalResourceDialogModeHost": "Хост",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogDestination": "Дестинация",
"editInternalResourceDialogDestinationHostDescription": "IP адресът или името на хоста на ресурса в мрежата на сайта.",
"editInternalResourceDialogDestinationIPDescription": "IP адресът или името на хоста на ресурса в мрежата на сайта.",
"editInternalResourceDialogDestinationCidrDescription": "CIDR диапазонът на ресурса в мрежата на сайта.",
"editInternalResourceDialogAlias": "Псевдоним",
"editInternalResourceDialogAliasDescription": "По избор вътрешен DNS псевдоним за този ресурс.",
"createInternalResourceDialogNoSitesAvailable": "Няма достъпни сайтове", "createInternalResourceDialogNoSitesAvailable": "Няма достъпни сайтове",
"createInternalResourceDialogNoSitesAvailableDescription": "Трябва да имате поне един сайт на Newt с конфигурирана мрежа, за да създадете вътрешни ресурси.", "createInternalResourceDialogNoSitesAvailableDescription": "Трябва да имате поне един сайт на Newt с конфигурирана мрежа, за да създадете вътрешни ресурси.",
"createInternalResourceDialogClose": "Затвори", "createInternalResourceDialogClose": "Затвори",
"createInternalResourceDialogCreateClientResource": "Създаване на клиентски ресурс", "createInternalResourceDialogCreateClientResource": "Създаване на частен ресурс",
"createInternalResourceDialogCreateClientResourceDescription": "Създайте нов ресурс, който ще бъде достъпен за клиентите свързани със избрания сайт.", "createInternalResourceDialogCreateClientResourceDescription": "Създайте нов ресурс, който ще бъде достъпен само за клиенти, свързани към организацията",
"createInternalResourceDialogResourceProperties": "Свойства на ресурса", "createInternalResourceDialogResourceProperties": "Свойства на ресурса",
"createInternalResourceDialogName": "Име", "createInternalResourceDialogName": "Име",
"createInternalResourceDialogSite": "Сайт", "createInternalResourceDialogSite": "Сайт",
@@ -1578,11 +1641,22 @@
"createInternalResourceDialogInvalidIPAddressFormat": "Невалиден формат на IP адрес", "createInternalResourceDialogInvalidIPAddressFormat": "Невалиден формат на IP адрес",
"createInternalResourceDialogDestinationPortMin": "Дестинационният порт трябва да бъде поне 1", "createInternalResourceDialogDestinationPortMin": "Дестинационният порт трябва да бъде поне 1",
"createInternalResourceDialogDestinationPortMax": "Дестинационният порт трябва да е по-малък от 65536", "createInternalResourceDialogDestinationPortMax": "Дестинационният порт трябва да е по-малък от 65536",
"createInternalResourceDialogPortModeRequired": "За порт режим се изискват протокол, прокси порт и порт на дестинация",
"createInternalResourceDialogMode": "Режим",
"createInternalResourceDialogModePort": "Порт",
"createInternalResourceDialogModeHost": "Хост",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogDestination": "Дестинация",
"createInternalResourceDialogDestinationHostDescription": "IP адресът или името на хоста на ресурса в мрежата на сайта.",
"createInternalResourceDialogDestinationCidrDescription": "CIDR диапазонът на ресурса в мрежата на сайта.",
"createInternalResourceDialogAlias": "Псевдоним",
"createInternalResourceDialogAliasDescription": "По избор вътрешен DNS псевдоним за този ресурс.",
"siteConfiguration": "Конфигурация", "siteConfiguration": "Конфигурация",
"siteAcceptClientConnections": "Приемане на клиентски връзки", "siteAcceptClientConnections": "Приемане на клиентски връзки",
"siteAcceptClientConnectionsDescription": "Позволете на други устройства да се свързват чрез този Newt инстанция като възел чрез клиенти.", "siteAcceptClientConnectionsDescription": "Позволете на потребителските устройства и клиенти да получават достъп до ресурси на този сайт. Това може да бъде променено по-късно.",
"siteAddress": "Адрес на сайта", "siteAddress": "Адрес на сайта (Разширено)",
"siteAddressDescription": "Посочете IP адреса на хоста, към който клиентите ще се свързват. Това е вътрешният адрес на сайта в мрежата на Панголиин за адресиране от клиенти. Трябва да е в рамките на подмрежата на Организацията.", "siteAddressDescription": "Вътрешният адрес на сайта. Трябва да пада в подмрежата на организацията.",
"siteNameDescription": "Показваното име на сайта, което може да се промени по-късно.",
"autoLoginExternalIdp": "Автоматично влизане с Външен IDP", "autoLoginExternalIdp": "Автоматично влизане с Външен IDP",
"autoLoginExternalIdpDescription": "Незабавно пренасочете потребителя към външния IDP за удостоверяване.", "autoLoginExternalIdpDescription": "Незабавно пренасочете потребителя към външния IDP за удостоверяване.",
"selectIdp": "Изберете IDP", "selectIdp": "Изберете IDP",
@@ -1596,7 +1670,7 @@
"autoLoginErrorNoRedirectUrl": "Не е получен URL за пренасочване от доставчика на идентификационни данни.", "autoLoginErrorNoRedirectUrl": "Не е получен URL за пренасочване от доставчика на идентификационни данни.",
"autoLoginErrorGeneratingUrl": "Неуспешно генериране на URL за удостоверяване.", "autoLoginErrorGeneratingUrl": "Неуспешно генериране на URL за удостоверяване.",
"remoteExitNodeManageRemoteExitNodes": "Отдалечени възли", "remoteExitNodeManageRemoteExitNodes": "Отдалечени възли",
"remoteExitNodeDescription": "Самостоятелно хоствайте един или повече отдалечени възли, за да разширите своята мрежова връзка и намалите зависимостта от облака.", "remoteExitNodeDescription": "Самостоятелно хоствайте един или повече отдалечени възли, за да разширите мрежовата свързаност и да намалите зависимостта от облака",
"remoteExitNodes": "Възли", "remoteExitNodes": "Възли",
"searchRemoteExitNodes": "Търсене на възли...", "searchRemoteExitNodes": "Търсене на възли...",
"remoteExitNodeAdd": "Добавяне на възел", "remoteExitNodeAdd": "Добавяне на възел",
@@ -1608,11 +1682,11 @@
"sidebarRemoteExitNodes": "Отдалечени възли", "sidebarRemoteExitNodes": "Отдалечени възли",
"remoteExitNodeCreate": { "remoteExitNodeCreate": {
"title": "Създаване на възел", "title": "Създаване на възел",
"description": "Създайте нов възел, за да разширите мрежовата си свързаност", "description": "Създайте нов възел, за да разширите мрежовата свързаност",
"viewAllButton": "Вижте всички възли", "viewAllButton": "Вижте всички възли",
"strategy": { "strategy": {
"title": "Стратегия на създаване", "title": "Стратегия на създаване",
"description": "Изберете това, за да конфигурирате ръчно възела си или да създадете нови кредити.", "description": "Изберете това, за да конфигурирате ръчно възела или да генерирате нови идентификационни данни.",
"adopt": { "adopt": {
"title": "Осиновете възел", "title": "Осиновете възел",
"description": "Изберете това, ако вече имате кредити за възела." "description": "Изберете това, ако вече имате кредити за възела."
@@ -1633,7 +1707,7 @@
}, },
"generate": { "generate": {
"title": "Генерирани кредити", "title": "Генерирани кредити",
"description": "Използвайте тези генерирани кредити, за да конфигурирате възела си", "description": "Използвайте тези генерирани идентификационни данни за конфигуриране на възела",
"nodeIdTitle": "ID на възела", "nodeIdTitle": "ID на възела",
"secretTitle": "Секретен", "secretTitle": "Секретен",
"saveCredentialsTitle": "Добавете кредити към конфигурацията", "saveCredentialsTitle": "Добавете кредити към конфигурацията",
@@ -1709,16 +1783,16 @@
"idpTypeLabel": "Тип на доставчика на идентичност", "idpTypeLabel": "Тип на доставчика на идентичност",
"roleMappingExpressionPlaceholder": "напр.: contains(groups, 'admin') && 'Admin' || 'Member'", "roleMappingExpressionPlaceholder": "напр.: contains(groups, 'admin') && 'Admin' || 'Member'",
"idpGoogleConfiguration": "Конфигурация на Google", "idpGoogleConfiguration": "Конфигурация на Google",
"idpGoogleConfigurationDescription": "Конфигурирайте своите Google OAuth2 кредити", "idpGoogleConfigurationDescription": "Конфигурирайте Google OAuth2 идентификационни данни",
"idpGoogleClientIdDescription": "Вашият Google OAuth2 клиентски ID", "idpGoogleClientIdDescription": "Google OAuth2 идентификационен клиент",
"idpGoogleClientSecretDescription": "Вашият Google OAuth2 клиентски секрет", "idpGoogleClientSecretDescription": "Google OAuth2 секретен клиент",
"idpAzureConfiguration": "Конфигурация на Azure Entra ID", "idpAzureConfiguration": "Конфигурация на Azure Entra ID",
"idpAzureConfigurationDescription": "Конфигурирайте своите Azure Entra ID OAuth2 кредити", "idpAzureConfigurationDescription": "Конфигурирайте OAuth2 идентификационни данни на Azure Entra ID",
"idpTenantId": "Идентификационен номер на наемателя", "idpTenantId": "Идентификационен номер на наемателя",
"idpTenantIdPlaceholder": "вашият идентификационен номер на наемателя", "idpTenantIdPlaceholder": "tenant-id",
"idpAzureTenantIdDescription": "Вашият Azure идентификационен номер на наемателя (намира се в преглед на Azure Active Directory)", "idpAzureTenantIdDescription": "Идентификационен номер на наемателя на Azure (намира се в прегледа на Azure Active Directory)",
"idpAzureClientIdDescription": "Вашият Azure клиентски идентификационен номер за приложението", "idpAzureClientIdDescription": "Идентификационен код на клиента за регистриране на приложение в Azure",
"idpAzureClientSecretDescription": "Вашият Azure клиентски секрет за приложението", "idpAzureClientSecretDescription": "Секретен код на клиента за регистриране на приложение в Azure",
"idpGoogleTitle": "Google", "idpGoogleTitle": "Google",
"idpGoogleAlt": "Google", "idpGoogleAlt": "Google",
"idpAzureTitle": "Azure Entra ID", "idpAzureTitle": "Azure Entra ID",
@@ -1726,14 +1800,14 @@
"idpGoogleConfigurationTitle": "Конфигурация на Google", "idpGoogleConfigurationTitle": "Конфигурация на Google",
"idpAzureConfigurationTitle": "Конфигурация на Azure Entra ID", "idpAzureConfigurationTitle": "Конфигурация на Azure Entra ID",
"idpTenantIdLabel": "Идентификационен номер на наемателя", "idpTenantIdLabel": "Идентификационен номер на наемателя",
"idpAzureClientIdDescription2": "Вашият Azure клиентски идентификационен номер за приложението", "idpAzureClientIdDescription2": "Идентификационен код на клиента за регистриране на приложение в Azure",
"idpAzureClientSecretDescription2": "Вашият Azure клиентски секрет за приложението", "idpAzureClientSecretDescription2": "Секретен код на клиента за регистриране на приложение в Azure",
"idpGoogleDescription": "Google OAuth2/OIDC доставчик", "idpGoogleDescription": "Google OAuth2/OIDC доставчик",
"idpAzureDescription": "Microsoft Azure OAuth2/OIDC доставчик", "idpAzureDescription": "Microsoft Azure OAuth2/OIDC доставчик",
"subnet": "Подмрежа", "subnet": "Подмрежа",
"subnetDescription": "Подмрежата за конфигурацията на мрежата на тази организация.", "subnetDescription": "Подмрежата за конфигурацията на мрежата на тази организация.",
"authPage": "Страница за удостоверяване", "authPage": "Страница за удостоверяване",
"authPageDescription": "Конфигурирайте страницата за удостоверяване на вашата организация", "authPageDescription": "Конфигурирайте страницата за автентикация за организацията",
"authPageDomain": "Домен на страницата за удостоверяване", "authPageDomain": "Домен на страницата за удостоверяване",
"noDomainSet": "Няма зададен домейн", "noDomainSet": "Няма зададен домейн",
"changeDomain": "Смяна на домейн", "changeDomain": "Смяна на домейн",
@@ -1743,7 +1817,7 @@
"setAuthPageDomain": "Задаване на домейн на страницата за удостоверяване", "setAuthPageDomain": "Задаване на домейн на страницата за удостоверяване",
"failedToFetchCertificate": "Неуспех при извличане на сертификат", "failedToFetchCertificate": "Неуспех при извличане на сертификат",
"failedToRestartCertificate": "Неуспех при рестартиране на сертификат", "failedToRestartCertificate": "Неуспех при рестартиране на сертификат",
"addDomainToEnableCustomAuthPages": "Добавете домейн, за да активирате персонализирани страници за удостоверяване за вашата организация", "addDomainToEnableCustomAuthPages": "Добавете домейн за да активирате персонализирани страници за автентикация за организацията",
"selectDomainForOrgAuthPage": "Изберете домейн за страницата за удостоверяване на организацията", "selectDomainForOrgAuthPage": "Изберете домейн за страницата за удостоверяване на организацията",
"domainPickerProvidedDomain": "Предоставен домейн", "domainPickerProvidedDomain": "Предоставен домейн",
"domainPickerFreeProvidedDomain": "Безплатен предоставен домейн", "domainPickerFreeProvidedDomain": "Безплатен предоставен домейн",
@@ -1758,7 +1832,7 @@
"domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" не може да се направи валиден за {domain}.", "domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" не може да се направи валиден за {domain}.",
"domainPickerSubdomainSanitized": "Поддомен пречистен", "domainPickerSubdomainSanitized": "Поддомен пречистен",
"domainPickerSubdomainCorrected": "\"{sub}\" беше коригиран на \"{sanitized}\"", "domainPickerSubdomainCorrected": "\"{sub}\" беше коригиран на \"{sanitized}\"",
"orgAuthSignInTitle": "Впишете се във вашата организация", "orgAuthSignInTitle": "Влезте в организацията",
"orgAuthChooseIdpDescription": "Изберете своя доставчик на идентичност, за да продължите", "orgAuthChooseIdpDescription": "Изберете своя доставчик на идентичност, за да продължите",
"orgAuthNoIdpConfigured": "Тази организация няма конфигурирани доставчици на идентичност. Можете да влезете с вашата Pangolin идентичност.", "orgAuthNoIdpConfigured": "Тази организация няма конфигурирани доставчици на идентичност. Можете да влезете с вашата Pangolin идентичност.",
"orgAuthSignInWithPangolin": "Впишете се с Pangolin", "orgAuthSignInWithPangolin": "Впишете се с Pangolin",
@@ -1776,7 +1850,7 @@
"enableTwoFactorAuthentication": "Активирайте двуфакторното удостоверяване", "enableTwoFactorAuthentication": "Активирайте двуфакторното удостоверяване",
"completeSecuritySteps": "Завършете стъпките за сигурност", "completeSecuritySteps": "Завършете стъпките за сигурност",
"securitySettings": "Настройки за сигурност", "securitySettings": "Настройки за сигурност",
"securitySettingsDescription": "Конфигурирайте политиките за сигурност на вашата организация", "securitySettingsDescription": "Конфигурирайте политики за сигурност за организацията",
"requireTwoFactorForAllUsers": "Изисквайте двуфакторно удостоверяване за всички потребители", "requireTwoFactorForAllUsers": "Изисквайте двуфакторно удостоверяване за всички потребители",
"requireTwoFactorDescription": "Когато е активирано, всички вътрешни потребители в организацията трябва да имат активирано двуфакторно удостоверяване, за да имат достъп до организацията.", "requireTwoFactorDescription": "Когато е активирано, всички вътрешни потребители в организацията трябва да имат активирано двуфакторно удостоверяване, за да имат достъп до организацията.",
"requireTwoFactorDisabledDescription": "Тази функция изисква валиден лиценз (Enterprise) или активен абонамент (SaaS).", "requireTwoFactorDisabledDescription": "Тази функция изисква валиден лиценз (Enterprise) или активен абонамент (SaaS).",
@@ -1839,8 +1913,12 @@
"enterpriseEdition": "Корпоративно издание", "enterpriseEdition": "Корпоративно издание",
"unlicensed": "Без лиценз", "unlicensed": "Без лиценз",
"beta": "Бета", "beta": "Бета",
"manageClients": "Управление на клиенти", "manageUserDevices": "Потребителски устройства",
"manageClientsDescription": "Клиентите са устройства, които могат да се свързват към вашите сайтове", "manageUserDevicesDescription": "Прегледайте и управлявайте устройства, които потребителите използват за поверително свързване към ресурси",
"manageMachineClients": "Управлявайте машинни клиенти",
"manageMachineClientsDescription": "Създавайте и управлявайте клиенти, които сървърите и системите използват за поверително свързване към ресурси",
"clientsTableUserClients": "Потребител",
"clientsTableMachineClients": "Машина",
"licenseTableValidUntil": "Валиден до", "licenseTableValidUntil": "Валиден до",
"saasLicenseKeysSettingsTitle": "Корпоративни лицензи", "saasLicenseKeysSettingsTitle": "Корпоративни лицензи",
"saasLicenseKeysSettingsDescription": "Генериране и управление на корпоративни лицензионни ключове за самостоятелно хоствани инстанции на Pangolin", "saasLicenseKeysSettingsDescription": "Генериране и управление на корпоративни лицензионни ключове за самостоятелно хоствани инстанции на Pangolin",
@@ -1975,11 +2053,12 @@
"pathRewriteStripLabel": "премахване", "pathRewriteStripLabel": "премахване",
"sidebarEnableEnterpriseLicense": "Активиране на корпоративен лиценз", "sidebarEnableEnterpriseLicense": "Активиране на корпоративен лиценз",
"cannotbeUndone": "Това не може да се отмени.", "cannotbeUndone": "Това не може да се отмени.",
"toConfirm": "за потвърждение", "toConfirm": "за да потвърдите.",
"deleteClientQuestion": "Сигурни ли сте, че искате да премахнете клиента от сайта и организацията?", "deleteClientQuestion": "Сигурни ли сте, че искате да премахнете клиента от сайта и организацията?",
"clientMessageRemove": "След като клиентът бъде премахнат, той вече няма да може да се свързва с сайта.", "clientMessageRemove": "След като клиентът бъде премахнат, той вече няма да може да се свързва с сайта.",
"sidebarLogs": "Логове", "sidebarLogs": "Логове",
"request": "Изискване", "request": "Изискване",
"requests": "Заявки",
"logs": "Логове", "logs": "Логове",
"logsSettingsDescription": "Следете логовете, събрани от тази организация", "logsSettingsDescription": "Следете логовете, събрани от тази организация",
"searchLogs": "Търсете в логовете...", "searchLogs": "Търсете в логовете...",
@@ -2005,6 +2084,7 @@
"ip": "IP", "ip": "IP",
"reason": "Причина", "reason": "Причина",
"requestLogs": "Заявка за логове", "requestLogs": "Заявка за логове",
"requestAnalytics": "Анализи На Заявки",
"host": "Хост", "host": "Хост",
"location": "Местоположение", "location": "Местоположение",
"actionLogs": "Дневници на действията", "actionLogs": "Дневници на действията",
@@ -2014,6 +2094,7 @@
"logRetention": "Задържане на логове", "logRetention": "Задържане на логове",
"logRetentionDescription": "Управлявайте времето за задържане на различни видове логове за тази организация или ги деактивирайте", "logRetentionDescription": "Управлявайте времето за задържане на различни видове логове за тази организация или ги деактивирайте",
"requestLogsDescription": "Прегледайте подробни логове на заявки за ресурси в тази организация", "requestLogsDescription": "Прегледайте подробни логове на заявки за ресурси в тази организация",
"requestAnalyticsDescription": "Вижте подробни анализи на заявки за ресурсите в тази организация",
"logRetentionRequestLabel": "Задържане на логове на заявки", "logRetentionRequestLabel": "Задържане на логове на заявки",
"logRetentionRequestDescription": "Колко дълго да се задържат логовете на заявките", "logRetentionRequestDescription": "Колко дълго да се задържат логовете на заявките",
"logRetentionAccessLabel": "Задържане на логове за достъп", "logRetentionAccessLabel": "Задържане на логове за достъп",
@@ -2027,6 +2108,7 @@
"logRetention30Days": "30 дни", "logRetention30Days": "30 дни",
"logRetention90Days": "90 дни", "logRetention90Days": "90 дни",
"logRetentionForever": "Завинаги", "logRetentionForever": "Завинаги",
"logRetentionEndOfFollowingYear": "Край на следващата година",
"actionLogsDescription": "Прегледайте историята на действията, извършени в тази организация", "actionLogsDescription": "Прегледайте историята на действията, извършени в тази организация",
"accessLogsDescription": "Прегледайте заявките за удостоверяване на достъпа до ресурсите в тази организация", "accessLogsDescription": "Прегледайте заявките за удостоверяване на достъпа до ресурсите в тази организация",
"licenseRequiredToUse": "Необходим е лиценз Enterprise, за да се използва тази функция.", "licenseRequiredToUse": "Необходим е лиценз Enterprise, за да се използва тази функция.",
@@ -2037,7 +2119,7 @@
"preferWildcardCert": "Предпочитайте универсален сертификат", "preferWildcardCert": "Предпочитайте универсален сертификат",
"unverified": "Невалидиран", "unverified": "Невалидиран",
"domainSetting": "Настройки на домейните", "domainSetting": "Настройки на домейните",
"domainSettingDescription": "Конфигурирайте настройките за вашия домейн", "domainSettingDescription": "Конфигурирайте настройките за домейна",
"preferWildcardCertDescription": "Опит за генериране на универсален сертификат (изисква правилно конфигуриран решавач на сертификати).", "preferWildcardCertDescription": "Опит за генериране на универсален сертификат (изисква правилно конфигуриран решавач на сертификати).",
"recordName": "Име на запис", "recordName": "Име на запис",
"auto": "Автоматично", "auto": "Автоматично",
@@ -2051,9 +2133,9 @@
"olmUpdateAvailableInfo": "Налична е актуализирана версия на Olm. Моля, актуализирайте до най-новата версия за най-добро преживяване.", "olmUpdateAvailableInfo": "Налична е актуализирана версия на Olm. Моля, актуализирайте до най-новата версия за най-добро преживяване.",
"client": "Клиент", "client": "Клиент",
"proxyProtocol": "Настройки на прокси протокол", "proxyProtocol": "Настройки на прокси протокол",
"proxyProtocolDescription": "Конфигурирайте прокси протокол за запазване на IP адресите на клиентите за TCP/UDP услуги.", "proxyProtocolDescription": "Конфигурирайте Proxy Protocol, за да запазите IP адресите на клиентите за TCP услуги.",
"enableProxyProtocol": "Активирайте прокси протокола", "enableProxyProtocol": "Активирайте прокси протокола",
"proxyProtocolInfo": "Запазете IP адресите на клиентите за TCP/UDP бекенди", "proxyProtocolInfo": "Запазете IP адресите на клиентите за TCP бекендове",
"proxyProtocolVersion": "Версия на прокси протокола", "proxyProtocolVersion": "Версия на прокси протокола",
"version1": "Версия 1 (Препоръчително)", "version1": "Версия 1 (Препоръчително)",
"version2": "Версия 2", "version2": "Версия 2",
@@ -2080,5 +2162,113 @@
"supportSending": "Изпращане...", "supportSending": "Изпращане...",
"supportSend": "Изпрати", "supportSend": "Изпрати",
"supportMessageSent": "Съобщението е изпратено!", "supportMessageSent": "Съобщението е изпратено!",
"supportWillContact": "Ще се свържем с вас скоро!" "supportWillContact": "Ще се свържем с вас скоро!",
"selectLogRetention": "Изберете съхранение на логовете",
"terms": "Термини",
"privacy": "Поверителност",
"security": "Сигурност",
"docs": "Документи",
"deviceActivation": "Активиране на устройство",
"deviceCodeInvalidFormat": "Кодът трябва да бъде 9 символа (напр. A1AJ-N5JD)",
"deviceCodeInvalidOrExpired": "Невалиден или изтекъл код",
"deviceCodeVerifyFailed": "Неуспешна проверка на кода на устройството",
"signedInAs": "Вписан като",
"deviceCodeEnterPrompt": "Въведете кода, показан на устройството",
"continue": "Продължете",
"deviceUnknownLocation": "Неизвестно местоположение",
"deviceAuthorizationRequested": "Това разрешение беше заявено от {location} на {date}. Уверете се, че се доверявате на това устройство, тъй като то ще получи достъп до акаунта.",
"deviceLabel": "Устройство: {deviceName}",
"deviceWantsAccess": "иска да има достъп до вашия акаунт",
"deviceExistingAccess": "Съществуващ достъп:",
"deviceFullAccess": "Пълен достъп до вашия акаунт",
"deviceOrganizationsAccess": "Достъп до всички организации, до които има достъп акаунтът ви",
"deviceAuthorize": "Разрешете {applicationName}",
"deviceConnected": "Устройството е свързано!",
"deviceAuthorizedMessage": "Устройството е разрешено да има достъп до вашия акаунт.",
"pangolinCloud": "Pangolin Cloud",
"viewDevices": "Преглед на устройствата",
"viewDevicesDescription": "Управлявайте свързаните си устройства",
"noDevices": "Не са намерени устройства",
"dateCreated": "Дата на създаване",
"unnamedDevice": "Устройство без име",
"deviceQuestionRemove": "Сигурни ли сте, че искате да изтриете това устройство?",
"deviceMessageRemove": "Това действие не може да бъде отменено.",
"deviceDeleteConfirm": "Изтриване на устройство",
"deleteDevice": "Изтриване на устройство",
"errorLoadingDevices": "Грешка при зареждане на устройства",
"failedToLoadDevices": "Неуспешно зареждане на устройства",
"deviceDeleted": "Устройството е изтрито",
"deviceDeletedDescription": "Устройството бе успешно изтрито.",
"errorDeletingDevice": "Грешка при изтриване на устройството",
"failedToDeleteDevice": "Неуспешно изтриване на устройството",
"showColumns": "Покажи колони",
"hideColumns": "Скрий колони",
"columnVisibility": "Видимост на колоните",
"toggleColumn": "Превключване на колоната {columnName}",
"allColumns": "Всички колони",
"defaultColumns": "По подразбиране колони",
"customizeView": "Персонализиране на изгледа",
"viewOptions": "Опции за изгледа",
"selectAll": "Избери всички",
"selectNone": "Избери нищо",
"selectedResources": "Избрани ресурси",
"enableSelected": "Разреши избраните",
"disableSelected": "Забрани избраните",
"checkSelectedStatus": "Проверете състоянието на избраните",
"clients": "Клиенти",
"accessClientSelect": "Изберете машинни клиенти",
"resourceClientDescription": "Машинни клиенти, които могат да получат достъп до този ресурс",
"regenerate": "Генерирай",
"credentials": "Удостоверения",
"savecredentials": "Запазване на удостоверения",
"regenerateCredentialsButton": "Генериране на нови удостоверителни данни",
"regenerateCredentials": "Генериране на нови удостоверителни данни",
"generatedcredentials": "Прегенерирани удостоверения",
"copyandsavethesecredentials": "Копирайте и запазете тези удостоверения",
"copyandsavethesecredentialsdescription": "Тези удостоверения няма да бъдат показани отново след като напуснете тази страница. Запазете ги сигурно сега.",
"credentialsSaved": "Удостоверенията са запазени",
"credentialsSavedDescription": "Удостоверенията бяха прегенерирани и успешно запазени.",
"credentialsSaveError": "Грешка при запазването на удостоверенията",
"credentialsSaveErrorDescription": "Възникна грешка при прегенерирането и запазването на удостоверенията.",
"regenerateCredentialsWarning": "Генерирането на нови удостоверителни данни ще направи предишните невалидни и ще причини прекъсване на връзката. Уверете се, че сте актуализирали всички конфигурации, които използват тези удостоверителни данни.",
"confirm": "Потвърждаване",
"regenerateCredentialsConfirmation": "Сигурни ли сте, че искате да прегенерирате удостоверенията?",
"endpoint": "Крайна точка",
"Id": "Идентификатор",
"SecretKey": "Таен ключ",
"niceId": "Красив ID",
"niceIdUpdated": "Красив ID е обновен",
"niceIdUpdatedSuccessfully": "Красив ID е успешно обновен",
"niceIdUpdateError": "Грешка при обновяването на Красив ID",
"niceIdUpdateErrorDescription": "Възникна грешка при обновяването на Красив ID.",
"niceIdCannotBeEmpty": "Красив ID не може да бъде празен",
"enterIdentifier": "Въведете идентификатор",
"identifier": "Идентификатор",
"deviceLoginUseDifferentAccount": "Не сте вие? Използвайте друг акаунт.",
"deviceLoginDeviceRequestingAccessToAccount": "Устройство запитващо достъп до този акаунт.",
"noData": "Няма Данни",
"machineClients": "Машинни клиенти",
"install": "Инсталирай",
"run": "Изпълни",
"clientNameDescription": "Показваното име на клиента, което може да се промени по-късно.",
"clientAddress": "Клиентски адрес (Разширено)",
"setupFailedToFetchSubnet": "Неуспешно извличане на подмрежа по подразбиране",
"setupSubnetAdvanced": "Подмрежа (Разширено)",
"setupSubnetDescription": "Подмрежата за вътрешната мрежа на тази организация.",
"siteRegenerateAndDisconnect": "Генериране и прекъсване на връзката",
"siteRegenerateAndDisconnectConfirmation": "Сигурни ли сте, че искате да генерирате нови удостоверителни данни и да прекъснете тази връзка?",
"siteRegenerateAndDisconnectWarning": "Това ще генерира нови удостоверителни данни и незабавно ще прекъсне връзката. На сайта ще трябва да се рестартира с новите удостоверителни данни.",
"siteRegenerateCredentialsConfirmation": "Сигурни ли сте, че искате да генерирате новите удостоверителни данни за този сайт?",
"siteRegenerateCredentialsWarning": "Това ще генерира нови удостоверителни данни. Сайтът ще остане свързан, докато не го рестартирате ръчно и използвате новите удостоверителни данни.",
"clientRegenerateAndDisconnect": "Генериране и прекъсване на връзката",
"clientRegenerateAndDisconnectConfirmation": "Сигурни ли сте, че искате да генерирате нови удостоверителни данни и да прекъснете връзката на този клиент?",
"clientRegenerateAndDisconnectWarning": "Това ще генерира нови удостоверителни данни и незабавно ще прекъсне връзката на клиента. Клиентът ще трябва да се рестартира с новите удостоверителни данни.",
"clientRegenerateCredentialsConfirmation": "Сигурни ли сте, че искате да генерирате новите удостоверителни данни за този клиент?",
"clientRegenerateCredentialsWarning": "Това ще генерира нови удостоверителни данни. Клиентът ще остане свързан, докато не го рестартирате ръчно и използвате новите удостоверителни данни.",
"remoteExitNodeRegenerateAndDisconnect": "Генериране и прекъсване на връзката",
"remoteExitNodeRegenerateAndDisconnectConfirmation": "Сигурни ли сте, че искате да генерирате нови удостоверителни данни и да прекъснете връзката на този отдалечен възел?",
"remoteExitNodeRegenerateAndDisconnectWarning": "Това ще генерира нови удостоверителни данни и незабавно ще прекъсне връзката на отдалечения възел. Отдалеченият възел ще трябва да се рестартира с новите удостоверителни данни.",
"remoteExitNodeRegenerateCredentialsConfirmation": "Сигурни ли сте, че искате да генерирате новите удостоверителни данни за този отдалечен възел?",
"remoteExitNodeRegenerateCredentialsWarning": "Това ще генерира нови удостоверителни данни. Отдалеченият възел ще остане свързан, докато не го рестартирате ръчно и използвате новите удостоверителни данни.",
"agent": "Агент"
} }

View File

@@ -1,12 +1,12 @@
{ {
"setupCreate": "Vytvořte si organizaci, lokalitu a služby", "setupCreate": "Vytvořte organizaci, stránku a zdroje",
"setupNewOrg": "Nová organizace", "setupNewOrg": "Nová organizace",
"setupCreateOrg": "Vytvořit organizaci", "setupCreateOrg": "Vytvořit organizaci",
"setupCreateResources": "Vytvořit zdroje", "setupCreateResources": "Vytvořit zdroje",
"setupOrgName": "Název organizace", "setupOrgName": "Název organizace",
"orgDisplayName": "Toto je zobrazovaný název vaší organizace.", "orgDisplayName": "Toto je zobrazený název organizace.",
"orgId": "ID organizace", "orgId": "ID organizace",
"setupIdentifierMessage": "Toto je jedinečný identifikátor vaší organizace. Nemusí odpovídat názvu organizace.", "setupIdentifierMessage": "Toto je jedinečný identifikátor organizace.",
"setupErrorIdentifier": "ID organizace je již použito. Zvolte prosím jiné.", "setupErrorIdentifier": "ID organizace je již použito. Zvolte prosím jiné.",
"componentsErrorNoMemberCreate": "Zatím nejste členem žádné organizace. Abyste mohli začít, vytvořte si organizaci.", "componentsErrorNoMemberCreate": "Zatím nejste členem žádné organizace. Abyste mohli začít, vytvořte si organizaci.",
"componentsErrorNoMember": "Zatím nejste členem žádných organizací.", "componentsErrorNoMember": "Zatím nejste členem žádných organizací.",
@@ -50,10 +50,10 @@
"siteMessageRemove": "Po odstranění webu již nebude přístupný. Všechny cíle spojené s webem budou také odstraněny.", "siteMessageRemove": "Po odstranění webu již nebude přístupný. Všechny cíle spojené s webem budou také odstraněny.",
"siteQuestionRemove": "Jste si jisti, že chcete odstranit tuto stránku z organizace?", "siteQuestionRemove": "Jste si jisti, že chcete odstranit tuto stránku z organizace?",
"siteManageSites": "Správa lokalit", "siteManageSites": "Správa lokalit",
"siteDescription": "Umožní připojení k vaší síti prostřednictvím zabezpečených tunelů", "siteDescription": "Vytvořte a spravujte stránky pro povolení připojení k soukromým sítím",
"siteCreate": "Vytvořit lokalitu", "siteCreate": "Vytvořit lokalitu",
"siteCreateDescription2": "Postupujte podle níže uvedených kroků, abyste vytvořili a připojili novou lokalitu", "siteCreateDescription2": "Postupujte podle níže uvedených kroků, abyste vytvořili a připojili novou lokalitu",
"siteCreateDescription": "Vytvořte novou lokalitu, abyste mohli začít připojovat služby", "siteCreateDescription": "Vytvořit nový web pro zahájení připojování zdrojů",
"close": "Zavřít", "close": "Zavřít",
"siteErrorCreate": "Chyba při vytváření lokality", "siteErrorCreate": "Chyba při vytváření lokality",
"siteErrorCreateKeyPair": "Nebyly nalezeny klíče nebo výchozí nastavení lokality", "siteErrorCreateKeyPair": "Nebyly nalezeny klíče nebo výchozí nastavení lokality",
@@ -74,7 +74,7 @@
"siteInstallNewt": "Nainstalovat Newt", "siteInstallNewt": "Nainstalovat Newt",
"siteInstallNewtDescription": "Spustit Newt na vašem systému", "siteInstallNewtDescription": "Spustit Newt na vašem systému",
"WgConfiguration": "Konfigurace WireGuard", "WgConfiguration": "Konfigurace WireGuard",
"WgConfigurationDescription": "Použijte následující konfiguraci pro připojení k vaší síti", "WgConfigurationDescription": "K připojení k síti použijte následující konfiguraci",
"operatingSystem": "Operační systém", "operatingSystem": "Operační systém",
"commands": "Příkazy", "commands": "Příkazy",
"recommended": "Doporučeno", "recommended": "Doporučeno",
@@ -87,32 +87,32 @@
"siteUpdated": "Lokalita upravena", "siteUpdated": "Lokalita upravena",
"siteUpdatedDescription": "Lokalita byla upravena.", "siteUpdatedDescription": "Lokalita byla upravena.",
"siteGeneralDescription": "Upravte obecná nastavení pro tuto lokalitu", "siteGeneralDescription": "Upravte obecná nastavení pro tuto lokalitu",
"siteSettingDescription": "Upravte nastavení vaší lokality", "siteSettingDescription": "Konfigurace nastavení na webu",
"siteSetting": "Nastavení {siteName}", "siteSetting": "Nastavení {siteName}",
"siteNewtTunnel": "Tunel Newt (doporučeno)", "siteNewtTunnel": "Novinka (doporučeno)",
"siteNewtTunnelDescription": "Nejjednodušší způsob, jak vytvořit vstupní bod do vaší sítě. Žádné další nastavení.", "siteNewtTunnelDescription": "Nejjednodušší způsob, jak vytvořit vstupní bod do jakékoli sítě. Žádné další nastavení.",
"siteWg": "Základní WireGuard", "siteWg": "Základní WireGuard",
"siteWgDescription": "Použijte jakéhokoli klienta WireGuard abyste sestavili tunel. Vyžaduje se ruční nastavení NAT.", "siteWgDescription": "Použijte jakéhokoli klienta WireGuard abyste sestavili tunel. Vyžaduje se ruční nastavení NAT.",
"siteWgDescriptionSaas": "Použijte jakéhokoli klienta WireGuard abyste sestavili tunel. Vyžaduje se ruční nastavení NAT. FUNGUJE POUZE NA SELF-HOSTED SERVERECH", "siteWgDescriptionSaas": "Použijte jakéhokoli klienta WireGuard abyste sestavili tunel. Vyžaduje se ruční nastavení NAT. FUNGUJE POUZE NA SELF-HOSTED SERVERECH",
"siteLocalDescription": "Pouze lokální zdroje. Žádný tunel.", "siteLocalDescription": "Pouze lokální zdroje. Žádný tunel.",
"siteLocalDescriptionSaas": "Pouze místní zdroje. Žádný tunel. Dostupné pouze na vzdálených uzlech.", "siteLocalDescriptionSaas": "Pouze místní zdroje. Žádný tunel. Dostupné pouze na vzdálených uzlech.",
"siteSeeAll": "Zobrazit všechny lokality", "siteSeeAll": "Zobrazit všechny lokality",
"siteTunnelDescription": "Určete jak se chcete připojit k vaší lokalitě", "siteTunnelDescription": "Určete, jak se chcete připojit k webu",
"siteNewtCredentials": "Přihlašovací údaje Newt", "siteNewtCredentials": "Pověření",
"siteNewtCredentialsDescription": "Tímto způsobem se bude Newt autentizovat na serveru", "siteNewtCredentialsDescription": "Takto se bude stránka autentizovat se serverem",
"siteCredentialsSave": "Uložit přihlašovací údaje", "siteCredentialsSave": "Uložit pověření",
"siteCredentialsSaveDescription": "Toto nastavení uvidíte pouze jednou. Ujistěte se, že jej zkopírujete na bezpečné místo.", "siteCredentialsSaveDescription": "Toto nastavení uvidíte pouze jednou. Ujistěte se, že jej zkopírujete na bezpečné místo.",
"siteInfo": "Údaje o lokalitě", "siteInfo": "Údaje o lokalitě",
"status": "Stav", "status": "Stav",
"shareTitle": "Spravovat sdílení odkazů", "shareTitle": "Spravovat sdílení odkazů",
"shareDescription": "Vytvořte odkazy, abyste udělili dočasný nebo trvalý přístup k vašim zdrojům", "shareDescription": "Vytvořit sdílitelné odkazy pro udělení dočasného nebo trvalého přístupu ke zdrojům proxy",
"shareSearch": "Hledat sdílené odkazy...", "shareSearch": "Hledat sdílené odkazy...",
"shareCreate": "Vytvořit odkaz", "shareCreate": "Vytvořit odkaz",
"shareErrorDelete": "Nepodařilo se odstranit odkaz", "shareErrorDelete": "Nepodařilo se odstranit odkaz",
"shareErrorDeleteMessage": "Došlo k chybě při odstraňování odkazu", "shareErrorDeleteMessage": "Došlo k chybě při odstraňování odkazu",
"shareDeleted": "Odkaz odstraněn", "shareDeleted": "Odkaz odstraněn",
"shareDeletedDescription": "Odkaz byl odstraněn", "shareDeletedDescription": "Odkaz byl odstraněn",
"shareTokenDescription": "Váš přístupový token může být předán dvěma způsoby: jako parametr dotazu nebo v záhlaví požadavku. Tyto údaje musí být předány klientem v každé žádosti o ověřený přístup.", "shareTokenDescription": "Přístupový token může být předán dvěma způsoby: jako parametr dotazu nebo v záhlaví požadavku. Tyto údaje musí být předány klientovi na každé žádosti o ověřený přístup.",
"accessToken": "Přístupový token", "accessToken": "Přístupový token",
"usageExamples": "Příklady použití", "usageExamples": "Příklady použití",
"tokenId": "ID tokenu", "tokenId": "ID tokenu",
@@ -121,7 +121,7 @@
"importantNote": "Důležité upozornění", "importantNote": "Důležité upozornění",
"shareImportantDescription": "Z bezpečnostních důvodů je doporučeno používat raději hlavičky než parametry dotazu pokud je to možné, protože parametry dotazu mohou být zaznamenány v logu serveru nebo v historii prohlížeče.", "shareImportantDescription": "Z bezpečnostních důvodů je doporučeno používat raději hlavičky než parametry dotazu pokud je to možné, protože parametry dotazu mohou být zaznamenány v logu serveru nebo v historii prohlížeče.",
"token": "Token", "token": "Token",
"shareTokenSecurety": "Uchovejte přístupový token v bezpečí. Nesdílejte jej na veřejně přístupných stěch nebo v kódu na straně klienta.", "shareTokenSecurety": "Udržujte přístupový token v bezpečí. Nesdílejte jej ve veřejně přístupných oblastech nebo kódu na straně klienta.",
"shareErrorFetchResource": "Nepodařilo se načíst zdroje", "shareErrorFetchResource": "Nepodařilo se načíst zdroje",
"shareErrorFetchResourceDescription": "Při načítání zdrojů došlo k chybě", "shareErrorFetchResourceDescription": "Při načítání zdrojů došlo k chybě",
"shareErrorCreate": "Nepodařilo se vytvořit odkaz", "shareErrorCreate": "Nepodařilo se vytvořit odkaz",
@@ -131,7 +131,7 @@
"expireIn": "Platnost vyprší za", "expireIn": "Platnost vyprší za",
"neverExpire": "Nikdy nevyprší", "neverExpire": "Nikdy nevyprší",
"shareExpireDescription": "Doba platnosti určuje, jak dlouho bude odkaz použitelný a bude poskytovat přístup ke zdroji. Po této době odkaz již nebude fungovat a uživatelé kteří tento odkaz používali ztratí přístup ke zdroji.", "shareExpireDescription": "Doba platnosti určuje, jak dlouho bude odkaz použitelný a bude poskytovat přístup ke zdroji. Po této době odkaz již nebude fungovat a uživatelé kteří tento odkaz používali ztratí přístup ke zdroji.",
"shareSeeOnce": "Tento odkaz uvidíte pouze jednou. Ujistěte se, že jste jej zkopírovali.", "shareSeeOnce": "Tento odkaz uvidíte pouze jednou. Nezapomeňte jej zkopírovat.",
"shareAccessHint": "Kdokoli s tímto odkazem může přistupovat ke zdroji. Sdílejte jej s rozvahou.", "shareAccessHint": "Kdokoli s tímto odkazem může přistupovat ke zdroji. Sdílejte jej s rozvahou.",
"shareTokenUsage": "Zobrazit využití přístupového tokenu", "shareTokenUsage": "Zobrazit využití přístupového tokenu",
"createLink": "Vytvořit odkaz", "createLink": "Vytvořit odkaz",
@@ -144,8 +144,10 @@
"expires": "Vyprší", "expires": "Vyprší",
"never": "Nikdy", "never": "Nikdy",
"shareErrorSelectResource": "Zvolte prosím zdroj", "shareErrorSelectResource": "Zvolte prosím zdroj",
"resourceTitle": "Spravovat zdroje", "proxyResourceTitle": "Spravovat veřejné zdroje",
"resourceDescription": "Vytvořte bezpečné proxy služby pro přístup k privátním aplikacím", "proxyResourceDescription": "Vytváření a správa zdrojů, které jsou veřejně přístup prostřednictvím webového prohlížeče",
"clientResourceTitle": "Spravovat soukromé zdroje",
"clientResourceDescription": "Vytváření a správa zdrojů, které jsou přístupné pouze prostřednictvím připojeného klienta",
"resourcesSearch": "Prohledat zdroje...", "resourcesSearch": "Prohledat zdroje...",
"resourceAdd": "Přidat zdroj", "resourceAdd": "Přidat zdroj",
"resourceErrorDelte": "Chyba při odstraňování zdroje", "resourceErrorDelte": "Chyba při odstraňování zdroje",
@@ -155,9 +157,9 @@
"resourceMessageRemove": "Jakmile zdroj odstraníte, nebude dostupný. Všechny související služby a cíle budou také odstraněny.", "resourceMessageRemove": "Jakmile zdroj odstraníte, nebude dostupný. Všechny související služby a cíle budou také odstraněny.",
"resourceQuestionRemove": "Jste si jisti, že chcete odstranit zdroj z organizace?", "resourceQuestionRemove": "Jste si jisti, že chcete odstranit zdroj z organizace?",
"resourceHTTP": "Zdroj HTTPS", "resourceHTTP": "Zdroj HTTPS",
"resourceHTTPDescription": "Požadavky na proxy pro vaši aplikaci přes HTTPS pomocí subdomény nebo základní domény.", "resourceHTTPDescription": "Požadavky na proxy pro aplikaci přes HTTPS pomocí subdomény nebo základní domény.",
"resourceRaw": "Surový TCP/UDP zdroj", "resourceRaw": "Surový TCP/UDP zdroj",
"resourceRawDescription": "Požadavky na proxy pro vaši aplikaci přes TCP/UDP pomocí čísla portu.", "resourceRawDescription": "Proxy požadavky na aplikaci přes TCP/UDP pomocí čísla portu. To funguje pouze v případě, že jsou stránky připojeny k uzlům.",
"resourceCreate": "Vytvořit zdroj", "resourceCreate": "Vytvořit zdroj",
"resourceCreateDescription": "Postupujte podle níže uvedených kroků, abyste vytvořili a připojili nový zdroj", "resourceCreateDescription": "Postupujte podle níže uvedených kroků, abyste vytvořili a připojili nový zdroj",
"resourceSeeAll": "Zobrazit všechny zdroje", "resourceSeeAll": "Zobrazit všechny zdroje",
@@ -171,22 +173,22 @@
"noCountryFound": "Nebyla nalezena žádná země.", "noCountryFound": "Nebyla nalezena žádná země.",
"siteSelectionDescription": "Tato lokalita poskytne připojení k cíli.", "siteSelectionDescription": "Tato lokalita poskytne připojení k cíli.",
"resourceType": "Typ zdroje", "resourceType": "Typ zdroje",
"resourceTypeDescription": "Určete, jak chcete přistupovat ke svému zdroji", "resourceTypeDescription": "Určete, jak přistupovat ke zdroji",
"resourceHTTPSSettings": "Nastavení HTTPS", "resourceHTTPSSettings": "Nastavení HTTPS",
"resourceHTTPSSettingsDescription": "Nakonfigurujte, jak bude váš zdroj přístupný přes HTTPS", "resourceHTTPSSettingsDescription": "Nakonfigurujte, jak bude dokument přístupný přes HTTPS",
"domainType": "Typ domény", "domainType": "Typ domény",
"subdomain": "Subdoména", "subdomain": "Subdoména",
"baseDomain": "Základní doména", "baseDomain": "Základní doména",
"subdomnainDescription": "Subdoména, kde bude váš zdroj přístupný.", "subdomnainDescription": "Subdoména, kde bude zdroj přístupný.",
"resourceRawSettings": "Nastavení TCP/UDP", "resourceRawSettings": "Nastavení TCP/UDP",
"resourceRawSettingsDescription": "Nakonfigurujte, jak bude váš dokument přístupný přes TCP/UDP", "resourceRawSettingsDescription": "Nakonfigurujte, jak bude dokument přístupný přes TCP/UDP",
"protocol": "Protokol", "protocol": "Protokol",
"protocolSelect": "Vybrat protokol", "protocolSelect": "Vybrat protokol",
"resourcePortNumber": "Číslo portu", "resourcePortNumber": "Číslo portu",
"resourcePortNumberDescription": "Externí port k požadavkům proxy serveru.", "resourcePortNumberDescription": "Externí port k požadavkům proxy serveru.",
"cancel": "Zrušit", "cancel": "Zrušit",
"resourceConfig": "Konfigurační snippety", "resourceConfig": "Konfigurační snippety",
"resourceConfigDescription": "Zkopírujte a vložte tyto konfigurační snippety pro nastavení TCP/UDP zdroje", "resourceConfigDescription": "Zkopírujte a vložte tyto konfigurační textové bloky pro nastavení TCP/UDP zdroje",
"resourceAddEntrypoints": "Traefik: Přidat vstupní body", "resourceAddEntrypoints": "Traefik: Přidat vstupní body",
"resourceExposePorts": "Gerbil: Expose Ports in Docker Compose", "resourceExposePorts": "Gerbil: Expose Ports in Docker Compose",
"resourceLearnRaw": "Naučte se konfigurovat zdroje TCP/UDP", "resourceLearnRaw": "Naučte se konfigurovat zdroje TCP/UDP",
@@ -202,14 +204,14 @@
"proxy": "Proxy server", "proxy": "Proxy server",
"internal": "Interní", "internal": "Interní",
"rules": "Pravidla", "rules": "Pravidla",
"resourceSettingDescription": "Konfigurace nastavení na vašem zdroji", "resourceSettingDescription": "Konfigurace nastavení na zdroji",
"resourceSetting": "Nastavení {resourceName}", "resourceSetting": "Nastavení {resourceName}",
"alwaysAllow": "Vždy povolit", "alwaysAllow": "Obejít Auth",
"alwaysDeny": "Vždy zakázat", "alwaysDeny": "Blokovat přístup",
"passToAuth": "Předat k ověření", "passToAuth": "Předat k ověření",
"orgSettingsDescription": "Konfigurace obecných nastavení vaší organizace", "orgSettingsDescription": "Konfigurace nastavení organizace",
"orgGeneralSettings": "Nastavení organizace", "orgGeneralSettings": "Nastavení organizace",
"orgGeneralSettingsDescription": "Spravujte údaje a konfiguraci vaší organizace", "orgGeneralSettingsDescription": "Spravovat podrobnosti a konfiguraci organizace",
"saveGeneralSettings": "Uložit obecné nastavení", "saveGeneralSettings": "Uložit obecné nastavení",
"saveSettings": "Uložit nastavení", "saveSettings": "Uložit nastavení",
"orgDangerZone": "Nebezpečná zóna", "orgDangerZone": "Nebezpečná zóna",
@@ -232,7 +234,7 @@
"orgMissing": "Chybí ID organizace", "orgMissing": "Chybí ID organizace",
"orgMissingMessage": "Nelze obnovit pozvánku bez ID organizace.", "orgMissingMessage": "Nelze obnovit pozvánku bez ID organizace.",
"accessUsersManage": "Spravovat uživatele", "accessUsersManage": "Spravovat uživatele",
"accessUsersDescription": "Pozvěte uživatele a přidejte je do rolí pro správu přístupu do vaší organizace", "accessUsersDescription": "Pozvat a spravovat uživatele s přístupem k této organizaci",
"accessUsersSearch": "Hledat uživatele...", "accessUsersSearch": "Hledat uživatele...",
"accessUserCreate": "Vytvořit uživatele", "accessUserCreate": "Vytvořit uživatele",
"accessUserRemove": "Odstranit uživatele", "accessUserRemove": "Odstranit uživatele",
@@ -241,13 +243,13 @@
"role": "Role", "role": "Role",
"nameRequired": "Název je povinný", "nameRequired": "Název je povinný",
"accessRolesManage": "Spravovat role", "accessRolesManage": "Spravovat role",
"accessRolesDescription": "Konfigurace rolí pro správu přístupu do vaší organizace", "accessRolesDescription": "Vytvořit a spravovat role pro uživatele v organizaci",
"accessRolesSearch": "Hledat role...", "accessRolesSearch": "Hledat role...",
"accessRolesAdd": "Přidat roli", "accessRolesAdd": "Přidat roli",
"accessRoleDelete": "Odstranit roli", "accessRoleDelete": "Odstranit roli",
"description": "L 343, 22.12.2009, s. 1).", "description": "L 343, 22.12.2009, s. 1).",
"inviteTitle": "Otevřít pozvánky", "inviteTitle": "Otevřít pozvánky",
"inviteDescription": "Spravujte své pozvánky ostatním uživatelům", "inviteDescription": "Spravovat pozvánky pro ostatní uživatele do organizace",
"inviteSearch": "Hledat pozvánky...", "inviteSearch": "Hledat pozvánky...",
"minutes": "Zápis z jednání", "minutes": "Zápis z jednání",
"hours": "Hodiny", "hours": "Hodiny",
@@ -261,13 +263,13 @@
"apiKeysErrorCreate": "Chyba při vytváření API klíče", "apiKeysErrorCreate": "Chyba při vytváření API klíče",
"apiKeysErrorSetPermission": "Chyba nastavení oprávnění", "apiKeysErrorSetPermission": "Chyba nastavení oprávnění",
"apiKeysCreate": "Generovat API klíč", "apiKeysCreate": "Generovat API klíč",
"apiKeysCreateDescription": "Vygenerovat nový API klíč pro vaši organizaci", "apiKeysCreateDescription": "Vygenerovat nový API klíč pro organizaci",
"apiKeysGeneralSettings": "Práva", "apiKeysGeneralSettings": "Práva",
"apiKeysGeneralSettingsDescription": "Určete, co může tento API klíč udělat", "apiKeysGeneralSettingsDescription": "Určete, co může tento API klíč udělat",
"apiKeysList": "Váš API klíč", "apiKeysList": "Nový API klíč",
"apiKeysSave": "Uložit váš API klíč", "apiKeysSave": "Uložit API klíč",
"apiKeysSaveDescription": "Toto nastavení uvidíte pouze jednou. Ujistěte se, že jej zkopírujete na bezpečné místo.", "apiKeysSaveDescription": "Toto nastavení uvidíte pouze jednou. Ujistěte se, že jej zkopírujete na bezpečné místo.",
"apiKeysInfo": "Váš API klíč je:", "apiKeysInfo": "API klíč je:",
"apiKeysConfirmCopy": "Kopíroval jsem API klíč", "apiKeysConfirmCopy": "Kopíroval jsem API klíč",
"generate": "Generovat", "generate": "Generovat",
"done": "Hotovo", "done": "Hotovo",
@@ -424,7 +426,7 @@
"userCreated": "Uživatel byl vytvořen", "userCreated": "Uživatel byl vytvořen",
"userCreatedDescription": "Uživatel byl úspěšně vytvořen.", "userCreatedDescription": "Uživatel byl úspěšně vytvořen.",
"userTypeInternal": "Interní uživatel", "userTypeInternal": "Interní uživatel",
"userTypeInternalDescription": "Pozvěte uživatele do vaší organizace přímo.", "userTypeInternalDescription": "Pozvěte uživatele do organizace přímo.",
"userTypeExternal": "Externí uživatel", "userTypeExternal": "Externí uživatel",
"userTypeExternalDescription": "Vytvořte uživatele s externím poskytovatelem identity.", "userTypeExternalDescription": "Vytvořte uživatele s externím poskytovatelem identity.",
"accessUserCreateDescription": "Postupujte podle níže uvedených kroků pro vytvoření nového uživatele", "accessUserCreateDescription": "Postupujte podle níže uvedených kroků pro vytvoření nového uživatele",
@@ -436,6 +438,16 @@
"inviteEmailSent": "Poslat uživateli pozvánku", "inviteEmailSent": "Poslat uživateli pozvánku",
"inviteValid": "Platné pro", "inviteValid": "Platné pro",
"selectDuration": "Vyberte dobu trvání", "selectDuration": "Vyberte dobu trvání",
"selectResource": "Vybrat dokument",
"filterByResource": "Filtrovat podle zdroje",
"resetFilters": "Resetovat filtry",
"totalBlocked": "Požadavky blokovány Pangolinem",
"totalRequests": "Celkem požadavků",
"requestsByCountry": "Žádosti podle země",
"requestsByDay": "Žádosti podle dne",
"blocked": "Blokované",
"allowed": "Povoleno",
"topCountries": "Nejlepší země",
"accessRoleSelect": "Vybrat roli", "accessRoleSelect": "Vybrat roli",
"inviteEmailSentDescription": "Uživateli byl odeslán e-mail s odkazem pro přístup níže. Pro přijetí pozvánky musí mít přístup k odkazu.", "inviteEmailSentDescription": "Uživateli byl odeslán e-mail s odkazem pro přístup níže. Pro přijetí pozvánky musí mít přístup k odkazu.",
"inviteSentDescription": "Uživatel byl pozván. Pro přijetí pozvánky musí mít přístup na níže uvedený odkaz.", "inviteSentDescription": "Uživatel byl pozván. Pro přijetí pozvánky musí mít přístup na níže uvedený odkaz.",
@@ -458,13 +470,13 @@
"accessControlsSubmit": "Uložit kontroly přístupu", "accessControlsSubmit": "Uložit kontroly přístupu",
"roles": "Role", "roles": "Role",
"accessUsersRoles": "Spravovat uživatele a role", "accessUsersRoles": "Spravovat uživatele a role",
"accessUsersRolesDescription": "Pozvěte uživatele a přidejte je do rolí pro správu přístupu do vaší organizace", "accessUsersRolesDescription": "Pozvěte uživatele a přidejte je do rolí pro správu přístupu k organizaci",
"key": "Klíč", "key": "Klíč",
"createdAt": "Vytvořeno v", "createdAt": "Vytvořeno v",
"proxyErrorInvalidHeader": "Neplatná hodnota hlavičky hostitele. Použijte formát názvu domény, nebo uložte prázdné pro zrušení vlastního hlavičky hostitele.", "proxyErrorInvalidHeader": "Neplatná hodnota hlavičky hostitele. Použijte formát názvu domény, nebo uložte prázdné pro zrušení vlastního hlavičky hostitele.",
"proxyErrorTls": "Neplatné jméno TLS serveru. Použijte formát doménového jména nebo uložte prázdné pro odstranění názvu TLS serveru.", "proxyErrorTls": "Neplatné jméno TLS serveru. Použijte formát doménového jména nebo uložte prázdné pro odstranění názvu TLS serveru.",
"proxyEnableSSL": "Povolit SSL", "proxyEnableSSL": "Povolit SSL",
"proxyEnableSSLDescription": "Povolit šifrování SSL/TLS pro zabezpečená HTTPS připojení k vašim cílům.", "proxyEnableSSLDescription": "Povolit šifrování SSL/TLS pro zabezpečená připojení HTTPS k cílům.",
"target": "Target", "target": "Target",
"configureTarget": "Konfigurace cílů", "configureTarget": "Konfigurace cílů",
"targetErrorFetch": "Nepodařilo se načíst cíle", "targetErrorFetch": "Nepodařilo se načíst cíle",
@@ -480,29 +492,29 @@
"targetsErrorUpdate": "Nepodařilo se aktualizovat cíle", "targetsErrorUpdate": "Nepodařilo se aktualizovat cíle",
"targetsErrorUpdateDescription": "Došlo k chybě při aktualizaci cílů", "targetsErrorUpdateDescription": "Došlo k chybě při aktualizaci cílů",
"targetTlsUpdate": "Nastavení TLS aktualizováno", "targetTlsUpdate": "Nastavení TLS aktualizováno",
"targetTlsUpdateDescription": "Vaše nastavení TLS bylo úspěšně aktualizováno", "targetTlsUpdateDescription": "TLS nastavení bylo úspěšně aktualizováno",
"targetErrorTlsUpdate": "Aktualizace nastavení TLS se nezdařila", "targetErrorTlsUpdate": "Aktualizace nastavení TLS se nezdařila",
"targetErrorTlsUpdateDescription": "Došlo k chybě při aktualizaci nastavení TLS", "targetErrorTlsUpdateDescription": "Došlo k chybě při aktualizaci nastavení TLS",
"proxyUpdated": "Nastavení proxy bylo aktualizováno", "proxyUpdated": "Nastavení proxy bylo aktualizováno",
"proxyUpdatedDescription": "Vaše nastavení proxy bylo úspěšně aktualizováno", "proxyUpdatedDescription": "Nastavení proxy bylo úspěšně aktualizováno",
"proxyErrorUpdate": "Aktualizace nastavení proxy se nezdařila", "proxyErrorUpdate": "Aktualizace nastavení proxy se nezdařila",
"proxyErrorUpdateDescription": "Došlo k chybě při aktualizaci nastavení proxy", "proxyErrorUpdateDescription": "Došlo k chybě při aktualizaci nastavení proxy",
"targetAddr": "IP / Hostname", "targetAddr": "Hostitel",
"targetPort": "Přístav", "targetPort": "Přístav",
"targetProtocol": "Protokol", "targetProtocol": "Protokol",
"targetTlsSettings": "Nastavení bezpečného připojení", "targetTlsSettings": "Nastavení bezpečného připojení",
"targetTlsSettingsDescription": "Konfigurace nastavení SSL/TLS pro váš dokument", "targetTlsSettingsDescription": "Nastavení SSL/TLS pro zdroj",
"targetTlsSettingsAdvanced": "Pokročilé nastavení TLS", "targetTlsSettingsAdvanced": "Pokročilé nastavení TLS",
"targetTlsSni": "Název serveru TLS", "targetTlsSni": "Název serveru TLS",
"targetTlsSniDescription": "Název serveru TLS pro použití v SNI. Ponechte prázdné pro použití výchozího nastavení.", "targetTlsSniDescription": "Název serveru TLS pro použití v SNI. Ponechte prázdné pro použití výchozího nastavení.",
"targetTlsSubmit": "Uložit nastavení", "targetTlsSubmit": "Uložit nastavení",
"targets": "Konfigurace cílů", "targets": "Konfigurace cílů",
"targetsDescription": "Nastavte cíle pro směrování provozu do záložních služeb", "targetsDescription": "Nastavte cíle pro trasu provozu do záložních služeb",
"targetStickySessions": "Povolit Rychlé relace", "targetStickySessions": "Povolit Rychlé relace",
"targetStickySessionsDescription": "Zachovat spojení na stejném cíli pro celou relaci.", "targetStickySessionsDescription": "Zachovat spojení na stejném cíli pro celou relaci.",
"methodSelect": "Vyberte metodu", "methodSelect": "Vyberte metodu",
"targetSubmit": "Add Target", "targetSubmit": "Add Target",
"targetNoOne": "Tento zdroj nemá žádné cíle. Přidejte cíl pro konfiguraci kam poslat žádosti na vaši backend.", "targetNoOne": "Tento zdroj nemá žádné cíle. Přidejte cíl pro konfiguraci kam poslat žádosti na backend.",
"targetNoOneDescription": "Přidáním více než jednoho cíle se umožní vyvážení zatížení.", "targetNoOneDescription": "Přidáním více než jednoho cíle se umožní vyvážení zatížení.",
"targetsSubmit": "Uložit cíle", "targetsSubmit": "Uložit cíle",
"addTarget": "Add Target", "addTarget": "Add Target",
@@ -516,9 +528,11 @@
"targetCreatedDescription": "Cíl byl úspěšně vytvořen", "targetCreatedDescription": "Cíl byl úspěšně vytvořen",
"targetErrorCreate": "Nepodařilo se vytvořit cíl", "targetErrorCreate": "Nepodařilo se vytvořit cíl",
"targetErrorCreateDescription": "Došlo k chybě při vytváření cíle", "targetErrorCreateDescription": "Došlo k chybě při vytváření cíle",
"tlsServerName": "Název serveru TLS",
"tlsServerNameDescription": "Název serveru TLS pro SNI",
"save": "Uložit", "save": "Uložit",
"proxyAdditional": "Další nastavení proxy", "proxyAdditional": "Další nastavení proxy",
"proxyAdditionalDescription": "Konfigurovat nastavení proxy zpracování vašeho zdroje", "proxyAdditionalDescription": "Konfigurovat nastavení proxy",
"proxyCustomHeader": "Vlastní hlavička hostitele", "proxyCustomHeader": "Vlastní hlavička hostitele",
"proxyCustomHeaderDescription": "Hlavička hostitele bude nastavena při proxování požadavků. Nechte prázdné pro použití výchozího nastavení.", "proxyCustomHeaderDescription": "Hlavička hostitele bude nastavena při proxování požadavků. Nechte prázdné pro použití výchozího nastavení.",
"proxyAdditionalSubmit": "Uložit nastavení proxy", "proxyAdditionalSubmit": "Uložit nastavení proxy",
@@ -558,7 +572,7 @@
"rulesMatchType": "Typ shody", "rulesMatchType": "Typ shody",
"value": "Hodnota", "value": "Hodnota",
"rulesAbout": "O pravidlech", "rulesAbout": "O pravidlech",
"rulesAboutDescription": "Pravidla vám umožňují kontrolovat přístup k vašemu zdroji na základě sady kritérií. Můžete vytvořit pravidla pro povolení nebo zamítnutí přístupu na základě IP adresy nebo cesty URL.", "rulesAboutDescription": "Pravidla vám umožňují kontrolovat přístup ke zdrojům na základě souboru kritérií. Můžete vytvořit pravidla pro povolení nebo zamítnutí přístupu na základě IP adresy nebo cesty URL.",
"rulesActions": "Akce", "rulesActions": "Akce",
"rulesActionAlwaysAllow": "Vždy Povolit: Obejít všechny metody ověřování", "rulesActionAlwaysAllow": "Vždy Povolit: Obejít všechny metody ověřování",
"rulesActionAlwaysDeny": "Vždy odepří: Zablokovat všechny požadavky; nelze se pokusit o ověření", "rulesActionAlwaysDeny": "Vždy odepří: Zablokovat všechny požadavky; nelze se pokusit o ověření",
@@ -570,7 +584,7 @@
"rulesEnable": "Povolit pravidla", "rulesEnable": "Povolit pravidla",
"rulesEnableDescription": "Povolit nebo zakázat hodnocení pravidel pro tento zdroj", "rulesEnableDescription": "Povolit nebo zakázat hodnocení pravidel pro tento zdroj",
"rulesResource": "Konfigurace pravidel zdroje", "rulesResource": "Konfigurace pravidel zdroje",
"rulesResourceDescription": "Konfigurace pravidel pro kontrolu přístupu k vašemu zdroji", "rulesResourceDescription": "Nastavit pravidla pro kontrolu přístupu ke zdroji",
"ruleSubmit": "Přidat pravidlo", "ruleSubmit": "Přidat pravidlo",
"rulesNoOne": "Žádná pravidla. Přidejte pravidlo pomocí formuláře.", "rulesNoOne": "Žádná pravidla. Přidejte pravidlo pomocí formuláře.",
"rulesOrder": "Pravidla jsou hodnocena podle priority vzestupně.", "rulesOrder": "Pravidla jsou hodnocena podle priority vzestupně.",
@@ -586,7 +600,7 @@
"none": "Nic", "none": "Nic",
"unknown": "Neznámý", "unknown": "Neznámý",
"resources": "Zdroje", "resources": "Zdroje",
"resourcesDescription": "Zdroje jsou proxy aplikací běžících na vaší soukromé síti. Vytvořte zdroj pro jakoukoli HTTP/HTTPS nebo nakreslete TCP/UDP službu na vaší soukromé síti. Každý zdroj musí být připojen k webu pro povolení soukromého, zabezpečeného připojení pomocí šifrovaného tunelu WireGuard.", "resourcesDescription": "Zdroje jsou proxy aplikací běžících na soukromé síti. Vytvořte zdroj pro jakoukoli HTTP/HTTPS nebo nakreslete TCP/UDP službu v soukromé síti. Každý zdroj musí být připojen k webu pro povolení soukromého, zabezpečeného připojení pomocí šifrovaného tunelu WireGuard.",
"resourcesWireGuardConnect": "Bezpečné připojení s šifrováním WireGuard", "resourcesWireGuardConnect": "Bezpečné připojení s šifrováním WireGuard",
"resourcesMultipleAuthenticationMethods": "Konfigurace vícenásobných metod ověřování", "resourcesMultipleAuthenticationMethods": "Konfigurace vícenásobných metod ověřování",
"resourcesUsersRolesAccess": "Kontrola přístupu na základě uživatelů a rolí", "resourcesUsersRolesAccess": "Kontrola přístupu na základě uživatelů a rolí",
@@ -597,7 +611,7 @@
"resourceSelect": "Vyberte zdroj", "resourceSelect": "Vyberte zdroj",
"shareLinks": "Sdílet odkazy", "shareLinks": "Sdílet odkazy",
"share": "Sdílené odkazy", "share": "Sdílené odkazy",
"shareDescription2": "Vytvořte sdílitelné odkazy na vaše zdroje. Odkazy poskytují dočasný nebo neomezený přístup k vašemu zdroji. Můžete nakonfigurovat dobu vypršení platnosti odkazu při jeho vytvoření.", "shareDescription2": "Vytvořte sdílitelné odkazy na zdroje. Odkazy poskytují dočasný nebo neomezený přístup k vašemu zdroji. Můžete nakonfigurovat dobu vypršení platnosti odkazu při jeho vytvoření.",
"shareEasyCreate": "Snadné vytváření a sdílení", "shareEasyCreate": "Snadné vytváření a sdílení",
"shareConfigurableExpirationDuration": "Konfigurovatelná doba vypršení platnosti", "shareConfigurableExpirationDuration": "Konfigurovatelná doba vypršení platnosti",
"shareSecureAndRevocable": "Bezpečné a odvolatelné", "shareSecureAndRevocable": "Bezpečné a odvolatelné",
@@ -607,19 +621,19 @@
"unknownCommand": "Neznámý příkaz", "unknownCommand": "Neznámý příkaz",
"newtErrorFetchReleases": "Nepodařilo se načíst informace o vydání: {err}", "newtErrorFetchReleases": "Nepodařilo se načíst informace o vydání: {err}",
"newtErrorFetchLatest": "Chyba při načítání nejnovější verze: {err}", "newtErrorFetchLatest": "Chyba při načítání nejnovější verze: {err}",
"newtEndpoint": "Newt Endpoint", "newtEndpoint": "Endpoint",
"newtId": "Newt ID", "newtId": "ID",
"newtSecretKey": "Tajný klíč novinky", "newtSecretKey": "Tajný klíč",
"architecture": "Architektura", "architecture": "Architektura",
"sites": "Stránky", "sites": "Stránky",
"siteWgAnyClients": "K připojení použijte jakéhokoli klienta WireGuard. Budete muset řešit své interní zdroje pomocí klientské IP adresy.", "siteWgAnyClients": "K připojení použijte jakéhokoli klienta WireGuard. Budete muset řešit interní zdroje pomocí klientské IP adresy.",
"siteWgCompatibleAllClients": "Kompatibilní se všemi klienty aplikace WireGuard", "siteWgCompatibleAllClients": "Kompatibilní se všemi klienty aplikace WireGuard",
"siteWgManualConfigurationRequired": "Je vyžadována ruční konfigurace", "siteWgManualConfigurationRequired": "Je vyžadována ruční konfigurace",
"userErrorNotAdminOrOwner": "Uživatel není administrátor nebo vlastník", "userErrorNotAdminOrOwner": "Uživatel není administrátor nebo vlastník",
"pangolinSettings": "Nastavení - Pangolin", "pangolinSettings": "Nastavení - Pangolin",
"accessRoleYour": "Vaše role:", "accessRoleYour": "Vaše role:",
"accessRoleSelect2": "Vyberte roli", "accessRoleSelect2": "Vybrat role",
"accessUserSelect": "Vyberte uživatele", "accessUserSelect": "Vybrat uživatele",
"otpEmailEnter": "Zadejte e-mail", "otpEmailEnter": "Zadejte e-mail",
"otpEmailEnterDescription": "Stisknutím klávesy Enter přidáte e-mail po zadání do vstupního pole.", "otpEmailEnterDescription": "Stisknutím klávesy Enter přidáte e-mail po zadání do vstupního pole.",
"otpEmailErrorInvalid": "Neplatná e-mailová adresa. Wildcard (*) musí být celá místní část.", "otpEmailErrorInvalid": "Neplatná e-mailová adresa. Wildcard (*) musí být celá místní část.",
@@ -671,7 +685,7 @@
"resourcePincodeSetupTitle": "Nastavit anonymní kód", "resourcePincodeSetupTitle": "Nastavit anonymní kód",
"resourcePincodeSetupTitleDescription": "Nastavit pincode pro ochranu tohoto zdroje", "resourcePincodeSetupTitleDescription": "Nastavit pincode pro ochranu tohoto zdroje",
"resourceRoleDescription": "Administrátoři mají vždy přístup k tomuto zdroji.", "resourceRoleDescription": "Administrátoři mají vždy přístup k tomuto zdroji.",
"resourceUsersRoles": "Uživatelé a role", "resourceUsersRoles": "Kontrola přístupu",
"resourceUsersRolesDescription": "Nastavení, kteří uživatelé a role mohou navštívit tento zdroj", "resourceUsersRolesDescription": "Nastavení, kteří uživatelé a role mohou navštívit tento zdroj",
"resourceUsersRolesSubmit": "Uložit uživatele a role", "resourceUsersRolesSubmit": "Uložit uživatele a role",
"resourceWhitelistSave": "Úspěšně uloženo", "resourceWhitelistSave": "Úspěšně uloženo",
@@ -702,6 +716,7 @@
"resourceTransferSubmit": "Přenos zdroje", "resourceTransferSubmit": "Přenos zdroje",
"siteDestination": "Cílová stránka", "siteDestination": "Cílová stránka",
"searchSites": "Hledat lokality", "searchSites": "Hledat lokality",
"countries": "Země",
"accessRoleCreate": "Vytvořit roli", "accessRoleCreate": "Vytvořit roli",
"accessRoleCreateDescription": "Vytvořte novou roli pro seskupení uživatelů a spravujte jejich oprávnění.", "accessRoleCreateDescription": "Vytvořte novou roli pro seskupení uživatelů a spravujte jejich oprávnění.",
"accessRoleCreateSubmit": "Vytvořit roli", "accessRoleCreateSubmit": "Vytvořit roli",
@@ -768,7 +783,7 @@
"idpClientId": "ID klienta", "idpClientId": "ID klienta",
"idpClientIdDescription": "Klientské ID OAuth2 od poskytovatele identity", "idpClientIdDescription": "Klientské ID OAuth2 od poskytovatele identity",
"idpClientSecret": "Tajný klíč klienta", "idpClientSecret": "Tajný klíč klienta",
"idpClientSecretDescription": "OAuth2 klíč klienta od poskytovatele identity", "idpClientSecretDescription": "OAuth2 heslo klienta od poskytovatele identity",
"idpAuthUrl": "Autorizační URL", "idpAuthUrl": "Autorizační URL",
"idpAuthUrlDescription": "Koncový koncový bod ověření OAuth2", "idpAuthUrlDescription": "Koncový koncový bod ověření OAuth2",
"idpTokenUrl": "URL tokenu", "idpTokenUrl": "URL tokenu",
@@ -791,7 +806,7 @@
"idpSubmit": "Vytvořit poskytovatele identity", "idpSubmit": "Vytvořit poskytovatele identity",
"orgPolicies": "Zásady organizace", "orgPolicies": "Zásady organizace",
"idpSettings": "Nastavení {idpName}", "idpSettings": "Nastavení {idpName}",
"idpCreateSettingsDescription": "Konfigurace nastavení pro poskytovatele identity", "idpCreateSettingsDescription": "Konfigurace nastavení poskytovatele identity",
"roleMapping": "Mapování rolí", "roleMapping": "Mapování rolí",
"orgMapping": "Mapování organizace", "orgMapping": "Mapování organizace",
"orgPoliciesSearch": "Hledat v zásadách organizace...", "orgPoliciesSearch": "Hledat v zásadách organizace...",
@@ -826,7 +841,7 @@
"idpUpdatedDescription": "Poskytovatel identity byl úspěšně aktualizován", "idpUpdatedDescription": "Poskytovatel identity byl úspěšně aktualizován",
"redirectUrl": "Přesměrovat URL", "redirectUrl": "Přesměrovat URL",
"redirectUrlAbout": "O přesměrování URL", "redirectUrlAbout": "O přesměrování URL",
"redirectUrlAboutDescription": "Toto je URL, na kterou budou uživatelé po ověření přesměrováni. Tuto URL je třeba nakonfigurovat v nastavení poskytovatele identity.", "redirectUrlAboutDescription": "Toto je URL, na kterou budou uživatelé po ověření přesměrováni. Tuto URL je třeba nastavit v nastavení poskytovatele identity.",
"pangolinAuth": "Auth - Pangolin", "pangolinAuth": "Auth - Pangolin",
"verificationCodeLengthRequirements": "Váš ověřovací kód musí mít 8 znaků.", "verificationCodeLengthRequirements": "Váš ověřovací kód musí mít 8 znaků.",
"errorOccurred": "Došlo k chybě", "errorOccurred": "Došlo k chybě",
@@ -909,6 +924,10 @@
"passwordResetSent": "Na tuto e-mailovou adresu zašleme kód pro obnovení hesla.", "passwordResetSent": "Na tuto e-mailovou adresu zašleme kód pro obnovení hesla.",
"passwordResetCode": "Reset Code", "passwordResetCode": "Reset Code",
"passwordResetCodeDescription": "Zkontrolujte svůj e-mail pro kód pro obnovení.", "passwordResetCodeDescription": "Zkontrolujte svůj e-mail pro kód pro obnovení.",
"generatePasswordResetCode": "Vygenerovat kód pro obnovení hesla",
"passwordResetCodeGenerated": "Kód pro obnovení hesla byl vytvořen",
"passwordResetCodeGeneratedDescription": "Sdílejte tento kód s uživatelem. Mohou jej použít k obnovení hesla.",
"passwordResetUrl": "Reset URL",
"passwordNew": "Nové heslo", "passwordNew": "Nové heslo",
"passwordNewConfirm": "Potvrdit nové heslo", "passwordNewConfirm": "Potvrdit nové heslo",
"changePassword": "Změnit heslo", "changePassword": "Změnit heslo",
@@ -926,6 +945,9 @@
"pincodeAuth": "Ověřovací kód", "pincodeAuth": "Ověřovací kód",
"pincodeSubmit2": "Odeslat kód", "pincodeSubmit2": "Odeslat kód",
"passwordResetSubmit": "Žádost o obnovení", "passwordResetSubmit": "Žádost o obnovení",
"passwordResetAlreadyHaveCode": "Zadejte kód pro obnovení hesla",
"passwordResetSmtpRequired": "Obraťte se na správce",
"passwordResetSmtpRequiredDescription": "Pro obnovení hesla je vyžadován kód pro obnovení hesla. Kontaktujte prosím svého administrátora.",
"passwordBack": "Zpět na heslo", "passwordBack": "Zpět na heslo",
"loginBack": "Přejít zpět na přihlášení", "loginBack": "Přejít zpět na přihlášení",
"signup": "Zaregistrovat se", "signup": "Zaregistrovat se",
@@ -1091,12 +1113,15 @@
"actionListSiteResources": "Seznam zdrojů webu", "actionListSiteResources": "Seznam zdrojů webu",
"actionUpdateSiteResource": "Aktualizovat dokument webu", "actionUpdateSiteResource": "Aktualizovat dokument webu",
"actionListInvitations": "Seznam pozvánek", "actionListInvitations": "Seznam pozvánek",
"actionExportLogs": "Exportovat protokoly",
"actionViewLogs": "Zobrazit logy",
"noneSelected": "Není vybráno", "noneSelected": "Není vybráno",
"orgNotFound2": "Nebyly nalezeny žádné organizace.", "orgNotFound2": "Nebyly nalezeny žádné organizace.",
"searchProgress": "Hledat...", "searchProgress": "Hledat...",
"create": "Vytvořit", "create": "Vytvořit",
"orgs": "Organizace", "orgs": "Organizace",
"loginError": "Při přihlášení došlo k chybě", "loginError": "Při přihlášení došlo k chybě",
"loginRequiredForDevice": "Pro ověření vašeho zařízení je nutné se přihlásit.",
"passwordForgot": "Zapomněli jste heslo?", "passwordForgot": "Zapomněli jste heslo?",
"otpAuth": "Dvoufaktorové ověření", "otpAuth": "Dvoufaktorové ověření",
"otpAuthDescription": "Zadejte kód z vaší autentizační aplikace nebo jeden z vlastních záložních kódů.", "otpAuthDescription": "Zadejte kód z vaší autentizační aplikace nebo jeden z vlastních záložních kódů.",
@@ -1151,37 +1176,47 @@
"sidebarHome": "Domů", "sidebarHome": "Domů",
"sidebarSites": "Stránky", "sidebarSites": "Stránky",
"sidebarResources": "Zdroje", "sidebarResources": "Zdroje",
"sidebarProxyResources": "Veřejnost",
"sidebarClientResources": "Soukromé",
"sidebarAccessControl": "Kontrola přístupu", "sidebarAccessControl": "Kontrola přístupu",
"sidebarLogsAndAnalytics": "Logy & Analytika",
"sidebarUsers": "Uživatelé", "sidebarUsers": "Uživatelé",
"sidebarAdmin": "Admin",
"sidebarInvitations": "Pozvánky", "sidebarInvitations": "Pozvánky",
"sidebarRoles": "Role", "sidebarRoles": "Role",
"sidebarShareableLinks": "Sdílené odkazy", "sidebarShareableLinks": "Odkazy",
"sidebarApiKeys": "API klíče", "sidebarApiKeys": "API klíče",
"sidebarSettings": "Nastavení", "sidebarSettings": "Nastavení",
"sidebarAllUsers": "Všichni uživatelé", "sidebarAllUsers": "Všichni uživatelé",
"sidebarIdentityProviders": "Poskytovatelé identity", "sidebarIdentityProviders": "Poskytovatelé identity",
"sidebarLicense": "Licence", "sidebarLicense": "Licence",
"sidebarClients": "Klienti", "sidebarClients": "Klienti",
"sidebarUserDevices": "Uživatelé",
"sidebarMachineClients": "Stroje a přístroje",
"sidebarDomains": "Domény", "sidebarDomains": "Domény",
"sidebarGeneral": "Obecná ustanovení",
"sidebarLogAndAnalytics": "Log & Analytics",
"sidebarBluePrints": "Plány", "sidebarBluePrints": "Plány",
"sidebarOrganization": "Organizace",
"sidebarLogsAnalytics": "Analytici",
"blueprints": "Plány", "blueprints": "Plány",
"blueprintsDescription": "Plány jsou deklarativní YAML konfigurace, které definují vaše zdroje a jejich nastavení", "blueprintsDescription": "Použít deklarativní konfigurace a zobrazit předchozí běhy",
"blueprintAdd": "Přidat plán", "blueprintAdd": "Přidat plán",
"blueprintGoBack": "Zobrazit všechny plány", "blueprintGoBack": "Zobrazit všechny plány",
"blueprintCreate": "Vytvořit plán", "blueprintCreate": "Vytvořit plán",
"blueprintCreateDescription2": "Postupujte podle níže uvedených kroků pro vytvoření a použití nového plánu", "blueprintCreateDescription2": "Postupujte podle níže uvedených kroků pro vytvoření a použití nového plánu",
"blueprintDetails": "Podrobnosti plánu", "blueprintDetails": "Podrobnosti plánu",
"blueprintDetailsDescription": "Podívejte se na detaily běhu plánu", "blueprintDetailsDescription": "Podívejte se na výsledek použitého plánu a případné chyby, které se vyskytly",
"blueprintInfo": "Informace o plánu", "blueprintInfo": "Informace o plánu",
"message": "Zpráva", "message": "Zpráva",
"blueprintContentsDescription": "Definujte obsah YAML popisující vaši infrastrukturu", "blueprintContentsDescription": "Definujte obsah YAML popisující infrastrukturu",
"blueprintErrorCreateDescription": "Při aplikaci plánu došlo k chybě", "blueprintErrorCreateDescription": "Při aplikaci plánu došlo k chybě",
"blueprintErrorCreate": "Chyba při vytváření plánu", "blueprintErrorCreate": "Chyba při vytváření plánu",
"searchBlueprintProgress": "Hledat plány...", "searchBlueprintProgress": "Hledat plány...",
"appliedAt": "Použito v", "appliedAt": "Použito v",
"source": "Zdroj", "source": "Zdroj",
"contents": "Obsah", "contents": "Obsah",
"parsedContents": "Parsovaný obsah", "parsedContents": "Parsed content (Pouze pro čtení)",
"enableDockerSocket": "Povolit Docker plán", "enableDockerSocket": "Povolit Docker plán",
"enableDockerSocketDescription": "Povolte seškrábání štítků na Docker Socket pro popisky plánů. Nová cesta musí být k dispozici.", "enableDockerSocketDescription": "Povolte seškrábání štítků na Docker Socket pro popisky plánů. Nová cesta musí být k dispozici.",
"enableDockerSocketLink": "Zjistit více", "enableDockerSocketLink": "Zjistit více",
@@ -1230,15 +1265,15 @@
"loading": "Načítání", "loading": "Načítání",
"restart": "Restartovat", "restart": "Restartovat",
"domains": "Domény", "domains": "Domény",
"domainsDescription": "Spravovat domény pro vaši organizaci", "domainsDescription": "Vytvořit a spravovat domény dostupné v organizaci",
"domainsSearch": "Hledat domény...", "domainsSearch": "Hledat domény...",
"domainAdd": "Přidat doménu", "domainAdd": "Přidat doménu",
"domainAddDescription": "Registrujte novou doménu ve vaší organizaci", "domainAddDescription": "Registrovat novou doménu s organizací",
"domainCreate": "Vytvořit doménu", "domainCreate": "Vytvořit doménu",
"domainCreatedDescription": "Doména byla úspěšně vytvořena", "domainCreatedDescription": "Doména byla úspěšně vytvořena",
"domainDeletedDescription": "Doména byla úspěšně odstraněna", "domainDeletedDescription": "Doména byla úspěšně odstraněna",
"domainQuestionRemove": "Opravdu chcete odstranit doménu z vašeho účtu?", "domainQuestionRemove": "Jste si jisti, že chcete odstranit doménu?",
"domainMessageRemove": "Po odstranění domény již nebude přiřazena k vašemu účtu.", "domainMessageRemove": "Po odstranění domény již nebude přiřazena k organizaci.",
"domainConfirmDelete": "Potvrdit odstranění domény", "domainConfirmDelete": "Potvrdit odstranění domény",
"domainDelete": "Odstranit doménu", "domainDelete": "Odstranit doménu",
"domain": "Doména", "domain": "Doména",
@@ -1257,7 +1292,7 @@
"pending": "Nevyřízeno", "pending": "Nevyřízeno",
"sidebarBilling": "Fakturace", "sidebarBilling": "Fakturace",
"billing": "Fakturace", "billing": "Fakturace",
"orgBillingDescription": "Spravujte své fakturační údaje a předplatné", "orgBillingDescription": "Spravovat fakturační informace a předplatné",
"github": "GitHub", "github": "GitHub",
"pangolinHosted": "Pangolin hostovaný", "pangolinHosted": "Pangolin hostovaný",
"fossorial": "Fossorální", "fossorial": "Fossorální",
@@ -1279,6 +1314,15 @@
"settingsErrorUpdateDescription": "Došlo k chybě při aktualizaci nastavení", "settingsErrorUpdateDescription": "Došlo k chybě při aktualizaci nastavení",
"sidebarCollapse": "Sbalit", "sidebarCollapse": "Sbalit",
"sidebarExpand": "Rozbalit", "sidebarExpand": "Rozbalit",
"productUpdateMoreInfo": "{noOfUpdates} další aktualizace",
"productUpdateInfo": "Aktualizace {noOfUpdates}",
"productUpdateWhatsNew": "Co je nového",
"productUpdateTitle": "Aktualizace produktu",
"productUpdateEmpty": "Žádné aktualizace",
"dismissAll": "Odmítnout vše",
"pangolinUpdateAvailable": "Dostupná aktualizace",
"pangolinUpdateAvailableInfo": "Verze {version} je připravena k instalaci",
"pangolinUpdateAvailableReleaseNotes": "Zobrazit poznámky k vydání",
"newtUpdateAvailable": "Dostupná aktualizace", "newtUpdateAvailable": "Dostupná aktualizace",
"newtUpdateAvailableInfo": "Je k dispozici nová verze Newt. Pro nejlepší zážitek prosím aktualizujte na nejnovější verzi.", "newtUpdateAvailableInfo": "Je k dispozici nová verze Newt. Pro nejlepší zážitek prosím aktualizujte na nejnovější verzi.",
"domainPickerEnterDomain": "Doména", "domainPickerEnterDomain": "Doména",
@@ -1291,7 +1335,7 @@
"domainPickerSortAsc": "A-Z", "domainPickerSortAsc": "A-Z",
"domainPickerSortDesc": "Z-A", "domainPickerSortDesc": "Z-A",
"domainPickerCheckingAvailability": "Kontrola dostupnosti...", "domainPickerCheckingAvailability": "Kontrola dostupnosti...",
"domainPickerNoMatchingDomains": "Nebyly nalezeny žádné odpovídající domény. Zkuste jinou doménu nebo zkontrolujte nastavení domény vaší organizace.", "domainPickerNoMatchingDomains": "Nebyly nalezeny žádné odpovídající domény. Zkuste jinou doménu nebo zkontrolujte nastavení domény organizace.",
"domainPickerOrganizationDomains": "Domény organizace", "domainPickerOrganizationDomains": "Domény organizace",
"domainPickerProvidedDomains": "Poskytnuté domény", "domainPickerProvidedDomains": "Poskytnuté domény",
"domainPickerSubdomain": "Subdoména: {subdomain}", "domainPickerSubdomain": "Subdoména: {subdomain}",
@@ -1325,7 +1369,7 @@
"billingModifySubscription": "Upravit předplatné", "billingModifySubscription": "Upravit předplatné",
"billingStartSubscription": "Začít předplatné", "billingStartSubscription": "Začít předplatné",
"billingRecurringCharge": "Opakované nabití", "billingRecurringCharge": "Opakované nabití",
"billingManageSubscriptionSettings": "Spravovat nastavení a nastavení předplatného", "billingManageSubscriptionSettings": "Správa nastavení předplatného a předvoleb",
"billingNoActiveSubscription": "Nemáte aktivní předplatné. Začněte předplatné, abyste zvýšili omezení používání.", "billingNoActiveSubscription": "Nemáte aktivní předplatné. Začněte předplatné, abyste zvýšili omezení používání.",
"billingFailedToLoadSubscription": "Nepodařilo se načíst odběr", "billingFailedToLoadSubscription": "Nepodařilo se načíst odběr",
"billingFailedToLoadUsage": "Nepodařilo se načíst využití", "billingFailedToLoadUsage": "Nepodařilo se načíst využití",
@@ -1336,9 +1380,9 @@
"billingPortalError": "Chyba portálu", "billingPortalError": "Chyba portálu",
"billingDataUsageInfo": "Pokud jste připojeni k cloudu, jsou vám účtována všechna data přenášená prostřednictvím zabezpečených tunelů. To zahrnuje příchozí i odchozí provoz na všech vašich stránkách. Jakmile dosáhnete svého limitu, vaše stránky se odpojí, dokud neaktualizujete svůj tarif nebo nezmenšíte jeho používání. Data nejsou nabírána při používání uzlů.", "billingDataUsageInfo": "Pokud jste připojeni k cloudu, jsou vám účtována všechna data přenášená prostřednictvím zabezpečených tunelů. To zahrnuje příchozí i odchozí provoz na všech vašich stránkách. Jakmile dosáhnete svého limitu, vaše stránky se odpojí, dokud neaktualizujete svůj tarif nebo nezmenšíte jeho používání. Data nejsou nabírána při používání uzlů.",
"billingOnlineTimeInfo": "Platíte na základě toho, jak dlouho budou vaše stránky připojeny k cloudu. Například, 44,640 minut se rovná jedné stránce 24/7 po celý měsíc. Jakmile dosáhnete svého limitu, vaše stránky se odpojí, dokud neaktualizujete svůj tarif nebo nezkrátíte jeho používání. Čas není vybírán při používání uzlů.", "billingOnlineTimeInfo": "Platíte na základě toho, jak dlouho budou vaše stránky připojeny k cloudu. Například, 44,640 minut se rovná jedné stránce 24/7 po celý měsíc. Jakmile dosáhnete svého limitu, vaše stránky se odpojí, dokud neaktualizujete svůj tarif nebo nezkrátíte jeho používání. Čas není vybírán při používání uzlů.",
"billingUsersInfo": "Obdrželi jste platbu za každého uživatele ve vaší organizaci. Fakturace je počítána denně na základě počtu aktivních uživatelských účtů ve vašem org.", "billingUsersInfo": "Každý uživatel v organizaci je účtován denně. Fakturace je počítána na základě počtu aktivních uživatelských účtů na Vašem org.",
"billingDomainInfo": "Platba je účtována za každou doménu ve vaší organizaci. Fakturace je počítána denně na základě počtu aktivních doménových účtů na Vašem org.", "billingDomainInfo": "Objednávka je účtována za každou doménu v organizaci. Fakturace je počítána denně na základě počtu aktivních doménových účtů na Vašem org.",
"billingRemoteExitNodesInfo": "Za každý spravovaný uzel ve vaší organizaci se vám účtuje denně. Fakturace je počítána na základě počtu aktivních spravovaných uzlů ve vašem org.", "billingRemoteExitNodesInfo": "Za každý spravovaný uzel v organizaci se vám účtuje denně. Fakturace je vypočítána na základě počtu aktivních spravovaných uzlů ve vašem org.",
"domainNotFound": "Doména nenalezena", "domainNotFound": "Doména nenalezena",
"domainNotFoundDescription": "Tento dokument je zakázán, protože doména již neexistuje náš systém. Nastavte prosím novou doménu pro tento dokument.", "domainNotFoundDescription": "Tento dokument je zakázán, protože doména již neexistuje náš systém. Nastavte prosím novou doménu pro tento dokument.",
"failed": "Selhalo", "failed": "Selhalo",
@@ -1421,29 +1465,32 @@
"and": "a", "and": "a",
"privacyPolicy": "zásady ochrany osobních údajů" "privacyPolicy": "zásady ochrany osobních údajů"
}, },
"signUpMarketing": {
"keepMeInTheLoop": "Udržujte mě ve smyčce s novinkami, aktualizacemi a novými funkcemi e-mailem."
},
"siteRequired": "Stránka je povinná.", "siteRequired": "Stránka je povinná.",
"olmTunnel": "Starý tunel", "olmTunnel": "Starý tunel",
"olmTunnelDescription": "Použít Olm pro připojení klienta", "olmTunnelDescription": "Použít Olm pro připojení klienta",
"errorCreatingClient": "Chyba při vytváření klienta", "errorCreatingClient": "Chyba při vytváření klienta",
"clientDefaultsNotFound": "Výchozí hodnoty klienta nebyly nalezeny", "clientDefaultsNotFound": "Výchozí hodnoty klienta nebyly nalezeny",
"createClient": "Vytvořit klienta", "createClient": "Vytvořit klienta",
"createClientDescription": "Vytvořte nového klienta pro připojení k vašim stránkám", "createClientDescription": "Vytvořte nového klienta pro přístup k soukromým zdrojům",
"seeAllClients": "Zobrazit všechny klienty", "seeAllClients": "Zobrazit všechny klienty",
"clientInformation": "Informace o klientovi", "clientInformation": "Informace o klientovi",
"clientNamePlaceholder": "Název klienta", "clientNamePlaceholder": "Název klienta",
"address": "Adresa", "address": "Adresa",
"subnetPlaceholder": "Podsíť", "subnetPlaceholder": "Podsíť",
"addressDescription": "Adresa, kterou bude tento klient používat pro připojení", "addressDescription": "Interní adresa klienta. Musí spadat do podsítě organizace.",
"selectSites": "Vyberte stránky", "selectSites": "Vyberte stránky",
"sitesDescription": "Klient bude mít připojení k vybraným webům", "sitesDescription": "Klient bude mít připojení k vybraným webům",
"clientInstallOlm": "Nainstalovat Olm", "clientInstallOlm": "Nainstalovat Olm",
"clientInstallOlmDescription": "Stáhněte si Olm běžící ve vašem systému", "clientInstallOlmDescription": "Stáhněte si Olm běžící ve vašem systému",
"clientOlmCredentials": "Olm pověření", "clientOlmCredentials": "Pověření",
"clientOlmCredentialsDescription": "Tímto způsobem se bude Olm autentizovat se serverem", "clientOlmCredentialsDescription": "Tímto způsobem bude klient autentizovat se serverem",
"olmEndpoint": "Olm koncový bod", "olmEndpoint": "Endpoint",
"olmId": "Olm ID", "olmId": "ID",
"olmSecretKey": "Olm tajný klíč", "olmSecretKey": "Tajný klíč",
"clientCredentialsSave": "Uložit přihlašovací údaje", "clientCredentialsSave": "Uložit pověření",
"clientCredentialsSaveDescription": "Toto nastavení uvidíte pouze jednou. Ujistěte se, že jej zkopírujete na bezpečné místo.", "clientCredentialsSaveDescription": "Toto nastavení uvidíte pouze jednou. Ujistěte se, že jej zkopírujete na bezpečné místo.",
"generalSettingsDescription": "Konfigurace obecných nastavení pro tohoto klienta", "generalSettingsDescription": "Konfigurace obecných nastavení pro tohoto klienta",
"clientUpdated": "Klient byl aktualizován", "clientUpdated": "Klient byl aktualizován",
@@ -1454,9 +1501,7 @@
"sitesFetchError": "Došlo k chybě při načítání stránek.", "sitesFetchError": "Došlo k chybě při načítání stránek.",
"olmErrorFetchReleases": "Při načítání vydání Olm došlo k chybě.", "olmErrorFetchReleases": "Při načítání vydání Olm došlo k chybě.",
"olmErrorFetchLatest": "Došlo k chybě při načítání nejnovější verze Olm.", "olmErrorFetchLatest": "Došlo k chybě při načítání nejnovější verze Olm.",
"remoteSubnets": "Vzdálené podsítě",
"enterCidrRange": "Zadejte rozsah CIDR", "enterCidrRange": "Zadejte rozsah CIDR",
"remoteSubnetsDescription": "Přidejte CIDR rozsahy, které mohou být přístupné z tohoto webu dálkově pomocí klientů. Použijte formát jako 10.0.0.0/24. Toto platí pro připojení klienta VPN.",
"resourceEnableProxy": "Povolit veřejné proxy", "resourceEnableProxy": "Povolit veřejné proxy",
"resourceEnableProxyDescription": "Povolit veřejné proxying pro tento zdroj. To umožňuje přístup ke zdrojům mimo síť prostřednictvím cloudu na otevřeném portu. Vyžaduje nastavení Traefik.", "resourceEnableProxyDescription": "Povolit veřejné proxying pro tento zdroj. To umožňuje přístup ke zdrojům mimo síť prostřednictvím cloudu na otevřeném portu. Vyžaduje nastavení Traefik.",
"externalProxyEnabled": "Externí proxy povolen", "externalProxyEnabled": "Externí proxy povolen",
@@ -1474,14 +1519,15 @@
"enableHealthChecksDescription": "Sledujte zdraví tohoto cíle. V případě potřeby můžete sledovat jiný cílový bod, než je cíl.", "enableHealthChecksDescription": "Sledujte zdraví tohoto cíle. V případě potřeby můžete sledovat jiný cílový bod, než je cíl.",
"healthScheme": "Způsob", "healthScheme": "Způsob",
"healthSelectScheme": "Vybrat metodu", "healthSelectScheme": "Vybrat metodu",
"healthCheckPortInvalid": "Přístav kontroly stavu musí být mezi 1 a 65535",
"healthCheckPath": "Cesta", "healthCheckPath": "Cesta",
"healthHostname": "IP / Hostitel", "healthHostname": "IP / Hostitel",
"healthPort": "Přístav", "healthPort": "Přístav",
"healthCheckPathDescription": "Cesta ke kontrole zdravotního stavu.", "healthCheckPathDescription": "Cesta ke kontrole zdravotního stavu.",
"healthyIntervalSeconds": "Interval zdraví", "healthyIntervalSeconds": "Zdravý interval (sek)",
"unhealthyIntervalSeconds": "Nezdravý interval", "unhealthyIntervalSeconds": "Nezdravý interval (sek)",
"IntervalSeconds": "Interval zdraví", "IntervalSeconds": "Interval zdraví",
"timeoutSeconds": "Časový limit", "timeoutSeconds": "Časový limit (sek)",
"timeIsInSeconds": "Čas je v sekundách", "timeIsInSeconds": "Čas je v sekundách",
"retryAttempts": "Opakovat pokusy", "retryAttempts": "Opakovat pokusy",
"expectedResponseCodes": "Očekávané kódy odezvy", "expectedResponseCodes": "Očekávané kódy odezvy",
@@ -1517,16 +1563,22 @@
"resourceEditDomain": "Upravit doménu", "resourceEditDomain": "Upravit doménu",
"siteName": "Název webu", "siteName": "Název webu",
"proxyPort": "Přístav", "proxyPort": "Přístav",
"resourcesTableProxyResources": "Zdroje proxy", "resourcesTableProxyResources": "Veřejnost",
"resourcesTableClientResources": "Zdroje klienta", "resourcesTableClientResources": "Soukromé",
"resourcesTableNoProxyResourcesFound": "Nebyly nalezeny žádné zdroje proxy", "resourcesTableNoProxyResourcesFound": "Nebyly nalezeny žádné zdroje proxy",
"resourcesTableNoInternalResourcesFound": "Nebyly nalezeny žádné vnitřní zdroje.", "resourcesTableNoInternalResourcesFound": "Nebyly nalezeny žádné vnitřní zdroje.",
"resourcesTableDestination": "Místo určení", "resourcesTableDestination": "Místo určení",
"resourcesTableTheseResourcesForUseWith": "Tyto zdroje jsou určeny pro použití s", "resourcesTableAlias": "Alias",
"resourcesTableClients": "Klienti", "resourcesTableClients": "Klienti",
"resourcesTableAndOnlyAccessibleInternally": "a jsou interně přístupné pouze v případě, že jsou propojeni s klientem.", "resourcesTableAndOnlyAccessibleInternally": "a jsou interně přístupné pouze v případě, že jsou propojeni s klientem.",
"editInternalResourceDialogEditClientResource": "Upravit klientský dokument", "resourcesTableNoTargets": "Žádné cíle",
"editInternalResourceDialogUpdateResourceProperties": "Aktualizujte vlastnosti zdroje a cílovou konfiguraci pro {resourceName}.", "resourcesTableHealthy": "Zdravé",
"resourcesTableDegraded": "Rozklad",
"resourcesTableOffline": "Offline",
"resourcesTableUnknown": "Neznámý",
"resourcesTableNotMonitored": "Není sledováno",
"editInternalResourceDialogEditClientResource": "Upravit soukromý dokument",
"editInternalResourceDialogUpdateResourceProperties": "Aktualizovat konfiguraci zdroje a ovládací prvky přístupu pro {resourceName}",
"editInternalResourceDialogResourceProperties": "Vlastnosti zdroje", "editInternalResourceDialogResourceProperties": "Vlastnosti zdroje",
"editInternalResourceDialogName": "Jméno", "editInternalResourceDialogName": "Jméno",
"editInternalResourceDialogProtocol": "Protokol", "editInternalResourceDialogProtocol": "Protokol",
@@ -1545,11 +1597,22 @@
"editInternalResourceDialogInvalidIPAddressFormat": "Neplatný formát IP adresy", "editInternalResourceDialogInvalidIPAddressFormat": "Neplatný formát IP adresy",
"editInternalResourceDialogDestinationPortMin": "Cílový přístav musí být alespoň 1", "editInternalResourceDialogDestinationPortMin": "Cílový přístav musí být alespoň 1",
"editInternalResourceDialogDestinationPortMax": "Cílový přístav musí být nižší než 65536", "editInternalResourceDialogDestinationPortMax": "Cílový přístav musí být nižší než 65536",
"editInternalResourceDialogPortModeRequired": "Protokol, proxy port a cílový port jsou vyžadovány pro režim portu",
"editInternalResourceDialogMode": "Režim",
"editInternalResourceDialogModePort": "Přístav",
"editInternalResourceDialogModeHost": "Hostitel",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogDestination": "Místo určení",
"editInternalResourceDialogDestinationHostDescription": "IP adresa nebo název hostitele zdroje v síti webu.",
"editInternalResourceDialogDestinationIPDescription": "IP nebo název hostitele zdroje v síti webu.",
"editInternalResourceDialogDestinationCidrDescription": "Rozsah zdrojů CIDR v síti webu.",
"editInternalResourceDialogAlias": "Alias",
"editInternalResourceDialogAliasDescription": "Volitelný interní DNS alias pro tento dokument.",
"createInternalResourceDialogNoSitesAvailable": "Nejsou k dispozici žádné weby", "createInternalResourceDialogNoSitesAvailable": "Nejsou k dispozici žádné weby",
"createInternalResourceDialogNoSitesAvailableDescription": "Musíte mít alespoň jeden Newt web s podsítí nakonfigurovanou pro vytvoření vnitřních zdrojů.", "createInternalResourceDialogNoSitesAvailableDescription": "Musíte mít alespoň jeden Newt web s podsítí nakonfigurovanou pro vytvoření vnitřních zdrojů.",
"createInternalResourceDialogClose": "Zavřít", "createInternalResourceDialogClose": "Zavřít",
"createInternalResourceDialogCreateClientResource": "Vytvořit klientský dokument", "createInternalResourceDialogCreateClientResource": "Vytvořit soukromý zdroj",
"createInternalResourceDialogCreateClientResourceDescription": "Vytvořte nový zdroj, který bude přístupný klientům připojeným k vybranému webu.", "createInternalResourceDialogCreateClientResourceDescription": "Vytvořte nový zdroj, který bude přístupný pouze klientům připojeným k organizaci",
"createInternalResourceDialogResourceProperties": "Vlastnosti zdroje", "createInternalResourceDialogResourceProperties": "Vlastnosti zdroje",
"createInternalResourceDialogName": "Jméno", "createInternalResourceDialogName": "Jméno",
"createInternalResourceDialogSite": "Lokalita", "createInternalResourceDialogSite": "Lokalita",
@@ -1578,11 +1641,22 @@
"createInternalResourceDialogInvalidIPAddressFormat": "Neplatný formát IP adresy", "createInternalResourceDialogInvalidIPAddressFormat": "Neplatný formát IP adresy",
"createInternalResourceDialogDestinationPortMin": "Cílový přístav musí být alespoň 1", "createInternalResourceDialogDestinationPortMin": "Cílový přístav musí být alespoň 1",
"createInternalResourceDialogDestinationPortMax": "Cílový přístav musí být nižší než 65536", "createInternalResourceDialogDestinationPortMax": "Cílový přístav musí být nižší než 65536",
"createInternalResourceDialogPortModeRequired": "Protokol, proxy port a cílový port jsou vyžadovány pro režim portu",
"createInternalResourceDialogMode": "Režim",
"createInternalResourceDialogModePort": "Přístav",
"createInternalResourceDialogModeHost": "Hostitel",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogDestination": "Místo určení",
"createInternalResourceDialogDestinationHostDescription": "IP adresa nebo název hostitele zdroje v síti webu.",
"createInternalResourceDialogDestinationCidrDescription": "Rozsah zdrojů CIDR v síti webu.",
"createInternalResourceDialogAlias": "Alias",
"createInternalResourceDialogAliasDescription": "Volitelný interní DNS alias pro tento dokument.",
"siteConfiguration": "Konfigurace", "siteConfiguration": "Konfigurace",
"siteAcceptClientConnections": "Přijmout připojení klienta", "siteAcceptClientConnections": "Přijmout připojení klienta",
"siteAcceptClientConnectionsDescription": "Umožnit ostatním zařízením připojit se prostřednictvím této instance Newt jako brána pomocí klientů.", "siteAcceptClientConnectionsDescription": "Povolit uživatelským zařízením a klientům přístup ke zdrojům na tomto webu. To lze později změnit.",
"siteAddress": "Adresa webu", "siteAddress": "Adresa webu (Advanced)",
"siteAddressDescription": "Zadejte IP adresu hostitele pro připojení. Toto je interní adresa webu v síti Pangolin pro klienty. Musí spadat do podsítě Org.", "siteAddressDescription": "Interní adresa webu. Musí spadat do podsítě organizace.",
"siteNameDescription": "Zobrazovaný název stránky, který lze později změnit.",
"autoLoginExternalIdp": "Automatické přihlášení pomocí externího IDP", "autoLoginExternalIdp": "Automatické přihlášení pomocí externího IDP",
"autoLoginExternalIdpDescription": "Okamžitě přesměrujte uživatele na externí IDP k ověření.", "autoLoginExternalIdpDescription": "Okamžitě přesměrujte uživatele na externí IDP k ověření.",
"selectIdp": "Vybrat IDP", "selectIdp": "Vybrat IDP",
@@ -1596,7 +1670,7 @@
"autoLoginErrorNoRedirectUrl": "Od poskytovatele identity nebyla obdržena žádná adresa URL.", "autoLoginErrorNoRedirectUrl": "Od poskytovatele identity nebyla obdržena žádná adresa URL.",
"autoLoginErrorGeneratingUrl": "Nepodařilo se vygenerovat ověřovací URL.", "autoLoginErrorGeneratingUrl": "Nepodařilo se vygenerovat ověřovací URL.",
"remoteExitNodeManageRemoteExitNodes": "Vzdálené uzly", "remoteExitNodeManageRemoteExitNodes": "Vzdálené uzly",
"remoteExitNodeDescription": "Hostujte jeden nebo více vlastních vzdálených uzlů, abyste rozšířili síťová připojení a snížili závislost na cloudu", "remoteExitNodeDescription": "Samohostitelská jedna nebo více vzdálených uzlů pro rozšíření připojení k síti a snížení závislosti na cloudu",
"remoteExitNodes": "Uzly", "remoteExitNodes": "Uzly",
"searchRemoteExitNodes": "Hledat uzly...", "searchRemoteExitNodes": "Hledat uzly...",
"remoteExitNodeAdd": "Přidat uzel", "remoteExitNodeAdd": "Přidat uzel",
@@ -1612,7 +1686,7 @@
"viewAllButton": "Zobrazit všechny uzly", "viewAllButton": "Zobrazit všechny uzly",
"strategy": { "strategy": {
"title": "Strategie tvorby", "title": "Strategie tvorby",
"description": "Vyberte pro manuální konfiguraci vašeho uzlu nebo vygenerujte nové přihlašovací údaje.", "description": "Zvolte pro ruční nastavení uzlu nebo vygenerování nových pověření.",
"adopt": { "adopt": {
"title": "Přijmout uzel", "title": "Přijmout uzel",
"description": "Zvolte tuto možnost, pokud již máte přihlašovací údaje k uzlu." "description": "Zvolte tuto možnost, pokud již máte přihlašovací údaje k uzlu."
@@ -1633,7 +1707,7 @@
}, },
"generate": { "generate": {
"title": "Vygenerovaná pověření", "title": "Vygenerovaná pověření",
"description": "Použijte tyto generované přihlašovací údaje pro nastavení vašeho uzlu", "description": "Použijte tyto generované přihlašovací údaje pro nastavení uzlu",
"nodeIdTitle": "ID uzlu", "nodeIdTitle": "ID uzlu",
"secretTitle": "Tajný klíč", "secretTitle": "Tajný klíč",
"saveCredentialsTitle": "Přidat přihlašovací údaje do konfigurace", "saveCredentialsTitle": "Přidat přihlašovací údaje do konfigurace",
@@ -1710,14 +1784,14 @@
"roleMappingExpressionPlaceholder": "např. obsahuje(skupiny, 'admin') && 'Admin' || 'Member'", "roleMappingExpressionPlaceholder": "např. obsahuje(skupiny, 'admin') && 'Admin' || 'Member'",
"idpGoogleConfiguration": "Konfigurace Google", "idpGoogleConfiguration": "Konfigurace Google",
"idpGoogleConfigurationDescription": "Konfigurace přihlašovacích údajů Google OAuth2", "idpGoogleConfigurationDescription": "Konfigurace přihlašovacích údajů Google OAuth2",
"idpGoogleClientIdDescription": "Vaše ID klienta Google OAuth2", "idpGoogleClientIdDescription": "Google OAuth2 Client ID",
"idpGoogleClientSecretDescription": "Tajný klíč klienta Google OAuth2", "idpGoogleClientSecretDescription": "Tajný klíč klienta Google OAuth2",
"idpAzureConfiguration": "Nastavení Azure Entra ID", "idpAzureConfiguration": "Nastavení Azure Entra ID",
"idpAzureConfigurationDescription": "Nastavte vaše Azure Entra ID OAuth2", "idpAzureConfigurationDescription": "Konfigurace Azure Entra ID OAuth2",
"idpTenantId": "ID tenanta", "idpTenantId": "ID tenanta",
"idpTenantIdPlaceholder": "vaše-tenant-id", "idpTenantIdPlaceholder": "tenant-id",
"idpAzureTenantIdDescription": "Vaše Azure nájemce ID (nalezeno v přehledu Azure Active Directory Azure)", "idpAzureTenantIdDescription": "ID nájemce Azura (nalezeno v přehledu Azure Active Directory - Azure Active Directory - přehled )",
"idpAzureClientIdDescription": "Vaše ID registrace aplikace Azure", "idpAzureClientIdDescription": "ID klienta pro registraci aplikace Azure",
"idpAzureClientSecretDescription": "Tajný klíč registrace aplikace Azure", "idpAzureClientSecretDescription": "Tajný klíč registrace aplikace Azure",
"idpGoogleTitle": "Google", "idpGoogleTitle": "Google",
"idpGoogleAlt": "Google", "idpGoogleAlt": "Google",
@@ -1726,14 +1800,14 @@
"idpGoogleConfigurationTitle": "Konfigurace Google", "idpGoogleConfigurationTitle": "Konfigurace Google",
"idpAzureConfigurationTitle": "Nastavení Azure Entra ID", "idpAzureConfigurationTitle": "Nastavení Azure Entra ID",
"idpTenantIdLabel": "ID tenanta", "idpTenantIdLabel": "ID tenanta",
"idpAzureClientIdDescription2": "Vaše ID registrace aplikace Azure", "idpAzureClientIdDescription2": "ID klienta pro registraci aplikace Azure",
"idpAzureClientSecretDescription2": "Tajný klíč registrace aplikace Azure", "idpAzureClientSecretDescription2": "Tajný klíč registrace aplikace Azure",
"idpGoogleDescription": "Poskytovatel Google OAuth2/OIDC", "idpGoogleDescription": "Poskytovatel Google OAuth2/OIDC",
"idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider", "idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider",
"subnet": "Podsíť", "subnet": "Podsíť",
"subnetDescription": "Podsíť pro konfiguraci sítě této organizace.", "subnetDescription": "Podsíť pro konfiguraci sítě této organizace.",
"authPage": "Auth stránka", "authPage": "Auth stránka",
"authPageDescription": "Konfigurace autentizační stránky vaší organizace", "authPageDescription": "Konfigurace autentizační stránky organizace",
"authPageDomain": "Doména ověření stránky", "authPageDomain": "Doména ověření stránky",
"noDomainSet": "Není nastavena žádná doména", "noDomainSet": "Není nastavena žádná doména",
"changeDomain": "Změnit doménu", "changeDomain": "Změnit doménu",
@@ -1743,7 +1817,7 @@
"setAuthPageDomain": "Nastavit doménu autentické stránky", "setAuthPageDomain": "Nastavit doménu autentické stránky",
"failedToFetchCertificate": "Nepodařilo se načíst certifikát", "failedToFetchCertificate": "Nepodařilo se načíst certifikát",
"failedToRestartCertificate": "Restartování certifikátu se nezdařilo", "failedToRestartCertificate": "Restartování certifikátu se nezdařilo",
"addDomainToEnableCustomAuthPages": "Přidejte doménu pro povolení vlastních ověřovacích stránek pro vaši organizaci", "addDomainToEnableCustomAuthPages": "Přidat doménu pro povolení vlastních ověřovacích stránek organizace",
"selectDomainForOrgAuthPage": "Vyberte doménu pro ověřovací stránku organizace", "selectDomainForOrgAuthPage": "Vyberte doménu pro ověřovací stránku organizace",
"domainPickerProvidedDomain": "Poskytnutá doména", "domainPickerProvidedDomain": "Poskytnutá doména",
"domainPickerFreeProvidedDomain": "Zdarma poskytnutá doména", "domainPickerFreeProvidedDomain": "Zdarma poskytnutá doména",
@@ -1758,7 +1832,7 @@
"domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" nemohl být platný pro {domain}.", "domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" nemohl být platný pro {domain}.",
"domainPickerSubdomainSanitized": "Upravená subdoména", "domainPickerSubdomainSanitized": "Upravená subdoména",
"domainPickerSubdomainCorrected": "\"{sub}\" bylo opraveno na \"{sanitized}\"", "domainPickerSubdomainCorrected": "\"{sub}\" bylo opraveno na \"{sanitized}\"",
"orgAuthSignInTitle": "Přihlaste se do vaší organizace", "orgAuthSignInTitle": "Přihlásit se k organizaci",
"orgAuthChooseIdpDescription": "Chcete-li pokračovat, vyberte svého poskytovatele identity", "orgAuthChooseIdpDescription": "Chcete-li pokračovat, vyberte svého poskytovatele identity",
"orgAuthNoIdpConfigured": "Tato organizace nemá nakonfigurovány žádné poskytovatele identity. Místo toho se můžete přihlásit s vaší Pangolinovou identitou.", "orgAuthNoIdpConfigured": "Tato organizace nemá nakonfigurovány žádné poskytovatele identity. Místo toho se můžete přihlásit s vaší Pangolinovou identitou.",
"orgAuthSignInWithPangolin": "Přihlásit se pomocí Pangolinu", "orgAuthSignInWithPangolin": "Přihlásit se pomocí Pangolinu",
@@ -1776,7 +1850,7 @@
"enableTwoFactorAuthentication": "Povolit dvoufaktorové ověření", "enableTwoFactorAuthentication": "Povolit dvoufaktorové ověření",
"completeSecuritySteps": "Dokončit bezpečnostní kroky", "completeSecuritySteps": "Dokončit bezpečnostní kroky",
"securitySettings": "Nastavení zabezpečení", "securitySettings": "Nastavení zabezpečení",
"securitySettingsDescription": "Konfigurace bezpečnostních zásad pro vaši organizaci", "securitySettingsDescription": "Konfigurace bezpečnostních pravidel organizace",
"requireTwoFactorForAllUsers": "Vyžadovat dvoufaktorové ověření pro všechny uživatele", "requireTwoFactorForAllUsers": "Vyžadovat dvoufaktorové ověření pro všechny uživatele",
"requireTwoFactorDescription": "Pokud je povoleno, všichni interní uživatelé v této organizaci musí mít dvoufaktorové ověření povoleno pro přístup k organizaci.", "requireTwoFactorDescription": "Pokud je povoleno, všichni interní uživatelé v této organizaci musí mít dvoufaktorové ověření povoleno pro přístup k organizaci.",
"requireTwoFactorDisabledDescription": "Tato funkce vyžaduje platnou licenci (Enterprise) nebo aktivní předplatné (SaaS)", "requireTwoFactorDisabledDescription": "Tato funkce vyžaduje platnou licenci (Enterprise) nebo aktivní předplatné (SaaS)",
@@ -1839,8 +1913,12 @@
"enterpriseEdition": "Podniková edice", "enterpriseEdition": "Podniková edice",
"unlicensed": "Nelicencováno", "unlicensed": "Nelicencováno",
"beta": "Beta", "beta": "Beta",
"manageClients": "Spravovat klienty", "manageUserDevices": "Uživatelská zařízení",
"manageClientsDescription": "Klienti jsou zařízení, která se mohou připojit k vašim lokalitám", "manageUserDevicesDescription": "Zobrazit a spravovat zařízení, která používají uživatelé k soukromím připojení k zdrojům",
"manageMachineClients": "Správa automatických klientů",
"manageMachineClientsDescription": "Vytvořte a spravujte klienty, které servery a systémy používají k soukromím připojování k zdrojům",
"clientsTableUserClients": "Uživatel",
"clientsTableMachineClients": "Stroj",
"licenseTableValidUntil": "Platná do", "licenseTableValidUntil": "Platná do",
"saasLicenseKeysSettingsTitle": "Podniková licence", "saasLicenseKeysSettingsTitle": "Podniková licence",
"saasLicenseKeysSettingsDescription": "Vygenerovat a spravovat podnikové licence pro instance Pangolin na vlastním hostingu", "saasLicenseKeysSettingsDescription": "Vygenerovat a spravovat podnikové licence pro instance Pangolin na vlastním hostingu",
@@ -1975,11 +2053,12 @@
"pathRewriteStripLabel": "odstranit", "pathRewriteStripLabel": "odstranit",
"sidebarEnableEnterpriseLicense": "Použít podnikovou licenci", "sidebarEnableEnterpriseLicense": "Použít podnikovou licenci",
"cannotbeUndone": "To nelze vrátit zpět.", "cannotbeUndone": "To nelze vrátit zpět.",
"toConfirm": "Potvrdit", "toConfirm": "potvrdit.",
"deleteClientQuestion": "Jste si jisti, že chcete odstranit klienta z webu a organizace?", "deleteClientQuestion": "Jste si jisti, že chcete odstranit klienta z webu a organizace?",
"clientMessageRemove": "Po odstranění se klient již nebude moci připojit k webu.", "clientMessageRemove": "Po odstranění se klient již nebude moci připojit k webu.",
"sidebarLogs": "Logy", "sidebarLogs": "Logy",
"request": "Žádost", "request": "Žádost",
"requests": "Požadavky",
"logs": "Logy", "logs": "Logy",
"logsSettingsDescription": "Monitorovat logy shromážděné z této orginizace", "logsSettingsDescription": "Monitorovat logy shromážděné z této orginizace",
"searchLogs": "Hledat logy...", "searchLogs": "Hledat logy...",
@@ -2005,6 +2084,7 @@
"ip": "IP adresa", "ip": "IP adresa",
"reason": "Důvod", "reason": "Důvod",
"requestLogs": "Záznamy požadavků", "requestLogs": "Záznamy požadavků",
"requestAnalytics": "Vyžádat analýzu",
"host": "Hostitel", "host": "Hostitel",
"location": "Poloha", "location": "Poloha",
"actionLogs": "Záznamy akcí", "actionLogs": "Záznamy akcí",
@@ -2014,6 +2094,7 @@
"logRetention": "Zaznamenávání záznamu", "logRetention": "Zaznamenávání záznamu",
"logRetentionDescription": "Spravovat, jak dlouho jsou různé typy logů uloženy pro tuto organizaci nebo je zakázat", "logRetentionDescription": "Spravovat, jak dlouho jsou různé typy logů uloženy pro tuto organizaci nebo je zakázat",
"requestLogsDescription": "Zobrazit podrobné protokoly požadavků pro zdroje v této organizaci", "requestLogsDescription": "Zobrazit podrobné protokoly požadavků pro zdroje v této organizaci",
"requestAnalyticsDescription": "Zobrazit podrobnou analýzu požadavků pro zdroje v této organizaci",
"logRetentionRequestLabel": "Zachování logu žádosti", "logRetentionRequestLabel": "Zachování logu žádosti",
"logRetentionRequestDescription": "Jak dlouho uchovávat záznamy požadavků", "logRetentionRequestDescription": "Jak dlouho uchovávat záznamy požadavků",
"logRetentionAccessLabel": "Zachování záznamu přístupu", "logRetentionAccessLabel": "Zachování záznamu přístupu",
@@ -2027,6 +2108,7 @@
"logRetention30Days": "30 dní", "logRetention30Days": "30 dní",
"logRetention90Days": "90 dní", "logRetention90Days": "90 dní",
"logRetentionForever": "Navždy", "logRetentionForever": "Navždy",
"logRetentionEndOfFollowingYear": "Konec následujícího roku",
"actionLogsDescription": "Zobrazit historii akcí provedených v této organizaci", "actionLogsDescription": "Zobrazit historii akcí provedených v této organizaci",
"accessLogsDescription": "Zobrazit žádosti o ověření přístupu pro zdroje v této organizaci", "accessLogsDescription": "Zobrazit žádosti o ověření přístupu pro zdroje v této organizaci",
"licenseRequiredToUse": "Pro použití této funkce je vyžadována licence pro podnikání.", "licenseRequiredToUse": "Pro použití této funkce je vyžadována licence pro podnikání.",
@@ -2037,7 +2119,7 @@
"preferWildcardCert": "Preferovat Wildcard certifikát", "preferWildcardCert": "Preferovat Wildcard certifikát",
"unverified": "Neověřeno", "unverified": "Neověřeno",
"domainSetting": "Nastavení domény", "domainSetting": "Nastavení domény",
"domainSettingDescription": "Konfigurace nastavení pro vaši doménu", "domainSettingDescription": "Konfigurace nastavení pro doménu",
"preferWildcardCertDescription": "Pokus o vygenerování zástupného certifikátu (vyžaduje správně nakonfigurovaný certifikát).", "preferWildcardCertDescription": "Pokus o vygenerování zástupného certifikátu (vyžaduje správně nakonfigurovaný certifikát).",
"recordName": "Název záznamu", "recordName": "Název záznamu",
"auto": "Automaticky", "auto": "Automaticky",
@@ -2051,15 +2133,15 @@
"olmUpdateAvailableInfo": "Je k dispozici aktualizovaná verze Olm. Pro nejlepší zážitek prosím aktualizujte na nejnovější verzi.", "olmUpdateAvailableInfo": "Je k dispozici aktualizovaná verze Olm. Pro nejlepší zážitek prosím aktualizujte na nejnovější verzi.",
"client": "Zákazník", "client": "Zákazník",
"proxyProtocol": "Nastavení proxy protokolu", "proxyProtocol": "Nastavení proxy protokolu",
"proxyProtocolDescription": "Konfigurace Proxy protokolu pro zachování klientských IP adres pro služby TCP/UDP.", "proxyProtocolDescription": "Konfigurace Proxy protokolu pro zachování klientských IP adres pro služby TCP.",
"enableProxyProtocol": "Povolit Proxy protokol", "enableProxyProtocol": "Povolit Proxy protokol",
"proxyProtocolInfo": "Zachovat IP adresy klienta pro TCP/UDP backends", "proxyProtocolInfo": "Zachovat IP adresu klienta pro TCP zálohy",
"proxyProtocolVersion": "Verze proxy protokolu", "proxyProtocolVersion": "Verze proxy protokolu",
"version1": " Verze 1 (doporučeno)", "version1": " Verze 1 (doporučeno)",
"version2": "Verze 2", "version2": "Verze 2",
"versionDescription": "Verze 1 je textová a široce podporovaná. Verze 2 je binární a efektivnější, ale méně kompatibilní.", "versionDescription": "Verze 1 je textová a široce podporovaná. Verze 2 je binární a efektivnější, ale méně kompatibilní.",
"warning": "Varování", "warning": "Varování",
"proxyProtocolWarning": "Vaše backend aplikace musí být nakonfigurována, aby mohla být přijata spojení s Proxy protokolem. Pokud vaše backend nepodporuje Proxy protokol, povolením tohoto protokolu dojde k přerušení všech připojení. Ujistěte se, že nastavíte svou backend a důvěřujte hlavičkám Proxy protokolu z Traefik.", "proxyProtocolWarning": "Aplikace backend musí být nakonfigurována, aby mohla přijímat připojení k Proxy protokolu. Pokud vaše backend nepodporuje Proxy protokol, povolením tohoto protokolu dojde k přerušení všech připojení, takže toto povolíte pouze pokud víte, co děláte. Ujistěte se, že nastavíte svou backend a důvěřujte hlavičkám Proxy protokolu z Traefik.",
"restarting": "Restartování...", "restarting": "Restartování...",
"manual": "Ruční", "manual": "Ruční",
"messageSupport": "Podpora zpráv", "messageSupport": "Podpora zpráv",
@@ -2080,5 +2162,113 @@
"supportSending": "Odesílání...", "supportSending": "Odesílání...",
"supportSend": "Poslat", "supportSend": "Poslat",
"supportMessageSent": "Zpráva odeslána!", "supportMessageSent": "Zpráva odeslána!",
"supportWillContact": "Brzy budeme v kontaktu!" "supportWillContact": "Brzy budeme v kontaktu!",
"selectLogRetention": "Vyberte záznam",
"terms": "Výrazy",
"privacy": "Soukromí",
"security": "Zabezpečení",
"docs": "Dokumenty",
"deviceActivation": "Aktivace zařízení",
"deviceCodeInvalidFormat": "Kód musí být 9 znaků (např. A1AJ-N5JD)",
"deviceCodeInvalidOrExpired": "Neplatný nebo prošlý kód",
"deviceCodeVerifyFailed": "Ověření kódu zařízení se nezdařilo",
"signedInAs": "Přihlášen jako",
"deviceCodeEnterPrompt": "Zadejte kód zobrazený na zařízení",
"continue": "Pokračovat",
"deviceUnknownLocation": "Neznámá poloha",
"deviceAuthorizationRequested": "Tato autorizace byla vyžádána od {location} na {date}. Ujistěte se, že tomuto zařízení věříte, protože získá přístup k účtu.",
"deviceLabel": "Zařízení: {deviceName}",
"deviceWantsAccess": "chce přistupovat k vašemu účtu",
"deviceExistingAccess": "Stávající přístup:",
"deviceFullAccess": "Úplný přístup k vašemu účtu",
"deviceOrganizationsAccess": "Přístup ke všem organizacím má přístup k vašemu účtu",
"deviceAuthorize": "Autorizovat {applicationName}",
"deviceConnected": "Zařízení připojeno!",
"deviceAuthorizedMessage": "Zařízení má oprávnění k přístupu k vašemu účtu.",
"pangolinCloud": "Pangolin Cloud",
"viewDevices": "Zobrazit zařízení",
"viewDevicesDescription": "Spravovat připojená zařízení",
"noDevices": "Nebyla nalezena žádná zařízení",
"dateCreated": "Datum vytvoření",
"unnamedDevice": "Nepojmenované zařízení",
"deviceQuestionRemove": "Jste si jisti, že chcete odstranit toto zařízení?",
"deviceMessageRemove": "Tuto akci nelze vrátit zpět.",
"deviceDeleteConfirm": "Odstranit zařízení",
"deleteDevice": "Odstranit zařízení",
"errorLoadingDevices": "Chyba při načítání zařízení",
"failedToLoadDevices": "Načtení zařízení se nezdařilo",
"deviceDeleted": "Zařízení odstraněno",
"deviceDeletedDescription": "Zařízení bylo úspěšně smazáno.",
"errorDeletingDevice": "Chyba při odstraňování zařízení",
"failedToDeleteDevice": "Odstranění zařízení se nezdařilo",
"showColumns": "Zobrazit sloupce",
"hideColumns": "Skrýt sloupce",
"columnVisibility": "Viditelnost sloupců",
"toggleColumn": "Přepnout sloupec {columnName}",
"allColumns": "Všechny sloupce",
"defaultColumns": "Výchozí sloupce",
"customizeView": "Přizpůsobit zobrazení",
"viewOptions": "Možnosti zobrazení",
"selectAll": "Vybrat vše",
"selectNone": "Nevybrat žádný",
"selectedResources": "Vybrané zdroje",
"enableSelected": "Povolit vybrané",
"disableSelected": "Zakázat vybrané",
"checkSelectedStatus": "Zkontrolovat stav vybraného",
"clients": "Klienti",
"accessClientSelect": "Vyberte klienty stroje",
"resourceClientDescription": "Strojové klienty, kteří mají přístup k tomuto zdroji",
"regenerate": "Regenerovat",
"credentials": "Pověření",
"savecredentials": "Uložit přihlašovací údaje",
"regenerateCredentialsButton": "Obnovit přihlašovací údaje",
"regenerateCredentials": "Obnovit přihlašovací údaje",
"generatedcredentials": "Vygenerovaná pověření",
"copyandsavethesecredentials": "Zkopírovat a ukládat tato pověření",
"copyandsavethesecredentialsdescription": "Tyto přihlašovací údaje se znovu nezobrazí po opuštění této stránky. Uložte je bezpečně.",
"credentialsSaved": "Pověření uloženo",
"credentialsSavedDescription": "Pověření byla úspěšně obnovena a uložena.",
"credentialsSaveError": "Chyba při ukládání pověření",
"credentialsSaveErrorDescription": "Došlo k chybě při obnovování a ukládání přihlašovacích údajů.",
"regenerateCredentialsWarning": "Obnovení přihlašovacích údajů zneplatní předchozí a způsobí odpojení. Ujistěte se, že aktualizujete všechny konfigurace, které tyto přihlašovací údaje používají.",
"confirm": "Potvrdit",
"regenerateCredentialsConfirmation": "Jste si jisti, že chcete obnovit přihlašovací údaje?",
"endpoint": "Endpoint",
"Id": "Id",
"SecretKey": "Tajný klíč",
"niceId": "Pěkné ID",
"niceIdUpdated": "Nice ID aktualizováno",
"niceIdUpdatedSuccessfully": "Nice ID úspěšně aktualizováno",
"niceIdUpdateError": "Chyba při aktualizaci Nice ID",
"niceIdUpdateErrorDescription": "Došlo k chybě při aktualizaci identifikátoru Nice.",
"niceIdCannotBeEmpty": "Nice ID nemůže být prázdné",
"enterIdentifier": "Zadejte identifikátor",
"identifier": "Identifier",
"deviceLoginUseDifferentAccount": "Nejste vy? Použijte jiný účet.",
"deviceLoginDeviceRequestingAccessToAccount": "Zařízení žádá o přístup k tomuto účtu.",
"noData": "Žádná data",
"machineClients": "Strojoví klienti",
"install": "Instalovat",
"run": "Spustit",
"clientNameDescription": "Zobrazované jméno klienta, které lze později změnit.",
"clientAddress": "Adresa klienta (Rozšířeno)",
"setupFailedToFetchSubnet": "Nepodařilo se načíst výchozí podsíť",
"setupSubnetAdvanced": "Podsíť (předplacená)",
"setupSubnetDescription": "Podsíť pro vnitřní síť této organizace.",
"siteRegenerateAndDisconnect": "Obnovit a odpojit",
"siteRegenerateAndDisconnectConfirmation": "Opravdu chcete obnovit přihlašovací údaje a odpojit tuto stránku?",
"siteRegenerateAndDisconnectWarning": "Toto obnoví přihlašovací údaje a okamžitě odpojí stránku. Stránka bude muset být restartována s novými přihlašovacími údaji.",
"siteRegenerateCredentialsConfirmation": "Jste si jisti, že chcete obnovit přihlašovací údaje pro tuto stránku?",
"siteRegenerateCredentialsWarning": "Toto obnoví přihlašovací údaje. Stránka zůstane připojena, dokud ji ručně nerestartujete a nepoužijete nové přihlašovací údaje.",
"clientRegenerateAndDisconnect": "Obnovit a odpojit",
"clientRegenerateAndDisconnectConfirmation": "Opravdu chcete obnovit přihlašovací údaje a odpojit tohoto klienta?",
"clientRegenerateAndDisconnectWarning": "Toto obnoví přihlašovací údaje a okamžitě odpojí klienta. Klient bude muset být restartován s novými přihlašovacími údaji.",
"clientRegenerateCredentialsConfirmation": "Opravdu chcete obnovit přihlašovací údaje pro tohoto klienta?",
"clientRegenerateCredentialsWarning": "Toto obnoví přihlašovací údaje. Klient zůstane připojen, dokud jej ručně nerestartujete a nepoužije nové přihlašovací údaje.",
"remoteExitNodeRegenerateAndDisconnect": "Obnovit a odpojit",
"remoteExitNodeRegenerateAndDisconnectConfirmation": "Jste si jisti, že chcete obnovit přihlašovací údaje a odpojit tento vzdálený výstupní uzel?",
"remoteExitNodeRegenerateAndDisconnectWarning": "Toto obnoví přihlašovací údaje a okamžitě odpojí vzdálený výstupní uzel. Vzdálený výstupní uzel bude muset být restartován s novými přihlašovacími údaji.",
"remoteExitNodeRegenerateCredentialsConfirmation": "Jste si jisti, že chcete obnovit přihlašovací údaje pro tento vzdálený výstupní uzel?",
"remoteExitNodeRegenerateCredentialsWarning": "Toto obnoví přihlašovací údaje. Vzdálený výstupní uzel zůstane připojen, dokud jej ručně nerestartujete a nepoužijete nové přihlašovací údaje.",
"agent": "Agent"
} }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,12 +1,12 @@
{ {
"setupCreate": "Crea tu organización, sitio y recursos", "setupCreate": "Crear la organización, el sitio y los recursos",
"setupNewOrg": "Nueva organización", "setupNewOrg": "Nueva organización",
"setupCreateOrg": "Crear organización", "setupCreateOrg": "Crear organización",
"setupCreateResources": "Crear Recursos", "setupCreateResources": "Crear Recursos",
"setupOrgName": "Nombre de la organización", "setupOrgName": "Nombre de la organización",
"orgDisplayName": "Este es el nombre mostrado de su organización.", "orgDisplayName": "Este es el nombre mostrado de la organización.",
"orgId": "ID de la organización", "orgId": "ID de la organización",
"setupIdentifierMessage": "Este es el identificador único para su organización. Esto es independiente del nombre de la pantalla.", "setupIdentifierMessage": "Este es el identificador único para la organización.",
"setupErrorIdentifier": "El ID de la organización ya está en uso. Por favor, elija uno diferente.", "setupErrorIdentifier": "El ID de la organización ya está en uso. Por favor, elija uno diferente.",
"componentsErrorNoMemberCreate": "Actualmente no eres miembro de ninguna organización. Crea una organización para empezar.", "componentsErrorNoMemberCreate": "Actualmente no eres miembro de ninguna organización. Crea una organización para empezar.",
"componentsErrorNoMember": "Actualmente no eres miembro de ninguna organización.", "componentsErrorNoMember": "Actualmente no eres miembro de ninguna organización.",
@@ -50,10 +50,10 @@
"siteMessageRemove": "Una vez eliminado, el sitio ya no será accesible. Todos los objetivos asociados con el sitio también serán eliminados.", "siteMessageRemove": "Una vez eliminado, el sitio ya no será accesible. Todos los objetivos asociados con el sitio también serán eliminados.",
"siteQuestionRemove": "¿Está seguro que desea eliminar el sitio de la organización?", "siteQuestionRemove": "¿Está seguro que desea eliminar el sitio de la organización?",
"siteManageSites": "Administrar Sitios", "siteManageSites": "Administrar Sitios",
"siteDescription": "Permitir conectividad a tu red a través de túneles seguros", "siteDescription": "Crear y administrar sitios para permitir la conectividad a redes privadas",
"siteCreate": "Crear sitio", "siteCreate": "Crear sitio",
"siteCreateDescription2": "Siga los pasos siguientes para crear y conectar un nuevo sitio", "siteCreateDescription2": "Siga los pasos siguientes para crear y conectar un nuevo sitio",
"siteCreateDescription": "Crear un nuevo sitio para comenzar a conectar sus recursos", "siteCreateDescription": "Crear un nuevo sitio para empezar a conectar recursos",
"close": "Cerrar", "close": "Cerrar",
"siteErrorCreate": "Error al crear el sitio", "siteErrorCreate": "Error al crear el sitio",
"siteErrorCreateKeyPair": "Por defecto no se encuentra el par de claves o el sitio", "siteErrorCreateKeyPair": "Por defecto no se encuentra el par de claves o el sitio",
@@ -74,7 +74,7 @@
"siteInstallNewt": "Instalar Newt", "siteInstallNewt": "Instalar Newt",
"siteInstallNewtDescription": "Recibe Newt corriendo en tu sistema", "siteInstallNewtDescription": "Recibe Newt corriendo en tu sistema",
"WgConfiguration": "Configuración de Wirex Guard", "WgConfiguration": "Configuración de Wirex Guard",
"WgConfigurationDescription": "Utilice la siguiente configuración para conectarse a su red", "WgConfigurationDescription": "Utilice la siguiente configuración para conectarse a la red",
"operatingSystem": "Sistema operativo", "operatingSystem": "Sistema operativo",
"commands": "Comandos", "commands": "Comandos",
"recommended": "Recomendado", "recommended": "Recomendado",
@@ -87,32 +87,32 @@
"siteUpdated": "Sitio actualizado", "siteUpdated": "Sitio actualizado",
"siteUpdatedDescription": "El sitio ha sido actualizado.", "siteUpdatedDescription": "El sitio ha sido actualizado.",
"siteGeneralDescription": "Configurar la configuración general de este sitio", "siteGeneralDescription": "Configurar la configuración general de este sitio",
"siteSettingDescription": "Configurar la configuración de su sitio", "siteSettingDescription": "Configurar los ajustes en el sitio",
"siteSetting": "Ajustes {siteName}", "siteSetting": "Ajustes {siteName}",
"siteNewtTunnel": "Túnel Nuevo (Recomendado)", "siteNewtTunnel": "Sitio nuevo (recomendado)",
"siteNewtTunnelDescription": "La forma más fácil de crear un punto de entrada en tu red. Sin configuración adicional.", "siteNewtTunnelDescription": "La forma más fácil de crear un punto de entrada en cualquier red. Sin configuración extra.",
"siteWg": "Wirex Guardia Básica", "siteWg": "Wirex Guardia Básica",
"siteWgDescription": "Utilice cualquier cliente Wirex Guard para establecer un túnel. Se requiere una configuración manual de NAT.", "siteWgDescription": "Utilice cualquier cliente Wirex Guard para establecer un túnel. Se requiere una configuración manual de NAT.",
"siteWgDescriptionSaas": "Utilice cualquier cliente de WireGuard para establecer un túnel. Se requiere configuración manual de NAT. SOLO FUNCIONA EN NODOS AUTOGESTIONADOS", "siteWgDescriptionSaas": "Utilice cualquier cliente de WireGuard para establecer un túnel. Se requiere configuración manual de NAT. SOLO FUNCIONA EN NODOS AUTOGESTIONADOS",
"siteLocalDescription": "Solo recursos locales. Sin túneles.", "siteLocalDescription": "Solo recursos locales. Sin túneles.",
"siteLocalDescriptionSaas": "Solo recursos locales. No hay túneles. Sólo disponible en nodos remotos.", "siteLocalDescriptionSaas": "Solo recursos locales. No hay túneles. Sólo disponible en nodos remotos.",
"siteSeeAll": "Ver todos los sitios", "siteSeeAll": "Ver todos los sitios",
"siteTunnelDescription": "Determina cómo quieres conectarte a tu sitio", "siteTunnelDescription": "Determina cómo quieres conectarte al sitio",
"siteNewtCredentials": "Credenciales nuevas", "siteNewtCredentials": "Credenciales",
"siteNewtCredentialsDescription": "Así es como Newt se autentificará con el servidor", "siteNewtCredentialsDescription": "Así es como el sitio se autentificará con el servidor",
"siteCredentialsSave": "Guarda tus credenciales", "siteCredentialsSave": "Guardar las credenciales",
"siteCredentialsSaveDescription": "Sólo podrás verlo una vez. Asegúrate de copiarlo a un lugar seguro.", "siteCredentialsSaveDescription": "Sólo podrás verlo una vez. Asegúrate de copiarlo a un lugar seguro.",
"siteInfo": "Información del sitio", "siteInfo": "Información del sitio",
"status": "Estado", "status": "Estado",
"shareTitle": "Administrar Enlaces de Compartir", "shareTitle": "Administrar Enlaces de Compartir",
"shareDescription": "Crear enlaces compartidos para conceder acceso temporal o permanente a tus recursos", "shareDescription": "Crear enlaces compartidos para conceder acceso temporal o permanente a recursos proxy",
"shareSearch": "Buscar enlaces compartidos...", "shareSearch": "Buscar enlaces compartidos...",
"shareCreate": "Crear enlace Compartir", "shareCreate": "Crear enlace Compartir",
"shareErrorDelete": "Error al eliminar el enlace", "shareErrorDelete": "Error al eliminar el enlace",
"shareErrorDeleteMessage": "Se ha producido un error al eliminar el enlace", "shareErrorDeleteMessage": "Se ha producido un error al eliminar el enlace",
"shareDeleted": "Enlace eliminado", "shareDeleted": "Enlace eliminado",
"shareDeletedDescription": "El enlace ha sido eliminado", "shareDeletedDescription": "El enlace ha sido eliminado",
"shareTokenDescription": "Su token de acceso puede ser pasado de dos maneras: como parámetro de consulta o en las cabeceras de solicitud. Estos deben ser pasados del cliente en cada solicitud de acceso autenticado.", "shareTokenDescription": "El token de acceso puede ser pasado de dos maneras: como parámetro de consulta o en las cabeceras de solicitud. Estos deben ser pasados del cliente en cada solicitud de acceso autenticado.",
"accessToken": "Token de acceso", "accessToken": "Token de acceso",
"usageExamples": "Ejemplos de uso", "usageExamples": "Ejemplos de uso",
"tokenId": "ID de token", "tokenId": "ID de token",
@@ -121,7 +121,7 @@
"importantNote": "Nota Importante", "importantNote": "Nota Importante",
"shareImportantDescription": "Por razones de seguridad, el uso de cabeceras se recomienda sobre parámetros de consulta cuando sea posible, ya que los parámetros de consulta pueden ser registrados en los registros del servidor o en el historial del navegador.", "shareImportantDescription": "Por razones de seguridad, el uso de cabeceras se recomienda sobre parámetros de consulta cuando sea posible, ya que los parámetros de consulta pueden ser registrados en los registros del servidor o en el historial del navegador.",
"token": "Token", "token": "Token",
"shareTokenSecurety": "Mantenga su token de acceso seguro. No lo comparta en áreas de acceso público o código del lado del cliente.", "shareTokenSecurety": "Mantenga seguro el token de acceso. No lo comparta en áreas de acceso público o código del lado del cliente.",
"shareErrorFetchResource": "No se pudo obtener recursos", "shareErrorFetchResource": "No se pudo obtener recursos",
"shareErrorFetchResourceDescription": "Se ha producido un error al recuperar los recursos", "shareErrorFetchResourceDescription": "Se ha producido un error al recuperar los recursos",
"shareErrorCreate": "Error al crear el enlace compartir", "shareErrorCreate": "Error al crear el enlace compartir",
@@ -131,7 +131,7 @@
"expireIn": "Caduca en", "expireIn": "Caduca en",
"neverExpire": "Nunca expirar", "neverExpire": "Nunca expirar",
"shareExpireDescription": "El tiempo de caducidad es cuánto tiempo el enlace será utilizable y proporcionará acceso al recurso. Después de este tiempo, el enlace ya no funcionará, y los usuarios que usaron este enlace perderán el acceso al recurso.", "shareExpireDescription": "El tiempo de caducidad es cuánto tiempo el enlace será utilizable y proporcionará acceso al recurso. Después de este tiempo, el enlace ya no funcionará, y los usuarios que usaron este enlace perderán el acceso al recurso.",
"shareSeeOnce": "Sólo podrá ver este enlace una vez. Asegúrese de copiarlo.", "shareSeeOnce": "Sólo podrás ver este enlace una vez. Asegúrate de copiarlo.",
"shareAccessHint": "Cualquiera con este enlace puede acceder al recurso. Compártelo con cuidado.", "shareAccessHint": "Cualquiera con este enlace puede acceder al recurso. Compártelo con cuidado.",
"shareTokenUsage": "Ver Uso de Token de Acceso", "shareTokenUsage": "Ver Uso de Token de Acceso",
"createLink": "Crear enlace", "createLink": "Crear enlace",
@@ -144,8 +144,10 @@
"expires": "Caduca", "expires": "Caduca",
"never": "Nunca", "never": "Nunca",
"shareErrorSelectResource": "Por favor, seleccione un recurso", "shareErrorSelectResource": "Por favor, seleccione un recurso",
"resourceTitle": "Administrar recursos", "proxyResourceTitle": "Administrar recursos públicos",
"resourceDescription": "Crea proxies seguros para tus aplicaciones privadas", "proxyResourceDescription": "Crear y administrar recursos que sean accesibles públicamente a través de un navegador web",
"clientResourceTitle": "Administrar recursos privados",
"clientResourceDescription": "Crear y administrar recursos que sólo son accesibles a través de un cliente conectado",
"resourcesSearch": "Buscar recursos...", "resourcesSearch": "Buscar recursos...",
"resourceAdd": "Añadir Recurso", "resourceAdd": "Añadir Recurso",
"resourceErrorDelte": "Error al eliminar el recurso", "resourceErrorDelte": "Error al eliminar el recurso",
@@ -155,9 +157,9 @@
"resourceMessageRemove": "Una vez eliminado, el recurso ya no será accesible. Todos los objetivos asociados con el recurso también serán eliminados.", "resourceMessageRemove": "Una vez eliminado, el recurso ya no será accesible. Todos los objetivos asociados con el recurso también serán eliminados.",
"resourceQuestionRemove": "¿Está seguro que desea eliminar el recurso de la organización?", "resourceQuestionRemove": "¿Está seguro que desea eliminar el recurso de la organización?",
"resourceHTTP": "HTTPS Recurso", "resourceHTTP": "HTTPS Recurso",
"resourceHTTPDescription": "Solicitudes de proxy a tu aplicación sobre HTTPS usando un subdominio o dominio base.", "resourceHTTPDescription": "Solicitudes de proxy a la aplicación sobre HTTPS usando un subdominio o dominio base.",
"resourceRaw": "Recurso TCP/UDP sin procesar", "resourceRaw": "Recurso TCP/UDP sin procesar",
"resourceRawDescription": "Solicitudes de proxy a tu aplicación a través de TCP/UDP usando un número de puerto.", "resourceRawDescription": "Solicitudes de proxy a la aplicación a través de TCP/UDP usando un número de puerto. Esto solo funciona cuando los sitios están conectados a nodos.",
"resourceCreate": "Crear Recurso", "resourceCreate": "Crear Recurso",
"resourceCreateDescription": "Siga los siguientes pasos para crear un nuevo recurso", "resourceCreateDescription": "Siga los siguientes pasos para crear un nuevo recurso",
"resourceSeeAll": "Ver todos los recursos", "resourceSeeAll": "Ver todos los recursos",
@@ -171,22 +173,22 @@
"noCountryFound": "Ningún país encontrado.", "noCountryFound": "Ningún país encontrado.",
"siteSelectionDescription": "Este sitio proporcionará conectividad al objetivo.", "siteSelectionDescription": "Este sitio proporcionará conectividad al objetivo.",
"resourceType": "Tipo de recurso", "resourceType": "Tipo de recurso",
"resourceTypeDescription": "Determina cómo quieres acceder a tu recurso", "resourceTypeDescription": "Determina cómo acceder al recurso",
"resourceHTTPSSettings": "Configuración HTTPS", "resourceHTTPSSettings": "Configuración HTTPS",
"resourceHTTPSSettingsDescription": "Configurar cómo se accederá a tu recurso a través de HTTPS", "resourceHTTPSSettingsDescription": "Configurar cómo se accederá al recurso a través de HTTPS",
"domainType": "Tipo de dominio", "domainType": "Tipo de dominio",
"subdomain": "Subdominio", "subdomain": "Subdominio",
"baseDomain": "Dominio base", "baseDomain": "Dominio base",
"subdomnainDescription": "El subdominio al que su recurso será accesible.", "subdomnainDescription": "El subdominio al que el recurso será accesible.",
"resourceRawSettings": "Configuración TCP/UDP", "resourceRawSettings": "Configuración TCP/UDP",
"resourceRawSettingsDescription": "Configurar cómo se accederá a su recurso a través de TCP/UDP", "resourceRawSettingsDescription": "Configurar cómo se accederá al recurso a través de TCP/UDP",
"protocol": "Protocolo", "protocol": "Protocolo",
"protocolSelect": "Seleccionar un protocolo", "protocolSelect": "Seleccionar un protocolo",
"resourcePortNumber": "Número de puerto", "resourcePortNumber": "Número de puerto",
"resourcePortNumberDescription": "El número de puerto externo a las solicitudes de proxy.", "resourcePortNumberDescription": "El número de puerto externo a las solicitudes de proxy.",
"cancel": "Cancelar", "cancel": "Cancelar",
"resourceConfig": "Fragmentos de configuración", "resourceConfig": "Fragmentos de configuración",
"resourceConfigDescription": "Copia y pega estos fragmentos de configuración para configurar tu recurso TCP/UDP", "resourceConfigDescription": "Copia y pega estos fragmentos de configuración para configurar el recurso TCP/UDP",
"resourceAddEntrypoints": "Traefik: Añadir puntos de entrada", "resourceAddEntrypoints": "Traefik: Añadir puntos de entrada",
"resourceExposePorts": "Gerbil: Exponer puertos en Docker Compose", "resourceExposePorts": "Gerbil: Exponer puertos en Docker Compose",
"resourceLearnRaw": "Aprende cómo configurar los recursos TCP/UDP", "resourceLearnRaw": "Aprende cómo configurar los recursos TCP/UDP",
@@ -202,14 +204,14 @@
"proxy": "Proxy", "proxy": "Proxy",
"internal": "Interno", "internal": "Interno",
"rules": "Reglas", "rules": "Reglas",
"resourceSettingDescription": "Configure la configuración de su recurso", "resourceSettingDescription": "Configurar la configuración del recurso",
"resourceSetting": "Ajustes {resourceName}", "resourceSetting": "Ajustes {resourceName}",
"alwaysAllow": "Permitir siempre", "alwaysAllow": "Autorización Bypass",
"alwaysDeny": "Denegar siempre", "alwaysDeny": "Bloquear acceso",
"passToAuth": "Pasar a Autenticación", "passToAuth": "Pasar a Autenticación",
"orgSettingsDescription": "Configurar la configuración general de su organización", "orgSettingsDescription": "Configurar la configuración de la organización",
"orgGeneralSettings": "Configuración de la organización", "orgGeneralSettings": "Configuración de la organización",
"orgGeneralSettingsDescription": "Administra los detalles y la configuración de tu organización", "orgGeneralSettingsDescription": "Administrar los detalles y la configuración de la organización",
"saveGeneralSettings": "Guardar ajustes generales", "saveGeneralSettings": "Guardar ajustes generales",
"saveSettings": "Guardar ajustes", "saveSettings": "Guardar ajustes",
"orgDangerZone": "Zona de peligro", "orgDangerZone": "Zona de peligro",
@@ -232,7 +234,7 @@
"orgMissing": "Falta el ID de la organización", "orgMissing": "Falta el ID de la organización",
"orgMissingMessage": "No se puede regenerar la invitación sin el ID de la organización.", "orgMissingMessage": "No se puede regenerar la invitación sin el ID de la organización.",
"accessUsersManage": "Administrar usuarios", "accessUsersManage": "Administrar usuarios",
"accessUsersDescription": "Invitar usuarios y añadirlos a roles para administrar el acceso a su organización", "accessUsersDescription": "Invitar y administrar usuarios con acceso a esta organización",
"accessUsersSearch": "Buscar usuarios...", "accessUsersSearch": "Buscar usuarios...",
"accessUserCreate": "Crear usuario", "accessUserCreate": "Crear usuario",
"accessUserRemove": "Eliminar usuario", "accessUserRemove": "Eliminar usuario",
@@ -241,13 +243,13 @@
"role": "Rol", "role": "Rol",
"nameRequired": "Se requiere nombre", "nameRequired": "Se requiere nombre",
"accessRolesManage": "Administrar roles", "accessRolesManage": "Administrar roles",
"accessRolesDescription": "Configurar roles para administrar el acceso a su organización", "accessRolesDescription": "Crear y administrar roles para usuarios en la organización",
"accessRolesSearch": "Buscar roles...", "accessRolesSearch": "Buscar roles...",
"accessRolesAdd": "Añadir rol", "accessRolesAdd": "Añadir rol",
"accessRoleDelete": "Eliminar rol", "accessRoleDelete": "Eliminar rol",
"description": "Descripción", "description": "Descripción",
"inviteTitle": "Invitaciones abiertas", "inviteTitle": "Invitaciones abiertas",
"inviteDescription": "Administra tus invitaciones a otros usuarios", "inviteDescription": "Administrar invitaciones para que otros usuarios se unan a la organización",
"inviteSearch": "Buscar invitaciones...", "inviteSearch": "Buscar invitaciones...",
"minutes": "Minutos", "minutes": "Minutos",
"hours": "Horas", "hours": "Horas",
@@ -261,13 +263,13 @@
"apiKeysErrorCreate": "Error al crear la clave API", "apiKeysErrorCreate": "Error al crear la clave API",
"apiKeysErrorSetPermission": "Error al establecer permisos", "apiKeysErrorSetPermission": "Error al establecer permisos",
"apiKeysCreate": "Generar clave API", "apiKeysCreate": "Generar clave API",
"apiKeysCreateDescription": "Generar una nueva clave API para su organización", "apiKeysCreateDescription": "Generar una nueva clave API para la organización",
"apiKeysGeneralSettings": "Permisos", "apiKeysGeneralSettings": "Permisos",
"apiKeysGeneralSettingsDescription": "Determinar qué puede hacer esta clave API", "apiKeysGeneralSettingsDescription": "Determinar qué puede hacer esta clave API",
"apiKeysList": "Tu clave API", "apiKeysList": "Nueva Clave API",
"apiKeysSave": "Guarda tu clave API", "apiKeysSave": "Guardar la clave API",
"apiKeysSaveDescription": "Sólo podrás verlo una vez. Asegúrate de copiarlo a un lugar seguro.", "apiKeysSaveDescription": "Sólo podrás verlo una vez. Asegúrate de copiarlo a un lugar seguro.",
"apiKeysInfo": "Tu clave API es:", "apiKeysInfo": "La clave API es:",
"apiKeysConfirmCopy": "He copiado la clave API", "apiKeysConfirmCopy": "He copiado la clave API",
"generate": "Generar", "generate": "Generar",
"done": "Hecho", "done": "Hecho",
@@ -424,7 +426,7 @@
"userCreated": "Usuario creado", "userCreated": "Usuario creado",
"userCreatedDescription": "El usuario se ha creado correctamente.", "userCreatedDescription": "El usuario se ha creado correctamente.",
"userTypeInternal": "Usuario interno", "userTypeInternal": "Usuario interno",
"userTypeInternalDescription": "Invita a un usuario a unirse a tu organización directamente.", "userTypeInternalDescription": "Invitar a un usuario a unirse a la organización directamente.",
"userTypeExternal": "Usuario externo", "userTypeExternal": "Usuario externo",
"userTypeExternalDescription": "Crear un usuario con un proveedor de identidad externo.", "userTypeExternalDescription": "Crear un usuario con un proveedor de identidad externo.",
"accessUserCreateDescription": "Siga los pasos siguientes para crear un nuevo usuario", "accessUserCreateDescription": "Siga los pasos siguientes para crear un nuevo usuario",
@@ -436,6 +438,16 @@
"inviteEmailSent": "Enviar correo de invitación al usuario", "inviteEmailSent": "Enviar correo de invitación al usuario",
"inviteValid": "Válido para", "inviteValid": "Válido para",
"selectDuration": "Seleccionar duración", "selectDuration": "Seleccionar duración",
"selectResource": "Seleccionar Recurso",
"filterByResource": "Filtrar por Recurso",
"resetFilters": "Reiniciar filtros",
"totalBlocked": "Solicitudes bloqueadas por Pangolin",
"totalRequests": "Solicitudes totales",
"requestsByCountry": "Solicitudes por país",
"requestsByDay": "Solicitudes por día",
"blocked": "Bloqueado",
"allowed": "Permitido",
"topCountries": "Top Países",
"accessRoleSelect": "Seleccionar rol", "accessRoleSelect": "Seleccionar rol",
"inviteEmailSentDescription": "Se ha enviado un correo electrónico al usuario con el siguiente enlace de acceso. Debe acceder al enlace para aceptar la invitación.", "inviteEmailSentDescription": "Se ha enviado un correo electrónico al usuario con el siguiente enlace de acceso. Debe acceder al enlace para aceptar la invitación.",
"inviteSentDescription": "El usuario ha sido invitado. Debe acceder al enlace de abajo para aceptar la invitación.", "inviteSentDescription": "El usuario ha sido invitado. Debe acceder al enlace de abajo para aceptar la invitación.",
@@ -458,13 +470,13 @@
"accessControlsSubmit": "Guardar controles de acceso", "accessControlsSubmit": "Guardar controles de acceso",
"roles": "Roles", "roles": "Roles",
"accessUsersRoles": "Administrar usuarios y roles", "accessUsersRoles": "Administrar usuarios y roles",
"accessUsersRolesDescription": "Invitar usuarios y añadirlos a roles para administrar el acceso a su organización", "accessUsersRolesDescription": "Invitar usuarios y añadirlos a roles para administrar el acceso a la organización",
"key": "Clave", "key": "Clave",
"createdAt": "Creado el", "createdAt": "Creado el",
"proxyErrorInvalidHeader": "Valor de cabecera de host personalizado no válido. Utilice el formato de nombre de dominio, o guarde en blanco para desestablecer cabecera de host personalizada.", "proxyErrorInvalidHeader": "Valor de cabecera de host personalizado no válido. Utilice el formato de nombre de dominio, o guarde en blanco para desestablecer cabecera de host personalizada.",
"proxyErrorTls": "Nombre de servidor TLS inválido. Utilice el formato de nombre de dominio o guarde en blanco para eliminar el nombre de servidor TLS.", "proxyErrorTls": "Nombre de servidor TLS inválido. Utilice el formato de nombre de dominio o guarde en blanco para eliminar el nombre de servidor TLS.",
"proxyEnableSSL": "Activar SSL", "proxyEnableSSL": "Activar SSL",
"proxyEnableSSLDescription": "Activa el cifrado SSL/TLS para conexiones seguras HTTPS a tus objetivos.", "proxyEnableSSLDescription": "Habilita el cifrado SSL/TLS para conexiones seguras HTTPS a los objetivos.",
"target": "Target", "target": "Target",
"configureTarget": "Configurar objetivos", "configureTarget": "Configurar objetivos",
"targetErrorFetch": "Error al recuperar los objetivos", "targetErrorFetch": "Error al recuperar los objetivos",
@@ -480,24 +492,24 @@
"targetsErrorUpdate": "Error al actualizar los objetivos", "targetsErrorUpdate": "Error al actualizar los objetivos",
"targetsErrorUpdateDescription": "Se ha producido un error al actualizar los objetivos", "targetsErrorUpdateDescription": "Se ha producido un error al actualizar los objetivos",
"targetTlsUpdate": "Ajustes TLS actualizados", "targetTlsUpdate": "Ajustes TLS actualizados",
"targetTlsUpdateDescription": "La configuración de TLS se ha actualizado correctamente", "targetTlsUpdateDescription": "Los ajustes de TLS se han actualizado correctamente",
"targetErrorTlsUpdate": "Error al actualizar los ajustes de TLS", "targetErrorTlsUpdate": "Error al actualizar los ajustes de TLS",
"targetErrorTlsUpdateDescription": "Ocurrió un error mientras se actualizaban los ajustes de TLS", "targetErrorTlsUpdateDescription": "Ocurrió un error mientras se actualizaban los ajustes de TLS",
"proxyUpdated": "Configuración del proxy actualizada", "proxyUpdated": "Configuración del proxy actualizada",
"proxyUpdatedDescription": "La configuración del proxy se ha actualizado correctamente", "proxyUpdatedDescription": "La configuración del proxy se ha actualizado correctamente",
"proxyErrorUpdate": "Error al actualizar la configuración del proxy", "proxyErrorUpdate": "Error al actualizar la configuración del proxy",
"proxyErrorUpdateDescription": "Se ha producido un error al actualizar la configuración del proxy", "proxyErrorUpdateDescription": "Se ha producido un error al actualizar la configuración del proxy",
"targetAddr": "IP / Nombre del host", "targetAddr": "Anfitrión",
"targetPort": "Puerto", "targetPort": "Puerto",
"targetProtocol": "Protocolo", "targetProtocol": "Protocolo",
"targetTlsSettings": "Configuración de conexión segura", "targetTlsSettings": "Configuración de conexión segura",
"targetTlsSettingsDescription": "Configurar ajustes SSL/TLS para su recurso", "targetTlsSettingsDescription": "Configurar ajustes SSL/TLS para el recurso",
"targetTlsSettingsAdvanced": "Ajustes avanzados de TLS", "targetTlsSettingsAdvanced": "Ajustes avanzados de TLS",
"targetTlsSni": "Nombre del servidor TLS", "targetTlsSni": "Nombre del servidor TLS",
"targetTlsSniDescription": "El nombre del servidor TLS a usar para SNI. Deje en blanco para usar el valor predeterminado.", "targetTlsSniDescription": "El nombre del servidor TLS a usar para SNI. Deje en blanco para usar el valor predeterminado.",
"targetTlsSubmit": "Guardar ajustes", "targetTlsSubmit": "Guardar ajustes",
"targets": "Configuración de objetivos", "targets": "Configuración de objetivos",
"targetsDescription": "Configurar objetivos para enrutar tráfico a sus servicios", "targetsDescription": "Establecer objetivos para enrutar tráfico a servicios de backend",
"targetStickySessions": "Activar Sesiones Pegadas", "targetStickySessions": "Activar Sesiones Pegadas",
"targetStickySessionsDescription": "Mantener conexiones en el mismo objetivo de backend para toda su sesión.", "targetStickySessionsDescription": "Mantener conexiones en el mismo objetivo de backend para toda su sesión.",
"methodSelect": "Seleccionar método", "methodSelect": "Seleccionar método",
@@ -516,9 +528,11 @@
"targetCreatedDescription": "El objetivo se ha creado correctamente", "targetCreatedDescription": "El objetivo se ha creado correctamente",
"targetErrorCreate": "Error al crear el objetivo", "targetErrorCreate": "Error al crear el objetivo",
"targetErrorCreateDescription": "Se ha producido un error al crear el objetivo", "targetErrorCreateDescription": "Se ha producido un error al crear el objetivo",
"tlsServerName": "Nombre del servidor TLS",
"tlsServerNameDescription": "El nombre del servidor TLS a usar para SNI",
"save": "Guardar", "save": "Guardar",
"proxyAdditional": "Ajustes adicionales del proxy", "proxyAdditional": "Ajustes adicionales del proxy",
"proxyAdditionalDescription": "Configura cómo tu recurso maneja la configuración del proxy", "proxyAdditionalDescription": "Configurar cómo maneja el recurso la configuración del proxy",
"proxyCustomHeader": "Cabecera de host personalizada", "proxyCustomHeader": "Cabecera de host personalizada",
"proxyCustomHeaderDescription": "La cabecera del host a establecer cuando se realizan peticiones de reemplazo. Deje en blanco para usar el valor predeterminado.", "proxyCustomHeaderDescription": "La cabecera del host a establecer cuando se realizan peticiones de reemplazo. Deje en blanco para usar el valor predeterminado.",
"proxyAdditionalSubmit": "Guardar ajustes de proxy", "proxyAdditionalSubmit": "Guardar ajustes de proxy",
@@ -558,7 +572,7 @@
"rulesMatchType": "Tipo de partida", "rulesMatchType": "Tipo de partida",
"value": "Valor", "value": "Valor",
"rulesAbout": "Sobre Reglas", "rulesAbout": "Sobre Reglas",
"rulesAboutDescription": "Las reglas le permiten controlar el acceso a su recurso basado en un conjunto de criterios. Puede crear reglas para permitir o denegar el acceso basándose en la dirección IP o ruta de la URL.", "rulesAboutDescription": "Las reglas permiten controlar el acceso al recurso basado en un conjunto de criterios. Puede crear reglas para permitir o denegar el acceso basándose en la dirección IP o ruta de la URL.",
"rulesActions": "Acciones", "rulesActions": "Acciones",
"rulesActionAlwaysAllow": "Permitir siempre: pasar todos los métodos de autenticación", "rulesActionAlwaysAllow": "Permitir siempre: pasar todos los métodos de autenticación",
"rulesActionAlwaysDeny": "Denegar siempre: Bloquear todas las peticiones; no se puede intentar autenticación", "rulesActionAlwaysDeny": "Denegar siempre: Bloquear todas las peticiones; no se puede intentar autenticación",
@@ -570,7 +584,7 @@
"rulesEnable": "Activar Reglas", "rulesEnable": "Activar Reglas",
"rulesEnableDescription": "Activar o desactivar la evaluación de reglas para este recurso", "rulesEnableDescription": "Activar o desactivar la evaluación de reglas para este recurso",
"rulesResource": "Configuración de reglas de recursos", "rulesResource": "Configuración de reglas de recursos",
"rulesResourceDescription": "Configurar reglas para controlar el acceso a su recurso", "rulesResourceDescription": "Configurar reglas para controlar el acceso al recurso",
"ruleSubmit": "Añadir Regla", "ruleSubmit": "Añadir Regla",
"rulesNoOne": "No hay reglas. Agregue una regla usando el formulario.", "rulesNoOne": "No hay reglas. Agregue una regla usando el formulario.",
"rulesOrder": "Las reglas son evaluadas por prioridad en orden ascendente.", "rulesOrder": "Las reglas son evaluadas por prioridad en orden ascendente.",
@@ -586,7 +600,7 @@
"none": "Ninguna", "none": "Ninguna",
"unknown": "Desconocido", "unknown": "Desconocido",
"resources": "Recursos", "resources": "Recursos",
"resourcesDescription": "Los recursos son proxies para aplicaciones que se ejecutan en su red privada. Cree un recurso para cualquier servicio HTTP/HTTPS o TCP/UDP crudo en su red privada. Cada recurso debe estar conectado a un sitio para permitir una conectividad privada y segura a través de un túnel encriptado de WireGuard.", "resourcesDescription": "Los recursos son proxies a las aplicaciones que se ejecutan en la red privada. Crea un recurso para cualquier servicio HTTP/HTTPS o TCP/UDP crudo en tu red privada. Cada recurso debe estar conectado a un sitio para permitir una conectividad privada y segura a través de un túnel encriptado de WireGuard.",
"resourcesWireGuardConnect": "Conectividad segura con cifrado de Wirex Guard", "resourcesWireGuardConnect": "Conectividad segura con cifrado de Wirex Guard",
"resourcesMultipleAuthenticationMethods": "Configurar múltiples métodos de autenticación", "resourcesMultipleAuthenticationMethods": "Configurar múltiples métodos de autenticación",
"resourcesUsersRolesAccess": "Control de acceso basado en usuarios y roles", "resourcesUsersRolesAccess": "Control de acceso basado en usuarios y roles",
@@ -597,7 +611,7 @@
"resourceSelect": "Seleccionar recurso", "resourceSelect": "Seleccionar recurso",
"shareLinks": "Compartir enlaces", "shareLinks": "Compartir enlaces",
"share": "Enlaces compartibles", "share": "Enlaces compartibles",
"shareDescription2": "Crea enlaces compartidos con tus recursos. Los enlaces proporcionan acceso temporal o ilimitado a tu recurso. Puede configurar la duración de caducidad del enlace cuando cree uno.", "shareDescription2": "Crea enlaces compartidos a recursos. Los enlaces proporcionan acceso temporal o ilimitado a tu recurso. Puede configurar la duración de caducidad del enlace cuando cree uno.",
"shareEasyCreate": "Fácil de crear y compartir", "shareEasyCreate": "Fácil de crear y compartir",
"shareConfigurableExpirationDuration": "Duración de caducidad configurable", "shareConfigurableExpirationDuration": "Duración de caducidad configurable",
"shareSecureAndRevocable": "Seguro y revocable", "shareSecureAndRevocable": "Seguro y revocable",
@@ -607,19 +621,19 @@
"unknownCommand": "Comando desconocido", "unknownCommand": "Comando desconocido",
"newtErrorFetchReleases": "No se pudo obtener la información del lanzamiento: {err}", "newtErrorFetchReleases": "No se pudo obtener la información del lanzamiento: {err}",
"newtErrorFetchLatest": "Error obteniendo la última versión: {err}", "newtErrorFetchLatest": "Error obteniendo la última versión: {err}",
"newtEndpoint": "Punto final de Newt", "newtEndpoint": "Endpoint",
"newtId": "ID de Newt", "newtId": "ID",
"newtSecretKey": "Clave secreta de Newt", "newtSecretKey": "Secreto",
"architecture": "Arquitectura", "architecture": "Arquitectura",
"sites": "Sitios", "sites": "Sitios",
"siteWgAnyClients": "Usa cualquier cliente de Wirex para conectarte. Tendrás que dirigirte a tus recursos internos usando la IP de compañeros.", "siteWgAnyClients": "Usa cualquier cliente de Wirex para conectarte. Tendrás que dirigirte a los recursos internos usando la IP de compañeros.",
"siteWgCompatibleAllClients": "Compatible con todos los clientes de Wirex Guard", "siteWgCompatibleAllClients": "Compatible con todos los clientes de Wirex Guard",
"siteWgManualConfigurationRequired": "Configuración manual requerida", "siteWgManualConfigurationRequired": "Configuración manual requerida",
"userErrorNotAdminOrOwner": "El usuario no es un administrador o propietario", "userErrorNotAdminOrOwner": "El usuario no es un administrador o propietario",
"pangolinSettings": "Ajustes - Pangolin", "pangolinSettings": "Ajustes - Pangolin",
"accessRoleYour": "Tu rol:", "accessRoleYour": "Tu rol:",
"accessRoleSelect2": "Seleccione un rol", "accessRoleSelect2": "Seleccionar roles",
"accessUserSelect": "Seleccione un usuario", "accessUserSelect": "Seleccionar usuarios",
"otpEmailEnter": "Escribe un email", "otpEmailEnter": "Escribe un email",
"otpEmailEnterDescription": "Pulse Enter para añadir un correo electrónico después de teclearlo en el campo de entrada.", "otpEmailEnterDescription": "Pulse Enter para añadir un correo electrónico después de teclearlo en el campo de entrada.",
"otpEmailErrorInvalid": "Dirección de correo electrónico no válida. El comodín (*) debe ser la parte local completa.", "otpEmailErrorInvalid": "Dirección de correo electrónico no válida. El comodín (*) debe ser la parte local completa.",
@@ -671,7 +685,7 @@
"resourcePincodeSetupTitle": "Definir Pincode", "resourcePincodeSetupTitle": "Definir Pincode",
"resourcePincodeSetupTitleDescription": "Establecer un pincode para proteger este recurso", "resourcePincodeSetupTitleDescription": "Establecer un pincode para proteger este recurso",
"resourceRoleDescription": "Los administradores siempre pueden acceder a este recurso.", "resourceRoleDescription": "Los administradores siempre pueden acceder a este recurso.",
"resourceUsersRoles": "Usuarios y roles", "resourceUsersRoles": "Controles de acceso",
"resourceUsersRolesDescription": "Configurar qué usuarios y roles pueden visitar este recurso", "resourceUsersRolesDescription": "Configurar qué usuarios y roles pueden visitar este recurso",
"resourceUsersRolesSubmit": "Guardar usuarios y roles", "resourceUsersRolesSubmit": "Guardar usuarios y roles",
"resourceWhitelistSave": "Guardado correctamente", "resourceWhitelistSave": "Guardado correctamente",
@@ -702,6 +716,7 @@
"resourceTransferSubmit": "Transferir recursos", "resourceTransferSubmit": "Transferir recursos",
"siteDestination": "Sitio de destino", "siteDestination": "Sitio de destino",
"searchSites": "Buscar sitios", "searchSites": "Buscar sitios",
"countries": "Países",
"accessRoleCreate": "Crear rol", "accessRoleCreate": "Crear rol",
"accessRoleCreateDescription": "Crear un nuevo rol para agrupar usuarios y administrar sus permisos.", "accessRoleCreateDescription": "Crear un nuevo rol para agrupar usuarios y administrar sus permisos.",
"accessRoleCreateSubmit": "Crear rol", "accessRoleCreateSubmit": "Crear rol",
@@ -766,15 +781,15 @@
"idpOidcConfigure": "Configuración OAuth2/OIDC", "idpOidcConfigure": "Configuración OAuth2/OIDC",
"idpOidcConfigureDescription": "Configurar los puntos finales y credenciales del proveedor OAuth2/OIDC", "idpOidcConfigureDescription": "Configurar los puntos finales y credenciales del proveedor OAuth2/OIDC",
"idpClientId": "ID de cliente", "idpClientId": "ID de cliente",
"idpClientIdDescription": "El ID del cliente OAuth2 de su proveedor de identidad", "idpClientIdDescription": "El ID del cliente OAuth2 del proveedor de identidad",
"idpClientSecret": "Cliente secreto", "idpClientSecret": "Cliente secreto",
"idpClientSecretDescription": "El secreto del cliente OAuth2 de su proveedor de identidad", "idpClientSecretDescription": "El secreto del cliente OAuth2 del proveedor de identidad",
"idpAuthUrl": "URL de autorización", "idpAuthUrl": "URL de autorización",
"idpAuthUrlDescription": "La URL final de autorización de OAuth2", "idpAuthUrlDescription": "La URL final de autorización de OAuth2",
"idpTokenUrl": "URL del token", "idpTokenUrl": "URL del token",
"idpTokenUrlDescription": "La URL del endpoint del token OAuth2", "idpTokenUrlDescription": "La URL del endpoint del token OAuth2",
"idpOidcConfigureAlert": "Información importante", "idpOidcConfigureAlert": "Información importante",
"idpOidcConfigureAlertDescription": "Después de crear el proveedor de identidad, necesitará configurar la URL de callback en la configuración de su proveedor de identidad. La URL de devolución de llamada se proporcionará después de la creación exitosa.", "idpOidcConfigureAlertDescription": "Después de crear el proveedor de identidad, necesitará configurar la URL de callback en la configuración del proveedor de identidad. La URL de devolución de llamada se proporcionará después de la creación exitosa.",
"idpToken": "Configuración del token", "idpToken": "Configuración del token",
"idpTokenDescription": "Configurar cómo extraer la información del usuario del token de ID", "idpTokenDescription": "Configurar cómo extraer la información del usuario del token de ID",
"idpJmespathAbout": "Acerca de JMESPath", "idpJmespathAbout": "Acerca de JMESPath",
@@ -791,7 +806,7 @@
"idpSubmit": "Crear proveedor de identidad", "idpSubmit": "Crear proveedor de identidad",
"orgPolicies": "Políticas de organización", "orgPolicies": "Políticas de organización",
"idpSettings": "Ajustes {idpName}", "idpSettings": "Ajustes {idpName}",
"idpCreateSettingsDescription": "Configurar la configuración de su proveedor de identidad", "idpCreateSettingsDescription": "Configurar la configuración del proveedor de identidad",
"roleMapping": "Mapeo de Rol", "roleMapping": "Mapeo de Rol",
"orgMapping": "Mapeo de organización", "orgMapping": "Mapeo de organización",
"orgPoliciesSearch": "Buscar políticas de organización...", "orgPoliciesSearch": "Buscar políticas de organización...",
@@ -826,7 +841,7 @@
"idpUpdatedDescription": "Proveedor de identidad actualizado correctamente", "idpUpdatedDescription": "Proveedor de identidad actualizado correctamente",
"redirectUrl": "URL de redirección", "redirectUrl": "URL de redirección",
"redirectUrlAbout": "Acerca de la URL de redirección", "redirectUrlAbout": "Acerca de la URL de redirección",
"redirectUrlAboutDescription": "Esta es la URL a la que los usuarios serán redireccionados después de la autenticación. Necesitas configurar esta URL en la configuración de tu proveedor de identidad.", "redirectUrlAboutDescription": "Esta es la URL a la que los usuarios serán redireccionados después de la autenticación. Necesitas configurar esta URL en la configuración del proveedor de identidad.",
"pangolinAuth": "Autenticación - Pangolin", "pangolinAuth": "Autenticación - Pangolin",
"verificationCodeLengthRequirements": "Tu código de verificación debe tener 8 caracteres.", "verificationCodeLengthRequirements": "Tu código de verificación debe tener 8 caracteres.",
"errorOccurred": "Se ha producido un error", "errorOccurred": "Se ha producido un error",
@@ -909,6 +924,10 @@
"passwordResetSent": "Enviaremos un código para restablecer la contraseña a esta dirección de correo electrónico.", "passwordResetSent": "Enviaremos un código para restablecer la contraseña a esta dirección de correo electrónico.",
"passwordResetCode": "Código de restablecimiento", "passwordResetCode": "Código de restablecimiento",
"passwordResetCodeDescription": "Revisa tu correo electrónico para ver el código de restablecimiento.", "passwordResetCodeDescription": "Revisa tu correo electrónico para ver el código de restablecimiento.",
"generatePasswordResetCode": "Generar código de restablecimiento de contraseña",
"passwordResetCodeGenerated": "Código de restablecimiento de contraseña generado",
"passwordResetCodeGeneratedDescription": "Comparte este código con el usuario. Pueden usarlo para restablecer su contraseña.",
"passwordResetUrl": "Reset URL",
"passwordNew": "Nueva contraseña", "passwordNew": "Nueva contraseña",
"passwordNewConfirm": "Confirmar nueva contraseña", "passwordNewConfirm": "Confirmar nueva contraseña",
"changePassword": "Cambiar Contraseña", "changePassword": "Cambiar Contraseña",
@@ -926,6 +945,9 @@
"pincodeAuth": "Código de autenticación", "pincodeAuth": "Código de autenticación",
"pincodeSubmit2": "Enviar código", "pincodeSubmit2": "Enviar código",
"passwordResetSubmit": "Reiniciar Solicitud", "passwordResetSubmit": "Reiniciar Solicitud",
"passwordResetAlreadyHaveCode": "Introduzca el código de restablecimiento de contraseña",
"passwordResetSmtpRequired": "Póngase en contacto con su administrador",
"passwordResetSmtpRequiredDescription": "Se requiere un código de restablecimiento de contraseña para restablecer su contraseña. Póngase en contacto con su administrador para obtener asistencia.",
"passwordBack": "Volver a la contraseña", "passwordBack": "Volver a la contraseña",
"loginBack": "Volver a iniciar sesión", "loginBack": "Volver a iniciar sesión",
"signup": "Regístrate", "signup": "Regístrate",
@@ -1091,12 +1113,15 @@
"actionListSiteResources": "Listar recursos del sitio", "actionListSiteResources": "Listar recursos del sitio",
"actionUpdateSiteResource": "Actualizar recurso del sitio", "actionUpdateSiteResource": "Actualizar recurso del sitio",
"actionListInvitations": "Listar invitaciones", "actionListInvitations": "Listar invitaciones",
"actionExportLogs": "Exportar registros",
"actionViewLogs": "Ver registros",
"noneSelected": "Ninguno seleccionado", "noneSelected": "Ninguno seleccionado",
"orgNotFound2": "No se encontraron organizaciones.", "orgNotFound2": "No se encontraron organizaciones.",
"searchProgress": "Buscar...", "searchProgress": "Buscar...",
"create": "Crear", "create": "Crear",
"orgs": "Organizaciones", "orgs": "Organizaciones",
"loginError": "Se ha producido un error al iniciar sesión", "loginError": "Se ha producido un error al iniciar sesión",
"loginRequiredForDevice": "Es necesario iniciar sesión para autenticar tu dispositivo.",
"passwordForgot": "¿Olvidaste tu contraseña?", "passwordForgot": "¿Olvidaste tu contraseña?",
"otpAuth": "Autenticación de dos factores", "otpAuth": "Autenticación de dos factores",
"otpAuthDescription": "Introduzca el código de su aplicación de autenticación o uno de sus códigos de copia de seguridad de un solo uso.", "otpAuthDescription": "Introduzca el código de su aplicación de autenticación o uno de sus códigos de copia de seguridad de un solo uso.",
@@ -1151,37 +1176,47 @@
"sidebarHome": "Inicio", "sidebarHome": "Inicio",
"sidebarSites": "Sitios", "sidebarSites": "Sitios",
"sidebarResources": "Recursos", "sidebarResources": "Recursos",
"sidebarProxyResources": "Público",
"sidebarClientResources": "Privado",
"sidebarAccessControl": "Control de acceso", "sidebarAccessControl": "Control de acceso",
"sidebarLogsAndAnalytics": "Registros y análisis",
"sidebarUsers": "Usuarios", "sidebarUsers": "Usuarios",
"sidebarAdmin": "Admin",
"sidebarInvitations": "Invitaciones", "sidebarInvitations": "Invitaciones",
"sidebarRoles": "Roles", "sidebarRoles": "Roles",
"sidebarShareableLinks": "Enlaces compartibles", "sidebarShareableLinks": "Enlaces",
"sidebarApiKeys": "Claves API", "sidebarApiKeys": "Claves API",
"sidebarSettings": "Ajustes", "sidebarSettings": "Ajustes",
"sidebarAllUsers": "Todos los usuarios", "sidebarAllUsers": "Todos los usuarios",
"sidebarIdentityProviders": "Proveedores de identidad", "sidebarIdentityProviders": "Proveedores de identidad",
"sidebarLicense": "Licencia", "sidebarLicense": "Licencia",
"sidebarClients": "Clientes", "sidebarClients": "Clientes",
"sidebarUserDevices": "Usuarios",
"sidebarMachineClients": "Máquinas",
"sidebarDomains": "Dominios", "sidebarDomains": "Dominios",
"sidebarGeneral": "General",
"sidebarLogAndAnalytics": "Registro y análisis",
"sidebarBluePrints": "Planos", "sidebarBluePrints": "Planos",
"sidebarOrganization": "Organización",
"sidebarLogsAnalytics": "Analíticas",
"blueprints": "Planos", "blueprints": "Planos",
"blueprintsDescription": "Los planos son configuraciones YAML declarativas que definen sus recursos y sus configuraciones", "blueprintsDescription": "Aplicar configuraciones declarativas y ver ejecuciones anteriores",
"blueprintAdd": "Añadir plano", "blueprintAdd": "Añadir plano",
"blueprintGoBack": "Ver todos los Planos", "blueprintGoBack": "Ver todos los Planos",
"blueprintCreate": "Crear Plano", "blueprintCreate": "Crear Plano",
"blueprintCreateDescription2": "Siga los siguientes pasos para crear y aplicar un nuevo plano", "blueprintCreateDescription2": "Siga los siguientes pasos para crear y aplicar un nuevo plano",
"blueprintDetails": "Detalles del plano", "blueprintDetails": "Detalles del plano",
"blueprintDetailsDescription": "Ver los detalles de la ejecución del plano", "blueprintDetailsDescription": "Ver el resultado del plano aplicado y cualquier error que haya ocurrido",
"blueprintInfo": "Información del plano", "blueprintInfo": "Información del plano",
"message": "Mensaje", "message": "Mensaje",
"blueprintContentsDescription": "Defina el contenido YAML describiendo su infraestructura", "blueprintContentsDescription": "Definir el contenido YAML describiendo la infraestructura",
"blueprintErrorCreateDescription": "Se ha producido un error al aplicar el plano", "blueprintErrorCreateDescription": "Se ha producido un error al aplicar el plano",
"blueprintErrorCreate": "Error al crear el plano", "blueprintErrorCreate": "Error al crear el plano",
"searchBlueprintProgress": "Buscar planos...", "searchBlueprintProgress": "Buscar planos...",
"appliedAt": "Aplicado en", "appliedAt": "Aplicado en",
"source": "Fuente", "source": "Fuente",
"contents": "Contenido", "contents": "Contenido",
"parsedContents": "Contenido analizado", "parsedContents": "Contenido analizado (Sólo lectura)",
"enableDockerSocket": "Habilitar Plano Docker", "enableDockerSocket": "Habilitar Plano Docker",
"enableDockerSocketDescription": "Activar el raspado de etiquetas de Socket Docker para etiquetas de planos. La ruta del Socket debe proporcionarse a Newt.", "enableDockerSocketDescription": "Activar el raspado de etiquetas de Socket Docker para etiquetas de planos. La ruta del Socket debe proporcionarse a Newt.",
"enableDockerSocketLink": "Saber más", "enableDockerSocketLink": "Saber más",
@@ -1230,15 +1265,15 @@
"loading": "Cargando", "loading": "Cargando",
"restart": "Reiniciar", "restart": "Reiniciar",
"domains": "Dominios", "domains": "Dominios",
"domainsDescription": "Administrar dominios de tu organización", "domainsDescription": "Crear y administrar dominios disponibles en la organización",
"domainsSearch": "Buscar dominios...", "domainsSearch": "Buscar dominios...",
"domainAdd": "Agregar dominio", "domainAdd": "Agregar dominio",
"domainAddDescription": "Registrar un nuevo dominio con tu organización", "domainAddDescription": "Registrar un nuevo dominio con la organización",
"domainCreate": "Crear dominio", "domainCreate": "Crear dominio",
"domainCreatedDescription": "Dominio creado con éxito", "domainCreatedDescription": "Dominio creado con éxito",
"domainDeletedDescription": "Dominio eliminado exitosamente", "domainDeletedDescription": "Dominio eliminado exitosamente",
"domainQuestionRemove": "¿Está seguro que desea eliminar el dominio de su cuenta?", "domainQuestionRemove": "¿Está seguro que desea eliminar el dominio?",
"domainMessageRemove": "Una vez eliminado, el dominio ya no estará asociado con su cuenta.", "domainMessageRemove": "Una vez eliminado, el dominio ya no estará asociado a la organización.",
"domainConfirmDelete": "Confirmar eliminación del dominio", "domainConfirmDelete": "Confirmar eliminación del dominio",
"domainDelete": "Eliminar dominio", "domainDelete": "Eliminar dominio",
"domain": "Dominio", "domain": "Dominio",
@@ -1257,7 +1292,7 @@
"pending": "Pendiente", "pending": "Pendiente",
"sidebarBilling": "Facturación", "sidebarBilling": "Facturación",
"billing": "Facturación", "billing": "Facturación",
"orgBillingDescription": "Gestiona tu información de facturación y suscripciones", "orgBillingDescription": "Administrar información de facturación y suscripciones",
"github": "GitHub", "github": "GitHub",
"pangolinHosted": "Pangolin Alojado", "pangolinHosted": "Pangolin Alojado",
"fossorial": "Fossorial", "fossorial": "Fossorial",
@@ -1279,6 +1314,15 @@
"settingsErrorUpdateDescription": "Ocurrió un error al actualizar ajustes", "settingsErrorUpdateDescription": "Ocurrió un error al actualizar ajustes",
"sidebarCollapse": "Colapsar", "sidebarCollapse": "Colapsar",
"sidebarExpand": "Expandir", "sidebarExpand": "Expandir",
"productUpdateMoreInfo": "{noOfUpdates} actualizaciones más",
"productUpdateInfo": "{noOfUpdates} actualizaciones",
"productUpdateWhatsNew": "Novedades",
"productUpdateTitle": "Actualizaciones de producto",
"productUpdateEmpty": "Sin actualizaciones",
"dismissAll": "Descartar todo",
"pangolinUpdateAvailable": "Actualización disponible",
"pangolinUpdateAvailableInfo": "La versión {version} está lista para instalar",
"pangolinUpdateAvailableReleaseNotes": "Ver notas de lanzamiento",
"newtUpdateAvailable": "Nueva actualización disponible", "newtUpdateAvailable": "Nueva actualización disponible",
"newtUpdateAvailableInfo": "Hay una nueva versión de Newt disponible. Actualice a la última versión para la mejor experiencia.", "newtUpdateAvailableInfo": "Hay una nueva versión de Newt disponible. Actualice a la última versión para la mejor experiencia.",
"domainPickerEnterDomain": "Dominio", "domainPickerEnterDomain": "Dominio",
@@ -1291,7 +1335,7 @@
"domainPickerSortAsc": "A-Z", "domainPickerSortAsc": "A-Z",
"domainPickerSortDesc": "Z-A", "domainPickerSortDesc": "Z-A",
"domainPickerCheckingAvailability": "Comprobando disponibilidad...", "domainPickerCheckingAvailability": "Comprobando disponibilidad...",
"domainPickerNoMatchingDomains": "No se encontraron dominios que coincidan. Intente con un dominio diferente o verifique la configuración de dominios de su organización.", "domainPickerNoMatchingDomains": "No se han encontrado dominios coincidentes. Prueba un dominio diferente o comprueba la configuración de dominio de la organización.",
"domainPickerOrganizationDomains": "Dominios de la organización", "domainPickerOrganizationDomains": "Dominios de la organización",
"domainPickerProvidedDomains": "Dominios proporcionados", "domainPickerProvidedDomains": "Dominios proporcionados",
"domainPickerSubdomain": "Subdominio: {subdomain}", "domainPickerSubdomain": "Subdominio: {subdomain}",
@@ -1325,7 +1369,7 @@
"billingModifySubscription": "Modificar Suscripción", "billingModifySubscription": "Modificar Suscripción",
"billingStartSubscription": "Iniciar Suscripción", "billingStartSubscription": "Iniciar Suscripción",
"billingRecurringCharge": "Cargo Recurrente", "billingRecurringCharge": "Cargo Recurrente",
"billingManageSubscriptionSettings": "Administra la configuración y preferencias de tu suscripción", "billingManageSubscriptionSettings": "Administrar ajustes y preferencias de suscripción",
"billingNoActiveSubscription": "No tienes una suscripción activa. Inicia tu suscripción para aumentar los límites de uso.", "billingNoActiveSubscription": "No tienes una suscripción activa. Inicia tu suscripción para aumentar los límites de uso.",
"billingFailedToLoadSubscription": "Error al cargar la suscripción", "billingFailedToLoadSubscription": "Error al cargar la suscripción",
"billingFailedToLoadUsage": "Error al cargar el uso", "billingFailedToLoadUsage": "Error al cargar el uso",
@@ -1336,9 +1380,9 @@
"billingPortalError": "Error del portal", "billingPortalError": "Error del portal",
"billingDataUsageInfo": "Se le cobran todos los datos transferidos a través de sus túneles seguros cuando se conectan a la nube. Esto incluye tanto tráfico entrante como saliente a través de todos sus sitios. Cuando alcance su límite, sus sitios se desconectarán hasta que actualice su plan o reduzca el uso. Los datos no se cargan cuando se usan nodos.", "billingDataUsageInfo": "Se le cobran todos los datos transferidos a través de sus túneles seguros cuando se conectan a la nube. Esto incluye tanto tráfico entrante como saliente a través de todos sus sitios. Cuando alcance su límite, sus sitios se desconectarán hasta que actualice su plan o reduzca el uso. Los datos no se cargan cuando se usan nodos.",
"billingOnlineTimeInfo": "Se te cobrará en función del tiempo que tus sitios permanezcan conectados a la nube. Por ejemplo, 44.640 minutos equivale a un sitio que funciona 24/7 durante un mes completo. Cuando alcance su límite, sus sitios se desconectarán hasta que mejore su plan o reduzca el uso. No se cargará el tiempo al usar nodos.", "billingOnlineTimeInfo": "Se te cobrará en función del tiempo que tus sitios permanezcan conectados a la nube. Por ejemplo, 44.640 minutos equivale a un sitio que funciona 24/7 durante un mes completo. Cuando alcance su límite, sus sitios se desconectarán hasta que mejore su plan o reduzca el uso. No se cargará el tiempo al usar nodos.",
"billingUsersInfo": "Se te cobra por cada usuario en tu organización. La facturación se calcula diariamente según la cantidad de cuentas de usuario activas en tu organización.", "billingUsersInfo": "Se le cobra por cada usuario en la organización. La facturación se calcula diariamente según el número de cuentas de usuario activas en su órgano.",
"billingDomainInfo": "Se te cobra por cada dominio en tu organización. La facturación se calcula diariamente según la cantidad de cuentas de dominio activas en tu organización.", "billingDomainInfo": "Se le cobra por cada dominio en la organización. La facturación se calcula diariamente en función del número de cuentas de dominio activas en su órgano.",
"billingRemoteExitNodesInfo": "Se te cobra por cada nodo gestionado en tu organización. La facturación se calcula diariamente según la cantidad de nodos gestionados activos en tu organización.", "billingRemoteExitNodesInfo": "Se le cobra por cada nodo administrado en la organización. La facturación se calcula diariamente en función del número de nodos activos gestionados en su órgano.",
"domainNotFound": "Dominio no encontrado", "domainNotFound": "Dominio no encontrado",
"domainNotFoundDescription": "Este recurso está deshabilitado porque el dominio ya no existe en nuestro sistema. Por favor, establece un nuevo dominio para este recurso.", "domainNotFoundDescription": "Este recurso está deshabilitado porque el dominio ya no existe en nuestro sistema. Por favor, establece un nuevo dominio para este recurso.",
"failed": "Fallido", "failed": "Fallido",
@@ -1421,29 +1465,32 @@
"and": "y", "and": "y",
"privacyPolicy": "política de privacidad" "privacyPolicy": "política de privacidad"
}, },
"signUpMarketing": {
"keepMeInTheLoop": "Mantenerme en el bucle con noticias, actualizaciones y nuevas características por correo electrónico."
},
"siteRequired": "El sitio es requerido.", "siteRequired": "El sitio es requerido.",
"olmTunnel": "Túnel Olm", "olmTunnel": "Túnel Olm",
"olmTunnelDescription": "Usar Olm para la conectividad del cliente", "olmTunnelDescription": "Usar Olm para la conectividad del cliente",
"errorCreatingClient": "Error al crear el cliente", "errorCreatingClient": "Error al crear el cliente",
"clientDefaultsNotFound": "Configuración predeterminada del cliente no encontrada", "clientDefaultsNotFound": "Configuración predeterminada del cliente no encontrada",
"createClient": "Crear cliente", "createClient": "Crear cliente",
"createClientDescription": "Crear un cliente nuevo para conectar a sus sitios", "createClientDescription": "Crear un nuevo cliente para acceder a recursos privados",
"seeAllClients": "Ver todos los clientes", "seeAllClients": "Ver todos los clientes",
"clientInformation": "Información del cliente", "clientInformation": "Información del cliente",
"clientNamePlaceholder": "Nombre del cliente", "clientNamePlaceholder": "Nombre del cliente",
"address": "Dirección", "address": "Dirección",
"subnetPlaceholder": "Subred", "subnetPlaceholder": "Subred",
"addressDescription": "La dirección que este cliente utilizará para la conectividad", "addressDescription": "La dirección interna del cliente. Debe estar dentro de la subred de la organización.",
"selectSites": "Seleccionar sitios", "selectSites": "Seleccionar sitios",
"sitesDescription": "El cliente tendrá conectividad con los sitios seleccionados", "sitesDescription": "El cliente tendrá conectividad con los sitios seleccionados",
"clientInstallOlm": "Instalar Olm", "clientInstallOlm": "Instalar Olm",
"clientInstallOlmDescription": "Obtén Olm funcionando en tu sistema", "clientInstallOlmDescription": "Obtén Olm funcionando en tu sistema",
"clientOlmCredentials": "Credenciales Olm", "clientOlmCredentials": "Credenciales",
"clientOlmCredentialsDescription": "Así es como Olm se autentificará con el servidor", "clientOlmCredentialsDescription": "Así es como el cliente se autentificará con el servidor",
"olmEndpoint": "Punto final Olm", "olmEndpoint": "Endpoint",
"olmId": "ID de Olm", "olmId": "ID",
"olmSecretKey": "Clave secreta de Olm", "olmSecretKey": "Secreto",
"clientCredentialsSave": "Guarda tus credenciales", "clientCredentialsSave": "Guardar las credenciales",
"clientCredentialsSaveDescription": "Sólo podrás verlo una vez. Asegúrate de copiarlo a un lugar seguro.", "clientCredentialsSaveDescription": "Sólo podrás verlo una vez. Asegúrate de copiarlo a un lugar seguro.",
"generalSettingsDescription": "Configura la configuración general para este cliente", "generalSettingsDescription": "Configura la configuración general para este cliente",
"clientUpdated": "Cliente actualizado", "clientUpdated": "Cliente actualizado",
@@ -1454,9 +1501,7 @@
"sitesFetchError": "Se ha producido un error al recuperar los sitios.", "sitesFetchError": "Se ha producido un error al recuperar los sitios.",
"olmErrorFetchReleases": "Se ha producido un error al recuperar las versiones de Olm.", "olmErrorFetchReleases": "Se ha producido un error al recuperar las versiones de Olm.",
"olmErrorFetchLatest": "Se ha producido un error al recuperar la última versión de Olm.", "olmErrorFetchLatest": "Se ha producido un error al recuperar la última versión de Olm.",
"remoteSubnets": "Subredes remotas",
"enterCidrRange": "Ingresa el rango CIDR", "enterCidrRange": "Ingresa el rango CIDR",
"remoteSubnetsDescription": "Agregue rangos CIDR que se puedan acceder desde este sitio de forma remota usando clientes. Utilice el formato como 10.0.0.0/24. Esto SOLO se aplica a la conectividad del cliente VPN.",
"resourceEnableProxy": "Habilitar proxy público", "resourceEnableProxy": "Habilitar proxy público",
"resourceEnableProxyDescription": "Habilite el proxy público para este recurso. Esto permite el acceso al recurso desde fuera de la red a través de la nube en un puerto abierto. Requiere configuración de Traefik.", "resourceEnableProxyDescription": "Habilite el proxy público para este recurso. Esto permite el acceso al recurso desde fuera de la red a través de la nube en un puerto abierto. Requiere configuración de Traefik.",
"externalProxyEnabled": "Proxy externo habilitado", "externalProxyEnabled": "Proxy externo habilitado",
@@ -1474,14 +1519,15 @@
"enableHealthChecksDescription": "Controlar la salud de este objetivo. Puedes supervisar un punto final diferente al objetivo si es necesario.", "enableHealthChecksDescription": "Controlar la salud de este objetivo. Puedes supervisar un punto final diferente al objetivo si es necesario.",
"healthScheme": "Método", "healthScheme": "Método",
"healthSelectScheme": "Seleccionar método", "healthSelectScheme": "Seleccionar método",
"healthCheckPortInvalid": "El puerto de chequeo de salud debe estar entre 1 y 65535",
"healthCheckPath": "Ruta", "healthCheckPath": "Ruta",
"healthHostname": "IP / Nombre del host", "healthHostname": "IP / Nombre del host",
"healthPort": "Puerto", "healthPort": "Puerto",
"healthCheckPathDescription": "La ruta para comprobar el estado de salud.", "healthCheckPathDescription": "La ruta para comprobar el estado de salud.",
"healthyIntervalSeconds": "Intervalo Saludable", "healthyIntervalSeconds": "Intervalo saludable (seg)",
"unhealthyIntervalSeconds": "Intervalo No Saludable", "unhealthyIntervalSeconds": "Intervalo poco saludable (seg)",
"IntervalSeconds": "Intervalo Saludable", "IntervalSeconds": "Intervalo Saludable",
"timeoutSeconds": "Tiempo de Espera", "timeoutSeconds": "Tiempo agotado (seg)",
"timeIsInSeconds": "El tiempo está en segundos", "timeIsInSeconds": "El tiempo está en segundos",
"retryAttempts": "Intentos de Reintento", "retryAttempts": "Intentos de Reintento",
"expectedResponseCodes": "Códigos de respuesta esperados", "expectedResponseCodes": "Códigos de respuesta esperados",
@@ -1517,16 +1563,22 @@
"resourceEditDomain": "Editar dominio", "resourceEditDomain": "Editar dominio",
"siteName": "Nombre del sitio", "siteName": "Nombre del sitio",
"proxyPort": "Puerto", "proxyPort": "Puerto",
"resourcesTableProxyResources": "Recursos de proxy", "resourcesTableProxyResources": "Público",
"resourcesTableClientResources": "Recursos del cliente", "resourcesTableClientResources": "Privado",
"resourcesTableNoProxyResourcesFound": "No se encontraron recursos de proxy.", "resourcesTableNoProxyResourcesFound": "No se encontraron recursos de proxy.",
"resourcesTableNoInternalResourcesFound": "No se encontraron recursos internos.", "resourcesTableNoInternalResourcesFound": "No se encontraron recursos internos.",
"resourcesTableDestination": "Destino", "resourcesTableDestination": "Destino",
"resourcesTableTheseResourcesForUseWith": "Estos recursos son para uso con", "resourcesTableAlias": "Alias",
"resourcesTableClients": "Clientes", "resourcesTableClients": "Clientes",
"resourcesTableAndOnlyAccessibleInternally": "y solo son accesibles internamente cuando se conectan con un cliente.", "resourcesTableAndOnlyAccessibleInternally": "y solo son accesibles internamente cuando se conectan con un cliente.",
"editInternalResourceDialogEditClientResource": "Editar recurso del cliente", "resourcesTableNoTargets": "Sin objetivos",
"editInternalResourceDialogUpdateResourceProperties": "Actualizar las propiedades del recurso y la configuración del objetivo para {resourceName}.", "resourcesTableHealthy": "Saludable",
"resourcesTableDegraded": "Degrado",
"resourcesTableOffline": "Desconectado",
"resourcesTableUnknown": "Desconocido",
"resourcesTableNotMonitored": "No supervisado",
"editInternalResourceDialogEditClientResource": "Editar recurso privado",
"editInternalResourceDialogUpdateResourceProperties": "Actualizar la configuración del recurso y los controles de acceso para {resourceName}",
"editInternalResourceDialogResourceProperties": "Propiedades del recurso", "editInternalResourceDialogResourceProperties": "Propiedades del recurso",
"editInternalResourceDialogName": "Nombre", "editInternalResourceDialogName": "Nombre",
"editInternalResourceDialogProtocol": "Protocolo", "editInternalResourceDialogProtocol": "Protocolo",
@@ -1545,11 +1597,22 @@
"editInternalResourceDialogInvalidIPAddressFormat": "Formato de dirección IP inválido", "editInternalResourceDialogInvalidIPAddressFormat": "Formato de dirección IP inválido",
"editInternalResourceDialogDestinationPortMin": "El puerto de destino debe ser al menos 1", "editInternalResourceDialogDestinationPortMin": "El puerto de destino debe ser al menos 1",
"editInternalResourceDialogDestinationPortMax": "El puerto de destino debe ser menor de 65536", "editInternalResourceDialogDestinationPortMax": "El puerto de destino debe ser menor de 65536",
"editInternalResourceDialogPortModeRequired": "Protocolos, puerto proxy y puerto de destino son necesarios para el modo puerto",
"editInternalResourceDialogMode": "Modo",
"editInternalResourceDialogModePort": "Puerto",
"editInternalResourceDialogModeHost": "Anfitrión",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogDestination": "Destino",
"editInternalResourceDialogDestinationHostDescription": "La dirección IP o nombre de host del recurso en la red del sitio.",
"editInternalResourceDialogDestinationIPDescription": "La dirección IP o nombre de host del recurso en la red del sitio.",
"editInternalResourceDialogDestinationCidrDescription": "El rango CIDR del recurso en la red del sitio.",
"editInternalResourceDialogAlias": "Alias",
"editInternalResourceDialogAliasDescription": "Un alias DNS interno opcional para este recurso.",
"createInternalResourceDialogNoSitesAvailable": "No hay sitios disponibles", "createInternalResourceDialogNoSitesAvailable": "No hay sitios disponibles",
"createInternalResourceDialogNoSitesAvailableDescription": "Necesita tener al menos un sitio de Newt con una subred configurada para crear recursos internos.", "createInternalResourceDialogNoSitesAvailableDescription": "Necesita tener al menos un sitio de Newt con una subred configurada para crear recursos internos.",
"createInternalResourceDialogClose": "Cerrar", "createInternalResourceDialogClose": "Cerrar",
"createInternalResourceDialogCreateClientResource": "Crear recurso del cliente", "createInternalResourceDialogCreateClientResource": "Crear recurso privado",
"createInternalResourceDialogCreateClientResourceDescription": "Crear un nuevo recurso que será accesible para los clientes conectados al sitio seleccionado.", "createInternalResourceDialogCreateClientResourceDescription": "Crear un nuevo recurso que sólo será accesible a los clientes conectados a la organización",
"createInternalResourceDialogResourceProperties": "Propiedades del recurso", "createInternalResourceDialogResourceProperties": "Propiedades del recurso",
"createInternalResourceDialogName": "Nombre", "createInternalResourceDialogName": "Nombre",
"createInternalResourceDialogSite": "Sitio", "createInternalResourceDialogSite": "Sitio",
@@ -1578,11 +1641,22 @@
"createInternalResourceDialogInvalidIPAddressFormat": "Formato de dirección IP inválido", "createInternalResourceDialogInvalidIPAddressFormat": "Formato de dirección IP inválido",
"createInternalResourceDialogDestinationPortMin": "El puerto de destino debe ser al menos 1", "createInternalResourceDialogDestinationPortMin": "El puerto de destino debe ser al menos 1",
"createInternalResourceDialogDestinationPortMax": "El puerto de destino debe ser menor de 65536", "createInternalResourceDialogDestinationPortMax": "El puerto de destino debe ser menor de 65536",
"createInternalResourceDialogPortModeRequired": "Protocolos, puerto proxy y puerto de destino son necesarios para el modo puerto",
"createInternalResourceDialogMode": "Modo",
"createInternalResourceDialogModePort": "Puerto",
"createInternalResourceDialogModeHost": "Anfitrión",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogDestination": "Destino",
"createInternalResourceDialogDestinationHostDescription": "La dirección IP o nombre de host del recurso en la red del sitio.",
"createInternalResourceDialogDestinationCidrDescription": "El rango CIDR del recurso en la red del sitio.",
"createInternalResourceDialogAlias": "Alias",
"createInternalResourceDialogAliasDescription": "Un alias DNS interno opcional para este recurso.",
"siteConfiguration": "Configuración", "siteConfiguration": "Configuración",
"siteAcceptClientConnections": "Aceptar conexiones de clientes", "siteAcceptClientConnections": "Aceptar conexiones de clientes",
"siteAcceptClientConnectionsDescription": "Permitir que otros dispositivos se conecten a través de esta instancia Newt como una puerta de enlace utilizando clientes.", "siteAcceptClientConnectionsDescription": "Permitir a los dispositivos de usuario y clientes acceder a los recursos de este sitio. Esto se puede cambiar más tarde.",
"siteAddress": "Dirección del sitio", "siteAddress": "Dirección del sitio (Avanzado)",
"siteAddressDescription": "Especifique la dirección IP del host que los clientes deben usar para conectarse. Esta es la dirección interna del sitio en la red de Pangolín para que los clientes dirijan. Debe estar dentro de la subred de la organización.", "siteAddressDescription": "La dirección interna del sitio. Debe estar dentro de la subred de la organización.",
"siteNameDescription": "El nombre mostrado del sitio que se puede cambiar más adelante.",
"autoLoginExternalIdp": "Inicio de sesión automático con IDP externo", "autoLoginExternalIdp": "Inicio de sesión automático con IDP externo",
"autoLoginExternalIdpDescription": "Redirigir inmediatamente al usuario al IDP externo para autenticación.", "autoLoginExternalIdpDescription": "Redirigir inmediatamente al usuario al IDP externo para autenticación.",
"selectIdp": "Seleccionar IDP", "selectIdp": "Seleccionar IDP",
@@ -1612,7 +1686,7 @@
"viewAllButton": "Ver todos los nodos", "viewAllButton": "Ver todos los nodos",
"strategy": { "strategy": {
"title": "Estrategia de Creación", "title": "Estrategia de Creación",
"description": "Elija esto para configurar manualmente su nodo o generar nuevas credenciales.", "description": "Elija esto para configurar manualmente el nodo o generar nuevas credenciales.",
"adopt": { "adopt": {
"title": "Adoptar Nodo", "title": "Adoptar Nodo",
"description": "Elija esto si ya tiene las credenciales para el nodo." "description": "Elija esto si ya tiene las credenciales para el nodo."
@@ -1633,7 +1707,7 @@
}, },
"generate": { "generate": {
"title": "Credenciales Generadas", "title": "Credenciales Generadas",
"description": "Utilice estas credenciales generadas para configurar su nodo", "description": "Utilice estas credenciales generadas para configurar el nodo",
"nodeIdTitle": "ID del nodo", "nodeIdTitle": "ID del nodo",
"secretTitle": "Secreto", "secretTitle": "Secreto",
"saveCredentialsTitle": "Agregar Credenciales a la Configuración", "saveCredentialsTitle": "Agregar Credenciales a la Configuración",
@@ -1709,16 +1783,16 @@
"idpTypeLabel": "Tipo de proveedor de identidad", "idpTypeLabel": "Tipo de proveedor de identidad",
"roleMappingExpressionPlaceholder": "e.g., contiene(grupos, 'administrador') && 'administrador' || 'miembro'", "roleMappingExpressionPlaceholder": "e.g., contiene(grupos, 'administrador') && 'administrador' || 'miembro'",
"idpGoogleConfiguration": "Configuración de Google", "idpGoogleConfiguration": "Configuración de Google",
"idpGoogleConfigurationDescription": "Configura tus credenciales de Google OAuth2", "idpGoogleConfigurationDescription": "Configurar las credenciales de Google OAuth2",
"idpGoogleClientIdDescription": "Tu ID de cliente de Google OAuth2", "idpGoogleClientIdDescription": "Google OAuth2 Client ID",
"idpGoogleClientSecretDescription": "Tu secreto de cliente de Google OAuth2", "idpGoogleClientSecretDescription": "Secreto del cliente de Google OAuth2",
"idpAzureConfiguration": "Configuración de Azure Entra ID", "idpAzureConfiguration": "Configuración de Azure Entra ID",
"idpAzureConfigurationDescription": "Configure sus credenciales de Azure Entra ID OAuth2", "idpAzureConfigurationDescription": "Configurar credenciales de Azure Entra ID OAuth2",
"idpTenantId": "ID del inquilino", "idpTenantId": "ID del inquilino",
"idpTenantIdPlaceholder": "su-inquilino-id", "idpTenantIdPlaceholder": "tenant-id",
"idpAzureTenantIdDescription": "Su ID de inquilino de Azure (encontrado en el resumen de Azure Active Directory)", "idpAzureTenantIdDescription": "ID de inquilino Azure (encontrado en la descripción de Azure Active Directory)",
"idpAzureClientIdDescription": "Tu ID de Cliente de Registro de Azure App", "idpAzureClientIdDescription": "ID de cliente de registro de Azure App",
"idpAzureClientSecretDescription": "Tu Azure App Registro Cliente secreto", "idpAzureClientSecretDescription": "Azure App Registro Cliente secreto",
"idpGoogleTitle": "Google", "idpGoogleTitle": "Google",
"idpGoogleAlt": "Google", "idpGoogleAlt": "Google",
"idpAzureTitle": "Azure Entra ID", "idpAzureTitle": "Azure Entra ID",
@@ -1726,14 +1800,14 @@
"idpGoogleConfigurationTitle": "Configuración de Google", "idpGoogleConfigurationTitle": "Configuración de Google",
"idpAzureConfigurationTitle": "Configuración de Azure Entra ID", "idpAzureConfigurationTitle": "Configuración de Azure Entra ID",
"idpTenantIdLabel": "ID del inquilino", "idpTenantIdLabel": "ID del inquilino",
"idpAzureClientIdDescription2": "Tu ID de Cliente de Registro de Azure App", "idpAzureClientIdDescription2": "ID de cliente de registro de Azure App",
"idpAzureClientSecretDescription2": "Tu Azure App Registro Cliente secreto", "idpAzureClientSecretDescription2": "Azure App Registro Cliente secreto",
"idpGoogleDescription": "Proveedor OAuth2/OIDC de Google", "idpGoogleDescription": "Proveedor OAuth2/OIDC de Google",
"idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider", "idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider",
"subnet": "Subred", "subnet": "Subred",
"subnetDescription": "La subred para la configuración de red de esta organización.", "subnetDescription": "La subred para la configuración de red de esta organización.",
"authPage": "Página Auth", "authPage": "Página Auth",
"authPageDescription": "Configurar la página de autenticación de su organización", "authPageDescription": "Configurar la página de autenticación para la organización",
"authPageDomain": "Dominio de la página Auth", "authPageDomain": "Dominio de la página Auth",
"noDomainSet": "Ningún dominio establecido", "noDomainSet": "Ningún dominio establecido",
"changeDomain": "Cambiar dominio", "changeDomain": "Cambiar dominio",
@@ -1743,7 +1817,7 @@
"setAuthPageDomain": "Establecer dominio Auth Page", "setAuthPageDomain": "Establecer dominio Auth Page",
"failedToFetchCertificate": "Error al obtener el certificado", "failedToFetchCertificate": "Error al obtener el certificado",
"failedToRestartCertificate": "Error al reiniciar el certificado", "failedToRestartCertificate": "Error al reiniciar el certificado",
"addDomainToEnableCustomAuthPages": "Añadir un dominio para habilitar páginas de autenticación personalizadas para su organización", "addDomainToEnableCustomAuthPages": "Añadir un dominio para habilitar páginas de autenticación personalizadas para la organización",
"selectDomainForOrgAuthPage": "Seleccione un dominio para la página de autenticación de la organización", "selectDomainForOrgAuthPage": "Seleccione un dominio para la página de autenticación de la organización",
"domainPickerProvidedDomain": "Dominio proporcionado", "domainPickerProvidedDomain": "Dominio proporcionado",
"domainPickerFreeProvidedDomain": "Dominio proporcionado gratis", "domainPickerFreeProvidedDomain": "Dominio proporcionado gratis",
@@ -1758,7 +1832,7 @@
"domainPickerInvalidSubdomainCannotMakeValid": "No se ha podido hacer válido \"{sub}\" para {domain}.", "domainPickerInvalidSubdomainCannotMakeValid": "No se ha podido hacer válido \"{sub}\" para {domain}.",
"domainPickerSubdomainSanitized": "Subdominio saneado", "domainPickerSubdomainSanitized": "Subdominio saneado",
"domainPickerSubdomainCorrected": "\"{sub}\" fue corregido a \"{sanitized}\"", "domainPickerSubdomainCorrected": "\"{sub}\" fue corregido a \"{sanitized}\"",
"orgAuthSignInTitle": "Inicia sesión en tu organización", "orgAuthSignInTitle": "Iniciar sesión en la organización",
"orgAuthChooseIdpDescription": "Elige tu proveedor de identidad para continuar", "orgAuthChooseIdpDescription": "Elige tu proveedor de identidad para continuar",
"orgAuthNoIdpConfigured": "Esta organización no tiene ningún proveedor de identidad configurado. En su lugar puedes iniciar sesión con tu identidad de Pangolin.", "orgAuthNoIdpConfigured": "Esta organización no tiene ningún proveedor de identidad configurado. En su lugar puedes iniciar sesión con tu identidad de Pangolin.",
"orgAuthSignInWithPangolin": "Iniciar sesión con Pangolin", "orgAuthSignInWithPangolin": "Iniciar sesión con Pangolin",
@@ -1776,7 +1850,7 @@
"enableTwoFactorAuthentication": "Habilitar autenticación de doble factor", "enableTwoFactorAuthentication": "Habilitar autenticación de doble factor",
"completeSecuritySteps": "Pasos de seguridad completos", "completeSecuritySteps": "Pasos de seguridad completos",
"securitySettings": "Ajustes de seguridad", "securitySettings": "Ajustes de seguridad",
"securitySettingsDescription": "Configurar políticas de seguridad para su organización", "securitySettingsDescription": "Configurar políticas de seguridad para la organización",
"requireTwoFactorForAllUsers": "Requiere autenticación de doble factor para todos los usuarios", "requireTwoFactorForAllUsers": "Requiere autenticación de doble factor para todos los usuarios",
"requireTwoFactorDescription": "Cuando está activado, todos los usuarios internos de esta organización deben tener habilitada la autenticación de dos factores para acceder a la organización.", "requireTwoFactorDescription": "Cuando está activado, todos los usuarios internos de esta organización deben tener habilitada la autenticación de dos factores para acceder a la organización.",
"requireTwoFactorDisabledDescription": "Esta característica requiere una licencia válida (Enterprise) o una suscripción activa (SaBudget)", "requireTwoFactorDisabledDescription": "Esta característica requiere una licencia válida (Enterprise) o una suscripción activa (SaBudget)",
@@ -1839,8 +1913,12 @@
"enterpriseEdition": "Edición corporativa", "enterpriseEdition": "Edición corporativa",
"unlicensed": "Sin licencia", "unlicensed": "Sin licencia",
"beta": "Beta", "beta": "Beta",
"manageClients": "Administrar clientes", "manageUserDevices": "Dispositivos de usuario",
"manageClientsDescription": "Los clientes son dispositivos que pueden conectarse a sus sitios", "manageUserDevicesDescription": "Ver y administrar dispositivos que los usuarios utilizan para conectarse a recursos privados",
"manageMachineClients": "Administrar clientes de máquinas",
"manageMachineClientsDescription": "Crear y administrar clientes que servidores y sistemas utilizan para conectarse de forma privada a recursos",
"clientsTableUserClients": "Usuario",
"clientsTableMachineClients": "Maquina",
"licenseTableValidUntil": "Válido hasta", "licenseTableValidUntil": "Válido hasta",
"saasLicenseKeysSettingsTitle": "Licencias empresariales", "saasLicenseKeysSettingsTitle": "Licencias empresariales",
"saasLicenseKeysSettingsDescription": "Generar y administrar claves de licencia Enterprise para instancias Pangolin autoalojadas", "saasLicenseKeysSettingsDescription": "Generar y administrar claves de licencia Enterprise para instancias Pangolin autoalojadas",
@@ -1975,11 +2053,12 @@
"pathRewriteStripLabel": "clip", "pathRewriteStripLabel": "clip",
"sidebarEnableEnterpriseLicense": "Activar licencia corporativa", "sidebarEnableEnterpriseLicense": "Activar licencia corporativa",
"cannotbeUndone": "Esto no se puede deshacer.", "cannotbeUndone": "Esto no se puede deshacer.",
"toConfirm": "confirmar", "toConfirm": "confirmar.",
"deleteClientQuestion": "¿Está seguro que desea eliminar el cliente del sitio y la organización?", "deleteClientQuestion": "¿Está seguro que desea eliminar el cliente del sitio y la organización?",
"clientMessageRemove": "Una vez eliminado, el cliente ya no podrá conectarse al sitio.", "clientMessageRemove": "Una vez eliminado, el cliente ya no podrá conectarse al sitio.",
"sidebarLogs": "Registros", "sidebarLogs": "Registros",
"request": "Solicitud", "request": "Solicitud",
"requests": "Solicitudes",
"logs": "Registros", "logs": "Registros",
"logsSettingsDescription": "Monitorear registros recogidos de esta orginización", "logsSettingsDescription": "Monitorear registros recogidos de esta orginización",
"searchLogs": "Buscar registros...", "searchLogs": "Buscar registros...",
@@ -2005,6 +2084,7 @@
"ip": "IP", "ip": "IP",
"reason": "Razón", "reason": "Razón",
"requestLogs": "Registros de Solicitud", "requestLogs": "Registros de Solicitud",
"requestAnalytics": "Analítica de Solicitud",
"host": "Anfitrión", "host": "Anfitrión",
"location": "Ubicación", "location": "Ubicación",
"actionLogs": "Registros de acción", "actionLogs": "Registros de acción",
@@ -2014,6 +2094,7 @@
"logRetention": "Retención de Log", "logRetention": "Retención de Log",
"logRetentionDescription": "Administrar cuánto tiempo se conservan los diferentes tipos de registros para esta organización o desactivarlos", "logRetentionDescription": "Administrar cuánto tiempo se conservan los diferentes tipos de registros para esta organización o desactivarlos",
"requestLogsDescription": "Ver registros de solicitudes detallados para los recursos de esta organización", "requestLogsDescription": "Ver registros de solicitudes detallados para los recursos de esta organización",
"requestAnalyticsDescription": "Ver análisis de solicitudes detalladas de recursos en esta organización",
"logRetentionRequestLabel": "Retención de Registro de Solicitud", "logRetentionRequestLabel": "Retención de Registro de Solicitud",
"logRetentionRequestDescription": "Cuánto tiempo conservar los registros de solicitudes", "logRetentionRequestDescription": "Cuánto tiempo conservar los registros de solicitudes",
"logRetentionAccessLabel": "Retención de Log de Acceso", "logRetentionAccessLabel": "Retención de Log de Acceso",
@@ -2027,6 +2108,7 @@
"logRetention30Days": "30 días", "logRetention30Days": "30 días",
"logRetention90Days": "90 días", "logRetention90Days": "90 días",
"logRetentionForever": "Para siempre", "logRetentionForever": "Para siempre",
"logRetentionEndOfFollowingYear": "Fin del año siguiente",
"actionLogsDescription": "Ver un historial de acciones realizadas en esta organización", "actionLogsDescription": "Ver un historial de acciones realizadas en esta organización",
"accessLogsDescription": "Ver solicitudes de acceso a los recursos de esta organización", "accessLogsDescription": "Ver solicitudes de acceso a los recursos de esta organización",
"licenseRequiredToUse": "Se requiere una licencia Enterprise para utilizar esta función.", "licenseRequiredToUse": "Se requiere una licencia Enterprise para utilizar esta función.",
@@ -2037,7 +2119,7 @@
"preferWildcardCert": "Certificado de comodín preferido", "preferWildcardCert": "Certificado de comodín preferido",
"unverified": "Sin verificar", "unverified": "Sin verificar",
"domainSetting": "Ajustes de dominio", "domainSetting": "Ajustes de dominio",
"domainSettingDescription": "Configurar ajustes para tu dominio", "domainSettingDescription": "Configurar ajustes para el dominio",
"preferWildcardCertDescription": "Intento de generar un certificado comodín (requiere una resolución de certificados correctamente configurada).", "preferWildcardCertDescription": "Intento de generar un certificado comodín (requiere una resolución de certificados correctamente configurada).",
"recordName": "Nombre del registro", "recordName": "Nombre del registro",
"auto": "Auto", "auto": "Auto",
@@ -2051,15 +2133,15 @@
"olmUpdateAvailableInfo": "Una versión actualizada de Olm está disponible. Por favor, actualice a la última versión para obtener la mejor experiencia.", "olmUpdateAvailableInfo": "Una versión actualizada de Olm está disponible. Por favor, actualice a la última versión para obtener la mejor experiencia.",
"client": "Cliente", "client": "Cliente",
"proxyProtocol": "Configuración del Protocolo Proxy", "proxyProtocol": "Configuración del Protocolo Proxy",
"proxyProtocolDescription": "Configurar el protocolo de proxy para preservar las direcciones IP del cliente para los servicios TCP/UDP.", "proxyProtocolDescription": "Configurar el protocolo de proxy para preservar las direcciones IP del cliente para los servicios TCP.",
"enableProxyProtocol": "Habilitar protocolo proxy", "enableProxyProtocol": "Habilitar protocolo proxy",
"proxyProtocolInfo": "Conservar direcciones IP del cliente para backends TCP/UDP", "proxyProtocolInfo": "Conservar direcciones IP del cliente para backends TCP",
"proxyProtocolVersion": "Versión del Protocolo Proxy", "proxyProtocolVersion": "Versión del Protocolo Proxy",
"version1": " Versión 1 (Recomendado)", "version1": " Versión 1 (Recomendado)",
"version2": "Versión 2", "version2": "Versión 2",
"versionDescription": "La versión 1 está basada en texto y es ampliamente soportada. La versión 2 es binaria y más eficiente pero menos compatible.", "versionDescription": "La versión 1 está basada en texto y es ampliamente soportada. La versión 2 es binaria y más eficiente pero menos compatible.",
"warning": "Advertencia", "warning": "Advertencia",
"proxyProtocolWarning": "Su aplicación de backend debe estar configurada para aceptar conexiones Proxy Protocol. Si su backend no soporta Proxy Protocol, habilitando esto romperá todas las conexiones. Asegúrese de configurar su backend para que confíe en las cabeceras del protocolo Proxy de Traefik.", "proxyProtocolWarning": "La aplicación backend debe configurarse para aceptar conexiones Proxy Protocol. Si el backend no soporta Proxy Protocol, activarlo romperá todas las conexiones, así que sólo habilítelo si sabe lo que está haciendo. Asegúrese de configurar su backend para que confíe en las cabeceras del protocolo Proxy de Traefik.",
"restarting": "Reiniciando...", "restarting": "Reiniciando...",
"manual": "Manual", "manual": "Manual",
"messageSupport": "Soporte de mensajes", "messageSupport": "Soporte de mensajes",
@@ -2080,5 +2162,113 @@
"supportSending": "Enviando...", "supportSending": "Enviando...",
"supportSend": "Enviar", "supportSend": "Enviar",
"supportMessageSent": "¡Mensaje enviado!", "supportMessageSent": "¡Mensaje enviado!",
"supportWillContact": "¡Estaremos en contacto en breve!" "supportWillContact": "¡Estaremos en contacto en breve!",
"selectLogRetention": "Seleccionar retención de registro",
"terms": "Términos",
"privacy": "Privacidad",
"security": "Seguridad",
"docs": "Documentos",
"deviceActivation": "Activación del dispositivo",
"deviceCodeInvalidFormat": "El código debe tener 9 caracteres (por ejemplo, A1AJ-N5JD)",
"deviceCodeInvalidOrExpired": "Código no válido o caducado",
"deviceCodeVerifyFailed": "Error al verificar el código del dispositivo",
"signedInAs": "Conectado como",
"deviceCodeEnterPrompt": "Introduzca el código mostrado en el dispositivo",
"continue": "Continuar",
"deviceUnknownLocation": "Ubicación desconocida",
"deviceAuthorizationRequested": "Esta autorización fue solicitada a {location} el {date}. Asegúrate de confiar en este dispositivo ya que tendrá acceso a la cuenta.",
"deviceLabel": "Dispositivo: {deviceName}",
"deviceWantsAccess": "quiere acceder a su cuenta",
"deviceExistingAccess": "Acceso existente:",
"deviceFullAccess": "Acceso total a tu cuenta",
"deviceOrganizationsAccess": "Acceso a todas las organizaciones a las que su cuenta tiene acceso",
"deviceAuthorize": "Autorizar a {applicationName}",
"deviceConnected": "¡Dispositivo conectado!",
"deviceAuthorizedMessage": "El dispositivo está autorizado para acceder a su cuenta.",
"pangolinCloud": "Nube de Pangolin",
"viewDevices": "Ver dispositivos",
"viewDevicesDescription": "Administra tus dispositivos conectados",
"noDevices": "No hay dispositivos",
"dateCreated": "Fecha de creación",
"unnamedDevice": "Dispositivo sin nombre",
"deviceQuestionRemove": "¿Está seguro que desea eliminar este dispositivo?",
"deviceMessageRemove": "Esta acción no se puede deshacer.",
"deviceDeleteConfirm": "Eliminar dispositivo",
"deleteDevice": "Eliminar dispositivo",
"errorLoadingDevices": "Error al cargar dispositivos",
"failedToLoadDevices": "Error al cargar dispositivos",
"deviceDeleted": "Dispositivo eliminado",
"deviceDeletedDescription": "El dispositivo se ha eliminado correctamente.",
"errorDeletingDevice": "Error al eliminar el dispositivo",
"failedToDeleteDevice": "Error al eliminar el dispositivo",
"showColumns": "Mostrar columnas",
"hideColumns": "Ocultar columnas",
"columnVisibility": "Visibilidad de la columna",
"toggleColumn": "Cambiar columna {columnName}",
"allColumns": "Todas las columnas",
"defaultColumns": "Columnas por defecto",
"customizeView": "Personalizar vista",
"viewOptions": "Ver opciones",
"selectAll": "Seleccionar todo",
"selectNone": "No seleccionar",
"selectedResources": "Recursos seleccionados",
"enableSelected": "Habilitar seleccionados",
"disableSelected": "Desactivar Seleccionado",
"checkSelectedStatus": "Comprobar el estado de selección",
"clients": "Clientes",
"accessClientSelect": "Seleccionar clientes de máquina",
"resourceClientDescription": "Clientes de máquina que pueden acceder a este recurso",
"regenerate": "Regenerar",
"credentials": "Credenciales",
"savecredentials": "Guardar credenciales",
"regenerateCredentialsButton": "Regenerar credenciales",
"regenerateCredentials": "Regenerar credenciales",
"generatedcredentials": "Credenciales generadas",
"copyandsavethesecredentials": "Copiar y guardar estas credenciales",
"copyandsavethesecredentialsdescription": "Estas credenciales no se mostrarán de nuevo después de salir de esta página. Guárdelas de forma segura ahora.",
"credentialsSaved": "Credenciales guardadas",
"credentialsSavedDescription": "Las credenciales se han regenerado y guardado correctamente.",
"credentialsSaveError": "Error al guardar las credenciales",
"credentialsSaveErrorDescription": "Se ha producido un error al regenerar y guardar las credenciales.",
"regenerateCredentialsWarning": "Regenerar las credenciales invalidará las anteriores y causará una desconexión. Asegúrese de actualizar cualquier configuración que use estas credenciales.",
"confirm": "Confirmar",
"regenerateCredentialsConfirmation": "¿Está seguro que desea regenerar las credenciales?",
"endpoint": "Endpoint",
"Id": "Id",
"SecretKey": "Clave secreta",
"niceId": "ID bonita",
"niceIdUpdated": "Bonito ID actualizado",
"niceIdUpdatedSuccessfully": "Bonito ID actualizado correctamente",
"niceIdUpdateError": "Error al actualizar Nice ID",
"niceIdUpdateErrorDescription": "Se ha producido un error al actualizar el ID de Niza.",
"niceIdCannotBeEmpty": "El ID de Niza no puede estar vacío",
"enterIdentifier": "Introducir identificador",
"identifier": "Identifier",
"deviceLoginUseDifferentAccount": "¿No tú? Utilice una cuenta diferente.",
"deviceLoginDeviceRequestingAccessToAccount": "Un dispositivo está solicitando acceso a esta cuenta.",
"noData": "Sin datos",
"machineClients": "Clientes de la máquina",
"install": "Instalar",
"run": "Ejecutar",
"clientNameDescription": "El nombre mostrado del cliente que se puede cambiar más adelante.",
"clientAddress": "Dirección del cliente (Avanzado)",
"setupFailedToFetchSubnet": "No se pudo obtener la subred por defecto",
"setupSubnetAdvanced": "Subred (Avanzado)",
"setupSubnetDescription": "La subred de la red interna de esta organización.",
"siteRegenerateAndDisconnect": "Regenerar y desconectar",
"siteRegenerateAndDisconnectConfirmation": "¿Está seguro que desea regenerar las credenciales y desconectar este sitio?",
"siteRegenerateAndDisconnectWarning": "Esto regenerará las credenciales y desconectará inmediatamente el sitio. El sitio tendrá que reiniciarse con las nuevas credenciales.",
"siteRegenerateCredentialsConfirmation": "¿Está seguro de que desea regenerar las credenciales de este sitio?",
"siteRegenerateCredentialsWarning": "Esto regenerará las credenciales. El sitio permanecerá conectado hasta que lo reinicie manualmente y utilice las nuevas credenciales.",
"clientRegenerateAndDisconnect": "Regenerar y desconectar",
"clientRegenerateAndDisconnectConfirmation": "¿Está seguro que desea regenerar las credenciales y desconectar este cliente?",
"clientRegenerateAndDisconnectWarning": "Esto regenerará las credenciales y desconectará inmediatamente al cliente. El cliente tendrá que reiniciarse con las nuevas credenciales.",
"clientRegenerateCredentialsConfirmation": "¿Está seguro que desea regenerar las credenciales para este cliente?",
"clientRegenerateCredentialsWarning": "Esto regenerará las credenciales. El cliente permanecerá conectado hasta que lo reinicie manualmente y utilice las nuevas credenciales.",
"remoteExitNodeRegenerateAndDisconnect": "Regenerar y desconectar",
"remoteExitNodeRegenerateAndDisconnectConfirmation": "¿Estás seguro de que quieres regenerar las credenciales y desconectar este nodo de salida remoto?",
"remoteExitNodeRegenerateAndDisconnectWarning": "Esto regenerará las credenciales y desconectará inmediatamente el nodo de salida remoto. El nodo de salida remoto tendrá que reiniciarse con las nuevas credenciales.",
"remoteExitNodeRegenerateCredentialsConfirmation": "¿Estás seguro de que quieres regenerar las credenciales para este nodo de salida remoto?",
"remoteExitNodeRegenerateCredentialsWarning": "Esto regenerará las credenciales. El nodo de salida remoto permanecerá conectado hasta que lo reinicie manualmente y utilice las nuevas credenciales.",
"agent": "Agente"
} }

File diff suppressed because it is too large Load Diff

View File

@@ -1,12 +1,12 @@
{ {
"setupCreate": "Crea la tua organizzazione, sito e risorse", "setupCreate": "Creare l'organizzazione, il sito e le risorse",
"setupNewOrg": "Nuova Organizzazione", "setupNewOrg": "Nuova Organizzazione",
"setupCreateOrg": "Crea Organizzazione", "setupCreateOrg": "Crea Organizzazione",
"setupCreateResources": "Crea Risorse", "setupCreateResources": "Crea Risorse",
"setupOrgName": "Nome Dell'Organizzazione", "setupOrgName": "Nome Dell'Organizzazione",
"orgDisplayName": "Questo è il nome visualizzato della tua organizzazione.", "orgDisplayName": "Questo è il nome visualizzato dell'organizzazione.",
"orgId": "Id Organizzazione", "orgId": "Id Organizzazione",
"setupIdentifierMessage": "Questo è l' identificatore univoco della tua organizzazione. Questo è separato dal nome del display.", "setupIdentifierMessage": "Questo è l'identificatore univoco per l'organizzazione.",
"setupErrorIdentifier": "L'ID dell'organizzazione è già utilizzato. Si prega di sceglierne uno diverso.", "setupErrorIdentifier": "L'ID dell'organizzazione è già utilizzato. Si prega di sceglierne uno diverso.",
"componentsErrorNoMemberCreate": "Al momento non sei un membro di nessuna organizzazione. Crea un'organizzazione per iniziare.", "componentsErrorNoMemberCreate": "Al momento non sei un membro di nessuna organizzazione. Crea un'organizzazione per iniziare.",
"componentsErrorNoMember": "Attualmente non sei membro di nessuna organizzazione.", "componentsErrorNoMember": "Attualmente non sei membro di nessuna organizzazione.",
@@ -50,10 +50,10 @@
"siteMessageRemove": "Una volta rimosso il sito non sarà più accessibile. Tutti gli obiettivi associati al sito verranno rimossi.", "siteMessageRemove": "Una volta rimosso il sito non sarà più accessibile. Tutti gli obiettivi associati al sito verranno rimossi.",
"siteQuestionRemove": "Sei sicuro di voler rimuovere il sito dall'organizzazione?", "siteQuestionRemove": "Sei sicuro di voler rimuovere il sito dall'organizzazione?",
"siteManageSites": "Gestisci Siti", "siteManageSites": "Gestisci Siti",
"siteDescription": "Consenti la connettività alla rete attraverso tunnel sicuri", "siteDescription": "Creare e gestire siti per abilitare la connettività a reti private",
"siteCreate": "Crea Sito", "siteCreate": "Crea Sito",
"siteCreateDescription2": "Segui i passaggi qui sotto per creare e collegare un nuovo sito", "siteCreateDescription2": "Segui i passaggi qui sotto per creare e collegare un nuovo sito",
"siteCreateDescription": "Crea un nuovo sito per iniziare a connettere le tue risorse", "siteCreateDescription": "Crea un nuovo sito per iniziare a connettere le risorse",
"close": "Chiudi", "close": "Chiudi",
"siteErrorCreate": "Errore nella creazione del sito", "siteErrorCreate": "Errore nella creazione del sito",
"siteErrorCreateKeyPair": "Coppia di chiavi o valori predefiniti del sito non trovati", "siteErrorCreateKeyPair": "Coppia di chiavi o valori predefiniti del sito non trovati",
@@ -74,7 +74,7 @@
"siteInstallNewt": "Installa Newt", "siteInstallNewt": "Installa Newt",
"siteInstallNewtDescription": "Esegui Newt sul tuo sistema", "siteInstallNewtDescription": "Esegui Newt sul tuo sistema",
"WgConfiguration": "Configurazione WireGuard", "WgConfiguration": "Configurazione WireGuard",
"WgConfigurationDescription": "Usa la seguente configurazione per connetterti alla tua rete", "WgConfigurationDescription": "Utilizzare la seguente configurazione per connettersi alla rete",
"operatingSystem": "Sistema Operativo", "operatingSystem": "Sistema Operativo",
"commands": "Comandi", "commands": "Comandi",
"recommended": "Consigliato", "recommended": "Consigliato",
@@ -87,25 +87,25 @@
"siteUpdated": "Sito aggiornato", "siteUpdated": "Sito aggiornato",
"siteUpdatedDescription": "Il sito è stato aggiornato.", "siteUpdatedDescription": "Il sito è stato aggiornato.",
"siteGeneralDescription": "Configura le impostazioni generali per questo sito", "siteGeneralDescription": "Configura le impostazioni generali per questo sito",
"siteSettingDescription": "Configura le impostazioni sul tuo sito", "siteSettingDescription": "Configura le impostazioni del sito",
"siteSetting": "Impostazioni {siteName}", "siteSetting": "Impostazioni {siteName}",
"siteNewtTunnel": "Tunnel Newt (Consigliato)", "siteNewtTunnel": "Nuovo Sito (Consigliato)",
"siteNewtTunnelDescription": "Modo più semplice per creare un entrypoint nella rete. Nessuna configurazione aggiuntiva.", "siteNewtTunnelDescription": "Modo più semplice per creare un entrypoint in qualsiasi rete. Nessuna configurazione aggiuntiva.",
"siteWg": "WireGuard Base", "siteWg": "WireGuard Base",
"siteWgDescription": "Usa qualsiasi client WireGuard per stabilire un tunnel. Impostazione NAT manuale richiesta.", "siteWgDescription": "Usa qualsiasi client WireGuard per stabilire un tunnel. Impostazione NAT manuale richiesta.",
"siteWgDescriptionSaas": "Usa qualsiasi client WireGuard per stabilire un tunnel. Impostazione NAT manuale richiesta. FUNZIONA SOLO SU NODI AUTO-OSPITATI", "siteWgDescriptionSaas": "Usa qualsiasi client WireGuard per stabilire un tunnel. Impostazione NAT manuale richiesta. FUNZIONA SOLO SU NODI AUTO-OSPITATI",
"siteLocalDescription": "Solo risorse locali. Nessun tunneling.", "siteLocalDescription": "Solo risorse locali. Nessun tunneling.",
"siteLocalDescriptionSaas": "Solo risorse locali. Nessun tunneling. Disponibile solo su nodi remoti.", "siteLocalDescriptionSaas": "Solo risorse locali. Nessun tunneling. Disponibile solo su nodi remoti.",
"siteSeeAll": "Vedi Tutti I Siti", "siteSeeAll": "Vedi Tutti I Siti",
"siteTunnelDescription": "Determina come vuoi connetterti al tuo sito", "siteTunnelDescription": "Determinare come si desidera connettersi al sito",
"siteNewtCredentials": "Credenziali Newt", "siteNewtCredentials": "Credenziali",
"siteNewtCredentialsDescription": "Questo è come Newt si autenticerà con il server", "siteNewtCredentialsDescription": "Questo è come il sito si autenticerà con il server",
"siteCredentialsSave": "Salva Le Tue Credenziali", "siteCredentialsSave": "Salva le credenziali",
"siteCredentialsSaveDescription": "Potrai vederlo solo una volta. Assicurati di copiarlo in un luogo sicuro.", "siteCredentialsSaveDescription": "Potrai vederlo solo una volta. Assicurati di copiarlo in un luogo sicuro.",
"siteInfo": "Informazioni Sito", "siteInfo": "Informazioni Sito",
"status": "Stato", "status": "Stato",
"shareTitle": "Gestisci Collegamenti Di Condivisione", "shareTitle": "Gestisci Collegamenti Di Condivisione",
"shareDescription": "Crea link condivisibili per concedere un accesso temporaneo o permanente alle tue risorse", "shareDescription": "Crea link condivisibili per concedere accesso temporaneo o permanente alle risorse proxy",
"shareSearch": "Cerca link condivisi...", "shareSearch": "Cerca link condivisi...",
"shareCreate": "Crea Link Di Condivisione", "shareCreate": "Crea Link Di Condivisione",
"shareErrorDelete": "Impossibile eliminare il link", "shareErrorDelete": "Impossibile eliminare il link",
@@ -121,7 +121,7 @@
"importantNote": "Nota Importante", "importantNote": "Nota Importante",
"shareImportantDescription": "Per motivi di sicurezza, si consiglia di utilizzare le intestazioni su parametri di query quando possibile, in quanto i parametri di query possono essere registrati in log server o cronologia browser.", "shareImportantDescription": "Per motivi di sicurezza, si consiglia di utilizzare le intestazioni su parametri di query quando possibile, in quanto i parametri di query possono essere registrati in log server o cronologia browser.",
"token": "Token", "token": "Token",
"shareTokenSecurety": "Mantieni sicuro il tuo token di accesso. Non condividerlo in aree accessibili al pubblico o codice lato client.", "shareTokenSecurety": "Mantenere sicuro il token di accesso. Non condividerlo in aree accessibili al pubblico o codice lato client.",
"shareErrorFetchResource": "Recupero delle risorse non riuscito", "shareErrorFetchResource": "Recupero delle risorse non riuscito",
"shareErrorFetchResourceDescription": "Si è verificato un errore durante il recupero delle risorse", "shareErrorFetchResourceDescription": "Si è verificato un errore durante il recupero delle risorse",
"shareErrorCreate": "Impossibile creare il link di condivisione", "shareErrorCreate": "Impossibile creare il link di condivisione",
@@ -131,7 +131,7 @@
"expireIn": "Scadenza In", "expireIn": "Scadenza In",
"neverExpire": "Mai scadere", "neverExpire": "Mai scadere",
"shareExpireDescription": "Il tempo di scadenza è per quanto tempo il link sarà utilizzabile e fornirà accesso alla risorsa. Dopo questo tempo, il link non funzionerà più e gli utenti che hanno utilizzato questo link perderanno l'accesso alla risorsa.", "shareExpireDescription": "Il tempo di scadenza è per quanto tempo il link sarà utilizzabile e fornirà accesso alla risorsa. Dopo questo tempo, il link non funzionerà più e gli utenti che hanno utilizzato questo link perderanno l'accesso alla risorsa.",
"shareSeeOnce": "Potrai vedere solo questo linkonce. Assicurati di copiarlo.", "shareSeeOnce": "Potrai vedere questo link solo una volta. Assicurati di copiarlo.",
"shareAccessHint": "Chiunque abbia questo link può accedere alla risorsa. Condividilo con cura.", "shareAccessHint": "Chiunque abbia questo link può accedere alla risorsa. Condividilo con cura.",
"shareTokenUsage": "Vedi Utilizzo Token Di Accesso", "shareTokenUsage": "Vedi Utilizzo Token Di Accesso",
"createLink": "Crea Collegamento", "createLink": "Crea Collegamento",
@@ -144,8 +144,10 @@
"expires": "Scade", "expires": "Scade",
"never": "Mai", "never": "Mai",
"shareErrorSelectResource": "Seleziona una risorsa", "shareErrorSelectResource": "Seleziona una risorsa",
"resourceTitle": "Gestisci Risorse", "proxyResourceTitle": "Gestisci Risorse Pubbliche",
"resourceDescription": "Crea proxy sicuri per le tue applicazioni private", "proxyResourceDescription": "Creare e gestire risorse accessibili al pubblico tramite un browser web",
"clientResourceTitle": "Gestisci Risorse Private",
"clientResourceDescription": "Crea e gestisci risorse accessibili solo tramite un client connesso",
"resourcesSearch": "Cerca risorse...", "resourcesSearch": "Cerca risorse...",
"resourceAdd": "Aggiungi Risorsa", "resourceAdd": "Aggiungi Risorsa",
"resourceErrorDelte": "Errore nell'eliminare la risorsa", "resourceErrorDelte": "Errore nell'eliminare la risorsa",
@@ -155,9 +157,9 @@
"resourceMessageRemove": "Una volta rimossa, la risorsa non sarà più accessibile. Tutti gli obiettivi associati alla risorsa saranno rimossi.", "resourceMessageRemove": "Una volta rimossa, la risorsa non sarà più accessibile. Tutti gli obiettivi associati alla risorsa saranno rimossi.",
"resourceQuestionRemove": "Sei sicuro di voler rimuovere la risorsa dall'organizzazione?", "resourceQuestionRemove": "Sei sicuro di voler rimuovere la risorsa dall'organizzazione?",
"resourceHTTP": "Risorsa HTTPS", "resourceHTTP": "Risorsa HTTPS",
"resourceHTTPDescription": "Richieste proxy alla tua app tramite HTTPS utilizzando un sottodominio o un dominio di base.", "resourceHTTPDescription": "Richieste proxy per l'applicazione tramite HTTPS utilizzando un sottodominio o un dominio base.",
"resourceRaw": "Risorsa Raw TCP/UDP", "resourceRaw": "Risorsa Raw TCP/UDP",
"resourceRawDescription": "Richieste proxy alla tua app tramite TCP/UDP utilizzando un numero di porta.", "resourceRawDescription": "Le richieste proxy all'app tramite TCP/UDP utilizzando un numero di porta. Funziona solo quando i siti sono connessi ai nodi.",
"resourceCreate": "Crea Risorsa", "resourceCreate": "Crea Risorsa",
"resourceCreateDescription": "Segui i passaggi seguenti per creare una nuova risorsa", "resourceCreateDescription": "Segui i passaggi seguenti per creare una nuova risorsa",
"resourceSeeAll": "Vedi Tutte Le Risorse", "resourceSeeAll": "Vedi Tutte Le Risorse",
@@ -171,22 +173,22 @@
"noCountryFound": "Nessun paese trovato.", "noCountryFound": "Nessun paese trovato.",
"siteSelectionDescription": "Questo sito fornirà connettività all'obiettivo.", "siteSelectionDescription": "Questo sito fornirà connettività all'obiettivo.",
"resourceType": "Tipo Di Risorsa", "resourceType": "Tipo Di Risorsa",
"resourceTypeDescription": "Determina come vuoi accedere alla tua risorsa", "resourceTypeDescription": "Determinare come accedere alla risorsa",
"resourceHTTPSSettings": "Impostazioni HTTPS", "resourceHTTPSSettings": "Impostazioni HTTPS",
"resourceHTTPSSettingsDescription": "Configura come sarà possibile accedere alla tua risorsa su HTTPS", "resourceHTTPSSettingsDescription": "Configura come sarà possibile accedere alla risorsa su HTTPS",
"domainType": "Tipo Di Dominio", "domainType": "Tipo Di Dominio",
"subdomain": "Sottodominio", "subdomain": "Sottodominio",
"baseDomain": "Dominio Base", "baseDomain": "Dominio Base",
"subdomnainDescription": "Il sottodominio in cui la tua risorsa sarà accessibile.", "subdomnainDescription": "Il sottodominio in cui la risorsa sarà accessibile.",
"resourceRawSettings": "Impostazioni TCP/UDP", "resourceRawSettings": "Impostazioni TCP/UDP",
"resourceRawSettingsDescription": "Configura come accedere alla tua risorsa tramite TCP/UDP", "resourceRawSettingsDescription": "Configura come accedere alla risorsa tramite TCP/UDP",
"protocol": "Protocollo", "protocol": "Protocollo",
"protocolSelect": "Seleziona un protocollo", "protocolSelect": "Seleziona un protocollo",
"resourcePortNumber": "Numero Porta", "resourcePortNumber": "Numero Porta",
"resourcePortNumberDescription": "Il numero di porta esterna per le richieste di proxy.", "resourcePortNumberDescription": "Il numero di porta esterna per le richieste di proxy.",
"cancel": "Annulla", "cancel": "Annulla",
"resourceConfig": "Snippet Di Configurazione", "resourceConfig": "Snippet Di Configurazione",
"resourceConfigDescription": "Copia e incolla questi snippet di configurazione per configurare la tua risorsa TCP/UDP", "resourceConfigDescription": "Copia e incolla questi snippet di configurazione per configurare la risorsa TCP/UDP",
"resourceAddEntrypoints": "Traefik: Aggiungi Ingresso", "resourceAddEntrypoints": "Traefik: Aggiungi Ingresso",
"resourceExposePorts": "Gerbil: espone le porte in Docker componi", "resourceExposePorts": "Gerbil: espone le porte in Docker componi",
"resourceLearnRaw": "Scopri come configurare le risorse TCP/UDP", "resourceLearnRaw": "Scopri come configurare le risorse TCP/UDP",
@@ -202,14 +204,14 @@
"proxy": "Proxy", "proxy": "Proxy",
"internal": "Interno", "internal": "Interno",
"rules": "Regole", "rules": "Regole",
"resourceSettingDescription": "Configura le impostazioni sulla tua risorsa", "resourceSettingDescription": "Configura le impostazioni sulla risorsa",
"resourceSetting": "Impostazioni {resourceName}", "resourceSetting": "Impostazioni {resourceName}",
"alwaysAllow": "Consenti Sempre", "alwaysAllow": "Autenticazione Bypass",
"alwaysDeny": "Nega Sempre", "alwaysDeny": "Blocca Accesso",
"passToAuth": "Passa all'autenticazione", "passToAuth": "Passa all'autenticazione",
"orgSettingsDescription": "Configura le impostazioni generali della tua organizzazione", "orgSettingsDescription": "Configura le impostazioni dell'organizzazione",
"orgGeneralSettings": "Impostazioni Organizzazione", "orgGeneralSettings": "Impostazioni Organizzazione",
"orgGeneralSettingsDescription": "Gestisci i dettagli dell'organizzazione e la configurazione", "orgGeneralSettingsDescription": "Gestisci i dettagli e la configurazione dell'organizzazione",
"saveGeneralSettings": "Salva Impostazioni Generali", "saveGeneralSettings": "Salva Impostazioni Generali",
"saveSettings": "Salva Impostazioni", "saveSettings": "Salva Impostazioni",
"orgDangerZone": "Zona Pericolosa", "orgDangerZone": "Zona Pericolosa",
@@ -232,7 +234,7 @@
"orgMissing": "ID Organizzazione Mancante", "orgMissing": "ID Organizzazione Mancante",
"orgMissingMessage": "Impossibile rigenerare l'invito senza un ID organizzazione.", "orgMissingMessage": "Impossibile rigenerare l'invito senza un ID organizzazione.",
"accessUsersManage": "Gestisci Utenti", "accessUsersManage": "Gestisci Utenti",
"accessUsersDescription": "Invita gli utenti e aggiungili ai ruoli per gestire l'accesso alla tua organizzazione", "accessUsersDescription": "Invita e gestisci gli utenti con accesso a questa organizzazione",
"accessUsersSearch": "Cerca utenti...", "accessUsersSearch": "Cerca utenti...",
"accessUserCreate": "Crea Utente", "accessUserCreate": "Crea Utente",
"accessUserRemove": "Rimuovi Utente", "accessUserRemove": "Rimuovi Utente",
@@ -241,13 +243,13 @@
"role": "Ruolo", "role": "Ruolo",
"nameRequired": "Il nome è obbligatorio", "nameRequired": "Il nome è obbligatorio",
"accessRolesManage": "Gestisci Ruoli", "accessRolesManage": "Gestisci Ruoli",
"accessRolesDescription": "Configura i ruoli per gestire l'accesso alla tua organizzazione", "accessRolesDescription": "Creare e gestire ruoli per gli utenti nell'organizzazione",
"accessRolesSearch": "Ricerca ruoli...", "accessRolesSearch": "Ricerca ruoli...",
"accessRolesAdd": "Aggiungi Ruolo", "accessRolesAdd": "Aggiungi Ruolo",
"accessRoleDelete": "Elimina Ruolo", "accessRoleDelete": "Elimina Ruolo",
"description": "Descrizione", "description": "Descrizione",
"inviteTitle": "Inviti Aperti", "inviteTitle": "Inviti Aperti",
"inviteDescription": "Gestisci i tuoi inviti ad altri utenti", "inviteDescription": "Gestisci gli inviti per gli altri utenti a unirsi all'organizzazione",
"inviteSearch": "Cerca inviti...", "inviteSearch": "Cerca inviti...",
"minutes": "Minuti", "minutes": "Minuti",
"hours": "Ore", "hours": "Ore",
@@ -261,13 +263,13 @@
"apiKeysErrorCreate": "Errore nella creazione della chiave API", "apiKeysErrorCreate": "Errore nella creazione della chiave API",
"apiKeysErrorSetPermission": "Errore nell'impostazione dei permessi", "apiKeysErrorSetPermission": "Errore nell'impostazione dei permessi",
"apiKeysCreate": "Genera Chiave API", "apiKeysCreate": "Genera Chiave API",
"apiKeysCreateDescription": "Genera una nuova chiave API per la tua organizzazione", "apiKeysCreateDescription": "Genera una nuova chiave API per l'organizzazione",
"apiKeysGeneralSettings": "Permessi", "apiKeysGeneralSettings": "Permessi",
"apiKeysGeneralSettingsDescription": "Determina cosa può fare questa chiave API", "apiKeysGeneralSettingsDescription": "Determina cosa può fare questa chiave API",
"apiKeysList": "La Tua Chiave API", "apiKeysList": "Nuova Chiave Api",
"apiKeysSave": "Salva La Tua Chiave API", "apiKeysSave": "Salva la chiave API",
"apiKeysSaveDescription": "Potrai vederla solo una volta. Assicurati di copiarla in un luogo sicuro.", "apiKeysSaveDescription": "Potrai vederla solo una volta. Assicurati di copiarla in un luogo sicuro.",
"apiKeysInfo": "La tua chiave API è:", "apiKeysInfo": "La chiave API è:",
"apiKeysConfirmCopy": "Ho copiato la chiave API", "apiKeysConfirmCopy": "Ho copiato la chiave API",
"generate": "Genera", "generate": "Genera",
"done": "Fatto", "done": "Fatto",
@@ -424,7 +426,7 @@
"userCreated": "Utente creato", "userCreated": "Utente creato",
"userCreatedDescription": "L'utente è stato creato con successo.", "userCreatedDescription": "L'utente è stato creato con successo.",
"userTypeInternal": "Utente Interno", "userTypeInternal": "Utente Interno",
"userTypeInternalDescription": "Invita un utente a unirsi direttamente alla tua organizzazione.", "userTypeInternalDescription": "Invita un utente a unirsi direttamente all'organizzazione.",
"userTypeExternal": "Utente Esterno", "userTypeExternal": "Utente Esterno",
"userTypeExternalDescription": "Crea un utente con un provider di identità esterno.", "userTypeExternalDescription": "Crea un utente con un provider di identità esterno.",
"accessUserCreateDescription": "Segui i passaggi seguenti per creare un nuovo utente", "accessUserCreateDescription": "Segui i passaggi seguenti per creare un nuovo utente",
@@ -436,6 +438,16 @@
"inviteEmailSent": "Invia email di invito all'utente", "inviteEmailSent": "Invia email di invito all'utente",
"inviteValid": "Valido Per", "inviteValid": "Valido Per",
"selectDuration": "Seleziona durata", "selectDuration": "Seleziona durata",
"selectResource": "Seleziona Risorsa",
"filterByResource": "Filtra Per Risorsa",
"resetFilters": "Ripristina Filtri",
"totalBlocked": "Richieste Bloccate Da Pangolino",
"totalRequests": "Totale Richieste",
"requestsByCountry": "Richieste Per Paese",
"requestsByDay": "Richieste Per Giorno",
"blocked": "Bloccato",
"allowed": "Consentito",
"topCountries": "Paesi Principali",
"accessRoleSelect": "Seleziona ruolo", "accessRoleSelect": "Seleziona ruolo",
"inviteEmailSentDescription": "È stata inviata un'email all'utente con il link di accesso qui sotto. Devono accedere al link per accettare l'invito.", "inviteEmailSentDescription": "È stata inviata un'email all'utente con il link di accesso qui sotto. Devono accedere al link per accettare l'invito.",
"inviteSentDescription": "L'utente è stato invitato. Deve accedere al link qui sotto per accettare l'invito.", "inviteSentDescription": "L'utente è stato invitato. Deve accedere al link qui sotto per accettare l'invito.",
@@ -458,13 +470,13 @@
"accessControlsSubmit": "Salva Controlli di Accesso", "accessControlsSubmit": "Salva Controlli di Accesso",
"roles": "Ruoli", "roles": "Ruoli",
"accessUsersRoles": "Gestisci Utenti e Ruoli", "accessUsersRoles": "Gestisci Utenti e Ruoli",
"accessUsersRolesDescription": "Invita utenti e aggiungili ai ruoli per gestire l'accesso alla tua organizzazione", "accessUsersRolesDescription": "Invita gli utenti e aggiungili ai ruoli per gestire l'accesso all'organizzazione",
"key": "Chiave", "key": "Chiave",
"createdAt": "Creato Il", "createdAt": "Creato Il",
"proxyErrorInvalidHeader": "Valore dell'intestazione Host personalizzata non valido. Usa il formato nome dominio o salva vuoto per rimuovere l'intestazione Host personalizzata.", "proxyErrorInvalidHeader": "Valore dell'intestazione Host personalizzata non valido. Usa il formato nome dominio o salva vuoto per rimuovere l'intestazione Host personalizzata.",
"proxyErrorTls": "Nome Server TLS non valido. Usa il formato nome dominio o salva vuoto per rimuovere il Nome Server TLS.", "proxyErrorTls": "Nome Server TLS non valido. Usa il formato nome dominio o salva vuoto per rimuovere il Nome Server TLS.",
"proxyEnableSSL": "Abilita SSL", "proxyEnableSSL": "Abilita SSL",
"proxyEnableSSLDescription": "Abilita la crittografia SSL/TLS per connessioni HTTPS sicure ai tuoi obiettivi.", "proxyEnableSSLDescription": "Abilita la crittografia SSL/TLS per connessioni HTTPS sicure agli obiettivi.",
"target": "Target", "target": "Target",
"configureTarget": "Configura Obiettivi", "configureTarget": "Configura Obiettivi",
"targetErrorFetch": "Impossibile recuperare i target", "targetErrorFetch": "Impossibile recuperare i target",
@@ -480,29 +492,29 @@
"targetsErrorUpdate": "Impossibile aggiornare i target", "targetsErrorUpdate": "Impossibile aggiornare i target",
"targetsErrorUpdateDescription": "Si è verificato un errore durante l'aggiornamento dei target", "targetsErrorUpdateDescription": "Si è verificato un errore durante l'aggiornamento dei target",
"targetTlsUpdate": "Impostazioni TLS aggiornate", "targetTlsUpdate": "Impostazioni TLS aggiornate",
"targetTlsUpdateDescription": "Le tue impostazioni TLS sono state aggiornate con successo", "targetTlsUpdateDescription": "Le impostazioni TLS sono state aggiornate correttamente",
"targetErrorTlsUpdate": "Impossibile aggiornare le impostazioni TLS", "targetErrorTlsUpdate": "Impossibile aggiornare le impostazioni TLS",
"targetErrorTlsUpdateDescription": "Si è verificato un errore durante l'aggiornamento delle impostazioni TLS", "targetErrorTlsUpdateDescription": "Si è verificato un errore durante l'aggiornamento delle impostazioni TLS",
"proxyUpdated": "Impostazioni proxy aggiornate", "proxyUpdated": "Impostazioni proxy aggiornate",
"proxyUpdatedDescription": "Le tue impostazioni proxy sono state aggiornate con successo", "proxyUpdatedDescription": "Le impostazioni del proxy sono state aggiornate con successo",
"proxyErrorUpdate": "Impossibile aggiornare le impostazioni proxy", "proxyErrorUpdate": "Impossibile aggiornare le impostazioni proxy",
"proxyErrorUpdateDescription": "Si è verificato un errore durante l'aggiornamento delle impostazioni proxy", "proxyErrorUpdateDescription": "Si è verificato un errore durante l'aggiornamento delle impostazioni proxy",
"targetAddr": "IP / Nome host", "targetAddr": "Host",
"targetPort": "Porta", "targetPort": "Porta",
"targetProtocol": "Protocollo", "targetProtocol": "Protocollo",
"targetTlsSettings": "Configurazione Connessione Sicura", "targetTlsSettings": "Configurazione Connessione Sicura",
"targetTlsSettingsDescription": "Configura le impostazioni SSL/TLS per la tua risorsa", "targetTlsSettingsDescription": "Configura le impostazioni SSL/TLS per la risorsa",
"targetTlsSettingsAdvanced": "Impostazioni TLS Avanzate", "targetTlsSettingsAdvanced": "Impostazioni TLS Avanzate",
"targetTlsSni": "Nome Server Tls", "targetTlsSni": "Nome Server Tls",
"targetTlsSniDescription": "Il Nome Server TLS da usare per SNI. Lascia vuoto per usare quello predefinito.", "targetTlsSniDescription": "Il Nome Server TLS da usare per SNI. Lascia vuoto per usare quello predefinito.",
"targetTlsSubmit": "Salva Impostazioni", "targetTlsSubmit": "Salva Impostazioni",
"targets": "Configurazione Target", "targets": "Configurazione Target",
"targetsDescription": "Configura i target per instradare il traffico ai tuoi servizi backend", "targetsDescription": "Impostare obiettivi per instradare il traffico verso i servizi di backend",
"targetStickySessions": "Abilita Sessioni Persistenti", "targetStickySessions": "Abilita Sessioni Persistenti",
"targetStickySessionsDescription": "Mantieni le connessioni sullo stesso target backend per l'intera sessione.", "targetStickySessionsDescription": "Mantieni le connessioni sullo stesso target backend per l'intera sessione.",
"methodSelect": "Seleziona metodo", "methodSelect": "Seleziona metodo",
"targetSubmit": "Aggiungi Target", "targetSubmit": "Aggiungi Target",
"targetNoOne": "Questa risorsa non ha bersagli. Aggiungi un obiettivo per configurare dove inviare le richieste al tuo backend.", "targetNoOne": "Questa risorsa non ha destinazioni. Aggiungi un obiettivo per configurare dove inviare richieste al backend.",
"targetNoOneDescription": "L'aggiunta di più di un target abiliterà il bilanciamento del carico.", "targetNoOneDescription": "L'aggiunta di più di un target abiliterà il bilanciamento del carico.",
"targetsSubmit": "Salva Target", "targetsSubmit": "Salva Target",
"addTarget": "Aggiungi Target", "addTarget": "Aggiungi Target",
@@ -516,9 +528,11 @@
"targetCreatedDescription": "L'obiettivo è stato creato con successo", "targetCreatedDescription": "L'obiettivo è stato creato con successo",
"targetErrorCreate": "Impossibile creare l'obiettivo", "targetErrorCreate": "Impossibile creare l'obiettivo",
"targetErrorCreateDescription": "Si è verificato un errore durante la creazione del target", "targetErrorCreateDescription": "Si è verificato un errore durante la creazione del target",
"tlsServerName": "Nome Server Tls",
"tlsServerNameDescription": "Il nome del server TLS da usare per SNI",
"save": "Salva", "save": "Salva",
"proxyAdditional": "Impostazioni Proxy Aggiuntive", "proxyAdditional": "Impostazioni Proxy Aggiuntive",
"proxyAdditionalDescription": "Configura come la tua risorsa gestisce le impostazioni proxy", "proxyAdditionalDescription": "Configura come la risorsa gestisce le impostazioni del proxy",
"proxyCustomHeader": "Intestazione Host Personalizzata", "proxyCustomHeader": "Intestazione Host Personalizzata",
"proxyCustomHeaderDescription": "L'intestazione host da impostare durante il proxy delle richieste. Lascia vuoto per usare quella predefinita.", "proxyCustomHeaderDescription": "L'intestazione host da impostare durante il proxy delle richieste. Lascia vuoto per usare quella predefinita.",
"proxyAdditionalSubmit": "Salva Impostazioni Proxy", "proxyAdditionalSubmit": "Salva Impostazioni Proxy",
@@ -558,7 +572,7 @@
"rulesMatchType": "Tipo di Corrispondenza", "rulesMatchType": "Tipo di Corrispondenza",
"value": "Valore", "value": "Valore",
"rulesAbout": "Informazioni sulle Regole", "rulesAbout": "Informazioni sulle Regole",
"rulesAboutDescription": "Le regole ti permettono di controllare l'accesso alla tua risorsa in base a una serie di criteri. Puoi creare regole per consentire o negare l'accesso basato su indirizzo IP o percorso URL.", "rulesAboutDescription": "Le regole consentono di controllare l'accesso alla risorsa in base a una serie di criteri. È possibile creare regole per consentire o negare l'accesso in base all'indirizzo IP o al percorso URL.",
"rulesActions": "Azioni", "rulesActions": "Azioni",
"rulesActionAlwaysAllow": "Consenti Sempre: Ignora tutti i metodi di autenticazione", "rulesActionAlwaysAllow": "Consenti Sempre: Ignora tutti i metodi di autenticazione",
"rulesActionAlwaysDeny": "Nega Sempre: Blocca tutte le richieste; nessuna autenticazione può essere tentata", "rulesActionAlwaysDeny": "Nega Sempre: Blocca tutte le richieste; nessuna autenticazione può essere tentata",
@@ -570,7 +584,7 @@
"rulesEnable": "Abilita Regole", "rulesEnable": "Abilita Regole",
"rulesEnableDescription": "Abilita o disabilita la valutazione delle regole per questa risorsa", "rulesEnableDescription": "Abilita o disabilita la valutazione delle regole per questa risorsa",
"rulesResource": "Configurazione Regole Risorsa", "rulesResource": "Configurazione Regole Risorsa",
"rulesResourceDescription": "Configura le regole per controllare l'accesso alla tua risorsa", "rulesResourceDescription": "Configura le regole per controllare l'accesso alla risorsa",
"ruleSubmit": "Aggiungi Regola", "ruleSubmit": "Aggiungi Regola",
"rulesNoOne": "Nessuna regola. Aggiungi una regola usando il modulo.", "rulesNoOne": "Nessuna regola. Aggiungi una regola usando il modulo.",
"rulesOrder": "Le regole sono valutate per priorità in ordine crescente.", "rulesOrder": "Le regole sono valutate per priorità in ordine crescente.",
@@ -586,7 +600,7 @@
"none": "Nessuno", "none": "Nessuno",
"unknown": "Sconosciuto", "unknown": "Sconosciuto",
"resources": "Risorse", "resources": "Risorse",
"resourcesDescription": "Le risorse sono proxy per le applicazioni in esecuzione sulla tua rete privata. Crea una risorsa per qualsiasi servizio HTTP/HTTPS o TCP/UDP raw sulla tua rete privata. Ogni risorsa deve essere collegata a un sito per abilitare la connettività privata e sicura attraverso un tunnel WireGuard crittografato.", "resourcesDescription": "Le risorse sono proxy per applicazioni in esecuzione sulla rete privata. Crea una risorsa per qualsiasi servizio HTTP/HTTPS o TCP/UDP grezzo sulla tua rete privata. Ogni risorsa deve essere collegata a un sito per abilitare una connettività privata e sicura attraverso un tunnel WireGuard crittografato.",
"resourcesWireGuardConnect": "Connettività sicura con crittografia WireGuard", "resourcesWireGuardConnect": "Connettività sicura con crittografia WireGuard",
"resourcesMultipleAuthenticationMethods": "Configura molteplici metodi di autenticazione", "resourcesMultipleAuthenticationMethods": "Configura molteplici metodi di autenticazione",
"resourcesUsersRolesAccess": "Controllo accessi basato su utenti e ruoli", "resourcesUsersRolesAccess": "Controllo accessi basato su utenti e ruoli",
@@ -597,7 +611,7 @@
"resourceSelect": "Seleziona risorsa", "resourceSelect": "Seleziona risorsa",
"shareLinks": "Link di Condivisione", "shareLinks": "Link di Condivisione",
"share": "Link Condivisibili", "share": "Link Condivisibili",
"shareDescription2": "Crea link condivisibili per le tue risorse. I link forniscono accesso temporaneo o illimitato alla tua risorsa. Puoi configurare la durata di scadenza del link quando lo crei.", "shareDescription2": "Crea link condivisibili alle risorse. I link forniscono un accesso temporaneo o illimitato alla tua risorsa. È possibile configurare la durata di scadenza del collegamento quando ne viene creato uno.",
"shareEasyCreate": "Facile da creare e condividere", "shareEasyCreate": "Facile da creare e condividere",
"shareConfigurableExpirationDuration": "Durata di scadenza configurabile", "shareConfigurableExpirationDuration": "Durata di scadenza configurabile",
"shareSecureAndRevocable": "Sicuro e revocabile", "shareSecureAndRevocable": "Sicuro e revocabile",
@@ -607,19 +621,19 @@
"unknownCommand": "Comando sconosciuto", "unknownCommand": "Comando sconosciuto",
"newtErrorFetchReleases": "Impossibile recuperare le informazioni sulla versione: {err}", "newtErrorFetchReleases": "Impossibile recuperare le informazioni sulla versione: {err}",
"newtErrorFetchLatest": "Errore nel recupero dell'ultima versione: {err}", "newtErrorFetchLatest": "Errore nel recupero dell'ultima versione: {err}",
"newtEndpoint": "Endpoint Newt", "newtEndpoint": "Endpoint",
"newtId": "ID Newt", "newtId": "ID",
"newtSecretKey": "Chiave Segreta Newt", "newtSecretKey": "Segreto",
"architecture": "Architettura", "architecture": "Architettura",
"sites": "Siti", "sites": "Siti",
"siteWgAnyClients": "Usa qualsiasi client WireGuard per connetterti. Dovrai indirizzare le tue risorse interne usando l'IP del peer.", "siteWgAnyClients": "Usa qualsiasi client WireGuard per connetterti. Dovrai indirizzare le risorse interne utilizzando l'IP del peer.",
"siteWgCompatibleAllClients": "Compatibile con tutti i client WireGuard", "siteWgCompatibleAllClients": "Compatibile con tutti i client WireGuard",
"siteWgManualConfigurationRequired": "Configurazione manuale richiesta", "siteWgManualConfigurationRequired": "Configurazione manuale richiesta",
"userErrorNotAdminOrOwner": "L'utente non è un amministratore o proprietario", "userErrorNotAdminOrOwner": "L'utente non è un amministratore o proprietario",
"pangolinSettings": "Impostazioni - Pangolin", "pangolinSettings": "Impostazioni - Pangolin",
"accessRoleYour": "Il tuo ruolo:", "accessRoleYour": "Il tuo ruolo:",
"accessRoleSelect2": "Seleziona un ruolo", "accessRoleSelect2": "Seleziona ruoli",
"accessUserSelect": "Seleziona un utente", "accessUserSelect": "Seleziona utenti",
"otpEmailEnter": "Inserisci un'email", "otpEmailEnter": "Inserisci un'email",
"otpEmailEnterDescription": "Premi invio per aggiungere un'email dopo averla digitata nel campo di input.", "otpEmailEnterDescription": "Premi invio per aggiungere un'email dopo averla digitata nel campo di input.",
"otpEmailErrorInvalid": "Indirizzo email non valido. Il carattere jolly (*) deve essere l'intera parte locale.", "otpEmailErrorInvalid": "Indirizzo email non valido. Il carattere jolly (*) deve essere l'intera parte locale.",
@@ -671,7 +685,7 @@
"resourcePincodeSetupTitle": "Imposta Codice PIN", "resourcePincodeSetupTitle": "Imposta Codice PIN",
"resourcePincodeSetupTitleDescription": "Imposta un codice PIN per proteggere questa risorsa", "resourcePincodeSetupTitleDescription": "Imposta un codice PIN per proteggere questa risorsa",
"resourceRoleDescription": "Gli amministratori possono sempre accedere a questa risorsa.", "resourceRoleDescription": "Gli amministratori possono sempre accedere a questa risorsa.",
"resourceUsersRoles": "Utenti e Ruoli", "resourceUsersRoles": "Controlli di Accesso",
"resourceUsersRolesDescription": "Configura quali utenti e ruoli possono visitare questa risorsa", "resourceUsersRolesDescription": "Configura quali utenti e ruoli possono visitare questa risorsa",
"resourceUsersRolesSubmit": "Salva Utenti e Ruoli", "resourceUsersRolesSubmit": "Salva Utenti e Ruoli",
"resourceWhitelistSave": "Salvato con successo", "resourceWhitelistSave": "Salvato con successo",
@@ -702,6 +716,7 @@
"resourceTransferSubmit": "Trasferisci Risorsa", "resourceTransferSubmit": "Trasferisci Risorsa",
"siteDestination": "Sito Di Destinazione", "siteDestination": "Sito Di Destinazione",
"searchSites": "Cerca siti", "searchSites": "Cerca siti",
"countries": "Paesi",
"accessRoleCreate": "Crea Ruolo", "accessRoleCreate": "Crea Ruolo",
"accessRoleCreateDescription": "Crea un nuovo ruolo per raggruppare gli utenti e gestire i loro permessi.", "accessRoleCreateDescription": "Crea un nuovo ruolo per raggruppare gli utenti e gestire i loro permessi.",
"accessRoleCreateSubmit": "Crea Ruolo", "accessRoleCreateSubmit": "Crea Ruolo",
@@ -766,15 +781,15 @@
"idpOidcConfigure": "Configurazione OAuth2/OIDC", "idpOidcConfigure": "Configurazione OAuth2/OIDC",
"idpOidcConfigureDescription": "Configura gli endpoint e le credenziali del provider OAuth2/OIDC", "idpOidcConfigureDescription": "Configura gli endpoint e le credenziali del provider OAuth2/OIDC",
"idpClientId": "ID Client", "idpClientId": "ID Client",
"idpClientIdDescription": "L'ID client OAuth2 dal tuo provider di identità", "idpClientIdDescription": "L'ID client OAuth2 dal provider di identità",
"idpClientSecret": "Segreto Client", "idpClientSecret": "Segreto Client",
"idpClientSecretDescription": "Il segreto client OAuth2 dal tuo provider di identità", "idpClientSecretDescription": "Il segreto del client OAuth2 dal provider di identità",
"idpAuthUrl": "URL di Autorizzazione", "idpAuthUrl": "URL di Autorizzazione",
"idpAuthUrlDescription": "L'URL dell'endpoint di autorizzazione OAuth2", "idpAuthUrlDescription": "L'URL dell'endpoint di autorizzazione OAuth2",
"idpTokenUrl": "URL del Token", "idpTokenUrl": "URL del Token",
"idpTokenUrlDescription": "L'URL dell'endpoint del token OAuth2", "idpTokenUrlDescription": "L'URL dell'endpoint del token OAuth2",
"idpOidcConfigureAlert": "Informazioni Importanti", "idpOidcConfigureAlert": "Informazioni Importanti",
"idpOidcConfigureAlertDescription": "Dopo aver creato il provider di identità, dovrai configurare l'URL di callback nelle impostazioni del tuo provider di identità. L'URL di callback verrà fornito dopo la creazione riuscita.", "idpOidcConfigureAlertDescription": "Dopo aver creato il provider di identità, è necessario configurare l'URL di callback nelle impostazioni del provider di identità. L'URL di callback verrà fornito dopo la creazione riuscita.",
"idpToken": "Configurazione Token", "idpToken": "Configurazione Token",
"idpTokenDescription": "Configura come estrarre le informazioni dell'utente dal token ID", "idpTokenDescription": "Configura come estrarre le informazioni dell'utente dal token ID",
"idpJmespathAbout": "Informazioni su JMESPath", "idpJmespathAbout": "Informazioni su JMESPath",
@@ -791,7 +806,7 @@
"idpSubmit": "Crea Provider di Identità", "idpSubmit": "Crea Provider di Identità",
"orgPolicies": "Politiche Organizzazione", "orgPolicies": "Politiche Organizzazione",
"idpSettings": "Impostazioni {idpName}", "idpSettings": "Impostazioni {idpName}",
"idpCreateSettingsDescription": "Configura le impostazioni per il tuo provider di identità", "idpCreateSettingsDescription": "Configura le impostazioni per il provider di identità",
"roleMapping": "Mappatura Ruoli", "roleMapping": "Mappatura Ruoli",
"orgMapping": "Mappatura Organizzazione", "orgMapping": "Mappatura Organizzazione",
"orgPoliciesSearch": "Cerca politiche organizzazione...", "orgPoliciesSearch": "Cerca politiche organizzazione...",
@@ -826,7 +841,7 @@
"idpUpdatedDescription": "Provider di identità aggiornato con successo", "idpUpdatedDescription": "Provider di identità aggiornato con successo",
"redirectUrl": "URL di Reindirizzamento", "redirectUrl": "URL di Reindirizzamento",
"redirectUrlAbout": "Informazioni sull'URL di Reindirizzamento", "redirectUrlAbout": "Informazioni sull'URL di Reindirizzamento",
"redirectUrlAboutDescription": "Questo è l'URL a cui gli utenti verranno reindirizzati dopo l'autenticazione. Devi configurare questo URL nelle impostazioni del tuo provider di identità.", "redirectUrlAboutDescription": "Questo è l'URL a cui gli utenti saranno reindirizzati dopo l'autenticazione. È necessario configurare questo URL nelle impostazioni del provider di identità.",
"pangolinAuth": "Autenticazione - Pangolina", "pangolinAuth": "Autenticazione - Pangolina",
"verificationCodeLengthRequirements": "Il tuo codice di verifica deve essere di 8 caratteri.", "verificationCodeLengthRequirements": "Il tuo codice di verifica deve essere di 8 caratteri.",
"errorOccurred": "Si è verificato un errore", "errorOccurred": "Si è verificato un errore",
@@ -909,6 +924,10 @@
"passwordResetSent": "Invieremo un codice di reset della password a questo indirizzo email.", "passwordResetSent": "Invieremo un codice di reset della password a questo indirizzo email.",
"passwordResetCode": "Codice di Reset", "passwordResetCode": "Codice di Reset",
"passwordResetCodeDescription": "Controlla la tua email per il codice di reset.", "passwordResetCodeDescription": "Controlla la tua email per il codice di reset.",
"generatePasswordResetCode": "Genera Codice Di Ripristino Password",
"passwordResetCodeGenerated": "Codice Di Reimpostazione Password Generato",
"passwordResetCodeGeneratedDescription": "Condividi questo codice con l'utente. Possono usarlo per reimpostare la password.",
"passwordResetUrl": "Reset URL",
"passwordNew": "Nuova Password", "passwordNew": "Nuova Password",
"passwordNewConfirm": "Conferma Nuova Password", "passwordNewConfirm": "Conferma Nuova Password",
"changePassword": "Cambia Password", "changePassword": "Cambia Password",
@@ -926,6 +945,9 @@
"pincodeAuth": "Codice Autenticatore", "pincodeAuth": "Codice Autenticatore",
"pincodeSubmit2": "Invia Codice", "pincodeSubmit2": "Invia Codice",
"passwordResetSubmit": "Richiedi Reset", "passwordResetSubmit": "Richiedi Reset",
"passwordResetAlreadyHaveCode": "Inserisci Il Codice Di Ripristino Della Password",
"passwordResetSmtpRequired": "Si prega di contattare l'amministratore",
"passwordResetSmtpRequiredDescription": "Per reimpostare la password è necessario un codice di reimpostazione della password. Si prega di contattare l'amministratore per assistenza.",
"passwordBack": "Torna alla Password", "passwordBack": "Torna alla Password",
"loginBack": "Torna al login", "loginBack": "Torna al login",
"signup": "Registrati", "signup": "Registrati",
@@ -1091,12 +1113,15 @@
"actionListSiteResources": "Elenca Risorse del Sito", "actionListSiteResources": "Elenca Risorse del Sito",
"actionUpdateSiteResource": "Aggiorna Risorsa del Sito", "actionUpdateSiteResource": "Aggiorna Risorsa del Sito",
"actionListInvitations": "Elenco Inviti", "actionListInvitations": "Elenco Inviti",
"actionExportLogs": "Esporta Log",
"actionViewLogs": "Visualizza Log",
"noneSelected": "Nessuna selezione", "noneSelected": "Nessuna selezione",
"orgNotFound2": "Nessuna organizzazione trovata.", "orgNotFound2": "Nessuna organizzazione trovata.",
"searchProgress": "Ricerca...", "searchProgress": "Ricerca...",
"create": "Crea", "create": "Crea",
"orgs": "Organizzazioni", "orgs": "Organizzazioni",
"loginError": "Si è verificato un errore durante l'accesso", "loginError": "Si è verificato un errore durante l'accesso",
"loginRequiredForDevice": "È richiesto il login per autenticare il dispositivo.",
"passwordForgot": "Password dimenticata?", "passwordForgot": "Password dimenticata?",
"otpAuth": "Autenticazione a Due Fattori", "otpAuth": "Autenticazione a Due Fattori",
"otpAuthDescription": "Inserisci il codice dalla tua app di autenticazione o uno dei tuoi codici di backup monouso.", "otpAuthDescription": "Inserisci il codice dalla tua app di autenticazione o uno dei tuoi codici di backup monouso.",
@@ -1151,37 +1176,47 @@
"sidebarHome": "Home", "sidebarHome": "Home",
"sidebarSites": "Siti", "sidebarSites": "Siti",
"sidebarResources": "Risorse", "sidebarResources": "Risorse",
"sidebarProxyResources": "Pubblico",
"sidebarClientResources": "Privato",
"sidebarAccessControl": "Controllo Accesso", "sidebarAccessControl": "Controllo Accesso",
"sidebarLogsAndAnalytics": "Registri E Analisi",
"sidebarUsers": "Utenti", "sidebarUsers": "Utenti",
"sidebarAdmin": "Amministratore",
"sidebarInvitations": "Inviti", "sidebarInvitations": "Inviti",
"sidebarRoles": "Ruoli", "sidebarRoles": "Ruoli",
"sidebarShareableLinks": "Collegamenti Condividibili", "sidebarShareableLinks": "Collegamenti",
"sidebarApiKeys": "Chiavi API", "sidebarApiKeys": "Chiavi API",
"sidebarSettings": "Impostazioni", "sidebarSettings": "Impostazioni",
"sidebarAllUsers": "Tutti Gli Utenti", "sidebarAllUsers": "Tutti Gli Utenti",
"sidebarIdentityProviders": "Fornitori Di Identità", "sidebarIdentityProviders": "Fornitori Di Identità",
"sidebarLicense": "Licenza", "sidebarLicense": "Licenza",
"sidebarClients": "Client", "sidebarClients": "Client",
"sidebarUserDevices": "Utenti",
"sidebarMachineClients": "Macchine",
"sidebarDomains": "Domini", "sidebarDomains": "Domini",
"sidebarGeneral": "Generale",
"sidebarLogAndAnalytics": "Log & Analytics",
"sidebarBluePrints": "Progetti", "sidebarBluePrints": "Progetti",
"sidebarOrganization": "Organizzazione",
"sidebarLogsAnalytics": "Analisi",
"blueprints": "Progetti", "blueprints": "Progetti",
"blueprintsDescription": "I progetti sono configurazioni YAML dichiarative che definiscono le tue risorse e le loro impostazioni", "blueprintsDescription": "Applica le configurazioni dichiarative e visualizza le partite precedenti",
"blueprintAdd": "Aggiungi Progetto", "blueprintAdd": "Aggiungi Progetto",
"blueprintGoBack": "Vedi tutti i progetti", "blueprintGoBack": "Vedi tutti i progetti",
"blueprintCreate": "Crea Progetto", "blueprintCreate": "Crea Progetto",
"blueprintCreateDescription2": "Segui i passaggi qui sotto per creare e applicare un nuovo progetto", "blueprintCreateDescription2": "Segui i passaggi qui sotto per creare e applicare un nuovo progetto",
"blueprintDetails": "Dettagli progetto", "blueprintDetails": "Dettagli Progetto",
"blueprintDetailsDescription": "Vedi i dettagli dell'esecuzione del progetto", "blueprintDetailsDescription": "Vedere il risultato del progetto applicato e gli eventuali errori verificatisi",
"blueprintInfo": "Informazioni Sul Progetto", "blueprintInfo": "Informazioni Sul Progetto",
"message": "Messaggio", "message": "Messaggio",
"blueprintContentsDescription": "Definisci il contenuto di YAML che descrive la tua infrastruttura", "blueprintContentsDescription": "Definire il contenuto YAML che descrive l'infrastruttura",
"blueprintErrorCreateDescription": "Si è verificato un errore durante l'applicazione del progetto", "blueprintErrorCreateDescription": "Si è verificato un errore durante l'applicazione del progetto",
"blueprintErrorCreate": "Errore nella creazione del progetto", "blueprintErrorCreate": "Errore nella creazione del progetto",
"searchBlueprintProgress": "Cerca progetti...", "searchBlueprintProgress": "Cerca progetti...",
"appliedAt": "Applicato Il", "appliedAt": "Applicato Il",
"source": "Fonte", "source": "Fonte",
"contents": "Contenuti", "contents": "Contenuti",
"parsedContents": "Sommario Analizzato", "parsedContents": "Sommario Analizzato (Solo Lettura)",
"enableDockerSocket": "Abilita Progetto Docker", "enableDockerSocket": "Abilita Progetto Docker",
"enableDockerSocketDescription": "Abilita la raschiatura dell'etichetta Docker Socket per le etichette dei progetti. Il percorso del socket deve essere fornito a Newt.", "enableDockerSocketDescription": "Abilita la raschiatura dell'etichetta Docker Socket per le etichette dei progetti. Il percorso del socket deve essere fornito a Newt.",
"enableDockerSocketLink": "Scopri di più", "enableDockerSocketLink": "Scopri di più",
@@ -1230,15 +1265,15 @@
"loading": "Caricamento", "loading": "Caricamento",
"restart": "Riavvia", "restart": "Riavvia",
"domains": "Domini", "domains": "Domini",
"domainsDescription": "Gestisci domini per la tua organizzazione", "domainsDescription": "Creare e gestire i domini disponibili nell'organizzazione",
"domainsSearch": "Cerca domini...", "domainsSearch": "Cerca domini...",
"domainAdd": "Aggiungi Dominio", "domainAdd": "Aggiungi Dominio",
"domainAddDescription": "Registra un nuovo dominio con la tua organizzazione", "domainAddDescription": "Registra un nuovo dominio con all'organizzazione",
"domainCreate": "Crea Dominio", "domainCreate": "Crea Dominio",
"domainCreatedDescription": "Dominio creato con successo", "domainCreatedDescription": "Dominio creato con successo",
"domainDeletedDescription": "Dominio eliminato con successo", "domainDeletedDescription": "Dominio eliminato con successo",
"domainQuestionRemove": "Sei sicuro di voler rimuovere il dominio dal tuo account?", "domainQuestionRemove": "Sei sicuro di voler rimuovere il dominio?",
"domainMessageRemove": "Una volta rimosso, il dominio non sarà più associato al tuo account.", "domainMessageRemove": "Una volta rimosso, il dominio non sarà più associato all'organizzazione.",
"domainConfirmDelete": "Conferma Eliminazione Dominio", "domainConfirmDelete": "Conferma Eliminazione Dominio",
"domainDelete": "Elimina Dominio", "domainDelete": "Elimina Dominio",
"domain": "Dominio", "domain": "Dominio",
@@ -1257,7 +1292,7 @@
"pending": "In attesa", "pending": "In attesa",
"sidebarBilling": "Fatturazione", "sidebarBilling": "Fatturazione",
"billing": "Fatturazione", "billing": "Fatturazione",
"orgBillingDescription": "Gestisci le tue informazioni di fatturazione e abbonamenti", "orgBillingDescription": "Gestisci le informazioni di fatturazione e gli abbonamenti",
"github": "GitHub", "github": "GitHub",
"pangolinHosted": "Pangolin Hosted", "pangolinHosted": "Pangolin Hosted",
"fossorial": "Fossoriale", "fossorial": "Fossoriale",
@@ -1279,6 +1314,15 @@
"settingsErrorUpdateDescription": "Si è verificato un errore durante l'aggiornamento delle impostazioni", "settingsErrorUpdateDescription": "Si è verificato un errore durante l'aggiornamento delle impostazioni",
"sidebarCollapse": "Comprimi", "sidebarCollapse": "Comprimi",
"sidebarExpand": "Espandi", "sidebarExpand": "Espandi",
"productUpdateMoreInfo": "{noOfUpdates} altri aggiornamenti",
"productUpdateInfo": "{noOfUpdates} aggiornamenti",
"productUpdateWhatsNew": "Novità",
"productUpdateTitle": "Aggiornamenti Prodotto",
"productUpdateEmpty": "Nessun aggiornamento",
"dismissAll": "Ignora tutto",
"pangolinUpdateAvailable": "Aggiornamento Disponibile",
"pangolinUpdateAvailableInfo": "La versione {version} è pronta per l'installazione",
"pangolinUpdateAvailableReleaseNotes": "Visualizza Note Di Rilascio",
"newtUpdateAvailable": "Aggiornamento Disponibile", "newtUpdateAvailable": "Aggiornamento Disponibile",
"newtUpdateAvailableInfo": "È disponibile una nuova versione di Newt. Si prega di aggiornare all'ultima versione per la migliore esperienza.", "newtUpdateAvailableInfo": "È disponibile una nuova versione di Newt. Si prega di aggiornare all'ultima versione per la migliore esperienza.",
"domainPickerEnterDomain": "Dominio", "domainPickerEnterDomain": "Dominio",
@@ -1291,7 +1335,7 @@
"domainPickerSortAsc": "A-Z", "domainPickerSortAsc": "A-Z",
"domainPickerSortDesc": "Z-A", "domainPickerSortDesc": "Z-A",
"domainPickerCheckingAvailability": "Controllando la disponibilità...", "domainPickerCheckingAvailability": "Controllando la disponibilità...",
"domainPickerNoMatchingDomains": "Nessun dominio corrispondente trovato. Prova un dominio diverso o verifica le impostazioni del dominio della tua organizzazione.", "domainPickerNoMatchingDomains": "Nessun dominio corrispondente trovato. Prova un dominio diverso o controlla le impostazioni del dominio dell'organizzazione.",
"domainPickerOrganizationDomains": "Domini dell'Organizzazione", "domainPickerOrganizationDomains": "Domini dell'Organizzazione",
"domainPickerProvidedDomains": "Domini Forniti", "domainPickerProvidedDomains": "Domini Forniti",
"domainPickerSubdomain": "Sottodominio: {subdomain}", "domainPickerSubdomain": "Sottodominio: {subdomain}",
@@ -1336,9 +1380,9 @@
"billingPortalError": "Errore del Portale", "billingPortalError": "Errore del Portale",
"billingDataUsageInfo": "Hai addebitato tutti i dati trasferiti attraverso i tunnel sicuri quando sei connesso al cloud. Questo include sia il traffico in entrata e in uscita attraverso tutti i siti. Quando si raggiunge il limite, i siti si disconnetteranno fino a quando non si aggiorna il piano o si riduce l'utilizzo. I dati non vengono caricati quando si utilizzano nodi.", "billingDataUsageInfo": "Hai addebitato tutti i dati trasferiti attraverso i tunnel sicuri quando sei connesso al cloud. Questo include sia il traffico in entrata e in uscita attraverso tutti i siti. Quando si raggiunge il limite, i siti si disconnetteranno fino a quando non si aggiorna il piano o si riduce l'utilizzo. I dati non vengono caricati quando si utilizzano nodi.",
"billingOnlineTimeInfo": "Ti viene addebitato in base al tempo in cui i tuoi siti rimangono connessi al cloud. Ad esempio, 44,640 minuti è uguale a un sito in esecuzione 24/7 per un mese intero. Quando raggiungi il tuo limite, i tuoi siti si disconnetteranno fino a quando non aggiorni il tuo piano o riduci l'utilizzo. Il tempo non viene caricato quando si usano i nodi.", "billingOnlineTimeInfo": "Ti viene addebitato in base al tempo in cui i tuoi siti rimangono connessi al cloud. Ad esempio, 44,640 minuti è uguale a un sito in esecuzione 24/7 per un mese intero. Quando raggiungi il tuo limite, i tuoi siti si disconnetteranno fino a quando non aggiorni il tuo piano o riduci l'utilizzo. Il tempo non viene caricato quando si usano i nodi.",
"billingUsersInfo": "Sei addebitato per ogni utente nella tua organizzazione. La fatturazione viene calcolata giornalmente in base al numero di account utente attivi nella tua organizzazione.", "billingUsersInfo": "Sei addebitato per ogni utente nell'organizzazione. La fatturazione viene calcolata quotidianamente in base al numero di account utente attivi nel tuo org.",
"billingDomainInfo": "Sei addebitato per ogni dominio nella tua organizzazione. La fatturazione viene calcolata giornalmente in base al numero di account dominio attivi nella tua organizzazione.", "billingDomainInfo": "Sei addebitato per ogni dominio nell'organizzazione. La fatturazione viene calcolata quotidianamente in base al numero di account di dominio attivi nel tuo org.",
"billingRemoteExitNodesInfo": "Sei addebitato per ogni nodo gestito nella tua organizzazione. La fatturazione viene calcolata giornalmente in base al numero di nodi gestiti attivi nella tua organizzazione.", "billingRemoteExitNodesInfo": "Sei addebitato per ogni nodo gestito nell'organizzazione. La fatturazione viene calcolata quotidianamente in base al numero di nodi gestiti attivi nel tuo org.",
"domainNotFound": "Domini Non Trovati", "domainNotFound": "Domini Non Trovati",
"domainNotFoundDescription": "Questa risorsa è disabilitata perché il dominio non esiste più nel nostro sistema. Si prega di impostare un nuovo dominio per questa risorsa.", "domainNotFoundDescription": "Questa risorsa è disabilitata perché il dominio non esiste più nel nostro sistema. Si prega di impostare un nuovo dominio per questa risorsa.",
"failed": "Fallito", "failed": "Fallito",
@@ -1421,29 +1465,32 @@
"and": "e", "and": "e",
"privacyPolicy": "informativa sulla privacy" "privacyPolicy": "informativa sulla privacy"
}, },
"signUpMarketing": {
"keepMeInTheLoop": "Tienimi in loop con notizie, aggiornamenti e nuove funzionalità via e-mail."
},
"siteRequired": "Il sito è richiesto.", "siteRequired": "Il sito è richiesto.",
"olmTunnel": "Tunnel Olm", "olmTunnel": "Tunnel Olm",
"olmTunnelDescription": "Usa Olm per la connettività client", "olmTunnelDescription": "Usa Olm per la connettività client",
"errorCreatingClient": "Errore nella creazione del client", "errorCreatingClient": "Errore nella creazione del client",
"clientDefaultsNotFound": "Impostazioni predefinite del client non trovate", "clientDefaultsNotFound": "Impostazioni predefinite del client non trovate",
"createClient": "Crea Cliente", "createClient": "Crea Cliente",
"createClientDescription": "Crea un nuovo cliente per connettersi ai tuoi siti", "createClientDescription": "Crea un nuovo client per accedere alle risorse private",
"seeAllClients": "Vedi Tutti i Clienti", "seeAllClients": "Vedi Tutti i Clienti",
"clientInformation": "Informazioni sul Cliente", "clientInformation": "Informazioni sul Cliente",
"clientNamePlaceholder": "Nome Cliente", "clientNamePlaceholder": "Nome Cliente",
"address": "Indirizzo", "address": "Indirizzo",
"subnetPlaceholder": "Sottorete", "subnetPlaceholder": "Sottorete",
"addressDescription": "L'indirizzo che questo cliente utilizzerà per la connettività", "addressDescription": "L'indirizzo interno del client. Deve rientrare nella sottorete dell'organizzazione.",
"selectSites": "Seleziona siti", "selectSites": "Seleziona siti",
"sitesDescription": "Il cliente avrà connettività ai siti selezionati", "sitesDescription": "Il cliente avrà connettività ai siti selezionati",
"clientInstallOlm": "Installa Olm", "clientInstallOlm": "Installa Olm",
"clientInstallOlmDescription": "Avvia Olm sul tuo sistema", "clientInstallOlmDescription": "Avvia Olm sul tuo sistema",
"clientOlmCredentials": "Credenziali Olm", "clientOlmCredentials": "Credenziali",
"clientOlmCredentialsDescription": "Ecco come Olm si autenticherà con il server", "clientOlmCredentialsDescription": "Questo è il modo in cui il client si autenticerà con il server",
"olmEndpoint": "Endpoint Olm", "olmEndpoint": "Endpoint",
"olmId": "ID Olm", "olmId": "ID",
"olmSecretKey": "Chiave Segreta Olm", "olmSecretKey": "Segreto",
"clientCredentialsSave": "Salva le Tue Credenziali", "clientCredentialsSave": "Salva le credenziali",
"clientCredentialsSaveDescription": "Potrai vederlo solo una volta. Assicurati di copiarlo in un luogo sicuro.", "clientCredentialsSaveDescription": "Potrai vederlo solo una volta. Assicurati di copiarlo in un luogo sicuro.",
"generalSettingsDescription": "Configura le impostazioni generali per questo cliente", "generalSettingsDescription": "Configura le impostazioni generali per questo cliente",
"clientUpdated": "Cliente aggiornato", "clientUpdated": "Cliente aggiornato",
@@ -1454,9 +1501,7 @@
"sitesFetchError": "Si è verificato un errore durante il recupero dei siti.", "sitesFetchError": "Si è verificato un errore durante il recupero dei siti.",
"olmErrorFetchReleases": "Si è verificato un errore durante il recupero delle versioni di Olm.", "olmErrorFetchReleases": "Si è verificato un errore durante il recupero delle versioni di Olm.",
"olmErrorFetchLatest": "Si è verificato un errore durante il recupero dell'ultima versione di Olm.", "olmErrorFetchLatest": "Si è verificato un errore durante il recupero dell'ultima versione di Olm.",
"remoteSubnets": "Sottoreti Remote",
"enterCidrRange": "Inserisci l'intervallo CIDR", "enterCidrRange": "Inserisci l'intervallo CIDR",
"remoteSubnetsDescription": "Aggiungi intervalli CIDR che possono essere accessibili da questo sito in remoto utilizzando i client. Usa il formato come 10.0.0.0/24. Questo si applica SOLO alla connettività del client VPN.",
"resourceEnableProxy": "Abilita Proxy Pubblico", "resourceEnableProxy": "Abilita Proxy Pubblico",
"resourceEnableProxyDescription": "Abilita il proxy pubblico a questa risorsa. Consente l'accesso alla risorsa dall'esterno della rete tramite il cloud su una porta aperta. Richiede la configurazione di Traefik.", "resourceEnableProxyDescription": "Abilita il proxy pubblico a questa risorsa. Consente l'accesso alla risorsa dall'esterno della rete tramite il cloud su una porta aperta. Richiede la configurazione di Traefik.",
"externalProxyEnabled": "Proxy Esterno Abilitato", "externalProxyEnabled": "Proxy Esterno Abilitato",
@@ -1474,14 +1519,15 @@
"enableHealthChecksDescription": "Monitorare lo stato di salute di questo obiettivo. Se necessario, è possibile monitorare un endpoint diverso da quello del bersaglio.", "enableHealthChecksDescription": "Monitorare lo stato di salute di questo obiettivo. Se necessario, è possibile monitorare un endpoint diverso da quello del bersaglio.",
"healthScheme": "Metodo", "healthScheme": "Metodo",
"healthSelectScheme": "Seleziona Metodo", "healthSelectScheme": "Seleziona Metodo",
"healthCheckPortInvalid": "La porta di controllo dello stato di salute deve essere compresa tra 1 e 65535",
"healthCheckPath": "Percorso", "healthCheckPath": "Percorso",
"healthHostname": "IP / Nome host", "healthHostname": "IP / Nome host",
"healthPort": "Porta", "healthPort": "Porta",
"healthCheckPathDescription": "Percorso per verificare lo stato di salute.", "healthCheckPathDescription": "Percorso per verificare lo stato di salute.",
"healthyIntervalSeconds": "Intervallo Sano", "healthyIntervalSeconds": "Intervallo Sano (Sec)",
"unhealthyIntervalSeconds": "Intervallo Non Sano", "unhealthyIntervalSeconds": "Intervallo Non Sano (Sec)",
"IntervalSeconds": "Intervallo Sano", "IntervalSeconds": "Intervallo Sano",
"timeoutSeconds": "Timeout", "timeoutSeconds": "Timeout (sec)",
"timeIsInSeconds": "Il tempo è in secondi", "timeIsInSeconds": "Il tempo è in secondi",
"retryAttempts": "Tentativi di Riprova", "retryAttempts": "Tentativi di Riprova",
"expectedResponseCodes": "Codici di Risposta Attesi", "expectedResponseCodes": "Codici di Risposta Attesi",
@@ -1517,16 +1563,22 @@
"resourceEditDomain": "Modifica Dominio", "resourceEditDomain": "Modifica Dominio",
"siteName": "Nome del Sito", "siteName": "Nome del Sito",
"proxyPort": "Porta", "proxyPort": "Porta",
"resourcesTableProxyResources": "Risorse Proxy", "resourcesTableProxyResources": "Pubblico",
"resourcesTableClientResources": "Risorse Client", "resourcesTableClientResources": "Privato",
"resourcesTableNoProxyResourcesFound": "Nessuna risorsa proxy trovata.", "resourcesTableNoProxyResourcesFound": "Nessuna risorsa proxy trovata.",
"resourcesTableNoInternalResourcesFound": "Nessuna risorsa interna trovata.", "resourcesTableNoInternalResourcesFound": "Nessuna risorsa interna trovata.",
"resourcesTableDestination": "Destinazione", "resourcesTableDestination": "Destinazione",
"resourcesTableTheseResourcesForUseWith": "Queste risorse sono per uso con", "resourcesTableAlias": "Alias",
"resourcesTableClients": "Client", "resourcesTableClients": "Client",
"resourcesTableAndOnlyAccessibleInternally": "e sono accessibili solo internamente quando connessi con un client.", "resourcesTableAndOnlyAccessibleInternally": "e sono accessibili solo internamente quando connessi con un client.",
"editInternalResourceDialogEditClientResource": "Modifica Risorsa Client", "resourcesTableNoTargets": "Nessun obiettivo",
"editInternalResourceDialogUpdateResourceProperties": "Aggiorna le proprietà della risorsa e la configurazione del target per {resourceName}.", "resourcesTableHealthy": "Sano",
"resourcesTableDegraded": "Degraded",
"resourcesTableOffline": "Offline",
"resourcesTableUnknown": "Sconosciuto",
"resourcesTableNotMonitored": "Non monitorato",
"editInternalResourceDialogEditClientResource": "Modifica Risorse Private",
"editInternalResourceDialogUpdateResourceProperties": "Aggiorna la configurazione delle risorse e i controlli di accesso per {resourceName}",
"editInternalResourceDialogResourceProperties": "Proprietà della Risorsa", "editInternalResourceDialogResourceProperties": "Proprietà della Risorsa",
"editInternalResourceDialogName": "Nome", "editInternalResourceDialogName": "Nome",
"editInternalResourceDialogProtocol": "Protocollo", "editInternalResourceDialogProtocol": "Protocollo",
@@ -1545,11 +1597,22 @@
"editInternalResourceDialogInvalidIPAddressFormat": "Formato dell'indirizzo IP non valido", "editInternalResourceDialogInvalidIPAddressFormat": "Formato dell'indirizzo IP non valido",
"editInternalResourceDialogDestinationPortMin": "La porta di destinazione deve essere almeno 1", "editInternalResourceDialogDestinationPortMin": "La porta di destinazione deve essere almeno 1",
"editInternalResourceDialogDestinationPortMax": "La porta di destinazione deve essere inferiore a 65536", "editInternalResourceDialogDestinationPortMax": "La porta di destinazione deve essere inferiore a 65536",
"editInternalResourceDialogPortModeRequired": "Protocollo, porta proxy e porta di destinazione sono richiesti per la modalità porta",
"editInternalResourceDialogMode": "Modalità",
"editInternalResourceDialogModePort": "Porta",
"editInternalResourceDialogModeHost": "Host",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogDestination": "Destinazione",
"editInternalResourceDialogDestinationHostDescription": "L'indirizzo IP o il nome host della risorsa nella rete del sito.",
"editInternalResourceDialogDestinationIPDescription": "L'indirizzo IP o hostname della risorsa nella rete del sito.",
"editInternalResourceDialogDestinationCidrDescription": "La gamma CIDR della risorsa sulla rete del sito.",
"editInternalResourceDialogAlias": "Alias",
"editInternalResourceDialogAliasDescription": "Un alias DNS interno opzionale per questa risorsa.",
"createInternalResourceDialogNoSitesAvailable": "Nessun Sito Disponibile", "createInternalResourceDialogNoSitesAvailable": "Nessun Sito Disponibile",
"createInternalResourceDialogNoSitesAvailableDescription": "Devi avere almeno un sito Newt con una subnet configurata per creare risorse interne.", "createInternalResourceDialogNoSitesAvailableDescription": "Devi avere almeno un sito Newt con una subnet configurata per creare risorse interne.",
"createInternalResourceDialogClose": "Chiudi", "createInternalResourceDialogClose": "Chiudi",
"createInternalResourceDialogCreateClientResource": "Crea Risorsa Client", "createInternalResourceDialogCreateClientResource": "Crea Risorsa Privata",
"createInternalResourceDialogCreateClientResourceDescription": "Crea una nuova risorsa che sarà accessibile ai client connessi al sito selezionato.", "createInternalResourceDialogCreateClientResourceDescription": "Crea una nuova risorsa che sarà accessibile solo ai client connessi all'organizzazione",
"createInternalResourceDialogResourceProperties": "Proprietà della Risorsa", "createInternalResourceDialogResourceProperties": "Proprietà della Risorsa",
"createInternalResourceDialogName": "Nome", "createInternalResourceDialogName": "Nome",
"createInternalResourceDialogSite": "Sito", "createInternalResourceDialogSite": "Sito",
@@ -1578,11 +1641,22 @@
"createInternalResourceDialogInvalidIPAddressFormat": "Formato dell'indirizzo IP non valido", "createInternalResourceDialogInvalidIPAddressFormat": "Formato dell'indirizzo IP non valido",
"createInternalResourceDialogDestinationPortMin": "La porta di destinazione deve essere almeno 1", "createInternalResourceDialogDestinationPortMin": "La porta di destinazione deve essere almeno 1",
"createInternalResourceDialogDestinationPortMax": "La porta di destinazione deve essere inferiore a 65536", "createInternalResourceDialogDestinationPortMax": "La porta di destinazione deve essere inferiore a 65536",
"createInternalResourceDialogPortModeRequired": "Protocollo, porta proxy e porta di destinazione sono richiesti per la modalità porta",
"createInternalResourceDialogMode": "Modalità",
"createInternalResourceDialogModePort": "Porta",
"createInternalResourceDialogModeHost": "Host",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogDestination": "Destinazione",
"createInternalResourceDialogDestinationHostDescription": "L'indirizzo IP o il nome host della risorsa nella rete del sito.",
"createInternalResourceDialogDestinationCidrDescription": "La gamma CIDR della risorsa sulla rete del sito.",
"createInternalResourceDialogAlias": "Alias",
"createInternalResourceDialogAliasDescription": "Un alias DNS interno opzionale per questa risorsa.",
"siteConfiguration": "Configurazione", "siteConfiguration": "Configurazione",
"siteAcceptClientConnections": "Accetta Connessioni Client", "siteAcceptClientConnections": "Accetta Connessioni Client",
"siteAcceptClientConnectionsDescription": "Permetti ad altri dispositivi di connettersi attraverso questa istanza Newt come gateway utilizzando i client.", "siteAcceptClientConnectionsDescription": "Consenti ai dispositivi utente e ai client di accedere alle risorse di questo sito. Questo può essere modificato in seguito.",
"siteAddress": "Indirizzo del Sito", "siteAddress": "Indirizzo Del Sito (Avanzato)",
"siteAddressDescription": "Specifica l'indirizzo IP dell'host a cui i client si collegano. Questo è l'indirizzo interno del sito nella rete Pangolin per indirizzare i client. Deve rientrare nella subnet dell'Organizzazione.", "siteAddressDescription": "L'indirizzo interno del sito. Deve rientrare nella sottorete dell'organizzazione.",
"siteNameDescription": "Il nome visualizzato del sito che può essere modificato in seguito.",
"autoLoginExternalIdp": "Accesso Automatico con IDP Esterno", "autoLoginExternalIdp": "Accesso Automatico con IDP Esterno",
"autoLoginExternalIdpDescription": "Reindirizzare immediatamente l'utente all'IDP esterno per l'autenticazione.", "autoLoginExternalIdpDescription": "Reindirizzare immediatamente l'utente all'IDP esterno per l'autenticazione.",
"selectIdp": "Seleziona IDP", "selectIdp": "Seleziona IDP",
@@ -1709,16 +1783,16 @@
"idpTypeLabel": "Tipo Provider Identità", "idpTypeLabel": "Tipo Provider Identità",
"roleMappingExpressionPlaceholder": "es. contiene(gruppi, 'admin') && 'Admin' <unk> <unk> 'Membro'", "roleMappingExpressionPlaceholder": "es. contiene(gruppi, 'admin') && 'Admin' <unk> <unk> 'Membro'",
"idpGoogleConfiguration": "Configurazione Google", "idpGoogleConfiguration": "Configurazione Google",
"idpGoogleConfigurationDescription": "Configura le tue credenziali di Google OAuth2", "idpGoogleConfigurationDescription": "Configura le credenziali di Google OAuth2",
"idpGoogleClientIdDescription": "Il Tuo Client Id Google OAuth2", "idpGoogleClientIdDescription": "Google OAuth2 Client ID",
"idpGoogleClientSecretDescription": "Il Tuo Client Google OAuth2 Secret", "idpGoogleClientSecretDescription": "Google OAuth2 Client Secret",
"idpAzureConfiguration": "Configurazione Azure Entra ID", "idpAzureConfiguration": "Configurazione Azure Entra ID",
"idpAzureConfigurationDescription": "Configura le credenziali OAuth2 di Azure Entra ID", "idpAzureConfigurationDescription": "Configura le credenziali OAuth2 di Azure Entra ID",
"idpTenantId": "ID Tenant", "idpTenantId": "ID Tenant",
"idpTenantIdPlaceholder": "iltuo-inquilino-id", "idpTenantIdPlaceholder": "tenant-id",
"idpAzureTenantIdDescription": "Il tuo ID del tenant Azure (trovato nella panoramica di Azure Active Directory)", "idpAzureTenantIdDescription": "Azure tenant ID (trovato nella panoramica Azure Active Directory)",
"idpAzureClientIdDescription": "Il Tuo Id Client Registrazione App Azure", "idpAzureClientIdDescription": "Azure App Id Registrazione Client",
"idpAzureClientSecretDescription": "Il Tuo Client Di Registrazione App Azure Secret", "idpAzureClientSecretDescription": "Azure App Registrazione Client Segreto",
"idpGoogleTitle": "Google", "idpGoogleTitle": "Google",
"idpGoogleAlt": "Google", "idpGoogleAlt": "Google",
"idpAzureTitle": "Azure Entra ID", "idpAzureTitle": "Azure Entra ID",
@@ -1726,14 +1800,14 @@
"idpGoogleConfigurationTitle": "Configurazione Google", "idpGoogleConfigurationTitle": "Configurazione Google",
"idpAzureConfigurationTitle": "Configurazione Azure Entra ID", "idpAzureConfigurationTitle": "Configurazione Azure Entra ID",
"idpTenantIdLabel": "ID Tenant", "idpTenantIdLabel": "ID Tenant",
"idpAzureClientIdDescription2": "Il Tuo Id Client Registrazione App Azure", "idpAzureClientIdDescription2": "Azure App Id Registrazione Client",
"idpAzureClientSecretDescription2": "Il Tuo Client Di Registrazione App Azure Secret", "idpAzureClientSecretDescription2": "Azure App Registrazione Client Segreto",
"idpGoogleDescription": "Google OAuth2/OIDC provider", "idpGoogleDescription": "Google OAuth2/OIDC provider",
"idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider", "idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider",
"subnet": "Sottorete", "subnet": "Sottorete",
"subnetDescription": "La sottorete per la configurazione di rete di questa organizzazione.", "subnetDescription": "La sottorete per la configurazione di rete di questa organizzazione.",
"authPage": "Pagina Autenticazione", "authPage": "Pagina Autenticazione",
"authPageDescription": "Configura la pagina di autenticazione per la tua organizzazione", "authPageDescription": "Configura la pagina di autenticazione per l'organizzazione",
"authPageDomain": "Dominio Pagina Auth", "authPageDomain": "Dominio Pagina Auth",
"noDomainSet": "Nessun dominio impostato", "noDomainSet": "Nessun dominio impostato",
"changeDomain": "Cambia Dominio", "changeDomain": "Cambia Dominio",
@@ -1743,7 +1817,7 @@
"setAuthPageDomain": "Imposta Dominio Pagina Autenticazione", "setAuthPageDomain": "Imposta Dominio Pagina Autenticazione",
"failedToFetchCertificate": "Recupero del certificato non riuscito", "failedToFetchCertificate": "Recupero del certificato non riuscito",
"failedToRestartCertificate": "Riavvio del certificato non riuscito", "failedToRestartCertificate": "Riavvio del certificato non riuscito",
"addDomainToEnableCustomAuthPages": "Aggiungi un dominio per abilitare le pagine di autenticazione personalizzate per la tua organizzazione", "addDomainToEnableCustomAuthPages": "Aggiungi un dominio per abilitare le pagine di autenticazione personalizzate per l'organizzazione",
"selectDomainForOrgAuthPage": "Seleziona un dominio per la pagina di autenticazione dell'organizzazione", "selectDomainForOrgAuthPage": "Seleziona un dominio per la pagina di autenticazione dell'organizzazione",
"domainPickerProvidedDomain": "Dominio Fornito", "domainPickerProvidedDomain": "Dominio Fornito",
"domainPickerFreeProvidedDomain": "Dominio Fornito Gratuito", "domainPickerFreeProvidedDomain": "Dominio Fornito Gratuito",
@@ -1758,7 +1832,7 @@
"domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" non può essere reso valido per {domain}.", "domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" non può essere reso valido per {domain}.",
"domainPickerSubdomainSanitized": "Sottodominio igienizzato", "domainPickerSubdomainSanitized": "Sottodominio igienizzato",
"domainPickerSubdomainCorrected": "\"{sub}\" è stato corretto in \"{sanitized}\"", "domainPickerSubdomainCorrected": "\"{sub}\" è stato corretto in \"{sanitized}\"",
"orgAuthSignInTitle": "Accedi alla tua organizzazione", "orgAuthSignInTitle": "Accedi all'organizzazione",
"orgAuthChooseIdpDescription": "Scegli il tuo provider di identità per continuare", "orgAuthChooseIdpDescription": "Scegli il tuo provider di identità per continuare",
"orgAuthNoIdpConfigured": "Questa organizzazione non ha nessun provider di identità configurato. Puoi accedere con la tua identità Pangolin.", "orgAuthNoIdpConfigured": "Questa organizzazione non ha nessun provider di identità configurato. Puoi accedere con la tua identità Pangolin.",
"orgAuthSignInWithPangolin": "Accedi con Pangolino", "orgAuthSignInWithPangolin": "Accedi con Pangolino",
@@ -1776,7 +1850,7 @@
"enableTwoFactorAuthentication": "Abilita autenticazione a due fattori", "enableTwoFactorAuthentication": "Abilita autenticazione a due fattori",
"completeSecuritySteps": "Passi Di Sicurezza Completa", "completeSecuritySteps": "Passi Di Sicurezza Completa",
"securitySettings": "Impostazioni Di Sicurezza", "securitySettings": "Impostazioni Di Sicurezza",
"securitySettingsDescription": "Configura i criteri di sicurezza per la tua organizzazione", "securitySettingsDescription": "Configura i criteri di sicurezza per l'organizzazione",
"requireTwoFactorForAllUsers": "Richiede l'autenticazione a due fattori per tutti gli utenti", "requireTwoFactorForAllUsers": "Richiede l'autenticazione a due fattori per tutti gli utenti",
"requireTwoFactorDescription": "Se abilitata, tutti gli utenti interni di questa organizzazione devono avere un'autenticazione a due fattori abilitata per accedere all'organizzazione.", "requireTwoFactorDescription": "Se abilitata, tutti gli utenti interni di questa organizzazione devono avere un'autenticazione a due fattori abilitata per accedere all'organizzazione.",
"requireTwoFactorDisabledDescription": "Questa funzione richiede una licenza valida (Enterprise) o un abbonamento attivo (SaaS)", "requireTwoFactorDisabledDescription": "Questa funzione richiede una licenza valida (Enterprise) o un abbonamento attivo (SaaS)",
@@ -1839,8 +1913,12 @@
"enterpriseEdition": "Enterprise Edition", "enterpriseEdition": "Enterprise Edition",
"unlicensed": "Senza Licenza", "unlicensed": "Senza Licenza",
"beta": "Beta", "beta": "Beta",
"manageClients": "Gestisci Clienti", "manageUserDevices": "Dispositivi Utente",
"manageClientsDescription": "I client sono dispositivi che possono connettersi ai tuoi siti", "manageUserDevicesDescription": "Visualizza e gestisci i dispositivi che gli utenti utilizzano per connettersi privatamente alle risorse",
"manageMachineClients": "Gestisci Client Machine",
"manageMachineClientsDescription": "Creare e gestire client che server e sistemi utilizzano per connettersi privatamente alle risorse",
"clientsTableUserClients": "Utente",
"clientsTableMachineClients": "Macchina",
"licenseTableValidUntil": "Valido Fino A", "licenseTableValidUntil": "Valido Fino A",
"saasLicenseKeysSettingsTitle": "Licenze Enterprise", "saasLicenseKeysSettingsTitle": "Licenze Enterprise",
"saasLicenseKeysSettingsDescription": "Genera e gestisci le chiavi di licenza Enterprise per le istanze di Pangolin self-hosted", "saasLicenseKeysSettingsDescription": "Genera e gestisci le chiavi di licenza Enterprise per le istanze di Pangolin self-hosted",
@@ -1975,11 +2053,12 @@
"pathRewriteStripLabel": "striscia", "pathRewriteStripLabel": "striscia",
"sidebarEnableEnterpriseLicense": "Abilita Licenza Enterprise", "sidebarEnableEnterpriseLicense": "Abilita Licenza Enterprise",
"cannotbeUndone": "Questo non può essere annullato.", "cannotbeUndone": "Questo non può essere annullato.",
"toConfirm": "per confermare", "toConfirm": "per confermare.",
"deleteClientQuestion": "Sei sicuro di voler rimuovere il client dal sito e dall'organizzazione?", "deleteClientQuestion": "Sei sicuro di voler rimuovere il client dal sito e dall'organizzazione?",
"clientMessageRemove": "Una volta rimosso, il client non sarà più in grado di connettersi al sito.", "clientMessageRemove": "Una volta rimosso, il client non sarà più in grado di connettersi al sito.",
"sidebarLogs": "Registri", "sidebarLogs": "Registri",
"request": "Richiesta", "request": "Richiesta",
"requests": "Richieste",
"logs": "Registri", "logs": "Registri",
"logsSettingsDescription": "Monitora i registri raccolti da questa orginizzazione", "logsSettingsDescription": "Monitora i registri raccolti da questa orginizzazione",
"searchLogs": "Cerca registro...", "searchLogs": "Cerca registro...",
@@ -2005,6 +2084,7 @@
"ip": "IP", "ip": "IP",
"reason": "Motivo", "reason": "Motivo",
"requestLogs": "Log Richiesta", "requestLogs": "Log Richiesta",
"requestAnalytics": "Richiedi Analisi",
"host": "Host", "host": "Host",
"location": "Posizione", "location": "Posizione",
"actionLogs": "Log Azioni", "actionLogs": "Log Azioni",
@@ -2014,6 +2094,7 @@
"logRetention": "Ritenzione Registro", "logRetention": "Ritenzione Registro",
"logRetentionDescription": "Gestisci per quanto tempo i diversi tipi di log sono mantenuti per questa organizzazione o disabilitali", "logRetentionDescription": "Gestisci per quanto tempo i diversi tipi di log sono mantenuti per questa organizzazione o disabilitali",
"requestLogsDescription": "Visualizza i registri di richiesta dettagliati per le risorse in questa organizzazione", "requestLogsDescription": "Visualizza i registri di richiesta dettagliati per le risorse in questa organizzazione",
"requestAnalyticsDescription": "Visualizza le analisi dettagliate della richiesta per le risorse in questa organizzazione",
"logRetentionRequestLabel": "Richiedi Ritenzione Log", "logRetentionRequestLabel": "Richiedi Ritenzione Log",
"logRetentionRequestDescription": "Per quanto tempo conservare i log delle richieste", "logRetentionRequestDescription": "Per quanto tempo conservare i log delle richieste",
"logRetentionAccessLabel": "Ritenzione Registro Accesso", "logRetentionAccessLabel": "Ritenzione Registro Accesso",
@@ -2027,6 +2108,7 @@
"logRetention30Days": "30 giorni", "logRetention30Days": "30 giorni",
"logRetention90Days": "90 giorni", "logRetention90Days": "90 giorni",
"logRetentionForever": "Per Sempre", "logRetentionForever": "Per Sempre",
"logRetentionEndOfFollowingYear": "Fine dell'anno successivo",
"actionLogsDescription": "Visualizza una cronologia delle azioni eseguite in questa organizzazione", "actionLogsDescription": "Visualizza una cronologia delle azioni eseguite in questa organizzazione",
"accessLogsDescription": "Visualizza le richieste di autenticazione di accesso per le risorse in questa organizzazione", "accessLogsDescription": "Visualizza le richieste di autenticazione di accesso per le risorse in questa organizzazione",
"licenseRequiredToUse": "Per utilizzare questa funzione è necessaria una licenza Enterprise.", "licenseRequiredToUse": "Per utilizzare questa funzione è necessaria una licenza Enterprise.",
@@ -2037,7 +2119,7 @@
"preferWildcardCert": "Preferisci Certificato Wildcard", "preferWildcardCert": "Preferisci Certificato Wildcard",
"unverified": "Non Verificato", "unverified": "Non Verificato",
"domainSetting": "Impostazioni Dominio", "domainSetting": "Impostazioni Dominio",
"domainSettingDescription": "Configura le impostazioni per il tuo dominio", "domainSettingDescription": "Configura le impostazioni per il dominio",
"preferWildcardCertDescription": "Tentativo di generare un certificato jolly (richiede un risolutore di certificati correttamente configurato).", "preferWildcardCertDescription": "Tentativo di generare un certificato jolly (richiede un risolutore di certificati correttamente configurato).",
"recordName": "Nome Record", "recordName": "Nome Record",
"auto": "Automatico", "auto": "Automatico",
@@ -2051,15 +2133,15 @@
"olmUpdateAvailableInfo": "È disponibile una versione aggiornata di Olm. Si prega di aggiornare all'ultima versione per la migliore esperienza.", "olmUpdateAvailableInfo": "È disponibile una versione aggiornata di Olm. Si prega di aggiornare all'ultima versione per la migliore esperienza.",
"client": "Client", "client": "Client",
"proxyProtocol": "Impostazioni Protocollo Proxy", "proxyProtocol": "Impostazioni Protocollo Proxy",
"proxyProtocolDescription": "Configurare il protocollo proxy per preservare gli indirizzi IP client per i servizi TCP/UDP.", "proxyProtocolDescription": "Configurare il protocollo proxy per preservare gli indirizzi IP client per i servizi TCP.",
"enableProxyProtocol": "Abilita Protocollo Proxy", "enableProxyProtocol": "Abilita Protocollo Proxy",
"proxyProtocolInfo": "Conserva gli indirizzi IP del client per i backend TCP/UDP", "proxyProtocolInfo": "Conserva gli indirizzi IP del client per i backend TCP",
"proxyProtocolVersion": "Versione Protocollo Proxy", "proxyProtocolVersion": "Versione Protocollo Proxy",
"version1": " Versione 1 (Consigliato)", "version1": " Versione 1 (Consigliato)",
"version2": "Versione 2", "version2": "Versione 2",
"versionDescription": "La versione 1 è testuale e ampiamente supportata. La versione 2 è binaria e più efficiente, ma meno compatibile.", "versionDescription": "La versione 1 è testuale e ampiamente supportata. La versione 2 è binaria e più efficiente, ma meno compatibile.",
"warning": "Attenzione", "warning": "Attenzione",
"proxyProtocolWarning": "La tua applicazione backend deve essere configurata per accettare le connessioni del protocollo proxy. Se il tuo backend non supporta il protocollo proxy, abilitando questa opzione si interromperanno tutte le connessioni. Assicurati di configurare il tuo backend per fidarti delle intestazioni del protocollo proxy da Traefik.", "proxyProtocolWarning": "L'applicazione backend deve essere configurata per accettare le connessioni del protocollo proxy. Se il tuo backend non supporta il protocollo proxy, abilitarlo interromperà tutte le connessioni, quindi attivalo solo se sai cosa stai facendo. Assicurati di configurare il tuo backend per fidarti delle intestazioni del protocollo proxy da Traefik.",
"restarting": "Riavvio...", "restarting": "Riavvio...",
"manual": "Manuale", "manual": "Manuale",
"messageSupport": "Supporto Messaggio", "messageSupport": "Supporto Messaggio",
@@ -2080,5 +2162,113 @@
"supportSending": "Invio...", "supportSending": "Invio...",
"supportSend": "Invia", "supportSend": "Invia",
"supportMessageSent": "Messaggio Inviato!", "supportMessageSent": "Messaggio Inviato!",
"supportWillContact": "Saremo in contatto a breve!" "supportWillContact": "Saremo in contatto a breve!",
"selectLogRetention": "Seleziona ritenzione log",
"terms": "Termini",
"privacy": "Privacy",
"security": "Sicurezza",
"docs": "Documenti",
"deviceActivation": "Attivazione dispositivo",
"deviceCodeInvalidFormat": "Il codice deve contenere 9 caratteri (es. A1AJ-N5JD)",
"deviceCodeInvalidOrExpired": "Codice non valido o scaduto",
"deviceCodeVerifyFailed": "Impossibile verificare il codice del dispositivo",
"signedInAs": "Accesso come",
"deviceCodeEnterPrompt": "Inserisci il codice visualizzato sul dispositivo",
"continue": "Continua",
"deviceUnknownLocation": "Posizione sconosciuta",
"deviceAuthorizationRequested": "Questa autorizzazione è stata richiesta ad {location} su {date}. Assicurati di fidarti di questo dispositivo in quanto avrà accesso all'account.",
"deviceLabel": "Dispositivo: {deviceName}",
"deviceWantsAccess": "vuole accedere al tuo account",
"deviceExistingAccess": "Accesso esistente:",
"deviceFullAccess": "Accesso completo al tuo account",
"deviceOrganizationsAccess": "Accesso a tutte le organizzazioni a cui il tuo account ha accesso",
"deviceAuthorize": "Autorizza {applicationName}",
"deviceConnected": "Dispositivo Connesso!",
"deviceAuthorizedMessage": "Il dispositivo è autorizzato ad accedere al tuo account.",
"pangolinCloud": "Pangolin Cloud",
"viewDevices": "Visualizza Dispositivi",
"viewDevicesDescription": "Gestisci i tuoi dispositivi connessi",
"noDevices": "Nessun dispositivo trovato",
"dateCreated": "Data Di Creazione",
"unnamedDevice": "Dispositivo Senza Nome",
"deviceQuestionRemove": "Sei sicuro di voler eliminare questo dispositivo?",
"deviceMessageRemove": "Questa azione non può essere annullata.",
"deviceDeleteConfirm": "Elimina Dispositivo",
"deleteDevice": "Elimina Dispositivo",
"errorLoadingDevices": "Errore nel caricamento dei dispositivi",
"failedToLoadDevices": "Impossibile caricare i dispositivi",
"deviceDeleted": "Dispositivo eliminato",
"deviceDeletedDescription": "Il dispositivo è stato eliminato con successo.",
"errorDeletingDevice": "Errore nell'eliminare il dispositivo",
"failedToDeleteDevice": "Impossibile eliminare il dispositivo",
"showColumns": "Mostra Colonne",
"hideColumns": "Nascondi Colonne",
"columnVisibility": "Visibilità Colonna",
"toggleColumn": "Attiva/disattiva colonna {columnName}",
"allColumns": "Tutte Le Colonne",
"defaultColumns": "Colonne Predefinite",
"customizeView": "Personalizza Vista",
"viewOptions": "Opzioni Visualizzazione",
"selectAll": "Seleziona Tutto",
"selectNone": "Seleziona Nessuno",
"selectedResources": "Risorse Selezionate",
"enableSelected": "Abilita Selezionati",
"disableSelected": "Disabilita Selezionati",
"checkSelectedStatus": "Controlla lo stato dei selezionati",
"clients": "Client",
"accessClientSelect": "Seleziona client macchina",
"resourceClientDescription": "Clienti di macchine che possono accedere a questa risorsa",
"regenerate": "Rigenera",
"credentials": "Credenziali",
"savecredentials": "Salva Credenziali",
"regenerateCredentialsButton": "Rigenera Credenziali",
"regenerateCredentials": "Rigenera Credenziali",
"generatedcredentials": "Credenziali Generate",
"copyandsavethesecredentials": "Copia e salva queste credenziali",
"copyandsavethesecredentialsdescription": "Queste credenziali non verranno mostrate di nuovo dopo aver lasciato questa pagina. Salvarle in modo sicuro ora.",
"credentialsSaved": "Credenziali Salvate",
"credentialsSavedDescription": "Le credenziali sono state rigenerate e salvate con successo.",
"credentialsSaveError": "Errore Di Salvataggio Credenziali",
"credentialsSaveErrorDescription": "Errore durante la rigenerazione e il salvataggio delle credenziali.",
"regenerateCredentialsWarning": "Rigenerare le credenziali invaliderà quelle precedenti e causerà una disconnessione. Assicurarsi di aggiornare le configurazioni che utilizzano queste credenziali.",
"confirm": "Conferma",
"regenerateCredentialsConfirmation": "Sei sicuro di voler rigenerare le credenziali?",
"endpoint": "Endpoint",
"Id": "Id",
"SecretKey": "Chiave Segreta",
"niceId": "Simpatico ID",
"niceIdUpdated": "Nice ID Aggiornato",
"niceIdUpdatedSuccessfully": "Nizza Id Aggiornato Con Successo",
"niceIdUpdateError": "Errore nell'aggiornare Nice ID",
"niceIdUpdateErrorDescription": "Si è verificato un errore durante l'aggiornamento del Nice ID.",
"niceIdCannotBeEmpty": "Il Nice ID non può essere vuoto",
"enterIdentifier": "Inserisci identificatore",
"identifier": "Identifier",
"deviceLoginUseDifferentAccount": "Non tu? Usa un account diverso.",
"deviceLoginDeviceRequestingAccessToAccount": "Un dispositivo sta richiedendo l'accesso a questo account.",
"noData": "Nessun Dato",
"machineClients": "Machine Clients",
"install": "Installa",
"run": "Esegui",
"clientNameDescription": "Il nome visualizzato del client che può essere modificato in seguito.",
"clientAddress": "Indirizzo Client (Avanzato)",
"setupFailedToFetchSubnet": "Recupero della sottorete predefinita non riuscito",
"setupSubnetAdvanced": "Subnet (avanzato)",
"setupSubnetDescription": "La subnet per la rete interna di questa organizzazione.",
"siteRegenerateAndDisconnect": "Rigenera e disconnetti",
"siteRegenerateAndDisconnectConfirmation": "Sei sicuro di voler rigenerare le credenziali e disconnettere questo sito?",
"siteRegenerateAndDisconnectWarning": "Questo rigenererà le credenziali e disconnetterà immediatamente il sito. Il sito dovrà essere riavviato con le nuove credenziali.",
"siteRegenerateCredentialsConfirmation": "Sei sicuro di voler rigenerare le credenziali per questo sito?",
"siteRegenerateCredentialsWarning": "Questo rigenererà le credenziali. Il sito rimarrà connesso finché non lo riavvierai manualmente e userai le nuove credenziali.",
"clientRegenerateAndDisconnect": "Rigenera e disconnetti",
"clientRegenerateAndDisconnectConfirmation": "Sei sicuro di voler rigenerare le credenziali e disconnettere questo client?",
"clientRegenerateAndDisconnectWarning": "Questo rigenererà le credenziali e disconnetterà immediatamente il client. Il client dovrà essere riavviato con le nuove credenziali.",
"clientRegenerateCredentialsConfirmation": "Sei sicuro di voler rigenerare le credenziali per questo client?",
"clientRegenerateCredentialsWarning": "Questo rigenererà le credenziali. Il client rimarrà connesso fino a quando non lo riavvierai manualmente e userai le nuove credenziali.",
"remoteExitNodeRegenerateAndDisconnect": "Rigenera e disconnetti",
"remoteExitNodeRegenerateAndDisconnectConfirmation": "Sei sicuro di voler rigenerare le credenziali e disconnettere questo nodo di uscita remoto?",
"remoteExitNodeRegenerateAndDisconnectWarning": "Questo rigenererà le credenziali e disconnetterà immediatamente il nodo di uscita remoto. Il nodo di uscita remoto dovrà essere riavviato con le nuove credenziali.",
"remoteExitNodeRegenerateCredentialsConfirmation": "Sei sicuro di voler rigenerare le credenziali per questo nodo di uscita remoto?",
"remoteExitNodeRegenerateCredentialsWarning": "Questo rigenererà le credenziali. Il nodo di uscita remoto rimarrà connesso finché non lo riavvierai manualmente e userai le nuove credenziali.",
"agent": "Agente"
} }

View File

@@ -1,12 +1,12 @@
{ {
"setupCreate": "조직, 사이트 및 리소스를 생성하십시오.", "setupCreate": "조직, 사이트 및 리소스를 생성합니다.",
"setupNewOrg": "새 조직", "setupNewOrg": "새 조직",
"setupCreateOrg": "조직 생성", "setupCreateOrg": "조직 생성",
"setupCreateResources": "리소스 생성", "setupCreateResources": "리소스 생성",
"setupOrgName": "조직 이름", "setupOrgName": "조직 이름",
"orgDisplayName": "이것은 귀하의 조직의 표시 이름입니다.", "orgDisplayName": "이것은 조직의 표시 이름입니다.",
"orgId": "조직 ID", "orgId": "조직 ID",
"setupIdentifierMessage": "이것은 귀하의 조직에 대한 고유 식별자입니다. 표시 이름과는 별개입니다.", "setupIdentifierMessage": "이것은 조직의 고유 식별자입니다.",
"setupErrorIdentifier": "조직 ID가 이미 사용 중입니다. 다른 것을 선택해 주세요.", "setupErrorIdentifier": "조직 ID가 이미 사용 중입니다. 다른 것을 선택해 주세요.",
"componentsErrorNoMemberCreate": "현재 어떤 조직의 구성원도 아닙니다. 시작하려면 조직을 생성하세요.", "componentsErrorNoMemberCreate": "현재 어떤 조직의 구성원도 아닙니다. 시작하려면 조직을 생성하세요.",
"componentsErrorNoMember": "현재 어떤 조직의 구성원도 아닙니다.", "componentsErrorNoMember": "현재 어떤 조직의 구성원도 아닙니다.",
@@ -50,10 +50,10 @@
"siteMessageRemove": "삭제되면 사이트에 더 이상 액세스할 수 없습니다. 사이트와 연결된 모든 대상도 삭제됩니다.", "siteMessageRemove": "삭제되면 사이트에 더 이상 액세스할 수 없습니다. 사이트와 연결된 모든 대상도 삭제됩니다.",
"siteQuestionRemove": "조직에서 사이트를 제거하시겠습니까?", "siteQuestionRemove": "조직에서 사이트를 제거하시겠습니까?",
"siteManageSites": "사이트 관리", "siteManageSites": "사이트 관리",
"siteDescription": "안전한 터널을 통해 네트워크 연결할 수 있도록 허용", "siteDescription": "프라이빗 네트워크로의 연결을 활성화하려면 사이트를 생성하고 관리하세요.",
"siteCreate": "사이트 생성", "siteCreate": "사이트 생성",
"siteCreateDescription2": "아래 단계를 따라 새 사이트를 생성하고 연결하십시오", "siteCreateDescription2": "아래 단계를 따라 새 사이트를 생성하고 연결하십시오",
"siteCreateDescription": "리소스를 연결하기 위해 새 사이트를 생성하십시오.", "siteCreateDescription": "리소스를 연결하기 위해 새 사이트를 생성하세요.",
"close": "닫기", "close": "닫기",
"siteErrorCreate": "사이트 생성 오류", "siteErrorCreate": "사이트 생성 오류",
"siteErrorCreateKeyPair": "키 쌍 또는 사이트 기본값을 찾을 수 없습니다", "siteErrorCreateKeyPair": "키 쌍 또는 사이트 기본값을 찾을 수 없습니다",
@@ -74,7 +74,7 @@
"siteInstallNewt": "Newt 설치", "siteInstallNewt": "Newt 설치",
"siteInstallNewtDescription": "시스템에서 Newt 실행하기", "siteInstallNewtDescription": "시스템에서 Newt 실행하기",
"WgConfiguration": "WireGuard 구성", "WgConfiguration": "WireGuard 구성",
"WgConfigurationDescription": "네트워크에 연결하기 위한 다음 구성을 사용하십시오.", "WgConfigurationDescription": "네트워크에 연결하기 위한 다음 구성을 사용하세요.",
"operatingSystem": "운영 체제", "operatingSystem": "운영 체제",
"commands": "명령", "commands": "명령",
"recommended": "추천", "recommended": "추천",
@@ -87,25 +87,25 @@
"siteUpdated": "사이트가 업데이트되었습니다", "siteUpdated": "사이트가 업데이트되었습니다",
"siteUpdatedDescription": "사이트가 업데이트되었습니다.", "siteUpdatedDescription": "사이트가 업데이트되었습니다.",
"siteGeneralDescription": "이 사이트에 대한 일반 설정을 구성하세요.", "siteGeneralDescription": "이 사이트에 대한 일반 설정을 구성하세요.",
"siteSettingDescription": "사이트에서 설정을 구성하세요", "siteSettingDescription": "사이트에서 설정을 구성하세요.",
"siteSetting": "{siteName} 설정", "siteSetting": "{siteName} 설정",
"siteNewtTunnel": "뉴트 터널 (추천)", "siteNewtTunnel": "뉴트 사이트 (추천)",
"siteNewtTunnelDescription": "네트워크에 대한 진입점을 생성하는 가장 쉬운 방법입니다. 추가 설정이 필요 없습니다.", "siteNewtTunnelDescription": "네트워크 진입점을 생성하는 가장 쉬운 방법입니다. 추가 설정이 필요 없습니다.",
"siteWg": "기본 WireGuard", "siteWg": "기본 WireGuard",
"siteWgDescription": "모든 WireGuard 클라이언트를 사용하여 터널을 설정하세요. 수동 NAT 설정이 필요합니다.", "siteWgDescription": "모든 WireGuard 클라이언트를 사용하여 터널을 설정하세요. 수동 NAT 설정이 필요합니다.",
"siteWgDescriptionSaas": "모든 WireGuard 클라이언트를 사용하여 터널을 설정하세요. 수동 NAT 설정이 필요합니다. 자체 호스팅 노드에서만 작동합니다.", "siteWgDescriptionSaas": "모든 WireGuard 클라이언트를 사용하여 터널을 설정하세요. 수동 NAT 설정이 필요합니다. 자체 호스팅 노드에서만 작동합니다.",
"siteLocalDescription": "로컬 리소스만 사용 가능합니다. 터널링이 없습니다.", "siteLocalDescription": "로컬 리소스만 사용 가능합니다. 터널링이 없습니다.",
"siteLocalDescriptionSaas": "로컬 리소스 전용. 터널링 금지. 원격 노드에서만 사용 가능합니다.", "siteLocalDescriptionSaas": "로컬 리소스 전용. 터널링 금지. 원격 노드에서만 사용 가능합니다.",
"siteSeeAll": "모든 사이트 보기", "siteSeeAll": "모든 사이트 보기",
"siteTunnelDescription": "사이트에 연결하는 방법을 결정하세요", "siteTunnelDescription": "사이트에 연결하는 방법을 결정하세요.",
"siteNewtCredentials": "Newt 자격 증명", "siteNewtCredentials": "자격 증명",
"siteNewtCredentialsDescription": "이것이 Newt가 서버와 인증하는 방법입니다", "siteNewtCredentialsDescription": "이것이 사이트가 서버와 인증하는 방법입니다.",
"siteCredentialsSave": "자격 증명 저장", "siteCredentialsSave": "자격 증명 저장",
"siteCredentialsSaveDescription": "이것은 한 번만 볼 수 있습니다. 안전한 장소에 복사해 두세요.", "siteCredentialsSaveDescription": "이것은 한 번만 볼 수 있습니다. 안전한 장소에 복사해 두세요.",
"siteInfo": "사이트 정보", "siteInfo": "사이트 정보",
"status": "상태", "status": "상태",
"shareTitle": "공유 링크 관리", "shareTitle": "공유 링크 관리",
"shareDescription": "공유 가능한 링크를 생성하여 리소스에 대한 임시 또는 영구 액세스를 부여합니다.", "shareDescription": "공유 가능한 링크를 생성하여 프록시 리소스에 임시 또는 영구적으로 액세스하세요.",
"shareSearch": "공유 링크 검색...", "shareSearch": "공유 링크 검색...",
"shareCreate": "공유 링크 생성", "shareCreate": "공유 링크 생성",
"shareErrorDelete": "링크 삭제에 실패했습니다.", "shareErrorDelete": "링크 삭제에 실패했습니다.",
@@ -144,8 +144,10 @@
"expires": "만료", "expires": "만료",
"never": "절대", "never": "절대",
"shareErrorSelectResource": "리소스를 선택하세요", "shareErrorSelectResource": "리소스를 선택하세요",
"resourceTitle": "리소스 관리", "proxyResourceTitle": "공개 리소스 관리",
"resourceDescription": "개인 애플리케이션에 대한 보안 프록시 생성", "proxyResourceDescription": "웹 브라우저를 통해 공용으로 접근할 수 있는 리소스를 생성하고 관리하세요.",
"clientResourceTitle": "개인 리소스 관리",
"clientResourceDescription": "연결된 클라이언트를 통해서만 접근할 수 있는 리소스를 생성하고 관리하세요.",
"resourcesSearch": "리소스 검색...", "resourcesSearch": "리소스 검색...",
"resourceAdd": "리소스 추가", "resourceAdd": "리소스 추가",
"resourceErrorDelte": "리소스 삭제 중 오류 발생", "resourceErrorDelte": "리소스 삭제 중 오류 발생",
@@ -155,9 +157,9 @@
"resourceMessageRemove": "제거되면 리소스에 더 이상 접근할 수 없습니다. 리소스와 연결된 모든 대상도 제거됩니다.", "resourceMessageRemove": "제거되면 리소스에 더 이상 접근할 수 없습니다. 리소스와 연결된 모든 대상도 제거됩니다.",
"resourceQuestionRemove": "조직에서 리소스를 제거하시겠습니까?", "resourceQuestionRemove": "조직에서 리소스를 제거하시겠습니까?",
"resourceHTTP": "HTTPS 리소스", "resourceHTTP": "HTTPS 리소스",
"resourceHTTPDescription": "서브도메인 또는 기본 도메인을 사용하여 HTTPS를 통해 앱에 대한 요청을 프록시합니다.", "resourceHTTPDescription": "서브도메인이나 기본 도메인을 사용하여 HTTPS를 통해 앱에 대한 요청을 프록시합니다.",
"resourceRaw": "원시 TCP/UDP 리소스", "resourceRaw": "원시 TCP/UDP 리소스",
"resourceRawDescription": "TCP/UDP를 통해 포트 번호를 사용하여 앱에 요청을 프록시합니다.", "resourceRawDescription": "TCP/UDP를 사용하여 포트 번호를 통해 앱에 요청을 프록시합니다. 이 기능은 사이트가 노드에 연결될 때만 작동합니다.",
"resourceCreate": "리소스 생성", "resourceCreate": "리소스 생성",
"resourceCreateDescription": "아래 단계를 따라 새 리소스를 생성하세요.", "resourceCreateDescription": "아래 단계를 따라 새 리소스를 생성하세요.",
"resourceSeeAll": "모든 리소스 보기", "resourceSeeAll": "모든 리소스 보기",
@@ -171,9 +173,9 @@
"noCountryFound": "국가를 찾을 수 없습니다.", "noCountryFound": "국가를 찾을 수 없습니다.",
"siteSelectionDescription": "이 사이트는 대상에 대한 연결을 제공합니다.", "siteSelectionDescription": "이 사이트는 대상에 대한 연결을 제공합니다.",
"resourceType": "리소스 유형", "resourceType": "리소스 유형",
"resourceTypeDescription": "리소스에 접근하는 방법을 결정하세요", "resourceTypeDescription": "리소스에 액세스하는 방법을 결정하세요.",
"resourceHTTPSSettings": "HTTPS 설정", "resourceHTTPSSettings": "HTTPS 설정",
"resourceHTTPSSettingsDescription": "리소스에 대한 HTTPS 접근 방식을 구성하십시오.", "resourceHTTPSSettingsDescription": "리소스 HTTPS 접근할 수 있는 방식을 구성합니다.",
"domainType": "도메인 유형", "domainType": "도메인 유형",
"subdomain": "서브도메인", "subdomain": "서브도메인",
"baseDomain": "기본 도메인", "baseDomain": "기본 도메인",
@@ -186,7 +188,7 @@
"resourcePortNumberDescription": "요청을 프록시하기 위한 외부 포트 번호입니다.", "resourcePortNumberDescription": "요청을 프록시하기 위한 외부 포트 번호입니다.",
"cancel": "취소", "cancel": "취소",
"resourceConfig": "구성 스니펫", "resourceConfig": "구성 스니펫",
"resourceConfigDescription": "TCP/UDP 리소스를 설정하기 위해 이 구성 스니펫을 복사하여 붙여넣으십시오.", "resourceConfigDescription": "TCP/UDP 리소스를 설정하기 위해 이 구성 스니펫을 복사하여 붙여넣습니다.",
"resourceAddEntrypoints": "Traefik: 엔트리포인트 추가", "resourceAddEntrypoints": "Traefik: 엔트리포인트 추가",
"resourceExposePorts": "Gerbil: Docker Compose에서 포트 노출", "resourceExposePorts": "Gerbil: Docker Compose에서 포트 노출",
"resourceLearnRaw": "TCP/UDP 리소스 구성 방법 알아보기", "resourceLearnRaw": "TCP/UDP 리소스 구성 방법 알아보기",
@@ -204,10 +206,10 @@
"rules": "규칙", "rules": "규칙",
"resourceSettingDescription": "리소스의 설정을 구성하세요.", "resourceSettingDescription": "리소스의 설정을 구성하세요.",
"resourceSetting": "{resourceName} 설정", "resourceSetting": "{resourceName} 설정",
"alwaysAllow": "항상 허용", "alwaysAllow": "인증 우회",
"alwaysDeny": "항상 거부", "alwaysDeny": "접근 차단",
"passToAuth": "인증으로 전달", "passToAuth": "인증으로 전달",
"orgSettingsDescription": "조직의 일반 설정을 구성하세요", "orgSettingsDescription": "조직의 일반 설정을 구성하세요.",
"orgGeneralSettings": "조직 설정", "orgGeneralSettings": "조직 설정",
"orgGeneralSettingsDescription": "조직 세부정보 및 구성을 관리하세요.", "orgGeneralSettingsDescription": "조직 세부정보 및 구성을 관리하세요.",
"saveGeneralSettings": "일반 설정 저장", "saveGeneralSettings": "일반 설정 저장",
@@ -232,7 +234,7 @@
"orgMissing": "조직 ID가 누락되었습니다", "orgMissing": "조직 ID가 누락되었습니다",
"orgMissingMessage": "조직 ID 없이 초대장을 재생성할 수 없습니다.", "orgMissingMessage": "조직 ID 없이 초대장을 재생성할 수 없습니다.",
"accessUsersManage": "사용자 관리", "accessUsersManage": "사용자 관리",
"accessUsersDescription": "사용자 초대하고 역할에 추가하여 조직에 대한 접근을 관리하세요", "accessUsersDescription": "이 조직에 액세스할 사용자 초대 및 관리",
"accessUsersSearch": "사용자 검색...", "accessUsersSearch": "사용자 검색...",
"accessUserCreate": "사용자 생성", "accessUserCreate": "사용자 생성",
"accessUserRemove": "사용자 제거", "accessUserRemove": "사용자 제거",
@@ -241,13 +243,13 @@
"role": "역할", "role": "역할",
"nameRequired": "이름은 필수입니다", "nameRequired": "이름은 필수입니다",
"accessRolesManage": "역할 관리", "accessRolesManage": "역할 관리",
"accessRolesDescription": "조직에 대한 액세스를 관리할 역할 구성", "accessRolesDescription": "조직의 사용자에 대한 역할을 생성하고 관리합니다.",
"accessRolesSearch": "역할 검색...", "accessRolesSearch": "역할 검색...",
"accessRolesAdd": "역할 추가", "accessRolesAdd": "역할 추가",
"accessRoleDelete": "역할 삭제", "accessRoleDelete": "역할 삭제",
"description": "설명", "description": "설명",
"inviteTitle": "열린 초대", "inviteTitle": "열린 초대",
"inviteDescription": "다른 사용자에 대한 초대 관리하세요", "inviteDescription": "다른 사용자가 조직에 참여하도록 초대장을 관리합니다.",
"inviteSearch": "초대 검색...", "inviteSearch": "초대 검색...",
"minutes": "분", "minutes": "분",
"hours": "시간", "hours": "시간",
@@ -264,10 +266,10 @@
"apiKeysCreateDescription": "조직을 위한 새로운 API 키 생성", "apiKeysCreateDescription": "조직을 위한 새로운 API 키 생성",
"apiKeysGeneralSettings": "권한", "apiKeysGeneralSettings": "권한",
"apiKeysGeneralSettingsDescription": "이 API 키가 수행할 수 있는 작업 결정", "apiKeysGeneralSettingsDescription": "이 API 키가 수행할 수 있는 작업 결정",
"apiKeysList": "귀하의 API 키", "apiKeysList": "새로운 API 키",
"apiKeysSave": "API 키 저장", "apiKeysSave": "API 키 저장",
"apiKeysSaveDescription": "이것은 한 번만 볼 수 있습니다. 안전한 장소에 복사해 두세요.", "apiKeysSaveDescription": "이것은 한 번만 볼 수 있습니다. 안전한 장소에 복사해 두세요.",
"apiKeysInfo": "귀하의 API 키는 다음과 같습니다:", "apiKeysInfo": "API 키는 다음과 같습니다:",
"apiKeysConfirmCopy": "API 키를 복사했습니다", "apiKeysConfirmCopy": "API 키를 복사했습니다",
"generate": "생성", "generate": "생성",
"done": "완료", "done": "완료",
@@ -424,7 +426,7 @@
"userCreated": "사용자가 생성되었습니다.", "userCreated": "사용자가 생성되었습니다.",
"userCreatedDescription": "사용자가 성공적으로 생성되었습니다.", "userCreatedDescription": "사용자가 성공적으로 생성되었습니다.",
"userTypeInternal": "내부 사용자", "userTypeInternal": "내부 사용자",
"userTypeInternalDescription": "사용자를 초대하여 귀하의 조직에 직접 참여하게 하세요.", "userTypeInternalDescription": "사용자를 초대하여 조직에 직접 참여하게 하세요.",
"userTypeExternal": "외부 사용자", "userTypeExternal": "외부 사용자",
"userTypeExternalDescription": "외부 신원 공급자를 사용하여 사용자를 생성하세요.", "userTypeExternalDescription": "외부 신원 공급자를 사용하여 사용자를 생성하세요.",
"accessUserCreateDescription": "새 사용자를 만들기 위한 아래 단계를 따르세요.", "accessUserCreateDescription": "새 사용자를 만들기 위한 아래 단계를 따르세요.",
@@ -436,6 +438,16 @@
"inviteEmailSent": "사용자에게 초대 이메일 보내기", "inviteEmailSent": "사용자에게 초대 이메일 보내기",
"inviteValid": "유효 기간", "inviteValid": "유효 기간",
"selectDuration": "지속 시간 선택", "selectDuration": "지속 시간 선택",
"selectResource": "리소스 선택",
"filterByResource": "리소스별 필터",
"resetFilters": "필터 재설정",
"totalBlocked": "Pangolin으로 차단된 요청",
"totalRequests": "총 요청 수",
"requestsByCountry": "국가별 요청 수",
"requestsByDay": "일자별 요청 수",
"blocked": "차단됨",
"allowed": "허용됨",
"topCountries": "상위 국가",
"accessRoleSelect": "역할 선택", "accessRoleSelect": "역할 선택",
"inviteEmailSentDescription": "아래의 접근 링크와 함께 사용자에게 이메일이 전송되었습니다. 사용자는 초대를 수락하기 위해 링크에 접근해야 합니다.", "inviteEmailSentDescription": "아래의 접근 링크와 함께 사용자에게 이메일이 전송되었습니다. 사용자는 초대를 수락하기 위해 링크에 접근해야 합니다.",
"inviteSentDescription": "사용자가 초대되었습니다. 초대를 수락하려면 아래 링크에 접속해야 합니다.", "inviteSentDescription": "사용자가 초대되었습니다. 초대를 수락하려면 아래 링크에 접속해야 합니다.",
@@ -464,7 +476,7 @@
"proxyErrorInvalidHeader": "잘못된 사용자 정의 호스트 헤더 값입니다. 도메인 이름 형식을 사용하거나 사용자 정의 호스트 헤더를 해제하려면 비워 두십시오.", "proxyErrorInvalidHeader": "잘못된 사용자 정의 호스트 헤더 값입니다. 도메인 이름 형식을 사용하거나 사용자 정의 호스트 헤더를 해제하려면 비워 두십시오.",
"proxyErrorTls": "유효하지 않은 TLS 서버 이름입니다. 도메인 이름 형식을 사용하거나 비워 두어 TLS 서버 이름을 제거하십시오.", "proxyErrorTls": "유효하지 않은 TLS 서버 이름입니다. 도메인 이름 형식을 사용하거나 비워 두어 TLS 서버 이름을 제거하십시오.",
"proxyEnableSSL": "SSL 활성화", "proxyEnableSSL": "SSL 활성화",
"proxyEnableSSLDescription": "대상에 대한 안전한 HTTPS 연결을 위 SSL/TLS 암호화를 활성화하세요.", "proxyEnableSSLDescription": "타겟과의 안전한 HTTPS 연결을 위 SSL/TLS 암호화를 활성화하세요.",
"target": "대상", "target": "대상",
"configureTarget": "대상 구성", "configureTarget": "대상 구성",
"targetErrorFetch": "대상 가져오는 데 실패했습니다.", "targetErrorFetch": "대상 가져오는 데 실패했습니다.",
@@ -480,14 +492,14 @@
"targetsErrorUpdate": "대상 업데이트 실패", "targetsErrorUpdate": "대상 업데이트 실패",
"targetsErrorUpdateDescription": "대상 업데이트 중 오류가 발생했습니다.", "targetsErrorUpdateDescription": "대상 업데이트 중 오류가 발생했습니다.",
"targetTlsUpdate": "TLS 설정이 업데이트되었습니다.", "targetTlsUpdate": "TLS 설정이 업데이트되었습니다.",
"targetTlsUpdateDescription": "TLS 설정이 성공적으로 업데이트되었습니다.", "targetTlsUpdateDescription": "TLS 설정이 성공적으로 업데이트되었습니다",
"targetErrorTlsUpdate": "TLS 설정 업데이트에 실패했습니다.", "targetErrorTlsUpdate": "TLS 설정 업데이트에 실패했습니다.",
"targetErrorTlsUpdateDescription": "TLS 설정을 업데이트하는 동안 오류가 발생했습니다", "targetErrorTlsUpdateDescription": "TLS 설정을 업데이트하는 동안 오류가 발생했습니다",
"proxyUpdated": "프록시 설정이 업데이트되었습니다.", "proxyUpdated": "프록시 설정이 업데이트되었습니다.",
"proxyUpdatedDescription": "프록시 설정이 성공적으로 업데이트되었습니다", "proxyUpdatedDescription": "프록시 설정이 성공적으로 업데이트되었습니다",
"proxyErrorUpdate": "프록시 설정 업데이트에 실패했습니다.", "proxyErrorUpdate": "프록시 설정 업데이트에 실패했습니다.",
"proxyErrorUpdateDescription": "프록시 설정을 업데이트하는 동안 오류가 발생했습니다", "proxyErrorUpdateDescription": "프록시 설정을 업데이트하는 동안 오류가 발생했습니다",
"targetAddr": "IP / 호스트 이름", "targetAddr": "호스트",
"targetPort": "포트", "targetPort": "포트",
"targetProtocol": "프로토콜", "targetProtocol": "프로토콜",
"targetTlsSettings": "보안 연결 구성", "targetTlsSettings": "보안 연결 구성",
@@ -502,7 +514,7 @@
"targetStickySessionsDescription": "세션 전체 동안 동일한 백엔드 대상을 유지합니다.", "targetStickySessionsDescription": "세션 전체 동안 동일한 백엔드 대상을 유지합니다.",
"methodSelect": "선택 방법", "methodSelect": "선택 방법",
"targetSubmit": "대상 추가", "targetSubmit": "대상 추가",
"targetNoOne": "이 리소스에는 대상이 없습니다. 백엔드로 요청을 보려면 대상을 추가하세요.", "targetNoOne": "이 리소스에는 대상이 없습니다. 백엔드로 요청을 보낼 대상을 구성하려면 대상을 추가하세요.",
"targetNoOneDescription": "위에 하나 이상의 대상을 추가하면 로드 밸런싱이 활성화됩니다.", "targetNoOneDescription": "위에 하나 이상의 대상을 추가하면 로드 밸런싱이 활성화됩니다.",
"targetsSubmit": "대상 저장", "targetsSubmit": "대상 저장",
"addTarget": "대상 추가", "addTarget": "대상 추가",
@@ -516,6 +528,8 @@
"targetCreatedDescription": "대상이 성공적으로 생성되었습니다.", "targetCreatedDescription": "대상이 성공적으로 생성되었습니다.",
"targetErrorCreate": "대상 생성 실패", "targetErrorCreate": "대상 생성 실패",
"targetErrorCreateDescription": "대상 생성 중 오류가 발생했습니다.", "targetErrorCreateDescription": "대상 생성 중 오류가 발생했습니다.",
"tlsServerName": "TLS 서버 이름",
"tlsServerNameDescription": "SNI를 위한 TLS 서버 이름",
"save": "저장", "save": "저장",
"proxyAdditional": "추가 프록시 설정", "proxyAdditional": "추가 프록시 설정",
"proxyAdditionalDescription": "리소스가 프록시 설정을 처리하는 방법 구성", "proxyAdditionalDescription": "리소스가 프록시 설정을 처리하는 방법 구성",
@@ -607,9 +621,9 @@
"unknownCommand": "알 수 없는 명령", "unknownCommand": "알 수 없는 명령",
"newtErrorFetchReleases": "릴리스 정보를 가져오는 데 실패했습니다: {err}", "newtErrorFetchReleases": "릴리스 정보를 가져오는 데 실패했습니다: {err}",
"newtErrorFetchLatest": "최신 릴리스를 가져오는 중 오류 발생: {err}", "newtErrorFetchLatest": "최신 릴리스를 가져오는 중 오류 발생: {err}",
"newtEndpoint": "Newt 엔드포인트", "newtEndpoint": "엔드포인트",
"newtId": "뉴트 ID", "newtId": "ID",
"newtSecretKey": "Newt 비밀 키", "newtSecretKey": "비밀",
"architecture": "아키텍처", "architecture": "아키텍처",
"sites": "사이트", "sites": "사이트",
"siteWgAnyClients": "WireGuard 클라이언트를 사용하여 연결하십시오. 피어 IP를 사용하여 내부 리소스에 접근해야 합니다.", "siteWgAnyClients": "WireGuard 클라이언트를 사용하여 연결하십시오. 피어 IP를 사용하여 내부 리소스에 접근해야 합니다.",
@@ -671,7 +685,7 @@
"resourcePincodeSetupTitle": "핀코드 설정", "resourcePincodeSetupTitle": "핀코드 설정",
"resourcePincodeSetupTitleDescription": "이 리소스를 보호하기 위해 핀 코드를 설정하십시오.", "resourcePincodeSetupTitleDescription": "이 리소스를 보호하기 위해 핀 코드를 설정하십시오.",
"resourceRoleDescription": "관리자는 항상 이 리소스에 접근할 수 있습니다.", "resourceRoleDescription": "관리자는 항상 이 리소스에 접근할 수 있습니다.",
"resourceUsersRoles": "사용자 및 역할", "resourceUsersRoles": "접근 제어",
"resourceUsersRolesDescription": "이 리소스를 방문할 수 있는 사용자 및 역할을 구성하십시오", "resourceUsersRolesDescription": "이 리소스를 방문할 수 있는 사용자 및 역할을 구성하십시오",
"resourceUsersRolesSubmit": "사용자 및 역할 저장", "resourceUsersRolesSubmit": "사용자 및 역할 저장",
"resourceWhitelistSave": "성공적으로 저장되었습니다.", "resourceWhitelistSave": "성공적으로 저장되었습니다.",
@@ -702,6 +716,7 @@
"resourceTransferSubmit": "리소스 전송", "resourceTransferSubmit": "리소스 전송",
"siteDestination": "대상 사이트", "siteDestination": "대상 사이트",
"searchSites": "사이트 검색", "searchSites": "사이트 검색",
"countries": "국가",
"accessRoleCreate": "역할 생성", "accessRoleCreate": "역할 생성",
"accessRoleCreateDescription": "사용자를 그룹화하고 권한을 관리하기 위해 새 역할을 생성하세요.", "accessRoleCreateDescription": "사용자를 그룹화하고 권한을 관리하기 위해 새 역할을 생성하세요.",
"accessRoleCreateSubmit": "역할 생성", "accessRoleCreateSubmit": "역할 생성",
@@ -909,6 +924,10 @@
"passwordResetSent": "이 이메일 주소로 비밀번호 재설정 코드를 전송하겠습니다.", "passwordResetSent": "이 이메일 주소로 비밀번호 재설정 코드를 전송하겠습니다.",
"passwordResetCode": "코드 재설정", "passwordResetCode": "코드 재설정",
"passwordResetCodeDescription": "재설정 코드를 확인하려면 이메일을 확인하세요.", "passwordResetCodeDescription": "재설정 코드를 확인하려면 이메일을 확인하세요.",
"generatePasswordResetCode": "비밀번호 초기화 코드 생성",
"passwordResetCodeGenerated": "비밀번호 초기화 코드 생성됨",
"passwordResetCodeGeneratedDescription": "이 코드를 사용자와 공유하세요. 사용자는 이를 사용하여 비밀번호를 재설정할 수 있습니다.",
"passwordResetUrl": "리디렉션 URL",
"passwordNew": "새 비밀번호", "passwordNew": "새 비밀번호",
"passwordNewConfirm": "새 비밀번호 확인", "passwordNewConfirm": "새 비밀번호 확인",
"changePassword": "비밀번호 변경", "changePassword": "비밀번호 변경",
@@ -926,6 +945,9 @@
"pincodeAuth": "인증 코드", "pincodeAuth": "인증 코드",
"pincodeSubmit2": "코드 제출", "pincodeSubmit2": "코드 제출",
"passwordResetSubmit": "재설정 요청", "passwordResetSubmit": "재설정 요청",
"passwordResetAlreadyHaveCode": "비밀번호 초기화 코드를 입력하세요",
"passwordResetSmtpRequired": "관리자에게 문의하십시오",
"passwordResetSmtpRequiredDescription": "비밀번호를 재설정하려면 비밀번호 초기화 코드가 필요합니다. 지원을 받으려면 관리자에게 문의하십시오.",
"passwordBack": "비밀번호로 돌아가기", "passwordBack": "비밀번호로 돌아가기",
"loginBack": "로그인으로 돌아가기", "loginBack": "로그인으로 돌아가기",
"signup": "가입하기", "signup": "가입하기",
@@ -1091,12 +1113,15 @@
"actionListSiteResources": "사이트 리소스 목록", "actionListSiteResources": "사이트 리소스 목록",
"actionUpdateSiteResource": "사이트 리소스 업데이트", "actionUpdateSiteResource": "사이트 리소스 업데이트",
"actionListInvitations": "초대 목록", "actionListInvitations": "초대 목록",
"actionExportLogs": "로그 내보내기",
"actionViewLogs": "로그 보기",
"noneSelected": "선택된 항목 없음", "noneSelected": "선택된 항목 없음",
"orgNotFound2": "조직이 없습니다.", "orgNotFound2": "조직이 없습니다.",
"searchProgress": "검색...", "searchProgress": "검색...",
"create": "생성", "create": "생성",
"orgs": "조직", "orgs": "조직",
"loginError": "로그인 중 오류가 발생했습니다", "loginError": "로그인 중 오류가 발생했습니다",
"loginRequiredForDevice": "장치를 인증하려면 로그인이 필요합니다.",
"passwordForgot": "비밀번호를 잊으셨나요?", "passwordForgot": "비밀번호를 잊으셨나요?",
"otpAuth": "이중 인증", "otpAuth": "이중 인증",
"otpAuthDescription": "인증 앱에서 코드를 입력하거나 단일 사용 백업 코드 중 하나를 입력하세요.", "otpAuthDescription": "인증 앱에서 코드를 입력하거나 단일 사용 백업 코드 중 하나를 입력하세요.",
@@ -1151,37 +1176,47 @@
"sidebarHome": "홈", "sidebarHome": "홈",
"sidebarSites": "사이트", "sidebarSites": "사이트",
"sidebarResources": "리소스", "sidebarResources": "리소스",
"sidebarProxyResources": "공유",
"sidebarClientResources": "비공개",
"sidebarAccessControl": "액세스 제어", "sidebarAccessControl": "액세스 제어",
"sidebarLogsAndAnalytics": "로그 및 분석",
"sidebarUsers": "사용자", "sidebarUsers": "사용자",
"sidebarAdmin": "관리자",
"sidebarInvitations": "초대", "sidebarInvitations": "초대",
"sidebarRoles": "역할", "sidebarRoles": "역할",
"sidebarShareableLinks": "공유 가능한 링크", "sidebarShareableLinks": "링크",
"sidebarApiKeys": "API 키", "sidebarApiKeys": "API 키",
"sidebarSettings": "설정", "sidebarSettings": "설정",
"sidebarAllUsers": "모든 사용자", "sidebarAllUsers": "모든 사용자",
"sidebarIdentityProviders": "신원 공급자", "sidebarIdentityProviders": "신원 공급자",
"sidebarLicense": "라이선스", "sidebarLicense": "라이선스",
"sidebarClients": "클라이언트", "sidebarClients": "클라이언트",
"sidebarUserDevices": "사용자",
"sidebarMachineClients": "기계",
"sidebarDomains": "도메인", "sidebarDomains": "도메인",
"sidebarGeneral": "일반",
"sidebarLogAndAnalytics": "로그 & 통계",
"sidebarBluePrints": "청사진", "sidebarBluePrints": "청사진",
"sidebarOrganization": "조직",
"sidebarLogsAnalytics": "분석",
"blueprints": "청사진", "blueprints": "청사진",
"blueprintsDescription": "청사진은 리소스와 그 설정을 정의하는 선언적인 YAML 구성입니다", "blueprintsDescription": "선언적 구성을 적용하고 이전 실행을 봅니다",
"blueprintAdd": "청사진 추가", "blueprintAdd": "청사진 추가",
"blueprintGoBack": "모든 청사진 보기", "blueprintGoBack": "모든 청사진 보기",
"blueprintCreate": "청사진 생성", "blueprintCreate": "청사진 생성",
"blueprintCreateDescription2": "새 청사진을 생성하고 적용하려면 아래 단계를 따르십시오", "blueprintCreateDescription2": "새 청사진을 생성하고 적용하려면 아래 단계를 따르십시오",
"blueprintDetails": "청사진 세부 사항", "blueprintDetails": "청사진 세부사항",
"blueprintDetailsDescription": "청사진 실행 세부 정보 보기", "blueprintDetailsDescription": "적용된 청사진의 결과와 발생한 오류를 확인합니다",
"blueprintInfo": "청사진 정보", "blueprintInfo": "청사진 정보",
"message": "메시지", "message": "메시지",
"blueprintContentsDescription": "인프라를 설명하는 YAML 콘텐츠를 정의하십시오", "blueprintContentsDescription": "인프라를 설명하는 YAML 내용을 정의하십시오",
"blueprintErrorCreateDescription": "청사진을 적용하는 중 오류가 발생했습니다", "blueprintErrorCreateDescription": "청사진을 적용하는 중 오류가 발생했습니다",
"blueprintErrorCreate": "청사진 생성 오류", "blueprintErrorCreate": "청사진 생성 오류",
"searchBlueprintProgress": "청사진 검색...", "searchBlueprintProgress": "청사진 검색...",
"appliedAt": "적용 시점", "appliedAt": "적용 시점",
"source": "출처", "source": "출처",
"contents": "콘텐츠", "contents": "콘텐츠",
"parsedContents": "구문 분석된 콘텐츠", "parsedContents": "구문 분석된 콘텐츠 (읽기 전용)",
"enableDockerSocket": "Docker 청사진 활성화", "enableDockerSocket": "Docker 청사진 활성화",
"enableDockerSocketDescription": "블루프린트 레이블을 위한 Docker 소켓 레이블 수집을 활성화합니다. 소켓 경로는 Newt에 제공되어야 합니다.", "enableDockerSocketDescription": "블루프린트 레이블을 위한 Docker 소켓 레이블 수집을 활성화합니다. 소켓 경로는 Newt에 제공되어야 합니다.",
"enableDockerSocketLink": "자세히 알아보기", "enableDockerSocketLink": "자세히 알아보기",
@@ -1230,14 +1265,14 @@
"loading": "로딩 중", "loading": "로딩 중",
"restart": "재시작", "restart": "재시작",
"domains": "도메인", "domains": "도메인",
"domainsDescription": "조직의 도메인을 관리합니다", "domainsDescription": "조직에서 사용 가능한 도메인 생성 및 관리",
"domainsSearch": "도메인 검색...", "domainsSearch": "도메인 검색...",
"domainAdd": "도메인 추가", "domainAdd": "도메인 추가",
"domainAddDescription": "조직에 새로운 도메인을 등록하세요", "domainAddDescription": "조직에 새로운 도메인을 등록하세요",
"domainCreate": "도메인 생성", "domainCreate": "도메인 생성",
"domainCreatedDescription": "도메인이 성공적으로 생성되었습니다", "domainCreatedDescription": "도메인이 성공적으로 생성되었습니다",
"domainDeletedDescription": "도메인이 성공적으로 삭제되었습니다", "domainDeletedDescription": "도메인이 성공적으로 삭제되었습니다",
"domainQuestionRemove": "계정에서 도메인을 제거하시겠습니까?", "domainQuestionRemove": "도메인을 제거하시겠습니까?",
"domainMessageRemove": "제거되면 도메인이 더 이상 계정과 연관되지 않습니다.", "domainMessageRemove": "제거되면 도메인이 더 이상 계정과 연관되지 않습니다.",
"domainConfirmDelete": "도메인 삭제 확인", "domainConfirmDelete": "도메인 삭제 확인",
"domainDelete": "도메인 삭제", "domainDelete": "도메인 삭제",
@@ -1279,6 +1314,15 @@
"settingsErrorUpdateDescription": "설정을 업데이트하는 동안 오류가 발생했습니다", "settingsErrorUpdateDescription": "설정을 업데이트하는 동안 오류가 발생했습니다",
"sidebarCollapse": "줄이기", "sidebarCollapse": "줄이기",
"sidebarExpand": "확장하기", "sidebarExpand": "확장하기",
"productUpdateMoreInfo": "{noOfUpdates}개의 더 많은 업데이트",
"productUpdateInfo": "{noOfUpdates}개 업데이트",
"productUpdateWhatsNew": "새로운 기능",
"productUpdateTitle": "제품 업데이트",
"productUpdateEmpty": "업데이트 없음",
"dismissAll": "모두 해제",
"pangolinUpdateAvailable": "업데이트 가능",
"pangolinUpdateAvailableInfo": "버전 {version}을(를) 설치할 준비가 되었습니다",
"pangolinUpdateAvailableReleaseNotes": "릴리스 노트 보기",
"newtUpdateAvailable": "업데이트 가능", "newtUpdateAvailable": "업데이트 가능",
"newtUpdateAvailableInfo": "뉴트의 새 버전이 출시되었습니다. 최상의 경험을 위해 최신 버전으로 업데이트하세요.", "newtUpdateAvailableInfo": "뉴트의 새 버전이 출시되었습니다. 최상의 경험을 위해 최신 버전으로 업데이트하세요.",
"domainPickerEnterDomain": "도메인", "domainPickerEnterDomain": "도메인",
@@ -1421,28 +1465,31 @@
"and": "및", "and": "및",
"privacyPolicy": "개인 정보 보호 정책" "privacyPolicy": "개인 정보 보호 정책"
}, },
"signUpMarketing": {
"keepMeInTheLoop": "이메일을 통해 소식, 업데이트 및 새로운 기능을 받아보세요."
},
"siteRequired": "사이트가 필요합니다.", "siteRequired": "사이트가 필요합니다.",
"olmTunnel": "Olm 터널", "olmTunnel": "Olm 터널",
"olmTunnelDescription": "클라이언트 연결에 Olm 사용", "olmTunnelDescription": "클라이언트 연결에 Olm 사용",
"errorCreatingClient": "클라이언트 생성 오류", "errorCreatingClient": "클라이언트 생성 오류",
"clientDefaultsNotFound": "클라이언트 기본값을 찾을 수 없습니다.", "clientDefaultsNotFound": "클라이언트 기본값을 찾을 수 없습니다.",
"createClient": "클라이언트 생성", "createClient": "클라이언트 생성",
"createClientDescription": "사이트에 연결하기 위한 새 클라이언트를 생성하십시오.", "createClientDescription": "개인 리소스에 액세스할 새 클라이언트를 생성하십시오",
"seeAllClients": "모든 클라이언트 보기", "seeAllClients": "모든 클라이언트 보기",
"clientInformation": "클라이언트 정보", "clientInformation": "클라이언트 정보",
"clientNamePlaceholder": "클라이언트 이름", "clientNamePlaceholder": "클라이언트 이름",
"address": "주소", "address": "주소",
"subnetPlaceholder": "서브넷", "subnetPlaceholder": "서브넷",
"addressDescription": "클라이언트가 연결에 사용할 주소", "addressDescription": "클라이언트의 내부 주소. 조직의 서브넷 내에 있어야 합니다.",
"selectSites": "사이트 선택", "selectSites": "사이트 선택",
"sitesDescription": "클라이언트는 선택한 사이트에 연결됩니다.", "sitesDescription": "클라이언트는 선택한 사이트에 연결됩니다.",
"clientInstallOlm": "Olm 설치", "clientInstallOlm": "Olm 설치",
"clientInstallOlmDescription": "시스템에서 Olm을 실행하기", "clientInstallOlmDescription": "시스템에서 Olm을 실행하기",
"clientOlmCredentials": "Olm 자격 증명", "clientOlmCredentials": "Olm 자격 증명",
"clientOlmCredentialsDescription": "Olm이 서버와 인증하는 방법입니다.", "clientOlmCredentialsDescription": "이것이 Newt가 서버와 인증하는 방법입니다",
"olmEndpoint": "Olm 엔드포인트", "olmEndpoint": "Olm 엔드포인트",
"olmId": "Olm ID", "olmId": "ID",
"olmSecretKey": "Olm 비밀 키", "olmSecretKey": "비밀",
"clientCredentialsSave": "자격 증명 저장", "clientCredentialsSave": "자격 증명 저장",
"clientCredentialsSaveDescription": "이것은 한 번만 볼 수 있습니다. 안전한 장소에 복사해 두세요.", "clientCredentialsSaveDescription": "이것은 한 번만 볼 수 있습니다. 안전한 장소에 복사해 두세요.",
"generalSettingsDescription": "이 클라이언트에 대한 일반 설정을 구성하세요.", "generalSettingsDescription": "이 클라이언트에 대한 일반 설정을 구성하세요.",
@@ -1454,9 +1501,7 @@
"sitesFetchError": "사이트 가져오는 중 오류가 발생했습니다.", "sitesFetchError": "사이트 가져오는 중 오류가 발생했습니다.",
"olmErrorFetchReleases": "Olm 릴리즈 가져오는 중 오류가 발생했습니다.", "olmErrorFetchReleases": "Olm 릴리즈 가져오는 중 오류가 발생했습니다.",
"olmErrorFetchLatest": "최신 Olm 릴리즈 가져오는 중 오류가 발생했습니다.", "olmErrorFetchLatest": "최신 Olm 릴리즈 가져오는 중 오류가 발생했습니다.",
"remoteSubnets": "원격 서브넷",
"enterCidrRange": "CIDR 범위 입력", "enterCidrRange": "CIDR 범위 입력",
"remoteSubnetsDescription": "이 사이트에서 원격으로 액세스할 수 있는 CIDR 범위를 추가하세요. 10.0.0.0/24와 같은 형식을 사용하세요. 이는 VPN 클라이언트 연결에만 적용됩니다.",
"resourceEnableProxy": "공개 프록시 사용", "resourceEnableProxy": "공개 프록시 사용",
"resourceEnableProxyDescription": "이 리소스에 대한 공개 프록시를 활성화하십시오. 이를 통해 네트워크 외부로부터 클라우드를 통해 열린 포트에서 리소스에 액세스할 수 있습니다. Traefik 구성이 필요합니다.", "resourceEnableProxyDescription": "이 리소스에 대한 공개 프록시를 활성화하십시오. 이를 통해 네트워크 외부로부터 클라우드를 통해 열린 포트에서 리소스에 액세스할 수 있습니다. Traefik 구성이 필요합니다.",
"externalProxyEnabled": "외부 프록시 활성화됨", "externalProxyEnabled": "외부 프록시 활성화됨",
@@ -1474,14 +1519,15 @@
"enableHealthChecksDescription": "이 대상을 모니터링하여 건강 상태를 확인하세요. 필요에 따라 대상과 다른 엔드포인트를 모니터링할 수 있습니다.", "enableHealthChecksDescription": "이 대상을 모니터링하여 건강 상태를 확인하세요. 필요에 따라 대상과 다른 엔드포인트를 모니터링할 수 있습니다.",
"healthScheme": "방법", "healthScheme": "방법",
"healthSelectScheme": "방법 선택", "healthSelectScheme": "방법 선택",
"healthCheckPortInvalid": "올바르지 않은 서브넷 마스크입니다. 1에서 65535 사이여야 합니다",
"healthCheckPath": "경로", "healthCheckPath": "경로",
"healthHostname": "IP / 호스트", "healthHostname": "IP / 호스트",
"healthPort": "포트", "healthPort": "포트",
"healthCheckPathDescription": "상태 확인을 위한 경로입니다.", "healthCheckPathDescription": "상태 확인을 위한 경로입니다.",
"healthyIntervalSeconds": "정상 간격", "healthyIntervalSeconds": "정상 간격(초)",
"unhealthyIntervalSeconds": "비정상 간격", "unhealthyIntervalSeconds": "비정상 간격(초)",
"IntervalSeconds": "정상 간격", "IntervalSeconds": "정상 간격",
"timeoutSeconds": "시간 초과", "timeoutSeconds": "타임아웃(초)",
"timeIsInSeconds": "시간은 초 단위입니다", "timeIsInSeconds": "시간은 초 단위입니다",
"retryAttempts": "재시도 횟수", "retryAttempts": "재시도 횟수",
"expectedResponseCodes": "예상 응답 코드", "expectedResponseCodes": "예상 응답 코드",
@@ -1517,16 +1563,22 @@
"resourceEditDomain": "도메인 수정", "resourceEditDomain": "도메인 수정",
"siteName": "사이트 이름", "siteName": "사이트 이름",
"proxyPort": "포트", "proxyPort": "포트",
"resourcesTableProxyResources": "프록시 리소스", "resourcesTableProxyResources": "공유",
"resourcesTableClientResources": "클라이언트 리소스", "resourcesTableClientResources": "비공개",
"resourcesTableNoProxyResourcesFound": "프록시 리소스를 찾을 수 없습니다.", "resourcesTableNoProxyResourcesFound": "프록시 리소스를 찾을 수 없습니다.",
"resourcesTableNoInternalResourcesFound": "내부 리소스를 찾을 수 없습니다.", "resourcesTableNoInternalResourcesFound": "내부 리소스를 찾을 수 없습니다.",
"resourcesTableDestination": "대상지", "resourcesTableDestination": "대상지",
"resourcesTableTheseResourcesForUseWith": "이 리소스는 다음과 함께 사용하기 위한 것입니다.", "resourcesTableAlias": "별칭",
"resourcesTableClients": "클라이언트", "resourcesTableClients": "클라이언트",
"resourcesTableAndOnlyAccessibleInternally": "클라이언트와 연결되었을 때만 내부적으로 접근 가능합니다.", "resourcesTableAndOnlyAccessibleInternally": "클라이언트와 연결되었을 때만 내부적으로 접근 가능합니다.",
"editInternalResourceDialogEditClientResource": "클라이언트 리소스 수정", "resourcesTableNoTargets": "대상 없음",
"editInternalResourceDialogUpdateResourceProperties": "{resourceName}의 리소스 속성과 대상 구성을 업데이트하세요.", "resourcesTableHealthy": "정상",
"resourcesTableDegraded": "저하됨",
"resourcesTableOffline": "오프라인",
"resourcesTableUnknown": "알 수 없음",
"resourcesTableNotMonitored": "모니터링되지 않음",
"editInternalResourceDialogEditClientResource": "비공개 리소스 수정",
"editInternalResourceDialogUpdateResourceProperties": "{resourceName}의 리소스 속성과 대상 구성을 업데이트하세요",
"editInternalResourceDialogResourceProperties": "리소스 속성", "editInternalResourceDialogResourceProperties": "리소스 속성",
"editInternalResourceDialogName": "이름", "editInternalResourceDialogName": "이름",
"editInternalResourceDialogProtocol": "프로토콜", "editInternalResourceDialogProtocol": "프로토콜",
@@ -1545,11 +1597,22 @@
"editInternalResourceDialogInvalidIPAddressFormat": "잘못된 IP 주소 형식", "editInternalResourceDialogInvalidIPAddressFormat": "잘못된 IP 주소 형식",
"editInternalResourceDialogDestinationPortMin": "대상 포트는 최소 1이어야 합니다.", "editInternalResourceDialogDestinationPortMin": "대상 포트는 최소 1이어야 합니다.",
"editInternalResourceDialogDestinationPortMax": "대상 포트는 65536 미만이어야 합니다.", "editInternalResourceDialogDestinationPortMax": "대상 포트는 65536 미만이어야 합니다.",
"editInternalResourceDialogPortModeRequired": "포트 모드에는 프로토콜, 프록시 포트 및 대상 포트가 필요합니다",
"editInternalResourceDialogMode": "모드",
"editInternalResourceDialogModePort": "포트",
"editInternalResourceDialogModeHost": "호스트",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogDestination": "대상지",
"editInternalResourceDialogDestinationHostDescription": "사이트 네트워크의 자원 IP 주소입니다.",
"editInternalResourceDialogDestinationIPDescription": "사이트 네트워크의 자원 IP 또는 호스트 네임 주소입니다.",
"editInternalResourceDialogDestinationCidrDescription": "사이트 네트워크의 자원 IP 주소입니다.",
"editInternalResourceDialogAlias": "별칭",
"editInternalResourceDialogAliasDescription": "이 리소스에 대한 선택적 내부 DNS 별칭입니다.",
"createInternalResourceDialogNoSitesAvailable": "사용 가능한 사이트가 없습니다.", "createInternalResourceDialogNoSitesAvailable": "사용 가능한 사이트가 없습니다.",
"createInternalResourceDialogNoSitesAvailableDescription": "내부 리소스를 생성하려면 서브넷이 구성된 최소 하나의 Newt 사이트가 필요합니다.", "createInternalResourceDialogNoSitesAvailableDescription": "내부 리소스를 생성하려면 서브넷이 구성된 최소 하나의 Newt 사이트가 필요합니다.",
"createInternalResourceDialogClose": "닫기", "createInternalResourceDialogClose": "닫기",
"createInternalResourceDialogCreateClientResource": "클라이언트 리소스 생성", "createInternalResourceDialogCreateClientResource": "사이트 리소스 생성",
"createInternalResourceDialogCreateClientResourceDescription": "선택한 사이트에 연결된 클라이언트에 접근할 새 리소스를 생성합니다.", "createInternalResourceDialogCreateClientResourceDescription": "선택한 사이트에 연결된 클라이언트에 접근할 새 리소스를 생성합니다",
"createInternalResourceDialogResourceProperties": "리소스 속성", "createInternalResourceDialogResourceProperties": "리소스 속성",
"createInternalResourceDialogName": "이름", "createInternalResourceDialogName": "이름",
"createInternalResourceDialogSite": "사이트", "createInternalResourceDialogSite": "사이트",
@@ -1578,11 +1641,22 @@
"createInternalResourceDialogInvalidIPAddressFormat": "잘못된 IP 주소 형식", "createInternalResourceDialogInvalidIPAddressFormat": "잘못된 IP 주소 형식",
"createInternalResourceDialogDestinationPortMin": "대상 포트는 최소 1이어야 합니다.", "createInternalResourceDialogDestinationPortMin": "대상 포트는 최소 1이어야 합니다.",
"createInternalResourceDialogDestinationPortMax": "대상 포트는 65536 미만이어야 합니다.", "createInternalResourceDialogDestinationPortMax": "대상 포트는 65536 미만이어야 합니다.",
"createInternalResourceDialogPortModeRequired": "포트 모드에는 프로토콜, 프록시 포트 및 대상 포트가 필요합니다",
"createInternalResourceDialogMode": "모드",
"createInternalResourceDialogModePort": "포트",
"createInternalResourceDialogModeHost": "호스트",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogDestination": "대상지",
"createInternalResourceDialogDestinationHostDescription": "사이트 네트워크의 자원 IP 주소입니다.",
"createInternalResourceDialogDestinationCidrDescription": "사이트 네트워크의 자원 IP 주소입니다.",
"createInternalResourceDialogAlias": "별칭",
"createInternalResourceDialogAliasDescription": "이 리소스에 대한 선택적 내부 DNS 별칭입니다.",
"siteConfiguration": "설정", "siteConfiguration": "설정",
"siteAcceptClientConnections": "클라이언트 연결 허용", "siteAcceptClientConnections": "클라이언트 연결 허용",
"siteAcceptClientConnectionsDescription": "이 Newt 인스턴스를 게이트웨이로 사용하여 다른 장치가 연결될 수 있도록 허용합니다.", "siteAcceptClientConnectionsDescription": "사용자 장치와 클라이언트가 이 사이트의 리소스에 접근할 수 있도록 허용하세요. 나중에 변경할 수 있습니다.",
"siteAddress": "사이트 주소", "siteAddress": "사이트 주소(고급)",
"siteAddressDescription": "클라이언트가 연결하기 위한 호스트의 IP 주소를 지정합니다. 이는 클라이언트가 주소를 지정하기 위한 Pangolin 네트워크의 사이트 내부 주소입니다. 조직 서브넷 내에 있어야 합니다.", "siteAddressDescription": "사이트 내부 주소. 조직 서브넷 내에 있어야 합니다.",
"siteNameDescription": "나중에 변경할 수 있는 사이트의 표시 이름입니다.",
"autoLoginExternalIdp": "외부 IDP로 자동 로그인", "autoLoginExternalIdp": "외부 IDP로 자동 로그인",
"autoLoginExternalIdpDescription": "인증을 위해 외부 IDP로 사용자를 즉시 리디렉션합니다.", "autoLoginExternalIdpDescription": "인증을 위해 외부 IDP로 사용자를 즉시 리디렉션합니다.",
"selectIdp": "IDP 선택", "selectIdp": "IDP 선택",
@@ -1596,7 +1670,7 @@
"autoLoginErrorNoRedirectUrl": "ID 공급자로부터 리디렉션 URL을 받지 못했습니다.", "autoLoginErrorNoRedirectUrl": "ID 공급자로부터 리디렉션 URL을 받지 못했습니다.",
"autoLoginErrorGeneratingUrl": "인증 URL 생성 실패.", "autoLoginErrorGeneratingUrl": "인증 URL 생성 실패.",
"remoteExitNodeManageRemoteExitNodes": "원격 노드", "remoteExitNodeManageRemoteExitNodes": "원격 노드",
"remoteExitNodeDescription": "네트워크 연결을 확장하고 클라우드 의존도를 줄이기 위해 하나 이상의 원격 노드를 자체 호스트하십시오.", "remoteExitNodeDescription": "하나 이상의 원격 노드를 자체 호스팅하여 네트워크 연결을 확장하고 클라우드에 대한 의존도를 줄입니다.",
"remoteExitNodes": "노드", "remoteExitNodes": "노드",
"searchRemoteExitNodes": "노드 검색...", "searchRemoteExitNodes": "노드 검색...",
"remoteExitNodeAdd": "노드 추가", "remoteExitNodeAdd": "노드 추가",
@@ -1715,7 +1789,7 @@
"idpAzureConfiguration": "Azure Entra ID 구성", "idpAzureConfiguration": "Azure Entra ID 구성",
"idpAzureConfigurationDescription": "Azure Entra ID OAuth2 자격 증명을 구성합니다.", "idpAzureConfigurationDescription": "Azure Entra ID OAuth2 자격 증명을 구성합니다.",
"idpTenantId": "테넌트 ID", "idpTenantId": "테넌트 ID",
"idpTenantIdPlaceholder": "your-tenant-id", "idpTenantIdPlaceholder": "테넌트 ID",
"idpAzureTenantIdDescription": "Azure 액티브 디렉터리 개요에서 찾은 Azure 테넌트 ID", "idpAzureTenantIdDescription": "Azure 액티브 디렉터리 개요에서 찾은 Azure 테넌트 ID",
"idpAzureClientIdDescription": "Azure 앱 등록 클라이언트 ID", "idpAzureClientIdDescription": "Azure 앱 등록 클라이언트 ID",
"idpAzureClientSecretDescription": "Azure 앱 등록 클라이언트 비밀", "idpAzureClientSecretDescription": "Azure 앱 등록 클라이언트 비밀",
@@ -1776,7 +1850,7 @@
"enableTwoFactorAuthentication": "이중 인증 활성화", "enableTwoFactorAuthentication": "이중 인증 활성화",
"completeSecuritySteps": "보안 단계 완료", "completeSecuritySteps": "보안 단계 완료",
"securitySettings": "보안 설정", "securitySettings": "보안 설정",
"securitySettingsDescription": "조직에 대한 보안 정책을 구성합니다", "securitySettingsDescription": "조직 보안 정책을 구성하세요",
"requireTwoFactorForAllUsers": "모든 사용자에 대해 이중 인증 요구", "requireTwoFactorForAllUsers": "모든 사용자에 대해 이중 인증 요구",
"requireTwoFactorDescription": "활성화되면, 이 조직의 모든 내부 사용자는 조직에 접근하기 위해 이중 인증을 활성화해야 합니다.", "requireTwoFactorDescription": "활성화되면, 이 조직의 모든 내부 사용자는 조직에 접근하기 위해 이중 인증을 활성화해야 합니다.",
"requireTwoFactorDisabledDescription": "이 기능을 사용하려면 유효한 라이선스(Enterprise) 또는 활성 구독(SaaS)가 필요합니다.", "requireTwoFactorDisabledDescription": "이 기능을 사용하려면 유효한 라이선스(Enterprise) 또는 활성 구독(SaaS)가 필요합니다.",
@@ -1839,8 +1913,12 @@
"enterpriseEdition": "엔터프라이즈 에디션", "enterpriseEdition": "엔터프라이즈 에디션",
"unlicensed": "라이선스 없음", "unlicensed": "라이선스 없음",
"beta": "베타", "beta": "베타",
"manageClients": "클라이언트 관리", "manageUserDevices": "사용자 초대를 제어",
"manageClientsDescription": "클라이언트는 당신의 사이트에 연결할 수 있는 디바이스입니다.", "manageUserDevicesDescription": "리소스에 개인적으로 연결하기 위해 사용자가 사용하는 장치를 보고 관리하세요",
"manageMachineClients": "기계 클라이언트 관리",
"manageMachineClientsDescription": "서버와 시스템이 리소스에 개인적으로 연결하는 데 사용하는 클라이언트를 생성하고 관리하십시오",
"clientsTableUserClients": "사용자",
"clientsTableMachineClients": "기계",
"licenseTableValidUntil": "유효 기한", "licenseTableValidUntil": "유효 기한",
"saasLicenseKeysSettingsTitle": "엔터프라이즈 라이선스", "saasLicenseKeysSettingsTitle": "엔터프라이즈 라이선스",
"saasLicenseKeysSettingsDescription": "자체 호스팅된 Pangolin 인스턴스를 위한 엔터프라이즈 라이선스 키를 생성하고 관리합니다.", "saasLicenseKeysSettingsDescription": "자체 호스팅된 Pangolin 인스턴스를 위한 엔터프라이즈 라이선스 키를 생성하고 관리합니다.",
@@ -1975,11 +2053,12 @@
"pathRewriteStripLabel": "제거", "pathRewriteStripLabel": "제거",
"sidebarEnableEnterpriseLicense": "엔터프라이즈 라이선스 활성화", "sidebarEnableEnterpriseLicense": "엔터프라이즈 라이선스 활성화",
"cannotbeUndone": "이 작업은 되돌릴 수 없습니다.", "cannotbeUndone": "이 작업은 되돌릴 수 없습니다.",
"toConfirm": "확인하려면", "toConfirm": "확인을 위해.",
"deleteClientQuestion": "고객을 사이트와 조직에서 제거하시겠습니까?", "deleteClientQuestion": "고객을 사이트와 조직에서 제거하시겠습니까?",
"clientMessageRemove": "제거되면 클라이언트는 사이트에 더 이상 연결할 수 없습니다.", "clientMessageRemove": "제거되면 클라이언트는 사이트에 더 이상 연결할 수 없습니다.",
"sidebarLogs": "로그", "sidebarLogs": "로그",
"request": "요청", "request": "요청",
"requests": "요청",
"logs": "로그", "logs": "로그",
"logsSettingsDescription": "이 조직에서 수집된 로그를 모니터링합니다", "logsSettingsDescription": "이 조직에서 수집된 로그를 모니터링합니다",
"searchLogs": "로그 검색...", "searchLogs": "로그 검색...",
@@ -2005,6 +2084,7 @@
"ip": "IP", "ip": "IP",
"reason": "이유", "reason": "이유",
"requestLogs": "요청 로그", "requestLogs": "요청 로그",
"requestAnalytics": "요청 분석",
"host": "호스트", "host": "호스트",
"location": "위치", "location": "위치",
"actionLogs": "작업 로그", "actionLogs": "작업 로그",
@@ -2014,6 +2094,7 @@
"logRetention": "로그 보관", "logRetention": "로그 보관",
"logRetentionDescription": "다양한 유형의 로그를 이 조직에 대해 얼마나 오래 보관할지 관리하거나 비활성화합니다", "logRetentionDescription": "다양한 유형의 로그를 이 조직에 대해 얼마나 오래 보관할지 관리하거나 비활성화합니다",
"requestLogsDescription": "이 조직의 자원에 대한 상세한 요청 로그를 봅니다", "requestLogsDescription": "이 조직의 자원에 대한 상세한 요청 로그를 봅니다",
"requestAnalyticsDescription": "이 조직의 리소스에 대한 자세한 요청 분석 보기",
"logRetentionRequestLabel": "요청 로그 보관", "logRetentionRequestLabel": "요청 로그 보관",
"logRetentionRequestDescription": "요청 로그를 얼마나 오래 보관할지", "logRetentionRequestDescription": "요청 로그를 얼마나 오래 보관할지",
"logRetentionAccessLabel": "접근 로그 보관", "logRetentionAccessLabel": "접근 로그 보관",
@@ -2027,6 +2108,7 @@
"logRetention30Days": "30 일", "logRetention30Days": "30 일",
"logRetention90Days": "90 일", "logRetention90Days": "90 일",
"logRetentionForever": "영구", "logRetentionForever": "영구",
"logRetentionEndOfFollowingYear": "다음 연도 말",
"actionLogsDescription": "이 조직에서 수행된 작업의 기록을 봅니다", "actionLogsDescription": "이 조직에서 수행된 작업의 기록을 봅니다",
"accessLogsDescription": "이 조직의 자원에 대한 접근 인증 요청을 확인합니다", "accessLogsDescription": "이 조직의 자원에 대한 접근 인증 요청을 확인합니다",
"licenseRequiredToUse": "이 기능을 사용하려면 Enterprise 라이선스가 필요합니다.", "licenseRequiredToUse": "이 기능을 사용하려면 Enterprise 라이선스가 필요합니다.",
@@ -2037,7 +2119,7 @@
"preferWildcardCert": "와일드카드 인증서 선호", "preferWildcardCert": "와일드카드 인증서 선호",
"unverified": "검증되지 않음", "unverified": "검증되지 않음",
"domainSetting": "도메인 설정", "domainSetting": "도메인 설정",
"domainSettingDescription": "도메인에 대한 설정 구성하세요.", "domainSettingDescription": "도메인 설정 구성",
"preferWildcardCertDescription": "와일드카드 인증서를 생성하려고 시도합니다 (올바르게 구성된 인증서 해결사가 필요합니다).", "preferWildcardCertDescription": "와일드카드 인증서를 생성하려고 시도합니다 (올바르게 구성된 인증서 해결사가 필요합니다).",
"recordName": "레코드 이름", "recordName": "레코드 이름",
"auto": "자동", "auto": "자동",
@@ -2051,9 +2133,9 @@
"olmUpdateAvailableInfo": "올름의 새 버전이 이용 가능합니다. 최상의 경험을 위해 최신 버전으로 업데이트하세요.", "olmUpdateAvailableInfo": "올름의 새 버전이 이용 가능합니다. 최상의 경험을 위해 최신 버전으로 업데이트하세요.",
"client": "클라이언트", "client": "클라이언트",
"proxyProtocol": "프록시 프로토콜 설정", "proxyProtocol": "프록시 프로토콜 설정",
"proxyProtocolDescription": "프록시 프로토콜을 구성하여 TCP/UDP 서비스에 대한 클라이언트 IP 주소를 보존하십시오.", "proxyProtocolDescription": "TCP 서비스에 대한 클라이언트 IP 주소를 유지하도록 프록시 프로토콜을 구성하세요.",
"enableProxyProtocol": "프록시 프로토콜 활성화", "enableProxyProtocol": "프록시 프로토콜 활성화",
"proxyProtocolInfo": "TCP/UDP 백엔드의 클라이언트 IP 주소를 보존합니다", "proxyProtocolInfo": "TCP 백엔드에 대한 클라이언트 IP 주소를 유지합니다.",
"proxyProtocolVersion": "프록시 프로토콜 버전", "proxyProtocolVersion": "프록시 프로토콜 버전",
"version1": " 버전 1 (추천)", "version1": " 버전 1 (추천)",
"version2": "버전 2", "version2": "버전 2",
@@ -2080,5 +2162,113 @@
"supportSending": "발송 중...", "supportSending": "발송 중...",
"supportSend": "보내기", "supportSend": "보내기",
"supportMessageSent": "메시지 전송 완료!", "supportMessageSent": "메시지 전송 완료!",
"supportWillContact": "곧 연락드리겠습니다!" "supportWillContact": "곧 연락드리겠습니다!",
"selectLogRetention": "로그 보존 선택",
"terms": "약관",
"privacy": "개인정보 보호",
"security": "보안",
"docs": "문서",
"deviceActivation": "장치 활성화",
"deviceCodeInvalidFormat": "코드는 9자리여야 합니다 (예: A1AJ-N5JD)",
"deviceCodeInvalidOrExpired": "무효하거나 만료된 코드",
"deviceCodeVerifyFailed": "이메일 확인에 실패했습니다:",
"signedInAs": "로그인한 사용자",
"deviceCodeEnterPrompt": "기기에 표시된 코드를 입력하세요",
"continue": "계속 진행하기",
"deviceUnknownLocation": "알 수 없는 위치",
"deviceAuthorizationRequested": "이 인증 요청은 {location}에서 {date}에 요청되었습니다. 이 장치에 액세스 권한을 부여할 신뢰할 수 있는 경우 확인하세요.",
"deviceLabel": "장치: {deviceName}",
"deviceWantsAccess": "계정에 액세스하려고 합니다",
"deviceExistingAccess": "기존 액세스:",
"deviceFullAccess": "계정에 대한 전체 액세스",
"deviceOrganizationsAccess": "계정이 접근할 수 있는 모든 조직에 대한 접근",
"deviceAuthorize": "{applicationName} 권한 부여",
"deviceConnected": "장치가 연결되었습니다!",
"deviceAuthorizedMessage": "장치가 계정에 액세스할 수 있도록 승인되었습니다.",
"pangolinCloud": "판골린 클라우드",
"viewDevices": "장치 보기",
"viewDevicesDescription": "연결된 장치를 관리하십시오",
"noDevices": "장치를 찾을 수 없습니다",
"dateCreated": "생성 날짜",
"unnamedDevice": "이름 없는 장치",
"deviceQuestionRemove": "이 장치를 삭제하시겠습니까?",
"deviceMessageRemove": "이 작업은 취소할 수 없습니다.",
"deviceDeleteConfirm": "장치 삭제",
"deleteDevice": "장치 삭제",
"errorLoadingDevices": "장치 로딩 오류",
"failedToLoadDevices": "장치를 로드하지 못했습니다",
"deviceDeleted": "장치 삭제 완료",
"deviceDeletedDescription": "장치가 성공적으로 삭제되었습니다.",
"errorDeletingDevice": "장치 삭제 오류",
"failedToDeleteDevice": "장치를 삭제하지 못했습니다",
"showColumns": "열 표시",
"hideColumns": "열 숨기기",
"columnVisibility": "열 가시성",
"toggleColumn": "{columnName} 열 토글",
"allColumns": "모든 열",
"defaultColumns": "기본 열",
"customizeView": "보기 사용자 지정",
"viewOptions": "보기 옵션",
"selectAll": "모두 선택",
"selectNone": "선택하지 않음",
"selectedResources": "선택된 리소스",
"enableSelected": "선택된 항목 활성화",
"disableSelected": "선택된 항목 비활성화",
"checkSelectedStatus": "선택된 항목 상태 확인",
"clients": "클라이언트",
"accessClientSelect": "기계 클라이언트 선택",
"resourceClientDescription": "관리자는 항상 이 리소스에 접근할 수 있습니다",
"regenerate": "재생성",
"credentials": "자격 증명",
"savecredentials": "자격 증명 저장",
"regenerateCredentialsButton": "자격 증명 다시 생성",
"regenerateCredentials": "자격 증명 다시 생성",
"generatedcredentials": "생성된 자격 증명",
"copyandsavethesecredentials": "이 자격 증명을 복사하여 저장합니다",
"copyandsavethesecredentialsdescription": "이 페이지를 떠난 후에는 자격 증명이 다시 표시되지 않습니다. 지금 안전하게 저장하십시오.",
"credentialsSaved": "자격 증명 저장됨",
"credentialsSavedDescription": "자격 증명이 성공적으로 재생성 및 저장되었습니다.",
"credentialsSaveError": "자격 증명 저장 오류",
"credentialsSaveErrorDescription": "자격 증명을 재생성하고 저장하는 동안 오류가 발생했습니다.",
"regenerateCredentialsWarning": "자격 증명을 다시 생성하면 이전 것들이 무효화되면서 연결이 끊어집니다. 이러한 자격 증명을 사용하는 모든 구성을 업데이트하세요.",
"confirm": "확인",
"regenerateCredentialsConfirmation": "자격 증명을 재생성하시겠습니까?",
"endpoint": "엔드포인트",
"Id": "아이디",
"SecretKey": "비밀 키",
"niceId": "예쁜 ID",
"niceIdUpdated": "예쁜 ID 업데이트됨",
"niceIdUpdatedSuccessfully": "예쁜 ID가 성공적으로 업데이트되었습니다",
"niceIdUpdateError": "예쁜 ID 업데이트 오류",
"niceIdUpdateErrorDescription": "예쁜 ID를 업데이트하는 동안 오류가 발생했습니다.",
"niceIdCannotBeEmpty": "예쁜 ID는 비워둘 수 없습니다",
"enterIdentifier": "식별자 입력",
"identifier": "식별자",
"deviceLoginUseDifferentAccount": "본인이 아닙니까? 다른 계정을 사용하세요.",
"deviceLoginDeviceRequestingAccessToAccount": "장치가 이 계정에 접근하려고 합니다.",
"noData": "데이터 없음",
"machineClients": "기계 클라이언트",
"install": "설치",
"run": "실행",
"clientNameDescription": "나중에 변경할 수 있는 클라이언트의 표시 이름입니다.",
"clientAddress": "클라이언트 주소(고급)",
"setupFailedToFetchSubnet": "기본값 로드 실패",
"setupSubnetAdvanced": "서브넷(고급)",
"setupSubnetDescription": "이 조직의 네트워크 구성에 대한 서브넷입니다.",
"siteRegenerateAndDisconnect": "재생성 및 연결 해제",
"siteRegenerateAndDisconnectConfirmation": "자격 증명을 재생성하고 이 사이트와의 연결을 해제하시겠습니까?",
"siteRegenerateAndDisconnectWarning": "이 과정은 자격 증명을 다시 생성하고 사이트와의 연결을 즉시 해제합니다. 사이트는 새 자격 증명으로 다시 시작되어야 합니다.",
"siteRegenerateCredentialsConfirmation": "이 사이트에 대한 자격 증명을 다시 생성하시겠습니까?",
"siteRegenerateCredentialsWarning": "이 과정은 자격 증명을 다시 생성합니다. 수동으로 다시 시작하고 새 자격 증명을 사용하기 전까지 사이트는 연결된 상태로 유지됩니다.",
"clientRegenerateAndDisconnect": "재생성 및 연결 해제",
"clientRegenerateAndDisconnectConfirmation": "자격 증명을 재생성하고 이 클라이언트와의 연결을 해제하시겠습니까?",
"clientRegenerateAndDisconnectWarning": "이 과정은 자격 증명을 다시 생성하고 클라이언트와의 연결을 즉시 해제합니다. 클라이언트는 새 자격 증명으로 다시 시작되어야 합니다.",
"clientRegenerateCredentialsConfirmation": "이 클라이언트에 대한 자격 증명을 다시 생성하시겠습니까?",
"clientRegenerateCredentialsWarning": "이 과정은 자격 증명을 다시 생성합니다. 수동으로 다시 시작하고 새 자격 증명을 사용하기 전까지 클라이언트는 연결된 상태로 유지됩니다.",
"remoteExitNodeRegenerateAndDisconnect": "재생성 및 연결 해제",
"remoteExitNodeRegenerateAndDisconnectConfirmation": "자격 증명을 재생성하고 이 원격 종료 노드와의 연결을 해제하시겠습니까?",
"remoteExitNodeRegenerateAndDisconnectWarning": "이 과정은 자격 증명을 다시 생성하고 원격 종료 노드와의 연결을 즉시 해제합니다. 원격 종료 노드는 새 자격 증명으로 다시 시작되어야 합니다.",
"remoteExitNodeRegenerateCredentialsConfirmation": "이 원격 종료 노드에 대한 자격 증명을 다시 생성하시겠습니까?",
"remoteExitNodeRegenerateCredentialsWarning": "이 과정은 자격 증명을 다시 생성합니다. 수동으로 다시 시작하고 새 자격 증명을 사용하기 전까지 원격 종료 노드는 연결된 상태로 유지됩니다.",
"agent": "에이전트"
} }

View File

@@ -1,12 +1,12 @@
{ {
"setupCreate": "Lag din organisasjon, område og dine ressurser", "setupCreate": "Opprett organisasjonen, nettstedet og ressursene",
"setupNewOrg": "Ny Organisasjon", "setupNewOrg": "Ny Organisasjon",
"setupCreateOrg": "Opprett organisasjon", "setupCreateOrg": "Opprett organisasjon",
"setupCreateResources": "Opprett ressurser", "setupCreateResources": "Opprett ressurser",
"setupOrgName": "Organisasjonsnavn", "setupOrgName": "Organisasjonsnavn",
"orgDisplayName": "Dette er visningsnavnet til organisasjonen din.", "orgDisplayName": "Dette er organisasjonens visningsnavn.",
"orgId": "Organisasjons-ID", "orgId": "Organisasjons-ID",
"setupIdentifierMessage": "Dette er den unike identifikator for din organisasjon. Dette er separat fra visningsnavnet.", "setupIdentifierMessage": "Dette er den unike identifikatoren for organisasjonen.",
"setupErrorIdentifier": "Organisasjons-ID er allerede tatt. Vennligst velg en annen.", "setupErrorIdentifier": "Organisasjons-ID er allerede tatt. Vennligst velg en annen.",
"componentsErrorNoMemberCreate": "Du er for øyeblikket ikke medlem av noen organisasjoner. Lag en organisasjon for å komme i gang.", "componentsErrorNoMemberCreate": "Du er for øyeblikket ikke medlem av noen organisasjoner. Lag en organisasjon for å komme i gang.",
"componentsErrorNoMember": "Du er for øyeblikket ikke medlem av noen organisasjoner.", "componentsErrorNoMember": "Du er for øyeblikket ikke medlem av noen organisasjoner.",
@@ -50,10 +50,10 @@
"siteMessageRemove": "Når nettstedet er fjernet, vil det ikke lenger være tilgjengelig. Alle målene for nettstedet vil også bli fjernet.", "siteMessageRemove": "Når nettstedet er fjernet, vil det ikke lenger være tilgjengelig. Alle målene for nettstedet vil også bli fjernet.",
"siteQuestionRemove": "Er du sikker på at du vil fjerne nettstedet fra organisasjonen?", "siteQuestionRemove": "Er du sikker på at du vil fjerne nettstedet fra organisasjonen?",
"siteManageSites": "Administrer Områder", "siteManageSites": "Administrer Områder",
"siteDescription": "Tillat tilkobling til nettverket ditt gjennom sikre tunneler", "siteDescription": "Opprette og administrere nettsteder for å aktivere tilkobling til private nettverk",
"siteCreate": "Opprett område", "siteCreate": "Opprett område",
"siteCreateDescription2": "Følg trinnene nedenfor for å opprette og koble til et nytt område", "siteCreateDescription2": "Følg trinnene nedenfor for å opprette og koble til et nytt område",
"siteCreateDescription": "Opprett et nytt område for å begynne å koble til ressursene dine", "siteCreateDescription": "Opprett et nytt nettsted for å koble til ressurser",
"close": "Lukk", "close": "Lukk",
"siteErrorCreate": "Feil ved oppretting av område", "siteErrorCreate": "Feil ved oppretting av område",
"siteErrorCreateKeyPair": "Nøkkelpar eller standardinnstillinger for område ikke funnet", "siteErrorCreateKeyPair": "Nøkkelpar eller standardinnstillinger for område ikke funnet",
@@ -74,7 +74,7 @@
"siteInstallNewt": "Installer Newt", "siteInstallNewt": "Installer Newt",
"siteInstallNewtDescription": "Få Newt til å kjøre på systemet ditt", "siteInstallNewtDescription": "Få Newt til å kjøre på systemet ditt",
"WgConfiguration": "WireGuard Konfigurasjon", "WgConfiguration": "WireGuard Konfigurasjon",
"WgConfigurationDescription": "Bruk følgende konfigurasjon for å koble til nettverket ditt", "WgConfigurationDescription": "Bruk følgende konfigurasjon for å koble til nettverket",
"operatingSystem": "Operativsystem", "operatingSystem": "Operativsystem",
"commands": "Kommandoer", "commands": "Kommandoer",
"recommended": "Anbefalt", "recommended": "Anbefalt",
@@ -87,32 +87,32 @@
"siteUpdated": "Område oppdatert", "siteUpdated": "Område oppdatert",
"siteUpdatedDescription": "Området har blitt oppdatert.", "siteUpdatedDescription": "Området har blitt oppdatert.",
"siteGeneralDescription": "Konfigurer de generelle innstillingene for dette området", "siteGeneralDescription": "Konfigurer de generelle innstillingene for dette området",
"siteSettingDescription": "Konfigurer innstillingene for området ditt", "siteSettingDescription": "Konfigurere innstillingene på nettstedet",
"siteSetting": "{siteName} Innstillinger", "siteSetting": "{siteName} Innstillinger",
"siteNewtTunnel": "Newt Tunnel (Anbefalt)", "siteNewtTunnel": "Nyhetsnettsted (anbefalt)",
"siteNewtTunnelDescription": "Enkleste måte å opprette et inngangspunkt i nettverket ditt. Ingen ekstra oppsett.", "siteNewtTunnelDescription": "Lekkeste måte å lage et inngangspunkt til ethvert nettverk. Ingen ekstra oppsett.",
"siteWg": "Grunnleggende WireGuard", "siteWg": "Grunnleggende WireGuard",
"siteWgDescription": "Bruk hvilken som helst WireGuard-klient for å etablere en tunnel. Manuell NAT-oppsett kreves.", "siteWgDescription": "Bruk hvilken som helst WireGuard-klient for å etablere en tunnel. Manuell NAT-oppsett kreves.",
"siteWgDescriptionSaas": "Bruk hvilken som helst WireGuard-klient for å etablere en tunnel. Manuell NAT-oppsett er nødvendig. FUNGERER KUN PÅ SELVHOSTEDE NODER", "siteWgDescriptionSaas": "Bruk hvilken som helst WireGuard-klient for å etablere en tunnel. Manuell NAT-oppsett er nødvendig. FUNGERER KUN PÅ SELVHOSTEDE NODER",
"siteLocalDescription": "Kun lokale ressurser. Ingen tunnelering.", "siteLocalDescription": "Kun lokale ressurser. Ingen tunnelering.",
"siteLocalDescriptionSaas": "Lokale ressurser. Ingen tunnelering. Bare tilgjengelig på eksterne noder.", "siteLocalDescriptionSaas": "Lokale ressurser. Ingen tunnelering. Bare tilgjengelig på eksterne noder.",
"siteSeeAll": "Se alle områder", "siteSeeAll": "Se alle områder",
"siteTunnelDescription": "Bestem hvordan du vil koble deg til ditt område", "siteTunnelDescription": "Avgjør hvordan du vil koble deg til nettstedet",
"siteNewtCredentials": "Newt påloggingsinformasjon", "siteNewtCredentials": "Legitimasjon",
"siteNewtCredentialsDescription": "Slik vil Newt autentisere seg mot serveren", "siteNewtCredentialsDescription": "Dette er hvordan nettstedet vil godkjenne med serveren",
"siteCredentialsSave": "Lagre påloggingsinformasjonen din", "siteCredentialsSave": "Lagre brukeropplysninger",
"siteCredentialsSaveDescription": "Du vil kun kunne se dette én gang. Sørg for å kopiere det til et sikkert sted.", "siteCredentialsSaveDescription": "Du vil kun kunne se dette én gang. Sørg for å kopiere det til et sikkert sted.",
"siteInfo": "Områdeinformasjon", "siteInfo": "Områdeinformasjon",
"status": "Status", "status": "Status",
"shareTitle": "Administrer delingslenker", "shareTitle": "Administrer delingslenker",
"shareDescription": "Opprett delbare lenker for å gi midlertidig eller permanent tilgang til ressursene dine", "shareDescription": "Opprett delbare lenker for å gi midlertidige eller permanent tilgang til proxyressurser",
"shareSearch": "Søk delingslenker...", "shareSearch": "Søk delingslenker...",
"shareCreate": "Opprett delingslenke", "shareCreate": "Opprett delingslenke",
"shareErrorDelete": "Klarte ikke å slette lenke", "shareErrorDelete": "Klarte ikke å slette lenke",
"shareErrorDeleteMessage": "En feil oppstod ved sletting av lenke", "shareErrorDeleteMessage": "En feil oppstod ved sletting av lenke",
"shareDeleted": "Lenke slettet", "shareDeleted": "Lenke slettet",
"shareDeletedDescription": "Lenken har blitt slettet", "shareDeletedDescription": "Lenken har blitt slettet",
"shareTokenDescription": "Din tilgangsnøkkel kan sendes på to måter: som en query parameter eller i request headers. Disse må sendes fra klienten på hver forespørsel for autentisert tilgang.", "shareTokenDescription": "Adgangstoken kan sendes på to måter: som en spørringsparameter eller i forespørselsoverskriftene. Disse må sendes fra klienten på hver forespørsel om autentisert tilgang.",
"accessToken": "Tilgangsnøkkel", "accessToken": "Tilgangsnøkkel",
"usageExamples": "Brukseksempler", "usageExamples": "Brukseksempler",
"tokenId": "Token-ID", "tokenId": "Token-ID",
@@ -121,7 +121,7 @@
"importantNote": "Viktig merknad", "importantNote": "Viktig merknad",
"shareImportantDescription": "Av sikkerhetsgrunner anbefales det å bruke headere fremfor query parametere der det er mulig, da query parametere kan logges i serverlogger eller nettleserhistorikk.", "shareImportantDescription": "Av sikkerhetsgrunner anbefales det å bruke headere fremfor query parametere der det er mulig, da query parametere kan logges i serverlogger eller nettleserhistorikk.",
"token": "Token", "token": "Token",
"shareTokenSecurety": "Hold tilgangsnøkkelen ditt sikkert. Ikke del i offentlig tilgjengelige områder eller klientkode.", "shareTokenSecurety": "Hold tilgangstoken sikker. Ikke del den i offentlig tilgjengelige områder eller klientsidekode.",
"shareErrorFetchResource": "Klarte ikke å hente ressurser", "shareErrorFetchResource": "Klarte ikke å hente ressurser",
"shareErrorFetchResourceDescription": "En feil oppstod under henting av ressursene", "shareErrorFetchResourceDescription": "En feil oppstod under henting av ressursene",
"shareErrorCreate": "Mislyktes med å opprette delingslenke", "shareErrorCreate": "Mislyktes med å opprette delingslenke",
@@ -131,7 +131,7 @@
"expireIn": "Utløper om", "expireIn": "Utløper om",
"neverExpire": "Utløper aldri", "neverExpire": "Utløper aldri",
"shareExpireDescription": "Utløpstid er hvor lenge lenken vil være brukbar og gi tilgang til ressursen. Etter denne tiden vil lenken ikke lenger fungere, og brukere som brukte denne lenken vil miste tilgangen til ressursen.", "shareExpireDescription": "Utløpstid er hvor lenge lenken vil være brukbar og gi tilgang til ressursen. Etter denne tiden vil lenken ikke lenger fungere, og brukere som brukte denne lenken vil miste tilgangen til ressursen.",
"shareSeeOnce": "Du får bare se denne lenken én gang. Pass på å kopiere den.", "shareSeeOnce": "Du vil bare kunne se denne linken én gang. Pass på å kopiere den.",
"shareAccessHint": "Alle med denne lenken kan få tilgang til ressursen. Del forsiktig.", "shareAccessHint": "Alle med denne lenken kan få tilgang til ressursen. Del forsiktig.",
"shareTokenUsage": "Se tilgangstokenbruk", "shareTokenUsage": "Se tilgangstokenbruk",
"createLink": "Opprett lenke", "createLink": "Opprett lenke",
@@ -144,8 +144,10 @@
"expires": "Utløper", "expires": "Utløper",
"never": "Aldri", "never": "Aldri",
"shareErrorSelectResource": "Vennligst velg en ressurs", "shareErrorSelectResource": "Vennligst velg en ressurs",
"resourceTitle": "Administrer Ressurser", "proxyResourceTitle": "Administrere offentlige ressurser",
"resourceDescription": "Opprett sikre proxyer til dine private applikasjoner", "proxyResourceDescription": "Opprett og administrer ressurser som er offentlig tilgjengelige via en nettleser",
"clientResourceTitle": "Administrer private ressurser",
"clientResourceDescription": "Opprette og administrere ressurser som bare er tilgjengelige via en tilkoblet klient",
"resourcesSearch": "Søk i ressurser...", "resourcesSearch": "Søk i ressurser...",
"resourceAdd": "Legg til ressurs", "resourceAdd": "Legg til ressurs",
"resourceErrorDelte": "Feil ved sletting av ressurs", "resourceErrorDelte": "Feil ved sletting av ressurs",
@@ -155,9 +157,9 @@
"resourceMessageRemove": "Når den er fjernet, vil ressursen ikke lenger være tilgjengelig. Alle mål knyttet til ressursen vil også bli fjernet.", "resourceMessageRemove": "Når den er fjernet, vil ressursen ikke lenger være tilgjengelig. Alle mål knyttet til ressursen vil også bli fjernet.",
"resourceQuestionRemove": "Er du sikker på at du vil fjerne ressursen fra organisasjonen?", "resourceQuestionRemove": "Er du sikker på at du vil fjerne ressursen fra organisasjonen?",
"resourceHTTP": "HTTPS-ressurs", "resourceHTTP": "HTTPS-ressurs",
"resourceHTTPDescription": "Proxy-forespørsler til appen din over HTTPS ved bruk av et underdomene eller grunndomene.", "resourceHTTPDescription": "Proxy-forespørsler til appen over HTTPS ved hjelp av et underdomene eller basisdomene.",
"resourceRaw": "Rå TCP/UDP-ressurs", "resourceRaw": "Rå TCP/UDP-ressurs",
"resourceRawDescription": "Proxyer forespørsler til appen din over TCP/UDP ved å bruke et portnummer.", "resourceRawDescription": "Proxy ber om til appen over TCP/UDP med et portnummer. Dette fungerer bare når nettsteder er koblet til noder.",
"resourceCreate": "Opprett ressurs", "resourceCreate": "Opprett ressurs",
"resourceCreateDescription": "Følg trinnene nedenfor for å opprette en ny ressurs", "resourceCreateDescription": "Følg trinnene nedenfor for å opprette en ny ressurs",
"resourceSeeAll": "Se alle ressurser", "resourceSeeAll": "Se alle ressurser",
@@ -171,22 +173,22 @@
"noCountryFound": "Ingen land funnet.", "noCountryFound": "Ingen land funnet.",
"siteSelectionDescription": "Dette området vil gi tilkobling til mål.", "siteSelectionDescription": "Dette området vil gi tilkobling til mål.",
"resourceType": "Ressurstype", "resourceType": "Ressurstype",
"resourceTypeDescription": "Bestem hvordan du vil få tilgang til ressursen din", "resourceTypeDescription": "Bestemme hvordan denne ressursen skal brukes",
"resourceHTTPSSettings": "HTTPS-innstillinger", "resourceHTTPSSettings": "HTTPS-innstillinger",
"resourceHTTPSSettingsDescription": "Konfigurer tilgang til ressursen din over HTTPS", "resourceHTTPSSettingsDescription": "Konfigurer hvordan ressursen skal nås over HTTPS",
"domainType": "Domenetype", "domainType": "Domenetype",
"subdomain": "Underdomene", "subdomain": "Underdomene",
"baseDomain": "Grunndomene", "baseDomain": "Grunndomene",
"subdomnainDescription": "Underdomenet der ressursen din vil være tilgjengelig.", "subdomnainDescription": "Underdomenet hvor ressursen vil være tilgjengelig.",
"resourceRawSettings": "TCP/UDP-innstillinger", "resourceRawSettings": "TCP/UDP-innstillinger",
"resourceRawSettingsDescription": "Konfigurer tilgang til ressursen din over TCP/UDP", "resourceRawSettingsDescription": "Konfigurer hvordan ressursen vil bli tilgjengelig over TCP/UDP",
"protocol": "Protokoll", "protocol": "Protokoll",
"protocolSelect": "Velg en protokoll", "protocolSelect": "Velg en protokoll",
"resourcePortNumber": "Portnummer", "resourcePortNumber": "Portnummer",
"resourcePortNumberDescription": "Det eksterne portnummeret for proxy forespørsler.", "resourcePortNumberDescription": "Det eksterne portnummeret for proxy forespørsler.",
"cancel": "Avbryt", "cancel": "Avbryt",
"resourceConfig": "Konfigurasjonsutdrag", "resourceConfig": "Konfigurasjonsutdrag",
"resourceConfigDescription": "Kopier og lim inn disse konfigurasjonsutdragene for å sette opp din TCP/UDP-ressurs", "resourceConfigDescription": "Kopier og lim inn disse konfigurasjons-øyeblikkene for å sette opp TCP/UDP ressursen",
"resourceAddEntrypoints": "Traefik: Legg til inngangspunkter", "resourceAddEntrypoints": "Traefik: Legg til inngangspunkter",
"resourceExposePorts": "Gerbil: Eksponer Porter i Docker Compose", "resourceExposePorts": "Gerbil: Eksponer Porter i Docker Compose",
"resourceLearnRaw": "Lær hvordan å konfigurere TCP/UDP-ressurser", "resourceLearnRaw": "Lær hvordan å konfigurere TCP/UDP-ressurser",
@@ -202,14 +204,14 @@
"proxy": "Proxy", "proxy": "Proxy",
"internal": "Intern", "internal": "Intern",
"rules": "Regler", "rules": "Regler",
"resourceSettingDescription": "Konfigurer innstillingene på ressursen din", "resourceSettingDescription": "Konfigurere innstillingene på ressursen",
"resourceSetting": "{resourceName} Innstillinger", "resourceSetting": "{resourceName} Innstillinger",
"alwaysAllow": "Alltid tillat", "alwaysAllow": "Omgå Auth",
"alwaysDeny": "Alltid avslå", "alwaysDeny": "Blokker tilgang",
"passToAuth": "Pass til Autentisering", "passToAuth": "Pass til Autentisering",
"orgSettingsDescription": "Konfigurer organisasjonens generelle innstillinger", "orgSettingsDescription": "Konfigurere organisasjonens innstillinger",
"orgGeneralSettings": "Organisasjonsinnstillinger", "orgGeneralSettings": "Organisasjonsinnstillinger",
"orgGeneralSettingsDescription": "Administrer dine organisasjonsdetaljer og konfigurasjon", "orgGeneralSettingsDescription": "Behandle organisasjonens detaljer og konfigurasjon",
"saveGeneralSettings": "Lagre generelle innstillinger", "saveGeneralSettings": "Lagre generelle innstillinger",
"saveSettings": "Lagre innstillinger", "saveSettings": "Lagre innstillinger",
"orgDangerZone": "Faresone", "orgDangerZone": "Faresone",
@@ -232,7 +234,7 @@
"orgMissing": "Organisasjons-ID Mangler", "orgMissing": "Organisasjons-ID Mangler",
"orgMissingMessage": "Kan ikke regenerere invitasjon uten en organisasjons-ID.", "orgMissingMessage": "Kan ikke regenerere invitasjon uten en organisasjons-ID.",
"accessUsersManage": "Administrer brukere", "accessUsersManage": "Administrer brukere",
"accessUsersDescription": "Inviter brukere og gi dem roller for å administrere tilgang til organisasjonen din", "accessUsersDescription": "Inviter og behandle brukere med tilgang til denne organisasjonen",
"accessUsersSearch": "Søk etter brukere...", "accessUsersSearch": "Søk etter brukere...",
"accessUserCreate": "Opprett bruker", "accessUserCreate": "Opprett bruker",
"accessUserRemove": "Fjern bruker", "accessUserRemove": "Fjern bruker",
@@ -241,13 +243,13 @@
"role": "Rolle", "role": "Rolle",
"nameRequired": "Navn er påkrevd", "nameRequired": "Navn er påkrevd",
"accessRolesManage": "Administrer Roller", "accessRolesManage": "Administrer Roller",
"accessRolesDescription": "Konfigurer roller for å administrere tilgang til organisasjonen din", "accessRolesDescription": "Opprett og administrer roller for brukere i organisasjonen",
"accessRolesSearch": "Søk etter roller...", "accessRolesSearch": "Søk etter roller...",
"accessRolesAdd": "Legg til rolle", "accessRolesAdd": "Legg til rolle",
"accessRoleDelete": "Slett rolle", "accessRoleDelete": "Slett rolle",
"description": "Beskrivelse", "description": "Beskrivelse",
"inviteTitle": "Åpne invitasjoner", "inviteTitle": "Åpne invitasjoner",
"inviteDescription": "Administrer invitasjonene dine til andre brukere", "inviteDescription": "Administrer invitasjoner til andre brukere for å bli med i organisasjonen",
"inviteSearch": "Søk i invitasjoner...", "inviteSearch": "Søk i invitasjoner...",
"minutes": "Minutter", "minutes": "Minutter",
"hours": "Timer", "hours": "Timer",
@@ -261,13 +263,13 @@
"apiKeysErrorCreate": "Feil ved oppretting av API-nøkkel", "apiKeysErrorCreate": "Feil ved oppretting av API-nøkkel",
"apiKeysErrorSetPermission": "Feil ved innstilling av tillatelser", "apiKeysErrorSetPermission": "Feil ved innstilling av tillatelser",
"apiKeysCreate": "Generer API-nøkkel", "apiKeysCreate": "Generer API-nøkkel",
"apiKeysCreateDescription": "Generer en ny API-nøkkel for din organisasjon", "apiKeysCreateDescription": "Generer en ny API-nøkkel for organisasjonen",
"apiKeysGeneralSettings": "Tillatelser", "apiKeysGeneralSettings": "Tillatelser",
"apiKeysGeneralSettingsDescription": "Finn ut hva denne API-nøkkelen kan gjøre", "apiKeysGeneralSettingsDescription": "Finn ut hva denne API-nøkkelen kan gjøre",
"apiKeysList": "Din API-nøkkel", "apiKeysList": "Ny API-nøkkel",
"apiKeysSave": "Lagre API-nøkkelen din", "apiKeysSave": "Lagre API-nøkkel",
"apiKeysSaveDescription": "Du vil bare kunne se dette én gang. Sørg for å kopiere det til et sikkert sted.", "apiKeysSaveDescription": "Du vil bare kunne se dette én gang. Sørg for å kopiere det til et sikkert sted.",
"apiKeysInfo": "Din API-nøkkel er:", "apiKeysInfo": "API-nøkkelen er:",
"apiKeysConfirmCopy": "Jeg har kopiert API-nøkkelen", "apiKeysConfirmCopy": "Jeg har kopiert API-nøkkelen",
"generate": "Generer", "generate": "Generer",
"done": "Ferdig", "done": "Ferdig",
@@ -424,7 +426,7 @@
"userCreated": "Bruker opprettet", "userCreated": "Bruker opprettet",
"userCreatedDescription": "Brukeren har blitt vellykket opprettet.", "userCreatedDescription": "Brukeren har blitt vellykket opprettet.",
"userTypeInternal": "Intern bruker", "userTypeInternal": "Intern bruker",
"userTypeInternalDescription": "Inviter en bruker til å bli med i organisasjonen din direkte.", "userTypeInternalDescription": "Inviter en bruker til å bli med direkte på organisasjonen.",
"userTypeExternal": "Ekstern bruker", "userTypeExternal": "Ekstern bruker",
"userTypeExternalDescription": "Opprett en bruker med en ekstern identitetsleverandør.", "userTypeExternalDescription": "Opprett en bruker med en ekstern identitetsleverandør.",
"accessUserCreateDescription": "Følg stegene under for å opprette en ny bruker", "accessUserCreateDescription": "Følg stegene under for å opprette en ny bruker",
@@ -436,6 +438,16 @@
"inviteEmailSent": "Send invitasjonsepost til bruker", "inviteEmailSent": "Send invitasjonsepost til bruker",
"inviteValid": "Gyldig for", "inviteValid": "Gyldig for",
"selectDuration": "Velg varighet", "selectDuration": "Velg varighet",
"selectResource": "Velg ressurs",
"filterByResource": "Filtrer etter ressurser",
"resetFilters": "Tilbakestill filtre",
"totalBlocked": "Forespørsler blokkert av Pangolin",
"totalRequests": "Totalt antall forespørsler",
"requestsByCountry": "Forespørsler fra land",
"requestsByDay": "Forespørsler per dag",
"blocked": "Blokkert",
"allowed": "Tillatt",
"topCountries": "Flest land",
"accessRoleSelect": "Velg rolle", "accessRoleSelect": "Velg rolle",
"inviteEmailSentDescription": "En e-post er sendt til brukeren med tilgangslenken nedenfor. De må åpne lenken for å akseptere invitasjonen.", "inviteEmailSentDescription": "En e-post er sendt til brukeren med tilgangslenken nedenfor. De må åpne lenken for å akseptere invitasjonen.",
"inviteSentDescription": "Brukeren har blitt invitert. De må åpne lenken nedenfor for å godta invitasjonen.", "inviteSentDescription": "Brukeren har blitt invitert. De må åpne lenken nedenfor for å godta invitasjonen.",
@@ -458,13 +470,13 @@
"accessControlsSubmit": "Lagre tilgangskontroller", "accessControlsSubmit": "Lagre tilgangskontroller",
"roles": "Roller", "roles": "Roller",
"accessUsersRoles": "Administrer brukere og roller", "accessUsersRoles": "Administrer brukere og roller",
"accessUsersRolesDescription": "Inviter brukere og legg dem til roller for å administrere tilgang til organisasjonen din.", "accessUsersRolesDescription": "Inviter brukere og legg dem til roller for å administrere tilgang til organisasjonen",
"key": "Nøkkel", "key": "Nøkkel",
"createdAt": "Opprettet", "createdAt": "Opprettet",
"proxyErrorInvalidHeader": "Ugyldig verdi for egendefinert vertsoverskrift. Bruk domenenavnformat, eller lagre tomt for å fjerne den egendefinerte vertsoverskriften.", "proxyErrorInvalidHeader": "Ugyldig verdi for egendefinert vertsoverskrift. Bruk domenenavnformat, eller lagre tomt for å fjerne den egendefinerte vertsoverskriften.",
"proxyErrorTls": "Ugyldig TLS-servernavn. Bruk domenenavnformat, eller la stå tomt for å fjerne TLS-servernavnet.", "proxyErrorTls": "Ugyldig TLS-servernavn. Bruk domenenavnformat, eller la stå tomt for å fjerne TLS-servernavnet.",
"proxyEnableSSL": "Aktiver SSL", "proxyEnableSSL": "Aktiver SSL",
"proxyEnableSSLDescription": "Aktiver SSL/TLS-kryptering for sikre HTTPS-tilkoblinger til dine mål.", "proxyEnableSSLDescription": "Aktivere SSL/TLS-kryptering for sikker HTTPS tilkobling til målene.",
"target": "Target", "target": "Target",
"configureTarget": "Konfigurer mål", "configureTarget": "Konfigurer mål",
"targetErrorFetch": "Kunne ikke hente mål", "targetErrorFetch": "Kunne ikke hente mål",
@@ -480,29 +492,29 @@
"targetsErrorUpdate": "Feilet å oppdatere mål", "targetsErrorUpdate": "Feilet å oppdatere mål",
"targetsErrorUpdateDescription": "En feil oppsto under oppdatering av mål", "targetsErrorUpdateDescription": "En feil oppsto under oppdatering av mål",
"targetTlsUpdate": "TLS-innstillinger oppdatert", "targetTlsUpdate": "TLS-innstillinger oppdatert",
"targetTlsUpdateDescription": "Dine TLS-innstillinger er oppdatert", "targetTlsUpdateDescription": "TLS-innstillinger har blitt oppdatert",
"targetErrorTlsUpdate": "Feilet under oppdatering av TLS-innstillinger", "targetErrorTlsUpdate": "Feilet under oppdatering av TLS-innstillinger",
"targetErrorTlsUpdateDescription": "Det oppstod en feil under oppdatering av TLS-innstillinger", "targetErrorTlsUpdateDescription": "Det oppstod en feil under oppdatering av TLS-innstillinger",
"proxyUpdated": "Proxy-innstillinger oppdatert", "proxyUpdated": "Proxy-innstillinger oppdatert",
"proxyUpdatedDescription": "Proxy-innstillingene dine er oppdatert", "proxyUpdatedDescription": "Proxy innstillinger har blitt oppdatert",
"proxyErrorUpdate": "En feil oppsto under oppdatering av proxyinnstillinger", "proxyErrorUpdate": "En feil oppsto under oppdatering av proxyinnstillinger",
"proxyErrorUpdateDescription": "En feil oppsto under oppdatering av proxyinnstillinger", "proxyErrorUpdateDescription": "En feil oppsto under oppdatering av proxyinnstillinger",
"targetAddr": "IP / vertsnavn", "targetAddr": "Vert",
"targetPort": "Port", "targetPort": "Port",
"targetProtocol": "Protokoll", "targetProtocol": "Protokoll",
"targetTlsSettings": "Sikker tilkoblings-konfigurasjon", "targetTlsSettings": "Sikker tilkoblings-konfigurasjon",
"targetTlsSettingsDescription": "Konfigurer SSL/TLS-innstillinger for ressursen din", "targetTlsSettingsDescription": "Konfigurer SSL/TLS-innstillinger for ressursen",
"targetTlsSettingsAdvanced": "Avanserte TLS-innstillinger", "targetTlsSettingsAdvanced": "Avanserte TLS-innstillinger",
"targetTlsSni": "TLS servernavn", "targetTlsSni": "TLS servernavn",
"targetTlsSniDescription": "TLS-servernavnet som skal brukes for SNI. La stå tomt for å bruke standardverdien.", "targetTlsSniDescription": "TLS-servernavnet som skal brukes for SNI. La stå tomt for å bruke standardverdien.",
"targetTlsSubmit": "Lagre innstillinger", "targetTlsSubmit": "Lagre innstillinger",
"targets": "Målkonfigurasjon", "targets": "Målkonfigurasjon",
"targetsDescription": "Sett opp mål for å rute trafikk til dine backend-tjenester", "targetsDescription": "Sett opp mål for rutetrafikk til backend tjenestene",
"targetStickySessions": "Aktiver klebrige sesjoner", "targetStickySessions": "Aktiver klebrige sesjoner",
"targetStickySessionsDescription": "Behold tilkoblinger på samme bakend-mål gjennom hele sesjonen.", "targetStickySessionsDescription": "Behold tilkoblinger på samme bakend-mål gjennom hele sesjonen.",
"methodSelect": "Velg metode", "methodSelect": "Velg metode",
"targetSubmit": "Legg til mål", "targetSubmit": "Legg til mål",
"targetNoOne": "Denne ressursen har ikke noen mål. Legg til et mål for å konfigurere hvor du vil sende forespørsler til din backend.", "targetNoOne": "Denne ressursen har ikke noen mål. Legg til et mål for å konfigurere hvor du vil sende forespørsler til backend.",
"targetNoOneDescription": "Å legge til mer enn ett mål ovenfor vil aktivere lastbalansering.", "targetNoOneDescription": "Å legge til mer enn ett mål ovenfor vil aktivere lastbalansering.",
"targetsSubmit": "Lagre mål", "targetsSubmit": "Lagre mål",
"addTarget": "Legg til mål", "addTarget": "Legg til mål",
@@ -516,9 +528,11 @@
"targetCreatedDescription": "Målet har blitt opprettet", "targetCreatedDescription": "Målet har blitt opprettet",
"targetErrorCreate": "Kunne ikke opprette målet", "targetErrorCreate": "Kunne ikke opprette målet",
"targetErrorCreateDescription": "Det oppstod en feil under oppretting av målet", "targetErrorCreateDescription": "Det oppstod en feil under oppretting av målet",
"tlsServerName": "TLS servernavn",
"tlsServerNameDescription": "Tjenernavnet som skal brukes for SNI",
"save": "Lagre", "save": "Lagre",
"proxyAdditional": "Ytterligere Proxy-innstillinger", "proxyAdditional": "Ytterligere Proxy-innstillinger",
"proxyAdditionalDescription": "Konfigurer hvordan ressursen din håndterer proxy-innstillinger", "proxyAdditionalDescription": "Konfigurer hvordan ressursen håndterer proxy-innstillingene",
"proxyCustomHeader": "Tilpasset verts-header", "proxyCustomHeader": "Tilpasset verts-header",
"proxyCustomHeaderDescription": "Verts-header som skal settes ved videresending av forespørsler. La stå tom for å bruke standardinnstillingen.", "proxyCustomHeaderDescription": "Verts-header som skal settes ved videresending av forespørsler. La stå tom for å bruke standardinnstillingen.",
"proxyAdditionalSubmit": "Lagre proxy-innstillinger", "proxyAdditionalSubmit": "Lagre proxy-innstillinger",
@@ -558,7 +572,7 @@
"rulesMatchType": "Trefftype", "rulesMatchType": "Trefftype",
"value": "Verdi", "value": "Verdi",
"rulesAbout": "Om regler", "rulesAbout": "Om regler",
"rulesAboutDescription": "Regler lar deg kontrollere tilgang til din ressurs basert på et sett med kriterier. Du kan opprette regler for å tillate eller nekte tilgang basert på IP-adresse eller URL-sti.", "rulesAboutDescription": "Regler gir mulighet til å kontrollere tilgangen til ressursen basert på et sett av kriterier. Du kan opprette regler for å tillate eller nekte tilgang basert på IP-adresse eller URL-bane.",
"rulesActions": "Handlinger", "rulesActions": "Handlinger",
"rulesActionAlwaysAllow": "Alltid Tillat: Omgå alle autentiserings metoder", "rulesActionAlwaysAllow": "Alltid Tillat: Omgå alle autentiserings metoder",
"rulesActionAlwaysDeny": "Alltid Nekt: Blokker alle forespørsler; ingen autentisering kan forsøkes", "rulesActionAlwaysDeny": "Alltid Nekt: Blokker alle forespørsler; ingen autentisering kan forsøkes",
@@ -570,7 +584,7 @@
"rulesEnable": "Aktiver regler", "rulesEnable": "Aktiver regler",
"rulesEnableDescription": "Aktiver eller deaktiver regelvurdering for denne ressursen", "rulesEnableDescription": "Aktiver eller deaktiver regelvurdering for denne ressursen",
"rulesResource": "Konfigurasjon av ressursregler", "rulesResource": "Konfigurasjon av ressursregler",
"rulesResourceDescription": "Konfigurere regler for tilgangskontroll til ressursen din", "rulesResourceDescription": "Konfigurer regler for å kontrollere tilgang til ressursen",
"ruleSubmit": "Legg til regel", "ruleSubmit": "Legg til regel",
"rulesNoOne": "Ingen regler. Legg til en regel ved å bruke skjemaet.", "rulesNoOne": "Ingen regler. Legg til en regel ved å bruke skjemaet.",
"rulesOrder": "Regler evalueres etter prioritet i stigende rekkefølge.", "rulesOrder": "Regler evalueres etter prioritet i stigende rekkefølge.",
@@ -586,7 +600,7 @@
"none": "Ingen", "none": "Ingen",
"unknown": "Ukjent", "unknown": "Ukjent",
"resources": "Ressurser", "resources": "Ressurser",
"resourcesDescription": "Ressurser er proxyer for applikasjoner som kjører på ditt private nettverk. Opprett en ressurs for enhver HTTP/HTTPS- eller rå TCP/UDP-tjeneste på ditt private nettverk. Hver ressurs må kobles til et område for å muliggjøre privat, sikker tilkobling gjennom en kryptert WireGuard-tunnel.", "resourcesDescription": "Ressurser er proxyer til applikasjoner som kjører i det private nettverket. Opprett en ressurs for enhver HTTP/HTTPS eller rå TCP/UDP tjeneste på ditt private nettverk. Hver ressurs må kobles til et nettsted for å aktivere privat, sikker tilkobling gjennom en kryptert WireGuard tunnel.",
"resourcesWireGuardConnect": "Sikker tilkobling med WireGuard-kryptering", "resourcesWireGuardConnect": "Sikker tilkobling med WireGuard-kryptering",
"resourcesMultipleAuthenticationMethods": "Konfigurer flere autentiseringsmetoder", "resourcesMultipleAuthenticationMethods": "Konfigurer flere autentiseringsmetoder",
"resourcesUsersRolesAccess": "Bruker- og rollebasert tilgangskontroll", "resourcesUsersRolesAccess": "Bruker- og rollebasert tilgangskontroll",
@@ -597,7 +611,7 @@
"resourceSelect": "Velg ressurs", "resourceSelect": "Velg ressurs",
"shareLinks": "Del lenker", "shareLinks": "Del lenker",
"share": "Delbare lenker", "share": "Delbare lenker",
"shareDescription2": "Opprett delbare lenker til ressursene dine. Lenker gir midlertidig eller ubegrenset tilgang til ressursen din. Du kan konfigurere utløpsvarigheten for lenken når du oppretter den.", "shareDescription2": "Opprett delbare lenker til ressurser. Lenker gir midlertidig eller ubegrenset tilgang til din ressurs. Du kan konfigurere utløpsvarigheten lenken når du oppretter en.",
"shareEasyCreate": "Enkelt å lage og dele", "shareEasyCreate": "Enkelt å lage og dele",
"shareConfigurableExpirationDuration": "Konfigurerbar utløpsvarighet", "shareConfigurableExpirationDuration": "Konfigurerbar utløpsvarighet",
"shareSecureAndRevocable": "Sikker og tilbakekallbar", "shareSecureAndRevocable": "Sikker og tilbakekallbar",
@@ -607,19 +621,19 @@
"unknownCommand": "Ukjent kommando", "unknownCommand": "Ukjent kommando",
"newtErrorFetchReleases": "Feilet å hente utgivelsesinfo: {err}", "newtErrorFetchReleases": "Feilet å hente utgivelsesinfo: {err}",
"newtErrorFetchLatest": "Feil ved henting av siste utgivelse: {err}", "newtErrorFetchLatest": "Feil ved henting av siste utgivelse: {err}",
"newtEndpoint": "Newt endepunkt", "newtEndpoint": "Endpoint",
"newtId": "Newt-ID", "newtId": "ID",
"newtSecretKey": "Newt hemmelig nøkkel", "newtSecretKey": "Sikkerhetsnøkkel",
"architecture": "Arkitektur", "architecture": "Arkitektur",
"sites": "Områder", "sites": "Områder",
"siteWgAnyClients": "Bruk en hvilken som helst WireGuard-klient for å koble til. Du må adressere dine interne ressurser ved å bruke peer-IP-en.", "siteWgAnyClients": "Bruk hvilken som helst WireGuard klient til å koble til. Du må adressere interne ressurser ved hjelp av peer IP.",
"siteWgCompatibleAllClients": "Kompatibel med alle WireGuard-klienter", "siteWgCompatibleAllClients": "Kompatibel med alle WireGuard-klienter",
"siteWgManualConfigurationRequired": "Manuell konfigurasjon påkrevd", "siteWgManualConfigurationRequired": "Manuell konfigurasjon påkrevd",
"userErrorNotAdminOrOwner": "Bruker er ikke administrator eller eier", "userErrorNotAdminOrOwner": "Bruker er ikke administrator eller eier",
"pangolinSettings": "Innstillinger - Pangolin", "pangolinSettings": "Innstillinger - Pangolin",
"accessRoleYour": "Din rolle:", "accessRoleYour": "Din rolle:",
"accessRoleSelect2": "Velg en rolle", "accessRoleSelect2": "Velg roller",
"accessUserSelect": "Velg en bruker", "accessUserSelect": "Velg brukere",
"otpEmailEnter": "Skriv inn én e-post", "otpEmailEnter": "Skriv inn én e-post",
"otpEmailEnterDescription": "Trykk enter for å legge til en e-post etter å ha tastet den inn i tekstfeltet.", "otpEmailEnterDescription": "Trykk enter for å legge til en e-post etter å ha tastet den inn i tekstfeltet.",
"otpEmailErrorInvalid": "Ugyldig e-postadresse. Jokertegnet (*) må være hele lokaldelen.", "otpEmailErrorInvalid": "Ugyldig e-postadresse. Jokertegnet (*) må være hele lokaldelen.",
@@ -671,7 +685,7 @@
"resourcePincodeSetupTitle": "Angi PIN-kode", "resourcePincodeSetupTitle": "Angi PIN-kode",
"resourcePincodeSetupTitleDescription": "Sett en pinkode for å beskytte denne ressursen", "resourcePincodeSetupTitleDescription": "Sett en pinkode for å beskytte denne ressursen",
"resourceRoleDescription": "Administratorer har alltid tilgang til denne ressursen.", "resourceRoleDescription": "Administratorer har alltid tilgang til denne ressursen.",
"resourceUsersRoles": "Brukere og Roller", "resourceUsersRoles": "Tilgangskontroller",
"resourceUsersRolesDescription": "Konfigurer hvilke brukere og roller som har tilgang til denne ressursen", "resourceUsersRolesDescription": "Konfigurer hvilke brukere og roller som har tilgang til denne ressursen",
"resourceUsersRolesSubmit": "Lagre brukere og roller", "resourceUsersRolesSubmit": "Lagre brukere og roller",
"resourceWhitelistSave": "Lagring vellykket", "resourceWhitelistSave": "Lagring vellykket",
@@ -702,6 +716,7 @@
"resourceTransferSubmit": "Overfør ressurs", "resourceTransferSubmit": "Overfør ressurs",
"siteDestination": "Destinasjonsområde", "siteDestination": "Destinasjonsområde",
"searchSites": "Søk områder", "searchSites": "Søk områder",
"countries": "Land",
"accessRoleCreate": "Opprett rolle", "accessRoleCreate": "Opprett rolle",
"accessRoleCreateDescription": "Opprett en ny rolle for å gruppere brukere og administrere deres tillatelser.", "accessRoleCreateDescription": "Opprett en ny rolle for å gruppere brukere og administrere deres tillatelser.",
"accessRoleCreateSubmit": "Opprett rolle", "accessRoleCreateSubmit": "Opprett rolle",
@@ -766,15 +781,15 @@
"idpOidcConfigure": "OAuth2/OIDC-konfigurasjon", "idpOidcConfigure": "OAuth2/OIDC-konfigurasjon",
"idpOidcConfigureDescription": "Konfigurer OAuth2/OIDC-leverandørens endepunkter og legitimasjon", "idpOidcConfigureDescription": "Konfigurer OAuth2/OIDC-leverandørens endepunkter og legitimasjon",
"idpClientId": "Klient-ID", "idpClientId": "Klient-ID",
"idpClientIdDescription": "OAuth2-klient-ID-en fra identitetsleverandøren din", "idpClientIdDescription": "OAuth2 klient-ID fra identitet leverandøren",
"idpClientSecret": "Klienthemmelighet", "idpClientSecret": "Klienthemmelighet",
"idpClientSecretDescription": "OAuth2-klienthemmeligheten fra din identitetsleverandør", "idpClientSecretDescription": "Klient-hemmeligheten med OAuth2 fra identitet leverandøren",
"idpAuthUrl": "Autorisasjons-URL", "idpAuthUrl": "Autorisasjons-URL",
"idpAuthUrlDescription": "OAuth2 autorisasjonsendepunkt URL", "idpAuthUrlDescription": "OAuth2 autorisasjonsendepunkt URL",
"idpTokenUrl": "Token-URL", "idpTokenUrl": "Token-URL",
"idpTokenUrlDescription": "OAuth2-tokenendepunkt-URL", "idpTokenUrlDescription": "OAuth2-tokenendepunkt-URL",
"idpOidcConfigureAlert": "Viktig informasjon", "idpOidcConfigureAlert": "Viktig informasjon",
"idpOidcConfigureAlertDescription": "Etter at du har opprettet identitetsleverandøren, må du konfigurere callback-URL-en i identitetsleverandørens innstillinger. Callback-URL-en blir oppgitt etter vellykket opprettelse.", "idpOidcConfigureAlertDescription": "Etter at du har opprettet identitetsleverandøren, må du konfigurere callback-URLen i identitetsleverandørens innstillinger. Tilbakeringings URL vil bli lagt til etter vellykket oppretting.",
"idpToken": "Token-konfigurasjon", "idpToken": "Token-konfigurasjon",
"idpTokenDescription": "Konfigurer hvordan brukerinformasjon trekkes ut fra ID-tokenet", "idpTokenDescription": "Konfigurer hvordan brukerinformasjon trekkes ut fra ID-tokenet",
"idpJmespathAbout": "Om JMESPath", "idpJmespathAbout": "Om JMESPath",
@@ -791,7 +806,7 @@
"idpSubmit": "Opprett identitetsleverandør", "idpSubmit": "Opprett identitetsleverandør",
"orgPolicies": "Organisasjonsretningslinjer", "orgPolicies": "Organisasjonsretningslinjer",
"idpSettings": "{idpName} Innstillinger", "idpSettings": "{idpName} Innstillinger",
"idpCreateSettingsDescription": "Konfigurer innstillingene for din identitetsleverandør", "idpCreateSettingsDescription": "Konfigurer innstillingene for identiteten leverandøren",
"roleMapping": "Rolletilordning", "roleMapping": "Rolletilordning",
"orgMapping": "Organisasjon Kartlegging", "orgMapping": "Organisasjon Kartlegging",
"orgPoliciesSearch": "Søk i organisasjonens retningslinjer...", "orgPoliciesSearch": "Søk i organisasjonens retningslinjer...",
@@ -826,7 +841,7 @@
"idpUpdatedDescription": "Identitetsleverandør vellykket oppdatert", "idpUpdatedDescription": "Identitetsleverandør vellykket oppdatert",
"redirectUrl": "Omdirigerings-URL", "redirectUrl": "Omdirigerings-URL",
"redirectUrlAbout": "Om omdirigerings-URL", "redirectUrlAbout": "Om omdirigerings-URL",
"redirectUrlAboutDescription": "Dette er URL-en som brukere vil bli omdirigert til etter autentisering. Du må konfigurere denne URL-en i innstillingene for identitetsleverandøren din.", "redirectUrlAboutDescription": "Dette er URLen som brukere vil bli omdirigert etter autentisering. Du må konfigurere denne URLen i identitetsleverandørens innstillinger.",
"pangolinAuth": "Autentisering - Pangolin", "pangolinAuth": "Autentisering - Pangolin",
"verificationCodeLengthRequirements": "Din verifiseringskode må være 8 tegn.", "verificationCodeLengthRequirements": "Din verifiseringskode må være 8 tegn.",
"errorOccurred": "Det oppstod en feil", "errorOccurred": "Det oppstod en feil",
@@ -909,6 +924,10 @@
"passwordResetSent": "Vi sender en kode for tilbakestilling av passord til denne e-postadressen.", "passwordResetSent": "Vi sender en kode for tilbakestilling av passord til denne e-postadressen.",
"passwordResetCode": "Tilbakestillingskode", "passwordResetCode": "Tilbakestillingskode",
"passwordResetCodeDescription": "Sjekk e-posten din for tilbakestillingskoden.", "passwordResetCodeDescription": "Sjekk e-posten din for tilbakestillingskoden.",
"generatePasswordResetCode": "Lag tilbakestillingskode for passord",
"passwordResetCodeGenerated": "Passord tilbakestillingskoden er generert",
"passwordResetCodeGeneratedDescription": "Del denne koden med brukeren. De kan bruke den til å tilbakestille passordet.",
"passwordResetUrl": "Reset URL",
"passwordNew": "Nytt passord", "passwordNew": "Nytt passord",
"passwordNewConfirm": "Bekreft nytt passord", "passwordNewConfirm": "Bekreft nytt passord",
"changePassword": "Endre passord", "changePassword": "Endre passord",
@@ -926,6 +945,9 @@
"pincodeAuth": "Autentiseringskode", "pincodeAuth": "Autentiseringskode",
"pincodeSubmit2": "Send inn kode", "pincodeSubmit2": "Send inn kode",
"passwordResetSubmit": "Be om tilbakestilling", "passwordResetSubmit": "Be om tilbakestilling",
"passwordResetAlreadyHaveCode": "Skriv inn tilbakestillingskode for passord",
"passwordResetSmtpRequired": "Kontakt din administrator",
"passwordResetSmtpRequiredDescription": "En passord tilbakestillingskode kreves for å tilbakestille passordet. Kontakt systemansvarlig for assistanse.",
"passwordBack": "Tilbake til passord", "passwordBack": "Tilbake til passord",
"loginBack": "Gå tilbake til innlogging", "loginBack": "Gå tilbake til innlogging",
"signup": "Registrer deg", "signup": "Registrer deg",
@@ -1091,12 +1113,15 @@
"actionListSiteResources": "List opp Stedsressurser", "actionListSiteResources": "List opp Stedsressurser",
"actionUpdateSiteResource": "Oppdater Stedsressurs", "actionUpdateSiteResource": "Oppdater Stedsressurs",
"actionListInvitations": "Liste invitasjoner", "actionListInvitations": "Liste invitasjoner",
"actionExportLogs": "Eksportlogger",
"actionViewLogs": "Vis logger",
"noneSelected": "Ingen valgt", "noneSelected": "Ingen valgt",
"orgNotFound2": "Ingen organisasjoner funnet.", "orgNotFound2": "Ingen organisasjoner funnet.",
"searchProgress": "Søker...", "searchProgress": "Søker...",
"create": "Opprett", "create": "Opprett",
"orgs": "Organisasjoner", "orgs": "Organisasjoner",
"loginError": "En feil oppstod under innlogging", "loginError": "En feil oppstod under innlogging",
"loginRequiredForDevice": "Innlogging kreves for å godkjenne enheten.",
"passwordForgot": "Glemt passordet ditt?", "passwordForgot": "Glemt passordet ditt?",
"otpAuth": "Tofaktorautentisering", "otpAuth": "Tofaktorautentisering",
"otpAuthDescription": "Skriv inn koden fra autentiseringsappen din eller en av dine engangs reservekoder.", "otpAuthDescription": "Skriv inn koden fra autentiseringsappen din eller en av dine engangs reservekoder.",
@@ -1151,37 +1176,47 @@
"sidebarHome": "Hjem", "sidebarHome": "Hjem",
"sidebarSites": "Områder", "sidebarSites": "Områder",
"sidebarResources": "Ressurser", "sidebarResources": "Ressurser",
"sidebarProxyResources": "Offentlig",
"sidebarClientResources": "Privat",
"sidebarAccessControl": "Tilgangskontroll", "sidebarAccessControl": "Tilgangskontroll",
"sidebarLogsAndAnalytics": "Logger og analyser",
"sidebarUsers": "Brukere", "sidebarUsers": "Brukere",
"sidebarAdmin": "Administrator",
"sidebarInvitations": "Invitasjoner", "sidebarInvitations": "Invitasjoner",
"sidebarRoles": "Roller", "sidebarRoles": "Roller",
"sidebarShareableLinks": "Delbare lenker", "sidebarShareableLinks": "Lenker",
"sidebarApiKeys": "API-nøkler", "sidebarApiKeys": "API-nøkler",
"sidebarSettings": "Innstillinger", "sidebarSettings": "Innstillinger",
"sidebarAllUsers": "Alle brukere", "sidebarAllUsers": "Alle brukere",
"sidebarIdentityProviders": "Identitetsleverandører", "sidebarIdentityProviders": "Identitetsleverandører",
"sidebarLicense": "Lisens", "sidebarLicense": "Lisens",
"sidebarClients": "Klienter", "sidebarClients": "Klienter",
"sidebarUserDevices": "Brukere",
"sidebarMachineClients": "Maskiner",
"sidebarDomains": "Domener", "sidebarDomains": "Domener",
"sidebarGeneral": "Generelt",
"sidebarLogAndAnalytics": "Logg og analyser",
"sidebarBluePrints": "Tegninger", "sidebarBluePrints": "Tegninger",
"sidebarOrganization": "Organisasjon",
"sidebarLogsAnalytics": "Analyser",
"blueprints": "Tegninger", "blueprints": "Tegninger",
"blueprintsDescription": "Tegninger er deklarative YAML konfigurasjoner som definerer dine ressurser og deres innstillinger", "blueprintsDescription": "Bruk deklarative konfigurasjoner og vis tidligere kjøringer",
"blueprintAdd": "Legg til blåkopi", "blueprintAdd": "Legg til blåkopi",
"blueprintGoBack": "Se alle blåkopier", "blueprintGoBack": "Se alle blåkopier",
"blueprintCreate": "Opprette mal", "blueprintCreate": "Opprette mal",
"blueprintCreateDescription2": "Følg trinnene nedenfor for å opprette og bruke en ny plantegning", "blueprintCreateDescription2": "Følg trinnene nedenfor for å opprette og bruke en ny plantegning",
"blueprintDetails": "Blåkopi detaljer", "blueprintDetails": "Blåkopi detaljer",
"blueprintDetailsDescription": "Se detaljer om plantegning", "blueprintDetailsDescription": "Se resultatet av den påførte blåkopien og alle feil som oppstod",
"blueprintInfo": "Blåkopi informasjon", "blueprintInfo": "Blåkopi informasjon",
"message": "Melding", "message": "Melding",
"blueprintContentsDescription": "Definer innhold av YAML som beskriver din infrastruktur", "blueprintContentsDescription": "Definere innholdet til YAML som beskriver infrastrukturen",
"blueprintErrorCreateDescription": "Det oppstod en feil da plantegningen ble lagt til", "blueprintErrorCreateDescription": "Det oppstod en feil da plantegningen ble lagt til",
"blueprintErrorCreate": "Feil ved opprettelse av plantegning", "blueprintErrorCreate": "Feil ved opprettelse av plantegning",
"searchBlueprintProgress": "Søk etter plantegninger...", "searchBlueprintProgress": "Søk etter plantegninger...",
"appliedAt": "Anvendt på", "appliedAt": "Anvendt på",
"source": "Kilde", "source": "Kilde",
"contents": "Innhold", "contents": "Innhold",
"parsedContents": "Parket innhold", "parsedContents": "Parastinnhold (kun lese)",
"enableDockerSocket": "Aktiver Docker blåkopi", "enableDockerSocket": "Aktiver Docker blåkopi",
"enableDockerSocketDescription": "Aktiver skraping av Docker Socket for blueprint Etiketter. Socket bane må brukes for nye.", "enableDockerSocketDescription": "Aktiver skraping av Docker Socket for blueprint Etiketter. Socket bane må brukes for nye.",
"enableDockerSocketLink": "Lær mer", "enableDockerSocketLink": "Lær mer",
@@ -1230,15 +1265,15 @@
"loading": "Laster inn", "loading": "Laster inn",
"restart": "Start på nytt", "restart": "Start på nytt",
"domains": "Domener", "domains": "Domener",
"domainsDescription": "Administrer domener for organisasjonen din", "domainsDescription": "Opprett og behandle domener som er tilgjengelige i organisasjonen",
"domainsSearch": "Søk i domener...", "domainsSearch": "Søk i domener...",
"domainAdd": "Legg til domene", "domainAdd": "Legg til domene",
"domainAddDescription": "Registrer et nytt domene hos organisasjonen din", "domainAddDescription": "Registrer et nytt domene med organisasjonen",
"domainCreate": "Opprett domene", "domainCreate": "Opprett domene",
"domainCreatedDescription": "Domene ble opprettet", "domainCreatedDescription": "Domene ble opprettet",
"domainDeletedDescription": "Domene ble slettet", "domainDeletedDescription": "Domene ble slettet",
"domainQuestionRemove": "Er du sikker på at du vil fjerne domenet fra kontoen din?", "domainQuestionRemove": "Er du sikker på at du vil fjerne domenet?",
"domainMessageRemove": "Når domenet er fjernet, vil det ikke lenger være knyttet til kontoen din.", "domainMessageRemove": "Når domenet er fjernet, vil det ikke lenger være forbundet med organisasjonen.",
"domainConfirmDelete": "Bekreft sletting av domene", "domainConfirmDelete": "Bekreft sletting av domene",
"domainDelete": "Slett domene", "domainDelete": "Slett domene",
"domain": "Domene", "domain": "Domene",
@@ -1279,6 +1314,15 @@
"settingsErrorUpdateDescription": "En feil oppstod under oppdatering av innstillinger", "settingsErrorUpdateDescription": "En feil oppstod under oppdatering av innstillinger",
"sidebarCollapse": "Skjul", "sidebarCollapse": "Skjul",
"sidebarExpand": "Utvid", "sidebarExpand": "Utvid",
"productUpdateMoreInfo": "{noOfUpdates} flere oppdateringer",
"productUpdateInfo": "{noOfUpdates} oppdateringer",
"productUpdateWhatsNew": "Hva er nytt",
"productUpdateTitle": "Oppdateringer om produktet",
"productUpdateEmpty": "Ingen oppdateringer",
"dismissAll": "Avvis alle",
"pangolinUpdateAvailable": "Oppdatering tilgjengelig",
"pangolinUpdateAvailableInfo": "Versjon {version} er klar til å installere",
"pangolinUpdateAvailableReleaseNotes": "Se utgivelsesnotater",
"newtUpdateAvailable": "Oppdatering tilgjengelig", "newtUpdateAvailable": "Oppdatering tilgjengelig",
"newtUpdateAvailableInfo": "En ny versjon av Newt er tilgjengelig. Vennligst oppdater til den nyeste versjonen for den beste opplevelsen.", "newtUpdateAvailableInfo": "En ny versjon av Newt er tilgjengelig. Vennligst oppdater til den nyeste versjonen for den beste opplevelsen.",
"domainPickerEnterDomain": "Domene", "domainPickerEnterDomain": "Domene",
@@ -1291,7 +1335,7 @@
"domainPickerSortAsc": "A-Å", "domainPickerSortAsc": "A-Å",
"domainPickerSortDesc": "Å-A", "domainPickerSortDesc": "Å-A",
"domainPickerCheckingAvailability": "Sjekker tilgjengelighet...", "domainPickerCheckingAvailability": "Sjekker tilgjengelighet...",
"domainPickerNoMatchingDomains": "Ingen samsvarende domener funnet. Prøv et annet domene eller sjekk organisasjonens domeneinnstillinger.", "domainPickerNoMatchingDomains": "Ingen samsvarende domener funnet. Prøv et annet domene eller kontroller organisasjonens domeneinnstillinger.",
"domainPickerOrganizationDomains": "Organisasjonsdomener", "domainPickerOrganizationDomains": "Organisasjonsdomener",
"domainPickerProvidedDomains": "Leverte domener", "domainPickerProvidedDomains": "Leverte domener",
"domainPickerSubdomain": "Underdomene: {subdomain}", "domainPickerSubdomain": "Underdomene: {subdomain}",
@@ -1325,7 +1369,7 @@
"billingModifySubscription": "Endre abonnement", "billingModifySubscription": "Endre abonnement",
"billingStartSubscription": "Start abonnement", "billingStartSubscription": "Start abonnement",
"billingRecurringCharge": "Innkommende Avgift", "billingRecurringCharge": "Innkommende Avgift",
"billingManageSubscriptionSettings": "Administrer abonnementsinnstillinger og preferanser", "billingManageSubscriptionSettings": "Administrer abonnementsinnstillinger og -innstillinger",
"billingNoActiveSubscription": "Du har ikke et aktivt abonnement. Start abonnementet ditt for å øke bruksgrensene.", "billingNoActiveSubscription": "Du har ikke et aktivt abonnement. Start abonnementet ditt for å øke bruksgrensene.",
"billingFailedToLoadSubscription": "Klarte ikke å laste abonnement", "billingFailedToLoadSubscription": "Klarte ikke å laste abonnement",
"billingFailedToLoadUsage": "Klarte ikke å laste bruksdata", "billingFailedToLoadUsage": "Klarte ikke å laste bruksdata",
@@ -1336,9 +1380,9 @@
"billingPortalError": "Portalfeil", "billingPortalError": "Portalfeil",
"billingDataUsageInfo": "Du er ladet for all data som overføres gjennom dine sikre tunneler når du er koblet til skyen. Dette inkluderer både innkommende og utgående trafikk på alle dine nettsteder. Når du når grensen din, vil sidene koble fra til du oppgraderer planen eller reduserer bruken. Data belastes ikke ved bruk av EK-grupper.", "billingDataUsageInfo": "Du er ladet for all data som overføres gjennom dine sikre tunneler når du er koblet til skyen. Dette inkluderer både innkommende og utgående trafikk på alle dine nettsteder. Når du når grensen din, vil sidene koble fra til du oppgraderer planen eller reduserer bruken. Data belastes ikke ved bruk av EK-grupper.",
"billingOnlineTimeInfo": "Du er ladet på hvor lenge sidene dine forblir koblet til skyen. For eksempel tilsvarer 44,640 minutter ett nettsted som går 24/7 i en hel måned. Når du når grensen din, vil sidene koble fra til du oppgraderer planen eller reduserer bruken. Tid belastes ikke når du bruker noder.", "billingOnlineTimeInfo": "Du er ladet på hvor lenge sidene dine forblir koblet til skyen. For eksempel tilsvarer 44,640 minutter ett nettsted som går 24/7 i en hel måned. Når du når grensen din, vil sidene koble fra til du oppgraderer planen eller reduserer bruken. Tid belastes ikke når du bruker noder.",
"billingUsersInfo": "Du belastes for hver bruker i organisasjonen din. Faktureringen beregnes daglig basert på antall aktive brukerkontoer i organisasjonen din.", "billingUsersInfo": "Du lades for hver bruker i organisasjonen. Fakturering beregnes daglig basert på antall aktive brukerkontoer i dine org.",
"billingDomainInfo": "Du belastes for hvert domene i organisasjonen din. Faktureringen beregnes daglig basert på antall aktive domenekontoer i organisasjonen din.", "billingDomainInfo": "Du lades for hvert domene i organisasjonen. Fakturering beregnes daglig basert på antallet aktive domenekontoer i din org.",
"billingRemoteExitNodesInfo": "Du belastes for hver styrt node i organisasjonen din. Faktureringen beregnes daglig basert på antall aktive styrte noder i organisasjonen din.", "billingRemoteExitNodesInfo": "Du lades for hver håndterte node i organisasjonen. Fakturering beregnes daglig basert på antallet aktive håndterte noder i dine org.",
"domainNotFound": "Domene ikke funnet", "domainNotFound": "Domene ikke funnet",
"domainNotFoundDescription": "Denne ressursen er deaktivert fordi domenet ikke lenger eksisterer i systemet vårt. Vennligst angi et nytt domene for denne ressursen.", "domainNotFoundDescription": "Denne ressursen er deaktivert fordi domenet ikke lenger eksisterer i systemet vårt. Vennligst angi et nytt domene for denne ressursen.",
"failed": "Mislyktes", "failed": "Mislyktes",
@@ -1421,29 +1465,32 @@
"and": "og", "and": "og",
"privacyPolicy": "personvernerklæringen" "privacyPolicy": "personvernerklæringen"
}, },
"signUpMarketing": {
"keepMeInTheLoop": "Hold meg i løken med nyheter, oppdateringer og nye funksjoner via e-post."
},
"siteRequired": "Område er påkrevd.", "siteRequired": "Område er påkrevd.",
"olmTunnel": "Olm-tunnel", "olmTunnel": "Olm-tunnel",
"olmTunnelDescription": "Bruk Olm for klienttilkobling", "olmTunnelDescription": "Bruk Olm for klienttilkobling",
"errorCreatingClient": "Feil ved oppretting av klient", "errorCreatingClient": "Feil ved oppretting av klient",
"clientDefaultsNotFound": "Klientstandarder ikke funnet", "clientDefaultsNotFound": "Klientstandarder ikke funnet",
"createClient": "Opprett klient", "createClient": "Opprett klient",
"createClientDescription": "Opprett en ny klient for å koble til dine områder", "createClientDescription": "Opprette en ny klient for å få tilgang til private ressurser",
"seeAllClients": "Se alle klienter", "seeAllClients": "Se alle klienter",
"clientInformation": "Klientinformasjon", "clientInformation": "Klientinformasjon",
"clientNamePlaceholder": "Klientnavn", "clientNamePlaceholder": "Klientnavn",
"address": "Adresse", "address": "Adresse",
"subnetPlaceholder": "Subnett", "subnetPlaceholder": "Subnett",
"addressDescription": "Adressen denne klienten vil bruke for tilkobling", "addressDescription": "Den interne adressen til klienten. Må falle innenfor organisasjonens undernett.",
"selectSites": "Velg områder", "selectSites": "Velg områder",
"sitesDescription": "Klienten vil ha tilkobling til de valgte områdene", "sitesDescription": "Klienten vil ha tilkobling til de valgte områdene",
"clientInstallOlm": "Installer Olm", "clientInstallOlm": "Installer Olm",
"clientInstallOlmDescription": "Få Olm til å kjøre på systemet ditt", "clientInstallOlmDescription": "Få Olm til å kjøre på systemet ditt",
"clientOlmCredentials": "Olm-legitimasjon", "clientOlmCredentials": "Legitimasjon",
"clientOlmCredentialsDescription": "Slik vil Olm autentisere med serveren", "clientOlmCredentialsDescription": "Dette er hvordan klienten vil godkjenne med serveren",
"olmEndpoint": "Olm-endepunkt", "olmEndpoint": "Endpoint",
"olmId": "Olm-ID", "olmId": "ID",
"olmSecretKey": "Olm hemmelig nøkkel", "olmSecretKey": "Sikkerhetsnøkkel",
"clientCredentialsSave": "Lagre din legitimasjon", "clientCredentialsSave": "Lagre brukeropplysninger",
"clientCredentialsSaveDescription": "Du vil bare kunne se dette én gang. Sørg for å kopiere det til et sikkert sted.", "clientCredentialsSaveDescription": "Du vil bare kunne se dette én gang. Sørg for å kopiere det til et sikkert sted.",
"generalSettingsDescription": "Konfigurer de generelle innstillingene for denne klienten", "generalSettingsDescription": "Konfigurer de generelle innstillingene for denne klienten",
"clientUpdated": "Klient oppdatert", "clientUpdated": "Klient oppdatert",
@@ -1454,9 +1501,7 @@
"sitesFetchError": "En feil oppstod under henting av områder.", "sitesFetchError": "En feil oppstod under henting av områder.",
"olmErrorFetchReleases": "En feil oppstod under henting av Olm-utgivelser.", "olmErrorFetchReleases": "En feil oppstod under henting av Olm-utgivelser.",
"olmErrorFetchLatest": "En feil oppstod under henting av den nyeste Olm-utgivelsen.", "olmErrorFetchLatest": "En feil oppstod under henting av den nyeste Olm-utgivelsen.",
"remoteSubnets": "Fjern-subnett",
"enterCidrRange": "Skriv inn CIDR-område", "enterCidrRange": "Skriv inn CIDR-område",
"remoteSubnetsDescription": "Legg til CIDR-områder som kan få fjerntilgang til dette området. Bruk format som 10.0.0.0/24 eller 192.168.1.0/24.",
"resourceEnableProxy": "Aktiver offentlig proxy", "resourceEnableProxy": "Aktiver offentlig proxy",
"resourceEnableProxyDescription": "Aktiver offentlig proxying til denne ressursen. Dette gir tilgang til ressursen fra utsiden av nettverket gjennom skyen på en åpen port. Krever Traefik-konfigurasjon.", "resourceEnableProxyDescription": "Aktiver offentlig proxying til denne ressursen. Dette gir tilgang til ressursen fra utsiden av nettverket gjennom skyen på en åpen port. Krever Traefik-konfigurasjon.",
"externalProxyEnabled": "Ekstern proxy aktivert", "externalProxyEnabled": "Ekstern proxy aktivert",
@@ -1474,14 +1519,15 @@
"enableHealthChecksDescription": "Overvåk helsen til dette målet. Du kan overvåke et annet endepunkt enn målet hvis nødvendig.", "enableHealthChecksDescription": "Overvåk helsen til dette målet. Du kan overvåke et annet endepunkt enn målet hvis nødvendig.",
"healthScheme": "Metode", "healthScheme": "Metode",
"healthSelectScheme": "Velg metode", "healthSelectScheme": "Velg metode",
"healthCheckPortInvalid": "Helsekontrollporten må være mellom 1 og 65535",
"healthCheckPath": "Sti", "healthCheckPath": "Sti",
"healthHostname": "IP / Vert", "healthHostname": "IP / Vert",
"healthPort": "Port", "healthPort": "Port",
"healthCheckPathDescription": "Stien for å sjekke helsestatus.", "healthCheckPathDescription": "Stien for å sjekke helsestatus.",
"healthyIntervalSeconds": "Sunt intervall", "healthyIntervalSeconds": "Sunn intervall (sek)",
"unhealthyIntervalSeconds": "Usunt intervall", "unhealthyIntervalSeconds": "Usunt intervall (sek)",
"IntervalSeconds": "Sunt intervall", "IntervalSeconds": "Sunt intervall",
"timeoutSeconds": "Tidsavbrudd", "timeoutSeconds": "Tidsavbrudd (sek)",
"timeIsInSeconds": "Tid er i sekunder", "timeIsInSeconds": "Tid er i sekunder",
"retryAttempts": "Forsøk på nytt", "retryAttempts": "Forsøk på nytt",
"expectedResponseCodes": "Forventede svarkoder", "expectedResponseCodes": "Forventede svarkoder",
@@ -1517,16 +1563,22 @@
"resourceEditDomain": "Rediger domene", "resourceEditDomain": "Rediger domene",
"siteName": "Områdenavn", "siteName": "Områdenavn",
"proxyPort": "Port", "proxyPort": "Port",
"resourcesTableProxyResources": "Proxy-ressurser", "resourcesTableProxyResources": "Offentlig",
"resourcesTableClientResources": "Klientressurser", "resourcesTableClientResources": "Privat",
"resourcesTableNoProxyResourcesFound": "Ingen proxy-ressurser funnet.", "resourcesTableNoProxyResourcesFound": "Ingen proxy-ressurser funnet.",
"resourcesTableNoInternalResourcesFound": "Ingen interne ressurser funnet.", "resourcesTableNoInternalResourcesFound": "Ingen interne ressurser funnet.",
"resourcesTableDestination": "Destinasjon", "resourcesTableDestination": "Destinasjon",
"resourcesTableTheseResourcesForUseWith": "Disse ressursene er til bruk med", "resourcesTableAlias": "Alias",
"resourcesTableClients": "Klienter", "resourcesTableClients": "Klienter",
"resourcesTableAndOnlyAccessibleInternally": "og er kun tilgjengelig internt når de er koblet til med en klient.", "resourcesTableAndOnlyAccessibleInternally": "og er kun tilgjengelig internt når de er koblet til med en klient.",
"editInternalResourceDialogEditClientResource": "Rediger klientressurs", "resourcesTableNoTargets": "Ingen mål",
"editInternalResourceDialogUpdateResourceProperties": "Oppdater ressursens egenskaper og målkonfigurasjon for {resourceName}.", "resourcesTableHealthy": "Frisk",
"resourcesTableDegraded": "Nedgradert",
"resourcesTableOffline": "Frakoblet",
"resourcesTableUnknown": "Ukjent",
"resourcesTableNotMonitored": "Ikke overvåket",
"editInternalResourceDialogEditClientResource": "Rediger Private Ressurser",
"editInternalResourceDialogUpdateResourceProperties": "Oppdater ressurskonfigurasjonen og få tilgangskontroller for {resourceName}",
"editInternalResourceDialogResourceProperties": "Ressursegenskaper", "editInternalResourceDialogResourceProperties": "Ressursegenskaper",
"editInternalResourceDialogName": "Navn", "editInternalResourceDialogName": "Navn",
"editInternalResourceDialogProtocol": "Protokoll", "editInternalResourceDialogProtocol": "Protokoll",
@@ -1545,11 +1597,22 @@
"editInternalResourceDialogInvalidIPAddressFormat": "Ugyldig IP-adresseformat", "editInternalResourceDialogInvalidIPAddressFormat": "Ugyldig IP-adresseformat",
"editInternalResourceDialogDestinationPortMin": "Destinasjonsport må være minst 1", "editInternalResourceDialogDestinationPortMin": "Destinasjonsport må være minst 1",
"editInternalResourceDialogDestinationPortMax": "Destinasjonsport må være mindre enn 65536", "editInternalResourceDialogDestinationPortMax": "Destinasjonsport må være mindre enn 65536",
"editInternalResourceDialogPortModeRequired": "Protokoll, proxy-port og målport er påkrevd for portmodus",
"editInternalResourceDialogMode": "Modus",
"editInternalResourceDialogModePort": "Port",
"editInternalResourceDialogModeHost": "Vert",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogDestination": "Destinasjon",
"editInternalResourceDialogDestinationHostDescription": "IP-adressen eller vertsnavnet til ressursen på nettstedets nettverk.",
"editInternalResourceDialogDestinationIPDescription": "IP eller vertsnavn til ressursen på nettstedets nettverk.",
"editInternalResourceDialogDestinationCidrDescription": "CIDR-rekkevidden til ressursen på nettstedets nettverk.",
"editInternalResourceDialogAlias": "Alias",
"editInternalResourceDialogAliasDescription": "Et valgfritt internt DNS-alias for denne ressursen.",
"createInternalResourceDialogNoSitesAvailable": "Ingen tilgjengelige steder", "createInternalResourceDialogNoSitesAvailable": "Ingen tilgjengelige steder",
"createInternalResourceDialogNoSitesAvailableDescription": "Du må ha minst ett Newt-område med et konfigureret delnett for å lage interne ressurser.", "createInternalResourceDialogNoSitesAvailableDescription": "Du må ha minst ett Newt-område med et konfigureret delnett for å lage interne ressurser.",
"createInternalResourceDialogClose": "Lukk", "createInternalResourceDialogClose": "Lukk",
"createInternalResourceDialogCreateClientResource": "Opprett klientressurs", "createInternalResourceDialogCreateClientResource": "Opprett privat ressurs",
"createInternalResourceDialogCreateClientResourceDescription": "Lag en ny ressurs som blir tilgjengelig for klienter koblet til det valgte området.", "createInternalResourceDialogCreateClientResourceDescription": "Opprett en ny ressurs som bare vil være tilgjengelig for kunder som er koblet til organisasjonen",
"createInternalResourceDialogResourceProperties": "Ressursegenskaper", "createInternalResourceDialogResourceProperties": "Ressursegenskaper",
"createInternalResourceDialogName": "Navn", "createInternalResourceDialogName": "Navn",
"createInternalResourceDialogSite": "Område", "createInternalResourceDialogSite": "Område",
@@ -1578,11 +1641,22 @@
"createInternalResourceDialogInvalidIPAddressFormat": "Ugyldig IP-adresseformat", "createInternalResourceDialogInvalidIPAddressFormat": "Ugyldig IP-adresseformat",
"createInternalResourceDialogDestinationPortMin": "Destinasjonsport må være minst 1", "createInternalResourceDialogDestinationPortMin": "Destinasjonsport må være minst 1",
"createInternalResourceDialogDestinationPortMax": "Destinasjonsport må være mindre enn 65536", "createInternalResourceDialogDestinationPortMax": "Destinasjonsport må være mindre enn 65536",
"createInternalResourceDialogPortModeRequired": "Protokoll, proxy-port og målport er påkrevd for portmodus",
"createInternalResourceDialogMode": "Modus",
"createInternalResourceDialogModePort": "Port",
"createInternalResourceDialogModeHost": "Vert",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogDestination": "Destinasjon",
"createInternalResourceDialogDestinationHostDescription": "IP-adressen eller vertsnavnet til ressursen på nettstedets nettverk.",
"createInternalResourceDialogDestinationCidrDescription": "CIDR-rekkevidden til ressursen på nettstedets nettverk.",
"createInternalResourceDialogAlias": "Alias",
"createInternalResourceDialogAliasDescription": "Et valgfritt internt DNS-alias for denne ressursen.",
"siteConfiguration": "Konfigurasjon", "siteConfiguration": "Konfigurasjon",
"siteAcceptClientConnections": "Godta klientforbindelser", "siteAcceptClientConnections": "Godta klientforbindelser",
"siteAcceptClientConnectionsDescription": "Tillat andre enheter å koble seg til gjennom denne Newt-instansen som en gateway ved hjelp av klienter.", "siteAcceptClientConnectionsDescription": "Tillat brukere og klienter å få tilgang til ressurser på denne siden. Dette kan endres senere.",
"siteAddress": "Områdeadresse", "siteAddress": "Nettstedsadresse (Avansert)",
"siteAddressDescription": "Angi IP-adressen til verten for klienter å koble seg til. Dette er den interne adressen til området i Pangolin-nettverket for klienter som adresserer. Må falle innenfor Org-underettet.", "siteAddressDescription": "Den interne adressen til nettstedet. Må falle innenfor organisasjonens undernett.",
"siteNameDescription": "Visningsnavnet på nettstedet som kan endres senere.",
"autoLoginExternalIdp": "Automatisk innlogging med ekstern IDP", "autoLoginExternalIdp": "Automatisk innlogging med ekstern IDP",
"autoLoginExternalIdpDescription": "Omdiriger brukeren umiddelbart til den eksterne IDP-en for autentisering.", "autoLoginExternalIdpDescription": "Omdiriger brukeren umiddelbart til den eksterne IDP-en for autentisering.",
"selectIdp": "Velg IDP", "selectIdp": "Velg IDP",
@@ -1596,7 +1670,7 @@
"autoLoginErrorNoRedirectUrl": "Ingen omdirigerings-URL mottatt fra identitetsleverandøren.", "autoLoginErrorNoRedirectUrl": "Ingen omdirigerings-URL mottatt fra identitetsleverandøren.",
"autoLoginErrorGeneratingUrl": "Kunne ikke generere autentiserings-URL.", "autoLoginErrorGeneratingUrl": "Kunne ikke generere autentiserings-URL.",
"remoteExitNodeManageRemoteExitNodes": "Eksterne Noder", "remoteExitNodeManageRemoteExitNodes": "Eksterne Noder",
"remoteExitNodeDescription": "Selvbetjent én eller flere eksterne noder for å utvide nettverkstilkoblingen din og redusere avhengighet på skyen", "remoteExitNodeDescription": "Selvbetjent én eller flere eksterne noder for å utvide nettverkstilkobling og redusere avhengighet på skyen",
"remoteExitNodes": "Noder", "remoteExitNodes": "Noder",
"searchRemoteExitNodes": "Søk noder...", "searchRemoteExitNodes": "Søk noder...",
"remoteExitNodeAdd": "Legg til Node", "remoteExitNodeAdd": "Legg til Node",
@@ -1608,7 +1682,7 @@
"sidebarRemoteExitNodes": "Eksterne Noder", "sidebarRemoteExitNodes": "Eksterne Noder",
"remoteExitNodeCreate": { "remoteExitNodeCreate": {
"title": "Opprett node", "title": "Opprett node",
"description": "Opprett en ny node for å utvide nettverkstilkoblingen din", "description": "Opprett en ny node for å utvide nettverkstilkoblingen",
"viewAllButton": "Vis alle koder", "viewAllButton": "Vis alle koder",
"strategy": { "strategy": {
"title": "Opprettelsesstrategi", "title": "Opprettelsesstrategi",
@@ -1633,7 +1707,7 @@
}, },
"generate": { "generate": {
"title": "Genererte Legitimasjoner", "title": "Genererte Legitimasjoner",
"description": "Bruk disse genererte opplysningene for å konfigurere noden din", "description": "Bruk disse genererte opplysningene for å konfigurere noden",
"nodeIdTitle": "Node-ID", "nodeIdTitle": "Node-ID",
"secretTitle": "Sikkerhet", "secretTitle": "Sikkerhet",
"saveCredentialsTitle": "Legg til Legitimasjoner til Config", "saveCredentialsTitle": "Legg til Legitimasjoner til Config",
@@ -1709,16 +1783,16 @@
"idpTypeLabel": "Identitet leverandør type", "idpTypeLabel": "Identitet leverandør type",
"roleMappingExpressionPlaceholder": "F.eks. inneholder(grupper, 'admin') && 'Admin' ⋅'Medlem'", "roleMappingExpressionPlaceholder": "F.eks. inneholder(grupper, 'admin') && 'Admin' ⋅'Medlem'",
"idpGoogleConfiguration": "Google Konfigurasjon", "idpGoogleConfiguration": "Google Konfigurasjon",
"idpGoogleConfigurationDescription": "Konfigurer din Google OAuth2 legitimasjon", "idpGoogleConfigurationDescription": "Konfigurer Google OAuth2 legitimasjonen",
"idpGoogleClientIdDescription": "Din Google OAuth2-klient-ID", "idpGoogleClientIdDescription": "Google OAuth2 Client ID",
"idpGoogleClientSecretDescription": "Google OAuth2-klienten din hemmelig", "idpGoogleClientSecretDescription": "Google OAuth2-klienten hemmelighet",
"idpAzureConfiguration": "Azure Entra ID konfigurasjon", "idpAzureConfiguration": "Azure Entra ID konfigurasjon",
"idpAzureConfigurationDescription": "Konfigurere din Azure Entra ID OAuth2 legitimasjon", "idpAzureConfigurationDescription": "Konfigurer Azure Entra ID OAuth2 legitimasjon",
"idpTenantId": "Leietaker-ID", "idpTenantId": "Leietaker-ID",
"idpTenantIdPlaceholder": "din-tenant-id", "idpTenantIdPlaceholder": "tenant-id",
"idpAzureTenantIdDescription": "Din Azure leie-ID (funnet i Azure Active Directory-oversikten)", "idpAzureTenantIdDescription": "Azure leant ID (funnet i Azure Active Directory-oversikten)",
"idpAzureClientIdDescription": "Din Azure App registrerings klient-ID", "idpAzureClientIdDescription": "Azure App registrerings klient-ID",
"idpAzureClientSecretDescription": "Din Azure App registrerings klient hemmelig", "idpAzureClientSecretDescription": "Azure App Registrering Klient Hemmelig",
"idpGoogleTitle": "Google", "idpGoogleTitle": "Google",
"idpGoogleAlt": "Google", "idpGoogleAlt": "Google",
"idpAzureTitle": "Azure Entra ID", "idpAzureTitle": "Azure Entra ID",
@@ -1726,14 +1800,14 @@
"idpGoogleConfigurationTitle": "Google Konfigurasjon", "idpGoogleConfigurationTitle": "Google Konfigurasjon",
"idpAzureConfigurationTitle": "Azure Entra ID konfigurasjon", "idpAzureConfigurationTitle": "Azure Entra ID konfigurasjon",
"idpTenantIdLabel": "Leietaker-ID", "idpTenantIdLabel": "Leietaker-ID",
"idpAzureClientIdDescription2": "Din Azure App registrerings klient-ID", "idpAzureClientIdDescription2": "Azure App registrerings klient-ID",
"idpAzureClientSecretDescription2": "Din Azure App registrerings klient hemmelig", "idpAzureClientSecretDescription2": "Azure App Registrering Klient Hemmelig",
"idpGoogleDescription": "Google OAuth2/OIDC leverandør", "idpGoogleDescription": "Google OAuth2/OIDC leverandør",
"idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider", "idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider",
"subnet": "Subnett", "subnet": "Subnett",
"subnetDescription": "Undernettverket for denne organisasjonens nettverkskonfigurasjon.", "subnetDescription": "Undernettverket for denne organisasjonens nettverkskonfigurasjon.",
"authPage": "Autentiseringsside", "authPage": "Autentiseringsside",
"authPageDescription": "Konfigurer autoriseringssiden for din organisasjon", "authPageDescription": "Konfigurer autoriseringssiden for organisasjonen",
"authPageDomain": "Autentiseringsside domene", "authPageDomain": "Autentiseringsside domene",
"noDomainSet": "Ingen domene valgt", "noDomainSet": "Ingen domene valgt",
"changeDomain": "Endre domene", "changeDomain": "Endre domene",
@@ -1743,7 +1817,7 @@
"setAuthPageDomain": "Angi autoriseringsside domene", "setAuthPageDomain": "Angi autoriseringsside domene",
"failedToFetchCertificate": "Kunne ikke hente sertifikat", "failedToFetchCertificate": "Kunne ikke hente sertifikat",
"failedToRestartCertificate": "Kan ikke starte sertifikat", "failedToRestartCertificate": "Kan ikke starte sertifikat",
"addDomainToEnableCustomAuthPages": "Legg til et domene for å aktivere egendefinerte autentiseringssider for organisasjonen din", "addDomainToEnableCustomAuthPages": "Legg til et domene for å aktivere egendefinerte autentiseringssider for organisasjonen",
"selectDomainForOrgAuthPage": "Velg et domene for organisasjonens autentiseringsside", "selectDomainForOrgAuthPage": "Velg et domene for organisasjonens autentiseringsside",
"domainPickerProvidedDomain": "Gitt domene", "domainPickerProvidedDomain": "Gitt domene",
"domainPickerFreeProvidedDomain": "Gratis oppgitt domene", "domainPickerFreeProvidedDomain": "Gratis oppgitt domene",
@@ -1758,7 +1832,7 @@
"domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" kunne ikke gjøres gyldig for {domain}.", "domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" kunne ikke gjøres gyldig for {domain}.",
"domainPickerSubdomainSanitized": "Underdomenet som ble sanivert", "domainPickerSubdomainSanitized": "Underdomenet som ble sanivert",
"domainPickerSubdomainCorrected": "\"{sub}\" var korrigert til \"{sanitized}\"", "domainPickerSubdomainCorrected": "\"{sub}\" var korrigert til \"{sanitized}\"",
"orgAuthSignInTitle": "Logg inn på din organisasjon", "orgAuthSignInTitle": "Logg inn på organisasjonen",
"orgAuthChooseIdpDescription": "Velg din identitet leverandør for å fortsette", "orgAuthChooseIdpDescription": "Velg din identitet leverandør for å fortsette",
"orgAuthNoIdpConfigured": "Denne organisasjonen har ikke noen identitetstjeneste konfigurert. Du kan i stedet logge inn med Pangolin identiteten din.", "orgAuthNoIdpConfigured": "Denne organisasjonen har ikke noen identitetstjeneste konfigurert. Du kan i stedet logge inn med Pangolin identiteten din.",
"orgAuthSignInWithPangolin": "Logg inn med Pangolin", "orgAuthSignInWithPangolin": "Logg inn med Pangolin",
@@ -1776,7 +1850,7 @@
"enableTwoFactorAuthentication": "Aktiver to-faktor autentisering", "enableTwoFactorAuthentication": "Aktiver to-faktor autentisering",
"completeSecuritySteps": "Fullfør sikkerhetstrinnene", "completeSecuritySteps": "Fullfør sikkerhetstrinnene",
"securitySettings": "Sikkerhet innstillinger", "securitySettings": "Sikkerhet innstillinger",
"securitySettingsDescription": "Konfigurere sikkerhetspolicyer for din organisasjon", "securitySettingsDescription": "Konfigurer sikkerhetspolicyer for organisasjonen",
"requireTwoFactorForAllUsers": "Krev to-faktor autentisering for alle brukere", "requireTwoFactorForAllUsers": "Krev to-faktor autentisering for alle brukere",
"requireTwoFactorDescription": "Når aktivert må alle interne brukere i denne organisasjonen ha to-faktorautentisering aktivert for å få tilgang til organisasjonen.", "requireTwoFactorDescription": "Når aktivert må alle interne brukere i denne organisasjonen ha to-faktorautentisering aktivert for å få tilgang til organisasjonen.",
"requireTwoFactorDisabledDescription": "Denne funksjonen krever en gyldig lisens (Enterprise) eller aktivt abonnement (SaaS)", "requireTwoFactorDisabledDescription": "Denne funksjonen krever en gyldig lisens (Enterprise) eller aktivt abonnement (SaaS)",
@@ -1839,8 +1913,12 @@
"enterpriseEdition": "Enterprise Edition", "enterpriseEdition": "Enterprise Edition",
"unlicensed": "Ikke lisensiert", "unlicensed": "Ikke lisensiert",
"beta": "beta", "beta": "beta",
"manageClients": "Administrer klienter", "manageUserDevices": "Bruker Enheter",
"manageClientsDescription": "Klienter er enheter som kan koble seg til nettstedet ditt", "manageUserDevicesDescription": "Se og administrer enheter som brukere bruker for privat tilkobling til ressurser",
"manageMachineClients": "Administrer maskinneklienter",
"manageMachineClientsDescription": "Opprett og behandle klienter som servere og systemer bruker for privat tilkobling til ressurser",
"clientsTableUserClients": "Bruker",
"clientsTableMachineClients": "Maskin",
"licenseTableValidUntil": "Gyldig til", "licenseTableValidUntil": "Gyldig til",
"saasLicenseKeysSettingsTitle": "Bedriftstillatelse Lisenser", "saasLicenseKeysSettingsTitle": "Bedriftstillatelse Lisenser",
"saasLicenseKeysSettingsDescription": "Generer og administrer Enterprise lisensnøkler for selvbetjente Pangolin forekomster", "saasLicenseKeysSettingsDescription": "Generer og administrer Enterprise lisensnøkler for selvbetjente Pangolin forekomster",
@@ -1975,11 +2053,12 @@
"pathRewriteStripLabel": "stripe", "pathRewriteStripLabel": "stripe",
"sidebarEnableEnterpriseLicense": "Aktiver Enterprise lisens", "sidebarEnableEnterpriseLicense": "Aktiver Enterprise lisens",
"cannotbeUndone": "Dette kan ikke angres.", "cannotbeUndone": "Dette kan ikke angres.",
"toConfirm": "å bekrefte", "toConfirm": "å bekrefte.",
"deleteClientQuestion": "Er du sikker på at du vil fjerne klienten fra nettstedet og organisasjonen?", "deleteClientQuestion": "Er du sikker på at du vil fjerne klienten fra nettstedet og organisasjonen?",
"clientMessageRemove": "Når klienten er fjernet, kan den ikke lenger koble seg til nettstedet.", "clientMessageRemove": "Når klienten er fjernet, kan den ikke lenger koble seg til nettstedet.",
"sidebarLogs": "Logger", "sidebarLogs": "Logger",
"request": "Forespørsel", "request": "Forespørsel",
"requests": "Forespørsler",
"logs": "Logger", "logs": "Logger",
"logsSettingsDescription": "Overvåk logger samlet fra denne orginiasjonen", "logsSettingsDescription": "Overvåk logger samlet fra denne orginiasjonen",
"searchLogs": "Søk i logger...", "searchLogs": "Søk i logger...",
@@ -2005,6 +2084,7 @@
"ip": "IP", "ip": "IP",
"reason": "Grunn", "reason": "Grunn",
"requestLogs": "Forespørselslogger (Automatic Translation)", "requestLogs": "Forespørselslogger (Automatic Translation)",
"requestAnalytics": "Be om analyser",
"host": "Vert", "host": "Vert",
"location": "Sted", "location": "Sted",
"actionLogs": "Handlingslogger", "actionLogs": "Handlingslogger",
@@ -2014,6 +2094,7 @@
"logRetention": "Logg tilbaketrekning", "logRetention": "Logg tilbaketrekning",
"logRetentionDescription": "Håndter hvor lenge ulike typer logger beholdes for denne organisasjonen, eller deaktiver dem", "logRetentionDescription": "Håndter hvor lenge ulike typer logger beholdes for denne organisasjonen, eller deaktiver dem",
"requestLogsDescription": "Se detaljerte forespørselslogger for ressurser i denne organisasjonen", "requestLogsDescription": "Se detaljerte forespørselslogger for ressurser i denne organisasjonen",
"requestAnalyticsDescription": "Se detaljert rekvisisjonsanalyse for ressurser i denne organisasjonen",
"logRetentionRequestLabel": "Be om loggoverføring", "logRetentionRequestLabel": "Be om loggoverføring",
"logRetentionRequestDescription": "Hvor lenge du vil beholde forespørselslogger", "logRetentionRequestDescription": "Hvor lenge du vil beholde forespørselslogger",
"logRetentionAccessLabel": "Få tilgang til loggoverføring", "logRetentionAccessLabel": "Få tilgang til loggoverføring",
@@ -2027,6 +2108,7 @@
"logRetention30Days": "30 dager", "logRetention30Days": "30 dager",
"logRetention90Days": "90 dager", "logRetention90Days": "90 dager",
"logRetentionForever": "Alltid", "logRetentionForever": "Alltid",
"logRetentionEndOfFollowingYear": "Slutt på neste år",
"actionLogsDescription": "Vis historikk for handlinger som er utført i denne organisasjonen", "actionLogsDescription": "Vis historikk for handlinger som er utført i denne organisasjonen",
"accessLogsDescription": "Vis autoriseringsforespørsler for ressurser i denne organisasjonen", "accessLogsDescription": "Vis autoriseringsforespørsler for ressurser i denne organisasjonen",
"licenseRequiredToUse": "En Enterprise lisens er påkrevd for å bruke denne funksjonen.", "licenseRequiredToUse": "En Enterprise lisens er påkrevd for å bruke denne funksjonen.",
@@ -2037,7 +2119,7 @@
"preferWildcardCert": "Foretrekk Wildcard sertifikat", "preferWildcardCert": "Foretrekk Wildcard sertifikat",
"unverified": "Uverifisert", "unverified": "Uverifisert",
"domainSetting": "Domene innstillinger", "domainSetting": "Domene innstillinger",
"domainSettingDescription": "Konfigurer innstillinger for ditt domene", "domainSettingDescription": "Konfigurer innstillinger for domenet",
"preferWildcardCertDescription": "Forsøk på å generere et jokertegn (krever en riktig konfigurert sertifikatløsning).", "preferWildcardCertDescription": "Forsøk på å generere et jokertegn (krever en riktig konfigurert sertifikatløsning).",
"recordName": "Lagre navn", "recordName": "Lagre navn",
"auto": "Automatisk", "auto": "Automatisk",
@@ -2051,15 +2133,15 @@
"olmUpdateAvailableInfo": "En oppdatert versjon av Olm er tilgjengelig. Oppdater til den nyeste versjonen for å få den beste opplevelsen.", "olmUpdateAvailableInfo": "En oppdatert versjon av Olm er tilgjengelig. Oppdater til den nyeste versjonen for å få den beste opplevelsen.",
"client": "Klient", "client": "Klient",
"proxyProtocol": "Protokoll innstillinger for Protokoll", "proxyProtocol": "Protokoll innstillinger for Protokoll",
"proxyProtocolDescription": "Konfigurer Proxy-protokoll for å bevare klientens IP-adresser til TCP/UDP tjenester.", "proxyProtocolDescription": "Konfigurer Proxy-protokoll for å bevare klientens IP-adresser til TCP-tjenester.",
"enableProxyProtocol": "Aktiver Proxy-protokoll", "enableProxyProtocol": "Aktiver Proxy-protokoll",
"proxyProtocolInfo": "Bevar klientens IP-adresser for TCP/UDP bakover", "proxyProtocolInfo": "Bevar klientens IP-adresser for TCP backends",
"proxyProtocolVersion": "Proxy protokoll versjon", "proxyProtocolVersion": "Proxy protokoll versjon",
"version1": " Versjon 1 (Anbefalt)", "version1": " Versjon 1 (Anbefalt)",
"version2": "Versjon 2", "version2": "Versjon 2",
"versionDescription": "Versjon 1 er tekstbasert og støttet. Versjon 2 er binært og mer effektivt, men mindre kompatibel.", "versionDescription": "Versjon 1 er tekstbasert og støttet. Versjon 2 er binært og mer effektivt, men mindre kompatibel.",
"warning": "Advarsel", "warning": "Advarsel",
"proxyProtocolWarning": "Din backend applikasjon må være konfigurert for å godta Proxy Protokoller. Hvis din backend ikke støtter Proxy Protocol, vil aktivering av dette bryte alle tilkoblinger. Sørg for å konfigurere backend til å stole på Proxy Protokoll overskrifter fra Traefik.", "proxyProtocolWarning": "backend-programmet må konfigureres til å akseptere forbindelser i Proxy Protokoll. Hvis backend ikke støtter Proxy Beskyttelse vil aktivering av dette ødelegge alle tilkoblinger så bare dette hvis du vet hva du gjør. Sørg for å konfigurere backend til å stole på Proxy Protokoll overskrifter fra Traefik.",
"restarting": "Restarter...", "restarting": "Restarter...",
"manual": "Manuell", "manual": "Manuell",
"messageSupport": "Støtte for melding", "messageSupport": "Støtte for melding",
@@ -2080,5 +2162,113 @@
"supportSending": "Sender...", "supportSending": "Sender...",
"supportSend": "Sende", "supportSend": "Sende",
"supportMessageSent": "Melding sendt!", "supportMessageSent": "Melding sendt!",
"supportWillContact": "Vi kommer raskt til å ta kontakt!" "supportWillContact": "Vi kommer raskt til å ta kontakt!",
"selectLogRetention": "Velg oppbevaring av logg",
"terms": "Vilkår",
"privacy": "Personvern",
"security": "Sikkerhet",
"docs": "Dokumenter",
"deviceActivation": "Aktivering av enhet",
"deviceCodeInvalidFormat": "Kode må inneholde 9 tegn (f.eks A1AJ-N5JD)",
"deviceCodeInvalidOrExpired": "Ugyldig eller utløpt kode",
"deviceCodeVerifyFailed": "Klarte ikke å bekrefte enhetskoden",
"signedInAs": "Logget inn som",
"deviceCodeEnterPrompt": "Skriv inn koden som vises på enheten",
"continue": "Fortsett",
"deviceUnknownLocation": "Ukjent plassering",
"deviceAuthorizationRequested": "Denne autorisasjonen ble forespurt fra {location} på {date}. Pass på at du stoler på denne enheten siden den vil få tilgang til kontoen.",
"deviceLabel": "Enhet: {deviceName}",
"deviceWantsAccess": "ønsker å få tilgang til kontoen din",
"deviceExistingAccess": "Eksisterende tilgang:",
"deviceFullAccess": "Full tilgang til din konto",
"deviceOrganizationsAccess": "Tilgang til alle organisasjoner din konto har tilgang til",
"deviceAuthorize": "Autoriser {applicationName}",
"deviceConnected": "Enhet tilkoblet!",
"deviceAuthorizedMessage": "Enhet er autorisert for tilgang til kontoen din.",
"pangolinCloud": "Pangolin Sky",
"viewDevices": "Vis enheter",
"viewDevicesDescription": "Administrer tilkoblede enheter",
"noDevices": "Ingen enheter funnet",
"dateCreated": "Opprettet dato",
"unnamedDevice": "Navnløs enhet",
"deviceQuestionRemove": "Er du sikker på at du vil slette denne enheten?",
"deviceMessageRemove": "Denne handlingen kan ikke angres.",
"deviceDeleteConfirm": "Slett enhet",
"deleteDevice": "Slett enhet",
"errorLoadingDevices": "Feil ved lasting av enheter",
"failedToLoadDevices": "Klarte ikke å laste enheter",
"deviceDeleted": "Enheten er slettet",
"deviceDeletedDescription": "Enheten har blitt slettet.",
"errorDeletingDevice": "Feil ved sletting av enhet",
"failedToDeleteDevice": "Kunne ikke slette enheten",
"showColumns": "Vis kolonner",
"hideColumns": "Skjul kolonner",
"columnVisibility": "Kolonne Synlighet",
"toggleColumn": "Veksle {columnName} kolonne",
"allColumns": "Alle kolonner",
"defaultColumns": "Standard kolonner",
"customizeView": "Tilpass visning",
"viewOptions": "Vis alternativer",
"selectAll": "Velg alle",
"selectNone": "Velg ingen",
"selectedResources": "Valgte ressurser",
"enableSelected": "Aktiver valgte",
"disableSelected": "Deaktiver valgte",
"checkSelectedStatus": "Kontroller status for valgte",
"clients": "Klienter",
"accessClientSelect": "Velg maskinklienter",
"resourceClientDescription": "Maskinklienter som har tilgang til denne ressursen",
"regenerate": "Regenerer",
"credentials": "Legitimasjon",
"savecredentials": "Lagre brukeropplysninger",
"regenerateCredentialsButton": "Regenerer brukeropplysninger",
"regenerateCredentials": "Regenerer brukeropplysninger",
"generatedcredentials": "Genererte brukeropplysninger",
"copyandsavethesecredentials": "Kopier og lagre disse opplysningene",
"copyandsavethesecredentialsdescription": "Disse opplysningene vil ikke bli vist igjen etter at du forlater siden. Lagre dem trygt nå.",
"credentialsSaved": "Påloggingsinformasjon lagret",
"credentialsSavedDescription": "Påloggingsinformasjonen har blitt regenerert og lagret.",
"credentialsSaveError": "Påloggingsinformasjon lagre feil",
"credentialsSaveErrorDescription": "En feil oppstod under regenerering og lagring av legitimasjon.",
"regenerateCredentialsWarning": "Regenerering av legitimasjon vil ugyldiggjøre de forrige og forårsake en frakobling. Sørg for å oppdatere alle konfigurasjoner som bruker disse legitimasjonene.",
"confirm": "Bekreft",
"regenerateCredentialsConfirmation": "Er du sikker på at du vil regenerere legetimasjonene?",
"endpoint": "Endpoint",
"Id": "Id",
"SecretKey": "Hemmelig nøkkel",
"niceId": "God ID",
"niceIdUpdated": "Flott ID oppdatert",
"niceIdUpdatedSuccessfully": "Id-en ble oppdatert",
"niceIdUpdateError": "Feil under oppdatering av hyggelig ID",
"niceIdUpdateErrorDescription": "Det oppstod en feil under oppdatering av Nice ID.",
"niceIdCannotBeEmpty": "God ID kan ikke være tom",
"enterIdentifier": "Angi identifikator",
"identifier": "Identifier",
"deviceLoginUseDifferentAccount": "Ikke du? Bruk en annen konto.",
"deviceLoginDeviceRequestingAccessToAccount": "En enhet ber om tilgang til denne kontoen.",
"noData": "Ingen data",
"machineClients": "Maskinklienter",
"install": "Installer",
"run": "Kjør",
"clientNameDescription": "Visningsnavnet til klienten som kan endres senere.",
"clientAddress": "Klientadresse (avansert)",
"setupFailedToFetchSubnet": "Kunne ikke hente standard undernett",
"setupSubnetAdvanced": "Subnet (avansert)",
"setupSubnetDescription": "Subnet for denne organisasjonens interne nettverk.",
"siteRegenerateAndDisconnect": "Regenerer og koble fra",
"siteRegenerateAndDisconnectConfirmation": "Er du sikker på at du vil regenerere legitimasjon og koble fra dette nettstedet?",
"siteRegenerateAndDisconnectWarning": "Dette vil regenerere legitimasjon og umiddelbart koble fra siden. Siden må startes på nytt med de nye legitimasjonene.",
"siteRegenerateCredentialsConfirmation": "Er du sikker på at du vil regenerere legitimasjon for dette nettstedet?",
"siteRegenerateCredentialsWarning": "Dette vil regenerere legitimasjonen. Siden vil forbli tilkoblet inntil du manuelt starter den på nytt og bruker de nye legitimasjonen.",
"clientRegenerateAndDisconnect": "Regenerer og koble fra",
"clientRegenerateAndDisconnectConfirmation": "Er du sikker på at du vil regenerere legitimasjon og koble fra denne klienten?",
"clientRegenerateAndDisconnectWarning": "Dette vil regenerere legitimasjon og umiddelbart koble fra klienten. Kunden må startes på nytt med de nye legitimasjonene.",
"clientRegenerateCredentialsConfirmation": "Er du sikker på at du vil regenerere legitimasjon for denne klienten?",
"clientRegenerateCredentialsWarning": "Dette vil regenerere legitimasjon. Klienten vil forbli tilkoblet inntil du manuelt starter den på nytt og bruker de nye legitimasjonen.",
"remoteExitNodeRegenerateAndDisconnect": "Regenerer og koble fra",
"remoteExitNodeRegenerateAndDisconnectConfirmation": "Er du sikker på at du vil regenerere legitimasjon og koble fra denne eksterne avslutnings noden?",
"remoteExitNodeRegenerateAndDisconnectWarning": "Dette vil regenerere innloggingsdetaljene og umiddelbart koble fra den eksterne avkjøringnoden. Ekstern avkjøringsnode må startes på nytt med de nye opplysningene",
"remoteExitNodeRegenerateCredentialsConfirmation": "Er du sikker på at du vil regenerere innloggingsene for denne eksterne avslutningen?",
"remoteExitNodeRegenerateCredentialsWarning": "Dette vil regenerere legitimasjon. Ekstern avgang noden vil forbli tilkoblet inntil du manuelt gjenoppstarter den og bruker de nye legitimasjonene.",
"agent": "Agent"
} }

View File

@@ -1,12 +1,12 @@
{ {
"setupCreate": "Maak uw organisatie, site en bronnen aan", "setupCreate": "Maak de organisatie, site en bronnen aan",
"setupNewOrg": "Nieuwe organisatie", "setupNewOrg": "Nieuwe organisatie",
"setupCreateOrg": "Nieuwe organisatie aanmaken", "setupCreateOrg": "Nieuwe organisatie aanmaken",
"setupCreateResources": "Bronnen aanmaken", "setupCreateResources": "Bronnen aanmaken",
"setupOrgName": "Naam van de organisatie", "setupOrgName": "Naam van de organisatie",
"orgDisplayName": "Dit is de weergavenaam van uw organisatie.", "orgDisplayName": "Dit is de weergavenaam van de organisatie.",
"orgId": "Organisatie ID", "orgId": "Organisatie ID",
"setupIdentifierMessage": "Dit is de unieke identificatie voor uw organisatie. Deze is gescheiden van de weergavenaam.", "setupIdentifierMessage": "Dit is de unieke identificatie voor de organisatie.",
"setupErrorIdentifier": "Organisatie-ID is al in gebruik. Kies een andere.", "setupErrorIdentifier": "Organisatie-ID is al in gebruik. Kies een andere.",
"componentsErrorNoMemberCreate": "U bent momenteel geen lid van een organisatie. Maak een organisatie aan om aan de slag te gaan.", "componentsErrorNoMemberCreate": "U bent momenteel geen lid van een organisatie. Maak een organisatie aan om aan de slag te gaan.",
"componentsErrorNoMember": "U bent momenteel geen lid van een organisatie.", "componentsErrorNoMember": "U bent momenteel geen lid van een organisatie.",
@@ -50,10 +50,10 @@
"siteMessageRemove": "Eenmaal verwijderd zal de site niet langer toegankelijk zijn. Alle aan de site gekoppelde doelen zullen ook worden verwijderd.", "siteMessageRemove": "Eenmaal verwijderd zal de site niet langer toegankelijk zijn. Alle aan de site gekoppelde doelen zullen ook worden verwijderd.",
"siteQuestionRemove": "Weet u zeker dat u de site wilt verwijderen uit de organisatie?", "siteQuestionRemove": "Weet u zeker dat u de site wilt verwijderen uit de organisatie?",
"siteManageSites": "Sites beheren", "siteManageSites": "Sites beheren",
"siteDescription": "Verbindt met uw netwerk via beveiligde tunnels", "siteDescription": "Maak en beheer sites om verbinding met privénetwerken in te schakelen",
"siteCreate": "Site maken", "siteCreate": "Site maken",
"siteCreateDescription2": "Volg de onderstaande stappen om een nieuwe site aan te maken en te verbinden", "siteCreateDescription2": "Volg de onderstaande stappen om een nieuwe site aan te maken en te verbinden",
"siteCreateDescription": "Maak een nieuwe site aan om verbinding te maken met uw bronnen", "siteCreateDescription": "Maak een nieuwe site aan om bronnen te verbinden",
"close": "Sluiten", "close": "Sluiten",
"siteErrorCreate": "Fout bij maken site", "siteErrorCreate": "Fout bij maken site",
"siteErrorCreateKeyPair": "Key pair of site standaard niet gevonden", "siteErrorCreateKeyPair": "Key pair of site standaard niet gevonden",
@@ -74,7 +74,7 @@
"siteInstallNewt": "Installeer Newt", "siteInstallNewt": "Installeer Newt",
"siteInstallNewtDescription": "Laat Newt draaien op uw systeem", "siteInstallNewtDescription": "Laat Newt draaien op uw systeem",
"WgConfiguration": "WireGuard Configuratie", "WgConfiguration": "WireGuard Configuratie",
"WgConfigurationDescription": "Gebruik de volgende configuratie om verbinding te maken met je netwerk", "WgConfigurationDescription": "Gebruik de volgende configuratie om verbinding te maken met het netwerk",
"operatingSystem": "Operating systeem", "operatingSystem": "Operating systeem",
"commands": "Opdrachten", "commands": "Opdrachten",
"recommended": "Aanbevolen", "recommended": "Aanbevolen",
@@ -87,32 +87,32 @@
"siteUpdated": "Site bijgewerkt", "siteUpdated": "Site bijgewerkt",
"siteUpdatedDescription": "De site is bijgewerkt.", "siteUpdatedDescription": "De site is bijgewerkt.",
"siteGeneralDescription": "Algemene instellingen voor deze site configureren", "siteGeneralDescription": "Algemene instellingen voor deze site configureren",
"siteSettingDescription": "Configureer de instellingen op uw site", "siteSettingDescription": "Configureer de instellingen van de site",
"siteSetting": "{siteName} instellingen", "siteSetting": "{siteName} instellingen",
"siteNewtTunnel": "Newttunnel (Aanbevolen)", "siteNewtTunnel": "Nieuwste site (Aanbevolen)",
"siteNewtTunnelDescription": "Gemakkelijkste manier om een ingangspunt in uw netwerk te maken. Geen extra opzet.", "siteNewtTunnelDescription": "Makkelijkste manier om een ingangspunt in een netwerk te maken. Geen extra opzet.",
"siteWg": "Basis WireGuard", "siteWg": "Basis WireGuard",
"siteWgDescription": "Gebruik een WireGuard client om een tunnel te bouwen. Handmatige NAT installatie vereist.", "siteWgDescription": "Gebruik een WireGuard client om een tunnel te bouwen. Handmatige NAT installatie vereist.",
"siteWgDescriptionSaas": "Gebruik elke WireGuard-client om een tunnel op te zetten. Handmatige NAT-instelling vereist. WERKT ALLEEN OP SELF HOSTED NODES", "siteWgDescriptionSaas": "Gebruik elke WireGuard-client om een tunnel op te zetten. Handmatige NAT-instelling vereist. WERKT ALLEEN OP SELF HOSTED NODES",
"siteLocalDescription": "Alleen lokale bronnen. Geen tunneling.", "siteLocalDescription": "Alleen lokale bronnen. Geen tunneling.",
"siteLocalDescriptionSaas": "Enkel lokale bronnen. Geen tunneling. Alleen beschikbaar op externe knooppunten.", "siteLocalDescriptionSaas": "Enkel lokale bronnen. Geen tunneling. Alleen beschikbaar op externe knooppunten.",
"siteSeeAll": "Alle sites bekijken", "siteSeeAll": "Alle sites bekijken",
"siteTunnelDescription": "Bepaal hoe u verbinding wilt maken met uw site", "siteTunnelDescription": "Bepaal hoe u verbinding wilt maken met de site",
"siteNewtCredentials": "Nieuwste aanmeldgegevens", "siteNewtCredentials": "Aanmeldgegevens",
"siteNewtCredentialsDescription": "Dit is hoe Newt zich zal verifiëren met de server", "siteNewtCredentialsDescription": "Dit is hoe de site zich zal verifiëren met de server",
"siteCredentialsSave": "Uw referenties opslaan", "siteCredentialsSave": "Sla de aanmeldgegevens op",
"siteCredentialsSaveDescription": "Je kunt dit slechts één keer zien. Kopieer het naar een beveiligde plek.", "siteCredentialsSaveDescription": "Je kunt dit slechts één keer zien. Kopieer het naar een beveiligde plek.",
"siteInfo": "Site informatie", "siteInfo": "Site informatie",
"status": "Status", "status": "Status",
"shareTitle": "Beheer deellinks", "shareTitle": "Beheer deellinks",
"shareDescription": "Maak deelbare links aan om tijdelijke of permanente toegang tot uw bronnen te verlenen", "shareDescription": "Maak deelbare links aan om tijdelijke of permanente toegang tot proxybronnen te verlenen",
"shareSearch": "Zoek share links...", "shareSearch": "Zoek share links...",
"shareCreate": "Maak Share link", "shareCreate": "Maak Share link",
"shareErrorDelete": "Kan link niet verwijderen", "shareErrorDelete": "Kan link niet verwijderen",
"shareErrorDeleteMessage": "Fout opgetreden tijdens het verwijderen link", "shareErrorDeleteMessage": "Fout opgetreden tijdens het verwijderen link",
"shareDeleted": "Link verwijderd", "shareDeleted": "Link verwijderd",
"shareDeletedDescription": "De link is verwijderd", "shareDeletedDescription": "De link is verwijderd",
"shareTokenDescription": "Uw toegangstoken kan op twee manieren worden doorgegeven: als queryparameter of in de header van de aanvraag. Deze moeten worden doorgegeven van de client op elk verzoek voor geverifieerde toegang.", "shareTokenDescription": "De toegangstoken kan op twee manieren worden doorgegeven: als queryparameter of in de aanvraagheaders. Deze moeten worden doorgegeven van de client op elk verzoek voor geverifieerde toegang.",
"accessToken": "Toegangs-token", "accessToken": "Toegangs-token",
"usageExamples": "Voorbeelden van gebruik", "usageExamples": "Voorbeelden van gebruik",
"tokenId": "Token ID", "tokenId": "Token ID",
@@ -121,7 +121,7 @@
"importantNote": "Belangrijke opmerking", "importantNote": "Belangrijke opmerking",
"shareImportantDescription": "Om veiligheidsredenen wordt het gebruik van headers aanbevolen over queryparameters indien mogelijk, omdat query parameters kunnen worden aangemeld in serverlogboeken of browsergeschiedenis.", "shareImportantDescription": "Om veiligheidsredenen wordt het gebruik van headers aanbevolen over queryparameters indien mogelijk, omdat query parameters kunnen worden aangemeld in serverlogboeken of browsergeschiedenis.",
"token": "Token", "token": "Token",
"shareTokenSecurety": "Houd uw toegangstoken veilig. Deel deze niet in openbaar toegankelijke gebieden of client-side code.", "shareTokenSecurety": "Houd het toegangstoken beveiligd. Deel het niet in openbaar toegankelijke gebieden of client-side code.",
"shareErrorFetchResource": "Fout bij het ophalen van bronnen", "shareErrorFetchResource": "Fout bij het ophalen van bronnen",
"shareErrorFetchResourceDescription": "Er is een fout opgetreden bij het ophalen van de resources", "shareErrorFetchResourceDescription": "Er is een fout opgetreden bij het ophalen van de resources",
"shareErrorCreate": "Aanmaken van link delen mislukt", "shareErrorCreate": "Aanmaken van link delen mislukt",
@@ -131,7 +131,7 @@
"expireIn": "Vervalt in", "expireIn": "Vervalt in",
"neverExpire": "Nooit verlopen", "neverExpire": "Nooit verlopen",
"shareExpireDescription": "Vervaltijd is hoe lang de link bruikbaar is en geeft toegang tot de bron. Na deze tijd zal de link niet meer werken en zullen gebruikers die deze link hebben gebruikt de toegang tot de pagina verliezen.", "shareExpireDescription": "Vervaltijd is hoe lang de link bruikbaar is en geeft toegang tot de bron. Na deze tijd zal de link niet meer werken en zullen gebruikers die deze link hebben gebruikt de toegang tot de pagina verliezen.",
"shareSeeOnce": "Je kunt deze koppeling alleen zien. Zorg ervoor dat je het kopieert.", "shareSeeOnce": "U kunt deze link slechts één keer zien. Zorg ervoor dat u deze kopieert.",
"shareAccessHint": "Iedereen met deze link heeft toegang tot de bron. Deel deze met zorg.", "shareAccessHint": "Iedereen met deze link heeft toegang tot de bron. Deel deze met zorg.",
"shareTokenUsage": "Zie Toegangstoken Gebruik", "shareTokenUsage": "Zie Toegangstoken Gebruik",
"createLink": "Koppeling aanmaken", "createLink": "Koppeling aanmaken",
@@ -144,8 +144,10 @@
"expires": "Verloopt", "expires": "Verloopt",
"never": "Nooit", "never": "Nooit",
"shareErrorSelectResource": "Selecteer een bron", "shareErrorSelectResource": "Selecteer een bron",
"resourceTitle": "Bronnen beheren", "proxyResourceTitle": "Openbare bronnen beheren",
"resourceDescription": "Veilige proxy's voor uw privéapplicaties maken", "proxyResourceDescription": "Creëer en beheer bronnen die openbaar toegankelijk zijn via een webbrowser",
"clientResourceTitle": "Privébronnen beheren",
"clientResourceDescription": "Creëer en beheer bronnen die alleen toegankelijk zijn via een verbonden client",
"resourcesSearch": "Zoek bronnen...", "resourcesSearch": "Zoek bronnen...",
"resourceAdd": "Bron toevoegen", "resourceAdd": "Bron toevoegen",
"resourceErrorDelte": "Fout bij verwijderen document", "resourceErrorDelte": "Fout bij verwijderen document",
@@ -155,9 +157,9 @@
"resourceMessageRemove": "Eenmaal verwijderd, zal het bestand niet langer toegankelijk zijn. Alle doelen die gekoppeld zijn aan het hulpbron, zullen ook verwijderd worden.", "resourceMessageRemove": "Eenmaal verwijderd, zal het bestand niet langer toegankelijk zijn. Alle doelen die gekoppeld zijn aan het hulpbron, zullen ook verwijderd worden.",
"resourceQuestionRemove": "Weet u zeker dat u het document van de organisatie wilt verwijderen?", "resourceQuestionRemove": "Weet u zeker dat u het document van de organisatie wilt verwijderen?",
"resourceHTTP": "HTTPS bron", "resourceHTTP": "HTTPS bron",
"resourceHTTPDescription": "Proxy verzoeken aan uw app via HTTPS via een subdomein of basisdomein.", "resourceHTTPDescription": "Proxy verzoeken aan de app via HTTPS via een subdomein of basisdomein.",
"resourceRaw": "TCP/UDP bron", "resourceRaw": "TCP/UDP bron",
"resourceRawDescription": "Proxy verzoeken naar je app via TCP/UDP met behulp van een poortnummer.", "resourceRawDescription": "Proxy verzoeken naar de app via TCP/UDP met behulp van een poortnummer. Dit werkt alleen als sites zijn verbonden met nodes.",
"resourceCreate": "Bron maken", "resourceCreate": "Bron maken",
"resourceCreateDescription": "Volg de onderstaande stappen om een nieuwe bron te maken", "resourceCreateDescription": "Volg de onderstaande stappen om een nieuwe bron te maken",
"resourceSeeAll": "Alle bronnen bekijken", "resourceSeeAll": "Alle bronnen bekijken",
@@ -171,22 +173,22 @@
"noCountryFound": "Geen land gevonden.", "noCountryFound": "Geen land gevonden.",
"siteSelectionDescription": "Deze site zal connectiviteit met het doelwit bieden.", "siteSelectionDescription": "Deze site zal connectiviteit met het doelwit bieden.",
"resourceType": "Type bron", "resourceType": "Type bron",
"resourceTypeDescription": "Bepaal hoe u toegang wilt krijgen tot uw bron", "resourceTypeDescription": "Bepaal hoe u toegang wilt tot de bron",
"resourceHTTPSSettings": "HTTPS instellingen", "resourceHTTPSSettings": "HTTPS instellingen",
"resourceHTTPSSettingsDescription": "Stel in hoe de bron wordt benaderd via HTTPS", "resourceHTTPSSettingsDescription": "Stel in hoe de bron wordt benaderd via HTTPS",
"domainType": "Domein type", "domainType": "Domein type",
"subdomain": "Subdomein", "subdomain": "Subdomein",
"baseDomain": "Basis domein", "baseDomain": "Basis domein",
"subdomnainDescription": "Het subdomein waar de bron toegankelijk is.", "subdomnainDescription": "Het subdomein waar de bron toegankelijk zal zijn.",
"resourceRawSettings": "TCP/UDP instellingen", "resourceRawSettings": "TCP/UDP instellingen",
"resourceRawSettingsDescription": "Stel in hoe je bron wordt benaderd via TCP/UDP", "resourceRawSettingsDescription": "Stel in hoe de bron wordt benaderd via TCP/UDP",
"protocol": "Protocol", "protocol": "Protocol",
"protocolSelect": "Selecteer een protocol", "protocolSelect": "Selecteer een protocol",
"resourcePortNumber": "Nummer van poort", "resourcePortNumber": "Nummer van poort",
"resourcePortNumberDescription": "Het externe poortnummer naar proxyverzoeken.", "resourcePortNumberDescription": "Het externe poortnummer naar proxyverzoeken.",
"cancel": "Annuleren", "cancel": "Annuleren",
"resourceConfig": "Configuratie tekstbouwstenen", "resourceConfig": "Configuratie tekstbouwstenen",
"resourceConfigDescription": "Kopieer en plak deze configuratie-snippets om je TCP/UDP-bron in te stellen", "resourceConfigDescription": "Kopieer en plak deze configuratie-snippets om de TCP/UDP-bron in te stellen",
"resourceAddEntrypoints": "Traefik: Entrypoints toevoegen", "resourceAddEntrypoints": "Traefik: Entrypoints toevoegen",
"resourceExposePorts": "Gerbild: Gevangen blootstellen in Docker Compose", "resourceExposePorts": "Gerbild: Gevangen blootstellen in Docker Compose",
"resourceLearnRaw": "Leer hoe je TCP/UDP bronnen kunt configureren", "resourceLearnRaw": "Leer hoe je TCP/UDP bronnen kunt configureren",
@@ -202,14 +204,14 @@
"proxy": "Proxy", "proxy": "Proxy",
"internal": "Intern", "internal": "Intern",
"rules": "Regels", "rules": "Regels",
"resourceSettingDescription": "Configureer de instellingen op uw bron", "resourceSettingDescription": "Configureer de instellingen in de bron",
"resourceSetting": "{resourceName} instellingen", "resourceSetting": "{resourceName} instellingen",
"alwaysAllow": "Altijd toestaan", "alwaysAllow": "Authenticatie omzeilen",
"alwaysDeny": "Altijd weigeren", "alwaysDeny": "Blokkeer toegang",
"passToAuth": "Passeren naar Auth", "passToAuth": "Passeren naar Auth",
"orgSettingsDescription": "Configureer de algemene instellingen van je organisatie", "orgSettingsDescription": "Configureer de instellingen van de organisatie",
"orgGeneralSettings": "Organisatie Instellingen", "orgGeneralSettings": "Organisatie Instellingen",
"orgGeneralSettingsDescription": "Beheer de details en configuratie van uw organisatie", "orgGeneralSettingsDescription": "De details en configuratie van de organisatie beheren",
"saveGeneralSettings": "Algemene instellingen opslaan", "saveGeneralSettings": "Algemene instellingen opslaan",
"saveSettings": "Instellingen opslaan", "saveSettings": "Instellingen opslaan",
"orgDangerZone": "Gevaarlijke zone", "orgDangerZone": "Gevaarlijke zone",
@@ -232,7 +234,7 @@
"orgMissing": "Organisatie-ID ontbreekt", "orgMissing": "Organisatie-ID ontbreekt",
"orgMissingMessage": "Niet in staat om de uitnodiging te regenereren zonder organisatie-ID.", "orgMissingMessage": "Niet in staat om de uitnodiging te regenereren zonder organisatie-ID.",
"accessUsersManage": "Gebruikers beheren", "accessUsersManage": "Gebruikers beheren",
"accessUsersDescription": "Nodig gebruikers uit en voeg ze toe aan de rollen om toegang tot uw organisatie te beheren", "accessUsersDescription": "Nodig uit en beheer gebruikers met toegang tot deze organisatie",
"accessUsersSearch": "Gebruikers zoeken...", "accessUsersSearch": "Gebruikers zoeken...",
"accessUserCreate": "Gebruiker aanmaken", "accessUserCreate": "Gebruiker aanmaken",
"accessUserRemove": "Gebruiker verwijderen", "accessUserRemove": "Gebruiker verwijderen",
@@ -241,13 +243,13 @@
"role": "Functie", "role": "Functie",
"nameRequired": "Naam is verplicht", "nameRequired": "Naam is verplicht",
"accessRolesManage": "Rollen beheren", "accessRolesManage": "Rollen beheren",
"accessRolesDescription": "Configureer rollen om toegang tot uw organisatie te beheren", "accessRolesDescription": "Maak en beheer rollen voor gebruikers in de organisatie",
"accessRolesSearch": "Rollen zoeken...", "accessRolesSearch": "Rollen zoeken...",
"accessRolesAdd": "Rol toevoegen", "accessRolesAdd": "Rol toevoegen",
"accessRoleDelete": "Verwijder rol", "accessRoleDelete": "Verwijder rol",
"description": "Beschrijving", "description": "Beschrijving",
"inviteTitle": "Open uitnodigingen", "inviteTitle": "Open uitnodigingen",
"inviteDescription": "Beheer je uitnodigingen aan andere gebruikers", "inviteDescription": "Beheer uitnodigingen voor andere gebruikers om deel te nemen aan de organisatie",
"inviteSearch": "Uitnodigingen zoeken...", "inviteSearch": "Uitnodigingen zoeken...",
"minutes": "minuten", "minutes": "minuten",
"hours": "Uren", "hours": "Uren",
@@ -261,13 +263,13 @@
"apiKeysErrorCreate": "Fout bij maken API-sleutel", "apiKeysErrorCreate": "Fout bij maken API-sleutel",
"apiKeysErrorSetPermission": "Fout instellen permissies", "apiKeysErrorSetPermission": "Fout instellen permissies",
"apiKeysCreate": "API-sleutel genereren", "apiKeysCreate": "API-sleutel genereren",
"apiKeysCreateDescription": "Genereer een nieuwe API-sleutel voor uw organisatie", "apiKeysCreateDescription": "Een nieuwe API-sleutel voor de organisatie genereren",
"apiKeysGeneralSettings": "Machtigingen", "apiKeysGeneralSettings": "Machtigingen",
"apiKeysGeneralSettingsDescription": "Bepaal wat deze API-sleutel kan doen", "apiKeysGeneralSettingsDescription": "Bepaal wat deze API-sleutel kan doen",
"apiKeysList": "Uw API-sleutel", "apiKeysList": "Nieuwe API-sleutel",
"apiKeysSave": "Uw API-sleutel opslaan", "apiKeysSave": "De API-sleutel opslaan",
"apiKeysSaveDescription": "Je kunt dit slechts één keer zien. Kopieer het naar een veilige plek.", "apiKeysSaveDescription": "Je kunt dit slechts één keer zien. Kopieer het naar een veilige plek.",
"apiKeysInfo": "Uw API-sleutel is:", "apiKeysInfo": "De API-sleutel is:",
"apiKeysConfirmCopy": "Ik heb de API-sleutel gekopieerd", "apiKeysConfirmCopy": "Ik heb de API-sleutel gekopieerd",
"generate": "Genereren", "generate": "Genereren",
"done": "Voltooid", "done": "Voltooid",
@@ -424,7 +426,7 @@
"userCreated": "Gebruiker aangemaakt", "userCreated": "Gebruiker aangemaakt",
"userCreatedDescription": "De gebruiker is succesvol aangemaakt.", "userCreatedDescription": "De gebruiker is succesvol aangemaakt.",
"userTypeInternal": "Interne gebruiker", "userTypeInternal": "Interne gebruiker",
"userTypeInternalDescription": "Nodig een gebruiker uit om direct lid te worden van je organisatie.", "userTypeInternalDescription": "Nodig een gebruiker uit om direct lid te worden van de organisatie.",
"userTypeExternal": "Externe gebruiker", "userTypeExternal": "Externe gebruiker",
"userTypeExternalDescription": "Maak een gebruiker aan met een externe identiteitsprovider.", "userTypeExternalDescription": "Maak een gebruiker aan met een externe identiteitsprovider.",
"accessUserCreateDescription": "Volg de onderstaande stappen om een nieuwe gebruiker te maken", "accessUserCreateDescription": "Volg de onderstaande stappen om een nieuwe gebruiker te maken",
@@ -436,6 +438,16 @@
"inviteEmailSent": "Stuur uitnodigingsmail naar de gebruiker", "inviteEmailSent": "Stuur uitnodigingsmail naar de gebruiker",
"inviteValid": "Geldig voor", "inviteValid": "Geldig voor",
"selectDuration": "Selecteer duur", "selectDuration": "Selecteer duur",
"selectResource": "Selecteer Document",
"filterByResource": "Filter op pagina",
"resetFilters": "Filters resetten",
"totalBlocked": "Verzoeken geblokkeerd door Pangolin",
"totalRequests": "Totaal verzoeken",
"requestsByCountry": "Verzoeken per land",
"requestsByDay": "Verzoeken per dag",
"blocked": "Geblokkeerd",
"allowed": "Toegestaan",
"topCountries": "Top Landen",
"accessRoleSelect": "Selecteer rol", "accessRoleSelect": "Selecteer rol",
"inviteEmailSentDescription": "Een e-mail is verstuurd naar de gebruiker met de link hieronder. Ze moeten toegang krijgen tot de link om de uitnodiging te accepteren.", "inviteEmailSentDescription": "Een e-mail is verstuurd naar de gebruiker met de link hieronder. Ze moeten toegang krijgen tot de link om de uitnodiging te accepteren.",
"inviteSentDescription": "De gebruiker is uitgenodigd. Ze moeten toegang krijgen tot de link hieronder om de uitnodiging te accepteren.", "inviteSentDescription": "De gebruiker is uitgenodigd. Ze moeten toegang krijgen tot de link hieronder om de uitnodiging te accepteren.",
@@ -458,13 +470,13 @@
"accessControlsSubmit": "Bewaar Toegangsbesturing", "accessControlsSubmit": "Bewaar Toegangsbesturing",
"roles": "Rollen", "roles": "Rollen",
"accessUsersRoles": "Beheer Gebruikers & Rollen", "accessUsersRoles": "Beheer Gebruikers & Rollen",
"accessUsersRolesDescription": "Nodig gebruikers uit en voeg ze toe aan de rollen om toegang tot uw organisatie te beheren", "accessUsersRolesDescription": "Nodig gebruikers uit en voeg ze toe aan de rollen om toegang tot de organisatie te beheren",
"key": "Sleutel", "key": "Sleutel",
"createdAt": "Aangemaakt op", "createdAt": "Aangemaakt op",
"proxyErrorInvalidHeader": "Ongeldige aangepaste Header waarde. Gebruik het domeinnaam formaat, of sla leeg op om de aangepaste Host header ongedaan te maken.", "proxyErrorInvalidHeader": "Ongeldige aangepaste Header waarde. Gebruik het domeinnaam formaat, of sla leeg op om de aangepaste Host header ongedaan te maken.",
"proxyErrorTls": "Ongeldige TLS servernaam. Gebruik de domeinnaam of sla leeg op om de TLS servernaam te verwijderen.", "proxyErrorTls": "Ongeldige TLS servernaam. Gebruik de domeinnaam of sla leeg op om de TLS servernaam te verwijderen.",
"proxyEnableSSL": "SSL inschakelen", "proxyEnableSSL": "SSL inschakelen",
"proxyEnableSSLDescription": "SSL/TLS-versleuteling inschakelen voor beveiligde HTTPS-verbindingen naar uw doelen.", "proxyEnableSSLDescription": "SSL/TLS-versleuteling inschakelen voor beveiligde HTTPS-verbindingen naar de doelen.",
"target": "Target", "target": "Target",
"configureTarget": "Doelstellingen configureren", "configureTarget": "Doelstellingen configureren",
"targetErrorFetch": "Ophalen van doelen mislukt", "targetErrorFetch": "Ophalen van doelen mislukt",
@@ -480,29 +492,29 @@
"targetsErrorUpdate": "Kan doelen niet bijwerken", "targetsErrorUpdate": "Kan doelen niet bijwerken",
"targetsErrorUpdateDescription": "Fout opgetreden tijdens het bijwerken van de doelen", "targetsErrorUpdateDescription": "Fout opgetreden tijdens het bijwerken van de doelen",
"targetTlsUpdate": "TLS instellingen bijgewerkt", "targetTlsUpdate": "TLS instellingen bijgewerkt",
"targetTlsUpdateDescription": "Uw TLS instellingen zijn succesvol bijgewerkt", "targetTlsUpdateDescription": "TLS instellingen zijn succesvol bijgewerkt",
"targetErrorTlsUpdate": "Bijwerken van TLS instellingen mislukt", "targetErrorTlsUpdate": "Bijwerken van TLS instellingen mislukt",
"targetErrorTlsUpdateDescription": "Fout opgetreden tijdens het bijwerken van de TLS-instellingen", "targetErrorTlsUpdateDescription": "Fout opgetreden tijdens het bijwerken van de TLS-instellingen",
"proxyUpdated": "Proxyinstellingen bijgewerkt", "proxyUpdated": "Proxyinstellingen bijgewerkt",
"proxyUpdatedDescription": "Uw proxyinstellingen zijn succesvol bijgewerkt", "proxyUpdatedDescription": "Proxyinstellingen zijn succesvol bijgewerkt",
"proxyErrorUpdate": "Bijwerken van proxy-instellingen mislukt", "proxyErrorUpdate": "Bijwerken van proxy-instellingen mislukt",
"proxyErrorUpdateDescription": "Fout opgetreden tijdens het bijwerken van de proxy-instellingen", "proxyErrorUpdateDescription": "Fout opgetreden tijdens het bijwerken van de proxy-instellingen",
"targetAddr": "IP / Hostnaam", "targetAddr": "Hostnaam",
"targetPort": "Poort", "targetPort": "Poort",
"targetProtocol": "Protocol", "targetProtocol": "Protocol",
"targetTlsSettings": "HTTPS & TLS instellingen", "targetTlsSettings": "HTTPS & TLS instellingen",
"targetTlsSettingsDescription": "SSL/TLS-instellingen voor uw bron configureren", "targetTlsSettingsDescription": "Configureer SSL/TLS instellingen voor de bron",
"targetTlsSettingsAdvanced": "Geavanceerde TLS instellingen", "targetTlsSettingsAdvanced": "Geavanceerde TLS instellingen",
"targetTlsSni": "TLS servernaam", "targetTlsSni": "TLS servernaam",
"targetTlsSniDescription": "De TLS servernaam om te gebruiken voor SNI. Laat leeg om de standaard te gebruiken.", "targetTlsSniDescription": "De TLS servernaam om te gebruiken voor SNI. Laat leeg om de standaard te gebruiken.",
"targetTlsSubmit": "Instellingen opslaan", "targetTlsSubmit": "Instellingen opslaan",
"targets": "Doelstellingen configuratie", "targets": "Doelstellingen configuratie",
"targetsDescription": "Stel doelen in om verkeer naar uw backend-services te leiden", "targetsDescription": "Stel doelen in om verkeer naar backend diensten te sturen",
"targetStickySessions": "Sticky sessies inschakelen", "targetStickySessions": "Sticky sessies inschakelen",
"targetStickySessionsDescription": "Behoud verbindingen op hetzelfde backend doel voor hun hele sessie.", "targetStickySessionsDescription": "Behoud verbindingen op hetzelfde backend doel voor hun hele sessie.",
"methodSelect": "Selecteer methode", "methodSelect": "Selecteer methode",
"targetSubmit": "Doelwit toevoegen", "targetSubmit": "Doelwit toevoegen",
"targetNoOne": "Deze bron heeft geen doelen. Voeg een doel toe om te configureren waar verzoeken naar uw backend.", "targetNoOne": "Deze bron heeft geen doelwitten. Voeg een doel toe om te configureren waar verzoeken naar de backend verzonden kunnen worden.",
"targetNoOneDescription": "Het toevoegen van meer dan één doel hierboven zal de load balancering mogelijk maken.", "targetNoOneDescription": "Het toevoegen van meer dan één doel hierboven zal de load balancering mogelijk maken.",
"targetsSubmit": "Doelstellingen opslaan", "targetsSubmit": "Doelstellingen opslaan",
"addTarget": "Doelwit toevoegen", "addTarget": "Doelwit toevoegen",
@@ -516,9 +528,11 @@
"targetCreatedDescription": "Doel is succesvol aangemaakt", "targetCreatedDescription": "Doel is succesvol aangemaakt",
"targetErrorCreate": "Kan doel niet aanmaken", "targetErrorCreate": "Kan doel niet aanmaken",
"targetErrorCreateDescription": "Fout opgetreden tijdens het aanmaken van het doel", "targetErrorCreateDescription": "Fout opgetreden tijdens het aanmaken van het doel",
"tlsServerName": "TLS servernaam",
"tlsServerNameDescription": "De TLS servernaam om te gebruiken voor SNI",
"save": "Opslaan", "save": "Opslaan",
"proxyAdditional": "Extra Proxy-instellingen", "proxyAdditional": "Extra Proxy-instellingen",
"proxyAdditionalDescription": "Configureer hoe de proxy-instellingen van uw bron worden afgehandeld", "proxyAdditionalDescription": "Configureer hoe de bron omgaat met proxy-instellingen",
"proxyCustomHeader": "Aangepaste Host-header", "proxyCustomHeader": "Aangepaste Host-header",
"proxyCustomHeaderDescription": "De hostkop om in te stellen bij proxying verzoeken. Laat leeg om de standaard te gebruiken.", "proxyCustomHeaderDescription": "De hostkop om in te stellen bij proxying verzoeken. Laat leeg om de standaard te gebruiken.",
"proxyAdditionalSubmit": "Proxyinstellingen opslaan", "proxyAdditionalSubmit": "Proxyinstellingen opslaan",
@@ -558,7 +572,7 @@
"rulesMatchType": "Wedstrijd Type", "rulesMatchType": "Wedstrijd Type",
"value": "Waarde", "value": "Waarde",
"rulesAbout": "Over regels", "rulesAbout": "Over regels",
"rulesAboutDescription": "Regels stellen u in staat om de toegang tot uw bron te controleren op basis van een aantal criteria. U kunt regels maken om toegang te toestaan of weigeren op basis van IP-adres of URL pad.", "rulesAboutDescription": "Regels stellen u in staat om de toegang tot het bestand te controleren op basis van een aantal criteria. U kunt regels maken om toegang te toestaan of weigeren op basis van IP-adres of URL pad.",
"rulesActions": "acties", "rulesActions": "acties",
"rulesActionAlwaysAllow": "Altijd toegestaan: Omzeil alle authenticatiemethoden", "rulesActionAlwaysAllow": "Altijd toegestaan: Omzeil alle authenticatiemethoden",
"rulesActionAlwaysDeny": "Altijd weigeren: Blokkeer alle aanvragen, er kan geen verificatie worden geprobeerd", "rulesActionAlwaysDeny": "Altijd weigeren: Blokkeer alle aanvragen, er kan geen verificatie worden geprobeerd",
@@ -570,7 +584,7 @@
"rulesEnable": "Regels inschakelen", "rulesEnable": "Regels inschakelen",
"rulesEnableDescription": "In- of uitschakelen van regelevaluatie voor deze bron", "rulesEnableDescription": "In- of uitschakelen van regelevaluatie voor deze bron",
"rulesResource": "Configuratie Resource Regels", "rulesResource": "Configuratie Resource Regels",
"rulesResourceDescription": "Regels instellen om toegang tot uw bron te beheren", "rulesResourceDescription": "Regels instellen om toegang tot de bron te beheren",
"ruleSubmit": "Regel toevoegen", "ruleSubmit": "Regel toevoegen",
"rulesNoOne": "Geen regels. Voeg een regel toe via het formulier.", "rulesNoOne": "Geen regels. Voeg een regel toe via het formulier.",
"rulesOrder": "Regels worden in oplopende volgorde volgens prioriteit beoordeeld.", "rulesOrder": "Regels worden in oplopende volgorde volgens prioriteit beoordeeld.",
@@ -586,7 +600,7 @@
"none": "geen", "none": "geen",
"unknown": "onbekend", "unknown": "onbekend",
"resources": "Bronnen", "resources": "Bronnen",
"resourcesDescription": "Bronnen zijn proxies voor applicaties die op uw privénetwerk worden uitgevoerd. Maak een bron aan voor elke HTTP/HTTPS of onbewerkte TCP/UDP-service op uw privénetwerk. Elke bron moet verbonden zijn met een site om private, beveiligde verbinding mogelijk te maken via een versleutelde WireGuard tunnel.", "resourcesDescription": "Bronnen zijn proxies voor applicaties die op het privénetwerk worden uitgevoerd. Maak een bron aan voor een HTTP/HTTPS of ruwe TCP/UDP-service op uw privénetwerk. Elke bron moet verbonden zijn met een site om private, beveiligde verbinding mogelijk te maken via een versleutelde WireGuard tunnel.",
"resourcesWireGuardConnect": "Beveiligde verbinding met WireGuard versleuteling", "resourcesWireGuardConnect": "Beveiligde verbinding met WireGuard versleuteling",
"resourcesMultipleAuthenticationMethods": "Meerdere verificatiemethoden configureren", "resourcesMultipleAuthenticationMethods": "Meerdere verificatiemethoden configureren",
"resourcesUsersRolesAccess": "Gebruiker en rol-gebaseerde toegangsbeheer", "resourcesUsersRolesAccess": "Gebruiker en rol-gebaseerde toegangsbeheer",
@@ -597,7 +611,7 @@
"resourceSelect": "Selecteer resource", "resourceSelect": "Selecteer resource",
"shareLinks": "Links delen", "shareLinks": "Links delen",
"share": "Deelbare links", "share": "Deelbare links",
"shareDescription2": "Maak deelbare links naar uw bronnen. Links bieden tijdelijke of onbeperkte toegang tot uw bron. U kunt de vervalduur van de link configureren wanneer u er een aanmaakt.", "shareDescription2": "Maak deelbare links naar bronnen. Links bieden tijdelijke of onbeperkte toegang tot je bestand. U kunt de vervalduur van de link configureren wanneer u er een aanmaakt.",
"shareEasyCreate": "Makkelijk te maken en te delen", "shareEasyCreate": "Makkelijk te maken en te delen",
"shareConfigurableExpirationDuration": "Configureerbare vervalduur", "shareConfigurableExpirationDuration": "Configureerbare vervalduur",
"shareSecureAndRevocable": "Veilig en herroepbaar", "shareSecureAndRevocable": "Veilig en herroepbaar",
@@ -607,19 +621,19 @@
"unknownCommand": "Onbekende opdracht", "unknownCommand": "Onbekende opdracht",
"newtErrorFetchReleases": "Kan release-informatie niet ophalen: {err}", "newtErrorFetchReleases": "Kan release-informatie niet ophalen: {err}",
"newtErrorFetchLatest": "Fout bij ophalen van laatste release: {err}", "newtErrorFetchLatest": "Fout bij ophalen van laatste release: {err}",
"newtEndpoint": "Newt Eindoordeel", "newtEndpoint": "Endpoint",
"newtId": "Newt-ID", "newtId": "ID",
"newtSecretKey": "Nieuwe geheime sleutel", "newtSecretKey": "Geheim",
"architecture": "Architectuur", "architecture": "Architectuur",
"sites": "Sites", "sites": "Sites",
"siteWgAnyClients": "Gebruik een willekeurige WireGuard client om verbinding te maken. Je moet je interne bronnen aanspreken met behulp van de peer IP.", "siteWgAnyClients": "Gebruik een willekeurige WireGuard client om verbinding te maken. Je zult interne bronnen moeten aanspreken met behulp van de peer IP.",
"siteWgCompatibleAllClients": "Compatibel met alle WireGuard clients", "siteWgCompatibleAllClients": "Compatibel met alle WireGuard clients",
"siteWgManualConfigurationRequired": "Handmatige configuratie vereist", "siteWgManualConfigurationRequired": "Handmatige configuratie vereist",
"userErrorNotAdminOrOwner": "Gebruiker is geen beheerder of eigenaar", "userErrorNotAdminOrOwner": "Gebruiker is geen beheerder of eigenaar",
"pangolinSettings": "Instellingen - Pangolin", "pangolinSettings": "Instellingen - Pangolin",
"accessRoleYour": "Jouw rol:", "accessRoleYour": "Jouw rol:",
"accessRoleSelect2": "Selecteer lidmaatschap", "accessRoleSelect2": "Selecteer rollen",
"accessUserSelect": "Selecteer een gebruiker", "accessUserSelect": "Gebruikers selecteren",
"otpEmailEnter": "Voer e-mailadres in", "otpEmailEnter": "Voer e-mailadres in",
"otpEmailEnterDescription": "Druk op enter om een e-mail toe te voegen na het typen in het invoerveld.", "otpEmailEnterDescription": "Druk op enter om een e-mail toe te voegen na het typen in het invoerveld.",
"otpEmailErrorInvalid": "Ongeldig e-mailadres. Wildcard (*) moet het hele lokale deel zijn.", "otpEmailErrorInvalid": "Ongeldig e-mailadres. Wildcard (*) moet het hele lokale deel zijn.",
@@ -671,7 +685,7 @@
"resourcePincodeSetupTitle": "Pincode instellen", "resourcePincodeSetupTitle": "Pincode instellen",
"resourcePincodeSetupTitleDescription": "Stel een pincode in om deze hulpbron te beschermen", "resourcePincodeSetupTitleDescription": "Stel een pincode in om deze hulpbron te beschermen",
"resourceRoleDescription": "Beheerders hebben altijd toegang tot deze bron.", "resourceRoleDescription": "Beheerders hebben altijd toegang tot deze bron.",
"resourceUsersRoles": "Gebruikers & Rollen", "resourceUsersRoles": "Toegang Bediening",
"resourceUsersRolesDescription": "Configureer welke gebruikers en rollen deze pagina kunnen bezoeken", "resourceUsersRolesDescription": "Configureer welke gebruikers en rollen deze pagina kunnen bezoeken",
"resourceUsersRolesSubmit": "Gebruikers opslaan & rollen", "resourceUsersRolesSubmit": "Gebruikers opslaan & rollen",
"resourceWhitelistSave": "Succesvol opgeslagen", "resourceWhitelistSave": "Succesvol opgeslagen",
@@ -702,6 +716,7 @@
"resourceTransferSubmit": "Bronnen overdragen", "resourceTransferSubmit": "Bronnen overdragen",
"siteDestination": "Bestemming site", "siteDestination": "Bestemming site",
"searchSites": "Sites zoeken", "searchSites": "Sites zoeken",
"countries": "Landen",
"accessRoleCreate": "Rol aanmaken", "accessRoleCreate": "Rol aanmaken",
"accessRoleCreateDescription": "Maak een nieuwe rol aan om gebruikers te groeperen en hun rechten te beheren.", "accessRoleCreateDescription": "Maak een nieuwe rol aan om gebruikers te groeperen en hun rechten te beheren.",
"accessRoleCreateSubmit": "Rol aanmaken", "accessRoleCreateSubmit": "Rol aanmaken",
@@ -766,15 +781,15 @@
"idpOidcConfigure": "OAuth2/OIDC configuratie", "idpOidcConfigure": "OAuth2/OIDC configuratie",
"idpOidcConfigureDescription": "Configureer de eindpunten van de OAuth2/OIDC provider en referenties", "idpOidcConfigureDescription": "Configureer de eindpunten van de OAuth2/OIDC provider en referenties",
"idpClientId": "Client ID", "idpClientId": "Client ID",
"idpClientIdDescription": "De OAuth2 client ID van uw identiteitsprovider", "idpClientIdDescription": "De OAuth2-client-ID van de identiteitsaanbieder",
"idpClientSecret": "Client Secret", "idpClientSecret": "Client Secret",
"idpClientSecretDescription": "Het OAuth2 Client Secret van je identiteitsprovider", "idpClientSecretDescription": "Het OAuth2-clientgeheim van de identiteitsprovider",
"idpAuthUrl": "URL autorisatie", "idpAuthUrl": "URL autorisatie",
"idpAuthUrlDescription": "De URL voor autorisatie OAuth2", "idpAuthUrlDescription": "De URL voor autorisatie OAuth2",
"idpTokenUrl": "URL token", "idpTokenUrl": "URL token",
"idpTokenUrlDescription": "De URL van het OAuth2 token eindpunt", "idpTokenUrlDescription": "De URL van het OAuth2 token eindpunt",
"idpOidcConfigureAlert": "Belangrijke informatie", "idpOidcConfigureAlert": "Belangrijke informatie",
"idpOidcConfigureAlertDescription": "Na het aanmaken van de identity provider moet u de callback URL configureren in de instellingen van uw identity provider. De callback URL zal worden opgegeven na het succesvol aanmaken.", "idpOidcConfigureAlertDescription": "Na het aanmaken van de identity provider moet u de callback URL configureren in de instellingen van de identity provider. De callback URL zal worden opgegeven na het succesvol aanmaken.",
"idpToken": "Token configuratie", "idpToken": "Token configuratie",
"idpTokenDescription": "Stel in hoe gebruikersgegevens uit het ID token uit te pakken", "idpTokenDescription": "Stel in hoe gebruikersgegevens uit het ID token uit te pakken",
"idpJmespathAbout": "Over JMESPath", "idpJmespathAbout": "Over JMESPath",
@@ -791,7 +806,7 @@
"idpSubmit": "Identity Provider aanmaken", "idpSubmit": "Identity Provider aanmaken",
"orgPolicies": "Organisatie beleid", "orgPolicies": "Organisatie beleid",
"idpSettings": "{idpName} instellingen", "idpSettings": "{idpName} instellingen",
"idpCreateSettingsDescription": "Configureer de instellingen voor uw identiteitsprovider", "idpCreateSettingsDescription": "Configureer de instellingen voor de identiteitsprovider",
"roleMapping": "Rol Toewijzing", "roleMapping": "Rol Toewijzing",
"orgMapping": "Organisatie toewijzing", "orgMapping": "Organisatie toewijzing",
"orgPoliciesSearch": "Zoek het organisatiebeleid...", "orgPoliciesSearch": "Zoek het organisatiebeleid...",
@@ -826,7 +841,7 @@
"idpUpdatedDescription": "Identity provider succesvol bijgewerkt", "idpUpdatedDescription": "Identity provider succesvol bijgewerkt",
"redirectUrl": "Omleidings URL", "redirectUrl": "Omleidings URL",
"redirectUrlAbout": "Over omleidings-URL", "redirectUrlAbout": "Over omleidings-URL",
"redirectUrlAboutDescription": "Dit is de URL waarnaar gebruikers worden doorverwezen na verificatie. U moet deze URL configureren in uw identiteitsprovider-instellingen.", "redirectUrlAboutDescription": "Dit is de URL waarnaar gebruikers worden doorverwezen na verificatie. U moet deze URL configureren in de instellingen van de identiteitsprovider.",
"pangolinAuth": "Authenticatie - Pangolin", "pangolinAuth": "Authenticatie - Pangolin",
"verificationCodeLengthRequirements": "Je verificatiecode moet 8 tekens bevatten.", "verificationCodeLengthRequirements": "Je verificatiecode moet 8 tekens bevatten.",
"errorOccurred": "Er is een fout opgetreden", "errorOccurred": "Er is een fout opgetreden",
@@ -909,6 +924,10 @@
"passwordResetSent": "We sturen een wachtwoord reset code naar dit e-mailadres.", "passwordResetSent": "We sturen een wachtwoord reset code naar dit e-mailadres.",
"passwordResetCode": "Resetcode", "passwordResetCode": "Resetcode",
"passwordResetCodeDescription": "Controleer je e-mail voor de reset code.", "passwordResetCodeDescription": "Controleer je e-mail voor de reset code.",
"generatePasswordResetCode": "Herstelcode voor wachtwoord genereren",
"passwordResetCodeGenerated": "Wachtwoord reset code gegenereerd",
"passwordResetCodeGeneratedDescription": "Deel deze code met de gebruiker. Ze kunnen deze gebruiken om hun wachtwoord te resetten.",
"passwordResetUrl": "Reset URL",
"passwordNew": "Nieuw wachtwoord", "passwordNew": "Nieuw wachtwoord",
"passwordNewConfirm": "Bevestig nieuw wachtwoord", "passwordNewConfirm": "Bevestig nieuw wachtwoord",
"changePassword": "Wachtwoord wijzigen", "changePassword": "Wachtwoord wijzigen",
@@ -926,6 +945,9 @@
"pincodeAuth": "Authenticatiecode", "pincodeAuth": "Authenticatiecode",
"pincodeSubmit2": "Code indienen", "pincodeSubmit2": "Code indienen",
"passwordResetSubmit": "Opnieuw instellen aanvragen", "passwordResetSubmit": "Opnieuw instellen aanvragen",
"passwordResetAlreadyHaveCode": "Herstelcode wachtwoord invoeren",
"passwordResetSmtpRequired": "Neem contact op met uw beheerder",
"passwordResetSmtpRequiredDescription": "Er is een wachtwoord reset code nodig om uw wachtwoord opnieuw in te stellen. Neem contact op met uw beheerder voor hulp.",
"passwordBack": "Terug naar wachtwoord", "passwordBack": "Terug naar wachtwoord",
"loginBack": "Ga terug naar login", "loginBack": "Ga terug naar login",
"signup": "Registreer nu", "signup": "Registreer nu",
@@ -1091,12 +1113,15 @@
"actionListSiteResources": "Bronnen van site weergeven", "actionListSiteResources": "Bronnen van site weergeven",
"actionUpdateSiteResource": "Document bijwerken van site", "actionUpdateSiteResource": "Document bijwerken van site",
"actionListInvitations": "Toon uitnodigingen", "actionListInvitations": "Toon uitnodigingen",
"actionExportLogs": "Logboeken exporteren",
"actionViewLogs": "Logboeken bekijken",
"noneSelected": "Niet geselecteerd", "noneSelected": "Niet geselecteerd",
"orgNotFound2": "Geen organisaties gevonden.", "orgNotFound2": "Geen organisaties gevonden.",
"searchProgress": "Zoeken...", "searchProgress": "Zoeken...",
"create": "Aanmaken", "create": "Aanmaken",
"orgs": "Organisaties", "orgs": "Organisaties",
"loginError": "Er is een fout opgetreden tijdens het inloggen", "loginError": "Er is een fout opgetreden tijdens het inloggen",
"loginRequiredForDevice": "Inloggen is vereist om je apparaat te verifiëren.",
"passwordForgot": "Wachtwoord vergeten?", "passwordForgot": "Wachtwoord vergeten?",
"otpAuth": "Tweestapsverificatie verificatie", "otpAuth": "Tweestapsverificatie verificatie",
"otpAuthDescription": "Voer de code van je authenticator-app of een van je reservekopiecodes voor het eenmalig gebruik in.", "otpAuthDescription": "Voer de code van je authenticator-app of een van je reservekopiecodes voor het eenmalig gebruik in.",
@@ -1151,37 +1176,47 @@
"sidebarHome": "Startpagina", "sidebarHome": "Startpagina",
"sidebarSites": "Werkruimtes", "sidebarSites": "Werkruimtes",
"sidebarResources": "Bronnen", "sidebarResources": "Bronnen",
"sidebarProxyResources": "Openbaar",
"sidebarClientResources": "Privé",
"sidebarAccessControl": "Toegangs controle", "sidebarAccessControl": "Toegangs controle",
"sidebarLogsAndAnalytics": "Logs & Analytics",
"sidebarUsers": "Gebruikers", "sidebarUsers": "Gebruikers",
"sidebarAdmin": "Beheerder",
"sidebarInvitations": "Uitnodigingen", "sidebarInvitations": "Uitnodigingen",
"sidebarRoles": "Rollen", "sidebarRoles": "Rollen",
"sidebarShareableLinks": "Deelbare links", "sidebarShareableLinks": "Koppelingen",
"sidebarApiKeys": "API sleutels", "sidebarApiKeys": "API sleutels",
"sidebarSettings": "Instellingen", "sidebarSettings": "Instellingen",
"sidebarAllUsers": "Alle gebruikers", "sidebarAllUsers": "Alle gebruikers",
"sidebarIdentityProviders": "Identiteit aanbieders", "sidebarIdentityProviders": "Identiteit aanbieders",
"sidebarLicense": "Licentie", "sidebarLicense": "Licentie",
"sidebarClients": "Clienten", "sidebarClients": "Clienten",
"sidebarUserDevices": "Gebruikers",
"sidebarMachineClients": "Machines",
"sidebarDomains": "Domeinen", "sidebarDomains": "Domeinen",
"sidebarGeneral": "Algemeen",
"sidebarLogAndAnalytics": "Log & Analytics",
"sidebarBluePrints": "Blauwdrukken", "sidebarBluePrints": "Blauwdrukken",
"sidebarOrganization": "Organisatie",
"sidebarLogsAnalytics": "Analyses",
"blueprints": "Blauwdrukken", "blueprints": "Blauwdrukken",
"blueprintsDescription": "Blauwdrukken zijn declaratieve YAML-configuraties die je bronnen en hun instellingen bepalen", "blueprintsDescription": "Gebruik declaratieve configuraties en bekijk vorige uitvoeringen.",
"blueprintAdd": "Blauwdruk toevoegen", "blueprintAdd": "Blauwdruk toevoegen",
"blueprintGoBack": "Bekijk alle Blauwdrukken", "blueprintGoBack": "Bekijk alle Blauwdrukken",
"blueprintCreate": "Creëer blauwdruk", "blueprintCreate": "Creëer blauwdruk",
"blueprintCreateDescription2": "Volg de onderstaande stappen om een nieuwe blauwdruk te maken en toe te passen", "blueprintCreateDescription2": "Volg de onderstaande stappen om een nieuwe blauwdruk te maken en toe te passen",
"blueprintDetails": "Blauwdruk details", "blueprintDetails": "Blauwdruk Details",
"blueprintDetailsDescription": "Bekijk de blauwdruk run details", "blueprintDetailsDescription": "Bekijk het resultaat van de toegepaste blauwdruk en eventuele fouten",
"blueprintInfo": "Blauwdruk Informatie", "blueprintInfo": "Blauwdruk Informatie",
"message": "bericht", "message": "bericht",
"blueprintContentsDescription": "Definieer de YAML content die je infrastructuur beschrijft", "blueprintContentsDescription": "Definieer de YAML-content die de infrastructuur beschrijft",
"blueprintErrorCreateDescription": "Er is een fout opgetreden bij het toepassen van de blauwdruk", "blueprintErrorCreateDescription": "Er is een fout opgetreden bij het toepassen van de blauwdruk",
"blueprintErrorCreate": "Fout bij maken blauwdruk", "blueprintErrorCreate": "Fout bij maken blauwdruk",
"searchBlueprintProgress": "Blauwdrukken zoeken...", "searchBlueprintProgress": "Blauwdrukken zoeken...",
"appliedAt": "Toegepast op", "appliedAt": "Toegepast op",
"source": "Bron", "source": "Bron",
"contents": "Inhoud", "contents": "Inhoud",
"parsedContents": "Geparseerde inhoud", "parsedContents": "Geparseerde inhoud (alleen lezen)",
"enableDockerSocket": "Schakel Docker Blauwdruk in", "enableDockerSocket": "Schakel Docker Blauwdruk in",
"enableDockerSocketDescription": "Schakel Docker Socket label in voor blauwdruk labels. Pad naar Nieuw.", "enableDockerSocketDescription": "Schakel Docker Socket label in voor blauwdruk labels. Pad naar Nieuw.",
"enableDockerSocketLink": "Meer informatie", "enableDockerSocketLink": "Meer informatie",
@@ -1230,15 +1265,15 @@
"loading": "Bezig met laden", "loading": "Bezig met laden",
"restart": "Herstarten", "restart": "Herstarten",
"domains": "Domeinen", "domains": "Domeinen",
"domainsDescription": "Beheer domeinen voor je organisatie", "domainsDescription": "Maak en beheer domeinen die beschikbaar zijn in de organisatie",
"domainsSearch": "Zoek domeinen...", "domainsSearch": "Zoek domeinen...",
"domainAdd": "Domein toevoegen", "domainAdd": "Domein toevoegen",
"domainAddDescription": "Registreer een nieuw domein bij je organisatie", "domainAddDescription": "Registreer een nieuw domein met de organisatie",
"domainCreate": "Domein aanmaken", "domainCreate": "Domein aanmaken",
"domainCreatedDescription": "Domein succesvol aangemaakt", "domainCreatedDescription": "Domein succesvol aangemaakt",
"domainDeletedDescription": "Domein succesvol verwijderd", "domainDeletedDescription": "Domein succesvol verwijderd",
"domainQuestionRemove": "Weet u zeker dat u het domein uit uw account wilt verwijderen?", "domainQuestionRemove": "Weet u zeker dat u dit domein wilt verwijderen?",
"domainMessageRemove": "Na verwijdering zal het domein niet langer aan je account gekoppeld zijn.", "domainMessageRemove": "Eenmaal verwijderd, wordt het domein niet langer gekoppeld aan de organisatie.",
"domainConfirmDelete": "Bevestig verwijdering van domein", "domainConfirmDelete": "Bevestig verwijdering van domein",
"domainDelete": "Domein verwijderen", "domainDelete": "Domein verwijderen",
"domain": "Domein", "domain": "Domein",
@@ -1257,7 +1292,7 @@
"pending": "In afwachting", "pending": "In afwachting",
"sidebarBilling": "Facturering", "sidebarBilling": "Facturering",
"billing": "Facturering", "billing": "Facturering",
"orgBillingDescription": "Beheer je factureringsgegevens en abonnementen", "orgBillingDescription": "Beheer factureringsinformatie en abonnementen",
"github": "GitHub", "github": "GitHub",
"pangolinHosted": "Pangolin gehost", "pangolinHosted": "Pangolin gehost",
"fossorial": "Fossorial", "fossorial": "Fossorial",
@@ -1279,6 +1314,15 @@
"settingsErrorUpdateDescription": "Er is een fout opgetreden bij het bijwerken van instellingen", "settingsErrorUpdateDescription": "Er is een fout opgetreden bij het bijwerken van instellingen",
"sidebarCollapse": "Inklappen", "sidebarCollapse": "Inklappen",
"sidebarExpand": "Uitklappen", "sidebarExpand": "Uitklappen",
"productUpdateMoreInfo": "Nog {noOfUpdates} updates",
"productUpdateInfo": "{noOfUpdates} updates",
"productUpdateWhatsNew": "Wat is nieuw",
"productUpdateTitle": "Update Producten",
"productUpdateEmpty": "Geen updates",
"dismissAll": "Alles afwijzen",
"pangolinUpdateAvailable": "Update beschikbaar",
"pangolinUpdateAvailableInfo": "Versie {version} is klaar om te installeren",
"pangolinUpdateAvailableReleaseNotes": "Uitgaveopmerkingen bekijken",
"newtUpdateAvailable": "Update beschikbaar", "newtUpdateAvailable": "Update beschikbaar",
"newtUpdateAvailableInfo": "Er is een nieuwe versie van Newt beschikbaar. Update naar de nieuwste versie voor de beste ervaring.", "newtUpdateAvailableInfo": "Er is een nieuwe versie van Newt beschikbaar. Update naar de nieuwste versie voor de beste ervaring.",
"domainPickerEnterDomain": "Domein", "domainPickerEnterDomain": "Domein",
@@ -1291,7 +1335,7 @@
"domainPickerSortAsc": "A-Z", "domainPickerSortAsc": "A-Z",
"domainPickerSortDesc": "Z-A", "domainPickerSortDesc": "Z-A",
"domainPickerCheckingAvailability": "Beschikbaarheid controleren...", "domainPickerCheckingAvailability": "Beschikbaarheid controleren...",
"domainPickerNoMatchingDomains": "Geen overeenkomende domeinen gevonden. Probeer een ander domein of controleer de domeininstellingen van uw organisatie.", "domainPickerNoMatchingDomains": "Geen overeenkomende domeinen gevonden. Probeer een ander domein of controleer de domeininstellingen van de organisatie.",
"domainPickerOrganizationDomains": "Organisatiedomeinen", "domainPickerOrganizationDomains": "Organisatiedomeinen",
"domainPickerProvidedDomains": "Aangeboden domeinen", "domainPickerProvidedDomains": "Aangeboden domeinen",
"domainPickerSubdomain": "Subdomein: {subdomain}", "domainPickerSubdomain": "Subdomein: {subdomain}",
@@ -1325,7 +1369,7 @@
"billingModifySubscription": "Abonnementsaanpassing", "billingModifySubscription": "Abonnementsaanpassing",
"billingStartSubscription": "Abonnement Starten", "billingStartSubscription": "Abonnement Starten",
"billingRecurringCharge": "Terugkerende Kosten", "billingRecurringCharge": "Terugkerende Kosten",
"billingManageSubscriptionSettings": "Beheer uw abonnementsinstellingen en voorkeuren", "billingManageSubscriptionSettings": "Beheer abonnementsinstellingen en voorkeuren",
"billingNoActiveSubscription": "U heeft geen actief abonnement. Start uw abonnement om gebruikslimieten te verhogen.", "billingNoActiveSubscription": "U heeft geen actief abonnement. Start uw abonnement om gebruikslimieten te verhogen.",
"billingFailedToLoadSubscription": "Fout bij laden van abonnement", "billingFailedToLoadSubscription": "Fout bij laden van abonnement",
"billingFailedToLoadUsage": "Niet gelukt om gebruik te laden", "billingFailedToLoadUsage": "Niet gelukt om gebruik te laden",
@@ -1336,9 +1380,9 @@
"billingPortalError": "Portal Fout", "billingPortalError": "Portal Fout",
"billingDataUsageInfo": "U bent in rekening gebracht voor alle gegevens die via uw beveiligde tunnels via de cloud worden verzonden. Dit omvat zowel inkomende als uitgaande verkeer over al uw sites. Wanneer u uw limiet bereikt zullen uw sites de verbinding verbreken totdat u uw abonnement upgradet of het gebruik vermindert. Gegevens worden niet in rekening gebracht bij het gebruik van knooppunten.", "billingDataUsageInfo": "U bent in rekening gebracht voor alle gegevens die via uw beveiligde tunnels via de cloud worden verzonden. Dit omvat zowel inkomende als uitgaande verkeer over al uw sites. Wanneer u uw limiet bereikt zullen uw sites de verbinding verbreken totdat u uw abonnement upgradet of het gebruik vermindert. Gegevens worden niet in rekening gebracht bij het gebruik van knooppunten.",
"billingOnlineTimeInfo": "U wordt in rekening gebracht op basis van hoe lang uw sites verbonden blijven met de cloud. Bijvoorbeeld 44,640 minuten is gelijk aan één site met 24/7 voor een volledige maand. Wanneer u uw limiet bereikt, zal de verbinding tussen uw sites worden verbroken totdat u een upgrade van uw abonnement uitvoert of het gebruik vermindert. Tijd wordt niet belast bij het gebruik van knooppunten.", "billingOnlineTimeInfo": "U wordt in rekening gebracht op basis van hoe lang uw sites verbonden blijven met de cloud. Bijvoorbeeld 44,640 minuten is gelijk aan één site met 24/7 voor een volledige maand. Wanneer u uw limiet bereikt, zal de verbinding tussen uw sites worden verbroken totdat u een upgrade van uw abonnement uitvoert of het gebruik vermindert. Tijd wordt niet belast bij het gebruik van knooppunten.",
"billingUsersInfo": "U wordt gefactureerd voor elke gebruiker in uw organisatie. Facturering wordt dagelijks berekend op basis van het aantal actieve gebruikersaccounts in uw organisatie.", "billingUsersInfo": "U bent in rekening gebracht voor elke gebruiker in de organisatie. Facturering wordt dagelijks berekend op basis van het aantal actieve gebruikersaccounts in uw org.",
"billingDomainInfo": "U wordt gefactureerd voor elk domein in uw organisatie. Facturering wordt dagelijks berekend op basis van het aantal actieve domeinaccounts in uw organisatie.", "billingDomainInfo": "U wordt voor elk domein in de organisatie in rekening gebracht. Facturering wordt dagelijks berekend op basis van het aantal actieve domeinaccounts in uw org.",
"billingRemoteExitNodesInfo": "U wordt gefactureerd voor elke beheerde Node in uw organisatie. Facturering wordt dagelijks berekend op basis van het aantal actieve beheerde Nodes in uw organisatie.", "billingRemoteExitNodesInfo": "U bent belast voor elke beheerde node in de organisatie. Facturering wordt dagelijks berekend op basis van het aantal actieve beheerde knooppunten in uw org.",
"domainNotFound": "Domein niet gevonden", "domainNotFound": "Domein niet gevonden",
"domainNotFoundDescription": "Deze bron is uitgeschakeld omdat het domein niet langer in ons systeem bestaat. Stel een nieuw domein in voor deze bron.", "domainNotFoundDescription": "Deze bron is uitgeschakeld omdat het domein niet langer in ons systeem bestaat. Stel een nieuw domein in voor deze bron.",
"failed": "Mislukt", "failed": "Mislukt",
@@ -1421,29 +1465,32 @@
"and": "en", "and": "en",
"privacyPolicy": "privacybeleid" "privacyPolicy": "privacybeleid"
}, },
"signUpMarketing": {
"keepMeInTheLoop": "Houd me op de hoogte met nieuws, updates en nieuwe functies per e-mail."
},
"siteRequired": "Site is vereist.", "siteRequired": "Site is vereist.",
"olmTunnel": "Olm Tunnel", "olmTunnel": "Olm Tunnel",
"olmTunnelDescription": "Gebruik Olm voor clientconnectiviteit", "olmTunnelDescription": "Gebruik Olm voor clientconnectiviteit",
"errorCreatingClient": "Fout bij het aanmaken van de client", "errorCreatingClient": "Fout bij het aanmaken van de client",
"clientDefaultsNotFound": "Standaardinstellingen van klant niet gevonden", "clientDefaultsNotFound": "Standaardinstellingen van klant niet gevonden",
"createClient": "Client aanmaken", "createClient": "Client aanmaken",
"createClientDescription": "Maak een nieuwe client aan om verbinding te maken met uw sites", "createClientDescription": "Maak een nieuwe client aan voor toegang tot privébronnen",
"seeAllClients": "Alle clients bekijken", "seeAllClients": "Alle clients bekijken",
"clientInformation": "Klantinformatie", "clientInformation": "Klantinformatie",
"clientNamePlaceholder": "Clientnaam", "clientNamePlaceholder": "Clientnaam",
"address": "Adres", "address": "Adres",
"subnetPlaceholder": "Subnet", "subnetPlaceholder": "Subnet",
"addressDescription": "Het adres dat deze client zal gebruiken voor connectiviteit", "addressDescription": "Het interne adres van de klant. Moet binnen het subnetwerk van de organisatie vallen.",
"selectSites": "Selecteer sites", "selectSites": "Selecteer sites",
"sitesDescription": "De client heeft connectiviteit met de geselecteerde sites", "sitesDescription": "De client heeft connectiviteit met de geselecteerde sites",
"clientInstallOlm": "Installeer Olm", "clientInstallOlm": "Installeer Olm",
"clientInstallOlmDescription": "Laat Olm draaien op uw systeem", "clientInstallOlmDescription": "Laat Olm draaien op uw systeem",
"clientOlmCredentials": "Olm inloggegevens", "clientOlmCredentials": "Aanmeldgegevens",
"clientOlmCredentialsDescription": "Dit is hoe Olm zich bij de server zal verifiëren", "clientOlmCredentialsDescription": "Dit is hoe de client zich zal verifiëren met de server",
"olmEndpoint": "Olm Eindpunt", "olmEndpoint": "Endpoint",
"olmId": "Olm ID", "olmId": "ID",
"olmSecretKey": "Olm Geheime Sleutel", "olmSecretKey": "Geheim",
"clientCredentialsSave": "Uw referenties opslaan", "clientCredentialsSave": "Sla de aanmeldgegevens op",
"clientCredentialsSaveDescription": "Je kunt dit slechts één keer zien. Kopieer het naar een beveiligde plek.", "clientCredentialsSaveDescription": "Je kunt dit slechts één keer zien. Kopieer het naar een beveiligde plek.",
"generalSettingsDescription": "Configureer de algemene instellingen voor deze client", "generalSettingsDescription": "Configureer de algemene instellingen voor deze client",
"clientUpdated": "Klant bijgewerkt ", "clientUpdated": "Klant bijgewerkt ",
@@ -1454,9 +1501,7 @@
"sitesFetchError": "Er is een fout opgetreden bij het ophalen van sites.", "sitesFetchError": "Er is een fout opgetreden bij het ophalen van sites.",
"olmErrorFetchReleases": "Er is een fout opgetreden bij het ophalen van Olm releases.", "olmErrorFetchReleases": "Er is een fout opgetreden bij het ophalen van Olm releases.",
"olmErrorFetchLatest": "Er is een fout opgetreden bij het ophalen van de nieuwste Olm release.", "olmErrorFetchLatest": "Er is een fout opgetreden bij het ophalen van de nieuwste Olm release.",
"remoteSubnets": "Externe Subnets",
"enterCidrRange": "Voer CIDR-bereik in", "enterCidrRange": "Voer CIDR-bereik in",
"remoteSubnetsDescription": "Voeg CIDR-bereiken toe die vanaf deze site op afstand toegankelijk zijn met behulp van clients. Gebruik een formaat zoals 10.0.0.0/24. Dit geldt ALLEEN voor VPN-clientconnectiviteit.",
"resourceEnableProxy": "Openbare proxy inschakelen", "resourceEnableProxy": "Openbare proxy inschakelen",
"resourceEnableProxyDescription": "Schakel publieke proxy in voor deze resource. Dit maakt toegang tot de resource mogelijk vanuit het netwerk via de cloud met een open poort. Vereist Traefik-configuratie.", "resourceEnableProxyDescription": "Schakel publieke proxy in voor deze resource. Dit maakt toegang tot de resource mogelijk vanuit het netwerk via de cloud met een open poort. Vereist Traefik-configuratie.",
"externalProxyEnabled": "Externe Proxy Ingeschakeld", "externalProxyEnabled": "Externe Proxy Ingeschakeld",
@@ -1474,14 +1519,15 @@
"enableHealthChecksDescription": "Controleer de gezondheid van dit doel. U kunt een ander eindpunt monitoren dan het doel indien vereist.", "enableHealthChecksDescription": "Controleer de gezondheid van dit doel. U kunt een ander eindpunt monitoren dan het doel indien vereist.",
"healthScheme": "Methode", "healthScheme": "Methode",
"healthSelectScheme": "Selecteer methode", "healthSelectScheme": "Selecteer methode",
"healthCheckPortInvalid": "Health check poort moet tussen 1 en 65535 zijn",
"healthCheckPath": "Pad", "healthCheckPath": "Pad",
"healthHostname": "IP / Hostnaam", "healthHostname": "IP / Hostnaam",
"healthPort": "Poort", "healthPort": "Poort",
"healthCheckPathDescription": "Het pad om de gezondheid status te controleren.", "healthCheckPathDescription": "Het pad om de gezondheid status te controleren.",
"healthyIntervalSeconds": "Gezonde Interval", "healthyIntervalSeconds": "Gezonde Interval (sec)",
"unhealthyIntervalSeconds": "Ongezonde Interval", "unhealthyIntervalSeconds": "Ongezonde Interval (sec)",
"IntervalSeconds": "Gezonde Interval", "IntervalSeconds": "Gezonde Interval",
"timeoutSeconds": "Timeout", "timeoutSeconds": "Timeout (sec)",
"timeIsInSeconds": "Tijd is in seconden", "timeIsInSeconds": "Tijd is in seconden",
"retryAttempts": "Herhaal Pogingen", "retryAttempts": "Herhaal Pogingen",
"expectedResponseCodes": "Verwachte Reactiecodes", "expectedResponseCodes": "Verwachte Reactiecodes",
@@ -1517,16 +1563,22 @@
"resourceEditDomain": "Domein bewerken", "resourceEditDomain": "Domein bewerken",
"siteName": "Site Naam", "siteName": "Site Naam",
"proxyPort": "Poort", "proxyPort": "Poort",
"resourcesTableProxyResources": "Proxybronnen", "resourcesTableProxyResources": "Openbaar",
"resourcesTableClientResources": "Clientbronnen", "resourcesTableClientResources": "Privé",
"resourcesTableNoProxyResourcesFound": "Geen proxybronnen gevonden.", "resourcesTableNoProxyResourcesFound": "Geen proxybronnen gevonden.",
"resourcesTableNoInternalResourcesFound": "Geen interne bronnen gevonden.", "resourcesTableNoInternalResourcesFound": "Geen interne bronnen gevonden.",
"resourcesTableDestination": "Bestemming", "resourcesTableDestination": "Bestemming",
"resourcesTableTheseResourcesForUseWith": "Deze bronnen zijn bedoeld voor gebruik met", "resourcesTableAlias": "Alias",
"resourcesTableClients": "Clienten", "resourcesTableClients": "Clienten",
"resourcesTableAndOnlyAccessibleInternally": "en zijn alleen intern toegankelijk wanneer verbonden met een client.", "resourcesTableAndOnlyAccessibleInternally": "en zijn alleen intern toegankelijk wanneer verbonden met een client.",
"editInternalResourceDialogEditClientResource": "Bewerk clientbron", "resourcesTableNoTargets": "Geen doelen",
"editInternalResourceDialogUpdateResourceProperties": "Werk de eigenschapen van de bron en doelconfiguratie bij voor {resourceName}.", "resourcesTableHealthy": "Gezond",
"resourcesTableDegraded": "Verminderde",
"resourcesTableOffline": "Offline",
"resourcesTableUnknown": "onbekend",
"resourcesTableNotMonitored": "Niet gecontroleerd",
"editInternalResourceDialogEditClientResource": "Privépagina bewerken",
"editInternalResourceDialogUpdateResourceProperties": "Update de resource configuratie en access control voor {resourceName}",
"editInternalResourceDialogResourceProperties": "Bron eigenschappen", "editInternalResourceDialogResourceProperties": "Bron eigenschappen",
"editInternalResourceDialogName": "Naam", "editInternalResourceDialogName": "Naam",
"editInternalResourceDialogProtocol": "Protocol", "editInternalResourceDialogProtocol": "Protocol",
@@ -1545,11 +1597,22 @@
"editInternalResourceDialogInvalidIPAddressFormat": "Ongeldig IP-adresformaat", "editInternalResourceDialogInvalidIPAddressFormat": "Ongeldig IP-adresformaat",
"editInternalResourceDialogDestinationPortMin": "Bestemmingspoort moet minstens 1 zijn", "editInternalResourceDialogDestinationPortMin": "Bestemmingspoort moet minstens 1 zijn",
"editInternalResourceDialogDestinationPortMax": "Bestemmingspoort moet minder dan 65536 zijn", "editInternalResourceDialogDestinationPortMax": "Bestemmingspoort moet minder dan 65536 zijn",
"editInternalResourceDialogPortModeRequired": "Protocol, proxy poort en bestemmingspoort zijn vereist voor poortmodus",
"editInternalResourceDialogMode": "Modus",
"editInternalResourceDialogModePort": "Poort",
"editInternalResourceDialogModeHost": "Hostnaam",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogDestination": "Bestemming",
"editInternalResourceDialogDestinationHostDescription": "Het IP-adres of de hostnaam van de bron op het netwerk van de site.",
"editInternalResourceDialogDestinationIPDescription": "Het IP of hostnaam adres van de bron op het netwerk van de site.",
"editInternalResourceDialogDestinationCidrDescription": "Het CIDR-bereik van het document op het netwerk van de site.",
"editInternalResourceDialogAlias": "Alias",
"editInternalResourceDialogAliasDescription": "Een optionele interne DNS-alias voor dit document.",
"createInternalResourceDialogNoSitesAvailable": "Geen sites beschikbaar", "createInternalResourceDialogNoSitesAvailable": "Geen sites beschikbaar",
"createInternalResourceDialogNoSitesAvailableDescription": "U moet ten minste één Newt-site hebben met een geconfigureerd subnet om interne bronnen aan te maken.", "createInternalResourceDialogNoSitesAvailableDescription": "U moet ten minste één Newt-site hebben met een geconfigureerd subnet om interne bronnen aan te maken.",
"createInternalResourceDialogClose": "Sluiten", "createInternalResourceDialogClose": "Sluiten",
"createInternalResourceDialogCreateClientResource": "Maak clientbron", "createInternalResourceDialogCreateClientResource": "Privé bron maken",
"createInternalResourceDialogCreateClientResourceDescription": "Maak een nieuwe bron die toegankelijk zal zijn voor clients die verbonden zijn met de geselecteerde site.", "createInternalResourceDialogCreateClientResourceDescription": "Maak een nieuwe bron aan die alleen toegankelijk is voor klanten die verbonden zijn met de organisatie",
"createInternalResourceDialogResourceProperties": "Bron-eigenschappen", "createInternalResourceDialogResourceProperties": "Bron-eigenschappen",
"createInternalResourceDialogName": "Naam", "createInternalResourceDialogName": "Naam",
"createInternalResourceDialogSite": "Site", "createInternalResourceDialogSite": "Site",
@@ -1578,11 +1641,22 @@
"createInternalResourceDialogInvalidIPAddressFormat": "Ongeldig IP-adresformaat", "createInternalResourceDialogInvalidIPAddressFormat": "Ongeldig IP-adresformaat",
"createInternalResourceDialogDestinationPortMin": "Bestemmingspoort moet minstens 1 zijn", "createInternalResourceDialogDestinationPortMin": "Bestemmingspoort moet minstens 1 zijn",
"createInternalResourceDialogDestinationPortMax": "Bestemmingspoort moet minder dan 65536 zijn", "createInternalResourceDialogDestinationPortMax": "Bestemmingspoort moet minder dan 65536 zijn",
"createInternalResourceDialogPortModeRequired": "Protocol, proxy poort en bestemmingspoort zijn vereist voor poortmodus",
"createInternalResourceDialogMode": "Modus",
"createInternalResourceDialogModePort": "Poort",
"createInternalResourceDialogModeHost": "Hostnaam",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogDestination": "Bestemming",
"createInternalResourceDialogDestinationHostDescription": "Het IP-adres of de hostnaam van de bron op het netwerk van de site.",
"createInternalResourceDialogDestinationCidrDescription": "Het CIDR-bereik van het document op het netwerk van de site.",
"createInternalResourceDialogAlias": "Alias",
"createInternalResourceDialogAliasDescription": "Een optionele interne DNS-alias voor dit document.",
"siteConfiguration": "Configuratie", "siteConfiguration": "Configuratie",
"siteAcceptClientConnections": "Accepteer clientverbindingen", "siteAcceptClientConnections": "Accepteer clientverbindingen",
"siteAcceptClientConnectionsDescription": "Sta toe dat andere apparaten verbinding maken via deze Newt-instantie als een gateway met behulp van clients.", "siteAcceptClientConnectionsDescription": "Sta gebruikersapparaten en clients toegang toe tot bronnen op deze site. Dit kan later worden gewijzigd.",
"siteAddress": "Siteadres", "siteAddress": "Website Adres (Geavanceerd)",
"siteAddressDescription": "Specificeren het IP-adres van de host voor clients om verbinding mee te maken. Dit is het interne adres van de site in het Pangolin netwerk voor clients om te adresseren. Moet binnen het Organisatienetwerk vallen.", "siteAddressDescription": "Het interne adres van de site. Moet binnen het subnetwerk van de organisatie vallen.",
"siteNameDescription": "De weergavenaam van de site die later gewijzigd kan worden.",
"autoLoginExternalIdp": "Auto Login met Externe IDP", "autoLoginExternalIdp": "Auto Login met Externe IDP",
"autoLoginExternalIdpDescription": "De gebruiker onmiddellijk doorsturen naar de externe IDP voor authenticatie.", "autoLoginExternalIdpDescription": "De gebruiker onmiddellijk doorsturen naar de externe IDP voor authenticatie.",
"selectIdp": "Selecteer IDP", "selectIdp": "Selecteer IDP",
@@ -1596,7 +1670,7 @@
"autoLoginErrorNoRedirectUrl": "Geen redirect URL ontvangen van de identity provider.", "autoLoginErrorNoRedirectUrl": "Geen redirect URL ontvangen van de identity provider.",
"autoLoginErrorGeneratingUrl": "Genereren van authenticatie-URL mislukt.", "autoLoginErrorGeneratingUrl": "Genereren van authenticatie-URL mislukt.",
"remoteExitNodeManageRemoteExitNodes": "Externe knooppunten", "remoteExitNodeManageRemoteExitNodes": "Externe knooppunten",
"remoteExitNodeDescription": "Zorgt voor één of meer externe knooppunten om de netwerkverbinding uit te breiden en het vertrouwen in de cloud te verminderen", "remoteExitNodeDescription": "Zelf host één of meer externe knooppunten om de netwerkverbinding uit te breiden en het vertrouwen in de cloud te verminderen",
"remoteExitNodes": "Nodes", "remoteExitNodes": "Nodes",
"searchRemoteExitNodes": "Knooppunten zoeken...", "searchRemoteExitNodes": "Knooppunten zoeken...",
"remoteExitNodeAdd": "Voeg node toe", "remoteExitNodeAdd": "Voeg node toe",
@@ -1608,11 +1682,11 @@
"sidebarRemoteExitNodes": "Externe knooppunten", "sidebarRemoteExitNodes": "Externe knooppunten",
"remoteExitNodeCreate": { "remoteExitNodeCreate": {
"title": "Maak node", "title": "Maak node",
"description": "Maak een nieuwe node aan om uw netwerkverbinding uit te breiden", "description": "Maak een nieuwe node aan om de netwerkverbinding uit te breiden",
"viewAllButton": "Alle nodes weergeven", "viewAllButton": "Alle nodes weergeven",
"strategy": { "strategy": {
"title": "Creatie Strategie", "title": "Creatie Strategie",
"description": "Kies dit om uw node handmatig te configureren of nieuwe referenties te genereren.", "description": "Kies dit om handmatig het knooppunt te configureren of nieuwe referenties te genereren.",
"adopt": { "adopt": {
"title": "Adopteer Node", "title": "Adopteer Node",
"description": "Kies dit als u al de referenties voor deze node heeft" "description": "Kies dit als u al de referenties voor deze node heeft"
@@ -1633,7 +1707,7 @@
}, },
"generate": { "generate": {
"title": "Gegeneerde Inloggegevens", "title": "Gegeneerde Inloggegevens",
"description": "Gebruik deze gegenereerde inloggegevens om uw node te configureren", "description": "Gebruik deze gegenereerde inloggegevens om het knooppunt te configureren",
"nodeIdTitle": "Knooppunt ID", "nodeIdTitle": "Knooppunt ID",
"secretTitle": "Geheim", "secretTitle": "Geheim",
"saveCredentialsTitle": "Voeg Inloggegevens toe aan Config", "saveCredentialsTitle": "Voeg Inloggegevens toe aan Config",
@@ -1709,16 +1783,16 @@
"idpTypeLabel": "Identiteit provider type", "idpTypeLabel": "Identiteit provider type",
"roleMappingExpressionPlaceholder": "bijvoorbeeld bevat (groepen, 'admin') && 'Admin' ½ 'Member'", "roleMappingExpressionPlaceholder": "bijvoorbeeld bevat (groepen, 'admin') && 'Admin' ½ 'Member'",
"idpGoogleConfiguration": "Google Configuratie", "idpGoogleConfiguration": "Google Configuratie",
"idpGoogleConfigurationDescription": "Configureer uw Google OAuth2-referenties", "idpGoogleConfigurationDescription": "Configureer de Google OAuth2-referenties",
"idpGoogleClientIdDescription": "Uw Google OAuth2-client-ID", "idpGoogleClientIdDescription": "Google OAuth2 Client ID",
"idpGoogleClientSecretDescription": "Uw Google OAuth2 Clientgeheim", "idpGoogleClientSecretDescription": "Google OAuth2 Clientgeheim",
"idpAzureConfiguration": "Azure Entra ID configuratie", "idpAzureConfiguration": "Azure Entra ID configuratie",
"idpAzureConfigurationDescription": "Configureer uw Azure Entra ID OAuth2 referenties", "idpAzureConfigurationDescription": "Azure Entra ID OAuth2 referenties configureren",
"idpTenantId": "Tenant-ID", "idpTenantId": "Tenant-ID",
"idpTenantIdPlaceholder": "jouw-tenant-id", "idpTenantIdPlaceholder": "tenant-id",
"idpAzureTenantIdDescription": "Uw Azure tenant ID (gevonden in Azure Active Directory overzicht)", "idpAzureTenantIdDescription": "Azure tenant ID (gevonden in Azure Active Directory overzicht)",
"idpAzureClientIdDescription": "Uw Azure App registratie Client ID", "idpAzureClientIdDescription": "Azure App registratie Client ID",
"idpAzureClientSecretDescription": "Uw Azure App registratie Client Secret", "idpAzureClientSecretDescription": "Azure App registratie client geheim",
"idpGoogleTitle": "Google", "idpGoogleTitle": "Google",
"idpGoogleAlt": "Google", "idpGoogleAlt": "Google",
"idpAzureTitle": "Azure Entra ID", "idpAzureTitle": "Azure Entra ID",
@@ -1726,14 +1800,14 @@
"idpGoogleConfigurationTitle": "Google Configuratie", "idpGoogleConfigurationTitle": "Google Configuratie",
"idpAzureConfigurationTitle": "Azure Entra ID configuratie", "idpAzureConfigurationTitle": "Azure Entra ID configuratie",
"idpTenantIdLabel": "Tenant-ID", "idpTenantIdLabel": "Tenant-ID",
"idpAzureClientIdDescription2": "Uw Azure App registratie Client ID", "idpAzureClientIdDescription2": "Azure App registratie Client ID",
"idpAzureClientSecretDescription2": "Uw Azure App registratie Client Secret", "idpAzureClientSecretDescription2": "Azure App registratie client geheim",
"idpGoogleDescription": "Google OAuth2/OIDC provider", "idpGoogleDescription": "Google OAuth2/OIDC provider",
"idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider", "idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider",
"subnet": "Subnet", "subnet": "Subnet",
"subnetDescription": "Het subnet van de netwerkconfiguratie van deze organisatie.", "subnetDescription": "Het subnet van de netwerkconfiguratie van deze organisatie.",
"authPage": "Authenticatie pagina", "authPage": "Authenticatie pagina",
"authPageDescription": "De autorisatiepagina voor uw organisatie configureren", "authPageDescription": "De autorisatiepagina voor de organisatie configureren",
"authPageDomain": "Authenticatie pagina domein", "authPageDomain": "Authenticatie pagina domein",
"noDomainSet": "Geen domein ingesteld", "noDomainSet": "Geen domein ingesteld",
"changeDomain": "Domein wijzigen", "changeDomain": "Domein wijzigen",
@@ -1743,7 +1817,7 @@
"setAuthPageDomain": "Authenticatiepagina domein instellen", "setAuthPageDomain": "Authenticatiepagina domein instellen",
"failedToFetchCertificate": "Certificaat ophalen mislukt", "failedToFetchCertificate": "Certificaat ophalen mislukt",
"failedToRestartCertificate": "Kon certificaat niet opnieuw opstarten", "failedToRestartCertificate": "Kon certificaat niet opnieuw opstarten",
"addDomainToEnableCustomAuthPages": "Voeg een domein toe om aangepaste authenticatiepagina's voor uw organisatie in te schakelen", "addDomainToEnableCustomAuthPages": "Een domein toevoegen om aangepaste authenticatiepagina's voor de organisatie in te schakelen",
"selectDomainForOrgAuthPage": "Selecteer een domein voor de authenticatiepagina van de organisatie", "selectDomainForOrgAuthPage": "Selecteer een domein voor de authenticatiepagina van de organisatie",
"domainPickerProvidedDomain": "Opgegeven domein", "domainPickerProvidedDomain": "Opgegeven domein",
"domainPickerFreeProvidedDomain": "Gratis verstrekt domein", "domainPickerFreeProvidedDomain": "Gratis verstrekt domein",
@@ -1758,7 +1832,7 @@
"domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" kon niet geldig worden gemaakt voor {domain}.", "domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" kon niet geldig worden gemaakt voor {domain}.",
"domainPickerSubdomainSanitized": "Subdomein gesaniseerd", "domainPickerSubdomainSanitized": "Subdomein gesaniseerd",
"domainPickerSubdomainCorrected": "\"{sub}\" was gecorrigeerd op \"{sanitized}\"", "domainPickerSubdomainCorrected": "\"{sub}\" was gecorrigeerd op \"{sanitized}\"",
"orgAuthSignInTitle": "Meld je aan bij je organisatie", "orgAuthSignInTitle": "Log in op de organisatie",
"orgAuthChooseIdpDescription": "Kies uw identiteitsprovider om door te gaan", "orgAuthChooseIdpDescription": "Kies uw identiteitsprovider om door te gaan",
"orgAuthNoIdpConfigured": "Deze organisatie heeft geen identiteitsproviders geconfigureerd. Je kunt in plaats daarvan inloggen met je Pangolin-identiteit.", "orgAuthNoIdpConfigured": "Deze organisatie heeft geen identiteitsproviders geconfigureerd. Je kunt in plaats daarvan inloggen met je Pangolin-identiteit.",
"orgAuthSignInWithPangolin": "Log in met Pangolin", "orgAuthSignInWithPangolin": "Log in met Pangolin",
@@ -1776,7 +1850,7 @@
"enableTwoFactorAuthentication": "Tweestapsverificatie inschakelen", "enableTwoFactorAuthentication": "Tweestapsverificatie inschakelen",
"completeSecuritySteps": "Voltooi beveiligingsstappen", "completeSecuritySteps": "Voltooi beveiligingsstappen",
"securitySettings": "Beveiliging instellingen", "securitySettings": "Beveiliging instellingen",
"securitySettingsDescription": "Beveiligingsbeleid voor uw organisatie configureren", "securitySettingsDescription": "Beveiligingsbeleid voor de organisatie configureren",
"requireTwoFactorForAllUsers": "Authenticatie in twee stappen vereist voor alle gebruikers", "requireTwoFactorForAllUsers": "Authenticatie in twee stappen vereist voor alle gebruikers",
"requireTwoFactorDescription": "Wanneer ingeschakeld, moeten alle interne gebruikers in deze organisatie tweestapsverificatie ingeschakeld hebben om toegang te krijgen tot de organisatie.", "requireTwoFactorDescription": "Wanneer ingeschakeld, moeten alle interne gebruikers in deze organisatie tweestapsverificatie ingeschakeld hebben om toegang te krijgen tot de organisatie.",
"requireTwoFactorDisabledDescription": "Deze functie vereist een geldig licentie (Enterprise) of actief abonnement (SaaS)", "requireTwoFactorDisabledDescription": "Deze functie vereist een geldig licentie (Enterprise) of actief abonnement (SaaS)",
@@ -1839,8 +1913,12 @@
"enterpriseEdition": "Enterprise Edition", "enterpriseEdition": "Enterprise Edition",
"unlicensed": "Ongelicentieerd", "unlicensed": "Ongelicentieerd",
"beta": "Bèta", "beta": "Bèta",
"manageClients": "Beheer Cliënten", "manageUserDevices": "Gebruiker Apparaten",
"manageClientsDescription": "Klanten zijn apparaten die verbinding kunnen maken met uw sites", "manageUserDevicesDescription": "Bekijk en beheer apparaten die gebruikers gebruiken om privé verbinding te maken met bronnen",
"manageMachineClients": "Beheer Machine Clients",
"manageMachineClientsDescription": "Creëer en beheer clients die servers en systemen gebruiken om privé verbinding te maken met bronnen",
"clientsTableUserClients": "Gebruiker",
"clientsTableMachineClients": "Machine",
"licenseTableValidUntil": "Geldig tot", "licenseTableValidUntil": "Geldig tot",
"saasLicenseKeysSettingsTitle": "Enterprise Licenties", "saasLicenseKeysSettingsTitle": "Enterprise Licenties",
"saasLicenseKeysSettingsDescription": "Genereer en beheer de Enterprise licentiesleutels voor zelfgehoste Pangolin instanties", "saasLicenseKeysSettingsDescription": "Genereer en beheer de Enterprise licentiesleutels voor zelfgehoste Pangolin instanties",
@@ -1975,11 +2053,12 @@
"pathRewriteStripLabel": "strip", "pathRewriteStripLabel": "strip",
"sidebarEnableEnterpriseLicense": "Activeer Enterprise Licentie", "sidebarEnableEnterpriseLicense": "Activeer Enterprise Licentie",
"cannotbeUndone": "Dit kan niet ongedaan worden gemaakt.", "cannotbeUndone": "Dit kan niet ongedaan worden gemaakt.",
"toConfirm": "om te bevestigen", "toConfirm": "om te bevestigen.",
"deleteClientQuestion": "Weet u zeker dat u de client van de site en organisatie wilt verwijderen?", "deleteClientQuestion": "Weet u zeker dat u de client van de site en organisatie wilt verwijderen?",
"clientMessageRemove": "Eenmaal verwijderd, kan de client geen verbinding meer maken met de site.", "clientMessageRemove": "Eenmaal verwijderd, kan de client geen verbinding meer maken met de site.",
"sidebarLogs": "Logboeken", "sidebarLogs": "Logboeken",
"request": "Aanvragen", "request": "Aanvragen",
"requests": "Verzoeken",
"logs": "Logboeken", "logs": "Logboeken",
"logsSettingsDescription": "Monitor logs verzameld van deze orginiatie", "logsSettingsDescription": "Monitor logs verzameld van deze orginiatie",
"searchLogs": "Logboeken zoeken...", "searchLogs": "Logboeken zoeken...",
@@ -2005,6 +2084,7 @@
"ip": "IP-adres", "ip": "IP-adres",
"reason": "Reden", "reason": "Reden",
"requestLogs": "Logboeken aanvragen", "requestLogs": "Logboeken aanvragen",
"requestAnalytics": "Analytics opvragen",
"host": "Hostnaam", "host": "Hostnaam",
"location": "Locatie", "location": "Locatie",
"actionLogs": "Actie logs", "actionLogs": "Actie logs",
@@ -2014,6 +2094,7 @@
"logRetention": "Log bewaring", "logRetention": "Log bewaring",
"logRetentionDescription": "Beheren hoe lang verschillende soorten logs bewaard worden voor deze organisatie of schakel ze uit", "logRetentionDescription": "Beheren hoe lang verschillende soorten logs bewaard worden voor deze organisatie of schakel ze uit",
"requestLogsDescription": "Bekijk gedetailleerde verzoeklogboeken voor resources in deze organisatie", "requestLogsDescription": "Bekijk gedetailleerde verzoeklogboeken voor resources in deze organisatie",
"requestAnalyticsDescription": "Bekijk gedetailleerde request analytics voor resources in deze organisatie",
"logRetentionRequestLabel": "Logboekbewaring aanvragen", "logRetentionRequestLabel": "Logboekbewaring aanvragen",
"logRetentionRequestDescription": "Hoe lang de aanvraaglogboeken te behouden", "logRetentionRequestDescription": "Hoe lang de aanvraaglogboeken te behouden",
"logRetentionAccessLabel": "Toegang logboek bewaring", "logRetentionAccessLabel": "Toegang logboek bewaring",
@@ -2027,6 +2108,7 @@
"logRetention30Days": "30 dagen", "logRetention30Days": "30 dagen",
"logRetention90Days": "90 dagen", "logRetention90Days": "90 dagen",
"logRetentionForever": "Voor altijd", "logRetentionForever": "Voor altijd",
"logRetentionEndOfFollowingYear": "Einde van volgend jaar",
"actionLogsDescription": "Bekijk een geschiedenis van acties die worden uitgevoerd in deze organisatie", "actionLogsDescription": "Bekijk een geschiedenis van acties die worden uitgevoerd in deze organisatie",
"accessLogsDescription": "Toegangsverificatieverzoeken voor resources in deze organisatie bekijken", "accessLogsDescription": "Toegangsverificatieverzoeken voor resources in deze organisatie bekijken",
"licenseRequiredToUse": "Een Enterprise-licentie is vereist om deze functie te gebruiken.", "licenseRequiredToUse": "Een Enterprise-licentie is vereist om deze functie te gebruiken.",
@@ -2037,7 +2119,7 @@
"preferWildcardCert": "Bij voorkeur Wildcard Certificaat", "preferWildcardCert": "Bij voorkeur Wildcard Certificaat",
"unverified": "Ongeverifieerd", "unverified": "Ongeverifieerd",
"domainSetting": "Domein instellingen", "domainSetting": "Domein instellingen",
"domainSettingDescription": "Configureer instellingen voor uw domein", "domainSettingDescription": "Configureer instellingen voor het domein",
"preferWildcardCertDescription": "Poging om een certificaat met een wildcard te genereren (vereist een correct geconfigureerde certificaatresolver).", "preferWildcardCertDescription": "Poging om een certificaat met een wildcard te genereren (vereist een correct geconfigureerde certificaatresolver).",
"recordName": "Record Naam", "recordName": "Record Naam",
"auto": "Automatisch", "auto": "Automatisch",
@@ -2051,15 +2133,15 @@
"olmUpdateAvailableInfo": "Er is een bijgewerkte versie van Olm beschikbaar. Update alstublieft naar de nieuwste versie voor de beste ervaring.", "olmUpdateAvailableInfo": "Er is een bijgewerkte versie van Olm beschikbaar. Update alstublieft naar de nieuwste versie voor de beste ervaring.",
"client": "Klant", "client": "Klant",
"proxyProtocol": "Proxy Protocol Instellingen", "proxyProtocol": "Proxy Protocol Instellingen",
"proxyProtocolDescription": "Proxyprotocol configureren om de IP-adressen van de client voor TCP/UDP-diensten te bewaren.", "proxyProtocolDescription": "Proxyprotocol configureren om de IP-adressen van de client voor TCP-diensten te bewaren.",
"enableProxyProtocol": "Proxy Protocol inschakelen", "enableProxyProtocol": "Proxy Protocol inschakelen",
"proxyProtocolInfo": "Behoud IP adressen van de client voor TCP/UDP backends", "proxyProtocolInfo": "Behoud IP adressen van de client voor TCP backends",
"proxyProtocolVersion": "Proxy Protocol Versie", "proxyProtocolVersion": "Proxy Protocol Versie",
"version1": " Versie 1 (Aanbevolen)", "version1": " Versie 1 (Aanbevolen)",
"version2": "Versie 2", "version2": "Versie 2",
"versionDescription": "Versie 1 is text-based en breed ondersteund. Versie 2 is binair en efficiënter maar minder compatibel.", "versionDescription": "Versie 1 is text-based en breed ondersteund. Versie 2 is binair en efficiënter maar minder compatibel.",
"warning": "Waarschuwing", "warning": "Waarschuwing",
"proxyProtocolWarning": "Je backend applicatie moet worden geconfigureerd om connecties met Proxy Protocol te accepteren. Als je backend geen Proxy Protocol ondersteunt, zal het inschakelen van dit alle verbindingen verbreken. Zorg ervoor dat je je backend configureert om Proxy Protocol headers van Traefik.", "proxyProtocolWarning": "De backend applicatie moet worden geconfigureerd om Proxy Protocol verbindingen te accepteren. Als je backend geen Proxy Protocol ondersteunt, zal het inschakelen van dit alle verbindingen verbreken, dus schakel dit alleen in als je weet wat je doet. Zorg ervoor dat je je backend configureert om Proxy Protocol headers van Traefik.",
"restarting": "Herstarten...", "restarting": "Herstarten...",
"manual": "Handleiding", "manual": "Handleiding",
"messageSupport": "Bericht ondersteuning", "messageSupport": "Bericht ondersteuning",
@@ -2080,5 +2162,113 @@
"supportSending": "Verzenden...", "supportSending": "Verzenden...",
"supportSend": "Verzenden", "supportSend": "Verzenden",
"supportMessageSent": "Bericht verzonden!", "supportMessageSent": "Bericht verzonden!",
"supportWillContact": "We nemen binnenkort contact met u op!" "supportWillContact": "We nemen binnenkort contact met u op!",
"selectLogRetention": "Selecteer log retentie",
"terms": "Voorwaarden",
"privacy": "Privacy",
"security": "Beveiliging",
"docs": "Documentatie",
"deviceActivation": "Apparaat activatie",
"deviceCodeInvalidFormat": "Code moet 9 tekens bevatten (bijv. A1AJ-N5JD)",
"deviceCodeInvalidOrExpired": "Ongeldige of verlopen code",
"deviceCodeVerifyFailed": "Apparaatcode verifiëren mislukt",
"signedInAs": "Ingelogd als",
"deviceCodeEnterPrompt": "Voer de op het apparaat weergegeven code in",
"continue": "Doorgaan",
"deviceUnknownLocation": "Onbekende locatie",
"deviceAuthorizationRequested": "Deze autorisatie is aangevraagd bij {location} op {date}. Vertrouw je dit apparaat omdat het toegang tot het account zal krijgen.",
"deviceLabel": "Apparaat: {deviceName}",
"deviceWantsAccess": "wil toegang tot je account",
"deviceExistingAccess": "Bestaande toegang:",
"deviceFullAccess": "Volledige toegang tot uw account",
"deviceOrganizationsAccess": "Toegang tot alle organisaties waar uw account toegang tot heeft",
"deviceAuthorize": "Autoriseer {applicationName}",
"deviceConnected": "Apparaat verbonden!",
"deviceAuthorizedMessage": "Apparaat is gemachtigd om toegang te krijgen tot je account.",
"pangolinCloud": "Pangoline Cloud",
"viewDevices": "Bekijk apparaten",
"viewDevicesDescription": "Beheer uw aangesloten apparaten",
"noDevices": "Geen apparaten gevonden",
"dateCreated": "Datum aangemaakt",
"unnamedDevice": "Naamloos apparaat",
"deviceQuestionRemove": "Weet u zeker dat u dit apparaat wilt verwijderen?",
"deviceMessageRemove": "Deze actie kan niet ongedaan worden gemaakt.",
"deviceDeleteConfirm": "Apparaat verwijderen",
"deleteDevice": "Apparaat verwijderen",
"errorLoadingDevices": "Fout bij laden van apparaten",
"failedToLoadDevices": "Fout bij het laden van apparaten",
"deviceDeleted": "Apparaat verwijderd",
"deviceDeletedDescription": "Het apparaat is succesvol verwijderd.",
"errorDeletingDevice": "Fout bij verwijderen apparaat",
"failedToDeleteDevice": "Verwijderen van apparaat mislukt",
"showColumns": "Kolommen weergeven",
"hideColumns": "Kolommen verbergen",
"columnVisibility": "Zichtbaarheid kolommen",
"toggleColumn": "{columnName} kolom in-/uitschakelen",
"allColumns": "Alle kolommen",
"defaultColumns": "Standaard Kolommen",
"customizeView": "Weergave aanpassen",
"viewOptions": "Bekijk opties",
"selectAll": "Alles selecteren",
"selectNone": "Niets selecteren",
"selectedResources": "Geselecteerde bronnen",
"enableSelected": "Selectie inschakelen",
"disableSelected": "Selectie uitschakelen",
"checkSelectedStatus": "Controleer de status van de geselecteerde",
"clients": "Clienten",
"accessClientSelect": "Selecteer machine-clients",
"resourceClientDescription": "Machine clients die toegang hebben tot deze bron",
"regenerate": "Hergenereren",
"credentials": "Aanmeldgegevens",
"savecredentials": "Referenties opslaan",
"regenerateCredentialsButton": "Referenties opnieuw genereren",
"regenerateCredentials": "Referenties opnieuw genereren",
"generatedcredentials": "Gegenereerde referenties",
"copyandsavethesecredentials": "Kopieer en bewaar deze inloggegevens",
"copyandsavethesecredentialsdescription": "Deze referenties worden niet meer getoond nadat u deze pagina verlaat. Sla ze nu veilig op.",
"credentialsSaved": "Referenties opgeslagen",
"credentialsSavedDescription": "Referenties werden met succes opnieuw gegenereerd en opgeslagen.",
"credentialsSaveError": "Fout bij opslaan referenties",
"credentialsSaveErrorDescription": "Er is een fout opgetreden tijdens het opnieuw genereren en opslaan van de inloggegevens.",
"regenerateCredentialsWarning": "Het opnieuw genereren van inloggegevens zal de vorige ongeldig maken en een slechte verbinding veroorzaken. Zorg ervoor dat u alle configuraties die deze inloggegevens gebruiken bijwerkt.",
"confirm": "Bevestigen",
"regenerateCredentialsConfirmation": "Weet u zeker dat u de inloggegevens opnieuw wilt genereren?",
"endpoint": "Endpoint",
"Id": "Id",
"SecretKey": "Geheime sleutel",
"niceId": "Leuk ID",
"niceIdUpdated": "Leuke ID bijgewerkt",
"niceIdUpdatedSuccessfully": "Nice ID Updated Successfully",
"niceIdUpdateError": "Fout bij bijwerken ID Nice",
"niceIdUpdateErrorDescription": "Fout opgetreden tijdens het bijwerken van de ID van Nice.",
"niceIdCannotBeEmpty": "Nice ID mag niet leeg zijn",
"enterIdentifier": "ID invoeren",
"identifier": "Identifier",
"deviceLoginUseDifferentAccount": "Niet u? Gebruik een ander account.",
"deviceLoginDeviceRequestingAccessToAccount": "Een apparaat vraagt om toegang tot dit account.",
"noData": "Geen gegevens",
"machineClients": "Machine Clienten",
"install": "Installeren",
"run": "Uitvoeren",
"clientNameDescription": "De weergavenaam van de client die later gewijzigd kan worden.",
"clientAddress": "Klant adres (Geavanceerd)",
"setupFailedToFetchSubnet": "Kan standaard subnet niet ophalen",
"setupSubnetAdvanced": "Subnet (Geavanceerd)",
"setupSubnetDescription": "Het subnet van het interne netwerk van deze organisatie.",
"siteRegenerateAndDisconnect": "Hergenereer en verbreek verbinding",
"siteRegenerateAndDisconnectConfirmation": "Weet u zeker dat u de inloggegevens opnieuw wilt genereren en de verbinding met deze website wilt verbreken?",
"siteRegenerateAndDisconnectWarning": "Dit zal de inloggegevens opnieuw genereren en onmiddellijk de site ontkoppelen. De site zal opnieuw moeten worden gestart met de nieuwe inloggegevens.",
"siteRegenerateCredentialsConfirmation": "Weet u zeker dat u de referenties voor deze site opnieuw wilt genereren?",
"siteRegenerateCredentialsWarning": "Dit zal de inloggegevens opnieuw genereren. De site zal verbonden blijven totdat u het handmatig herstart en de nieuwe inloggegevens gebruikt.",
"clientRegenerateAndDisconnect": "Hergenereer en verbreek verbinding",
"clientRegenerateAndDisconnectConfirmation": "Weet u zeker dat u de inloggegevens opnieuw wilt genereren en de verbinding met deze client wilt verbreken?",
"clientRegenerateAndDisconnectWarning": "Dit zal de inloggegevens opnieuw genereren en onmiddellijk de verbinding verbreken. De client zal opnieuw moeten worden gestart met de nieuwe inloggegevens.",
"clientRegenerateCredentialsConfirmation": "Weet u zeker dat u de referenties voor deze client opnieuw wilt genereren?",
"clientRegenerateCredentialsWarning": "Dit zal de inloggegevens opnieuw genereren. De client zal verbonden blijven totdat u het handmatig herstart en de nieuwe inloggegevens gebruikt.",
"remoteExitNodeRegenerateAndDisconnect": "Hergenereer en verbreek verbinding",
"remoteExitNodeRegenerateAndDisconnectConfirmation": "Weet u zeker dat u de inloggegevens opnieuw wilt genereren en deze afstandsbediening wilt loskoppelen?",
"remoteExitNodeRegenerateAndDisconnectWarning": "Dit zal de referenties regenereren en onmiddellijk de externe exit node ontkoppelen. Het externe exit node zal opnieuw moeten worden gestart met de nieuwe referenties.",
"remoteExitNodeRegenerateCredentialsConfirmation": "Weet u zeker dat u de referenties voor deze externe exit node opnieuw wilt genereren?",
"remoteExitNodeRegenerateCredentialsWarning": "Dit zal de referenties opnieuw genereren. De remote exit node zal verbonden blijven totdat u deze handmatig herstart en de nieuwe referenties gebruikt.",
"agent": "Agent"
} }

View File

@@ -1,12 +1,12 @@
{ {
"setupCreate": "Utwórz swoją organizację, witrynę i zasoby", "setupCreate": "Utwórz organizację, witrynę i zasoby",
"setupNewOrg": "Nowa organizacja", "setupNewOrg": "Nowa organizacja",
"setupCreateOrg": "Utwórz organizację", "setupCreateOrg": "Utwórz organizację",
"setupCreateResources": "Utwórz Zasoby", "setupCreateResources": "Utwórz Zasoby",
"setupOrgName": "Nazwa organizacji", "setupOrgName": "Nazwa organizacji",
"orgDisplayName": "To jest wyświetlana nazwa Twojej organizacji.", "orgDisplayName": "To jest wyświetlana nazwa organizacji.",
"orgId": "Identyfikator organizacji", "orgId": "Identyfikator organizacji",
"setupIdentifierMessage": "To jest unikalny identyfikator Twojej organizacji. Jest to oddzielone od nazwy wyświetlanej.", "setupIdentifierMessage": "Jest to unikalny identyfikator organizacji.",
"setupErrorIdentifier": "Identyfikator organizacji jest już zajęty. Wybierz inny.", "setupErrorIdentifier": "Identyfikator organizacji jest już zajęty. Wybierz inny.",
"componentsErrorNoMemberCreate": "Nie jesteś obecnie członkiem żadnej organizacji. Aby rozpocząć, utwórz organizację.", "componentsErrorNoMemberCreate": "Nie jesteś obecnie członkiem żadnej organizacji. Aby rozpocząć, utwórz organizację.",
"componentsErrorNoMember": "Nie jesteś obecnie członkiem żadnej organizacji.", "componentsErrorNoMember": "Nie jesteś obecnie członkiem żadnej organizacji.",
@@ -50,7 +50,7 @@
"siteMessageRemove": "Po usunięciu witryna nie będzie już dostępna. Wszystkie cele związane z witryną zostaną również usunięte.", "siteMessageRemove": "Po usunięciu witryna nie będzie już dostępna. Wszystkie cele związane z witryną zostaną również usunięte.",
"siteQuestionRemove": "Czy na pewno chcesz usunąć witrynę z organizacji?", "siteQuestionRemove": "Czy na pewno chcesz usunąć witrynę z organizacji?",
"siteManageSites": "Zarządzaj stronami", "siteManageSites": "Zarządzaj stronami",
"siteDescription": "Zezwalaj na połączenie z siecią przez bezpieczne tunele", "siteDescription": "Tworzenie stron i zarządzanie nimi, aby włączyć połączenia z prywatnymi sieciami",
"siteCreate": "Utwórz witrynę", "siteCreate": "Utwórz witrynę",
"siteCreateDescription2": "Wykonaj poniższe kroki, aby utworzyć i połączyć nową witrynę", "siteCreateDescription2": "Wykonaj poniższe kroki, aby utworzyć i połączyć nową witrynę",
"siteCreateDescription": "Utwórz nową witrynę, aby rozpocząć łączenie zasobów", "siteCreateDescription": "Utwórz nową witrynę, aby rozpocząć łączenie zasobów",
@@ -87,32 +87,32 @@
"siteUpdated": "Strona zaktualizowana", "siteUpdated": "Strona zaktualizowana",
"siteUpdatedDescription": "Strona została zaktualizowana.", "siteUpdatedDescription": "Strona została zaktualizowana.",
"siteGeneralDescription": "Skonfiguruj ustawienia ogólne dla tej witryny", "siteGeneralDescription": "Skonfiguruj ustawienia ogólne dla tej witryny",
"siteSettingDescription": "Skonfiguruj ustawienia na swojej stronie", "siteSettingDescription": "Skonfiguruj ustawienia na stronie",
"siteSetting": "Ustawienia {siteName}", "siteSetting": "Ustawienia {siteName}",
"siteNewtTunnel": "Newt Tunnel (Zalecane)", "siteNewtTunnel": "Newt Site (Rekomendowane)",
"siteNewtTunnelDescription": "Łatwiejszy sposób na stworzenie punktu wejścia w sieci. Nie ma dodatkowej konfiguracji.", "siteNewtTunnelDescription": "Najprostszy sposób na stworzenie punktu wejścia w żadnej sieci. Nie ma dodatkowej konfiguracji.",
"siteWg": "Podstawowy WireGuard", "siteWg": "Podstawowy WireGuard",
"siteWgDescription": "Użyj dowolnego klienta WireGuard do utworzenia tunelu. Wymagana jest ręczna konfiguracja NAT.", "siteWgDescription": "Użyj dowolnego klienta WireGuard do utworzenia tunelu. Wymagana jest ręczna konfiguracja NAT.",
"siteWgDescriptionSaas": "Użyj dowolnego klienta WireGuard do utworzenia tunelu. Wymagana ręczna konfiguracja NAT. DZIAŁA TYLKO NA SAMODZIELNIE HOSTOWANYCH WĘZŁACH", "siteWgDescriptionSaas": "Użyj dowolnego klienta WireGuard do utworzenia tunelu. Wymagana ręczna konfiguracja NAT. DZIAŁA TYLKO NA SAMODZIELNIE HOSTOWANYCH WĘZŁACH",
"siteLocalDescription": "Tylko lokalne zasoby. Brak tunelu.", "siteLocalDescription": "Tylko lokalne zasoby. Brak tunelu.",
"siteLocalDescriptionSaas": "Tylko zasoby lokalne. Brak tunelu. Dostępne tylko w węzłach zdalnych.", "siteLocalDescriptionSaas": "Tylko zasoby lokalne. Brak tunelu. Dostępne tylko w węzłach zdalnych.",
"siteSeeAll": "Zobacz wszystkie witryny", "siteSeeAll": "Zobacz wszystkie witryny",
"siteTunnelDescription": "Określ jak chcesz połączyć się ze swoją stroną", "siteTunnelDescription": "Określ jak chcesz połączyć się z witryną",
"siteNewtCredentials": "Aktualne dane logowania", "siteNewtCredentials": "Dane logowania",
"siteNewtCredentialsDescription": "Oto jak Newt będzie uwierzytelniał się z serwerem", "siteNewtCredentialsDescription": "Oto jak witryna będzie uwierzytelniać się z serwerem",
"siteCredentialsSave": "Zapisz swoje poświadczenia", "siteCredentialsSave": "Zapisz dane logowania",
"siteCredentialsSaveDescription": "Możesz to zobaczyć tylko raz. Upewnij się, że skopiuj je do bezpiecznego miejsca.", "siteCredentialsSaveDescription": "Możesz to zobaczyć tylko raz. Upewnij się, że skopiuj je do bezpiecznego miejsca.",
"siteInfo": "Informacje o witrynie", "siteInfo": "Informacje o witrynie",
"status": "Status", "status": "Status",
"shareTitle": "Zarządzaj linkami udostępniania", "shareTitle": "Zarządzaj linkami udostępniania",
"shareDescription": "Utwórz linki, które można udostępnić, aby przyznać tymczasowy lub stały dostęp do Twoich zasobów", "shareDescription": "Utwórz linki do współdzielenia, aby przyznać tymczasowy lub stały dostęp do zasobów proxy",
"shareSearch": "Szukaj linków udostępnienia...", "shareSearch": "Szukaj linków udostępnienia...",
"shareCreate": "Utwórz link udostępniania", "shareCreate": "Utwórz link udostępniania",
"shareErrorDelete": "Nie udało się usunąć linku", "shareErrorDelete": "Nie udało się usunąć linku",
"shareErrorDeleteMessage": "Wystąpił błąd podczas usuwania linku", "shareErrorDeleteMessage": "Wystąpił błąd podczas usuwania linku",
"shareDeleted": "Link usunięty", "shareDeleted": "Link usunięty",
"shareDeletedDescription": "Link został usunięty", "shareDeletedDescription": "Link został usunięty",
"shareTokenDescription": "Twój token dostępu może być przekazywany na dwa sposoby: jako parametr zapytania lub w nagłówkach żądania. Muszą być przekazywane z klienta na każde żądanie uwierzytelnionego dostępu.", "shareTokenDescription": "Token dostępu może być przekazywany na dwa sposoby: jako parametr zapytania lub w nagłówkach żądania. Muszą być przekazywane z klienta na każde żądanie uwierzytelnionego dostępu.",
"accessToken": "Token dostępu", "accessToken": "Token dostępu",
"usageExamples": "Przykłady użycia", "usageExamples": "Przykłady użycia",
"tokenId": "Identyfikator tokena", "tokenId": "Identyfikator tokena",
@@ -121,7 +121,7 @@
"importantNote": "Ważna uwaga", "importantNote": "Ważna uwaga",
"shareImportantDescription": "Ze względów bezpieczeństwa zaleca się użycie nagłówków nad parametrami zapytania, jeśli to możliwe, ponieważ parametry zapytania mogą być zalogowane w dziennikach serwera lub historii przeglądarki.", "shareImportantDescription": "Ze względów bezpieczeństwa zaleca się użycie nagłówków nad parametrami zapytania, jeśli to możliwe, ponieważ parametry zapytania mogą być zalogowane w dziennikach serwera lub historii przeglądarki.",
"token": "Token", "token": "Token",
"shareTokenSecurety": "Chroń swój token dostępu. Nie udostępniaj go w publicznie dostępnych miejscach ani w kodzie po stronie klienta.", "shareTokenSecurety": "Zachowaj bezpieczny token dostępu. Nie udostępniaj go w publicznie dostępnych miejscach ani w kodzie po stronie klienta.",
"shareErrorFetchResource": "Nie udało się pobrać zasobów", "shareErrorFetchResource": "Nie udało się pobrać zasobów",
"shareErrorFetchResourceDescription": "Wystąpił błąd podczas pobierania zasobów", "shareErrorFetchResourceDescription": "Wystąpił błąd podczas pobierania zasobów",
"shareErrorCreate": "Nie udało się utworzyć linku udostępniania", "shareErrorCreate": "Nie udało się utworzyć linku udostępniania",
@@ -131,7 +131,7 @@
"expireIn": "Wygasa za", "expireIn": "Wygasa za",
"neverExpire": "Nigdy nie wygasa", "neverExpire": "Nigdy nie wygasa",
"shareExpireDescription": "Czas wygaśnięcia to jak długo link będzie mógł być użyty i zapewni dostęp do zasobu. Po tym czasie link nie będzie już działał, a użytkownicy, którzy użyli tego linku, utracą dostęp do zasobu.", "shareExpireDescription": "Czas wygaśnięcia to jak długo link będzie mógł być użyty i zapewni dostęp do zasobu. Po tym czasie link nie będzie już działał, a użytkownicy, którzy użyli tego linku, utracą dostęp do zasobu.",
"shareSeeOnce": "Możesz zobaczyć tylko ten link. Upewnij się, że go skopiowało.", "shareSeeOnce": "Możesz zobaczyć ten link tylko raz. Pamiętaj, aby go skopiować.",
"shareAccessHint": "Każdy z tym linkiem może uzyskać dostęp do zasobu. Podziel się nim ostrożnie.", "shareAccessHint": "Każdy z tym linkiem może uzyskać dostęp do zasobu. Podziel się nim ostrożnie.",
"shareTokenUsage": "Zobacz użycie tokenu dostępu", "shareTokenUsage": "Zobacz użycie tokenu dostępu",
"createLink": "Utwórz link", "createLink": "Utwórz link",
@@ -144,8 +144,10 @@
"expires": "Wygasa", "expires": "Wygasa",
"never": "Nigdy", "never": "Nigdy",
"shareErrorSelectResource": "Wybierz zasób", "shareErrorSelectResource": "Wybierz zasób",
"resourceTitle": "Zarządzaj zasobami", "proxyResourceTitle": "Zarządzaj zasobami publicznymi",
"resourceDescription": "Utwórz bezpieczne proxy do prywatnych aplikacji", "proxyResourceDescription": "Twórz i zarządzaj zasobami, które są publicznie dostępne w przeglądarce internetowej",
"clientResourceTitle": "Zarządzaj zasobami prywatnymi",
"clientResourceDescription": "Twórz i zarządzaj zasobami, które są dostępne tylko za pośrednictwem połączonego klienta",
"resourcesSearch": "Szukaj zasobów...", "resourcesSearch": "Szukaj zasobów...",
"resourceAdd": "Dodaj zasób", "resourceAdd": "Dodaj zasób",
"resourceErrorDelte": "Błąd podczas usuwania zasobu", "resourceErrorDelte": "Błąd podczas usuwania zasobu",
@@ -155,9 +157,9 @@
"resourceMessageRemove": "Po usunięciu, zasób nie będzie już dostępny. Wszystkie cele związane z zasobem zostaną również usunięte.", "resourceMessageRemove": "Po usunięciu, zasób nie będzie już dostępny. Wszystkie cele związane z zasobem zostaną również usunięte.",
"resourceQuestionRemove": "Czy na pewno chcesz usunąć zasób z organizacji?", "resourceQuestionRemove": "Czy na pewno chcesz usunąć zasób z organizacji?",
"resourceHTTP": "Zasób HTTPS", "resourceHTTP": "Zasób HTTPS",
"resourceHTTPDescription": "Proxy do Twojej aplikacji przez HTTPS, przy użyciu poddomeny lub domeny bazowej.", "resourceHTTPDescription": "Proxy żądania do aplikacji przez HTTPS przy użyciu poddomeny lub domeny bazowej.",
"resourceRaw": "Surowy zasób TCP/UDP", "resourceRaw": "Surowy zasób TCP/UDP",
"resourceRawDescription": "Proxy do aplikacji przez TCP/UDP przy użyciu numeru portu.", "resourceRawDescription": "Proxy żądania do aplikacji przez TCP/UDP przy użyciu numeru portu. Działa to tylko wtedy, gdy witryny są podłączone do węzłów.",
"resourceCreate": "Utwórz zasób", "resourceCreate": "Utwórz zasób",
"resourceCreateDescription": "Wykonaj poniższe kroki, aby utworzyć nowy zasób", "resourceCreateDescription": "Wykonaj poniższe kroki, aby utworzyć nowy zasób",
"resourceSeeAll": "Zobacz wszystkie zasoby", "resourceSeeAll": "Zobacz wszystkie zasoby",
@@ -171,22 +173,22 @@
"noCountryFound": "Nie znaleziono kraju.", "noCountryFound": "Nie znaleziono kraju.",
"siteSelectionDescription": "Ta strona zapewni połączenie z celem.", "siteSelectionDescription": "Ta strona zapewni połączenie z celem.",
"resourceType": "Typ zasobu", "resourceType": "Typ zasobu",
"resourceTypeDescription": "Określ jak chcesz uzyskać dostęp do swojego zasobu", "resourceTypeDescription": "Określ jak uzyskać dostęp do zasobu",
"resourceHTTPSSettings": "Ustawienia HTTPS", "resourceHTTPSSettings": "Ustawienia HTTPS",
"resourceHTTPSSettingsDescription": "Skonfiguruj jak twój zasób będzie dostępny przez HTTPS", "resourceHTTPSSettingsDescription": "Skonfiguruj jak zasób będzie dostępny przez HTTPS",
"domainType": "Typ domeny", "domainType": "Typ domeny",
"subdomain": "Poddomena", "subdomain": "Poddomena",
"baseDomain": "Bazowa domena", "baseDomain": "Bazowa domena",
"subdomnainDescription": "Poddomena, w której twój zasób będzie dostępny.", "subdomnainDescription": "Poddomena, w której zasób będzie dostępny.",
"resourceRawSettings": "Ustawienia TCP/UDP", "resourceRawSettings": "Ustawienia TCP/UDP",
"resourceRawSettingsDescription": "Skonfiguruj jak twój zasób będzie dostępny przez TCP/UDP", "resourceRawSettingsDescription": "Skonfiguruj jak zasób będzie dostępny przez TCP/UDP",
"protocol": "Protokół", "protocol": "Protokół",
"protocolSelect": "Wybierz protokół", "protocolSelect": "Wybierz protokół",
"resourcePortNumber": "Numer portu", "resourcePortNumber": "Numer portu",
"resourcePortNumberDescription": "Numer portu zewnętrznego do żądań proxy.", "resourcePortNumberDescription": "Numer portu zewnętrznego do żądań proxy.",
"cancel": "Anuluj", "cancel": "Anuluj",
"resourceConfig": "Snippety konfiguracji", "resourceConfig": "Snippety konfiguracji",
"resourceConfigDescription": "Skopiuj i wklej te fragmenty konfiguracji, aby skonfigurować swój zasób TCP/UDP", "resourceConfigDescription": "Skopiuj i wklej te fragmenty konfiguracji, aby skonfigurować zasób TCP/UDP",
"resourceAddEntrypoints": "Traefik: Dodaj punkty wejścia", "resourceAddEntrypoints": "Traefik: Dodaj punkty wejścia",
"resourceExposePorts": "Gerbil: Podnieś porty w Komponencie Dockera", "resourceExposePorts": "Gerbil: Podnieś porty w Komponencie Dockera",
"resourceLearnRaw": "Dowiedz się, jak skonfigurować zasoby TCP/UDP", "resourceLearnRaw": "Dowiedz się, jak skonfigurować zasoby TCP/UDP",
@@ -204,12 +206,12 @@
"rules": "Regulamin", "rules": "Regulamin",
"resourceSettingDescription": "Skonfiguruj ustawienia zasobu", "resourceSettingDescription": "Skonfiguruj ustawienia zasobu",
"resourceSetting": "Ustawienia {resourceName}", "resourceSetting": "Ustawienia {resourceName}",
"alwaysAllow": "Zawsze zezwalaj", "alwaysAllow": "Omijanie uwierzytelniania",
"alwaysDeny": "Zawsze odmawiaj", "alwaysDeny": "Blokuj dostęp",
"passToAuth": "Przekaż do Autoryzacji", "passToAuth": "Przekaż do Autoryzacji",
"orgSettingsDescription": "Skonfiguruj ustawienia ogólne swojej organizacji", "orgSettingsDescription": "Skonfiguruj ustawienia organizacji",
"orgGeneralSettings": "Ustawienia organizacji", "orgGeneralSettings": "Ustawienia organizacji",
"orgGeneralSettingsDescription": "Zarządzaj szczegółami swojej organizacji i konfiguracją", "orgGeneralSettingsDescription": "Zarządzaj szczegółami i konfiguracją organizacji",
"saveGeneralSettings": "Zapisz ustawienia ogólne", "saveGeneralSettings": "Zapisz ustawienia ogólne",
"saveSettings": "Zapisz ustawienia", "saveSettings": "Zapisz ustawienia",
"orgDangerZone": "Strefa zagrożenia", "orgDangerZone": "Strefa zagrożenia",
@@ -232,7 +234,7 @@
"orgMissing": "Brak ID organizacji", "orgMissing": "Brak ID organizacji",
"orgMissingMessage": "Nie można ponownie wygenerować zaproszenia bez ID organizacji.", "orgMissingMessage": "Nie można ponownie wygenerować zaproszenia bez ID organizacji.",
"accessUsersManage": "Zarządzaj użytkownikami", "accessUsersManage": "Zarządzaj użytkownikami",
"accessUsersDescription": "Zaproś użytkowników i dodaj je do ról do zarządzania dostępem do Twojej organizacji", "accessUsersDescription": "Zaproś użytkowników z dostępem do tej organizacji i zarządzaj nimi",
"accessUsersSearch": "Szukaj użytkowników...", "accessUsersSearch": "Szukaj użytkowników...",
"accessUserCreate": "Utwórz użytkownika", "accessUserCreate": "Utwórz użytkownika",
"accessUserRemove": "Usuń użytkownika", "accessUserRemove": "Usuń użytkownika",
@@ -241,13 +243,13 @@
"role": "Rola", "role": "Rola",
"nameRequired": "Nazwa jest wymagana", "nameRequired": "Nazwa jest wymagana",
"accessRolesManage": "Zarządzaj rolami", "accessRolesManage": "Zarządzaj rolami",
"accessRolesDescription": "Skonfiguruj role do zarządzania dostępem do Twojej organizacji", "accessRolesDescription": "Tworzenie ról dla użytkowników w organizacji i zarządzanie nimi",
"accessRolesSearch": "Szukaj ról...", "accessRolesSearch": "Szukaj ról...",
"accessRolesAdd": "Dodaj rolę", "accessRolesAdd": "Dodaj rolę",
"accessRoleDelete": "Usuń rolę", "accessRoleDelete": "Usuń rolę",
"description": "Opis", "description": "Opis",
"inviteTitle": "Otwórz zaproszenia", "inviteTitle": "Otwórz zaproszenia",
"inviteDescription": "Zarządzaj zaproszeniami dla innych użytkowników", "inviteDescription": "Zarządzaj zaproszeniami dla innych użytkowników do dołączenia do organizacji",
"inviteSearch": "Szukaj zaproszeń...", "inviteSearch": "Szukaj zaproszeń...",
"minutes": "Protokoły", "minutes": "Protokoły",
"hours": "Godziny", "hours": "Godziny",
@@ -261,13 +263,13 @@
"apiKeysErrorCreate": "Błąd podczas tworzenia klucza API", "apiKeysErrorCreate": "Błąd podczas tworzenia klucza API",
"apiKeysErrorSetPermission": "Błąd podczas ustawiania uprawnień", "apiKeysErrorSetPermission": "Błąd podczas ustawiania uprawnień",
"apiKeysCreate": "Generuj klucz API", "apiKeysCreate": "Generuj klucz API",
"apiKeysCreateDescription": "Wygeneruj nowy klucz API dla swojej organizacji", "apiKeysCreateDescription": "Wygeneruj nowy klucz API dla organizacji",
"apiKeysGeneralSettings": "Uprawnienia", "apiKeysGeneralSettings": "Uprawnienia",
"apiKeysGeneralSettingsDescription": "Określ, co ten klucz API może zrobić", "apiKeysGeneralSettingsDescription": "Określ, co ten klucz API może zrobić",
"apiKeysList": "Twój klucz API", "apiKeysList": "Nowy klucz API",
"apiKeysSave": "Zapisz swój klucz API", "apiKeysSave": "Zapisz klucz API",
"apiKeysSaveDescription": "Będziesz mógł zobaczyć to tylko raz. Upewnij się, że skopiujesz go w bezpieczne miejsce.", "apiKeysSaveDescription": "Będziesz mógł zobaczyć to tylko raz. Upewnij się, że skopiujesz go w bezpieczne miejsce.",
"apiKeysInfo": "Twój klucz API to:", "apiKeysInfo": "Kluczem API jest:",
"apiKeysConfirmCopy": "Skopiowałem klucz API", "apiKeysConfirmCopy": "Skopiowałem klucz API",
"generate": "Generuj", "generate": "Generuj",
"done": "Gotowe", "done": "Gotowe",
@@ -424,7 +426,7 @@
"userCreated": "Utworzono użytkownika", "userCreated": "Utworzono użytkownika",
"userCreatedDescription": "Użytkownik został pomyślnie utworzony.", "userCreatedDescription": "Użytkownik został pomyślnie utworzony.",
"userTypeInternal": "Użytkownik wewnętrzny", "userTypeInternal": "Użytkownik wewnętrzny",
"userTypeInternalDescription": "Zaproś użytkownika do bezpośredniego dołączenia do Twojej organizacji.", "userTypeInternalDescription": "Zaproś użytkownika do dołączenia do organizacji bezpośrednio.",
"userTypeExternal": "Użytkownik zewnętrzny", "userTypeExternal": "Użytkownik zewnętrzny",
"userTypeExternalDescription": "Utwórz użytkownika z zewnętrznym dostawcą tożsamości.", "userTypeExternalDescription": "Utwórz użytkownika z zewnętrznym dostawcą tożsamości.",
"accessUserCreateDescription": "Wykonaj poniższe kroki, aby utworzyć nowego użytkownika", "accessUserCreateDescription": "Wykonaj poniższe kroki, aby utworzyć nowego użytkownika",
@@ -436,6 +438,16 @@
"inviteEmailSent": "Wyślij email z zaproszeniem do użytkownika", "inviteEmailSent": "Wyślij email z zaproszeniem do użytkownika",
"inviteValid": "Ważne przez", "inviteValid": "Ważne przez",
"selectDuration": "Wybierz okres", "selectDuration": "Wybierz okres",
"selectResource": "Wybierz zasób",
"filterByResource": "Filtruj według zasobów",
"resetFilters": "Resetuj filtry",
"totalBlocked": "Żądania zablokowane przez Pangolina",
"totalRequests": "Wszystkich Żądań",
"requestsByCountry": "Żądania według kraju",
"requestsByDay": "Żądania wg dnia",
"blocked": "Zablokowane",
"allowed": "Dozwolone",
"topCountries": "Najlepsze kraje",
"accessRoleSelect": "Wybierz rolę", "accessRoleSelect": "Wybierz rolę",
"inviteEmailSentDescription": "Email został wysłany do użytkownika z linkiem dostępu poniżej. Musi on uzyskać dostęp do linku, aby zaakceptować zaproszenie.", "inviteEmailSentDescription": "Email został wysłany do użytkownika z linkiem dostępu poniżej. Musi on uzyskać dostęp do linku, aby zaakceptować zaproszenie.",
"inviteSentDescription": "Użytkownik został zaproszony. Musi uzyskać dostęp do poniższego linku, aby zaakceptować zaproszenie.", "inviteSentDescription": "Użytkownik został zaproszony. Musi uzyskać dostęp do poniższego linku, aby zaakceptować zaproszenie.",
@@ -458,13 +470,13 @@
"accessControlsSubmit": "Zapisz kontrole dostępu", "accessControlsSubmit": "Zapisz kontrole dostępu",
"roles": "Role", "roles": "Role",
"accessUsersRoles": "Zarządzaj użytkownikami i rolami", "accessUsersRoles": "Zarządzaj użytkownikami i rolami",
"accessUsersRolesDescription": "Zapraszaj użytkowników i dodawaj ich do ról, aby zarządzać dostępem do Twojej organizacji", "accessUsersRolesDescription": "Zapr użytkowników i dodaj je do ról do zarządzania dostępem do organizacji",
"key": "Klucz", "key": "Klucz",
"createdAt": "Utworzono", "createdAt": "Utworzono",
"proxyErrorInvalidHeader": "Nieprawidłowa wartość niestandardowego nagłówka hosta. Użyj formatu nazwy domeny lub zapisz pusty, aby usunąć niestandardowy nagłówek hosta.", "proxyErrorInvalidHeader": "Nieprawidłowa wartość niestandardowego nagłówka hosta. Użyj formatu nazwy domeny lub zapisz pusty, aby usunąć niestandardowy nagłówek hosta.",
"proxyErrorTls": "Nieprawidłowa nazwa serwera TLS. Użyj formatu nazwy domeny lub zapisz pusty, aby usunąć nazwę serwera TLS.", "proxyErrorTls": "Nieprawidłowa nazwa serwera TLS. Użyj formatu nazwy domeny lub zapisz pusty, aby usunąć nazwę serwera TLS.",
"proxyEnableSSL": "Włącz SSL", "proxyEnableSSL": "Włącz SSL",
"proxyEnableSSLDescription": "Włącz szyfrowanie SSL/TLS dla bezpiecznych połączeń HTTPS z Twoimi celami.", "proxyEnableSSLDescription": "Włącz szyfrowanie SSL/TLS dla bezpiecznych połączeń HTTPS z celami.",
"target": "Target", "target": "Target",
"configureTarget": "Konfiguruj Targety", "configureTarget": "Konfiguruj Targety",
"targetErrorFetch": "Nie udało się pobrać celów", "targetErrorFetch": "Nie udało się pobrać celów",
@@ -480,29 +492,29 @@
"targetsErrorUpdate": "Nie udało się zaktualizować celów", "targetsErrorUpdate": "Nie udało się zaktualizować celów",
"targetsErrorUpdateDescription": "Wystąpił błąd podczas aktualizacji celów", "targetsErrorUpdateDescription": "Wystąpił błąd podczas aktualizacji celów",
"targetTlsUpdate": "Ustawienia TLS zaktualizowane", "targetTlsUpdate": "Ustawienia TLS zaktualizowane",
"targetTlsUpdateDescription": "Twoje ustawienia TLS zostały pomyślnie zaktualizowane", "targetTlsUpdateDescription": "Ustawienia TLS zostały pomyślnie zaktualizowane",
"targetErrorTlsUpdate": "Nie udało się zaktualizować ustawień TLS", "targetErrorTlsUpdate": "Nie udało się zaktualizować ustawień TLS",
"targetErrorTlsUpdateDescription": "Wystąpił błąd podczas aktualizacji ustawień TLS", "targetErrorTlsUpdateDescription": "Wystąpił błąd podczas aktualizacji ustawień TLS",
"proxyUpdated": "Ustawienia proxy zaktualizowane", "proxyUpdated": "Ustawienia proxy zaktualizowane",
"proxyUpdatedDescription": "Twoje ustawienia proxy zostały pomyślnie zaktualizowane", "proxyUpdatedDescription": "Ustawienia proxy zostały pomyślnie zaktualizowane",
"proxyErrorUpdate": "Nie udało się zaktualizować ustawień proxy", "proxyErrorUpdate": "Nie udało się zaktualizować ustawień proxy",
"proxyErrorUpdateDescription": "Wystąpił błąd podczas aktualizacji ustawień proxy", "proxyErrorUpdateDescription": "Wystąpił błąd podczas aktualizacji ustawień proxy",
"targetAddr": "IP / Nazwa hosta", "targetAddr": "Host",
"targetPort": "Port", "targetPort": "Port",
"targetProtocol": "Protokół", "targetProtocol": "Protokół",
"targetTlsSettings": "Konfiguracja bezpiecznego połączenia", "targetTlsSettings": "Konfiguracja bezpiecznego połączenia",
"targetTlsSettingsDescription": "Skonfiguruj ustawienia SSL/TLS dla twojego zasobu", "targetTlsSettingsDescription": "Skonfiguruj ustawienia SSL/TLS dla zasobu",
"targetTlsSettingsAdvanced": "Zaawansowane ustawienia TLS", "targetTlsSettingsAdvanced": "Zaawansowane ustawienia TLS",
"targetTlsSni": "Nazwa serwera TLS", "targetTlsSni": "Nazwa serwera TLS",
"targetTlsSniDescription": "Nazwa serwera TLS do użycia dla SNI. Pozostaw puste, aby użyć domyślnej.", "targetTlsSniDescription": "Nazwa serwera TLS do użycia dla SNI. Pozostaw puste, aby użyć domyślnej.",
"targetTlsSubmit": "Zapisz ustawienia", "targetTlsSubmit": "Zapisz ustawienia",
"targets": "Konfiguracja celów", "targets": "Konfiguracja celów",
"targetsDescription": "Skonfiguruj cele do kierowania ruchu do usług zaplecza", "targetsDescription": "Ustaw cele dla ruchu na trasie w celu obsługi zaplecza",
"targetStickySessions": "Włącz sesje trwałe", "targetStickySessions": "Włącz sesje trwałe",
"targetStickySessionsDescription": "Utrzymuj połączenia na tym samym celu backendowym przez całą sesję.", "targetStickySessionsDescription": "Utrzymuj połączenia na tym samym celu backendowym przez całą sesję.",
"methodSelect": "Wybierz metodę", "methodSelect": "Wybierz metodę",
"targetSubmit": "Dodaj cel", "targetSubmit": "Dodaj cel",
"targetNoOne": "Ten zasób nie ma żadnych celów. Dodaj cel, aby skonfigurować miejsce wysyłania żądań do twojego backendu.", "targetNoOne": "Ten zasób nie ma żadnych celów. Dodaj cel do skonfigurowania adresów wysyłania żądań do backendu.",
"targetNoOneDescription": "Dodanie więcej niż jednego celu powyżej włączy równoważenie obciążenia.", "targetNoOneDescription": "Dodanie więcej niż jednego celu powyżej włączy równoważenie obciążenia.",
"targetsSubmit": "Zapisz cele", "targetsSubmit": "Zapisz cele",
"addTarget": "Dodaj cel", "addTarget": "Dodaj cel",
@@ -516,9 +528,11 @@
"targetCreatedDescription": "Cel został utworzony pomyślnie", "targetCreatedDescription": "Cel został utworzony pomyślnie",
"targetErrorCreate": "Nie udało się utworzyć celu", "targetErrorCreate": "Nie udało się utworzyć celu",
"targetErrorCreateDescription": "Wystąpił błąd podczas tworzenia celu", "targetErrorCreateDescription": "Wystąpił błąd podczas tworzenia celu",
"tlsServerName": "Nazwa serwera TLS",
"tlsServerNameDescription": "Nazwa serwera TLS do użycia dla SNI",
"save": "Zapisz", "save": "Zapisz",
"proxyAdditional": "Dodatkowe ustawienia proxy", "proxyAdditional": "Dodatkowe ustawienia proxy",
"proxyAdditionalDescription": "Skonfiguruj jak twój zasób obsługuje ustawienia proxy", "proxyAdditionalDescription": "Skonfiguruj sposób obsługi ustawień proxy",
"proxyCustomHeader": "Niestandardowy nagłówek hosta", "proxyCustomHeader": "Niestandardowy nagłówek hosta",
"proxyCustomHeaderDescription": "Nagłówek hosta do ustawienia podczas proxy żądań. Pozostaw puste, aby użyć domyślnego.", "proxyCustomHeaderDescription": "Nagłówek hosta do ustawienia podczas proxy żądań. Pozostaw puste, aby użyć domyślnego.",
"proxyAdditionalSubmit": "Zapisz ustawienia proxy", "proxyAdditionalSubmit": "Zapisz ustawienia proxy",
@@ -558,7 +572,7 @@
"rulesMatchType": "Typ dopasowania", "rulesMatchType": "Typ dopasowania",
"value": "Wartość", "value": "Wartość",
"rulesAbout": "O regułach", "rulesAbout": "O regułach",
"rulesAboutDescription": "Reguły pozwalają kontrolować dostęp do zasobu na podstawie zestawu kryteriów. Możesz tworzyć reguły zezwalające lub odmawiające dostępu na podstawie adresu IP lub ścieżki URL.", "rulesAboutDescription": "Reguły pozwalają kontrolować dostęp do zasobu na podstawie zestawu kryteriów. Możesz utworzyć reguły, aby zezwolić lub odmówić dostępu w oparciu o adres IP lub ścieżkę URL.",
"rulesActions": "Akcje", "rulesActions": "Akcje",
"rulesActionAlwaysAllow": "Zawsze zezwalaj: Pomiń wszystkie metody uwierzytelniania", "rulesActionAlwaysAllow": "Zawsze zezwalaj: Pomiń wszystkie metody uwierzytelniania",
"rulesActionAlwaysDeny": "Zawsze odmawiaj: Blokuj wszystkie żądania; nie można próbować uwierzytelniania", "rulesActionAlwaysDeny": "Zawsze odmawiaj: Blokuj wszystkie żądania; nie można próbować uwierzytelniania",
@@ -570,7 +584,7 @@
"rulesEnable": "Włącz reguły", "rulesEnable": "Włącz reguły",
"rulesEnableDescription": "Włącz lub wyłącz ocenę reguł dla tego zasobu", "rulesEnableDescription": "Włącz lub wyłącz ocenę reguł dla tego zasobu",
"rulesResource": "Konfiguracja reguł zasobu", "rulesResource": "Konfiguracja reguł zasobu",
"rulesResourceDescription": "Skonfiguruj reguły kontroli dostępu do zasobu", "rulesResourceDescription": "Skonfiguruj reguły, aby kontrolować dostęp do zasobu",
"ruleSubmit": "Dodaj regułę", "ruleSubmit": "Dodaj regułę",
"rulesNoOne": "Brak reguł. Dodaj regułę używając formularza.", "rulesNoOne": "Brak reguł. Dodaj regułę używając formularza.",
"rulesOrder": "Reguły są oceniane według priorytetu w kolejności rosnącej.", "rulesOrder": "Reguły są oceniane według priorytetu w kolejności rosnącej.",
@@ -586,7 +600,7 @@
"none": "Brak", "none": "Brak",
"unknown": "Nieznany", "unknown": "Nieznany",
"resources": "Zasoby", "resources": "Zasoby",
"resourcesDescription": "Zasoby proxy do aplikacji działających w Twojej sieci prywatnej. Utwórz zasób dla dowolnej usługi HTTP/HTTPS lub surowej TCP/UDP w Twojej sieci prywatnej. Każdy zasób musi być połączony z witryną, aby umożliwić prywatne, bezpieczne połączenie przez zaszyfrowany tunel WireGuard.", "resourcesDescription": "Zasoby to proxy do aplikacji działających w sieci prywatnej. Utwórz zasób dla dowolnej usługi HTTP/HTTPS lub surowej usługi TCP/UDP w sieci prywatnej. Każdy zasób musi być podłączony do witryny, aby umożliwić prywatną, bezpieczną łączność przez zaszyfrowany tunel WireGuard.",
"resourcesWireGuardConnect": "Bezpieczne połączenie z szyfrowaniem WireGuard", "resourcesWireGuardConnect": "Bezpieczne połączenie z szyfrowaniem WireGuard",
"resourcesMultipleAuthenticationMethods": "Skonfiguruj wiele metod uwierzytelniania", "resourcesMultipleAuthenticationMethods": "Skonfiguruj wiele metod uwierzytelniania",
"resourcesUsersRolesAccess": "Kontrola dostępu oparta na użytkownikach i rolach", "resourcesUsersRolesAccess": "Kontrola dostępu oparta na użytkownikach i rolach",
@@ -597,7 +611,7 @@
"resourceSelect": "Wybierz zasób", "resourceSelect": "Wybierz zasób",
"shareLinks": "Linki udostępniania", "shareLinks": "Linki udostępniania",
"share": "Linki do udostępniania", "share": "Linki do udostępniania",
"shareDescription2": "Twórz linki do udostępniania swoich zasobów. Linki zapewniają tymczasowy lub nieograniczony dostęp do zasobu. Podczas tworzenia linku możesz skonfigurować okres jego ważności.", "shareDescription2": "Utwórz linki do zasobów, które można współdzielić. Linki zapewniają tymczasowy lub nieograniczony dostęp do twojego zasobu. Możesz skonfigurować czas ważności linku, gdy go utworzysz.",
"shareEasyCreate": "Łatwe tworzenie i udostępnianie", "shareEasyCreate": "Łatwe tworzenie i udostępnianie",
"shareConfigurableExpirationDuration": "Konfigurowalny okres ważności", "shareConfigurableExpirationDuration": "Konfigurowalny okres ważności",
"shareSecureAndRevocable": "Bezpieczne i odwoływalne", "shareSecureAndRevocable": "Bezpieczne i odwoływalne",
@@ -607,19 +621,19 @@
"unknownCommand": "Nieznane polecenie", "unknownCommand": "Nieznane polecenie",
"newtErrorFetchReleases": "Nie udało się pobrać informacji o wydaniu: {err}", "newtErrorFetchReleases": "Nie udało się pobrać informacji o wydaniu: {err}",
"newtErrorFetchLatest": "Błąd podczas pobierania najnowszego wydania: {err}", "newtErrorFetchLatest": "Błąd podczas pobierania najnowszego wydania: {err}",
"newtEndpoint": "Punkt końcowy Newt", "newtEndpoint": "Endpoint",
"newtId": "ID Newt", "newtId": "ID",
"newtSecretKey": "Klucz tajny Newt", "newtSecretKey": "Sekret",
"architecture": "Architektura", "architecture": "Architektura",
"sites": "Witryny", "sites": "Witryny",
"siteWgAnyClients": "Użyj dowolnego klienta WireGuard do połączenia. Będziesz musiał adresować swoje zasoby wewnętrzne używając IP peera.", "siteWgAnyClients": "Użyj dowolnego klienta WireGuard, aby się połącz. Będziesz musiał przekierować wewnętrzne zasoby za pomocą adresu IP.",
"siteWgCompatibleAllClients": "Kompatybilny ze wszystkimi klientami WireGuard", "siteWgCompatibleAllClients": "Kompatybilny ze wszystkimi klientami WireGuard",
"siteWgManualConfigurationRequired": "Wymagana konfiguracja ręczna", "siteWgManualConfigurationRequired": "Wymagana konfiguracja ręczna",
"userErrorNotAdminOrOwner": "Użytkownik nie jest administratorem ani właścicielem", "userErrorNotAdminOrOwner": "Użytkownik nie jest administratorem ani właścicielem",
"pangolinSettings": "Ustawienia - Pangolin", "pangolinSettings": "Ustawienia - Pangolin",
"accessRoleYour": "Twoja rola:", "accessRoleYour": "Twoja rola:",
"accessRoleSelect2": "Wybierz rolę", "accessRoleSelect2": "Wybierz role",
"accessUserSelect": "Wybierz użytkownika", "accessUserSelect": "Wybierz użytkowników",
"otpEmailEnter": "Wprowadź adres e-mail", "otpEmailEnter": "Wprowadź adres e-mail",
"otpEmailEnterDescription": "Naciśnij enter, aby dodać adres e-mail po wpisaniu go w polu.", "otpEmailEnterDescription": "Naciśnij enter, aby dodać adres e-mail po wpisaniu go w polu.",
"otpEmailErrorInvalid": "Nieprawidłowy adres e-mail. Znak wieloznaczny (*) musi być całą częścią lokalną.", "otpEmailErrorInvalid": "Nieprawidłowy adres e-mail. Znak wieloznaczny (*) musi być całą częścią lokalną.",
@@ -671,7 +685,7 @@
"resourcePincodeSetupTitle": "Ustaw kod PIN", "resourcePincodeSetupTitle": "Ustaw kod PIN",
"resourcePincodeSetupTitleDescription": "Ustaw kod PIN, aby chronić ten zasób", "resourcePincodeSetupTitleDescription": "Ustaw kod PIN, aby chronić ten zasób",
"resourceRoleDescription": "Administratorzy zawsze mają dostęp do tego zasobu.", "resourceRoleDescription": "Administratorzy zawsze mają dostęp do tego zasobu.",
"resourceUsersRoles": "Użytkownicy i role", "resourceUsersRoles": "Kontrola dostępu",
"resourceUsersRolesDescription": "Skonfiguruj, którzy użytkownicy i role mogą odwiedzać ten zasób", "resourceUsersRolesDescription": "Skonfiguruj, którzy użytkownicy i role mogą odwiedzać ten zasób",
"resourceUsersRolesSubmit": "Zapisz użytkowników i role", "resourceUsersRolesSubmit": "Zapisz użytkowników i role",
"resourceWhitelistSave": "Zapisano pomyślnie", "resourceWhitelistSave": "Zapisano pomyślnie",
@@ -702,6 +716,7 @@
"resourceTransferSubmit": "Przenieś zasób", "resourceTransferSubmit": "Przenieś zasób",
"siteDestination": "Witryna docelowa", "siteDestination": "Witryna docelowa",
"searchSites": "Szukaj witryn", "searchSites": "Szukaj witryn",
"countries": "Kraje",
"accessRoleCreate": "Utwórz rolę", "accessRoleCreate": "Utwórz rolę",
"accessRoleCreateDescription": "Utwórz nową rolę aby zgrupować użytkowników i zarządzać ich uprawnieniami.", "accessRoleCreateDescription": "Utwórz nową rolę aby zgrupować użytkowników i zarządzać ich uprawnieniami.",
"accessRoleCreateSubmit": "Utwórz rolę", "accessRoleCreateSubmit": "Utwórz rolę",
@@ -766,15 +781,15 @@
"idpOidcConfigure": "Konfiguracja OAuth2/OIDC", "idpOidcConfigure": "Konfiguracja OAuth2/OIDC",
"idpOidcConfigureDescription": "Skonfiguruj punkty końcowe i poświadczenia dostawcy OAuth2/OIDC", "idpOidcConfigureDescription": "Skonfiguruj punkty końcowe i poświadczenia dostawcy OAuth2/OIDC",
"idpClientId": "ID klienta", "idpClientId": "ID klienta",
"idpClientIdDescription": "ID klienta OAuth2 od twojego dostawcy tożsamości", "idpClientIdDescription": "Identyfikator klienta OAuth2 od dostawcy tożsamości",
"idpClientSecret": "Sekret klienta", "idpClientSecret": "Sekret klienta",
"idpClientSecretDescription": "Sekret klienta OAuth2 od twojego dostawcy tożsamości", "idpClientSecretDescription": "Sekret klienta OAuth2 od dostawcy tożsamości",
"idpAuthUrl": "URL autoryzacji", "idpAuthUrl": "URL autoryzacji",
"idpAuthUrlDescription": "URL punktu końcowego autoryzacji OAuth2", "idpAuthUrlDescription": "URL punktu końcowego autoryzacji OAuth2",
"idpTokenUrl": "URL tokena", "idpTokenUrl": "URL tokena",
"idpTokenUrlDescription": "URL punktu końcowego tokena OAuth2", "idpTokenUrlDescription": "URL punktu końcowego tokena OAuth2",
"idpOidcConfigureAlert": "Ważna informacja", "idpOidcConfigureAlert": "Ważna informacja",
"idpOidcConfigureAlertDescription": "Po utworzeniu dostawcy tożsamości, będziesz musi skonfigurować URL wywołania zwrotnego w ustawieniach swojego dostawcy tożsamości. URL wywołania zwrotnego zostanie podany po pomyślnym utworzeniu.", "idpOidcConfigureAlertDescription": "Po utworzeniu dostawcy tożsamości, musisz skonfigurować adres URL wywołania zwrotnego w ustawieniach dostawcy tożsamości. Adres zwrotny zostanie podany po pomyślnym utworzeniu.",
"idpToken": "Konfiguracja tokena", "idpToken": "Konfiguracja tokena",
"idpTokenDescription": "Skonfiguruj jak wydobywać informacje o użytkowniku z tokena ID", "idpTokenDescription": "Skonfiguruj jak wydobywać informacje o użytkowniku z tokena ID",
"idpJmespathAbout": "O JMESPath", "idpJmespathAbout": "O JMESPath",
@@ -791,7 +806,7 @@
"idpSubmit": "Utwórz dostawcę tożsamości", "idpSubmit": "Utwórz dostawcę tożsamości",
"orgPolicies": "Polityki organizacji", "orgPolicies": "Polityki organizacji",
"idpSettings": "Ustawienia {idpName}", "idpSettings": "Ustawienia {idpName}",
"idpCreateSettingsDescription": "Skonfiguruj ustawienia dla swojego dostawcy tożsamości", "idpCreateSettingsDescription": "Skonfiguruj ustawienia dostawcy tożsamości",
"roleMapping": "Mapowanie ról", "roleMapping": "Mapowanie ról",
"orgMapping": "Mapowanie organizacji", "orgMapping": "Mapowanie organizacji",
"orgPoliciesSearch": "Szukaj polityk organizacji...", "orgPoliciesSearch": "Szukaj polityk organizacji...",
@@ -826,7 +841,7 @@
"idpUpdatedDescription": "Dostawca tożsamości został pomyślnie zaktualizowany", "idpUpdatedDescription": "Dostawca tożsamości został pomyślnie zaktualizowany",
"redirectUrl": "URL przekierowania", "redirectUrl": "URL przekierowania",
"redirectUrlAbout": "O URL przekierowania", "redirectUrlAbout": "O URL przekierowania",
"redirectUrlAboutDescription": "Jest to URL, na który użytkownicy zostaną przekierowani po uwierzytelnieniu. Musisz skonfigurować ten URL w ustawieniach swojego dostawcy tożsamości.", "redirectUrlAboutDescription": "Jest to adres URL, na który użytkownicy zostaną przekierowani po uwierzytelnieniu. Musisz skonfigurować ten adres URL w ustawieniach dostawcy tożsamości.",
"pangolinAuth": "Autoryzacja - Pangolin", "pangolinAuth": "Autoryzacja - Pangolin",
"verificationCodeLengthRequirements": "Twój kod weryfikacyjny musi mieć 8 znaków.", "verificationCodeLengthRequirements": "Twój kod weryfikacyjny musi mieć 8 znaków.",
"errorOccurred": "Wystąpił błąd", "errorOccurred": "Wystąpił błąd",
@@ -909,6 +924,10 @@
"passwordResetSent": "Wyślemy kod resetowania hasła na ten adres e-mail.", "passwordResetSent": "Wyślemy kod resetowania hasła na ten adres e-mail.",
"passwordResetCode": "Kod resetowania", "passwordResetCode": "Kod resetowania",
"passwordResetCodeDescription": "Sprawdź swój e-mail, aby znaleźć kod resetowania.", "passwordResetCodeDescription": "Sprawdź swój e-mail, aby znaleźć kod resetowania.",
"generatePasswordResetCode": "Generuj kod resetowania hasła",
"passwordResetCodeGenerated": "Wygenerowany kod resetowania hasła",
"passwordResetCodeGeneratedDescription": "Udostępnij ten kod użytkownikowi. Mogą go użyć do zresetowania hasła.",
"passwordResetUrl": "Reset URL",
"passwordNew": "Nowe hasło", "passwordNew": "Nowe hasło",
"passwordNewConfirm": "Potwierdź nowe hasło", "passwordNewConfirm": "Potwierdź nowe hasło",
"changePassword": "Zmień hasło", "changePassword": "Zmień hasło",
@@ -926,6 +945,9 @@
"pincodeAuth": "Kod uwierzytelniający", "pincodeAuth": "Kod uwierzytelniający",
"pincodeSubmit2": "Wyślij kod", "pincodeSubmit2": "Wyślij kod",
"passwordResetSubmit": "Zażądaj resetowania", "passwordResetSubmit": "Zażądaj resetowania",
"passwordResetAlreadyHaveCode": "Wprowadź kod resetowania hasła",
"passwordResetSmtpRequired": "Skontaktuj się z administratorem",
"passwordResetSmtpRequiredDescription": "Aby zresetować hasło, wymagany jest kod resetowania hasła. Skontaktuj się z administratorem.",
"passwordBack": "Powrót do hasła", "passwordBack": "Powrót do hasła",
"loginBack": "Wróć do logowania", "loginBack": "Wróć do logowania",
"signup": "Zarejestruj się", "signup": "Zarejestruj się",
@@ -1091,12 +1113,15 @@
"actionListSiteResources": "Lista zasobów strony", "actionListSiteResources": "Lista zasobów strony",
"actionUpdateSiteResource": "Aktualizuj zasób strony", "actionUpdateSiteResource": "Aktualizuj zasób strony",
"actionListInvitations": "Lista zaproszeń", "actionListInvitations": "Lista zaproszeń",
"actionExportLogs": "Eksportuj dzienniki",
"actionViewLogs": "Zobacz dzienniki",
"noneSelected": "Nie wybrano", "noneSelected": "Nie wybrano",
"orgNotFound2": "Nie znaleziono organizacji.", "orgNotFound2": "Nie znaleziono organizacji.",
"searchProgress": "Szukaj...", "searchProgress": "Szukaj...",
"create": "Utwórz", "create": "Utwórz",
"orgs": "Organizacje", "orgs": "Organizacje",
"loginError": "Wystąpił błąd podczas logowania", "loginError": "Wystąpił błąd podczas logowania",
"loginRequiredForDevice": "Logowanie jest wymagane do uwierzytelnienia urządzenia.",
"passwordForgot": "Zapomniałeś hasła?", "passwordForgot": "Zapomniałeś hasła?",
"otpAuth": "Uwierzytelnianie dwuskładnikowe", "otpAuth": "Uwierzytelnianie dwuskładnikowe",
"otpAuthDescription": "Wprowadź kod z aplikacji uwierzytelniającej lub jeden z jednorazowych kodów zapasowych.", "otpAuthDescription": "Wprowadź kod z aplikacji uwierzytelniającej lub jeden z jednorazowych kodów zapasowych.",
@@ -1151,37 +1176,47 @@
"sidebarHome": "Strona główna", "sidebarHome": "Strona główna",
"sidebarSites": "Witryny", "sidebarSites": "Witryny",
"sidebarResources": "Zasoby", "sidebarResources": "Zasoby",
"sidebarProxyResources": "Publiczne",
"sidebarClientResources": "Prywatny",
"sidebarAccessControl": "Kontrola dostępu", "sidebarAccessControl": "Kontrola dostępu",
"sidebarLogsAndAnalytics": "Logi i Analityki",
"sidebarUsers": "Użytkownicy", "sidebarUsers": "Użytkownicy",
"sidebarAdmin": "Administrator",
"sidebarInvitations": "Zaproszenia", "sidebarInvitations": "Zaproszenia",
"sidebarRoles": "Role", "sidebarRoles": "Role",
"sidebarShareableLinks": "Linki do udostępnienia", "sidebarShareableLinks": "Linki",
"sidebarApiKeys": "Klucze API", "sidebarApiKeys": "Klucze API",
"sidebarSettings": "Ustawienia", "sidebarSettings": "Ustawienia",
"sidebarAllUsers": "Wszyscy użytkownicy", "sidebarAllUsers": "Wszyscy użytkownicy",
"sidebarIdentityProviders": "Dostawcy tożsamości", "sidebarIdentityProviders": "Dostawcy tożsamości",
"sidebarLicense": "Licencja", "sidebarLicense": "Licencja",
"sidebarClients": "Klientami", "sidebarClients": "Klientami",
"sidebarUserDevices": "Użytkownicy",
"sidebarMachineClients": "Maszyny",
"sidebarDomains": "Domeny", "sidebarDomains": "Domeny",
"sidebarGeneral": "Ogólny",
"sidebarLogAndAnalytics": "Dziennik & Analityka",
"sidebarBluePrints": "Schematy", "sidebarBluePrints": "Schematy",
"sidebarOrganization": "Organizacja",
"sidebarLogsAnalytics": "Analityka",
"blueprints": "Schematy", "blueprints": "Schematy",
"blueprintsDescription": "Plany to deklaratywne konfiguracje YAML, które definiują twoje zasoby i ich ustawienia", "blueprintsDescription": "Zastosuj konfiguracje deklaracyjne i wyświetl poprzednie operacje",
"blueprintAdd": "Dodaj schemat", "blueprintAdd": "Dodaj schemat",
"blueprintGoBack": "Zobacz wszystkie schematy", "blueprintGoBack": "Zobacz wszystkie schematy",
"blueprintCreate": "Utwórz schemat", "blueprintCreate": "Utwórz schemat",
"blueprintCreateDescription2": "Wykonaj poniższe kroki, aby utworzyć i zastosować nowy schemat", "blueprintCreateDescription2": "Wykonaj poniższe kroki, aby utworzyć i zastosować nowy schemat",
"blueprintDetails": "Szczegóły projektu", "blueprintDetails": "Szczegóły Projektu",
"blueprintDetailsDescription": "Zobacz szczegóły uruchomienia schematu", "blueprintDetailsDescription": "Zobacz wynik zastosowanego schematu i wszelkie błędy, które wystąpiły",
"blueprintInfo": "Informacje o projekcie", "blueprintInfo": "Informacje o projekcie",
"message": "Wiadomość", "message": "Wiadomość",
"blueprintContentsDescription": "Zdefiniuj zawartość YAML opisującą Twoją infrastrukturę", "blueprintContentsDescription": "Zdefiniuj zawartość YAML opisującą infrastrukturę",
"blueprintErrorCreateDescription": "Wystąpił błąd podczas stosowania schematu", "blueprintErrorCreateDescription": "Wystąpił błąd podczas stosowania schematu",
"blueprintErrorCreate": "Błąd podczas tworzenia schematu", "blueprintErrorCreate": "Błąd podczas tworzenia schematu",
"searchBlueprintProgress": "Szukaj schematów...", "searchBlueprintProgress": "Szukaj schematów...",
"appliedAt": "Zastosowano", "appliedAt": "Zastosowano",
"source": "Źródło", "source": "Źródło",
"contents": "Treść", "contents": "Treść",
"parsedContents": "Przetworzona zawartość", "parsedContents": "Przetworzona zawartość (tylko do odczytu)",
"enableDockerSocket": "Włącz schemat dokera", "enableDockerSocket": "Włącz schemat dokera",
"enableDockerSocketDescription": "Włącz etykietowanie kieszeni dokującej dla etykiet schematów. Ścieżka do gniazda musi być dostarczona do Newt.", "enableDockerSocketDescription": "Włącz etykietowanie kieszeni dokującej dla etykiet schematów. Ścieżka do gniazda musi być dostarczona do Newt.",
"enableDockerSocketLink": "Dowiedz się więcej", "enableDockerSocketLink": "Dowiedz się więcej",
@@ -1230,15 +1265,15 @@
"loading": "Ładowanie", "loading": "Ładowanie",
"restart": "Uruchom ponownie", "restart": "Uruchom ponownie",
"domains": "Domeny", "domains": "Domeny",
"domainsDescription": "Zarządzaj domenami swojej organizacji", "domainsDescription": "Tworzenie domen dostępnych w organizacji i zarządzanie nimi",
"domainsSearch": "Szukaj domen...", "domainsSearch": "Szukaj domen...",
"domainAdd": "Dodaj domenę", "domainAdd": "Dodaj domenę",
"domainAddDescription": "Zarejestruj nową domenę w swojej organizacji", "domainAddDescription": "Zarejestruj nową domenę w organizacji",
"domainCreate": "Utwórz domenę", "domainCreate": "Utwórz domenę",
"domainCreatedDescription": "Domena utworzona pomyślnie", "domainCreatedDescription": "Domena utworzona pomyślnie",
"domainDeletedDescription": "Domena usunięta pomyślnie", "domainDeletedDescription": "Domena usunięta pomyślnie",
"domainQuestionRemove": "Czy na pewno chcesz usunąć domenę ze swojego konta?", "domainQuestionRemove": "Czy na pewno chcesz usunąć domenę?",
"domainMessageRemove": "Po usunięciu domena nie będzie już powiązana z twoim kontem.", "domainMessageRemove": "Po usunięciu, domena nie będzie już powiązana z organizacją.",
"domainConfirmDelete": "Potwierdź usunięcie domeny", "domainConfirmDelete": "Potwierdź usunięcie domeny",
"domainDelete": "Usuń domenę", "domainDelete": "Usuń domenę",
"domain": "Domena", "domain": "Domena",
@@ -1257,7 +1292,7 @@
"pending": "Oczekuje", "pending": "Oczekuje",
"sidebarBilling": "Fakturowanie", "sidebarBilling": "Fakturowanie",
"billing": "Fakturowanie", "billing": "Fakturowanie",
"orgBillingDescription": "Zarządzaj swoimi informacjami rozliczeniowymi i subskrypcjami", "orgBillingDescription": "Zarządzaj informacjami rozliczeniowymi i subskrypcjami",
"github": "GitHub", "github": "GitHub",
"pangolinHosted": "Logo Pangolin", "pangolinHosted": "Logo Pangolin",
"fossorial": "Fossorial", "fossorial": "Fossorial",
@@ -1279,6 +1314,15 @@
"settingsErrorUpdateDescription": "Wystąpił błąd podczas aktualizacji ustawień", "settingsErrorUpdateDescription": "Wystąpił błąd podczas aktualizacji ustawień",
"sidebarCollapse": "Zwiń", "sidebarCollapse": "Zwiń",
"sidebarExpand": "Rozwiń", "sidebarExpand": "Rozwiń",
"productUpdateMoreInfo": "{noOfUpdates} więcej aktualizacji",
"productUpdateInfo": "Aktualizacje {noOfUpdates}",
"productUpdateWhatsNew": "Co nowego",
"productUpdateTitle": "Aktualizacje produktu",
"productUpdateEmpty": "Brak aktualizacji",
"dismissAll": "Zamknij wszystkie",
"pangolinUpdateAvailable": "Dostępna aktualizacja",
"pangolinUpdateAvailableInfo": "Wersja {version} jest gotowa do zainstalowania",
"pangolinUpdateAvailableReleaseNotes": "Zobacz informacje o wydaniu",
"newtUpdateAvailable": "Dostępna aktualizacja", "newtUpdateAvailable": "Dostępna aktualizacja",
"newtUpdateAvailableInfo": "Nowa wersja Newt jest dostępna. Prosimy o aktualizację do najnowszej wersji dla najlepszej pracy.", "newtUpdateAvailableInfo": "Nowa wersja Newt jest dostępna. Prosimy o aktualizację do najnowszej wersji dla najlepszej pracy.",
"domainPickerEnterDomain": "Domena", "domainPickerEnterDomain": "Domena",
@@ -1291,7 +1335,7 @@
"domainPickerSortAsc": "A-Z", "domainPickerSortAsc": "A-Z",
"domainPickerSortDesc": "Z-A", "domainPickerSortDesc": "Z-A",
"domainPickerCheckingAvailability": "Sprawdzanie dostępności...", "domainPickerCheckingAvailability": "Sprawdzanie dostępności...",
"domainPickerNoMatchingDomains": "Nie znaleziono pasujących domen. Spróbuj innej domeny lub sprawdź ustawienia domeny swojej organizacji.", "domainPickerNoMatchingDomains": "Nie znaleziono pasujących domen. Wypróbuj inną domenę lub sprawdź ustawienia domeny organizacji.",
"domainPickerOrganizationDomains": "Domeny organizacji", "domainPickerOrganizationDomains": "Domeny organizacji",
"domainPickerProvidedDomains": "Dostarczone domeny", "domainPickerProvidedDomains": "Dostarczone domeny",
"domainPickerSubdomain": "Subdomena: {subdomain}", "domainPickerSubdomain": "Subdomena: {subdomain}",
@@ -1336,9 +1380,9 @@
"billingPortalError": "Błąd Portalu", "billingPortalError": "Błąd Portalu",
"billingDataUsageInfo": "Jesteś obciążony za wszystkie dane przesyłane przez bezpieczne tunele, gdy jesteś podłączony do chmury. Obejmuje to zarówno ruch przychodzący, jak i wychodzący we wszystkich Twoich witrynach. Gdy osiągniesz swój limit, twoje strony zostaną rozłączone, dopóki nie zaktualizujesz planu lub nie ograniczysz użycia. Dane nie będą naliczane przy użyciu węzłów.", "billingDataUsageInfo": "Jesteś obciążony za wszystkie dane przesyłane przez bezpieczne tunele, gdy jesteś podłączony do chmury. Obejmuje to zarówno ruch przychodzący, jak i wychodzący we wszystkich Twoich witrynach. Gdy osiągniesz swój limit, twoje strony zostaną rozłączone, dopóki nie zaktualizujesz planu lub nie ograniczysz użycia. Dane nie będą naliczane przy użyciu węzłów.",
"billingOnlineTimeInfo": "Opłata zależy od tego, jak długo twoje strony pozostają połączone z chmurą. Na przykład 44,640 minut oznacza jedną stronę działającą 24/7 przez cały miesiąc. Kiedy osiągniesz swój limit, twoje strony zostaną rozłączone, dopóki nie zaktualizujesz planu lub nie zmniejsz jego wykorzystania. Czas nie będzie naliczany przy użyciu węzłów.", "billingOnlineTimeInfo": "Opłata zależy od tego, jak długo twoje strony pozostają połączone z chmurą. Na przykład 44,640 minut oznacza jedną stronę działającą 24/7 przez cały miesiąc. Kiedy osiągniesz swój limit, twoje strony zostaną rozłączone, dopóki nie zaktualizujesz planu lub nie zmniejsz jego wykorzystania. Czas nie będzie naliczany przy użyciu węzłów.",
"billingUsersInfo": "Jesteś obciążany za każdego użytkownika w twojej organizacji. Rozliczenia są obliczane codziennie na podstawie liczby aktywnych kont użytkowników w twojej organizacji.", "billingUsersInfo": "Opłata za każdego użytkownika w organizacji. Płatność jest obliczana codziennie na podstawie liczby aktywnych kont użytkowników w Twojej organizacji.",
"billingDomainInfo": "Jesteś obciążany za każdą domenę w twojej organizacji. Rozliczenia są obliczane codziennie na podstawie liczby aktywnych kont domen w twojej organizacji.", "billingDomainInfo": "Opłata za każdą domenę w organizacji. Płatność jest obliczana codziennie na podstawie liczby aktywnych kont domen w Twojej organizacji.",
"billingRemoteExitNodesInfo": "Jesteś obciążany za każdy zarządzany węzeł w twojej organizacji. Rozliczenia są obliczane codziennie na podstawie liczby aktywnych zarządzanych węzłów w twojej organizacji.", "billingRemoteExitNodesInfo": "Opłata za każdy zarządzany węzeł w organizacji. Płatność jest obliczana codziennie na podstawie liczby aktywnych zarządzanych węzłów w Twojej organizacji.",
"domainNotFound": "Nie znaleziono domeny", "domainNotFound": "Nie znaleziono domeny",
"domainNotFoundDescription": "Zasób jest wyłączony, ponieważ domena nie istnieje już w naszym systemie. Proszę ustawić nową domenę dla tego zasobu.", "domainNotFoundDescription": "Zasób jest wyłączony, ponieważ domena nie istnieje już w naszym systemie. Proszę ustawić nową domenę dla tego zasobu.",
"failed": "Niepowodzenie", "failed": "Niepowodzenie",
@@ -1421,29 +1465,32 @@
"and": "oraz", "and": "oraz",
"privacyPolicy": "polityką prywatności" "privacyPolicy": "polityką prywatności"
}, },
"signUpMarketing": {
"keepMeInTheLoop": "Zachowaj mnie w pętli z wiadomościami, aktualizacjami i nowymi funkcjami przez e-mail."
},
"siteRequired": "Strona jest wymagana.", "siteRequired": "Strona jest wymagana.",
"olmTunnel": "Tunel Olm", "olmTunnel": "Tunel Olm",
"olmTunnelDescription": "Użyj Olm do łączności klienta", "olmTunnelDescription": "Użyj Olm do łączności klienta",
"errorCreatingClient": "Błąd podczas tworzenia klienta", "errorCreatingClient": "Błąd podczas tworzenia klienta",
"clientDefaultsNotFound": "Nie znaleziono domyślnych ustawień klienta", "clientDefaultsNotFound": "Nie znaleziono domyślnych ustawień klienta",
"createClient": "Utwórz Klienta", "createClient": "Utwórz Klienta",
"createClientDescription": "Utwórz nowego klienta do łączenia się z Twoimi witrynami", "createClientDescription": "Utwórz nowego klienta, aby uzyskać dostęp do prywatnych zasobów",
"seeAllClients": "Zobacz Wszystkich Klientów", "seeAllClients": "Zobacz Wszystkich Klientów",
"clientInformation": "Informacje o Kliencie", "clientInformation": "Informacje o Kliencie",
"clientNamePlaceholder": "Nazwa klienta", "clientNamePlaceholder": "Nazwa klienta",
"address": "Adres", "address": "Adres",
"subnetPlaceholder": "Podsieć", "subnetPlaceholder": "Podsieć",
"addressDescription": "Adres, którego ten klient będzie używać do łączności", "addressDescription": "Adres wewnętrzny klienta. Musi mieścić się w podsieci organizacji.",
"selectSites": "Wybierz witryny", "selectSites": "Wybierz witryny",
"sitesDescription": "Klient będzie miał łączność z wybranymi witrynami", "sitesDescription": "Klient będzie miał łączność z wybranymi witrynami",
"clientInstallOlm": "Zainstaluj Olm", "clientInstallOlm": "Zainstaluj Olm",
"clientInstallOlmDescription": "Uruchom Olm na swoim systemie", "clientInstallOlmDescription": "Uruchom Olm na swoim systemie",
"clientOlmCredentials": "Poświadczenia Olm", "clientOlmCredentials": "Dane logowania",
"clientOlmCredentialsDescription": "To jest sposób, w jaki Olm będzie się uwierzytelniać z serwerem", "clientOlmCredentialsDescription": "W ten sposób klient będzie uwierzytelniał się z serwerem",
"olmEndpoint": "Punkt Końcowy Olm", "olmEndpoint": "Endpoint",
"olmId": "Identyfikator Olm", "olmId": "ID",
"olmSecretKey": "Tajny Klucz Olm", "olmSecretKey": "Sekret",
"clientCredentialsSave": "Zapisz swoje poświadczenia", "clientCredentialsSave": "Zapisz dane logowania",
"clientCredentialsSaveDescription": "Będziesz mógł zobaczyć to tylko raz. Upewnij się, że skopiujesz go w bezpieczne miejsce.", "clientCredentialsSaveDescription": "Będziesz mógł zobaczyć to tylko raz. Upewnij się, że skopiujesz go w bezpieczne miejsce.",
"generalSettingsDescription": "Skonfiguruj ogólne ustawienia dla tego klienta", "generalSettingsDescription": "Skonfiguruj ogólne ustawienia dla tego klienta",
"clientUpdated": "Klient zaktualizowany", "clientUpdated": "Klient zaktualizowany",
@@ -1454,9 +1501,7 @@
"sitesFetchError": "Wystąpił błąd podczas pobierania witryn.", "sitesFetchError": "Wystąpił błąd podczas pobierania witryn.",
"olmErrorFetchReleases": "Wystąpił błąd podczas pobierania wydań Olm.", "olmErrorFetchReleases": "Wystąpił błąd podczas pobierania wydań Olm.",
"olmErrorFetchLatest": "Wystąpił błąd podczas pobierania najnowszego wydania Olm.", "olmErrorFetchLatest": "Wystąpił błąd podczas pobierania najnowszego wydania Olm.",
"remoteSubnets": "Zdalne Podsieci",
"enterCidrRange": "Wprowadź zakres CIDR", "enterCidrRange": "Wprowadź zakres CIDR",
"remoteSubnetsDescription": "Dodaj zakresy CIDR, które można uzyskać zdalnie z tej strony za pomocą klientów. Użyj formatu jak 10.0.0.0/24. Dotyczy to WYŁĄCZNIE łączności klienta VPN.",
"resourceEnableProxy": "Włącz publiczny proxy", "resourceEnableProxy": "Włącz publiczny proxy",
"resourceEnableProxyDescription": "Włącz publiczne proxy dla tego zasobu. To umożliwia dostęp do zasobu spoza sieci przez chmurę na otwartym porcie. Wymaga konfiguracji Traefik.", "resourceEnableProxyDescription": "Włącz publiczne proxy dla tego zasobu. To umożliwia dostęp do zasobu spoza sieci przez chmurę na otwartym porcie. Wymaga konfiguracji Traefik.",
"externalProxyEnabled": "Zewnętrzny Proxy Włączony", "externalProxyEnabled": "Zewnętrzny Proxy Włączony",
@@ -1474,14 +1519,15 @@
"enableHealthChecksDescription": "Monitoruj zdrowie tego celu. Możesz monitorować inny punkt końcowy niż docelowy w razie potrzeby.", "enableHealthChecksDescription": "Monitoruj zdrowie tego celu. Możesz monitorować inny punkt końcowy niż docelowy w razie potrzeby.",
"healthScheme": "Metoda", "healthScheme": "Metoda",
"healthSelectScheme": "Wybierz metodę", "healthSelectScheme": "Wybierz metodę",
"healthCheckPortInvalid": "Port oceny stanu musi znajdować się między 1 a 65535",
"healthCheckPath": "Ścieżka", "healthCheckPath": "Ścieżka",
"healthHostname": "IP / Nazwa hosta", "healthHostname": "IP / Nazwa hosta",
"healthPort": "Port", "healthPort": "Port",
"healthCheckPathDescription": "Ścieżka do sprawdzania stanu zdrowia.", "healthCheckPathDescription": "Ścieżka do sprawdzania stanu zdrowia.",
"healthyIntervalSeconds": "Interwał Zdrowy", "healthyIntervalSeconds": "Odstęp zdrowego (sek)",
"unhealthyIntervalSeconds": "Interwał Niezdrowy", "unhealthyIntervalSeconds": "Niezdrowy interwał (sek)",
"IntervalSeconds": "Interwał Zdrowy", "IntervalSeconds": "Interwał Zdrowy",
"timeoutSeconds": "Limit Czasu", "timeoutSeconds": "Limit czasu (sek)",
"timeIsInSeconds": "Czas w sekundach", "timeIsInSeconds": "Czas w sekundach",
"retryAttempts": "Próby Ponowienia", "retryAttempts": "Próby Ponowienia",
"expectedResponseCodes": "Oczekiwane Kody Odpowiedzi", "expectedResponseCodes": "Oczekiwane Kody Odpowiedzi",
@@ -1517,16 +1563,22 @@
"resourceEditDomain": "Edytuj domenę", "resourceEditDomain": "Edytuj domenę",
"siteName": "Nazwa strony", "siteName": "Nazwa strony",
"proxyPort": "Port", "proxyPort": "Port",
"resourcesTableProxyResources": "Zasoby proxy", "resourcesTableProxyResources": "Publiczne",
"resourcesTableClientResources": "Zasoby klienta", "resourcesTableClientResources": "Prywatny",
"resourcesTableNoProxyResourcesFound": "Nie znaleziono zasobów proxy.", "resourcesTableNoProxyResourcesFound": "Nie znaleziono zasobów proxy.",
"resourcesTableNoInternalResourcesFound": "Nie znaleziono wewnętrznych zasobów.", "resourcesTableNoInternalResourcesFound": "Nie znaleziono wewnętrznych zasobów.",
"resourcesTableDestination": "Miejsce docelowe", "resourcesTableDestination": "Miejsce docelowe",
"resourcesTableTheseResourcesForUseWith": "Te zasoby są do użytku z", "resourcesTableAlias": "Alias",
"resourcesTableClients": "Klientami", "resourcesTableClients": "Klientami",
"resourcesTableAndOnlyAccessibleInternally": "i są dostępne tylko wewnętrznie po połączeniu z klientem.", "resourcesTableAndOnlyAccessibleInternally": "i są dostępne tylko wewnętrznie po połączeniu z klientem.",
"editInternalResourceDialogEditClientResource": "Edytuj zasób klienta", "resourcesTableNoTargets": "Brak celów",
"editInternalResourceDialogUpdateResourceProperties": "Zaktualizuj właściwości zasobu i konfigurację celu dla {resourceName}.", "resourcesTableHealthy": "Zdrowe",
"resourcesTableDegraded": "Degradacja",
"resourcesTableOffline": "Offline",
"resourcesTableUnknown": "Nieznane",
"resourcesTableNotMonitored": "Nie monitorowano",
"editInternalResourceDialogEditClientResource": "Edytuj Zasoby Prywatne",
"editInternalResourceDialogUpdateResourceProperties": "Aktualizuj konfigurację zasobów i kontrolę dostępu dla {resourceName}",
"editInternalResourceDialogResourceProperties": "Właściwości zasobów", "editInternalResourceDialogResourceProperties": "Właściwości zasobów",
"editInternalResourceDialogName": "Nazwa", "editInternalResourceDialogName": "Nazwa",
"editInternalResourceDialogProtocol": "Protokół", "editInternalResourceDialogProtocol": "Protokół",
@@ -1545,11 +1597,22 @@
"editInternalResourceDialogInvalidIPAddressFormat": "Nieprawidłowy format adresu IP", "editInternalResourceDialogInvalidIPAddressFormat": "Nieprawidłowy format adresu IP",
"editInternalResourceDialogDestinationPortMin": "Port docelowy musi wynosić przynajmniej 1", "editInternalResourceDialogDestinationPortMin": "Port docelowy musi wynosić przynajmniej 1",
"editInternalResourceDialogDestinationPortMax": "Port docelowy nie może być większy niż 65536", "editInternalResourceDialogDestinationPortMax": "Port docelowy nie może być większy niż 65536",
"editInternalResourceDialogPortModeRequired": "Protokół, port proxy i port docelowy są wymagane dla trybu portu",
"editInternalResourceDialogMode": "Tryb",
"editInternalResourceDialogModePort": "Port",
"editInternalResourceDialogModeHost": "Host",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogDestination": "Miejsce docelowe",
"editInternalResourceDialogDestinationHostDescription": "Adres IP lub nazwa hosta zasobu w sieci witryny.",
"editInternalResourceDialogDestinationIPDescription": "Adres IP lub nazwa hosta zasobu w sieci witryny.",
"editInternalResourceDialogDestinationCidrDescription": "Zakres CIDR zasobu w sieci witryny.",
"editInternalResourceDialogAlias": "Alias",
"editInternalResourceDialogAliasDescription": "Opcjonalny wewnętrzny alias DNS dla tego zasobu.",
"createInternalResourceDialogNoSitesAvailable": "Brak dostępnych stron", "createInternalResourceDialogNoSitesAvailable": "Brak dostępnych stron",
"createInternalResourceDialogNoSitesAvailableDescription": "Musisz mieć co najmniej jedną stronę Newt z skonfigurowanym podsiecią, aby tworzyć wewnętrzne zasoby.", "createInternalResourceDialogNoSitesAvailableDescription": "Musisz mieć co najmniej jedną stronę Newt z skonfigurowanym podsiecią, aby tworzyć wewnętrzne zasoby.",
"createInternalResourceDialogClose": "Zamknij", "createInternalResourceDialogClose": "Zamknij",
"createInternalResourceDialogCreateClientResource": "Utwórz zasób klienta", "createInternalResourceDialogCreateClientResource": "Utwórz zasób prywatny",
"createInternalResourceDialogCreateClientResourceDescription": "Utwórz nowy zasób, który będzie dostępny dla klientów połączonych z wybraną stroną.", "createInternalResourceDialogCreateClientResourceDescription": "Utwórz nowy zasób, który będzie dostępny tylko dla klientów podłączonych do organizacji",
"createInternalResourceDialogResourceProperties": "Właściwości zasobów", "createInternalResourceDialogResourceProperties": "Właściwości zasobów",
"createInternalResourceDialogName": "Nazwa", "createInternalResourceDialogName": "Nazwa",
"createInternalResourceDialogSite": "Witryna", "createInternalResourceDialogSite": "Witryna",
@@ -1578,11 +1641,22 @@
"createInternalResourceDialogInvalidIPAddressFormat": "Nieprawidłowy format adresu IP", "createInternalResourceDialogInvalidIPAddressFormat": "Nieprawidłowy format adresu IP",
"createInternalResourceDialogDestinationPortMin": "Port docelowy musi wynosić przynajmniej 1", "createInternalResourceDialogDestinationPortMin": "Port docelowy musi wynosić przynajmniej 1",
"createInternalResourceDialogDestinationPortMax": "Port docelowy nie może być większy niż 65536", "createInternalResourceDialogDestinationPortMax": "Port docelowy nie może być większy niż 65536",
"createInternalResourceDialogPortModeRequired": "Protokół, port proxy i port docelowy są wymagane dla trybu portu",
"createInternalResourceDialogMode": "Tryb",
"createInternalResourceDialogModePort": "Port",
"createInternalResourceDialogModeHost": "Host",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogDestination": "Miejsce docelowe",
"createInternalResourceDialogDestinationHostDescription": "Adres IP lub nazwa hosta zasobu w sieci witryny.",
"createInternalResourceDialogDestinationCidrDescription": "Zakres CIDR zasobu w sieci witryny.",
"createInternalResourceDialogAlias": "Alias",
"createInternalResourceDialogAliasDescription": "Opcjonalny wewnętrzny alias DNS dla tego zasobu.",
"siteConfiguration": "Konfiguracja", "siteConfiguration": "Konfiguracja",
"siteAcceptClientConnections": "Akceptuj połączenia klienta", "siteAcceptClientConnections": "Akceptuj połączenia klienta",
"siteAcceptClientConnectionsDescription": "Pozwól innym urządzeniom połączyć się przez tę instancję Newt jako bramę za pomocą klientów.", "siteAcceptClientConnectionsDescription": "Zezwalaj urządzeniom i klientom na dostęp do zasobów na tej stronie. Może to zostać zmienione później.",
"siteAddress": "Adres strony", "siteAddress": "Adres witryny (Zaawansowany)",
"siteAddressDescription": "Podaj adres IP hosta, do którego klienci będą się łączyć. Jest to wewnętrzny adres strony w sieci Pangolin dla klientów do adresowania. Musi zawierać się w podsieci organizacji.", "siteAddressDescription": "Adres wewnętrzny witryny. Musi mieścić się w podsieci organizacji.",
"siteNameDescription": "Wyświetlana nazwa witryny, która może zostać zmieniona później.",
"autoLoginExternalIdp": "Automatyczny login z zewnętrznym IDP", "autoLoginExternalIdp": "Automatyczny login z zewnętrznym IDP",
"autoLoginExternalIdpDescription": "Natychmiastowe przekierowanie użytkownika do zewnętrznego IDP w celu uwierzytelnienia.", "autoLoginExternalIdpDescription": "Natychmiastowe przekierowanie użytkownika do zewnętrznego IDP w celu uwierzytelnienia.",
"selectIdp": "Wybierz IDP", "selectIdp": "Wybierz IDP",
@@ -1608,7 +1682,7 @@
"sidebarRemoteExitNodes": "Zdalne węzły", "sidebarRemoteExitNodes": "Zdalne węzły",
"remoteExitNodeCreate": { "remoteExitNodeCreate": {
"title": "Utwórz węzeł", "title": "Utwórz węzeł",
"description": "Utwórz nowy węzeł, aby rozszerzyć połączenie z siecią", "description": "Utwórz nowy węzeł, aby rozszerzyć łączność z siecią",
"viewAllButton": "Zobacz wszystkie węzły", "viewAllButton": "Zobacz wszystkie węzły",
"strategy": { "strategy": {
"title": "Strategia Tworzenia", "title": "Strategia Tworzenia",
@@ -1709,16 +1783,16 @@
"idpTypeLabel": "Typ dostawcy tożsamości", "idpTypeLabel": "Typ dostawcy tożsamości",
"roleMappingExpressionPlaceholder": "np. zawiera(grupy, 'admin') && 'Admin' || 'Członek'", "roleMappingExpressionPlaceholder": "np. zawiera(grupy, 'admin') && 'Admin' || 'Członek'",
"idpGoogleConfiguration": "Konfiguracja Google", "idpGoogleConfiguration": "Konfiguracja Google",
"idpGoogleConfigurationDescription": "Skonfiguruj swoje poświadczenia Google OAuth2", "idpGoogleConfigurationDescription": "Skonfiguruj dane logowania Google OAuth2",
"idpGoogleClientIdDescription": "Twój identyfikator klienta Google OAuth2", "idpGoogleClientIdDescription": "Google OAuth2 Client ID",
"idpGoogleClientSecretDescription": "Twój klucz klienta Google OAuth2", "idpGoogleClientSecretDescription": "Klucz tajny klienta Google OAuth2",
"idpAzureConfiguration": "Konfiguracja Azure Entra ID", "idpAzureConfiguration": "Konfiguracja Azure Entra ID",
"idpAzureConfigurationDescription": "Skonfiguruj swoje dane logowania OAuth2 Azure Entra", "idpAzureConfigurationDescription": "Skonfiguruj poświadczenia Aure Entra ID OAuth2",
"idpTenantId": "ID Najemcy", "idpTenantId": "ID Najemcy",
"idpTenantIdPlaceholder": "twoj-lokator", "idpTenantIdPlaceholder": "tenant-id",
"idpAzureTenantIdDescription": "Twój identyfikator dzierżawcy Azure (znaleziony w Podglądzie Azure Active Directory", "idpAzureTenantIdDescription": "Identyfikator dzierżawcy azure (znaleziony w Azuure Active Directory podglądu)",
"idpAzureClientIdDescription": "Twój identyfikator klienta rejestracji aplikacji Azure", "idpAzureClientIdDescription": "Identyfikator klienta aplikacji Azure",
"idpAzureClientSecretDescription": "Klucz tajny Twojego klienta rejestracji aplikacji Azure", "idpAzureClientSecretDescription": "Klucz tajny klienta aplikacji Azure",
"idpGoogleTitle": "Google", "idpGoogleTitle": "Google",
"idpGoogleAlt": "Google", "idpGoogleAlt": "Google",
"idpAzureTitle": "Azure Entra ID", "idpAzureTitle": "Azure Entra ID",
@@ -1726,14 +1800,14 @@
"idpGoogleConfigurationTitle": "Konfiguracja Google", "idpGoogleConfigurationTitle": "Konfiguracja Google",
"idpAzureConfigurationTitle": "Konfiguracja Azure Entra ID", "idpAzureConfigurationTitle": "Konfiguracja Azure Entra ID",
"idpTenantIdLabel": "ID Najemcy", "idpTenantIdLabel": "ID Najemcy",
"idpAzureClientIdDescription2": "Twój identyfikator klienta rejestracji aplikacji Azure", "idpAzureClientIdDescription2": "Identyfikator klienta aplikacji Azure",
"idpAzureClientSecretDescription2": "Klucz tajny Twojego klienta rejestracji aplikacji Azure", "idpAzureClientSecretDescription2": "Klucz tajny klienta aplikacji Azure",
"idpGoogleDescription": "Dostawca Google OAuth2/OIDC", "idpGoogleDescription": "Dostawca Google OAuth2/OIDC",
"idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider", "idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider",
"subnet": "Podsieć", "subnet": "Podsieć",
"subnetDescription": "Podsieć dla konfiguracji sieci tej organizacji.", "subnetDescription": "Podsieć dla konfiguracji sieci tej organizacji.",
"authPage": "Strona uwierzytelniania", "authPage": "Strona uwierzytelniania",
"authPageDescription": "Skonfiguruj stronę uwierzytelniania dla swojej organizacji", "authPageDescription": "Skonfiguruj stronę uwierzytelniania dla organizacji",
"authPageDomain": "Domena strony uwierzytelniania", "authPageDomain": "Domena strony uwierzytelniania",
"noDomainSet": "Nie ustawiono domeny", "noDomainSet": "Nie ustawiono domeny",
"changeDomain": "Zmień domenę", "changeDomain": "Zmień domenę",
@@ -1743,7 +1817,7 @@
"setAuthPageDomain": "Ustaw domenę strony uwierzytelniania", "setAuthPageDomain": "Ustaw domenę strony uwierzytelniania",
"failedToFetchCertificate": "Nie udało się pobrać certyfikatu", "failedToFetchCertificate": "Nie udało się pobrać certyfikatu",
"failedToRestartCertificate": "Nie udało się ponownie uruchomić certyfikatu", "failedToRestartCertificate": "Nie udało się ponownie uruchomić certyfikatu",
"addDomainToEnableCustomAuthPages": "Dodaj domenę, aby włączyć niestandardowe strony uwierzytelniania dla Twojej organizacji", "addDomainToEnableCustomAuthPages": "Dodaj domenę, aby włączyć niestandardowe strony uwierzytelniania dla organizacji",
"selectDomainForOrgAuthPage": "Wybierz domenę dla strony uwierzytelniania organizacji", "selectDomainForOrgAuthPage": "Wybierz domenę dla strony uwierzytelniania organizacji",
"domainPickerProvidedDomain": "Dostarczona domena", "domainPickerProvidedDomain": "Dostarczona domena",
"domainPickerFreeProvidedDomain": "Darmowa oferowana domena", "domainPickerFreeProvidedDomain": "Darmowa oferowana domena",
@@ -1758,7 +1832,7 @@
"domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" nie może być poprawne dla {domain}.", "domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" nie może być poprawne dla {domain}.",
"domainPickerSubdomainSanitized": "Poddomena oczyszczona", "domainPickerSubdomainSanitized": "Poddomena oczyszczona",
"domainPickerSubdomainCorrected": "\"{sub}\" został skorygowany do \"{sanitized}\"", "domainPickerSubdomainCorrected": "\"{sub}\" został skorygowany do \"{sanitized}\"",
"orgAuthSignInTitle": "Zaloguj się do swojej organizacji", "orgAuthSignInTitle": "Zaloguj się do organizacji",
"orgAuthChooseIdpDescription": "Wybierz swojego dostawcę tożsamości, aby kontynuować", "orgAuthChooseIdpDescription": "Wybierz swojego dostawcę tożsamości, aby kontynuować",
"orgAuthNoIdpConfigured": "Ta organizacja nie ma skonfigurowanych żadnych dostawców tożsamości. Zamiast tego możesz zalogować się za pomocą swojej tożsamości Pangolin.", "orgAuthNoIdpConfigured": "Ta organizacja nie ma skonfigurowanych żadnych dostawców tożsamości. Zamiast tego możesz zalogować się za pomocą swojej tożsamości Pangolin.",
"orgAuthSignInWithPangolin": "Zaloguj się używając Pangolin", "orgAuthSignInWithPangolin": "Zaloguj się używając Pangolin",
@@ -1776,7 +1850,7 @@
"enableTwoFactorAuthentication": "Włącz uwierzytelnianie dwuskładnikowe", "enableTwoFactorAuthentication": "Włącz uwierzytelnianie dwuskładnikowe",
"completeSecuritySteps": "Zakończ kroki bezpieczeństwa", "completeSecuritySteps": "Zakończ kroki bezpieczeństwa",
"securitySettings": "Ustawienia zabezpieczeń", "securitySettings": "Ustawienia zabezpieczeń",
"securitySettingsDescription": "Skonfiguruj politykę bezpieczeństwa dla Twojej organizacji", "securitySettingsDescription": "Skonfiguruj polityki bezpieczeństwa dla organizacji",
"requireTwoFactorForAllUsers": "Wymagaj uwierzytelniania dwuetapowego dla wszystkich użytkowników", "requireTwoFactorForAllUsers": "Wymagaj uwierzytelniania dwuetapowego dla wszystkich użytkowników",
"requireTwoFactorDescription": "Po włączeniu wszyscy użytkownicy wewnętrzni w tej organizacji muszą mieć włączone uwierzytelnianie dwuskładnikowe, aby uzyskać dostęp do organizacji.", "requireTwoFactorDescription": "Po włączeniu wszyscy użytkownicy wewnętrzni w tej organizacji muszą mieć włączone uwierzytelnianie dwuskładnikowe, aby uzyskać dostęp do organizacji.",
"requireTwoFactorDisabledDescription": "Ta funkcja wymaga poprawnej licencji (Enterprise) lub aktywnej subskrypcji (SaaaS)", "requireTwoFactorDisabledDescription": "Ta funkcja wymaga poprawnej licencji (Enterprise) lub aktywnej subskrypcji (SaaaS)",
@@ -1839,8 +1913,12 @@
"enterpriseEdition": "Edycja Enterprise", "enterpriseEdition": "Edycja Enterprise",
"unlicensed": "Nielicencjonowane", "unlicensed": "Nielicencjonowane",
"beta": "Beta", "beta": "Beta",
"manageClients": "Zarządzaj klientami", "manageUserDevices": "Urządzenia użytkownika",
"manageClientsDescription": "Klienci to urządzenia, które mogą łącz się z Twoimi witrynami", "manageUserDevicesDescription": "Przeglądaj i zarządzaj urządzeniami, które użytkownicy używają do prywatnego łączenia się z zasobami",
"manageMachineClients": "Zarządzaj klientami maszyn",
"manageMachineClientsDescription": "Tworzenie i zarządzanie klientami, których serwery i systemy używają do prywatnego łączenia się z zasobami",
"clientsTableUserClients": "Użytkownik",
"clientsTableMachineClients": "Maszyna",
"licenseTableValidUntil": "Ważny do", "licenseTableValidUntil": "Ważny do",
"saasLicenseKeysSettingsTitle": "Licencje przedsiębiorstwa", "saasLicenseKeysSettingsTitle": "Licencje przedsiębiorstwa",
"saasLicenseKeysSettingsDescription": "Generuj i zarządzaj kluczami licencyjnymi Enterprise dla samodzielnych instancji Pangolin", "saasLicenseKeysSettingsDescription": "Generuj i zarządzaj kluczami licencyjnymi Enterprise dla samodzielnych instancji Pangolin",
@@ -1975,11 +2053,12 @@
"pathRewriteStripLabel": "pasek", "pathRewriteStripLabel": "pasek",
"sidebarEnableEnterpriseLicense": "Włącz licencję przedsiębiorstwa", "sidebarEnableEnterpriseLicense": "Włącz licencję przedsiębiorstwa",
"cannotbeUndone": "Tej operacji nie można cofnąć.", "cannotbeUndone": "Tej operacji nie można cofnąć.",
"toConfirm": "potwierdz", "toConfirm": "do potwierdzenia.",
"deleteClientQuestion": "Czy na pewno chcesz usunąć klienta z witryny i organizacji?", "deleteClientQuestion": "Czy na pewno chcesz usunąć klienta z witryny i organizacji?",
"clientMessageRemove": "Po usunięciu, klient nie będzie już mógł połączyć się z witryną.", "clientMessageRemove": "Po usunięciu, klient nie będzie już mógł połączyć się z witryną.",
"sidebarLogs": "Logi", "sidebarLogs": "Logi",
"request": "Żądanie", "request": "Żądanie",
"requests": "Żądania",
"logs": "Logi", "logs": "Logi",
"logsSettingsDescription": "Monitoruj logi zebrane z tej orginizacji", "logsSettingsDescription": "Monitoruj logi zebrane z tej orginizacji",
"searchLogs": "Szukaj dzienników...", "searchLogs": "Szukaj dzienników...",
@@ -2005,6 +2084,7 @@
"ip": "IP", "ip": "IP",
"reason": "Powód", "reason": "Powód",
"requestLogs": "Dzienniki żądań", "requestLogs": "Dzienniki żądań",
"requestAnalytics": "Żądanie Analityki",
"host": "Host", "host": "Host",
"location": "Lokalizacja", "location": "Lokalizacja",
"actionLogs": "Dzienniki działań", "actionLogs": "Dzienniki działań",
@@ -2014,6 +2094,7 @@
"logRetention": "Zachowanie dziennika", "logRetention": "Zachowanie dziennika",
"logRetentionDescription": "Zarządzaj jak długo różne typy logów są zachowane dla tej organizacji lub wyłącz je", "logRetentionDescription": "Zarządzaj jak długo różne typy logów są zachowane dla tej organizacji lub wyłącz je",
"requestLogsDescription": "Zobacz szczegółowe dzienniki żądań zasobów w tej organizacji", "requestLogsDescription": "Zobacz szczegółowe dzienniki żądań zasobów w tej organizacji",
"requestAnalyticsDescription": "Zobacz szczegółowe analizy żądań dla zasobów w tej organizacji",
"logRetentionRequestLabel": "Zachowanie dziennika żądań", "logRetentionRequestLabel": "Zachowanie dziennika żądań",
"logRetentionRequestDescription": "Jak długo zachować dzienniki żądań", "logRetentionRequestDescription": "Jak długo zachować dzienniki żądań",
"logRetentionAccessLabel": "Zachowanie dziennika dostępu", "logRetentionAccessLabel": "Zachowanie dziennika dostępu",
@@ -2027,6 +2108,7 @@
"logRetention30Days": "30 dni", "logRetention30Days": "30 dni",
"logRetention90Days": "90 dni", "logRetention90Days": "90 dni",
"logRetentionForever": "Na zawsze", "logRetentionForever": "Na zawsze",
"logRetentionEndOfFollowingYear": "Koniec następnego roku",
"actionLogsDescription": "Zobacz historię działań wykonywanych w tej organizacji", "actionLogsDescription": "Zobacz historię działań wykonywanych w tej organizacji",
"accessLogsDescription": "Wyświetl prośby o autoryzację dostępu do zasobów w tej organizacji", "accessLogsDescription": "Wyświetl prośby o autoryzację dostępu do zasobów w tej organizacji",
"licenseRequiredToUse": "Licencja Enterprise jest wymagana do korzystania z tej funkcji.", "licenseRequiredToUse": "Licencja Enterprise jest wymagana do korzystania z tej funkcji.",
@@ -2051,15 +2133,15 @@
"olmUpdateAvailableInfo": "Dostępna jest zaktualizowana wersja Olm. Zaktualizuj do najnowszej wersji, aby uzyskać najlepsze doświadczenia.", "olmUpdateAvailableInfo": "Dostępna jest zaktualizowana wersja Olm. Zaktualizuj do najnowszej wersji, aby uzyskać najlepsze doświadczenia.",
"client": "Klient", "client": "Klient",
"proxyProtocol": "Ustawienia protokołu proxy", "proxyProtocol": "Ustawienia protokołu proxy",
"proxyProtocolDescription": "Skonfiguruj protokół Proxy aby zachować adresy IP klienta dla usług TCP/UDP.", "proxyProtocolDescription": "Skonfiguruj protokół Proxy aby zachować adresy IP klienta dla usług TCP.",
"enableProxyProtocol": "Włącz protokół proxy", "enableProxyProtocol": "Włącz protokół proxy",
"proxyProtocolInfo": "Zachowaj adresy IP klienta dla backendów TCP/UDP", "proxyProtocolInfo": "Zachowaj adresy IP klienta dla backendów TCP",
"proxyProtocolVersion": "Wersja protokołu proxy", "proxyProtocolVersion": "Wersja protokołu proxy",
"version1": " Wersja 1 (zalecane)", "version1": " Wersja 1 (zalecane)",
"version2": "Wersja 2", "version2": "Wersja 2",
"versionDescription": "Wersja 1 jest oparta na tekście i szeroko wspierana. Wersja 2 jest binarna i bardziej efektywna, ale mniej kompatybilna.", "versionDescription": "Wersja 1 jest oparta na tekście i szeroko wspierana. Wersja 2 jest binarna i bardziej efektywna, ale mniej kompatybilna.",
"warning": "Ostrzeżenie", "warning": "Ostrzeżenie",
"proxyProtocolWarning": "Twoja aplikacja backend musi być skonfigurowana tak, aby przyjmować połączenia z protokołem proxy. Jeśli Twój backend nie obsługuje protokołu proxy, włączenie to spowoduje przerwanie wszystkich połączeń. Upewnij się, że konfiguracja twojego backendu do zaufanych nagłówków protokołu proxy z Traefik.", "proxyProtocolWarning": "Aplikacja backend musi być skonfigurowana do akceptowania połączeń protokołu proxy. Jeśli Twój backend nie obsługuje protokołu Proxy, włączenie tego spowoduje przerwanie wszystkich połączeń, więc włącz to tylko jeśli wiesz, co robisz. Upewnij się, że konfiguracja twojego backendu do zaufanych nagłówków protokołu proxy z Traefik.",
"restarting": "Restartowanie...", "restarting": "Restartowanie...",
"manual": "Ręcznie", "manual": "Ręcznie",
"messageSupport": "Obsługa wiadomości", "messageSupport": "Obsługa wiadomości",
@@ -2080,5 +2162,113 @@
"supportSending": "Wysyłanie...", "supportSending": "Wysyłanie...",
"supportSend": "Wyślij", "supportSend": "Wyślij",
"supportMessageSent": "Wiadomość wysłana!", "supportMessageSent": "Wiadomość wysłana!",
"supportWillContact": "Wkrótce będziemy w kontakcie!" "supportWillContact": "Wkrótce będziemy w kontakcie!",
"selectLogRetention": "Wybierz zatrzymanie dziennika",
"terms": "Regulamin",
"privacy": "Prywatność",
"security": "Bezpieczeństwo",
"docs": "Dokumentacja",
"deviceActivation": "Aktywacja urządzenia",
"deviceCodeInvalidFormat": "Kod musi mieć 9 znaków (np. A1AJ-N5JD)",
"deviceCodeInvalidOrExpired": "Nieprawidłowy lub wygasły kod",
"deviceCodeVerifyFailed": "Nie udało się zweryfikować kodu urządzenia",
"signedInAs": "Zalogowany jako",
"deviceCodeEnterPrompt": "Wprowadź kod wyświetlany na urządzeniu",
"continue": "Kontynuuj",
"deviceUnknownLocation": "Nieznana lokalizacja",
"deviceAuthorizationRequested": "Ta autoryzacja została zgłoszona do {location} na {date}. Upewnij się, że ufasz urządzeniu, ponieważ uzyska dostęp do konta.",
"deviceLabel": "Urządzenie: {deviceName}",
"deviceWantsAccess": "chce uzyskać dostęp do Twojego konta",
"deviceExistingAccess": "Istniejący dostęp:",
"deviceFullAccess": "Pełny dostęp do Twojego konta",
"deviceOrganizationsAccess": "Dostęp do wszystkich organizacji, do których Twoje konto ma dostęp",
"deviceAuthorize": "Autoryzuj {applicationName}",
"deviceConnected": "Urządzenie podłączone!",
"deviceAuthorizedMessage": "Urządzenie jest upoważnione do dostępu do Twojego konta.",
"pangolinCloud": "Chmura Pangolin",
"viewDevices": "Zobacz urządzenia",
"viewDevicesDescription": "Zarządzaj podłączonymi urządzeniami",
"noDevices": "Nie znaleziono urządzeń",
"dateCreated": "Data utworzenia",
"unnamedDevice": "Urządzenie bez nazwy",
"deviceQuestionRemove": "Czy na pewno chcesz usunąć to urządzenie?",
"deviceMessageRemove": "Tej czynności nie można cofnąć.",
"deviceDeleteConfirm": "Usuń urządzenie",
"deleteDevice": "Usuń urządzenie",
"errorLoadingDevices": "Błąd ładowania urządzeń",
"failedToLoadDevices": "Nie udało się załadować urządzeń",
"deviceDeleted": "Urządzenie usunięte",
"deviceDeletedDescription": "Urządzenie zostało usunięte.",
"errorDeletingDevice": "Błąd podczas usuwania urządzenia",
"failedToDeleteDevice": "Nie udało się usunąć urządzenia",
"showColumns": "Pokaż kolumny",
"hideColumns": "Ukryj kolumny",
"columnVisibility": "Widoczność kolumn",
"toggleColumn": "Przełącz kolumnę {columnName}",
"allColumns": "Wszystkie kolumny",
"defaultColumns": "Kolumny domyślne",
"customizeView": "Dostosuj widok",
"viewOptions": "Opcje widoku",
"selectAll": "Zaznacz wszystko",
"selectNone": "Nie wybierz żadnego",
"selectedResources": "Wybrane Zasoby",
"enableSelected": "Włącz zaznaczone",
"disableSelected": "Wyłącz zaznaczone",
"checkSelectedStatus": "Sprawdź status zaznaczonych",
"clients": "Klientami",
"accessClientSelect": "Wybierz klientów komputera",
"resourceClientDescription": "Klienci maszynowi, którzy mają dostęp do tego zasobu",
"regenerate": "Wygeneruj ponownie",
"credentials": "Dane logowania",
"savecredentials": "Zapisz dane logowania",
"regenerateCredentialsButton": "Wygeneruj dane logowania",
"regenerateCredentials": "Wygeneruj dane logowania",
"generatedcredentials": "Wygenerowane dane logowania",
"copyandsavethesecredentials": "Skopiuj i zapisz te dane logowania",
"copyandsavethesecredentialsdescription": "Te dane uwierzytelniające nie będą wyświetlane ponownie po opuszczeniu tej strony. Zapisz je teraz bezpiecznie.",
"credentialsSaved": "Zapisano dane logowania",
"credentialsSavedDescription": "Dane logowania zostały wygenerowane i zapisane pomyślnie.",
"credentialsSaveError": "Błąd zapisu danych logowania",
"credentialsSaveErrorDescription": "Wystąpił błąd podczas regeneracji i zapisywania poświadczeń.",
"regenerateCredentialsWarning": "Regeneracja poświadczeń spowoduje unieważnienie poprzednich danych i spowoduje rozłączenie. Upewnij się, że aktualizacja wszystkich konfiguracji, które używają tych poświadczeń.",
"confirm": "Potwierdź",
"regenerateCredentialsConfirmation": "Czy na pewno chcesz wygenerować dane logowania?",
"endpoint": "Endpoint",
"Id": "Id",
"SecretKey": "Sekretny klucz",
"niceId": "Niepoprawne ID",
"niceIdUpdated": "Zaktualizowano błędne ID",
"niceIdUpdatedSuccessfully": "Zaktualizowano błędne ID",
"niceIdUpdateError": "Błąd podczas aktualizacji Nice ID",
"niceIdUpdateErrorDescription": "Wystąpił błąd podczas aktualizowania Nicei ID.",
"niceIdCannotBeEmpty": "Niepoprawny identyfikator nie może być pusty",
"enterIdentifier": "Wprowadź identyfikator",
"identifier": "Identifier",
"deviceLoginUseDifferentAccount": "To nie? Użyj innego konta.",
"deviceLoginDeviceRequestingAccessToAccount": "Urządzenie żąda dostępu do tego konta.",
"noData": "Brak danych",
"machineClients": "Klienci maszyn",
"install": "Zainstaluj",
"run": "Uruchom",
"clientNameDescription": "Wyświetlana nazwa klienta, która może zostać zmieniona później.",
"clientAddress": "Adres klienta (Zaawansowany)",
"setupFailedToFetchSubnet": "Nie udało się pobrać domyślnej podsieci",
"setupSubnetAdvanced": "Podsieć (zaawansowana)",
"setupSubnetDescription": "Podsieć dla wewnętrznej sieci tej organizacji.",
"siteRegenerateAndDisconnect": "Wygeneruj ponownie i rozłącz",
"siteRegenerateAndDisconnectConfirmation": "Czy na pewno chcesz odzyskać dane logowania i odłączyć tę stronę?",
"siteRegenerateAndDisconnectWarning": "Spowoduje to regenerację poświadczeń i natychmiastowe odłączenie witryny. Strona będzie musiała zostać zrestartowana z nowymi poświadczeniami.",
"siteRegenerateCredentialsConfirmation": "Czy na pewno chcesz odzyskać dane logowania dla tej witryny?",
"siteRegenerateCredentialsWarning": "Spowoduje to regenerację poświadczeń. Witryna pozostanie połączona dopóki nie uruchomisz jej ręcznie i nie użyjesz nowych poświadczeń.",
"clientRegenerateAndDisconnect": "Wygeneruj ponownie i rozłącz",
"clientRegenerateAndDisconnectConfirmation": "Czy na pewno chcesz odzyskać dane logowania i odłączyć tego klienta?",
"clientRegenerateAndDisconnectWarning": "Spowoduje to regenerację poświadczeń i natychmiastowe odłączenie klienta. Klient będzie musiał zostać ponownie uruchomiony z nowymi poświadczeniami.",
"clientRegenerateCredentialsConfirmation": "Czy na pewno chcesz odzyskać dane logowania dla tego klienta?",
"clientRegenerateCredentialsWarning": "Spowoduje to regenerację poświadczeń. Klient pozostanie połączony dopóki nie uruchomisz go ponownie i nie użyjesz nowych poświadczeń.",
"remoteExitNodeRegenerateAndDisconnect": "Wygeneruj ponownie i rozłącz",
"remoteExitNodeRegenerateAndDisconnectConfirmation": "Czy na pewno chcesz odzyskać dane logowania i odłączyć ten węzeł zdalnego wyjścia?",
"remoteExitNodeRegenerateAndDisconnectWarning": "Spowoduje to regenerację danych logowania i natychmiastowe odłączenie zdalnego węzła wyjścia. Węzeł zdalnego wyjścia będzie musiał zostać ponownie uruchomiony z nowymi danymi logowania.",
"remoteExitNodeRegenerateCredentialsConfirmation": "Czy na pewno chcesz wygenerować dane logowania dla tego węzła zdalnego wyjścia?",
"remoteExitNodeRegenerateCredentialsWarning": "Spowoduje to regenerację poświadczeń. Serwer wyjścia pozostanie podłączony do momentu ręcznego ponownego uruchomienia i użycia nowych poświadczeń.",
"agent": "Agent"
} }

View File

@@ -1,12 +1,12 @@
{ {
"setupCreate": "Crie sua organização, site e recursos", "setupCreate": "Criar a organização, o site e os recursos",
"setupNewOrg": "Nova organização", "setupNewOrg": "Nova organização",
"setupCreateOrg": "Criar Organização", "setupCreateOrg": "Criar Organização",
"setupCreateResources": "Criar recursos", "setupCreateResources": "Criar recursos",
"setupOrgName": "Nome Da Organização", "setupOrgName": "Nome Da Organização",
"orgDisplayName": "Este é o nome de exibição da sua organização.", "orgDisplayName": "Este é o nome de exibição da organização.",
"orgId": "ID da organização", "orgId": "ID da organização",
"setupIdentifierMessage": "Este é o identificador exclusivo para sua organização. Isso é separado do nome de exibição.", "setupIdentifierMessage": "Este é o identificador exclusivo da organização.",
"setupErrorIdentifier": "O ID da organização já existe. Por favor, escolha um diferente.", "setupErrorIdentifier": "O ID da organização já existe. Por favor, escolha um diferente.",
"componentsErrorNoMemberCreate": "Não é atualmente um membro de nenhuma organização. Crie uma organização para começar.", "componentsErrorNoMemberCreate": "Não é atualmente um membro de nenhuma organização. Crie uma organização para começar.",
"componentsErrorNoMember": "Não é atualmente um membro de nenhuma organização.", "componentsErrorNoMember": "Não é atualmente um membro de nenhuma organização.",
@@ -50,10 +50,10 @@
"siteMessageRemove": "Uma vez removido, o site não estará mais acessível. Todas as metas associadas ao site também serão removidas.", "siteMessageRemove": "Uma vez removido, o site não estará mais acessível. Todas as metas associadas ao site também serão removidas.",
"siteQuestionRemove": "Você tem certeza que deseja remover este site da organização?", "siteQuestionRemove": "Você tem certeza que deseja remover este site da organização?",
"siteManageSites": "Gerir sites", "siteManageSites": "Gerir sites",
"siteDescription": "Permitir conectividade à sua rede através de túneis seguros", "siteDescription": "Criar e gerenciar sites para ativar a conectividade a redes privadas",
"siteCreate": "Criar site", "siteCreate": "Criar site",
"siteCreateDescription2": "Siga os passos abaixo para criar e conectar um novo site", "siteCreateDescription2": "Siga os passos abaixo para criar e conectar um novo site",
"siteCreateDescription": "Crie um novo site para começar a conectar seus recursos", "siteCreateDescription": "Crie um novo site para começar a conectar os recursos",
"close": "FECHAR", "close": "FECHAR",
"siteErrorCreate": "Erro ao criar site", "siteErrorCreate": "Erro ao criar site",
"siteErrorCreateKeyPair": "Par de chaves ou padrões do site não encontrados", "siteErrorCreateKeyPair": "Par de chaves ou padrões do site não encontrados",
@@ -74,7 +74,7 @@
"siteInstallNewt": "Instalar Novo", "siteInstallNewt": "Instalar Novo",
"siteInstallNewtDescription": "Novo item em execução no seu sistema", "siteInstallNewtDescription": "Novo item em execução no seu sistema",
"WgConfiguration": "Configuração do WireGuard", "WgConfiguration": "Configuração do WireGuard",
"WgConfigurationDescription": "Use a seguinte configuração para conectar-se à sua rede", "WgConfigurationDescription": "Use a seguinte configuração para conectar-se à rede",
"operatingSystem": "Sistema operacional", "operatingSystem": "Sistema operacional",
"commands": "Comandos", "commands": "Comandos",
"recommended": "Recomendados", "recommended": "Recomendados",
@@ -87,32 +87,32 @@
"siteUpdated": "Site atualizado", "siteUpdated": "Site atualizado",
"siteUpdatedDescription": "O site foi atualizado.", "siteUpdatedDescription": "O site foi atualizado.",
"siteGeneralDescription": "Configurar as configurações gerais para este site", "siteGeneralDescription": "Configurar as configurações gerais para este site",
"siteSettingDescription": "Configure as configurações no seu site", "siteSettingDescription": "Configurar as configurações no site",
"siteSetting": "Configurações do {siteName}", "siteSetting": "Configurações do {siteName}",
"siteNewtTunnel": "Novo túnel (recomendado)", "siteNewtTunnel": "Novo Site (Recomendado)",
"siteNewtTunnelDescription": "A maneira mais fácil de criar um ponto de entrada na sua rede. Nenhuma configuração extra.", "siteNewtTunnelDescription": "Maneira mais fácil de criar um ponto de entrada em qualquer rede. Nenhuma configuração extra.",
"siteWg": "WireGuard Básico", "siteWg": "WireGuard Básico",
"siteWgDescription": "Use qualquer cliente do WireGuard para estabelecer um túnel. Configuração manual NAT é necessária.", "siteWgDescription": "Use qualquer cliente do WireGuard para estabelecer um túnel. Configuração manual NAT é necessária.",
"siteWgDescriptionSaas": "Use qualquer cliente WireGuard para estabelecer um túnel. Configuração manual NAT necessária. SOMENTE FUNCIONA EM NODES AUTO-HOSPEDADOS", "siteWgDescriptionSaas": "Use qualquer cliente WireGuard para estabelecer um túnel. Configuração manual NAT necessária. SOMENTE FUNCIONA EM NODES AUTO-HOSPEDADOS",
"siteLocalDescription": "Recursos locais apenas. Sem túneis.", "siteLocalDescription": "Recursos locais apenas. Sem túneis.",
"siteLocalDescriptionSaas": "Apenas recursos locais. Sem túneis. Apenas disponível em nós remotos.", "siteLocalDescriptionSaas": "Apenas recursos locais. Sem túneis. Apenas disponível em nós remotos.",
"siteSeeAll": "Ver todos os sites", "siteSeeAll": "Ver todos os sites",
"siteTunnelDescription": "Determine como você deseja se conectar ao seu site", "siteTunnelDescription": "Determine como você deseja se conectar ao site",
"siteNewtCredentials": "Credenciais Novas", "siteNewtCredentials": "Credenciais",
"siteNewtCredentialsDescription": "É assim que o novo sistema se autentica com o servidor", "siteNewtCredentialsDescription": "É assim que o site se autentica com o servidor",
"siteCredentialsSave": "Salve suas credenciais", "siteCredentialsSave": "Salvar as Credenciais",
"siteCredentialsSaveDescription": "Você só será capaz de ver esta vez. Certifique-se de copiá-lo para um lugar seguro.", "siteCredentialsSaveDescription": "Você só será capaz de ver esta vez. Certifique-se de copiá-lo para um lugar seguro.",
"siteInfo": "Informações do Site", "siteInfo": "Informações do Site",
"status": "SItuação", "status": "SItuação",
"shareTitle": "Gerir links partilhados", "shareTitle": "Gerir links partilhados",
"shareDescription": "Criar links compartilháveis para conceder acesso temporário ou permanente aos seus recursos", "shareDescription": "Criar links compartilháveis para conceder acesso temporário ou permanente aos recursos do proxy",
"shareSearch": "Pesquisar links de compartilhamento...", "shareSearch": "Pesquisar links de compartilhamento...",
"shareCreate": "Criar Link de Compartilhamento", "shareCreate": "Criar Link de Compartilhamento",
"shareErrorDelete": "Falha ao apagar o link", "shareErrorDelete": "Falha ao apagar o link",
"shareErrorDeleteMessage": "Ocorreu um erro ao apagar o link", "shareErrorDeleteMessage": "Ocorreu um erro ao apagar o link",
"shareDeleted": "Link excluído", "shareDeleted": "Link excluído",
"shareDeletedDescription": "O link foi eliminado", "shareDeletedDescription": "O link foi eliminado",
"shareTokenDescription": "Seu token de acesso pode ser passado de duas maneiras: como um parâmetro de consulta ou nos cabeçalhos da solicitação. Estes devem ser passados do cliente em todas as solicitações para acesso autenticado.", "shareTokenDescription": "O token de acesso pode ser passado de duas maneiras: como um parâmetro de consulta ou nos cabeçalhos da solicitação. Estes devem ser passados do cliente em todas as solicitações para acesso autenticado.",
"accessToken": "Token de acesso", "accessToken": "Token de acesso",
"usageExamples": "Exemplos de uso", "usageExamples": "Exemplos de uso",
"tokenId": "ID do Token", "tokenId": "ID do Token",
@@ -121,7 +121,7 @@
"importantNote": "Nota importante", "importantNote": "Nota importante",
"shareImportantDescription": "Por razões de segurança, o uso de cabeçalhos é recomendado através dos parâmetros de consulta quando possível, já que os parâmetros de consulta podem estar logados nos logs do servidor ou no histórico do navegador.", "shareImportantDescription": "Por razões de segurança, o uso de cabeçalhos é recomendado através dos parâmetros de consulta quando possível, já que os parâmetros de consulta podem estar logados nos logs do servidor ou no histórico do navegador.",
"token": "Identificador", "token": "Identificador",
"shareTokenSecurety": "Mantenha seu token de acesso seguro. Não o compartilhe em áreas de acesso público ou código do lado do cliente.", "shareTokenSecurety": "Mantenha o token de acesso seguro. Não o compartilhe em áreas de acesso público ou código do lado do cliente.",
"shareErrorFetchResource": "Falha ao buscar recursos", "shareErrorFetchResource": "Falha ao buscar recursos",
"shareErrorFetchResourceDescription": "Ocorreu um erro ao obter os recursos", "shareErrorFetchResourceDescription": "Ocorreu um erro ao obter os recursos",
"shareErrorCreate": "Falha ao criar link de compartilhamento", "shareErrorCreate": "Falha ao criar link de compartilhamento",
@@ -144,8 +144,10 @@
"expires": "Expira", "expires": "Expira",
"never": "nunca", "never": "nunca",
"shareErrorSelectResource": "Por favor, selecione um recurso", "shareErrorSelectResource": "Por favor, selecione um recurso",
"resourceTitle": "Gerir Recursos", "proxyResourceTitle": "Gerenciar Recursos Públicos",
"resourceDescription": "Crie proxies seguros para seus aplicativos privados", "proxyResourceDescription": "Criar e gerenciar recursos que são acessíveis publicamente por meio de um navegador da web",
"clientResourceTitle": "Gerenciar recursos privados",
"clientResourceDescription": "Criar e gerenciar recursos que só são acessíveis por meio de um cliente conectado",
"resourcesSearch": "Procurar recursos...", "resourcesSearch": "Procurar recursos...",
"resourceAdd": "Adicionar Recurso", "resourceAdd": "Adicionar Recurso",
"resourceErrorDelte": "Erro ao apagar recurso", "resourceErrorDelte": "Erro ao apagar recurso",
@@ -155,9 +157,9 @@
"resourceMessageRemove": "Uma vez removido, o recurso não estará mais acessível. Todos os alvos associados ao recurso também serão removidos.", "resourceMessageRemove": "Uma vez removido, o recurso não estará mais acessível. Todos os alvos associados ao recurso também serão removidos.",
"resourceQuestionRemove": "Você tem certeza que deseja remover o recurso da organização?", "resourceQuestionRemove": "Você tem certeza que deseja remover o recurso da organização?",
"resourceHTTP": "Recurso HTTPS", "resourceHTTP": "Recurso HTTPS",
"resourceHTTPDescription": "O proxy solicita ao seu aplicativo via HTTPS usando um subdomínio ou domínio base.", "resourceHTTPDescription": "O proxy solicita ao aplicativo via HTTPS usando um subdomínio ou domínio base.",
"resourceRaw": "Recurso TCP/UDP bruto", "resourceRaw": "Recurso TCP/UDP bruto",
"resourceRawDescription": "O proxy solicita ao seu aplicativo sobre TCP/UDP usando um número de porta.", "resourceRawDescription": "O proxy solicita ao aplicativo sobre TCP/UDP usando um número de porta. Isso só funciona quando os sites estão conectados a nós.",
"resourceCreate": "Criar Recurso", "resourceCreate": "Criar Recurso",
"resourceCreateDescription": "Siga os passos abaixo para criar um novo recurso", "resourceCreateDescription": "Siga os passos abaixo para criar um novo recurso",
"resourceSeeAll": "Ver todos os recursos", "resourceSeeAll": "Ver todos os recursos",
@@ -171,22 +173,22 @@
"noCountryFound": "Nenhum país encontrado.", "noCountryFound": "Nenhum país encontrado.",
"siteSelectionDescription": "Este site fornecerá conectividade ao destino.", "siteSelectionDescription": "Este site fornecerá conectividade ao destino.",
"resourceType": "Tipo de Recurso", "resourceType": "Tipo de Recurso",
"resourceTypeDescription": "Determine como você deseja aceder seu recurso", "resourceTypeDescription": "Determine como acessar o recurso",
"resourceHTTPSSettings": "Configurações de HTTPS", "resourceHTTPSSettings": "Configurações de HTTPS",
"resourceHTTPSSettingsDescription": "Configure como seu recurso será acessado por HTTPS", "resourceHTTPSSettingsDescription": "Configure como o recurso será acessado por HTTPS",
"domainType": "Tipo de domínio", "domainType": "Tipo de domínio",
"subdomain": "Subdomínio", "subdomain": "Subdomínio",
"baseDomain": "Domínio Base", "baseDomain": "Domínio Base",
"subdomnainDescription": "O subdomínio onde seu recurso estará acessível.", "subdomnainDescription": "O subdomínio onde o recurso será acessível.",
"resourceRawSettings": "Configurações TCP/UDP", "resourceRawSettings": "Configurações TCP/UDP",
"resourceRawSettingsDescription": "Configure como seu recurso será acessado sobre TCP/UDP", "resourceRawSettingsDescription": "Configurar como o recurso será acessado sobre TCP/UDP",
"protocol": "Protocolo", "protocol": "Protocolo",
"protocolSelect": "Selecione um protocolo", "protocolSelect": "Selecione um protocolo",
"resourcePortNumber": "Número da Porta", "resourcePortNumber": "Número da Porta",
"resourcePortNumberDescription": "O número da porta externa para requisições de proxy.", "resourcePortNumberDescription": "O número da porta externa para requisições de proxy.",
"cancel": "cancelar", "cancel": "cancelar",
"resourceConfig": "Snippets de Configuração", "resourceConfig": "Snippets de Configuração",
"resourceConfigDescription": "Copie e cole estes snippets de configuração para configurar o seu recurso TCP/UDP", "resourceConfigDescription": "Copie e cole estes snippets de configuração para configurar o recurso TCP/UDP",
"resourceAddEntrypoints": "Traefik: Adicionar pontos de entrada", "resourceAddEntrypoints": "Traefik: Adicionar pontos de entrada",
"resourceExposePorts": "Gerbil: Expor Portas no Docker Compose", "resourceExposePorts": "Gerbil: Expor Portas no Docker Compose",
"resourceLearnRaw": "Aprenda como configurar os recursos TCP/UDP", "resourceLearnRaw": "Aprenda como configurar os recursos TCP/UDP",
@@ -202,14 +204,14 @@
"proxy": "Proxy", "proxy": "Proxy",
"internal": "Interno", "internal": "Interno",
"rules": "Regras", "rules": "Regras",
"resourceSettingDescription": "Configure as configurações do seu recurso", "resourceSettingDescription": "Configure as configurações do recurso",
"resourceSetting": "Configurações do {resourceName}", "resourceSetting": "Configurações do {resourceName}",
"alwaysAllow": "Sempre permitir", "alwaysAllow": "Autenticação de bypass",
"alwaysDeny": "Sempre negar", "alwaysDeny": "Bloquear Acesso",
"passToAuth": "Passar para Autenticação", "passToAuth": "Passar para Autenticação",
"orgSettingsDescription": "Configurar as configurações gerais da sua organização", "orgSettingsDescription": "Configurar configurações da organização",
"orgGeneralSettings": "Configurações da organização", "orgGeneralSettings": "Configurações da organização",
"orgGeneralSettingsDescription": "Gerir os detalhes e a configuração da sua organização", "orgGeneralSettingsDescription": "Gerenciar os detalhes e a configuração da organização",
"saveGeneralSettings": "Guardar configurações gerais", "saveGeneralSettings": "Guardar configurações gerais",
"saveSettings": "Guardar Configurações", "saveSettings": "Guardar Configurações",
"orgDangerZone": "Zona de Perigo", "orgDangerZone": "Zona de Perigo",
@@ -232,7 +234,7 @@
"orgMissing": "ID da Organização Ausente", "orgMissing": "ID da Organização Ausente",
"orgMissingMessage": "Não é possível regenerar o convite sem um ID de organização.", "orgMissingMessage": "Não é possível regenerar o convite sem um ID de organização.",
"accessUsersManage": "Gerir Utilizadores", "accessUsersManage": "Gerir Utilizadores",
"accessUsersDescription": "Convidar utilizadores e adicioná-los a funções para gerir o acesso à sua organização", "accessUsersDescription": "Convidar e gerenciar usuários com acesso a esta organização",
"accessUsersSearch": "Procurar utilizadores...", "accessUsersSearch": "Procurar utilizadores...",
"accessUserCreate": "Criar Usuário", "accessUserCreate": "Criar Usuário",
"accessUserRemove": "Remover utilizador", "accessUserRemove": "Remover utilizador",
@@ -241,13 +243,13 @@
"role": "Funções", "role": "Funções",
"nameRequired": "O nome é obrigatório", "nameRequired": "O nome é obrigatório",
"accessRolesManage": "Gerir Funções", "accessRolesManage": "Gerir Funções",
"accessRolesDescription": "Configurar funções para gerir o acesso à sua organização", "accessRolesDescription": "Criar e gerenciar funções para os usuários na organização",
"accessRolesSearch": "Pesquisar funções...", "accessRolesSearch": "Pesquisar funções...",
"accessRolesAdd": "Adicionar função", "accessRolesAdd": "Adicionar função",
"accessRoleDelete": "Excluir Papel", "accessRoleDelete": "Excluir Papel",
"description": "Descrição:", "description": "Descrição:",
"inviteTitle": "Convites Abertos", "inviteTitle": "Convites Abertos",
"inviteDescription": "Gerir seus convites para outros utilizadores", "inviteDescription": "Gerenciar convites para outros usuários participarem da organização",
"inviteSearch": "Procurar convites...", "inviteSearch": "Procurar convites...",
"minutes": "minutos", "minutes": "minutos",
"hours": "horas", "hours": "horas",
@@ -261,13 +263,13 @@
"apiKeysErrorCreate": "Erro ao criar chave API", "apiKeysErrorCreate": "Erro ao criar chave API",
"apiKeysErrorSetPermission": "Erro ao definir permissões", "apiKeysErrorSetPermission": "Erro ao definir permissões",
"apiKeysCreate": "Gerar Chave API", "apiKeysCreate": "Gerar Chave API",
"apiKeysCreateDescription": "Gerar uma nova chave API para sua organização", "apiKeysCreateDescription": "Gerar uma nova chave de API para a organização",
"apiKeysGeneralSettings": "Permissões", "apiKeysGeneralSettings": "Permissões",
"apiKeysGeneralSettingsDescription": "Determine o que esta chave API pode fazer", "apiKeysGeneralSettingsDescription": "Determine o que esta chave API pode fazer",
"apiKeysList": "Sua Chave API", "apiKeysList": "Nova chave de API",
"apiKeysSave": "Guardar Sua Chave API", "apiKeysSave": "Salvar a chave API",
"apiKeysSaveDescription": "Você só poderá ver isto uma vez. Certifique-se de copiá-la para um local seguro.", "apiKeysSaveDescription": "Você só poderá ver isto uma vez. Certifique-se de copiá-la para um local seguro.",
"apiKeysInfo": "Sua chave API é:", "apiKeysInfo": "A chave API é:",
"apiKeysConfirmCopy": "Eu copiei a chave API", "apiKeysConfirmCopy": "Eu copiei a chave API",
"generate": "Gerar", "generate": "Gerar",
"done": "Concluído", "done": "Concluído",
@@ -424,7 +426,7 @@
"userCreated": "Usuário criado", "userCreated": "Usuário criado",
"userCreatedDescription": "O utilizador foi criado com sucesso.", "userCreatedDescription": "O utilizador foi criado com sucesso.",
"userTypeInternal": "Usuário Interno", "userTypeInternal": "Usuário Interno",
"userTypeInternalDescription": "Convidar um utilizador para se juntar à sua organização diretamente.", "userTypeInternalDescription": "Convide um usuário para participar diretamente da organização.",
"userTypeExternal": "Usuário Externo", "userTypeExternal": "Usuário Externo",
"userTypeExternalDescription": "Criar um utilizador com um provedor de identidade externo.", "userTypeExternalDescription": "Criar um utilizador com um provedor de identidade externo.",
"accessUserCreateDescription": "Siga os passos abaixo para criar um novo utilizador", "accessUserCreateDescription": "Siga os passos abaixo para criar um novo utilizador",
@@ -436,6 +438,16 @@
"inviteEmailSent": "Enviar e-mail de convite para o utilizador", "inviteEmailSent": "Enviar e-mail de convite para o utilizador",
"inviteValid": "Válido Por", "inviteValid": "Válido Por",
"selectDuration": "Selecionar duração", "selectDuration": "Selecionar duração",
"selectResource": "Selecionar Recurso",
"filterByResource": "Filtrar por Recurso",
"resetFilters": "Redefinir filtros",
"totalBlocked": "Solicitações bloqueadas pelo Pangolin",
"totalRequests": "Total de pedidos",
"requestsByCountry": "Solicitações por país",
"requestsByDay": "Requisições Por Dia",
"blocked": "Bloqueado",
"allowed": "Permitido",
"topCountries": "Principais países",
"accessRoleSelect": "Selecionar função", "accessRoleSelect": "Selecionar função",
"inviteEmailSentDescription": "Um e-mail foi enviado ao utilizador com o link de acesso abaixo. Eles devem aceder ao link para aceitar o convite.", "inviteEmailSentDescription": "Um e-mail foi enviado ao utilizador com o link de acesso abaixo. Eles devem aceder ao link para aceitar o convite.",
"inviteSentDescription": "O utilizador foi convidado. Eles devem aceder ao link abaixo para aceitar o convite.", "inviteSentDescription": "O utilizador foi convidado. Eles devem aceder ao link abaixo para aceitar o convite.",
@@ -458,13 +470,13 @@
"accessControlsSubmit": "Guardar Controlos de Acesso", "accessControlsSubmit": "Guardar Controlos de Acesso",
"roles": "Funções", "roles": "Funções",
"accessUsersRoles": "Gerir Utilizadores e Funções", "accessUsersRoles": "Gerir Utilizadores e Funções",
"accessUsersRolesDescription": "Convide utilizadores e adicione-os a funções para gerir o acesso à sua organização", "accessUsersRolesDescription": "Convidar usuários e adicioná-los a funções para gerenciar o acesso à organização",
"key": "Chave", "key": "Chave",
"createdAt": "Criado Em", "createdAt": "Criado Em",
"proxyErrorInvalidHeader": "Valor do cabeçalho Host personalizado inválido. Use o formato de nome de domínio ou salve vazio para remover o cabeçalho Host personalizado.", "proxyErrorInvalidHeader": "Valor do cabeçalho Host personalizado inválido. Use o formato de nome de domínio ou salve vazio para remover o cabeçalho Host personalizado.",
"proxyErrorTls": "Nome do Servidor TLS inválido. Use o formato de nome de domínio ou salve vazio para remover o Nome do Servidor TLS.", "proxyErrorTls": "Nome do Servidor TLS inválido. Use o formato de nome de domínio ou salve vazio para remover o Nome do Servidor TLS.",
"proxyEnableSSL": "Habilitar SSL", "proxyEnableSSL": "Habilitar SSL",
"proxyEnableSSLDescription": "Habilitar criptografia SSL/TLS para conexões HTTPS seguras a seus alvos.", "proxyEnableSSLDescription": "Habilitar criptografia SSL/TLS para conexões HTTPS seguras aos alvos.",
"target": "Target", "target": "Target",
"configureTarget": "Configurar Alvos", "configureTarget": "Configurar Alvos",
"targetErrorFetch": "Falha ao buscar alvos", "targetErrorFetch": "Falha ao buscar alvos",
@@ -480,29 +492,29 @@
"targetsErrorUpdate": "Falha ao atualizar alvos", "targetsErrorUpdate": "Falha ao atualizar alvos",
"targetsErrorUpdateDescription": "Ocorreu um erro ao atualizar alvos", "targetsErrorUpdateDescription": "Ocorreu um erro ao atualizar alvos",
"targetTlsUpdate": "Configurações TLS atualizadas", "targetTlsUpdate": "Configurações TLS atualizadas",
"targetTlsUpdateDescription": "Suas configurações TLS foram atualizadas com sucesso", "targetTlsUpdateDescription": "Configurações TLS foram atualizadas com sucesso",
"targetErrorTlsUpdate": "Falha ao atualizar configurações TLS", "targetErrorTlsUpdate": "Falha ao atualizar configurações TLS",
"targetErrorTlsUpdateDescription": "Ocorreu um erro ao atualizar as configurações TLS", "targetErrorTlsUpdateDescription": "Ocorreu um erro ao atualizar as configurações TLS",
"proxyUpdated": "Configurações de proxy atualizadas", "proxyUpdated": "Configurações de proxy atualizadas",
"proxyUpdatedDescription": "Suas configurações de proxy foram atualizadas com sucesso", "proxyUpdatedDescription": "Configurações de proxy atualizadas com sucesso",
"proxyErrorUpdate": "Falha ao atualizar configurações de proxy", "proxyErrorUpdate": "Falha ao atualizar configurações de proxy",
"proxyErrorUpdateDescription": "Ocorreu um erro ao atualizar as configurações de proxy", "proxyErrorUpdateDescription": "Ocorreu um erro ao atualizar as configurações de proxy",
"targetAddr": "IP / Nome do Host", "targetAddr": "Servidor",
"targetPort": "Porta", "targetPort": "Porta",
"targetProtocol": "Protocolo", "targetProtocol": "Protocolo",
"targetTlsSettings": "Configuração de conexão segura", "targetTlsSettings": "Configuração de conexão segura",
"targetTlsSettingsDescription": "Configurar configurações SSL/TLS para seu recurso", "targetTlsSettingsDescription": "Configurar configurações SSL/TLS para o recurso",
"targetTlsSettingsAdvanced": "Configurações TLS Avançadas", "targetTlsSettingsAdvanced": "Configurações TLS Avançadas",
"targetTlsSni": "Nome do Servidor TLS", "targetTlsSni": "Nome do Servidor TLS",
"targetTlsSniDescription": "O Nome do Servidor TLS para usar para SNI. Deixe vazio para usar o padrão.", "targetTlsSniDescription": "O Nome do Servidor TLS para usar para SNI. Deixe vazio para usar o padrão.",
"targetTlsSubmit": "Guardar Configurações", "targetTlsSubmit": "Guardar Configurações",
"targets": "Configuração de Alvos", "targets": "Configuração de Alvos",
"targetsDescription": "Configure alvos para rotear tráfego para seus serviços de backend", "targetsDescription": "Configurar alvos para tráfego de rota para serviços de backend",
"targetStickySessions": "Ativar Sessões Persistentes", "targetStickySessions": "Ativar Sessões Persistentes",
"targetStickySessionsDescription": "Manter conexões no mesmo alvo backend durante toda a sessão.", "targetStickySessionsDescription": "Manter conexões no mesmo alvo backend durante toda a sessão.",
"methodSelect": "Selecionar método", "methodSelect": "Selecionar método",
"targetSubmit": "Adicionar Alvo", "targetSubmit": "Adicionar Alvo",
"targetNoOne": "Este recurso não tem nenhum alvo. Adicione um alvo para configurar para onde enviar solicitações para sua área de administração.", "targetNoOne": "Este recurso não tem nenhum alvo. Adicione um alvo para configurar para onde enviar solicitações para o backend.",
"targetNoOneDescription": "Adicionar mais de um alvo acima habilitará o balanceamento de carga.", "targetNoOneDescription": "Adicionar mais de um alvo acima habilitará o balanceamento de carga.",
"targetsSubmit": "Guardar Alvos", "targetsSubmit": "Guardar Alvos",
"addTarget": "Adicionar Alvo", "addTarget": "Adicionar Alvo",
@@ -516,9 +528,11 @@
"targetCreatedDescription": "O alvo foi criado com sucesso", "targetCreatedDescription": "O alvo foi criado com sucesso",
"targetErrorCreate": "Falha ao criar destino", "targetErrorCreate": "Falha ao criar destino",
"targetErrorCreateDescription": "Ocorreu um erro ao criar o destino", "targetErrorCreateDescription": "Ocorreu um erro ao criar o destino",
"tlsServerName": "Nome do Servidor TLS",
"tlsServerNameDescription": "O nome do servidor TLS a ser usado para SNI",
"save": "Guardar", "save": "Guardar",
"proxyAdditional": "Configurações Adicionais de Proxy", "proxyAdditional": "Configurações Adicionais de Proxy",
"proxyAdditionalDescription": "Configure como seu recurso lida com configurações de proxy", "proxyAdditionalDescription": "Configurar como o recurso lida com as configurações de proxy",
"proxyCustomHeader": "Cabeçalho Host Personalizado", "proxyCustomHeader": "Cabeçalho Host Personalizado",
"proxyCustomHeaderDescription": "O cabeçalho host para definir ao fazer proxy de requisições. Deixe vazio para usar o padrão.", "proxyCustomHeaderDescription": "O cabeçalho host para definir ao fazer proxy de requisições. Deixe vazio para usar o padrão.",
"proxyAdditionalSubmit": "Guardar Configurações de Proxy", "proxyAdditionalSubmit": "Guardar Configurações de Proxy",
@@ -558,7 +572,7 @@
"rulesMatchType": "Tipo de Correspondência", "rulesMatchType": "Tipo de Correspondência",
"value": "Valor", "value": "Valor",
"rulesAbout": "Sobre Regras", "rulesAbout": "Sobre Regras",
"rulesAboutDescription": "As regras permitem controlar o acesso ao seu recurso com base em um conjunto de critérios. Você pode criar regras para permitir ou negar acesso com base no endereço IP ou caminho URL.", "rulesAboutDescription": "Regras permitem que você controle o acesso ao recurso com base em um conjunto de critérios. Você pode criar regras para permitir ou negar acesso baseado no endereço IP ou caminho de URL.",
"rulesActions": "Ações", "rulesActions": "Ações",
"rulesActionAlwaysAllow": "Sempre Permitir: Ignorar todos os métodos de autenticação", "rulesActionAlwaysAllow": "Sempre Permitir: Ignorar todos os métodos de autenticação",
"rulesActionAlwaysDeny": "Sempre Negar: Bloquear todas as requisições; nenhuma autenticação pode ser tentada", "rulesActionAlwaysDeny": "Sempre Negar: Bloquear todas as requisições; nenhuma autenticação pode ser tentada",
@@ -570,7 +584,7 @@
"rulesEnable": "Ativar Regras", "rulesEnable": "Ativar Regras",
"rulesEnableDescription": "Ativar ou desativar avaliação de regras para este recurso", "rulesEnableDescription": "Ativar ou desativar avaliação de regras para este recurso",
"rulesResource": "Configuração de Regras do Recurso", "rulesResource": "Configuração de Regras do Recurso",
"rulesResourceDescription": "Configure regras para controlar o acesso ao seu recurso", "rulesResourceDescription": "Configurar regras para controlar o acesso ao recurso",
"ruleSubmit": "Adicionar Regra", "ruleSubmit": "Adicionar Regra",
"rulesNoOne": "Sem regras. Adicione uma regra usando o formulário.", "rulesNoOne": "Sem regras. Adicione uma regra usando o formulário.",
"rulesOrder": "As regras são avaliadas por prioridade em ordem ascendente.", "rulesOrder": "As regras são avaliadas por prioridade em ordem ascendente.",
@@ -586,7 +600,7 @@
"none": "Nenhum", "none": "Nenhum",
"unknown": "Desconhecido", "unknown": "Desconhecido",
"resources": "Recursos", "resources": "Recursos",
"resourcesDescription": "Recursos são proxies para aplicações executando em sua rede privada. Crie um recurso para qualquer serviço HTTP/HTTPS ou TCP/UDP bruto em sua rede privada. Cada recurso deve estar conectado a um site para habilitar conectividade privada e segura através de um túnel WireGuard criptografado.", "resourcesDescription": "Os recursos são proxies para aplicativos em execução na rede privada. Crie um recurso para qualquer serviço HTTP/HTTPS ou TCP/UDP bruto na sua rede privada. Cada recurso deve ser conectado a um site para ativar a conectividade privada e segura através de um túnel do WireGuard criptografado.",
"resourcesWireGuardConnect": "Conectividade segura com criptografia WireGuard", "resourcesWireGuardConnect": "Conectividade segura com criptografia WireGuard",
"resourcesMultipleAuthenticationMethods": "Configure múltiplos métodos de autenticação", "resourcesMultipleAuthenticationMethods": "Configure múltiplos métodos de autenticação",
"resourcesUsersRolesAccess": "Controle de acesso baseado em utilizadores e funções", "resourcesUsersRolesAccess": "Controle de acesso baseado em utilizadores e funções",
@@ -597,7 +611,7 @@
"resourceSelect": "Selecionar recurso", "resourceSelect": "Selecionar recurso",
"shareLinks": "Links de Compartilhamento", "shareLinks": "Links de Compartilhamento",
"share": "Links Compartilháveis", "share": "Links Compartilháveis",
"shareDescription2": "Crie links compartilháveis para seus recursos. Os links fornecem acesso temporário ou ilimitado ao seu recurso. Você pode configurar a duração da expiração do link quando o criar.", "shareDescription2": "Crie links compartilháveis para recursos. Links fornecem acesso temporário ou ilimitado ao seu recurso. Você pode configurar a duração de expiração do link quando você criar um.",
"shareEasyCreate": "Fácil de criar e compartilhar", "shareEasyCreate": "Fácil de criar e compartilhar",
"shareConfigurableExpirationDuration": "Duração de expiração configurável", "shareConfigurableExpirationDuration": "Duração de expiração configurável",
"shareSecureAndRevocable": "Seguro e revogável", "shareSecureAndRevocable": "Seguro e revogável",
@@ -607,19 +621,19 @@
"unknownCommand": "Comando desconhecido", "unknownCommand": "Comando desconhecido",
"newtErrorFetchReleases": "Falha ao buscar informações da versão: {err}", "newtErrorFetchReleases": "Falha ao buscar informações da versão: {err}",
"newtErrorFetchLatest": "Erro ao buscar última versão: {err}", "newtErrorFetchLatest": "Erro ao buscar última versão: {err}",
"newtEndpoint": "Endpoint Newt", "newtEndpoint": "Endpoint",
"newtId": "ID Newt", "newtId": "ID",
"newtSecretKey": "Chave Secreta Newt", "newtSecretKey": "Chave Secreta",
"architecture": "Arquitetura", "architecture": "Arquitetura",
"sites": "sites", "sites": "sites",
"siteWgAnyClients": "Use qualquer cliente WireGuard para conectar. Você terá que endereçar seus recursos internos usando o IP do par.", "siteWgAnyClients": "Use qualquer cliente do WireGuard para se conectar. Você terá que endereçar recursos internos usando o IP de pares.",
"siteWgCompatibleAllClients": "Compatível com todos os clientes WireGuard", "siteWgCompatibleAllClients": "Compatível com todos os clientes WireGuard",
"siteWgManualConfigurationRequired": "Configuração manual necessária", "siteWgManualConfigurationRequired": "Configuração manual necessária",
"userErrorNotAdminOrOwner": "Usuário não é administrador ou proprietário", "userErrorNotAdminOrOwner": "Usuário não é administrador ou proprietário",
"pangolinSettings": "Configurações - Pangolin", "pangolinSettings": "Configurações - Pangolin",
"accessRoleYour": "Sua função:", "accessRoleYour": "Sua função:",
"accessRoleSelect2": "Selecionar uma função", "accessRoleSelect2": "Selecionar funções",
"accessUserSelect": "Selecionar um utilizador", "accessUserSelect": "Selecionar os usuários",
"otpEmailEnter": "Digite um e-mail", "otpEmailEnter": "Digite um e-mail",
"otpEmailEnterDescription": "Pressione enter para adicionar um e-mail após digitá-lo no campo de entrada.", "otpEmailEnterDescription": "Pressione enter para adicionar um e-mail após digitá-lo no campo de entrada.",
"otpEmailErrorInvalid": "Endereço de e-mail inválido. O caractere curinga (*) deve ser a parte local inteira.", "otpEmailErrorInvalid": "Endereço de e-mail inválido. O caractere curinga (*) deve ser a parte local inteira.",
@@ -671,7 +685,7 @@
"resourcePincodeSetupTitle": "Definir Código PIN", "resourcePincodeSetupTitle": "Definir Código PIN",
"resourcePincodeSetupTitleDescription": "Defina um código PIN para proteger este recurso", "resourcePincodeSetupTitleDescription": "Defina um código PIN para proteger este recurso",
"resourceRoleDescription": "Administradores sempre podem aceder este recurso.", "resourceRoleDescription": "Administradores sempre podem aceder este recurso.",
"resourceUsersRoles": "Utilizadores e Funções", "resourceUsersRoles": "Controlos de Acesso",
"resourceUsersRolesDescription": "Configure quais utilizadores e funções podem visitar este recurso", "resourceUsersRolesDescription": "Configure quais utilizadores e funções podem visitar este recurso",
"resourceUsersRolesSubmit": "Guardar Utilizadores e Funções", "resourceUsersRolesSubmit": "Guardar Utilizadores e Funções",
"resourceWhitelistSave": "Salvo com sucesso", "resourceWhitelistSave": "Salvo com sucesso",
@@ -702,6 +716,7 @@
"resourceTransferSubmit": "Transferir Recurso", "resourceTransferSubmit": "Transferir Recurso",
"siteDestination": "Site de Destino", "siteDestination": "Site de Destino",
"searchSites": "Pesquisar sites", "searchSites": "Pesquisar sites",
"countries": "Países",
"accessRoleCreate": "Criar Função", "accessRoleCreate": "Criar Função",
"accessRoleCreateDescription": "Crie uma nova função para agrupar utilizadores e gerir suas permissões.", "accessRoleCreateDescription": "Crie uma nova função para agrupar utilizadores e gerir suas permissões.",
"accessRoleCreateSubmit": "Criar Função", "accessRoleCreateSubmit": "Criar Função",
@@ -766,15 +781,15 @@
"idpOidcConfigure": "Configuração OAuth2/OIDC", "idpOidcConfigure": "Configuração OAuth2/OIDC",
"idpOidcConfigureDescription": "Configurar os endpoints e credenciais do provedor OAuth2/OIDC", "idpOidcConfigureDescription": "Configurar os endpoints e credenciais do provedor OAuth2/OIDC",
"idpClientId": "ID do Cliente", "idpClientId": "ID do Cliente",
"idpClientIdDescription": "O ID do cliente OAuth2 do seu provedor de identidade", "idpClientIdDescription": "O ID de cliente OAuth2 do provedor de identidade",
"idpClientSecret": "Segredo do Cliente", "idpClientSecret": "Segredo do Cliente",
"idpClientSecretDescription": "O segredo do cliente OAuth2 do seu provedor de identidade", "idpClientSecretDescription": "O segredo de cliente OAuth2 do provedor de identidade",
"idpAuthUrl": "URL de Autorização", "idpAuthUrl": "URL de Autorização",
"idpAuthUrlDescription": "O URL do endpoint de autorização OAuth2", "idpAuthUrlDescription": "O URL do endpoint de autorização OAuth2",
"idpTokenUrl": "URL do Token", "idpTokenUrl": "URL do Token",
"idpTokenUrlDescription": "O URL do endpoint do token OAuth2", "idpTokenUrlDescription": "O URL do endpoint do token OAuth2",
"idpOidcConfigureAlert": "Informação Importante", "idpOidcConfigureAlert": "Informação Importante",
"idpOidcConfigureAlertDescription": "Após criar o provedor de identidade, será necessário configurar o URL de retorno nas configurações do seu provedor de identidade. O URL de retorno será fornecido após a criação bem-sucedida.", "idpOidcConfigureAlertDescription": "Depois de criar o provedor de identidade, você precisará configurar o URL de retorno de chamada nas configurações do provedor de identidade. A URL de retorno de chamada será fornecida após a criação com sucesso.",
"idpToken": "Configuração do Token", "idpToken": "Configuração do Token",
"idpTokenDescription": "Configurar como extrair informações do utilizador do token ID", "idpTokenDescription": "Configurar como extrair informações do utilizador do token ID",
"idpJmespathAbout": "Sobre JMESPath", "idpJmespathAbout": "Sobre JMESPath",
@@ -791,7 +806,7 @@
"idpSubmit": "Criar Provedor de Identidade", "idpSubmit": "Criar Provedor de Identidade",
"orgPolicies": "Políticas da Organização", "orgPolicies": "Políticas da Organização",
"idpSettings": "Configurações de {idpName}", "idpSettings": "Configurações de {idpName}",
"idpCreateSettingsDescription": "Configurar as definições para o seu provedor de identidade", "idpCreateSettingsDescription": "Configure as configurações para o provedor de identidade",
"roleMapping": "Mapeamento de Funções", "roleMapping": "Mapeamento de Funções",
"orgMapping": "Mapeamento da Organização", "orgMapping": "Mapeamento da Organização",
"orgPoliciesSearch": "Pesquisar políticas da organização...", "orgPoliciesSearch": "Pesquisar políticas da organização...",
@@ -826,7 +841,7 @@
"idpUpdatedDescription": "Provedor de identidade atualizado com sucesso", "idpUpdatedDescription": "Provedor de identidade atualizado com sucesso",
"redirectUrl": "URL de Redirecionamento", "redirectUrl": "URL de Redirecionamento",
"redirectUrlAbout": "Sobre o URL de Redirecionamento", "redirectUrlAbout": "Sobre o URL de Redirecionamento",
"redirectUrlAboutDescription": "Este é o URL para o qual os utilizadores serão redirecionados após a autenticação. Precisa configurar este URL nas configurações do seu provedor de identidade.", "redirectUrlAboutDescription": "Essa é a URL para a qual os usuários serão redirecionados após a autenticação. Você precisa configurar esta URL nas configurações do provedor de identidade.",
"pangolinAuth": "Autenticação - Pangolin", "pangolinAuth": "Autenticação - Pangolin",
"verificationCodeLengthRequirements": "O seu código de verificação deve ter 8 caracteres.", "verificationCodeLengthRequirements": "O seu código de verificação deve ter 8 caracteres.",
"errorOccurred": "Ocorreu um erro", "errorOccurred": "Ocorreu um erro",
@@ -909,6 +924,10 @@
"passwordResetSent": "Enviaremos um código de redefinição de palavra-passe para este email.", "passwordResetSent": "Enviaremos um código de redefinição de palavra-passe para este email.",
"passwordResetCode": "Código de Redefinição", "passwordResetCode": "Código de Redefinição",
"passwordResetCodeDescription": "Verifique o seu email para obter o código de redefinição.", "passwordResetCodeDescription": "Verifique o seu email para obter o código de redefinição.",
"generatePasswordResetCode": "Gerar código de redefinição de senha",
"passwordResetCodeGenerated": "Código de redefinição de senha gerado",
"passwordResetCodeGeneratedDescription": "Compartilhe este código com o usuário. Eles podem usá-lo para redefinir sua senha.",
"passwordResetUrl": "Reset URL",
"passwordNew": "Nova Palavra-passe", "passwordNew": "Nova Palavra-passe",
"passwordNewConfirm": "Confirmar Nova Palavra-passe", "passwordNewConfirm": "Confirmar Nova Palavra-passe",
"changePassword": "Mudar a senha", "changePassword": "Mudar a senha",
@@ -926,6 +945,9 @@
"pincodeAuth": "Código do Autenticador", "pincodeAuth": "Código do Autenticador",
"pincodeSubmit2": "Submeter Código", "pincodeSubmit2": "Submeter Código",
"passwordResetSubmit": "Solicitar Redefinição", "passwordResetSubmit": "Solicitar Redefinição",
"passwordResetAlreadyHaveCode": "Digitar Código de Redefinição de Senha",
"passwordResetSmtpRequired": "Por favor, contate o administrador",
"passwordResetSmtpRequiredDescription": "É necessário um código de redefinição de senha para redefinir sua senha. Por favor, contate o administrador para assistência.",
"passwordBack": "Voltar à Palavra-passe", "passwordBack": "Voltar à Palavra-passe",
"loginBack": "Voltar ao início de sessão", "loginBack": "Voltar ao início de sessão",
"signup": "Registar", "signup": "Registar",
@@ -1091,12 +1113,15 @@
"actionListSiteResources": "Listar Recursos do Site", "actionListSiteResources": "Listar Recursos do Site",
"actionUpdateSiteResource": "Atualizar Recurso do Site", "actionUpdateSiteResource": "Atualizar Recurso do Site",
"actionListInvitations": "Listar Convites", "actionListInvitations": "Listar Convites",
"actionExportLogs": "Exportar logs",
"actionViewLogs": "Visualizar registros",
"noneSelected": "Nenhum selecionado", "noneSelected": "Nenhum selecionado",
"orgNotFound2": "Nenhuma organização encontrada.", "orgNotFound2": "Nenhuma organização encontrada.",
"searchProgress": "Pesquisar...", "searchProgress": "Pesquisar...",
"create": "Criar", "create": "Criar",
"orgs": "Organizações", "orgs": "Organizações",
"loginError": "Ocorreu um erro ao iniciar sessão", "loginError": "Ocorreu um erro ao iniciar sessão",
"loginRequiredForDevice": "É necessário entrar para autenticar seu dispositivo.",
"passwordForgot": "Esqueceu a sua palavra-passe?", "passwordForgot": "Esqueceu a sua palavra-passe?",
"otpAuth": "Autenticação de Dois Fatores", "otpAuth": "Autenticação de Dois Fatores",
"otpAuthDescription": "Insira o código da sua aplicação de autenticação ou um dos seus códigos de backup de uso único.", "otpAuthDescription": "Insira o código da sua aplicação de autenticação ou um dos seus códigos de backup de uso único.",
@@ -1151,37 +1176,47 @@
"sidebarHome": "Residencial", "sidebarHome": "Residencial",
"sidebarSites": "sites", "sidebarSites": "sites",
"sidebarResources": "Recursos", "sidebarResources": "Recursos",
"sidebarProxyResources": "Público",
"sidebarClientResources": "Privado",
"sidebarAccessControl": "Controle de Acesso", "sidebarAccessControl": "Controle de Acesso",
"sidebarLogsAndAnalytics": "Registros e Análises",
"sidebarUsers": "Utilizadores", "sidebarUsers": "Utilizadores",
"sidebarAdmin": "Administrador",
"sidebarInvitations": "Convites", "sidebarInvitations": "Convites",
"sidebarRoles": "Papéis", "sidebarRoles": "Papéis",
"sidebarShareableLinks": "Links compartilháveis", "sidebarShareableLinks": "Links",
"sidebarApiKeys": "Chaves API", "sidebarApiKeys": "Chaves API",
"sidebarSettings": "Configurações", "sidebarSettings": "Configurações",
"sidebarAllUsers": "Todos os utilizadores", "sidebarAllUsers": "Todos os utilizadores",
"sidebarIdentityProviders": "Provedores de identidade", "sidebarIdentityProviders": "Provedores de identidade",
"sidebarLicense": "Tipo:", "sidebarLicense": "Tipo:",
"sidebarClients": "Clientes", "sidebarClients": "Clientes",
"sidebarUserDevices": "Utilizadores",
"sidebarMachineClients": "Máquinas",
"sidebarDomains": "Domínios", "sidebarDomains": "Domínios",
"sidebarGeneral": "Gerais",
"sidebarLogAndAnalytics": "Registo & Análise",
"sidebarBluePrints": "Diagramas", "sidebarBluePrints": "Diagramas",
"sidebarOrganization": "Organização",
"sidebarLogsAnalytics": "Análises",
"blueprints": "Diagramas", "blueprints": "Diagramas",
"blueprintsDescription": "Diagramas são configurações declarativas YAML que definem seus recursos e suas configurações", "blueprintsDescription": "Aplicar configurações declarativas e ver execuções anteriores",
"blueprintAdd": "Adicionar Diagrama", "blueprintAdd": "Adicionar Diagrama",
"blueprintGoBack": "Ver todos os Diagramas", "blueprintGoBack": "Ver todos os Diagramas",
"blueprintCreate": "Criar Diagrama", "blueprintCreate": "Criar Diagrama",
"blueprintCreateDescription2": "Siga as etapas abaixo para criar e aplicar um novo diagrama", "blueprintCreateDescription2": "Siga as etapas abaixo para criar e aplicar um novo diagrama",
"blueprintDetails": "Detalhes do Diagrama", "blueprintDetails": "Detalhes do Diagrama",
"blueprintDetailsDescription": "Veja os detalhes da execução do diagrama", "blueprintDetailsDescription": "Veja o resultado do diagrama aplicado e todos os erros que ocorreram",
"blueprintInfo": "Informação do Diagrama", "blueprintInfo": "Informação do Diagrama",
"message": "mensagem", "message": "mensagem",
"blueprintContentsDescription": "Defina o conteúdo YAML descrevendo a sua infraestrutura", "blueprintContentsDescription": "Definir o conteúdo YAML descrevendo a infraestrutura",
"blueprintErrorCreateDescription": "Ocorreu um erro ao aplicar o diagrama", "blueprintErrorCreateDescription": "Ocorreu um erro ao aplicar o diagrama",
"blueprintErrorCreate": "Erro ao criar diagrama", "blueprintErrorCreate": "Erro ao criar diagrama",
"searchBlueprintProgress": "Pesquisar diagramas...", "searchBlueprintProgress": "Pesquisar diagramas...",
"appliedAt": "Aplicado em", "appliedAt": "Aplicado em",
"source": "fonte", "source": "fonte",
"contents": "Conteúdo", "contents": "Conteúdo",
"parsedContents": "Conteúdo analisado", "parsedContents": "Conteúdo analisado (Somente Leitura)",
"enableDockerSocket": "Habilitar o Diagrama Docker", "enableDockerSocket": "Habilitar o Diagrama Docker",
"enableDockerSocketDescription": "Ativar a scraping de rótulo Docker para rótulos de diagramas. Caminho de Socket deve ser fornecido para Newt.", "enableDockerSocketDescription": "Ativar a scraping de rótulo Docker para rótulos de diagramas. Caminho de Socket deve ser fornecido para Newt.",
"enableDockerSocketLink": "Saiba mais", "enableDockerSocketLink": "Saiba mais",
@@ -1230,15 +1265,15 @@
"loading": "Carregando", "loading": "Carregando",
"restart": "Reiniciar", "restart": "Reiniciar",
"domains": "Domínios", "domains": "Domínios",
"domainsDescription": "Gerir domínios para sua organização", "domainsDescription": "Criar e gerenciar domínios disponíveis na organização",
"domainsSearch": "Pesquisar domínios...", "domainsSearch": "Pesquisar domínios...",
"domainAdd": "Adicionar Domínio", "domainAdd": "Adicionar Domínio",
"domainAddDescription": "Registre um novo domínio com sua organização", "domainAddDescription": "Registrar um novo domínio com a organização",
"domainCreate": "Criar Domínio", "domainCreate": "Criar Domínio",
"domainCreatedDescription": "Domínio criado com sucesso", "domainCreatedDescription": "Domínio criado com sucesso",
"domainDeletedDescription": "Domínio deletado com sucesso", "domainDeletedDescription": "Domínio deletado com sucesso",
"domainQuestionRemove": "Tem certeza de que deseja remover o domínio da sua conta?", "domainQuestionRemove": "Tem certeza de que deseja excluir o domínio?",
"domainMessageRemove": "Uma vez removido, o domínio não estará mais associado à sua conta.", "domainMessageRemove": "Uma vez removido, o domínio não será mais associado à organização.",
"domainConfirmDelete": "Confirmar Exclusão de Domínio", "domainConfirmDelete": "Confirmar Exclusão de Domínio",
"domainDelete": "Excluir Domínio", "domainDelete": "Excluir Domínio",
"domain": "Domínio", "domain": "Domínio",
@@ -1257,7 +1292,7 @@
"pending": "Pendente", "pending": "Pendente",
"sidebarBilling": "Faturamento", "sidebarBilling": "Faturamento",
"billing": "Faturamento", "billing": "Faturamento",
"orgBillingDescription": "Gerir suas informações de faturação e assinaturas", "orgBillingDescription": "Gerenciar informações e assinaturas de cobrança",
"github": "GitHub", "github": "GitHub",
"pangolinHosted": "Hospedagem Pangolin", "pangolinHosted": "Hospedagem Pangolin",
"fossorial": "Fossorial", "fossorial": "Fossorial",
@@ -1279,6 +1314,15 @@
"settingsErrorUpdateDescription": "Ocorreu um erro ao atualizar configurações", "settingsErrorUpdateDescription": "Ocorreu um erro ao atualizar configurações",
"sidebarCollapse": "Recolher", "sidebarCollapse": "Recolher",
"sidebarExpand": "Expandir", "sidebarExpand": "Expandir",
"productUpdateMoreInfo": "Mais {noOfUpdates} atualizações",
"productUpdateInfo": "Atualizações {noOfUpdates}",
"productUpdateWhatsNew": "Novidades",
"productUpdateTitle": "Atualizações de Produto",
"productUpdateEmpty": "Não há atualizações",
"dismissAll": "Recusar tudo",
"pangolinUpdateAvailable": "Atualização disponível",
"pangolinUpdateAvailableInfo": "A versão {version} está pronta para ser instalada",
"pangolinUpdateAvailableReleaseNotes": "Ver notas de versão",
"newtUpdateAvailable": "Nova Atualização Disponível", "newtUpdateAvailable": "Nova Atualização Disponível",
"newtUpdateAvailableInfo": "Uma nova versão do Newt está disponível. Atualize para a versão mais recente para uma melhor experiência.", "newtUpdateAvailableInfo": "Uma nova versão do Newt está disponível. Atualize para a versão mais recente para uma melhor experiência.",
"domainPickerEnterDomain": "Domínio", "domainPickerEnterDomain": "Domínio",
@@ -1291,7 +1335,7 @@
"domainPickerSortAsc": "A-Z", "domainPickerSortAsc": "A-Z",
"domainPickerSortDesc": "Z-A", "domainPickerSortDesc": "Z-A",
"domainPickerCheckingAvailability": "Verificando disponibilidade...", "domainPickerCheckingAvailability": "Verificando disponibilidade...",
"domainPickerNoMatchingDomains": "Nenhum domínio correspondente encontrado. Tente um domínio diferente ou verifique as configurações do domínio da sua organização.", "domainPickerNoMatchingDomains": "Nenhum domínio correspondente encontrado. Tente um domínio diferente ou verifique as configurações do domínio da organização.",
"domainPickerOrganizationDomains": "Domínios da Organização", "domainPickerOrganizationDomains": "Domínios da Organização",
"domainPickerProvidedDomains": "Domínios Fornecidos", "domainPickerProvidedDomains": "Domínios Fornecidos",
"domainPickerSubdomain": "Subdomínio: {subdomain}", "domainPickerSubdomain": "Subdomínio: {subdomain}",
@@ -1325,7 +1369,7 @@
"billingModifySubscription": "Modificar Assinatura", "billingModifySubscription": "Modificar Assinatura",
"billingStartSubscription": "Iniciar Assinatura", "billingStartSubscription": "Iniciar Assinatura",
"billingRecurringCharge": "Cobrança Recorrente", "billingRecurringCharge": "Cobrança Recorrente",
"billingManageSubscriptionSettings": "Gerenciar as configurações e preferências da sua assinatura", "billingManageSubscriptionSettings": "Gerenciar configurações de assinatura e preferências",
"billingNoActiveSubscription": "Você não tem uma assinatura ativa. Inicie sua assinatura para aumentar os limites de uso.", "billingNoActiveSubscription": "Você não tem uma assinatura ativa. Inicie sua assinatura para aumentar os limites de uso.",
"billingFailedToLoadSubscription": "Falha ao carregar assinatura", "billingFailedToLoadSubscription": "Falha ao carregar assinatura",
"billingFailedToLoadUsage": "Falha ao carregar uso", "billingFailedToLoadUsage": "Falha ao carregar uso",
@@ -1336,9 +1380,9 @@
"billingPortalError": "Erro do Portal", "billingPortalError": "Erro do Portal",
"billingDataUsageInfo": "Você é cobrado por todos os dados transferidos através de seus túneis seguros quando conectado à nuvem. Isso inclui o tráfego de entrada e saída em todos os seus sites. Quando você atingir o seu limite, seus sites desconectarão até que você atualize seu plano ou reduza o uso. Os dados não serão cobrados ao usar os nós.", "billingDataUsageInfo": "Você é cobrado por todos os dados transferidos através de seus túneis seguros quando conectado à nuvem. Isso inclui o tráfego de entrada e saída em todos os seus sites. Quando você atingir o seu limite, seus sites desconectarão até que você atualize seu plano ou reduza o uso. Os dados não serão cobrados ao usar os nós.",
"billingOnlineTimeInfo": "Cobrança de acordo com o tempo em que seus sites permanecem conectados à nuvem. Por exemplo, 44,640 minutos é igual a um site que roda 24/7 para um mês inteiro. Quando você atinge o seu limite, seus sites desconectarão até que você faça o upgrade do seu plano ou reduza o uso. O tempo não é cobrado ao usar nós.", "billingOnlineTimeInfo": "Cobrança de acordo com o tempo em que seus sites permanecem conectados à nuvem. Por exemplo, 44,640 minutos é igual a um site que roda 24/7 para um mês inteiro. Quando você atinge o seu limite, seus sites desconectarão até que você faça o upgrade do seu plano ou reduza o uso. O tempo não é cobrado ao usar nós.",
"billingUsersInfo": "Você será cobrado por cada usuário em sua organização. A cobrança é calculada diariamente com base no número de contas de usuário ativas em sua organização.", "billingUsersInfo": "A cobrança é feita por cada usuário na organização. A cobrança é feita diariamente com base no número de contas de usuário ativas na sua organização.",
"billingDomainInfo": "Você será cobrado por cada domínio em sua organização. A cobrança é calculada diariamente com base no número de contas de domínio ativas em sua organização.", "billingDomainInfo": "A cobrança é feita por cada domínio da organização. A cobrança é feita diariamente com base no número de contas de domínio ativas na sua organização.",
"billingRemoteExitNodesInfo": "Você será cobrado por cada Nodo gerenciado em sua organização. A cobrança é calculada diariamente com base no número de Nodos gerenciados ativos em sua organização.", "billingRemoteExitNodesInfo": "Você é cobrado por cada gerenciado na organização. A cobrança é calculada diariamente com base no número de s gerenciados ativos em sua organização.",
"domainNotFound": "Domínio Não Encontrado", "domainNotFound": "Domínio Não Encontrado",
"domainNotFoundDescription": "Este recurso está desativado porque o domínio não existe mais em nosso sistema. Defina um novo domínio para este recurso.", "domainNotFoundDescription": "Este recurso está desativado porque o domínio não existe mais em nosso sistema. Defina um novo domínio para este recurso.",
"failed": "Falhou", "failed": "Falhou",
@@ -1421,29 +1465,32 @@
"and": "e", "and": "e",
"privacyPolicy": "política de privacidade" "privacyPolicy": "política de privacidade"
}, },
"signUpMarketing": {
"keepMeInTheLoop": "Mantenha-me à disposição com notícias, atualizações e novos recursos por e-mail."
},
"siteRequired": "Site é obrigatório.", "siteRequired": "Site é obrigatório.",
"olmTunnel": "Olm Tunnel", "olmTunnel": "Olm Tunnel",
"olmTunnelDescription": "Use Olm para conectividade do cliente", "olmTunnelDescription": "Use Olm para conectividade do cliente",
"errorCreatingClient": "Erro ao criar cliente", "errorCreatingClient": "Erro ao criar cliente",
"clientDefaultsNotFound": "Padrões do cliente não encontrados", "clientDefaultsNotFound": "Padrões do cliente não encontrados",
"createClient": "Criar Cliente", "createClient": "Criar Cliente",
"createClientDescription": "Crie um novo cliente para conectar aos seus sites", "createClientDescription": "Criar um novo cliente para acessar recursos privados",
"seeAllClients": "Ver Todos os Clientes", "seeAllClients": "Ver Todos os Clientes",
"clientInformation": "Informações do Cliente", "clientInformation": "Informações do Cliente",
"clientNamePlaceholder": "Nome do cliente", "clientNamePlaceholder": "Nome do cliente",
"address": "Endereço", "address": "Endereço",
"subnetPlaceholder": "Sub-rede", "subnetPlaceholder": "Sub-rede",
"addressDescription": "O endereço que este cliente usará para conectividade", "addressDescription": "O endereço interno do cliente. Deve estar dentro da sub-rede da organização.",
"selectSites": "Selecionar sites", "selectSites": "Selecionar sites",
"sitesDescription": "O cliente terá conectividade com os sites selecionados", "sitesDescription": "O cliente terá conectividade com os sites selecionados",
"clientInstallOlm": "Instalar Olm", "clientInstallOlm": "Instalar Olm",
"clientInstallOlmDescription": "Execute o Olm em seu sistema", "clientInstallOlmDescription": "Execute o Olm em seu sistema",
"clientOlmCredentials": "Credenciais Olm", "clientOlmCredentials": "Credenciais",
"clientOlmCredentialsDescription": "É assim que Olm se autenticará com o servidor", "clientOlmCredentialsDescription": "É assim que o cliente irá se autenticar com o servidor",
"olmEndpoint": "Endpoint Olm", "olmEndpoint": "Endpoint",
"olmId": "ID Olm", "olmId": "ID",
"olmSecretKey": "Chave Secreta Olm", "olmSecretKey": "Chave Secreta",
"clientCredentialsSave": "Salve suas Credenciais", "clientCredentialsSave": "Salvar as Credenciais",
"clientCredentialsSaveDescription": "Você só poderá ver isto uma vez. Certifique-se de copiá-las para um local seguro.", "clientCredentialsSaveDescription": "Você só poderá ver isto uma vez. Certifique-se de copiá-las para um local seguro.",
"generalSettingsDescription": "Configure as configurações gerais para este cliente", "generalSettingsDescription": "Configure as configurações gerais para este cliente",
"clientUpdated": "Cliente atualizado", "clientUpdated": "Cliente atualizado",
@@ -1454,9 +1501,7 @@
"sitesFetchError": "Ocorreu um erro ao buscar sites.", "sitesFetchError": "Ocorreu um erro ao buscar sites.",
"olmErrorFetchReleases": "Ocorreu um erro ao buscar lançamentos do Olm.", "olmErrorFetchReleases": "Ocorreu um erro ao buscar lançamentos do Olm.",
"olmErrorFetchLatest": "Ocorreu um erro ao buscar o lançamento mais recente do Olm.", "olmErrorFetchLatest": "Ocorreu um erro ao buscar o lançamento mais recente do Olm.",
"remoteSubnets": "Sub-redes Remotas",
"enterCidrRange": "Insira o intervalo CIDR", "enterCidrRange": "Insira o intervalo CIDR",
"remoteSubnetsDescription": "Adicionar intervalos CIDR que podem ser acessados deste site remotamente usando clientes. Use um formato como 10.0.0.0/24. Isso SOMENTE se aplica à conectividade do cliente VPN.",
"resourceEnableProxy": "Ativar Proxy Público", "resourceEnableProxy": "Ativar Proxy Público",
"resourceEnableProxyDescription": "Permite proxy público para este recurso. Isso permite o acesso ao recurso de fora da rede através da nuvem em uma porta aberta. Requer configuração do Traefik.", "resourceEnableProxyDescription": "Permite proxy público para este recurso. Isso permite o acesso ao recurso de fora da rede através da nuvem em uma porta aberta. Requer configuração do Traefik.",
"externalProxyEnabled": "Proxy Externo Habilitado", "externalProxyEnabled": "Proxy Externo Habilitado",
@@ -1474,14 +1519,15 @@
"enableHealthChecksDescription": "Monitore a saúde deste alvo. Você pode monitorar um ponto de extremidade diferente do alvo, se necessário.", "enableHealthChecksDescription": "Monitore a saúde deste alvo. Você pode monitorar um ponto de extremidade diferente do alvo, se necessário.",
"healthScheme": "Método", "healthScheme": "Método",
"healthSelectScheme": "Selecione o Método", "healthSelectScheme": "Selecione o Método",
"healthCheckPortInvalid": "A porta do exame de saúde deve estar entre 1 e 65535",
"healthCheckPath": "Caminho", "healthCheckPath": "Caminho",
"healthHostname": "IP / Nome do Host", "healthHostname": "IP / Nome do Host",
"healthPort": "Porta", "healthPort": "Porta",
"healthCheckPathDescription": "O caminho para verificar o estado de saúde.", "healthCheckPathDescription": "O caminho para verificar o estado de saúde.",
"healthyIntervalSeconds": "Intervalo Saudável", "healthyIntervalSeconds": "Intervalo Saudável (seg)",
"unhealthyIntervalSeconds": "Intervalo Não Saudável", "unhealthyIntervalSeconds": "Intervalo Insalubre (seg)",
"IntervalSeconds": "Intervalo Saudável", "IntervalSeconds": "Intervalo Saudável",
"timeoutSeconds": "Tempo Limite", "timeoutSeconds": "Tempo limite (seg)",
"timeIsInSeconds": "O tempo está em segundos", "timeIsInSeconds": "O tempo está em segundos",
"retryAttempts": "Tentativas de Repetição", "retryAttempts": "Tentativas de Repetição",
"expectedResponseCodes": "Códigos de Resposta Esperados", "expectedResponseCodes": "Códigos de Resposta Esperados",
@@ -1517,16 +1563,22 @@
"resourceEditDomain": "Editar Domínio", "resourceEditDomain": "Editar Domínio",
"siteName": "Nome do Site", "siteName": "Nome do Site",
"proxyPort": "Porta", "proxyPort": "Porta",
"resourcesTableProxyResources": "Recursos de Proxy", "resourcesTableProxyResources": "Público",
"resourcesTableClientResources": "Recursos do Cliente", "resourcesTableClientResources": "Privado",
"resourcesTableNoProxyResourcesFound": "Nenhum recurso de proxy encontrado.", "resourcesTableNoProxyResourcesFound": "Nenhum recurso de proxy encontrado.",
"resourcesTableNoInternalResourcesFound": "Nenhum recurso interno encontrado.", "resourcesTableNoInternalResourcesFound": "Nenhum recurso interno encontrado.",
"resourcesTableDestination": "Destino", "resourcesTableDestination": "Destino",
"resourcesTableTheseResourcesForUseWith": "Esses recursos são para uso com", "resourcesTableAlias": "Alias",
"resourcesTableClients": "Clientes", "resourcesTableClients": "Clientes",
"resourcesTableAndOnlyAccessibleInternally": "e são acessíveis apenas internamente quando conectados com um cliente.", "resourcesTableAndOnlyAccessibleInternally": "e são acessíveis apenas internamente quando conectados com um cliente.",
"editInternalResourceDialogEditClientResource": "Editar Recurso do Cliente", "resourcesTableNoTargets": "Nenhum alvo",
"editInternalResourceDialogUpdateResourceProperties": "Atualize as propriedades do recurso e a configuração do alvo para {resourceName}.", "resourcesTableHealthy": "Saudável",
"resourcesTableDegraded": "Degradado",
"resourcesTableOffline": "Desconectado",
"resourcesTableUnknown": "Desconhecido",
"resourcesTableNotMonitored": "Não monitorado",
"editInternalResourceDialogEditClientResource": "Editar Recurso Privado",
"editInternalResourceDialogUpdateResourceProperties": "Atualizar as configurações de recursos e controles de acesso para {resourceName}",
"editInternalResourceDialogResourceProperties": "Propriedades do Recurso", "editInternalResourceDialogResourceProperties": "Propriedades do Recurso",
"editInternalResourceDialogName": "Nome", "editInternalResourceDialogName": "Nome",
"editInternalResourceDialogProtocol": "Protocolo", "editInternalResourceDialogProtocol": "Protocolo",
@@ -1545,11 +1597,22 @@
"editInternalResourceDialogInvalidIPAddressFormat": "Formato de endereço IP inválido", "editInternalResourceDialogInvalidIPAddressFormat": "Formato de endereço IP inválido",
"editInternalResourceDialogDestinationPortMin": "Porta de destino deve ser pelo menos 1", "editInternalResourceDialogDestinationPortMin": "Porta de destino deve ser pelo menos 1",
"editInternalResourceDialogDestinationPortMax": "Porta de destino deve ser inferior a 65536", "editInternalResourceDialogDestinationPortMax": "Porta de destino deve ser inferior a 65536",
"editInternalResourceDialogPortModeRequired": "Protocolo, porta de proxy e porta de destino são necessários para o modo de porto",
"editInternalResourceDialogMode": "Modo",
"editInternalResourceDialogModePort": "Porta",
"editInternalResourceDialogModeHost": "Servidor",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogDestination": "Destino",
"editInternalResourceDialogDestinationHostDescription": "O endereço IP ou o nome do host do recurso na rede do site.",
"editInternalResourceDialogDestinationIPDescription": "O IP ou endereço do hostname do recurso na rede do site.",
"editInternalResourceDialogDestinationCidrDescription": "A faixa CIDR do recurso na rede do site.",
"editInternalResourceDialogAlias": "Alias",
"editInternalResourceDialogAliasDescription": "Um alias de DNS interno opcional para este recurso.",
"createInternalResourceDialogNoSitesAvailable": "Nenhum Site Disponível", "createInternalResourceDialogNoSitesAvailable": "Nenhum Site Disponível",
"createInternalResourceDialogNoSitesAvailableDescription": "Você precisa ter pelo menos um site Newt com uma sub-rede configurada para criar recursos internos.", "createInternalResourceDialogNoSitesAvailableDescription": "Você precisa ter pelo menos um site Newt com uma sub-rede configurada para criar recursos internos.",
"createInternalResourceDialogClose": "Fechar", "createInternalResourceDialogClose": "Fechar",
"createInternalResourceDialogCreateClientResource": "Criar Recurso do Cliente", "createInternalResourceDialogCreateClientResource": "Criar Recurso Privado",
"createInternalResourceDialogCreateClientResourceDescription": "Crie um novo recurso que estará acessível aos clientes conectados ao site selecionado.", "createInternalResourceDialogCreateClientResourceDescription": "Criar um novo recurso que só será acessível para clientes conectados à organização",
"createInternalResourceDialogResourceProperties": "Propriedades do Recurso", "createInternalResourceDialogResourceProperties": "Propriedades do Recurso",
"createInternalResourceDialogName": "Nome", "createInternalResourceDialogName": "Nome",
"createInternalResourceDialogSite": "Site", "createInternalResourceDialogSite": "Site",
@@ -1578,11 +1641,22 @@
"createInternalResourceDialogInvalidIPAddressFormat": "Formato de endereço IP inválido", "createInternalResourceDialogInvalidIPAddressFormat": "Formato de endereço IP inválido",
"createInternalResourceDialogDestinationPortMin": "Porta de destino deve ser pelo menos 1", "createInternalResourceDialogDestinationPortMin": "Porta de destino deve ser pelo menos 1",
"createInternalResourceDialogDestinationPortMax": "Porta de destino deve ser inferior a 65536", "createInternalResourceDialogDestinationPortMax": "Porta de destino deve ser inferior a 65536",
"createInternalResourceDialogPortModeRequired": "Protocolo, porta de proxy e porta de destino são necessários para o modo de porto",
"createInternalResourceDialogMode": "Modo",
"createInternalResourceDialogModePort": "Porta",
"createInternalResourceDialogModeHost": "Servidor",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogDestination": "Destino",
"createInternalResourceDialogDestinationHostDescription": "O endereço IP ou o nome do host do recurso na rede do site.",
"createInternalResourceDialogDestinationCidrDescription": "A faixa CIDR do recurso na rede do site.",
"createInternalResourceDialogAlias": "Alias",
"createInternalResourceDialogAliasDescription": "Um alias de DNS interno opcional para este recurso.",
"siteConfiguration": "Configuração", "siteConfiguration": "Configuração",
"siteAcceptClientConnections": "Aceitar Conexões de Clientes", "siteAcceptClientConnections": "Aceitar Conexões de Clientes",
"siteAcceptClientConnectionsDescription": "Permitir que outros dispositivos se conectem através desta instância Newt como um gateway usando clientes.", "siteAcceptClientConnectionsDescription": "Permitir que dispositivos de usuário e clientes acessem recursos neste site. Isso pode ser alterado mais tarde.",
"siteAddress": "Endereço do Site", "siteAddress": "Endereço do Site (Avançado)",
"siteAddressDescription": "Especificar o endereço IP do host para que os clientes se conectem. Este é o endereço interno do site na rede Pangolin para os clientes endereçarem. Deve estar dentro da sub-rede da Organização.", "siteAddressDescription": "Endereço interno do site. Deve estar dentro da sub-rede da organização.",
"siteNameDescription": "O nome de exibição do site que pode ser alterado mais tarde.",
"autoLoginExternalIdp": "Login Automático com IDP Externo", "autoLoginExternalIdp": "Login Automático com IDP Externo",
"autoLoginExternalIdpDescription": "Redirecionar imediatamente o utilizador para o IDP externo para autenticação.", "autoLoginExternalIdpDescription": "Redirecionar imediatamente o utilizador para o IDP externo para autenticação.",
"selectIdp": "Selecionar IDP", "selectIdp": "Selecionar IDP",
@@ -1596,7 +1670,7 @@
"autoLoginErrorNoRedirectUrl": "Nenhum URL de redirecionamento recebido do provedor de identidade.", "autoLoginErrorNoRedirectUrl": "Nenhum URL de redirecionamento recebido do provedor de identidade.",
"autoLoginErrorGeneratingUrl": "Falha ao gerar URL de autenticação.", "autoLoginErrorGeneratingUrl": "Falha ao gerar URL de autenticação.",
"remoteExitNodeManageRemoteExitNodes": "Nós remotos", "remoteExitNodeManageRemoteExitNodes": "Nós remotos",
"remoteExitNodeDescription": "Auto-hospedar um ou mais nós remotos para estender sua conectividade de rede e reduzir a dependência da nuvem", "remoteExitNodeDescription": "Auto-hospedar um ou mais nós remotos para estender a conectividade de rede e reduzir a dependência da nuvem",
"remoteExitNodes": "Nós", "remoteExitNodes": "Nós",
"searchRemoteExitNodes": "Buscar nós...", "searchRemoteExitNodes": "Buscar nós...",
"remoteExitNodeAdd": "Adicionar node", "remoteExitNodeAdd": "Adicionar node",
@@ -1608,11 +1682,11 @@
"sidebarRemoteExitNodes": "Nós remotos", "sidebarRemoteExitNodes": "Nós remotos",
"remoteExitNodeCreate": { "remoteExitNodeCreate": {
"title": "Criar nó", "title": "Criar nó",
"description": "Crie um novo nó para estender sua conectividade de rede", "description": "Crie um novo nó para estender a conectividade de rede",
"viewAllButton": "Ver Todos os Nós", "viewAllButton": "Ver Todos os Nós",
"strategy": { "strategy": {
"title": "Estratégia de Criação", "title": "Estratégia de Criação",
"description": "Escolha isto para configurar o seu nó manualmente ou gerar novas credenciais.", "description": "Escolha esta opção para configurar o nó manualmente ou gerar novas credenciais.",
"adopt": { "adopt": {
"title": "Adotar Nodo", "title": "Adotar Nodo",
"description": "Escolha isto se você já tem credenciais para o nó." "description": "Escolha isto se você já tem credenciais para o nó."
@@ -1633,7 +1707,7 @@
}, },
"generate": { "generate": {
"title": "Credenciais Geradas", "title": "Credenciais Geradas",
"description": "Use estas credenciais geradas para configurar o seu nó", "description": "Use estas credenciais geradas para configurar o nó",
"nodeIdTitle": "Nó ID", "nodeIdTitle": "Nó ID",
"secretTitle": "Chave Secreta", "secretTitle": "Chave Secreta",
"saveCredentialsTitle": "Adicionar Credenciais à Configuração", "saveCredentialsTitle": "Adicionar Credenciais à Configuração",
@@ -1709,16 +1783,16 @@
"idpTypeLabel": "Tipo de provedor de identidade", "idpTypeLabel": "Tipo de provedor de identidade",
"roleMappingExpressionPlaceholder": "ex.: Contem (grupos, 'administrador') && 'Administrador' 「'Membro'", "roleMappingExpressionPlaceholder": "ex.: Contem (grupos, 'administrador') && 'Administrador' 「'Membro'",
"idpGoogleConfiguration": "Configuração do Google", "idpGoogleConfiguration": "Configuração do Google",
"idpGoogleConfigurationDescription": "Configurar suas credenciais do Google OAuth2", "idpGoogleConfigurationDescription": "Configurar as credenciais do Google OAuth2",
"idpGoogleClientIdDescription": "Seu ID de Cliente OAuth2 do Google", "idpGoogleClientIdDescription": "Google OAuth2 Client ID",
"idpGoogleClientSecretDescription": "Seu Segredo de Cliente OAuth2 do Google", "idpGoogleClientSecretDescription": "Segredo de cliente OAuth2 do Google",
"idpAzureConfiguration": "Configuração de ID do Azure Entra", "idpAzureConfiguration": "Configuração de ID do Azure Entra",
"idpAzureConfigurationDescription": "Configure as suas credenciais do Azure Entra ID OAuth2", "idpAzureConfigurationDescription": "Configurar credenciais do Azure Entra ID OAuth2",
"idpTenantId": "ID do Inquilino", "idpTenantId": "ID do Inquilino",
"idpTenantIdPlaceholder": "seu-tenente-id", "idpTenantIdPlaceholder": "tenant-id",
"idpAzureTenantIdDescription": "Seu ID do tenant Azure (encontrado na visão geral do diretório ativo Azure)", "idpAzureTenantIdDescription": "ID do tenant Azure (encontrado na visão geral do diretório ativo Azure)",
"idpAzureClientIdDescription": "Seu ID de Cliente de Registro do App Azure", "idpAzureClientIdDescription": "ID cliente de registro do aplicativo Azure",
"idpAzureClientSecretDescription": "Seu segredo de cliente de registro de aplicativos Azure", "idpAzureClientSecretDescription": "Segredo cliente de registro do Azure App",
"idpGoogleTitle": "Google", "idpGoogleTitle": "Google",
"idpGoogleAlt": "Google", "idpGoogleAlt": "Google",
"idpAzureTitle": "Azure Entra ID", "idpAzureTitle": "Azure Entra ID",
@@ -1726,14 +1800,14 @@
"idpGoogleConfigurationTitle": "Configuração do Google", "idpGoogleConfigurationTitle": "Configuração do Google",
"idpAzureConfigurationTitle": "Configuração de ID do Azure Entra", "idpAzureConfigurationTitle": "Configuração de ID do Azure Entra",
"idpTenantIdLabel": "ID do Inquilino", "idpTenantIdLabel": "ID do Inquilino",
"idpAzureClientIdDescription2": "Seu ID de Cliente de Registro do App Azure", "idpAzureClientIdDescription2": "ID cliente de registro do aplicativo Azure",
"idpAzureClientSecretDescription2": "Seu segredo de cliente de registro de aplicativos Azure", "idpAzureClientSecretDescription2": "Segredo cliente de registro do Azure App",
"idpGoogleDescription": "Provedor Google OAuth2/OIDC", "idpGoogleDescription": "Provedor Google OAuth2/OIDC",
"idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider", "idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider",
"subnet": "Sub-rede", "subnet": "Sub-rede",
"subnetDescription": "A sub-rede para a configuração de rede dessa organização.", "subnetDescription": "A sub-rede para a configuração de rede dessa organização.",
"authPage": "Página de Autenticação", "authPage": "Página de Autenticação",
"authPageDescription": "Configurar a página de autenticação para sua organização", "authPageDescription": "Configurar a página de autenticação para a organização",
"authPageDomain": "Domínio de Página Autenticação", "authPageDomain": "Domínio de Página Autenticação",
"noDomainSet": "Nenhum domínio definido", "noDomainSet": "Nenhum domínio definido",
"changeDomain": "Alterar domínio", "changeDomain": "Alterar domínio",
@@ -1743,7 +1817,7 @@
"setAuthPageDomain": "Definir domínio da página de autenticação", "setAuthPageDomain": "Definir domínio da página de autenticação",
"failedToFetchCertificate": "Falha ao buscar o certificado", "failedToFetchCertificate": "Falha ao buscar o certificado",
"failedToRestartCertificate": "Falha ao reiniciar o certificado", "failedToRestartCertificate": "Falha ao reiniciar o certificado",
"addDomainToEnableCustomAuthPages": "Adicione um domínio para habilitar páginas de autenticação personalizadas para sua organização", "addDomainToEnableCustomAuthPages": "Adicione um domínio para habilitar páginas de autenticação personalizadas para a organização",
"selectDomainForOrgAuthPage": "Selecione um domínio para a página de autenticação da organização", "selectDomainForOrgAuthPage": "Selecione um domínio para a página de autenticação da organização",
"domainPickerProvidedDomain": "Domínio fornecido", "domainPickerProvidedDomain": "Domínio fornecido",
"domainPickerFreeProvidedDomain": "Domínio fornecido grátis", "domainPickerFreeProvidedDomain": "Domínio fornecido grátis",
@@ -1758,7 +1832,7 @@
"domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" não pôde ser válido para {domain}.", "domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" não pôde ser válido para {domain}.",
"domainPickerSubdomainSanitized": "Subdomínio banalizado", "domainPickerSubdomainSanitized": "Subdomínio banalizado",
"domainPickerSubdomainCorrected": "\"{sub}\" foi corrigido para \"{sanitized}\"", "domainPickerSubdomainCorrected": "\"{sub}\" foi corrigido para \"{sanitized}\"",
"orgAuthSignInTitle": "Entrar na sua organização", "orgAuthSignInTitle": "Fazer login na organização",
"orgAuthChooseIdpDescription": "Escolha o seu provedor de identidade para continuar", "orgAuthChooseIdpDescription": "Escolha o seu provedor de identidade para continuar",
"orgAuthNoIdpConfigured": "Esta organização não tem nenhum provedor de identidade configurado. Você pode entrar com a identidade do seu Pangolin.", "orgAuthNoIdpConfigured": "Esta organização não tem nenhum provedor de identidade configurado. Você pode entrar com a identidade do seu Pangolin.",
"orgAuthSignInWithPangolin": "Entrar com o Pangolin", "orgAuthSignInWithPangolin": "Entrar com o Pangolin",
@@ -1776,7 +1850,7 @@
"enableTwoFactorAuthentication": "Ativar autenticação de dois fatores", "enableTwoFactorAuthentication": "Ativar autenticação de dois fatores",
"completeSecuritySteps": "Passos de segurança completos", "completeSecuritySteps": "Passos de segurança completos",
"securitySettings": "Configurações de Segurança", "securitySettings": "Configurações de Segurança",
"securitySettingsDescription": "Configurar políticas de segurança para a sua organização", "securitySettingsDescription": "Configurar políticas de segurança para a organização",
"requireTwoFactorForAllUsers": "Exigir autenticação dupla para todos os usuários", "requireTwoFactorForAllUsers": "Exigir autenticação dupla para todos os usuários",
"requireTwoFactorDescription": "Quando ativado, todos os usuários internos nesta organização devem ter a autenticação de dois fatores ativada para acessar a organização.", "requireTwoFactorDescription": "Quando ativado, todos os usuários internos nesta organização devem ter a autenticação de dois fatores ativada para acessar a organização.",
"requireTwoFactorDisabledDescription": "Este recurso requer uma licença válida (Enterprise) ou assinatura ativa (SaaS)", "requireTwoFactorDisabledDescription": "Este recurso requer uma licença válida (Enterprise) ou assinatura ativa (SaaS)",
@@ -1839,8 +1913,12 @@
"enterpriseEdition": "Edição Enterprise", "enterpriseEdition": "Edição Enterprise",
"unlicensed": "Sem licença", "unlicensed": "Sem licença",
"beta": "Beta", "beta": "Beta",
"manageClients": "Gerenciar Clientes", "manageUserDevices": "Dispositivos do usuário",
"manageClientsDescription": "Clientes são dispositivos que podem se conectar aos seus sites", "manageUserDevicesDescription": "Ver e gerenciar dispositivos que os usuários usam para se conectar de forma privada aos recursos",
"manageMachineClients": "Gerenciar Clientes de Máquina",
"manageMachineClientsDescription": "Crie e gerencie clientes que servidores e sistemas usam para se conectar de forma privada aos recursos",
"clientsTableUserClients": "Utilizador",
"clientsTableMachineClients": "Máquina",
"licenseTableValidUntil": "Válido até", "licenseTableValidUntil": "Válido até",
"saasLicenseKeysSettingsTitle": "Licenças empresariais", "saasLicenseKeysSettingsTitle": "Licenças empresariais",
"saasLicenseKeysSettingsDescription": "Gerar e gerenciar chaves de licença Enterprise para instâncias Pangolin auto-hospedadas", "saasLicenseKeysSettingsDescription": "Gerar e gerenciar chaves de licença Enterprise para instâncias Pangolin auto-hospedadas",
@@ -1975,11 +2053,12 @@
"pathRewriteStripLabel": "faixa", "pathRewriteStripLabel": "faixa",
"sidebarEnableEnterpriseLicense": "Habilitar Licença Empresarial", "sidebarEnableEnterpriseLicense": "Habilitar Licença Empresarial",
"cannotbeUndone": "Isso não pode ser desfeito.", "cannotbeUndone": "Isso não pode ser desfeito.",
"toConfirm": "para confirmar", "toConfirm": "para confirmar.",
"deleteClientQuestion": "Você tem certeza que deseja remover o cliente do site e da organização?", "deleteClientQuestion": "Você tem certeza que deseja remover o cliente do site e da organização?",
"clientMessageRemove": "Depois de removido, o cliente não poderá mais se conectar ao site.", "clientMessageRemove": "Depois de removido, o cliente não poderá mais se conectar ao site.",
"sidebarLogs": "Registros", "sidebarLogs": "Registros",
"request": "Pedir", "request": "Pedir",
"requests": "Solicitações",
"logs": "Registros", "logs": "Registros",
"logsSettingsDescription": "Monitorar logs coletados desta orginização", "logsSettingsDescription": "Monitorar logs coletados desta orginização",
"searchLogs": "Pesquisar registros...", "searchLogs": "Pesquisar registros...",
@@ -2005,6 +2084,7 @@
"ip": "PI", "ip": "PI",
"reason": "Motivo", "reason": "Motivo",
"requestLogs": "Registro de pedidos", "requestLogs": "Registro de pedidos",
"requestAnalytics": "Solicitar análise",
"host": "Servidor", "host": "Servidor",
"location": "Local:", "location": "Local:",
"actionLogs": "Logs de Ações", "actionLogs": "Logs de Ações",
@@ -2014,6 +2094,7 @@
"logRetention": "Retenção de Log", "logRetention": "Retenção de Log",
"logRetentionDescription": "Gerenciar quanto tempo os diferentes tipos de logs são mantidos para esta organização ou desativá-los", "logRetentionDescription": "Gerenciar quanto tempo os diferentes tipos de logs são mantidos para esta organização ou desativá-los",
"requestLogsDescription": "Ver registros de pedidos detalhados de recursos nesta organização", "requestLogsDescription": "Ver registros de pedidos detalhados de recursos nesta organização",
"requestAnalyticsDescription": "Exibir análise detalhada de pedidos para recursos nesta organização",
"logRetentionRequestLabel": "Solicitar retenção de registro", "logRetentionRequestLabel": "Solicitar retenção de registro",
"logRetentionRequestDescription": "Por quanto tempo manter os registros de pedidos", "logRetentionRequestDescription": "Por quanto tempo manter os registros de pedidos",
"logRetentionAccessLabel": "Retenção de Log de Acesso", "logRetentionAccessLabel": "Retenção de Log de Acesso",
@@ -2027,6 +2108,7 @@
"logRetention30Days": "30 dias", "logRetention30Days": "30 dias",
"logRetention90Days": "90 dias", "logRetention90Days": "90 dias",
"logRetentionForever": "Permanentemente", "logRetentionForever": "Permanentemente",
"logRetentionEndOfFollowingYear": "Fim do ano seguinte",
"actionLogsDescription": "Visualizar histórico de ações realizadas nesta organização", "actionLogsDescription": "Visualizar histórico de ações realizadas nesta organização",
"accessLogsDescription": "Ver solicitações de autenticação de recursos nesta organização", "accessLogsDescription": "Ver solicitações de autenticação de recursos nesta organização",
"licenseRequiredToUse": "É necessária uma licença empresarial para usar esse recurso.", "licenseRequiredToUse": "É necessária uma licença empresarial para usar esse recurso.",
@@ -2037,7 +2119,7 @@
"preferWildcardCert": "Prefere Certificado Wildcard", "preferWildcardCert": "Prefere Certificado Wildcard",
"unverified": "Não verificado", "unverified": "Não verificado",
"domainSetting": "Configurações do domínio", "domainSetting": "Configurações do domínio",
"domainSettingDescription": "Configure as configurações para o seu domínio", "domainSettingDescription": "Configurar configurações para o domínio",
"preferWildcardCertDescription": "Tentativa de gerar um certificado coringa (requer um resolvedor de certificado devidamente configurado).", "preferWildcardCertDescription": "Tentativa de gerar um certificado coringa (requer um resolvedor de certificado devidamente configurado).",
"recordName": "Nome da gravação", "recordName": "Nome da gravação",
"auto": "Automático", "auto": "Automático",
@@ -2051,15 +2133,15 @@
"olmUpdateAvailableInfo": "Uma versão atualizada do Olm está disponível. Atualize para a versão mais recente para ter a melhor experiência.", "olmUpdateAvailableInfo": "Uma versão atualizada do Olm está disponível. Atualize para a versão mais recente para ter a melhor experiência.",
"client": "Cliente", "client": "Cliente",
"proxyProtocol": "Configurações de Protocolo Proxy", "proxyProtocol": "Configurações de Protocolo Proxy",
"proxyProtocolDescription": "Configurar o protocolo Proxy para preservar endereços IP do cliente para serviços TCP/UDP.", "proxyProtocolDescription": "Configurar o protocolo proxy para preservar endereços IP do cliente para serviços TCP.",
"enableProxyProtocol": "Habilitar protocolo proxy", "enableProxyProtocol": "Habilitar protocolo proxy",
"proxyProtocolInfo": "Preservar endereços IP do cliente para backends TCP/UDP", "proxyProtocolInfo": "Preservar endereços IP do cliente para backends TCP",
"proxyProtocolVersion": "Versão do Protocolo Proxy", "proxyProtocolVersion": "Versão do Protocolo Proxy",
"version1": " Versão 1 (recomendado)", "version1": " Versão 1 (recomendado)",
"version2": "Versão 2", "version2": "Versão 2",
"versionDescription": "A versão 1 é baseada em texto e amplamente suportada. A versão 2 é binária e mais eficiente, mas menos compatível.", "versionDescription": "A versão 1 é baseada em texto e amplamente suportada. A versão 2 é binária e mais eficiente, mas menos compatível.",
"warning": "ATENÇÃO", "warning": "ATENÇÃO",
"proxyProtocolWarning": "Seu aplicativo de backend deve ser configurado para aceitar conexões de protocolo de proxy. Se o seu backend não suportar o protocolo de protocolo, habilitando isso quebrará todas as conexões. Certifique-se de configurar seu backend para confiar nos cabeçalhos do protocolo proxy no Traefik.", "proxyProtocolWarning": "A aplicação de backend deve ser configurada para aceitar conexões de protocolo proxy. Se o seu backend não suporta o Protocolo de Proxy, habilitando isto quebrará todas as conexões, então só habilite isso se você souber o que está fazendo. Certifique-se de configurar seu backend para confiar nos cabeçalhos do protocolo proxy no Traefik.",
"restarting": "Reiniciando...", "restarting": "Reiniciando...",
"manual": "Manualmente", "manual": "Manualmente",
"messageSupport": "Suporte a Mensagens", "messageSupport": "Suporte a Mensagens",
@@ -2080,5 +2162,113 @@
"supportSending": "Enviando...", "supportSending": "Enviando...",
"supportSend": "Mandar", "supportSend": "Mandar",
"supportMessageSent": "Mensagem enviada!", "supportMessageSent": "Mensagem enviada!",
"supportWillContact": "Entraremos em contato em breve!" "supportWillContact": "Entraremos em contato em breve!",
"selectLogRetention": "Selecionar retenção de log",
"terms": "Termos",
"privacy": "Privacidade",
"security": "Segurança",
"docs": "Documentação",
"deviceActivation": "Ativação do dispositivo",
"deviceCodeInvalidFormat": "O código deve ter 9 caracteres (ex.: A1AJ-N5JD)",
"deviceCodeInvalidOrExpired": "Código inválido ou expirado",
"deviceCodeVerifyFailed": "Falha ao verificar o código do dispositivo",
"signedInAs": "Sessão iniciada como",
"deviceCodeEnterPrompt": "Digite o código exibido no dispositivo",
"continue": "Continuar",
"deviceUnknownLocation": "Localização desconhecida",
"deviceAuthorizationRequested": "Esta autorização foi solicitada por {location} no {date}. Certifique-se de que você confia neste dispositivo, pois ele terá acesso à conta.",
"deviceLabel": "Dispositivo: {deviceName}",
"deviceWantsAccess": "quer acessar sua conta",
"deviceExistingAccess": "Acesso existente:",
"deviceFullAccess": "Acesso total à sua conta",
"deviceOrganizationsAccess": "Acesso a todas as organizações que sua conta tem acesso a",
"deviceAuthorize": "Autorizar {applicationName}",
"deviceConnected": "Dispositivo Conectado!",
"deviceAuthorizedMessage": "O dispositivo está autorizado a acessar sua conta.",
"pangolinCloud": "Nuvem do Pangolin",
"viewDevices": "Ver Dispositivos",
"viewDevicesDescription": "Gerencie seus dispositivos conectados",
"noDevices": "Nenhum dispositivo encontrado",
"dateCreated": "Data de Criação",
"unnamedDevice": "Dispositivo sem nome",
"deviceQuestionRemove": "Você tem certeza que deseja excluir este dispositivo?",
"deviceMessageRemove": "Esta ação não pode ser desfeita.",
"deviceDeleteConfirm": "Excluir dispositivo",
"deleteDevice": "Excluir dispositivo",
"errorLoadingDevices": "Erro ao carregar dispositivos",
"failedToLoadDevices": "Falha ao carregar dispositivos",
"deviceDeleted": "Dispositivo excluído",
"deviceDeletedDescription": "O dispositivo foi excluído com sucesso.",
"errorDeletingDevice": "Erro ao excluir dispositivo",
"failedToDeleteDevice": "Falha ao excluir dispositivo",
"showColumns": "Exibir Colunas",
"hideColumns": "Ocultar colunas",
"columnVisibility": "Visibilidade da Coluna",
"toggleColumn": "Alternar coluna {columnName}",
"allColumns": "Todas as colunas",
"defaultColumns": "Colunas padrão",
"customizeView": "Personalizar visualização",
"viewOptions": "Opções de visualização",
"selectAll": "Selecionar Todos",
"selectNone": "Não selecionar nada",
"selectedResources": "Recursos Selecionados",
"enableSelected": "Habilitar Selecionados",
"disableSelected": "Desativar Selecionados",
"checkSelectedStatus": "Status de Verificação dos Selecionados",
"clients": "Clientes",
"accessClientSelect": "Selecionar clientes de máquina",
"resourceClientDescription": "Clientes de máquina que podem acessar este recurso",
"regenerate": "Regenerar",
"credentials": "Credenciais",
"savecredentials": "Salvar Credenciais",
"regenerateCredentialsButton": "Regerar Credenciais",
"regenerateCredentials": "Regerar Credenciais",
"generatedcredentials": "Credenciais Geradas",
"copyandsavethesecredentials": "Copiar e salvar estas credenciais",
"copyandsavethesecredentialsdescription": "Essas credenciais não serão exibidas novamente depois que você sair desta página. Salve elas com segurança agora.",
"credentialsSaved": "Credenciais salvas",
"credentialsSavedDescription": "As credenciais foram regeneradas e salvas com sucesso.",
"credentialsSaveError": "Erro ao Salvar Credenciais",
"credentialsSaveErrorDescription": "Ocorreu um erro enquanto regenerava e salvava as credenciais.",
"regenerateCredentialsWarning": "Regenerar credenciais irá invalidar as anteriores e causar uma desconexão. Certifique-se de atualizar quaisquer configurações que usam essas credenciais.",
"confirm": "Confirmar",
"regenerateCredentialsConfirmation": "Você tem certeza que deseja recriar as credenciais?",
"endpoint": "Endpoint",
"Id": "Id",
"SecretKey": "Chave secreta",
"niceId": "Belo ID",
"niceIdUpdated": "Bom ID atualizado",
"niceIdUpdatedSuccessfully": "Bom ID atualizado com sucesso",
"niceIdUpdateError": "Erro ao atualizar Nice ID",
"niceIdUpdateErrorDescription": "Ocorreu um erro ao atualizar a ID de Nice.",
"niceIdCannotBeEmpty": "Bom ID não pode estar vazio",
"enterIdentifier": "Inserir identificador",
"identifier": "Identifier",
"deviceLoginUseDifferentAccount": "Não é você? Use uma conta diferente.",
"deviceLoginDeviceRequestingAccessToAccount": "Um dispositivo está solicitando acesso a essa conta.",
"noData": "Nenhum dado encontrado",
"machineClients": "Clientes de máquina",
"install": "Instale",
"run": "Executar",
"clientNameDescription": "O nome de exibição do cliente que pode ser alterado mais tarde.",
"clientAddress": "Endereço do Cliente (Avançado)",
"setupFailedToFetchSubnet": "Falha ao buscar a subrede padrão",
"setupSubnetAdvanced": "Sub-rede (Avançado)",
"setupSubnetDescription": "A sub-rede para a rede interna desta organização.",
"siteRegenerateAndDisconnect": "Regerar e Desconectar",
"siteRegenerateAndDisconnectConfirmation": "Você tem certeza que deseja regenerar as credenciais e desconectar este site?",
"siteRegenerateAndDisconnectWarning": "Isto irá regenerar as credenciais e desconectar imediatamente o site. O site precisará ser reiniciado com as novas credenciais.",
"siteRegenerateCredentialsConfirmation": "Você tem certeza que deseja regenerar as credenciais para este site?",
"siteRegenerateCredentialsWarning": "Isso irá regenerar as credenciais. O site permanecerá conectado até que você reinicie-o manualmente e use as novas credenciais.",
"clientRegenerateAndDisconnect": "Regerar e Desconectar",
"clientRegenerateAndDisconnectConfirmation": "Tem certeza que deseja regenerar as credenciais e desconectar este cliente?",
"clientRegenerateAndDisconnectWarning": "Isto irá regenerar as credenciais e desconectar o cliente imediatamente. O cliente precisará ser reiniciado com as novas credenciais.",
"clientRegenerateCredentialsConfirmation": "Tem certeza que deseja regenerar as credenciais para este cliente?",
"clientRegenerateCredentialsWarning": "Isto irá regenerar as credenciais. O cliente permanecerá conectado até você reiniciá-lo manualmente e usar as novas credenciais.",
"remoteExitNodeRegenerateAndDisconnect": "Regerar e Desconectar",
"remoteExitNodeRegenerateAndDisconnectConfirmation": "Tem certeza que deseja regenerar as credenciais e desconectar este nó de saída remota?",
"remoteExitNodeRegenerateAndDisconnectWarning": "Isto irá regenerar as credenciais e desconectar imediatamente o nó de saída remota. O nó de saída remota precisará ser reiniciado com as novas credenciais.",
"remoteExitNodeRegenerateCredentialsConfirmation": "Você tem certeza que deseja regenerar as credenciais para este nó de saída remota?",
"remoteExitNodeRegenerateCredentialsWarning": "Isto irá regenerar as credenciais. O nó de saída remota permanecerá conectado até que você o reinicie manualmente e use as novas credenciais.",
"agent": "Representante"
} }

View File

@@ -1,12 +1,12 @@
{ {
"setupCreate": "Создайте свою организацию, сайт и ресурсы", "setupCreate": "Создать организацию, сайт и ресурсы",
"setupNewOrg": "Новая организация", "setupNewOrg": "Новая организация",
"setupCreateOrg": "Создать организацию", "setupCreateOrg": "Создать организацию",
"setupCreateResources": "Создать ресурсы", "setupCreateResources": "Создать ресурсы",
"setupOrgName": "Название организации", "setupOrgName": "Название организации",
"orgDisplayName": "Это отображаемое имя вашей организации.", "orgDisplayName": "Отображаемое имя организации.",
"orgId": "ID организации", "orgId": "ID организации",
"setupIdentifierMessage": "Уникальный идентификатор вашей организации. Он задаётся отдельно от отображаемого имени.", "setupIdentifierMessage": "Это уникальный идентификатор для организации.",
"setupErrorIdentifier": "ID организации уже занят. Выберите другой.", "setupErrorIdentifier": "ID организации уже занят. Выберите другой.",
"componentsErrorNoMemberCreate": "Вы пока не состоите ни в одной организации. Создайте организацию для начала работы.", "componentsErrorNoMemberCreate": "Вы пока не состоите ни в одной организации. Создайте организацию для начала работы.",
"componentsErrorNoMember": "Вы пока не состоите ни в одной организации.", "componentsErrorNoMember": "Вы пока не состоите ни в одной организации.",
@@ -50,10 +50,10 @@
"siteMessageRemove": "После удаления сайт больше не будет доступен. Все цели, связанные с сайтом, также будут удалены.", "siteMessageRemove": "После удаления сайт больше не будет доступен. Все цели, связанные с сайтом, также будут удалены.",
"siteQuestionRemove": "Вы уверены, что хотите удалить сайт из организации?", "siteQuestionRemove": "Вы уверены, что хотите удалить сайт из организации?",
"siteManageSites": "Управление сайтами", "siteManageSites": "Управление сайтами",
"siteDescription": "Обеспечьте подключение к вашей сети через защищённые туннели", "siteDescription": "Создание и управление сайтами, чтобы включить подключение к приватным сетям",
"siteCreate": "Создать сайт", "siteCreate": "Создать сайт",
"siteCreateDescription2": "Следуйте инструкциям ниже для создания и подключения нового сайта", "siteCreateDescription2": "Следуйте инструкциям ниже для создания и подключения нового сайта",
"siteCreateDescription": "Создайте новый сайт для подключения ваших ресурсов", "siteCreateDescription": "Создайте новый сайт для начала подключения ресурсов",
"close": "Закрыть", "close": "Закрыть",
"siteErrorCreate": "Ошибка при создании сайта", "siteErrorCreate": "Ошибка при создании сайта",
"siteErrorCreateKeyPair": "Пара ключей или настройки сайта по умолчанию не найдены", "siteErrorCreateKeyPair": "Пара ключей или настройки сайта по умолчанию не найдены",
@@ -74,7 +74,7 @@
"siteInstallNewt": "Установить Newt", "siteInstallNewt": "Установить Newt",
"siteInstallNewtDescription": "Запустите Newt в вашей системе", "siteInstallNewtDescription": "Запустите Newt в вашей системе",
"WgConfiguration": "Конфигурация WireGuard", "WgConfiguration": "Конфигурация WireGuard",
"WgConfigurationDescription": "Используйте следующую конфигурацию для подключения к вашей сети", "WgConfigurationDescription": "Используйте следующую конфигурацию для подключения к сети",
"operatingSystem": "Операционная система", "operatingSystem": "Операционная система",
"commands": "Команды", "commands": "Команды",
"recommended": "Рекомендуется", "recommended": "Рекомендуется",
@@ -87,32 +87,32 @@
"siteUpdated": "Сайт обновлён", "siteUpdated": "Сайт обновлён",
"siteUpdatedDescription": "Сайт был успешно обновлён.", "siteUpdatedDescription": "Сайт был успешно обновлён.",
"siteGeneralDescription": "Настройте общие параметры для этого сайта", "siteGeneralDescription": "Настройте общие параметры для этого сайта",
"siteSettingDescription": "Настройте параметры вашего сайта", "siteSettingDescription": "Настройка параметров на сайте",
"siteSetting": "Настройки {siteName}", "siteSetting": "Настройки {siteName}",
"siteNewtTunnel": "Туннель Newt (Рекомендуется)", "siteNewtTunnel": "Новый сайт (рекомендуется)",
"siteNewtTunnelDescription": "Простейший способ создать точку входа в вашу сеть. Дополнительная настройка не требуется.", "siteNewtTunnelDescription": "Самый простой способ создать точку входа в любую сеть. Дополнительная настройка не требуется.",
"siteWg": "Базовый WireGuard", "siteWg": "Базовый WireGuard",
"siteWgDescription": "Используйте любой клиент WireGuard для открытия туннеля. Требуется ручная настройка NAT.", "siteWgDescription": "Используйте любой клиент WireGuard для открытия туннеля. Требуется ручная настройка NAT.",
"siteWgDescriptionSaas": "Используйте любой клиент WireGuard для создания туннеля. Требуется ручная настройка NAT. РАБОТАЕТ ТОЛЬКО НА САМОСТОЯТЕЛЬНО РАЗМЕЩЕННЫХ УЗЛАХ", "siteWgDescriptionSaas": "Используйте любой клиент WireGuard для создания туннеля. Требуется ручная настройка NAT. РАБОТАЕТ ТОЛЬКО НА САМОСТОЯТЕЛЬНО РАЗМЕЩЕННЫХ УЗЛАХ",
"siteLocalDescription": "Только локальные ресурсы. Без туннелирования.", "siteLocalDescription": "Только локальные ресурсы. Без туннелирования.",
"siteLocalDescriptionSaas": "Только локальные ресурсы. Нет туннелей. Только для удаленных узлов.", "siteLocalDescriptionSaas": "Только локальные ресурсы. Нет туннелей. Только для удаленных узлов.",
"siteSeeAll": "Просмотреть все сайты", "siteSeeAll": "Просмотреть все сайты",
"siteTunnelDescription": "Выберите способ подключения к вашему сайту", "siteTunnelDescription": "Определите, как вы хотите подключиться к сайту",
"siteNewtCredentials": "Учётные данные Newt", "siteNewtCredentials": "Полномочия",
"siteNewtCredentialsDescription": "Так Newt будет выполнять аутентификацию на сервере", "siteNewtCredentialsDescription": "Вот как сайт будет аутентифицироваться с сервером",
"siteCredentialsSave": "Сохраните ваши учётные данные", "siteCredentialsSave": "Сохранить учетные данные",
"siteCredentialsSaveDescription": "Вы сможете увидеть эти данные только один раз. Обязательно скопируйте их в безопасное место.", "siteCredentialsSaveDescription": "Вы сможете увидеть эти данные только один раз. Обязательно скопируйте их в безопасное место.",
"siteInfo": "Информация о сайте", "siteInfo": "Информация о сайте",
"status": "Статус", "status": "Статус",
"shareTitle": "Управление общими ссылками", "shareTitle": "Управление общими ссылками",
"shareDescription": "Создавайте общие ссылки для предоставления временного или постоянного доступа к вашим ресурсам", "shareDescription": "Создавайте общие ссылки, чтобы предоставить временный или постоянный доступ к прокси ресурсам",
"shareSearch": "Поиск общих ссылок...", "shareSearch": "Поиск общих ссылок...",
"shareCreate": "Создать общую ссылку", "shareCreate": "Создать общую ссылку",
"shareErrorDelete": "Не удалось удалить ссылку", "shareErrorDelete": "Не удалось удалить ссылку",
"shareErrorDeleteMessage": "Произошла ошибка при удалении ссылки", "shareErrorDeleteMessage": "Произошла ошибка при удалении ссылки",
"shareDeleted": "Ссылка удалена", "shareDeleted": "Ссылка удалена",
"shareDeletedDescription": "Ссылка была успешно удалена", "shareDeletedDescription": "Ссылка была успешно удалена",
"shareTokenDescription": "Ваш токен доступа может быть передан двумя способами: как параметр запроса или в заголовках запроса. Он должен передаваться клиентом при каждом запросе для аутентификации.", "shareTokenDescription": "Токен доступа может быть передан двумя способами: как параметр запроса или в заголовках запроса. Они должны быть переданы от клиента по каждому запросу для аутентифицированного доступа.",
"accessToken": "Токен доступа", "accessToken": "Токен доступа",
"usageExamples": "Примеры использования", "usageExamples": "Примеры использования",
"tokenId": "ID токена", "tokenId": "ID токена",
@@ -121,7 +121,7 @@
"importantNote": "Важное примечание", "importantNote": "Важное примечание",
"shareImportantDescription": "Из соображений безопасности рекомендуется использовать заголовки вместо параметров запроса, когда это возможно, так как параметры запроса могут сохраняться в логах сервера или истории браузера.", "shareImportantDescription": "Из соображений безопасности рекомендуется использовать заголовки вместо параметров запроса, когда это возможно, так как параметры запроса могут сохраняться в логах сервера или истории браузера.",
"token": "Токен", "token": "Токен",
"shareTokenSecurety": "Храните ваш токен доступа в безопасности. Не делитесь им в общедоступных местах или клиентском коде.", "shareTokenSecurety": "Храните токен доступа в безопасном режиме. Не делитесь им в общедоступных областях или на клиентской стороне.",
"shareErrorFetchResource": "Не удалось получить ресурсы", "shareErrorFetchResource": "Не удалось получить ресурсы",
"shareErrorFetchResourceDescription": "Произошла ошибка при получении ресурсов", "shareErrorFetchResourceDescription": "Произошла ошибка при получении ресурсов",
"shareErrorCreate": "Не удалось создать общую ссылку", "shareErrorCreate": "Не удалось создать общую ссылку",
@@ -131,7 +131,7 @@
"expireIn": "Срок действия", "expireIn": "Срок действия",
"neverExpire": "Бессрочный доступ", "neverExpire": "Бессрочный доступ",
"shareExpireDescription": "Срок действия - это период, в течение которого ссылка будет работать и предоставлять доступ к ресурсу. После этого времени ссылка перестанет работать, и пользователи, использовавшие эту ссылку, потеряют доступ к ресурсу.", "shareExpireDescription": "Срок действия - это период, в течение которого ссылка будет работать и предоставлять доступ к ресурсу. После этого времени ссылка перестанет работать, и пользователи, использовавшие эту ссылку, потеряют доступ к ресурсу.",
"shareSeeOnce": "Вы сможете увидеть эту ссылку только один раз. Обязательно скопируйте её.", "shareSeeOnce": "Вы сможете увидеть эту ссылку только один раз. Обязательно скопируйте ее.",
"shareAccessHint": "Любой, у кого есть эта ссылка, может получить доступ к ресурсу. Делитесь ею с осторожностью.", "shareAccessHint": "Любой, у кого есть эта ссылка, может получить доступ к ресурсу. Делитесь ею с осторожностью.",
"shareTokenUsage": "Посмотреть использование токена доступа", "shareTokenUsage": "Посмотреть использование токена доступа",
"createLink": "Создать ссылку", "createLink": "Создать ссылку",
@@ -144,8 +144,10 @@
"expires": "Истекает", "expires": "Истекает",
"never": "Никогда", "never": "Никогда",
"shareErrorSelectResource": "Пожалуйста, выберите ресурс", "shareErrorSelectResource": "Пожалуйста, выберите ресурс",
"resourceTitle": "Управление ресурсами", "proxyResourceTitle": "Управление публичными ресурсами",
"resourceDescription": "Создавайте защищённые прокси к вашим приватным приложениям", "proxyResourceDescription": "Создание и управление ресурсами, которые доступны через веб-браузер",
"clientResourceTitle": "Управление приватными ресурсами",
"clientResourceDescription": "Создание и управление ресурсами, которые доступны только через подключенный клиент",
"resourcesSearch": "Поиск ресурсов...", "resourcesSearch": "Поиск ресурсов...",
"resourceAdd": "Добавить ресурс", "resourceAdd": "Добавить ресурс",
"resourceErrorDelte": "Ошибка при удалении ресурса", "resourceErrorDelte": "Ошибка при удалении ресурса",
@@ -155,9 +157,9 @@
"resourceMessageRemove": "После удаления ресурс больше не будет доступен. Все целевые узлы, связанные с ресурсом, также будут удалены.", "resourceMessageRemove": "После удаления ресурс больше не будет доступен. Все целевые узлы, связанные с ресурсом, также будут удалены.",
"resourceQuestionRemove": "Вы уверены, что хотите удалить ресурс из организации?", "resourceQuestionRemove": "Вы уверены, что хотите удалить ресурс из организации?",
"resourceHTTP": "HTTPS-ресурс", "resourceHTTP": "HTTPS-ресурс",
"resourceHTTPDescription": "Проксирование запросов к вашему приложению через HTTPS с использованием поддомена или базового домена.", "resourceHTTPDescription": "Прокси-запросы к приложению по HTTPS с помощью поддомена или базового домена.",
"resourceRaw": "Сырой TCP/UDP-ресурс", "resourceRaw": "Сырой TCP/UDP-ресурс",
"resourceRawDescription": "Проксирование запросов к вашему приложению через TCP/UDP с использованием по номеру порта.", "resourceRawDescription": "Прокси запрашивает приложение через TCP/UDP по номеру порта. Это работает только тогда, когда сайты подключены к узлам.",
"resourceCreate": "Создание ресурса", "resourceCreate": "Создание ресурса",
"resourceCreateDescription": "Следуйте инструкциям ниже для создания нового ресурса", "resourceCreateDescription": "Следуйте инструкциям ниже для создания нового ресурса",
"resourceSeeAll": "Посмотреть все ресурсы", "resourceSeeAll": "Посмотреть все ресурсы",
@@ -171,22 +173,22 @@
"noCountryFound": "Страна не найдена.", "noCountryFound": "Страна не найдена.",
"siteSelectionDescription": "Этот сайт предоставит подключение к цели.", "siteSelectionDescription": "Этот сайт предоставит подключение к цели.",
"resourceType": "Тип ресурса", "resourceType": "Тип ресурса",
"resourceTypeDescription": "Определите, как вы хотите получать доступ к вашему ресурсу", "resourceTypeDescription": "Определить как получить доступ к ресурсу",
"resourceHTTPSSettings": "Настройки HTTPS", "resourceHTTPSSettings": "Настройки HTTPS",
"resourceHTTPSSettingsDescription": "Настройте, как будет осуществляться доступ к вашему ресурсу через HTTPS", "resourceHTTPSSettingsDescription": "Настройка доступа к ресурсу по HTTPS",
"domainType": "Тип домена", "domainType": "Тип домена",
"subdomain": "Поддомен", "subdomain": "Поддомен",
"baseDomain": "Базовый домен", "baseDomain": "Базовый домен",
"subdomnainDescription": "Поддомен, на котором будет доступен ресурс.", "subdomnainDescription": "Поддомен, в котором ресурс будет доступен.",
"resourceRawSettings": "Настройки TCP/UDP", "resourceRawSettings": "Настройки TCP/UDP",
"resourceRawSettingsDescription": "Настройте, как будет осуществляться доступ к вашему ресурсу через TCP/UDP", "resourceRawSettingsDescription": "Настройка доступа к ресурсу по TCP/UDP",
"protocol": "Протокол", "protocol": "Протокол",
"protocolSelect": "Выберите протокол", "protocolSelect": "Выберите протокол",
"resourcePortNumber": "Номер порта", "resourcePortNumber": "Номер порта",
"resourcePortNumberDescription": "Внешний номер порта для проксирования запросов.", "resourcePortNumberDescription": "Внешний номер порта для проксирования запросов.",
"cancel": "Отмена", "cancel": "Отмена",
"resourceConfig": "Фрагменты конфигурации", "resourceConfig": "Фрагменты конфигурации",
"resourceConfigDescription": "Скопируйте и вставьте эти фрагменты конфигурации для настройки вашего TCP/UDP-ресурса", "resourceConfigDescription": "Скопируйте и вставьте эти сниппеты для настройки TCP/UDP ресурса",
"resourceAddEntrypoints": "Traefik: Добавить точки входа", "resourceAddEntrypoints": "Traefik: Добавить точки входа",
"resourceExposePorts": "Gerbil: Открыть порты в Docker Compose", "resourceExposePorts": "Gerbil: Открыть порты в Docker Compose",
"resourceLearnRaw": "Узнайте, как настроить TCP/UDP-ресурсы", "resourceLearnRaw": "Узнайте, как настроить TCP/UDP-ресурсы",
@@ -202,14 +204,14 @@
"proxy": "Прокси", "proxy": "Прокси",
"internal": "Внутренний", "internal": "Внутренний",
"rules": "Правила", "rules": "Правила",
"resourceSettingDescription": "Настройте параметры вашего ресурса", "resourceSettingDescription": "Настройка параметров ресурса",
"resourceSetting": "Настройки {resourceName}", "resourceSetting": "Настройки {resourceName}",
"alwaysAllow": "Всегда разрешать", "alwaysAllow": "Авторизация байпасса",
"alwaysDeny": "Всегда запрещать", "alwaysDeny": "Блокировать доступ",
"passToAuth": "Переход к аутентификации", "passToAuth": "Переход к аутентификации",
"orgSettingsDescription": "Настройте общие параметры вашей организации", "orgSettingsDescription": "Настроить настройки организации",
"orgGeneralSettings": "Настройки организации", "orgGeneralSettings": "Настройки организации",
"orgGeneralSettingsDescription": "Управляйте данными и конфигурацией вашей организации", "orgGeneralSettingsDescription": "Управление деталями и конфигурацией организации",
"saveGeneralSettings": "Сохранить общие настройки", "saveGeneralSettings": "Сохранить общие настройки",
"saveSettings": "Сохранить настройки", "saveSettings": "Сохранить настройки",
"orgDangerZone": "Опасная зона", "orgDangerZone": "Опасная зона",
@@ -232,7 +234,7 @@
"orgMissing": "Отсутствует ID организации", "orgMissing": "Отсутствует ID организации",
"orgMissingMessage": "Невозможно восстановить приглашение без ID организации.", "orgMissingMessage": "Невозможно восстановить приглашение без ID организации.",
"accessUsersManage": "Управление пользователями", "accessUsersManage": "Управление пользователями",
"accessUsersDescription": "Приглашайте пользователей и назначайте им роли для управления доступом к вашей организации", "accessUsersDescription": "Пригласить и управлять пользователями с доступом к этой организации",
"accessUsersSearch": "Поиск пользователей...", "accessUsersSearch": "Поиск пользователей...",
"accessUserCreate": "Создать пользователя", "accessUserCreate": "Создать пользователя",
"accessUserRemove": "Удалить пользователя", "accessUserRemove": "Удалить пользователя",
@@ -241,13 +243,13 @@
"role": "Роль", "role": "Роль",
"nameRequired": "Имя обязательно", "nameRequired": "Имя обязательно",
"accessRolesManage": "Управление ролями", "accessRolesManage": "Управление ролями",
"accessRolesDescription": "Настройте роли для управления доступом к вашей организации", "accessRolesDescription": "Создание и управление ролями для пользователей в организации",
"accessRolesSearch": "Поиск ролей...", "accessRolesSearch": "Поиск ролей...",
"accessRolesAdd": "Добавить роль", "accessRolesAdd": "Добавить роль",
"accessRoleDelete": "Удалить роль", "accessRoleDelete": "Удалить роль",
"description": "Описание", "description": "Описание",
"inviteTitle": "Открытые приглашения", "inviteTitle": "Открытые приглашения",
"inviteDescription": "Управляйте вашими приглашениями для других пользователей", "inviteDescription": "Управление приглашениями для присоединения других пользователей к организации",
"inviteSearch": "Поиск приглашений...", "inviteSearch": "Поиск приглашений...",
"minutes": "мин.", "minutes": "мин.",
"hours": "ч.", "hours": "ч.",
@@ -261,13 +263,13 @@
"apiKeysErrorCreate": "Ошибка при создании ключа API", "apiKeysErrorCreate": "Ошибка при создании ключа API",
"apiKeysErrorSetPermission": "Ошибка при установке разрешений", "apiKeysErrorSetPermission": "Ошибка при установке разрешений",
"apiKeysCreate": "Сгенерировать ключ API", "apiKeysCreate": "Сгенерировать ключ API",
"apiKeysCreateDescription": "Сгенерируйте новый ключ API для вашей организации", "apiKeysCreateDescription": "Сгенерировать новый ключ API для организации",
"apiKeysGeneralSettings": "Разрешения", "apiKeysGeneralSettings": "Разрешения",
"apiKeysGeneralSettingsDescription": "Определите, что может делать этот ключ API", "apiKeysGeneralSettingsDescription": "Определите, что может делать этот ключ API",
"apiKeysList": "Ваш ключ API", "apiKeysList": "Новый ключ API",
"apiKeysSave": "Сохраните ваш ключ API", "apiKeysSave": "Сохранить ключ API",
"apiKeysSaveDescription": "Вы сможете увидеть этот ключ только один раз. Обязательно скопируйте его в безопасное место.", "apiKeysSaveDescription": "Вы сможете увидеть этот ключ только один раз. Обязательно скопируйте его в безопасное место.",
"apiKeysInfo": "Ваш ключ API:", "apiKeysInfo": "Ключ API:",
"apiKeysConfirmCopy": "Я скопировал(а) ключ API", "apiKeysConfirmCopy": "Я скопировал(а) ключ API",
"generate": "Сгенерировать", "generate": "Сгенерировать",
"done": "Готово", "done": "Готово",
@@ -424,7 +426,7 @@
"userCreated": "Пользователь создан", "userCreated": "Пользователь создан",
"userCreatedDescription": "Пользователь был успешно создан.", "userCreatedDescription": "Пользователь был успешно создан.",
"userTypeInternal": "Внутренний пользователь", "userTypeInternal": "Внутренний пользователь",
"userTypeInternalDescription": "Пригласите пользователя напрямую в вашу организацию.", "userTypeInternalDescription": "Пригласить пользователя присоединиться к организации напрямую.",
"userTypeExternal": "Внешний пользователь", "userTypeExternal": "Внешний пользователь",
"userTypeExternalDescription": "Создайте пользователя через внешний Identity Provider.", "userTypeExternalDescription": "Создайте пользователя через внешний Identity Provider.",
"accessUserCreateDescription": "Следуйте инструкциям ниже для создания нового пользователя", "accessUserCreateDescription": "Следуйте инструкциям ниже для создания нового пользователя",
@@ -436,6 +438,16 @@
"inviteEmailSent": "Отправить приглашение по Email", "inviteEmailSent": "Отправить приглашение по Email",
"inviteValid": "Действительно", "inviteValid": "Действительно",
"selectDuration": "Укажите срок действия", "selectDuration": "Укажите срок действия",
"selectResource": "Выберите ресурс",
"filterByResource": "Фильтровать по ресурсам",
"resetFilters": "Сбросить фильтры",
"totalBlocked": "Запросы заблокированы Панголином",
"totalRequests": "Всего запросов",
"requestsByCountry": "Запросы по стране",
"requestsByDay": "Запросы по дням",
"blocked": "Заблокирован",
"allowed": "Разрешено",
"topCountries": "Лучшие страны",
"accessRoleSelect": "Выберите роль", "accessRoleSelect": "Выберите роль",
"inviteEmailSentDescription": "Email был отправлен пользователю со ссылкой доступа ниже. Он должен перейти по ссылке для принятия приглашения.", "inviteEmailSentDescription": "Email был отправлен пользователю со ссылкой доступа ниже. Он должен перейти по ссылке для принятия приглашения.",
"inviteSentDescription": "Пользователь был приглашён. Он должен перейти по ссылке ниже для принятия приглашения.", "inviteSentDescription": "Пользователь был приглашён. Он должен перейти по ссылке ниже для принятия приглашения.",
@@ -458,13 +470,13 @@
"accessControlsSubmit": "Сохранить контроль доступа", "accessControlsSubmit": "Сохранить контроль доступа",
"roles": "Роли", "roles": "Роли",
"accessUsersRoles": "Управление пользователями и ролями", "accessUsersRoles": "Управление пользователями и ролями",
"accessUsersRolesDescription": "Приглашайте пользователей и добавляйте их в роли для управления доступом к вашей организации", "accessUsersRolesDescription": "Пригласить пользователей и добавить их в роли для управления доступом к организации",
"key": "Ключ", "key": "Ключ",
"createdAt": "Создано в", "createdAt": "Создано в",
"proxyErrorInvalidHeader": "Неверное значение пользовательского заголовка Host. Используйте формат доменного имени или оставьте пустым для сброса пользовательского заголовка Host.", "proxyErrorInvalidHeader": "Неверное значение пользовательского заголовка Host. Используйте формат доменного имени или оставьте пустым для сброса пользовательского заголовка Host.",
"proxyErrorTls": "Неверное имя TLS сервера. Используйте формат доменного имени или оставьте пустым для удаления имени TLS сервера.", "proxyErrorTls": "Неверное имя TLS сервера. Используйте формат доменного имени или оставьте пустым для удаления имени TLS сервера.",
"proxyEnableSSL": "Включить SSL", "proxyEnableSSL": "Включить SSL",
"proxyEnableSSLDescription": "Включить шифрование SSL/TLS для безопасных HTTPS подключений к вашим целям.", "proxyEnableSSLDescription": "Включить шифрование SSL/TLS для безопасных HTTPS соединений с целями.",
"target": "Target", "target": "Target",
"configureTarget": "Настроить адресаты", "configureTarget": "Настроить адресаты",
"targetErrorFetch": "Не удалось получить цели", "targetErrorFetch": "Не удалось получить цели",
@@ -480,29 +492,29 @@
"targetsErrorUpdate": "Не удалось обновить цели", "targetsErrorUpdate": "Не удалось обновить цели",
"targetsErrorUpdateDescription": "Произошла ошибка при обновлении целей", "targetsErrorUpdateDescription": "Произошла ошибка при обновлении целей",
"targetTlsUpdate": "Настройки TLS обновлены", "targetTlsUpdate": "Настройки TLS обновлены",
"targetTlsUpdateDescription": "Ваши настройки TLS были успешно обновлены", "targetTlsUpdateDescription": "Настройки TLS успешно обновлены",
"targetErrorTlsUpdate": "Не удалось обновить настройки TLS", "targetErrorTlsUpdate": "Не удалось обновить настройки TLS",
"targetErrorTlsUpdateDescription": "Произошла ошибка при обновлении настроек TLS", "targetErrorTlsUpdateDescription": "Произошла ошибка при обновлении настроек TLS",
"proxyUpdated": "Настройки прокси обновлены", "proxyUpdated": "Настройки прокси обновлены",
"proxyUpdatedDescription": "Ваши настройки прокси были успешно обновлены", "proxyUpdatedDescription": "Настройки прокси успешно обновлены",
"proxyErrorUpdate": "Не удалось обновить настройки прокси", "proxyErrorUpdate": "Не удалось обновить настройки прокси",
"proxyErrorUpdateDescription": "Произошла ошибка при обновлении настроек прокси", "proxyErrorUpdateDescription": "Произошла ошибка при обновлении настроек прокси",
"targetAddr": "IP / Имя хоста", "targetAddr": "Хост",
"targetPort": "Порт", "targetPort": "Порт",
"targetProtocol": "Протокол", "targetProtocol": "Протокол",
"targetTlsSettings": "Конфигурация безопасного соединения", "targetTlsSettings": "Конфигурация безопасного соединения",
"targetTlsSettingsDescription": "Настройте параметры SSL/TLS для вашего ресурса", "targetTlsSettingsDescription": "Настроить параметры SSL/TLS для ресурса",
"targetTlsSettingsAdvanced": "Расширенные настройки TLS", "targetTlsSettingsAdvanced": "Расширенные настройки TLS",
"targetTlsSni": "Имя TLS сервера", "targetTlsSni": "Имя TLS сервера",
"targetTlsSniDescription": "Имя TLS сервера для использования в SNI. Оставьте пустым для использования по умолчанию.", "targetTlsSniDescription": "Имя TLS сервера для использования в SNI. Оставьте пустым для использования по умолчанию.",
"targetTlsSubmit": "Сохранить настройки", "targetTlsSubmit": "Сохранить настройки",
"targets": "Конфигурация целей", "targets": "Конфигурация целей",
"targetsDescription": "Настройте цели для маршрутизации трафика к вашим бэкэнд сервисам", "targetsDescription": "Настроить цели на маршрут трафика в сервисы backend",
"targetStickySessions": "Включить фиксированные сессии", "targetStickySessions": "Включить фиксированные сессии",
"targetStickySessionsDescription": "Сохранять соединения на одной и той же целевой точке в течение всей сессии.", "targetStickySessionsDescription": "Сохранять соединения на одной и той же целевой точке в течение всей сессии.",
"methodSelect": "Выберите метод", "methodSelect": "Выберите метод",
"targetSubmit": "Добавить цель", "targetSubmit": "Добавить цель",
"targetNoOne": "Этот ресурс не имеет никаких целей. Добавьте цель для настройки, где отправлять запросы к вашему бэкэнду.", "targetNoOne": "Этот ресурс не имеет никаких целей. Добавьте цель для настройки, где отправлять запросы в бэкэнд.",
"targetNoOneDescription": "Добавление более одной цели выше включит балансировку нагрузки.", "targetNoOneDescription": "Добавление более одной цели выше включит балансировку нагрузки.",
"targetsSubmit": "Сохранить цели", "targetsSubmit": "Сохранить цели",
"addTarget": "Добавить цель", "addTarget": "Добавить цель",
@@ -516,9 +528,11 @@
"targetCreatedDescription": "Цель была успешно создана", "targetCreatedDescription": "Цель была успешно создана",
"targetErrorCreate": "Не удалось создать цель", "targetErrorCreate": "Не удалось создать цель",
"targetErrorCreateDescription": "Произошла ошибка при создании цели", "targetErrorCreateDescription": "Произошла ошибка при создании цели",
"tlsServerName": "Имя TLS сервера",
"tlsServerNameDescription": "Имя TLS сервера для SNI",
"save": "Сохранить", "save": "Сохранить",
"proxyAdditional": "Дополнительные настройки прокси", "proxyAdditional": "Дополнительные настройки прокси",
"proxyAdditionalDescription": "Настройте, как ваш ресурс обрабатывает настройки прокси", "proxyAdditionalDescription": "Настроить обработку параметров прокси ресурса",
"proxyCustomHeader": "Пользовательский заголовок Host", "proxyCustomHeader": "Пользовательский заголовок Host",
"proxyCustomHeaderDescription": "Заголовок host для установки при проксировании запросов. Оставьте пустым для использования по умолчанию.", "proxyCustomHeaderDescription": "Заголовок host для установки при проксировании запросов. Оставьте пустым для использования по умолчанию.",
"proxyAdditionalSubmit": "Сохранить настройки прокси", "proxyAdditionalSubmit": "Сохранить настройки прокси",
@@ -558,7 +572,7 @@
"rulesMatchType": "Тип совпадения", "rulesMatchType": "Тип совпадения",
"value": "Значение", "value": "Значение",
"rulesAbout": "О правилах", "rulesAbout": "О правилах",
"rulesAboutDescription": "Правила позволяют контролировать доступ к вашему ресурсу на основе набора критериев. Вы можете создавать правила для разрешения или запрета доступа на основе IP адреса или URL пути.", "rulesAboutDescription": "Правила позволяют контролировать доступ к ресурсу на основе набора критериев. Вы можете создать правила, чтобы разрешить или запретить доступ на основе IP-адреса или URL пути.",
"rulesActions": "Действия", "rulesActions": "Действия",
"rulesActionAlwaysAllow": "Всегда разрешать: Обойти все методы аутентификации", "rulesActionAlwaysAllow": "Всегда разрешать: Обойти все методы аутентификации",
"rulesActionAlwaysDeny": "Всегда запрещать: Блокировать все запросы; аутентификация не может быть выполнена", "rulesActionAlwaysDeny": "Всегда запрещать: Блокировать все запросы; аутентификация не может быть выполнена",
@@ -570,7 +584,7 @@
"rulesEnable": "Включить правила", "rulesEnable": "Включить правила",
"rulesEnableDescription": "Включить или отключить проверку правил для этого ресурса", "rulesEnableDescription": "Включить или отключить проверку правил для этого ресурса",
"rulesResource": "Конфигурация правил ресурса", "rulesResource": "Конфигурация правил ресурса",
"rulesResourceDescription": "Настройте правила для контроля доступа к вашему ресурсу", "rulesResourceDescription": "Настройка правил для контроля доступа к ресурсу",
"ruleSubmit": "Добавить правило", "ruleSubmit": "Добавить правило",
"rulesNoOne": "Нет правил. Добавьте правило с помощью формы.", "rulesNoOne": "Нет правил. Добавьте правило с помощью формы.",
"rulesOrder": "Правила оцениваются по приоритету в возрастающем порядке.", "rulesOrder": "Правила оцениваются по приоритету в возрастающем порядке.",
@@ -586,7 +600,7 @@
"none": "Нет", "none": "Нет",
"unknown": "Неизвестно", "unknown": "Неизвестно",
"resources": "Ресурсы", "resources": "Ресурсы",
"resourcesDescription": "Ресурсы - это прокси к приложениям, работающим в вашей частной сети. Создайте ресурс для любого HTTP/HTTPS или сырого TCP/UDP сервиса в вашей частной сети. Каждый ресурс должен быть подключен к сайту для обеспечения приватного, безопасного соединения через зашифрованный туннель WireGuard.", "resourcesDescription": "Ресурсы - это прокси для приложений, работающих в частной сети. Создайте ресурс для любого HTTP/HTTPS или необработанной службы TCP/UDP в вашей частной сети. Каждый ресурс должен быть подключен к сайту, чтобы включить приватное и защищенное подключение через зашифрованный туннель WireGuard.",
"resourcesWireGuardConnect": "Безопасное соединение с шифрованием WireGuard", "resourcesWireGuardConnect": "Безопасное соединение с шифрованием WireGuard",
"resourcesMultipleAuthenticationMethods": "Настройка нескольких методов аутентификации", "resourcesMultipleAuthenticationMethods": "Настройка нескольких методов аутентификации",
"resourcesUsersRolesAccess": "Контроль доступа на основе пользователей и ролей", "resourcesUsersRolesAccess": "Контроль доступа на основе пользователей и ролей",
@@ -597,7 +611,7 @@
"resourceSelect": "Выберите ресурс", "resourceSelect": "Выберите ресурс",
"shareLinks": "Общие ссылки", "shareLinks": "Общие ссылки",
"share": "Общие ссылки", "share": "Общие ссылки",
"shareDescription2": "Создавайте общие ссылки к вашим ресурсам. Ссылки предоставляют временный или неограниченный доступ к вашему ресурсу. Вы можете настроить время истечения ссылки при её создании.", "shareDescription2": "Создавайте общие ссылки на ресурсы. Ссылки обеспечивают временный или неограниченный доступ к вашему ресурсу. Вы можете настроить продолжительность действия ссылки при ее создании.",
"shareEasyCreate": "Легко создавать и делиться", "shareEasyCreate": "Легко создавать и делиться",
"shareConfigurableExpirationDuration": "Настраиваемая продолжительность истечения", "shareConfigurableExpirationDuration": "Настраиваемая продолжительность истечения",
"shareSecureAndRevocable": "Безопасные и отзываемые", "shareSecureAndRevocable": "Безопасные и отзываемые",
@@ -607,19 +621,19 @@
"unknownCommand": "Неизвестная команда", "unknownCommand": "Неизвестная команда",
"newtErrorFetchReleases": "Не удалось получить информацию о релизе: {err}", "newtErrorFetchReleases": "Не удалось получить информацию о релизе: {err}",
"newtErrorFetchLatest": "Ошибка при получении последнего релиза: {err}", "newtErrorFetchLatest": "Ошибка при получении последнего релиза: {err}",
"newtEndpoint": "Конечная точка Newt", "newtEndpoint": "Endpoint",
"newtId": "Newt ID", "newtId": "ID",
"newtSecretKey": "Секретный ключ Newt", "newtSecretKey": "Секретный ключ",
"architecture": "Архитектура", "architecture": "Архитектура",
"sites": "Сайты", "sites": "Сайты",
"siteWgAnyClients": "Используйте любой клиент WireGuard для подключения. Вам придётся обращаться к вашим внутренним ресурсам, используя IP узла.", "siteWgAnyClients": "Для подключения используйте любой клиент WireGuard. Вы должны будете адресовать внутренние ресурсы, используя IP адрес пира.",
"siteWgCompatibleAllClients": "Совместим со всеми клиентами WireGuard", "siteWgCompatibleAllClients": "Совместим со всеми клиентами WireGuard",
"siteWgManualConfigurationRequired": "Требуется ручная настройка", "siteWgManualConfigurationRequired": "Требуется ручная настройка",
"userErrorNotAdminOrOwner": "Пользователь не является администратором или владельцем", "userErrorNotAdminOrOwner": "Пользователь не является администратором или владельцем",
"pangolinSettings": "Настройки - Pangolin", "pangolinSettings": "Настройки - Pangolin",
"accessRoleYour": "Ваша роль:", "accessRoleYour": "Ваша роль:",
"accessRoleSelect2": "Выберите роль", "accessRoleSelect2": "Выберите роли",
"accessUserSelect": "Выберите пользователя", "accessUserSelect": "Выберите пользователей",
"otpEmailEnter": "Введите email", "otpEmailEnter": "Введите email",
"otpEmailEnterDescription": "Нажмите enter для добавления email после ввода в поле.", "otpEmailEnterDescription": "Нажмите enter для добавления email после ввода в поле.",
"otpEmailErrorInvalid": "Неверный email адрес. Подстановочный знак (*) должен быть всей локальной частью.", "otpEmailErrorInvalid": "Неверный email адрес. Подстановочный знак (*) должен быть всей локальной частью.",
@@ -671,7 +685,7 @@
"resourcePincodeSetupTitle": "Установить PIN-код", "resourcePincodeSetupTitle": "Установить PIN-код",
"resourcePincodeSetupTitleDescription": "Установите PIN-код для защиты этого ресурса", "resourcePincodeSetupTitleDescription": "Установите PIN-код для защиты этого ресурса",
"resourceRoleDescription": "Администраторы всегда имеют доступ к этому ресурсу.", "resourceRoleDescription": "Администраторы всегда имеют доступ к этому ресурсу.",
"resourceUsersRoles": "Пользователи и роли", "resourceUsersRoles": "Контроль доступа",
"resourceUsersRolesDescription": "Выберите пользователей и роли с доступом к этому ресурсу", "resourceUsersRolesDescription": "Выберите пользователей и роли с доступом к этому ресурсу",
"resourceUsersRolesSubmit": "Сохранить пользователей и роли", "resourceUsersRolesSubmit": "Сохранить пользователей и роли",
"resourceWhitelistSave": "Успешно сохранено", "resourceWhitelistSave": "Успешно сохранено",
@@ -702,6 +716,7 @@
"resourceTransferSubmit": "Перенести ресурс", "resourceTransferSubmit": "Перенести ресурс",
"siteDestination": "Новый сайт для ресурса", "siteDestination": "Новый сайт для ресурса",
"searchSites": "Поиск сайтов", "searchSites": "Поиск сайтов",
"countries": "Страны",
"accessRoleCreate": "Создание роли", "accessRoleCreate": "Создание роли",
"accessRoleCreateDescription": "Создайте новую роль для группы пользователей и выдавайте им разрешения.", "accessRoleCreateDescription": "Создайте новую роль для группы пользователей и выдавайте им разрешения.",
"accessRoleCreateSubmit": "Создать роль", "accessRoleCreateSubmit": "Создать роль",
@@ -766,15 +781,15 @@
"idpOidcConfigure": "Конфигурация OAuth2/OIDC", "idpOidcConfigure": "Конфигурация OAuth2/OIDC",
"idpOidcConfigureDescription": "Настройте конечные точки и учётные данные поставщика OAuth2/OIDC", "idpOidcConfigureDescription": "Настройте конечные точки и учётные данные поставщика OAuth2/OIDC",
"idpClientId": "ID клиента", "idpClientId": "ID клиента",
"idpClientIdDescription": "OAuth2 ID клиента от вашего поставщика удостоверений", "idpClientIdDescription": "Идентификатор клиента OAuth2 от поставщика идентификации",
"idpClientSecret": "Секрет клиента", "idpClientSecret": "Секрет клиента",
"idpClientSecretDescription": "OAuth2 секрет клиента от вашего поставщика удостоверений", "idpClientSecretDescription": "Секретный ключ клиента OAuth2 от поставщика идентификации",
"idpAuthUrl": "URL авторизации", "idpAuthUrl": "URL авторизации",
"idpAuthUrlDescription": "URL конечной точки авторизации OAuth2", "idpAuthUrlDescription": "URL конечной точки авторизации OAuth2",
"idpTokenUrl": "URL токена", "idpTokenUrl": "URL токена",
"idpTokenUrlDescription": "URL конечной точки токена OAuth2", "idpTokenUrlDescription": "URL конечной точки токена OAuth2",
"idpOidcConfigureAlert": "Важная информация", "idpOidcConfigureAlert": "Важная информация",
"idpOidcConfigureAlertDescription": "После создания поставщика удостоверений вам нужно будет настроить URL обратного вызова в настройках вашего поставщика удостоверений. URL обратного вызова будет предоставлен после успешного создания.", "idpOidcConfigureAlertDescription": "После создания идентификационного провайдера вам необходимо настроить обратный адрес в настройках провайдера. URL обратного вызова будет предоставлен после успешного создания.",
"idpToken": "Конфигурация токена", "idpToken": "Конфигурация токена",
"idpTokenDescription": "Настройте, как извлекать информацию о пользователе из ID токена", "idpTokenDescription": "Настройте, как извлекать информацию о пользователе из ID токена",
"idpJmespathAbout": "О JMESPath", "idpJmespathAbout": "О JMESPath",
@@ -791,7 +806,7 @@
"idpSubmit": "Создать поставщика удостоверений", "idpSubmit": "Создать поставщика удостоверений",
"orgPolicies": "Политики организации", "orgPolicies": "Политики организации",
"idpSettings": "Настройки {idpName}", "idpSettings": "Настройки {idpName}",
"idpCreateSettingsDescription": "Настройте параметры для вашего поставщика удостоверений", "idpCreateSettingsDescription": "Настройка параметров для идентификации провайдера",
"roleMapping": "Сопоставление ролей", "roleMapping": "Сопоставление ролей",
"orgMapping": "Сопоставление организаций", "orgMapping": "Сопоставление организаций",
"orgPoliciesSearch": "Поиск политик организации...", "orgPoliciesSearch": "Поиск политик организации...",
@@ -826,7 +841,7 @@
"idpUpdatedDescription": "Поставщик удостоверений успешно обновлён", "idpUpdatedDescription": "Поставщик удостоверений успешно обновлён",
"redirectUrl": "URL редиректа", "redirectUrl": "URL редиректа",
"redirectUrlAbout": "О редиректе URL", "redirectUrlAbout": "О редиректе URL",
"redirectUrlAboutDescription": "Это URL, на который пользователи будут перенаправлены после аутентификации. Вам нужно настроить этот URL в настройках вашего поставщика удостоверений.", "redirectUrlAboutDescription": "Это URL, на который пользователи будут перенаправлены после аутентификации. Вам нужно настроить этот URL в настройках провайдера.",
"pangolinAuth": "Аутентификация - Pangolin", "pangolinAuth": "Аутентификация - Pangolin",
"verificationCodeLengthRequirements": "Ваш код подтверждения должен состоять из 8 символов.", "verificationCodeLengthRequirements": "Ваш код подтверждения должен состоять из 8 символов.",
"errorOccurred": "Произошла ошибка", "errorOccurred": "Произошла ошибка",
@@ -909,6 +924,10 @@
"passwordResetSent": "Мы отправим код сброса пароля на этот email адрес.", "passwordResetSent": "Мы отправим код сброса пароля на этот email адрес.",
"passwordResetCode": "Код сброса пароля", "passwordResetCode": "Код сброса пароля",
"passwordResetCodeDescription": "Проверьте вашу почту для получения кода сброса пароля.", "passwordResetCodeDescription": "Проверьте вашу почту для получения кода сброса пароля.",
"generatePasswordResetCode": "Сгенерировать код сброса пароля",
"passwordResetCodeGenerated": "Код сброса пароля создан",
"passwordResetCodeGeneratedDescription": "Поделитесь этим кодом с пользователем. Они могут использовать его для сброса пароля.",
"passwordResetUrl": "Reset URL",
"passwordNew": "Новый пароль", "passwordNew": "Новый пароль",
"passwordNewConfirm": "Подтвердите новый пароль", "passwordNewConfirm": "Подтвердите новый пароль",
"changePassword": "Изменить пароль", "changePassword": "Изменить пароль",
@@ -926,6 +945,9 @@
"pincodeAuth": "Код аутентификатора", "pincodeAuth": "Код аутентификатора",
"pincodeSubmit2": "Отправить код", "pincodeSubmit2": "Отправить код",
"passwordResetSubmit": "Запросить сброс", "passwordResetSubmit": "Запросить сброс",
"passwordResetAlreadyHaveCode": "Введите код сброса пароля",
"passwordResetSmtpRequired": "Пожалуйста, обратитесь к администратору",
"passwordResetSmtpRequiredDescription": "Для сброса пароля необходим код сброса пароля. Обратитесь к администратору за помощью.",
"passwordBack": "Назад к паролю", "passwordBack": "Назад к паролю",
"loginBack": "Вернуться к входу", "loginBack": "Вернуться к входу",
"signup": "Регистрация", "signup": "Регистрация",
@@ -1091,12 +1113,15 @@
"actionListSiteResources": "Список ресурсов сайта", "actionListSiteResources": "Список ресурсов сайта",
"actionUpdateSiteResource": "Обновить ресурс сайта", "actionUpdateSiteResource": "Обновить ресурс сайта",
"actionListInvitations": "Список приглашений", "actionListInvitations": "Список приглашений",
"actionExportLogs": "Экспорт журналов",
"actionViewLogs": "Просмотр журналов",
"noneSelected": "Ничего не выбрано", "noneSelected": "Ничего не выбрано",
"orgNotFound2": "Организации не найдены.", "orgNotFound2": "Организации не найдены.",
"searchProgress": "Поиск...", "searchProgress": "Поиск...",
"create": "Создать", "create": "Создать",
"orgs": "Организации", "orgs": "Организации",
"loginError": "Произошла ошибка при входе", "loginError": "Произошла ошибка при входе",
"loginRequiredForDevice": "Для аутентификации устройства необходимо войти в систему.",
"passwordForgot": "Забыли пароль?", "passwordForgot": "Забыли пароль?",
"otpAuth": "Двухфакторная аутентификация", "otpAuth": "Двухфакторная аутентификация",
"otpAuthDescription": "Введите код из вашего приложения-аутентификатора или один из ваших одноразовых резервных кодов.", "otpAuthDescription": "Введите код из вашего приложения-аутентификатора или один из ваших одноразовых резервных кодов.",
@@ -1151,37 +1176,47 @@
"sidebarHome": "Главная", "sidebarHome": "Главная",
"sidebarSites": "Сайты", "sidebarSites": "Сайты",
"sidebarResources": "Ресурсы", "sidebarResources": "Ресурсы",
"sidebarProxyResources": "Публичный",
"sidebarClientResources": "Приватный",
"sidebarAccessControl": "Контроль доступа", "sidebarAccessControl": "Контроль доступа",
"sidebarLogsAndAnalytics": "Журналы и аналитика",
"sidebarUsers": "Пользователи", "sidebarUsers": "Пользователи",
"sidebarAdmin": "Админ",
"sidebarInvitations": "Приглашения", "sidebarInvitations": "Приглашения",
"sidebarRoles": "Роли", "sidebarRoles": "Роли",
"sidebarShareableLinks": "Общие ссылки", "sidebarShareableLinks": "Ссылки",
"sidebarApiKeys": "API ключи", "sidebarApiKeys": "API ключи",
"sidebarSettings": "Настройки", "sidebarSettings": "Настройки",
"sidebarAllUsers": "Все пользователи", "sidebarAllUsers": "Все пользователи",
"sidebarIdentityProviders": "Поставщики удостоверений", "sidebarIdentityProviders": "Поставщики удостоверений",
"sidebarLicense": "Лицензия", "sidebarLicense": "Лицензия",
"sidebarClients": "Клиенты", "sidebarClients": "Клиенты",
"sidebarUserDevices": "Пользователи",
"sidebarMachineClients": "Машины",
"sidebarDomains": "Домены", "sidebarDomains": "Домены",
"sidebarGeneral": "Общие",
"sidebarLogAndAnalytics": "Журнал и аналитика",
"sidebarBluePrints": "Чертежи", "sidebarBluePrints": "Чертежи",
"sidebarOrganization": "Организация",
"sidebarLogsAnalytics": "Статистика",
"blueprints": "Чертежи", "blueprints": "Чертежи",
"blueprintsDescription": "Чертежи являются декларативными конфигурациями YAML, которые определяют ваши ресурсы и их настройки", "blueprintsDescription": "Применить декларирующие конфигурации и просмотреть предыдущие запуски",
"blueprintAdd": "Добавить чертёж", "blueprintAdd": "Добавить чертёж",
"blueprintGoBack": "Посмотреть все чертежи", "blueprintGoBack": "Посмотреть все чертежи",
"blueprintCreate": "Создать чертёж", "blueprintCreate": "Создать чертёж",
"blueprintCreateDescription2": "Для создания и применения нового чертежа выполните следующие шаги", "blueprintCreateDescription2": "Для создания и применения нового чертежа выполните следующие шаги",
"blueprintDetails": "Подробности чертежа", "blueprintDetails": "Детали чертежа",
"blueprintDetailsDescription": "Посмотреть детали запуска чертежа", "blueprintDetailsDescription": "Посмотреть результат примененного чертежа и все возникшие ошибки",
"blueprintInfo": "Информация о чертеже", "blueprintInfo": "Информация о чертеже",
"message": "Сообщение", "message": "Сообщение",
"blueprintContentsDescription": "Определите содержимое YAML, описывающее вашу инфраструктуру", "blueprintContentsDescription": "Определите содержимое YAML, описывающее инфраструктуру",
"blueprintErrorCreateDescription": "Произошла ошибка при применении чертежа", "blueprintErrorCreateDescription": "Произошла ошибка при применении чертежа",
"blueprintErrorCreate": "Ошибка при создании чертежа", "blueprintErrorCreate": "Ошибка при создании чертежа",
"searchBlueprintProgress": "Поиск чертежей...", "searchBlueprintProgress": "Поиск чертежей...",
"appliedAt": "Заявка на", "appliedAt": "Заявка на",
"source": "Источник", "source": "Источник",
"contents": "Содержание", "contents": "Содержание",
"parsedContents": "Обработанное содержимое", "parsedContents": "Переработанное содержимое (только для чтения)",
"enableDockerSocket": "Включить чертёж Docker", "enableDockerSocket": "Включить чертёж Docker",
"enableDockerSocketDescription": "Включить scraping ярлыка Docker Socket для ярлыков чертежей. Путь к сокету должен быть предоставлен в Newt.", "enableDockerSocketDescription": "Включить scraping ярлыка Docker Socket для ярлыков чертежей. Путь к сокету должен быть предоставлен в Newt.",
"enableDockerSocketLink": "Узнать больше", "enableDockerSocketLink": "Узнать больше",
@@ -1230,15 +1265,15 @@
"loading": "Загрузка", "loading": "Загрузка",
"restart": "Перезагрузка", "restart": "Перезагрузка",
"domains": "Домены", "domains": "Домены",
"domainsDescription": "Управление доменами для вашей организации", "domainsDescription": "Создание и управление доменами, доступными в организации",
"domainsSearch": "Поиск доменов...", "domainsSearch": "Поиск доменов...",
"domainAdd": "Добавить Домен", "domainAdd": "Добавить Домен",
"domainAddDescription": "Зарегистрировать новый домен в вашей организации", "domainAddDescription": "Зарегистрировать новый домен в организации",
"domainCreate": "Создать Домен", "domainCreate": "Создать Домен",
"domainCreatedDescription": "Домен успешно создан", "domainCreatedDescription": "Домен успешно создан",
"domainDeletedDescription": "Домен успешно удален", "domainDeletedDescription": "Домен успешно удален",
"domainQuestionRemove": "Вы уверены, что хотите удалить домен из вашей учетной записи?", "domainQuestionRemove": "Вы уверены, что хотите удалить домен?",
"domainMessageRemove": "После удаления домен больше не будет связан с вашей учетной записью.", "domainMessageRemove": "После удаления домен больше не будет связан с организацией.",
"domainConfirmDelete": "Подтвердить удаление домена", "domainConfirmDelete": "Подтвердить удаление домена",
"domainDelete": "Удалить Домен", "domainDelete": "Удалить Домен",
"domain": "Домен", "domain": "Домен",
@@ -1257,7 +1292,7 @@
"pending": "В ожидании", "pending": "В ожидании",
"sidebarBilling": "Выставление счетов", "sidebarBilling": "Выставление счетов",
"billing": "Выставление счетов", "billing": "Выставление счетов",
"orgBillingDescription": "Управляйте информацией о выставлении счетов и подписками", "orgBillingDescription": "Управление платежной информацией и подписками",
"github": "GitHub", "github": "GitHub",
"pangolinHosted": "Pangolin Hosted", "pangolinHosted": "Pangolin Hosted",
"fossorial": "Fossorial", "fossorial": "Fossorial",
@@ -1279,6 +1314,15 @@
"settingsErrorUpdateDescription": "Произошла ошибка при обновлении настроек", "settingsErrorUpdateDescription": "Произошла ошибка при обновлении настроек",
"sidebarCollapse": "Свернуть", "sidebarCollapse": "Свернуть",
"sidebarExpand": "Развернуть", "sidebarExpand": "Развернуть",
"productUpdateMoreInfo": "{noOfUpdates} больше обновлений",
"productUpdateInfo": "{noOfUpdates} обновлений",
"productUpdateWhatsNew": "Что нового",
"productUpdateTitle": "Обновления продуктов",
"productUpdateEmpty": "Нет обновлений",
"dismissAll": "Отклонить все",
"pangolinUpdateAvailable": "Доступно обновление",
"pangolinUpdateAvailableInfo": "Версия {version} готова к установке",
"pangolinUpdateAvailableReleaseNotes": "Просмотреть примечания к выпуску",
"newtUpdateAvailable": "Доступно обновление", "newtUpdateAvailable": "Доступно обновление",
"newtUpdateAvailableInfo": "Доступна новая версия Newt. Пожалуйста, обновитесь до последней версии для лучшего опыта.", "newtUpdateAvailableInfo": "Доступна новая версия Newt. Пожалуйста, обновитесь до последней версии для лучшего опыта.",
"domainPickerEnterDomain": "Домен", "domainPickerEnterDomain": "Домен",
@@ -1291,7 +1335,7 @@
"domainPickerSortAsc": "А-Я", "domainPickerSortAsc": "А-Я",
"domainPickerSortDesc": "Я-А", "domainPickerSortDesc": "Я-А",
"domainPickerCheckingAvailability": "Проверка доступности...", "domainPickerCheckingAvailability": "Проверка доступности...",
"domainPickerNoMatchingDomains": "Не найдены сопоставимые домены. Попробуйте другой домен или проверьте настройки доменов вашей организации.", "domainPickerNoMatchingDomains": "Подходящие домены не найдены. Попробуйте другой домен или проверьте настройки домена организации.",
"domainPickerOrganizationDomains": "Домены организации", "domainPickerOrganizationDomains": "Домены организации",
"domainPickerProvidedDomains": "Предоставленные домены", "domainPickerProvidedDomains": "Предоставленные домены",
"domainPickerSubdomain": "Поддомен: {subdomain}", "domainPickerSubdomain": "Поддомен: {subdomain}",
@@ -1325,7 +1369,7 @@
"billingModifySubscription": "Изменить подписку", "billingModifySubscription": "Изменить подписку",
"billingStartSubscription": "Начать подписку", "billingStartSubscription": "Начать подписку",
"billingRecurringCharge": "Периодический взнос", "billingRecurringCharge": "Периодический взнос",
"billingManageSubscriptionSettings": "Управляйте настройками и предпочтениями вашей подписки", "billingManageSubscriptionSettings": "Управление настройками и настройками подписки",
"billingNoActiveSubscription": "У вас нет активной подписки. Начните подписку, чтобы увеличить лимиты использования.", "billingNoActiveSubscription": "У вас нет активной подписки. Начните подписку, чтобы увеличить лимиты использования.",
"billingFailedToLoadSubscription": "Не удалось загрузить подписку", "billingFailedToLoadSubscription": "Не удалось загрузить подписку",
"billingFailedToLoadUsage": "Не удалось загрузить использование", "billingFailedToLoadUsage": "Не удалось загрузить использование",
@@ -1336,9 +1380,9 @@
"billingPortalError": "Ошибка портала", "billingPortalError": "Ошибка портала",
"billingDataUsageInfo": "Вы несете ответственность за все данные, переданные через безопасные туннели при подключении к облаку. Это включает как входящий, так и исходящий трафик на всех ваших сайтах. При достижении лимита ваши сайты будут отключаться до тех пор, пока вы не обновите план или не уменьшите его использование. При использовании узлов не взимается плата.", "billingDataUsageInfo": "Вы несете ответственность за все данные, переданные через безопасные туннели при подключении к облаку. Это включает как входящий, так и исходящий трафик на всех ваших сайтах. При достижении лимита ваши сайты будут отключаться до тех пор, пока вы не обновите план или не уменьшите его использование. При использовании узлов не взимается плата.",
"billingOnlineTimeInfo": "Вы тарифицируете на то, как долго ваши сайты будут подключены к облаку. Например, 44 640 минут равны одному сайту, работающему круглосуточно за весь месяц. Когда вы достигните лимита, ваши сайты будут отключаться до тех пор, пока вы не обновите тарифный план или не сократите нагрузку. При использовании узлов не тарифицируется.", "billingOnlineTimeInfo": "Вы тарифицируете на то, как долго ваши сайты будут подключены к облаку. Например, 44 640 минут равны одному сайту, работающему круглосуточно за весь месяц. Когда вы достигните лимита, ваши сайты будут отключаться до тех пор, пока вы не обновите тарифный план или не сократите нагрузку. При использовании узлов не тарифицируется.",
"billingUsersInfo": "С вас взимается плата за каждого пользователя в вашей организации. Оплата рассчитывается ежедневно исходя из количества активных учетных записей пользователей в вашей организации.", "billingUsersInfo": "Вы оплачиваете за каждого пользователя в организации. Платеж рассчитывается ежедневно в зависимости от количества активных учетных записей в вашем органе.",
"billingDomainInfo": "С вас взимается плата за каждый домен в вашей организации. Оплата рассчитывается ежедневно исходя из количества активных учетных записей доменов в вашей организации.", "billingDomainInfo": "Вы платите за каждый домен в организации. Платеж рассчитывается ежедневно в зависимости от количества активных доменных аккаунтов в вашем органе.",
"billingRemoteExitNodesInfo": "С вас взимается плата за каждый управляемый узел в вашей организации. Оплата рассчитывается ежедневно исходя из количества активных управляемых узлов в вашей организации.", "billingRemoteExitNodesInfo": "Вы платите за каждый управляемый узел организации. Платёж рассчитывается ежедневно на основе количества активных управляемых узлов в вашем органе.",
"domainNotFound": "Домен не найден", "domainNotFound": "Домен не найден",
"domainNotFoundDescription": "Этот ресурс отключен, так как домен больше не существует в нашей системе. Пожалуйста, установите новый домен для этого ресурса.", "domainNotFoundDescription": "Этот ресурс отключен, так как домен больше не существует в нашей системе. Пожалуйста, установите новый домен для этого ресурса.",
"failed": "Ошибка", "failed": "Ошибка",
@@ -1421,29 +1465,32 @@
"and": "и", "and": "и",
"privacyPolicy": "политика конфиденциальности" "privacyPolicy": "политика конфиденциальности"
}, },
"signUpMarketing": {
"keepMeInTheLoop": "Держите меня в цикле с новостями, обновлениями и новыми функциями по электронной почте."
},
"siteRequired": "Необходимо указать сайт.", "siteRequired": "Необходимо указать сайт.",
"olmTunnel": "Olm Туннель", "olmTunnel": "Olm Туннель",
"olmTunnelDescription": "Используйте Olm для подключений клиентов", "olmTunnelDescription": "Используйте Olm для подключений клиентов",
"errorCreatingClient": "Ошибка при создании клиента", "errorCreatingClient": "Ошибка при создании клиента",
"clientDefaultsNotFound": "Настройки клиента по умолчанию не найдены", "clientDefaultsNotFound": "Настройки клиента по умолчанию не найдены",
"createClient": "Создать клиента", "createClient": "Создать клиента",
"createClientDescription": "Создайте нового клиента для подключения к вашим сайтам", "createClientDescription": "Создайте нового клиента для доступа к приватным ресурсам",
"seeAllClients": "Просмотреть всех клиентов", "seeAllClients": "Просмотреть всех клиентов",
"clientInformation": "Информация о клиенте", "clientInformation": "Информация о клиенте",
"clientNamePlaceholder": "Имя клиента", "clientNamePlaceholder": "Имя клиента",
"address": "Адрес", "address": "Адрес",
"subnetPlaceholder": "Подсеть", "subnetPlaceholder": "Подсеть",
"addressDescription": "Адрес, который этот клиент будет использовать для подключения", "addressDescription": "Внутренний адрес клиента. Должен находиться в подсети организации.",
"selectSites": "Выберите сайты", "selectSites": "Выберите сайты",
"sitesDescription": "Клиент будет иметь подключение к выбранным сайтам", "sitesDescription": "Клиент будет иметь подключение к выбранным сайтам",
"clientInstallOlm": "Установить Olm", "clientInstallOlm": "Установить Olm",
"clientInstallOlmDescription": "Запустите Olm на вашей системе", "clientInstallOlmDescription": "Запустите Olm на вашей системе",
"clientOlmCredentials": "Учётные данные Olm", "clientOlmCredentials": "Полномочия",
"clientOlmCredentialsDescription": "Так Olm будет аутентифицироваться через сервер", "clientOlmCredentialsDescription": "Именно так клиент будет аутентифицироваться с сервером",
"olmEndpoint": "Конечная точка Olm", "olmEndpoint": "Endpoint",
"olmId": "Olm ID", "olmId": "ID",
"olmSecretKey": "Секретный ключ Olm", "olmSecretKey": "Секретный ключ",
"clientCredentialsSave": "Сохраните ваши учётные данные", "clientCredentialsSave": "Сохранить учетные данные",
"clientCredentialsSaveDescription": "Вы сможете увидеть их только один раз. Обязательно скопируйте в безопасное место.", "clientCredentialsSaveDescription": "Вы сможете увидеть их только один раз. Обязательно скопируйте в безопасное место.",
"generalSettingsDescription": "Настройте общие параметры для этого клиента", "generalSettingsDescription": "Настройте общие параметры для этого клиента",
"clientUpdated": "Клиент обновлен", "clientUpdated": "Клиент обновлен",
@@ -1454,9 +1501,7 @@
"sitesFetchError": "Произошла ошибка при получении сайтов.", "sitesFetchError": "Произошла ошибка при получении сайтов.",
"olmErrorFetchReleases": "Произошла ошибка при получении релизов Olm.", "olmErrorFetchReleases": "Произошла ошибка при получении релизов Olm.",
"olmErrorFetchLatest": "Произошла ошибка при получении последнего релиза Olm.", "olmErrorFetchLatest": "Произошла ошибка при получении последнего релиза Olm.",
"remoteSubnets": "Удалённые подсети",
"enterCidrRange": "Введите диапазон CIDR", "enterCidrRange": "Введите диапазон CIDR",
"remoteSubnetsDescription": "Добавьте диапазоны адресов CIDR, которые можно получить из этого сайта удаленно, используя клиентов. Используйте формат 10.0.0.0/24. Это относится ТОЛЬКО к подключению через VPN клиентов.",
"resourceEnableProxy": "Включить публичный прокси", "resourceEnableProxy": "Включить публичный прокси",
"resourceEnableProxyDescription": "Включите публичное проксирование для этого ресурса. Это позволяет получить доступ к ресурсу извне сети через облако через открытый порт. Требуется конфигурация Traefik.", "resourceEnableProxyDescription": "Включите публичное проксирование для этого ресурса. Это позволяет получить доступ к ресурсу извне сети через облако через открытый порт. Требуется конфигурация Traefik.",
"externalProxyEnabled": "Внешний прокси включен", "externalProxyEnabled": "Внешний прокси включен",
@@ -1474,14 +1519,15 @@
"enableHealthChecksDescription": "Мониторинг здоровья этой цели. При необходимости можно контролировать другую конечную точку.", "enableHealthChecksDescription": "Мониторинг здоровья этой цели. При необходимости можно контролировать другую конечную точку.",
"healthScheme": "Метод", "healthScheme": "Метод",
"healthSelectScheme": "Выберите метод", "healthSelectScheme": "Выберите метод",
"healthCheckPortInvalid": "Порт проверки здоровья должен быть от 1 до 65535",
"healthCheckPath": "Путь", "healthCheckPath": "Путь",
"healthHostname": "IP / хост", "healthHostname": "IP / хост",
"healthPort": "Порт", "healthPort": "Порт",
"healthCheckPathDescription": "Путь к проверке состояния здоровья.", "healthCheckPathDescription": "Путь к проверке состояния здоровья.",
"healthyIntervalSeconds": "Интервал здоровых состояний", "healthyIntervalSeconds": "Здоровой Интервал (сек)",
"unhealthyIntervalSeconds": "Интервал нездоровых состояний", "unhealthyIntervalSeconds": "Нездоровый интервал (сек)",
"IntervalSeconds": "Интервал здоровых состояний", "IntervalSeconds": "Интервал здоровых состояний",
"timeoutSeconds": "Тайм-аут", "timeoutSeconds": "Таймаут (сек)",
"timeIsInSeconds": "Время указано в секундах", "timeIsInSeconds": "Время указано в секундах",
"retryAttempts": "Количество попыток повторного запроса", "retryAttempts": "Количество попыток повторного запроса",
"expectedResponseCodes": "Ожидаемые коды ответов", "expectedResponseCodes": "Ожидаемые коды ответов",
@@ -1517,16 +1563,22 @@
"resourceEditDomain": "Редактировать домен", "resourceEditDomain": "Редактировать домен",
"siteName": "Имя сайта", "siteName": "Имя сайта",
"proxyPort": "Порт", "proxyPort": "Порт",
"resourcesTableProxyResources": роксированные ресурсы", "resourcesTableProxyResources": убличный",
"resourcesTableClientResources": "Клиентские ресурсы", "resourcesTableClientResources": "Приватный",
"resourcesTableNoProxyResourcesFound": "Проксированных ресурсов не найдено.", "resourcesTableNoProxyResourcesFound": "Проксированных ресурсов не найдено.",
"resourcesTableNoInternalResourcesFound": "Внутренних ресурсов не найдено.", "resourcesTableNoInternalResourcesFound": "Внутренних ресурсов не найдено.",
"resourcesTableDestination": "Пункт назначения", "resourcesTableDestination": "Пункт назначения",
"resourcesTableTheseResourcesForUseWith": "Эти ресурсы предназначены для использования с", "resourcesTableAlias": "Alias",
"resourcesTableClients": "Клиенты", "resourcesTableClients": "Клиенты",
"resourcesTableAndOnlyAccessibleInternally": "и доступны только внутренне при подключении с клиентом.", "resourcesTableAndOnlyAccessibleInternally": "и доступны только внутренне при подключении с клиентом.",
"editInternalResourceDialogEditClientResource": "Редактировать ресурс клиента", "resourcesTableNoTargets": "Нет ярлыков",
"editInternalResourceDialogUpdateResourceProperties": "Обновите свойства ресурса и настройку цели для {resourceName}.", "resourcesTableHealthy": "Здоровые",
"resourcesTableDegraded": "Ухудшение",
"resourcesTableOffline": "Оффлайн",
"resourcesTableUnknown": "Неизвестен",
"resourcesTableNotMonitored": "Не отслеживается",
"editInternalResourceDialogEditClientResource": "Изменить приватный ресурс",
"editInternalResourceDialogUpdateResourceProperties": "Обновить настройки ресурса и элементы управления доступом для {resourceName}",
"editInternalResourceDialogResourceProperties": "Свойства ресурса", "editInternalResourceDialogResourceProperties": "Свойства ресурса",
"editInternalResourceDialogName": "Имя", "editInternalResourceDialogName": "Имя",
"editInternalResourceDialogProtocol": "Протокол", "editInternalResourceDialogProtocol": "Протокол",
@@ -1545,11 +1597,22 @@
"editInternalResourceDialogInvalidIPAddressFormat": "Неверный формат IP адреса", "editInternalResourceDialogInvalidIPAddressFormat": "Неверный формат IP адреса",
"editInternalResourceDialogDestinationPortMin": "Целевой порт должен быть не менее 1", "editInternalResourceDialogDestinationPortMin": "Целевой порт должен быть не менее 1",
"editInternalResourceDialogDestinationPortMax": "Целевой порт должен быть меньше 65536", "editInternalResourceDialogDestinationPortMax": "Целевой порт должен быть меньше 65536",
"editInternalResourceDialogPortModeRequired": "Порт для порта необходим для протокола, прокси и порта назначения",
"editInternalResourceDialogMode": "Режим",
"editInternalResourceDialogModePort": "Порт",
"editInternalResourceDialogModeHost": "Хост",
"editInternalResourceDialogModeCidr": "СИДР",
"editInternalResourceDialogDestination": "Пункт назначения",
"editInternalResourceDialogDestinationHostDescription": "IP адрес или имя хоста ресурса в сети сайта.",
"editInternalResourceDialogDestinationIPDescription": "IP или адрес хоста ресурса в сети сайта.",
"editInternalResourceDialogDestinationCidrDescription": "Диапазон CIDR ресурса в сети сайта.",
"editInternalResourceDialogAlias": "Alias",
"editInternalResourceDialogAliasDescription": "Дополнительный внутренний DNS псевдоним для этого ресурса.",
"createInternalResourceDialogNoSitesAvailable": "Нет доступных сайтов", "createInternalResourceDialogNoSitesAvailable": "Нет доступных сайтов",
"createInternalResourceDialogNoSitesAvailableDescription": "Вам необходимо иметь хотя бы один сайт Newt с настроенной подсетью для создания внутреннего ресурса.", "createInternalResourceDialogNoSitesAvailableDescription": "Вам необходимо иметь хотя бы один сайт Newt с настроенной подсетью для создания внутреннего ресурса.",
"createInternalResourceDialogClose": "Закрыть", "createInternalResourceDialogClose": "Закрыть",
"createInternalResourceDialogCreateClientResource": "Создать ресурс клиента", "createInternalResourceDialogCreateClientResource": "Создать приватный ресурс",
"createInternalResourceDialogCreateClientResourceDescription": "Создайте новый ресурс, который будет доступен клиентам, подключенным к выбранному сайту.", "createInternalResourceDialogCreateClientResourceDescription": "Создать новый ресурс, который будет доступен только клиентам, подключенным к организации",
"createInternalResourceDialogResourceProperties": "Свойства ресурса", "createInternalResourceDialogResourceProperties": "Свойства ресурса",
"createInternalResourceDialogName": "Имя", "createInternalResourceDialogName": "Имя",
"createInternalResourceDialogSite": "Сайт", "createInternalResourceDialogSite": "Сайт",
@@ -1578,11 +1641,22 @@
"createInternalResourceDialogInvalidIPAddressFormat": "Неверный формат IP-адреса", "createInternalResourceDialogInvalidIPAddressFormat": "Неверный формат IP-адреса",
"createInternalResourceDialogDestinationPortMin": "Целевой порт должен быть не менее 1", "createInternalResourceDialogDestinationPortMin": "Целевой порт должен быть не менее 1",
"createInternalResourceDialogDestinationPortMax": "Целевой порт должен быть меньше 65536", "createInternalResourceDialogDestinationPortMax": "Целевой порт должен быть меньше 65536",
"createInternalResourceDialogPortModeRequired": "Порт для порта необходим для протокола, прокси и порта назначения",
"createInternalResourceDialogMode": "Режим",
"createInternalResourceDialogModePort": "Порт",
"createInternalResourceDialogModeHost": "Хост",
"createInternalResourceDialogModeCidr": "СИДР",
"createInternalResourceDialogDestination": "Пункт назначения",
"createInternalResourceDialogDestinationHostDescription": "IP адрес или имя хоста ресурса в сети сайта.",
"createInternalResourceDialogDestinationCidrDescription": "Диапазон CIDR ресурса в сети сайта.",
"createInternalResourceDialogAlias": "Alias",
"createInternalResourceDialogAliasDescription": "Дополнительный внутренний DNS псевдоним для этого ресурса.",
"siteConfiguration": "Конфигурация", "siteConfiguration": "Конфигурация",
"siteAcceptClientConnections": "Принимать подключения клиентов", "siteAcceptClientConnections": "Принимать подключения клиентов",
"siteAcceptClientConnectionsDescription": "Разрешите другим устройствам подключаться через этот экземпляр Newt в качестве шлюза с использованием клиентов.", "siteAcceptClientConnectionsDescription": "Разрешить пользовательским устройствам и клиентам доступ к ресурсам на этом сайте. Это может быть изменено позже.",
"siteAddress": "Адрес сайта", "siteAddress": "Адрес сайта (Дополнительно)",
"siteAddressDescription": "Укажите IP-адрес хоста для подключения клиентов. Это внутренний адрес сайта в сети Pangolin для адресации клиентов. Должен находиться в пределах подсети организационного уровня.", "siteAddressDescription": "Внутренний адрес сайта. Должен находиться в подсети организации.",
"siteNameDescription": "Отображаемое имя сайта, которое может быть изменено позже.",
"autoLoginExternalIdp": "Автоматический вход с внешним провайдером", "autoLoginExternalIdp": "Автоматический вход с внешним провайдером",
"autoLoginExternalIdpDescription": "Немедленно перенаправьте пользователя к внешнему провайдеру для аутентификации.", "autoLoginExternalIdpDescription": "Немедленно перенаправьте пользователя к внешнему провайдеру для аутентификации.",
"selectIdp": "Выберите провайдера", "selectIdp": "Выберите провайдера",
@@ -1596,7 +1670,7 @@
"autoLoginErrorNoRedirectUrl": "URL-адрес перенаправления не получен от провайдера удостоверения.", "autoLoginErrorNoRedirectUrl": "URL-адрес перенаправления не получен от провайдера удостоверения.",
"autoLoginErrorGeneratingUrl": "Не удалось сгенерировать URL-адрес аутентификации.", "autoLoginErrorGeneratingUrl": "Не удалось сгенерировать URL-адрес аутентификации.",
"remoteExitNodeManageRemoteExitNodes": "Удаленные узлы", "remoteExitNodeManageRemoteExitNodes": "Удаленные узлы",
"remoteExitNodeDescription": "Самохост-один или несколько удаленных узлов для расширения сетевого подключения и уменьшения зависимости от облака", "remoteExitNodeDescription": "Самохост-один или несколько удаленных узлов для расширения сетевого соединения и уменьшения зависимости от облака",
"remoteExitNodes": "Узлы", "remoteExitNodes": "Узлы",
"searchRemoteExitNodes": "Поиск узлов...", "searchRemoteExitNodes": "Поиск узлов...",
"remoteExitNodeAdd": "Добавить узел", "remoteExitNodeAdd": "Добавить узел",
@@ -1608,11 +1682,11 @@
"sidebarRemoteExitNodes": "Удаленные узлы", "sidebarRemoteExitNodes": "Удаленные узлы",
"remoteExitNodeCreate": { "remoteExitNodeCreate": {
"title": "Создать узел", "title": "Создать узел",
"description": "Создайте новый узел, чтобы расширить сетевое подключение", "description": "Создать новый узел для расширения сетевого подключения",
"viewAllButton": "Все узлы", "viewAllButton": "Все узлы",
"strategy": { "strategy": {
"title": "Стратегия создания", "title": "Стратегия создания",
"description": "Выберите эту опцию для настройки вашего узла или создания новых учетных данных.", "description": "Выберите эту опцию для настройки узла или создания новых учетных данных.",
"adopt": { "adopt": {
"title": "Принять узел", "title": "Принять узел",
"description": "Выберите это, если у вас уже есть учетные данные для узла." "description": "Выберите это, если у вас уже есть учетные данные для узла."
@@ -1633,7 +1707,7 @@
}, },
"generate": { "generate": {
"title": "Сгенерированные учетные данные", "title": "Сгенерированные учетные данные",
"description": "Используйте эти учётные данные для настройки вашего узла", "description": "Используйте эти учётные данные для настройки узла",
"nodeIdTitle": "ID узла", "nodeIdTitle": "ID узла",
"secretTitle": "Секретный ключ", "secretTitle": "Секретный ключ",
"saveCredentialsTitle": "Добавить учетные данные в конфигурацию", "saveCredentialsTitle": "Добавить учетные данные в конфигурацию",
@@ -1710,14 +1784,14 @@
"roleMappingExpressionPlaceholder": "например, contains(groups, 'admin') && 'Admin' || 'Member'", "roleMappingExpressionPlaceholder": "например, contains(groups, 'admin') && 'Admin' || 'Member'",
"idpGoogleConfiguration": "Конфигурация Google", "idpGoogleConfiguration": "Конфигурация Google",
"idpGoogleConfigurationDescription": "Настройка учетных данных Google OAuth2", "idpGoogleConfigurationDescription": "Настройка учетных данных Google OAuth2",
"idpGoogleClientIdDescription": "Ваш Google OAuth2 ID клиента", "idpGoogleClientIdDescription": "Google OAuth2 Client ID",
"idpGoogleClientSecretDescription": "Ваш Google OAuth2 Секрет", "idpGoogleClientSecretDescription": "Секрет клиента Google OAuth2",
"idpAzureConfiguration": "Конфигурация Azure Entra ID", "idpAzureConfiguration": "Конфигурация Azure Entra ID",
"idpAzureConfigurationDescription": "Настройте учетные данные Azure Entra ID OAuth2", "idpAzureConfigurationDescription": "Настройка учетных данных Azure Entra ID OAuth2",
"idpTenantId": "Идентификатор арендатора", "idpTenantId": "Идентификатор арендатора",
"idpTenantIdPlaceholder": "ваш тенант-id", "idpTenantIdPlaceholder": "tenant-id",
"idpAzureTenantIdDescription": "Идентификатор арендатора Azure (найден в обзоре Active Directory Azure)", "idpAzureTenantIdDescription": "ID арендатора Azure (найден в обзоре Active Directory Azure)",
"idpAzureClientIdDescription": "Ваш идентификатор клиента Azure App", "idpAzureClientIdDescription": "Регистрационный номер клиента Azure App",
"idpAzureClientSecretDescription": "Секрет регистрации клиента Azure App", "idpAzureClientSecretDescription": "Секрет регистрации клиента Azure App",
"idpGoogleTitle": "Google", "idpGoogleTitle": "Google",
"idpGoogleAlt": "Google", "idpGoogleAlt": "Google",
@@ -1726,14 +1800,14 @@
"idpGoogleConfigurationTitle": "Конфигурация Google", "idpGoogleConfigurationTitle": "Конфигурация Google",
"idpAzureConfigurationTitle": "Конфигурация Azure Entra ID", "idpAzureConfigurationTitle": "Конфигурация Azure Entra ID",
"idpTenantIdLabel": "Идентификатор арендатора", "idpTenantIdLabel": "Идентификатор арендатора",
"idpAzureClientIdDescription2": "Ваш идентификатор клиента Azure App", "idpAzureClientIdDescription2": "Регистрационный номер клиента Azure App",
"idpAzureClientSecretDescription2": "Секрет регистрации клиента Azure App", "idpAzureClientSecretDescription2": "Секрет регистрации клиента Azure App",
"idpGoogleDescription": "Google OAuth2/OIDC провайдер", "idpGoogleDescription": "Google OAuth2/OIDC провайдер",
"idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider", "idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider",
"subnet": "Подсеть", "subnet": "Подсеть",
"subnetDescription": "Подсеть для конфигурации сети этой организации.", "subnetDescription": "Подсеть для конфигурации сети этой организации.",
"authPage": "Страница авторизации", "authPage": "Страница авторизации",
"authPageDescription": "Настройка страницы авторизации для вашей организации", "authPageDescription": "Настроить страницу авторизации для организации",
"authPageDomain": "Домен страницы авторизации", "authPageDomain": "Домен страницы авторизации",
"noDomainSet": "Домен не установлен", "noDomainSet": "Домен не установлен",
"changeDomain": "Изменить домен", "changeDomain": "Изменить домен",
@@ -1743,7 +1817,7 @@
"setAuthPageDomain": "Установить домен страницы авторизации", "setAuthPageDomain": "Установить домен страницы авторизации",
"failedToFetchCertificate": "Не удалось получить сертификат", "failedToFetchCertificate": "Не удалось получить сертификат",
"failedToRestartCertificate": "Не удалось перезапустить сертификат", "failedToRestartCertificate": "Не удалось перезапустить сертификат",
"addDomainToEnableCustomAuthPages": "Добавьте домен для включения пользовательских страниц аутентификации для вашей организации", "addDomainToEnableCustomAuthPages": "Добавить домен для включения пользовательских страниц аутентификации для организации",
"selectDomainForOrgAuthPage": "Выберите домен для страницы аутентификации организации", "selectDomainForOrgAuthPage": "Выберите домен для страницы аутентификации организации",
"domainPickerProvidedDomain": "Домен предоставлен", "domainPickerProvidedDomain": "Домен предоставлен",
"domainPickerFreeProvidedDomain": "Бесплатный домен", "domainPickerFreeProvidedDomain": "Бесплатный домен",
@@ -1758,7 +1832,7 @@
"domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" не может быть действительным для {domain}.", "domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" не может быть действительным для {domain}.",
"domainPickerSubdomainSanitized": "Субдомен очищен", "domainPickerSubdomainSanitized": "Субдомен очищен",
"domainPickerSubdomainCorrected": "\"{sub}\" был исправлен на \"{sanitized}\"", "domainPickerSubdomainCorrected": "\"{sub}\" был исправлен на \"{sanitized}\"",
"orgAuthSignInTitle": "Войдите в свою организацию", "orgAuthSignInTitle": "Войти в организацию",
"orgAuthChooseIdpDescription": "Выберите своего поставщика удостоверений личности для продолжения", "orgAuthChooseIdpDescription": "Выберите своего поставщика удостоверений личности для продолжения",
"orgAuthNoIdpConfigured": "Эта организация не имеет настроенных поставщиков идентификационных данных. Вместо этого вы можете войти в свой Pangolin.", "orgAuthNoIdpConfigured": "Эта организация не имеет настроенных поставщиков идентификационных данных. Вместо этого вы можете войти в свой Pangolin.",
"orgAuthSignInWithPangolin": "Войти через Pangolin", "orgAuthSignInWithPangolin": "Войти через Pangolin",
@@ -1776,7 +1850,7 @@
"enableTwoFactorAuthentication": "Включить двухфакторную аутентификацию", "enableTwoFactorAuthentication": "Включить двухфакторную аутентификацию",
"completeSecuritySteps": "Пройти шаги безопасности", "completeSecuritySteps": "Пройти шаги безопасности",
"securitySettings": "Настройки безопасности", "securitySettings": "Настройки безопасности",
"securitySettingsDescription": "Настройка политик безопасности для вашей организации", "securitySettingsDescription": "Настройка политик безопасности для организации",
"requireTwoFactorForAllUsers": "Требовать двухфакторную аутентификацию для всех пользователей", "requireTwoFactorForAllUsers": "Требовать двухфакторную аутентификацию для всех пользователей",
"requireTwoFactorDescription": "Когда включено, все внутренние пользователи в этой организации должны иметь двухфакторную аутентификацию для доступа к организации.", "requireTwoFactorDescription": "Когда включено, все внутренние пользователи в этой организации должны иметь двухфакторную аутентификацию для доступа к организации.",
"requireTwoFactorDisabledDescription": "Эта функция требует действительной лицензии (Enterprise) или активной подписки (SaaS)", "requireTwoFactorDisabledDescription": "Эта функция требует действительной лицензии (Enterprise) или активной подписки (SaaS)",
@@ -1839,8 +1913,12 @@
"enterpriseEdition": "Корпоративная версия", "enterpriseEdition": "Корпоративная версия",
"unlicensed": "Нелицензированный", "unlicensed": "Нелицензированный",
"beta": "Бета", "beta": "Бета",
"manageClients": "Управление клиентами", "manageUserDevices": "Устройства пользователя",
"manageClientsDescription": "Клиенты - это устройства, которые могут подключаться к вашим сайтам", "manageUserDevicesDescription": "Просмотр и управление устройствами, которые пользователи используют для приватного подключения к ресурсам",
"manageMachineClients": "Управление машинными клиентами",
"manageMachineClientsDescription": "Создание и управление клиентами, которые используют серверы и системы для частного подключения к ресурсам",
"clientsTableUserClients": "Пользователь",
"clientsTableMachineClients": "Машина",
"licenseTableValidUntil": "Действителен до", "licenseTableValidUntil": "Действителен до",
"saasLicenseKeysSettingsTitle": "Корпоративные лицензии", "saasLicenseKeysSettingsTitle": "Корпоративные лицензии",
"saasLicenseKeysSettingsDescription": "Генерировать и управлять лицензионными ключами Enterprise для копий Pangolin", "saasLicenseKeysSettingsDescription": "Генерировать и управлять лицензионными ключами Enterprise для копий Pangolin",
@@ -1975,11 +2053,12 @@
"pathRewriteStripLabel": "полоса", "pathRewriteStripLabel": "полоса",
"sidebarEnableEnterpriseLicense": "Включить корпоративную лицензию", "sidebarEnableEnterpriseLicense": "Включить корпоративную лицензию",
"cannotbeUndone": "Это действие не может быть отменено.", "cannotbeUndone": "Это действие не может быть отменено.",
"toConfirm": "для подтверждения", "toConfirm": "для подтверждения.",
"deleteClientQuestion": "Вы уверены, что хотите удалить клиента из сайта и организации?", "deleteClientQuestion": "Вы уверены, что хотите удалить клиента из сайта и организации?",
"clientMessageRemove": "После удаления клиент больше не сможет подключиться к сайту.", "clientMessageRemove": "После удаления клиент больше не сможет подключиться к сайту.",
"sidebarLogs": "Логи", "sidebarLogs": "Логи",
"request": "Запросить", "request": "Запросить",
"requests": "Запросы",
"logs": "Логи", "logs": "Логи",
"logsSettingsDescription": "Отслеживать журналы, собранные в этой организации", "logsSettingsDescription": "Отслеживать журналы, собранные в этой организации",
"searchLogs": "Поиск журналов...", "searchLogs": "Поиск журналов...",
@@ -2005,6 +2084,7 @@
"ip": "IP", "ip": "IP",
"reason": "Причина", "reason": "Причина",
"requestLogs": "Запросить журналы", "requestLogs": "Запросить журналы",
"requestAnalytics": "Аналитика запроса",
"host": "Хост", "host": "Хост",
"location": "Местоположение", "location": "Местоположение",
"actionLogs": "Журнал действий", "actionLogs": "Журнал действий",
@@ -2014,6 +2094,7 @@
"logRetention": "Сохранение журнала", "logRetention": "Сохранение журнала",
"logRetentionDescription": "Управление сохранением различных типов журналов для этой организации или отключение их", "logRetentionDescription": "Управление сохранением различных типов журналов для этой организации или отключение их",
"requestLogsDescription": "Просмотреть подробные журналы запроса ресурсов в этой организации", "requestLogsDescription": "Просмотреть подробные журналы запроса ресурсов в этой организации",
"requestAnalyticsDescription": "Просмотреть подробную аналитику запроса для ресурсов в этой организации",
"logRetentionRequestLabel": "Запросить сохранение журнала", "logRetentionRequestLabel": "Запросить сохранение журнала",
"logRetentionRequestDescription": "Как долго сохранять журналы запросов", "logRetentionRequestDescription": "Как долго сохранять журналы запросов",
"logRetentionAccessLabel": "Хранение журнала доступа", "logRetentionAccessLabel": "Хранение журнала доступа",
@@ -2027,6 +2108,7 @@
"logRetention30Days": "30 дней", "logRetention30Days": "30 дней",
"logRetention90Days": "90 дней", "logRetention90Days": "90 дней",
"logRetentionForever": "Всегда", "logRetentionForever": "Всегда",
"logRetentionEndOfFollowingYear": "Конец следующего года",
"actionLogsDescription": "Просмотр истории действий, выполненных в этой организации", "actionLogsDescription": "Просмотр истории действий, выполненных в этой организации",
"accessLogsDescription": "Просмотр запросов авторизации доступа к ресурсам этой организации", "accessLogsDescription": "Просмотр запросов авторизации доступа к ресурсам этой организации",
"licenseRequiredToUse": "Для использования этой функции требуется лицензия предприятия.", "licenseRequiredToUse": "Для использования этой функции требуется лицензия предприятия.",
@@ -2037,7 +2119,7 @@
"preferWildcardCert": "Предпочитать сертификат Wildcard", "preferWildcardCert": "Предпочитать сертификат Wildcard",
"unverified": "Не подтверждено", "unverified": "Не подтверждено",
"domainSetting": "Настройки домена", "domainSetting": "Настройки домена",
"domainSettingDescription": "Настройка параметров для вашего домена", "domainSettingDescription": "Настройка параметров домена",
"preferWildcardCertDescription": "Попытка создания шаблона сертификата (требуется должным образом сконфигурированный резолвер сертификата).", "preferWildcardCertDescription": "Попытка создания шаблона сертификата (требуется должным образом сконфигурированный резолвер сертификата).",
"recordName": "Имя записи", "recordName": "Имя записи",
"auto": "Авто", "auto": "Авто",
@@ -2051,15 +2133,15 @@
"olmUpdateAvailableInfo": "Доступна обновленная версия Олма. Пожалуйста, обновитесь до последней версии.", "olmUpdateAvailableInfo": "Доступна обновленная версия Олма. Пожалуйста, обновитесь до последней версии.",
"client": "Клиент", "client": "Клиент",
"proxyProtocol": "Настройки протокола прокси", "proxyProtocol": "Настройки протокола прокси",
"proxyProtocolDescription": "Настроить Прокси-протокол для сохранения IP-адресов клиента для служб TCP/UDP.", "proxyProtocolDescription": "Настроить Прокси-протокол для сохранения IP-адресов клиента для служб TCP.",
"enableProxyProtocol": "Включить Прокси Протокол", "enableProxyProtocol": "Включить Прокси Протокол",
"proxyProtocolInfo": "Сохранять IP-адреса клиента для кэша TCP/UDP", "proxyProtocolInfo": "Сохранять IP-адреса клиента для backend'ов TCP",
"proxyProtocolVersion": "Версия протокола прокси", "proxyProtocolVersion": "Версия протокола прокси",
"version1": " Версия 1 (рекомендуется)", "version1": " Версия 1 (рекомендуется)",
"version2": "Версия 2", "version2": "Версия 2",
"versionDescription": "Версия 1 основана на тексте и широко поддерживается. Версия 2 является бинарной и более эффективной, но менее совместимой.", "versionDescription": "Версия 1 основана на тексте и широко поддерживается. Версия 2 является бинарной и более эффективной, но менее совместимой.",
"warning": "Предупреждение", "warning": "Предупреждение",
"proxyProtocolWarning": "Бэкэнд приложение должно быть сконфигурировано для принятия прокси-соединений. Если ваш бэкэнд не поддерживает Прокси-протокол, это нарушит все соединения. Обязательно настройте вашего бэкэнда на доверие заголовкам Proxy Protocol от Traefik.", "proxyProtocolWarning": "Бэкэнд приложение должно быть настроено на принятие соединений прокси-протокола. Если ваш бэкэнд не поддерживает Прокси-протокол, то включение этой опции прервет все подключения, поэтому включите это только если вы знаете, что вы делаете. Обязательно настройте вашего бэкэнда на доверие заголовкам Proxy Protocol от Traefik.",
"restarting": "Перезапуск...", "restarting": "Перезапуск...",
"manual": "Ручной", "manual": "Ручной",
"messageSupport": "Поддержка сообщений", "messageSupport": "Поддержка сообщений",
@@ -2080,5 +2162,113 @@
"supportSending": "Отправка...", "supportSending": "Отправка...",
"supportSend": "Отправить", "supportSend": "Отправить",
"supportMessageSent": "Сообщение отправлено!", "supportMessageSent": "Сообщение отправлено!",
"supportWillContact": "Мы скоро свяжемся с Вами!" "supportWillContact": "Мы скоро свяжемся с Вами!",
"selectLogRetention": "Выберите удержание журнала",
"terms": "Условия",
"privacy": "Приватность",
"security": "Безопасность",
"docs": "Документ",
"deviceActivation": "Активация устройства",
"deviceCodeInvalidFormat": "Код должен быть 9 символов (например, A1AJ-N5JD)",
"deviceCodeInvalidOrExpired": "Неверный или просроченный код",
"deviceCodeVerifyFailed": "Не удалось проверить код устройства",
"signedInAs": "Вы вошли как",
"deviceCodeEnterPrompt": "Введите код, отображаемый на устройстве",
"continue": "Продолжить",
"deviceUnknownLocation": "Неизвестное местоположение",
"deviceAuthorizationRequested": "Эта авторизация была запрошена у {location} на {date}. Убедитесь, что вы доверяете этому устройству, так как оно получит доступ к учетной записи.",
"deviceLabel": "Устройство: {deviceName}",
"deviceWantsAccess": "хочет получить доступ к вашей учетной записи",
"deviceExistingAccess": "Существующий доступ:",
"deviceFullAccess": "Полный доступ к вашему аккаунту",
"deviceOrganizationsAccess": "Доступ ко всем организациям, к которым ваш аккаунт имеет доступ",
"deviceAuthorize": "Авторизовать {applicationName}",
"deviceConnected": "Устройство подключено!",
"deviceAuthorizedMessage": "Устройство авторизовано для доступа к вашей учетной записи.",
"pangolinCloud": "Облако Панголина",
"viewDevices": "Просмотр устройств",
"viewDevicesDescription": "Управление подключенными устройствами",
"noDevices": "Устройств не найдено",
"dateCreated": "Дата создания",
"unnamedDevice": "Безымянное устройство",
"deviceQuestionRemove": "Вы уверены, что хотите удалить это устройство?",
"deviceMessageRemove": "Это действие нельзя отменить.",
"deviceDeleteConfirm": "Удалить устройство",
"deleteDevice": "Удалить устройство",
"errorLoadingDevices": "Ошибка загрузки устройств",
"failedToLoadDevices": "Не удалось загрузить устройства",
"deviceDeleted": "Устройство удалено",
"deviceDeletedDescription": "Устройство успешно удалено.",
"errorDeletingDevice": "Ошибка удаления устройства",
"failedToDeleteDevice": "Не удалось удалить устройство",
"showColumns": "Показать колонки",
"hideColumns": "Скрыть столбцы",
"columnVisibility": "Видимость столбцов",
"toggleColumn": "Столбец {columnName}",
"allColumns": "Все колонки",
"defaultColumns": "Столбцы по умолчанию",
"customizeView": "Настроить вид",
"viewOptions": "Параметры просмотра",
"selectAll": "Выделить все",
"selectNone": "Не выбирать",
"selectedResources": "Выбранные ресурсы",
"enableSelected": "Включить выбранные",
"disableSelected": "Отключить выбранные",
"checkSelectedStatus": "Проверить статус выбранных",
"clients": "Клиенты",
"accessClientSelect": "Выберите машинные клиенты",
"resourceClientDescription": "Машинные клиенты, которые имеют доступ к этому ресурсу",
"regenerate": "Пересоздать",
"credentials": "Полномочия",
"savecredentials": "Сохранить учетные данные",
"regenerateCredentialsButton": "Пересоздать учетные данные",
"regenerateCredentials": "Пересоздать учетные данные",
"generatedcredentials": "Сгенерированные учетные данные",
"copyandsavethesecredentials": "Копировать и сохранить эти учетные данные",
"copyandsavethesecredentialsdescription": "Эти учетные данные не будут отображаться снова после того, как вы покинете эту страницу. Сохраните их сейчас.",
"credentialsSaved": "Учетные данные сохранены",
"credentialsSavedDescription": "Учетные данные были успешно восстановлены и сохранены.",
"credentialsSaveError": "Ошибка сохранения учетных данных",
"credentialsSaveErrorDescription": "Произошла ошибка при восстановлении и сохранении учетных данных.",
"regenerateCredentialsWarning": "Восстановление учётных данных приведет к аннулированию предыдущих учетных данных и отключению соединения. Убедитесь, что все конфигурации, использующие эти учетные данные.",
"confirm": "Подтвердить",
"regenerateCredentialsConfirmation": "Вы уверены, что хотите восстановить учетные данные?",
"endpoint": "Endpoint",
"Id": "Id",
"SecretKey": "Секретный ключ",
"niceId": "Неплохой ID",
"niceIdUpdated": "Хороший ID обновлен",
"niceIdUpdatedSuccessfully": "Неплохой ID успешно обновлен",
"niceIdUpdateError": "Ошибка обновления Nice ID",
"niceIdUpdateErrorDescription": "Произошла ошибка при обновлении Nice ID.",
"niceIdCannotBeEmpty": "Неправильный ID не может быть пустым",
"enterIdentifier": "Введите идентификатор",
"identifier": "Identifier",
"deviceLoginUseDifferentAccount": "Не вы? Используйте другую учетную запись.",
"deviceLoginDeviceRequestingAccessToAccount": "Устройство запрашивает доступ к этой учетной записи.",
"noData": "Нет данных",
"machineClients": "Машинные клиенты",
"install": "Установить",
"run": "Запустить",
"clientNameDescription": "Отображаемое имя клиента, которое может быть изменено позже.",
"clientAddress": "Адрес клиента (Дополнительно)",
"setupFailedToFetchSubnet": "Не удалось получить подсеть по умолчанию",
"setupSubnetAdvanced": "Подсеть (Дополнительно)",
"setupSubnetDescription": "Подсеть для внутренней сети этой организации.",
"siteRegenerateAndDisconnect": "Сгенерировать и отключить",
"siteRegenerateAndDisconnectConfirmation": "Вы уверены, что хотите сгенерировать учетные данные и отключить этот сайт?",
"siteRegenerateAndDisconnectWarning": "Это позволит восстановить учетные данные и немедленно отключить сайт. Сайт будет перезапущен с новыми учетными данными.",
"siteRegenerateCredentialsConfirmation": "Вы уверены, что хотите восстановить учетные данные для этого сайта?",
"siteRegenerateCredentialsWarning": "Это позволит восстановить учетные данные. Сайт будет оставаться подключенным, пока вы не перезапустите его вручную и используйте новые учетные данные.",
"clientRegenerateAndDisconnect": "Сгенерировать и отключить",
"clientRegenerateAndDisconnectConfirmation": "Вы уверены, что хотите восстановить учетные данные и отключить этого клиента?",
"clientRegenerateAndDisconnectWarning": "Это позволит восстановить учетные данные и немедленно отключить клиент. Клиент будет перезапущен с новыми учетными данными.",
"clientRegenerateCredentialsConfirmation": "Вы уверены, что хотите сгенерировать данные для этого клиента?",
"clientRegenerateCredentialsWarning": "Это позволит восстановить учетные данные. Клиент останется подключенным, пока вы не перезапустите его вручную и воспользуетесь новыми учетными данными.",
"remoteExitNodeRegenerateAndDisconnect": "Сгенерировать и отключить",
"remoteExitNodeRegenerateAndDisconnectConfirmation": "Вы уверены, что хотите сгенерировать учетные данные и отключить этот удаленный узел?",
"remoteExitNodeRegenerateAndDisconnectWarning": "Это позволит восстановить учётные данные и немедленно отключить удаленный узел выхода. Удаленный узел выхода должен быть перезапущен с новыми учетными данными.",
"remoteExitNodeRegenerateCredentialsConfirmation": "Вы уверены, что хотите восстановить учетные данные для этого удаленного выхода узла?",
"remoteExitNodeRegenerateCredentialsWarning": "Это позволит восстановить учетные данные. Удалённый узел останется подключенным, пока вы не перезапустите его вручную и воспользуетесь новыми учетными данными.",
"agent": "Агент"
} }

View File

@@ -1,12 +1,12 @@
{ {
"setupCreate": "Organizasyonunuzu, sitenizi ve kaynaklarınızı oluşturun", "setupCreate": "Organizasyonu, siteyi ve kaynakları oluşturun",
"setupNewOrg": "Yeni Organizasyon", "setupNewOrg": "Yeni Organizasyon",
"setupCreateOrg": "Organizasyon Oluştur", "setupCreateOrg": "Organizasyon Oluştur",
"setupCreateResources": "Kaynaklar Oluştur", "setupCreateResources": "Kaynaklar Oluştur",
"setupOrgName": "Organizasyon Adı", "setupOrgName": "Organizasyon Adı",
"orgDisplayName": "Bu, organizasyonunuzun görünen adıdır.", "orgDisplayName": "Bu organizasyonun görünen adıdır.",
"orgId": "Organizasyon ID", "orgId": "Organizasyon ID",
"setupIdentifierMessage": "Bu, organizasyonunuzun benzersiz kimliğidir. Görünen adtan ayrı olarak.", "setupIdentifierMessage": "Bu organizasyonun benzersiz tanımlayıcısıdır.",
"setupErrorIdentifier": "Organizasyon ID'si zaten alınmış. Lütfen başka bir tane seçin.", "setupErrorIdentifier": "Organizasyon ID'si zaten alınmış. Lütfen başka bir tane seçin.",
"componentsErrorNoMemberCreate": "Şu anda herhangi bir organizasyona üye değilsiniz. Başlamak için bir organizasyon oluşturun.", "componentsErrorNoMemberCreate": "Şu anda herhangi bir organizasyona üye değilsiniz. Başlamak için bir organizasyon oluşturun.",
"componentsErrorNoMember": "Şu anda herhangi bir organizasyona üye değilsiniz.", "componentsErrorNoMember": "Şu anda herhangi bir organizasyona üye değilsiniz.",
@@ -50,7 +50,7 @@
"siteMessageRemove": "Kaldırıldıktan sonra site artık erişilebilir olmayacaktır. Siteyle ilişkilendirilmiş tüm hedefler de kaldırılacaktır.", "siteMessageRemove": "Kaldırıldıktan sonra site artık erişilebilir olmayacaktır. Siteyle ilişkilendirilmiş tüm hedefler de kaldırılacaktır.",
"siteQuestionRemove": "Siteyi organizasyondan kaldırmak istediğinizden emin misiniz?", "siteQuestionRemove": "Siteyi organizasyondan kaldırmak istediğinizden emin misiniz?",
"siteManageSites": "Siteleri Yönet", "siteManageSites": "Siteleri Yönet",
"siteDescription": "ınıza güvenli tüneller üzerinden bağlantı izni verin", "siteDescription": "Özel ağlara erişimi etkinleştirmek için siteler oluşturun ve yönetin",
"siteCreate": "Site Oluştur", "siteCreate": "Site Oluştur",
"siteCreateDescription2": "Yeni bir site oluşturup bağlanmak için aşağıdaki adımları izleyin", "siteCreateDescription2": "Yeni bir site oluşturup bağlanmak için aşağıdaki adımları izleyin",
"siteCreateDescription": "Kaynaklarınızı bağlamaya başlamak için yeni bir site oluşturun", "siteCreateDescription": "Kaynaklarınızı bağlamaya başlamak için yeni bir site oluşturun",
@@ -89,7 +89,7 @@
"siteGeneralDescription": "Bu site için genel ayarları yapılandırın", "siteGeneralDescription": "Bu site için genel ayarları yapılandırın",
"siteSettingDescription": "Sitenizdeki ayarları yapılandırın", "siteSettingDescription": "Sitenizdeki ayarları yapılandırın",
"siteSetting": "{siteName} Ayarları", "siteSetting": "{siteName} Ayarları",
"siteNewtTunnel": "Newt Tüneli (Önerilen)", "siteNewtTunnel": "Newt Site (Önerilen)",
"siteNewtTunnelDescription": "Ağınıza giriş noktası oluşturmanın en kolay yolu. Ekstra kurulum gerekmez.", "siteNewtTunnelDescription": "Ağınıza giriş noktası oluşturmanın en kolay yolu. Ekstra kurulum gerekmez.",
"siteWg": "Temel WireGuard", "siteWg": "Temel WireGuard",
"siteWgDescription": "Bir tünel oluşturmak için herhangi bir WireGuard istemcisi kullanın. Manuel NAT kurulumu gereklidir.", "siteWgDescription": "Bir tünel oluşturmak için herhangi bir WireGuard istemcisi kullanın. Manuel NAT kurulumu gereklidir.",
@@ -98,8 +98,8 @@
"siteLocalDescriptionSaas": "Yerel kaynaklar yalnızca. Tünel oluşturma yok. Yalnızca uzak düğümlerde mevcuttur.", "siteLocalDescriptionSaas": "Yerel kaynaklar yalnızca. Tünel oluşturma yok. Yalnızca uzak düğümlerde mevcuttur.",
"siteSeeAll": "Tüm Siteleri Gör", "siteSeeAll": "Tüm Siteleri Gör",
"siteTunnelDescription": "Sitenize nasıl bağlanmak istediğinizi belirleyin", "siteTunnelDescription": "Sitenize nasıl bağlanmak istediğinizi belirleyin",
"siteNewtCredentials": "Newt Kimlik Bilgileri", "siteNewtCredentials": "Kimlik Bilgileri",
"siteNewtCredentialsDescription": "Bu, Newt'in sunucu ile kimlik doğrulaması yapacağı yöntemdir", "siteNewtCredentialsDescription": "Bu, sitenin sunucu ile kimlik doğrulaması yapacağı yöntemdir",
"siteCredentialsSave": "Kimlik Bilgilerinizi Kaydedin", "siteCredentialsSave": "Kimlik Bilgilerinizi Kaydedin",
"siteCredentialsSaveDescription": "Yalnızca bir kez görebileceksiniz. Güvenli bir yere kopyaladığınızdan emin olun.", "siteCredentialsSaveDescription": "Yalnızca bir kez görebileceksiniz. Güvenli bir yere kopyaladığınızdan emin olun.",
"siteInfo": "Site Bilgilendirmesi", "siteInfo": "Site Bilgilendirmesi",
@@ -144,8 +144,10 @@
"expires": "Süresi Doluyor", "expires": "Süresi Doluyor",
"never": "Asla", "never": "Asla",
"shareErrorSelectResource": "Lütfen bir kaynak seçin", "shareErrorSelectResource": "Lütfen bir kaynak seçin",
"resourceTitle": "Kaynakları Yönet", "proxyResourceTitle": "Herkese Açık Kaynakları Yönet",
"resourceDescription": "Özel uygulamalarınıza güvenli vekil sunucular oluşturun", "proxyResourceDescription": "Bir web tarayıcısı aracılığıyla kamuya açık kaynaklar oluşturun ve yönetin",
"clientResourceTitle": "Özel Kaynakları Yönet",
"clientResourceDescription": "Sadece bağlı bir istemci aracılığıyla erişilebilen kaynakları oluşturun ve yönetin",
"resourcesSearch": "Kaynakları ara...", "resourcesSearch": "Kaynakları ara...",
"resourceAdd": "Kaynak Ekle", "resourceAdd": "Kaynak Ekle",
"resourceErrorDelte": "Kaynak silinirken hata", "resourceErrorDelte": "Kaynak silinirken hata",
@@ -179,7 +181,7 @@
"baseDomain": "Temel Alan Adı", "baseDomain": "Temel Alan Adı",
"subdomnainDescription": "Kaynağınızın erişilebileceği alt alan adı.", "subdomnainDescription": "Kaynağınızın erişilebileceği alt alan adı.",
"resourceRawSettings": "TCP/UDP Ayarları", "resourceRawSettings": "TCP/UDP Ayarları",
"resourceRawSettingsDescription": "Kaynağınıza TCP/UDP üzerinden erişimin nasıl sağlanacağını yapılandırın", "resourceRawSettingsDescription": "Kaynaklara TCP/UDP üzerinden nasıl erişileceğini yapılandırın",
"protocol": "Protokol", "protocol": "Protokol",
"protocolSelect": "Bir protokol seçin", "protocolSelect": "Bir protokol seçin",
"resourcePortNumber": "Port Numarası", "resourcePortNumber": "Port Numarası",
@@ -204,8 +206,8 @@
"rules": "Kurallar", "rules": "Kurallar",
"resourceSettingDescription": "Kaynağınızdaki ayarları yapılandırın", "resourceSettingDescription": "Kaynağınızdaki ayarları yapılandırın",
"resourceSetting": "{resourceName} Ayarları", "resourceSetting": "{resourceName} Ayarları",
"alwaysAllow": "Her Zaman İzin Ver", "alwaysAllow": "Kimlik Doğrulamayı Atla",
"alwaysDeny": "Her Zaman Reddet", "alwaysDeny": "Erişimi Engelle",
"passToAuth": "Kimlik Doğrulamasına Geç", "passToAuth": "Kimlik Doğrulamasına Geç",
"orgSettingsDescription": "Organizasyonunuzun genel ayarlarını yapılandırın", "orgSettingsDescription": "Organizasyonunuzun genel ayarlarını yapılandırın",
"orgGeneralSettings": "Organizasyon Ayarları", "orgGeneralSettings": "Organizasyon Ayarları",
@@ -232,7 +234,7 @@
"orgMissing": "Organizasyon Kimliği Eksik", "orgMissing": "Organizasyon Kimliği Eksik",
"orgMissingMessage": "Organizasyon kimliği olmadan daveti yeniden oluşturmanız mümkün değildir.", "orgMissingMessage": "Organizasyon kimliği olmadan daveti yeniden oluşturmanız mümkün değildir.",
"accessUsersManage": "Kullanıcıları Yönet", "accessUsersManage": "Kullanıcıları Yönet",
"accessUsersDescription": "Kullanıcıları davet edin ve erişimi yönetmek için rollere ekleyin", "accessUsersDescription": "Bu organizasyona erişimi olan kullanıcıları davet edin ve yönetin",
"accessUsersSearch": "Kullanıcıları ara...", "accessUsersSearch": "Kullanıcıları ara...",
"accessUserCreate": "Kullanıcı Oluştur", "accessUserCreate": "Kullanıcı Oluştur",
"accessUserRemove": "Kullanıcıyı Kaldır", "accessUserRemove": "Kullanıcıyı Kaldır",
@@ -241,13 +243,13 @@
"role": "Rol", "role": "Rol",
"nameRequired": "Ad gereklidir", "nameRequired": "Ad gereklidir",
"accessRolesManage": "Rolleri Yönet", "accessRolesManage": "Rolleri Yönet",
"accessRolesDescription": "Organizasyonunuza erişimi yönetmek için rolleri yapılandırın", "accessRolesDescription": "Organizasyondaki kullanıcılar için rolleri oluşturun ve yönetin",
"accessRolesSearch": "Rolleri ara...", "accessRolesSearch": "Rolleri ara...",
"accessRolesAdd": "Rol Ekle", "accessRolesAdd": "Rol Ekle",
"accessRoleDelete": "Rolü Sil", "accessRoleDelete": "Rolü Sil",
"description": "Açıklama", "description": "Açıklama",
"inviteTitle": "Açık Davetiyeler", "inviteTitle": "Açık Davetiyeler",
"inviteDescription": "Davetiyelerinizi diğer kullanıcılarla yönetin", "inviteDescription": "Organizasyona katılmak için diğer kullanıcılar için davetleri yönetin",
"inviteSearch": "Davetiyeleri ara...", "inviteSearch": "Davetiyeleri ara...",
"minutes": "Dakika", "minutes": "Dakika",
"hours": "Saat", "hours": "Saat",
@@ -424,7 +426,7 @@
"userCreated": "Kullanıcı oluşturuldu", "userCreated": "Kullanıcı oluşturuldu",
"userCreatedDescription": "Kullanıcı başarıyla oluşturulmuştur.", "userCreatedDescription": "Kullanıcı başarıyla oluşturulmuştur.",
"userTypeInternal": "Dahili Kullanıcı", "userTypeInternal": "Dahili Kullanıcı",
"userTypeInternalDescription": "Kullanıcınızı doğrudan organizasyonunuza davet edin.", "userTypeInternalDescription": "Kullanıcıyı doğrudan organizasyona davet edin.",
"userTypeExternal": "Harici Kullanıcı", "userTypeExternal": "Harici Kullanıcı",
"userTypeExternalDescription": "Harici bir kimlik sağlayıcısıyla kullanıcı oluşturun.", "userTypeExternalDescription": "Harici bir kimlik sağlayıcısıyla kullanıcı oluşturun.",
"accessUserCreateDescription": "Yeni bir kullanıcı oluşturmak için aşağıdaki adımları izleyin", "accessUserCreateDescription": "Yeni bir kullanıcı oluşturmak için aşağıdaki adımları izleyin",
@@ -436,6 +438,16 @@
"inviteEmailSent": "Kullanıcıya davet e-postası gönder", "inviteEmailSent": "Kullanıcıya davet e-postası gönder",
"inviteValid": "Geçerli Süresi", "inviteValid": "Geçerli Süresi",
"selectDuration": "Süreyi seçin", "selectDuration": "Süreyi seçin",
"selectResource": "Kaynak Seçin",
"filterByResource": "Kaynağa Göre Filtrele",
"resetFilters": "Filtreleri Sıfırla",
"totalBlocked": "Pangolin Tarafından Engellenen İstekler",
"totalRequests": "Toplam İstekler",
"requestsByCountry": "Ülkeye Göre İstekler",
"requestsByDay": "Güne Göre İstekler",
"blocked": "Engellendi",
"allowed": "İzin Verildi",
"topCountries": "En İyi Ülkeler",
"accessRoleSelect": "Rol seçin", "accessRoleSelect": "Rol seçin",
"inviteEmailSentDescription": "Kullanıcıya erişim bağlantısı ile bir e-posta gönderildi. Daveti kabul etmek için bağlantıya erişmelidirler.", "inviteEmailSentDescription": "Kullanıcıya erişim bağlantısı ile bir e-posta gönderildi. Daveti kabul etmek için bağlantıya erişmelidirler.",
"inviteSentDescription": "Kullanıcı davet edilmiştir. Daveti kabul etmek için aşağıdaki bağlantıya erişmelidirler.", "inviteSentDescription": "Kullanıcı davet edilmiştir. Daveti kabul etmek için aşağıdaki bağlantıya erişmelidirler.",
@@ -458,13 +470,13 @@
"accessControlsSubmit": "Erişim Kontrollerini Kaydet", "accessControlsSubmit": "Erişim Kontrollerini Kaydet",
"roles": "Roller", "roles": "Roller",
"accessUsersRoles": "Kullanıcılar ve Roller Yönetin", "accessUsersRoles": "Kullanıcılar ve Roller Yönetin",
"accessUsersRolesDescription": "Kullanıcılara davet gönderin ve organizasyonunuza erişim yönetmek için rollere ekleyin", "accessUsersRolesDescription": "Kullanıcılara davet gönderin ve organizasyona erişimi yönetmek için rollere ekleyin",
"key": "Anahtar", "key": "Anahtar",
"createdAt": "Oluşturulma Tarihi", "createdAt": "Oluşturulma Tarihi",
"proxyErrorInvalidHeader": "Geçersiz özel Ana Bilgisayar Başlığı değeri. Alan adı formatını kullanın veya özel Ana Bilgisayar Başlığını ayarlamak için boş bırakın.", "proxyErrorInvalidHeader": "Geçersiz özel Ana Bilgisayar Başlığı değeri. Alan adı formatını kullanın veya özel Ana Bilgisayar Başlığını ayarlamak için boş bırakın.",
"proxyErrorTls": "Geçersiz TLS Sunucu Adı. Alan adı formatını kullanın veya TLS Sunucu Adını kaldırmak için boş bırakılsın.", "proxyErrorTls": "Geçersiz TLS Sunucu Adı. Alan adı formatını kullanın veya TLS Sunucu Adını kaldırmak için boş bırakılsın.",
"proxyEnableSSL": "SSL Etkinleştir", "proxyEnableSSL": "SSL Etkinleştir",
"proxyEnableSSLDescription": "Hedeflerinize güvenli HTTPS bağlantıları için SSL/TLS şifrelemesi etkinleştirin.", "proxyEnableSSLDescription": "Hedeflere güvenli HTTPS bağlantıları için SSL/TLS şifrelemesini etkinleştirin.",
"target": "Hedef", "target": "Hedef",
"configureTarget": "Hedefleri Yapılandır", "configureTarget": "Hedefleri Yapılandır",
"targetErrorFetch": "Hedefleri alamadı", "targetErrorFetch": "Hedefleri alamadı",
@@ -480,29 +492,29 @@
"targetsErrorUpdate": "Hedefler güncellenemedi", "targetsErrorUpdate": "Hedefler güncellenemedi",
"targetsErrorUpdateDescription": "Hedefler güncellenirken bir hata oluştu", "targetsErrorUpdateDescription": "Hedefler güncellenirken bir hata oluştu",
"targetTlsUpdate": "TLS ayarları güncellendi", "targetTlsUpdate": "TLS ayarları güncellendi",
"targetTlsUpdateDescription": "TLS ayarlarınız başarıyla güncellendi", "targetTlsUpdateDescription": "TLS ayarları başarıyla güncellendi",
"targetErrorTlsUpdate": "TLS ayarları güncellenemedi", "targetErrorTlsUpdate": "TLS ayarları güncellenemedi",
"targetErrorTlsUpdateDescription": "TLS ayarlarını güncellerken bir hata oluştu", "targetErrorTlsUpdateDescription": "TLS ayarlarını güncellerken bir hata oluştu",
"proxyUpdated": "Proxy ayarları güncellendi", "proxyUpdated": "Proxy ayarları güncellendi",
"proxyUpdatedDescription": "Proxy ayarlarınız başarıyla güncellenmiştir", "proxyUpdatedDescription": "Proxy ayarları başarıyla güncellendi",
"proxyErrorUpdate": "Proxy ayarları güncellenemedi", "proxyErrorUpdate": "Proxy ayarları güncellenemedi",
"proxyErrorUpdateDescription": "Proxy ayarlarını güncellerken bir hata oluştu", "proxyErrorUpdateDescription": "Proxy ayarlarını güncellerken bir hata oluştu",
"targetAddr": "IP / Hostname", "targetAddr": "Host",
"targetPort": "Bağlantı Noktası", "targetPort": "Bağlantı Noktası",
"targetProtocol": "Protokol", "targetProtocol": "Protokol",
"targetTlsSettings": "HTTPS & TLS Settings", "targetTlsSettings": "HTTPS & TLS Settings",
"targetTlsSettingsDescription": "Configure TLS settings for your resource", "targetTlsSettingsDescription": "SSL/TLS ayarlarını kaynak için yapılandırın",
"targetTlsSettingsAdvanced": "Gelişmiş TLS Ayarları", "targetTlsSettingsAdvanced": "Gelişmiş TLS Ayarları",
"targetTlsSni": "TLS Sunucu Adı", "targetTlsSni": "TLS Sunucu Adı",
"targetTlsSniDescription": "SNI için kullanılacak TLS Sunucu Adı'", "targetTlsSniDescription": "SNI için kullanılacak TLS Sunucu Adı'",
"targetTlsSubmit": "Ayarları Kaydet", "targetTlsSubmit": "Ayarları Kaydet",
"targets": "Hedefler Konfigürasyonu", "targets": "Hedefler Konfigürasyonu",
"targetsDescription": "Trafiği arka uç hizmetlerinize yönlendirmek için hedefleri ayarlayın", "targetsDescription": "Trafiği arka uç hizmetlerine yönlendirmek için hedefleri ayarlayın",
"targetStickySessions": "Yapışkan Oturumları Etkinleştir", "targetStickySessions": "Yapışkan Oturumları Etkinleştir",
"targetStickySessionsDescription": "Bağlantıları oturum süresince aynı arka uç hedef üzerinde tutun.", "targetStickySessionsDescription": "Bağlantıları oturum süresince aynı arka uç hedef üzerinde tutun.",
"methodSelect": "Yöntemi Seç", "methodSelect": "Yöntemi Seç",
"targetSubmit": "Hedef Ekle", "targetSubmit": "Hedef Ekle",
"targetNoOne": "Bu kaynağın hedefi yok. Arka planınıza istek göndereceğiniz bir hedef yapılandırmak için hedef ekleyin.", "targetNoOne": "Bu kaynağın hedefleri yok. Arka uca gönderilecek istekleri yapılandırmak için bir hedef ekleyin.",
"targetNoOneDescription": "Yukarıdaki birden fazla hedef ekleyerek yük dengeleme etkinleştirilecektir.", "targetNoOneDescription": "Yukarıdaki birden fazla hedef ekleyerek yük dengeleme etkinleştirilecektir.",
"targetsSubmit": "Hedefleri Kaydet", "targetsSubmit": "Hedefleri Kaydet",
"addTarget": "Hedef Ekle", "addTarget": "Hedef Ekle",
@@ -516,9 +528,11 @@
"targetCreatedDescription": "Hedef başarıyla oluşturuldu", "targetCreatedDescription": "Hedef başarıyla oluşturuldu",
"targetErrorCreate": "Hedef oluşturma başarısız oldu", "targetErrorCreate": "Hedef oluşturma başarısız oldu",
"targetErrorCreateDescription": "Hedef oluşturulurken bir hata oluştu", "targetErrorCreateDescription": "Hedef oluşturulurken bir hata oluştu",
"tlsServerName": "TLS Sunucu Adı",
"tlsServerNameDescription": "SNI için kullanılacak TLS sunucu adı",
"save": "Kaydet", "save": "Kaydet",
"proxyAdditional": "Ek Proxy Ayarları", "proxyAdditional": "Ek Proxy Ayarları",
"proxyAdditionalDescription": "Kaynağınızın proxy ayarlarını nasıl yöneteceğini yapılandırın", "proxyAdditionalDescription": "Kaynağın proxy ayarlarını nasıl yöneteceği yapılandırın",
"proxyCustomHeader": "Özel Ana Bilgisayar Başlığı", "proxyCustomHeader": "Özel Ana Bilgisayar Başlığı",
"proxyCustomHeaderDescription": "İstekleri proxy'lerken ayarlanacak ana bilgisayar başlığı. Varsayılanı kullanmak için boş bırakılır.", "proxyCustomHeaderDescription": "İstekleri proxy'lerken ayarlanacak ana bilgisayar başlığı. Varsayılanı kullanmak için boş bırakılır.",
"proxyAdditionalSubmit": "Proxy Ayarlarını Kaydet", "proxyAdditionalSubmit": "Proxy Ayarlarını Kaydet",
@@ -558,7 +572,7 @@
"rulesMatchType": "Eşleşme Türü", "rulesMatchType": "Eşleşme Türü",
"value": "Değer", "value": "Değer",
"rulesAbout": "Kurallar Hakkında", "rulesAbout": "Kurallar Hakkında",
"rulesAboutDescription": "Kurallar, kaynağınıza erişimi belirli bir kriterlere göre kontrol etmenizi sağlar. IP adresi veya URL yolu temelinde erişimi izin vermek veya engellemek için kurallar oluşturabilirsiniz.", "rulesAboutDescription": "Kurallar, kaynağa erişimi belirli kriterlere göre kontrol etmenizi sağlar. IP adresi veya URL yolu temelinde erişimi izin vermek veya engellemek için kurallar oluşturabilirsiniz.",
"rulesActions": "Aksiyonlar", "rulesActions": "Aksiyonlar",
"rulesActionAlwaysAllow": "Her Zaman İzin Ver: Tüm kimlik doğrulama yöntemlerini atlayın", "rulesActionAlwaysAllow": "Her Zaman İzin Ver: Tüm kimlik doğrulama yöntemlerini atlayın",
"rulesActionAlwaysDeny": "Her Zaman Reddedin: Tüm istekleri engelleyin; kimlik doğrulaması yapılamaz", "rulesActionAlwaysDeny": "Her Zaman Reddedin: Tüm istekleri engelleyin; kimlik doğrulaması yapılamaz",
@@ -570,7 +584,7 @@
"rulesEnable": "Kuralları Etkinleştir", "rulesEnable": "Kuralları Etkinleştir",
"rulesEnableDescription": "Bu kaynak için kural değerlendirmesini etkinleştirin veya devre dışı bırakın", "rulesEnableDescription": "Bu kaynak için kural değerlendirmesini etkinleştirin veya devre dışı bırakın",
"rulesResource": "Kaynak Kuralları Yapılandırması", "rulesResource": "Kaynak Kuralları Yapılandırması",
"rulesResourceDescription": "Kaynağınıza erişimi kontrol etmek için kuralları yapılandırın", "rulesResourceDescription": "Kaynağa erişimi kontrol etmek için kuralları yapılandırın",
"ruleSubmit": "Kural Ekle", "ruleSubmit": "Kural Ekle",
"rulesNoOne": "Kural yok. Formu kullanarak bir kural ekleyin.", "rulesNoOne": "Kural yok. Formu kullanarak bir kural ekleyin.",
"rulesOrder": "Kurallar, artan öncelik sırasına göre değerlendirilir.", "rulesOrder": "Kurallar, artan öncelik sırasına göre değerlendirilir.",
@@ -586,7 +600,7 @@
"none": "Hiçbiri", "none": "Hiçbiri",
"unknown": "Bilinmiyor", "unknown": "Bilinmiyor",
"resources": "Kaynaklar", "resources": "Kaynaklar",
"resourcesDescription": "Kaynaklar, özel ağınızda çalışan uygulamalara proxy görevi görür. Özel ağınızdaki herhangi bir HTTP/HTTPS veya ham TCP/UDP hizmeti için bir kaynak oluşturun. Her kaynak, şifreli bir WireGuard tüneli aracılığıyla özel ve güvenli bağlantıyı etkinleştirmek için bir siteye bağlı olmalıdır.", "resourcesDescription": "Kaynaklar, özel ağda çalışan uygulamalara proxy olarak hizmet eder. Özel ağınızdaki herhangi bir HTTP/HTTPS veya ham TCP/UDP hizmeti için bir kaynak oluşturun. Her kaynak, şifreli bir WireGuard tüneli aracılığıyla özel, güvenli bağlanabilirliği etkinleştirmek için bir siteye bağlı olmalıdır.",
"resourcesWireGuardConnect": "WireGuard şifreleme ile güvenli bağlantı", "resourcesWireGuardConnect": "WireGuard şifreleme ile güvenli bağlantı",
"resourcesMultipleAuthenticationMethods": "Birden fazla kimlik doğrulama yöntemi yapılandırın", "resourcesMultipleAuthenticationMethods": "Birden fazla kimlik doğrulama yöntemi yapılandırın",
"resourcesUsersRolesAccess": "Kullanıcı ve rol tabanlı erişim kontrolü", "resourcesUsersRolesAccess": "Kullanıcı ve rol tabanlı erişim kontrolü",
@@ -607,19 +621,19 @@
"unknownCommand": "Bilinmeyen komut", "unknownCommand": "Bilinmeyen komut",
"newtErrorFetchReleases": "Sürüm bilgileri alınamadı: {err}", "newtErrorFetchReleases": "Sürüm bilgileri alınamadı: {err}",
"newtErrorFetchLatest": "Son sürüm alınırken hata: {err}", "newtErrorFetchLatest": "Son sürüm alınırken hata: {err}",
"newtEndpoint": "Newt Uç Noktası", "newtEndpoint": "Uç Nokta",
"newtId": "Newt Kimliği", "newtId": "Kimlik",
"newtSecretKey": "Newt Gizli Anahtarı", "newtSecretKey": "Gizli",
"architecture": "Mimari", "architecture": "Mimari",
"sites": "Siteler", "sites": "Siteler",
"siteWgAnyClients": "Herhangi bir WireGuard istemcisi kullanarak bağlanın. Dahili kaynaklarınıza eş IP adresini kullanarak erişmeniz gerekecek.", "siteWgAnyClients": "Herhangi bir WireGuard istemcisi kullanarak bağlanın. Dahili kaynaklara eş IP adresini kullanarak erişmeniz gerekecek.",
"siteWgCompatibleAllClients": "Tüm WireGuard istemcileriyle uyumlu", "siteWgCompatibleAllClients": "Tüm WireGuard istemcileriyle uyumlu",
"siteWgManualConfigurationRequired": "Manuel yapılandırma gerekli", "siteWgManualConfigurationRequired": "Manuel yapılandırma gerekli",
"userErrorNotAdminOrOwner": "Kullanıcı yönetici veya sahibi değil", "userErrorNotAdminOrOwner": "Kullanıcı yönetici veya sahibi değil",
"pangolinSettings": "Ayarlar - Pangolin", "pangolinSettings": "Ayarlar - Pangolin",
"accessRoleYour": "Rolünüz:", "accessRoleYour": "Rolünüz:",
"accessRoleSelect2": "Bir rol seçin", "accessRoleSelect2": "Rolleri seçin",
"accessUserSelect": "Bir kullanıcı seçin", "accessUserSelect": "Kullanıcıları seçin",
"otpEmailEnter": "Bir e-posta girin", "otpEmailEnter": "Bir e-posta girin",
"otpEmailEnterDescription": "E-posta girdikten sonra girdi alanına yazıp enter'a basın.", "otpEmailEnterDescription": "E-posta girdikten sonra girdi alanına yazıp enter'a basın.",
"otpEmailErrorInvalid": "Geçersiz e-posta adresi. Joker karakter (*) yerel kısmın tamamı olmalıdır.", "otpEmailErrorInvalid": "Geçersiz e-posta adresi. Joker karakter (*) yerel kısmın tamamı olmalıdır.",
@@ -671,7 +685,7 @@
"resourcePincodeSetupTitle": "Pincode Ayarla", "resourcePincodeSetupTitle": "Pincode Ayarla",
"resourcePincodeSetupTitleDescription": "Bu kaynağı korumak için bir pincode ayarlayın", "resourcePincodeSetupTitleDescription": "Bu kaynağı korumak için bir pincode ayarlayın",
"resourceRoleDescription": "Yöneticiler her zaman bu kaynağa erişebilir.", "resourceRoleDescription": "Yöneticiler her zaman bu kaynağa erişebilir.",
"resourceUsersRoles": "Kullanıcılar ve Roller", "resourceUsersRoles": "Erişim Kontrolleri",
"resourceUsersRolesDescription": "Bu kaynağı kimlerin ziyaret edebileceği kullanıcıları ve rolleri yapılandırın", "resourceUsersRolesDescription": "Bu kaynağı kimlerin ziyaret edebileceği kullanıcıları ve rolleri yapılandırın",
"resourceUsersRolesSubmit": "Kullanıcıları ve Rolleri Kaydet", "resourceUsersRolesSubmit": "Kullanıcıları ve Rolleri Kaydet",
"resourceWhitelistSave": "Başarıyla kaydedildi", "resourceWhitelistSave": "Başarıyla kaydedildi",
@@ -702,6 +716,7 @@
"resourceTransferSubmit": "Kaynağı Aktar", "resourceTransferSubmit": "Kaynağı Aktar",
"siteDestination": "Hedef Site", "siteDestination": "Hedef Site",
"searchSites": "Siteleri ara", "searchSites": "Siteleri ara",
"countries": "Ülkeler",
"accessRoleCreate": "Rol Oluştur", "accessRoleCreate": "Rol Oluştur",
"accessRoleCreateDescription": "Kullanıcıları gruplamak ve izinlerini yönetmek için yeni bir rol oluşturun.", "accessRoleCreateDescription": "Kullanıcıları gruplamak ve izinlerini yönetmek için yeni bir rol oluşturun.",
"accessRoleCreateSubmit": "Rol Oluştur", "accessRoleCreateSubmit": "Rol Oluştur",
@@ -909,6 +924,10 @@
"passwordResetSent": "Bu e-posta adresine bir şifre sıfırlama kodu gönderilecektir.", "passwordResetSent": "Bu e-posta adresine bir şifre sıfırlama kodu gönderilecektir.",
"passwordResetCode": "Sıfırlama Kodu", "passwordResetCode": "Sıfırlama Kodu",
"passwordResetCodeDescription": "E-posta gelen kutunuzda sıfırlama kodunu kontrol edin.", "passwordResetCodeDescription": "E-posta gelen kutunuzda sıfırlama kodunu kontrol edin.",
"generatePasswordResetCode": "Parola Sıfırlama Kodunu Oluştur",
"passwordResetCodeGenerated": "Parola Sıfırlama Kodu Oluşturuldu",
"passwordResetCodeGeneratedDescription": "Bu kodu kullanıcı ile paylaşın. Parolalarını sıfırlamak için bunu kullanabilirler.",
"passwordResetUrl": "Parola Sıfırlama URL'si",
"passwordNew": "Yeni Şifre", "passwordNew": "Yeni Şifre",
"passwordNewConfirm": "Yeni Şifreyi Onayla", "passwordNewConfirm": "Yeni Şifreyi Onayla",
"changePassword": "Parola Değiştir", "changePassword": "Parola Değiştir",
@@ -926,6 +945,9 @@
"pincodeAuth": "Kimlik Doğrulama Kodu", "pincodeAuth": "Kimlik Doğrulama Kodu",
"pincodeSubmit2": "Kodu Gönder", "pincodeSubmit2": "Kodu Gönder",
"passwordResetSubmit": "Sıfırlama İsteği", "passwordResetSubmit": "Sıfırlama İsteği",
"passwordResetAlreadyHaveCode": "Parola Sıfırlama Kodunu Giriniz",
"passwordResetSmtpRequired": "Yönetici ile iletişime geçin",
"passwordResetSmtpRequiredDescription": "Parolanızı sıfırlamak için bir parola sıfırlama kodu gereklidir. Yardım için yönetici ile iletişime geçin.",
"passwordBack": "Şifreye Geri Dön", "passwordBack": "Şifreye Geri Dön",
"loginBack": "Girişe geri dön", "loginBack": "Girişe geri dön",
"signup": "Kaydol", "signup": "Kaydol",
@@ -1091,12 +1113,15 @@
"actionListSiteResources": "Site Kaynaklarını Listele", "actionListSiteResources": "Site Kaynaklarını Listele",
"actionUpdateSiteResource": "Site Kaynağını Güncelle", "actionUpdateSiteResource": "Site Kaynağını Güncelle",
"actionListInvitations": "Davetiyeleri Listele", "actionListInvitations": "Davetiyeleri Listele",
"actionExportLogs": "Kayıtları Dışa Aktar",
"actionViewLogs": "Kayıtları Görüntüle",
"noneSelected": "Hiçbiri seçili değil", "noneSelected": "Hiçbiri seçili değil",
"orgNotFound2": "Hiçbir organizasyon bulunamadı.", "orgNotFound2": "Hiçbir organizasyon bulunamadı.",
"searchProgress": "Ara...", "searchProgress": "Ara...",
"create": "Oluştur", "create": "Oluştur",
"orgs": "Organizasyonlar", "orgs": "Organizasyonlar",
"loginError": "Giriş yaparken bir hata oluştu", "loginError": "Giriş yaparken bir hata oluştu",
"loginRequiredForDevice": "Cihazınızı kimlik doğrulamak için giriş yapılması gereklidir.",
"passwordForgot": "Şifrenizi mi unuttunuz?", "passwordForgot": "Şifrenizi mi unuttunuz?",
"otpAuth": "İki Faktörlü Kimlik Doğrulama", "otpAuth": "İki Faktörlü Kimlik Doğrulama",
"otpAuthDescription": "Authenticator uygulamanızdan veya tek kullanımlık yedek kodlarınızdan birini girin.", "otpAuthDescription": "Authenticator uygulamanızdan veya tek kullanımlık yedek kodlarınızdan birini girin.",
@@ -1151,37 +1176,47 @@
"sidebarHome": "Ana Sayfa", "sidebarHome": "Ana Sayfa",
"sidebarSites": "Siteler", "sidebarSites": "Siteler",
"sidebarResources": "Kaynaklar", "sidebarResources": "Kaynaklar",
"sidebarProxyResources": "Herkese Açık",
"sidebarClientResources": "Özel",
"sidebarAccessControl": "Erişim Kontrolü", "sidebarAccessControl": "Erişim Kontrolü",
"sidebarLogsAndAnalytics": "Kayıtlar & Analitik",
"sidebarUsers": "Kullanıcılar", "sidebarUsers": "Kullanıcılar",
"sidebarAdmin": "Yönetici",
"sidebarInvitations": "Davetiye", "sidebarInvitations": "Davetiye",
"sidebarRoles": "Roller", "sidebarRoles": "Roller",
"sidebarShareableLinks": "Paylaşılabilir Bağlantılar", "sidebarShareableLinks": "Bağlantılar",
"sidebarApiKeys": "API Anahtarları", "sidebarApiKeys": "API Anahtarları",
"sidebarSettings": "Ayarlar", "sidebarSettings": "Ayarlar",
"sidebarAllUsers": "Tüm Kullanıcılar", "sidebarAllUsers": "Tüm Kullanıcılar",
"sidebarIdentityProviders": "Kimlik Sağlayıcılar", "sidebarIdentityProviders": "Kimlik Sağlayıcılar",
"sidebarLicense": "Lisans", "sidebarLicense": "Lisans",
"sidebarClients": "İstemciler", "sidebarClients": "İstemciler",
"sidebarUserDevices": "Kullanıcılar",
"sidebarMachineClients": "Makineler",
"sidebarDomains": "Alan Adları", "sidebarDomains": "Alan Adları",
"sidebarGeneral": "Genel",
"sidebarLogAndAnalytics": "Kayıt & Analiz",
"sidebarBluePrints": "Planlar", "sidebarBluePrints": "Planlar",
"sidebarOrganization": "Organizasyon",
"sidebarLogsAnalytics": "Analitik",
"blueprints": "Planlar", "blueprints": "Planlar",
"blueprintsDescription": "Planlar, kaynaklarınızı ve ayarlarını tanımlayan bildirimsel YAML yapılandırmalarıdır", "blueprintsDescription": "Deklaratif yapılandırmaları uygulayın ve önceki çalışmaları görüntüleyin",
"blueprintAdd": "Plan Ekle", "blueprintAdd": "Plan Ekle",
"blueprintGoBack": "Tüm Planları Gör", "blueprintGoBack": "Tüm Planları Gör",
"blueprintCreate": "Plan Oluştur", "blueprintCreate": "Plan Oluştur",
"blueprintCreateDescription2": "Yeni bir plan oluşturup uygulamak için aşağıdaki adımları izleyin", "blueprintCreateDescription2": "Yeni bir plan oluşturup uygulamak için aşağıdaki adımları izleyin",
"blueprintDetails": "Plan Detayları", "blueprintDetails": "Mavi Yazılım Detayları",
"blueprintDetailsDescription": "Plan çalıştırma detaylarını görün", "blueprintDetailsDescription": "Uygulanan mavi yazılımın sonucunu ve oluşan hataları görün",
"blueprintInfo": "Plan Bilgileri", "blueprintInfo": "Plan Bilgileri",
"message": "Mesaj", "message": "Mesaj",
"blueprintContentsDescription": "Altyapınızı tanımlayan YAML içeriğini tanımlayın", "blueprintContentsDescription": "Altyapıyı tanımlayan YAML içeriğini belirleyin",
"blueprintErrorCreateDescription": "Plan uygulanırken bir hata oluştu", "blueprintErrorCreateDescription": "Plan uygulanırken bir hata oluştu",
"blueprintErrorCreate": "Plan oluşturulurken hata oluştu", "blueprintErrorCreate": "Plan oluşturulurken hata oluştu",
"searchBlueprintProgress": "Planlarda ara...", "searchBlueprintProgress": "Planlarda ara...",
"appliedAt": "Uygulama Zamanı", "appliedAt": "Uygulama Zamanı",
"source": "Kaynak", "source": "Kaynak",
"contents": "İçerik", "contents": "İçerik",
"parsedContents": "Ayrıştırılmış İçerik", "parsedContents": "Verilerin Ayrıştırılmış İçeriği (Salt Okunur)",
"enableDockerSocket": "Docker Soketini Etkinleştir", "enableDockerSocket": "Docker Soketini Etkinleştir",
"enableDockerSocketDescription": "Plan etiketleri için Docker Socket etiket toplamasını etkinleştirin. Newt'e soket yolu sağlanmalıdır.", "enableDockerSocketDescription": "Plan etiketleri için Docker Socket etiket toplamasını etkinleştirin. Newt'e soket yolu sağlanmalıdır.",
"enableDockerSocketLink": "Daha fazla bilgi", "enableDockerSocketLink": "Daha fazla bilgi",
@@ -1230,15 +1265,15 @@
"loading": "Yükleniyor", "loading": "Yükleniyor",
"restart": "Yeniden Başlat", "restart": "Yeniden Başlat",
"domains": "Alan Adları", "domains": "Alan Adları",
"domainsDescription": "Organizasyonunuz için alan adlarını yönetin", "domainsDescription": "Organizasyonda kullanılabilir alan adlarını oluşturun ve yönetin",
"domainsSearch": "Alan adlarını ara...", "domainsSearch": "Alan adlarını ara...",
"domainAdd": "Alan Adı Ekle", "domainAdd": "Alan Adı Ekle",
"domainAddDescription": "Organizasyonunuz için yeni bir alan adı kaydedin", "domainAddDescription": "Organizasyonunuz için yeni bir alan adı kaydedin",
"domainCreate": "Alan Adı Oluştur", "domainCreate": "Alan Adı Oluştur",
"domainCreatedDescription": "Alan adı başarıyla oluşturuldu", "domainCreatedDescription": "Alan adı başarıyla oluşturuldu",
"domainDeletedDescription": "Alan adı başarıyla silindi", "domainDeletedDescription": "Alan adı başarıyla silindi",
"domainQuestionRemove": "Alan adını hesabınızdan kaldırmak istediğinizden emin misiniz?", "domainQuestionRemove": "Alan adını kaldırmak istediğinizden emin misiniz?",
"domainMessageRemove": "Kaldırıldığında, alan adı hesabınızla ilişkilendirilmeyecek.", "domainMessageRemove": "Kaldırıldığında, alan adı artık organizasyonunuzla ilişkilendirilmez.",
"domainConfirmDelete": "Alan Adı Silinmesini Onayla", "domainConfirmDelete": "Alan Adı Silinmesini Onayla",
"domainDelete": "Alan Adını Sil", "domainDelete": "Alan Adını Sil",
"domain": "Alan Adı", "domain": "Alan Adı",
@@ -1279,6 +1314,15 @@
"settingsErrorUpdateDescription": "Ayarları güncellerken bir hata oluştu", "settingsErrorUpdateDescription": "Ayarları güncellerken bir hata oluştu",
"sidebarCollapse": "Daralt", "sidebarCollapse": "Daralt",
"sidebarExpand": "Genişlet", "sidebarExpand": "Genişlet",
"productUpdateMoreInfo": "{noOfUpdates} daha fazla güncelleme",
"productUpdateInfo": "{noOfUpdates} güncellemeler",
"productUpdateWhatsNew": "Neler Yeni",
"productUpdateTitle": "Ürün Güncellemeleri",
"productUpdateEmpty": "Güncelleme yok",
"dismissAll": "Hepsini Kapat",
"pangolinUpdateAvailable": "Güncelleme Mevcut",
"pangolinUpdateAvailableInfo": "Sürüm {version} yüklenmeye hazır",
"pangolinUpdateAvailableReleaseNotes": "Yayın Notlarını Görüntüle",
"newtUpdateAvailable": "Güncelleme Mevcut", "newtUpdateAvailable": "Güncelleme Mevcut",
"newtUpdateAvailableInfo": "Newt'in yeni bir versiyonu mevcut. En iyi deneyim için lütfen en son sürüme güncelleyin.", "newtUpdateAvailableInfo": "Newt'in yeni bir versiyonu mevcut. En iyi deneyim için lütfen en son sürüme güncelleyin.",
"domainPickerEnterDomain": "Alan Adı", "domainPickerEnterDomain": "Alan Adı",
@@ -1291,7 +1335,7 @@
"domainPickerSortAsc": "A-Z", "domainPickerSortAsc": "A-Z",
"domainPickerSortDesc": "Z-A", "domainPickerSortDesc": "Z-A",
"domainPickerCheckingAvailability": "Kullanılabilirlik kontrol ediliyor...", "domainPickerCheckingAvailability": "Kullanılabilirlik kontrol ediliyor...",
"domainPickerNoMatchingDomains": "Eşleşen domain bulunamadı. Farklı bir domain deneyin veya organizasyonunuzun domain ayarlarını kontrol edin.", "domainPickerNoMatchingDomains": "Eşleşen alan adı bulunamadı. Farklı bir alan adı deneyin veya organizasyonunuzun alan ayarlarını kontrol edin.",
"domainPickerOrganizationDomains": "Organizasyon Alan Adları", "domainPickerOrganizationDomains": "Organizasyon Alan Adları",
"domainPickerProvidedDomains": "Sağlanan Alan Adları", "domainPickerProvidedDomains": "Sağlanan Alan Adları",
"domainPickerSubdomain": "Alt Alan: {subdomain}", "domainPickerSubdomain": "Alt Alan: {subdomain}",
@@ -1336,9 +1380,9 @@
"billingPortalError": "Portal Hatası", "billingPortalError": "Portal Hatası",
"billingDataUsageInfo": "Buluta bağlandığınızda, güvenli tünellerinizden aktarılan tüm verilerden ücret alınırsınız. Bu, tüm sitelerinizdeki gelen ve giden trafiği içerir. Limitinize ulaştığınızda, planınızı yükseltmeli veya kullanımı azaltmalısınız, aksi takdirde siteleriniz bağlantıyı keser. Düğümler kullanırken verilerden ücret alınmaz.", "billingDataUsageInfo": "Buluta bağlandığınızda, güvenli tünellerinizden aktarılan tüm verilerden ücret alınırsınız. Bu, tüm sitelerinizdeki gelen ve giden trafiği içerir. Limitinize ulaştığınızda, planınızı yükseltmeli veya kullanımı azaltmalısınız, aksi takdirde siteleriniz bağlantıyı keser. Düğümler kullanırken verilerden ücret alınmaz.",
"billingOnlineTimeInfo": "Sitelerinizin buluta ne kadar süre bağlı kaldığına göre ücretlendirilirsiniz. Örneğin, 44,640 dakika, bir sitenin 24/7 boyunca tam bir ay boyunca çalışması anlamına gelir. Limitinize ulaştığınızda, planınızı yükseltmeyip kullanımı azaltmazsanız siteleriniz bağlantıyı keser. Düğümler kullanırken zamandan ücret alınmaz.", "billingOnlineTimeInfo": "Sitelerinizin buluta ne kadar süre bağlı kaldığına göre ücretlendirilirsiniz. Örneğin, 44,640 dakika, bir sitenin 24/7 boyunca tam bir ay boyunca çalışması anlamına gelir. Limitinize ulaştığınızda, planınızı yükseltmeyip kullanımı azaltmazsanız siteleriniz bağlantıyı keser. Düğümler kullanırken zamandan ücret alınmaz.",
"billingUsersInfo": "Kuruluşunuzdaki her kullanıcı için ücretlendirilirsiniz. Faturalandırma, hesabınızdaki aktif kullanıcı hesaplarının sayısına göre günlük olarak hesaplanır.", "billingUsersInfo": "Kuruluşunuzdaki her kullanıcı için ücretlendirilirsiniz. Faturalandırma, organizasyonunuza kayıtlı aktif kullanıcı hesaplarının sayısına göre günlük olarak hesaplanır.",
"billingDomainInfo": "Kuruluşunuzdaki her alan adı için ücretlendirilirsiniz. Faturalandırma, hesabınızdaki aktif alan adları hesaplarının sayısına göre günlük olarak hesaplanır.", "billingDomainInfo": "Kuruluşunuzdaki her alan adı için ücretlendirilirsiniz. Faturalandırma, organizasyonunuza kayıtlı aktif alan adları hesaplarının sayısına göre günlük olarak hesaplanır.",
"billingRemoteExitNodesInfo": "Kuruluşunuzdaki her yönetilen Düğüm için ücretlendirilirsiniz. Faturalandırma, hesabınızdaki aktif yönetilen Düğümler sayısına göre günlük olarak hesaplanır.", "billingRemoteExitNodesInfo": "Kuruluşunuzdaki her yönetilen Düğüm için ücretlendirilirsiniz. Faturalandırma, organizasyonunuza kayıtlı aktif yönetilen Düğümler sayısına göre günlük olarak hesaplanır.",
"domainNotFound": "Alan Adı Bulunamadı", "domainNotFound": "Alan Adı Bulunamadı",
"domainNotFoundDescription": "Bu kaynak devre dışıdır çünkü alan adı sistemimizde artık mevcut değil. Bu kaynak için yeni bir alan adı belirleyin.", "domainNotFoundDescription": "Bu kaynak devre dışıdır çünkü alan adı sistemimizde artık mevcut değil. Bu kaynak için yeni bir alan adı belirleyin.",
"failed": "Başarısız", "failed": "Başarısız",
@@ -1421,28 +1465,31 @@
"and": "ve", "and": "ve",
"privacyPolicy": "gizlilik politikası" "privacyPolicy": "gizlilik politikası"
}, },
"signUpMarketing": {
"keepMeInTheLoop": "Bana e-posta yoluyla haberler, güncellemeler ve yeni özellikler hakkında bilgi verin."
},
"siteRequired": "Site gerekli.", "siteRequired": "Site gerekli.",
"olmTunnel": "Olm Tüneli", "olmTunnel": "Olm Tüneli",
"olmTunnelDescription": "Müşteri bağlantıları için Olm kullanın", "olmTunnelDescription": "Müşteri bağlantıları için Olm kullanın",
"errorCreatingClient": "Müşteri oluşturulurken hata oluştu", "errorCreatingClient": "Müşteri oluşturulurken hata oluştu",
"clientDefaultsNotFound": "Müşteri varsayılanları bulunamadı", "clientDefaultsNotFound": "Müşteri varsayılanları bulunamadı",
"createClient": "Müşteri Oluştur", "createClient": "Müşteri Oluştur",
"createClientDescription": "Sitelerinize bağlanmak için yeni bir müşteri oluşturun", "createClientDescription": "Özel kaynaklara erişmek için yeni bir istemci oluşturun",
"seeAllClients": "Tüm Müşterileri Gör", "seeAllClients": "Tüm Müşterileri Gör",
"clientInformation": "Müşteri Bilgileri", "clientInformation": "Müşteri Bilgileri",
"clientNamePlaceholder": "Müşteri adı", "clientNamePlaceholder": "Müşteri adı",
"address": "Adres", "address": "Adres",
"subnetPlaceholder": "Alt ağ", "subnetPlaceholder": "Alt ağ",
"addressDescription": "Bu müşteri için bağlantıda kullanılacak adres", "addressDescription": "İstemcinin dahili adresi. Organizasyon alt ağı içinde olmalıdır.",
"selectSites": "Siteleri seçin", "selectSites": "Siteleri seçin",
"sitesDescription": "Müşteri seçilen sitelere bağlantı kuracaktır", "sitesDescription": "Müşteri seçilen sitelere bağlantı kuracaktır",
"clientInstallOlm": "Olm Yükle", "clientInstallOlm": "Olm Yükle",
"clientInstallOlmDescription": "Sisteminizde Olm çalıştırın", "clientInstallOlmDescription": "Sisteminizde Olm çalıştırın",
"clientOlmCredentials": "Olm Kimlik Bilgileri", "clientOlmCredentials": "Olm Kimlik Bilgileri",
"clientOlmCredentialsDescription": "Bu, Olm'in sunucu ile kimlik doğrulaması yapacağı yöntemdir", "clientOlmCredentialsDescription": "Bu, istemcinin sunucu ile kimlik doğrulaması yapacağı yöntemdir",
"olmEndpoint": "Olm Uç Noktası", "olmEndpoint": "Uç Nokta",
"olmId": "Olm Kimliği", "olmId": "Kimlik",
"olmSecretKey": "Olm Gizli Anahtarı", "olmSecretKey": "Gizli",
"clientCredentialsSave": "Kimlik Bilgilerinizi Kaydedin", "clientCredentialsSave": "Kimlik Bilgilerinizi Kaydedin",
"clientCredentialsSaveDescription": "Bunu yalnızca bir kez görebileceksiniz. Güvenli bir yere kopyaladığınızdan emin olun.", "clientCredentialsSaveDescription": "Bunu yalnızca bir kez görebileceksiniz. Güvenli bir yere kopyaladığınızdan emin olun.",
"generalSettingsDescription": "Bu müşteri için genel ayarları yapılandırın", "generalSettingsDescription": "Bu müşteri için genel ayarları yapılandırın",
@@ -1454,9 +1501,7 @@
"sitesFetchError": "Siteler alınırken bir hata oluştu.", "sitesFetchError": "Siteler alınırken bir hata oluştu.",
"olmErrorFetchReleases": "Olm yayınları alınırken bir hata oluştu.", "olmErrorFetchReleases": "Olm yayınları alınırken bir hata oluştu.",
"olmErrorFetchLatest": "En son Olm yayını alınırken bir hata oluştu.", "olmErrorFetchLatest": "En son Olm yayını alınırken bir hata oluştu.",
"remoteSubnets": "Uzak Alt Ağlar",
"enterCidrRange": "CIDR aralığını girin", "enterCidrRange": "CIDR aralığını girin",
"remoteSubnetsDescription": "Bu siteye uzaktan erişilebilen CIDR aralıklarını ekleyin. 10.0.0.0/24 formatını kullanın. Bu YALNIZCA VPN istemci bağlantıları için geçerlidir.",
"resourceEnableProxy": "Genel Proxy'i Etkinleştir", "resourceEnableProxy": "Genel Proxy'i Etkinleştir",
"resourceEnableProxyDescription": "Bu kaynağa genel proxy erişimini etkinleştirin. Bu sayede ağ dışından açık bir port üzerinden kaynağa bulut aracılığıyla erişim sağlanır. Traefik yapılandırması gereklidir.", "resourceEnableProxyDescription": "Bu kaynağa genel proxy erişimini etkinleştirin. Bu sayede ağ dışından açık bir port üzerinden kaynağa bulut aracılığıyla erişim sağlanır. Traefik yapılandırması gereklidir.",
"externalProxyEnabled": "Dış Proxy Etkinleştirildi", "externalProxyEnabled": "Dış Proxy Etkinleştirildi",
@@ -1474,14 +1519,15 @@
"enableHealthChecksDescription": "Bu hedefin sağlığını izleyin. Gerekirse hedef dışındaki bir son noktayı izleyebilirsiniz.", "enableHealthChecksDescription": "Bu hedefin sağlığını izleyin. Gerekirse hedef dışındaki bir son noktayı izleyebilirsiniz.",
"healthScheme": "Yöntem", "healthScheme": "Yöntem",
"healthSelectScheme": "Yöntem Seç", "healthSelectScheme": "Yöntem Seç",
"healthCheckPortInvalid": "Sağlık Kontrolü portu 1 ile 65535 arasında olmalıdır",
"healthCheckPath": "Yol", "healthCheckPath": "Yol",
"healthHostname": "IP / Hostname", "healthHostname": "IP / Hostname",
"healthPort": "Bağlantı Noktası", "healthPort": "Bağlantı Noktası",
"healthCheckPathDescription": "Sağlık durumunu kontrol etmek için yol.", "healthCheckPathDescription": "Sağlık durumunu kontrol etmek için yol.",
"healthyIntervalSeconds": "Sağlıklı Aralık", "healthyIntervalSeconds": "Sağlıklı Aralık (saniye)",
"unhealthyIntervalSeconds": "Sağlıksız Aralık", "unhealthyIntervalSeconds": "Sağlıksız Aralık (saniye)",
"IntervalSeconds": "Sağlıklı Aralık", "IntervalSeconds": "Sağlıklı Aralık",
"timeoutSeconds": "Zaman Aşımı", "timeoutSeconds": "Zaman Aşımı (saniye)",
"timeIsInSeconds": "Zaman saniye cinsindendir", "timeIsInSeconds": "Zaman saniye cinsindendir",
"retryAttempts": "Tekrar Deneme Girişimleri", "retryAttempts": "Tekrar Deneme Girişimleri",
"expectedResponseCodes": "Beklenen Yanıt Kodları", "expectedResponseCodes": "Beklenen Yanıt Kodları",
@@ -1517,16 +1563,22 @@
"resourceEditDomain": "Alan Adını Düzenle", "resourceEditDomain": "Alan Adını Düzenle",
"siteName": "Site Adı", "siteName": "Site Adı",
"proxyPort": "Bağlantı Noktası", "proxyPort": "Bağlantı Noktası",
"resourcesTableProxyResources": "Proxy Kaynaklar", "resourcesTableProxyResources": "Herkese Açık",
"resourcesTableClientResources": "İstemci Kaynaklar", "resourcesTableClientResources": "Özel",
"resourcesTableNoProxyResourcesFound": "Hiçbir proxy kaynağı bulunamadı.", "resourcesTableNoProxyResourcesFound": "Hiçbir proxy kaynağı bulunamadı.",
"resourcesTableNoInternalResourcesFound": "Hiçbir dahili kaynak bulunamadı.", "resourcesTableNoInternalResourcesFound": "Hiçbir dahili kaynak bulunamadı.",
"resourcesTableDestination": "Hedef", "resourcesTableDestination": "Hedef",
"resourcesTableTheseResourcesForUseWith": "Bu kaynaklar ile kullanılmak için", "resourcesTableAlias": "Takma Ad",
"resourcesTableClients": "İstemciler", "resourcesTableClients": "İstemciler",
"resourcesTableAndOnlyAccessibleInternally": "veyalnızca bir istemci ile bağlandığında dahili olarak erişilebilir.", "resourcesTableAndOnlyAccessibleInternally": "veyalnızca bir istemci ile bağlandığında dahili olarak erişilebilir.",
"editInternalResourceDialogEditClientResource": "İstemci Kaynağı Düzenleyin", "resourcesTableNoTargets": "Hedef yok",
"editInternalResourceDialogUpdateResourceProperties": "{resourceName} için kaynak özelliklerini ve hedef yapılandırmasını güncelleyin.", "resourcesTableHealthy": "Sağlıklı",
"resourcesTableDegraded": "Düşük Performanslı",
"resourcesTableOffline": "Çevrimdışı",
"resourcesTableUnknown": "Bilinmiyor",
"resourcesTableNotMonitored": "İzlenmiyor",
"editInternalResourceDialogEditClientResource": "Özel Kaynak Düzenleyin",
"editInternalResourceDialogUpdateResourceProperties": "{resourceName} için kaynak ayarlarını ve erişim kontrollerini güncelleyin",
"editInternalResourceDialogResourceProperties": "Kaynak Özellikleri", "editInternalResourceDialogResourceProperties": "Kaynak Özellikleri",
"editInternalResourceDialogName": "Ad", "editInternalResourceDialogName": "Ad",
"editInternalResourceDialogProtocol": "Protokol", "editInternalResourceDialogProtocol": "Protokol",
@@ -1545,11 +1597,22 @@
"editInternalResourceDialogInvalidIPAddressFormat": "Geçersiz IP adresi formatı", "editInternalResourceDialogInvalidIPAddressFormat": "Geçersiz IP adresi formatı",
"editInternalResourceDialogDestinationPortMin": "Hedef bağlantı noktası en az 1 olmalıdır", "editInternalResourceDialogDestinationPortMin": "Hedef bağlantı noktası en az 1 olmalıdır",
"editInternalResourceDialogDestinationPortMax": "Hedef bağlantı noktası 65536'dan küçük olmalıdır", "editInternalResourceDialogDestinationPortMax": "Hedef bağlantı noktası 65536'dan küçük olmalıdır",
"editInternalResourceDialogPortModeRequired": "Port modu için protokol, proxy portu ve hedef porta ihtiyaç vardır",
"editInternalResourceDialogMode": "Mod",
"editInternalResourceDialogModePort": "Bağlantı Noktası",
"editInternalResourceDialogModeHost": "Ev Sahibi",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogDestination": "Hedef",
"editInternalResourceDialogDestinationHostDescription": "Site ağındaki kaynağın IP adresi veya ana bilgisayar adı.",
"editInternalResourceDialogDestinationIPDescription": "Kaynağın site ağındaki IP veya ana bilgisayar adresi.",
"editInternalResourceDialogDestinationCidrDescription": "Site ağındaki kaynağın CIDR aralığı.",
"editInternalResourceDialogAlias": "Takma Ad",
"editInternalResourceDialogAliasDescription": "Bu kaynak için isteğe bağlı dahili DNS takma adı.",
"createInternalResourceDialogNoSitesAvailable": "Site Bulunamadı", "createInternalResourceDialogNoSitesAvailable": "Site Bulunamadı",
"createInternalResourceDialogNoSitesAvailableDescription": "Dahili kaynak oluşturmak için en az bir Newt sitesine ve alt ağa sahip olmalısınız.", "createInternalResourceDialogNoSitesAvailableDescription": "Dahili kaynak oluşturmak için en az bir Newt sitesine ve alt ağa sahip olmalısınız.",
"createInternalResourceDialogClose": "Kapat", "createInternalResourceDialogClose": "Kapat",
"createInternalResourceDialogCreateClientResource": "İstemci Kaynağı Oluştur", "createInternalResourceDialogCreateClientResource": "Özel Kaynak Oluştur",
"createInternalResourceDialogCreateClientResourceDescription": "Seçilen siteye bağlı istemciler için erişilebilir olacak yeni bir kaynak oluşturun.", "createInternalResourceDialogCreateClientResourceDescription": "Seçilen siteye bağlı istemcilere erişilebilir olacak yeni bir kaynak oluşturun",
"createInternalResourceDialogResourceProperties": "Kaynak Özellikleri", "createInternalResourceDialogResourceProperties": "Kaynak Özellikleri",
"createInternalResourceDialogName": "Ad", "createInternalResourceDialogName": "Ad",
"createInternalResourceDialogSite": "Site", "createInternalResourceDialogSite": "Site",
@@ -1578,11 +1641,22 @@
"createInternalResourceDialogInvalidIPAddressFormat": "Geçersiz IP adresi formatı", "createInternalResourceDialogInvalidIPAddressFormat": "Geçersiz IP adresi formatı",
"createInternalResourceDialogDestinationPortMin": "Hedef bağlantı noktası en az 1 olmalıdır", "createInternalResourceDialogDestinationPortMin": "Hedef bağlantı noktası en az 1 olmalıdır",
"createInternalResourceDialogDestinationPortMax": "Hedef bağlantı noktası 65536'dan küçük olmalıdır", "createInternalResourceDialogDestinationPortMax": "Hedef bağlantı noktası 65536'dan küçük olmalıdır",
"createInternalResourceDialogPortModeRequired": "Port modu için protokol, proxy portu ve hedef porta ihtiyaç vardır",
"createInternalResourceDialogMode": "Mod",
"createInternalResourceDialogModePort": "Bağlantı Noktası",
"createInternalResourceDialogModeHost": "Ev Sahibi",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogDestination": "Hedef",
"createInternalResourceDialogDestinationHostDescription": "Site ağındaki kaynağın IP adresi veya ana bilgisayar adı.",
"createInternalResourceDialogDestinationCidrDescription": "Site ağındaki kaynağın CIDR aralığı.",
"createInternalResourceDialogAlias": "Takma Ad",
"createInternalResourceDialogAliasDescription": "Bu kaynak için isteğe bağlı dahili DNS takma adı.",
"siteConfiguration": "Yapılandırma", "siteConfiguration": "Yapılandırma",
"siteAcceptClientConnections": "İstemci Bağlantılarını Kabul Et", "siteAcceptClientConnections": "İstemci Bağlantılarını Kabul Et",
"siteAcceptClientConnectionsDescription": "Bu Newt örneğini bir geçit olarak kullanarak diğer cihazların bağlanmasına izin verin.", "siteAcceptClientConnectionsDescription": "Kullanıcı cihazları ve istemcilerin bu sitedeki kaynaklara erişmesine izin verin. Bu daha sonra değiştirilebilir.",
"siteAddress": "Site Adresi", "siteAddress": "Site Adresi (Gelişmiş)",
"siteAddressDescription": "İstemcilerin bağlanması için hostun IP adresini belirtin. Bu, Pangolin ağındaki sitenin iç adresidir ve istemciler için atlas olmalıdır. Org alt ağına düşmelidir.", "siteAddressDescription": "Site için dahili adres. Organizasyon alt ağı içinde olmalıdır.",
"siteNameDescription": "Sonradan değiştirilebilecek sitenin görünen adı.",
"autoLoginExternalIdp": "Harici IDP ile Otomatik Giriş", "autoLoginExternalIdp": "Harici IDP ile Otomatik Giriş",
"autoLoginExternalIdpDescription": "Kullanıcıyı kimlik doğrulama için otomatik olarak harici IDP'ye yönlendirin.", "autoLoginExternalIdpDescription": "Kullanıcıyı kimlik doğrulama için otomatik olarak harici IDP'ye yönlendirin.",
"selectIdp": "IDP Seç", "selectIdp": "IDP Seç",
@@ -1596,7 +1670,7 @@
"autoLoginErrorNoRedirectUrl": "Kimlik sağlayıcıdan yönlendirme URL'si alınamadı.", "autoLoginErrorNoRedirectUrl": "Kimlik sağlayıcıdan yönlendirme URL'si alınamadı.",
"autoLoginErrorGeneratingUrl": "Kimlik doğrulama URL'si oluşturulamadı.", "autoLoginErrorGeneratingUrl": "Kimlik doğrulama URL'si oluşturulamadı.",
"remoteExitNodeManageRemoteExitNodes": "Uzak Düğümler", "remoteExitNodeManageRemoteExitNodes": "Uzak Düğümler",
"remoteExitNodeDescription": "Kendi konum ağlarınızdan bir veya daha fazlasını barındırarak, bağlantı kurulumları için buluta bağımlılığı azaltın.", "remoteExitNodeDescription": "Ağ bağlantınızı genişletmek ve buluta bağlı kalmayı azaltmak için bir veya daha fazla uzak düğüm barındırın",
"remoteExitNodes": "Düğümler", "remoteExitNodes": "Düğümler",
"searchRemoteExitNodes": "Düğüm ara...", "searchRemoteExitNodes": "Düğüm ara...",
"remoteExitNodeAdd": "Düğüm Ekle", "remoteExitNodeAdd": "Düğüm Ekle",
@@ -1633,7 +1707,7 @@
}, },
"generate": { "generate": {
"title": "Oluşturulan Kimlik Bilgileri", "title": "Oluşturulan Kimlik Bilgileri",
"description": "Düğümünüzü yapılandırmak için oluşturulan bu kimlik bilgilerini kullanın", "description": "Düğümünüzü yapılandırmak için bu oluşturulan kimlik bilgilerini kullanın",
"nodeIdTitle": "Düğüm ID", "nodeIdTitle": "Düğüm ID",
"secretTitle": "Gizli", "secretTitle": "Gizli",
"saveCredentialsTitle": "Kimlik Bilgilerini Yapılandırmaya Ekle", "saveCredentialsTitle": "Kimlik Bilgilerini Yapılandırmaya Ekle",
@@ -1715,7 +1789,7 @@
"idpAzureConfiguration": "Azure Entra ID Yapılandırması", "idpAzureConfiguration": "Azure Entra ID Yapılandırması",
"idpAzureConfigurationDescription": "Azure Entra ID OAuth2 kimlik bilgilerinizi yapılandırın", "idpAzureConfigurationDescription": "Azure Entra ID OAuth2 kimlik bilgilerinizi yapılandırın",
"idpTenantId": "Kiracı Kimliği", "idpTenantId": "Kiracı Kimliği",
"idpTenantIdPlaceholder": "kiraci-kimliginiz", "idpTenantIdPlaceholder": "kiracı Kimliği",
"idpAzureTenantIdDescription": "Azure kiracı kimliğiniz (Azure Active Directory genel bakışında bulunur)", "idpAzureTenantIdDescription": "Azure kiracı kimliğiniz (Azure Active Directory genel bakışında bulunur)",
"idpAzureClientIdDescription": "Azure Uygulama Kaydı İstemci Kimliğiniz", "idpAzureClientIdDescription": "Azure Uygulama Kaydı İstemci Kimliğiniz",
"idpAzureClientSecretDescription": "Azure Uygulama Kaydı İstemci Sırrınız", "idpAzureClientSecretDescription": "Azure Uygulama Kaydı İstemci Sırrınız",
@@ -1839,8 +1913,12 @@
"enterpriseEdition": "Kurumsal Sürüm", "enterpriseEdition": "Kurumsal Sürüm",
"unlicensed": "Lisansız", "unlicensed": "Lisansız",
"beta": "Beta", "beta": "Beta",
"manageClients": "Müşteri Yönetimi", "manageUserDevices": "Kullanıcı Cihazları",
"manageClientsDescription": "Müşteriler, sitelerinize bağlanabilen cihazlardır.", "manageUserDevicesDescription": "Kullanıcıların kaynaklara özel olarak bağlanmak için kullandığı cihazları görüntüleyin ve yönetin",
"manageMachineClients": "Makine İstemcilerini Yönetin",
"manageMachineClientsDescription": "Sunucuların ve sistemlerin kaynaklara özel olarak bağlanmak için kullandığı istemcileri oluşturun ve yönetin",
"clientsTableUserClients": "Kullanıcı",
"clientsTableMachineClients": "Makine",
"licenseTableValidUntil": "Geçerli İki Tarih Kadar", "licenseTableValidUntil": "Geçerli İki Tarih Kadar",
"saasLicenseKeysSettingsTitle": "Kurumsal Lisanslar", "saasLicenseKeysSettingsTitle": "Kurumsal Lisanslar",
"saasLicenseKeysSettingsDescription": "Kendi barındırdığınız Pangolin örnekleri için kurumsal lisans anahtarları oluşturun ve yönetin.", "saasLicenseKeysSettingsDescription": "Kendi barındırdığınız Pangolin örnekleri için kurumsal lisans anahtarları oluşturun ve yönetin.",
@@ -1975,11 +2053,12 @@
"pathRewriteStripLabel": "sil", "pathRewriteStripLabel": "sil",
"sidebarEnableEnterpriseLicense": "Kurumsal Lisans Etkinleştir", "sidebarEnableEnterpriseLicense": "Kurumsal Lisans Etkinleştir",
"cannotbeUndone": "Bu geri alınamaz.", "cannotbeUndone": "Bu geri alınamaz.",
"toConfirm": "doğrulamak için", "toConfirm": "onaylamak için.",
"deleteClientQuestion": "Müşteriyi siteden ve organizasyondan kaldırmak istediğinizden emin misiniz?", "deleteClientQuestion": "Müşteriyi siteden ve organizasyondan kaldırmak istediğinizden emin misiniz?",
"clientMessageRemove": "Kaldırıldıktan sonra müşteri siteye bağlanamayacaktır.", "clientMessageRemove": "Kaldırıldıktan sonra müşteri siteye bağlanamayacaktır.",
"sidebarLogs": "Kayıtlar", "sidebarLogs": "Kayıtlar",
"request": "İstek", "request": "İstek",
"requests": "İstekler",
"logs": "Günlükler", "logs": "Günlükler",
"logsSettingsDescription": "Bu organizasyondan toplanan günlükleri izleyin", "logsSettingsDescription": "Bu organizasyondan toplanan günlükleri izleyin",
"searchLogs": "Günlüklerde ara...", "searchLogs": "Günlüklerde ara...",
@@ -2005,6 +2084,7 @@
"ip": "IP", "ip": "IP",
"reason": "Sebep", "reason": "Sebep",
"requestLogs": "İstek Günlükleri", "requestLogs": "İstek Günlükleri",
"requestAnalytics": "İstek Analizi",
"host": "Sunucu", "host": "Sunucu",
"location": "Konum", "location": "Konum",
"actionLogs": "Eylem Günlükleri", "actionLogs": "Eylem Günlükleri",
@@ -2014,6 +2094,7 @@
"logRetention": "Kayıt Saklama", "logRetention": "Kayıt Saklama",
"logRetentionDescription": "Bu organizasyon için farklı türdeki günlüklerin ne kadar süre saklanacağını yönetin veya devre dışı bırakın", "logRetentionDescription": "Bu organizasyon için farklı türdeki günlüklerin ne kadar süre saklanacağını yönetin veya devre dışı bırakın",
"requestLogsDescription": "Bu organizasyondaki kaynaklar için ayrıntılı istek günlüklerini görüntüleyin", "requestLogsDescription": "Bu organizasyondaki kaynaklar için ayrıntılı istek günlüklerini görüntüleyin",
"requestAnalyticsDescription": "Bu organizasyondaki kaynaklar için ayrıntılı istek analizlerini görüntüleyin.",
"logRetentionRequestLabel": "İstek Günlüğü Saklama", "logRetentionRequestLabel": "İstek Günlüğü Saklama",
"logRetentionRequestDescription": "İstek günlüklerini ne kadar süre tutacağını belirle", "logRetentionRequestDescription": "İstek günlüklerini ne kadar süre tutacağını belirle",
"logRetentionAccessLabel": "Erişim Günlüğü Saklama", "logRetentionAccessLabel": "Erişim Günlüğü Saklama",
@@ -2027,6 +2108,7 @@
"logRetention30Days": "30 gün", "logRetention30Days": "30 gün",
"logRetention90Days": "90 gün", "logRetention90Days": "90 gün",
"logRetentionForever": "Sonsuza kadar", "logRetentionForever": "Sonsuza kadar",
"logRetentionEndOfFollowingYear": "Bir sonraki yılın sonu",
"actionLogsDescription": "Bu organizasyondaki eylemler geçmişini görüntüleyin", "actionLogsDescription": "Bu organizasyondaki eylemler geçmişini görüntüleyin",
"accessLogsDescription": "Bu organizasyondaki kaynaklar için erişim kimlik doğrulama isteklerini görüntüleyin", "accessLogsDescription": "Bu organizasyondaki kaynaklar için erişim kimlik doğrulama isteklerini görüntüleyin",
"licenseRequiredToUse": "Bu özelliği kullanmak için bir kurumsal lisans gereklidir.", "licenseRequiredToUse": "Bu özelliği kullanmak için bir kurumsal lisans gereklidir.",
@@ -2037,7 +2119,7 @@
"preferWildcardCert": "Joker Sertifikayı Tercih Et", "preferWildcardCert": "Joker Sertifikayı Tercih Et",
"unverified": "Doğrulanmadı", "unverified": "Doğrulanmadı",
"domainSetting": "Alan Adı Ayarları", "domainSetting": "Alan Adı Ayarları",
"domainSettingDescription": "Alan adınız için ayarları yapılandırın", "domainSettingDescription": "Alan adı için ayarları yapılandırın",
"preferWildcardCertDescription": "Joker sertifika üretmeye çalışın (doğru yapılandırılmış bir sertifika çözücü gereklidir).", "preferWildcardCertDescription": "Joker sertifika üretmeye çalışın (doğru yapılandırılmış bir sertifika çözücü gereklidir).",
"recordName": "Kayıt Adı", "recordName": "Kayıt Adı",
"auto": "Otomatik", "auto": "Otomatik",
@@ -2051,9 +2133,9 @@
"olmUpdateAvailableInfo": "Olm'nin güncellenmiş bir sürümü mevcut. En iyi deneyim için lütfen en son sürüme güncelleyin.", "olmUpdateAvailableInfo": "Olm'nin güncellenmiş bir sürümü mevcut. En iyi deneyim için lütfen en son sürüme güncelleyin.",
"client": "İstemci", "client": "İstemci",
"proxyProtocol": "Proxy Protokol Ayarları", "proxyProtocol": "Proxy Protokol Ayarları",
"proxyProtocolDescription": "TCP/UDP hizmetleri için istemci IP adreslerini korumak için Proxy Protokolünü yapılandırın.", "proxyProtocolDescription": "TCP hizmetleri için istemci IP adreslerini korumak amacıyla Proxy Protokolünü yapılandırın.",
"enableProxyProtocol": "Proxy Protokolünü Etkinleştir", "enableProxyProtocol": "Proxy Protokolünü Etkinleştir",
"proxyProtocolInfo": "TCP/UDP arka uçları için istemci IP adreslerini koruyun", "proxyProtocolInfo": "TCP ara yüzlerini koruyarak istemci IP adreslerini saklayın",
"proxyProtocolVersion": "Proxy Protokol Versiyonu", "proxyProtocolVersion": "Proxy Protokol Versiyonu",
"version1": " Versiyon 1 (Önerilen)", "version1": " Versiyon 1 (Önerilen)",
"version2": "Versiyon 2", "version2": "Versiyon 2",
@@ -2080,5 +2162,113 @@
"supportSending": "Gönderiliyor...", "supportSending": "Gönderiliyor...",
"supportSend": "Gönder", "supportSend": "Gönder",
"supportMessageSent": "Mesaj Gönderildi!", "supportMessageSent": "Mesaj Gönderildi!",
"supportWillContact": "En kısa sürede size geri döneceğiz!" "supportWillContact": "En kısa sürede size geri döneceğiz!",
"selectLogRetention": "Kayıt saklama seç",
"terms": "Şartlar",
"privacy": "Gizlilik",
"security": "Güvenlik",
"docs": "Belgeler",
"deviceActivation": "Cihaz aktivasyonu",
"deviceCodeInvalidFormat": "Kod 9 karakter olmalı (ör. A1AJ-N5JD)",
"deviceCodeInvalidOrExpired": "Geçersiz veya süresi dolmuş kod",
"deviceCodeVerifyFailed": "Cihaz kodu doğrulanamadı",
"signedInAs": "Olarak giriş yapıldı",
"deviceCodeEnterPrompt": "Cihazda gösterilen kodu girin",
"continue": "Devam Et",
"deviceUnknownLocation": "Bilinmeyen konum",
"deviceAuthorizationRequested": "Bu yetkilendirme {tarih} tarihinde {konum} konumundan talep edildi. Bu cihaza güvenmenizi sağlayın, çünkü hesap erişimine sahip olacaktır.",
"deviceLabel": "Cihaz: {cihazadı}",
"deviceWantsAccess": "hesabınıza erişmek istiyor",
"deviceExistingAccess": "Mevcut erişim:",
"deviceFullAccess": "Hesabınıza tam erişim",
"deviceOrganizationsAccess": "Hesabınızın erişim hakkına sahip olduğu tüm organizasyonlara erişim",
"deviceAuthorize": "{uygulamaAdi} yetkilendir",
"deviceConnected": "Cihaz Bağlandı!",
"deviceAuthorizedMessage": "Cihazınız, hesabınıza erişim izni almıştır.",
"pangolinCloud": "Pangolin Cloud",
"viewDevices": "Cihazları Görüntüle",
"viewDevicesDescription": "Bağlantılı cihazlarınızı yönetin",
"noDevices": "Cihaz bulunamadı",
"dateCreated": "Oluşturulma Tarihi",
"unnamedDevice": "Adı Olmayan Cihaz",
"deviceQuestionRemove": "Bu cihazı silmek istediğinizden emin misiniz?",
"deviceMessageRemove": "Bu eylem geri alınamaz.",
"deviceDeleteConfirm": "Cihazı Sil",
"deleteDevice": "Cihazı Sil",
"errorLoadingDevices": "Cihaz yüklenirken hata oluştu",
"failedToLoadDevices": "Cihazlar yüklenemedi",
"deviceDeleted": "Cihaz silindi",
"deviceDeletedDescription": "Cihaz başarıyla silindi.",
"errorDeletingDevice": "Cihaz silinirken hata",
"failedToDeleteDevice": "Cihaz silinirken hata oluştu",
"showColumns": "Sütunları Göster",
"hideColumns": "Sütunları Gizle",
"columnVisibility": "Sütun Görünürlüğü",
"toggleColumn": "{columnName} sütununu aç/kapat",
"allColumns": "Tüm Sütunlar",
"defaultColumns": "Varsayılan Sütunlar",
"customizeView": "Görünümü Özelleştir",
"viewOptions": "Görünüm Seçenekleri",
"selectAll": "Tümünü Seç",
"selectNone": "Hiçbirini Seçme",
"selectedResources": "Seçilen Kaynaklar",
"enableSelected": "Seçilenleri Etkinleştir",
"disableSelected": "Seçilenleri Devre Dışı Bırak",
"checkSelectedStatus": "Seçilenlerin Durumunu Kontrol Et",
"clients": "İstemciler",
"accessClientSelect": "Makine istemcilerini seçiniz",
"resourceClientDescription": "Bu kaynağa erişebilecek makine istemcileri",
"regenerate": "Yeniden Üret",
"credentials": "Kimlik Bilgileri",
"savecredentials": "Kimlik Bilgilerini Kaydet",
"regenerateCredentialsButton": "Kimlik Bilgilerini Yeniden Oluştur",
"regenerateCredentials": "Kimlik Bilgilerini Yeniden Oluştur",
"generatedcredentials": "Oluşturulan Kimlik Bilgileri",
"copyandsavethesecredentials": "Bu kimlik bilgilerini kopyalayın ve kaydedin",
"copyandsavethesecredentialsdescription": "Bu sayfadan ayrıldıktan sonra bu kimlik bilgileri tekrar gösterilmeyecek. Onları şimdi güvenli bir şekilde saklayın.",
"credentialsSaved": "Kimlik Bilgileri Kaydedildi",
"credentialsSavedDescription": "Kimlik bilgileri başarılı bir şekilde yeniden oluşturuldu ve kaydedildi.",
"credentialsSaveError": "Kimlik Bilgileri Kayıt Hatası",
"credentialsSaveErrorDescription": "Kimlik bilgilerini yeniden oluştururken ve kaydederken bir hata oluştu.",
"regenerateCredentialsWarning": "Kimlik bilgilerini yeniden oluşturmak, öncekilerini geçersiz kılacak ve bağlantı kesintisine neden olacaktır. Bu kimlik bilgilerini kullanan yapılandırmaları güncellediğinizden emin olun.",
"confirm": "Onayla",
"regenerateCredentialsConfirmation": "Kimlik bilgilerini yeniden oluşturmak istediğinizden emin misiniz?",
"endpoint": "Uç Nokta",
"Id": "Kimlik",
"SecretKey": "Gizli Anahtar",
"niceId": "Güzel Kimlik",
"niceIdUpdated": "Güzel Kimlik Güncellendi",
"niceIdUpdatedSuccessfully": "Güzel Kimlik Başarıyla Güncellendi",
"niceIdUpdateError": "Güzel Kimlik güncellenirken hata",
"niceIdUpdateErrorDescription": "Güzel Kimlik güncellenirken bir hata oluştu.",
"niceIdCannotBeEmpty": "Güzel Kimlik boş olamaz",
"enterIdentifier": "Tanımlayıcıyı girin",
"identifier": "Tanımlayıcı",
"deviceLoginUseDifferentAccount": "Siz değil misiniz? Farklı bir hesap kullanın.",
"deviceLoginDeviceRequestingAccessToAccount": "Bir cihaz bu hesaba erişim talep ediyor.",
"noData": "Veri Yok",
"machineClients": "Makine İstemcileri",
"install": "Yükle",
"run": "Çalıştır",
"clientNameDescription": "Daha sonra değiştirilebilecek istemcinin görünen adı.",
"clientAddress": "İstemci Adresi (Gelişmiş)",
"setupFailedToFetchSubnet": "Varsayılan alt ağ alınamadı",
"setupSubnetAdvanced": "Alt Ağ (Gelişmiş)",
"setupSubnetDescription": "Bu organizasyonun dahili ağı için alt ağ.",
"siteRegenerateAndDisconnect": "Yeniden Oluştur ve Bağlantıyı Kes",
"siteRegenerateAndDisconnectConfirmation": "Kimlik bilgilerini yeniden oluşturmak ve bu sitenin bağlantısını kesmek istediğinizden emin misiniz?",
"siteRegenerateAndDisconnectWarning": "Bu, kimlik bilgilerini yeniden oluşturacak ve sitenin bağlantısını anında kesecektir. Site yeni kimlik bilgilerle yeniden başlatılmalıdır.",
"siteRegenerateCredentialsConfirmation": "Bu site için kimlik bilgilerini yeniden oluşturmak istediğinizden emin misiniz?",
"siteRegenerateCredentialsWarning": "Bu, kimlik bilgilerini yeniden oluşturacak. Site manuel olarak yeniden başlatılana ve yeni kimlik bilgileri kullanılana kadar bağlı kalacak.",
"clientRegenerateAndDisconnect": "Yeniden Oluştur ve Bağlantıyı Kes",
"clientRegenerateAndDisconnectConfirmation": "Kimlik bilgilerini yeniden oluşturmak ve bu istemcinin bağlantısını kesmek istediğinizden emin misiniz?",
"clientRegenerateAndDisconnectWarning": "Bu, kimlik bilgilerini yeniden oluşturacak ve istemcinin bağlantısını hemen kesecek. İstemci, yeni kimlik bilgilerle yeniden başlatılmalıdır.",
"clientRegenerateCredentialsConfirmation": "Bu istemci için kimlik bilgilerini yeniden oluşturmak istediğinizden emin misiniz?",
"clientRegenerateCredentialsWarning": "Bu, kimlik bilgilerini yeniden oluşturacak. İstemci, manuel olarak yeniden başlatılana ve yeni kimlik bilgileri kullanılana kadar bağlı kalacak.",
"remoteExitNodeRegenerateAndDisconnect": "Yeniden Oluştur ve Bağlantıyı Kes",
"remoteExitNodeRegenerateAndDisconnectConfirmation": "Kimlik bilgilerini yeniden oluşturmak ve bu uzak çıkış düğümünün bağlantısını kesmek istediğinizden emin misiniz?",
"remoteExitNodeRegenerateAndDisconnectWarning": "Bu, kimlik bilgilerini yeniden oluşturacak ve hemen uzak çıkış düğümünün bağlantısını kesecek. Uzak çıkış düğümü, yeni kimlik bilgileri ile yeniden başlatılmalıdır.",
"remoteExitNodeRegenerateCredentialsConfirmation": "Bu uzak çıkış düğümü için kimlik bilgilerini yeniden oluşturmak istediğinizden emin misiniz?",
"remoteExitNodeRegenerateCredentialsWarning": "Bu, kimlik bilgilerini yeniden oluşturacak. Uzak çıkış düğümü, manuel olarak yeniden başlatılana ve yeni kimlik bilgiler kullanılana kadar bağlı kalacak.",
"agent": "Aracı"
} }

View File

@@ -1,12 +1,12 @@
{ {
"setupCreate": "创建您的第一个组织、站和资源", "setupCreate": "创建组织、站和资源",
"setupNewOrg": "新建组织", "setupNewOrg": "新建组织",
"setupCreateOrg": "创建组织", "setupCreateOrg": "创建组织",
"setupCreateResources": "创建资源", "setupCreateResources": "创建资源",
"setupOrgName": "组织名称", "setupOrgName": "组织名称",
"orgDisplayName": "这是组织的显示名称。", "orgDisplayName": "这是组织的显示名称。",
"orgId": "组织ID", "orgId": "组织ID",
"setupIdentifierMessage": "这是组织唯一标识符。这是与显示名称分开的。", "setupIdentifierMessage": "这是组织唯一标识符。",
"setupErrorIdentifier": "组织ID 已被使用。请另选一个。", "setupErrorIdentifier": "组织ID 已被使用。请另选一个。",
"componentsErrorNoMemberCreate": "您目前不是任何组织的成员。创建组织以开始操作。", "componentsErrorNoMemberCreate": "您目前不是任何组织的成员。创建组织以开始操作。",
"componentsErrorNoMember": "您目前不是任何组织的成员。", "componentsErrorNoMember": "您目前不是任何组织的成员。",
@@ -50,10 +50,10 @@
"siteMessageRemove": "一旦移除,站点将无法访问。与站点相关的所有目标也将被移除。", "siteMessageRemove": "一旦移除,站点将无法访问。与站点相关的所有目标也将被移除。",
"siteQuestionRemove": "您确定要从组织中删除该站点吗?", "siteQuestionRemove": "您确定要从组织中删除该站点吗?",
"siteManageSites": "管理站点", "siteManageSites": "管理站点",
"siteDescription": "允许通过安全隧道连接到您的网络", "siteDescription": "创建和管理站点,启用与私人网络的连接",
"siteCreate": "创建站点", "siteCreate": "创建站点",
"siteCreateDescription2": "按照下面的步骤创建和连接一个新站点", "siteCreateDescription2": "按照下面的步骤创建和连接一个新站点",
"siteCreateDescription": "创建一个新站点开始连接您的资源", "siteCreateDescription": "创建一个新站点开始连接资源",
"close": "关闭", "close": "关闭",
"siteErrorCreate": "创建站点出错", "siteErrorCreate": "创建站点出错",
"siteErrorCreateKeyPair": "找不到密钥对或站点默认值", "siteErrorCreateKeyPair": "找不到密钥对或站点默认值",
@@ -74,7 +74,7 @@
"siteInstallNewt": "安装 Newt", "siteInstallNewt": "安装 Newt",
"siteInstallNewtDescription": "在您的系统中运行 Newt", "siteInstallNewtDescription": "在您的系统中运行 Newt",
"WgConfiguration": "WireGuard 配置", "WgConfiguration": "WireGuard 配置",
"WgConfigurationDescription": "使用以下配置连接到您的网络", "WgConfigurationDescription": "使用以下配置连接到网络",
"operatingSystem": "操作系统", "operatingSystem": "操作系统",
"commands": "命令", "commands": "命令",
"recommended": "推荐", "recommended": "推荐",
@@ -87,32 +87,32 @@
"siteUpdated": "站点已更新", "siteUpdated": "站点已更新",
"siteUpdatedDescription": "网站已更新。", "siteUpdatedDescription": "网站已更新。",
"siteGeneralDescription": "配置此站点的常规设置", "siteGeneralDescription": "配置此站点的常规设置",
"siteSettingDescription": "配置您网站上的设置", "siteSettingDescription": "配置站点设置",
"siteSetting": "{siteName} 设置", "siteSetting": "{siteName} 设置",
"siteNewtTunnel": "Newt 隧道 (推荐)", "siteNewtTunnel": "新站点 (推荐)",
"siteNewtTunnelDescription": "最简单的方式来连接到您的网络。不需要任何额外设置。", "siteNewtTunnelDescription": "最简单的方式来创建任何网络的入口。没有额外设置。",
"siteWg": "基本 WireGuard", "siteWg": "基本 WireGuard",
"siteWgDescription": "使用任何 WireGuard 客户端来建立隧道。需要手动配置 NAT。", "siteWgDescription": "使用任何 WireGuard 客户端来建立隧道。需要手动配置 NAT。",
"siteWgDescriptionSaas": "使用任何WireGuard客户端建立隧道。需要手动配置NAT。仅适用于自托管节点。", "siteWgDescriptionSaas": "使用任何WireGuard客户端建立隧道。需要手动配置NAT。仅适用于自托管节点。",
"siteLocalDescription": "仅限本地资源。不需要隧道。", "siteLocalDescription": "仅限本地资源。不需要隧道。",
"siteLocalDescriptionSaas": "仅本地资源。没有隧道。仅在远程节点上可用。", "siteLocalDescriptionSaas": "仅本地资源。没有隧道。仅在远程节点上可用。",
"siteSeeAll": "查看所有站点", "siteSeeAll": "查看所有站点",
"siteTunnelDescription": "确定如何连接到您的网站", "siteTunnelDescription": "确定如何连接到站",
"siteNewtCredentials": "Newt 凭据", "siteNewtCredentials": "全权证书",
"siteNewtCredentialsDescription": "这是 Newt 服务器身份验证凭据", "siteNewtCredentialsDescription": "站点如何通过服务器进行身份验证",
"siteCredentialsSave": "保存您的凭据", "siteCredentialsSave": "保存证书",
"siteCredentialsSaveDescription": "您只能看到一次。请确保将其复制并保存到一个安全的地方。", "siteCredentialsSaveDescription": "您只能看到一次。请确保将其复制并保存到一个安全的地方。",
"siteInfo": "站点信息", "siteInfo": "站点信息",
"status": "状态", "status": "状态",
"shareTitle": "管理共享链接", "shareTitle": "管理共享链接",
"shareDescription": "创建可共享的链接,允许时或永久访问您的资源", "shareDescription": "创建可共享的链接,允许时或永久访问代理资源",
"shareSearch": "搜索共享链接...", "shareSearch": "搜索共享链接...",
"shareCreate": "创建共享链接", "shareCreate": "创建共享链接",
"shareErrorDelete": "删除链接失败", "shareErrorDelete": "删除链接失败",
"shareErrorDeleteMessage": "删除链接时出错", "shareErrorDeleteMessage": "删除链接时出错",
"shareDeleted": "链接已删除", "shareDeleted": "链接已删除",
"shareDeletedDescription": "链接已删除", "shareDeletedDescription": "链接已删除",
"shareTokenDescription": "您的访问令牌可以通过两种方式传递:作为查询参数或请求。 每次验证访问请求都必须从客户端传递。", "shareTokenDescription": "访问令牌可以通过两种方式传递:作为查询参数或请求标题。 每次验证访问请求都必须从客户端传递。",
"accessToken": "访问令牌", "accessToken": "访问令牌",
"usageExamples": "用法示例", "usageExamples": "用法示例",
"tokenId": "令牌 ID", "tokenId": "令牌 ID",
@@ -121,7 +121,7 @@
"importantNote": "重要提示", "importantNote": "重要提示",
"shareImportantDescription": "出于安全考虑,建议尽可能在使用请求头传递参数,因为查询参数可能会被浏览器历史记录或服务器日志记录。", "shareImportantDescription": "出于安全考虑,建议尽可能在使用请求头传递参数,因为查询参数可能会被浏览器历史记录或服务器日志记录。",
"token": "令牌", "token": "令牌",
"shareTokenSecurety": "请妥善保管您的访问令牌,不要将其暴露在公开访问的区域或客户端代码中。", "shareTokenSecurety": "保持访问令牌的安全。请不要在公开访问的区域或客户端代码中共享它。",
"shareErrorFetchResource": "获取资源失败", "shareErrorFetchResource": "获取资源失败",
"shareErrorFetchResourceDescription": "获取资源时出错", "shareErrorFetchResourceDescription": "获取资源时出错",
"shareErrorCreate": "无法创建共享链接", "shareErrorCreate": "无法创建共享链接",
@@ -131,7 +131,7 @@
"expireIn": "过期时间", "expireIn": "过期时间",
"neverExpire": "永不过期", "neverExpire": "永不过期",
"shareExpireDescription": "过期时间是链接可以使用并提供对资源的访问时间。 此时间后,链接将不再工作,使用此链接的用户将失去对资源的访问。", "shareExpireDescription": "过期时间是链接可以使用并提供对资源的访问时间。 此时间后,链接将不再工作,使用此链接的用户将失去对资源的访问。",
"shareSeeOnce": "您只能看到此链接。请确保复制它。", "shareSeeOnce": "您只能看到一次此链接。请确保复制它。",
"shareAccessHint": "任何具有此链接的人都可以访问该资源。小心地分享它。", "shareAccessHint": "任何具有此链接的人都可以访问该资源。小心地分享它。",
"shareTokenUsage": "查看访问令牌使用情况", "shareTokenUsage": "查看访问令牌使用情况",
"createLink": "创建链接", "createLink": "创建链接",
@@ -144,8 +144,10 @@
"expires": "过期时间", "expires": "过期时间",
"never": "永不过期", "never": "永不过期",
"shareErrorSelectResource": "请选择一个资源", "shareErrorSelectResource": "请选择一个资源",
"resourceTitle": "管理资源", "proxyResourceTitle": "管理公共资源",
"resourceDescription": "为您的私人应用程序创建安全代理", "proxyResourceDescription": "创建和管理可通过 Web 浏览器公开访问的资源",
"clientResourceTitle": "管理私有资源",
"clientResourceDescription": "创建和管理只能通过连接客户端访问的资源",
"resourcesSearch": "搜索资源...", "resourcesSearch": "搜索资源...",
"resourceAdd": "添加资源", "resourceAdd": "添加资源",
"resourceErrorDelte": "删除资源时出错", "resourceErrorDelte": "删除资源时出错",
@@ -155,9 +157,9 @@
"resourceMessageRemove": "一旦删除,资源将不再可访问。与该资源相关的所有目标也将被删除。", "resourceMessageRemove": "一旦删除,资源将不再可访问。与该资源相关的所有目标也将被删除。",
"resourceQuestionRemove": "您确定要从组织中删除资源吗?", "resourceQuestionRemove": "您确定要从组织中删除资源吗?",
"resourceHTTP": "HTTPS 资源", "resourceHTTP": "HTTPS 资源",
"resourceHTTPDescription": "使用子域或根域名通过 HTTPS 向您的应用程序提出代理请求。", "resourceHTTPDescription": "使用子域或基础域通过 HTTPS 请求此应用的代理请求。",
"resourceRaw": "TCP/UDP 资源", "resourceRaw": "TCP/UDP 资源",
"resourceRawDescription": "使用 TCP/UDP 使用端口号向您的应用提出代理请求。", "resourceRawDescription": "通过 TCP/UDP 使用端口号对应用程序的代理请求。只有当站点连接到节点时才能生效。",
"resourceCreate": "创建资源", "resourceCreate": "创建资源",
"resourceCreateDescription": "按照下面的步骤创建新资源", "resourceCreateDescription": "按照下面的步骤创建新资源",
"resourceSeeAll": "查看所有资源", "resourceSeeAll": "查看所有资源",
@@ -171,22 +173,22 @@
"noCountryFound": "找不到国家。", "noCountryFound": "找不到国家。",
"siteSelectionDescription": "此站点将为目标提供连接。", "siteSelectionDescription": "此站点将为目标提供连接。",
"resourceType": "资源类型", "resourceType": "资源类型",
"resourceTypeDescription": "确定如何访问您的资源", "resourceTypeDescription": "确定如何访问资源",
"resourceHTTPSSettings": "HTTPS 设置", "resourceHTTPSSettings": "HTTPS 设置",
"resourceHTTPSSettingsDescription": "配置如何通过 HTTPS 访问您的资源", "resourceHTTPSSettingsDescription": "配置如何通过 HTTPS 访问资源",
"domainType": "域类型", "domainType": "域类型",
"subdomain": "子域名", "subdomain": "子域名",
"baseDomain": "根域名", "baseDomain": "根域名",
"subdomnainDescription": "您的资源可以访问的子域。", "subdomnainDescription": "可访问资源的子域。",
"resourceRawSettings": "TCP/UDP 设置", "resourceRawSettings": "TCP/UDP 设置",
"resourceRawSettingsDescription": "配置如何通过 TCP/UDP 访问您的资源", "resourceRawSettingsDescription": "配置如何通过 TCP/UDP 访问资源",
"protocol": "协议", "protocol": "协议",
"protocolSelect": "选择协议", "protocolSelect": "选择协议",
"resourcePortNumber": "端口号", "resourcePortNumber": "端口号",
"resourcePortNumberDescription": "代理请求的外部端口号。", "resourcePortNumberDescription": "代理请求的外部端口号。",
"cancel": "取消", "cancel": "取消",
"resourceConfig": "配置片段", "resourceConfig": "配置片段",
"resourceConfigDescription": "复制并粘贴这些配置片段以设置您的 TCP/UDP 资源", "resourceConfigDescription": "复制并粘贴这些配置片段以设置 TCP/UDP 资源",
"resourceAddEntrypoints": "Traefik: 添加入口点", "resourceAddEntrypoints": "Traefik: 添加入口点",
"resourceExposePorts": "Gerbil在 Docker Compose 中显示端口", "resourceExposePorts": "Gerbil在 Docker Compose 中显示端口",
"resourceLearnRaw": "学习如何配置 TCP/UDP 资源", "resourceLearnRaw": "学习如何配置 TCP/UDP 资源",
@@ -202,14 +204,14 @@
"proxy": "代理服务器", "proxy": "代理服务器",
"internal": "内部设置", "internal": "内部设置",
"rules": "规则", "rules": "规则",
"resourceSettingDescription": "配置资源上的设置", "resourceSettingDescription": "配置资源上的设置",
"resourceSetting": "{resourceName} 设置", "resourceSetting": "{resourceName} 设置",
"alwaysAllow": "一律允许", "alwaysAllow": "旁路认证",
"alwaysDeny": "一律拒绝", "alwaysDeny": "屏蔽访问",
"passToAuth": "传递至认证", "passToAuth": "传递至认证",
"orgSettingsDescription": "配置组织的一般设置", "orgSettingsDescription": "配置组织设置",
"orgGeneralSettings": "组织设置", "orgGeneralSettings": "组织设置",
"orgGeneralSettingsDescription": "管理您的机构详细信息和配置", "orgGeneralSettingsDescription": "管理机构详细信息和配置",
"saveGeneralSettings": "保存常规设置", "saveGeneralSettings": "保存常规设置",
"saveSettings": "保存设置", "saveSettings": "保存设置",
"orgDangerZone": "危险区域", "orgDangerZone": "危险区域",
@@ -232,7 +234,7 @@
"orgMissing": "缺少组织 ID", "orgMissing": "缺少组织 ID",
"orgMissingMessage": "没有组织ID无法重新生成邀请。", "orgMissingMessage": "没有组织ID无法重新生成邀请。",
"accessUsersManage": "管理用户", "accessUsersManage": "管理用户",
"accessUsersDescription": "邀请用户并位他们添加角色以管理访问您的组织", "accessUsersDescription": "邀请和管理访问此组织的用户",
"accessUsersSearch": "搜索用户...", "accessUsersSearch": "搜索用户...",
"accessUserCreate": "创建用户", "accessUserCreate": "创建用户",
"accessUserRemove": "删除用户", "accessUserRemove": "删除用户",
@@ -241,13 +243,13 @@
"role": "角色", "role": "角色",
"nameRequired": "名称是必填项", "nameRequired": "名称是必填项",
"accessRolesManage": "管理角色", "accessRolesManage": "管理角色",
"accessRolesDescription": "配置角色来管理访问您的组织", "accessRolesDescription": "创建和管理组织中用户的角色",
"accessRolesSearch": "搜索角色...", "accessRolesSearch": "搜索角色...",
"accessRolesAdd": "添加角色", "accessRolesAdd": "添加角色",
"accessRoleDelete": "删除角色", "accessRoleDelete": "删除角色",
"description": "描述", "description": "描述",
"inviteTitle": "打开邀请", "inviteTitle": "打开邀请",
"inviteDescription": "管理您给其他用户的邀请", "inviteDescription": "管理其他用户加入机构的邀请",
"inviteSearch": "搜索邀请...", "inviteSearch": "搜索邀请...",
"minutes": "分钟", "minutes": "分钟",
"hours": "小时", "hours": "小时",
@@ -261,13 +263,13 @@
"apiKeysErrorCreate": "创建 API 密钥出错", "apiKeysErrorCreate": "创建 API 密钥出错",
"apiKeysErrorSetPermission": "设置权限出错", "apiKeysErrorSetPermission": "设置权限出错",
"apiKeysCreate": "生成 API 密钥", "apiKeysCreate": "生成 API 密钥",
"apiKeysCreateDescription": "为您的组织生成一个新的 API 密钥", "apiKeysCreateDescription": "为机构生成一个新的 API 密钥",
"apiKeysGeneralSettings": "权限", "apiKeysGeneralSettings": "权限",
"apiKeysGeneralSettingsDescription": "确定此 API 密钥可以做什么", "apiKeysGeneralSettingsDescription": "确定此 API 密钥可以做什么",
"apiKeysList": "您的 API 密钥", "apiKeysList": " API 密钥",
"apiKeysSave": "保存您的 API 密钥", "apiKeysSave": "保存 API 密钥",
"apiKeysSaveDescription": "该信息仅会显示一次,请确保将其复制到安全的位置。", "apiKeysSaveDescription": "该信息仅会显示一次,请确保将其复制到安全的位置。",
"apiKeysInfo": "您的 API 密钥是:", "apiKeysInfo": "API 密钥是:",
"apiKeysConfirmCopy": "我已复制 API 密钥", "apiKeysConfirmCopy": "我已复制 API 密钥",
"generate": "生成", "generate": "生成",
"done": "完成", "done": "完成",
@@ -424,7 +426,7 @@
"userCreated": "用户已创建", "userCreated": "用户已创建",
"userCreatedDescription": "用户已成功创建。", "userCreatedDescription": "用户已成功创建。",
"userTypeInternal": "内部用户", "userTypeInternal": "内部用户",
"userTypeInternalDescription": "邀请用户直接加入您的组织。", "userTypeInternalDescription": "邀请用户直接加入组织。",
"userTypeExternal": "外部用户", "userTypeExternal": "外部用户",
"userTypeExternalDescription": "创建一个具有外部身份提供商的用户。", "userTypeExternalDescription": "创建一个具有外部身份提供商的用户。",
"accessUserCreateDescription": "按照下面的步骤创建一个新用户", "accessUserCreateDescription": "按照下面的步骤创建一个新用户",
@@ -436,6 +438,16 @@
"inviteEmailSent": "发送邀请邮件给用户", "inviteEmailSent": "发送邀请邮件给用户",
"inviteValid": "有效", "inviteValid": "有效",
"selectDuration": "选择持续时间", "selectDuration": "选择持续时间",
"selectResource": "选择资源",
"filterByResource": "按资源过滤",
"resetFilters": "重置过滤器",
"totalBlocked": "被Pangolin阻止的请求",
"totalRequests": "总请求",
"requestsByCountry": "请求按国家",
"requestsByDay": "按日请求",
"blocked": "已阻止",
"allowed": "允许的",
"topCountries": "顶级国家",
"accessRoleSelect": "选择角色", "accessRoleSelect": "选择角色",
"inviteEmailSentDescription": "一封电子邮件已经发送给用户,带有下面的访问链接。他们必须访问该链接才能接受邀请。", "inviteEmailSentDescription": "一封电子邮件已经发送给用户,带有下面的访问链接。他们必须访问该链接才能接受邀请。",
"inviteSentDescription": "用户已被邀请。他们必须访问下面的链接才能接受邀请。", "inviteSentDescription": "用户已被邀请。他们必须访问下面的链接才能接受邀请。",
@@ -458,13 +470,13 @@
"accessControlsSubmit": "保存访问控制", "accessControlsSubmit": "保存访问控制",
"roles": "角色", "roles": "角色",
"accessUsersRoles": "管理用户和角色", "accessUsersRoles": "管理用户和角色",
"accessUsersRolesDescription": "邀请用户并将他们添加到角色管理访问您的组织", "accessUsersRolesDescription": "邀请用户加入角色管理访问组织",
"key": "关键字", "key": "关键字",
"createdAt": "创建于", "createdAt": "创建于",
"proxyErrorInvalidHeader": "无效的自定义主机头值。使用域名格式,或将空保存为取消自定义主机头。", "proxyErrorInvalidHeader": "无效的自定义主机头值。使用域名格式,或将空保存为取消自定义主机头。",
"proxyErrorTls": "无效的 TLS 服务器名称。使用域名格式,或保存空以删除 TLS 服务器名称。", "proxyErrorTls": "无效的 TLS 服务器名称。使用域名格式,或保存空以删除 TLS 服务器名称。",
"proxyEnableSSL": "启用 SSL", "proxyEnableSSL": "启用 SSL",
"proxyEnableSSLDescription": "启用 SSL/TLS 加密以确保目标的 HTTPS 连接。", "proxyEnableSSLDescription": "启用 SSL/TLS 加密以确保目标的 HTTPS 连接。",
"target": "Target", "target": "Target",
"configureTarget": "配置目标", "configureTarget": "配置目标",
"targetErrorFetch": "获取目标失败", "targetErrorFetch": "获取目标失败",
@@ -480,14 +492,14 @@
"targetsErrorUpdate": "更新目标失败", "targetsErrorUpdate": "更新目标失败",
"targetsErrorUpdateDescription": "更新目标时出错", "targetsErrorUpdateDescription": "更新目标时出错",
"targetTlsUpdate": "TLS 设置已更新", "targetTlsUpdate": "TLS 设置已更新",
"targetTlsUpdateDescription": "您的 TLS 设置已成功更新", "targetTlsUpdateDescription": "已成功更新 TLS 设置",
"targetErrorTlsUpdate": "更新 TLS 设置失败", "targetErrorTlsUpdate": "更新 TLS 设置失败",
"targetErrorTlsUpdateDescription": "更新 TLS 设置时出错", "targetErrorTlsUpdateDescription": "更新 TLS 设置时出错",
"proxyUpdated": "代理设置已更新", "proxyUpdated": "代理设置已更新",
"proxyUpdatedDescription": "您的代理设置已成功更新", "proxyUpdatedDescription": "已成功更新代理设置",
"proxyErrorUpdate": "更新代理设置失败", "proxyErrorUpdate": "更新代理设置失败",
"proxyErrorUpdateDescription": "更新代理设置时出错", "proxyErrorUpdateDescription": "更新代理设置时出错",
"targetAddr": "IP / 域名", "targetAddr": "主机",
"targetPort": "端口", "targetPort": "端口",
"targetProtocol": "协议", "targetProtocol": "协议",
"targetTlsSettings": "安全连接配置", "targetTlsSettings": "安全连接配置",
@@ -497,12 +509,12 @@
"targetTlsSniDescription": "SNI使用的 TLS 服务器名称。留空使用默认值。", "targetTlsSniDescription": "SNI使用的 TLS 服务器名称。留空使用默认值。",
"targetTlsSubmit": "保存设置", "targetTlsSubmit": "保存设置",
"targets": "目标配置", "targets": "目标配置",
"targetsDescription": "设置目标路由流量到您的后端服务", "targetsDescription": "设置目标路由流量到后端服务",
"targetStickySessions": "启用置顶会话", "targetStickySessions": "启用置顶会话",
"targetStickySessionsDescription": "将连接保持在同一个后端目标的整个会话中。", "targetStickySessionsDescription": "将连接保持在同一个后端目标的整个会话中。",
"methodSelect": "选择方法", "methodSelect": "选择方法",
"targetSubmit": "添加目标", "targetSubmit": "添加目标",
"targetNoOne": "此资源没有任何目标。添加目标来配置向后端发送请求的位置。", "targetNoOne": "此资源没有任何目标。添加目标来配置向后端发送请求的位置。",
"targetNoOneDescription": "在上面添加多个目标将启用负载平衡。", "targetNoOneDescription": "在上面添加多个目标将启用负载平衡。",
"targetsSubmit": "保存目标", "targetsSubmit": "保存目标",
"addTarget": "添加目标", "addTarget": "添加目标",
@@ -516,9 +528,11 @@
"targetCreatedDescription": "目标已成功创建", "targetCreatedDescription": "目标已成功创建",
"targetErrorCreate": "创建目标失败", "targetErrorCreate": "创建目标失败",
"targetErrorCreateDescription": "创建目标时出错", "targetErrorCreateDescription": "创建目标时出错",
"tlsServerName": "TLS 服务器名称",
"tlsServerNameDescription": "SNI使用的 TLS 服务器名称",
"save": "保存", "save": "保存",
"proxyAdditional": "附加代理设置", "proxyAdditional": "附加代理设置",
"proxyAdditionalDescription": "配置你的资源如何处理代理设置", "proxyAdditionalDescription": "配置资源如何处理代理设置",
"proxyCustomHeader": "自定义主机标题", "proxyCustomHeader": "自定义主机标题",
"proxyCustomHeaderDescription": "代理请求时设置的主机头。留空则使用默认值。", "proxyCustomHeaderDescription": "代理请求时设置的主机头。留空则使用默认值。",
"proxyAdditionalSubmit": "保存代理设置", "proxyAdditionalSubmit": "保存代理设置",
@@ -558,7 +572,7 @@
"rulesMatchType": "匹配类型", "rulesMatchType": "匹配类型",
"value": "值", "value": "值",
"rulesAbout": "关于规则", "rulesAbout": "关于规则",
"rulesAboutDescription": "规则使您能够依据特定条件控制资源访问权限。您可以创建基于 IP 地址或 URL 路径的规则,以允许或拒绝访问。", "rulesAboutDescription": "规则允许您根据一组标准控制资源访问。 您可以创建规则允许或拒绝基于IP地址或 URL 路径的访问。",
"rulesActions": "行动", "rulesActions": "行动",
"rulesActionAlwaysAllow": "总是允许:绕过所有身份验证方法", "rulesActionAlwaysAllow": "总是允许:绕过所有身份验证方法",
"rulesActionAlwaysDeny": "总是拒绝:阻止所有请求;无法尝试验证", "rulesActionAlwaysDeny": "总是拒绝:阻止所有请求;无法尝试验证",
@@ -570,7 +584,7 @@
"rulesEnable": "启用规则", "rulesEnable": "启用规则",
"rulesEnableDescription": "启用或禁用此资源的规则评估", "rulesEnableDescription": "启用或禁用此资源的规则评估",
"rulesResource": "资源规则配置", "rulesResource": "资源规则配置",
"rulesResourceDescription": "配置规则来控制对资源的访问", "rulesResourceDescription": "配置规则来控制对资源的访问",
"ruleSubmit": "添加规则", "ruleSubmit": "添加规则",
"rulesNoOne": "没有规则。使用表单添加规则。", "rulesNoOne": "没有规则。使用表单添加规则。",
"rulesOrder": "规则按优先顺序评定。", "rulesOrder": "规则按优先顺序评定。",
@@ -586,7 +600,7 @@
"none": "无", "none": "无",
"unknown": "未知", "unknown": "未知",
"resources": "资源", "resources": "资源",
"resourcesDescription": "资源是您私有网络运行的应用程序的代理。您可以为私有网络中的任何 HTTP/HTTPS 或 TCP/UDP 服务创建资源。每个资源必须连接到一个站点,以通过加密的 WireGuard 隧道实现私密安全连接。", "resourcesDescription": "资源是在私人网络运行的应用程序的代理。在您的私人网络上为任意HTTP/HTTPS或raw TCP/UDP服务创建资源。 每个资源必须连接到一个站点,以便通过加密的 WireGuard 隧道启用私密安全连接。",
"resourcesWireGuardConnect": "采用 WireGuard 提供的加密安全连接", "resourcesWireGuardConnect": "采用 WireGuard 提供的加密安全连接",
"resourcesMultipleAuthenticationMethods": "配置多个身份验证方法", "resourcesMultipleAuthenticationMethods": "配置多个身份验证方法",
"resourcesUsersRolesAccess": "基于用户和角色的访问控制", "resourcesUsersRolesAccess": "基于用户和角色的访问控制",
@@ -597,7 +611,7 @@
"resourceSelect": "选择资源", "resourceSelect": "选择资源",
"shareLinks": "分享链接", "shareLinks": "分享链接",
"share": "分享链接", "share": "分享链接",
"shareDescription2": "创建资源共享链接。链接提供资源的临时或无限制访问。 当您创建链接时,您可以配置链接的到期时间。", "shareDescription2": "创建资源的可共享链接。链接提供了对您资源的临时或无限制访问。 当您创建链接时,您可以配置链接的到期时间。",
"shareEasyCreate": "轻松创建和分享", "shareEasyCreate": "轻松创建和分享",
"shareConfigurableExpirationDuration": "可配置的过期时间", "shareConfigurableExpirationDuration": "可配置的过期时间",
"shareSecureAndRevocable": "安全和可撤销的", "shareSecureAndRevocable": "安全和可撤销的",
@@ -607,19 +621,19 @@
"unknownCommand": "未知命令", "unknownCommand": "未知命令",
"newtErrorFetchReleases": "无法获取版本信息: {err}", "newtErrorFetchReleases": "无法获取版本信息: {err}",
"newtErrorFetchLatest": "无法获取最新版信息: {err}", "newtErrorFetchLatest": "无法获取最新版信息: {err}",
"newtEndpoint": "Newt 端点", "newtEndpoint": "Endpoint",
"newtId": "Newt ID", "newtId": "ID",
"newtSecretKey": "Newt 私钥", "newtSecretKey": "钥",
"architecture": "架构", "architecture": "架构",
"sites": "站点", "sites": "站点",
"siteWgAnyClients": "使用任何 WireGuard 客户端连接。您必须使用对等IP解决您的内部资源。", "siteWgAnyClients": "使用任何 WireGuard 客户端连接。您必须使用对等IP解决内部资源问题。",
"siteWgCompatibleAllClients": "与所有WireGuard客户端兼容", "siteWgCompatibleAllClients": "与所有WireGuard客户端兼容",
"siteWgManualConfigurationRequired": "需要手动配置", "siteWgManualConfigurationRequired": "需要手动配置",
"userErrorNotAdminOrOwner": "用户不是管理员或所有者", "userErrorNotAdminOrOwner": "用户不是管理员或所有者",
"pangolinSettings": "设置 - Pangolin", "pangolinSettings": "设置 - Pangolin",
"accessRoleYour": "您的角色:", "accessRoleYour": "您的角色:",
"accessRoleSelect2": "选择角色", "accessRoleSelect2": "选择角色",
"accessUserSelect": "选择一个用户", "accessUserSelect": "选择用户",
"otpEmailEnter": "输入电子邮件", "otpEmailEnter": "输入电子邮件",
"otpEmailEnterDescription": "在输入字段输入后按回车键添加电子邮件。", "otpEmailEnterDescription": "在输入字段输入后按回车键添加电子邮件。",
"otpEmailErrorInvalid": "无效的邮箱地址。通配符(*)必须占据整个开头部分。", "otpEmailErrorInvalid": "无效的邮箱地址。通配符(*)必须占据整个开头部分。",
@@ -671,7 +685,7 @@
"resourcePincodeSetupTitle": "设置 PIN 码", "resourcePincodeSetupTitle": "设置 PIN 码",
"resourcePincodeSetupTitleDescription": "设置 PIN 码来保护此资源", "resourcePincodeSetupTitleDescription": "设置 PIN 码来保护此资源",
"resourceRoleDescription": "管理员总是可以访问此资源。", "resourceRoleDescription": "管理员总是可以访问此资源。",
"resourceUsersRoles": "用户和角色", "resourceUsersRoles": "访问控制",
"resourceUsersRolesDescription": "配置用户和角色可以访问此资源", "resourceUsersRolesDescription": "配置用户和角色可以访问此资源",
"resourceUsersRolesSubmit": "保存用户和角色", "resourceUsersRolesSubmit": "保存用户和角色",
"resourceWhitelistSave": "保存成功", "resourceWhitelistSave": "保存成功",
@@ -702,6 +716,7 @@
"resourceTransferSubmit": "转移资源", "resourceTransferSubmit": "转移资源",
"siteDestination": "目标站点", "siteDestination": "目标站点",
"searchSites": "搜索站点", "searchSites": "搜索站点",
"countries": "国家",
"accessRoleCreate": "创建角色", "accessRoleCreate": "创建角色",
"accessRoleCreateDescription": "创建一个新角色来分组用户并管理他们的权限。", "accessRoleCreateDescription": "创建一个新角色来分组用户并管理他们的权限。",
"accessRoleCreateSubmit": "创建角色", "accessRoleCreateSubmit": "创建角色",
@@ -766,7 +781,7 @@
"idpOidcConfigure": "OAuth2/OIDC 配置", "idpOidcConfigure": "OAuth2/OIDC 配置",
"idpOidcConfigureDescription": "配置 OAuth2/OIDC 供应商端点和凭据", "idpOidcConfigureDescription": "配置 OAuth2/OIDC 供应商端点和凭据",
"idpClientId": "客户端ID", "idpClientId": "客户端ID",
"idpClientIdDescription": "来自身份提供商的 OAuth2 客户端 ID", "idpClientIdDescription": "来自身份提供商的 OAuth2 客户端 ID",
"idpClientSecret": "客户端密钥", "idpClientSecret": "客户端密钥",
"idpClientSecretDescription": "来自身份提供商的 OAuth2 客户端密钥", "idpClientSecretDescription": "来自身份提供商的 OAuth2 客户端密钥",
"idpAuthUrl": "授权 URL", "idpAuthUrl": "授权 URL",
@@ -774,7 +789,7 @@
"idpTokenUrl": "令牌 URL", "idpTokenUrl": "令牌 URL",
"idpTokenUrlDescription": "OAuth2 令牌端点的 URL", "idpTokenUrlDescription": "OAuth2 令牌端点的 URL",
"idpOidcConfigureAlert": "重要提示", "idpOidcConfigureAlert": "重要提示",
"idpOidcConfigureAlertDescription": "创建身份提供后,您需要在设置中配置回调 URL。回调 URL 会在创建成功后提供。", "idpOidcConfigureAlertDescription": "创建身份提供后,您需要在身份提供商的设置中配置回调URL。 成功创建后将提供回调URL。",
"idpToken": "令牌配置", "idpToken": "令牌配置",
"idpTokenDescription": "配置如何从 ID 令牌中提取用户信息", "idpTokenDescription": "配置如何从 ID 令牌中提取用户信息",
"idpJmespathAbout": "关于 JMESPath", "idpJmespathAbout": "关于 JMESPath",
@@ -826,7 +841,7 @@
"idpUpdatedDescription": "身份提供商更新成功", "idpUpdatedDescription": "身份提供商更新成功",
"redirectUrl": "重定向网址", "redirectUrl": "重定向网址",
"redirectUrlAbout": "关于重定向网址", "redirectUrlAbout": "关于重定向网址",
"redirectUrlAboutDescription": "这是用户在验证后将被重定向到的URL。您需要在身份提供设置中配置此URL。", "redirectUrlAboutDescription": "这是用户在验证后将被重定向到的URL。您需要在身份提供者的设置中配置此URL。",
"pangolinAuth": "认证 - Pangolin", "pangolinAuth": "认证 - Pangolin",
"verificationCodeLengthRequirements": "您的验证码必须是8个字符。", "verificationCodeLengthRequirements": "您的验证码必须是8个字符。",
"errorOccurred": "发生错误", "errorOccurred": "发生错误",
@@ -909,6 +924,10 @@
"passwordResetSent": "我们将发送一个验证码到这个电子邮件地址。", "passwordResetSent": "我们将发送一个验证码到这个电子邮件地址。",
"passwordResetCode": "验证码", "passwordResetCode": "验证码",
"passwordResetCodeDescription": "请检查您的电子邮件以获取验证码。", "passwordResetCodeDescription": "请检查您的电子邮件以获取验证码。",
"generatePasswordResetCode": "生成密码重置代码",
"passwordResetCodeGenerated": "密码重置代码已生成",
"passwordResetCodeGeneratedDescription": "与用户分享此代码。他们可以用它来重置他们的密码。",
"passwordResetUrl": "Reset URL",
"passwordNew": "新密码", "passwordNew": "新密码",
"passwordNewConfirm": "确认新密码", "passwordNewConfirm": "确认新密码",
"changePassword": "更改密码", "changePassword": "更改密码",
@@ -926,6 +945,9 @@
"pincodeAuth": "验证器代码", "pincodeAuth": "验证器代码",
"pincodeSubmit2": "提交代码", "pincodeSubmit2": "提交代码",
"passwordResetSubmit": "请求重置", "passwordResetSubmit": "请求重置",
"passwordResetAlreadyHaveCode": "输入密码重置码",
"passwordResetSmtpRequired": "请联系您的管理员",
"passwordResetSmtpRequiredDescription": "需要密码重置密码。请联系您的管理员寻求帮助。",
"passwordBack": "回到密码", "passwordBack": "回到密码",
"loginBack": "返回登录", "loginBack": "返回登录",
"signup": "注册", "signup": "注册",
@@ -1091,12 +1113,15 @@
"actionListSiteResources": "列出站点资源", "actionListSiteResources": "列出站点资源",
"actionUpdateSiteResource": "更新站点资源", "actionUpdateSiteResource": "更新站点资源",
"actionListInvitations": "邀请列表", "actionListInvitations": "邀请列表",
"actionExportLogs": "导出日志",
"actionViewLogs": "查看日志",
"noneSelected": "未选择", "noneSelected": "未选择",
"orgNotFound2": "未找到组织。", "orgNotFound2": "未找到组织。",
"searchProgress": "搜索中...", "searchProgress": "搜索中...",
"create": "创建", "create": "创建",
"orgs": "组织", "orgs": "组织",
"loginError": "登录时出错", "loginError": "登录时出错",
"loginRequiredForDevice": "需要登录才能验证您的设备。",
"passwordForgot": "忘记密码?", "passwordForgot": "忘记密码?",
"otpAuth": "两步验证", "otpAuth": "两步验证",
"otpAuthDescription": "从您的身份验证程序中输入代码或您的单次备份代码。", "otpAuthDescription": "从您的身份验证程序中输入代码或您的单次备份代码。",
@@ -1151,37 +1176,47 @@
"sidebarHome": "首页", "sidebarHome": "首页",
"sidebarSites": "站点", "sidebarSites": "站点",
"sidebarResources": "资源", "sidebarResources": "资源",
"sidebarProxyResources": "公开的",
"sidebarClientResources": "非公开的",
"sidebarAccessControl": "访问控制", "sidebarAccessControl": "访问控制",
"sidebarLogsAndAnalytics": "日志与分析",
"sidebarUsers": "用户", "sidebarUsers": "用户",
"sidebarAdmin": "管理员",
"sidebarInvitations": "邀请", "sidebarInvitations": "邀请",
"sidebarRoles": "角色", "sidebarRoles": "角色",
"sidebarShareableLinks": "分享链接", "sidebarShareableLinks": "链接",
"sidebarApiKeys": "API密钥", "sidebarApiKeys": "API密钥",
"sidebarSettings": "设置", "sidebarSettings": "设置",
"sidebarAllUsers": "所有用户", "sidebarAllUsers": "所有用户",
"sidebarIdentityProviders": "身份提供商", "sidebarIdentityProviders": "身份提供商",
"sidebarLicense": "证书", "sidebarLicense": "证书",
"sidebarClients": "客户端", "sidebarClients": "客户端",
"sidebarUserDevices": "用户",
"sidebarMachineClients": "机",
"sidebarDomains": "域", "sidebarDomains": "域",
"sidebarGeneral": "概览",
"sidebarLogAndAnalytics": "日志与分析",
"sidebarBluePrints": "蓝图", "sidebarBluePrints": "蓝图",
"sidebarOrganization": "组织",
"sidebarLogsAnalytics": "分析",
"blueprints": "蓝图", "blueprints": "蓝图",
"blueprintsDescription": "蓝图是用于定义资源及其设置的 YAML 声明配置", "blueprintsDescription": "应用声明配置并查看先前运行的",
"blueprintAdd": "添加蓝图", "blueprintAdd": "添加蓝图",
"blueprintGoBack": "查看所有蓝图", "blueprintGoBack": "查看所有蓝图",
"blueprintCreate": "创建蓝图", "blueprintCreate": "创建蓝图",
"blueprintCreateDescription2": "按照下面的步骤创建和应用新的蓝图", "blueprintCreateDescription2": "按照下面的步骤创建和应用新的蓝图",
"blueprintDetails": "蓝图详细信息", "blueprintDetails": "蓝图详细信息",
"blueprintDetailsDescription": "查看蓝图运行详情", "blueprintDetailsDescription": "查看应用蓝图的结果和发生的任何错误",
"blueprintInfo": "蓝图信息", "blueprintInfo": "蓝图信息",
"message": "留言", "message": "留言",
"blueprintContentsDescription": "定义描述基础设施的 YAML 内容", "blueprintContentsDescription": "定义描述基础设施的 YAML 内容",
"blueprintErrorCreateDescription": "应用蓝图时出错", "blueprintErrorCreateDescription": "应用蓝图时出错",
"blueprintErrorCreate": "创建蓝图时出错", "blueprintErrorCreate": "创建蓝图时出错",
"searchBlueprintProgress": "搜索蓝图...", "searchBlueprintProgress": "搜索蓝图...",
"appliedAt": "应用于", "appliedAt": "应用于",
"source": "来源", "source": "来源",
"contents": "目录", "contents": "目录",
"parsedContents": "解析内容", "parsedContents": "解析内容 (只读)",
"enableDockerSocket": "启用 Docker 蓝图", "enableDockerSocket": "启用 Docker 蓝图",
"enableDockerSocketDescription": "启用 Docker Socket 标签擦除蓝图标签。套接字路径必须提供给新的。", "enableDockerSocketDescription": "启用 Docker Socket 标签擦除蓝图标签。套接字路径必须提供给新的。",
"enableDockerSocketLink": "了解更多", "enableDockerSocketLink": "了解更多",
@@ -1230,15 +1265,15 @@
"loading": "加载中", "loading": "加载中",
"restart": "重启", "restart": "重启",
"domains": "域", "domains": "域",
"domainsDescription": "管理您的组织域", "domainsDescription": "创建和管理组织中可用的域",
"domainsSearch": "搜索域...", "domainsSearch": "搜索域...",
"domainAdd": "添加域", "domainAdd": "添加域",
"domainAddDescription": "在您的组织中注册新域", "domainAddDescription": "注册一个新域名到组织",
"domainCreate": "创建域", "domainCreate": "创建域",
"domainCreatedDescription": "域创建成功", "domainCreatedDescription": "域创建成功",
"domainDeletedDescription": "成功删除域", "domainDeletedDescription": "成功删除域",
"domainQuestionRemove": "您确定要从您的帐户中删除域名吗?", "domainQuestionRemove": "您确定要删除域名吗?",
"domainMessageRemove": "移除后,该域将不再与您的账户关联。", "domainMessageRemove": "一旦删除,域将不再与组织相关联。",
"domainConfirmDelete": "确认删除域", "domainConfirmDelete": "确认删除域",
"domainDelete": "删除域", "domainDelete": "删除域",
"domain": "域", "domain": "域",
@@ -1257,7 +1292,7 @@
"pending": "待定", "pending": "待定",
"sidebarBilling": "计费", "sidebarBilling": "计费",
"billing": "计费", "billing": "计费",
"orgBillingDescription": "管理您的账单信息和订阅", "orgBillingDescription": "管理账单信息和订阅",
"github": "GitHub", "github": "GitHub",
"pangolinHosted": "Pangolin 托管", "pangolinHosted": "Pangolin 托管",
"fossorial": "Fossorial", "fossorial": "Fossorial",
@@ -1279,6 +1314,15 @@
"settingsErrorUpdateDescription": "更新设置时发生错误", "settingsErrorUpdateDescription": "更新设置时发生错误",
"sidebarCollapse": "折叠", "sidebarCollapse": "折叠",
"sidebarExpand": "展开", "sidebarExpand": "展开",
"productUpdateMoreInfo": "{noOfUpdates} 个更新",
"productUpdateInfo": "{noOfUpdates} 个更新",
"productUpdateWhatsNew": "新功能",
"productUpdateTitle": "产品更新",
"productUpdateEmpty": "无更新",
"dismissAll": "关闭所有",
"pangolinUpdateAvailable": "可用更新",
"pangolinUpdateAvailableInfo": "版本 {version} 已准备就绪",
"pangolinUpdateAvailableReleaseNotes": "查看发布说明",
"newtUpdateAvailable": "更新可用", "newtUpdateAvailable": "更新可用",
"newtUpdateAvailableInfo": "新版本的 Newt 已可用。请更新到最新版本以获得最佳体验。", "newtUpdateAvailableInfo": "新版本的 Newt 已可用。请更新到最新版本以获得最佳体验。",
"domainPickerEnterDomain": "域名", "domainPickerEnterDomain": "域名",
@@ -1291,7 +1335,7 @@
"domainPickerSortAsc": "A-Z", "domainPickerSortAsc": "A-Z",
"domainPickerSortDesc": "Z-A", "domainPickerSortDesc": "Z-A",
"domainPickerCheckingAvailability": "检查可用性...", "domainPickerCheckingAvailability": "检查可用性...",
"domainPickerNoMatchingDomains": "未找到匹配的域。尝试不同的域或检查组织的域设置。", "domainPickerNoMatchingDomains": "未找到匹配的域。尝试不同的域或检查组织的域设置。",
"domainPickerOrganizationDomains": "组织域", "domainPickerOrganizationDomains": "组织域",
"domainPickerProvidedDomains": "提供的域", "domainPickerProvidedDomains": "提供的域",
"domainPickerSubdomain": "子域:{subdomain}", "domainPickerSubdomain": "子域:{subdomain}",
@@ -1325,7 +1369,7 @@
"billingModifySubscription": "修改订阅", "billingModifySubscription": "修改订阅",
"billingStartSubscription": "开始订阅", "billingStartSubscription": "开始订阅",
"billingRecurringCharge": "周期性收费", "billingRecurringCharge": "周期性收费",
"billingManageSubscriptionSettings": "管理您的订阅设置和偏好", "billingManageSubscriptionSettings": "管理订阅设置和首选项",
"billingNoActiveSubscription": "您没有活跃的订阅。开始订阅以增加使用限制。", "billingNoActiveSubscription": "您没有活跃的订阅。开始订阅以增加使用限制。",
"billingFailedToLoadSubscription": "无法加载订阅", "billingFailedToLoadSubscription": "无法加载订阅",
"billingFailedToLoadUsage": "无法加载使用情况", "billingFailedToLoadUsage": "无法加载使用情况",
@@ -1336,9 +1380,9 @@
"billingPortalError": "门户错误", "billingPortalError": "门户错误",
"billingDataUsageInfo": "当连接到云端时,您将为通过安全隧道传输的所有数据收取费用。 这包括您所有站点的进出流量。 当您达到上限时,您的站点将断开连接,直到您升级计划或减少使用。使用节点时不收取数据。", "billingDataUsageInfo": "当连接到云端时,您将为通过安全隧道传输的所有数据收取费用。 这包括您所有站点的进出流量。 当您达到上限时,您的站点将断开连接,直到您升级计划或减少使用。使用节点时不收取数据。",
"billingOnlineTimeInfo": "您要根据您的网站连接到云端的时间长短收取费用。 例如44,640分钟等于一个24/7全月运行的网站。 当您达到上限时,您的站点将断开连接,直到您升级计划或减少使用。使用节点时不收取费用。", "billingOnlineTimeInfo": "您要根据您的网站连接到云端的时间长短收取费用。 例如44,640分钟等于一个24/7全月运行的网站。 当您达到上限时,您的站点将断开连接,直到您升级计划或减少使用。使用节点时不收取费用。",
"billingUsersInfo": "根据您组织中活跃用户数量收费。按日计算账单。", "billingUsersInfo": "您为组织中的每个用户收取费用。每日计费是根据您组织中活跃用户帐户的数量计算的。",
"billingDomainInfo": "根据组织中活跃域的数量收费。按日计算账单。", "billingDomainInfo": "您在组织中的每个域都要收取费用。每日计费是根据组织中的活动域帐户数计算的。",
"billingRemoteExitNodesInfo": "根据您组织中已管理节点的数量收费。按日计算账单。", "billingRemoteExitNodesInfo": "您为组织中的每个管理节点收取费用。计费是每日根据您组织中活跃的管理节点数计算的。",
"domainNotFound": "域未找到", "domainNotFound": "域未找到",
"domainNotFoundDescription": "此资源已禁用,因为该域不再在我们的系统中存在。请为此资源设置一个新域。", "domainNotFoundDescription": "此资源已禁用,因为该域不再在我们的系统中存在。请为此资源设置一个新域。",
"failed": "失败", "failed": "失败",
@@ -1421,29 +1465,32 @@
"and": "和", "and": "和",
"privacyPolicy": "隐私政策" "privacyPolicy": "隐私政策"
}, },
"signUpMarketing": {
"keepMeInTheLoop": "通过电子邮件让我在循环中保持新闻、更新和新功能。"
},
"siteRequired": "需要站点。", "siteRequired": "需要站点。",
"olmTunnel": "Olm 隧道", "olmTunnel": "Olm 隧道",
"olmTunnelDescription": "使用 Olm 进行客户端连接", "olmTunnelDescription": "使用 Olm 进行客户端连接",
"errorCreatingClient": "创建客户端出错", "errorCreatingClient": "创建客户端出错",
"clientDefaultsNotFound": "未找到客户端默认值", "clientDefaultsNotFound": "未找到客户端默认值",
"createClient": "创建客户端", "createClient": "创建客户端",
"createClientDescription": "创建一个新客户端来连接您的站点", "createClientDescription": "创建一个新客户端来访问私有资源",
"seeAllClients": "查看所有客户端", "seeAllClients": "查看所有客户端",
"clientInformation": "客户端信息", "clientInformation": "客户端信息",
"clientNamePlaceholder": "客户端名称", "clientNamePlaceholder": "客户端名称",
"address": "地址", "address": "地址",
"subnetPlaceholder": "子网", "subnetPlaceholder": "子网",
"addressDescription": "客户端将用于连接的地址", "addressDescription": "客户的内部地址。必须属于组织的子网。",
"selectSites": "选择站点", "selectSites": "选择站点",
"sitesDescription": "客户端将与所选站点进行连接", "sitesDescription": "客户端将与所选站点进行连接",
"clientInstallOlm": "安装 Olm", "clientInstallOlm": "安装 Olm",
"clientInstallOlmDescription": "在您的系统上运行 Olm", "clientInstallOlmDescription": "在您的系统上运行 Olm",
"clientOlmCredentials": "Olm 凭据", "clientOlmCredentials": "全权证书",
"clientOlmCredentialsDescription": "这是 Olm 服务器身份验证方式", "clientOlmCredentialsDescription": "这是客户端如何通过服务器进行身份验证",
"olmEndpoint": "Olm 端点", "olmEndpoint": "Endpoint",
"olmId": "Olm ID", "olmId": "ID",
"olmSecretKey": "Olm 私钥", "olmSecretKey": "钥",
"clientCredentialsSave": "保存您的凭据", "clientCredentialsSave": "保存证书",
"clientCredentialsSaveDescription": "该信息仅会显示一次,请确保将其复制到安全位置。", "clientCredentialsSaveDescription": "该信息仅会显示一次,请确保将其复制到安全位置。",
"generalSettingsDescription": "配置此客户端的常规设置", "generalSettingsDescription": "配置此客户端的常规设置",
"clientUpdated": "客户端已更新", "clientUpdated": "客户端已更新",
@@ -1454,9 +1501,7 @@
"sitesFetchError": "获取站点时出错。", "sitesFetchError": "获取站点时出错。",
"olmErrorFetchReleases": "获取 Olm 发布版本时出错。", "olmErrorFetchReleases": "获取 Olm 发布版本时出错。",
"olmErrorFetchLatest": "获取最新 Olm 发布版本时出错。", "olmErrorFetchLatest": "获取最新 Olm 发布版本时出错。",
"remoteSubnets": "远程子网",
"enterCidrRange": "输入 CIDR 范围", "enterCidrRange": "输入 CIDR 范围",
"remoteSubnetsDescription": "添加可以通过客户端远程访问该站点的CIDR范围。使用类似10.0.0.0/24的格式。这仅适用于VPN客户端连接。",
"resourceEnableProxy": "启用公共代理", "resourceEnableProxy": "启用公共代理",
"resourceEnableProxyDescription": "启用到此资源的公共代理。这允许外部网络通过开放端口访问资源。需要 Traefik 配置。", "resourceEnableProxyDescription": "启用到此资源的公共代理。这允许外部网络通过开放端口访问资源。需要 Traefik 配置。",
"externalProxyEnabled": "外部代理已启用", "externalProxyEnabled": "外部代理已启用",
@@ -1474,14 +1519,15 @@
"enableHealthChecksDescription": "监视此目标的健康状况。如果需要,您可以监视一个不同的终点。", "enableHealthChecksDescription": "监视此目标的健康状况。如果需要,您可以监视一个不同的终点。",
"healthScheme": "方法", "healthScheme": "方法",
"healthSelectScheme": "选择方法", "healthSelectScheme": "选择方法",
"healthCheckPortInvalid": "健康检查端口必须介于 1 到 65535 之间",
"healthCheckPath": "路径", "healthCheckPath": "路径",
"healthHostname": "IP / 主机", "healthHostname": "IP / 主机",
"healthPort": "端口", "healthPort": "端口",
"healthCheckPathDescription": "用于检查健康状态的路径。", "healthCheckPathDescription": "用于检查健康状态的路径。",
"healthyIntervalSeconds": "正常间隔", "healthyIntervalSeconds": "健康间隔(秒)",
"unhealthyIntervalSeconds": "不正常间隔", "unhealthyIntervalSeconds": "不健康间隔 (秒)",
"IntervalSeconds": "正常间隔", "IntervalSeconds": "正常间隔",
"timeoutSeconds": "超时", "timeoutSeconds": "超时(秒)",
"timeIsInSeconds": "时间以秒为单位", "timeIsInSeconds": "时间以秒为单位",
"retryAttempts": "重试次数", "retryAttempts": "重试次数",
"expectedResponseCodes": "期望响应代码", "expectedResponseCodes": "期望响应代码",
@@ -1517,16 +1563,22 @@
"resourceEditDomain": "编辑域名", "resourceEditDomain": "编辑域名",
"siteName": "站点名称", "siteName": "站点名称",
"proxyPort": "端口", "proxyPort": "端口",
"resourcesTableProxyResources": "代理资源", "resourcesTableProxyResources": "公开的",
"resourcesTableClientResources": "客户端资源", "resourcesTableClientResources": "非公开的",
"resourcesTableNoProxyResourcesFound": "未找到代理资源。", "resourcesTableNoProxyResourcesFound": "未找到代理资源。",
"resourcesTableNoInternalResourcesFound": "未找到内部资源。", "resourcesTableNoInternalResourcesFound": "未找到内部资源。",
"resourcesTableDestination": "目标", "resourcesTableDestination": "目标",
"resourcesTableTheseResourcesForUseWith": "这些资源供...使用", "resourcesTableAlias": "Alias",
"resourcesTableClients": "客户端", "resourcesTableClients": "客户端",
"resourcesTableAndOnlyAccessibleInternally": "且仅在与客户端连接时可内部访问。", "resourcesTableAndOnlyAccessibleInternally": "且仅在与客户端连接时可内部访问。",
"editInternalResourceDialogEditClientResource": "编辑客户端资源", "resourcesTableNoTargets": "没有目标",
"editInternalResourceDialogUpdateResourceProperties": "更新{resourceName}的资源属性和目标配置。", "resourcesTableHealthy": "健康的",
"resourcesTableDegraded": "降级",
"resourcesTableOffline": "离线的",
"resourcesTableUnknown": "未知的",
"resourcesTableNotMonitored": "未监视的",
"editInternalResourceDialogEditClientResource": "编辑私有资源",
"editInternalResourceDialogUpdateResourceProperties": "更新{resourceName}的资源配置和访问控制。",
"editInternalResourceDialogResourceProperties": "资源属性", "editInternalResourceDialogResourceProperties": "资源属性",
"editInternalResourceDialogName": "名称", "editInternalResourceDialogName": "名称",
"editInternalResourceDialogProtocol": "协议", "editInternalResourceDialogProtocol": "协议",
@@ -1545,11 +1597,22 @@
"editInternalResourceDialogInvalidIPAddressFormat": "无效的IP地址格式", "editInternalResourceDialogInvalidIPAddressFormat": "无效的IP地址格式",
"editInternalResourceDialogDestinationPortMin": "目标端口必须至少为1", "editInternalResourceDialogDestinationPortMin": "目标端口必须至少为1",
"editInternalResourceDialogDestinationPortMax": "目标端口必须小于65536", "editInternalResourceDialogDestinationPortMax": "目标端口必须小于65536",
"editInternalResourceDialogPortModeRequired": "端口模式需要协议、代理端口和目的端口",
"editInternalResourceDialogMode": "模式",
"editInternalResourceDialogModePort": "端口",
"editInternalResourceDialogModeHost": "主机",
"editInternalResourceDialogModeCidr": "CIDR",
"editInternalResourceDialogDestination": "目标",
"editInternalResourceDialogDestinationHostDescription": "站点网络上资源的 IP 地址或主机名。",
"editInternalResourceDialogDestinationIPDescription": "站点网络上资源的IP或主机名地址。",
"editInternalResourceDialogDestinationCidrDescription": "站点网络上资源的 CIDR 范围。",
"editInternalResourceDialogAlias": "Alias",
"editInternalResourceDialogAliasDescription": "此资源可选的内部DNS别名。",
"createInternalResourceDialogNoSitesAvailable": "暂无可用站点", "createInternalResourceDialogNoSitesAvailable": "暂无可用站点",
"createInternalResourceDialogNoSitesAvailableDescription": "您需要至少配置一个子网的Newt站点来创建内部资源。", "createInternalResourceDialogNoSitesAvailableDescription": "您需要至少配置一个子网的Newt站点来创建内部资源。",
"createInternalResourceDialogClose": "关闭", "createInternalResourceDialogClose": "关闭",
"createInternalResourceDialogCreateClientResource": "创建客户端资源", "createInternalResourceDialogCreateClientResource": "创建私有资源",
"createInternalResourceDialogCreateClientResourceDescription": "创建一个新资源,该资源将可供连接到所选站点的客户端访问", "createInternalResourceDialogCreateClientResourceDescription": "创建一个新资源只能为连接到组织的客户端访问",
"createInternalResourceDialogResourceProperties": "资源属性", "createInternalResourceDialogResourceProperties": "资源属性",
"createInternalResourceDialogName": "名称", "createInternalResourceDialogName": "名称",
"createInternalResourceDialogSite": "站点", "createInternalResourceDialogSite": "站点",
@@ -1578,11 +1641,22 @@
"createInternalResourceDialogInvalidIPAddressFormat": "无效的IP地址格式", "createInternalResourceDialogInvalidIPAddressFormat": "无效的IP地址格式",
"createInternalResourceDialogDestinationPortMin": "目标端口必须至少为1", "createInternalResourceDialogDestinationPortMin": "目标端口必须至少为1",
"createInternalResourceDialogDestinationPortMax": "目标端口必须小于65536", "createInternalResourceDialogDestinationPortMax": "目标端口必须小于65536",
"createInternalResourceDialogPortModeRequired": "端口模式需要协议、代理端口和目的端口",
"createInternalResourceDialogMode": "模式",
"createInternalResourceDialogModePort": "端口",
"createInternalResourceDialogModeHost": "主机",
"createInternalResourceDialogModeCidr": "CIDR",
"createInternalResourceDialogDestination": "目标",
"createInternalResourceDialogDestinationHostDescription": "站点网络上资源的 IP 地址或主机名。",
"createInternalResourceDialogDestinationCidrDescription": "站点网络上资源的 CIDR 范围。",
"createInternalResourceDialogAlias": "Alias",
"createInternalResourceDialogAliasDescription": "此资源可选的内部DNS别名。",
"siteConfiguration": "配置", "siteConfiguration": "配置",
"siteAcceptClientConnections": "接受客户端连接", "siteAcceptClientConnections": "接受客户端连接",
"siteAcceptClientConnectionsDescription": "允许其他设备通过此Newt实例使用客户端作为网关连接。", "siteAcceptClientConnectionsDescription": "允许用户设备和客户端访问此站点上的资源。这可以稍后更改。",
"siteAddress": "站点地址", "siteAddress": "站点地址 (高级)",
"siteAddressDescription": "指定主机的IP地址以供客户端连接。这是Pangolin网络中站点的内部地址供客户端访问。必须在Org子网。", "siteAddressDescription": "站点的内部地址。必须属于组织的子网。",
"siteNameDescription": "可以稍后更改的站点显示名称。",
"autoLoginExternalIdp": "自动使用外部IDP登录", "autoLoginExternalIdp": "自动使用外部IDP登录",
"autoLoginExternalIdpDescription": "立即将用户重定向到外部IDP进行身份验证。", "autoLoginExternalIdpDescription": "立即将用户重定向到外部IDP进行身份验证。",
"selectIdp": "选择IDP", "selectIdp": "选择IDP",
@@ -1596,7 +1670,7 @@
"autoLoginErrorNoRedirectUrl": "未从身份提供商收到重定向URL。", "autoLoginErrorNoRedirectUrl": "未从身份提供商收到重定向URL。",
"autoLoginErrorGeneratingUrl": "生成身份验证URL失败。", "autoLoginErrorGeneratingUrl": "生成身份验证URL失败。",
"remoteExitNodeManageRemoteExitNodes": "远程节点", "remoteExitNodeManageRemoteExitNodes": "远程节点",
"remoteExitNodeDescription": "自我主机一个或多个远程节点来扩展您的网络连接并减少对云的依赖性", "remoteExitNodeDescription": "自我主机一个或多个远程节点来扩展网络连接并减少对云的依赖性",
"remoteExitNodes": "节点", "remoteExitNodes": "节点",
"searchRemoteExitNodes": "搜索节点...", "searchRemoteExitNodes": "搜索节点...",
"remoteExitNodeAdd": "添加节点", "remoteExitNodeAdd": "添加节点",
@@ -1608,11 +1682,11 @@
"sidebarRemoteExitNodes": "远程节点", "sidebarRemoteExitNodes": "远程节点",
"remoteExitNodeCreate": { "remoteExitNodeCreate": {
"title": "创建节点", "title": "创建节点",
"description": "创建一个新节点来扩展您的网络连接", "description": "创建一个新节点来扩展网络连接",
"viewAllButton": "查看所有节点", "viewAllButton": "查看所有节点",
"strategy": { "strategy": {
"title": "创建策略", "title": "创建策略",
"description": "选择此选项以手动配置您的节点或生成新凭据。", "description": "选择此选项以手动配置节点或生成新凭据。",
"adopt": { "adopt": {
"title": "采纳节点", "title": "采纳节点",
"description": "如果您已经拥有该节点的凭据,请选择此项。" "description": "如果您已经拥有该节点的凭据,请选择此项。"
@@ -1633,7 +1707,7 @@
}, },
"generate": { "generate": {
"title": "生成的凭据", "title": "生成的凭据",
"description": "使用这些生成的凭据来配置您的节点", "description": "使用这些生成的凭据来配置节点",
"nodeIdTitle": "节点 ID", "nodeIdTitle": "节点 ID",
"secretTitle": "密钥", "secretTitle": "密钥",
"saveCredentialsTitle": "将凭据添加到配置中", "saveCredentialsTitle": "将凭据添加到配置中",
@@ -1709,16 +1783,16 @@
"idpTypeLabel": "身份提供者类型", "idpTypeLabel": "身份提供者类型",
"roleMappingExpressionPlaceholder": "例如: contains(group, 'admin' &'Admin' || 'Member'", "roleMappingExpressionPlaceholder": "例如: contains(group, 'admin' &'Admin' || 'Member'",
"idpGoogleConfiguration": "Google 配置", "idpGoogleConfiguration": "Google 配置",
"idpGoogleConfigurationDescription": "配置您的 Google OAuth2 凭据", "idpGoogleConfigurationDescription": "配置 Google OAuth2 凭据",
"idpGoogleClientIdDescription": "您的 Google OAuth2 客户端 ID", "idpGoogleClientIdDescription": "Google OAuth2 Client ID",
"idpGoogleClientSecretDescription": "您的 Google OAuth2 客户端密钥", "idpGoogleClientSecretDescription": "Google OAuth2 客户端密钥",
"idpAzureConfiguration": "Azure Entra ID 配置", "idpAzureConfiguration": "Azure Entra ID 配置",
"idpAzureConfigurationDescription": "配置您的 Azure Entra ID OAuth2 凭据", "idpAzureConfigurationDescription": "配置 Azure Entra ID OAuth2 凭据",
"idpTenantId": "租户 ID", "idpTenantId": "租户 ID",
"idpTenantIdPlaceholder": "您的租户ID", "idpTenantIdPlaceholder": "tenant-id",
"idpAzureTenantIdDescription": "您的 Azure 租户ID (在 Azure Active Directory 概览中发现)", "idpAzureTenantIdDescription": "Azure 租户ID (在 Azure Active Directory 概览中找到)",
"idpAzureClientIdDescription": "您的 Azure 应用程序注册客户端 ID", "idpAzureClientIdDescription": "Azure 应用注册客户端 ID",
"idpAzureClientSecretDescription": "您的 Azure 应用程序注册客户端密钥", "idpAzureClientSecretDescription": "Azure 应用程序注册客户端密钥",
"idpGoogleTitle": "谷歌", "idpGoogleTitle": "谷歌",
"idpGoogleAlt": "Google", "idpGoogleAlt": "Google",
"idpAzureTitle": "Azure Entra ID", "idpAzureTitle": "Azure Entra ID",
@@ -1726,14 +1800,14 @@
"idpGoogleConfigurationTitle": "Google 配置", "idpGoogleConfigurationTitle": "Google 配置",
"idpAzureConfigurationTitle": "Azure Entra ID 配置", "idpAzureConfigurationTitle": "Azure Entra ID 配置",
"idpTenantIdLabel": "租户 ID", "idpTenantIdLabel": "租户 ID",
"idpAzureClientIdDescription2": "您的 Azure 应用程序注册客户端 ID", "idpAzureClientIdDescription2": "Azure 应用注册客户端 ID",
"idpAzureClientSecretDescription2": "您的 Azure 应用程序注册客户端密钥", "idpAzureClientSecretDescription2": "Azure 应用程序注册客户端密钥",
"idpGoogleDescription": "Google OAuth2/OIDC 提供商", "idpGoogleDescription": "Google OAuth2/OIDC 提供商",
"idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider", "idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider",
"subnet": "子网", "subnet": "子网",
"subnetDescription": "此组织网络配置的子网。", "subnetDescription": "此组织网络配置的子网。",
"authPage": "认证页面", "authPage": "认证页面",
"authPageDescription": "配置您的组织认证页面", "authPageDescription": "配置组织认证页面",
"authPageDomain": "认证页面域", "authPageDomain": "认证页面域",
"noDomainSet": "没有域设置", "noDomainSet": "没有域设置",
"changeDomain": "更改域", "changeDomain": "更改域",
@@ -1743,7 +1817,7 @@
"setAuthPageDomain": "设置认证页面域", "setAuthPageDomain": "设置认证页面域",
"failedToFetchCertificate": "获取证书失败", "failedToFetchCertificate": "获取证书失败",
"failedToRestartCertificate": "重新启动证书失败", "failedToRestartCertificate": "重新启动证书失败",
"addDomainToEnableCustomAuthPages": "为您的组织添加域名以启用自定义认证页面", "addDomainToEnableCustomAuthPages": "添加域名以启用组织自定义认证页面",
"selectDomainForOrgAuthPage": "选择组织认证页面的域", "selectDomainForOrgAuthPage": "选择组织认证页面的域",
"domainPickerProvidedDomain": "提供的域", "domainPickerProvidedDomain": "提供的域",
"domainPickerFreeProvidedDomain": "免费提供的域", "domainPickerFreeProvidedDomain": "免费提供的域",
@@ -1758,7 +1832,7 @@
"domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" 无法为 {domain} 变为有效。", "domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" 无法为 {domain} 变为有效。",
"domainPickerSubdomainSanitized": "子域已净化", "domainPickerSubdomainSanitized": "子域已净化",
"domainPickerSubdomainCorrected": "\"{sub}\" 已被更正为 \"{sanitized}\"", "domainPickerSubdomainCorrected": "\"{sub}\" 已被更正为 \"{sanitized}\"",
"orgAuthSignInTitle": "登录到您的组织", "orgAuthSignInTitle": "登录到组织",
"orgAuthChooseIdpDescription": "选择您的身份提供商以继续", "orgAuthChooseIdpDescription": "选择您的身份提供商以继续",
"orgAuthNoIdpConfigured": "此机构没有配置任何身份提供者。您可以使用您的 Pangolin 身份登录。", "orgAuthNoIdpConfigured": "此机构没有配置任何身份提供者。您可以使用您的 Pangolin 身份登录。",
"orgAuthSignInWithPangolin": "使用 Pangolin 登录", "orgAuthSignInWithPangolin": "使用 Pangolin 登录",
@@ -1776,7 +1850,7 @@
"enableTwoFactorAuthentication": "启用两步验证", "enableTwoFactorAuthentication": "启用两步验证",
"completeSecuritySteps": "完成安全步骤", "completeSecuritySteps": "完成安全步骤",
"securitySettings": "安全设置", "securitySettings": "安全设置",
"securitySettingsDescription": "配置组织安全策略", "securitySettingsDescription": "配置组织安全策略",
"requireTwoFactorForAllUsers": "所有用户需要两步验证", "requireTwoFactorForAllUsers": "所有用户需要两步验证",
"requireTwoFactorDescription": "如果启用,此组织的所有内部用户必须启用双重身份验证才能访问组织。", "requireTwoFactorDescription": "如果启用,此组织的所有内部用户必须启用双重身份验证才能访问组织。",
"requireTwoFactorDisabledDescription": "此功能需要有效的许可证企业或活动订阅SaS", "requireTwoFactorDisabledDescription": "此功能需要有效的许可证企业或活动订阅SaS",
@@ -1839,8 +1913,12 @@
"enterpriseEdition": "企业版", "enterpriseEdition": "企业版",
"unlicensed": "未授权", "unlicensed": "未授权",
"beta": "测试版", "beta": "测试版",
"manageClients": "管理客户端", "manageUserDevices": "用户设备",
"manageClientsDescription": "客户端是可以连接到您的站点的设备", "manageUserDevicesDescription": "查看和管理用户用来私下连接到资源的设备",
"manageMachineClients": "管理机器客户端",
"manageMachineClientsDescription": "创建和管理服务器和系统用于私密连接到资源的客户端",
"clientsTableUserClients": "用户",
"clientsTableMachineClients": "机",
"licenseTableValidUntil": "有效期至", "licenseTableValidUntil": "有效期至",
"saasLicenseKeysSettingsTitle": "企业许可证", "saasLicenseKeysSettingsTitle": "企业许可证",
"saasLicenseKeysSettingsDescription": "为自我托管的 Pangolin 实例生成和管理企业许可证密钥", "saasLicenseKeysSettingsDescription": "为自我托管的 Pangolin 实例生成和管理企业许可证密钥",
@@ -1975,11 +2053,12 @@
"pathRewriteStripLabel": "条形图", "pathRewriteStripLabel": "条形图",
"sidebarEnableEnterpriseLicense": "启用企业许可证", "sidebarEnableEnterpriseLicense": "启用企业许可证",
"cannotbeUndone": "无法撤消。", "cannotbeUndone": "无法撤消。",
"toConfirm": "确认", "toConfirm": "确认.",
"deleteClientQuestion": "您确定要从站点和组织中删除客户吗?", "deleteClientQuestion": "您确定要从站点和组织中删除客户吗?",
"clientMessageRemove": "一旦删除,客户端将无法连接到站点。", "clientMessageRemove": "一旦删除,客户端将无法连接到站点。",
"sidebarLogs": "日志", "sidebarLogs": "日志",
"request": "请求", "request": "请求",
"requests": "请求",
"logs": "日志", "logs": "日志",
"logsSettingsDescription": "监视从此orginization中收集的日志", "logsSettingsDescription": "监视从此orginization中收集的日志",
"searchLogs": "搜索日志...", "searchLogs": "搜索日志...",
@@ -2005,6 +2084,7 @@
"ip": "IP", "ip": "IP",
"reason": "原因", "reason": "原因",
"requestLogs": "请求日志", "requestLogs": "请求日志",
"requestAnalytics": "请求分析",
"host": "主机", "host": "主机",
"location": "地点", "location": "地点",
"actionLogs": "操作日志", "actionLogs": "操作日志",
@@ -2014,6 +2094,7 @@
"logRetention": "日志保留", "logRetention": "日志保留",
"logRetentionDescription": "管理不同类型的日志为这个机构保留多长时间或禁用这些日志", "logRetentionDescription": "管理不同类型的日志为这个机构保留多长时间或禁用这些日志",
"requestLogsDescription": "查看此机构资源的详细请求日志", "requestLogsDescription": "查看此机构资源的详细请求日志",
"requestAnalyticsDescription": "查看此机构资源的详细请求分析",
"logRetentionRequestLabel": "请求日志保留", "logRetentionRequestLabel": "请求日志保留",
"logRetentionRequestDescription": "保留请求日志的时间", "logRetentionRequestDescription": "保留请求日志的时间",
"logRetentionAccessLabel": "访问日志保留", "logRetentionAccessLabel": "访问日志保留",
@@ -2027,6 +2108,7 @@
"logRetention30Days": "30 天", "logRetention30Days": "30 天",
"logRetention90Days": "90 天", "logRetention90Days": "90 天",
"logRetentionForever": "永远的", "logRetentionForever": "永远的",
"logRetentionEndOfFollowingYear": "下一年结束",
"actionLogsDescription": "查看此机构执行的操作历史", "actionLogsDescription": "查看此机构执行的操作历史",
"accessLogsDescription": "查看此机构资源的访问认证请求", "accessLogsDescription": "查看此机构资源的访问认证请求",
"licenseRequiredToUse": "需要企业许可证才能使用此功能。", "licenseRequiredToUse": "需要企业许可证才能使用此功能。",
@@ -2037,7 +2119,7 @@
"preferWildcardCert": "喜欢通配符证书", "preferWildcardCert": "喜欢通配符证书",
"unverified": "未验证", "unverified": "未验证",
"domainSetting": "域设置", "domainSetting": "域设置",
"domainSettingDescription": "配置您的域的设置", "domainSettingDescription": "配置设置",
"preferWildcardCertDescription": "尝试生成通配符证书(需要正确配置的证书解析器)。", "preferWildcardCertDescription": "尝试生成通配符证书(需要正确配置的证书解析器)。",
"recordName": "记录名称", "recordName": "记录名称",
"auto": "自动操作", "auto": "自动操作",
@@ -2051,15 +2133,15 @@
"olmUpdateAvailableInfo": "有最新版本的 Olm 可用。请更新到最新版本以获取最佳体验。", "olmUpdateAvailableInfo": "有最新版本的 Olm 可用。请更新到最新版本以获取最佳体验。",
"client": "客户端:", "client": "客户端:",
"proxyProtocol": "代理协议设置", "proxyProtocol": "代理协议设置",
"proxyProtocolDescription": "配置代理协议以保留TCP/UDP 服务的客户端IP地址。", "proxyProtocolDescription": "配置代理协议以保留TCP服务的客户端 IP 地址。",
"enableProxyProtocol": "启用代理协议", "enableProxyProtocol": "启用代理协议",
"proxyProtocolInfo": "为TCP/UDP 后端保留客户端IP地址", "proxyProtocolInfo": "为TCP后端保留客户端IP地址",
"proxyProtocolVersion": "代理协议版本", "proxyProtocolVersion": "代理协议版本",
"version1": " 版本 1 (推荐)", "version1": " 版本 1 (推荐)",
"version2": "版本 2", "version2": "版本 2",
"versionDescription": "版本 1 是基于文本和广泛支持的版本。版本 2 是二进制和更有效率但不那么兼容。", "versionDescription": "版本 1 是基于文本和广泛支持的版本。版本 2 是二进制和更有效率但不那么兼容。",
"warning": "警告", "warning": "警告",
"proxyProtocolWarning": "您的后端应用程序必须配置为接受代理协议连接。如果您的后端不支持代理协议,启用将会中断所有连接。 请务必从Traefik配置您的后端到信任代理协议标题。", "proxyProtocolWarning": "后端应用程序必须配置为接受代理协议连接。 如果您的后端不支持代理协议,启用此功能将会中断所有连接,只有当您知道自己在做什么时才能启用此功能。 请务必从Traefik配置您的后端到信任代理协议标题。",
"restarting": "正在重启...", "restarting": "正在重启...",
"manual": "手动模式", "manual": "手动模式",
"messageSupport": "消息支持", "messageSupport": "消息支持",
@@ -2080,5 +2162,113 @@
"supportSending": "正在发送...", "supportSending": "正在发送...",
"supportSend": "发送", "supportSend": "发送",
"supportMessageSent": "消息已发送!", "supportMessageSent": "消息已发送!",
"supportWillContact": "我们很快就会联系起来!" "supportWillContact": "我们很快就会联系起来!",
"selectLogRetention": "选择保留日志",
"terms": "条款",
"privacy": "隐私",
"security": "安全",
"docs": "文档",
"deviceActivation": "设备激活",
"deviceCodeInvalidFormat": "代码必须是9个字符(如A1AJ-N5JD)",
"deviceCodeInvalidOrExpired": "无效或过期的代码",
"deviceCodeVerifyFailed": "验证设备代码失败",
"signedInAs": "登录为",
"deviceCodeEnterPrompt": "输入设备上显示的代码",
"continue": "继续",
"deviceUnknownLocation": "未知位置",
"deviceAuthorizationRequested": "此授权请求来自{location},日期为{date}。请确保您信任此设备,因为它将获得帐户访问权限。",
"deviceLabel": "设备: {deviceName}",
"deviceWantsAccess": "想要访问您的帐户",
"deviceExistingAccess": "现有访问权限:",
"deviceFullAccess": "完全访问您的帐户",
"deviceOrganizationsAccess": "访问您的帐户拥有访问权限的所有组织",
"deviceAuthorize": "授权{applicationName}",
"deviceConnected": "设备已连接!",
"deviceAuthorizedMessage": "设备被授权访问您的帐户。",
"pangolinCloud": "邦戈林云",
"viewDevices": "查看设备",
"viewDevicesDescription": "管理您已连接的设备",
"noDevices": "未找到设备",
"dateCreated": "创建日期",
"unnamedDevice": "未命名设备",
"deviceQuestionRemove": "您确定要删除此设备吗?",
"deviceMessageRemove": "此操作不能撤消。",
"deviceDeleteConfirm": "删除设备",
"deleteDevice": "删除设备",
"errorLoadingDevices": "加载设备时出错",
"failedToLoadDevices": "加载设备失败",
"deviceDeleted": "设备已删除",
"deviceDeletedDescription": "设备已成功删除。",
"errorDeletingDevice": "删除设备时出错",
"failedToDeleteDevice": "删除设备失败",
"showColumns": "显示列",
"hideColumns": "隐藏列",
"columnVisibility": "列可见性",
"toggleColumn": "切换 {columnName} 列",
"allColumns": "全部列",
"defaultColumns": "默认列",
"customizeView": "自定义视图",
"viewOptions": "查看选项",
"selectAll": "选择所有",
"selectNone": "没有选择",
"selectedResources": "选定的资源",
"enableSelected": "启用选中的",
"disableSelected": "禁用选中的",
"checkSelectedStatus": "检查选中的状态",
"clients": "客户端",
"accessClientSelect": "选择机器客户端",
"resourceClientDescription": "机器客户端可以访问此资源",
"regenerate": "重新生成",
"credentials": "全权证书",
"savecredentials": "保存证书",
"regenerateCredentialsButton": "重新生成证书",
"regenerateCredentials": "重新生成证书",
"generatedcredentials": "生成的证书",
"copyandsavethesecredentials": "复制和保存这些凭据",
"copyandsavethesecredentialsdescription": "这些凭据将不会在您离开此页面后再显示。现在安全地保存。",
"credentialsSaved": "凭据已保存",
"credentialsSavedDescription": "已成功生成和保存凭据。",
"credentialsSaveError": "证书保存错误",
"credentialsSaveErrorDescription": "更新和保存凭据时出错。",
"regenerateCredentialsWarning": "重新生成凭据将使以前的凭据失效并导致断开连接。请确保更新使用这些凭据的任何配置。",
"confirm": "确认",
"regenerateCredentialsConfirmation": "您确定要重新生成凭据吗?",
"endpoint": "Endpoint",
"Id": "Id",
"SecretKey": "秘密密钥",
"niceId": "好的 ID",
"niceIdUpdated": "好的 ID 已更新",
"niceIdUpdatedSuccessfully": "Nice ID 更新成功",
"niceIdUpdateError": "更新Nice ID时出错",
"niceIdUpdateErrorDescription": "更新Nice ID时出错。",
"niceIdCannotBeEmpty": "好的 ID 不能为空",
"enterIdentifier": "输入标识符",
"identifier": "Identifier",
"deviceLoginUseDifferentAccount": "不是你?使用一个不同的帐户。",
"deviceLoginDeviceRequestingAccessToAccount": "设备正在请求访问此帐户。",
"noData": "无数据",
"machineClients": "机器客户端",
"install": "安装",
"run": "运行",
"clientNameDescription": "可以稍后更改的客户端的显示名称。",
"clientAddress": "客户端地址 (高级)",
"setupFailedToFetchSubnet": "获取默认子网失败",
"setupSubnetAdvanced": "子网 (高级)",
"setupSubnetDescription": "该组织内部网络的子网。",
"siteRegenerateAndDisconnect": "重新生成和断开",
"siteRegenerateAndDisconnectConfirmation": "您确定要重新生成凭据并断开此站点连接吗?",
"siteRegenerateAndDisconnectWarning": "这将重新生成凭据并立即断开站点。该站点将需要重新启动新凭据。",
"siteRegenerateCredentialsConfirmation": "您确定要重新生成此站点的凭据吗?",
"siteRegenerateCredentialsWarning": "这将重新生成凭据。站点将保持连接,直到您手动重启并使用新凭据。",
"clientRegenerateAndDisconnect": "重新生成和断开",
"clientRegenerateAndDisconnectConfirmation": "您确定要重新生成凭据并断开此客户端连接吗?",
"clientRegenerateAndDisconnectWarning": "这将重新生成凭据并立即断开客户端。客户端需要重新启动新凭据。",
"clientRegenerateCredentialsConfirmation": "您确定要重新生成此客户端的凭据吗?",
"clientRegenerateCredentialsWarning": "这将重新生成凭据。客户端将保持连接,直到您手动重启它并使用新凭据。",
"remoteExitNodeRegenerateAndDisconnect": "重新生成和断开",
"remoteExitNodeRegenerateAndDisconnectConfirmation": "您确定要重新生成凭据并断开此远程退出节点?",
"remoteExitNodeRegenerateAndDisconnectWarning": "这将重新生成凭据并立即断开远程退出节点。远程退出节点将需要用新的凭据重启。",
"remoteExitNodeRegenerateCredentialsConfirmation": "您确定要重新生成此远程退出节点的凭据吗?",
"remoteExitNodeRegenerateCredentialsWarning": "这将重新生成凭据。远程退出节点将保持连接,直到您手动重启它并使用新凭据。",
"agent": "代理"
} }

2101
messages/zh-TW.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +1,17 @@
import type { NextConfig } from "next";
import createNextIntlPlugin from "next-intl/plugin"; import createNextIntlPlugin from "next-intl/plugin";
const withNextIntl = createNextIntlPlugin(); const withNextIntl = createNextIntlPlugin();
/** @type {import("next").NextConfig} */ const nextConfig: NextConfig = {
const nextConfig = { reactStrictMode: false,
eslint: { eslint: {
ignoreDuringBuilds: true ignoreDuringBuilds: true
}, },
output: "standalone", experimental: {
reactCompiler: true
},
output: "standalone"
}; };
export default withNextIntl(nextConfig); export default withNextIntl(nextConfig);

11593
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -19,158 +19,163 @@
"db:sqlite:studio": "drizzle-kit studio --config=./drizzle.sqlite.config.ts", "db:sqlite:studio": "drizzle-kit studio --config=./drizzle.sqlite.config.ts",
"db:pg:studio": "drizzle-kit studio --config=./drizzle.pg.config.ts", "db:pg:studio": "drizzle-kit studio --config=./drizzle.pg.config.ts",
"db:clear-migrations": "rm -rf server/migrations", "db:clear-migrations": "rm -rf server/migrations",
"set:oss": "echo 'export const build = \"oss\" as any;' > server/build.ts && cp tsconfig.oss.json tsconfig.json", "set:oss": "echo 'export const build = \"oss\" as \"saas\" | \"enterprise\" | \"oss\";' > server/build.ts && cp tsconfig.oss.json tsconfig.json",
"set:saas": "echo 'export const build = \"saas\" as any;' > server/build.ts && cp tsconfig.saas.json tsconfig.json", "set:saas": "echo 'export const build = \"saas\" as \"saas\" | \"enterprise\" | \"oss\";' > server/build.ts && cp tsconfig.saas.json tsconfig.json",
"set:enterprise": "echo 'export const build = \"enterprise\" as any;' > server/build.ts && cp tsconfig.enterprise.json tsconfig.json", "set:enterprise": "echo 'export const build = \"enterprise\" as \"saas\" | \"enterprise\" | \"oss\";' > server/build.ts && cp tsconfig.enterprise.json tsconfig.json",
"set:sqlite": "echo 'export * from \"./sqlite\";' > server/db/index.ts", "set:sqlite": "echo 'export * from \"./sqlite\";\nexport const driver: \"pg\" | \"sqlite\" = \"sqlite\";' > server/db/index.ts",
"set:pg": "echo 'export * from \"./pg\";' > server/db/index.ts", "set:pg": "echo 'export * from \"./pg\";\nexport const driver: \"pg\" | \"sqlite\" = \"pg\";' > server/db/index.ts",
"next:build": "next build", "next:build": "next build",
"build:sqlite": "mkdir -p dist && next build && node esbuild.mjs -e server/index.ts -o dist/server.mjs && node esbuild.mjs -e server/setup/migrationsSqlite.ts -o dist/migrations.mjs", "build:sqlite": "mkdir -p dist && next build && node esbuild.mjs -e server/index.ts -o dist/server.mjs && node esbuild.mjs -e server/setup/migrationsSqlite.ts -o dist/migrations.mjs",
"build:pg": "mkdir -p dist && next build && node esbuild.mjs -e server/index.ts -o dist/server.mjs && node esbuild.mjs -e server/setup/migrationsPg.ts -o dist/migrations.mjs", "build:pg": "mkdir -p dist && next build && node esbuild.mjs -e server/index.ts -o dist/server.mjs && node esbuild.mjs -e server/setup/migrationsPg.ts -o dist/migrations.mjs",
"start": "ENVIRONMENT=prod node dist/migrations.mjs && ENVIRONMENT=prod NODE_ENV=development node --enable-source-maps dist/server.mjs", "start": "ENVIRONMENT=prod node dist/migrations.mjs && ENVIRONMENT=prod NODE_ENV=development node --enable-source-maps dist/server.mjs",
"email": "email dev --dir server/emails/templates --port 3005", "email": "email dev --dir server/emails/templates --port 3005",
"build:cli": "node esbuild.mjs -e cli/index.ts -o dist/cli.mjs" "build:cli": "node esbuild.mjs -e cli/index.ts -o dist/cli.mjs",
"format": "prettier --write ."
}, },
"dependencies": { "dependencies": {
"@asteasolutions/zod-to-openapi": "^7.3.4", "@asteasolutions/zod-to-openapi": "8.2.0",
"@aws-sdk/client-s3": "3.908.0", "@aws-sdk/client-s3": "3.955.0",
"@faker-js/faker": "10.1.0",
"@headlessui/react": "2.2.9",
"@hookform/resolvers": "5.2.2", "@hookform/resolvers": "5.2.2",
"@monaco-editor/react": "^4.7.0", "@monaco-editor/react": "4.7.0",
"@node-rs/argon2": "^2.0.2", "@node-rs/argon2": "2.0.2",
"@oslojs/crypto": "1.0.1", "@oslojs/crypto": "1.0.1",
"@oslojs/encoding": "1.1.0", "@oslojs/encoding": "1.1.0",
"@radix-ui/react-avatar": "1.1.10", "@radix-ui/react-avatar": "1.1.11",
"@radix-ui/react-checkbox": "1.3.3", "@radix-ui/react-checkbox": "1.3.3",
"@radix-ui/react-collapsible": "1.1.12", "@radix-ui/react-collapsible": "1.1.12",
"@radix-ui/react-dialog": "1.1.15", "@radix-ui/react-dialog": "1.1.15",
"@radix-ui/react-dropdown-menu": "2.1.16", "@radix-ui/react-dropdown-menu": "2.1.16",
"@radix-ui/react-icons": "1.3.2", "@radix-ui/react-icons": "1.3.2",
"@radix-ui/react-label": "2.1.7", "@radix-ui/react-label": "2.1.8",
"@radix-ui/react-popover": "1.1.15", "@radix-ui/react-popover": "1.1.15",
"@radix-ui/react-progress": "^1.1.7", "@radix-ui/react-progress": "1.1.8",
"@radix-ui/react-radio-group": "1.3.8", "@radix-ui/react-radio-group": "1.3.8",
"@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-scroll-area": "1.2.10",
"@radix-ui/react-select": "2.2.6", "@radix-ui/react-select": "2.2.6",
"@radix-ui/react-separator": "1.1.7", "@radix-ui/react-separator": "1.1.8",
"@radix-ui/react-slot": "1.2.3", "@radix-ui/react-slot": "1.2.4",
"@radix-ui/react-switch": "1.2.6", "@radix-ui/react-switch": "1.2.6",
"@radix-ui/react-tabs": "1.1.13", "@radix-ui/react-tabs": "1.1.13",
"@radix-ui/react-toast": "1.2.15", "@radix-ui/react-toast": "1.2.15",
"@radix-ui/react-tooltip": "^1.2.8", "@radix-ui/react-tooltip": "1.2.8",
"@react-email/components": "0.5.7", "@react-email/components": "1.0.2",
"@react-email/render": "^1.3.2", "@react-email/render": "2.0.0",
"@react-email/tailwind": "1.2.2", "@react-email/tailwind": "2.0.2",
"@simplewebauthn/browser": "^13.2.2", "@simplewebauthn/browser": "13.2.2",
"@simplewebauthn/server": "^13.2.2", "@simplewebauthn/server": "13.2.2",
"@tailwindcss/forms": "^0.5.10", "@tailwindcss/forms": "0.5.11",
"@tanstack/react-query": "5.90.12",
"@tanstack/react-table": "8.21.3", "@tanstack/react-table": "8.21.3",
"arctic": "^3.7.0", "arctic": "3.7.0",
"axios": "^1.12.2", "axios": "1.13.2",
"better-sqlite3": "11.7.0", "better-sqlite3": "11.9.1",
"canvas-confetti": "1.9.4", "canvas-confetti": "1.9.4",
"class-variance-authority": "^0.7.1", "class-variance-authority": "0.7.1",
"clsx": "2.1.1", "clsx": "2.1.1",
"cmdk": "1.1.1", "cmdk": "1.1.1",
"cookie": "^1.0.2", "cookie": "1.1.1",
"cookie-parser": "1.4.7", "cookie-parser": "1.4.7",
"cookies": "^0.9.1", "cookies": "0.9.1",
"cors": "2.8.5", "cors": "2.8.5",
"crypto-js": "^4.2.0", "crypto-js": "4.2.0",
"d3": "7.9.0",
"date-fns": "4.1.0", "date-fns": "4.1.0",
"drizzle-orm": "0.44.7", "drizzle-orm": "0.45.1",
"eslint": "9.37.0", "eslint": "9.39.2",
"eslint-config-next": "15.5.6", "eslint-config-next": "16.1.0",
"express": "5.1.0", "express": "5.2.1",
"express-rate-limit": "8.1.0", "express-rate-limit": "8.2.1",
"glob": "11.0.3", "glob": "13.0.0",
"helmet": "8.1.0", "helmet": "8.1.0",
"http-errors": "2.0.0", "http-errors": "2.0.1",
"i": "^0.3.7", "i": "0.3.7",
"input-otp": "1.4.2", "input-otp": "1.4.2",
"ioredis": "5.8.2", "ioredis": "5.8.2",
"jmespath": "^0.16.0", "jmespath": "0.16.0",
"js-yaml": "4.1.0", "js-yaml": "4.1.1",
"jsonwebtoken": "^9.0.2", "jsonwebtoken": "9.0.3",
"lucide-react": "^0.545.0", "lucide-react": "0.562.0",
"maxmind": "5.0.0", "maxmind": "5.0.1",
"moment": "2.30.1", "moment": "2.30.1",
"next": "15.5.6", "next": "15.5.9",
"next-intl": "^4.3.12", "next-intl": "4.6.1",
"next-themes": "0.4.6", "next-themes": "0.4.6",
"nextjs-toploader": "^3.9.17", "nextjs-toploader": "3.9.17",
"node-cache": "5.1.2", "node-cache": "5.1.2",
"node-fetch": "3.3.2", "node-fetch": "3.3.2",
"nodemailer": "7.0.10", "nodemailer": "7.0.11",
"npm": "^11.6.2", "npm": "11.7.0",
"nprogress": "^0.2.0", "nprogress": "0.2.0",
"oslo": "1.2.1", "oslo": "1.2.1",
"pg": "^8.16.2", "pg": "8.16.3",
"posthog-node": "^5.10.4", "posthog-node": "5.17.4",
"qrcode.react": "4.2.0", "qrcode.react": "4.2.0",
"react": "19.2.0", "react": "19.2.3",
"react-day-picker": "9.11.1", "react-day-picker": "9.13.0",
"react-dom": "19.2.0", "react-dom": "19.2.3",
"react-easy-sort": "^1.8.0", "react-easy-sort": "1.8.0",
"react-hook-form": "7.65.0", "react-hook-form": "7.68.0",
"react-icons": "^5.5.0", "react-icons": "5.5.0",
"rebuild": "0.1.2", "rebuild": "0.1.2",
"reodotdev": "^1.0.0", "recharts": "2.15.4",
"resend": "^6.1.2", "reodotdev": "1.0.0",
"semver": "^7.7.3", "resend": "6.6.0",
"stripe": "18.2.1", "semver": "7.7.3",
"swagger-ui-express": "^5.0.1", "stripe": "20.1.0",
"tailwind-merge": "3.3.1", "swagger-ui-express": "5.0.1",
"tw-animate-css": "^1.3.8", "tailwind-merge": "3.4.0",
"uuid": "^13.0.0", "topojson-client": "3.1.0",
"tw-animate-css": "1.4.0",
"uuid": "13.0.0",
"vaul": "1.1.2", "vaul": "1.1.2",
"winston": "3.18.3", "visionscarto-world-atlas": "1.0.0",
"winston": "3.19.0",
"winston-daily-rotate-file": "5.0.0", "winston-daily-rotate-file": "5.0.0",
"ws": "8.18.3", "ws": "8.18.3",
"yaml": "^2.8.1", "yaml": "2.8.2",
"yargs": "18.0.0", "yargs": "18.0.0",
"zod": "3.25.76", "zod": "4.2.1",
"zod-validation-error": "3.5.2", "zod-validation-error": "5.0.0"
"@faker-js/faker": "^10.1.0"
}, },
"devDependencies": { "devDependencies": {
"@dotenvx/dotenvx": "1.51.0", "@dotenvx/dotenvx": "1.51.2",
"@esbuild-plugins/tsconfig-paths": "0.1.2", "@esbuild-plugins/tsconfig-paths": "0.1.2",
"@react-email/preview-server": "4.3.2", "@tailwindcss/postcss": "4.1.18",
"@tailwindcss/postcss": "^4.1.16", "@tanstack/react-query-devtools": "5.91.1",
"@types/better-sqlite3": "7.6.12", "@types/better-sqlite3": "7.6.13",
"@types/cookie-parser": "1.4.10", "@types/cookie-parser": "1.4.10",
"@types/cors": "2.8.19", "@types/cors": "2.8.19",
"@types/crypto-js": "^4.2.2", "@types/crypto-js": "4.2.2",
"@types/express": "5.0.5", "@types/d3": "7.4.3",
"@types/express-session": "^1.18.2", "@types/express": "5.0.6",
"@types/jmespath": "^0.15.2", "@types/express-session": "1.18.2",
"@types/js-yaml": "4.0.9", "@types/jmespath": "0.15.2",
"@types/jsonwebtoken": "^9.0.10", "@types/jsonwebtoken": "9.0.10",
"@types/nprogress": "^0.2.3", "@types/node": "24.10.2",
"@types/node": "24.9.2", "@types/nodemailer": "7.0.4",
"@types/nodemailer": "7.0.3", "@types/nprogress": "0.2.3",
"@types/pg": "8.15.6", "@types/pg": "8.16.0",
"@types/react": "19.2.2", "@types/react": "19.2.7",
"@types/react-dom": "19.2.2", "@types/react-dom": "19.2.3",
"@types/semver": "^7.7.1", "@types/semver": "7.7.1",
"@types/swagger-ui-express": "^4.1.8", "@types/swagger-ui-express": "4.1.8",
"@types/topojson-client": "3.1.5",
"@types/ws": "8.18.1", "@types/ws": "8.18.1",
"@types/yargs": "17.0.34", "@types/yargs": "17.0.35",
"drizzle-kit": "0.31.6", "@types/js-yaml": "4.0.9",
"esbuild": "0.25.11", "babel-plugin-react-compiler": "1.0.0",
"esbuild-node-externals": "1.18.0", "drizzle-kit": "0.31.8",
"postcss": "^8", "esbuild": "0.27.2",
"react-email": "4.3.2", "esbuild-node-externals": "1.20.1",
"tailwindcss": "^4.1.4", "postcss": "8.5.6",
"prettier": "3.7.4",
"react-email": "5.0.7",
"tailwindcss": "4.1.18",
"tsc-alias": "1.8.16", "tsc-alias": "1.8.16",
"tsx": "4.20.6", "tsx": "4.21.0",
"typescript": "^5", "typescript": "5.9.3",
"typescript-eslint": "^8.46.2" "typescript-eslint": "8.49.0"
},
"overrides": {
"emblor": {
"react": "19.0.0",
"react-dom": "19.0.0"
}
} }
} }

View File

@@ -1,8 +1,8 @@
/** @type {import('postcss-load-config').Config} */ /** @type {import('postcss-load-config').Config} */
const config = { const config = {
plugins: { plugins: {
"@tailwindcss/postcss": {}, "@tailwindcss/postcss": {}
}, }
}; };
export default config; export default config;

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 687 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 713 KiB

After

Width:  |  Height:  |  Size: 493 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 636 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 713 KiB

After

Width:  |  Height:  |  Size: 484 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 713 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 456 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 674 KiB

After

Width:  |  Height:  |  Size: 396 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 KiB

View File

@@ -79,6 +79,12 @@ export function createApiServer() {
// Add request timeout middleware // Add request timeout middleware
apiServer.use(requestTimeoutMiddleware(60000)); // 60 second timeout apiServer.use(requestTimeoutMiddleware(60000)); // 60 second timeout
apiServer.use(logIncomingMiddleware);
if (build !== "oss") {
apiServer.use(`${prefix}/hybrid`, hybridRouter); // put before rate limiting because we will rate limit there separately because some of the routes are heavily used
}
if (!dev) { if (!dev) {
apiServer.use( apiServer.use(
rateLimit({ rateLimit({
@@ -101,11 +107,7 @@ export function createApiServer() {
} }
// API routes // API routes
apiServer.use(logIncomingMiddleware);
apiServer.use(prefix, unauthenticated); apiServer.use(prefix, unauthenticated);
if (build !== "oss") {
apiServer.use(`${prefix}/hybrid`, hybridRouter);
}
apiServer.use(prefix, authenticated); apiServer.use(prefix, authenticated);
// WebSocket routes // WebSocket routes

View File

@@ -19,6 +19,7 @@ export enum ActionsEnum {
getSite = "getSite", getSite = "getSite",
listSites = "listSites", listSites = "listSites",
updateSite = "updateSite", updateSite = "updateSite",
reGenerateSecret = "reGenerateSecret",
createResource = "createResource", createResource = "createResource",
deleteResource = "deleteResource", deleteResource = "deleteResource",
getResource = "getResource", getResource = "getResource",
@@ -85,6 +86,7 @@ export enum ActionsEnum {
updateOrgDomain = "updateOrgDomain", updateOrgDomain = "updateOrgDomain",
getDNSRecords = "getDNSRecords", getDNSRecords = "getDNSRecords",
createNewt = "createNewt", createNewt = "createNewt",
createOlm = "createOlm",
createIdp = "createIdp", createIdp = "createIdp",
updateIdp = "updateIdp", updateIdp = "updateIdp",
deleteIdp = "deleteIdp", deleteIdp = "deleteIdp",

View File

@@ -2,13 +2,13 @@ import { hash, verify } from "@node-rs/argon2";
export async function verifyPassword( export async function verifyPassword(
password: string, password: string,
hash: string, hash: string
): Promise<boolean> { ): Promise<boolean> {
const validPassword = await verify(hash, password, { const validPassword = await verify(hash, password, {
memoryCost: 19456, memoryCost: 19456,
timeCost: 2, timeCost: 2,
outputLen: 32, outputLen: 32,
parallelism: 1, parallelism: 1
}); });
return validPassword; return validPassword;
} }
@@ -18,7 +18,7 @@ export async function hashPassword(password: string): Promise<string> {
memoryCost: 19456, memoryCost: 19456,
timeCost: 2, timeCost: 2,
outputLen: 32, outputLen: 32,
parallelism: 1, parallelism: 1
}); });
return passwordHash; return passwordHash;

View File

@@ -4,10 +4,13 @@ export const passwordSchema = z
.string() .string()
.min(8, { message: "Password must be at least 8 characters long" }) .min(8, { message: "Password must be at least 8 characters long" })
.max(128, { message: "Password must be at most 128 characters long" }) .max(128, { message: "Password must be at most 128 characters long" })
.regex(/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[~!`@#$%^&*()_\-+={}[\]|\\:;"'<>,.\/?]).*$/, { .regex(
message: `Your password must meet the following conditions: /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[~!`@#$%^&*()_\-+={}[\]|\\:;"'<>,.\/?]).*$/,
{
message: `Your password must meet the following conditions:
at least one uppercase English letter, at least one uppercase English letter,
at least one lowercase English letter, at least one lowercase English letter,
at least one digit, at least one digit,
at least one special character.` at least one special character.`
}); }
);

View File

@@ -36,13 +36,15 @@ export async function createSession(
const sessionId = encodeHexLowerCase( const sessionId = encodeHexLowerCase(
sha256(new TextEncoder().encode(token)) sha256(new TextEncoder().encode(token))
); );
const session: Session = { const [session] = await db
sessionId: sessionId, .insert(sessions)
userId, .values({
expiresAt: new Date(Date.now() + SESSION_COOKIE_EXPIRES).getTime(), sessionId: sessionId,
issuedAt: new Date().getTime() userId,
}; expiresAt: new Date(Date.now() + SESSION_COOKIE_EXPIRES).getTime(),
await db.insert(sessions).values(session); issuedAt: new Date().getTime()
})
.returning();
return session; return session;
} }

View File

@@ -1,6 +1,4 @@
import { import { encodeHexLowerCase } from "@oslojs/encoding";
encodeHexLowerCase,
} from "@oslojs/encoding";
import { sha256 } from "@oslojs/crypto/sha2"; import { sha256 } from "@oslojs/crypto/sha2";
import { Newt, newts, newtSessions, NewtSession } from "@server/db"; import { Newt, newts, newtSessions, NewtSession } from "@server/db";
import { db } from "@server/db"; import { db } from "@server/db";
@@ -10,25 +8,25 @@ export const EXPIRES = 1000 * 60 * 60 * 24 * 30;
export async function createNewtSession( export async function createNewtSession(
token: string, token: string,
newtId: string, newtId: string
): Promise<NewtSession> { ): Promise<NewtSession> {
const sessionId = encodeHexLowerCase( const sessionId = encodeHexLowerCase(
sha256(new TextEncoder().encode(token)), sha256(new TextEncoder().encode(token))
); );
const session: NewtSession = { const session: NewtSession = {
sessionId: sessionId, sessionId: sessionId,
newtId, newtId,
expiresAt: new Date(Date.now() + EXPIRES).getTime(), expiresAt: new Date(Date.now() + EXPIRES).getTime()
}; };
await db.insert(newtSessions).values(session); await db.insert(newtSessions).values(session);
return session; return session;
} }
export async function validateNewtSessionToken( export async function validateNewtSessionToken(
token: string, token: string
): Promise<SessionValidationResult> { ): Promise<SessionValidationResult> {
const sessionId = encodeHexLowerCase( const sessionId = encodeHexLowerCase(
sha256(new TextEncoder().encode(token)), sha256(new TextEncoder().encode(token))
); );
const result = await db const result = await db
.select({ newt: newts, session: newtSessions }) .select({ newt: newts, session: newtSessions })
@@ -45,14 +43,12 @@ export async function validateNewtSessionToken(
.where(eq(newtSessions.sessionId, session.sessionId)); .where(eq(newtSessions.sessionId, session.sessionId));
return { session: null, newt: null }; return { session: null, newt: null };
} }
if (Date.now() >= session.expiresAt - (EXPIRES / 2)) { if (Date.now() >= session.expiresAt - EXPIRES / 2) {
session.expiresAt = new Date( session.expiresAt = new Date(Date.now() + EXPIRES).getTime();
Date.now() + EXPIRES,
).getTime();
await db await db
.update(newtSessions) .update(newtSessions)
.set({ .set({
expiresAt: session.expiresAt, expiresAt: session.expiresAt
}) })
.where(eq(newtSessions.sessionId, session.sessionId)); .where(eq(newtSessions.sessionId, session.sessionId));
} }

View File

@@ -1,6 +1,4 @@
import { import { encodeHexLowerCase } from "@oslojs/encoding";
encodeHexLowerCase,
} from "@oslojs/encoding";
import { sha256 } from "@oslojs/crypto/sha2"; import { sha256 } from "@oslojs/crypto/sha2";
import { Olm, olms, olmSessions, OlmSession } from "@server/db"; import { Olm, olms, olmSessions, OlmSession } from "@server/db";
import { db } from "@server/db"; import { db } from "@server/db";
@@ -10,25 +8,25 @@ export const EXPIRES = 1000 * 60 * 60 * 24 * 30;
export async function createOlmSession( export async function createOlmSession(
token: string, token: string,
olmId: string, olmId: string
): Promise<OlmSession> { ): Promise<OlmSession> {
const sessionId = encodeHexLowerCase( const sessionId = encodeHexLowerCase(
sha256(new TextEncoder().encode(token)), sha256(new TextEncoder().encode(token))
); );
const session: OlmSession = { const session: OlmSession = {
sessionId: sessionId, sessionId: sessionId,
olmId, olmId,
expiresAt: new Date(Date.now() + EXPIRES).getTime(), expiresAt: new Date(Date.now() + EXPIRES).getTime()
}; };
await db.insert(olmSessions).values(session); await db.insert(olmSessions).values(session);
return session; return session;
} }
export async function validateOlmSessionToken( export async function validateOlmSessionToken(
token: string, token: string
): Promise<SessionValidationResult> { ): Promise<SessionValidationResult> {
const sessionId = encodeHexLowerCase( const sessionId = encodeHexLowerCase(
sha256(new TextEncoder().encode(token)), sha256(new TextEncoder().encode(token))
); );
const result = await db const result = await db
.select({ olm: olms, session: olmSessions }) .select({ olm: olms, session: olmSessions })
@@ -45,14 +43,12 @@ export async function validateOlmSessionToken(
.where(eq(olmSessions.sessionId, session.sessionId)); .where(eq(olmSessions.sessionId, session.sessionId));
return { session: null, olm: null }; return { session: null, olm: null };
} }
if (Date.now() >= session.expiresAt - (EXPIRES / 2)) { if (Date.now() >= session.expiresAt - EXPIRES / 2) {
session.expiresAt = new Date( session.expiresAt = new Date(Date.now() + EXPIRES).getTime();
Date.now() + EXPIRES,
).getTime();
await db await db
.update(olmSessions) .update(olmSessions)
.set({ .set({
expiresAt: session.expiresAt, expiresAt: session.expiresAt
}) })
.where(eq(olmSessions.sessionId, session.sessionId)); .where(eq(olmSessions.sessionId, session.sessionId));
} }

View File

@@ -1,9 +1,43 @@
import { Request } from "express"; import { Request } from "express";
import { validateSessionToken, SESSION_COOKIE_NAME } from "@server/auth/sessions/app"; import {
validateSessionToken,
SESSION_COOKIE_NAME
} from "@server/auth/sessions/app";
export async function verifySession(req: Request) { export async function verifySession(req: Request, forceLogin?: boolean) {
const res = await validateSessionToken( const res = await validateSessionToken(
req.cookies[SESSION_COOKIE_NAME] ?? "", req.cookies[SESSION_COOKIE_NAME] ?? ""
); );
if (!forceLogin) {
return res;
}
if (!res.session || !res.user) {
return {
session: null,
user: null
};
}
if (res.session.deviceAuthUsed) {
return {
session: null,
user: null
};
}
if (!res.session.issuedAt) {
return {
session: null,
user: null
};
}
const mins = 5 * 60 * 1000;
const now = new Date().getTime();
if (now - res.session.issuedAt > mins) {
return {
session: null,
user: null
};
}
return res; return res;
} }

View File

@@ -1,4 +1,4 @@
import { cleanup as wsCleanup } from "@server/routers/ws"; import { cleanup as wsCleanup } from "#dynamic/routers/ws";
async function cleanup() { async function cleanup() {
await wsCleanup(); await wsCleanup();
@@ -10,4 +10,4 @@ export async function initCleanup() {
// Handle process termination // Handle process termination
process.on("SIGTERM", () => cleanup()); process.on("SIGTERM", () => cleanup());
process.on("SIGINT", () => cleanup()); process.on("SIGINT", () => cleanup());
} }

321
server/db/asns.ts Normal file
View File

@@ -0,0 +1,321 @@
// Curated list of major ASNs (Cloud Providers, CDNs, ISPs, etc.)
// This is not exhaustive - there are 100,000+ ASNs globally
// Users can still enter any ASN manually in the input field
export const MAJOR_ASNS = [
{
name: "ALL ASNs",
code: "ALL",
asn: 0 // Special value that will match all
},
// Major Cloud Providers
{
name: "Google LLC",
code: "AS15169",
asn: 15169
},
{
name: "Amazon AWS",
code: "AS16509",
asn: 16509
},
{
name: "Amazon AWS (EC2)",
code: "AS14618",
asn: 14618
},
{
name: "Microsoft Azure",
code: "AS8075",
asn: 8075
},
{
name: "Microsoft Corporation",
code: "AS8068",
asn: 8068
},
{
name: "DigitalOcean",
code: "AS14061",
asn: 14061
},
{
name: "Linode",
code: "AS63949",
asn: 63949
},
{
name: "Hetzner Online",
code: "AS24940",
asn: 24940
},
{
name: "OVH SAS",
code: "AS16276",
asn: 16276
},
{
name: "Oracle Cloud",
code: "AS31898",
asn: 31898
},
{
name: "Alibaba Cloud",
code: "AS45102",
asn: 45102
},
{
name: "IBM Cloud",
code: "AS36351",
asn: 36351
},
// CDNs
{
name: "Cloudflare",
code: "AS13335",
asn: 13335
},
{
name: "Fastly",
code: "AS54113",
asn: 54113
},
{
name: "Akamai Technologies",
code: "AS20940",
asn: 20940
},
{
name: "Akamai (Primary)",
code: "AS16625",
asn: 16625
},
// Mobile Carriers - US
{
name: "T-Mobile USA",
code: "AS21928",
asn: 21928
},
{
name: "Verizon Wireless",
code: "AS6167",
asn: 6167
},
{
name: "AT&T Mobility",
code: "AS20057",
asn: 20057
},
{
name: "Sprint (T-Mobile)",
code: "AS1239",
asn: 1239
},
{
name: "US Cellular",
code: "AS6430",
asn: 6430
},
// Mobile Carriers - Europe
{
name: "Vodafone UK",
code: "AS25135",
asn: 25135
},
{
name: "EE (UK)",
code: "AS12576",
asn: 12576
},
{
name: "Three UK",
code: "AS29194",
asn: 29194
},
{
name: "O2 UK",
code: "AS13285",
asn: 13285
},
{
name: "Telefonica Spain Mobile",
code: "AS12430",
asn: 12430
},
// Mobile Carriers - Asia
{
name: "NTT DoCoMo (Japan)",
code: "AS9605",
asn: 9605
},
{
name: "SoftBank Mobile (Japan)",
code: "AS17676",
asn: 17676
},
{
name: "SK Telecom (Korea)",
code: "AS9318",
asn: 9318
},
{
name: "KT Corporation Mobile (Korea)",
code: "AS4766",
asn: 4766
},
{
name: "Airtel India",
code: "AS24560",
asn: 24560
},
{
name: "China Mobile",
code: "AS9808",
asn: 9808
},
// Major US ISPs
{
name: "AT&T Services",
code: "AS7018",
asn: 7018
},
{
name: "Comcast Cable",
code: "AS7922",
asn: 7922
},
{
name: "Verizon",
code: "AS701",
asn: 701
},
{
name: "Cox Communications",
code: "AS22773",
asn: 22773
},
{
name: "Charter Communications",
code: "AS20115",
asn: 20115
},
{
name: "CenturyLink",
code: "AS209",
asn: 209
},
// Major European ISPs
{
name: "Deutsche Telekom",
code: "AS3320",
asn: 3320
},
{
name: "Vodafone",
code: "AS1273",
asn: 1273
},
{
name: "British Telecom",
code: "AS2856",
asn: 2856
},
{
name: "Orange",
code: "AS3215",
asn: 3215
},
{
name: "Telefonica",
code: "AS12956",
asn: 12956
},
// Major Asian ISPs
{
name: "China Telecom",
code: "AS4134",
asn: 4134
},
{
name: "China Unicom",
code: "AS4837",
asn: 4837
},
{
name: "NTT Communications",
code: "AS2914",
asn: 2914
},
{
name: "KDDI Corporation",
code: "AS2516",
asn: 2516
},
{
name: "Reliance Jio (India)",
code: "AS55836",
asn: 55836
},
// VPN/Proxy Providers
{
name: "Private Internet Access",
code: "AS46562",
asn: 46562
},
{
name: "NordVPN",
code: "AS202425",
asn: 202425
},
{
name: "Mullvad VPN",
code: "AS213281",
asn: 213281
},
// Social Media / Major Tech
{
name: "Facebook/Meta",
code: "AS32934",
asn: 32934
},
{
name: "Twitter/X",
code: "AS13414",
asn: 13414
},
{
name: "Apple",
code: "AS714",
asn: 714
},
{
name: "Netflix",
code: "AS2906",
asn: 2906
},
// Academic/Research
{
name: "MIT",
code: "AS3",
asn: 3
},
{
name: "Stanford University",
code: "AS32",
asn: 32
},
{
name: "CERN",
code: "AS513",
asn: 513
}
];

File diff suppressed because it is too large Load Diff

13
server/db/maxmindAsn.ts Normal file
View File

@@ -0,0 +1,13 @@
import maxmind, { AsnResponse, Reader } from "maxmind";
import config from "@server/lib/config";
let maxmindAsnLookup: Reader<AsnResponse> | null;
if (config.getRawConfig().server.maxmind_asn_path) {
maxmindAsnLookup = await maxmind.open<AsnResponse>(
config.getRawConfig().server.maxmind_asn_path!
);
} else {
maxmindAsnLookup = null;
}
export { maxmindAsnLookup };

View File

@@ -1708,4 +1708,4 @@
"Desert Box Turtle", "Desert Box Turtle",
"African Striped Weasel" "African Striped Weasel"
] ]
} }

View File

@@ -1,6 +1,7 @@
import { join } from "path"; import { join } from "path";
import { readFileSync } from "fs"; import { readFileSync } from "fs";
import { db, resources, siteResources } from "@server/db"; import { clients, db, resources, siteResources } from "@server/db";
import { randomInt } from "crypto";
import { exitNodes, sites } from "@server/db"; import { exitNodes, sites } from "@server/db";
import { eq, and } from "drizzle-orm"; import { eq, and } from "drizzle-orm";
import { __DIRNAME } from "@server/lib/consts"; import { __DIRNAME } from "@server/lib/consts";
@@ -15,6 +16,25 @@ if (!dev) {
} }
export const names = JSON.parse(readFileSync(file, "utf-8")); export const names = JSON.parse(readFileSync(file, "utf-8"));
export async function getUniqueClientName(orgId: string): Promise<string> {
let loops = 0;
while (true) {
if (loops > 100) {
throw new Error("Could not generate a unique name");
}
const name = generateName();
const count = await db
.select({ niceId: clients.niceId, orgId: clients.orgId })
.from(clients)
.where(and(eq(clients.niceId, name), eq(clients.orgId, orgId)));
if (count.length === 0) {
return name;
}
loops++;
}
}
export async function getUniqueSiteName(orgId: string): Promise<string> { export async function getUniqueSiteName(orgId: string): Promise<string> {
let loops = 0; let loops = 0;
while (true) { while (true) {
@@ -42,18 +62,36 @@ export async function getUniqueResourceName(orgId: string): Promise<string> {
} }
const name = generateName(); const name = generateName();
const count = await db const [resourceCount, siteResourceCount] = await Promise.all([
.select({ niceId: resources.niceId, orgId: resources.orgId }) db
.from(resources) .select({ niceId: resources.niceId, orgId: resources.orgId })
.where(and(eq(resources.niceId, name), eq(resources.orgId, orgId))); .from(resources)
if (count.length === 0) { .where(
and(eq(resources.niceId, name), eq(resources.orgId, orgId))
),
db
.select({
niceId: siteResources.niceId,
orgId: siteResources.orgId
})
.from(siteResources)
.where(
and(
eq(siteResources.niceId, name),
eq(siteResources.orgId, orgId)
)
)
]);
if (resourceCount.length === 0 && siteResourceCount.length === 0) {
return name; return name;
} }
loops++; loops++;
} }
} }
export async function getUniqueSiteResourceName(orgId: string): Promise<string> { export async function getUniqueSiteResourceName(
orgId: string
): Promise<string> {
let loops = 0; let loops = 0;
while (true) { while (true) {
if (loops > 100) { if (loops > 100) {
@@ -61,11 +99,27 @@ export async function getUniqueSiteResourceName(orgId: string): Promise<string>
} }
const name = generateName(); const name = generateName();
const count = await db const [resourceCount, siteResourceCount] = await Promise.all([
.select({ niceId: siteResources.niceId, orgId: siteResources.orgId }) db
.from(siteResources) .select({ niceId: resources.niceId, orgId: resources.orgId })
.where(and(eq(siteResources.niceId, name), eq(siteResources.orgId, orgId))); .from(resources)
if (count.length === 0) { .where(
and(eq(resources.niceId, name), eq(resources.orgId, orgId))
),
db
.select({
niceId: siteResources.niceId,
orgId: siteResources.orgId
})
.from(siteResources)
.where(
and(
eq(siteResources.niceId, name),
eq(siteResources.orgId, orgId)
)
)
]);
if (resourceCount.length === 0 && siteResourceCount.length === 0) {
return name; return name;
} }
loops++; loops++;
@@ -74,9 +128,7 @@ export async function getUniqueSiteResourceName(orgId: string): Promise<string>
export async function getUniqueExitNodeEndpointName(): Promise<string> { export async function getUniqueExitNodeEndpointName(): Promise<string> {
let loops = 0; let loops = 0;
const count = await db const count = await db.select().from(exitNodes);
.select()
.from(exitNodes);
while (true) { while (true) {
if (loops > 100) { if (loops > 100) {
throw new Error("Could not generate a unique name"); throw new Error("Could not generate a unique name");
@@ -95,14 +147,11 @@ export async function getUniqueExitNodeEndpointName(): Promise<string> {
} }
} }
export function generateName(): string { export function generateName(): string {
const name = ( const name = (
names.descriptors[ names.descriptors[randomInt(names.descriptors.length)] +
Math.floor(Math.random() * names.descriptors.length)
] +
"-" + "-" +
names.animals[Math.floor(Math.random() * names.animals.length)] names.animals[randomInt(names.animals.length)]
) )
.toLowerCase() .toLowerCase()
.replace(/\s/g, "-"); .replace(/\s/g, "-");

View File

@@ -6,25 +6,28 @@ import { withReplicas } from "drizzle-orm/pg-core";
function createDb() { function createDb() {
const config = readConfigFile(); const config = readConfigFile();
if (!config.postgres) { // check the environment variables for postgres config first before the config file
// check the environment variables for postgres config if (process.env.POSTGRES_CONNECTION_STRING) {
if (process.env.POSTGRES_CONNECTION_STRING) { config.postgres = {
config.postgres = { connection_string: process.env.POSTGRES_CONNECTION_STRING
connection_string: process.env.POSTGRES_CONNECTION_STRING };
}; if (process.env.POSTGRES_REPLICA_CONNECTION_STRINGS) {
if (process.env.POSTGRES_REPLICA_CONNECTION_STRINGS) { const replicas =
const replicas = process.env.POSTGRES_REPLICA_CONNECTION_STRINGS.split(",").map((conn) => ({ process.env.POSTGRES_REPLICA_CONNECTION_STRINGS.split(",").map(
connection_string: conn.trim() (conn) => ({
})); connection_string: conn.trim()
config.postgres.replicas = replicas; })
} );
} else { config.postgres.replicas = replicas;
throw new Error(
"Postgres configuration is missing in the configuration file."
);
} }
} }
if (!config.postgres) {
throw new Error(
"Postgres configuration is missing in the configuration file."
);
}
const connectionString = config.postgres?.connection_string; const connectionString = config.postgres?.connection_string;
const replicaConnections = config.postgres?.replicas || []; const replicaConnections = config.postgres?.replicas || [];
@@ -40,28 +43,45 @@ function createDb() {
connectionString, connectionString,
max: poolConfig?.max_connections || 20, max: poolConfig?.max_connections || 20,
idleTimeoutMillis: poolConfig?.idle_timeout_ms || 30000, idleTimeoutMillis: poolConfig?.idle_timeout_ms || 30000,
connectionTimeoutMillis: poolConfig?.connection_timeout_ms || 5000, connectionTimeoutMillis: poolConfig?.connection_timeout_ms || 5000
}); });
const replicas = []; const replicas = [];
if (!replicaConnections.length) { if (!replicaConnections.length) {
replicas.push(DrizzlePostgres(primaryPool)); replicas.push(
DrizzlePostgres(primaryPool, {
logger: process.env.QUERY_LOGGING == "true"
})
);
} else { } else {
for (const conn of replicaConnections) { for (const conn of replicaConnections) {
const replicaPool = new Pool({ const replicaPool = new Pool({
connectionString: conn.connection_string, connectionString: conn.connection_string,
max: poolConfig?.max_replica_connections || 20, max: poolConfig?.max_replica_connections || 20,
idleTimeoutMillis: poolConfig?.idle_timeout_ms || 30000, idleTimeoutMillis: poolConfig?.idle_timeout_ms || 30000,
connectionTimeoutMillis: poolConfig?.connection_timeout_ms || 5000, connectionTimeoutMillis:
poolConfig?.connection_timeout_ms || 5000
}); });
replicas.push(DrizzlePostgres(replicaPool)); replicas.push(
DrizzlePostgres(replicaPool, {
logger: process.env.QUERY_LOGGING == "true"
})
);
} }
} }
return withReplicas(DrizzlePostgres(primaryPool), replicas as any); return withReplicas(
DrizzlePostgres(primaryPool, {
logger: process.env.QUERY_LOGGING == "true"
}),
replicas as any
);
} }
export const db = createDb(); export const db = createDb();
export default db; export default db;
export type Transaction = Parameters<Parameters<typeof db["transaction"]>[0]>[0]; export const primaryDb = db.$primary;
export type Transaction = Parameters<
Parameters<(typeof db)["transaction"]>[0]
>[0];

View File

@@ -10,7 +10,8 @@ const runMigrations = async () => {
await migrate(db as any, { await migrate(db as any, {
migrationsFolder: migrationsFolder migrationsFolder: migrationsFolder
}); });
console.log("Migrations completed successfully."); console.log("Migrations completed successfully.");
process.exit(0);
} catch (error) { } catch (error) {
console.error("Error running migrations:", error); console.error("Error running migrations:", error);
process.exit(1); process.exit(1);

View File

@@ -204,6 +204,29 @@ export const loginPageOrg = pgTable("loginPageOrg", {
.references(() => orgs.orgId, { onDelete: "cascade" }) .references(() => orgs.orgId, { onDelete: "cascade" })
}); });
export const loginPageBranding = pgTable("loginPageBranding", {
loginPageBrandingId: serial("loginPageBrandingId").primaryKey(),
logoUrl: text("logoUrl").notNull(),
logoWidth: integer("logoWidth").notNull(),
logoHeight: integer("logoHeight").notNull(),
primaryColor: text("primaryColor"),
resourceTitle: text("resourceTitle").notNull(),
resourceSubtitle: text("resourceSubtitle"),
orgTitle: text("orgTitle"),
orgSubtitle: text("orgSubtitle")
});
export const loginPageBrandingOrg = pgTable("loginPageBrandingOrg", {
loginPageBrandingId: integer("loginPageBrandingId")
.notNull()
.references(() => loginPageBranding.loginPageBrandingId, {
onDelete: "cascade"
}),
orgId: varchar("orgId")
.notNull()
.references(() => orgs.orgId, { onDelete: "cascade" })
});
export const sessionTransferToken = pgTable("sessionTransferToken", { export const sessionTransferToken = pgTable("sessionTransferToken", {
token: varchar("token").primaryKey(), token: varchar("token").primaryKey(),
sessionId: varchar("sessionId") sessionId: varchar("sessionId")
@@ -215,42 +238,56 @@ export const sessionTransferToken = pgTable("sessionTransferToken", {
expiresAt: bigint("expiresAt", { mode: "number" }).notNull() expiresAt: bigint("expiresAt", { mode: "number" }).notNull()
}); });
export const actionAuditLog = pgTable("actionAuditLog", { export const actionAuditLog = pgTable(
id: serial("id").primaryKey(), "actionAuditLog",
timestamp: bigint("timestamp", { mode: "number" }).notNull(), // this is EPOCH time in seconds {
orgId: varchar("orgId") id: serial("id").primaryKey(),
.notNull() timestamp: bigint("timestamp", { mode: "number" }).notNull(), // this is EPOCH time in seconds
.references(() => orgs.orgId, { onDelete: "cascade" }), orgId: varchar("orgId")
actorType: varchar("actorType", { length: 50 }).notNull(), .notNull()
actor: varchar("actor", { length: 255 }).notNull(), .references(() => orgs.orgId, { onDelete: "cascade" }),
actorId: varchar("actorId", { length: 255 }).notNull(), actorType: varchar("actorType", { length: 50 }).notNull(),
action: varchar("action", { length: 100 }).notNull(), actor: varchar("actor", { length: 255 }).notNull(),
metadata: text("metadata") actorId: varchar("actorId", { length: 255 }).notNull(),
}, (table) => ([ action: varchar("action", { length: 100 }).notNull(),
index("idx_actionAuditLog_timestamp").on(table.timestamp), metadata: text("metadata")
index("idx_actionAuditLog_org_timestamp").on(table.orgId, table.timestamp) },
])); (table) => [
index("idx_actionAuditLog_timestamp").on(table.timestamp),
index("idx_actionAuditLog_org_timestamp").on(
table.orgId,
table.timestamp
)
]
);
export const accessAuditLog = pgTable("accessAuditLog", { export const accessAuditLog = pgTable(
id: serial("id").primaryKey(), "accessAuditLog",
timestamp: bigint("timestamp", { mode: "number" }).notNull(), // this is EPOCH time in seconds {
orgId: varchar("orgId") id: serial("id").primaryKey(),
.notNull() timestamp: bigint("timestamp", { mode: "number" }).notNull(), // this is EPOCH time in seconds
.references(() => orgs.orgId, { onDelete: "cascade" }), orgId: varchar("orgId")
actorType: varchar("actorType", { length: 50 }), .notNull()
actor: varchar("actor", { length: 255 }), .references(() => orgs.orgId, { onDelete: "cascade" }),
actorId: varchar("actorId", { length: 255 }), actorType: varchar("actorType", { length: 50 }),
resourceId: integer("resourceId"), actor: varchar("actor", { length: 255 }),
ip: varchar("ip", { length: 45 }), actorId: varchar("actorId", { length: 255 }),
type: varchar("type", { length: 100 }).notNull(), resourceId: integer("resourceId"),
action: boolean("action").notNull(), ip: varchar("ip", { length: 45 }),
location: text("location"), type: varchar("type", { length: 100 }).notNull(),
userAgent: text("userAgent"), action: boolean("action").notNull(),
metadata: text("metadata") location: text("location"),
}, (table) => ([ userAgent: text("userAgent"),
index("idx_identityAuditLog_timestamp").on(table.timestamp), metadata: text("metadata")
index("idx_identityAuditLog_org_timestamp").on(table.orgId, table.timestamp) },
])); (table) => [
index("idx_identityAuditLog_timestamp").on(table.timestamp),
index("idx_identityAuditLog_org_timestamp").on(
table.orgId,
table.timestamp
)
]
);
export type Limit = InferSelectModel<typeof limits>; export type Limit = InferSelectModel<typeof limits>;
export type Account = InferSelectModel<typeof account>; export type Account = InferSelectModel<typeof account>;
@@ -269,5 +306,6 @@ export type RemoteExitNodeSession = InferSelectModel<
>; >;
export type ExitNodeOrg = InferSelectModel<typeof exitNodeOrgs>; export type ExitNodeOrg = InferSelectModel<typeof exitNodeOrgs>;
export type LoginPage = InferSelectModel<typeof loginPage>; export type LoginPage = InferSelectModel<typeof loginPage>;
export type LoginPageBranding = InferSelectModel<typeof loginPageBranding>;
export type ActionAuditLog = InferSelectModel<typeof actionAuditLog>; export type ActionAuditLog = InferSelectModel<typeof actionAuditLog>;
export type AccessAuditLog = InferSelectModel<typeof accessAuditLog>; export type AccessAuditLog = InferSelectModel<typeof accessAuditLog>;

View File

@@ -7,10 +7,12 @@ import {
bigint, bigint,
real, real,
text, text,
index index,
uniqueIndex
} from "drizzle-orm/pg-core"; } from "drizzle-orm/pg-core";
import { InferSelectModel } from "drizzle-orm"; import { InferSelectModel } from "drizzle-orm";
import { randomUUID } from "crypto"; import { randomUUID } from "crypto";
import { alias } from "yargs";
export const domains = pgTable("domains", { export const domains = pgTable("domains", {
domainId: varchar("domainId").primaryKey(), domainId: varchar("domainId").primaryKey(),
@@ -40,17 +42,18 @@ export const orgs = pgTable("orgs", {
orgId: varchar("orgId").primaryKey(), orgId: varchar("orgId").primaryKey(),
name: varchar("name").notNull(), name: varchar("name").notNull(),
subnet: varchar("subnet"), subnet: varchar("subnet"),
utilitySubnet: varchar("utilitySubnet"), // this is the subnet for utility addresses
createdAt: text("createdAt"), createdAt: text("createdAt"),
requireTwoFactor: boolean("requireTwoFactor"), requireTwoFactor: boolean("requireTwoFactor"),
maxSessionLengthHours: integer("maxSessionLengthHours"), maxSessionLengthHours: integer("maxSessionLengthHours"),
passwordExpiryDays: integer("passwordExpiryDays"), passwordExpiryDays: integer("passwordExpiryDays"),
settingsLogRetentionDaysRequest: integer("settingsLogRetentionDaysRequest") // where 0 = dont keep logs and -1 = keep forever settingsLogRetentionDaysRequest: integer("settingsLogRetentionDaysRequest") // where 0 = dont keep logs and -1 = keep forever, and 9001 = end of the following year
.notNull() .notNull()
.default(7), .default(7),
settingsLogRetentionDaysAccess: integer("settingsLogRetentionDaysAccess") settingsLogRetentionDaysAccess: integer("settingsLogRetentionDaysAccess") // where 0 = dont keep logs and -1 = keep forever and 9001 = end of the following year
.notNull() .notNull()
.default(0), .default(0),
settingsLogRetentionDaysAction: integer("settingsLogRetentionDaysAction") settingsLogRetentionDaysAction: integer("settingsLogRetentionDaysAction") // where 0 = dont keep logs and -1 = keep forever and 9001 = end of the following year
.notNull() .notNull()
.default(0) .default(0)
}); });
@@ -88,8 +91,7 @@ export const sites = pgTable("sites", {
publicKey: varchar("publicKey"), publicKey: varchar("publicKey"),
lastHolePunch: bigint("lastHolePunch", { mode: "number" }), lastHolePunch: bigint("lastHolePunch", { mode: "number" }),
listenPort: integer("listenPort"), listenPort: integer("listenPort"),
dockerSocketEnabled: boolean("dockerSocketEnabled").notNull().default(true), dockerSocketEnabled: boolean("dockerSocketEnabled").notNull().default(true)
remoteSubnets: text("remoteSubnets") // comma-separated list of subnets that this site can access
}); });
export const resources = pgTable("resources", { export const resources = pgTable("resources", {
@@ -175,7 +177,8 @@ export const targetHealthCheck = pgTable("targetHealthCheck", {
hcFollowRedirects: boolean("hcFollowRedirects").default(true), hcFollowRedirects: boolean("hcFollowRedirects").default(true),
hcMethod: varchar("hcMethod").default("GET"), hcMethod: varchar("hcMethod").default("GET"),
hcStatus: integer("hcStatus"), // http code hcStatus: integer("hcStatus"), // http code
hcHealth: text("hcHealth").default("unknown") // "unknown", "healthy", "unhealthy" hcHealth: text("hcHealth").default("unknown"), // "unknown", "healthy", "unhealthy"
hcTlsServerName: text("hcTlsServerName")
}); });
export const exitNodes = pgTable("exitNodes", { export const exitNodes = pgTable("exitNodes", {
@@ -204,11 +207,44 @@ export const siteResources = pgTable("siteResources", {
.references(() => orgs.orgId, { onDelete: "cascade" }), .references(() => orgs.orgId, { onDelete: "cascade" }),
niceId: varchar("niceId").notNull(), niceId: varchar("niceId").notNull(),
name: varchar("name").notNull(), name: varchar("name").notNull(),
protocol: varchar("protocol").notNull(), mode: varchar("mode").notNull(), // "host" | "cidr" | "port"
proxyPort: integer("proxyPort").notNull(), protocol: varchar("protocol"), // only for port mode
destinationPort: integer("destinationPort").notNull(), proxyPort: integer("proxyPort"), // only for port mode
destinationIp: varchar("destinationIp").notNull(), destinationPort: integer("destinationPort"), // only for port mode
enabled: boolean("enabled").notNull().default(true) destination: varchar("destination").notNull(), // ip, cidr, hostname; validate against the mode
enabled: boolean("enabled").notNull().default(true),
alias: varchar("alias"),
aliasAddress: varchar("aliasAddress"),
tcpPortRangeString: varchar("tcpPortRangeString"),
udpPortRangeString: varchar("udpPortRangeString"),
disableIcmp: boolean("disableIcmp").notNull().default(false)
});
export const clientSiteResources = pgTable("clientSiteResources", {
clientId: integer("clientId")
.notNull()
.references(() => clients.clientId, { onDelete: "cascade" }),
siteResourceId: integer("siteResourceId")
.notNull()
.references(() => siteResources.siteResourceId, { onDelete: "cascade" })
});
export const roleSiteResources = pgTable("roleSiteResources", {
roleId: integer("roleId")
.notNull()
.references(() => roles.roleId, { onDelete: "cascade" }),
siteResourceId: integer("siteResourceId")
.notNull()
.references(() => siteResources.siteResourceId, { onDelete: "cascade" })
});
export const userSiteResources = pgTable("userSiteResources", {
userId: varchar("userId")
.notNull()
.references(() => users.userId, { onDelete: "cascade" }),
siteResourceId: integer("siteResourceId")
.notNull()
.references(() => siteResources.siteResourceId, { onDelete: "cascade" })
}); });
export const users = pgTable("user", { export const users = pgTable("user", {
@@ -256,7 +292,8 @@ export const sessions = pgTable("session", {
.notNull() .notNull()
.references(() => users.userId, { onDelete: "cascade" }), .references(() => users.userId, { onDelete: "cascade" }),
expiresAt: bigint("expiresAt", { mode: "number" }).notNull(), expiresAt: bigint("expiresAt", { mode: "number" }).notNull(),
issuedAt: bigint("issuedAt", { mode: "number" }) issuedAt: bigint("issuedAt", { mode: "number" }),
deviceAuthUsed: boolean("deviceAuthUsed").notNull().default(false)
}); });
export const newtSessions = pgTable("newtSession", { export const newtSessions = pgTable("newtSession", {
@@ -598,7 +635,7 @@ export const idpOrg = pgTable("idpOrg", {
}); });
export const clients = pgTable("clients", { export const clients = pgTable("clients", {
clientId: serial("id").primaryKey(), clientId: serial("clientId").primaryKey(),
orgId: varchar("orgId") orgId: varchar("orgId")
.references(() => orgs.orgId, { .references(() => orgs.orgId, {
onDelete: "cascade" onDelete: "cascade"
@@ -607,6 +644,12 @@ export const clients = pgTable("clients", {
exitNodeId: integer("exitNode").references(() => exitNodes.exitNodeId, { exitNodeId: integer("exitNode").references(() => exitNodes.exitNodeId, {
onDelete: "set null" onDelete: "set null"
}), }),
userId: text("userId").references(() => users.userId, {
// optionally tied to a user and in this case delete when the user deletes
onDelete: "cascade"
}),
niceId: varchar("niceId").notNull(),
olmId: text("olmId"), // to lock it to a specific olm optionally
name: varchar("name").notNull(), name: varchar("name").notNull(),
pubKey: varchar("pubKey"), pubKey: varchar("pubKey"),
subnet: varchar("subnet").notNull(), subnet: varchar("subnet").notNull(),
@@ -621,23 +664,40 @@ export const clients = pgTable("clients", {
maxConnections: integer("maxConnections") maxConnections: integer("maxConnections")
}); });
export const clientSites = pgTable("clientSites", { export const clientSitesAssociationsCache = pgTable(
clientId: integer("clientId") "clientSitesAssociationsCache",
.notNull() {
.references(() => clients.clientId, { onDelete: "cascade" }), clientId: integer("clientId") // not a foreign key here so after its deleted the rebuild function can delete it and send the message
siteId: integer("siteId") .notNull(),
.notNull() siteId: integer("siteId").notNull(),
.references(() => sites.siteId, { onDelete: "cascade" }), isRelayed: boolean("isRelayed").notNull().default(false),
isRelayed: boolean("isRelayed").notNull().default(false), endpoint: varchar("endpoint"),
endpoint: varchar("endpoint") publicKey: varchar("publicKey") // this will act as the session's public key for hole punching so we can track when it changes
}); }
);
export const clientSiteResourcesAssociationsCache = pgTable(
"clientSiteResourcesAssociationsCache",
{
clientId: integer("clientId") // not a foreign key here so after its deleted the rebuild function can delete it and send the message
.notNull(),
siteResourceId: integer("siteResourceId").notNull()
}
);
export const olms = pgTable("olms", { export const olms = pgTable("olms", {
olmId: varchar("id").primaryKey(), olmId: varchar("id").primaryKey(),
secretHash: varchar("secretHash").notNull(), secretHash: varchar("secretHash").notNull(),
dateCreated: varchar("dateCreated").notNull(), dateCreated: varchar("dateCreated").notNull(),
version: text("version"), version: text("version"),
agent: text("agent"),
name: varchar("name"),
clientId: integer("clientId").references(() => clients.clientId, { clientId: integer("clientId").references(() => clients.clientId, {
// we will switch this depending on the current org it wants to connect to
onDelete: "set null"
}),
userId: text("userId").references(() => users.userId, {
// optionally tied to a user and in this case delete when the user deletes
onDelete: "cascade" onDelete: "cascade"
}) })
}); });
@@ -753,6 +813,21 @@ export const requestAuditLog = pgTable(
] ]
); );
export const deviceWebAuthCodes = pgTable("deviceWebAuthCodes", {
codeId: serial("codeId").primaryKey(),
code: text("code").notNull().unique(),
ip: text("ip"),
city: text("city"),
deviceName: text("deviceName"),
applicationName: text("applicationName").notNull(),
expiresAt: bigint("expiresAt", { mode: "number" }).notNull(),
createdAt: bigint("createdAt", { mode: "number" }).notNull(),
verified: boolean("verified").notNull().default(false),
userId: varchar("userId").references(() => users.userId, {
onDelete: "cascade"
})
});
export type Org = InferSelectModel<typeof orgs>; export type Org = InferSelectModel<typeof orgs>;
export type User = InferSelectModel<typeof users>; export type User = InferSelectModel<typeof users>;
export type Site = InferSelectModel<typeof sites>; export type Site = InferSelectModel<typeof sites>;
@@ -793,7 +868,7 @@ export type ApiKey = InferSelectModel<typeof apiKeys>;
export type ApiKeyAction = InferSelectModel<typeof apiKeyActions>; export type ApiKeyAction = InferSelectModel<typeof apiKeyActions>;
export type ApiKeyOrg = InferSelectModel<typeof apiKeyOrg>; export type ApiKeyOrg = InferSelectModel<typeof apiKeyOrg>;
export type Client = InferSelectModel<typeof clients>; export type Client = InferSelectModel<typeof clients>;
export type ClientSite = InferSelectModel<typeof clientSites>; export type ClientSite = InferSelectModel<typeof clientSitesAssociationsCache>;
export type Olm = InferSelectModel<typeof olms>; export type Olm = InferSelectModel<typeof olms>;
export type OlmSession = InferSelectModel<typeof olmSessions>; export type OlmSession = InferSelectModel<typeof olmSessions>;
export type UserClient = InferSelectModel<typeof userClients>; export type UserClient = InferSelectModel<typeof userClients>;
@@ -808,4 +883,5 @@ export type Blueprint = InferSelectModel<typeof blueprints>;
export type LicenseKey = InferSelectModel<typeof licenseKey>; export type LicenseKey = InferSelectModel<typeof licenseKey>;
export type SecurityKey = InferSelectModel<typeof securityKeys>; export type SecurityKey = InferSelectModel<typeof securityKeys>;
export type WebauthnChallenge = InferSelectModel<typeof webauthnChallenge>; export type WebauthnChallenge = InferSelectModel<typeof webauthnChallenge>;
export type DeviceWebAuthCode = InferSelectModel<typeof deviceWebAuthCodes>;
export type RequestAuditLog = InferSelectModel<typeof requestAuditLog>; export type RequestAuditLog = InferSelectModel<typeof requestAuditLog>;

View File

@@ -52,10 +52,7 @@ export async function getResourceByDomain(
resourceHeaderAuth, resourceHeaderAuth,
eq(resourceHeaderAuth.resourceId, resources.resourceId) eq(resourceHeaderAuth.resourceId, resources.resourceId)
) )
.innerJoin( .innerJoin(orgs, eq(orgs.orgId, resources.orgId))
orgs,
eq(orgs.orgId, resources.orgId)
)
.where(eq(resources.fullDomain, domain)) .where(eq(resources.fullDomain, domain))
.limit(1); .limit(1);

View File

@@ -20,6 +20,7 @@ function createDb() {
export const db = createDb(); export const db = createDb();
export default db; export default db;
export const primaryDb = db;
export type Transaction = Parameters< export type Transaction = Parameters<
Parameters<(typeof db)["transaction"]>[0] Parameters<(typeof db)["transaction"]>[0]
>[0]; >[0];

View File

@@ -8,7 +8,7 @@ const runMigrations = async () => {
console.log("Running migrations..."); console.log("Running migrations...");
try { try {
migrate(db as any, { migrate(db as any, {
migrationsFolder: migrationsFolder, migrationsFolder: migrationsFolder
}); });
console.log("Migrations completed successfully."); console.log("Migrations completed successfully.");
} catch (error) { } catch (error) {

View File

@@ -1,13 +1,12 @@
import {
sqliteTable,
integer,
text,
real,
index
} from "drizzle-orm/sqlite-core";
import { InferSelectModel } from "drizzle-orm"; import { InferSelectModel } from "drizzle-orm";
import { domains, orgs, targets, users, exitNodes, sessions } from "./schema"; import {
import { metadata } from "@app/app/[orgId]/settings/layout"; index,
integer,
real,
sqliteTable,
text
} from "drizzle-orm/sqlite-core";
import { domains, exitNodes, orgs, sessions, users } from "./schema";
export const certificates = sqliteTable("certificates", { export const certificates = sqliteTable("certificates", {
certId: integer("certId").primaryKey({ autoIncrement: true }), certId: integer("certId").primaryKey({ autoIncrement: true }),
@@ -29,7 +28,9 @@ export const certificates = sqliteTable("certificates", {
}); });
export const dnsChallenge = sqliteTable("dnsChallenges", { export const dnsChallenge = sqliteTable("dnsChallenges", {
dnsChallengeId: integer("dnsChallengeId").primaryKey({ autoIncrement: true }), dnsChallengeId: integer("dnsChallengeId").primaryKey({
autoIncrement: true
}),
domain: text("domain").notNull(), domain: text("domain").notNull(),
token: text("token").notNull(), token: text("token").notNull(),
keyAuthorization: text("keyAuthorization").notNull(), keyAuthorization: text("keyAuthorization").notNull(),
@@ -61,9 +62,7 @@ export const customers = sqliteTable("customers", {
}); });
export const subscriptions = sqliteTable("subscriptions", { export const subscriptions = sqliteTable("subscriptions", {
subscriptionId: text("subscriptionId") subscriptionId: text("subscriptionId").primaryKey().notNull(),
.primaryKey()
.notNull(),
customerId: text("customerId") customerId: text("customerId")
.notNull() .notNull()
.references(() => customers.customerId, { onDelete: "cascade" }), .references(() => customers.customerId, { onDelete: "cascade" }),
@@ -75,7 +74,9 @@ export const subscriptions = sqliteTable("subscriptions", {
}); });
export const subscriptionItems = sqliteTable("subscriptionItems", { export const subscriptionItems = sqliteTable("subscriptionItems", {
subscriptionItemId: integer("subscriptionItemId").primaryKey({ autoIncrement: true }), subscriptionItemId: integer("subscriptionItemId").primaryKey({
autoIncrement: true
}),
subscriptionId: text("subscriptionId") subscriptionId: text("subscriptionId")
.notNull() .notNull()
.references(() => subscriptions.subscriptionId, { .references(() => subscriptions.subscriptionId, {
@@ -129,7 +130,9 @@ export const limits = sqliteTable("limits", {
}); });
export const usageNotifications = sqliteTable("usageNotifications", { export const usageNotifications = sqliteTable("usageNotifications", {
notificationId: integer("notificationId").primaryKey({ autoIncrement: true }), notificationId: integer("notificationId").primaryKey({
autoIncrement: true
}),
orgId: text("orgId") orgId: text("orgId")
.notNull() .notNull()
.references(() => orgs.orgId, { onDelete: "cascade" }), .references(() => orgs.orgId, { onDelete: "cascade" }),
@@ -199,6 +202,31 @@ export const loginPageOrg = sqliteTable("loginPageOrg", {
.references(() => orgs.orgId, { onDelete: "cascade" }) .references(() => orgs.orgId, { onDelete: "cascade" })
}); });
export const loginPageBranding = sqliteTable("loginPageBranding", {
loginPageBrandingId: integer("loginPageBrandingId").primaryKey({
autoIncrement: true
}),
logoUrl: text("logoUrl").notNull(),
logoWidth: integer("logoWidth").notNull(),
logoHeight: integer("logoHeight").notNull(),
primaryColor: text("primaryColor"),
resourceTitle: text("resourceTitle").notNull(),
resourceSubtitle: text("resourceSubtitle"),
orgTitle: text("orgTitle"),
orgSubtitle: text("orgSubtitle")
});
export const loginPageBrandingOrg = sqliteTable("loginPageBrandingOrg", {
loginPageBrandingId: integer("loginPageBrandingId")
.notNull()
.references(() => loginPageBranding.loginPageBrandingId, {
onDelete: "cascade"
}),
orgId: text("orgId")
.notNull()
.references(() => orgs.orgId, { onDelete: "cascade" })
});
export const sessionTransferToken = sqliteTable("sessionTransferToken", { export const sessionTransferToken = sqliteTable("sessionTransferToken", {
token: text("token").primaryKey(), token: text("token").primaryKey(),
sessionId: text("sessionId") sessionId: text("sessionId")
@@ -210,42 +238,56 @@ export const sessionTransferToken = sqliteTable("sessionTransferToken", {
expiresAt: integer("expiresAt").notNull() expiresAt: integer("expiresAt").notNull()
}); });
export const actionAuditLog = sqliteTable("actionAuditLog", { export const actionAuditLog = sqliteTable(
id: integer("id").primaryKey({ autoIncrement: true }), "actionAuditLog",
timestamp: integer("timestamp").notNull(), // this is EPOCH time in seconds {
orgId: text("orgId") id: integer("id").primaryKey({ autoIncrement: true }),
.notNull() timestamp: integer("timestamp").notNull(), // this is EPOCH time in seconds
.references(() => orgs.orgId, { onDelete: "cascade" }), orgId: text("orgId")
actorType: text("actorType").notNull(), .notNull()
actor: text("actor").notNull(), .references(() => orgs.orgId, { onDelete: "cascade" }),
actorId: text("actorId").notNull(), actorType: text("actorType").notNull(),
action: text("action").notNull(), actor: text("actor").notNull(),
metadata: text("metadata") actorId: text("actorId").notNull(),
}, (table) => ([ action: text("action").notNull(),
index("idx_actionAuditLog_timestamp").on(table.timestamp), metadata: text("metadata")
index("idx_actionAuditLog_org_timestamp").on(table.orgId, table.timestamp) },
])); (table) => [
index("idx_actionAuditLog_timestamp").on(table.timestamp),
index("idx_actionAuditLog_org_timestamp").on(
table.orgId,
table.timestamp
)
]
);
export const accessAuditLog = sqliteTable("accessAuditLog", { export const accessAuditLog = sqliteTable(
id: integer("id").primaryKey({ autoIncrement: true }), "accessAuditLog",
timestamp: integer("timestamp").notNull(), // this is EPOCH time in seconds {
orgId: text("orgId") id: integer("id").primaryKey({ autoIncrement: true }),
.notNull() timestamp: integer("timestamp").notNull(), // this is EPOCH time in seconds
.references(() => orgs.orgId, { onDelete: "cascade" }), orgId: text("orgId")
actorType: text("actorType"), .notNull()
actor: text("actor"), .references(() => orgs.orgId, { onDelete: "cascade" }),
actorId: text("actorId"), actorType: text("actorType"),
resourceId: integer("resourceId"), actor: text("actor"),
ip: text("ip"), actorId: text("actorId"),
location: text("location"), resourceId: integer("resourceId"),
type: text("type").notNull(), ip: text("ip"),
action: integer("action", { mode: "boolean" }).notNull(), location: text("location"),
userAgent: text("userAgent"), type: text("type").notNull(),
metadata: text("metadata") action: integer("action", { mode: "boolean" }).notNull(),
}, (table) => ([ userAgent: text("userAgent"),
index("idx_identityAuditLog_timestamp").on(table.timestamp), metadata: text("metadata")
index("idx_identityAuditLog_org_timestamp").on(table.orgId, table.timestamp) },
])); (table) => [
index("idx_identityAuditLog_timestamp").on(table.timestamp),
index("idx_identityAuditLog_org_timestamp").on(
table.orgId,
table.timestamp
)
]
);
export type Limit = InferSelectModel<typeof limits>; export type Limit = InferSelectModel<typeof limits>;
export type Account = InferSelectModel<typeof account>; export type Account = InferSelectModel<typeof account>;
@@ -264,5 +306,6 @@ export type RemoteExitNodeSession = InferSelectModel<
>; >;
export type ExitNodeOrg = InferSelectModel<typeof exitNodeOrgs>; export type ExitNodeOrg = InferSelectModel<typeof exitNodeOrgs>;
export type LoginPage = InferSelectModel<typeof loginPage>; export type LoginPage = InferSelectModel<typeof loginPage>;
export type LoginPageBranding = InferSelectModel<typeof loginPageBranding>;
export type ActionAuditLog = InferSelectModel<typeof actionAuditLog>; export type ActionAuditLog = InferSelectModel<typeof actionAuditLog>;
export type AccessAuditLog = InferSelectModel<typeof accessAuditLog>; export type AccessAuditLog = InferSelectModel<typeof accessAuditLog>;

View File

@@ -1,7 +1,13 @@
import { randomUUID } from "crypto"; import { randomUUID } from "crypto";
import { InferSelectModel } from "drizzle-orm"; import { InferSelectModel } from "drizzle-orm";
import { sqliteTable, text, integer, index } from "drizzle-orm/sqlite-core"; import {
import { boolean } from "yargs"; sqliteTable,
text,
integer,
index,
uniqueIndex
} from "drizzle-orm/sqlite-core";
import { no } from "zod/v4/locales";
export const domains = sqliteTable("domains", { export const domains = sqliteTable("domains", {
domainId: text("domainId").primaryKey(), domainId: text("domainId").primaryKey(),
@@ -25,26 +31,26 @@ export const dnsRecords = sqliteTable("dnsRecords", {
recordType: text("recordType").notNull(), // "NS" | "CNAME" | "A" | "TXT" recordType: text("recordType").notNull(), // "NS" | "CNAME" | "A" | "TXT"
baseDomain: text("baseDomain"), baseDomain: text("baseDomain"),
value: text("value").notNull(), value: text("value").notNull(),
verified: integer("verified", { mode: "boolean" }).notNull().default(false), verified: integer("verified", { mode: "boolean" }).notNull().default(false)
}); });
export const orgs = sqliteTable("orgs", { export const orgs = sqliteTable("orgs", {
orgId: text("orgId").primaryKey(), orgId: text("orgId").primaryKey(),
name: text("name").notNull(), name: text("name").notNull(),
subnet: text("subnet"), subnet: text("subnet"),
utilitySubnet: text("utilitySubnet"), // this is the subnet for utility addresses
createdAt: text("createdAt"), createdAt: text("createdAt"),
requireTwoFactor: integer("requireTwoFactor", { mode: "boolean" }), requireTwoFactor: integer("requireTwoFactor", { mode: "boolean" }),
maxSessionLengthHours: integer("maxSessionLengthHours"), // hours maxSessionLengthHours: integer("maxSessionLengthHours"), // hours
passwordExpiryDays: integer("passwordExpiryDays"), // days passwordExpiryDays: integer("passwordExpiryDays"), // days
settingsLogRetentionDaysRequest: integer("settingsLogRetentionDaysRequest") // where 0 = dont keep logs and -1 = keep forever settingsLogRetentionDaysRequest: integer("settingsLogRetentionDaysRequest") // where 0 = dont keep logs and -1 = keep forever and 9001 = end of the following year
.notNull() .notNull()
.default(7), .default(7),
settingsLogRetentionDaysAccess: integer("settingsLogRetentionDaysAccess") settingsLogRetentionDaysAccess: integer("settingsLogRetentionDaysAccess") // where 0 = dont keep logs and -1 = keep forever and 9001 = end of the following year
.notNull() .notNull()
.default(0), .default(0),
settingsLogRetentionDaysAction: integer("settingsLogRetentionDaysAction") settingsLogRetentionDaysAction: integer("settingsLogRetentionDaysAction") // where 0 = dont keep logs and -1 = keep forever and 9001 = end of the following year
.notNull() .notNull()
.default(0) .default(0)
}); });
@@ -95,8 +101,7 @@ export const sites = sqliteTable("sites", {
listenPort: integer("listenPort"), listenPort: integer("listenPort"),
dockerSocketEnabled: integer("dockerSocketEnabled", { mode: "boolean" }) dockerSocketEnabled: integer("dockerSocketEnabled", { mode: "boolean" })
.notNull() .notNull()
.default(true), .default(true)
remoteSubnets: text("remoteSubnets") // comma-separated list of subnets that this site can access
}); });
export const resources = sqliteTable("resources", { export const resources = sqliteTable("resources", {
@@ -142,9 +147,10 @@ export const resources = sqliteTable("resources", {
onDelete: "set null" onDelete: "set null"
}), }),
headers: text("headers"), // comma-separated list of headers to add to the request headers: text("headers"), // comma-separated list of headers to add to the request
proxyProtocol: integer("proxyProtocol", { mode: "boolean" }).notNull().default(false), proxyProtocol: integer("proxyProtocol", { mode: "boolean" })
.notNull()
.default(false),
proxyProtocolVersion: integer("proxyProtocolVersion").default(1) proxyProtocolVersion: integer("proxyProtocolVersion").default(1)
}); });
export const targets = sqliteTable("targets", { export const targets = sqliteTable("targets", {
@@ -195,7 +201,8 @@ export const targetHealthCheck = sqliteTable("targetHealthCheck", {
}).default(true), }).default(true),
hcMethod: text("hcMethod").default("GET"), hcMethod: text("hcMethod").default("GET"),
hcStatus: integer("hcStatus"), // http code hcStatus: integer("hcStatus"), // http code
hcHealth: text("hcHealth").default("unknown") // "unknown", "healthy", "unhealthy" hcHealth: text("hcHealth").default("unknown"), // "unknown", "healthy", "unhealthy"
hcTlsServerName: text("hcTlsServerName")
}); });
export const exitNodes = sqliteTable("exitNodes", { export const exitNodes = sqliteTable("exitNodes", {
@@ -226,11 +233,44 @@ export const siteResources = sqliteTable("siteResources", {
.references(() => orgs.orgId, { onDelete: "cascade" }), .references(() => orgs.orgId, { onDelete: "cascade" }),
niceId: text("niceId").notNull(), niceId: text("niceId").notNull(),
name: text("name").notNull(), name: text("name").notNull(),
protocol: text("protocol").notNull(), mode: text("mode").notNull(), // "host" | "cidr" | "port"
proxyPort: integer("proxyPort").notNull(), protocol: text("protocol"), // only for port mode
destinationPort: integer("destinationPort").notNull(), proxyPort: integer("proxyPort"), // only for port mode
destinationIp: text("destinationIp").notNull(), destinationPort: integer("destinationPort"), // only for port mode
enabled: integer("enabled", { mode: "boolean" }).notNull().default(true) destination: text("destination").notNull(), // ip, cidr, hostname
enabled: integer("enabled", { mode: "boolean" }).notNull().default(true),
alias: text("alias"),
aliasAddress: text("aliasAddress"),
tcpPortRangeString: text("tcpPortRangeString"),
udpPortRangeString: text("udpPortRangeString"),
disableIcmp: integer("disableIcmp", { mode: "boolean" })
});
export const clientSiteResources = sqliteTable("clientSiteResources", {
clientId: integer("clientId")
.notNull()
.references(() => clients.clientId, { onDelete: "cascade" }),
siteResourceId: integer("siteResourceId")
.notNull()
.references(() => siteResources.siteResourceId, { onDelete: "cascade" })
});
export const roleSiteResources = sqliteTable("roleSiteResources", {
roleId: integer("roleId")
.notNull()
.references(() => roles.roleId, { onDelete: "cascade" }),
siteResourceId: integer("siteResourceId")
.notNull()
.references(() => siteResources.siteResourceId, { onDelete: "cascade" })
});
export const userSiteResources = sqliteTable("userSiteResources", {
userId: text("userId")
.notNull()
.references(() => users.userId, { onDelete: "cascade" }),
siteResourceId: integer("siteResourceId")
.notNull()
.references(() => siteResources.siteResourceId, { onDelete: "cascade" })
}); });
export const users = sqliteTable("user", { export const users = sqliteTable("user", {
@@ -306,7 +346,7 @@ export const newts = sqliteTable("newt", {
}); });
export const clients = sqliteTable("clients", { export const clients = sqliteTable("clients", {
clientId: integer("id").primaryKey({ autoIncrement: true }), clientId: integer("clientId").primaryKey({ autoIncrement: true }),
orgId: text("orgId") orgId: text("orgId")
.references(() => orgs.orgId, { .references(() => orgs.orgId, {
onDelete: "cascade" onDelete: "cascade"
@@ -315,8 +355,14 @@ export const clients = sqliteTable("clients", {
exitNodeId: integer("exitNode").references(() => exitNodes.exitNodeId, { exitNodeId: integer("exitNode").references(() => exitNodes.exitNodeId, {
onDelete: "set null" onDelete: "set null"
}), }),
userId: text("userId").references(() => users.userId, {
// optionally tied to a user and in this case delete when the user deletes
onDelete: "cascade"
}),
niceId: text("niceId").notNull(),
name: text("name").notNull(), name: text("name").notNull(),
pubKey: text("pubKey"), pubKey: text("pubKey"),
olmId: text("olmId"), // to lock it to a specific olm optionally
subnet: text("subnet").notNull(), subnet: text("subnet").notNull(),
megabytesIn: integer("bytesIn"), megabytesIn: integer("bytesIn"),
megabytesOut: integer("bytesOut"), megabytesOut: integer("bytesOut"),
@@ -328,25 +374,42 @@ export const clients = sqliteTable("clients", {
lastHolePunch: integer("lastHolePunch") lastHolePunch: integer("lastHolePunch")
}); });
export const clientSites = sqliteTable("clientSites", { export const clientSitesAssociationsCache = sqliteTable(
clientId: integer("clientId") "clientSitesAssociationsCache",
.notNull() {
.references(() => clients.clientId, { onDelete: "cascade" }), clientId: integer("clientId") // not a foreign key here so after its deleted the rebuild function can delete it and send the message
siteId: integer("siteId") .notNull(),
.notNull() siteId: integer("siteId").notNull(),
.references(() => sites.siteId, { onDelete: "cascade" }), isRelayed: integer("isRelayed", { mode: "boolean" })
isRelayed: integer("isRelayed", { mode: "boolean" }) .notNull()
.notNull() .default(false),
.default(false), endpoint: text("endpoint"),
endpoint: text("endpoint") publicKey: text("publicKey") // this will act as the session's public key for hole punching so we can track when it changes
}); }
);
export const clientSiteResourcesAssociationsCache = sqliteTable(
"clientSiteResourcesAssociationsCache",
{
clientId: integer("clientId") // not a foreign key here so after its deleted the rebuild function can delete it and send the message
.notNull(),
siteResourceId: integer("siteResourceId").notNull()
}
);
export const olms = sqliteTable("olms", { export const olms = sqliteTable("olms", {
olmId: text("id").primaryKey(), olmId: text("id").primaryKey(),
secretHash: text("secretHash").notNull(), secretHash: text("secretHash").notNull(),
dateCreated: text("dateCreated").notNull(), dateCreated: text("dateCreated").notNull(),
version: text("version"), version: text("version"),
agent: text("agent"),
name: text("name"),
clientId: integer("clientId").references(() => clients.clientId, { clientId: integer("clientId").references(() => clients.clientId, {
// we will switch this depending on the current org it wants to connect to
onDelete: "set null"
}),
userId: text("userId").references(() => users.userId, {
// optionally tied to a user and in this case delete when the user deletes
onDelete: "cascade" onDelete: "cascade"
}) })
}); });
@@ -365,7 +428,10 @@ export const sessions = sqliteTable("session", {
.notNull() .notNull()
.references(() => users.userId, { onDelete: "cascade" }), .references(() => users.userId, { onDelete: "cascade" }),
expiresAt: integer("expiresAt").notNull(), expiresAt: integer("expiresAt").notNull(),
issuedAt: integer("issuedAt") issuedAt: integer("issuedAt"),
deviceAuthUsed: integer("deviceAuthUsed", { mode: "boolean" })
.notNull()
.default(false)
}); });
export const newtSessions = sqliteTable("newtSession", { export const newtSessions = sqliteTable("newtSession", {
@@ -802,6 +868,21 @@ export const requestAuditLog = sqliteTable(
] ]
); );
export const deviceWebAuthCodes = sqliteTable("deviceWebAuthCodes", {
codeId: integer("codeId").primaryKey({ autoIncrement: true }),
code: text("code").notNull().unique(),
ip: text("ip"),
city: text("city"),
deviceName: text("deviceName"),
applicationName: text("applicationName").notNull(),
expiresAt: integer("expiresAt").notNull(),
createdAt: integer("createdAt").notNull(),
verified: integer("verified", { mode: "boolean" }).notNull().default(false),
userId: text("userId").references(() => users.userId, {
onDelete: "cascade"
})
});
export type Org = InferSelectModel<typeof orgs>; export type Org = InferSelectModel<typeof orgs>;
export type User = InferSelectModel<typeof users>; export type User = InferSelectModel<typeof users>;
export type Site = InferSelectModel<typeof sites>; export type Site = InferSelectModel<typeof sites>;
@@ -840,7 +921,7 @@ export type ResourceRule = InferSelectModel<typeof resourceRules>;
export type Domain = InferSelectModel<typeof domains>; export type Domain = InferSelectModel<typeof domains>;
export type DnsRecord = InferSelectModel<typeof dnsRecords>; export type DnsRecord = InferSelectModel<typeof dnsRecords>;
export type Client = InferSelectModel<typeof clients>; export type Client = InferSelectModel<typeof clients>;
export type ClientSite = InferSelectModel<typeof clientSites>; export type ClientSite = InferSelectModel<typeof clientSitesAssociationsCache>;
export type RoleClient = InferSelectModel<typeof roleClients>; export type RoleClient = InferSelectModel<typeof roleClients>;
export type UserClient = InferSelectModel<typeof userClients>; export type UserClient = InferSelectModel<typeof userClients>;
export type SupporterKey = InferSelectModel<typeof supporterKey>; export type SupporterKey = InferSelectModel<typeof supporterKey>;
@@ -859,3 +940,4 @@ export type LicenseKey = InferSelectModel<typeof licenseKey>;
export type SecurityKey = InferSelectModel<typeof securityKeys>; export type SecurityKey = InferSelectModel<typeof securityKeys>;
export type WebauthnChallenge = InferSelectModel<typeof webauthnChallenge>; export type WebauthnChallenge = InferSelectModel<typeof webauthnChallenge>;
export type RequestAuditLog = InferSelectModel<typeof requestAuditLog>; export type RequestAuditLog = InferSelectModel<typeof requestAuditLog>;
export type DeviceWebAuthCode = InferSelectModel<typeof deviceWebAuthCodes>;

View File

@@ -18,10 +18,13 @@ function createEmailClient() {
host: emailConfig.smtp_host, host: emailConfig.smtp_host,
port: emailConfig.smtp_port, port: emailConfig.smtp_port,
secure: emailConfig.smtp_secure || false, secure: emailConfig.smtp_secure || false,
auth: (emailConfig.smtp_user && emailConfig.smtp_pass) ? { auth:
user: emailConfig.smtp_user, emailConfig.smtp_user && emailConfig.smtp_pass
pass: emailConfig.smtp_pass ? {
} : null user: emailConfig.smtp_user,
pass: emailConfig.smtp_pass
}
: null
} as SMTPTransport.Options; } as SMTPTransport.Options;
if (emailConfig.smtp_tls_reject_unauthorized !== undefined) { if (emailConfig.smtp_tls_reject_unauthorized !== undefined) {

View File

@@ -10,6 +10,7 @@ export async function sendEmail(
from: string | undefined; from: string | undefined;
to: string | undefined; to: string | undefined;
subject: string; subject: string;
replyTo?: string;
} }
) { ) {
if (!emailClient) { if (!emailClient) {
@@ -32,6 +33,7 @@ export async function sendEmail(
address: opts.from address: opts.from
}, },
to: opts.to, to: opts.to,
replyTo: opts.replyTo,
subject: opts.subject, subject: opts.subject,
html: emailHtml html: emailHtml
}); });

View File

@@ -19,7 +19,13 @@ interface Props {
billingLink: string; // Link to billing page billingLink: string; // Link to billing page
} }
export const NotifyUsageLimitApproaching = ({ email, limitName, currentUsage, usageLimit, billingLink }: Props) => { export const NotifyUsageLimitApproaching = ({
email,
limitName,
currentUsage,
usageLimit,
billingLink
}: Props) => {
const previewText = `Your usage for ${limitName} is approaching the limit.`; const previewText = `Your usage for ${limitName} is approaching the limit.`;
const usagePercentage = Math.round((currentUsage / usageLimit) * 100); const usagePercentage = Math.round((currentUsage / usageLimit) * 100);
@@ -37,23 +43,32 @@ export const NotifyUsageLimitApproaching = ({ email, limitName, currentUsage, us
<EmailGreeting>Hi there,</EmailGreeting> <EmailGreeting>Hi there,</EmailGreeting>
<EmailText> <EmailText>
We wanted to let you know that your usage for <strong>{limitName}</strong> is approaching your plan limit. We wanted to let you know that your usage for{" "}
<strong>{limitName}</strong> is approaching your
plan limit.
</EmailText> </EmailText>
<EmailText> <EmailText>
<strong>Current Usage:</strong> {currentUsage} of {usageLimit} ({usagePercentage}%) <strong>Current Usage:</strong> {currentUsage} of{" "}
{usageLimit} ({usagePercentage}%)
</EmailText> </EmailText>
<EmailText> <EmailText>
Once you reach your limit, some functionality may be restricted or your sites may disconnect until you upgrade your plan or your usage resets. Once you reach your limit, some functionality may be
restricted or your sites may disconnect until you
upgrade your plan or your usage resets.
</EmailText> </EmailText>
<EmailText> <EmailText>
To avoid any interruption to your service, we recommend upgrading your plan or monitoring your usage closely. You can <a href={billingLink}>upgrade your plan here</a>. To avoid any interruption to your service, we
recommend upgrading your plan or monitoring your
usage closely. You can{" "}
<a href={billingLink}>upgrade your plan here</a>.
</EmailText> </EmailText>
<EmailText> <EmailText>
If you have any questions or need assistance, please don't hesitate to reach out to our support team. If you have any questions or need assistance, please
don't hesitate to reach out to our support team.
</EmailText> </EmailText>
<EmailFooter> <EmailFooter>

View File

@@ -19,7 +19,13 @@ interface Props {
billingLink: string; // Link to billing page billingLink: string; // Link to billing page
} }
export const NotifyUsageLimitReached = ({ email, limitName, currentUsage, usageLimit, billingLink }: Props) => { export const NotifyUsageLimitReached = ({
email,
limitName,
currentUsage,
usageLimit,
billingLink
}: Props) => {
const previewText = `You've reached your ${limitName} usage limit - Action required`; const previewText = `You've reached your ${limitName} usage limit - Action required`;
const usagePercentage = Math.round((currentUsage / usageLimit) * 100); const usagePercentage = Math.round((currentUsage / usageLimit) * 100);
@@ -32,30 +38,48 @@ export const NotifyUsageLimitReached = ({ email, limitName, currentUsage, usageL
<EmailContainer> <EmailContainer>
<EmailLetterHead /> <EmailLetterHead />
<EmailHeading>Usage Limit Reached - Action Required</EmailHeading> <EmailHeading>
Usage Limit Reached - Action Required
</EmailHeading>
<EmailGreeting>Hi there,</EmailGreeting> <EmailGreeting>Hi there,</EmailGreeting>
<EmailText> <EmailText>
You have reached your usage limit for <strong>{limitName}</strong>. You have reached your usage limit for{" "}
<strong>{limitName}</strong>.
</EmailText> </EmailText>
<EmailText> <EmailText>
<strong>Current Usage:</strong> {currentUsage} of {usageLimit} ({usagePercentage}%) <strong>Current Usage:</strong> {currentUsage} of{" "}
{usageLimit} ({usagePercentage}%)
</EmailText> </EmailText>
<EmailText> <EmailText>
<strong>Important:</strong> Your functionality may now be restricted and your sites may disconnect until you either upgrade your plan or your usage resets. To prevent any service interruption, immediate action is recommended. <strong>Important:</strong> Your functionality may
now be restricted and your sites may disconnect
until you either upgrade your plan or your usage
resets. To prevent any service interruption,
immediate action is recommended.
</EmailText> </EmailText>
<EmailText> <EmailText>
<strong>What you can do:</strong> <strong>What you can do:</strong>
<br /> <a href={billingLink} style={{ color: '#2563eb', fontWeight: 'bold' }}>Upgrade your plan immediately</a> to restore full functionality <br />{" "}
<br /> Monitor your usage to stay within limits in the future <a
href={billingLink}
style={{ color: "#2563eb", fontWeight: "bold" }}
>
Upgrade your plan immediately
</a>{" "}
to restore full functionality
<br /> Monitor your usage to stay within limits in
the future
</EmailText> </EmailText>
<EmailText> <EmailText>
If you have any questions or need immediate assistance, please contact our support team right away. If you have any questions or need immediate
assistance, please contact our support team right
away.
</EmailText> </EmailText>
<EmailFooter> <EmailFooter>

View File

@@ -11,6 +11,7 @@ import {
ApiKeyOrg, ApiKeyOrg,
RemoteExitNode, RemoteExitNode,
Session, Session,
SiteResource,
User, User,
UserOrg UserOrg
} from "@server/db"; } from "@server/db";
@@ -77,6 +78,8 @@ declare global {
userOrgId?: string; userOrgId?: string;
userOrgIds?: string[]; userOrgIds?: string[];
remoteExitNode?: RemoteExitNode; remoteExitNode?: RemoteExitNode;
siteResource?: SiteResource;
orgPolicyAllowed?: boolean;
} }
} }
} }

View File

@@ -5,7 +5,7 @@ import config from "@server/lib/config";
import logger from "@server/logger"; import logger from "@server/logger";
import { import {
errorHandlerMiddleware, errorHandlerMiddleware,
notFoundMiddleware, notFoundMiddleware
} from "@server/middlewares"; } from "@server/middlewares";
import { authenticated, unauthenticated } from "#dynamic/routers/integration"; import { authenticated, unauthenticated } from "#dynamic/routers/integration";
import { logIncomingMiddleware } from "./middlewares/logIncoming"; import { logIncomingMiddleware } from "./middlewares/logIncoming";

29
server/lib/asn.ts Normal file
View File

@@ -0,0 +1,29 @@
import logger from "@server/logger";
import { maxmindAsnLookup } from "@server/db/maxmindAsn";
export async function getAsnForIp(ip: string): Promise<number | undefined> {
try {
if (!maxmindAsnLookup) {
logger.debug(
"MaxMind ASN DB path not configured, cannot perform ASN lookup"
);
return;
}
const result = maxmindAsnLookup.get(ip);
if (!result || !result.autonomous_system_number) {
return;
}
logger.debug(
`ASN lookup successful for IP ${ip}: AS${result.autonomous_system_number}`
);
return result.autonomous_system_number;
} catch (error) {
logger.error("Error performing ASN lookup:", error);
}
return;
}

View File

@@ -25,16 +25,22 @@ export const FeatureMeterIdsSandbox: Record<FeatureId, string> = {
}; };
export function getFeatureMeterId(featureId: FeatureId): string { export function getFeatureMeterId(featureId: FeatureId): string {
if (process.env.ENVIRONMENT == "prod" && process.env.SANDBOX_MODE !== "true") { if (
process.env.ENVIRONMENT == "prod" &&
process.env.SANDBOX_MODE !== "true"
) {
return FeatureMeterIds[featureId]; return FeatureMeterIds[featureId];
} else { } else {
return FeatureMeterIdsSandbox[featureId]; return FeatureMeterIdsSandbox[featureId];
} }
} }
export function getFeatureIdByMetricId(metricId: string): FeatureId | undefined { export function getFeatureIdByMetricId(
return (Object.entries(FeatureMeterIds) as [FeatureId, string][]) metricId: string
.find(([_, v]) => v === metricId)?.[0]; ): FeatureId | undefined {
return (Object.entries(FeatureMeterIds) as [FeatureId, string][]).find(
([_, v]) => v === metricId
)?.[0];
} }
export type FeaturePriceSet = { export type FeaturePriceSet = {
@@ -43,7 +49,8 @@ export type FeaturePriceSet = {
[FeatureId.DOMAINS]?: string; // Optional since domains are not billed [FeatureId.DOMAINS]?: string; // Optional since domains are not billed
}; };
export const standardFeaturePriceSet: FeaturePriceSet = { // Free tier matches the freeLimitSet export const standardFeaturePriceSet: FeaturePriceSet = {
// Free tier matches the freeLimitSet
[FeatureId.SITE_UPTIME]: "price_1RrQc4D3Ee2Ir7WmaJGZ3MtF", [FeatureId.SITE_UPTIME]: "price_1RrQc4D3Ee2Ir7WmaJGZ3MtF",
[FeatureId.USERS]: "price_1RrQeJD3Ee2Ir7WmgveP3xea", [FeatureId.USERS]: "price_1RrQeJD3Ee2Ir7WmgveP3xea",
[FeatureId.EGRESS_DATA_MB]: "price_1RrQXFD3Ee2Ir7WmvGDlgxQk", [FeatureId.EGRESS_DATA_MB]: "price_1RrQXFD3Ee2Ir7WmvGDlgxQk",
@@ -51,7 +58,8 @@ export const standardFeaturePriceSet: FeaturePriceSet = { // Free tier matches t
[FeatureId.REMOTE_EXIT_NODES]: "price_1S46weD3Ee2Ir7Wm94KEHI4h" [FeatureId.REMOTE_EXIT_NODES]: "price_1S46weD3Ee2Ir7Wm94KEHI4h"
}; };
export const standardFeaturePriceSetSandbox: FeaturePriceSet = { // Free tier matches the freeLimitSet export const standardFeaturePriceSetSandbox: FeaturePriceSet = {
// Free tier matches the freeLimitSet
[FeatureId.SITE_UPTIME]: "price_1RefFBDCpkOb237BPrKZ8IEU", [FeatureId.SITE_UPTIME]: "price_1RefFBDCpkOb237BPrKZ8IEU",
[FeatureId.USERS]: "price_1ReNa4DCpkOb237Bc67G5muF", [FeatureId.USERS]: "price_1ReNa4DCpkOb237Bc67G5muF",
[FeatureId.EGRESS_DATA_MB]: "price_1Rfp9LDCpkOb237BwuN5Oiu0", [FeatureId.EGRESS_DATA_MB]: "price_1Rfp9LDCpkOb237BwuN5Oiu0",
@@ -60,15 +68,20 @@ export const standardFeaturePriceSetSandbox: FeaturePriceSet = { // Free tier ma
}; };
export function getStandardFeaturePriceSet(): FeaturePriceSet { export function getStandardFeaturePriceSet(): FeaturePriceSet {
if (process.env.ENVIRONMENT == "prod" && process.env.SANDBOX_MODE !== "true") { if (
process.env.ENVIRONMENT == "prod" &&
process.env.SANDBOX_MODE !== "true"
) {
return standardFeaturePriceSet; return standardFeaturePriceSet;
} else { } else {
return standardFeaturePriceSetSandbox; return standardFeaturePriceSetSandbox;
} }
} }
export function getLineItems(featurePriceSet: FeaturePriceSet): Stripe.Checkout.SessionCreateParams.LineItem[] { export function getLineItems(
featurePriceSet: FeaturePriceSet
): Stripe.Checkout.SessionCreateParams.LineItem[] {
return Object.entries(featurePriceSet).map(([featureId, priceId]) => ({ return Object.entries(featurePriceSet).map(([featureId, priceId]) => ({
price: priceId, price: priceId
})); }));
} }

View File

@@ -2,4 +2,4 @@ export * from "./limitSet";
export * from "./features"; export * from "./features";
export * from "./limitsService"; export * from "./limitsService";
export * from "./getOrgTierData"; export * from "./getOrgTierData";
export * from "./createCustomer"; export * from "./createCustomer";

View File

@@ -12,7 +12,7 @@ export const sandboxLimitSet: LimitSet = {
[FeatureId.USERS]: { value: 1, description: "Sandbox limit" }, [FeatureId.USERS]: { value: 1, description: "Sandbox limit" },
[FeatureId.EGRESS_DATA_MB]: { value: 1000, description: "Sandbox limit" }, // 1 GB [FeatureId.EGRESS_DATA_MB]: { value: 1000, description: "Sandbox limit" }, // 1 GB
[FeatureId.DOMAINS]: { value: 0, description: "Sandbox limit" }, [FeatureId.DOMAINS]: { value: 0, description: "Sandbox limit" },
[FeatureId.REMOTE_EXIT_NODES]: { value: 0, description: "Sandbox limit" }, [FeatureId.REMOTE_EXIT_NODES]: { value: 0, description: "Sandbox limit" }
}; };
export const freeLimitSet: LimitSet = { export const freeLimitSet: LimitSet = {
@@ -29,7 +29,7 @@ export const freeLimitSet: LimitSet = {
export const subscribedLimitSet: LimitSet = { export const subscribedLimitSet: LimitSet = {
[FeatureId.SITE_UPTIME]: { [FeatureId.SITE_UPTIME]: {
value: 2232000, value: 2232000,
description: "Contact us to increase soft limit.", description: "Contact us to increase soft limit."
}, // 50 sites up for 31 days }, // 50 sites up for 31 days
[FeatureId.USERS]: { [FeatureId.USERS]: {
value: 150, value: 150,
@@ -38,7 +38,7 @@ export const subscribedLimitSet: LimitSet = {
[FeatureId.EGRESS_DATA_MB]: { [FeatureId.EGRESS_DATA_MB]: {
value: 12000000, value: 12000000,
description: "Contact us to increase soft limit." description: "Contact us to increase soft limit."
}, // 12000 GB }, // 12000 GB
[FeatureId.DOMAINS]: { [FeatureId.DOMAINS]: {
value: 25, value: 25,
description: "Contact us to increase soft limit." description: "Contact us to increase soft limit."

Some files were not shown because too many files have changed in this diff Show More