Compare commits
269 Commits
cross-org-
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f286d66cbc | ||
|
|
81922f54d5 | ||
|
|
9474792e14 | ||
|
|
0c6acfe282 | ||
|
|
0ae20c0b25 | ||
|
|
bcd3bee148 | ||
|
|
e2814517d6 | ||
|
|
c24db3df0e | ||
|
|
7ecfc9cbd3 | ||
|
|
0b18194397 | ||
|
|
18dfc21197 | ||
|
|
e178ed12ab | ||
|
|
7a0b7dc17b | ||
|
|
c40dd7bb43 | ||
|
|
059ea57b88 | ||
|
|
1ce11d0f5f | ||
|
|
cba1a67b8f | ||
|
|
a218f5dc82 | ||
|
|
a83126a67e | ||
|
|
0620fed9c1 | ||
|
|
87e09dd407 | ||
|
|
77b38c757a | ||
|
|
5e29572f49 | ||
|
|
520cc0d0bf | ||
|
|
ebb4630472 | ||
|
|
c7b8e9c5b9 | ||
|
|
0a65e200b6 | ||
|
|
70b87c04aa | ||
|
|
1a8e9072b4 | ||
|
|
55261c43f8 | ||
|
|
e02545ada7 | ||
|
|
4edeb26e32 | ||
|
|
6f007da609 | ||
|
|
c3e59b73b9 | ||
|
|
cc44b46d91 | ||
|
|
dfe4888123 | ||
|
|
45fb24d0c8 | ||
|
|
3f1c5d305b | ||
|
|
c9caa44c06 | ||
|
|
19e0452d84 | ||
|
|
7f5c164e16 | ||
|
|
4df3613df7 | ||
|
|
4f9f235398 | ||
|
|
a7c212ffa4 | ||
|
|
320543f7f8 | ||
|
|
88eb1649e4 | ||
|
|
6f07156075 | ||
|
|
b3aafa5fe6 | ||
|
|
f71355fe7a | ||
|
|
6ea3f69fea | ||
|
|
95fc30f21d | ||
|
|
a2d8386b4a | ||
|
|
73a59bc1de | ||
|
|
0434b1a656 | ||
|
|
13afa90d28 | ||
|
|
90eb6d66c0 | ||
|
|
22a6dabeb2 | ||
|
|
84346fc23e | ||
|
|
09744cf2f0 | ||
|
|
38f1387db1 | ||
|
|
db2942447a | ||
|
|
b22ac17178 | ||
|
|
709f2c187d | ||
|
|
ccfa165632 | ||
|
|
a68ba9e04d | ||
|
|
23293da845 | ||
|
|
b5dd20e499 | ||
|
|
38243ad887 | ||
|
|
5b18612426 | ||
|
|
8dbe0a4bfe | ||
|
|
7d9a0cd0cc | ||
|
|
e1efae7426 | ||
|
|
f9a4e25dc9 | ||
|
|
85029ff518 | ||
|
|
adf15bdc87 | ||
|
|
a20111043f | ||
|
|
177ce20dda | ||
|
|
1a0bde2ee9 | ||
|
|
ff1ca7eafb | ||
|
|
dc299a740b | ||
|
|
7b3c10c7b0 | ||
|
|
b1293e6f56 | ||
|
|
6969671fc4 | ||
|
|
e765f661a7 | ||
|
|
7da3719a00 | ||
|
|
206b3a7d22 | ||
|
|
4ce4e63a0a | ||
|
|
ed327626bb | ||
|
|
30c4010c8b | ||
|
|
85f7c1e87b | ||
|
|
6f06f98cc1 | ||
|
|
e3aabc6b2d | ||
|
|
b59262b7af | ||
|
|
8093904d47 | ||
|
|
66c0ed5bf0 | ||
|
|
725603101b | ||
|
|
7f0264dec3 | ||
|
|
5e88862e29 | ||
|
|
b3bc70875b | ||
|
|
34dc4c2d07 | ||
|
|
2ef7a709d3 | ||
|
|
d7a9e1a517 | ||
|
|
f938e9c3c0 | ||
|
|
c8d560d78f | ||
|
|
3641969dd4 | ||
|
|
49b3163bbe | ||
|
|
1a36475afa | ||
|
|
335de04a4e | ||
|
|
f38069623b | ||
|
|
0a70896080 | ||
|
|
5a09062070 | ||
|
|
47be3dbdf9 | ||
|
|
9f5f89c9eb | ||
|
|
2e8d170114 | ||
|
|
bf1787acd5 | ||
|
|
78ff835ac9 | ||
|
|
3c005c9ab1 | ||
|
|
54adcd2c56 | ||
|
|
9a6408d28c | ||
|
|
2dad97cb6b | ||
|
|
86ec8eedac | ||
|
|
0ac97ecd5e | ||
|
|
387049beac | ||
|
|
c9240ecb84 | ||
|
|
b87e71c557 | ||
|
|
866293aa5a | ||
|
|
e142dd32b4 | ||
|
|
949786dab5 | ||
|
|
2dd142b0e9 | ||
|
|
dfd16a6752 | ||
|
|
f4454d4d48 | ||
|
|
e7efc917f0 | ||
|
|
5ffe1ba07d | ||
|
|
b56e2972c4 | ||
|
|
ca1a084397 | ||
|
|
a7a1f81e9d | ||
|
|
9c09f17dc5 | ||
|
|
21e2c022c7 | ||
|
|
222cbc886d | ||
|
|
db2e76bd31 | ||
|
|
bf32cc150d | ||
|
|
967de0b79f | ||
|
|
22231e6c45 | ||
|
|
55989c2019 | ||
|
|
20ed9966b9 | ||
|
|
b2d5a1ffdf | ||
|
|
a5b8a44e78 | ||
|
|
dddf060e1a | ||
|
|
df8104fe56 | ||
|
|
8214700eaa | ||
|
|
74165aa1cc | ||
|
|
0872fd5818 | ||
|
|
008ad0a1de | ||
|
|
f74791111e | ||
|
|
22964cff0f | ||
|
|
e952c2d34a | ||
|
|
408eaf55f6 | ||
|
|
0a043af482 | ||
|
|
bd89867ecb | ||
|
|
3645cc5759 | ||
|
|
f932cc7aca | ||
|
|
c1782a2650 | ||
|
|
d6c15c8b81 | ||
|
|
b958537f3e | ||
|
|
597cae2b78 | ||
|
|
c4308aaa69 | ||
|
|
a9d68bd0cf | ||
|
|
5fcb80a193 | ||
|
|
79c6fcac95 | ||
|
|
57579e635c | ||
|
|
1a1d1cfb83 | ||
|
|
1397e61643 | ||
|
|
a04e2a5e00 | ||
|
|
b169a872a7 | ||
|
|
1d4b2b1da1 | ||
|
|
ad15b7c3c6 | ||
|
|
b070570cb6 | ||
|
|
55595ec042 | ||
|
|
5e505224d0 | ||
|
|
3c6775992d | ||
|
|
bf64e226d3 | ||
|
|
f379986a59 | ||
|
|
22ead84aa7 | ||
|
|
570ff75164 | ||
|
|
87a554b6ef | ||
|
|
cf741a6f87 | ||
|
|
06e7c1d6cb | ||
|
|
7d50703c26 | ||
|
|
33182bcf85 | ||
|
|
fb29efeff3 | ||
|
|
7d13ed79b2 | ||
|
|
49ae5eecb6 | ||
|
|
9fe4f78269 | ||
|
|
646e440dec | ||
|
|
bd3d6994c1 | ||
|
|
5fd78817a8 | ||
|
|
1b9a395432 | ||
|
|
3996e14e70 | ||
|
|
7a40084bf4 | ||
|
|
30fd48a14a | ||
|
|
1c95d46eaa | ||
|
|
72bc125f84 | ||
|
|
173a81ead8 | ||
|
|
676eacc9cf | ||
|
|
b18ea66def | ||
|
|
41f541a531 | ||
|
|
561a9ab379 | ||
|
|
7a483ab1e2 | ||
|
|
71497a7887 | ||
|
|
aa41a63430 | ||
|
|
0db55daff6 | ||
|
|
9b271950d2 | ||
|
|
89b6b1fb56 | ||
|
|
789b991c56 | ||
|
|
0cbcc0c29c | ||
|
|
b5e239d1ad | ||
|
|
5f79e8ebbd | ||
|
|
1564c4bee7 | ||
|
|
0cf385b718 | ||
|
|
63a38de059 | ||
|
|
83ecf53776 | ||
|
|
5803da4893 | ||
|
|
fc4633db91 | ||
|
|
9e50569c31 | ||
|
|
a19f0acfb9 | ||
|
|
4430042419 | ||
|
|
8a47d69d0d | ||
|
|
73482c2a05 | ||
|
|
79751c208d | ||
|
|
510931e7d6 | ||
|
|
584a8e7d1d | ||
|
|
a74378e1d3 | ||
|
|
c027c8958b | ||
|
|
a730f4da1d | ||
|
|
d73796b92e | ||
|
|
96b9123306 | ||
|
|
e4cbf088b4 | ||
|
|
333ccb8438 | ||
|
|
eb771ceda4 | ||
|
|
1efd2af44b | ||
|
|
efc1f67017 | ||
|
|
3dc819eb31 | ||
|
|
e8d1b779cc | ||
|
|
d9000b55e3 | ||
|
|
543542713b | ||
|
|
a4d8789c20 | ||
|
|
152b452bee | ||
|
|
4cce6e0820 | ||
|
|
2841c5ed4e | ||
|
|
efb2e78d9d | ||
|
|
294532ecbb | ||
|
|
062bec23b6 | ||
|
|
0461b5a764 | ||
|
|
6d0e10a4aa | ||
|
|
02033f611f | ||
|
|
b648aa605c | ||
|
|
1366901e24 | ||
|
|
c4f48f5748 | ||
|
|
c48bc71443 | ||
|
|
d85496453f | ||
|
|
21b91374a3 | ||
|
|
a1ce7f54a0 | ||
|
|
87524fe8ae | ||
|
|
2093bb5357 | ||
|
|
6f2e37948c | ||
|
|
b7421e47cc | ||
|
|
7cbe3d42a1 | ||
|
|
d8b511b198 | ||
|
|
102a235407 |
12
.github/workflows/cicd.yml
vendored
@@ -77,7 +77,7 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
|
||||
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
|
||||
with:
|
||||
registry: docker.io
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
@@ -149,7 +149,7 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
|
||||
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
|
||||
with:
|
||||
registry: docker.io
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
@@ -204,7 +204,7 @@ jobs:
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
|
||||
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
|
||||
with:
|
||||
registry: docker.io
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
@@ -264,7 +264,7 @@ jobs:
|
||||
shell: bash
|
||||
|
||||
- name: Install Go
|
||||
uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
|
||||
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
|
||||
with:
|
||||
go-version: 1.25
|
||||
|
||||
@@ -299,7 +299,7 @@ jobs:
|
||||
shell: bash
|
||||
|
||||
- name: Upload artifacts from /install/bin
|
||||
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
with:
|
||||
name: install-bin
|
||||
path: install/bin/
|
||||
@@ -407,7 +407,7 @@ jobs:
|
||||
shell: bash
|
||||
|
||||
- name: Login to GitHub Container Registry (for cosign)
|
||||
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
|
||||
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
|
||||
2
.github/workflows/linting.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: '24'
|
||||
|
||||
|
||||
2
.github/workflows/test.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
||||
- name: Install Node
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version: '24'
|
||||
|
||||
|
||||
@@ -53,9 +53,9 @@ Pangolin is an open-source, identity-based remote access platform built on WireG
|
||||
|
||||
## Deployment Options
|
||||
|
||||
- **Pangolin Cloud** — Fully managed service - no infrastructure required.
|
||||
- **Self-Host: Community Edition** — Free, open source, and licensed under AGPL-3.
|
||||
- **Self-Host: Enterprise Edition** — Licensed under Fossorial Commercial License. Free for personal and hobbyist use, and for businesses making less than \$100K USD gross annual revenue.
|
||||
- **Pangolin Cloud** - Fully managed service - no infrastructure required.
|
||||
- **Self-Host: Community Edition** - Free, open source, and licensed under AGPL-3.
|
||||
- **Self-Host: Enterprise Edition** - Licensed under Fossorial Commercial License. Free for personal and hobbyist use, and for businesses making less than \$100K USD gross annual revenue.
|
||||
|
||||
## Key Features
|
||||
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
meta {
|
||||
name: Create API Key
|
||||
type: http
|
||||
seq: 1
|
||||
}
|
||||
|
||||
put {
|
||||
url: http://localhost:3000/api/v1/api-key
|
||||
body: json
|
||||
auth: inherit
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"isRoot": true
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: Delete API Key
|
||||
type: http
|
||||
seq: 2
|
||||
}
|
||||
|
||||
delete {
|
||||
url: http://localhost:3000/api/v1/api-key/dm47aacqxxn3ubj
|
||||
body: none
|
||||
auth: inherit
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: List API Key Actions
|
||||
type: http
|
||||
seq: 6
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3000/api/v1/api-key/ex0izu2c37fjz9x/actions
|
||||
body: none
|
||||
auth: inherit
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: List Org API Keys
|
||||
type: http
|
||||
seq: 4
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3000/api/v1/org/home-lab/api-keys
|
||||
body: none
|
||||
auth: inherit
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: List Root API Keys
|
||||
type: http
|
||||
seq: 3
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3000/api/v1/root/api-keys
|
||||
body: none
|
||||
auth: inherit
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
meta {
|
||||
name: Set API Key Actions
|
||||
type: http
|
||||
seq: 5
|
||||
}
|
||||
|
||||
post {
|
||||
url: http://localhost:3000/api/v1/api-key/ex0izu2c37fjz9x/actions
|
||||
body: json
|
||||
auth: inherit
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"actionIds": ["listSites"]
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
meta {
|
||||
name: Set API Key Orgs
|
||||
type: http
|
||||
seq: 7
|
||||
}
|
||||
|
||||
post {
|
||||
url: http://localhost:3000/api/v1/api-key/ex0izu2c37fjz9x/orgs
|
||||
body: json
|
||||
auth: inherit
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"orgIds": ["home-lab"]
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
meta {
|
||||
name: API Keys
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
meta {
|
||||
name: 2fa-disable
|
||||
type: http
|
||||
seq: 6
|
||||
}
|
||||
|
||||
post {
|
||||
url: http://localhost:3000/api/v1/auth/2fa/disable
|
||||
body: json
|
||||
auth: none
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"password": "aaaaa-1A",
|
||||
"code": "377289"
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
meta {
|
||||
name: 2fa-enable
|
||||
type: http
|
||||
seq: 4
|
||||
}
|
||||
|
||||
post {
|
||||
url: http://localhost:3000/api/v1/auth/2fa/enable
|
||||
body: json
|
||||
auth: none
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"code": "374138"
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
meta {
|
||||
name: 2fa-request
|
||||
type: http
|
||||
seq: 5
|
||||
}
|
||||
|
||||
post {
|
||||
url: http://localhost:3000/api/v1/auth/2fa/request
|
||||
body: json
|
||||
auth: none
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"password": "aaaaa-1A"
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
meta {
|
||||
name: change-password
|
||||
type: http
|
||||
seq: 9
|
||||
}
|
||||
|
||||
post {
|
||||
url: http://localhost:3000/api/v1/auth/change-password
|
||||
body: json
|
||||
auth: none
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"oldPassword": "",
|
||||
"newPassword": ""
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
meta {
|
||||
name: login
|
||||
type: http
|
||||
seq: 1
|
||||
}
|
||||
|
||||
post {
|
||||
url: http://localhost:3000/api/v1/auth/login
|
||||
body: json
|
||||
auth: none
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"email": "admin@fosrl.io",
|
||||
"password": "Password123!"
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: logout
|
||||
type: http
|
||||
seq: 3
|
||||
}
|
||||
|
||||
post {
|
||||
url: http://localhost:4000/api/v1/auth/logout
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
meta {
|
||||
name: reset-password-request
|
||||
type: http
|
||||
seq: 10
|
||||
}
|
||||
|
||||
post {
|
||||
url: http://localhost:3000/api/v1/auth/reset-password/request
|
||||
body: json
|
||||
auth: none
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"email": "milo@pangolin.net"
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
meta {
|
||||
name: reset-password
|
||||
type: http
|
||||
seq: 11
|
||||
}
|
||||
|
||||
post {
|
||||
url: http://localhost:3000/api/v1/auth/reset-password
|
||||
body: json
|
||||
auth: none
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"token": "3uhsbom72dwdhboctwrtntyd6jrlg4jtf5oaxy4k",
|
||||
"newPassword": "aaaaa-1A",
|
||||
"code": "6irqCGR3"
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
meta {
|
||||
name: signup
|
||||
type: http
|
||||
seq: 2
|
||||
}
|
||||
|
||||
put {
|
||||
url: http://localhost:3000/api/v1/auth/signup
|
||||
body: json
|
||||
auth: none
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"email": "numbat@pangolin.net",
|
||||
"password": "Password123!"
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: verify-email-request
|
||||
type: http
|
||||
seq: 8
|
||||
}
|
||||
|
||||
post {
|
||||
url: http://localhost:3000/api/v1/auth/verify-email/request
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
meta {
|
||||
name: verify-email
|
||||
type: http
|
||||
seq: 7
|
||||
}
|
||||
|
||||
post {
|
||||
url: http://localhost:3000/api/v1/auth/verify-email
|
||||
body: json
|
||||
auth: none
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"code": "50317187"
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
meta {
|
||||
name: verify-user
|
||||
type: http
|
||||
seq: 4
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3001/api/v1/badger/verify-user?sessionId=mb52273jkb6t3oys2bx6ur5x7rcrkl26c7warg3e
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
|
||||
params:query {
|
||||
sessionId: mb52273jkb6t3oys2bx6ur5x7rcrkl26c7warg3e
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
meta {
|
||||
name: createClient
|
||||
type: http
|
||||
seq: 1
|
||||
}
|
||||
|
||||
put {
|
||||
url: http://localhost:3000/api/v1/site/1/client
|
||||
body: json
|
||||
auth: none
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"siteId": 1,
|
||||
"name": "test",
|
||||
"type": "olm",
|
||||
"subnet": "100.90.129.4/30",
|
||||
"olmId": "029yzunhx6nh3y5",
|
||||
"secret": "l0ymp075y3d4rccb25l6sqpgar52k09etunui970qq5gj7x6"
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: pickClientDefaults
|
||||
type: http
|
||||
seq: 2
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3000/api/v1/site/1/pick-client-defaults
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
meta {
|
||||
name: Create OIDC Provider
|
||||
type: http
|
||||
seq: 1
|
||||
}
|
||||
|
||||
put {
|
||||
url: http://localhost:3000/api/v1/org/home-lab/idp/oidc
|
||||
body: json
|
||||
auth: inherit
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"clientId": "JJoSvHCZcxnXT2sn6CObj6a21MuKNRXs3kN5wbys",
|
||||
"clientSecret": "2SlGL2wOGgMEWLI9yUuMAeFxre7qSNJVnXMzyepdNzH1qlxYnC4lKhhQ6a157YQEkYH3vm40KK4RCqbYiF8QIweuPGagPX3oGxEj2exwutoXFfOhtq4hHybQKoFq01Z3",
|
||||
"authUrl": "http://localhost:9000/application/o/authorize/",
|
||||
"tokenUrl": "http://localhost:9000/application/o/token/",
|
||||
"scopes": ["email", "openid", "profile"],
|
||||
"userIdentifier": "email"
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: Generate OIDC URL
|
||||
type: http
|
||||
seq: 2
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3000/api/v1
|
||||
body: none
|
||||
auth: inherit
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
meta {
|
||||
name: IDP
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: Traefik Config
|
||||
type: http
|
||||
seq: 1
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3001/api/v1/traefik-config
|
||||
body: none
|
||||
auth: inherit
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
meta {
|
||||
name: Internal
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: Create Newt
|
||||
type: http
|
||||
seq: 2
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3000/api/v1/newt
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
meta {
|
||||
name: Get Token
|
||||
type: http
|
||||
seq: 1
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3000/api/v1/auth/newt/get-token
|
||||
body: json
|
||||
auth: none
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"newtId": "o0d4rdxq3stnz7b",
|
||||
"secret": "sy7l09fnaesd03iwrfp9m3qf0ryn19g0zf3dqieaazb4k7vk"
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
meta {
|
||||
name: createOlm
|
||||
type: http
|
||||
seq: 1
|
||||
}
|
||||
|
||||
put {
|
||||
url: http://localhost:3000/api/v1/olm
|
||||
body: none
|
||||
auth: inherit
|
||||
}
|
||||
|
||||
settings {
|
||||
encodeUrl: true
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
meta {
|
||||
name: Olm
|
||||
seq: 15
|
||||
}
|
||||
|
||||
auth {
|
||||
mode: inherit
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: Check Id
|
||||
type: http
|
||||
seq: 2
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3000/api/v1/org/checkId
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: listOrgs
|
||||
type: http
|
||||
seq: 1
|
||||
}
|
||||
|
||||
get {
|
||||
url:
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: createRemoteExitNode
|
||||
type: http
|
||||
seq: 1
|
||||
}
|
||||
|
||||
put {
|
||||
url: http://localhost:4000/api/v1/org/org_i21aifypnlyxur2/remote-exit-node
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: listResourcesByOrg
|
||||
type: http
|
||||
seq: 1
|
||||
}
|
||||
|
||||
get {
|
||||
url:
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
meta {
|
||||
name: listResourcesBySite
|
||||
type: http
|
||||
seq: 2
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3000/api/v1/site/1/resources?limit=10&offset=0
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
|
||||
params:query {
|
||||
limit: 10
|
||||
offset: 0
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: Get Site
|
||||
type: http
|
||||
seq: 2
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3000/api/v1/org/test/sites/mexican-mole-lizard-windy
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: listSites
|
||||
type: http
|
||||
seq: 1
|
||||
}
|
||||
|
||||
get {
|
||||
url:
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
meta {
|
||||
name: listTargets
|
||||
type: http
|
||||
seq: 1
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3000/api/v1/resource/web.main.localhost/targets?limit=10&offset=0
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
|
||||
params:query {
|
||||
limit: 10
|
||||
offset: 0
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: Test
|
||||
type: http
|
||||
seq: 2
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3000/api/v1
|
||||
body: none
|
||||
auth: inherit
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: traefik-config
|
||||
type: http
|
||||
seq: 1
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3001/api/v1/traefik-config
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: adminListUsers
|
||||
type: http
|
||||
seq: 2
|
||||
}
|
||||
|
||||
get {
|
||||
url: http://localhost:3000/api/v1/users
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: adminRemoveUser
|
||||
type: http
|
||||
seq: 3
|
||||
}
|
||||
|
||||
delete {
|
||||
url: http://localhost:3000/api/v1/user/ky5r7ivqs8wc7u4
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
meta {
|
||||
name: getUser
|
||||
type: http
|
||||
seq: 1
|
||||
}
|
||||
|
||||
get {
|
||||
url:
|
||||
body: none
|
||||
auth: none
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"version": "1",
|
||||
"name": "Pangolin",
|
||||
"type": "collection",
|
||||
"ignore": [
|
||||
"node_modules",
|
||||
".git"
|
||||
],
|
||||
"presets": {
|
||||
"requestType": "http",
|
||||
"requestUrl": "http://localhost:3000/api/v1"
|
||||
}
|
||||
}
|
||||
@@ -7,8 +7,8 @@ services:
|
||||
POSTGRES_DB: postgres # Default database name
|
||||
POSTGRES_USER: postgres # Default user
|
||||
POSTGRES_PASSWORD: password # Default password (change for production!)
|
||||
# volumes:
|
||||
# - ./config/postgres:/var/lib/postgresql/data
|
||||
volumes:
|
||||
- ./config/postgres:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "5432:5432" # Map host port 5432 to container port 5432
|
||||
restart: no
|
||||
|
||||
@@ -5,7 +5,7 @@ go 1.25.0
|
||||
require (
|
||||
github.com/charmbracelet/huh v1.0.0
|
||||
github.com/charmbracelet/lipgloss v1.1.0
|
||||
golang.org/x/term v0.41.0
|
||||
golang.org/x/term v0.42.0
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
)
|
||||
|
||||
@@ -33,6 +33,6 @@ require (
|
||||
github.com/rivo/uniseg v0.4.7 // indirect
|
||||
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
||||
golang.org/x/sync v0.15.0 // indirect
|
||||
golang.org/x/sys v0.42.0 // indirect
|
||||
golang.org/x/sys v0.43.0 // indirect
|
||||
golang.org/x/text v0.23.0 // indirect
|
||||
)
|
||||
|
||||
@@ -69,10 +69,10 @@ golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8=
|
||||
golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
|
||||
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo=
|
||||
golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
|
||||
golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU=
|
||||
golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A=
|
||||
golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI=
|
||||
golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
|
||||
golang.org/x/term v0.42.0 h1:UiKe+zDFmJobeJ5ggPwOshJIVt6/Ft0rcfrXZDLWAWY=
|
||||
golang.org/x/term v0.42.0/go.mod h1:Dq/D+snpsbazcBG5+F9Q1n2rXV8Ma+71xEjTRufARgY=
|
||||
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
|
||||
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||
|
||||
@@ -96,7 +96,7 @@ def process_directory(root_dir):
|
||||
if has_correct_header:
|
||||
print(f"Header up-to-date: {file_path}")
|
||||
else:
|
||||
# Either no header exists or the header is outdated — write
|
||||
# Either no header exists or the header is outdated - write
|
||||
# the correct one.
|
||||
action = "Replaced header in" if has_any_header else "Added header to"
|
||||
new_content = HEADER_NORMALIZED + '\n\n' + body
|
||||
@@ -106,7 +106,7 @@ def process_directory(root_dir):
|
||||
files_modified += 1
|
||||
else:
|
||||
if has_any_header:
|
||||
# Remove the header — it shouldn't be here.
|
||||
# Remove the header - it shouldn't be here.
|
||||
with open(file_path, 'w', encoding='utf-8') as f:
|
||||
f.write(body)
|
||||
print(f"Removed header from: {file_path}")
|
||||
@@ -134,4 +134,4 @@ if __name__ == "__main__":
|
||||
print(f"Error: Directory '{target_directory}' not found.")
|
||||
sys.exit(1)
|
||||
|
||||
process_directory(os.path.abspath(target_directory))
|
||||
process_directory(os.path.abspath(target_directory))
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"contactSalesEnable": "Свържете се с отдел продажби, за да активирате тази функция.",
|
||||
"contactSalesBookDemo": "Резервирайте демонстрация",
|
||||
"contactSalesOr": "или",
|
||||
"contactSalesContactUs": "свържете се с нас",
|
||||
"setupCreate": "Създайте организацията, сайта и ресурсите",
|
||||
"headerAuthCompatibilityInfo": "Активирайте това, за да принудите отговор '401 Неупълномощено', когато липсва токен за автентификация. Това е необходимо за браузъри или специфични HTTP библиотеки, които не изпращат идентификационни данни без сървърно предизвикателство.",
|
||||
"headerAuthCompatibility": "Разширена съвместимост.",
|
||||
@@ -19,6 +23,14 @@
|
||||
"componentsInvalidKey": "Засечен е невалиден или изтекъл лиценз. Проверете лицензионните условия, за да се възползвате от всички функционалности.",
|
||||
"dismiss": "Отхвърляне",
|
||||
"subscriptionViolationMessage": "Превишихте ограничението на текущия си план. Коригирайте проблема, като премахнете сайтове, потребители или други ресурси, за да оставате в рамките на плана си.",
|
||||
"trialBannerMessage": "Пробният Ви период изтича след {countdown}. Актуализирайте за запазване на достъпа.",
|
||||
"trialBannerExpired": "Пробният Ви период е изтекъл. Актуализирайте сега, за да възстановите достъпа.",
|
||||
"trialActive": "Активен пробен период",
|
||||
"trialExpired": "Пробният период е изтекъл",
|
||||
"trialHasEnded": "Пробният Ви период е приключил.",
|
||||
"trialDaysRemaining": "{count, plural, one {# ден остава} other {# дни остават}}",
|
||||
"trialDaysLeftShort": "{days}д остават до края на пробния период",
|
||||
"trialGoToBilling": "Отидете на страницата за фактуриране",
|
||||
"subscriptionViolationViewBilling": "Преглед на фактурирането",
|
||||
"componentsLicenseViolation": "Нарушение на лиценза: Сървърът използва {usedSites} сайта, което надвишава лицензионния лимит от {maxSites} сайта. Проверете лицензионните условия, за да се възползвате от всички функционалности.",
|
||||
"componentsSupporterMessage": "Благодарим ви, че подкрепяте Pangolin като {tier}!",
|
||||
@@ -267,8 +279,11 @@
|
||||
"orgMissing": "Липсва идентификатор на организация",
|
||||
"orgMissingMessage": "Невъзможност за регенериране на покана без идентификатор на организация.",
|
||||
"accessUsersManage": "Управление на потребители",
|
||||
"accessUserManage": "Управление на потребител",
|
||||
"accessUsersDescription": "Канете и управлявайте потребители с достъп до тази организация",
|
||||
"accessUsersSearch": "Търсене на потребители...",
|
||||
"accessUsersRoleFilterCount": "{count, plural, one {# роля} other {# роли}}",
|
||||
"accessUsersRoleFilterClear": "Изчистване на филтрите за роли",
|
||||
"accessUserCreate": "Създайте потребител",
|
||||
"accessUserRemove": "Премахнете потребител",
|
||||
"username": "Потребителско име",
|
||||
@@ -898,6 +913,7 @@
|
||||
"idpDisplayName": "Име за показване за този доставчик на идентичност",
|
||||
"idpAutoProvisionUsers": "Автоматично потребителско създаване",
|
||||
"idpAutoProvisionUsersDescription": "Когато е активирано, потребителите ще бъдат автоматично създадени в системата при първо влизане с възможност за свързване на потребителите с роли и организации.",
|
||||
"idpAutoProvisionConfigureAfterCreate": "Можете да конфигурирате настройките за автоматично предоставяне, след като дистрибуторът на самоличност бъде създаден.",
|
||||
"licenseBadge": "ЕЕ",
|
||||
"idpType": "Тип доставчик",
|
||||
"idpTypeDescription": "Изберете типа доставчик на идентичност, който искате да конфигурирате",
|
||||
@@ -949,7 +965,7 @@
|
||||
"defaultMappingsRole": "Карта на роля по подразбиране",
|
||||
"defaultMappingsRoleDescription": "Резултатът от този израз трябва да върне името на ролята, както е дефинирано в организацията, като стринг.",
|
||||
"defaultMappingsOrg": "Карта на организация по подразбиране",
|
||||
"defaultMappingsOrgDescription": "Този израз трябва да върне ID на организацията или 'true', за да бъде разрешен достъпът на потребителя до организацията.",
|
||||
"defaultMappingsOrgDescription": "При задаване, този израз трябва да върне идентификационния номер на организацията или true, за да се даде достъп на потребителя до тази организация. Ако не е зададено, дефинирането на роля е достатъчно: потребителят има право на достъп, стига валидно картографиране на роля да бъде разрешено за него в рамките на организацията.",
|
||||
"defaultMappingsSubmit": "Запазване на файловете по подразбиране",
|
||||
"orgPoliciesEdit": "Редактиране на Организационна Политика",
|
||||
"org": "Организация",
|
||||
@@ -1256,6 +1272,7 @@
|
||||
"actionViewLogs": "Преглед на дневници",
|
||||
"noneSelected": "Нищо не е избрано",
|
||||
"orgNotFound2": "Няма намерени организации.",
|
||||
"search": "Търси…",
|
||||
"searchPlaceholder": "Търсене...",
|
||||
"emptySearchOptions": "Няма намерени опции",
|
||||
"create": "Създаване",
|
||||
@@ -1340,10 +1357,166 @@
|
||||
"sidebarGeneral": "Управление.",
|
||||
"sidebarLogAndAnalytics": "Лог & Анализи",
|
||||
"sidebarBluePrints": "Чертежи",
|
||||
"sidebarAlerting": "Извеждане на предупреждения",
|
||||
"sidebarHealthChecks": "Проверки на състоянието",
|
||||
"sidebarOrganization": "Организация",
|
||||
"sidebarManagement": "Управление",
|
||||
"sidebarBillingAndLicenses": "Фактуриране & Лицензи",
|
||||
"sidebarLogsAnalytics": "Анализи",
|
||||
"alertingTitle": "Извеждане на предупреждения",
|
||||
"alertingDescription": "Определете източници, тригери и действия за уведомления",
|
||||
"alertingRules": "Правила за предупреждение",
|
||||
"alertingSearchRules": "Търсене на правила…",
|
||||
"alertingAddRule": "Създаване на правило",
|
||||
"alertingColumnSource": "Източник",
|
||||
"alertingColumnTrigger": "Тригер",
|
||||
"alertingColumnActions": "Действия",
|
||||
"alertingColumnEnabled": "Активирано",
|
||||
"alertingDeleteQuestion": "Моля, потвърдете, че искате да изтриете това правило за предупреждение.",
|
||||
"alertingDeleteRule": "Изтриване на правило за предупреждение",
|
||||
"alertingRuleDeleted": "Правилото за предупреждение е изтрито",
|
||||
"alertingRuleSaved": "Правилото за предупреждение е запазено",
|
||||
"alertingRuleSavedCreatedDescription": "Вашето ново правило за предупреждение беше създадено. Все още можете да го редактирате на тази страница.",
|
||||
"alertingRuleSavedUpdatedDescription": "Промените, направени по това правило за предупреждение, бяха запазени.",
|
||||
"alertingEditRule": "Редактиране на правило за предупреждение",
|
||||
"alertingCreateRule": "Създаване на правило за предупреждение",
|
||||
"alertingRuleCredenzaDescription": "Изберете какво да наблюдавате, кога да се активира и как да уведомите",
|
||||
"alertingRuleNamePlaceholder": "Сайтът на производство е недостъпен",
|
||||
"alertingRuleEnabled": "Правилото е активирано",
|
||||
"alertingSectionSource": "Източник",
|
||||
"alertingSourceType": "Тип на източника",
|
||||
"alertingSourceSite": "Сайт",
|
||||
"alertingSourceHealthCheck": "Проверка на състоянието",
|
||||
"alertingPickSites": "Сайтове",
|
||||
"alertingPickHealthChecks": "Проверки на състоянието",
|
||||
"alertingPickResources": "Ресурси",
|
||||
"alertingAllSites": "Всички сайтове",
|
||||
"alertingAllSitesDescription": "Предупреждението се активира за всеки сайт",
|
||||
"alertingSpecificSites": "Специфични сайтове",
|
||||
"alertingSpecificSitesDescription": "Изберете специфични сайтове за наблюдение",
|
||||
"alertingAllHealthChecks": "Всички проверки на състоянието",
|
||||
"alertingAllHealthChecksDescription": "Предупреждението се активира за всяка проверка на състоянието",
|
||||
"alertingSpecificHealthChecks": "Специфични проверки на състоянието",
|
||||
"alertingSpecificHealthChecksDescription": "Изберете специфични проверки на състоянието за наблюдение",
|
||||
"alertingAllResources": "Всички ресурси",
|
||||
"alertingAllResourcesDescription": "Предупреждението се активира за всеки ресурс",
|
||||
"alertingSpecificResources": "Специфични ресурси",
|
||||
"alertingSpecificResourcesDescription": "Изберете специфични ресурси за наблюдение",
|
||||
"alertingSelectResources": "Изберете ресурси…",
|
||||
"alertingResourcesSelected": "Избрани {count} ресурса",
|
||||
"alertingResourcesEmpty": "Няма ресурси с целите в първите 10 резултата.",
|
||||
"alertingSectionTrigger": "Тригер",
|
||||
"alertingTrigger": "Кога да се активира",
|
||||
"alertingTriggerSiteOnline": "Сайтът е онлайн",
|
||||
"alertingTriggerSiteOffline": "Сайтът е офлайн",
|
||||
"alertingTriggerSiteToggle": "Състоянието на сайта се променя",
|
||||
"alertingTriggerHcHealthy": "Проверка на състоянието е здрава",
|
||||
"alertingTriggerHcUnhealthy": "Проверка на състоянието не е здрава",
|
||||
"alertingTriggerHcToggle": "Състоянието на проверката се променя",
|
||||
"alertingTriggerResourceHealthy": "Ресурсът е здрав",
|
||||
"alertingTriggerResourceUnhealthy": "Ресурсът не е здрав",
|
||||
"alertingSearchHealthChecks": "Търсене на проверки на състоянието…",
|
||||
"alertingHealthChecksEmpty": "Няма налични проверки на състоянието.",
|
||||
"alertingTriggerResourceToggle": "Състоянието на ресурса се променя",
|
||||
"alertingSourceResource": "Ресурс",
|
||||
"alertingSectionActions": "Действия",
|
||||
"alertingAddAction": "Добавяне на действие",
|
||||
"alertingActionNotify": "Имейл",
|
||||
"alertingActionNotifyDescription": "Изпращане на имейл известия на потребители или роли",
|
||||
"alertingActionWebhook": "Уеб кука",
|
||||
"alertingActionWebhookDescription": "Изпращане на HTTP заявка към персонализирана крайна точка",
|
||||
"alertingExternalIntegration": "Външна интеграция",
|
||||
"alertingExternalPagerDutyDescription": "Изпратете предупреждения към PagerDuty за управление на инциденти",
|
||||
"alertingExternalOpsgenieDescription": "Пренасочете предупрежденията към Opsgenie за управление на дежурните отчети",
|
||||
"alertingExternalServiceNowDescription": "Създавайте инциденти в ServiceNow от събития на предупреждения",
|
||||
"alertingExternalIncidentIoDescription": "Активирайте работни потоци в Incident.io от събития на предупреждения",
|
||||
"alertingActionType": "Тип на действието",
|
||||
"alertingNotifyUsers": "Потребители",
|
||||
"alertingNotifyRoles": "Роли",
|
||||
"alertingNotifyEmails": "Имейл адреси",
|
||||
"alertingEmailPlaceholder": "Добавете имейл и натиснете Enter",
|
||||
"alertingWebhookMethod": "HTTP метод",
|
||||
"alertingWebhookSecret": "Секрет за подписване (по избор)",
|
||||
"alertingWebhookSecretPlaceholder": "HMAC секрет",
|
||||
"alertingWebhookHeaders": "Заглавия",
|
||||
"alertingAddHeader": "Добавете заглавие",
|
||||
"alertingSelectSites": "Изберете сайтове…",
|
||||
"alertingSitesSelected": "Избрани {count} сайта",
|
||||
"alertingSelectHealthChecks": "Изберете проверки на състоянието…",
|
||||
"alertingHealthChecksSelected": "Избрани {count} проверки на състоянието",
|
||||
"alertingNoHealthChecks": "Няма цели с активирани проверки на състоянието",
|
||||
"alertingHealthCheckStub": "Изборът на източник за проверки на състоянието все още не е свързан - все още можете да конфигурирате тригери и действия.",
|
||||
"alertingSelectUsers": "Изберете потребители…",
|
||||
"alertingUsersSelected": "Избрани {count} потребителя",
|
||||
"alertingSelectRoles": "Изберете роли…",
|
||||
"alertingRolesSelected": "Избрани {count} роли",
|
||||
"alertingSummarySites": "Сайтове ({count})",
|
||||
"alertingSummaryAllSites": "Всички сайтове",
|
||||
"alertingSummaryHealthChecks": "Проверки на състоянието ({count})",
|
||||
"alertingSummaryAllHealthChecks": "Всички проверки на състоянието",
|
||||
"alertingSummaryResources": "Ресурси ({count})",
|
||||
"alertingSummaryAllResources": "Всички ресурси",
|
||||
"alertingErrorNameRequired": "Въведете име",
|
||||
"alertingErrorActionsMin": "Добавете поне едно действие",
|
||||
"alertingErrorPickSites": "Изберете поне един сайт",
|
||||
"alertingErrorPickHealthChecks": "Изберете поне една проверка на състоянието",
|
||||
"alertingErrorPickResources": "Изберете поне един ресурс",
|
||||
"alertingErrorTriggerSite": "Изберете тригер за сайт",
|
||||
"alertingErrorTriggerHealth": "Изберете тригер за проверка на състоянието",
|
||||
"alertingErrorTriggerResource": "Изберете тригер за ресурс",
|
||||
"alertingErrorNotifyRecipients": "Изберете потребители, роли или поне един имейл",
|
||||
"alertingConfigureSource": "Конфигуриране на източник",
|
||||
"alertingConfigureTrigger": "Конфигуриране на тригер",
|
||||
"alertingConfigureActions": "Конфигуриране на действия",
|
||||
"alertingBackToRules": "Назад към правилата",
|
||||
"alertingRuleCooldown": "Време за изчакване (секунди)",
|
||||
"alertingRuleCooldownDescription": "Минимално време между повторни предупреждения за същото правило. Задайте на 0, за да се задейства всеки път.",
|
||||
"alertingDraftBadge": "Чернова - запазете, за да съхраните правилото",
|
||||
"alertingSidebarHint": "Кликнете върху стъпка на платното, за да я редактирате тук.",
|
||||
"alertingGraphCanvasTitle": "Последователност на правилото",
|
||||
"alertingGraphCanvasDescription": "Визуален преглед на източник, тригер и действия. Изберете елемент за редакция в панела.",
|
||||
"alertingNodeNotConfigured": "Още не е конфигурирано",
|
||||
"alertingNodeActionsCount": "{count, plural, one {# действие} other {# действия}}",
|
||||
"alertingNodeRoleSource": "Източник",
|
||||
"alertingNodeRoleTrigger": "Тригер",
|
||||
"alertingNodeRoleAction": "Действие",
|
||||
"alertingTabRules": "Правила за предупреждение",
|
||||
"alertingTabHealthChecks": "Проверки на състоянието",
|
||||
"alertingRulesBannerTitle": "Получавайте известия",
|
||||
"alertingRulesBannerDescription": "Всяко правило свързва това, което да се наблюдава (сайт, проверка на състоянието или ресурс), кога да се активира (например офлайн или нездраве) и как да уведомите екипа чрез имейл, уеб куки или интеграции. Използвайте този списък, за да създавате, активирате и управлявате тези правила.",
|
||||
"alertingHealthChecksBannerTitle": "Наблюдавайте здравето и ресурсите",
|
||||
"alertingHealthChecksBannerDescription": "Проверките на състоянието са HTTP или TCP монитори, които определяте веднъж. След това можете да ги използвате като източници в правила за предупреждения, така че да бъдете уведомени, когато целта стане здраве или нездраве. Проверките на състоянието на ресурсите също се появяват тук.",
|
||||
"standaloneHcTableTitle": "Проверки на състоянието",
|
||||
"standaloneHcSearchPlaceholder": "Търсене на проверки на състоянието…",
|
||||
"standaloneHcAddButton": "Създаване на проверка на състоянието",
|
||||
"standaloneHcCreateTitle": "Създаване на проверка на състоянието",
|
||||
"standaloneHcEditTitle": "Редактиране на проверка на състоянието",
|
||||
"standaloneHcDescription": "Конфигурирайте HTTP или TCP проверка на състоянието за използване в правилата за предупреждения.",
|
||||
"standaloneHcNameLabel": "Име",
|
||||
"standaloneHcNamePlaceholder": "Моят HTTP монитор",
|
||||
"standaloneHcDeleteTitle": "Изтриване на проверка на състоянието",
|
||||
"standaloneHcDeleteQuestion": "Моля, потвърдете, че искате да изтриете тази проверка на състоянието.",
|
||||
"standaloneHcDeleted": "Проверката на състоянието е изтрита",
|
||||
"standaloneHcSaved": "Проверката на състоянието е запазена",
|
||||
"standaloneHcColumnHealth": "Здраве",
|
||||
"standaloneHcColumnMode": "Режим",
|
||||
"standaloneHcColumnTarget": "Цел",
|
||||
"standaloneHcHealthStateHealthy": "Здраве",
|
||||
"standaloneHcHealthStateUnhealthy": "Нездраве",
|
||||
"standaloneHcHealthStateUnknown": "Неизвестно",
|
||||
"standaloneHcFilterAnySite": "Всички сайтове",
|
||||
"standaloneHcFilterAnyResource": "Всички ресурси",
|
||||
"standaloneHcFilterMode": "Режим",
|
||||
"standaloneHcFilterModeHttp": "HTTP",
|
||||
"standaloneHcFilterModeTcp": "TCP",
|
||||
"standaloneHcFilterModeSnmp": "SNMP",
|
||||
"standaloneHcFilterModePing": "Пинг",
|
||||
"standaloneHcFilterHealth": "Здраве",
|
||||
"standaloneHcFilterEnabled": "Активирано",
|
||||
"standaloneHcFilterEnabledOn": "Активирано",
|
||||
"standaloneHcFilterEnabledOff": "Деактивирано",
|
||||
"standaloneHcFilterSiteIdFallback": "Сайт {id}",
|
||||
"standaloneHcFilterResourceIdFallback": "Ресурс {id}",
|
||||
"blueprints": "Чертежи",
|
||||
"blueprintsDescription": "Прилагайте декларативни конфигурации и преглеждайте предишни изпълнения",
|
||||
"blueprintAdd": "Добави Чертеж",
|
||||
@@ -1762,6 +1935,15 @@
|
||||
"healthCheckIntervalMin": "Интервалът за проверка трябва да е поне 5 секунди",
|
||||
"healthCheckTimeoutMin": "Времето за изчакване трябва да е поне 1 секунда",
|
||||
"healthCheckRetryMin": "Опитите за повторение трябва да са поне 1",
|
||||
"healthCheckMode": "Режим на проверка",
|
||||
"healthCheckStrategy": "Стратегия",
|
||||
"healthCheckModeDescription": "Режимът TCP проверява само свързаността. Режимът HTTP валидира HTTP отговора.",
|
||||
"healthyThreshold": "Праг за здраве",
|
||||
"healthyThresholdDescription": "Поредица от успехи, необходими за отбелязване като здраве.",
|
||||
"unhealthyThreshold": "Праг за нездраве",
|
||||
"unhealthyThresholdDescription": "Поредица от провали, необходими за отбелязване като нездраве.",
|
||||
"healthCheckHealthyThresholdMin": "Прагът за здраве трябва да бъде поне 1",
|
||||
"healthCheckUnhealthyThresholdMin": "Прагът за нездраве трябва да бъде поне 1",
|
||||
"httpMethod": "HTTP Метод",
|
||||
"selectHttpMethod": "Изберете HTTP метод",
|
||||
"domainPickerSubdomainLabel": "Поддомен",
|
||||
@@ -1821,6 +2003,11 @@
|
||||
"editInternalResourceDialogModePort": "Порт",
|
||||
"editInternalResourceDialogModeHost": "Хост",
|
||||
"editInternalResourceDialogModeCidr": "CIDR",
|
||||
"editInternalResourceDialogModeHttp": "HTTP",
|
||||
"editInternalResourceDialogModeHttps": "HTTPS",
|
||||
"editInternalResourceDialogScheme": "Метод",
|
||||
"editInternalResourceDialogEnableSsl": "Активирайте SSL",
|
||||
"editInternalResourceDialogEnableSslDescription": "Активирайте SSL/TLS криптиране за сигурни HTTPS връзки към целта.",
|
||||
"editInternalResourceDialogDestination": "Дестинация",
|
||||
"editInternalResourceDialogDestinationHostDescription": "IP адресът или името на хоста на ресурса в мрежата на сайта.",
|
||||
"editInternalResourceDialogDestinationIPDescription": "IP адресът или името на хоста на ресурса в мрежата на сайта.",
|
||||
@@ -1836,6 +2023,7 @@
|
||||
"createInternalResourceDialogName": "Име",
|
||||
"createInternalResourceDialogSite": "Сайт",
|
||||
"selectSite": "Изберете сайт...",
|
||||
"multiSitesSelectorSitesCount": "{count, plural, one {# сайт} other {# сайтове}}",
|
||||
"noSitesFound": "Не са намерени сайтове.",
|
||||
"createInternalResourceDialogProtocol": "Протокол",
|
||||
"createInternalResourceDialogTcp": "TCP",
|
||||
@@ -1864,11 +2052,19 @@
|
||||
"createInternalResourceDialogModePort": "Порт",
|
||||
"createInternalResourceDialogModeHost": "Хост",
|
||||
"createInternalResourceDialogModeCidr": "CIDR",
|
||||
"createInternalResourceDialogModeHttp": "HTTP",
|
||||
"createInternalResourceDialogModeHttps": "HTTPS",
|
||||
"scheme": "Метод",
|
||||
"createInternalResourceDialogScheme": "Метод",
|
||||
"createInternalResourceDialogEnableSsl": "Активирайте SSL",
|
||||
"createInternalResourceDialogEnableSslDescription": "Активирайте SSL/TLS криптиране за сигурни HTTPS връзки към целта.",
|
||||
"createInternalResourceDialogDestination": "Дестинация",
|
||||
"createInternalResourceDialogDestinationHostDescription": "IP адресът или името на хоста на ресурса в мрежата на сайта.",
|
||||
"createInternalResourceDialogDestinationCidrDescription": "CIDR диапазонът на ресурса в мрежата на сайта.",
|
||||
"createInternalResourceDialogAlias": "Псевдоним",
|
||||
"createInternalResourceDialogAliasDescription": "По избор вътрешен DNS псевдоним за този ресурс.",
|
||||
"internalResourceDownstreamSchemeRequired": "Методът е задължителен за HTTP ресурси",
|
||||
"internalResourceHttpPortRequired": "Портът към целта е задължителен за HTTP ресурси",
|
||||
"siteConfiguration": "Конфигурация",
|
||||
"siteAcceptClientConnections": "Приемане на клиентски връзки",
|
||||
"siteAcceptClientConnectionsDescription": "Позволете на потребителските устройства и клиенти да получават достъп до ресурси на този сайт. Това може да бъде променено по-късно.",
|
||||
@@ -1993,7 +2189,7 @@
|
||||
"description": "По-надежден и по-нисък поддръжка на Самостоятелно-хостван Панголиин сървър с допълнителни екстри",
|
||||
"introTitle": "Управлявано Самостоятелно-хостван Панголиин",
|
||||
"introDescription": "е опция за внедряване, предназначена за хора, които искат простота и допълнителна надеждност, като същевременно запазят данните си частни и самостоятелно-хоствани.",
|
||||
"introDetail": "С тази опция все още управлявате свой собствен Панголиин възел — вашите тунели, SSL терминатора и трафик остават на вашия сървър. Разликата е, че управлението и мониторингът се обработват чрез нашия облачен панел за контрол, който отключва редица предимства:",
|
||||
"introDetail": "С тази опция все още управлявате свой собствен Панголиин възел - вашите тунели, SSL терминатора и трафик остават на вашия сървър. Разликата е, че управлението и мониторингът се обработват чрез нашия облачен панел за контрол, който отключва редица предимства:",
|
||||
"benefitSimplerOperations": {
|
||||
"title": "По-прости операции",
|
||||
"description": "Няма нужда да управлявате свой собствен имейл сървър или да настройвате сложни аларми. Ще получите проверки и предупреждения при прекъсване от самото начало."
|
||||
@@ -2026,7 +2222,7 @@
|
||||
},
|
||||
"internationaldomaindetected": "Открит международен домейн",
|
||||
"willbestoredas": "Ще бъде съхранено като:",
|
||||
"roleMappingDescription": "Определете как се разпределят ролите на потребителите при вписване, когато е активирано автоматично предоставяне.",
|
||||
"roleMappingDescription": "Определете как ролите се присвояват на потребителите, когато се вписват с този доставчик на самоличност.",
|
||||
"selectRole": "Избор на роля",
|
||||
"roleMappingExpression": "Израз",
|
||||
"selectRolePlaceholder": "Избор на роля",
|
||||
@@ -2296,7 +2492,7 @@
|
||||
"alerts": {
|
||||
"commercialUseDisclosure": {
|
||||
"title": "Разкриване на употреба",
|
||||
"description": "Изберете лицензионен клас, който точно отразява вашата целена употреба. Персоналният лиценз позволява безплатно ползване на софтуера за индивидуална, некомерсиална или маломащабна комерсиална дейност с годишен брутен приход под 100,000 USD. Всяко ползване извън тези граници — включително ползване във фирма, организация или друга доходоносна среда — изисква валиден корпоративен лиценз и плащане на съответната лицензионна такса. Всички потребители, независимо дали са лични или корпоративни, трябва да спазват Условията на Fossorial Commercial License."
|
||||
"description": "Изберете лицензионен клас, който точно отразява вашата целена употреба. Персоналният лиценз позволява безплатно ползване на софтуера за индивидуална, некомерсиална или маломащабна комерсиална дейност с годишен брутен приход под 100,000 USD. Всяко ползване извън тези граници - включително ползване във фирма, организация или друга доходоносна среда - изисква валиден корпоративен лиценз и плащане на съответната лицензионна такса. Всички потребители, независимо дали са лични или корпоративни, трябва да спазват Условията на Fossorial Commercial License."
|
||||
},
|
||||
"trialPeriodInformation": {
|
||||
"title": "Информация за пробен период",
|
||||
@@ -2428,6 +2624,7 @@
|
||||
"validPassword": "Валидна парола",
|
||||
"validEmail": "Валиден имейл",
|
||||
"validSSO": "Валидно SSO",
|
||||
"connectedClient": "Свързан клиент",
|
||||
"resourceBlocked": "Блокирани ресурси",
|
||||
"droppedByRule": "Прекратено от правило",
|
||||
"noSessions": "Няма сесии",
|
||||
@@ -2667,6 +2864,10 @@
|
||||
"editInternalResourceDialogDestinationLabel": "Дестинация.",
|
||||
"editInternalResourceDialogDestinationDescription": "Посочете адреса дестинация за вътрешния ресурс. Това може да бъде име на хост, IP адрес или CIDR обхват в зависимост от избрания режим. По избор настройте вътрешен DNS алиас за по-лесно идентифициране.",
|
||||
"editInternalResourceDialogPortRestrictionsDescription": "Ограничете достъпа до конкретни TCP/UDP портове или позволете/блокирайте всички портове.",
|
||||
"createInternalResourceDialogHttpConfiguration": "Конфигурация HTTP",
|
||||
"createInternalResourceDialogHttpConfigurationDescription": "Изберете домейна, който клиентите ще използват, за да достигнат този ресурс чрез HTTP или HTTPS.",
|
||||
"editInternalResourceDialogHttpConfiguration": "Конфигурация HTTP",
|
||||
"editInternalResourceDialogHttpConfigurationDescription": "Изберете домейна, който клиентите ще използват, за да достигнат този ресурс чрез HTTP или HTTPS.",
|
||||
"editInternalResourceDialogTcp": "TCP.",
|
||||
"editInternalResourceDialogUdp": "UDP.",
|
||||
"editInternalResourceDialogIcmp": "ICMP.",
|
||||
@@ -2705,6 +2906,8 @@
|
||||
"maintenancePageMessagePlaceholder": "Ще се върнем скоро! Нашият сайт понастоящем е в процес на планирана поддръжка.",
|
||||
"maintenancePageMessageDescription": "Подробно съобщение, обясняващо поддръжката.",
|
||||
"maintenancePageTimeTitle": "Очаквано време за завършване (по избор).",
|
||||
"privateMaintenanceScreenTitle": "Екран за поддръжка",
|
||||
"privateMaintenanceScreenMessage": "Този домейн се използва при частен ресурс. Моля, свържете се с клиента на Pangolin, за да получите достъп до този ресурс.",
|
||||
"maintenanceTime": "например, 2 часа, 1 ноември в 17:00.",
|
||||
"maintenanceEstimatedTimeDescription": "Кога очаквате поддръжката да бъде завършена?",
|
||||
"editDomain": "Редактиране на домейна.",
|
||||
@@ -2842,6 +3045,14 @@
|
||||
"httpDestAddTitle": "Добавяне на HTTP дестинация",
|
||||
"httpDestEditDescription": "Актуализирайте конфигурацията за този HTTP събитий.",
|
||||
"httpDestAddDescription": "Конфигурирайте нов HTTP крайна точка, за да получавате събития на вашата организация.",
|
||||
"S3DestEditTitle": "Редактиране на дестинацията",
|
||||
"S3DestAddTitle": "Добавете S3 дестинация",
|
||||
"S3DestEditDescription": "Актуализирайте конфигурацията за тази S3 дестинация за предаване на събития.",
|
||||
"S3DestAddDescription": "Конфигурирайте нов крайна точка на S3, за да получавате събития на вашата организация.",
|
||||
"datadogDestEditTitle": "Редактиране на дестинация",
|
||||
"datadogDestAddTitle": "Добавяне на Datadog дестинация",
|
||||
"datadogDestEditDescription": "Актуализирайте конфигурацията за тази Datadog дестинация за предаване на събития.",
|
||||
"datadogDestAddDescription": "Конфигурирайте нова крайна точка на Datadog, за да получавате събития на вашата организация.",
|
||||
"httpDestTabSettings": "Настройки",
|
||||
"httpDestTabHeaders": "Заглавки",
|
||||
"httpDestTabBody": "Тяло",
|
||||
@@ -2881,7 +3092,7 @@
|
||||
"httpDestFormatJsonArrayTitle": "JSON масив",
|
||||
"httpDestFormatJsonArrayDescription": "Една заявка на партида, тялото е JSON масив. Съвместим с повечето общи уеб куки и Datadog.",
|
||||
"httpDestFormatNdjsonTitle": "NDJSON",
|
||||
"httpDestFormatNdjsonDescription": "Една заявка на партида, тялото е ново линии отделени JSON — един обект на ред, няма външен масив. Изисквано от Splunk HEC, Elastic / OpenSearch и Grafana.",
|
||||
"httpDestFormatNdjsonDescription": "Една заявка на партида, тялото е ново линии отделени JSON - един обект на ред, няма външен масив. Изисквано от Splunk HEC, Elastic / OpenSearch и Grafana.",
|
||||
"httpDestFormatSingleTitle": "Едно събитие на заявка",
|
||||
"httpDestFormatSingleDescription": "Изпращат се отделни HTTP POST за всяко индивидуално събитие. Използвайте само за крайни точки, които не могат да обработват партиди.",
|
||||
"httpDestLogTypesTitle": "Видове логове",
|
||||
@@ -2899,5 +3110,37 @@
|
||||
"httpDestUpdatedSuccess": "Дестинацията беше актуализирана успешно",
|
||||
"httpDestCreatedSuccess": "Дестинацията беше създадена успешно",
|
||||
"httpDestUpdateFailed": "Неуспешно актуализиране на дестинацията",
|
||||
"httpDestCreateFailed": "Неуспешно създаване на дестинацията"
|
||||
"httpDestCreateFailed": "Неуспешно създаване на дестинацията",
|
||||
"followRedirects": "Следвайте пренасочвания",
|
||||
"followRedirectsDescription": "Автоматично следвайте HTTP пренасочвания за заявки.",
|
||||
"alertingErrorWebhookUrl": "Моля, въведете валид URL адрес за уеб куката.",
|
||||
"healthCheckStrategyHttp": "Проверява свързаността и проверява статуса на HTTP отговора.",
|
||||
"healthCheckStrategyTcp": "Проверява само TCP свързаност, без да изследва отговора.",
|
||||
"healthCheckStrategySnmp": "Прави SNMP get заявка, за да провери здравето на мрежовите устройства и инфраструктура.",
|
||||
"healthCheckStrategyIcmp": "Използва ICMP echo заявки (пинг), за да провери дали ресурсът е достъпен и отговаря.",
|
||||
"healthCheckTabStrategy": "Стратегия",
|
||||
"healthCheckTabConnection": "Връзка",
|
||||
"healthCheckTabAdvanced": "Разширени",
|
||||
"healthCheckStrategyNotAvailable": "Тази стратегия не е достъпна. Моля, свържете се с отдел продажби, за да активирате тази функция.",
|
||||
"uptime30d": "Работно време (30д)",
|
||||
"idpAddActionCreateNew": "Създайте нов доставчик на самоличност",
|
||||
"idpAddActionImportFromOrg": "Импортиране от друга организация",
|
||||
"idpImportDialogTitle": "Импортиране на доставчик на самоличност",
|
||||
"idpImportDialogDescription": "Изберете доставчик на самоличност от организация, в която сте администратор. Той ще бъде свързан с тази организация.",
|
||||
"idpImportSearchPlaceholder": "Търсене по име на организация или доставчик...",
|
||||
"idpImportEmpty": "Няма намерени доставчици на самоличност.",
|
||||
"idpImportedDescription": "Доставчикът на самоличност беше импортиран успешно.",
|
||||
"idpDeleteGlobalQuestion": "Сигурни ли сте, че искате да изтриете този доставчик на самоличност завинаги?",
|
||||
"idpDeleteGlobalDescription": "Това ще изтрие доставичка на самоличност завинаги от всички организации, с които е свързан.",
|
||||
"idpUnassociateTitle": "Отвързване на доставчик на самоличност",
|
||||
"idpUnassociateQuestion": "Сигурни ли сте, че искате да отвържете този доставчик на самоличност от тази организация?",
|
||||
"idpUnassociateDescription": "Всички потребители, свързани с този доставчик на самоличност, ще бъдат премахнати от тази организация, но доставчика на самоличност ще продължи да съществува за други свързани организации.",
|
||||
"idpUnassociateConfirm": "Потвърдете отвързване на доставчика на самоличност",
|
||||
"idpUnassociateWarning": "Това не може да бъде отменено за тази организация.",
|
||||
"idpUnassociatedDescription": "Доставчика на самоличност е успешно отвързан от тази организация",
|
||||
"idpUnassociateMenu": "Отвързване",
|
||||
"idpDeleteAllOrgsMenu": "Изтриване",
|
||||
"publicIpEndpoint": "Крайна точка",
|
||||
"lastTriggeredAt": "Последен тригер",
|
||||
"reject": "Отхвърляне"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"contactSalesEnable": "Obraťte se na prodejce, aby tuto funkci povolil.",
|
||||
"contactSalesBookDemo": "Zarezervovat demo",
|
||||
"contactSalesOr": "nebo",
|
||||
"contactSalesContactUs": "kontaktujte nás",
|
||||
"setupCreate": "Vytvořte organizaci, stránku a zdroje",
|
||||
"headerAuthCompatibilityInfo": "Povolte toto, aby vyvolalo odpověď 401 Neoprávněné, když chybí autentizační token. Toto je potřeba pro prohlížeče nebo specifické HTTP knihovny, které neposílají přihlašovací údaje bez výzvy serveru.",
|
||||
"headerAuthCompatibility": "Rozšířená kompatibilita",
|
||||
@@ -19,6 +23,14 @@
|
||||
"componentsInvalidKey": "Byly nalezeny neplatné nebo propadlé licenční klíče. Pokud chcete nadále používat všechny funkce, postupujte podle licenčních podmínek.",
|
||||
"dismiss": "Zavřít",
|
||||
"subscriptionViolationMessage": "Jste za hranicemi vašeho aktuálního plánu. Opravte problém odstraněním webů, uživatelů nebo jiných zdrojů, abyste zůstali ve vašem tarifu.",
|
||||
"trialBannerMessage": "Vaše zkušební verze vyprší za {countdown}. Pro udržení přístupu upgraduje.",
|
||||
"trialBannerExpired": "Vaše zkušební verze vypršela. Upgradujte nyní pro obnovu přístupu.",
|
||||
"trialActive": "Zkušební verze je aktivní",
|
||||
"trialExpired": "Zkušební verze vypršela",
|
||||
"trialHasEnded": "Vaše zkušební verze skončila.",
|
||||
"trialDaysRemaining": "{count, plural, one {# den zbývá} few {# dny zbývají} many {# dní zbývá} other {# dny zbývají}}",
|
||||
"trialDaysLeftShort": "Zbývá {days} d ve zkušební verzi",
|
||||
"trialGoToBilling": "Přejděte na fakturační stránku",
|
||||
"subscriptionViolationViewBilling": "Zobrazit fakturaci",
|
||||
"componentsLicenseViolation": "Porušení licenčních podmínek: Tento server používá {usedSites} stránek, což překračuje limit {maxSites} licencovaných stránek. Pokud chcete nadále používat všechny funkce, postupujte podle licenčních podmínek.",
|
||||
"componentsSupporterMessage": "Děkujeme, že podporujete Pangolin jako {tier}!",
|
||||
@@ -267,8 +279,11 @@
|
||||
"orgMissing": "Chybí ID organizace",
|
||||
"orgMissingMessage": "Nelze obnovit pozvánku bez ID organizace.",
|
||||
"accessUsersManage": "Spravovat uživatele",
|
||||
"accessUserManage": "Spravovat uživatele",
|
||||
"accessUsersDescription": "Pozvat a spravovat uživatele s přístupem k této organizaci",
|
||||
"accessUsersSearch": "Hledat uživatele...",
|
||||
"accessUsersRoleFilterCount": "{count, plural, one {# role} few {# role} many {# rolí} other {# roli}}",
|
||||
"accessUsersRoleFilterClear": "Vymazat filtry rolí",
|
||||
"accessUserCreate": "Vytvořit uživatele",
|
||||
"accessUserRemove": "Odstranit uživatele",
|
||||
"username": "Uživatelské jméno",
|
||||
@@ -898,6 +913,7 @@
|
||||
"idpDisplayName": "Zobrazované jméno tohoto poskytovatele identity",
|
||||
"idpAutoProvisionUsers": "Automatická úprava uživatelů",
|
||||
"idpAutoProvisionUsersDescription": "Pokud je povoleno, uživatelé budou automaticky vytvářeni v systému při prvním přihlášení, s možností namapovat uživatele na role a organizace.",
|
||||
"idpAutoProvisionConfigureAfterCreate": "Nastavení automatického poskytování lze nakonfigurovat, jakmile je vytvořen poskytovatel identity.",
|
||||
"licenseBadge": "PE",
|
||||
"idpType": "Typ poskytovatele",
|
||||
"idpTypeDescription": "Vyberte typ poskytovatele identity, který chcete nakonfigurovat",
|
||||
@@ -949,7 +965,7 @@
|
||||
"defaultMappingsRole": "Výchozí mapování rolí",
|
||||
"defaultMappingsRoleDescription": "Výsledek tohoto výrazu musí vrátit název role definovaný v organizaci jako řetězec.",
|
||||
"defaultMappingsOrg": "Výchozí mapování organizace",
|
||||
"defaultMappingsOrgDescription": "Tento výraz musí vrátit org ID nebo pravdu, aby měl uživatel přístup k organizaci.",
|
||||
"defaultMappingsOrgDescription": "Pokud je nastaven, musí tento výraz vracet ID organizace nebo pravda, aby k této organizaci měl uživatel přístup. Pokud není nastaveno, je dostačující definice mapování rolí: uživateli je umožněn přístup, pokud pro něj lze v rámci organizace vyřešit platné mapování rolí.",
|
||||
"defaultMappingsSubmit": "Uložit výchozí mapování",
|
||||
"orgPoliciesEdit": "Upravit zásady organizace",
|
||||
"org": "Organizace",
|
||||
@@ -1256,6 +1272,7 @@
|
||||
"actionViewLogs": "Zobrazit logy",
|
||||
"noneSelected": "Není vybráno",
|
||||
"orgNotFound2": "Nebyly nalezeny žádné organizace.",
|
||||
"search": "Vyhledávání…",
|
||||
"searchPlaceholder": "Hledat...",
|
||||
"emptySearchOptions": "Nebyly nalezeny žádné možnosti",
|
||||
"create": "Vytvořit",
|
||||
@@ -1340,10 +1357,166 @@
|
||||
"sidebarGeneral": "Spravovat",
|
||||
"sidebarLogAndAnalytics": "Log & Analytics",
|
||||
"sidebarBluePrints": "Plány",
|
||||
"sidebarAlerting": "Upozornění",
|
||||
"sidebarHealthChecks": "Kontroly stavu",
|
||||
"sidebarOrganization": "Organizace",
|
||||
"sidebarManagement": "Správa",
|
||||
"sidebarBillingAndLicenses": "Fakturace a licence",
|
||||
"sidebarLogsAnalytics": "Analytici",
|
||||
"alertingTitle": "Upozornění",
|
||||
"alertingDescription": "Definujte zdroje, spouštěče a akce pro oznámení",
|
||||
"alertingRules": "Pravidla upozornění",
|
||||
"alertingSearchRules": "Hledat pravidla…",
|
||||
"alertingAddRule": "Vytvořit pravidlo",
|
||||
"alertingColumnSource": "Zdroj",
|
||||
"alertingColumnTrigger": "Spouštěč",
|
||||
"alertingColumnActions": "Akce",
|
||||
"alertingColumnEnabled": "Povoleno",
|
||||
"alertingDeleteQuestion": "Potvrďte, prosím, zda chcete toto pravidlo upozornění smazat.",
|
||||
"alertingDeleteRule": "Smazat pravidlo upozornění",
|
||||
"alertingRuleDeleted": "Pravidlo upozornění bylo smazáno",
|
||||
"alertingRuleSaved": "Pravidlo upozornění bylo uloženo",
|
||||
"alertingRuleSavedCreatedDescription": "Vaše nové pravidlo upozornění bylo vytvořeno. Můžete ho dál upravovat na této stránce.",
|
||||
"alertingRuleSavedUpdatedDescription": "Vaše změny pro toto pravidlo upozornění byly uloženy.",
|
||||
"alertingEditRule": "Upravit pravidlo upozornění",
|
||||
"alertingCreateRule": "Vytvořit pravidlo upozornění",
|
||||
"alertingRuleCredenzaDescription": "Vyberte, co sledovat, kdy ho spustit a jak oznamovat",
|
||||
"alertingRuleNamePlaceholder": "Produkční stránka je dolů",
|
||||
"alertingRuleEnabled": "Pravidlo povoleno",
|
||||
"alertingSectionSource": "Zdroj",
|
||||
"alertingSourceType": "Typ zdroje",
|
||||
"alertingSourceSite": "Lokalita",
|
||||
"alertingSourceHealthCheck": "Kontrola stavu",
|
||||
"alertingPickSites": "Lokality",
|
||||
"alertingPickHealthChecks": "Kontroly stavu",
|
||||
"alertingPickResources": "Zdroje",
|
||||
"alertingAllSites": "Všechny lokality",
|
||||
"alertingAllSitesDescription": "Upozornění pro jakoukoli lokalitu",
|
||||
"alertingSpecificSites": "Specifické lokality",
|
||||
"alertingSpecificSitesDescription": "Vyberte specifické lokality k sledování",
|
||||
"alertingAllHealthChecks": "Všechny kontroly stavu",
|
||||
"alertingAllHealthChecksDescription": "Upozornění pro jakoukoli kontrolu stavu",
|
||||
"alertingSpecificHealthChecks": "Specifické kontroly stavu",
|
||||
"alertingSpecificHealthChecksDescription": "Vyberte specifické kontroly stavu k sledování",
|
||||
"alertingAllResources": "Všechny zdroje",
|
||||
"alertingAllResourcesDescription": "Upozornění pro jakýkoli zdroj",
|
||||
"alertingSpecificResources": "Specifické zdroje",
|
||||
"alertingSpecificResourcesDescription": "Vyberte specifické zdroje k sledování",
|
||||
"alertingSelectResources": "Vyberte zdroje…",
|
||||
"alertingResourcesSelected": "{count} zdrojů vybráno",
|
||||
"alertingResourcesEmpty": "Žádné zdroje s cíly v prvních 10 výsledcích.",
|
||||
"alertingSectionTrigger": "Spouštěč",
|
||||
"alertingTrigger": "Kdy upozornit",
|
||||
"alertingTriggerSiteOnline": "Stránky online",
|
||||
"alertingTriggerSiteOffline": "Stránky offline",
|
||||
"alertingTriggerSiteToggle": "Změny stavu stránek",
|
||||
"alertingTriggerHcHealthy": "Kontrola stavu je zdravá",
|
||||
"alertingTriggerHcUnhealthy": "Kontrola stavu je nezdravá",
|
||||
"alertingTriggerHcToggle": "Změny stavu kontroly stavu",
|
||||
"alertingTriggerResourceHealthy": "Zdroj je zdravý",
|
||||
"alertingTriggerResourceUnhealthy": "Zdroj je nezdravý",
|
||||
"alertingSearchHealthChecks": "Hledat kontroly stavu…",
|
||||
"alertingHealthChecksEmpty": "Nejsou dostupné kontroly stavu.",
|
||||
"alertingTriggerResourceToggle": "Změny stavu zdroje",
|
||||
"alertingSourceResource": "Zdroj",
|
||||
"alertingSectionActions": "Akce",
|
||||
"alertingAddAction": "Přidat akci",
|
||||
"alertingActionNotify": "Email",
|
||||
"alertingActionNotifyDescription": "Odesílat emailová upozornění uživatelům nebo rolím",
|
||||
"alertingActionWebhook": "Webhook",
|
||||
"alertingActionWebhookDescription": "Odeslání HTTP požadavku na vlastní koncový bod",
|
||||
"alertingExternalIntegration": "Externí integrace",
|
||||
"alertingExternalPagerDutyDescription": "Odesílat upozornění do PagerDuty pro řízení incidentů",
|
||||
"alertingExternalOpsgenieDescription": "Směrujte upozornění do Opsgenie pro řízení, když je někdo na telefonu",
|
||||
"alertingExternalServiceNowDescription": "Vytvářet incidenty ServiceNow z událostí upozornění",
|
||||
"alertingExternalIncidentIoDescription": "Spouštět Incident.io workflowy z událostí upozornění",
|
||||
"alertingActionType": "Typ akce",
|
||||
"alertingNotifyUsers": "Uživatelé",
|
||||
"alertingNotifyRoles": "Role",
|
||||
"alertingNotifyEmails": "Emailové adresy",
|
||||
"alertingEmailPlaceholder": "Přidejte e-mail a stiskněte Enter",
|
||||
"alertingWebhookMethod": "HTTP metoda",
|
||||
"alertingWebhookSecret": "Přihlašovací tajemství (volitelné)",
|
||||
"alertingWebhookSecretPlaceholder": "HMAC tajemství",
|
||||
"alertingWebhookHeaders": "Hlavičky",
|
||||
"alertingAddHeader": "Přidat hlavičku",
|
||||
"alertingSelectSites": "Vybrat lokality…",
|
||||
"alertingSitesSelected": "{count} lokalit vybráno",
|
||||
"alertingSelectHealthChecks": "Vybrat kontroly stavu…",
|
||||
"alertingHealthChecksSelected": "{count} kontrol stavu vybráno",
|
||||
"alertingNoHealthChecks": "Žádné cíle s povolenými kontrolami stavu",
|
||||
"alertingHealthCheckStub": "Výběr zdrojů kontrol stavu ještě není propojen – můžete stále konfigurovat spouštěče a akce.",
|
||||
"alertingSelectUsers": "Vybrat uživatele…",
|
||||
"alertingUsersSelected": "{count} uživatelů vybráno",
|
||||
"alertingSelectRoles": "Vybrat role…",
|
||||
"alertingRolesSelected": "{count} rolí vybráno",
|
||||
"alertingSummarySites": "Lokality ({count})",
|
||||
"alertingSummaryAllSites": "Všechny lokality",
|
||||
"alertingSummaryHealthChecks": "Kontroly stavu ({count})",
|
||||
"alertingSummaryAllHealthChecks": "Všechny kontroly stavu",
|
||||
"alertingSummaryResources": "Zdroje ({count})",
|
||||
"alertingSummaryAllResources": "Všechny zdroje",
|
||||
"alertingErrorNameRequired": "Zadejte jméno",
|
||||
"alertingErrorActionsMin": "Přidat alespoň jednu akci",
|
||||
"alertingErrorPickSites": "Vyberte alespoň jednu lokalitu",
|
||||
"alertingErrorPickHealthChecks": "Vyberte alespoň jednu kontrolu stavu",
|
||||
"alertingErrorPickResources": "Vyberte alespoň jeden zdroj",
|
||||
"alertingErrorTriggerSite": "Vyberte spouštěč lokality",
|
||||
"alertingErrorTriggerHealth": "Vyberte spouštěč kontroly stavu",
|
||||
"alertingErrorTriggerResource": "Vyberte spouštěč zdroje",
|
||||
"alertingErrorNotifyRecipients": "Vyberte uživatele, role nebo alespoň jeden email",
|
||||
"alertingConfigureSource": "Konfigurace zdroje",
|
||||
"alertingConfigureTrigger": "Konfigurace spouštěče",
|
||||
"alertingConfigureActions": "Konfigurace akcí",
|
||||
"alertingBackToRules": "Zpět na pravidla",
|
||||
"alertingRuleCooldown": "Odpočinek (sekundy)",
|
||||
"alertingRuleCooldownDescription": "Minimální doba mezi opakovanými upozorněními pro stejné pravidlo. Nastavte na 0 pro spuštění pokaždé.",
|
||||
"alertingDraftBadge": "Koncept - uložit pro uložení tohoto pravidla",
|
||||
"alertingSidebarHint": "Kliknutím na krok na plátno ho zde upravte.",
|
||||
"alertingGraphCanvasTitle": "Průběh pravidla",
|
||||
"alertingGraphCanvasDescription": "Vizuální přehled o zdroji, spouštěči a akcích. Vyberte uzel k jeho editaci v panelu.",
|
||||
"alertingNodeNotConfigured": "Ještě není nakonfigurováno",
|
||||
"alertingNodeActionsCount": "{count, plural, one {# akce} few {# akce} many {# akcí} other {# akce}}",
|
||||
"alertingNodeRoleSource": "Zdroj",
|
||||
"alertingNodeRoleTrigger": "Spouštěč",
|
||||
"alertingNodeRoleAction": "Akce",
|
||||
"alertingTabRules": "Pravidla upozornění",
|
||||
"alertingTabHealthChecks": "Kontroly stavu",
|
||||
"alertingRulesBannerTitle": "Dostávat upozornění",
|
||||
"alertingRulesBannerDescription": "Každé pravidlo spojuje, co sledovat (lokalita, kontrola stavu nebo zdroj), kdy ho spustit (například offline nebo nezdravé), a jak informovat váš tým emailem, webhookem nebo integracemi. Použijte tento seznam k vytvoření, povolení a správě těchto pravidel.",
|
||||
"alertingHealthChecksBannerTitle": "Monitorujte zdraví a zdroje",
|
||||
"alertingHealthChecksBannerDescription": "Kontroly stavu jsou HTTP nebo TCP monitory, které nastavíte jednou. Poté je můžete použít jako zdroje v pravidlech upozornění, takže budete informováni, když se cíl stane zdravým nebo nezdravým. Kontroly stavu také zde se objeví.",
|
||||
"standaloneHcTableTitle": "Kontroly stavu",
|
||||
"standaloneHcSearchPlaceholder": "Hledat kontroly stavu…",
|
||||
"standaloneHcAddButton": "Vytvořit kontrolu stavu",
|
||||
"standaloneHcCreateTitle": "Vytvořit kontrolu stavu",
|
||||
"standaloneHcEditTitle": "Upravit kontrolu stavu",
|
||||
"standaloneHcDescription": "Nakonfigurujte HTTP nebo TCP kontrolu stavu pro použití v pravidlech upozornění.",
|
||||
"standaloneHcNameLabel": "Jméno",
|
||||
"standaloneHcNamePlaceholder": "Můj HTTP Monitor",
|
||||
"standaloneHcDeleteTitle": "Smazat kontrolu stavu",
|
||||
"standaloneHcDeleteQuestion": "Potvrďte, prosím, zda chcete tuto kontrolu stavu smazat.",
|
||||
"standaloneHcDeleted": "Kontrola stavu byla smazána",
|
||||
"standaloneHcSaved": "Kontrola stavu byla uložena",
|
||||
"standaloneHcColumnHealth": "Zdraví",
|
||||
"standaloneHcColumnMode": "Režim",
|
||||
"standaloneHcColumnTarget": "Cíl",
|
||||
"standaloneHcHealthStateHealthy": "Zdravé",
|
||||
"standaloneHcHealthStateUnhealthy": "Nezdravé",
|
||||
"standaloneHcHealthStateUnknown": "Neznámý",
|
||||
"standaloneHcFilterAnySite": "Všechny lokality",
|
||||
"standaloneHcFilterAnyResource": "Všechny zdroje",
|
||||
"standaloneHcFilterMode": "Režim",
|
||||
"standaloneHcFilterModeHttp": "HTTP",
|
||||
"standaloneHcFilterModeTcp": "TCP",
|
||||
"standaloneHcFilterModeSnmp": "SNMP",
|
||||
"standaloneHcFilterModePing": "Ping",
|
||||
"standaloneHcFilterHealth": "Zdraví",
|
||||
"standaloneHcFilterEnabled": "Povoleno",
|
||||
"standaloneHcFilterEnabledOn": "Povoleno",
|
||||
"standaloneHcFilterEnabledOff": "Zakázáno",
|
||||
"standaloneHcFilterSiteIdFallback": "Stránka {id}",
|
||||
"standaloneHcFilterResourceIdFallback": "Zdroj {id}",
|
||||
"blueprints": "Plány",
|
||||
"blueprintsDescription": "Použít deklarativní konfigurace a zobrazit předchozí běhy",
|
||||
"blueprintAdd": "Přidat plán",
|
||||
@@ -1762,6 +1935,15 @@
|
||||
"healthCheckIntervalMin": "Interval kontroly musí být nejméně 5 sekund",
|
||||
"healthCheckTimeoutMin": "Časový limit musí být nejméně 1 sekunda",
|
||||
"healthCheckRetryMin": "Pokusy opakovat musí být alespoň 1",
|
||||
"healthCheckMode": "Režim kontroly",
|
||||
"healthCheckStrategy": "Strategie",
|
||||
"healthCheckModeDescription": "Režim TCP ověřuje pouze připojení. Režim HTTP ověřuje HTTP odezvu.",
|
||||
"healthyThreshold": "Zdravý práh",
|
||||
"healthyThresholdDescription": "Počet po sobě jdoucích úspěchů vyžadovaných před označením jako zdravý.",
|
||||
"unhealthyThreshold": "Nezdravý práh",
|
||||
"unhealthyThresholdDescription": "Počet po sobě jdoucích selhání vyžadovaných před označením jako nezdravý.",
|
||||
"healthCheckHealthyThresholdMin": "Zdravý práh musí být alespoň 1",
|
||||
"healthCheckUnhealthyThresholdMin": "Nezdravý práh musí být alespoň 1",
|
||||
"httpMethod": "HTTP metoda",
|
||||
"selectHttpMethod": "Vyberte HTTP metodu",
|
||||
"domainPickerSubdomainLabel": "Subdoména",
|
||||
@@ -1821,6 +2003,11 @@
|
||||
"editInternalResourceDialogModePort": "Přístav",
|
||||
"editInternalResourceDialogModeHost": "Hostitel",
|
||||
"editInternalResourceDialogModeCidr": "CIDR",
|
||||
"editInternalResourceDialogModeHttp": "HTTP",
|
||||
"editInternalResourceDialogModeHttps": "HTTPS",
|
||||
"editInternalResourceDialogScheme": "Schéma",
|
||||
"editInternalResourceDialogEnableSsl": "Povolit SSL",
|
||||
"editInternalResourceDialogEnableSslDescription": "Povolit šifrování SSL/TLS pro zabezpečené HTTPS připojení k cíli.",
|
||||
"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.",
|
||||
@@ -1836,6 +2023,7 @@
|
||||
"createInternalResourceDialogName": "Jméno",
|
||||
"createInternalResourceDialogSite": "Lokalita",
|
||||
"selectSite": "Vybrat lokalitu...",
|
||||
"multiSitesSelectorSitesCount": "{count, plural, one {# web} few {# weby} many {# webů} other {# weby}}",
|
||||
"noSitesFound": "Nebyly nalezeny žádné lokality.",
|
||||
"createInternalResourceDialogProtocol": "Protokol",
|
||||
"createInternalResourceDialogTcp": "TCP",
|
||||
@@ -1864,11 +2052,19 @@
|
||||
"createInternalResourceDialogModePort": "Přístav",
|
||||
"createInternalResourceDialogModeHost": "Hostitel",
|
||||
"createInternalResourceDialogModeCidr": "CIDR",
|
||||
"createInternalResourceDialogModeHttp": "HTTP",
|
||||
"createInternalResourceDialogModeHttps": "HTTPS",
|
||||
"scheme": "Schéma",
|
||||
"createInternalResourceDialogScheme": "Schéma",
|
||||
"createInternalResourceDialogEnableSsl": "Povolit SSL",
|
||||
"createInternalResourceDialogEnableSslDescription": "Povolit šifrování SSL/TLS pro zabezpečené HTTPS připojení k cíli.",
|
||||
"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.",
|
||||
"internalResourceDownstreamSchemeRequired": "HTTP metoda je vyžadována pro HTTP zdroje",
|
||||
"internalResourceHttpPortRequired": "Přípoječný port je nutný pro HTTP zdroj",
|
||||
"siteConfiguration": "Konfigurace",
|
||||
"siteAcceptClientConnections": "Přijmout připojení klienta",
|
||||
"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.",
|
||||
@@ -1993,7 +2189,7 @@
|
||||
"description": "Spolehlivější a nízko udržovaný Pangolinův server s dalšími zvony a bičkami",
|
||||
"introTitle": "Spravovaný Pangolin",
|
||||
"introDescription": "je možnost nasazení určená pro lidi, kteří chtějí jednoduchost a spolehlivost při zachování soukromých a samoobslužných dat.",
|
||||
"introDetail": "Pomocí této volby stále provozujete vlastní uzel Pangolin — tunely, SSL terminály a provoz všech pobytů na vašem serveru. Rozdíl spočívá v tom, že řízení a monitorování se řeší prostřednictvím našeho cloudového panelu, který odemkne řadu výhod:",
|
||||
"introDetail": "Pomocí této volby stále provozujete vlastní uzel Pangolin - tunely, SSL terminály a provoz všech pobytů na vašem serveru. Rozdíl spočívá v tom, že řízení a monitorování se řeší prostřednictvím našeho cloudového panelu, který odemkne řadu výhod:",
|
||||
"benefitSimplerOperations": {
|
||||
"title": "Jednoduchý provoz",
|
||||
"description": "Není třeba spouštět svůj vlastní poštovní server nebo nastavit komplexní upozornění. Ze schránky dostanete upozornění na zdravotní kontrolu a výpadek."
|
||||
@@ -2026,7 +2222,7 @@
|
||||
},
|
||||
"internationaldomaindetected": "Zjištěna mezinárodní doména",
|
||||
"willbestoredas": "Bude uloženo jako:",
|
||||
"roleMappingDescription": "Určete, jak jsou role přiřazeny uživatelům, když se přihlásí, když je povoleno automatické poskytnutí služby.",
|
||||
"roleMappingDescription": "Určete, jak jsou role přiřazeny uživatelům, když se přihlásí s tímto poskytovatelem identity.",
|
||||
"selectRole": "Vyberte roli",
|
||||
"roleMappingExpression": "Výraz",
|
||||
"selectRolePlaceholder": "Vyberte roli",
|
||||
@@ -2428,6 +2624,7 @@
|
||||
"validPassword": "Platné heslo",
|
||||
"validEmail": "Valid email",
|
||||
"validSSO": "Valid SSO",
|
||||
"connectedClient": "Připojený klient",
|
||||
"resourceBlocked": "Zablokované zdroje",
|
||||
"droppedByRule": "Zrušeno pravidlem",
|
||||
"noSessions": "Žádné relace",
|
||||
@@ -2667,6 +2864,10 @@
|
||||
"editInternalResourceDialogDestinationLabel": "Cíl",
|
||||
"editInternalResourceDialogDestinationDescription": "Určete cílovou adresu pro interní prostředek. Může se jednat o hostname, IP adresu, nebo rozsah CIDR v závislosti na vybraném režimu. Volitelně nastavte interní DNS alias pro snazší identifikaci.",
|
||||
"editInternalResourceDialogPortRestrictionsDescription": "Omezte přístup na specifické TCP/UDP porty nebo povolte/blokujte všechny porty.",
|
||||
"createInternalResourceDialogHttpConfiguration": "Konfigurace HTTP",
|
||||
"createInternalResourceDialogHttpConfigurationDescription": "Zvolte doménu, kterou klienti použijí k dosažení tohoto zdroje přes HTTP nebo HTTPS.",
|
||||
"editInternalResourceDialogHttpConfiguration": "Konfigurace HTTP",
|
||||
"editInternalResourceDialogHttpConfigurationDescription": "Zvolte doménu, kterou klienti použijí k dosažení tohoto zdroje přes HTTP nebo HTTPS.",
|
||||
"editInternalResourceDialogTcp": "TCP",
|
||||
"editInternalResourceDialogUdp": "UDP",
|
||||
"editInternalResourceDialogIcmp": "ICMP",
|
||||
@@ -2705,6 +2906,8 @@
|
||||
"maintenancePageMessagePlaceholder": "Vrátíme se brzy! Naše stránka právě prochází plánovanou údrbou.",
|
||||
"maintenancePageMessageDescription": "Podrobná zpráva vysvětlující údržbu",
|
||||
"maintenancePageTimeTitle": "Odhadovaný čas dokončení (volitelný)",
|
||||
"privateMaintenanceScreenTitle": "Soukromá obrazovka údržby",
|
||||
"privateMaintenanceScreenMessage": "Tato doména je používána na soukromém zdroji. Prosím, připojte se přes klienta Pangolin pro přístup k tomuto zdroji.",
|
||||
"maintenanceTime": "např. 2 hodiny, 1. listopadu v 17:00",
|
||||
"maintenanceEstimatedTimeDescription": "Kdy očekáváte, že údržba bude dokončena",
|
||||
"editDomain": "Upravit doménu",
|
||||
@@ -2842,6 +3045,14 @@
|
||||
"httpDestAddTitle": "Přidat cíl HTTP",
|
||||
"httpDestEditDescription": "Aktualizovat konfiguraci pro tuto destinaci HTTP události",
|
||||
"httpDestAddDescription": "Konfigurace nového koncového bodu HTTP pro příjem událostí vaší organizace.",
|
||||
"S3DestEditTitle": "Upravit cíl",
|
||||
"S3DestAddTitle": "Přidat S3 cíl",
|
||||
"S3DestEditDescription": "Aktualizujte konfiguraci tohoto S3 cíle pro streamování událostí.",
|
||||
"S3DestAddDescription": "Konfigurujte nový S3 koncový bod pro přijímání událostí vaší organizace.",
|
||||
"datadogDestEditTitle": "Upravit cíl",
|
||||
"datadogDestAddTitle": "Přidat Datadog cíl",
|
||||
"datadogDestEditDescription": "Aktualizujte konfiguraci tohoto Datadog cíle pro streamování událostí.",
|
||||
"datadogDestAddDescription": "Konfigurujte nový Datadog koncový bod pro přijímání událostí vaší organizace.",
|
||||
"httpDestTabSettings": "Nastavení",
|
||||
"httpDestTabHeaders": "Záhlaví",
|
||||
"httpDestTabBody": "Tělo",
|
||||
@@ -2899,5 +3110,37 @@
|
||||
"httpDestUpdatedSuccess": "Cíl byl úspěšně aktualizován",
|
||||
"httpDestCreatedSuccess": "Cíl byl úspěšně vytvořen",
|
||||
"httpDestUpdateFailed": "Nepodařilo se aktualizovat cíl",
|
||||
"httpDestCreateFailed": "Nepodařilo se vytvořit cíl"
|
||||
"httpDestCreateFailed": "Nepodařilo se vytvořit cíl",
|
||||
"followRedirects": "Následovat přesměrování",
|
||||
"followRedirectsDescription": "Automaticky sledovat přesměrování HTTP pro požadavky.",
|
||||
"alertingErrorWebhookUrl": "Zadejte platnou URL pro webhook.",
|
||||
"healthCheckStrategyHttp": "Ověření připojení a kontrola stavu HTTP odpovědi.",
|
||||
"healthCheckStrategyTcp": "Ověření TCP připojení, bez inspekce odpovědi.",
|
||||
"healthCheckStrategySnmp": "Vytváří SNMP požadavek pro kontrolu stavu síťových zařízení a infrastruktury.",
|
||||
"healthCheckStrategyIcmp": "Používá se ICMP echo požadavky (pingy) ke kontrole, zda je zdroj dosažitelný a reaguje.",
|
||||
"healthCheckTabStrategy": "Strategie",
|
||||
"healthCheckTabConnection": "Připojení",
|
||||
"healthCheckTabAdvanced": "Pokročilé",
|
||||
"healthCheckStrategyNotAvailable": "Tato strategie není dostupná. Kontaktujte prodejce pro povolení této funkce.",
|
||||
"uptime30d": "Doba provozu (30d)",
|
||||
"idpAddActionCreateNew": "Vytvořit nového poskytovatele identity",
|
||||
"idpAddActionImportFromOrg": "Importovat z jiné organizace",
|
||||
"idpImportDialogTitle": "Importovat poskytovatele identity",
|
||||
"idpImportDialogDescription": "Vyberte poskytovatele identity z organizace, v níž jste administrátor. Tento poskytovatel bude propojen s touto organizací.",
|
||||
"idpImportSearchPlaceholder": "Hledat podle názvu organizace nebo poskytovatele...",
|
||||
"idpImportEmpty": "Nebyli nalezeni žádní poskytovatelé identity.",
|
||||
"idpImportedDescription": "Poskytovatel identity byl úspěšně importován.",
|
||||
"idpDeleteGlobalQuestion": "Opravdu chcete trvale smazat tohoto poskytovatele identity?",
|
||||
"idpDeleteGlobalDescription": "Tímto bude poskytovatel identity trvale odstraněn ze všech organizací, se kterými je spojen.",
|
||||
"idpUnassociateTitle": "Odpojit poskytovatele identity",
|
||||
"idpUnassociateQuestion": "Opravdu chcete odpojit tohoto poskytovatele identity od této organizace?",
|
||||
"idpUnassociateDescription": "Všichni uživatelé spojení s tímto poskytovatelem identity budou odstraněni z této organizace, ale poskytovatel identity zůstane nadále existovat pro ostatní přidružené organizace.",
|
||||
"idpUnassociateConfirm": "Potvrdit odpojení poskytovatele identity",
|
||||
"idpUnassociateWarning": "Toto nelze pro tuto organizaci vrátit.",
|
||||
"idpUnassociatedDescription": "Poskytovatel identity byl úspěšně odpojen od této organizace",
|
||||
"idpUnassociateMenu": "Odpojit",
|
||||
"idpDeleteAllOrgsMenu": "Odstranit",
|
||||
"publicIpEndpoint": "Koncový bod",
|
||||
"lastTriggeredAt": "Poslední spouštěč",
|
||||
"reject": "Odmítnout"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"contactSalesEnable": "Vertrieb kontaktieren, um diese Funktion zu aktivieren.",
|
||||
"contactSalesBookDemo": "Demo vereinbaren",
|
||||
"contactSalesOr": "oder",
|
||||
"contactSalesContactUs": "kontaktieren Sie uns",
|
||||
"setupCreate": "Organisation, Standort und Ressourcen erstellen",
|
||||
"headerAuthCompatibilityInfo": "Aktivieren Sie dies, um eine 401 Nicht autorisierte Antwort zu erzwingen, wenn ein Authentifizierungs-Token fehlt. Dies ist erforderlich für Browser oder bestimmte HTTP-Bibliotheken, die keine Anmeldedaten ohne Server-Challenge senden.",
|
||||
"headerAuthCompatibility": "Erweiterte Kompatibilität",
|
||||
@@ -19,6 +23,14 @@
|
||||
"componentsInvalidKey": "Ungültige oder abgelaufene Lizenzschlüssel erkannt. Beachte die Lizenzbedingungen, um alle Funktionen weiterhin zu nutzen.",
|
||||
"dismiss": "Verwerfen",
|
||||
"subscriptionViolationMessage": "Sie überschreiten Ihre Grenzen für Ihr aktuelles Paket. Korrigieren Sie das Problem, indem Sie Webseiten, Benutzer oder andere Ressourcen entfernen, um in Ihrem Paket zu bleiben.",
|
||||
"trialBannerMessage": "Ihre Testversion läuft in {countdown} ab. Upgraden, um den Zugriff zu behalten.",
|
||||
"trialBannerExpired": "Ihre Testversion ist abgelaufen. Jetzt upgraden, um den Zugriff wiederherzustellen.",
|
||||
"trialActive": "Kostenlose Testversion aktiv",
|
||||
"trialExpired": "Testversion abgelaufen",
|
||||
"trialHasEnded": "Ihre Testversion ist beendet.",
|
||||
"trialDaysRemaining": "{count, plural, one {# Tag übrig} other {# Tage übrig}}",
|
||||
"trialDaysLeftShort": "Noch {days}d in der Testversion",
|
||||
"trialGoToBilling": "Zur Rechnungsseite gehen",
|
||||
"subscriptionViolationViewBilling": "Rechnung anzeigen",
|
||||
"componentsLicenseViolation": "Lizenzverstoß: Dieser Server benutzt {usedSites} Standorte, was das Lizenzlimit von {maxSites} Standorten überschreitet. Beachte die Lizenzbedingungen, um alle Funktionen weiterhin zu nutzen.",
|
||||
"componentsSupporterMessage": "Vielen Dank für die Unterstützung von Pangolin als {tier}!",
|
||||
@@ -267,8 +279,11 @@
|
||||
"orgMissing": "Organisations-ID fehlt",
|
||||
"orgMissingMessage": "Einladung kann ohne Organisations-ID nicht neu generiert werden.",
|
||||
"accessUsersManage": "Benutzer verwalten",
|
||||
"accessUserManage": "Benutzer verwalten",
|
||||
"accessUsersDescription": "Benutzer mit Zugriff auf diese Organisation einladen und verwalten",
|
||||
"accessUsersSearch": "Benutzer suchen...",
|
||||
"accessUsersRoleFilterCount": "{count, plural, one {# Rolle} other {# Rollen}}",
|
||||
"accessUsersRoleFilterClear": "Rollenfilter löschen",
|
||||
"accessUserCreate": "Benutzer erstellen",
|
||||
"accessUserRemove": "Benutzer entfernen",
|
||||
"username": "Benutzername",
|
||||
@@ -898,6 +913,7 @@
|
||||
"idpDisplayName": "Ein Anzeigename für diesen Identitätsanbieter",
|
||||
"idpAutoProvisionUsers": "Automatische Benutzerbereitstellung",
|
||||
"idpAutoProvisionUsersDescription": "Wenn aktiviert, werden Benutzer beim ersten Login automatisch im System erstellt, mit der Möglichkeit, Benutzer Rollen und Organisationen zuzuordnen.",
|
||||
"idpAutoProvisionConfigureAfterCreate": "Sie können die automatische Bereitstellung einstellen, sobald der Identitätsanbieter erstellt ist.",
|
||||
"licenseBadge": "EE",
|
||||
"idpType": "Anbietertyp",
|
||||
"idpTypeDescription": "Wählen Sie den Typ des Identitätsanbieters, den Sie konfigurieren möchten",
|
||||
@@ -949,7 +965,7 @@
|
||||
"defaultMappingsRole": "Standard-Rollenzuordnung",
|
||||
"defaultMappingsRoleDescription": "JMESPath zur Extraktion von Rolleninformationen aus dem ID-Token. Das Ergebnis dieses Ausdrucks muss den Rollennamen als String zurückgeben, wie er in der Organisation definiert ist.",
|
||||
"defaultMappingsOrg": "Standard-Organisationszuordnung",
|
||||
"defaultMappingsOrgDescription": "JMESPath zur Extraktion von Organisationsinformationen aus dem ID-Token. Dieser Ausdruck muss die Organisations-ID oder true zurückgeben, damit der Benutzer Zugriff auf die Organisation erhält.",
|
||||
"defaultMappingsOrgDescription": "Wenn diese Einstellung festgelegt ist, muss dieser Ausdruck die Organisations-ID oder wahr zurückgeben, damit der Benutzer diese Organisation betreten kann. Ist sie nicht festgelegt, reicht die Definition einer Rollenzuordnung aus: Der Benutzer darf eintreten, solange eine gültige Rollenzuordnung innerhalb der Organisation für ihn aufgelöst werden kann.",
|
||||
"defaultMappingsSubmit": "Standardzuordnungen speichern",
|
||||
"orgPoliciesEdit": "Organisationsrichtlinie bearbeiten",
|
||||
"org": "Organisation",
|
||||
@@ -1256,6 +1272,7 @@
|
||||
"actionViewLogs": "Logs anzeigen",
|
||||
"noneSelected": "Keine ausgewählt",
|
||||
"orgNotFound2": "Keine Organisationen gefunden.",
|
||||
"search": "Suche…",
|
||||
"searchPlaceholder": "Suche...",
|
||||
"emptySearchOptions": "Keine Optionen gefunden",
|
||||
"create": "Erstellen",
|
||||
@@ -1340,10 +1357,166 @@
|
||||
"sidebarGeneral": "Verwalten",
|
||||
"sidebarLogAndAnalytics": "Log & Analytik",
|
||||
"sidebarBluePrints": "Blaupausen",
|
||||
"sidebarAlerting": "Benachrichtigung",
|
||||
"sidebarHealthChecks": "Gesundheits-Checks",
|
||||
"sidebarOrganization": "Organisation",
|
||||
"sidebarManagement": "Management",
|
||||
"sidebarBillingAndLicenses": "Abrechnung & Lizenzen",
|
||||
"sidebarLogsAnalytics": "Analytik",
|
||||
"alertingTitle": "Benachrichtigung",
|
||||
"alertingDescription": "Quellen, Auslöser und Aktionen für Benachrichtigungen festlegen",
|
||||
"alertingRules": "Benachrichtigungsregeln",
|
||||
"alertingSearchRules": "Suchregeln…",
|
||||
"alertingAddRule": "Regel erstellen",
|
||||
"alertingColumnSource": "Quelle",
|
||||
"alertingColumnTrigger": "Auslöser",
|
||||
"alertingColumnActions": "Aktionen",
|
||||
"alertingColumnEnabled": "Aktiviert",
|
||||
"alertingDeleteQuestion": "Bitte bestätigen Sie, dass Sie diese Benachrichtigungsregel löschen möchten.",
|
||||
"alertingDeleteRule": "Benachrichtigungsregel löschen",
|
||||
"alertingRuleDeleted": "Benachrichtigungsregel gelöscht",
|
||||
"alertingRuleSaved": "Benachrichtigungsregel gespeichert",
|
||||
"alertingRuleSavedCreatedDescription": "Ihre neue Benachrichtigungsregel wurde erstellt. Sie können sie auf dieser Seite weiter bearbeiten.",
|
||||
"alertingRuleSavedUpdatedDescription": "Ihre Änderungen an dieser Benachrichtigungsregel wurden gespeichert.",
|
||||
"alertingEditRule": "Benachrichtigungsregel bearbeiten",
|
||||
"alertingCreateRule": "Benachrichtigungsregel erstellen",
|
||||
"alertingRuleCredenzaDescription": "Wählen Sie aus, was beobachtet, wann ausgelöst und wie benachrichtigt werden soll",
|
||||
"alertingRuleNamePlaceholder": "Produktionsseite ausgefallen",
|
||||
"alertingRuleEnabled": "Regel aktiviert",
|
||||
"alertingSectionSource": "Quelle",
|
||||
"alertingSourceType": "Quellentyp",
|
||||
"alertingSourceSite": "Standort",
|
||||
"alertingSourceHealthCheck": "Gesundheits-Check",
|
||||
"alertingPickSites": "Standorte",
|
||||
"alertingPickHealthChecks": "Gesundheits-Checks",
|
||||
"alertingPickResources": "Ressourcen",
|
||||
"alertingAllSites": "Alle Standorte",
|
||||
"alertingAllSitesDescription": "Benachrichtigung für jeden Standort",
|
||||
"alertingSpecificSites": "Bestimmte Standorte",
|
||||
"alertingSpecificSitesDescription": "Wählen Sie spezifische Standorte zur Beobachtung aus",
|
||||
"alertingAllHealthChecks": "Alle Gesundheits-Checks",
|
||||
"alertingAllHealthChecksDescription": "Benachrichtigung für jeden Gesundheits-Check",
|
||||
"alertingSpecificHealthChecks": "Bestimmte Gesundheits-Checks",
|
||||
"alertingSpecificHealthChecksDescription": "Wählen Sie spezifische Gesundheits-Checks zur Beobachtung aus",
|
||||
"alertingAllResources": "Alle Ressourcen",
|
||||
"alertingAllResourcesDescription": "Benachrichtigung für jede Ressource",
|
||||
"alertingSpecificResources": "Spezifische Ressourcen",
|
||||
"alertingSpecificResourcesDescription": "Wählen Sie spezifische Ressourcen zur Beobachtung aus",
|
||||
"alertingSelectResources": "Ressourcen auswählen…",
|
||||
"alertingResourcesSelected": "{count} Ressourcen ausgewählt",
|
||||
"alertingResourcesEmpty": "Keine Ressourcen mit Zielen in den ersten 10 Ergebnissen.",
|
||||
"alertingSectionTrigger": "Auslöser",
|
||||
"alertingTrigger": "Wann benachrichtigen",
|
||||
"alertingTriggerSiteOnline": "Seite online",
|
||||
"alertingTriggerSiteOffline": "Seite offline",
|
||||
"alertingTriggerSiteToggle": "Seitenstatus ändern",
|
||||
"alertingTriggerHcHealthy": "Gesundheits-Check gesund",
|
||||
"alertingTriggerHcUnhealthy": "Gesundheits-Check ungesund",
|
||||
"alertingTriggerHcToggle": "Gesundheits-Check-Status ändern",
|
||||
"alertingTriggerResourceHealthy": "Ressource gesund",
|
||||
"alertingTriggerResourceUnhealthy": "Ressource ungesund",
|
||||
"alertingSearchHealthChecks": "Gesundheits-Checks suchen…",
|
||||
"alertingHealthChecksEmpty": "Keine Gesundheits-Checks verfügbar.",
|
||||
"alertingTriggerResourceToggle": "Ressourcenstatus ändern",
|
||||
"alertingSourceResource": "Ressource",
|
||||
"alertingSectionActions": "Aktionen",
|
||||
"alertingAddAction": "Aktion hinzufügen",
|
||||
"alertingActionNotify": "E-Mail",
|
||||
"alertingActionNotifyDescription": "Versenden Sie E-Mail-Benachrichtigungen an Benutzer oder Rollen",
|
||||
"alertingActionWebhook": "Webhook",
|
||||
"alertingActionWebhookDescription": "Senden Sie eine HTTP-Anfrage an einen benutzerdefinierten Endpunkt",
|
||||
"alertingExternalIntegration": "Externe Integration",
|
||||
"alertingExternalPagerDutyDescription": "Senden Sie Benachrichtigungen an PagerDuty für Incident Management",
|
||||
"alertingExternalOpsgenieDescription": "Leiten Sie Benachrichtigungen an Opsgenie für On-Call Management",
|
||||
"alertingExternalServiceNowDescription": "Erstellen Sie ServiceNow-Incidents aus Benachrichtigungsereignissen",
|
||||
"alertingExternalIncidentIoDescription": "Starten Sie Incident.io-Workflows aus Benachrichtigungsereignissen",
|
||||
"alertingActionType": "Aktionstyp",
|
||||
"alertingNotifyUsers": "Benutzer",
|
||||
"alertingNotifyRoles": "Rollen",
|
||||
"alertingNotifyEmails": "E-Mail-Adressen",
|
||||
"alertingEmailPlaceholder": "E-Mail hinzufügen und Enter drücken",
|
||||
"alertingWebhookMethod": "HTTP-Methode",
|
||||
"alertingWebhookSecret": "Signatur geheim (optional)",
|
||||
"alertingWebhookSecretPlaceholder": "HMAC-Geheimnis",
|
||||
"alertingWebhookHeaders": "Header",
|
||||
"alertingAddHeader": "Header hinzufügen",
|
||||
"alertingSelectSites": "Standorte auswählen…",
|
||||
"alertingSitesSelected": "{count} Standorte ausgewählt",
|
||||
"alertingSelectHealthChecks": "Gesundheits-Checks auswählen…",
|
||||
"alertingHealthChecksSelected": "{count} Gesundheits-Checks ausgewählt",
|
||||
"alertingNoHealthChecks": "Keine Ziele mit aktivierten Gesundheits-Checks",
|
||||
"alertingHealthCheckStub": "Gesundheits-Quellenauswahl ist noch nicht verdrahtet – Sie können trotzdem Auslöser und Aktionen konfigurieren.",
|
||||
"alertingSelectUsers": "Benutzer auswählen…",
|
||||
"alertingUsersSelected": "{count} Benutzer ausgewählt",
|
||||
"alertingSelectRoles": "Rollen auswählen…",
|
||||
"alertingRolesSelected": "{count} Rollen ausgewählt",
|
||||
"alertingSummarySites": "Standorte ({count})",
|
||||
"alertingSummaryAllSites": "Alle Standorte",
|
||||
"alertingSummaryHealthChecks": "Gesundheits-Checks ({count})",
|
||||
"alertingSummaryAllHealthChecks": "Alle Gesundheits-Checks",
|
||||
"alertingSummaryResources": "Ressourcen ({count})",
|
||||
"alertingSummaryAllResources": "Alle Ressourcen",
|
||||
"alertingErrorNameRequired": "Einen Namen eingeben",
|
||||
"alertingErrorActionsMin": "Mindestens eine Aktion hinzufügen",
|
||||
"alertingErrorPickSites": "Wählen Sie mindestens einen Standort aus",
|
||||
"alertingErrorPickHealthChecks": "Wählen Sie mindestens einen Gesundheits-Check aus",
|
||||
"alertingErrorPickResources": "Wählen Sie mindestens eine Ressource aus",
|
||||
"alertingErrorTriggerSite": "Wählen Sie einen Auslöser für den Standort",
|
||||
"alertingErrorTriggerHealth": "Wählen Sie einen Auslöser für den Gesundheits-Check",
|
||||
"alertingErrorTriggerResource": "Wählen Sie einen Auslöser für die Ressource",
|
||||
"alertingErrorNotifyRecipients": "Wählen Sie Benutzer, Rollen oder mindestens eine E-Mail aus",
|
||||
"alertingConfigureSource": "Quelle konfigurieren",
|
||||
"alertingConfigureTrigger": "Auslöser konfigurieren",
|
||||
"alertingConfigureActions": "Aktionen konfigurieren",
|
||||
"alertingBackToRules": "Zurück zu den Regeln",
|
||||
"alertingRuleCooldown": "Cooldown (Sekunden)",
|
||||
"alertingRuleCooldownDescription": "Mindest-Zeit zwischen wiederholten Benachrichtigungen für dieselbe Regel. Auf 0 setzen, um jedes Mal auszulösen.",
|
||||
"alertingDraftBadge": "Entwurf - speichern, um diese Regel zu sichern",
|
||||
"alertingSidebarHint": "Klicken Sie auf einen Schritt auf der Leinwand, um ihn hier zu bearbeiten.",
|
||||
"alertingGraphCanvasTitle": "Regelfluss",
|
||||
"alertingGraphCanvasDescription": "Visuelle Übersicht über Quelle, Auslöser und Aktionen. Wählen Sie einen Knoten aus, um ihn im Panel zu bearbeiten.",
|
||||
"alertingNodeNotConfigured": "Noch nicht konfiguriert",
|
||||
"alertingNodeActionsCount": "{count, plural, one {# Aktion} other {# Aktionen}}",
|
||||
"alertingNodeRoleSource": "Quelle",
|
||||
"alertingNodeRoleTrigger": "Auslöser",
|
||||
"alertingNodeRoleAction": "Aktion",
|
||||
"alertingTabRules": "Benachrichtigungsregeln",
|
||||
"alertingTabHealthChecks": "Gesundheits-Checks",
|
||||
"alertingRulesBannerTitle": "Benachrichtigt werden",
|
||||
"alertingRulesBannerDescription": "Jede Regel verknüpft, was beobachtet werden soll (eine Seite, ein Gesundheits-Check oder eine Ressource), wann es ausgelöst werden soll (zum Beispiel offline oder ungesund), und wie Ihr Team benachrichtigt wird, z. B. per E-Mail, Webhooks oder Integrationen. Verwenden Sie diese Liste, um diese Regeln zu erstellen, zu aktivieren und zu verwalten.",
|
||||
"alertingHealthChecksBannerTitle": "Gesundheit & Ressourcen überwachen",
|
||||
"alertingHealthChecksBannerDescription": "Gesundheits-Checks sind HTTP- oder TCP-Monitore, die Sie einmal definieren. Sie können sie dann als Quellen in Benachrichtigungsregeln verwenden, so dass Sie benachrichtigt werden, wenn ein Ziel gesund oder ungesund wird. Gesundheits-Checks für Ressourcen erscheinen ebenfalls hier.",
|
||||
"standaloneHcTableTitle": "Gesundheits-Checks",
|
||||
"standaloneHcSearchPlaceholder": "Gesundheits-Checks suchen…",
|
||||
"standaloneHcAddButton": "Gesundheits-Check erstellen",
|
||||
"standaloneHcCreateTitle": "Gesundheits-Check erstellen",
|
||||
"standaloneHcEditTitle": "Gesundheits-Check bearbeiten",
|
||||
"standaloneHcDescription": "Konfigurieren Sie einen HTTP- oder TCP-Gesundheits-Check zur Verwendung in Benachrichtigungsregeln.",
|
||||
"standaloneHcNameLabel": "Name",
|
||||
"standaloneHcNamePlaceholder": "Mein HTTP-Monitor",
|
||||
"standaloneHcDeleteTitle": "Gesundheits-Check löschen",
|
||||
"standaloneHcDeleteQuestion": "Bitte bestätigen Sie, dass Sie diesen Gesundheits-Check löschen möchten.",
|
||||
"standaloneHcDeleted": "Gesundheits-Check gelöscht",
|
||||
"standaloneHcSaved": "Gesundheits-Check gespeichert",
|
||||
"standaloneHcColumnHealth": "Gesundheit",
|
||||
"standaloneHcColumnMode": "Modus",
|
||||
"standaloneHcColumnTarget": "Ziel",
|
||||
"standaloneHcHealthStateHealthy": "Gesund",
|
||||
"standaloneHcHealthStateUnhealthy": "Ungesund",
|
||||
"standaloneHcHealthStateUnknown": "Unbekannt",
|
||||
"standaloneHcFilterAnySite": "Alle Standorte",
|
||||
"standaloneHcFilterAnyResource": "Alle Ressourcen",
|
||||
"standaloneHcFilterMode": "Modus",
|
||||
"standaloneHcFilterModeHttp": "HTTP",
|
||||
"standaloneHcFilterModeTcp": "TCP",
|
||||
"standaloneHcFilterModeSnmp": "SNMP",
|
||||
"standaloneHcFilterModePing": "Ping",
|
||||
"standaloneHcFilterHealth": "Gesundheit",
|
||||
"standaloneHcFilterEnabled": "Aktiviert",
|
||||
"standaloneHcFilterEnabledOn": "Aktiviert",
|
||||
"standaloneHcFilterEnabledOff": "Deaktiviert",
|
||||
"standaloneHcFilterSiteIdFallback": "Standort {id}",
|
||||
"standaloneHcFilterResourceIdFallback": "Ressource {id}",
|
||||
"blueprints": "Blaupausen",
|
||||
"blueprintsDescription": "Deklarative Konfigurationen anwenden und vorherige Abläufe anzeigen",
|
||||
"blueprintAdd": "Blueprint hinzufügen",
|
||||
@@ -1762,6 +1935,15 @@
|
||||
"healthCheckIntervalMin": "Prüfintervall muss mindestens 5 Sekunden betragen",
|
||||
"healthCheckTimeoutMin": "Zeitüberschreitung muss mindestens 1 Sekunde betragen",
|
||||
"healthCheckRetryMin": "Wiederholungsversuche müssen mindestens 1 betragen",
|
||||
"healthCheckMode": "Überprüfungsmodus",
|
||||
"healthCheckStrategy": "Strategie",
|
||||
"healthCheckModeDescription": "TCP-Modus überprüft nur die Konnektivität. HTTP-Modus validiert die HTTP-Antwort.",
|
||||
"healthyThreshold": "Gesundheitsschwelle",
|
||||
"healthyThresholdDescription": "Erforderliche aufeinanderfolgende Erfolge, bevor als gesund markiert wird.",
|
||||
"unhealthyThreshold": "Ungesunde Schwelle",
|
||||
"unhealthyThresholdDescription": "Erforderliche aufeinanderfolgende Fehlschläge, bevor als ungesund markiert wird.",
|
||||
"healthCheckHealthyThresholdMin": "Gesundheitsschwelle muss mindestens 1 betragen",
|
||||
"healthCheckUnhealthyThresholdMin": "Ungesunde Schwelle muss mindestens 1 betragen",
|
||||
"httpMethod": "HTTP-Methode",
|
||||
"selectHttpMethod": "HTTP-Methode auswählen",
|
||||
"domainPickerSubdomainLabel": "Subdomain",
|
||||
@@ -1821,6 +2003,11 @@
|
||||
"editInternalResourceDialogModePort": "Port",
|
||||
"editInternalResourceDialogModeHost": "Host",
|
||||
"editInternalResourceDialogModeCidr": "CIDR",
|
||||
"editInternalResourceDialogModeHttp": "HTTP",
|
||||
"editInternalResourceDialogModeHttps": "HTTPS",
|
||||
"editInternalResourceDialogScheme": "Schema",
|
||||
"editInternalResourceDialogEnableSsl": "SSL aktivieren",
|
||||
"editInternalResourceDialogEnableSslDescription": "SSL/TLS-Verschlüsselung für sichere HTTPS-Verbindungen zum Ziel aktivieren.",
|
||||
"editInternalResourceDialogDestination": "Ziel",
|
||||
"editInternalResourceDialogDestinationHostDescription": "Die IP-Adresse oder der Hostname der Ressource im Netzwerk der Website.",
|
||||
"editInternalResourceDialogDestinationIPDescription": "Die IP-Adresse oder Hostname Adresse der Ressource im Netzwerk der Website.",
|
||||
@@ -1836,6 +2023,7 @@
|
||||
"createInternalResourceDialogName": "Name",
|
||||
"createInternalResourceDialogSite": "Standort",
|
||||
"selectSite": "Standort auswählen...",
|
||||
"multiSitesSelectorSitesCount": "{count, plural, one {# Standort} other {# Standorte}}",
|
||||
"noSitesFound": "Keine Standorte gefunden.",
|
||||
"createInternalResourceDialogProtocol": "Protokoll",
|
||||
"createInternalResourceDialogTcp": "TCP",
|
||||
@@ -1864,11 +2052,19 @@
|
||||
"createInternalResourceDialogModePort": "Port",
|
||||
"createInternalResourceDialogModeHost": "Host",
|
||||
"createInternalResourceDialogModeCidr": "CIDR",
|
||||
"createInternalResourceDialogModeHttp": "HTTP",
|
||||
"createInternalResourceDialogModeHttps": "HTTPS",
|
||||
"scheme": "Schema",
|
||||
"createInternalResourceDialogScheme": "Schema",
|
||||
"createInternalResourceDialogEnableSsl": "SSL aktivieren",
|
||||
"createInternalResourceDialogEnableSslDescription": "SSL/TLS-Verschlüsselung für sichere HTTPS-Verbindungen zum Ziel aktivieren.",
|
||||
"createInternalResourceDialogDestination": "Ziel",
|
||||
"createInternalResourceDialogDestinationHostDescription": "Die IP-Adresse oder der Hostname der Ressource im Netzwerk der Website.",
|
||||
"createInternalResourceDialogDestinationCidrDescription": "Der CIDR-Bereich der Ressource im Netzwerk der Website.",
|
||||
"createInternalResourceDialogAlias": "Alias",
|
||||
"createInternalResourceDialogAliasDescription": "Ein optionaler interner DNS-Alias für diese Ressource.",
|
||||
"internalResourceDownstreamSchemeRequired": "Schema ist für HTTP-Ressourcen erforderlich",
|
||||
"internalResourceHttpPortRequired": "Zielport ist für HTTP-Ressourcen erforderlich",
|
||||
"siteConfiguration": "Konfiguration",
|
||||
"siteAcceptClientConnections": "Clientverbindungen akzeptieren",
|
||||
"siteAcceptClientConnectionsDescription": "Erlaube Benutzer-Geräten und Clients Zugriff auf Ressourcen auf diesem Standort. Dies kann später geändert werden.",
|
||||
@@ -2026,7 +2222,7 @@
|
||||
},
|
||||
"internationaldomaindetected": "Internationale Domain erkannt",
|
||||
"willbestoredas": "Wird gespeichert als:",
|
||||
"roleMappingDescription": "Legen Sie fest, wie den Benutzern Rollen zugewiesen werden, wenn sie sich anmelden, wenn Auto Provision aktiviert ist.",
|
||||
"roleMappingDescription": "Bestimmen Sie, wie Rollen zugewiesen werden, wenn sich Benutzer mit diesem Identitätsanbieter anmelden.",
|
||||
"selectRole": "Wählen Sie eine Rolle",
|
||||
"roleMappingExpression": "Ausdruck",
|
||||
"selectRolePlaceholder": "Rolle auswählen",
|
||||
@@ -2296,7 +2492,7 @@
|
||||
"alerts": {
|
||||
"commercialUseDisclosure": {
|
||||
"title": "Verwendungsanzeige",
|
||||
"description": "Wählen Sie die Lizenz-Ebene, die Ihre beabsichtigte Nutzung genau widerspiegelt. Die Persönliche Lizenz erlaubt die freie Nutzung der Software für individuelle, nicht-kommerzielle oder kleine kommerzielle Aktivitäten mit jährlichen Brutto-Einnahmen von 100.000 USD. Über diese Grenzen hinausgehende Verwendungszwecke – einschließlich der Verwendung innerhalb eines Unternehmens, einer Organisation, oder eine andere umsatzgenerierende Umgebung — erfordert eine gültige Enterprise-Lizenz und die Zahlung der Lizenzgebühr. Alle Benutzer, ob Personal oder Enterprise, müssen die Fossorial Commercial License Bedingungen einhalten."
|
||||
"description": "Wählen Sie die Lizenz-Ebene, die Ihre beabsichtigte Nutzung genau widerspiegelt. Die Persönliche Lizenz erlaubt die freie Nutzung der Software für individuelle, nicht-kommerzielle oder kleine kommerzielle Aktivitäten mit jährlichen Brutto-Einnahmen von 100.000 USD. Über diese Grenzen hinausgehende Verwendungszwecke – einschließlich der Verwendung innerhalb eines Unternehmens, einer Organisation, oder eine andere umsatzgenerierende Umgebung - erfordert eine gültige Enterprise-Lizenz und die Zahlung der Lizenzgebühr. Alle Benutzer, ob Personal oder Enterprise, müssen die Fossorial Commercial License Bedingungen einhalten."
|
||||
},
|
||||
"trialPeriodInformation": {
|
||||
"title": "Testperiode Information",
|
||||
@@ -2428,6 +2624,7 @@
|
||||
"validPassword": "Gültiges Passwort",
|
||||
"validEmail": "Gültige E-Mail-Adresse",
|
||||
"validSSO": "Gültige SSO-Anmeldung",
|
||||
"connectedClient": "Verbundenes Gerät",
|
||||
"resourceBlocked": "Ressource blockiert",
|
||||
"droppedByRule": "Abgelegt durch Regel",
|
||||
"noSessions": "Keine Sitzungen",
|
||||
@@ -2667,6 +2864,10 @@
|
||||
"editInternalResourceDialogDestinationLabel": "Ziel",
|
||||
"editInternalResourceDialogDestinationDescription": "Geben Sie die Zieladresse für die interne Ressource an. Dies kann ein Hostname, eine IP-Adresse oder ein CIDR-Bereich sein, abhängig vom gewählten Modus. Legen Sie optional einen internen DNS-Alias für eine vereinfachte Identifizierung fest.",
|
||||
"editInternalResourceDialogPortRestrictionsDescription": "Den Zugriff auf bestimmte TCP/UDP-Ports beschränken oder alle Ports erlauben/blockieren.",
|
||||
"createInternalResourceDialogHttpConfiguration": "HTTP-Konfiguration",
|
||||
"createInternalResourceDialogHttpConfigurationDescription": "Wählen Sie die Domain, die Clients verwenden, um über HTTP oder HTTPS auf diese Ressource zuzugreifen.",
|
||||
"editInternalResourceDialogHttpConfiguration": "HTTP-Konfiguration",
|
||||
"editInternalResourceDialogHttpConfigurationDescription": "Wählen Sie die Domain, die Clients verwenden, um über HTTP oder HTTPS auf diese Ressource zuzugreifen.",
|
||||
"editInternalResourceDialogTcp": "TCP",
|
||||
"editInternalResourceDialogUdp": "UDP",
|
||||
"editInternalResourceDialogIcmp": "ICMP",
|
||||
@@ -2705,6 +2906,8 @@
|
||||
"maintenancePageMessagePlaceholder": "Wir sind bald wieder da! Unsere Seite wird derzeit planmäßig gewartet.",
|
||||
"maintenancePageMessageDescription": "Detaillierte Meldung zur Erklärung der Wartung",
|
||||
"maintenancePageTimeTitle": "Geschätzte Abschlusszeit (Optional)",
|
||||
"privateMaintenanceScreenTitle": "Privater Platzhalterschirm",
|
||||
"privateMaintenanceScreenMessage": "Diese Domain wird auf einer privaten Ressource verwendet. Bitte verbinden Sie sich mit dem Pangolin-Client, um auf diese Ressource zuzugreifen.",
|
||||
"maintenanceTime": "z.B.: 2 Stunden, Nov 1 um 17:00 Uhr",
|
||||
"maintenanceEstimatedTimeDescription": "Wann Sie den Abschluss der Wartung erwarten",
|
||||
"editDomain": "Domain bearbeiten",
|
||||
@@ -2842,6 +3045,14 @@
|
||||
"httpDestAddTitle": "HTTP-Ziel hinzufügen",
|
||||
"httpDestEditDescription": "Aktualisiere die Konfiguration für dieses HTTP-Streaming-Ziel.",
|
||||
"httpDestAddDescription": "Konfigurieren Sie einen neuen HTTP-Endpunkt, um die Ereignisse Ihrer Organisation zu empfangen.",
|
||||
"S3DestEditTitle": "Ziel bearbeiten",
|
||||
"S3DestAddTitle": "S3-Ziel hinzufügen",
|
||||
"S3DestEditDescription": "Konfiguration für dieses S3-Ereignis-Streamingziel aktualisieren.",
|
||||
"S3DestAddDescription": "Neuen S3-Endpunkt konfigurieren, um die Ereignisse Ihrer Organisation zu erhalten.",
|
||||
"datadogDestEditTitle": "Ziel bearbeiten",
|
||||
"datadogDestAddTitle": "Datadog-Ziel hinzufügen",
|
||||
"datadogDestEditDescription": "Konfiguration für dieses Datadog-Ereignis-Streamingziel aktualisieren.",
|
||||
"datadogDestAddDescription": "Neuen Datadog-Endpunkt konfigurieren, um die Ereignisse Ihrer Organisation zu erhalten.",
|
||||
"httpDestTabSettings": "Einstellungen",
|
||||
"httpDestTabHeaders": "Kopfzeilen",
|
||||
"httpDestTabBody": "Körper",
|
||||
@@ -2881,7 +3092,7 @@
|
||||
"httpDestFormatJsonArrayTitle": "JSON Array",
|
||||
"httpDestFormatJsonArrayDescription": "Eine Anfrage pro Stapel ist ein JSON-Array. Kompatibel mit den meisten generischen Webhooks und Datadog.",
|
||||
"httpDestFormatNdjsonTitle": "NDJSON",
|
||||
"httpDestFormatNdjsonDescription": "Eine Anfrage pro Batch, der Körper ist newline-getrenntes JSON — ein Objekt pro Zeile, kein äußeres Array. Benötigt von Splunk HEC, Elastic / OpenSearch, und Grafana Loki.",
|
||||
"httpDestFormatNdjsonDescription": "Eine Anfrage pro Batch, der Körper ist newline-getrenntes JSON - ein Objekt pro Zeile, kein äußeres Array. Benötigt von Splunk HEC, Elastic / OpenSearch, und Grafana Loki.",
|
||||
"httpDestFormatSingleTitle": "Ein Ereignis pro Anfrage",
|
||||
"httpDestFormatSingleDescription": "Sendet eine separate HTTP-POST für jedes einzelne Ereignis. Nur für Endpunkte, die Batches nicht handhaben können.",
|
||||
"httpDestLogTypesTitle": "Log-Typen",
|
||||
@@ -2899,5 +3110,37 @@
|
||||
"httpDestUpdatedSuccess": "Ziel erfolgreich aktualisiert",
|
||||
"httpDestCreatedSuccess": "Ziel erfolgreich erstellt",
|
||||
"httpDestUpdateFailed": "Fehler beim Aktualisieren des Ziels",
|
||||
"httpDestCreateFailed": "Fehler beim Erstellen des Ziels"
|
||||
"httpDestCreateFailed": "Fehler beim Erstellen des Ziels",
|
||||
"followRedirects": "Weiterleitungen folgen",
|
||||
"followRedirectsDescription": "HTTP-Weiterleitungen für Anfragen automatisch folgen.",
|
||||
"alertingErrorWebhookUrl": "Bitte geben Sie eine gültige URL für das Webhook ein.",
|
||||
"healthCheckStrategyHttp": "Prüft die Konnektivität und den HTTP-Antwort-Status.",
|
||||
"healthCheckStrategyTcp": "Verifiziert nur die TCP-Konnektivität, ohne die Antwort zu überprüfen.",
|
||||
"healthCheckStrategySnmp": "Stellt eine SNMP-Get-Anfrage, um die Gesundheit von Netzwerkgeräten und Infrastruktur zu überprüfen.",
|
||||
"healthCheckStrategyIcmp": "Verwendet ICMP-Echo-Anfragen (Pings), um zu überprüfen, ob eine Ressource erreichbar und reaktionsfähig ist.",
|
||||
"healthCheckTabStrategy": "Strategie",
|
||||
"healthCheckTabConnection": "Verbindung",
|
||||
"healthCheckTabAdvanced": "Fortgeschritten",
|
||||
"healthCheckStrategyNotAvailable": "Diese Strategie ist nicht verfügbar. Bitte kontaktieren Sie den Vertrieb, um diese Funktion zu aktivieren.",
|
||||
"uptime30d": "Betriebszeit (30 Tage)",
|
||||
"idpAddActionCreateNew": "Neuen Identitätsanbieter erstellen",
|
||||
"idpAddActionImportFromOrg": "Von einer anderen Organisation importieren",
|
||||
"idpImportDialogTitle": "Identitätsanbieter importieren",
|
||||
"idpImportDialogDescription": "Wählen Sie einen Identitätsanbieter aus einer Organisation, in der Sie Administrator sind. Er wird mit dieser Organisation verknüpft.",
|
||||
"idpImportSearchPlaceholder": "Nach Organisation oder Anbieternamen suchen...",
|
||||
"idpImportEmpty": "Keine Identitätsanbieter gefunden.",
|
||||
"idpImportedDescription": "Identitätsanbieter erfolgreich importiert.",
|
||||
"idpDeleteGlobalQuestion": "Sind Sie sicher, dass Sie diesen Identitätsanbieter dauerhaft löschen möchten?",
|
||||
"idpDeleteGlobalDescription": "Dies wird den Identitätsanbieter dauerhaft von allen Organisationen löschen, mit denen er verbunden ist.",
|
||||
"idpUnassociateTitle": "Verknüpfung mit Identitätsanbieter aufheben",
|
||||
"idpUnassociateQuestion": "Sind Sie sicher, dass Sie die Verknüpfung dieses Identitätsanbieters mit dieser Organisation aufheben möchten?",
|
||||
"idpUnassociateDescription": "Alle Benutzer, die mit diesem Identitätsanbieter verbunden sind, werden aus dieser Organisation entfernt, aber der Identitätsanbieter bleibt für andere verbundene Organisationen weiterhin bestehen.",
|
||||
"idpUnassociateConfirm": "Verknüpfung des Identitätsanbieters aufheben bestätigen",
|
||||
"idpUnassociateWarning": "Dies kann für diese Organisation nicht rückgängig gemacht werden.",
|
||||
"idpUnassociatedDescription": "Identitätsanbieter erfolgreich von dieser Organisation gelöst",
|
||||
"idpUnassociateMenu": "Verknüpfung aufheben",
|
||||
"idpDeleteAllOrgsMenu": "Löschen",
|
||||
"publicIpEndpoint": "Endpunkt",
|
||||
"lastTriggeredAt": "Letzter Auslöser",
|
||||
"reject": "Zurückweisen"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"contactSalesEnable": "Contact sales to enable this feature.",
|
||||
"contactSalesBookDemo": "Book a demo",
|
||||
"contactSalesOr": "or",
|
||||
"contactSalesContactUs": "contact us",
|
||||
"setupCreate": "Create the organization, site, and resources",
|
||||
"headerAuthCompatibilityInfo": "Enable this to force a 401 Unauthorized response when an authentication token is missing. This is required for browsers or specific HTTP libraries that do not send credentials without a server challenge.",
|
||||
"headerAuthCompatibility": "Extended compatibility",
|
||||
@@ -19,6 +23,14 @@
|
||||
"componentsInvalidKey": "Invalid or expired license keys detected. Follow license terms to continue using all features.",
|
||||
"dismiss": "Dismiss",
|
||||
"subscriptionViolationMessage": "You're beyond your limits for your current plan. Correct the problem by removing sites, users, or other resources to stay within your plan.",
|
||||
"trialBannerMessage": "Your trial expires in {countdown}. Upgrade to keep access.",
|
||||
"trialBannerExpired": "Your trial has expired. Upgrade now to restore access.",
|
||||
"trialActive": "Free Trial Active",
|
||||
"trialExpired": "Trial Expired",
|
||||
"trialHasEnded": "Your trial has ended.",
|
||||
"trialDaysRemaining": "{count, plural, one {# day remaining} other {# days remaining}}",
|
||||
"trialDaysLeftShort": "{days}d left in trial",
|
||||
"trialGoToBilling": "Go to billing page",
|
||||
"subscriptionViolationViewBilling": "View billing",
|
||||
"componentsLicenseViolation": "License Violation: This server is using {usedSites} sites which exceeds its licensed limit of {maxSites} sites. Follow license terms to continue using all features.",
|
||||
"componentsSupporterMessage": "Thank you for supporting Pangolin as a {tier}!",
|
||||
@@ -163,7 +175,7 @@
|
||||
"proxyResourceTitle": "Manage Public Resources",
|
||||
"proxyResourceDescription": "Create and manage resources that are publicly accessible through a web browser",
|
||||
"proxyResourcesBannerTitle": "Web-based Public Access",
|
||||
"proxyResourcesBannerDescription": "Public resources are HTTPS or TCP/UDP proxies accessible to anyone on the internet through a web browser. Unlike private resources, they do not require client-side software and can include identity and context-aware access policies.",
|
||||
"proxyResourcesBannerDescription": "Public resources are HTTPS proxies accessible to anyone on the internet through a web browser. Unlike private resources, they do not require client-side software and can include identity and context-aware access policies.",
|
||||
"clientResourceTitle": "Manage Private Resources",
|
||||
"clientResourceDescription": "Create and manage resources that are only accessible through a connected client",
|
||||
"privateResourcesBannerTitle": "Zero-Trust Private Access",
|
||||
@@ -267,8 +279,11 @@
|
||||
"orgMissing": "Organization ID Missing",
|
||||
"orgMissingMessage": "Unable to regenerate invitation without an organization ID.",
|
||||
"accessUsersManage": "Manage Users",
|
||||
"accessUserManage": "Manage User",
|
||||
"accessUsersDescription": "Invite and manage users with access to this organization",
|
||||
"accessUsersSearch": "Search users...",
|
||||
"accessUsersRoleFilterCount": "{count, plural, one {# role} other {# roles}}",
|
||||
"accessUsersRoleFilterClear": "Clear role filters",
|
||||
"accessUserCreate": "Create User",
|
||||
"accessUserRemove": "Remove User",
|
||||
"username": "Username",
|
||||
@@ -380,7 +395,7 @@
|
||||
"userTitle": "Manage All Users",
|
||||
"userDescription": "View and manage all users in the system",
|
||||
"userAbount": "About User Management",
|
||||
"userAbountDescription": "This table displays all root user objects in the system. Each user may belong to multiple organizations. Removing a user from an organization does not delete their root user object - they will remain in the system. To completely remove a user from the system, you must delete their root user object using the delete action in this table.",
|
||||
"userAbountDescription": "This table displays all base user objects in the system. Each user may belong to multiple organizations. Removing a user from an organization does not delete their base user object. They will remain in the system. To completely remove a user from the system, you must delete their base user object using the delete action in this table.",
|
||||
"userServer": "Server Users",
|
||||
"userSearch": "Search server users...",
|
||||
"userErrorDelete": "Error deleting user",
|
||||
@@ -523,7 +538,7 @@
|
||||
"userSettings": "User Information",
|
||||
"userSettingsDescription": "Enter the details for the new user",
|
||||
"inviteEmailSent": "Send invite email to user",
|
||||
"inviteValid": "Valid For",
|
||||
"inviteValid": "Invite Valid For (days)",
|
||||
"selectDuration": "Select duration",
|
||||
"selectResource": "Select Resource",
|
||||
"filterByResource": "Filter By Resource",
|
||||
@@ -1257,6 +1272,7 @@
|
||||
"actionViewLogs": "View Logs",
|
||||
"noneSelected": "None selected",
|
||||
"orgNotFound2": "No organizations found.",
|
||||
"search": "Search…",
|
||||
"searchPlaceholder": "Search...",
|
||||
"emptySearchOptions": "No options found",
|
||||
"create": "Create",
|
||||
@@ -1341,10 +1357,166 @@
|
||||
"sidebarGeneral": "Manage",
|
||||
"sidebarLogAndAnalytics": "Log & Analytics",
|
||||
"sidebarBluePrints": "Blueprints",
|
||||
"sidebarAlerting": "Alerting",
|
||||
"sidebarHealthChecks": "Health checks",
|
||||
"sidebarOrganization": "Organization",
|
||||
"sidebarManagement": "Management",
|
||||
"sidebarBillingAndLicenses": "Billing & Licenses",
|
||||
"sidebarLogsAnalytics": "Analytics",
|
||||
"alertingTitle": "Alerting",
|
||||
"alertingDescription": "Define sources, triggers, and actions for notifications",
|
||||
"alertingRules": "Alert rules",
|
||||
"alertingSearchRules": "Search rules…",
|
||||
"alertingAddRule": "Create Rule",
|
||||
"alertingColumnSource": "Source",
|
||||
"alertingColumnTrigger": "Trigger",
|
||||
"alertingColumnActions": "Actions",
|
||||
"alertingColumnEnabled": "Enabled",
|
||||
"alertingDeleteQuestion": "Please confirm you want to delete this alert rule.",
|
||||
"alertingDeleteRule": "Delete alert rule",
|
||||
"alertingRuleDeleted": "Alert rule deleted",
|
||||
"alertingRuleSaved": "Alert rule saved",
|
||||
"alertingRuleSavedCreatedDescription": "Your new alert rule was created. You can keep editing it on this page.",
|
||||
"alertingRuleSavedUpdatedDescription": "Your changes to this alert rule were saved.",
|
||||
"alertingEditRule": "Edit Alert Rule",
|
||||
"alertingCreateRule": "Create Alert Rule",
|
||||
"alertingRuleCredenzaDescription": "Choose what to watch, when to fire, and how to notify",
|
||||
"alertingRuleNamePlaceholder": "Production site down",
|
||||
"alertingRuleEnabled": "Rule enabled",
|
||||
"alertingSectionSource": "Source",
|
||||
"alertingSourceType": "Source type",
|
||||
"alertingSourceSite": "Site",
|
||||
"alertingSourceHealthCheck": "Health check",
|
||||
"alertingPickSites": "Sites",
|
||||
"alertingPickHealthChecks": "Health checks",
|
||||
"alertingPickResources": "Resources",
|
||||
"alertingAllSites": "All Sites",
|
||||
"alertingAllSitesDescription": "Alert fires for any site",
|
||||
"alertingSpecificSites": "Specific Sites",
|
||||
"alertingSpecificSitesDescription": "Choose specific sites to watch",
|
||||
"alertingAllHealthChecks": "All Health Checks",
|
||||
"alertingAllHealthChecksDescription": "Alert fires for any health check",
|
||||
"alertingSpecificHealthChecks": "Specific Health Checks",
|
||||
"alertingSpecificHealthChecksDescription": "Choose specific health checks to watch",
|
||||
"alertingAllResources": "All Resources",
|
||||
"alertingAllResourcesDescription": "Alert fires for any resource",
|
||||
"alertingSpecificResources": "Specific Resources",
|
||||
"alertingSpecificResourcesDescription": "Choose specific resources to watch",
|
||||
"alertingSelectResources": "Select resources…",
|
||||
"alertingResourcesSelected": "{count} resources selected",
|
||||
"alertingResourcesEmpty": "No resources with targets in the first 10 results.",
|
||||
"alertingSectionTrigger": "Trigger",
|
||||
"alertingTrigger": "When to alert",
|
||||
"alertingTriggerSiteOnline": "Site online",
|
||||
"alertingTriggerSiteOffline": "Site offline",
|
||||
"alertingTriggerSiteToggle": "Site status changes",
|
||||
"alertingTriggerHcHealthy": "Health check healthy",
|
||||
"alertingTriggerHcUnhealthy": "Health check unhealthy",
|
||||
"alertingTriggerHcToggle": "Health check status changes",
|
||||
"alertingTriggerResourceHealthy": "Resource healthy",
|
||||
"alertingTriggerResourceUnhealthy": "Resource unhealthy",
|
||||
"alertingSearchHealthChecks": "Search health checks…",
|
||||
"alertingHealthChecksEmpty": "No health checks available.",
|
||||
"alertingTriggerResourceToggle": "Resource status changes",
|
||||
"alertingSourceResource": "Resource",
|
||||
"alertingSectionActions": "Actions",
|
||||
"alertingAddAction": "Add Action",
|
||||
"alertingActionNotify": "Email",
|
||||
"alertingActionNotifyDescription": "Send email notifications to users or roles",
|
||||
"alertingActionWebhook": "Webhook",
|
||||
"alertingActionWebhookDescription": "Send an HTTP request to a custom endpoint",
|
||||
"alertingExternalIntegration": "External Integration",
|
||||
"alertingExternalPagerDutyDescription": "Send alerts to PagerDuty for incident management",
|
||||
"alertingExternalOpsgenieDescription": "Route alerts to Opsgenie for on-call management",
|
||||
"alertingExternalServiceNowDescription": "Create ServiceNow incidents from alert events",
|
||||
"alertingExternalIncidentIoDescription": "Trigger Incident.io workflows from alert events",
|
||||
"alertingActionType": "Action type",
|
||||
"alertingNotifyUsers": "Users",
|
||||
"alertingNotifyRoles": "Roles",
|
||||
"alertingNotifyEmails": "Email addresses",
|
||||
"alertingEmailPlaceholder": "Add email and press Enter",
|
||||
"alertingWebhookMethod": "HTTP method",
|
||||
"alertingWebhookSecret": "Signing secret (optional)",
|
||||
"alertingWebhookSecretPlaceholder": "HMAC secret",
|
||||
"alertingWebhookHeaders": "Headers",
|
||||
"alertingAddHeader": "Add header",
|
||||
"alertingSelectSites": "Select sites…",
|
||||
"alertingSitesSelected": "{count} sites selected",
|
||||
"alertingSelectHealthChecks": "Select health checks…",
|
||||
"alertingHealthChecksSelected": "{count} health checks selected",
|
||||
"alertingNoHealthChecks": "No targets with health checks enabled",
|
||||
"alertingHealthCheckStub": "Health check source selection is not wired up yet - you can still configure triggers and actions.",
|
||||
"alertingSelectUsers": "Select users…",
|
||||
"alertingUsersSelected": "{count} users selected",
|
||||
"alertingSelectRoles": "Select roles…",
|
||||
"alertingRolesSelected": "{count} roles selected",
|
||||
"alertingSummarySites": "Sites ({count})",
|
||||
"alertingSummaryAllSites": "All sites",
|
||||
"alertingSummaryHealthChecks": "Health checks ({count})",
|
||||
"alertingSummaryAllHealthChecks": "All health checks",
|
||||
"alertingSummaryResources": "Resources ({count})",
|
||||
"alertingSummaryAllResources": "All resources",
|
||||
"alertingErrorNameRequired": "Enter a name",
|
||||
"alertingErrorActionsMin": "Add at least one action",
|
||||
"alertingErrorPickSites": "Select at least one site",
|
||||
"alertingErrorPickHealthChecks": "Select at least one health check",
|
||||
"alertingErrorPickResources": "Select at least one resource",
|
||||
"alertingErrorTriggerSite": "Choose a site trigger",
|
||||
"alertingErrorTriggerHealth": "Choose a health check trigger",
|
||||
"alertingErrorTriggerResource": "Choose a resource trigger",
|
||||
"alertingErrorNotifyRecipients": "Pick users, roles, or at least one email",
|
||||
"alertingConfigureSource": "Configure Source",
|
||||
"alertingConfigureTrigger": "Configure Trigger",
|
||||
"alertingConfigureActions": "Configure Actions",
|
||||
"alertingBackToRules": "Back to Rules",
|
||||
"alertingRuleCooldown": "Cooldown (seconds)",
|
||||
"alertingRuleCooldownDescription": "Minimum time between repeated alerts for the same rule. Set to 0 to fire every time.",
|
||||
"alertingDraftBadge": "Draft - save to store this rule",
|
||||
"alertingSidebarHint": "Click a step on the canvas to edit it here.",
|
||||
"alertingGraphCanvasTitle": "Rule Flow",
|
||||
"alertingGraphCanvasDescription": "Visual overview of source, trigger, and actions. Select a node to edit it in the panel.",
|
||||
"alertingNodeNotConfigured": "Not configured yet",
|
||||
"alertingNodeActionsCount": "{count, plural, one {# action} other {# actions}}",
|
||||
"alertingNodeRoleSource": "Source",
|
||||
"alertingNodeRoleTrigger": "Trigger",
|
||||
"alertingNodeRoleAction": "Action",
|
||||
"alertingTabRules": "Alert Rules",
|
||||
"alertingTabHealthChecks": "Health Checks",
|
||||
"alertingRulesBannerTitle": "Get Notified",
|
||||
"alertingRulesBannerDescription": "Each rule ties together what to watch (a site, health check, or resource), when to fire (for example offline or unhealthy), and how to notify your team via email, webhooks, or integrations. Use this list to create, enable, and manage those rules.",
|
||||
"alertingHealthChecksBannerTitle": "Monitor Health & Resources",
|
||||
"alertingHealthChecksBannerDescription": "Health checks are HTTP or TCP monitors you define once. You can then use them as sources in alert rules so you get notified when a target becomes healthy or unhealthy. Health checks on resources also appear here.",
|
||||
"standaloneHcTableTitle": "Health Checks",
|
||||
"standaloneHcSearchPlaceholder": "Search health checks…",
|
||||
"standaloneHcAddButton": "Create Health Check",
|
||||
"standaloneHcCreateTitle": "Create Health Check",
|
||||
"standaloneHcEditTitle": "Edit Health Check",
|
||||
"standaloneHcDescription": "Configure a HTTP or TCP health check for use in alert rules.",
|
||||
"standaloneHcNameLabel": "Name",
|
||||
"standaloneHcNamePlaceholder": "My HTTP Monitor",
|
||||
"standaloneHcDeleteTitle": "Delete health check",
|
||||
"standaloneHcDeleteQuestion": "Please confirm you want to delete this health check.",
|
||||
"standaloneHcDeleted": "Health check deleted",
|
||||
"standaloneHcSaved": "Health check saved",
|
||||
"standaloneHcColumnHealth": "Health",
|
||||
"standaloneHcColumnMode": "Mode",
|
||||
"standaloneHcColumnTarget": "Target",
|
||||
"standaloneHcHealthStateHealthy": "Healthy",
|
||||
"standaloneHcHealthStateUnhealthy": "Unhealthy",
|
||||
"standaloneHcHealthStateUnknown": "Unknown",
|
||||
"standaloneHcFilterAnySite": "All sites",
|
||||
"standaloneHcFilterAnyResource": "All resources",
|
||||
"standaloneHcFilterMode": "Mode",
|
||||
"standaloneHcFilterModeHttp": "HTTP",
|
||||
"standaloneHcFilterModeTcp": "TCP",
|
||||
"standaloneHcFilterModeSnmp": "SNMP",
|
||||
"standaloneHcFilterModePing": "Ping",
|
||||
"standaloneHcFilterHealth": "Health",
|
||||
"standaloneHcFilterEnabled": "Enabled",
|
||||
"standaloneHcFilterEnabledOn": "Enabled",
|
||||
"standaloneHcFilterEnabledOff": "Disabled",
|
||||
"standaloneHcFilterSiteIdFallback": "Site {id}",
|
||||
"standaloneHcFilterResourceIdFallback": "Resource {id}",
|
||||
"blueprints": "Blueprints",
|
||||
"blueprintsDescription": "Apply declarative configurations and view previous runs",
|
||||
"blueprintAdd": "Add Blueprint",
|
||||
@@ -1750,8 +1922,8 @@
|
||||
"retryAttempts": "Retry Attempts",
|
||||
"expectedResponseCodes": "Expected Response Codes",
|
||||
"expectedResponseCodesDescription": "HTTP status code that indicates healthy status. If left blank, 200-300 is considered healthy.",
|
||||
"customHeaders": "Custom Headers",
|
||||
"customHeadersDescription": "Headers new line separated: Header-Name: value",
|
||||
"customHeaders": "Custom Request Headers",
|
||||
"customHeadersDescription": "Request headers sent to the downstream targets. Headers new line separated: Header-Name: value",
|
||||
"headersValidationError": "Headers must be in the format: Header-Name: value",
|
||||
"saveHealthCheck": "Save Health Check",
|
||||
"healthCheckSaved": "Health Check Saved",
|
||||
@@ -1763,8 +1935,17 @@
|
||||
"healthCheckIntervalMin": "Check interval must be at least 5 seconds",
|
||||
"healthCheckTimeoutMin": "Timeout must be at least 1 second",
|
||||
"healthCheckRetryMin": "Retry attempts must be at least 1",
|
||||
"httpMethod": "HTTP Method",
|
||||
"selectHttpMethod": "Select HTTP method",
|
||||
"healthCheckMode": "Check Mode",
|
||||
"healthCheckStrategy": "Strategy",
|
||||
"healthCheckModeDescription": "TCP mode verifies connectivity only. HTTP mode validates the HTTP response.",
|
||||
"healthyThreshold": "Healthy Threshold",
|
||||
"healthyThresholdDescription": "Consecutive successes required before marking as healthy.",
|
||||
"unhealthyThreshold": "Unhealthy Threshold",
|
||||
"unhealthyThresholdDescription": "Consecutive failures required before marking as unhealthy.",
|
||||
"healthCheckHealthyThresholdMin": "Healthy threshold must be at least 1",
|
||||
"healthCheckUnhealthyThresholdMin": "Unhealthy threshold must be at least 1",
|
||||
"httpMethod": "Scheme",
|
||||
"selectHttpMethod": "Select scheme",
|
||||
"domainPickerSubdomainLabel": "Subdomain",
|
||||
"domainPickerBaseDomainLabel": "Base Domain",
|
||||
"domainPickerSearchDomains": "Search domains...",
|
||||
@@ -1822,6 +2003,11 @@
|
||||
"editInternalResourceDialogModePort": "Port",
|
||||
"editInternalResourceDialogModeHost": "Host",
|
||||
"editInternalResourceDialogModeCidr": "CIDR",
|
||||
"editInternalResourceDialogModeHttp": "HTTP",
|
||||
"editInternalResourceDialogModeHttps": "HTTPS",
|
||||
"editInternalResourceDialogScheme": "Scheme",
|
||||
"editInternalResourceDialogEnableSsl": "Enable SSL",
|
||||
"editInternalResourceDialogEnableSslDescription": "Enable SSL/TLS encryption for secure HTTPS connections to the destination.",
|
||||
"editInternalResourceDialogDestination": "Destination",
|
||||
"editInternalResourceDialogDestinationHostDescription": "The IP address or hostname of the resource on the site's network.",
|
||||
"editInternalResourceDialogDestinationIPDescription": "The IP or hostname address of the resource on the site's network.",
|
||||
@@ -1837,6 +2023,7 @@
|
||||
"createInternalResourceDialogName": "Name",
|
||||
"createInternalResourceDialogSite": "Site",
|
||||
"selectSite": "Select site...",
|
||||
"multiSitesSelectorSitesCount": "{count, plural, one {# site} other {# sites}}",
|
||||
"noSitesFound": "No sites found.",
|
||||
"createInternalResourceDialogProtocol": "Protocol",
|
||||
"createInternalResourceDialogTcp": "TCP",
|
||||
@@ -1865,11 +2052,19 @@
|
||||
"createInternalResourceDialogModePort": "Port",
|
||||
"createInternalResourceDialogModeHost": "Host",
|
||||
"createInternalResourceDialogModeCidr": "CIDR",
|
||||
"createInternalResourceDialogModeHttp": "HTTP",
|
||||
"createInternalResourceDialogModeHttps": "HTTPS",
|
||||
"scheme": "Scheme",
|
||||
"createInternalResourceDialogScheme": "Scheme",
|
||||
"createInternalResourceDialogEnableSsl": "Enable SSL",
|
||||
"createInternalResourceDialogEnableSslDescription": "Enable SSL/TLS encryption for secure HTTPS connections to the destination.",
|
||||
"createInternalResourceDialogDestination": "Destination",
|
||||
"createInternalResourceDialogDestinationHostDescription": "The IP address or hostname of the resource on the site's network.",
|
||||
"createInternalResourceDialogDestinationCidrDescription": "The CIDR range of the resource on the site's network.",
|
||||
"createInternalResourceDialogAlias": "Alias",
|
||||
"createInternalResourceDialogAliasDescription": "An optional internal DNS alias for this resource.",
|
||||
"internalResourceDownstreamSchemeRequired": "Scheme is required for HTTP resources",
|
||||
"internalResourceHttpPortRequired": "Destination port is required for HTTP resources",
|
||||
"siteConfiguration": "Configuration",
|
||||
"siteAcceptClientConnections": "Accept Client Connections",
|
||||
"siteAcceptClientConnectionsDescription": "Allow user devices and clients to access resources on this site. This can be changed later.",
|
||||
@@ -1994,7 +2189,7 @@
|
||||
"description": "More reliable and low-maintenance self-hosted Pangolin server with extra bells and whistles",
|
||||
"introTitle": "Managed Self-Hosted Pangolin",
|
||||
"introDescription": "is a deployment option designed for people who want simplicity and extra reliability while still keeping their data private and self-hosted.",
|
||||
"introDetail": "With this option, you still run your own Pangolin node — your tunnels, SSL termination, and traffic all stay on your server. The difference is that management and monitoring are handled through our cloud dashboard, which unlocks a number of benefits:",
|
||||
"introDetail": "With this option, you still run your own Pangolin node - your tunnels, SSL termination, and traffic all stay on your server. The difference is that management and monitoring are handled through our cloud dashboard, which unlocks a number of benefits:",
|
||||
"benefitSimplerOperations": {
|
||||
"title": "Simpler operations",
|
||||
"description": "No need to run your own mail server or set up complex alerting. You'll get health checks and downtime alerts out of the box."
|
||||
@@ -2119,7 +2314,7 @@
|
||||
"selectDomainForOrgAuthPage": "Select a domain for the organization's authentication page",
|
||||
"domainPickerProvidedDomain": "Provided Domain",
|
||||
"domainPickerFreeProvidedDomain": "Provided Domain",
|
||||
"domainPickerFreeDomainsPaidFeature": "Provided domains are a paid feature. Subscribe to get a domain included with your plan — no need to bring your own.",
|
||||
"domainPickerFreeDomainsPaidFeature": "Provided domains are a paid feature. Subscribe to get a domain included with your plan - no need to bring your own.",
|
||||
"domainPickerVerified": "Verified",
|
||||
"domainPickerUnverified": "Unverified",
|
||||
"domainPickerManual": "Manual",
|
||||
@@ -2297,7 +2492,7 @@
|
||||
"alerts": {
|
||||
"commercialUseDisclosure": {
|
||||
"title": "Usage Disclosure",
|
||||
"description": "Select the license tier that accurately reflects your intended use. The Personal License permits free use of the Software for individual, non-commercial or small-scale commercial activities with annual gross revenue under $100,000 USD. Any use beyond these limits — including use within a business, organization, or other revenue-generating environment — requires a valid Enterprise License and payment of the applicable licensing fee. All users, whether Personal or Enterprise, must comply with the Fossorial Commercial License Terms."
|
||||
"description": "Select the license tier that accurately reflects your intended use. The Personal License permits free use of the Software for individual, non-commercial or small-scale commercial activities with annual gross revenue under $100,000 USD. Any use beyond these limits - including use within a business, organization, or other revenue-generating environment - requires a valid Enterprise License and payment of the applicable licensing fee. All users, whether Personal or Enterprise, must comply with the Fossorial Commercial License Terms."
|
||||
},
|
||||
"trialPeriodInformation": {
|
||||
"title": "Trial Period Information",
|
||||
@@ -2416,7 +2611,7 @@
|
||||
"action": "Action",
|
||||
"actor": "Actor",
|
||||
"timestamp": "Timestamp",
|
||||
"accessLogs": "Access Logs",
|
||||
"accessLogs": "Authentication Logs",
|
||||
"exportCsv": "Export CSV",
|
||||
"exportError": "Unknown error when exporting CSV",
|
||||
"exportCsvTooltip": "Within Time Range",
|
||||
@@ -2429,6 +2624,7 @@
|
||||
"validPassword": "Valid Password",
|
||||
"validEmail": "Valid email",
|
||||
"validSSO": "Valid SSO",
|
||||
"connectedClient": "Connected Client",
|
||||
"resourceBlocked": "Resource Blocked",
|
||||
"droppedByRule": "Dropped by Rule",
|
||||
"noSessions": "No Sessions",
|
||||
@@ -2436,25 +2632,25 @@
|
||||
"noMoreAuthMethods": "No Valid Auth",
|
||||
"ip": "IP",
|
||||
"reason": "Reason",
|
||||
"requestLogs": "Request Logs",
|
||||
"requestLogs": "HTTPS Request Logs",
|
||||
"requestAnalytics": "Request Analytics",
|
||||
"host": "Host",
|
||||
"location": "Location",
|
||||
"actionLogs": "Action Logs",
|
||||
"sidebarLogsRequest": "Request Logs",
|
||||
"sidebarLogsAccess": "Access Logs",
|
||||
"sidebarLogsAction": "Action Logs",
|
||||
"actionLogs": "Admin Action Logs",
|
||||
"sidebarLogsRequest": "HTTPS Request Logs",
|
||||
"sidebarLogsAccess": "Authentication Logs",
|
||||
"sidebarLogsAction": "Admin Action Logs",
|
||||
"logRetention": "Log Retention",
|
||||
"logRetentionDescription": "Manage how long different types of logs are retained for this organization or disable them",
|
||||
"requestLogsDescription": "View detailed request logs for resources in this organization",
|
||||
"requestLogsDescription": "View detailed request logs for HTTPS resources in this organization",
|
||||
"requestAnalyticsDescription": "View detailed request analytics for resources in this organization",
|
||||
"logRetentionRequestLabel": "Request Log Retention",
|
||||
"logRetentionRequestLabel": "HTTPS Request Log Retention",
|
||||
"logRetentionRequestDescription": "How long to retain request logs",
|
||||
"logRetentionAccessLabel": "Access Log Retention",
|
||||
"logRetentionAccessLabel": "Authentication Log Retention",
|
||||
"logRetentionAccessDescription": "How long to retain access logs",
|
||||
"logRetentionActionLabel": "Action Log Retention",
|
||||
"logRetentionActionLabel": "Admin Action Log Retention",
|
||||
"logRetentionActionDescription": "How long to retain action logs",
|
||||
"logRetentionConnectionLabel": "Connection Log Retention",
|
||||
"logRetentionConnectionLabel": "Network Log Retention",
|
||||
"logRetentionConnectionDescription": "How long to retain connection logs",
|
||||
"logRetentionDisabled": "Disabled",
|
||||
"logRetention3Days": "3 days",
|
||||
@@ -2466,10 +2662,10 @@
|
||||
"logRetentionEndOfFollowingYear": "End of following year",
|
||||
"actionLogsDescription": "View a history of actions performed in this organization",
|
||||
"accessLogsDescription": "View access auth requests for resources in this organization",
|
||||
"connectionLogs": "Connection Logs",
|
||||
"connectionLogsDescription": "View connection logs for tunnels in this organization",
|
||||
"sidebarLogsConnection": "Connection Logs",
|
||||
"sidebarLogsStreaming": "Streaming",
|
||||
"connectionLogs": "Network Logs",
|
||||
"connectionLogsDescription": "View network session logs handled by sites in this organization",
|
||||
"sidebarLogsConnection": "Network Logs",
|
||||
"sidebarLogsStreaming": "Event Streaming",
|
||||
"sourceAddress": "Source Address",
|
||||
"destinationAddress": "Destination Address",
|
||||
"duration": "Duration",
|
||||
@@ -2666,8 +2862,12 @@
|
||||
"editInternalResourceDialogAddUsers": "Add Users",
|
||||
"editInternalResourceDialogAddClients": "Add Clients",
|
||||
"editInternalResourceDialogDestinationLabel": "Destination",
|
||||
"editInternalResourceDialogDestinationDescription": "Specify the destination address for the internal resource. This can be a hostname, IP address, or CIDR range depending on the selected mode. Optionally set an internal DNS alias for easier identification.",
|
||||
"editInternalResourceDialogDestinationDescription": "Choose where this resource runs and how clients reach it. Selecting multiple sites will create a high availability resource that can be accessed from any of the selected sites.",
|
||||
"editInternalResourceDialogPortRestrictionsDescription": "Restrict access to specific TCP/UDP ports or allow/block all ports.",
|
||||
"createInternalResourceDialogHttpConfiguration": "HTTP configuration",
|
||||
"createInternalResourceDialogHttpConfigurationDescription": "Choose the domain clients will use to reach this resource over HTTP or HTTPS.",
|
||||
"editInternalResourceDialogHttpConfiguration": "HTTP configuration",
|
||||
"editInternalResourceDialogHttpConfigurationDescription": "Choose the domain clients will use to reach this resource over HTTP or HTTPS.",
|
||||
"editInternalResourceDialogTcp": "TCP",
|
||||
"editInternalResourceDialogUdp": "UDP",
|
||||
"editInternalResourceDialogIcmp": "ICMP",
|
||||
@@ -2706,6 +2906,8 @@
|
||||
"maintenancePageMessagePlaceholder": "We'll be back soon! Our site is currently undergoing scheduled maintenance.",
|
||||
"maintenancePageMessageDescription": "Detailed message explaining the maintenance",
|
||||
"maintenancePageTimeTitle": "Estimated Completion Time (Optional)",
|
||||
"privateMaintenanceScreenTitle": "Private Placeholder Screen",
|
||||
"privateMaintenanceScreenMessage": "This domain is being used on a private resource. Please connect using the Pangolin client to access this resource.",
|
||||
"maintenanceTime": "e.g., 2 hours, Nov 1 at 5:00 PM",
|
||||
"maintenanceEstimatedTimeDescription": "When you expect maintenance to be completed",
|
||||
"editDomain": "Edit Domain",
|
||||
@@ -2825,9 +3027,9 @@
|
||||
"streamingHttpWebhookTitle": "HTTP Webhook",
|
||||
"streamingHttpWebhookDescription": "Send events to any HTTP endpoint with flexible authentication and templating.",
|
||||
"streamingS3Title": "Amazon S3",
|
||||
"streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.",
|
||||
"streamingS3Description": "Stream events to an S3-compatible object storage bucket.",
|
||||
"streamingDatadogTitle": "Datadog",
|
||||
"streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.",
|
||||
"streamingDatadogDescription": "Forward events directly to your Datadog account.",
|
||||
"streamingTypePickerDescription": "Choose a destination type to get started.",
|
||||
"streamingFailedToLoad": "Failed to load destinations",
|
||||
"streamingUnexpectedError": "An unexpected error occurred.",
|
||||
@@ -2843,6 +3045,14 @@
|
||||
"httpDestAddTitle": "Add HTTP Destination",
|
||||
"httpDestEditDescription": "Update the configuration for this HTTP event streaming destination.",
|
||||
"httpDestAddDescription": "Configure a new HTTP endpoint to receive your organization's events.",
|
||||
"S3DestEditTitle": "Edit Destination",
|
||||
"S3DestAddTitle": "Add S3 Destination",
|
||||
"S3DestEditDescription": "Update the configuration for this S3 event streaming destination.",
|
||||
"S3DestAddDescription": "Configure a new S3 endpoint to receive your organization's events.",
|
||||
"datadogDestEditTitle": "Edit Destination",
|
||||
"datadogDestAddTitle": "Add Datadog Destination",
|
||||
"datadogDestEditDescription": "Update the configuration for this Datadog event streaming destination.",
|
||||
"datadogDestAddDescription": "Configure a new Datadog endpoint to receive your organization's events.",
|
||||
"httpDestTabSettings": "Settings",
|
||||
"httpDestTabHeaders": "Headers",
|
||||
"httpDestTabBody": "Body",
|
||||
@@ -2882,18 +3092,18 @@
|
||||
"httpDestFormatJsonArrayTitle": "JSON Array",
|
||||
"httpDestFormatJsonArrayDescription": "One request per batch, body is a JSON array. Compatible with most generic webhooks and Datadog.",
|
||||
"httpDestFormatNdjsonTitle": "NDJSON",
|
||||
"httpDestFormatNdjsonDescription": "One request per batch, body is newline-delimited JSON — one object per line, no outer array. Required by Splunk HEC, Elastic / OpenSearch, and Grafana Loki.",
|
||||
"httpDestFormatNdjsonDescription": "One request per batch, body is newline-delimited JSON - one object per line, no outer array. Required by Splunk HEC, Elastic / OpenSearch, and Grafana Loki.",
|
||||
"httpDestFormatSingleTitle": "One Event Per Request",
|
||||
"httpDestFormatSingleDescription": "Sends a separate HTTP POST for each individual event. Use only for endpoints that cannot handle batches.",
|
||||
"httpDestLogTypesTitle": "Log Types",
|
||||
"httpDestLogTypesDescription": "Choose which log types are forwarded to this destination. Only enabled log types will be streamed.",
|
||||
"httpDestAccessLogsTitle": "Access Logs",
|
||||
"httpDestAccessLogsTitle": "Authentication Logs",
|
||||
"httpDestAccessLogsDescription": "Resource access attempts, including authenticated and denied requests.",
|
||||
"httpDestActionLogsTitle": "Action Logs",
|
||||
"httpDestActionLogsTitle": "Admin Action Logs",
|
||||
"httpDestActionLogsDescription": "Administrative actions performed by users within the organization.",
|
||||
"httpDestConnectionLogsTitle": "Connection Logs",
|
||||
"httpDestConnectionLogsTitle": "Network Logs",
|
||||
"httpDestConnectionLogsDescription": "Site and tunnel connection events, including connects and disconnects.",
|
||||
"httpDestRequestLogsTitle": "Request Logs",
|
||||
"httpDestRequestLogsTitle": "HTTPS Request Logs",
|
||||
"httpDestRequestLogsDescription": "HTTP request logs for proxied resources, including method, path, and response code.",
|
||||
"httpDestSaveChanges": "Save Changes",
|
||||
"httpDestCreateDestination": "Create Destination",
|
||||
@@ -2901,6 +3111,18 @@
|
||||
"httpDestCreatedSuccess": "Destination created successfully",
|
||||
"httpDestUpdateFailed": "Failed to update destination",
|
||||
"httpDestCreateFailed": "Failed to create destination",
|
||||
"followRedirects": "Follow Redirects",
|
||||
"followRedirectsDescription": "Automatically follow HTTP redirects for requests.",
|
||||
"alertingErrorWebhookUrl": "Please enter a valid URL for the webhook.",
|
||||
"healthCheckStrategyHttp": "Validates connectivity and checks the HTTP response status.",
|
||||
"healthCheckStrategyTcp": "Verifies TCP connectivity only, without inspecting the response.",
|
||||
"healthCheckStrategySnmp": "Makes an SNMP get request to check the health of network devices and infrastructure.",
|
||||
"healthCheckStrategyIcmp": "Uses ICMP echo requests (pings) to check if a resource is reachable and responsive.",
|
||||
"healthCheckTabStrategy": "Strategy",
|
||||
"healthCheckTabConnection": "Connection",
|
||||
"healthCheckTabAdvanced": "Advanced",
|
||||
"healthCheckStrategyNotAvailable": "This strategy is not available. Please contact sales to enable this feature.",
|
||||
"uptime30d": "Uptime (30d)",
|
||||
"idpAddActionCreateNew": "Create new identity provider",
|
||||
"idpAddActionImportFromOrg": "Import from another organization",
|
||||
"idpImportDialogTitle": "Import Identity Provider",
|
||||
@@ -2917,5 +3139,8 @@
|
||||
"idpUnassociateWarning": "This cannot be undone for this organization.",
|
||||
"idpUnassociatedDescription": "Identity provider unassociated from this organization successfully",
|
||||
"idpUnassociateMenu": "Unassociate",
|
||||
"idpDeleteAllOrgsMenu": "Delete"
|
||||
"idpDeleteAllOrgsMenu": "Delete",
|
||||
"publicIpEndpoint": "Endpoint",
|
||||
"lastTriggeredAt": "Last Trigger",
|
||||
"reject": "Reject"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"contactSalesEnable": "Contacta ventas para habilitar esta función.",
|
||||
"contactSalesBookDemo": "Reservar una demostración",
|
||||
"contactSalesOr": "o",
|
||||
"contactSalesContactUs": "contáctenos",
|
||||
"setupCreate": "Crear la organización, el sitio y los recursos",
|
||||
"headerAuthCompatibilityInfo": "Habilite esto para forzar una respuesta 401 no autorizada cuando falte un token de autenticación. Esto es necesario para navegadores o bibliotecas HTTP específicas que no envían credenciales sin un desafío del servidor.",
|
||||
"headerAuthCompatibility": "Compatibilidad extendida",
|
||||
@@ -19,6 +23,14 @@
|
||||
"componentsInvalidKey": "Se han detectado claves de licencia inválidas o caducadas. Siga los términos de licencia para seguir usando todas las características.",
|
||||
"dismiss": "Descartar",
|
||||
"subscriptionViolationMessage": "Estás más allá de tus límites para tu plan actual. Corrija el problema eliminando sitios, usuarios u otros recursos para permanecer dentro de tu plan.",
|
||||
"trialBannerMessage": "Su prueba expira en {countdown}. Actualice para mantener el acceso.",
|
||||
"trialBannerExpired": "Su prueba ha expirado. Actualice ahora para restaurar el acceso.",
|
||||
"trialActive": "Prueba gratuita activa",
|
||||
"trialExpired": "Prueba expirada",
|
||||
"trialHasEnded": "Su prueba ha terminado.",
|
||||
"trialDaysRemaining": "{count, plural, one {# día restante} other {# días restantes}}",
|
||||
"trialDaysLeftShort": "Quedan {days}d en la prueba",
|
||||
"trialGoToBilling": "Ir a la página de facturación",
|
||||
"subscriptionViolationViewBilling": "Ver facturación",
|
||||
"componentsLicenseViolation": "Violación de la Licencia: Este servidor está usando sitios {usedSites} que exceden su límite de licencias de sitios {maxSites} . Siga los términos de licencia para seguir usando todas las características.",
|
||||
"componentsSupporterMessage": "¡Gracias por apoyar a Pangolin como {tier}!",
|
||||
@@ -267,8 +279,11 @@
|
||||
"orgMissing": "Falta el ID de la organización",
|
||||
"orgMissingMessage": "No se puede regenerar la invitación sin el ID de la organización.",
|
||||
"accessUsersManage": "Administrar usuarios",
|
||||
"accessUserManage": "Administrar usuario",
|
||||
"accessUsersDescription": "Invitar y administrar usuarios con acceso a esta organización",
|
||||
"accessUsersSearch": "Buscar usuarios...",
|
||||
"accessUsersRoleFilterCount": "{count, plural, one {# rol} other {# roles}}",
|
||||
"accessUsersRoleFilterClear": "Borrar filtros de rol",
|
||||
"accessUserCreate": "Crear usuario",
|
||||
"accessUserRemove": "Eliminar usuario",
|
||||
"username": "Usuario",
|
||||
@@ -898,6 +913,7 @@
|
||||
"idpDisplayName": "Un nombre mostrado para este proveedor de identidad",
|
||||
"idpAutoProvisionUsers": "Auto-Provisión de Usuarios",
|
||||
"idpAutoProvisionUsersDescription": "Cuando está habilitado, los usuarios serán creados automáticamente en el sistema al iniciar sesión con la capacidad de asignar a los usuarios a roles y organizaciones.",
|
||||
"idpAutoProvisionConfigureAfterCreate": "Puede configurar las configuraciones de provisión automática una vez que se haya creado el proveedor de identidad.",
|
||||
"licenseBadge": "EE",
|
||||
"idpType": "Tipo de proveedor",
|
||||
"idpTypeDescription": "Seleccione el tipo de proveedor de identidad que desea configurar",
|
||||
@@ -949,7 +965,7 @@
|
||||
"defaultMappingsRole": "Mapeo de Rol por defecto",
|
||||
"defaultMappingsRoleDescription": "El resultado de esta expresión debe devolver el nombre del rol tal y como se define en la organización como una cadena.",
|
||||
"defaultMappingsOrg": "Mapeo de organización por defecto",
|
||||
"defaultMappingsOrgDescription": "Esta expresión debe devolver el ID de org o verdadero para que el usuario pueda acceder a la organización.",
|
||||
"defaultMappingsOrgDescription": "Cuando se establece, esta expresión debe devolver el ID de la organización o verdadero para que el usuario acceda a esa organización. Cuando no se establece, definir un mapeo de roles es suficiente: se permite la entrada del usuario siempre que se pueda resolver un mapeo de roles válido para él dentro de la organización.",
|
||||
"defaultMappingsSubmit": "Guardar asignaciones por defecto",
|
||||
"orgPoliciesEdit": "Editar Política de Organización",
|
||||
"org": "Organización",
|
||||
@@ -1256,6 +1272,7 @@
|
||||
"actionViewLogs": "Ver registros",
|
||||
"noneSelected": "Ninguno seleccionado",
|
||||
"orgNotFound2": "No se encontraron organizaciones.",
|
||||
"search": "Buscar…",
|
||||
"searchPlaceholder": "Buscar...",
|
||||
"emptySearchOptions": "No se encontraron opciones",
|
||||
"create": "Crear",
|
||||
@@ -1340,10 +1357,166 @@
|
||||
"sidebarGeneral": "Gestionar",
|
||||
"sidebarLogAndAnalytics": "Registro y análisis",
|
||||
"sidebarBluePrints": "Planos",
|
||||
"sidebarAlerting": "Alertas",
|
||||
"sidebarHealthChecks": "Chequeos de salud",
|
||||
"sidebarOrganization": "Organización",
|
||||
"sidebarManagement": "Gestión",
|
||||
"sidebarBillingAndLicenses": "Facturación y licencias",
|
||||
"sidebarLogsAnalytics": "Analíticas",
|
||||
"alertingTitle": "Alertas",
|
||||
"alertingDescription": "Definir fuentes, disparadores y acciones para notificaciones",
|
||||
"alertingRules": "Reglas de alerta",
|
||||
"alertingSearchRules": "Buscar reglas…",
|
||||
"alertingAddRule": "Crear regla",
|
||||
"alertingColumnSource": "Fuente",
|
||||
"alertingColumnTrigger": "Disparador",
|
||||
"alertingColumnActions": "Acciones",
|
||||
"alertingColumnEnabled": "Activado",
|
||||
"alertingDeleteQuestion": "Por favor, confirme que desea eliminar esta regla de alerta.",
|
||||
"alertingDeleteRule": "Eliminar regla de alerta",
|
||||
"alertingRuleDeleted": "Regla de alerta eliminada",
|
||||
"alertingRuleSaved": "Regla de alerta guardada",
|
||||
"alertingRuleSavedCreatedDescription": "Tu nueva regla de alerta fue creada. Puedes seguir editándola en esta página.",
|
||||
"alertingRuleSavedUpdatedDescription": "Tus cambios a esta regla de alerta fueron guardados.",
|
||||
"alertingEditRule": "Editar regla de alerta",
|
||||
"alertingCreateRule": "Crear regla de alerta",
|
||||
"alertingRuleCredenzaDescription": "Elija qué observar, cuándo disparar y cómo notificar",
|
||||
"alertingRuleNamePlaceholder": "Sitio de producción caído",
|
||||
"alertingRuleEnabled": "Regla habilitada",
|
||||
"alertingSectionSource": "Fuente",
|
||||
"alertingSourceType": "Tipo de fuente",
|
||||
"alertingSourceSite": "Sitio",
|
||||
"alertingSourceHealthCheck": "Chequeo de salud",
|
||||
"alertingPickSites": "Sitios",
|
||||
"alertingPickHealthChecks": "Chequeos de salud",
|
||||
"alertingPickResources": "Recursos",
|
||||
"alertingAllSites": "Todos los sitios",
|
||||
"alertingAllSitesDescription": "Las alertas se activan para cualquier sitio",
|
||||
"alertingSpecificSites": "Sitios específicos",
|
||||
"alertingSpecificSitesDescription": "Escoja sitios específicos para observar",
|
||||
"alertingAllHealthChecks": "Todos los chequeos de salud",
|
||||
"alertingAllHealthChecksDescription": "Las alertas se activan para cualquier chequeo de salud",
|
||||
"alertingSpecificHealthChecks": "Chequeos de salud específicos",
|
||||
"alertingSpecificHealthChecksDescription": "Elija chequeos de salud específicos para observar",
|
||||
"alertingAllResources": "Todos los recursos",
|
||||
"alertingAllResourcesDescription": "Las alertas se activan para cualquier recurso",
|
||||
"alertingSpecificResources": "Recursos específicos",
|
||||
"alertingSpecificResourcesDescription": "Elija recursos específicos para observar",
|
||||
"alertingSelectResources": "Seleccionar recursos…",
|
||||
"alertingResourcesSelected": "{count} recursos seleccionados",
|
||||
"alertingResourcesEmpty": "No hay recursos con objetivos en los primeros 10 resultados.",
|
||||
"alertingSectionTrigger": "Disparador",
|
||||
"alertingTrigger": "Cuándo alertar",
|
||||
"alertingTriggerSiteOnline": "Sitio en línea",
|
||||
"alertingTriggerSiteOffline": "Sitio fuera de línea",
|
||||
"alertingTriggerSiteToggle": "El estado del sitio cambia",
|
||||
"alertingTriggerHcHealthy": "Chequeo de salud saludable",
|
||||
"alertingTriggerHcUnhealthy": "Chequeo de salud no saludable",
|
||||
"alertingTriggerHcToggle": "El estado del chequeo de salud cambia",
|
||||
"alertingTriggerResourceHealthy": "Recurso saludable",
|
||||
"alertingTriggerResourceUnhealthy": "Recurso no saludable",
|
||||
"alertingSearchHealthChecks": "Buscar chequeos de salud…",
|
||||
"alertingHealthChecksEmpty": "No hay chequeos de salud disponibles.",
|
||||
"alertingTriggerResourceToggle": "El estado del recurso cambia",
|
||||
"alertingSourceResource": "Recurso",
|
||||
"alertingSectionActions": "Acciones",
|
||||
"alertingAddAction": "Añadir acción",
|
||||
"alertingActionNotify": "E-mail",
|
||||
"alertingActionNotifyDescription": "Enviar notificaciones por correo electrónico a usuarios o roles",
|
||||
"alertingActionWebhook": "Webhook",
|
||||
"alertingActionWebhookDescription": "Enviar una solicitud HTTP a un punto final personalizado",
|
||||
"alertingExternalIntegration": "Integración externa",
|
||||
"alertingExternalPagerDutyDescription": "Enviar alertas a PagerDuty para gestión de incidentes",
|
||||
"alertingExternalOpsgenieDescription": "Dirigir alertas a Opsgenie para gestión de llamadas",
|
||||
"alertingExternalServiceNowDescription": "Crear incidentes de ServiceNow a partir de eventos de alerta",
|
||||
"alertingExternalIncidentIoDescription": "Activar flujos de trabajo de Incident.io a partir de eventos de alerta",
|
||||
"alertingActionType": "Tipo de acción",
|
||||
"alertingNotifyUsers": "Usuarios",
|
||||
"alertingNotifyRoles": "Roles",
|
||||
"alertingNotifyEmails": "Direcciones de correo electrónico",
|
||||
"alertingEmailPlaceholder": "Añadir email y presionar Enter",
|
||||
"alertingWebhookMethod": "Método HTTP",
|
||||
"alertingWebhookSecret": "Firma secreta (opcional)",
|
||||
"alertingWebhookSecretPlaceholder": "Secreto HMAC",
|
||||
"alertingWebhookHeaders": "Encabezados",
|
||||
"alertingAddHeader": "Añadir encabezado",
|
||||
"alertingSelectSites": "Seleccionar sitios…",
|
||||
"alertingSitesSelected": "{count} sitios seleccionados",
|
||||
"alertingSelectHealthChecks": "Seleccionar chequeos de salud…",
|
||||
"alertingHealthChecksSelected": "{count} chequeos de salud seleccionados",
|
||||
"alertingNoHealthChecks": "No hay objetivos con chequeos de salud habilitados",
|
||||
"alertingHealthCheckStub": "La selección de chequeo de salud no está conectada aún - todavía puede configurar disparadores y acciones.",
|
||||
"alertingSelectUsers": "Seleccionar usuarios…",
|
||||
"alertingUsersSelected": "{count} usuarios seleccionados",
|
||||
"alertingSelectRoles": "Seleccionar roles…",
|
||||
"alertingRolesSelected": "{count} roles seleccionados",
|
||||
"alertingSummarySites": "Sitios ({count})",
|
||||
"alertingSummaryAllSites": "Todos los sitios",
|
||||
"alertingSummaryHealthChecks": "Chequeos de salud ({count})",
|
||||
"alertingSummaryAllHealthChecks": "Todos los chequeos de salud",
|
||||
"alertingSummaryResources": "Recursos ({count})",
|
||||
"alertingSummaryAllResources": "Todos los recursos",
|
||||
"alertingErrorNameRequired": "Introduce un nombre",
|
||||
"alertingErrorActionsMin": "Añada al menos una acción",
|
||||
"alertingErrorPickSites": "Seleccione al menos un sitio",
|
||||
"alertingErrorPickHealthChecks": "Seleccione al menos un chequeo de salud",
|
||||
"alertingErrorPickResources": "Seleccione al menos un recurso",
|
||||
"alertingErrorTriggerSite": "Elija un disparador de sitio",
|
||||
"alertingErrorTriggerHealth": "Elija un disparador de chequeo de salud",
|
||||
"alertingErrorTriggerResource": "Elija un disparador de recurso",
|
||||
"alertingErrorNotifyRecipients": "Elija usuarios, roles o al menos un correo electrónico",
|
||||
"alertingConfigureSource": "Configurar fuente",
|
||||
"alertingConfigureTrigger": "Configurar disparador",
|
||||
"alertingConfigureActions": "Configurar acciones",
|
||||
"alertingBackToRules": "Volver a las reglas",
|
||||
"alertingRuleCooldown": "Tiempo de espera (segundos)",
|
||||
"alertingRuleCooldownDescription": "Tiempo mínimo entre alertas repetidas para la misma regla. Establezca en 0 para disparar cada vez.",
|
||||
"alertingDraftBadge": "Borrador - guardarlo para almacenar esta regla",
|
||||
"alertingSidebarHint": "Haga clic en un paso en el lienzo para editarlo aquí.",
|
||||
"alertingGraphCanvasTitle": "Flujo de regla",
|
||||
"alertingGraphCanvasDescription": "Visión general visual de fuente, disparador y acciones. Selecciona un nodo para editarlo en el panel.",
|
||||
"alertingNodeNotConfigured": "Aún no configurado",
|
||||
"alertingNodeActionsCount": "{count, plural, one {# acción} other {# acciones}}",
|
||||
"alertingNodeRoleSource": "Fuente",
|
||||
"alertingNodeRoleTrigger": "Disparador",
|
||||
"alertingNodeRoleAction": "Acción",
|
||||
"alertingTabRules": "Reglas de Alerta",
|
||||
"alertingTabHealthChecks": "Chequeos de salud",
|
||||
"alertingRulesBannerTitle": "Obtenga notificaciones",
|
||||
"alertingRulesBannerDescription": "Cada regla vincula lo que se debe observar (un sitio, chequeo de salud o recurso), cuándo disparar (por ejemplo, fuera de línea o no saludable), y cómo notificar a su equipo vía email, webhooks o integraciones. Use esta lista para crear, habilitar y administrar esas reglas.",
|
||||
"alertingHealthChecksBannerTitle": "Monitorear Salud y Recursos",
|
||||
"alertingHealthChecksBannerDescription": "Los chequeos de salud son monitores HTTP o TCP que define una vez. Luego puede usarlos como fuentes en reglas de alerta para que se le notifique cuando un objetivo se vuelva saludable o no saludable. Los chequeos de salud en recursos también aparecen aquí.",
|
||||
"standaloneHcTableTitle": "Chequeos de salud",
|
||||
"standaloneHcSearchPlaceholder": "Buscar chequeos de salud…",
|
||||
"standaloneHcAddButton": "Crear chequeo de salud",
|
||||
"standaloneHcCreateTitle": "Crear chequeo de salud",
|
||||
"standaloneHcEditTitle": "Editar chequeo de salud",
|
||||
"standaloneHcDescription": "Configurar un chequeo de salud HTTP o TCP para usar en reglas de alerta.",
|
||||
"standaloneHcNameLabel": "Nombre",
|
||||
"standaloneHcNamePlaceholder": "Mi monitor HTTP",
|
||||
"standaloneHcDeleteTitle": "Eliminar chequeo de salud",
|
||||
"standaloneHcDeleteQuestion": "Por favor, confirme que desea eliminar este chequeo de salud.",
|
||||
"standaloneHcDeleted": "Chequeo de salud eliminado",
|
||||
"standaloneHcSaved": "Chequeo de salud guardado",
|
||||
"standaloneHcColumnHealth": "Salud",
|
||||
"standaloneHcColumnMode": "Modo",
|
||||
"standaloneHcColumnTarget": "Destino",
|
||||
"standaloneHcHealthStateHealthy": "Saludable",
|
||||
"standaloneHcHealthStateUnhealthy": "No saludable",
|
||||
"standaloneHcHealthStateUnknown": "Desconocido",
|
||||
"standaloneHcFilterAnySite": "Todos los sitios",
|
||||
"standaloneHcFilterAnyResource": "Todos los recursos",
|
||||
"standaloneHcFilterMode": "Modo",
|
||||
"standaloneHcFilterModeHttp": "HTTP",
|
||||
"standaloneHcFilterModeTcp": "TCP",
|
||||
"standaloneHcFilterModeSnmp": "SNMP",
|
||||
"standaloneHcFilterModePing": "Ping",
|
||||
"standaloneHcFilterHealth": "Salud",
|
||||
"standaloneHcFilterEnabled": "Activado",
|
||||
"standaloneHcFilterEnabledOn": "Activado",
|
||||
"standaloneHcFilterEnabledOff": "Deshabilitado",
|
||||
"standaloneHcFilterSiteIdFallback": "Sitio {id}",
|
||||
"standaloneHcFilterResourceIdFallback": "Recurso {id}",
|
||||
"blueprints": "Planos",
|
||||
"blueprintsDescription": "Aplicar configuraciones declarativas y ver ejecuciones anteriores",
|
||||
"blueprintAdd": "Añadir plano",
|
||||
@@ -1762,6 +1935,15 @@
|
||||
"healthCheckIntervalMin": "El intervalo de comprobación debe ser de al menos 5 segundos",
|
||||
"healthCheckTimeoutMin": "El tiempo de espera debe ser de al menos 1 segundo",
|
||||
"healthCheckRetryMin": "Los intentos de reintento deben ser de al menos 1",
|
||||
"healthCheckMode": "Modo de chequeo",
|
||||
"healthCheckStrategy": "Estrategia",
|
||||
"healthCheckModeDescription": "El modo TCP verifica solo la conectividad. El modo HTTP valida la respuesta HTTP.",
|
||||
"healthyThreshold": "Umbral Saludable",
|
||||
"healthyThresholdDescription": "Éxitos consecutivos requeridos antes de marcar como saludable.",
|
||||
"unhealthyThreshold": "Umbral No Saludable",
|
||||
"unhealthyThresholdDescription": "Fallos consecutivos requeridos antes de marcar como no saludable.",
|
||||
"healthCheckHealthyThresholdMin": "El umbral saludable debe ser al menos 1",
|
||||
"healthCheckUnhealthyThresholdMin": "El umbral no saludable debe ser al menos 1",
|
||||
"httpMethod": "Método HTTP",
|
||||
"selectHttpMethod": "Seleccionar método HTTP",
|
||||
"domainPickerSubdomainLabel": "Subdominio",
|
||||
@@ -1821,6 +2003,11 @@
|
||||
"editInternalResourceDialogModePort": "Puerto",
|
||||
"editInternalResourceDialogModeHost": "Anfitrión",
|
||||
"editInternalResourceDialogModeCidr": "CIDR",
|
||||
"editInternalResourceDialogModeHttp": "HTTP",
|
||||
"editInternalResourceDialogModeHttps": "HTTPS",
|
||||
"editInternalResourceDialogScheme": "Esquema",
|
||||
"editInternalResourceDialogEnableSsl": "Activar SSL",
|
||||
"editInternalResourceDialogEnableSslDescription": "Habilitar cifrado SSL/TLS para conexiones HTTPS seguras al destino.",
|
||||
"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.",
|
||||
@@ -1836,6 +2023,7 @@
|
||||
"createInternalResourceDialogName": "Nombre",
|
||||
"createInternalResourceDialogSite": "Sitio",
|
||||
"selectSite": "Seleccionar sitio...",
|
||||
"multiSitesSelectorSitesCount": "{count, plural, one {# sitio} other {# sitios}}",
|
||||
"noSitesFound": "Sitios no encontrados.",
|
||||
"createInternalResourceDialogProtocol": "Protocolo",
|
||||
"createInternalResourceDialogTcp": "TCP",
|
||||
@@ -1864,11 +2052,19 @@
|
||||
"createInternalResourceDialogModePort": "Puerto",
|
||||
"createInternalResourceDialogModeHost": "Anfitrión",
|
||||
"createInternalResourceDialogModeCidr": "CIDR",
|
||||
"createInternalResourceDialogModeHttp": "HTTP",
|
||||
"createInternalResourceDialogModeHttps": "HTTPS",
|
||||
"scheme": "Esquema",
|
||||
"createInternalResourceDialogScheme": "Esquema",
|
||||
"createInternalResourceDialogEnableSsl": "Activar SSL",
|
||||
"createInternalResourceDialogEnableSslDescription": "Habilitar cifrado SSL/TLS para conexiones HTTPS seguras al destino.",
|
||||
"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.",
|
||||
"internalResourceDownstreamSchemeRequired": "Se requiere el método para recursos HTTP",
|
||||
"internalResourceHttpPortRequired": "Se requiere el puerto de destino para recursos HTTP",
|
||||
"siteConfiguration": "Configuración",
|
||||
"siteAcceptClientConnections": "Aceptar conexiones de clientes",
|
||||
"siteAcceptClientConnectionsDescription": "Permitir a los dispositivos de usuario y clientes acceder a los recursos de este sitio. Esto se puede cambiar más tarde.",
|
||||
@@ -2026,7 +2222,7 @@
|
||||
},
|
||||
"internationaldomaindetected": "Dominio Internacional detectado",
|
||||
"willbestoredas": "Se almacenará como:",
|
||||
"roleMappingDescription": "Determinar cómo se asignan los roles a los usuarios cuando se registran cuando está habilitada la provisión automática.",
|
||||
"roleMappingDescription": "Determine cómo se asignan los roles a los usuarios cuando inician sesión con este proveedor de identidad.",
|
||||
"selectRole": "Seleccione un rol",
|
||||
"roleMappingExpression": "Expresión",
|
||||
"selectRolePlaceholder": "Elija un rol",
|
||||
@@ -2118,7 +2314,7 @@
|
||||
"selectDomainForOrgAuthPage": "Seleccione un dominio para la página de autenticación de la organización",
|
||||
"domainPickerProvidedDomain": "Dominio proporcionado",
|
||||
"domainPickerFreeProvidedDomain": "Dominio proporcionado gratis",
|
||||
"domainPickerFreeDomainsPaidFeature": "Los dominios proporcionados son una función de pago. Suscríbete para obtener un dominio incluido con tu plan — no necesitas traer el tuyo propio.",
|
||||
"domainPickerFreeDomainsPaidFeature": "Los dominios proporcionados son una función de pago. Suscríbete para obtener un dominio incluido con tu plan - no necesitas traer el tuyo propio.",
|
||||
"domainPickerVerified": "Verificado",
|
||||
"domainPickerUnverified": "Sin verificar",
|
||||
"domainPickerManual": "Manual",
|
||||
@@ -2296,7 +2492,7 @@
|
||||
"alerts": {
|
||||
"commercialUseDisclosure": {
|
||||
"title": "Divulgación de uso",
|
||||
"description": "Seleccione el nivel de licencia que refleje con precisión su uso previsto. La Licencia Personal permite el uso libre del Software para actividades comerciales individuales, no comerciales o de pequeña escala con ingresos brutos anuales inferiores a $100,000 USD. Cualquier uso más allá de estos límites — incluyendo el uso dentro de una empresa, organización, u otro entorno de generación de ingresos — requiere una Licencia Empresarial válida y el pago de la cuota de licencia aplicable. Todos los usuarios, ya sean personales o empresariales, deben cumplir con las Condiciones de Licencia Comercial Fossorial."
|
||||
"description": "Seleccione el nivel de licencia que refleje con precisión su uso previsto. La Licencia Personal permite el uso libre del Software para actividades comerciales individuales, no comerciales o de pequeña escala con ingresos brutos anuales inferiores a $100,000 USD. Cualquier uso más allá de estos límites - incluyendo el uso dentro de una empresa, organización, u otro entorno de generación de ingresos - requiere una Licencia Empresarial válida y el pago de la cuota de licencia aplicable. Todos los usuarios, ya sean personales o empresariales, deben cumplir con las Condiciones de Licencia Comercial Fossorial."
|
||||
},
|
||||
"trialPeriodInformation": {
|
||||
"title": "Información del período de prueba",
|
||||
@@ -2428,6 +2624,7 @@
|
||||
"validPassword": "Contraseña válida",
|
||||
"validEmail": "Valid email",
|
||||
"validSSO": "Valid SSO",
|
||||
"connectedClient": "Cliente conectado",
|
||||
"resourceBlocked": "Recurso bloqueado",
|
||||
"droppedByRule": "Soltado por regla",
|
||||
"noSessions": "No hay sesiones",
|
||||
@@ -2667,6 +2864,10 @@
|
||||
"editInternalResourceDialogDestinationLabel": "Destino",
|
||||
"editInternalResourceDialogDestinationDescription": "Especifique la dirección de destino para el recurso interno. Puede ser un nombre de host, dirección IP o rango CIDR dependiendo del modo seleccionado. Opcionalmente establezca un alias DNS interno para una identificación más fácil.",
|
||||
"editInternalResourceDialogPortRestrictionsDescription": "Restringir el acceso a puertos TCP/UDP específicos o permitir/bloquear todos los puertos.",
|
||||
"createInternalResourceDialogHttpConfiguration": "Configuración HTTP",
|
||||
"createInternalResourceDialogHttpConfigurationDescription": "Elija el dominio que los clientes usarán para alcanzar este recurso a través de HTTP o HTTPS.",
|
||||
"editInternalResourceDialogHttpConfiguration": "Configuración HTTP",
|
||||
"editInternalResourceDialogHttpConfigurationDescription": "Elija el dominio que los clientes usarán para alcanzar este recurso a través de HTTP o HTTPS.",
|
||||
"editInternalResourceDialogTcp": "TCP",
|
||||
"editInternalResourceDialogUdp": "UDP",
|
||||
"editInternalResourceDialogIcmp": "ICMP",
|
||||
@@ -2705,6 +2906,8 @@
|
||||
"maintenancePageMessagePlaceholder": "¡Volveremos pronto! Nuestro sitio está actualmente en mantenimiento programado.",
|
||||
"maintenancePageMessageDescription": "Mensaje detallado explicando el mantenimiento",
|
||||
"maintenancePageTimeTitle": "Tiempo estimado de finalización (Opcional)",
|
||||
"privateMaintenanceScreenTitle": "Pantalla de marcador de posición privada",
|
||||
"privateMaintenanceScreenMessage": "Este dominio se está utilizando en un recurso privado. Conéctese usando el cliente Pangolin para acceder a este recurso.",
|
||||
"maintenanceTime": "Ej., 2 horas, 1 de noviembre a las 5:00 PM",
|
||||
"maintenanceEstimatedTimeDescription": "Cuando espera que el mantenimiento esté terminado",
|
||||
"editDomain": "Editar dominio",
|
||||
@@ -2842,6 +3045,14 @@
|
||||
"httpDestAddTitle": "Añadir destino HTTP",
|
||||
"httpDestEditDescription": "Actualizar la configuración para este destino de transmisión de eventos HTTP.",
|
||||
"httpDestAddDescription": "Configure un nuevo extremo HTTP para recibir los eventos de su organización.",
|
||||
"S3DestEditTitle": "Editar destino",
|
||||
"S3DestAddTitle": "Añadir destino S3",
|
||||
"S3DestEditDescription": "Actualice la configuración para este destino de transmisión de eventos S3.",
|
||||
"S3DestAddDescription": "Configure un nuevo punto final S3 para recibir los eventos de su organización.",
|
||||
"datadogDestEditTitle": "Editar destino",
|
||||
"datadogDestAddTitle": "Añadir destino Datadog",
|
||||
"datadogDestEditDescription": "Actualice la configuración para este destino de transmisión de eventos Datadog.",
|
||||
"datadogDestAddDescription": "Configure un nuevo punto final de Datadog para recibir los eventos de su organización.",
|
||||
"httpDestTabSettings": "Ajustes",
|
||||
"httpDestTabHeaders": "Encabezados",
|
||||
"httpDestTabBody": "Cuerpo",
|
||||
@@ -2881,7 +3092,7 @@
|
||||
"httpDestFormatJsonArrayTitle": "Matriz JSON",
|
||||
"httpDestFormatJsonArrayDescription": "Una petición por lote, cuerpo es una matriz JSON. Compatible con la mayoría de los webhooks y Datadog.",
|
||||
"httpDestFormatNdjsonTitle": "NDJSON",
|
||||
"httpDestFormatNdjsonDescription": "Una petición por lote, el cuerpo es JSON delimitado por línea — un objeto por línea, sin arrays externos. Requerido por Splunk HEC, Elastic / OpenSearch, y Grafana Loki.",
|
||||
"httpDestFormatNdjsonDescription": "Una petición por lote, el cuerpo es JSON delimitado por línea - un objeto por línea, sin arrays externos. Requerido por Splunk HEC, Elastic / OpenSearch, y Grafana Loki.",
|
||||
"httpDestFormatSingleTitle": "Un evento por solicitud",
|
||||
"httpDestFormatSingleDescription": "Envía un HTTP POST separado para cada evento individual. Úsalo sólo para los extremos que no pueden manejar lotes.",
|
||||
"httpDestLogTypesTitle": "Tipos de Log",
|
||||
@@ -2899,5 +3110,37 @@
|
||||
"httpDestUpdatedSuccess": "Destino actualizado correctamente",
|
||||
"httpDestCreatedSuccess": "Destino creado correctamente",
|
||||
"httpDestUpdateFailed": "Error al actualizar destino",
|
||||
"httpDestCreateFailed": "Error al crear el destino"
|
||||
"httpDestCreateFailed": "Error al crear el destino",
|
||||
"followRedirects": "Seguir redirecciones",
|
||||
"followRedirectsDescription": "Seguir automáticamente las redirecciones HTTP para solicitudes.",
|
||||
"alertingErrorWebhookUrl": "Por favor, introduzca una URL válida para el webhook.",
|
||||
"healthCheckStrategyHttp": "Valida la conectividad y verifica el estado de respuesta HTTP.",
|
||||
"healthCheckStrategyTcp": "Verifica la conectividad TCP solamente, sin inspeccionar la respuesta.",
|
||||
"healthCheckStrategySnmp": "Realiza una solicitud SNMP get para verificar la salud de dispositivos y la infraestructura de red.",
|
||||
"healthCheckStrategyIcmp": "Usa solicitudes de eco ICMP (pings) para verificar si un recurso es alcanzable y receptivo.",
|
||||
"healthCheckTabStrategy": "Estrategia",
|
||||
"healthCheckTabConnection": "Conexión",
|
||||
"healthCheckTabAdvanced": "Avanzado",
|
||||
"healthCheckStrategyNotAvailable": "Esta estrategia no está disponible. Contacte ventas para habilitar esta funcionalidad.",
|
||||
"uptime30d": "Tiempo de actividad (30d)",
|
||||
"idpAddActionCreateNew": "Crear nuevo proveedor de identidad",
|
||||
"idpAddActionImportFromOrg": "Importar de otra organización",
|
||||
"idpImportDialogTitle": "Importar Proveedor de Identidad",
|
||||
"idpImportDialogDescription": "Elija un proveedor de identidad de una organización donde usted sea administrador. Se vinculará a esta organización.",
|
||||
"idpImportSearchPlaceholder": "Buscar por nombre de organización o proveedor...",
|
||||
"idpImportEmpty": "No se encontraron proveedores de identidad.",
|
||||
"idpImportedDescription": "Proveedor de identidad importado con éxito.",
|
||||
"idpDeleteGlobalQuestion": "¿Está seguro de que desea eliminar permanentemente este proveedor de identidad?",
|
||||
"idpDeleteGlobalDescription": "Esto eliminará permanentemente el proveedor de identidad de todas las organizaciones con las que está asociado.",
|
||||
"idpUnassociateTitle": "Desasociar Proveedor de Identidad",
|
||||
"idpUnassociateQuestion": "¿Está seguro de que desea desasociar este proveedor de identidad de esta organización?",
|
||||
"idpUnassociateDescription": "Todos los usuarios asociados con este proveedor de identidad serán eliminados de esta organización, pero el proveedor de identidad continuará existiendo para otras organizaciones asociadas.",
|
||||
"idpUnassociateConfirm": "Confirme Desasociar Proveedor de Identidad",
|
||||
"idpUnassociateWarning": "Esto no se puede deshacer para esta organización.",
|
||||
"idpUnassociatedDescription": "Proveedor de identidad desasociado de esta organización con éxito",
|
||||
"idpUnassociateMenu": "Desasociar",
|
||||
"idpDeleteAllOrgsMenu": "Eliminar",
|
||||
"publicIpEndpoint": "Punto final",
|
||||
"lastTriggeredAt": "Último disparo",
|
||||
"reject": "Rechazar"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"contactSalesEnable": "Contactez le service commercial pour activer cette fonctionnalité.",
|
||||
"contactSalesBookDemo": "Réserver une démo",
|
||||
"contactSalesOr": "ou",
|
||||
"contactSalesContactUs": "contactez-nous",
|
||||
"setupCreate": "Créer l'organisation, le site et les ressources",
|
||||
"headerAuthCompatibilityInfo": "Activez ceci pour forcer une réponse 401 Unauthorized lorsque le jeton d'authentification est manquant. Cela est nécessaire pour les navigateurs ou les bibliothèques HTTP spécifiques qui n'envoient pas de credentials sans un challenge du serveur.",
|
||||
"headerAuthCompatibility": "Compatibilité étendue",
|
||||
@@ -19,6 +23,14 @@
|
||||
"componentsInvalidKey": "Clés de licence invalides ou expirées détectées. Veuillez respecter les conditions de licence pour continuer à utiliser toutes les fonctionnalités.",
|
||||
"dismiss": "Rejeter",
|
||||
"subscriptionViolationMessage": "Vous dépassez vos limites pour votre forfait actuel. Corrigez le problème en supprimant des sites, des utilisateurs ou d'autres ressources pour rester dans votre forfait.",
|
||||
"trialBannerMessage": "Votre essai expire dans {countdown}. Passez à l'abonnement pour garder l'accès.",
|
||||
"trialBannerExpired": "Votre essai a expiré. Passez à l'abonnement maintenant pour restaurer l'accès.",
|
||||
"trialActive": "Essai gratuit actif",
|
||||
"trialExpired": "Essai expiré",
|
||||
"trialHasEnded": "Votre essai est terminé.",
|
||||
"trialDaysRemaining": "{count, plural, one {# jour restant} other {# jours restants}}",
|
||||
"trialDaysLeftShort": "{days}j restants dans l'essai",
|
||||
"trialGoToBilling": "Aller à la page de facturation",
|
||||
"subscriptionViolationViewBilling": "Voir la facturation",
|
||||
"componentsLicenseViolation": "Violation de licence : ce serveur utilise {usedSites} nœuds, ce qui dépasse la limite autorisée de {maxSites} nœuds. Respectez les conditions de licence pour continuer à utiliser toutes les fonctionnalités.",
|
||||
"componentsSupporterMessage": "Merci de soutenir Pangolin en tant que {tier}!",
|
||||
@@ -267,8 +279,11 @@
|
||||
"orgMissing": "ID d'organisation manquant",
|
||||
"orgMissingMessage": "Impossible de régénérer l'invitation sans un ID d'organisation.",
|
||||
"accessUsersManage": "Gérer les utilisateurs",
|
||||
"accessUserManage": "Gérer l'utilisateur",
|
||||
"accessUsersDescription": "Inviter et gérer les utilisateurs ayant accès à cette organisation",
|
||||
"accessUsersSearch": "Chercher des utilisateurs...",
|
||||
"accessUsersRoleFilterCount": "{count, plural, one {# rôle} other {# rôles}}",
|
||||
"accessUsersRoleFilterClear": "Effacer les filtres de rôle",
|
||||
"accessUserCreate": "Créer un utilisateur",
|
||||
"accessUserRemove": "Supprimer un utilisateur",
|
||||
"username": "Nom d'utilisateur",
|
||||
@@ -898,6 +913,7 @@
|
||||
"idpDisplayName": "Un nom d'affichage pour ce fournisseur d'identité",
|
||||
"idpAutoProvisionUsers": "Approvisionnement automatique des utilisateurs",
|
||||
"idpAutoProvisionUsersDescription": "Lorsque cette option est activée, les utilisateurs seront automatiquement créés dans le système lors de leur première connexion avec la possibilité de mapper les utilisateurs aux rôles et aux organisations.",
|
||||
"idpAutoProvisionConfigureAfterCreate": "Vous pouvez configurer les paramètres de provisionnement automatique une fois le fournisseur d'identités créé.",
|
||||
"licenseBadge": "EE",
|
||||
"idpType": "Type de fournisseur",
|
||||
"idpTypeDescription": "Sélectionnez le type de fournisseur d'identité que vous souhaitez configurer",
|
||||
@@ -949,7 +965,7 @@
|
||||
"defaultMappingsRole": "Mappage de rôle par défaut",
|
||||
"defaultMappingsRoleDescription": "JMESPath pour extraire les informations de rôle du jeton ID. Le résultat de cette expression doit renvoyer le nom du rôle tel que défini dans l'organisation sous forme de chaîne.",
|
||||
"defaultMappingsOrg": "Mappage d'organisation par défaut",
|
||||
"defaultMappingsOrgDescription": "JMESPath pour extraire les informations d'organisation du jeton ID. Cette expression doit renvoyer l'ID de l'organisation ou true pour que l'utilisateur soit autorisé à accéder à l'organisation.",
|
||||
"defaultMappingsOrgDescription": "Lorsque défini, cette expression doit renvoyer l'identifiant de l'organisation ou vrai pour que l'utilisateur accède à cette organisation. Lorsqu'indéfini, définir un mappage de rôle est suffisant : l'utilisateur est autorisé tant qu'un mappage de rôle valide peut être résolu pour lui au sein de l'organisation.",
|
||||
"defaultMappingsSubmit": "Enregistrer les mappages par défaut",
|
||||
"orgPoliciesEdit": "Modifier la politique d'organisation",
|
||||
"org": "Organisation",
|
||||
@@ -1256,6 +1272,7 @@
|
||||
"actionViewLogs": "Voir les logs",
|
||||
"noneSelected": "Aucune sélection",
|
||||
"orgNotFound2": "Aucune organisation trouvée.",
|
||||
"search": "Rechercher…",
|
||||
"searchPlaceholder": "Recherche...",
|
||||
"emptySearchOptions": "Aucune option trouvée",
|
||||
"create": "Créer",
|
||||
@@ -1340,10 +1357,166 @@
|
||||
"sidebarGeneral": "Gérer",
|
||||
"sidebarLogAndAnalytics": "Journaux & Analytiques",
|
||||
"sidebarBluePrints": "Configs",
|
||||
"sidebarAlerting": "Alertes",
|
||||
"sidebarHealthChecks": "Vérifications de l'état de santé",
|
||||
"sidebarOrganization": "Organisation",
|
||||
"sidebarManagement": "Gestion",
|
||||
"sidebarBillingAndLicenses": "Facturation & Licences",
|
||||
"sidebarLogsAnalytics": "Analyses",
|
||||
"alertingTitle": "Alertes",
|
||||
"alertingDescription": "Définissez des sources, des déclencheurs et des actions pour les notifications",
|
||||
"alertingRules": "Règles d'alerte",
|
||||
"alertingSearchRules": "Rechercher des règles…",
|
||||
"alertingAddRule": "Créer une règle",
|
||||
"alertingColumnSource": "Source",
|
||||
"alertingColumnTrigger": "Déclencheur",
|
||||
"alertingColumnActions": "Actions",
|
||||
"alertingColumnEnabled": "Activé",
|
||||
"alertingDeleteQuestion": "Veuillez confirmer que vous souhaitez supprimer cette règle d'alerte.",
|
||||
"alertingDeleteRule": "Supprimer la règle d'alerte",
|
||||
"alertingRuleDeleted": "Règle d'alerte supprimée",
|
||||
"alertingRuleSaved": "Règle d'alerte enregistrée",
|
||||
"alertingRuleSavedCreatedDescription": "Votre nouvelle règle d'alerte a été créée. Vous pouvez continuer à la modifier sur cette page.",
|
||||
"alertingRuleSavedUpdatedDescription": "Vos modifications apportées à cette règle d'alerte ont été enregistrées.",
|
||||
"alertingEditRule": "Modifier la règle d'alerte",
|
||||
"alertingCreateRule": "Créer une règle d'alerte",
|
||||
"alertingRuleCredenzaDescription": "Choisissez ce qu'il faut surveiller, quand la déclencher et comment notifier",
|
||||
"alertingRuleNamePlaceholder": "Site de production hors ligne",
|
||||
"alertingRuleEnabled": "Règle activée",
|
||||
"alertingSectionSource": "Source",
|
||||
"alertingSourceType": "Type de source",
|
||||
"alertingSourceSite": "Nœud",
|
||||
"alertingSourceHealthCheck": "Vérification de l'état de santé",
|
||||
"alertingPickSites": "Nœuds",
|
||||
"alertingPickHealthChecks": "Vérifications de l'état de santé",
|
||||
"alertingPickResources": "Ressources",
|
||||
"alertingAllSites": "Tous les nœuds",
|
||||
"alertingAllSitesDescription": "Les alertes se déclenchent pour n'importe quel nœud",
|
||||
"alertingSpecificSites": "Nœuds spécifiques",
|
||||
"alertingSpecificSitesDescription": "Choisissez des nœuds spécifiques à surveiller",
|
||||
"alertingAllHealthChecks": "Toutes les vérifications de l'état de santé",
|
||||
"alertingAllHealthChecksDescription": "Les alertes se déclenchent pour n'importe quelle vérification de l'état de santé",
|
||||
"alertingSpecificHealthChecks": "Vérifications de l'état de santé spécifiques",
|
||||
"alertingSpecificHealthChecksDescription": "Choisissez des vérifications de l'état de santé spécifiques à surveiller",
|
||||
"alertingAllResources": "Toutes les ressources",
|
||||
"alertingAllResourcesDescription": "Les alertes se déclenchent pour n'importe quelle ressource",
|
||||
"alertingSpecificResources": "Ressources spécifiques",
|
||||
"alertingSpecificResourcesDescription": "Choisissez des ressources spécifiques à surveiller",
|
||||
"alertingSelectResources": "Sélectionner des ressources…",
|
||||
"alertingResourcesSelected": "{count} ressources sélectionnées",
|
||||
"alertingResourcesEmpty": "Aucune ressource avec des cibles dans les 10 premiers résultats.",
|
||||
"alertingSectionTrigger": "Déclencheur",
|
||||
"alertingTrigger": "Quand alerter",
|
||||
"alertingTriggerSiteOnline": "Site en ligne",
|
||||
"alertingTriggerSiteOffline": "Site hors ligne",
|
||||
"alertingTriggerSiteToggle": "Les changements d'état du site",
|
||||
"alertingTriggerHcHealthy": "Vérification de l'état de santé sain",
|
||||
"alertingTriggerHcUnhealthy": "Vérification de l'état de santé non sain",
|
||||
"alertingTriggerHcToggle": "Les changements d'état de la vérification de l'état de santé",
|
||||
"alertingTriggerResourceHealthy": "Ressource saine",
|
||||
"alertingTriggerResourceUnhealthy": "Ressource non saine",
|
||||
"alertingSearchHealthChecks": "Rechercher des vérifications de l'état de santé…",
|
||||
"alertingHealthChecksEmpty": "Aucune vérification de l'état de santé disponible.",
|
||||
"alertingTriggerResourceToggle": "Les changements d'état de la ressource",
|
||||
"alertingSourceResource": "Ressource",
|
||||
"alertingSectionActions": "Actions",
|
||||
"alertingAddAction": "Ajouter une action",
|
||||
"alertingActionNotify": "Adresse mail",
|
||||
"alertingActionNotifyDescription": "Envoyez des notifications par e-mail aux utilisateurs ou aux rôles",
|
||||
"alertingActionWebhook": "Webhook",
|
||||
"alertingActionWebhookDescription": "Envoyez une requête HTTP à un point de terminaison personnalisé",
|
||||
"alertingExternalIntegration": "Intégration externe",
|
||||
"alertingExternalPagerDutyDescription": "Envoyer des alertes à PagerDuty pour la gestion des incidents",
|
||||
"alertingExternalOpsgenieDescription": "Diriger les alertes vers Opsgenie pour la gestion des appels",
|
||||
"alertingExternalServiceNowDescription": "Créer des incidents ServiceNow à partir des événements d'alerte",
|
||||
"alertingExternalIncidentIoDescription": "Déclencher des flux de travail Incident.io à partir d'événements d'alerte",
|
||||
"alertingActionType": "Type d'action",
|
||||
"alertingNotifyUsers": "Utilisateurs",
|
||||
"alertingNotifyRoles": "Rôles",
|
||||
"alertingNotifyEmails": "Adresses e-mail",
|
||||
"alertingEmailPlaceholder": "Ajoutez un e-mail et appuyez sur Entrée",
|
||||
"alertingWebhookMethod": "Méthode HTTP",
|
||||
"alertingWebhookSecret": "Secret de signature (facultatif)",
|
||||
"alertingWebhookSecretPlaceholder": "Secret HMAC",
|
||||
"alertingWebhookHeaders": "En-têtes",
|
||||
"alertingAddHeader": "Ajouter un en-tête",
|
||||
"alertingSelectSites": "Sélectionner des sites…",
|
||||
"alertingSitesSelected": "{count} sites sélectionnés",
|
||||
"alertingSelectHealthChecks": "Sélectionner des vérifications de l'état de santé…",
|
||||
"alertingHealthChecksSelected": "{count} vérifications de santé sélectionnées",
|
||||
"alertingNoHealthChecks": "Aucune cible avec des vérifications de l'état de santé activées",
|
||||
"alertingHealthCheckStub": "La sélection de la source de vérification de l'état de santé n'est pas encore câblée - vous pouvez toujours configurer les déclencheurs et les actions.",
|
||||
"alertingSelectUsers": "Sélectionner des utilisateurs…",
|
||||
"alertingUsersSelected": "{count} utilisateurs sélectionnés",
|
||||
"alertingSelectRoles": "Sélectionner des rôles…",
|
||||
"alertingRolesSelected": "{count} rôles sélectionnés",
|
||||
"alertingSummarySites": "Sites ({count})",
|
||||
"alertingSummaryAllSites": "Tous les nœuds",
|
||||
"alertingSummaryHealthChecks": "Vérifications de l'état de santé ({count})",
|
||||
"alertingSummaryAllHealthChecks": "Toutes les vérifications de l'état de santé",
|
||||
"alertingSummaryResources": "Ressources ({count})",
|
||||
"alertingSummaryAllResources": "Toutes les ressources",
|
||||
"alertingErrorNameRequired": "Entrer un nom",
|
||||
"alertingErrorActionsMin": "Ajoutez au moins une action",
|
||||
"alertingErrorPickSites": "Sélectionnez au moins un site",
|
||||
"alertingErrorPickHealthChecks": "Sélectionnez au moins une vérification de l'état de santé",
|
||||
"alertingErrorPickResources": "Sélectionnez au moins une ressource",
|
||||
"alertingErrorTriggerSite": "Choisissez un déclencheur de site",
|
||||
"alertingErrorTriggerHealth": "Choisissez un déclencheur de vérification de l'état de santé",
|
||||
"alertingErrorTriggerResource": "Choisissez un déclencheur de ressource",
|
||||
"alertingErrorNotifyRecipients": "Choisissez des utilisateurs, des rôles ou au moins un e-mail",
|
||||
"alertingConfigureSource": "Configurer la source",
|
||||
"alertingConfigureTrigger": "Configurer le déclencheur",
|
||||
"alertingConfigureActions": "Configurer les actions",
|
||||
"alertingBackToRules": "Retour aux règles",
|
||||
"alertingRuleCooldown": "Temps de repos (secondes)",
|
||||
"alertingRuleCooldownDescription": "Temps minimum entre les alertes répétées pour la même règle. Réglez sur 0 pour déclencher à chaque fois.",
|
||||
"alertingDraftBadge": "Brouillon - enregistrez pour stocker cette règle",
|
||||
"alertingSidebarHint": "Cliquez sur une étape dans la vue d'ensemble pour la modifier ici.",
|
||||
"alertingGraphCanvasTitle": "Flux de règle",
|
||||
"alertingGraphCanvasDescription": "Vue d'ensemble visuelle de la source, du déclencheur et des actions. Sélectionnez un nœud pour le modifier dans le panneau.",
|
||||
"alertingNodeNotConfigured": "Pas encore configuré",
|
||||
"alertingNodeActionsCount": "{count, plural, one {# action} other {# actions}}",
|
||||
"alertingNodeRoleSource": "Source",
|
||||
"alertingNodeRoleTrigger": "Déclencheur",
|
||||
"alertingNodeRoleAction": "Action",
|
||||
"alertingTabRules": "Règles d'alerte",
|
||||
"alertingTabHealthChecks": "Vérifications de l'état de santé",
|
||||
"alertingRulesBannerTitle": "Soyez averti",
|
||||
"alertingRulesBannerDescription": "Chaque règle associe ce qu'il faut surveiller (un site, une vérification de l'état de santé ou une ressource), quand l'exécuter (par exemple, hors ligne ou non saine), et comment notifier votre équipe par e-mail, webhooks ou intégrations. Utilisez cette liste pour créer, activer et gérer ces règles.",
|
||||
"alertingHealthChecksBannerTitle": "Surveiller la santé et les ressources",
|
||||
"alertingHealthChecksBannerDescription": "Les vérifications de l'état de santé sont des moniteurs HTTP ou TCP que vous définissez une fois. Vous pouvez ensuite les utiliser comme sources dans les règles d'alerte pour être averti lorsqu'une cible devient saine ou non saine. Les vérifications de l'état de santé sur les ressources apparaissent également ici.",
|
||||
"standaloneHcTableTitle": "Vérifications de l'état de santé",
|
||||
"standaloneHcSearchPlaceholder": "Rechercher des vérifications de l'état de santé…",
|
||||
"standaloneHcAddButton": "Créer une vérification de l'état de santé",
|
||||
"standaloneHcCreateTitle": "Créer une vérification de l'état de santé",
|
||||
"standaloneHcEditTitle": "Modifier la vérification de l'état de santé",
|
||||
"standaloneHcDescription": "Configurez une vérification HTTP ou TCP de l'état de santé pour une utilisation dans les règles d'alerte.",
|
||||
"standaloneHcNameLabel": "Nom",
|
||||
"standaloneHcNamePlaceholder": "Mon moniteur HTTP",
|
||||
"standaloneHcDeleteTitle": "Supprimer la vérification de l'état de santé",
|
||||
"standaloneHcDeleteQuestion": "Veuillez confirmer que você souhaitez supprimer cette vérification de l'état de santé.",
|
||||
"standaloneHcDeleted": "Vérification de l'état de santé supprimée",
|
||||
"standaloneHcSaved": "Vérification de l'état de santé enregistrée",
|
||||
"standaloneHcColumnHealth": "Santé",
|
||||
"standaloneHcColumnMode": "Mode",
|
||||
"standaloneHcColumnTarget": "Cible",
|
||||
"standaloneHcHealthStateHealthy": "Sain",
|
||||
"standaloneHcHealthStateUnhealthy": "En mauvaise santé",
|
||||
"standaloneHcHealthStateUnknown": "Inconnu",
|
||||
"standaloneHcFilterAnySite": "Tous les nœuds",
|
||||
"standaloneHcFilterAnyResource": "Toutes les ressources",
|
||||
"standaloneHcFilterMode": "Mode",
|
||||
"standaloneHcFilterModeHttp": "HTTP",
|
||||
"standaloneHcFilterModeTcp": "TCP",
|
||||
"standaloneHcFilterModeSnmp": "SNMP",
|
||||
"standaloneHcFilterModePing": "Ping",
|
||||
"standaloneHcFilterHealth": "Santé",
|
||||
"standaloneHcFilterEnabled": "Activé",
|
||||
"standaloneHcFilterEnabledOn": "Activé",
|
||||
"standaloneHcFilterEnabledOff": "Désactivé",
|
||||
"standaloneHcFilterSiteIdFallback": "Site {id}",
|
||||
"standaloneHcFilterResourceIdFallback": "Ressource {id}",
|
||||
"blueprints": "Configs",
|
||||
"blueprintsDescription": "Appliquer les configurations déclaratives et afficher les exécutions précédentes",
|
||||
"blueprintAdd": "Ajouter une Config",
|
||||
@@ -1762,6 +1935,15 @@
|
||||
"healthCheckIntervalMin": "L'intervalle de vérification doit être d'au moins 5 secondes",
|
||||
"healthCheckTimeoutMin": "Le délai doit être d'au moins 1 seconde",
|
||||
"healthCheckRetryMin": "Les tentatives de réessai doivent être d'au moins 1",
|
||||
"healthCheckMode": "Mode de vérification",
|
||||
"healthCheckStrategy": "Stratégie",
|
||||
"healthCheckModeDescription": "Le mode TCP vérifie uniquement la connectivité. Le mode HTTP valide la réponse HTTP.",
|
||||
"healthyThreshold": "Seuil de santé",
|
||||
"healthyThresholdDescription": "Succès consécutifs requis avant de marquer comme sain.",
|
||||
"unhealthyThreshold": "Seuil de non-santé",
|
||||
"unhealthyThresholdDescription": "Echecs consécutifs requis avant de signaler comme non sain.",
|
||||
"healthCheckHealthyThresholdMin": "Le seuil de santé doit être d'au moins 1",
|
||||
"healthCheckUnhealthyThresholdMin": "Le seuil de non-santé doit être d'au moins 1",
|
||||
"httpMethod": "Méthode HTTP",
|
||||
"selectHttpMethod": "Sélectionnez la méthode HTTP",
|
||||
"domainPickerSubdomainLabel": "Sous-domaine",
|
||||
@@ -1821,6 +2003,11 @@
|
||||
"editInternalResourceDialogModePort": "Port",
|
||||
"editInternalResourceDialogModeHost": "Hôte",
|
||||
"editInternalResourceDialogModeCidr": "CIDR",
|
||||
"editInternalResourceDialogModeHttp": "HTTP",
|
||||
"editInternalResourceDialogModeHttps": "HTTPS",
|
||||
"editInternalResourceDialogScheme": "Méthode HTTP",
|
||||
"editInternalResourceDialogEnableSsl": "Activer SSL",
|
||||
"editInternalResourceDialogEnableSslDescription": "Activer le cryptage SSL/TLS pour des connexions HTTPS sécurisées vers la destination.",
|
||||
"editInternalResourceDialogDestination": "Destination",
|
||||
"editInternalResourceDialogDestinationHostDescription": "L'adresse IP ou le nom d'hôte de la ressource sur le réseau du site.",
|
||||
"editInternalResourceDialogDestinationIPDescription": "L'adresse IP ou le nom d'hôte de la ressource sur le réseau du site.",
|
||||
@@ -1836,6 +2023,7 @@
|
||||
"createInternalResourceDialogName": "Nom",
|
||||
"createInternalResourceDialogSite": "Site",
|
||||
"selectSite": "Sélectionner un site...",
|
||||
"multiSitesSelectorSitesCount": "{count, plural, one {# site} other {# sites}}",
|
||||
"noSitesFound": "Aucun site trouvé.",
|
||||
"createInternalResourceDialogProtocol": "Protocole",
|
||||
"createInternalResourceDialogTcp": "TCP",
|
||||
@@ -1864,11 +2052,19 @@
|
||||
"createInternalResourceDialogModePort": "Port",
|
||||
"createInternalResourceDialogModeHost": "Hôte",
|
||||
"createInternalResourceDialogModeCidr": "CIDR",
|
||||
"createInternalResourceDialogModeHttp": "HTTP",
|
||||
"createInternalResourceDialogModeHttps": "HTTPS",
|
||||
"scheme": "Méthode HTTP",
|
||||
"createInternalResourceDialogScheme": "Méthode HTTP",
|
||||
"createInternalResourceDialogEnableSsl": "Activer SSL",
|
||||
"createInternalResourceDialogEnableSslDescription": "Activer le cryptage SSL/TLS pour des connexions HTTPS sécurisées vers la destination.",
|
||||
"createInternalResourceDialogDestination": "Destination",
|
||||
"createInternalResourceDialogDestinationHostDescription": "L'adresse IP ou le nom d'hôte de la ressource sur le réseau du site.",
|
||||
"createInternalResourceDialogDestinationCidrDescription": "La gamme CIDR de la ressource sur le réseau du site.",
|
||||
"createInternalResourceDialogAlias": "Alias",
|
||||
"createInternalResourceDialogAliasDescription": "Un alias DNS interne optionnel pour cette ressource.",
|
||||
"internalResourceDownstreamSchemeRequired": "Un schéma est requis pour les ressources HTTP",
|
||||
"internalResourceHttpPortRequired": "Le port de destination est requis pour les ressources HTTP",
|
||||
"siteConfiguration": "Configuration",
|
||||
"siteAcceptClientConnections": "Accepter les connexions client",
|
||||
"siteAcceptClientConnectionsDescription": "Autoriser les utilisateurs et les clients à accéder aux ressources de ce site. Cela peut être modifié plus tard.",
|
||||
@@ -1993,7 +2189,7 @@
|
||||
"description": "Serveur Pangolin auto-hébergé avec des cloches et des sifflets supplémentaires",
|
||||
"introTitle": "Pangolin auto-hébergé géré",
|
||||
"introDescription": "est une option de déploiement conçue pour les personnes qui veulent de la simplicité et de la fiabilité tout en gardant leurs données privées et auto-hébergées.",
|
||||
"introDetail": "Avec cette option, vous exécutez toujours votre propre nœud Pangolin — vos tunnels, la terminaison SSL et le trafic restent sur votre serveur. La différence est que la gestion et la surveillance sont gérées via notre tableau de bord du cloud, qui déverrouille un certain nombre d'avantages :",
|
||||
"introDetail": "Avec cette option, vous exécutez toujours votre propre nœud Pangolin - vos tunnels, la terminaison SSL et le trafic restent sur votre serveur. La différence est que la gestion et la surveillance sont gérées via notre tableau de bord du cloud, qui déverrouille un certain nombre d'avantages :",
|
||||
"benefitSimplerOperations": {
|
||||
"title": "Opérations plus simples",
|
||||
"description": "Pas besoin de faire tourner votre propre serveur de messagerie ou de configurer des alertes complexes. Vous obtiendrez des contrôles de santé et des alertes de temps d'arrêt par la suite."
|
||||
@@ -2026,7 +2222,7 @@
|
||||
},
|
||||
"internationaldomaindetected": "Domaine international détecté",
|
||||
"willbestoredas": "Sera stocké comme :",
|
||||
"roleMappingDescription": "Détermine comment les rôles sont assignés aux utilisateurs lorsqu'ils se connectent lorsque la fourniture automatique est activée.",
|
||||
"roleMappingDescription": "Déterminez comment les rôles sont attribués aux utilisateurs lorsqu'ils se connectent avec ce fournisseur d'identité.",
|
||||
"selectRole": "Sélectionnez un rôle",
|
||||
"roleMappingExpression": "Expression",
|
||||
"selectRolePlaceholder": "Choisir un rôle",
|
||||
@@ -2118,7 +2314,7 @@
|
||||
"selectDomainForOrgAuthPage": "Sélectionnez un domaine pour la page d'authentification de l'organisation",
|
||||
"domainPickerProvidedDomain": "Domaine fourni",
|
||||
"domainPickerFreeProvidedDomain": "Domaine fourni gratuitement",
|
||||
"domainPickerFreeDomainsPaidFeature": "Les domaines fournis sont une fonctionnalité payante. Abonnez-vous pour obtenir un domaine inclus avec votre plan — plus besoin de fournir le vôtre.",
|
||||
"domainPickerFreeDomainsPaidFeature": "Les domaines fournis sont une fonctionnalité payante. Abonnez-vous pour obtenir un domaine inclus avec votre plan - plus besoin de fournir le vôtre.",
|
||||
"domainPickerVerified": "Vérifié",
|
||||
"domainPickerUnverified": "Non vérifié",
|
||||
"domainPickerManual": "Manuel",
|
||||
@@ -2296,7 +2492,7 @@
|
||||
"alerts": {
|
||||
"commercialUseDisclosure": {
|
||||
"title": "Divulgation d'utilisation",
|
||||
"description": "Sélectionnez le niveau de licence qui correspond exactement à votre utilisation prévue. La Licence Personnelle autorise l'utilisation libre du Logiciel pour des activités commerciales individuelles, non commerciales ou à petite échelle avec un revenu annuel brut inférieur à 100 000 USD. Toute utilisation au-delà de ces limites — y compris l'utilisation au sein d'une entreprise, d'une organisation, ou tout autre environnement générateur de revenus — nécessite une licence d’entreprise valide et le paiement des droits de licence applicables. Tous les utilisateurs, qu'ils soient personnels ou d'entreprise, doivent se conformer aux conditions de licence commerciale Fossorial."
|
||||
"description": "Sélectionnez le niveau de licence qui correspond exactement à votre utilisation prévue. La Licence Personnelle autorise l'utilisation libre du Logiciel pour des activités commerciales individuelles, non commerciales ou à petite échelle avec un revenu annuel brut inférieur à 100 000 USD. Toute utilisation au-delà de ces limites - y compris l'utilisation au sein d'une entreprise, d'une organisation, ou tout autre environnement générateur de revenus - nécessite une licence d’entreprise valide et le paiement des droits de licence applicables. Tous les utilisateurs, qu'ils soient personnels ou d'entreprise, doivent se conformer aux conditions de licence commerciale Fossorial."
|
||||
},
|
||||
"trialPeriodInformation": {
|
||||
"title": "Informations sur la période d'essai",
|
||||
@@ -2428,6 +2624,7 @@
|
||||
"validPassword": "Mot de passe valide",
|
||||
"validEmail": "Valid email",
|
||||
"validSSO": "Valid SSO",
|
||||
"connectedClient": "Client connecté",
|
||||
"resourceBlocked": "Ressource bloquée",
|
||||
"droppedByRule": "Abandonné par la règle",
|
||||
"noSessions": "Aucune session",
|
||||
@@ -2667,6 +2864,10 @@
|
||||
"editInternalResourceDialogDestinationLabel": "Destination",
|
||||
"editInternalResourceDialogDestinationDescription": "Indiquez l'adresse de destination pour la ressource interne. Cela peut être un nom d'hôte, une adresse IP ou une plage CIDR selon le mode sélectionné. Définissez éventuellement un alias DNS interne pour une identification plus facile.",
|
||||
"editInternalResourceDialogPortRestrictionsDescription": "Restreindre l'accès à des ports TCP/UDP spécifiques ou autoriser/bloquer tous les ports.",
|
||||
"createInternalResourceDialogHttpConfiguration": "Configuration HTTP",
|
||||
"createInternalResourceDialogHttpConfigurationDescription": "Choisissez le domaine que les clients utiliseront pour atteindre cette ressource via HTTP ou HTTPS.",
|
||||
"editInternalResourceDialogHttpConfiguration": "Configuration HTTP",
|
||||
"editInternalResourceDialogHttpConfigurationDescription": "Choisissez le domaine que les clients utiliseront pour atteindre cette ressource via HTTP ou HTTPS.",
|
||||
"editInternalResourceDialogTcp": "TCP",
|
||||
"editInternalResourceDialogUdp": "UDP",
|
||||
"editInternalResourceDialogIcmp": "ICMP",
|
||||
@@ -2705,6 +2906,8 @@
|
||||
"maintenancePageMessagePlaceholder": "Nous serons bientôt de retour ! Notre site est actuellement en maintenance planifiée.",
|
||||
"maintenancePageMessageDescription": "Message détaillé expliquant la maintenance",
|
||||
"maintenancePageTimeTitle": "Temps d'achèvement estimé (facultatif)",
|
||||
"privateMaintenanceScreenTitle": "Écran de maintien de service privé",
|
||||
"privateMaintenanceScreenMessage": "Ce domaine est utilisé sur une ressource privée. Veuillez vous connecter à l'aide du client Pangolin pour accéder à cette ressource.",
|
||||
"maintenanceTime": "par exemple, 2 heures, le 1er nov. à 17:00",
|
||||
"maintenanceEstimatedTimeDescription": "Quand vous attendez que la maintenance soit terminée",
|
||||
"editDomain": "Modifier le domaine",
|
||||
@@ -2842,6 +3045,14 @@
|
||||
"httpDestAddTitle": "Ajouter une destination HTTP",
|
||||
"httpDestEditDescription": "Mettre à jour la configuration pour cette destination de streaming d'événements HTTP.",
|
||||
"httpDestAddDescription": "Configurez un nouveau point de terminaison HTTP pour recevoir les événements de votre organisation.",
|
||||
"S3DestEditTitle": "Modifier la destination",
|
||||
"S3DestAddTitle": "Ajouter une destination S3",
|
||||
"S3DestEditDescription": "Mettre à jour la configuration de cette destination de diffusion d'événements S3.",
|
||||
"S3DestAddDescription": "Configurer un nouveau point de terminaison S3 pour recevoir les événements de votre organisation.",
|
||||
"datadogDestEditTitle": "Modifier la destination",
|
||||
"datadogDestAddTitle": "Ajouter une destination Datadog",
|
||||
"datadogDestEditDescription": "Mettre à jour la configuration de cette destination de diffusion d'événements Datadog.",
|
||||
"datadogDestAddDescription": "Configurer un nouveau point de terminaison Datadog pour recevoir les événements de votre organisation.",
|
||||
"httpDestTabSettings": "Réglages",
|
||||
"httpDestTabHeaders": "En-têtes",
|
||||
"httpDestTabBody": "Corps",
|
||||
@@ -2881,7 +3092,7 @@
|
||||
"httpDestFormatJsonArrayTitle": "Tableau JSON",
|
||||
"httpDestFormatJsonArrayDescription": "Une requête par lot, le corps est un tableau JSON. Compatible avec la plupart des webhooks génériques et des datadog.",
|
||||
"httpDestFormatNdjsonTitle": "NDJSON",
|
||||
"httpDestFormatNdjsonDescription": "Une requête par lot, body est un JSON délimité par une nouvelle ligne — un objet par ligne, pas de tableau extérieur. Requis par Splunk HEC, Elastic / OpenSearch, et Grafana Loki.",
|
||||
"httpDestFormatNdjsonDescription": "Une requête par lot, body est un JSON délimité par une nouvelle ligne - un objet par ligne, pas de tableau extérieur. Requis par Splunk HEC, Elastic / OpenSearch, et Grafana Loki.",
|
||||
"httpDestFormatSingleTitle": "Un événement par demande",
|
||||
"httpDestFormatSingleDescription": "Envoie un POST HTTP séparé pour chaque événement individuel. Utilisé uniquement pour les terminaux qui ne peuvent pas gérer des lots.",
|
||||
"httpDestLogTypesTitle": "Types de logs",
|
||||
@@ -2899,5 +3110,37 @@
|
||||
"httpDestUpdatedSuccess": "Destination mise à jour avec succès",
|
||||
"httpDestCreatedSuccess": "Destination créée avec succès",
|
||||
"httpDestUpdateFailed": "Impossible de mettre à jour la destination",
|
||||
"httpDestCreateFailed": "Impossible de créer la destination"
|
||||
"httpDestCreateFailed": "Impossible de créer la destination",
|
||||
"followRedirects": "Suivre les redirections",
|
||||
"followRedirectsDescription": "Suivre automatiquement les redirections HTTP pour les requêtes.",
|
||||
"alertingErrorWebhookUrl": "Veuillez entrer une URL valide pour le webhook.",
|
||||
"healthCheckStrategyHttp": "Valide la connectivité et vérifie le statut de la réponse HTTP.",
|
||||
"healthCheckStrategyTcp": "Vérifie uniquement la connectivité TCP, sans inspecter la réponse.",
|
||||
"healthCheckStrategySnmp": "Effectue une requête SNMP pour vérifier la santé des dispositifs et de l'infrastructure réseau.",
|
||||
"healthCheckStrategyIcmp": "Utilise des requêtes écho ICMP (pings) pour vérifier si une ressource est accessible et réactive.",
|
||||
"healthCheckTabStrategy": "Stratégie",
|
||||
"healthCheckTabConnection": "Connexion",
|
||||
"healthCheckTabAdvanced": "Avancé",
|
||||
"healthCheckStrategyNotAvailable": "Cette stratégie n'est pas disponible. Veuillez contacter le service commercial pour activer cette fonctionnalité.",
|
||||
"uptime30d": "Disponibilité (30j)",
|
||||
"idpAddActionCreateNew": "Créer un nouveau fournisseur d'identité",
|
||||
"idpAddActionImportFromOrg": "Importer d'une autre organisation",
|
||||
"idpImportDialogTitle": "Importer le fournisseur d'identité",
|
||||
"idpImportDialogDescription": "Choisissez un fournisseur d'identités d'une organisation où vous êtes administrateur. Il sera lié à cette organisation.",
|
||||
"idpImportSearchPlaceholder": "Recherche par nom d'organisation ou de fournisseur...",
|
||||
"idpImportEmpty": "Aucun fournisseur d'identités trouvé.",
|
||||
"idpImportedDescription": "Fournisseur d'identités importé avec succès.",
|
||||
"idpDeleteGlobalQuestion": "Êtes-vous sûr de vouloir supprimer définitivement ce fournisseur d'identités?",
|
||||
"idpDeleteGlobalDescription": "Cela supprimera définitivement le fournisseur d'identités de toutes les organisations auxquelles il est associé.",
|
||||
"idpUnassociateTitle": "Dissocier le fournisseur d'identité",
|
||||
"idpUnassociateQuestion": "Êtes-vous sûr de vouloir dissocier ce fournisseur d'identités de cette organisation?",
|
||||
"idpUnassociateDescription": "Tous les utilisateurs associés à ce fournisseur d'identités seront retirés de cette organisation, mais le fournisseur d'identités continuera d'exister pour d'autres organisations associées.",
|
||||
"idpUnassociateConfirm": "Confirmer la dissociation du fournisseur d'identités",
|
||||
"idpUnassociateWarning": "Cela ne peut pas être annulé pour cette organisation.",
|
||||
"idpUnassociatedDescription": "Fournisseur d'identités dissocié de cette organisation avec succès",
|
||||
"idpUnassociateMenu": "Dissocier",
|
||||
"idpDeleteAllOrgsMenu": "Supprimer",
|
||||
"publicIpEndpoint": "Point de terminaison",
|
||||
"lastTriggeredAt": "Dernier déclenchement",
|
||||
"reject": "Rejeter"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"contactSalesEnable": "Contatta le vendite per abilitare questa funzionalità.",
|
||||
"contactSalesBookDemo": "Prenota una demo",
|
||||
"contactSalesOr": "o",
|
||||
"contactSalesContactUs": "contattaci",
|
||||
"setupCreate": "Creare l'organizzazione, il sito e le risorse",
|
||||
"headerAuthCompatibilityInfo": "Abilita questa funzionalità per forzare una risposta 401 Unauthorized quando manca un token di autenticazione. Questo è richiesto per browser o librerie HTTP specifiche che non inviano credenziali senza una sfida del server.",
|
||||
"headerAuthCompatibility": "Compatibilità estesa",
|
||||
@@ -19,6 +23,14 @@
|
||||
"componentsInvalidKey": "Rilevata chiave di licenza non valida o scaduta. Segui i termini di licenza per continuare a utilizzare tutte le funzionalità.",
|
||||
"dismiss": "Ignora",
|
||||
"subscriptionViolationMessage": "Hai superato i tuoi limiti per il tuo piano attuale. Correggi il problema rimuovendo siti, utenti o altre risorse per rimanere all'interno del tuo piano.",
|
||||
"trialBannerMessage": "Il tuo periodo di prova scade tra {countdown}. Aggiorna per mantenere l'accesso.",
|
||||
"trialBannerExpired": "Il tuo periodo di prova è scaduto. Aggiorna ora per ripristinare l'accesso.",
|
||||
"trialActive": "Prova Gratuita Attiva",
|
||||
"trialExpired": "Prova scaduta",
|
||||
"trialHasEnded": "La tua prova è terminata.",
|
||||
"trialDaysRemaining": "{count, plural, one {# giorno rimanente} other {# giorni rimanenti}}",
|
||||
"trialDaysLeftShort": "{days}g rimasti nella prova",
|
||||
"trialGoToBilling": "Vai alla pagina di fatturazione",
|
||||
"subscriptionViolationViewBilling": "Visualizza fatturazione",
|
||||
"componentsLicenseViolation": "Violazione della licenza: Questo server sta usando i siti {usedSites} che superano il suo limite concesso in licenza per i siti {maxSites} . Segui i termini di licenza per continuare a usare tutte le funzionalità.",
|
||||
"componentsSupporterMessage": "Grazie per aver supportato Pangolin come {tier}!",
|
||||
@@ -267,8 +279,11 @@
|
||||
"orgMissing": "ID Organizzazione Mancante",
|
||||
"orgMissingMessage": "Impossibile rigenerare l'invito senza un ID organizzazione.",
|
||||
"accessUsersManage": "Gestisci Utenti",
|
||||
"accessUserManage": "Gestisci Utente",
|
||||
"accessUsersDescription": "Invita e gestisci gli utenti con accesso a questa organizzazione",
|
||||
"accessUsersSearch": "Cerca utenti...",
|
||||
"accessUsersRoleFilterCount": "{count, plural, one {# ruolo} other {# ruoli}}",
|
||||
"accessUsersRoleFilterClear": "Cancella filtri ruolo",
|
||||
"accessUserCreate": "Crea Utente",
|
||||
"accessUserRemove": "Rimuovi Utente",
|
||||
"username": "Nome utente",
|
||||
@@ -898,6 +913,7 @@
|
||||
"idpDisplayName": "Un nome visualizzato per questo provider di identità",
|
||||
"idpAutoProvisionUsers": "Provisioning Automatico Utenti",
|
||||
"idpAutoProvisionUsersDescription": "Quando abilitato, gli utenti verranno creati automaticamente nel sistema al primo accesso con la possibilità di mappare gli utenti a ruoli e organizzazioni.",
|
||||
"idpAutoProvisionConfigureAfterCreate": "Puoi configurare le impostazioni di auto fornitura una volta creato il provider di identità.",
|
||||
"licenseBadge": "EE",
|
||||
"idpType": "Tipo di Provider",
|
||||
"idpTypeDescription": "Seleziona il tipo di provider di identità che desideri configurare",
|
||||
@@ -949,7 +965,7 @@
|
||||
"defaultMappingsRole": "Mappatura Ruolo Predefinito",
|
||||
"defaultMappingsRoleDescription": "JMESPath per estrarre informazioni sul ruolo dal token ID. Il risultato di questa espressione deve restituire il nome del ruolo come definito nell'organizzazione come stringa.",
|
||||
"defaultMappingsOrg": "Mappatura Organizzazione Predefinita",
|
||||
"defaultMappingsOrgDescription": "JMESPath per estrarre informazioni sull'organizzazione dal token ID. Questa espressione deve restituire l'ID dell'organizzazione o true affinché l'utente possa accedere all'organizzazione.",
|
||||
"defaultMappingsOrgDescription": "Quando impostata, questa espressione deve restituire l'ID dell'organizzazione o true affinché l'utente possa accedere a quell'organizzazione. Quando non impostata, è sufficiente definire una mappatura di ruoli: l'utente è autorizzato se esiste una mappatura di ruolo valida per loro all'interno dell'organizzazione.",
|
||||
"defaultMappingsSubmit": "Salva Mappature Predefinite",
|
||||
"orgPoliciesEdit": "Modifica Politica Organizzazione",
|
||||
"org": "Organizzazione",
|
||||
@@ -1256,6 +1272,7 @@
|
||||
"actionViewLogs": "Visualizza Log",
|
||||
"noneSelected": "Nessuna selezione",
|
||||
"orgNotFound2": "Nessuna organizzazione trovata.",
|
||||
"search": "Cerca…",
|
||||
"searchPlaceholder": "Cerca...",
|
||||
"emptySearchOptions": "Nessuna opzione trovata",
|
||||
"create": "Crea",
|
||||
@@ -1340,10 +1357,166 @@
|
||||
"sidebarGeneral": "Gestisci",
|
||||
"sidebarLogAndAnalytics": "Log & Analytics",
|
||||
"sidebarBluePrints": "Progetti",
|
||||
"sidebarAlerting": "Allerta",
|
||||
"sidebarHealthChecks": "Controlli di salute",
|
||||
"sidebarOrganization": "Organizzazione",
|
||||
"sidebarManagement": "Gestione",
|
||||
"sidebarBillingAndLicenses": "Fatturazione E Licenze",
|
||||
"sidebarLogsAnalytics": "Analisi",
|
||||
"alertingTitle": "Allerta",
|
||||
"alertingDescription": "Definisci fonti, trigger e azioni per le notifiche",
|
||||
"alertingRules": "Regole di allerta",
|
||||
"alertingSearchRules": "Cerca regole…",
|
||||
"alertingAddRule": "Crea Regola",
|
||||
"alertingColumnSource": "Fonte",
|
||||
"alertingColumnTrigger": "Trigger",
|
||||
"alertingColumnActions": "Azioni",
|
||||
"alertingColumnEnabled": "Abilitato",
|
||||
"alertingDeleteQuestion": "Si prega di confermare di voler eliminare questa regola di allerta.",
|
||||
"alertingDeleteRule": "Elimina regola di allerta",
|
||||
"alertingRuleDeleted": "Regola di allerta eliminata",
|
||||
"alertingRuleSaved": "Regola di allerta salvata",
|
||||
"alertingRuleSavedCreatedDescription": "La tua nuova regola di allerta è stata creata. Puoi continuare a modificarla su questa pagina.",
|
||||
"alertingRuleSavedUpdatedDescription": "Le modifiche a questa regola di allerta sono state salvate.",
|
||||
"alertingEditRule": "Modifica Regola di Allerta",
|
||||
"alertingCreateRule": "Crea Regola di Allerta",
|
||||
"alertingRuleCredenzaDescription": "Scegli cosa monitorare, quando attivare e come notificare",
|
||||
"alertingRuleNamePlaceholder": "Sito di produzione giù",
|
||||
"alertingRuleEnabled": "Regola abilitata",
|
||||
"alertingSectionSource": "Fonte",
|
||||
"alertingSourceType": "Tipo Di Fonte",
|
||||
"alertingSourceSite": "Sito",
|
||||
"alertingSourceHealthCheck": "Controllo di Salute",
|
||||
"alertingPickSites": "Siti",
|
||||
"alertingPickHealthChecks": "Controlli di Salute",
|
||||
"alertingPickResources": "Risorse",
|
||||
"alertingAllSites": "Tutti i Siti",
|
||||
"alertingAllSitesDescription": "L'allerta scatta per qualsiasi sito",
|
||||
"alertingSpecificSites": "Siti Specifici",
|
||||
"alertingSpecificSitesDescription": "Scegli siti specifici da monitorare",
|
||||
"alertingAllHealthChecks": "Tutti i Controlli di Salute",
|
||||
"alertingAllHealthChecksDescription": "L'allerta scatta per qualsiasi controllo di salute",
|
||||
"alertingSpecificHealthChecks": "Controlli di Salute Specifici",
|
||||
"alertingSpecificHealthChecksDescription": "Scegli controlli di salute specifici da monitorare",
|
||||
"alertingAllResources": "Tutte le Risorse",
|
||||
"alertingAllResourcesDescription": "L'allerta scatta per qualsiasi risorsa",
|
||||
"alertingSpecificResources": "Risorse Specifiche",
|
||||
"alertingSpecificResourcesDescription": "Scegli risorse specifiche da monitorare",
|
||||
"alertingSelectResources": "Seleziona risorse…",
|
||||
"alertingResourcesSelected": "{count} risorse selezionate",
|
||||
"alertingResourcesEmpty": "Nessuna risorsa con target nei primi 10 risultati.",
|
||||
"alertingSectionTrigger": "Trigger",
|
||||
"alertingTrigger": "Quando allertare",
|
||||
"alertingTriggerSiteOnline": "Sito online",
|
||||
"alertingTriggerSiteOffline": "Sito offline",
|
||||
"alertingTriggerSiteToggle": "I cambiamenti di stato del sito",
|
||||
"alertingTriggerHcHealthy": "Controllo di Salute Sano",
|
||||
"alertingTriggerHcUnhealthy": "Controllo di Salute Non Sano",
|
||||
"alertingTriggerHcToggle": "I cambiamenti di stato del controllo di salute",
|
||||
"alertingTriggerResourceHealthy": "Risorsa in buona salute",
|
||||
"alertingTriggerResourceUnhealthy": "Risorsa in cattiva salute",
|
||||
"alertingSearchHealthChecks": "Cerca controlli di salute…",
|
||||
"alertingHealthChecksEmpty": "Nessun controllo di salute disponibile.",
|
||||
"alertingTriggerResourceToggle": "Variazioni di stato della risorsa",
|
||||
"alertingSourceResource": "Fonte",
|
||||
"alertingSectionActions": "Azioni",
|
||||
"alertingAddAction": "Aggiungi Azione",
|
||||
"alertingActionNotify": "Email",
|
||||
"alertingActionNotifyDescription": "Invia notifiche email agli utenti o ai ruoli",
|
||||
"alertingActionWebhook": "Webhook",
|
||||
"alertingActionWebhookDescription": "Invia una richiesta HTTP a un endpoint personalizzato",
|
||||
"alertingExternalIntegration": "Integrazione esterna",
|
||||
"alertingExternalPagerDutyDescription": "Invia avvisi a PagerDuty per la gestione degli incidenti",
|
||||
"alertingExternalOpsgenieDescription": "Indirizza avvisi a Opsgenie per la gestione delle chiamate",
|
||||
"alertingExternalServiceNowDescription": "Crea incidenti ServiceNow dagli eventi di allerta",
|
||||
"alertingExternalIncidentIoDescription": "Attiva i flussi di lavoro di Incident.io dagli eventi di allerta",
|
||||
"alertingActionType": "Tipo di azione",
|
||||
"alertingNotifyUsers": "Utenti",
|
||||
"alertingNotifyRoles": "Ruoli",
|
||||
"alertingNotifyEmails": "Indirizzi email",
|
||||
"alertingEmailPlaceholder": "Aggiungi email e premi Invio",
|
||||
"alertingWebhookMethod": "Metodo HTTP",
|
||||
"alertingWebhookSecret": "Segreto di firma (opzionale)",
|
||||
"alertingWebhookSecretPlaceholder": "Segreto HMAC",
|
||||
"alertingWebhookHeaders": "Intestazioni",
|
||||
"alertingAddHeader": "Aggiungi intestazione",
|
||||
"alertingSelectSites": "Seleziona siti…",
|
||||
"alertingSitesSelected": "{count} siti selezionati",
|
||||
"alertingSelectHealthChecks": "Seleziona controlli di salute…",
|
||||
"alertingHealthChecksSelected": "{count} controlli di salute selezionati",
|
||||
"alertingNoHealthChecks": "Nessun obiettivo con controlli di salute abilitati",
|
||||
"alertingHealthCheckStub": "Selezione fonte controllo di salute non ancora collegata - puoi comunque configurare trigger e azioni.",
|
||||
"alertingSelectUsers": "Seleziona utenti…",
|
||||
"alertingUsersSelected": "{count} utenti selezionati",
|
||||
"alertingSelectRoles": "Seleziona ruoli…",
|
||||
"alertingRolesSelected": "{count} ruoli selezionati",
|
||||
"alertingSummarySites": "Siti ({count})",
|
||||
"alertingSummaryAllSites": "Tutti i siti",
|
||||
"alertingSummaryHealthChecks": "Controlli di Salute ({count})",
|
||||
"alertingSummaryAllHealthChecks": "Tutti i controlli di salute",
|
||||
"alertingSummaryResources": "Risorse ({count})",
|
||||
"alertingSummaryAllResources": "Tutte le risorse",
|
||||
"alertingErrorNameRequired": "Inserisci un nome",
|
||||
"alertingErrorActionsMin": "Aggiungi almeno un'azione",
|
||||
"alertingErrorPickSites": "Seleziona almeno un sito",
|
||||
"alertingErrorPickHealthChecks": "Seleziona almeno un controllo di salute",
|
||||
"alertingErrorPickResources": "Seleziona almeno una risorsa",
|
||||
"alertingErrorTriggerSite": "Scegli un trigger sito",
|
||||
"alertingErrorTriggerHealth": "Scegli un trigger controllo di salute",
|
||||
"alertingErrorTriggerResource": "Scegli un trigger risorsa",
|
||||
"alertingErrorNotifyRecipients": "Seleziona utenti, ruoli o almeno un indirizzo email",
|
||||
"alertingConfigureSource": "Configura Fonte",
|
||||
"alertingConfigureTrigger": "Configura Trigger",
|
||||
"alertingConfigureActions": "Configura Azioni",
|
||||
"alertingBackToRules": "Torna alle Regole",
|
||||
"alertingRuleCooldown": "Tempo di riposo (secondi)",
|
||||
"alertingRuleCooldownDescription": "Tempo minimo tra avvisi ripetuti per la stessa regola. Imposta a 0 per attivare ogni volta.",
|
||||
"alertingDraftBadge": "Bozza - salva per memorizzare questa regola",
|
||||
"alertingSidebarHint": "Clicca su un passaggio nella tela per modificarlo qui.",
|
||||
"alertingGraphCanvasTitle": "Flusso della regola",
|
||||
"alertingGraphCanvasDescription": "Panoramica visiva di fonte, trigger e azioni. Seleziona un nodo per modificarlo nel pannello.",
|
||||
"alertingNodeNotConfigured": "Non ancora configurato",
|
||||
"alertingNodeActionsCount": "{count, plural, one {# azione} other {# azioni}}",
|
||||
"alertingNodeRoleSource": "Fonte",
|
||||
"alertingNodeRoleTrigger": "Trigger",
|
||||
"alertingNodeRoleAction": "Azione",
|
||||
"alertingTabRules": "Regole di Allerta",
|
||||
"alertingTabHealthChecks": "Controlli di Salute",
|
||||
"alertingRulesBannerTitle": "Ricevi Notifiche",
|
||||
"alertingRulesBannerDescription": "Ogni regola collega ciò che monitorare (un sito, controllo di salute o risorsa), quando attivare (ad esempio offline o non sano) e come notificare il tuo team via email, webhook o integrazioni. Usa questo elenco per creare, abilitare e gestire queste regole.",
|
||||
"alertingHealthChecksBannerTitle": "Monitora Salute & Risorse",
|
||||
"alertingHealthChecksBannerDescription": "I controlli di salute sono monitor HTTP o TCP che definisci una volta. Puoi poi usarli come fonti nelle regole di allerta così ricevi avvisi quando un obiettivo diventa sano o non sano. I controlli di salute sulle risorse appaiono anche qui.",
|
||||
"standaloneHcTableTitle": "Controlli di Salute",
|
||||
"standaloneHcSearchPlaceholder": "Cerca controlli di salute…",
|
||||
"standaloneHcAddButton": "Crea Controllo di Salute",
|
||||
"standaloneHcCreateTitle": "Crea Controllo di Salute",
|
||||
"standaloneHcEditTitle": "Modifica Controllo di Salute",
|
||||
"standaloneHcDescription": "Configura un controllo di salute HTTP o TCP da utilizzare nelle regole di allerta.",
|
||||
"standaloneHcNameLabel": "Nome",
|
||||
"standaloneHcNamePlaceholder": "Il mio Monitor HTTP",
|
||||
"standaloneHcDeleteTitle": "Elimina controllo di salute",
|
||||
"standaloneHcDeleteQuestion": "Si prega di confermare di voler eliminare questo controllo di integrità.",
|
||||
"standaloneHcDeleted": "Controllo di salute eliminato",
|
||||
"standaloneHcSaved": "Controllo di salute salvato",
|
||||
"standaloneHcColumnHealth": "Salute",
|
||||
"standaloneHcColumnMode": "Modalità",
|
||||
"standaloneHcColumnTarget": "Target",
|
||||
"standaloneHcHealthStateHealthy": "Sano",
|
||||
"standaloneHcHealthStateUnhealthy": "Non Sano",
|
||||
"standaloneHcHealthStateUnknown": "Sconosciuto",
|
||||
"standaloneHcFilterAnySite": "Tutti i siti",
|
||||
"standaloneHcFilterAnyResource": "Tutte le risorse",
|
||||
"standaloneHcFilterMode": "Modalità",
|
||||
"standaloneHcFilterModeHttp": "HTTP",
|
||||
"standaloneHcFilterModeTcp": "TCP",
|
||||
"standaloneHcFilterModeSnmp": "SNMP",
|
||||
"standaloneHcFilterModePing": "Ping",
|
||||
"standaloneHcFilterHealth": "Salute",
|
||||
"standaloneHcFilterEnabled": "Abilitato",
|
||||
"standaloneHcFilterEnabledOn": "Abilitato",
|
||||
"standaloneHcFilterEnabledOff": "Disabilitato",
|
||||
"standaloneHcFilterSiteIdFallback": "Sito {id}",
|
||||
"standaloneHcFilterResourceIdFallback": "Risorsa {id}",
|
||||
"blueprints": "Progetti",
|
||||
"blueprintsDescription": "Applica le configurazioni dichiarative e visualizza le partite precedenti",
|
||||
"blueprintAdd": "Aggiungi Progetto",
|
||||
@@ -1762,6 +1935,15 @@
|
||||
"healthCheckIntervalMin": "L'intervallo del controllo deve essere almeno di 5 secondi",
|
||||
"healthCheckTimeoutMin": "Il timeout deve essere di almeno 1 secondo",
|
||||
"healthCheckRetryMin": "I tentativi di riprova devono essere almeno 1",
|
||||
"healthCheckMode": "Verifica Modalità",
|
||||
"healthCheckStrategy": "Strategia",
|
||||
"healthCheckModeDescription": "La modalità TCP verifica solo la connettività. La modalità HTTP valida la risposta HTTP.",
|
||||
"healthyThreshold": "Soglia di salute",
|
||||
"healthyThresholdDescription": "Successi consecutivi necessari prima di contrassegnare come sano.",
|
||||
"unhealthyThreshold": "Soglia non sana",
|
||||
"unhealthyThresholdDescription": "Fallimenti consecutivi richiesti prima di contrassegnare come non sano.",
|
||||
"healthCheckHealthyThresholdMin": "La soglia di salute deve essere almeno 1",
|
||||
"healthCheckUnhealthyThresholdMin": "La soglia non sana deve essere almeno 1",
|
||||
"httpMethod": "Metodo HTTP",
|
||||
"selectHttpMethod": "Seleziona metodo HTTP",
|
||||
"domainPickerSubdomainLabel": "Sottodominio",
|
||||
@@ -1821,6 +2003,11 @@
|
||||
"editInternalResourceDialogModePort": "Porta",
|
||||
"editInternalResourceDialogModeHost": "Host",
|
||||
"editInternalResourceDialogModeCidr": "CIDR",
|
||||
"editInternalResourceDialogModeHttp": "HTTP",
|
||||
"editInternalResourceDialogModeHttps": "HTTPS",
|
||||
"editInternalResourceDialogScheme": "Metodo HTTP",
|
||||
"editInternalResourceDialogEnableSsl": "Abilitare SSL",
|
||||
"editInternalResourceDialogEnableSslDescription": "Abilita la crittografia SSL/TLS per connessioni HTTPS sicure alla destinazione.",
|
||||
"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.",
|
||||
@@ -1836,6 +2023,7 @@
|
||||
"createInternalResourceDialogName": "Nome",
|
||||
"createInternalResourceDialogSite": "Sito",
|
||||
"selectSite": "Seleziona sito...",
|
||||
"multiSitesSelectorSitesCount": "{count, plural, one {# sito} other {# siti}}",
|
||||
"noSitesFound": "Nessun sito trovato.",
|
||||
"createInternalResourceDialogProtocol": "Protocollo",
|
||||
"createInternalResourceDialogTcp": "TCP",
|
||||
@@ -1864,11 +2052,19 @@
|
||||
"createInternalResourceDialogModePort": "Porta",
|
||||
"createInternalResourceDialogModeHost": "Host",
|
||||
"createInternalResourceDialogModeCidr": "CIDR",
|
||||
"createInternalResourceDialogModeHttp": "HTTP",
|
||||
"createInternalResourceDialogModeHttps": "HTTPS",
|
||||
"scheme": "Metodo HTTP",
|
||||
"createInternalResourceDialogScheme": "Metodo HTTP",
|
||||
"createInternalResourceDialogEnableSsl": "Abilitare SSL",
|
||||
"createInternalResourceDialogEnableSslDescription": "Abilita la crittografia SSL/TLS per connessioni HTTPS sicure alla destinazione.",
|
||||
"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.",
|
||||
"internalResourceDownstreamSchemeRequired": "Il metodo è richiesto per risorse HTTP",
|
||||
"internalResourceHttpPortRequired": "Porta di destinazione richiesta per risorse HTTP",
|
||||
"siteConfiguration": "Configurazione",
|
||||
"siteAcceptClientConnections": "Accetta Connessioni Client",
|
||||
"siteAcceptClientConnectionsDescription": "Consenti ai dispositivi utente e ai client di accedere alle risorse di questo sito. Questo può essere modificato in seguito.",
|
||||
@@ -1993,7 +2189,7 @@
|
||||
"description": "Server Pangolin self-hosted più affidabile e a bassa manutenzione con campanelli e fischietti extra",
|
||||
"introTitle": "Managed Self-Hosted Pangolin",
|
||||
"introDescription": "è un'opzione di distribuzione progettata per le persone che vogliono la semplicità e l'affidabilità extra mantenendo i loro dati privati e self-hosted.",
|
||||
"introDetail": "Con questa opzione, esegui ancora il tuo nodo Pangolin — i tunnel, la terminazione SSL e il traffico rimangono tutti sul tuo server. La differenza è che la gestione e il monitoraggio sono gestiti attraverso il nostro cruscotto cloud, che sblocca una serie di vantaggi:",
|
||||
"introDetail": "Con questa opzione, esegui ancora il tuo nodo Pangolin - i tunnel, la terminazione SSL e il traffico rimangono tutti sul tuo server. La differenza è che la gestione e il monitoraggio sono gestiti attraverso il nostro cruscotto cloud, che sblocca una serie di vantaggi:",
|
||||
"benefitSimplerOperations": {
|
||||
"title": "Operazioni più semplici",
|
||||
"description": "Non è necessario eseguire il proprio server di posta o impostare un avviso complesso. Otterrai controlli di salute e avvisi di inattività fuori dalla casella."
|
||||
@@ -2026,7 +2222,7 @@
|
||||
},
|
||||
"internationaldomaindetected": "Dominio Internazionale Rilevato",
|
||||
"willbestoredas": "Verrà conservato come:",
|
||||
"roleMappingDescription": "Determinare come i ruoli sono assegnati agli utenti quando accedono quando è abilitata la fornitura automatica.",
|
||||
"roleMappingDescription": "Determina come i ruoli vengono assegnati agli utenti quando si accede con questo provider di identità.",
|
||||
"selectRole": "Seleziona un ruolo",
|
||||
"roleMappingExpression": "Espressione",
|
||||
"selectRolePlaceholder": "Scegli un ruolo",
|
||||
@@ -2118,7 +2314,7 @@
|
||||
"selectDomainForOrgAuthPage": "Seleziona un dominio per la pagina di autenticazione dell'organizzazione",
|
||||
"domainPickerProvidedDomain": "Dominio Fornito",
|
||||
"domainPickerFreeProvidedDomain": "Dominio Fornito Gratuito",
|
||||
"domainPickerFreeDomainsPaidFeature": "I domini forniti sono una funzionalità a pagamento. Abbonati per ricevere un dominio incluso con il tuo piano — non è necessario portare il proprio.",
|
||||
"domainPickerFreeDomainsPaidFeature": "I domini forniti sono una funzionalità a pagamento. Abbonati per ricevere un dominio incluso con il tuo piano - non è necessario portare il proprio.",
|
||||
"domainPickerVerified": "Verificato",
|
||||
"domainPickerUnverified": "Non Verificato",
|
||||
"domainPickerManual": "Manuale",
|
||||
@@ -2296,7 +2492,7 @@
|
||||
"alerts": {
|
||||
"commercialUseDisclosure": {
|
||||
"title": "Trasparenza Di Utilizzo",
|
||||
"description": "Seleziona il livello di licenza che rispecchia accuratamente il tuo utilizzo previsto. La Licenza Personale consente l'uso gratuito del Software per le attività commerciali individuali, non commerciali o su piccola scala con entrate lorde annue inferiori a $100.000 USD. Qualsiasi uso oltre questi limiti — compreso l'uso all'interno di un'azienda, organizzazione, o altro ambiente generatore di entrate — richiede una licenza Enterprise valida e il pagamento della tassa di licenza applicabile. Tutti gli utenti, siano essi personali o aziendali, devono rispettare i termini di licenza commerciale Fossorial."
|
||||
"description": "Seleziona il livello di licenza che rispecchia accuratamente il tuo utilizzo previsto. La Licenza Personale consente l'uso gratuito del Software per le attività commerciali individuali, non commerciali o su piccola scala con entrate lorde annue inferiori a $100.000 USD. Qualsiasi uso oltre questi limiti - compreso l'uso all'interno di un'azienda, organizzazione, o altro ambiente generatore di entrate - richiede una licenza Enterprise valida e il pagamento della tassa di licenza applicabile. Tutti gli utenti, siano essi personali o aziendali, devono rispettare i termini di licenza commerciale Fossorial."
|
||||
},
|
||||
"trialPeriodInformation": {
|
||||
"title": "Informazioni Periodo Di Prova",
|
||||
@@ -2428,6 +2624,7 @@
|
||||
"validPassword": "Password Valida",
|
||||
"validEmail": "Valid email",
|
||||
"validSSO": "Valid SSO",
|
||||
"connectedClient": "Cliente Connesso",
|
||||
"resourceBlocked": "Risorsa Bloccata",
|
||||
"droppedByRule": "Eliminato dalla regola",
|
||||
"noSessions": "Nessuna Sessione",
|
||||
@@ -2667,6 +2864,10 @@
|
||||
"editInternalResourceDialogDestinationLabel": "Destinazione",
|
||||
"editInternalResourceDialogDestinationDescription": "Specifica l'indirizzo di destinazione per la risorsa interna. Può essere un hostname, indirizzo IP o un intervallo CIDR a seconda della modalità selezionata. Opzionalmente imposta un alias DNS interno per una più facile identificazione.",
|
||||
"editInternalResourceDialogPortRestrictionsDescription": "Limita l'accesso a porte TCP/UDP specifiche o consenti/blocca tutte le porte.",
|
||||
"createInternalResourceDialogHttpConfiguration": "Configurazione HTTP",
|
||||
"createInternalResourceDialogHttpConfigurationDescription": "Scegli il dominio che i clienti utilizzeranno per accedere a questa risorsa tramite HTTP o HTTPS.",
|
||||
"editInternalResourceDialogHttpConfiguration": "Configurazione HTTP",
|
||||
"editInternalResourceDialogHttpConfigurationDescription": "Scegli il dominio che i clienti utilizzeranno per accedere a questa risorsa tramite HTTP o HTTPS.",
|
||||
"editInternalResourceDialogTcp": "TCP",
|
||||
"editInternalResourceDialogUdp": "UDP",
|
||||
"editInternalResourceDialogIcmp": "ICMP",
|
||||
@@ -2705,6 +2906,8 @@
|
||||
"maintenancePageMessagePlaceholder": "Torneremo presto! Il nostro sito è attualmente in manutenzione programmata.",
|
||||
"maintenancePageMessageDescription": "Messaggio dettagliato che spiega la manutenzione",
|
||||
"maintenancePageTimeTitle": "Tempo di Completamento Stimato (Opzionale)",
|
||||
"privateMaintenanceScreenTitle": "Schermo segnaposto privato",
|
||||
"privateMaintenanceScreenMessage": "Questo dominio è utilizzato su una risorsa privata. Connettiti usando il client Pangolin per accedere a questa risorsa.",
|
||||
"maintenanceTime": "es. 2 ore, 1 novembre alle 17:00",
|
||||
"maintenanceEstimatedTimeDescription": "Quando prevedi che la manutenzione sarà completata",
|
||||
"editDomain": "Modifica Dominio",
|
||||
@@ -2842,6 +3045,14 @@
|
||||
"httpDestAddTitle": "Aggiungi Destinazione HTTP",
|
||||
"httpDestEditDescription": "Aggiorna la configurazione per questa destinazione di streaming di eventi HTTP.",
|
||||
"httpDestAddDescription": "Configura un nuovo endpoint HTTP per ricevere gli eventi della tua organizzazione.",
|
||||
"S3DestEditTitle": "Modifica Destinazione",
|
||||
"S3DestAddTitle": "Aggiungi Destinazione S3",
|
||||
"S3DestEditDescription": "Aggiorna la configurazione per questa destinazione di streaming eventi S3.",
|
||||
"S3DestAddDescription": "Configura un nuovo endpoint S3 per ricevere gli eventi della tua organizzazione.",
|
||||
"datadogDestEditTitle": "Modifica Destinazione",
|
||||
"datadogDestAddTitle": "Aggiungi Destinazione Datadog",
|
||||
"datadogDestEditDescription": "Aggiorna la configurazione per questa destinazione di streaming eventi Datadog.",
|
||||
"datadogDestAddDescription": "Configura un nuovo endpoint Datadog per ricevere gli eventi della tua organizzazione.",
|
||||
"httpDestTabSettings": "Impostazioni",
|
||||
"httpDestTabHeaders": "Intestazioni",
|
||||
"httpDestTabBody": "Corpo",
|
||||
@@ -2881,7 +3092,7 @@
|
||||
"httpDestFormatJsonArrayTitle": "JSON Array",
|
||||
"httpDestFormatJsonArrayDescription": "Una richiesta per lotto, corpo è un array JSON. Compatibile con la maggior parte dei webhooks generici e Datadog.",
|
||||
"httpDestFormatNdjsonTitle": "NDJSON",
|
||||
"httpDestFormatNdjsonDescription": "Una richiesta per lotto, corpo è newline-delimited JSON — un oggetto per linea, nessun array esterno. Richiesto da Splunk HEC, Elastic / OpenSearch, e Grafana Loki.",
|
||||
"httpDestFormatNdjsonDescription": "Una richiesta per lotto, corpo è newline-delimited JSON - un oggetto per linea, nessun array esterno. Richiesto da Splunk HEC, Elastic / OpenSearch, e Grafana Loki.",
|
||||
"httpDestFormatSingleTitle": "Un Evento Per Richiesta",
|
||||
"httpDestFormatSingleDescription": "Invia un HTTP POST separato per ogni singolo evento. Usa solo per gli endpoint che non possono gestire i batch.",
|
||||
"httpDestLogTypesTitle": "Tipi Di Log",
|
||||
@@ -2899,5 +3110,37 @@
|
||||
"httpDestUpdatedSuccess": "Destinazione aggiornata con successo",
|
||||
"httpDestCreatedSuccess": "Destinazione creata con successo",
|
||||
"httpDestUpdateFailed": "Impossibile aggiornare la destinazione",
|
||||
"httpDestCreateFailed": "Impossibile creare la destinazione"
|
||||
"httpDestCreateFailed": "Impossibile creare la destinazione",
|
||||
"followRedirects": "Segui i reindirizzamenti",
|
||||
"followRedirectsDescription": "Segui automaticamente i reindirizzamenti HTTP per le richieste.",
|
||||
"alertingErrorWebhookUrl": "Inserisci un URL valido per il webhook.",
|
||||
"healthCheckStrategyHttp": "Convalida la connettività e controlla lo stato della risposta HTTP.",
|
||||
"healthCheckStrategyTcp": "Verifica solo la connettività TCP, senza controllare la risposta.",
|
||||
"healthCheckStrategySnmp": "Effettua una richiesta SNMP per controllare la salute di dispositivi di rete e infrastrutture.",
|
||||
"healthCheckStrategyIcmp": "Utilizza richieste ICMP echo (ping) per verificare se una risorsa è raggiungibile e reattiva.",
|
||||
"healthCheckTabStrategy": "Strategia",
|
||||
"healthCheckTabConnection": "Connessione",
|
||||
"healthCheckTabAdvanced": "Avanzato",
|
||||
"healthCheckStrategyNotAvailable": "Questa strategia non è disponibile. Contatta le vendite per abilitare questa funzionalità.",
|
||||
"uptime30d": "Uptime (30d)",
|
||||
"idpAddActionCreateNew": "Crea nuovo provider di identità",
|
||||
"idpAddActionImportFromOrg": "Importa da un'altra organizzazione",
|
||||
"idpImportDialogTitle": "Importa Provider di Identità",
|
||||
"idpImportDialogDescription": "Scegli un provider di identità da un'organizzazione di cui sei amministratore. Verrà collegato a questa organizzazione.",
|
||||
"idpImportSearchPlaceholder": "Cerca per nome organizzazione o provider...",
|
||||
"idpImportEmpty": "Nessun provider di identità trovato.",
|
||||
"idpImportedDescription": "Provider di identità importato con successo.",
|
||||
"idpDeleteGlobalQuestion": "Sei sicuro di voler eliminare definitivamente questo provider di identità?",
|
||||
"idpDeleteGlobalDescription": "Questo eliminerà definitivamente il provider di identità da tutte le organizzazioni con cui è associato.",
|
||||
"idpUnassociateTitle": "Disassociare Provider di Identità",
|
||||
"idpUnassociateQuestion": "Sei sicuro di voler disassociare questo provider di identità da questa organizzazione?",
|
||||
"idpUnassociateDescription": "Tutti gli utenti associati a questo provider di identità verranno rimossi da questa organizzazione, ma il provider di identità continuerà ad esistere per altre organizzazioni associate.",
|
||||
"idpUnassociateConfirm": "Conferma Disassociazione Provider di Identità",
|
||||
"idpUnassociateWarning": "Questo non può essere annullato per questa organizzazione.",
|
||||
"idpUnassociatedDescription": "Provider di identità disassociato con successo da questa organizzazione",
|
||||
"idpUnassociateMenu": "Disassocia",
|
||||
"idpDeleteAllOrgsMenu": "Elimina",
|
||||
"publicIpEndpoint": "Endpoint",
|
||||
"lastTriggeredAt": "Ultimo trigger",
|
||||
"reject": "Rifiuta"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"contactSalesEnable": "이 기능을 활성화하려면 영업팀에 연락하세요.",
|
||||
"contactSalesBookDemo": "데모 예약하기",
|
||||
"contactSalesOr": "또는",
|
||||
"contactSalesContactUs": "문의하기",
|
||||
"setupCreate": "조직, 사이트 및 리소스를 생성합니다.",
|
||||
"headerAuthCompatibilityInfo": "인증 토큰이 없을 때 401 Unauthorized 응답을 강제하도록 설정합니다. 서버 챌린지 없이 자격 증명을 제공하지 않는 브라우저나 특정 HTTP 라이브러리에 필요합니다.",
|
||||
"headerAuthCompatibility": "확장된 호환성",
|
||||
@@ -19,6 +23,14 @@
|
||||
"componentsInvalidKey": "유효하지 않거나 만료된 라이센스 키가 감지되었습니다. 모든 기능을 계속 사용하려면 라이센스 조건을 따르십시오.",
|
||||
"dismiss": "해제",
|
||||
"subscriptionViolationMessage": "현재 계획의 한계를 초과했습니다. 사이트, 사용자 또는 기타 리소스를 제거하여 계획 내에 머물도록 해결하세요.",
|
||||
"trialBannerMessage": "시험 사용 기간이 {countdown} 안에 만료됩니다. 업그레이드하여 액세스를 유지하세요.",
|
||||
"trialBannerExpired": "시험 사용 기간이 만료되었습니다. 지금 업그레이드하여 액세스를 복구하세요.",
|
||||
"trialActive": "무료 체험 활성화됨",
|
||||
"trialExpired": "체험 만료됨",
|
||||
"trialHasEnded": "시험 사용 기간이 종료되었습니다.",
|
||||
"trialDaysRemaining": "{count, plural, other {#일 남음}}",
|
||||
"trialDaysLeftShort": "시험 사용 기간 종료까지 {days}일 남음",
|
||||
"trialGoToBilling": "청구 페이지로 이동",
|
||||
"subscriptionViolationViewBilling": "청구 보기",
|
||||
"componentsLicenseViolation": "라이센스 위반: 이 서버는 {usedSites} 사이트를 사용하고 있으며, 이는 {maxSites} 사이트의 라이센스 한도를 초과합니다. 모든 기능을 계속 사용하려면 라이센스 조건을 따르십시오.",
|
||||
"componentsSupporterMessage": "{tier}로 판골린을 지원해 주셔서 감사합니다!",
|
||||
@@ -267,8 +279,11 @@
|
||||
"orgMissing": "조직 ID가 누락되었습니다",
|
||||
"orgMissingMessage": "조직 ID 없이 초대장을 재생성할 수 없습니다.",
|
||||
"accessUsersManage": "사용자 관리",
|
||||
"accessUserManage": "사용자 관리",
|
||||
"accessUsersDescription": "이 조직에 액세스할 사용자 초대 및 관리",
|
||||
"accessUsersSearch": "사용자 검색...",
|
||||
"accessUsersRoleFilterCount": "{count, plural, other {# 역할}}",
|
||||
"accessUsersRoleFilterClear": "역할 필터 지우기",
|
||||
"accessUserCreate": "사용자 생성",
|
||||
"accessUserRemove": "사용자 제거",
|
||||
"username": "사용자 이름",
|
||||
@@ -898,6 +913,7 @@
|
||||
"idpDisplayName": "이 신원 공급자를 위한 표시 이름",
|
||||
"idpAutoProvisionUsers": "사용자 자동 프로비저닝",
|
||||
"idpAutoProvisionUsersDescription": "활성화되면 사용자가 첫 로그인 시 시스템에 자동으로 생성되며, 사용자와 역할 및 조직을 매핑할 수 있습니다.",
|
||||
"idpAutoProvisionConfigureAfterCreate": "아이덴티티 공급자가 생성되면 자동 프로비저닝 설정을 구성할 수 있습니다.",
|
||||
"licenseBadge": "EE",
|
||||
"idpType": "제공자 유형",
|
||||
"idpTypeDescription": "구성할 ID 공급자의 유형을 선택하십시오.",
|
||||
@@ -949,7 +965,7 @@
|
||||
"defaultMappingsRole": "기본 역할 매핑",
|
||||
"defaultMappingsRoleDescription": "이 표현식의 결과는 조직에서 정의된 역할 이름을 문자열로 반환해야 합니다.",
|
||||
"defaultMappingsOrg": "기본 조직 매핑",
|
||||
"defaultMappingsOrgDescription": "이 표현식은 사용자가 조직에 접근할 수 있도록 조직 ID 또는 true를 반환해야 합니다.",
|
||||
"defaultMappingsOrgDescription": "이 표현식은 사용자가 조직에 접근할 수 있도록 조직 ID 또는 true를 반환해야 합니다. 설정되지 않으면, 역할 매핑 정의가 충분합니다: 사용자는 유효한 역할 매핑이 해석되는 한 조직에 허용됩니다.",
|
||||
"defaultMappingsSubmit": "기본 매핑 저장",
|
||||
"orgPoliciesEdit": "조직 정책 편집",
|
||||
"org": "조직",
|
||||
@@ -1256,6 +1272,7 @@
|
||||
"actionViewLogs": "로그 보기",
|
||||
"noneSelected": "선택된 항목 없음",
|
||||
"orgNotFound2": "조직이 없습니다.",
|
||||
"search": "검색…",
|
||||
"searchPlaceholder": "검색...",
|
||||
"emptySearchOptions": "옵션이 없습니다",
|
||||
"create": "생성",
|
||||
@@ -1340,10 +1357,166 @@
|
||||
"sidebarGeneral": "관리",
|
||||
"sidebarLogAndAnalytics": "로그 & 통계",
|
||||
"sidebarBluePrints": "청사진",
|
||||
"sidebarAlerting": "알림",
|
||||
"sidebarHealthChecks": "상태 확인",
|
||||
"sidebarOrganization": "조직",
|
||||
"sidebarManagement": "관리",
|
||||
"sidebarBillingAndLicenses": "결제 및 라이선스",
|
||||
"sidebarLogsAnalytics": "분석",
|
||||
"alertingTitle": "알림",
|
||||
"alertingDescription": "알림에 대한 소스, 트리거 및 작업 정의",
|
||||
"alertingRules": "알림 규칙",
|
||||
"alertingSearchRules": "규칙 검색…",
|
||||
"alertingAddRule": "규칙 생성",
|
||||
"alertingColumnSource": "소스",
|
||||
"alertingColumnTrigger": "트리거",
|
||||
"alertingColumnActions": "작업",
|
||||
"alertingColumnEnabled": "활성화됨",
|
||||
"alertingDeleteQuestion": "이 알림 규칙을 삭제하겠습니까.",
|
||||
"alertingDeleteRule": "알림 규칙 삭제",
|
||||
"alertingRuleDeleted": "알림 규칙 삭제됨",
|
||||
"alertingRuleSaved": "알림 규칙 저장됨",
|
||||
"alertingRuleSavedCreatedDescription": "새 알림 규칙이 생성되었습니다. 이 페이지에서 계속 편집할 수 있습니다.",
|
||||
"alertingRuleSavedUpdatedDescription": "이 알림 규칙에 대한 변경 사항이 저장되었습니다.",
|
||||
"alertingEditRule": "알림 규칙 편집",
|
||||
"alertingCreateRule": "알림 규칙 생성",
|
||||
"alertingRuleCredenzaDescription": "무엇을 감시할지, 언제 알릴지, 어떻게 알릴지를 선택하세요.",
|
||||
"alertingRuleNamePlaceholder": "프로덕션 사이트 중단",
|
||||
"alertingRuleEnabled": "규칙 활성화됨",
|
||||
"alertingSectionSource": "소스",
|
||||
"alertingSourceType": "소스 유형",
|
||||
"alertingSourceSite": "사이트",
|
||||
"alertingSourceHealthCheck": "상태 확인",
|
||||
"alertingPickSites": "사이트들",
|
||||
"alertingPickHealthChecks": "상태 확인들",
|
||||
"alertingPickResources": "리소스들",
|
||||
"alertingAllSites": "모든 사이트",
|
||||
"alertingAllSitesDescription": "모든 사이트에서 알림 발동",
|
||||
"alertingSpecificSites": "특정 사이트",
|
||||
"alertingSpecificSitesDescription": "감시할 특정 사이트를 선택하세요",
|
||||
"alertingAllHealthChecks": "모든 상태 확인",
|
||||
"alertingAllHealthChecksDescription": "모든 상태 확인에 대한 알림 발동",
|
||||
"alertingSpecificHealthChecks": "특정 상태 확인",
|
||||
"alertingSpecificHealthChecksDescription": "감시할 특정 상태 확인을 선택하세요",
|
||||
"alertingAllResources": "모든 리소스",
|
||||
"alertingAllResourcesDescription": "모든 리소스에 대한 알림 발동",
|
||||
"alertingSpecificResources": "특정 리소스",
|
||||
"alertingSpecificResourcesDescription": "감시할 특정 리소스를 선택하세요",
|
||||
"alertingSelectResources": "리소스 선택…",
|
||||
"alertingResourcesSelected": "{count}개의 리소스 선택됨",
|
||||
"alertingResourcesEmpty": "앞 10개의 결과에서 타겟이 있는 리소스 없음.",
|
||||
"alertingSectionTrigger": "트리거",
|
||||
"alertingTrigger": "언제 알림을 받을지",
|
||||
"alertingTriggerSiteOnline": "사이트 온라인",
|
||||
"alertingTriggerSiteOffline": "사이트 오프라인",
|
||||
"alertingTriggerSiteToggle": "사이트 상태 변경",
|
||||
"alertingTriggerHcHealthy": "상태 확인 정상",
|
||||
"alertingTriggerHcUnhealthy": "상태 확인 비정상",
|
||||
"alertingTriggerHcToggle": "상태 확인 상태 변경",
|
||||
"alertingTriggerResourceHealthy": "리소스 정상",
|
||||
"alertingTriggerResourceUnhealthy": "리소스 비정상",
|
||||
"alertingSearchHealthChecks": "상태 확인 검색…",
|
||||
"alertingHealthChecksEmpty": "사용 가능한 상태 확인이 없습니다.",
|
||||
"alertingTriggerResourceToggle": "리소스 상태 변경",
|
||||
"alertingSourceResource": "리소스",
|
||||
"alertingSectionActions": "작업",
|
||||
"alertingAddAction": "작업 추가",
|
||||
"alertingActionNotify": "이메일",
|
||||
"alertingActionNotifyDescription": "사용자 또는 역할에게 이메일 알림 전송",
|
||||
"alertingActionWebhook": "웹훅",
|
||||
"alertingActionWebhookDescription": "사용자 정의 엔드포인트로 HTTP 요청 보내기",
|
||||
"alertingExternalIntegration": "외부 통합",
|
||||
"alertingExternalPagerDutyDescription": "사고 관리를 위해 PagerDuty에 알림 보내기",
|
||||
"alertingExternalOpsgenieDescription": "대기 중인 관리자로 Opsgenie에 알림 보내기",
|
||||
"alertingExternalServiceNowDescription": "알림 이벤트로 ServiceNow 사고 생성",
|
||||
"alertingExternalIncidentIoDescription": "알림 이벤트로 Incident.io 워크플로우 트리거",
|
||||
"alertingActionType": "작업 유형",
|
||||
"alertingNotifyUsers": "사용자들",
|
||||
"alertingNotifyRoles": "역할들",
|
||||
"alertingNotifyEmails": "이메일 주소들",
|
||||
"alertingEmailPlaceholder": "이메일 추가 후 Enter 키를 누르세요",
|
||||
"alertingWebhookMethod": "HTTP 메소드",
|
||||
"alertingWebhookSecret": "서명 비밀 (선택 사항)",
|
||||
"alertingWebhookSecretPlaceholder": "HMAC 비밀",
|
||||
"alertingWebhookHeaders": "헤더들",
|
||||
"alertingAddHeader": "헤더 추가",
|
||||
"alertingSelectSites": "사이트 선택…",
|
||||
"alertingSitesSelected": "{count}개의 사이트 선택됨",
|
||||
"alertingSelectHealthChecks": "상태 확인 선택…",
|
||||
"alertingHealthChecksSelected": "{count}개의 상태 확인 선택됨",
|
||||
"alertingNoHealthChecks": "활성화된 상태 확인이 있는 타겟 없음",
|
||||
"alertingHealthCheckStub": "상태 확인 소스 선택은 아직 연결되지 않았습니다 - 트리거 및 작업을 계속 구성할 수 있습니다.",
|
||||
"alertingSelectUsers": "사용자 선택…",
|
||||
"alertingUsersSelected": "{count}명의 사용자 선택됨",
|
||||
"alertingSelectRoles": "역할 선택…",
|
||||
"alertingRolesSelected": "{count}개의 역할 선택됨",
|
||||
"alertingSummarySites": "사이트 ({count})",
|
||||
"alertingSummaryAllSites": "모든 사이트",
|
||||
"alertingSummaryHealthChecks": "상태 확인 ({count})",
|
||||
"alertingSummaryAllHealthChecks": "모든 상태 확인",
|
||||
"alertingSummaryResources": "리소스 ({count})",
|
||||
"alertingSummaryAllResources": "모든 리소스",
|
||||
"alertingErrorNameRequired": "이름을 입력하세요",
|
||||
"alertingErrorActionsMin": "최소한 하나의 작업 추가",
|
||||
"alertingErrorPickSites": "최소한 하나의 사이트 선택",
|
||||
"alertingErrorPickHealthChecks": "최소한 하나의 상태 확인 선택",
|
||||
"alertingErrorPickResources": "최소한 하나의 리소스 선택",
|
||||
"alertingErrorTriggerSite": "사이트 트리거 선택",
|
||||
"alertingErrorTriggerHealth": "상태 확인 트리거 선택",
|
||||
"alertingErrorTriggerResource": "리소스 트리거 선택",
|
||||
"alertingErrorNotifyRecipients": "사용자, 역할 또는 최소 하나의 이메일 선택",
|
||||
"alertingConfigureSource": "소스 구성",
|
||||
"alertingConfigureTrigger": "트리거 구성",
|
||||
"alertingConfigureActions": "작업 구성",
|
||||
"alertingBackToRules": "규칙으로 돌아가기",
|
||||
"alertingRuleCooldown": "냉각 시간 (초)",
|
||||
"alertingRuleCooldownDescription": "같은 규칙에 대해 반복된 알림 사이의 최소 시간. 매번 발생하려면 0으로 설정하세요.",
|
||||
"alertingDraftBadge": "초안 - 이 규칙을 저장하려면 저장",
|
||||
"alertingSidebarHint": "여기에서 편집하려면 캔버스의 단계를 클릭하세요.",
|
||||
"alertingGraphCanvasTitle": "규칙 흐름",
|
||||
"alertingGraphCanvasDescription": "소스, 트리거 및 작업의 시각적 개요입니다. 노드를 선택하여 패널에서 수정할 수 있습니다.",
|
||||
"alertingNodeNotConfigured": "아직 구성되지 않음",
|
||||
"alertingNodeActionsCount": "{count, plural, other {# 작업}}",
|
||||
"alertingNodeRoleSource": "소스",
|
||||
"alertingNodeRoleTrigger": "트리거",
|
||||
"alertingNodeRoleAction": "작업",
|
||||
"alertingTabRules": "알림 규칙",
|
||||
"alertingTabHealthChecks": "상태 확인",
|
||||
"alertingRulesBannerTitle": "알림 받기",
|
||||
"alertingRulesBannerDescription": "각 규칙은 무엇을 감시할지(사이트, 상태 확인, 리소스), 언제 발동할지(예: 오프라인 또는 비정상), 이메일, 웹훅 또는 통합을 통해 팀에 어떻게 알릴지를 연결합니다. 이 목록을 사용하여 규칙을 생성, 활성화 및 관리하세요.",
|
||||
"alertingHealthChecksBannerTitle": "건강 및 리소스 모니터링",
|
||||
"alertingHealthChecksBannerDescription": "상태 확인은 한 번 정의한 HTTP 또는 TCP 모니터링입니다. 그런 다음 이를 알림 규칙의 소스로 사용하여 타겟이 정상 또는 비정상이 되었을 때 알림을 받을 수 있습니다. 리소스의 상태 확인도 여기에 나타납니다.",
|
||||
"standaloneHcTableTitle": "상태 확인",
|
||||
"standaloneHcSearchPlaceholder": "상태 확인 검색…",
|
||||
"standaloneHcAddButton": "상태 확인 생성",
|
||||
"standaloneHcCreateTitle": "상태 확인 생성",
|
||||
"standaloneHcEditTitle": "상태 확인 편집",
|
||||
"standaloneHcDescription": "알림 규칙에 사용할 HTTP 또는 TCP 상태 확인을 구성하세요.",
|
||||
"standaloneHcNameLabel": "이름",
|
||||
"standaloneHcNamePlaceholder": "My HTTP Monitor",
|
||||
"standaloneHcDeleteTitle": "상태 확인 삭제",
|
||||
"standaloneHcDeleteQuestion": "이 상태 확인을 삭제하겠습니까.",
|
||||
"standaloneHcDeleted": "상태 확인 삭제됨",
|
||||
"standaloneHcSaved": "상태 확인 저장됨",
|
||||
"standaloneHcColumnHealth": "건강",
|
||||
"standaloneHcColumnMode": "모드",
|
||||
"standaloneHcColumnTarget": "타겟",
|
||||
"standaloneHcHealthStateHealthy": "정상",
|
||||
"standaloneHcHealthStateUnhealthy": "비정상",
|
||||
"standaloneHcHealthStateUnknown": "알 수 없음",
|
||||
"standaloneHcFilterAnySite": "모든 사이트",
|
||||
"standaloneHcFilterAnyResource": "모든 리소스",
|
||||
"standaloneHcFilterMode": "모드",
|
||||
"standaloneHcFilterModeHttp": "HTTP",
|
||||
"standaloneHcFilterModeTcp": "TCP",
|
||||
"standaloneHcFilterModeSnmp": "SNMP",
|
||||
"standaloneHcFilterModePing": "핑",
|
||||
"standaloneHcFilterHealth": "건강",
|
||||
"standaloneHcFilterEnabled": "활성화됨",
|
||||
"standaloneHcFilterEnabledOn": "활성화됨",
|
||||
"standaloneHcFilterEnabledOff": "비활성화됨",
|
||||
"standaloneHcFilterSiteIdFallback": "사이트 {id}",
|
||||
"standaloneHcFilterResourceIdFallback": "리소스 {id}",
|
||||
"blueprints": "청사진",
|
||||
"blueprintsDescription": "선언적 구성을 적용하고 이전 실행을 봅니다",
|
||||
"blueprintAdd": "청사진 추가",
|
||||
@@ -1762,6 +1935,15 @@
|
||||
"healthCheckIntervalMin": "확인 간격은 최소 5초여야 합니다.",
|
||||
"healthCheckTimeoutMin": "시간 초과는 최소 1초여야 합니다.",
|
||||
"healthCheckRetryMin": "재시도 횟수는 최소 1회여야 합니다.",
|
||||
"healthCheckMode": "확인 모드",
|
||||
"healthCheckStrategy": "전략",
|
||||
"healthCheckModeDescription": "TCP 모드는 연결성만 확인합니다. HTTP 모드는 HTTP 응답을 확인합니다.",
|
||||
"healthyThreshold": "건강 임계값",
|
||||
"healthyThresholdDescription": "정상으로 표시되기 전에 연속 성공이 필요합니다.",
|
||||
"unhealthyThreshold": "비정상 임계값",
|
||||
"unhealthyThresholdDescription": "비정상으로 표시되기 전에 연속 실패가 필요합니다.",
|
||||
"healthCheckHealthyThresholdMin": "정상 임계값은 최소 1 이상이어야 합니다",
|
||||
"healthCheckUnhealthyThresholdMin": "비정상 임계값은 최소 1 이상이어야 합니다",
|
||||
"httpMethod": "HTTP 메소드",
|
||||
"selectHttpMethod": "HTTP 메소드 선택",
|
||||
"domainPickerSubdomainLabel": "서브도메인",
|
||||
@@ -1821,6 +2003,11 @@
|
||||
"editInternalResourceDialogModePort": "포트",
|
||||
"editInternalResourceDialogModeHost": "호스트",
|
||||
"editInternalResourceDialogModeCidr": "CIDR",
|
||||
"editInternalResourceDialogModeHttp": "HTTP",
|
||||
"editInternalResourceDialogModeHttps": "HTTPS",
|
||||
"editInternalResourceDialogScheme": "스킴",
|
||||
"editInternalResourceDialogEnableSsl": "SSL 활성화",
|
||||
"editInternalResourceDialogEnableSslDescription": "목적지로의 안전한 HTTPS 연결을 위한 SSL/TLS 암호화 활성화.",
|
||||
"editInternalResourceDialogDestination": "대상지",
|
||||
"editInternalResourceDialogDestinationHostDescription": "사이트 네트워크의 자원 IP 주소입니다.",
|
||||
"editInternalResourceDialogDestinationIPDescription": "사이트 네트워크의 자원 IP 또는 호스트 네임 주소입니다.",
|
||||
@@ -1836,6 +2023,7 @@
|
||||
"createInternalResourceDialogName": "이름",
|
||||
"createInternalResourceDialogSite": "사이트",
|
||||
"selectSite": "사이트 선택...",
|
||||
"multiSitesSelectorSitesCount": "{count, plural, other {# 사이트}}",
|
||||
"noSitesFound": "사이트를 찾을 수 없습니다.",
|
||||
"createInternalResourceDialogProtocol": "프로토콜",
|
||||
"createInternalResourceDialogTcp": "TCP",
|
||||
@@ -1864,11 +2052,19 @@
|
||||
"createInternalResourceDialogModePort": "포트",
|
||||
"createInternalResourceDialogModeHost": "호스트",
|
||||
"createInternalResourceDialogModeCidr": "CIDR",
|
||||
"createInternalResourceDialogModeHttp": "HTTP",
|
||||
"createInternalResourceDialogModeHttps": "HTTPS",
|
||||
"scheme": "스킴",
|
||||
"createInternalResourceDialogScheme": "스킴",
|
||||
"createInternalResourceDialogEnableSsl": "SSL 활성화",
|
||||
"createInternalResourceDialogEnableSslDescription": "목적지로의 안전한 HTTPS 연결을 위한 SSL/TLS 암호화 활성화.",
|
||||
"createInternalResourceDialogDestination": "대상지",
|
||||
"createInternalResourceDialogDestinationHostDescription": "사이트 네트워크의 자원 IP 주소입니다.",
|
||||
"createInternalResourceDialogDestinationCidrDescription": "사이트 네트워크의 자원 IP 주소입니다.",
|
||||
"createInternalResourceDialogAlias": "별칭",
|
||||
"createInternalResourceDialogAliasDescription": "이 리소스에 대한 선택적 내부 DNS 별칭입니다.",
|
||||
"internalResourceDownstreamSchemeRequired": "HTTP 리소스에 스킴이 필요합니다",
|
||||
"internalResourceHttpPortRequired": "HTTP 리소스에 목적지 포트가 필요합니다",
|
||||
"siteConfiguration": "설정",
|
||||
"siteAcceptClientConnections": "클라이언트 연결 허용",
|
||||
"siteAcceptClientConnectionsDescription": "사용자 장치와 클라이언트가 이 사이트의 리소스에 접근할 수 있도록 허용하세요. 나중에 변경할 수 있습니다.",
|
||||
@@ -2026,7 +2222,7 @@
|
||||
},
|
||||
"internationaldomaindetected": "국제 도메인 감지됨",
|
||||
"willbestoredas": "다음으로 저장됩니다:",
|
||||
"roleMappingDescription": "자동 프로비저닝이 활성화되면 사용자가 로그인할 때 역할이 할당되는 방법을 결정합니다.",
|
||||
"roleMappingDescription": "사용자가 이 아이덴티티 공급자로 로그인할 때 역할이 할당되는 방법을 결정합니다.",
|
||||
"selectRole": "역할 선택",
|
||||
"roleMappingExpression": "표현식",
|
||||
"selectRolePlaceholder": "역할 선택",
|
||||
@@ -2118,7 +2314,7 @@
|
||||
"selectDomainForOrgAuthPage": "조직 인증 페이지에 대한 도메인을 선택하세요.",
|
||||
"domainPickerProvidedDomain": "제공된 도메인",
|
||||
"domainPickerFreeProvidedDomain": "무료 제공된 도메인",
|
||||
"domainPickerFreeDomainsPaidFeature": "제공된 도메인은 유료 기능입니다. 요금제에 도메인이 포함되도록 구독하세요. — 별도로 도메인을 준비할 필요 없습니다.",
|
||||
"domainPickerFreeDomainsPaidFeature": "제공된 도메인은 유료 기능입니다. 요금제에 도메인이 포함되도록 구독하세요. - 별도로 도메인을 준비할 필요 없습니다.",
|
||||
"domainPickerVerified": "검증됨",
|
||||
"domainPickerUnverified": "검증되지 않음",
|
||||
"domainPickerManual": "수동",
|
||||
@@ -2296,7 +2492,7 @@
|
||||
"alerts": {
|
||||
"commercialUseDisclosure": {
|
||||
"title": "사용 공개",
|
||||
"description": "당신의 의도된 사용에 정확히 맞는 라이선스 등급을 선택하세요. 개인 라이선스는 연간 총 수익 100,000 USD 이하의 개인, 비상업적 또는 소규모 상업 활동을 위한 소프트웨어의 무료 사용을 허용합니다. 이러한 제한을 넘는 모든 사용 — 비즈니스, 조직 또는 기타 수익 창출 환경 내에서의 사용 — 은 유효한 엔터프라이즈 라이선스 및 해당 라이선스 수수료의 지불이 필요합니다. 개인 또는 기업 사용자는 모두 Fossorial 상용 라이선스 조건을 준수해야 합니다."
|
||||
"description": "당신의 의도된 사용에 정확히 맞는 라이선스 등급을 선택하세요. 개인 라이선스는 연간 총 수익 100,000 USD 이하의 개인, 비상업적 또는 소규모 상업 활동을 위한 소프트웨어의 무료 사용을 허용합니다. 이러한 제한을 넘는 모든 사용 - 비즈니스, 조직 또는 기타 수익 창출 환경 내에서의 사용 - 은 유효한 엔터프라이즈 라이선스 및 해당 라이선스 수수료의 지불이 필요합니다. 개인 또는 기업 사용자는 모두 Fossorial 상용 라이선스 조건을 준수해야 합니다."
|
||||
},
|
||||
"trialPeriodInformation": {
|
||||
"title": "시험 기간 정보",
|
||||
@@ -2428,6 +2624,7 @@
|
||||
"validPassword": "유효한 비밀번호",
|
||||
"validEmail": "유효한 이메일",
|
||||
"validSSO": "유효한 SSO",
|
||||
"connectedClient": "연결된 클라이언트",
|
||||
"resourceBlocked": "리소스 차단됨",
|
||||
"droppedByRule": "룰에 의해 드롭됨",
|
||||
"noSessions": "세션 없음",
|
||||
@@ -2667,6 +2864,10 @@
|
||||
"editInternalResourceDialogDestinationLabel": "대상지",
|
||||
"editInternalResourceDialogDestinationDescription": "내부 리소스의 목적지 주소를 지정하세요. 선택한 모드에 따라 이 주소는 호스트명, IP 주소, 또는 CIDR 범위가 될 수 있습니다. 더욱 쉽게 식별할 수 있도록 내부 DNS 별칭을 설정할 수 있습니다.",
|
||||
"editInternalResourceDialogPortRestrictionsDescription": "특정 TCP/UDP 포트에 대한 접근을 제한하거나 모든 포트를 허용/차단하십시오.",
|
||||
"createInternalResourceDialogHttpConfiguration": "HTTP 구성",
|
||||
"createInternalResourceDialogHttpConfigurationDescription": "이 리소스에 HTTP 또는 HTTPS로 도달하기 위한 도메인을 선택하세요.",
|
||||
"editInternalResourceDialogHttpConfiguration": "HTTP 구성",
|
||||
"editInternalResourceDialogHttpConfigurationDescription": "이 리소스에 HTTP 또는 HTTPS로 도달하기 위한 도메인을 선택하세요.",
|
||||
"editInternalResourceDialogTcp": "TCP",
|
||||
"editInternalResourceDialogUdp": "UDP",
|
||||
"editInternalResourceDialogIcmp": "ICMP",
|
||||
@@ -2705,6 +2906,8 @@
|
||||
"maintenancePageMessagePlaceholder": "곧 돌아오겠습니다! 사이트는 현재 예정된 유지보수를 진행 중입니다.",
|
||||
"maintenancePageMessageDescription": "유지보수를 설명하는 상세 메시지",
|
||||
"maintenancePageTimeTitle": "예상 완료 시간(선택 사항)",
|
||||
"privateMaintenanceScreenTitle": "프라이빗 플레이스홀더 화면",
|
||||
"privateMaintenanceScreenMessage": "이 도메인은 개인 리소스에서 사용 중입니다. Pangolin 클라이언트를 사용하여 이 리소스에 액세스하세요.",
|
||||
"maintenanceTime": "예: 2시간, 11월 1일 오후 5시",
|
||||
"maintenanceEstimatedTimeDescription": "유지보수가 완료될 것으로 예상되는 시간",
|
||||
"editDomain": "도메인 수정",
|
||||
@@ -2842,6 +3045,14 @@
|
||||
"httpDestAddTitle": "HTTP 대상지 추가",
|
||||
"httpDestEditDescription": "이 HTTP 이벤트 스트리밍 대상지의 구성을 업데이트하세요.",
|
||||
"httpDestAddDescription": "조직의 이벤트 수신을 위한 새로운 HTTP 엔드포인트를 구성하세요.",
|
||||
"S3DestEditTitle": "대상지 수정",
|
||||
"S3DestAddTitle": "S3 대상지 추가",
|
||||
"S3DestEditDescription": "이 S3 이벤트 스트리밍 대상지의 구성을 업데이트하세요.",
|
||||
"S3DestAddDescription": "조직의 이벤트를 받기 위한 새로운 S3 엔드포인트를 구성하세요.",
|
||||
"datadogDestEditTitle": "대상지 수정",
|
||||
"datadogDestAddTitle": "Datadog 대상지 추가",
|
||||
"datadogDestEditDescription": "이 Datadog 이벤트 스트리밍 대상지의 구성을 업데이트하세요.",
|
||||
"datadogDestAddDescription": "조직의 이벤트를 받기 위한 새로운 Datadog 엔드포인트를 구성하세요.",
|
||||
"httpDestTabSettings": "설정",
|
||||
"httpDestTabHeaders": "헤더",
|
||||
"httpDestTabBody": "본문",
|
||||
@@ -2881,7 +3092,7 @@
|
||||
"httpDestFormatJsonArrayTitle": "JSON 배열",
|
||||
"httpDestFormatJsonArrayDescription": "각 배치마다 요청 하나씩, 본문은 JSON 배열입니다. 대부분의 일반 웹훅 및 Datadog과 호환됩니다.",
|
||||
"httpDestFormatNdjsonTitle": "NDJSON",
|
||||
"httpDestFormatNdjsonDescription": "각 배치마다 요청 하나씩, 본문은 줄 구분 JSON — 한 라인에 하나의 객체가 있으며 외부 배열이 없습니다. Splunk HEC, Elastic / OpenSearch, Grafana Loki에 필요합니다.",
|
||||
"httpDestFormatNdjsonDescription": "각 배치마다 요청 하나씩, 본문은 줄 구분 JSON - 한 라인에 하나의 객체가 있으며 외부 배열이 없습니다. Splunk HEC, Elastic / OpenSearch, Grafana Loki에 필요합니다.",
|
||||
"httpDestFormatSingleTitle": "각 요청 당 하나의 이벤트",
|
||||
"httpDestFormatSingleDescription": "각 개별 이벤트에 대해 별도의 HTTP POST를 전송합니다. 배치를 처리할 수 없는 엔드포인트에만 사용하세요.",
|
||||
"httpDestLogTypesTitle": "로그 유형",
|
||||
@@ -2899,5 +3110,37 @@
|
||||
"httpDestUpdatedSuccess": "대상지가 성공적으로 업데이트되었습니다",
|
||||
"httpDestCreatedSuccess": "대상지가 성공적으로 생성되었습니다",
|
||||
"httpDestUpdateFailed": "대상지를 업데이트하는 데 실패했습니다",
|
||||
"httpDestCreateFailed": "대상지를 생성하는 데 실패했습니다"
|
||||
"httpDestCreateFailed": "대상지를 생성하는 데 실패했습니다",
|
||||
"followRedirects": "리디렉션 따라가기",
|
||||
"followRedirectsDescription": "요청에 대해 HTTP 리디렉션을 자동으로 따라갑니다.",
|
||||
"alertingErrorWebhookUrl": "웹훅의 유효한 URL을 입력하세요.",
|
||||
"healthCheckStrategyHttp": "연결성을 확인하고 HTTP 응답 상태를 확인합니다.",
|
||||
"healthCheckStrategyTcp": "응답을 검사하지 않고 TCP 연결성만 확인합니다.",
|
||||
"healthCheckStrategySnmp": "네트워크 장비 및 인프라의 상태를 확인하기 위해 SNMP get 요청을 보냅니다.",
|
||||
"healthCheckStrategyIcmp": "ICMP 에코 요청(핑)을 사용하여 리소스에 대한 접근 가능성을 확인합니다.",
|
||||
"healthCheckTabStrategy": "전략",
|
||||
"healthCheckTabConnection": "연결",
|
||||
"healthCheckTabAdvanced": "고급",
|
||||
"healthCheckStrategyNotAvailable": "이 전략은 사용할 수 없습니다. 기능을 활성화하려면 영업팀에 문의하세요.",
|
||||
"uptime30d": "업타임 (30일)",
|
||||
"idpAddActionCreateNew": "새로운 아이덴티티 공급자 생성",
|
||||
"idpAddActionImportFromOrg": "다른 조직에서 가져오기",
|
||||
"idpImportDialogTitle": "아이덴티티 공급자 가져오기",
|
||||
"idpImportDialogDescription": "관리자인 조직에서 아이덴티티 공급자를 선택하십시오. 이는 이 조직에 연결됩니다.",
|
||||
"idpImportSearchPlaceholder": "조직 또는 공급자 이름으로 검색...",
|
||||
"idpImportEmpty": "아이덴티티 공급자를 찾을 수 없습니다.",
|
||||
"idpImportedDescription": "아이덴티티 공급자가 성공적으로 가져왔습니다.",
|
||||
"idpDeleteGlobalQuestion": "정말로 이 아이덴티티 공급자를 영구적으로 삭제하시겠습니까?",
|
||||
"idpDeleteGlobalDescription": "이것은 연관된 모든 조직에서 아이덴티티 공급자를 영구적으로 삭제합니다.",
|
||||
"idpUnassociateTitle": "아이덴티티 공급자의 연관 해제",
|
||||
"idpUnassociateQuestion": "정말로 이 조직에서 이 아이덴티티 공급자의 연관을 해제하시겠습니까?",
|
||||
"idpUnassociateDescription": "이 아이덴티티 공급자와 연관된 모든 사용자는 이 조직에서 제거될 것이지만, 아이덴티티 공급자는 다른 연관된 조직에 계속해서 존재할 것입니다.",
|
||||
"idpUnassociateConfirm": "아이덴티티 공급자 연관 해제 확인",
|
||||
"idpUnassociateWarning": "이 조직에서 이것은 되돌릴 수 없습니다.",
|
||||
"idpUnassociatedDescription": "아이덴티티 공급자가 이 조직에서 성공적으로 연관 해제되었습니다",
|
||||
"idpUnassociateMenu": "연관 해제",
|
||||
"idpDeleteAllOrgsMenu": "삭제",
|
||||
"publicIpEndpoint": "엔드포인트",
|
||||
"lastTriggeredAt": "마지막 트리거",
|
||||
"reject": "거부"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"contactSalesEnable": "Kontakt salgsavdelingen for å aktivere denne funksjonen.",
|
||||
"contactSalesBookDemo": "Bestill en demo",
|
||||
"contactSalesOr": "eller",
|
||||
"contactSalesContactUs": "kontakt oss",
|
||||
"setupCreate": "Opprett organisasjonen, nettstedet og ressursene",
|
||||
"headerAuthCompatibilityInfo": "Aktiver dette for å tvinge frem en 401 Uautorisert-respons når en autentiseringstoken mangler. Dette kreves for nettlesere eller spesifikke HTTP-biblioteker som ikke sender legitimasjon uten en serverutfordring.",
|
||||
"headerAuthCompatibility": "Utvidet kompatibilitet",
|
||||
@@ -19,6 +23,14 @@
|
||||
"componentsInvalidKey": "Ugyldig eller utgått lisensnøkkel oppdaget. Følg lisensvilkårene for å fortsette å kunne bruke alle funksjonene.",
|
||||
"dismiss": "Avvis",
|
||||
"subscriptionViolationMessage": "Du er utenfor grensen for gjeldende plan. Rett problemet ved å fjerne nettsteder, brukere eller andre ressurser for å bli innenfor planen din.",
|
||||
"trialBannerMessage": "Din prøveperiode utløper om {countdown}. Oppgrader for å beholde tilgangen.",
|
||||
"trialBannerExpired": "Prøveperioden din har utløpt. Oppgrader nå for å gjenopprette tilgangen.",
|
||||
"trialActive": "Gratis prøveversjon aktiv",
|
||||
"trialExpired": "Prøveperioden er utløpt",
|
||||
"trialHasEnded": "Din prøveperiode har avsluttet.",
|
||||
"trialDaysRemaining": "{count, plural, one {# dag igjen} other {# dager igjen}}",
|
||||
"trialDaysLeftShort": "{days}d igjen av prøveperioden",
|
||||
"trialGoToBilling": "Gå til faktureringssiden",
|
||||
"subscriptionViolationViewBilling": "Vis fakturering",
|
||||
"componentsLicenseViolation": "Lisens Brudd: Denne serveren bruker {usedSites} områder som overskrider den lisensierte grenser av {maxSites} områder. Følg lisensvilkårene for å fortsette å kunne bruke alle funksjonene.",
|
||||
"componentsSupporterMessage": "Takk for at du støtter Pangolin som en {tier}!",
|
||||
@@ -267,8 +279,11 @@
|
||||
"orgMissing": "Organisasjons-ID Mangler",
|
||||
"orgMissingMessage": "Kan ikke regenerere invitasjon uten en organisasjons-ID.",
|
||||
"accessUsersManage": "Administrer brukere",
|
||||
"accessUserManage": "Administrer brukere",
|
||||
"accessUsersDescription": "Inviter og behandle brukere med tilgang til denne organisasjonen",
|
||||
"accessUsersSearch": "Søk etter brukere...",
|
||||
"accessUsersRoleFilterCount": "{count, plural, one {# rolle} other {# roller}}",
|
||||
"accessUsersRoleFilterClear": "Fjern rollesøkefiltre",
|
||||
"accessUserCreate": "Opprett bruker",
|
||||
"accessUserRemove": "Fjern bruker",
|
||||
"username": "Brukernavn",
|
||||
@@ -898,6 +913,7 @@
|
||||
"idpDisplayName": "Et visningsnavn for denne identitetsleverandøren",
|
||||
"idpAutoProvisionUsers": "Automatisk brukerklargjøring",
|
||||
"idpAutoProvisionUsersDescription": "Når aktivert, opprettes brukere automatisk i systemet ved første innlogging, med mulighet til å tilordne brukere til roller og organisasjoner.",
|
||||
"idpAutoProvisionConfigureAfterCreate": "Du kan konfigurere autoprovisjonsinnstillingene når identitetsleverandøren er opprettet.",
|
||||
"licenseBadge": "EE",
|
||||
"idpType": "Leverandørtype",
|
||||
"idpTypeDescription": "Velg typen identitetsleverandør du ønsker å konfigurere",
|
||||
@@ -949,7 +965,7 @@
|
||||
"defaultMappingsRole": "Standard rolletilordning",
|
||||
"defaultMappingsRoleDescription": "Resultatet av dette uttrykket må returnere rollenavnet slik det er definert i organisasjonen som en streng.",
|
||||
"defaultMappingsOrg": "Standard organisasjonstilordning",
|
||||
"defaultMappingsOrgDescription": "Dette uttrykket må returnere organisasjons-ID-en eller «true» for å gi brukeren tilgang til organisasjonen.",
|
||||
"defaultMappingsOrgDescription": "Når denne er satt, må uttrykket returnere organisasjons-IDen eller «true» for at brukeren skal få tilgang til den organisasjonen. Når den ikke er satt, er det nok å definere en rolletilordning: brukeren gis tilgang så lenge en gyldig rolletilknytting kan løses for dem i organisasjonen.",
|
||||
"defaultMappingsSubmit": "Lagre standard tilordninger",
|
||||
"orgPoliciesEdit": "Rediger Organisasjonspolicy",
|
||||
"org": "Organisasjon",
|
||||
@@ -1256,6 +1272,7 @@
|
||||
"actionViewLogs": "Vis logger",
|
||||
"noneSelected": "Ingen valgt",
|
||||
"orgNotFound2": "Ingen organisasjoner funnet.",
|
||||
"search": "Søk…",
|
||||
"searchPlaceholder": "Søk...",
|
||||
"emptySearchOptions": "Ingen valg funnet",
|
||||
"create": "Opprett",
|
||||
@@ -1340,10 +1357,166 @@
|
||||
"sidebarGeneral": "Administrer",
|
||||
"sidebarLogAndAnalytics": "Logg og analyser",
|
||||
"sidebarBluePrints": "Tegninger",
|
||||
"sidebarAlerting": "Varsling",
|
||||
"sidebarHealthChecks": "Helsekontroller",
|
||||
"sidebarOrganization": "Organisasjon",
|
||||
"sidebarManagement": "Administrasjon",
|
||||
"sidebarBillingAndLicenses": "Fakturering & lisenser",
|
||||
"sidebarLogsAnalytics": "Analyser",
|
||||
"alertingTitle": "Varsling",
|
||||
"alertingDescription": "Definer kilder, triggere og handlinger for varsler",
|
||||
"alertingRules": "Varslingsregler",
|
||||
"alertingSearchRules": "Søk i regler…",
|
||||
"alertingAddRule": "Opprett regel",
|
||||
"alertingColumnSource": "Kilde",
|
||||
"alertingColumnTrigger": "Utløser",
|
||||
"alertingColumnActions": "Handlinger",
|
||||
"alertingColumnEnabled": "Aktivert",
|
||||
"alertingDeleteQuestion": "Vennligst bekreft at du vil slette denne varslingsregelen.",
|
||||
"alertingDeleteRule": "Slett varslingsregel",
|
||||
"alertingRuleDeleted": "Varslingsregel slettet",
|
||||
"alertingRuleSaved": "Varslingsregel lagret",
|
||||
"alertingRuleSavedCreatedDescription": "Din nye varslingsregel ble opprettet. Du kan fortsette å redigere den på denne siden.",
|
||||
"alertingRuleSavedUpdatedDescription": "Endringene dine i denne varslingsregelen ble lagret.",
|
||||
"alertingEditRule": "Rediger varslingsregel",
|
||||
"alertingCreateRule": "Opprett varslingsregel",
|
||||
"alertingRuleCredenzaDescription": "Velg hva som skal overvåkes, når det skal varsles, og hvordan du vil bli informert",
|
||||
"alertingRuleNamePlaceholder": "Produksjonsside nede",
|
||||
"alertingRuleEnabled": "Regel aktivert",
|
||||
"alertingSectionSource": "Kilde",
|
||||
"alertingSourceType": "Kildetype",
|
||||
"alertingSourceSite": "Område",
|
||||
"alertingSourceHealthCheck": "Helsekontroll",
|
||||
"alertingPickSites": "Områder",
|
||||
"alertingPickHealthChecks": "Helsekontroller",
|
||||
"alertingPickResources": "Ressurser",
|
||||
"alertingAllSites": "Alle områder",
|
||||
"alertingAllSitesDescription": "Varsler for alle områder",
|
||||
"alertingSpecificSites": "Spesifikke områder",
|
||||
"alertingSpecificSitesDescription": "Velg spesifikke områder for overvåking",
|
||||
"alertingAllHealthChecks": "Alle helsekontroller",
|
||||
"alertingAllHealthChecksDescription": "Varsler for alle helsekontroller",
|
||||
"alertingSpecificHealthChecks": "Spesifikke helsekontroller",
|
||||
"alertingSpecificHealthChecksDescription": "Velg spesifikke helsekontroller for overvåking",
|
||||
"alertingAllResources": "Alle ressurser",
|
||||
"alertingAllResourcesDescription": "Varsler for alle ressurser",
|
||||
"alertingSpecificResources": "Spesifikke ressurser",
|
||||
"alertingSpecificResourcesDescription": "Velg spesifikke ressurser for overvåking",
|
||||
"alertingSelectResources": "Velg ressurser…",
|
||||
"alertingResourcesSelected": "{count} ressurser valgt",
|
||||
"alertingResourcesEmpty": "No resources with targets in the first 10 results.",
|
||||
"alertingSectionTrigger": "Utløser",
|
||||
"alertingTrigger": "Når skal det varsles",
|
||||
"alertingTriggerSiteOnline": "Nettsted er online",
|
||||
"alertingTriggerSiteOffline": "Nettsted er offline",
|
||||
"alertingTriggerSiteToggle": "Endringer i nettstedstatus",
|
||||
"alertingTriggerHcHealthy": "Helsekontroll sunn",
|
||||
"alertingTriggerHcUnhealthy": "Helsekontroll usunn",
|
||||
"alertingTriggerHcToggle": "Endringer i helsekontrollstatus",
|
||||
"alertingTriggerResourceHealthy": "Ressurs sunn",
|
||||
"alertingTriggerResourceUnhealthy": "Ressurs usunn",
|
||||
"alertingSearchHealthChecks": "Søk i helsekontroller…",
|
||||
"alertingHealthChecksEmpty": "Ingen tilgjengelige helsekontroller.",
|
||||
"alertingTriggerResourceToggle": "Endringer i ressursstatus",
|
||||
"alertingSourceResource": "Ressurs",
|
||||
"alertingSectionActions": "Handlinger",
|
||||
"alertingAddAction": "Legg til handling",
|
||||
"alertingActionNotify": "E-post",
|
||||
"alertingActionNotifyDescription": "Send e-postvarsler til brukere eller roller",
|
||||
"alertingActionWebhook": "Webhook",
|
||||
"alertingActionWebhookDescription": "Send en HTTP-forespørsel til et tilpasset endepunkt",
|
||||
"alertingExternalIntegration": "Ekstern integrasjon",
|
||||
"alertingExternalPagerDutyDescription": "Send varsler til PagerDuty for hendelseshåndtering",
|
||||
"alertingExternalOpsgenieDescription": "Rute varsler til Opsgenie for vakt håndtering",
|
||||
"alertingExternalServiceNowDescription": "Opprett ServiceNow hendelser fra varslingseventer",
|
||||
"alertingExternalIncidentIoDescription": "Utløs Incident.io arbeidsflyter fra varsels begivenheter",
|
||||
"alertingActionType": "Handlings type",
|
||||
"alertingNotifyUsers": "Brukere",
|
||||
"alertingNotifyRoles": "Roller",
|
||||
"alertingNotifyEmails": "E-postadresser",
|
||||
"alertingEmailPlaceholder": "Legg til e-post og trykk Enter",
|
||||
"alertingWebhookMethod": "HTTP-metode",
|
||||
"alertingWebhookSecret": "Signeringshemmelig (valgfritt)",
|
||||
"alertingWebhookSecretPlaceholder": "HMAC-hemmelig",
|
||||
"alertingWebhookHeaders": "Overskrifter",
|
||||
"alertingAddHeader": "Legg til header",
|
||||
"alertingSelectSites": "Velg områder…",
|
||||
"alertingSitesSelected": "{count} områder valgt",
|
||||
"alertingSelectHealthChecks": "Velg helsekontroller…",
|
||||
"alertingHealthChecksSelected": "{count} helsekontroller valgt",
|
||||
"alertingNoHealthChecks": "Ingen mål med helsekontroller aktivert",
|
||||
"alertingHealthCheckStub": "Valg av helsekontrollkilde er ikke sluttført ennå - du kan fortsatt konfigurere triggere og handlinger.",
|
||||
"alertingSelectUsers": "Velg brukere…",
|
||||
"alertingUsersSelected": "{count} brukere valgt",
|
||||
"alertingSelectRoles": "Velg roller…",
|
||||
"alertingRolesSelected": "{count} roller valgt",
|
||||
"alertingSummarySites": "Områder ({count})",
|
||||
"alertingSummaryAllSites": "Alle områder",
|
||||
"alertingSummaryHealthChecks": "Helsekontroller ({count})",
|
||||
"alertingSummaryAllHealthChecks": "Alle helsekoner",
|
||||
"alertingSummaryResources": "Ressurser ({count})",
|
||||
"alertingSummaryAllResources": "Alle ressurser",
|
||||
"alertingErrorNameRequired": "Skriv inn et navn",
|
||||
"alertingErrorActionsMin": "Legg til minst én handling",
|
||||
"alertingErrorPickSites": "Velg minst ett område",
|
||||
"alertingErrorPickHealthChecks": "Velg minst én helsekontroll",
|
||||
"alertingErrorPickResources": "Velg minst én ressurs",
|
||||
"alertingErrorTriggerSite": "Velg en triggetjeneste for nettsted",
|
||||
"alertingErrorTriggerHealth": "Velg en triggetjeneste for helsekontroll",
|
||||
"alertingErrorTriggerResource": "Velg en triggetjeneste for ressurs",
|
||||
"alertingErrorNotifyRecipients": "Velg brukere, roller, eller minst én e-post",
|
||||
"alertingConfigureSource": "Konfigurer kilde",
|
||||
"alertingConfigureTrigger": "Konfigurer trigger",
|
||||
"alertingConfigureActions": "Konfigurer handlinger",
|
||||
"alertingBackToRules": "Tilbake til regler",
|
||||
"alertingRuleCooldown": "Nedkjøling (sekunder)",
|
||||
"alertingRuleCooldownDescription": "Minimum tid mellom gjentatte varsler for samme regel. Sett til 0 for å skyte hver gang.",
|
||||
"alertingDraftBadge": "Utkast - lagre for å lagre denne regelen",
|
||||
"alertingSidebarHint": "Klikk på et steg på lerretet for å redigere det her.",
|
||||
"alertingGraphCanvasTitle": "Regel Flyt",
|
||||
"alertingGraphCanvasDescription": "Visuell oversikt over kilde, trigger og handlinger. Velg en node for å redigere den i panelet.",
|
||||
"alertingNodeNotConfigured": "Ikke konfigurert ennå",
|
||||
"alertingNodeActionsCount": "{count, plural, one {# handling} other {# handlinger}}",
|
||||
"alertingNodeRoleSource": "Kilde",
|
||||
"alertingNodeRoleTrigger": "Utløser",
|
||||
"alertingNodeRoleAction": "Handling",
|
||||
"alertingTabRules": "Varslingsregler",
|
||||
"alertingTabHealthChecks": "Helsekontroller",
|
||||
"alertingRulesBannerTitle": "Bli varslet",
|
||||
"alertingRulesBannerDescription": "Hver regel binder sammen hva som skal overvåkes (et område, helsekontroll eller ressurs), når det skal varsles (for eksempel offline eller usunn), og hvordan varsle teamet ditt via e-post, webhooks eller integrasjoner. Bruk denne listen for å opprette, aktivere og administrere disse reglene.",
|
||||
"alertingHealthChecksBannerTitle": "Overvåk helse & ressurser",
|
||||
"alertingHealthChecksBannerDescription": "Helsekontroller er HTTP- eller TCP-monitorer du definerer én gang. Du kan deretter bruke dem som kilder i varslingsregler slik at du blir varslet når et mål blir sunt eller usunt. Helsekontroller på ressurser vises også her.",
|
||||
"standaloneHcTableTitle": "Helsekontroller",
|
||||
"standaloneHcSearchPlaceholder": "Søk i helsekontroller…",
|
||||
"standaloneHcAddButton": "Opprett helsekontroll",
|
||||
"standaloneHcCreateTitle": "Opprett helsekontroll",
|
||||
"standaloneHcEditTitle": "Rediger helsekontroll",
|
||||
"standaloneHcDescription": "Konfigurer en HTTP- eller TCP-helsekontroll for bruk i varslingsregler.",
|
||||
"standaloneHcNameLabel": "Navn",
|
||||
"standaloneHcNamePlaceholder": "Min HTTP-monitor",
|
||||
"standaloneHcDeleteTitle": "Slett helsekontroll",
|
||||
"standaloneHcDeleteQuestion": "Vennligst bekreft at du vil slette denne helsekontrollen.",
|
||||
"standaloneHcDeleted": "Helsekontroll slettet",
|
||||
"standaloneHcSaved": "Helsekontroll lagret",
|
||||
"standaloneHcColumnHealth": "Helse",
|
||||
"standaloneHcColumnMode": "Modus",
|
||||
"standaloneHcColumnTarget": "Mål",
|
||||
"standaloneHcHealthStateHealthy": "Sunn",
|
||||
"standaloneHcHealthStateUnhealthy": "Usunn",
|
||||
"standaloneHcHealthStateUnknown": "Ukjent",
|
||||
"standaloneHcFilterAnySite": "Alle områder",
|
||||
"standaloneHcFilterAnyResource": "Alle ressurser",
|
||||
"standaloneHcFilterMode": "Modus",
|
||||
"standaloneHcFilterModeHttp": "HTTP",
|
||||
"standaloneHcFilterModeTcp": "TCP",
|
||||
"standaloneHcFilterModeSnmp": "SNMP",
|
||||
"standaloneHcFilterModePing": "Ping",
|
||||
"standaloneHcFilterHealth": "Helse",
|
||||
"standaloneHcFilterEnabled": "Aktivert",
|
||||
"standaloneHcFilterEnabledOn": "Aktivert",
|
||||
"standaloneHcFilterEnabledOff": "Deaktivert",
|
||||
"standaloneHcFilterSiteIdFallback": "Område {id}",
|
||||
"standaloneHcFilterResourceIdFallback": "Ressurs {id}",
|
||||
"blueprints": "Tegninger",
|
||||
"blueprintsDescription": "Bruk deklarative konfigurasjoner og vis tidligere kjøringer",
|
||||
"blueprintAdd": "Legg til blåkopi",
|
||||
@@ -1762,6 +1935,15 @@
|
||||
"healthCheckIntervalMin": "Sjekkeintervallet må være minst 5 sekunder",
|
||||
"healthCheckTimeoutMin": "Timeout må være minst 1 sekund",
|
||||
"healthCheckRetryMin": "Forsøk på nytt må være minst 1",
|
||||
"healthCheckMode": "Sjekk modus",
|
||||
"healthCheckStrategy": "Strategi",
|
||||
"healthCheckModeDescription": "TCP-modus verifiserer kun tilkobling. HTTP-modus validerer HTTP-responsen.",
|
||||
"healthyThreshold": "Sunnhets terskel",
|
||||
"healthyThresholdDescription": "Suksesser på rad som kreves før man markerer som sunn.",
|
||||
"unhealthyThreshold": "Usunn terskel",
|
||||
"unhealthyThresholdDescription": "Feil på rad som kreves før man markerer som usunn.",
|
||||
"healthCheckHealthyThresholdMin": "Sunnhet terskel må være minst 1",
|
||||
"healthCheckUnhealthyThresholdMin": "Usunn terskel må være minst 1",
|
||||
"httpMethod": "HTTP-metode",
|
||||
"selectHttpMethod": "Velg HTTP-metode",
|
||||
"domainPickerSubdomainLabel": "Underdomene",
|
||||
@@ -1821,6 +2003,11 @@
|
||||
"editInternalResourceDialogModePort": "Port",
|
||||
"editInternalResourceDialogModeHost": "Vert",
|
||||
"editInternalResourceDialogModeCidr": "CIDR",
|
||||
"editInternalResourceDialogModeHttp": "HTTP",
|
||||
"editInternalResourceDialogModeHttps": "HTTPS",
|
||||
"editInternalResourceDialogScheme": "Skjema",
|
||||
"editInternalResourceDialogEnableSsl": "Aktiver SSL",
|
||||
"editInternalResourceDialogEnableSslDescription": "Aktiver SSL/TLS-kryptering for sikre HTTPS-tilkoblinger til destinasjonen.",
|
||||
"editInternalResourceDialogDestination": "Destinasjon",
|
||||
"editInternalResourceDialogDestinationHostDescription": "IP-adressen eller vertsnavnet til ressursen på nettstedets nettverk.",
|
||||
"editInternalResourceDialogDestinationIPDescription": "IP eller vertsnavn til ressursen på nettstedets nettverk.",
|
||||
@@ -1836,6 +2023,7 @@
|
||||
"createInternalResourceDialogName": "Navn",
|
||||
"createInternalResourceDialogSite": "Område",
|
||||
"selectSite": "Velg område...",
|
||||
"multiSitesSelectorSitesCount": "{count, plural, one {# sted} other {# steder}}",
|
||||
"noSitesFound": "Ingen områder funnet.",
|
||||
"createInternalResourceDialogProtocol": "Protokoll",
|
||||
"createInternalResourceDialogTcp": "TCP",
|
||||
@@ -1864,11 +2052,19 @@
|
||||
"createInternalResourceDialogModePort": "Port",
|
||||
"createInternalResourceDialogModeHost": "Vert",
|
||||
"createInternalResourceDialogModeCidr": "CIDR",
|
||||
"createInternalResourceDialogModeHttp": "HTTP",
|
||||
"createInternalResourceDialogModeHttps": "HTTPS",
|
||||
"scheme": "Skjema",
|
||||
"createInternalResourceDialogScheme": "Skjema",
|
||||
"createInternalResourceDialogEnableSsl": "Aktiver SSL",
|
||||
"createInternalResourceDialogEnableSslDescription": "Aktiver SSL/TLS-kryptering for sikre HTTPS-tilkoblinger til destinasjonen.",
|
||||
"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.",
|
||||
"internalResourceDownstreamSchemeRequired": "Skjema er påkrevd for HTTP-ressurser",
|
||||
"internalResourceHttpPortRequired": "Destinasjonsport er nødvendig for HTTP-ressurser",
|
||||
"siteConfiguration": "Konfigurasjon",
|
||||
"siteAcceptClientConnections": "Godta klientforbindelser",
|
||||
"siteAcceptClientConnectionsDescription": "Tillat brukere og klienter å få tilgang til ressurser på denne siden. Dette kan endres senere.",
|
||||
@@ -2026,7 +2222,7 @@
|
||||
},
|
||||
"internationaldomaindetected": "Internasjonalt domene oppdaget",
|
||||
"willbestoredas": "Vil bli lagret som:",
|
||||
"roleMappingDescription": "Bestem hvordan roller tilordnes brukere når innloggingen er aktivert når autog-rapportering er aktivert.",
|
||||
"roleMappingDescription": "Bestem hvordan roller tildeles brukere når de logger inn med denne identitetsleverandøren.",
|
||||
"selectRole": "Velg en rolle",
|
||||
"roleMappingExpression": "Uttrykk",
|
||||
"selectRolePlaceholder": "Velg en rolle",
|
||||
@@ -2428,6 +2624,7 @@
|
||||
"validPassword": "Gyldig passord",
|
||||
"validEmail": "Valid email",
|
||||
"validSSO": "Valid SSO",
|
||||
"connectedClient": "Tilkoblet klient",
|
||||
"resourceBlocked": "Ressurs blokkert",
|
||||
"droppedByRule": "Legg i regelen",
|
||||
"noSessions": "Ingen økter",
|
||||
@@ -2667,6 +2864,10 @@
|
||||
"editInternalResourceDialogDestinationLabel": "Destinasjon",
|
||||
"editInternalResourceDialogDestinationDescription": "Spesifiser destinasjonsadressen for den interne ressursen. Dette kan være et vertsnavn, IP-adresse eller CIDR-sjikt avhengig av valgt modus. Valgfrie oppsett av intern DNS-alias for enklere identifikasjon.",
|
||||
"editInternalResourceDialogPortRestrictionsDescription": "Begrens tilgang til spesifikke TCP/UDP-porter eller tillate/blokkere alle porter.",
|
||||
"createInternalResourceDialogHttpConfiguration": "HTTP-konfigurasjon",
|
||||
"createInternalResourceDialogHttpConfigurationDescription": "Velg domenet klienter vil bruke for å nå denne ressursen via HTTP eller HTTPS.",
|
||||
"editInternalResourceDialogHttpConfiguration": "HTTP-konfigurasjon",
|
||||
"editInternalResourceDialogHttpConfigurationDescription": "Velg domenet klienter vil bruke for å nå denne ressursen via HTTP eller HTTPS.",
|
||||
"editInternalResourceDialogTcp": "TCP",
|
||||
"editInternalResourceDialogUdp": "UDP",
|
||||
"editInternalResourceDialogIcmp": "ICMP",
|
||||
@@ -2705,6 +2906,8 @@
|
||||
"maintenancePageMessagePlaceholder": "Vi kommer snart tilbake! Vårt nettsted gjennomgår for øyeblikket planlagt vedlikehold.",
|
||||
"maintenancePageMessageDescription": "Detaljert beskjed som forklarer vedlikeholdet",
|
||||
"maintenancePageTimeTitle": "Estimert ferdigstillelsestid (Valgfritt)",
|
||||
"privateMaintenanceScreenTitle": "Privat plassholder skjerm",
|
||||
"privateMaintenanceScreenMessage": "Dette domenet brukes på en privatressurs. Koble til ved å bruke Pangolin-klienten for å få tilgang til denne ressursen.",
|
||||
"maintenanceTime": "f.eks. 2 timer, 1. november kl. 17:00",
|
||||
"maintenanceEstimatedTimeDescription": "Når du forventer at vedlikeholdet er ferdigstilt",
|
||||
"editDomain": "Rediger domene",
|
||||
@@ -2842,6 +3045,14 @@
|
||||
"httpDestAddTitle": "Legg til HTTP-destinasjon",
|
||||
"httpDestEditDescription": "Oppdater konfigurasjonen for denne HTTP-hendelsesstrømmedestinasjonen.",
|
||||
"httpDestAddDescription": "Konfigurer et nytt HTTP endepunkt for å motta organisasjonens hendelser.",
|
||||
"S3DestEditTitle": "Rediger destinasjon",
|
||||
"S3DestAddTitle": "Legg til S3 destinasjon",
|
||||
"S3DestEditDescription": "Oppdatere konfigurasjonen for denne S3-hendelsesstrømmingsdestinasjonen.",
|
||||
"S3DestAddDescription": "Konfigurer et nytt S3-endepunkt for å motta organisasjonens hendelser.",
|
||||
"datadogDestEditTitle": "Rediger destinasjon",
|
||||
"datadogDestAddTitle": "Legg til Datadog destinasjon",
|
||||
"datadogDestEditDescription": "Oppdatere konfigurasjonen for denne Datadog-hendelsesstrømmingsdestinasjonen.",
|
||||
"datadogDestAddDescription": "Konfigurer et nytt Datadog-endepunkt for å motta organisasjonens hendelser.",
|
||||
"httpDestTabSettings": "Innstillinger",
|
||||
"httpDestTabHeaders": "Overskrifter",
|
||||
"httpDestTabBody": "Innhold",
|
||||
@@ -2881,7 +3092,7 @@
|
||||
"httpDestFormatJsonArrayTitle": "JSON liste",
|
||||
"httpDestFormatJsonArrayDescription": "Én forespørsel per batch, innholdet er en JSON-liste. Kompatibel med de mest generiske webhooks og Datadog.",
|
||||
"httpDestFormatNdjsonTitle": "NDJSON",
|
||||
"httpDestFormatNdjsonDescription": "Én forespørsel per sats, innholdet er nytt avgrenset JSON — et objekt per linje, ingen ytterarray. Kreves av Splunk HEC, Elastisk/OpenSearch, og Grafana Loki.",
|
||||
"httpDestFormatNdjsonDescription": "Én forespørsel per sats, innholdet er nytt avgrenset JSON - et objekt per linje, ingen ytterarray. Kreves av Splunk HEC, Elastisk/OpenSearch, og Grafana Loki.",
|
||||
"httpDestFormatSingleTitle": "En hendelse per forespørsel",
|
||||
"httpDestFormatSingleDescription": "Sender en separat HTTP POST for hver enkelt hendelse. Bruk bare for endepunkter som ikke kan håndtere batcher.",
|
||||
"httpDestLogTypesTitle": "Logg typer",
|
||||
@@ -2899,5 +3110,37 @@
|
||||
"httpDestUpdatedSuccess": "Målet er oppdatert",
|
||||
"httpDestCreatedSuccess": "Målet er opprettet",
|
||||
"httpDestUpdateFailed": "Kunne ikke oppdatere destinasjon",
|
||||
"httpDestCreateFailed": "Kan ikke opprette mål"
|
||||
"httpDestCreateFailed": "Kan ikke opprette mål",
|
||||
"followRedirects": "Følg videresendinger",
|
||||
"followRedirectsDescription": "Følg automatisk HTTP-videresendinger for forespørsler.",
|
||||
"alertingErrorWebhookUrl": "Vennligst skriv inn en gyldig URL for webhooken.",
|
||||
"healthCheckStrategyHttp": "Validerer tilkobling og sjekker HTTP-responsstatus.",
|
||||
"healthCheckStrategyTcp": "Bekrefter kun TCP-tilkobling, uten å inspisere responsen.",
|
||||
"healthCheckStrategySnmp": "Utfører en SNMP get-forespørsel for å sjekke helsen til nettverksenheter og infrastruktur.",
|
||||
"healthCheckStrategyIcmp": "Bruker ICMP ekko forespørsler (ping) for å sjekke om en ressurs er tilgjengelig og responsiv.",
|
||||
"healthCheckTabStrategy": "Strategi",
|
||||
"healthCheckTabConnection": "Tilkobling",
|
||||
"healthCheckTabAdvanced": "Avansert",
|
||||
"healthCheckStrategyNotAvailable": "Denne strategien er ikke tilgjengelig. Vennligst kontakt salgsavdelingen for å aktivere denne funksjonen.",
|
||||
"uptime30d": "Oppetid (30d)",
|
||||
"idpAddActionCreateNew": "Opprett ny identitetsleverandør",
|
||||
"idpAddActionImportFromOrg": "Importer fra en annen organisasjon",
|
||||
"idpImportDialogTitle": "Importer identitetsleverandør",
|
||||
"idpImportDialogDescription": "Velg en identitetsleverandør fra en organisasjon der du er admin. Den vil bli knyttet til denne organisasjonen.",
|
||||
"idpImportSearchPlaceholder": "Søk etter organisasjons- eller leverandørnavn...",
|
||||
"idpImportEmpty": "Ingen identitetsleverandører funnet.",
|
||||
"idpImportedDescription": "Identitetsleverandøren ble importert vellykket.",
|
||||
"idpDeleteGlobalQuestion": "Er du sikker på at du vil slette denne identitetsleverandøren permanent?",
|
||||
"idpDeleteGlobalDescription": "Dette vil slette identitetsleverandøren permanent fra alle organisasjoner den er tilknyttet.",
|
||||
"idpUnassociateTitle": "Frakoble identitetsleverandør",
|
||||
"idpUnassociateQuestion": "Er du sikker på at du vil frakoble denne identitetsleverandøren fra denne organisasjonen?",
|
||||
"idpUnassociateDescription": "Alle brukere knyttet til denne identitetsleverandøren vil bli fjernet fra denne organisasjonen, men identitetsleverandøren vil fortsatt eksistere for andre tilknyttede organisasjoner.",
|
||||
"idpUnassociateConfirm": "Bekreft frakobling av identitetsleverandør",
|
||||
"idpUnassociateWarning": "Dette kan ikke angres for denne organisasjonen.",
|
||||
"idpUnassociatedDescription": "Identitetsleverandør er vellykket frakoblet fra denne organisasjonen",
|
||||
"idpUnassociateMenu": "Frakoble",
|
||||
"idpDeleteAllOrgsMenu": "Slett",
|
||||
"publicIpEndpoint": "Endepunkt",
|
||||
"lastTriggeredAt": "Siste utløste",
|
||||
"reject": "Avvis"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"contactSalesEnable": "Neem contact op met de verkoopafdeling om deze functie in te schakelen.",
|
||||
"contactSalesBookDemo": "Boek een demo",
|
||||
"contactSalesOr": "of",
|
||||
"contactSalesContactUs": "neem contact met ons op",
|
||||
"setupCreate": "Maak de organisatie, site en bronnen aan",
|
||||
"headerAuthCompatibilityInfo": "Schakel dit in om een 401 Niet Geautoriseerd antwoord af te dwingen wanneer een authenticatietoken ontbreekt. Dit is vereist voor browsers of specifieke HTTP-bibliotheken die geen referenties verzenden zonder een serveruitdaging.",
|
||||
"headerAuthCompatibility": "Uitgebreide compatibiliteit",
|
||||
@@ -19,6 +23,14 @@
|
||||
"componentsInvalidKey": "Ongeldige of verlopen licentiesleutels gedetecteerd. Volg de licentievoorwaarden om alle functies te blijven gebruiken.",
|
||||
"dismiss": "Uitschakelen",
|
||||
"subscriptionViolationMessage": "U overschrijdt uw huidige abonnement. Corrigeer het probleem door sites, gebruikers of andere bronnen te verwijderen om binnen uw plan te blijven.",
|
||||
"trialBannerMessage": "Uw proefversie verloopt over {countdown}. Upgrade om toegang te behouden.",
|
||||
"trialBannerExpired": "Uw proefperiode is verlopen. Upgrade nu om toegang te herstellen.",
|
||||
"trialActive": "Gratis proefversie actief",
|
||||
"trialExpired": "Proefversie verlopen",
|
||||
"trialHasEnded": "Uw proefperiode is geëindigd.",
|
||||
"trialDaysRemaining": "{count, plural, one {# dag resterend} other {# dagen resterend}}",
|
||||
"trialDaysLeftShort": "{days}d over in proefversie",
|
||||
"trialGoToBilling": "Ga naar factureringspagina",
|
||||
"subscriptionViolationViewBilling": "Facturering bekijken",
|
||||
"componentsLicenseViolation": "Licentie overtreding: Deze server gebruikt {usedSites} sites die de gelicentieerde limiet van {maxSites} sites overschrijden. Volg de licentievoorwaarden om door te gaan met het gebruik van alle functies.",
|
||||
"componentsSupporterMessage": "Bedankt voor het ondersteunen van Pangolin als {tier}!",
|
||||
@@ -267,8 +279,11 @@
|
||||
"orgMissing": "Organisatie-ID ontbreekt",
|
||||
"orgMissingMessage": "Niet in staat om de uitnodiging te regenereren zonder organisatie-ID.",
|
||||
"accessUsersManage": "Gebruikers beheren",
|
||||
"accessUserManage": "Beheer gebruiker",
|
||||
"accessUsersDescription": "Nodig uit en beheer gebruikers met toegang tot deze organisatie",
|
||||
"accessUsersSearch": "Gebruikers zoeken...",
|
||||
"accessUsersRoleFilterCount": "{count, plural, one {# rol} other {# rollen}}",
|
||||
"accessUsersRoleFilterClear": "Rolfilters wissen",
|
||||
"accessUserCreate": "Gebruiker aanmaken",
|
||||
"accessUserRemove": "Gebruiker verwijderen",
|
||||
"username": "Gebruikersnaam",
|
||||
@@ -898,6 +913,7 @@
|
||||
"idpDisplayName": "Een weergavenaam voor deze identiteitsprovider",
|
||||
"idpAutoProvisionUsers": "Auto Provisie Gebruikers",
|
||||
"idpAutoProvisionUsersDescription": "Wanneer ingeschakeld, worden gebruikers automatisch in het systeem aangemaakt wanneer ze de eerste keer inloggen met de mogelijkheid om gebruikers toe te wijzen aan rollen en organisaties.",
|
||||
"idpAutoProvisionConfigureAfterCreate": "U kunt automatische voorzieningsinstellingen configureren zodra de identiteitsprovider is aangemaakt.",
|
||||
"licenseBadge": "EE",
|
||||
"idpType": "Type provider",
|
||||
"idpTypeDescription": "Selecteer het type identiteitsprovider dat u wilt configureren",
|
||||
@@ -949,7 +965,7 @@
|
||||
"defaultMappingsRole": "Standaard Rol Toewijzing",
|
||||
"defaultMappingsRoleDescription": "Het resultaat van deze uitdrukking moet de rolnaam zoals gedefinieerd in de organisatie als tekenreeks teruggeven.",
|
||||
"defaultMappingsOrg": "Standaard organisatie mapping",
|
||||
"defaultMappingsOrgDescription": "Deze expressie moet de org-ID teruggeven of waar om de gebruiker toegang te geven tot de organisatie.",
|
||||
"defaultMappingsOrgDescription": "Wanneer ingesteld, moet deze expressie de organisatie-ID of waar retourneren voor de gebruiker om toegang te krijgen tot die organisatie. Als het niet is ingesteld, is het definiëren van een roltoewijzing voldoende: de gebruiker is toegestaan zolang een geldige roltoewijzing voor hen binnen de organisatie kan worden opgelost.",
|
||||
"defaultMappingsSubmit": "Standaard toewijzingen opslaan",
|
||||
"orgPoliciesEdit": "Organisatie beleid bewerken",
|
||||
"org": "Organisatie",
|
||||
@@ -1256,6 +1272,7 @@
|
||||
"actionViewLogs": "Logboeken bekijken",
|
||||
"noneSelected": "Niet geselecteerd",
|
||||
"orgNotFound2": "Geen organisaties gevonden.",
|
||||
"search": "Zoeken…",
|
||||
"searchPlaceholder": "Zoeken...",
|
||||
"emptySearchOptions": "Geen opties gevonden",
|
||||
"create": "Aanmaken",
|
||||
@@ -1340,10 +1357,166 @@
|
||||
"sidebarGeneral": "Beheren",
|
||||
"sidebarLogAndAnalytics": "Log & Analytics",
|
||||
"sidebarBluePrints": "Blauwdrukken",
|
||||
"sidebarAlerting": "Waarschuwingen",
|
||||
"sidebarHealthChecks": "Gezondheidscontroles",
|
||||
"sidebarOrganization": "Organisatie",
|
||||
"sidebarManagement": "Beheer",
|
||||
"sidebarBillingAndLicenses": "Facturatie & Licenties",
|
||||
"sidebarLogsAnalytics": "Analyses",
|
||||
"alertingTitle": "Waarschuwingen",
|
||||
"alertingDescription": "Definieer bronnen, triggers en acties voor meldingen",
|
||||
"alertingRules": "Waarschuwingsregels",
|
||||
"alertingSearchRules": "Zoek regels…",
|
||||
"alertingAddRule": "Regel aanmaken",
|
||||
"alertingColumnSource": "Bron",
|
||||
"alertingColumnTrigger": "Trigger",
|
||||
"alertingColumnActions": "Acties",
|
||||
"alertingColumnEnabled": "Ingeschakeld",
|
||||
"alertingDeleteQuestion": "Bevestig alstublieft dat u deze waarschuwingsregel wilt verwijderen.",
|
||||
"alertingDeleteRule": "Verwijder waarschuwingsregel",
|
||||
"alertingRuleDeleted": "Waarschuwingsregel verwijderd",
|
||||
"alertingRuleSaved": "Waarschuwingsregel opgeslagen",
|
||||
"alertingRuleSavedCreatedDescription": "Uw nieuwe waarschuwingsregel is aangemaakt. U kunt deze op deze pagina blijven bewerken.",
|
||||
"alertingRuleSavedUpdatedDescription": "Uw wijzigingen in deze waarschuwingsregel zijn opgeslagen.",
|
||||
"alertingEditRule": "Bewerk waarschuwingsregel",
|
||||
"alertingCreateRule": "Waarschuwingsregel aanmaken",
|
||||
"alertingRuleCredenzaDescription": "Kies wat te bekijken, wanneer het moet gebeuren en hoe te waarschuwen",
|
||||
"alertingRuleNamePlaceholder": "Productiesite offline",
|
||||
"alertingRuleEnabled": "Regel ingeschakeld",
|
||||
"alertingSectionSource": "Bron",
|
||||
"alertingSourceType": "Brontype",
|
||||
"alertingSourceSite": "Site",
|
||||
"alertingSourceHealthCheck": "Gezondheidscontrole",
|
||||
"alertingPickSites": "Sites",
|
||||
"alertingPickHealthChecks": "Gezondheidscontroles",
|
||||
"alertingPickResources": "Bronnen",
|
||||
"alertingAllSites": "Alle sites",
|
||||
"alertingAllSitesDescription": "Waarschuwing voor elke site",
|
||||
"alertingSpecificSites": "Specifieke sites",
|
||||
"alertingSpecificSitesDescription": "Kies specifieke sites om in de gaten te houden",
|
||||
"alertingAllHealthChecks": "Alle Gezondheidscontroles",
|
||||
"alertingAllHealthChecksDescription": "Waarschuwing voor elke gezondheidscontrole",
|
||||
"alertingSpecificHealthChecks": "Specifieke Gezondheidscontroles",
|
||||
"alertingSpecificHealthChecksDescription": "Kies specifieke gezondheidscontroles om in de gaten te houden",
|
||||
"alertingAllResources": "Alle bronnen",
|
||||
"alertingAllResourcesDescription": "Waarschuwing voor elke bron",
|
||||
"alertingSpecificResources": "Specifieke bronnen",
|
||||
"alertingSpecificResourcesDescription": "Kies specifieke bronnen om in de gaten te houden",
|
||||
"alertingSelectResources": "Selecteer bronnen…",
|
||||
"alertingResourcesSelected": "{count} bronnen geselecteerd",
|
||||
"alertingResourcesEmpty": "Geen bronnen met doelen in de eerste 10 resultaten.",
|
||||
"alertingSectionTrigger": "Trigger",
|
||||
"alertingTrigger": "Wanneer te waarschuwen",
|
||||
"alertingTriggerSiteOnline": "Site online",
|
||||
"alertingTriggerSiteOffline": "Site offline",
|
||||
"alertingTriggerSiteToggle": "Site status wijzigt",
|
||||
"alertingTriggerHcHealthy": "Gezondheidscontrole gezond",
|
||||
"alertingTriggerHcUnhealthy": "Gezondheidscontrole ongezond",
|
||||
"alertingTriggerHcToggle": "Gezondheidscontrole status verandert",
|
||||
"alertingTriggerResourceHealthy": "Bron gezond",
|
||||
"alertingTriggerResourceUnhealthy": "Bron ongezond",
|
||||
"alertingSearchHealthChecks": "Zoek gezondheidscontroles…",
|
||||
"alertingHealthChecksEmpty": "Geen gezondheidscontroles beschikbaar.",
|
||||
"alertingTriggerResourceToggle": "Bronstatus wijzigt",
|
||||
"alertingSourceResource": "Bron",
|
||||
"alertingSectionActions": "Acties",
|
||||
"alertingAddAction": "Actie toevoegen",
|
||||
"alertingActionNotify": "E-mail",
|
||||
"alertingActionNotifyDescription": "Stuur e-mailmeldingen naar gebruikers of rollen",
|
||||
"alertingActionWebhook": "Webhook",
|
||||
"alertingActionWebhookDescription": "Stuur een HTTP-verzoek naar een aangepast eindpunt",
|
||||
"alertingExternalIntegration": "Externe integratie",
|
||||
"alertingExternalPagerDutyDescription": "Stuur waarschuwingen naar PagerDuty voor incidentbeheer",
|
||||
"alertingExternalOpsgenieDescription": "Routeer waarschuwingen naar Opsgenie voor wachtdienstbeheer",
|
||||
"alertingExternalServiceNowDescription": "Maak ServiceNow-incidenten aan vanuit waarschuwingsgebeurtenissen",
|
||||
"alertingExternalIncidentIoDescription": "Trigger Incident.io workflows van waarschuwingsgebeurtenissen",
|
||||
"alertingActionType": "Actietype",
|
||||
"alertingNotifyUsers": "Gebruikers",
|
||||
"alertingNotifyRoles": "Rollen",
|
||||
"alertingNotifyEmails": "E-mailadressen",
|
||||
"alertingEmailPlaceholder": "Voeg e-mail toe en druk op Enter",
|
||||
"alertingWebhookMethod": "HTTP-methode",
|
||||
"alertingWebhookSecret": "Ondertekengeheim (optioneel)",
|
||||
"alertingWebhookSecretPlaceholder": "HMAC-geheim",
|
||||
"alertingWebhookHeaders": "Headers",
|
||||
"alertingAddHeader": "Header toevoegen",
|
||||
"alertingSelectSites": "Selecteer sites…",
|
||||
"alertingSitesSelected": "{count} sites geselecteerd",
|
||||
"alertingSelectHealthChecks": "Selecteer gezondheidscontroles…",
|
||||
"alertingHealthChecksSelected": "{count} gezondheidscontroles geselecteerd",
|
||||
"alertingNoHealthChecks": "Geen doelen met ingeschakelde gezondheidscontroles",
|
||||
"alertingHealthCheckStub": "Gezondheidscontrole brondeselectie is nog niet gekoppeld - u kunt nog steeds triggers en acties configureren.",
|
||||
"alertingSelectUsers": "Selecteer gebruikers…",
|
||||
"alertingUsersSelected": "{count} gebruikers geselecteerd",
|
||||
"alertingSelectRoles": "Selecteer rollen…",
|
||||
"alertingRolesSelected": "{count} rollen geselecteerd",
|
||||
"alertingSummarySites": "Sites ({count})",
|
||||
"alertingSummaryAllSites": "Alle sites",
|
||||
"alertingSummaryHealthChecks": "Gezondheidscontroles ({count})",
|
||||
"alertingSummaryAllHealthChecks": "Alle gezondheidscontroles",
|
||||
"alertingSummaryResources": "Bronnen ({count})",
|
||||
"alertingSummaryAllResources": "Alle bronnen",
|
||||
"alertingErrorNameRequired": "Voer een naam in",
|
||||
"alertingErrorActionsMin": "Voeg minimaal één actie toe",
|
||||
"alertingErrorPickSites": "Selecteer minimaal één site",
|
||||
"alertingErrorPickHealthChecks": "Selecteer minimaal één gezondheidscontrole",
|
||||
"alertingErrorPickResources": "Selecteer minimaal één bron",
|
||||
"alertingErrorTriggerSite": "Kies een site-trigger",
|
||||
"alertingErrorTriggerHealth": "Kies een gezondheidscontrole-trigger",
|
||||
"alertingErrorTriggerResource": "Kies een bron-trigger",
|
||||
"alertingErrorNotifyRecipients": "Kies gebruikers, rollen of ten minste één e-mail",
|
||||
"alertingConfigureSource": "Bron configureren",
|
||||
"alertingConfigureTrigger": "Trigger configureren",
|
||||
"alertingConfigureActions": "Acties configureren",
|
||||
"alertingBackToRules": "Terug naar regels",
|
||||
"alertingRuleCooldown": "Aflkoelperiode (seconden)",
|
||||
"alertingRuleCooldownDescription": "Minimale tijd tussen herhaalwaarschuwingen voor dezelfde regel. Zet op 0 om elke keer te laten vuren.",
|
||||
"alertingDraftBadge": "Concept - opslaan om deze regel op te slaan",
|
||||
"alertingSidebarHint": "Klik op een stap in het canvas om deze hier te bewerken.",
|
||||
"alertingGraphCanvasTitle": "Regelstroom",
|
||||
"alertingGraphCanvasDescription": "Visueel overzicht van bron, trigger en acties. Selecteer een node om deze in het paneel te bewerken.",
|
||||
"alertingNodeNotConfigured": "Nog niet geconfigureerd",
|
||||
"alertingNodeActionsCount": "{count, plural, one {# actie} other {# acties}}",
|
||||
"alertingNodeRoleSource": "Bron",
|
||||
"alertingNodeRoleTrigger": "Trigger",
|
||||
"alertingNodeRoleAction": "Actie",
|
||||
"alertingTabRules": "Waarschuwingsregels",
|
||||
"alertingTabHealthChecks": "Gezondheidscontroles",
|
||||
"alertingRulesBannerTitle": "Meldingen ontvangen",
|
||||
"alertingRulesBannerDescription": "Elke regel koppelt wat te bekijken (een site, gezondheidscontrole of bron), wanneer te vuren (bijvoorbeeld offline of ongezond), en hoe uw team te waarschuwen via e-mail, webhooks of integraties. Gebruik deze lijst om die regels te maken, in te schakelen en te beheren.",
|
||||
"alertingHealthChecksBannerTitle": "Gezondheid & bronnen bewaken",
|
||||
"alertingHealthChecksBannerDescription": "Gezondheidscontroles zijn HTTP- of TCP-monitoren die u één keer definieert. U kunt ze vervolgens als bronnen in waarschuwingsregels gebruiken, zodat u meldingen krijgt wanneer een doelwit gezond of ongezond wordt. Gezondheidscontroles van bronnen verschijnen ook hier.",
|
||||
"standaloneHcTableTitle": "Gezondheidscontroles",
|
||||
"standaloneHcSearchPlaceholder": "Zoek gezondheidscontroles…",
|
||||
"standaloneHcAddButton": "Gezondheidscontrole aanmaken",
|
||||
"standaloneHcCreateTitle": "Gezondheidscontrole aanmaken",
|
||||
"standaloneHcEditTitle": "Gezondheidscontrole bewerken",
|
||||
"standaloneHcDescription": "Configureer een HTTP- of TCP-gezondheidscontrole voor gebruik in waarschuwingsregels.",
|
||||
"standaloneHcNameLabel": "Naam",
|
||||
"standaloneHcNamePlaceholder": "Mijn HTTP-monitor",
|
||||
"standaloneHcDeleteTitle": "Gezondheidscontrole verwijderen",
|
||||
"standaloneHcDeleteQuestion": "Bevestig alstublieft dat u deze gezondheidscontrole wilt verwijderen.",
|
||||
"standaloneHcDeleted": "Gezondheidscontrole verwijderd",
|
||||
"standaloneHcSaved": "Gezondheidscontrole opgeslagen",
|
||||
"standaloneHcColumnHealth": "Gezondheid",
|
||||
"standaloneHcColumnMode": "Modus",
|
||||
"standaloneHcColumnTarget": "Doelwit",
|
||||
"standaloneHcHealthStateHealthy": "Gezond",
|
||||
"standaloneHcHealthStateUnhealthy": "Ongezond",
|
||||
"standaloneHcHealthStateUnknown": "Onbekend",
|
||||
"standaloneHcFilterAnySite": "Alle sites",
|
||||
"standaloneHcFilterAnyResource": "Alle bronnen",
|
||||
"standaloneHcFilterMode": "Modus",
|
||||
"standaloneHcFilterModeHttp": "HTTP",
|
||||
"standaloneHcFilterModeTcp": "TCP",
|
||||
"standaloneHcFilterModeSnmp": "SNMP",
|
||||
"standaloneHcFilterModePing": "Ping",
|
||||
"standaloneHcFilterHealth": "Gezondheid",
|
||||
"standaloneHcFilterEnabled": "Ingeschakeld",
|
||||
"standaloneHcFilterEnabledOn": "Ingeschakeld",
|
||||
"standaloneHcFilterEnabledOff": "Uitgeschakeld",
|
||||
"standaloneHcFilterSiteIdFallback": "Site {id}",
|
||||
"standaloneHcFilterResourceIdFallback": "Bron {id}",
|
||||
"blueprints": "Blauwdrukken",
|
||||
"blueprintsDescription": "Gebruik declaratieve configuraties en bekijk vorige uitvoeringen.",
|
||||
"blueprintAdd": "Blauwdruk toevoegen",
|
||||
@@ -1762,6 +1935,15 @@
|
||||
"healthCheckIntervalMin": "Controle interval moet minimaal 5 seconden zijn",
|
||||
"healthCheckTimeoutMin": "Timeout moet minimaal 1 seconde zijn",
|
||||
"healthCheckRetryMin": "Herhaal pogingen moet minimaal 1 zijn",
|
||||
"healthCheckMode": "Controlemodus",
|
||||
"healthCheckStrategy": "Strategie",
|
||||
"healthCheckModeDescription": "TCP-modus verifieert alleen connectiviteit. HTTP-modus valideert de HTTP-respons.",
|
||||
"healthyThreshold": "Gezonde drempel",
|
||||
"healthyThresholdDescription": "Opeenvolgende successen vereist voordat gemarkeerd wordt als gezond.",
|
||||
"unhealthyThreshold": "Ongezonde drempel",
|
||||
"unhealthyThresholdDescription": "Opeenvolgende fouten vereist voordat gemarkeerd wordt als ongezond.",
|
||||
"healthCheckHealthyThresholdMin": "Gezonde drempel moet minimaal 1 zijn",
|
||||
"healthCheckUnhealthyThresholdMin": "Ongezonde drempel moet minimaal 1 zijn",
|
||||
"httpMethod": "HTTP-methode",
|
||||
"selectHttpMethod": "Selecteer HTTP-methode",
|
||||
"domainPickerSubdomainLabel": "Subdomein",
|
||||
@@ -1821,6 +2003,11 @@
|
||||
"editInternalResourceDialogModePort": "Poort",
|
||||
"editInternalResourceDialogModeHost": "Hostnaam",
|
||||
"editInternalResourceDialogModeCidr": "CIDR",
|
||||
"editInternalResourceDialogModeHttp": "HTTP",
|
||||
"editInternalResourceDialogModeHttps": "HTTPS",
|
||||
"editInternalResourceDialogScheme": "Schema",
|
||||
"editInternalResourceDialogEnableSsl": "SSL inschakelen",
|
||||
"editInternalResourceDialogEnableSslDescription": "Schakel SSL/TLS-encryptie in voor beveiligde HTTPS-verbindingen met de bestemming.",
|
||||
"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.",
|
||||
@@ -1836,6 +2023,7 @@
|
||||
"createInternalResourceDialogName": "Naam",
|
||||
"createInternalResourceDialogSite": "Site",
|
||||
"selectSite": "Selecteer site...",
|
||||
"multiSitesSelectorSitesCount": "{count, plural, one {# site} other {# sites}}",
|
||||
"noSitesFound": "Geen sites gevonden.",
|
||||
"createInternalResourceDialogProtocol": "Protocol",
|
||||
"createInternalResourceDialogTcp": "TCP",
|
||||
@@ -1864,11 +2052,19 @@
|
||||
"createInternalResourceDialogModePort": "Poort",
|
||||
"createInternalResourceDialogModeHost": "Hostnaam",
|
||||
"createInternalResourceDialogModeCidr": "CIDR",
|
||||
"createInternalResourceDialogModeHttp": "HTTP",
|
||||
"createInternalResourceDialogModeHttps": "HTTPS",
|
||||
"scheme": "Schema",
|
||||
"createInternalResourceDialogScheme": "Schema",
|
||||
"createInternalResourceDialogEnableSsl": "SSL inschakelen",
|
||||
"createInternalResourceDialogEnableSslDescription": "Schakel SSL/TLS-encryptie in voor beveiligde HTTPS-verbindingen met de bestemming.",
|
||||
"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.",
|
||||
"internalResourceDownstreamSchemeRequired": "Schema is vereist voor HTTP-bronnen",
|
||||
"internalResourceHttpPortRequired": "Bestemmingspoort is vereist voor HTTP-bronnen",
|
||||
"siteConfiguration": "Configuratie",
|
||||
"siteAcceptClientConnections": "Accepteer clientverbindingen",
|
||||
"siteAcceptClientConnectionsDescription": "Sta gebruikersapparaten en clients toegang toe tot bronnen op deze site. Dit kan later worden gewijzigd.",
|
||||
@@ -2026,7 +2222,7 @@
|
||||
},
|
||||
"internationaldomaindetected": "Internationaal Domein Gedetecteerd",
|
||||
"willbestoredas": "Zal worden opgeslagen als:",
|
||||
"roleMappingDescription": "Bepaal hoe rollen worden toegewezen aan gebruikers wanneer ze inloggen wanneer Auto Provision is ingeschakeld.",
|
||||
"roleMappingDescription": "Bepaal hoe rollen aan gebruikers worden toegewezen wanneer ze zich aanmelden met deze identiteitsprovider.",
|
||||
"selectRole": "Selecteer een rol",
|
||||
"roleMappingExpression": "Expressie",
|
||||
"selectRolePlaceholder": "Kies een rol",
|
||||
@@ -2118,7 +2314,7 @@
|
||||
"selectDomainForOrgAuthPage": "Selecteer een domein voor de authenticatiepagina van de organisatie",
|
||||
"domainPickerProvidedDomain": "Opgegeven domein",
|
||||
"domainPickerFreeProvidedDomain": "Gratis verstrekt domein",
|
||||
"domainPickerFreeDomainsPaidFeature": "Geleverde domeinen zijn een betaalde functie. Abonneer je om een domein bij je plan te krijgen — je hoeft er zelf geen mee te brengen.",
|
||||
"domainPickerFreeDomainsPaidFeature": "Geleverde domeinen zijn een betaalde functie. Abonneer je om een domein bij je plan te krijgen - je hoeft er zelf geen mee te brengen.",
|
||||
"domainPickerVerified": "Geverifieerd",
|
||||
"domainPickerUnverified": "Ongeverifieerd",
|
||||
"domainPickerManual": "Handleiding",
|
||||
@@ -2428,6 +2624,7 @@
|
||||
"validPassword": "Geldig wachtwoord",
|
||||
"validEmail": "Valid email",
|
||||
"validSSO": "Valid SSO",
|
||||
"connectedClient": "Verbonden Client",
|
||||
"resourceBlocked": "Bron geblokkeerd",
|
||||
"droppedByRule": "Achtergelaten door regel",
|
||||
"noSessions": "Geen sessies",
|
||||
@@ -2667,6 +2864,10 @@
|
||||
"editInternalResourceDialogDestinationLabel": "Bestemming",
|
||||
"editInternalResourceDialogDestinationDescription": "Specificeer het bestemmingsadres voor de interne bron. Dit kan een hostnaam, IP-adres of CIDR-bereik zijn, afhankelijk van de geselecteerde modus. Stel optioneel een interne DNS-alias in voor eenvoudigere identificatie.",
|
||||
"editInternalResourceDialogPortRestrictionsDescription": "Beperk toegang tot specifieke TCP/UDP-poorten of sta alle poorten toe/blokkeer.",
|
||||
"createInternalResourceDialogHttpConfiguration": "HTTP-configuratie",
|
||||
"createInternalResourceDialogHttpConfigurationDescription": "Kies het domein dat cliënten zullen gebruiken om deze bron via HTTP of HTTPS te bereiken.",
|
||||
"editInternalResourceDialogHttpConfiguration": "HTTP-configuratie",
|
||||
"editInternalResourceDialogHttpConfigurationDescription": "Kies het domein dat cliënten zullen gebruiken om deze bron via HTTP of HTTPS te bereiken.",
|
||||
"editInternalResourceDialogTcp": "TCP",
|
||||
"editInternalResourceDialogUdp": "UDP",
|
||||
"editInternalResourceDialogIcmp": "ICMP",
|
||||
@@ -2705,6 +2906,8 @@
|
||||
"maintenancePageMessagePlaceholder": "We keren snel terug! Onze site ondergaat momenteel gepland onderhoud.",
|
||||
"maintenancePageMessageDescription": "Gedetailleerd bericht dat het onderhoud uitlegt",
|
||||
"maintenancePageTimeTitle": "Geschatte voltooiingstijd (optioneel)",
|
||||
"privateMaintenanceScreenTitle": "Privéscherm maintenance screen",
|
||||
"privateMaintenanceScreenMessage": "Dit domein wordt gebruikt op een privébron. Verbind met de Pangolin client om toegang te krijgen tot deze bron.",
|
||||
"maintenanceTime": "bijv. 2 uur, 1 nov om 17:00",
|
||||
"maintenanceEstimatedTimeDescription": "Wanneer u verwacht dat het onderhoud voltooid is",
|
||||
"editDomain": "Domein bewerken",
|
||||
@@ -2842,6 +3045,14 @@
|
||||
"httpDestAddTitle": "Voeg HTTP bestemming toe",
|
||||
"httpDestEditDescription": "Werk de configuratie voor deze HTTP-event streaming bestemming bij.",
|
||||
"httpDestAddDescription": "Configureer een nieuw HTTP-eindpunt om de gebeurtenissen van uw organisatie te ontvangen.",
|
||||
"S3DestEditTitle": "Bestemming bewerken",
|
||||
"S3DestAddTitle": "S3-bestemming toevoegen",
|
||||
"S3DestEditDescription": "Werk de configuratie bij voor deze S3-gebeurtenisstreamingbestemming.",
|
||||
"S3DestAddDescription": "Configureer een nieuw S3-eindpunt om de gebeurtenissen van uw organisatie te ontvangen.",
|
||||
"datadogDestEditTitle": "Bestemming bewerken",
|
||||
"datadogDestAddTitle": "Datadog-bestemming toevoegen",
|
||||
"datadogDestEditDescription": "Werk de configuratie bij voor deze Datadog-gebeurtenisstreamingbestemming.",
|
||||
"datadogDestAddDescription": "Configureer een nieuw Datadog-eindpunt om de gebeurtenissen van uw organisatie te ontvangen.",
|
||||
"httpDestTabSettings": "Instellingen",
|
||||
"httpDestTabHeaders": "Kopteksten",
|
||||
"httpDestTabBody": "Lichaam",
|
||||
@@ -2899,5 +3110,37 @@
|
||||
"httpDestUpdatedSuccess": "Bestemming succesvol bijgewerkt",
|
||||
"httpDestCreatedSuccess": "Bestemming succesvol aangemaakt",
|
||||
"httpDestUpdateFailed": "Bijwerken bestemming mislukt",
|
||||
"httpDestCreateFailed": "Aanmaken bestemming mislukt"
|
||||
"httpDestCreateFailed": "Aanmaken bestemming mislukt",
|
||||
"followRedirects": "Volg omleidingen",
|
||||
"followRedirectsDescription": "Volg automatisch HTTP-omleidingen voor verzoeken.",
|
||||
"alertingErrorWebhookUrl": "Voer een geldige URL voor de webhook in.",
|
||||
"healthCheckStrategyHttp": "Valideert connectiviteit en controleert de HTTP-responsstatus.",
|
||||
"healthCheckStrategyTcp": "Verifieert alleen TCP-connectiviteit zonder de respons te inspecteren.",
|
||||
"healthCheckStrategySnmp": "Maakt een SNMP-verzoek om de gezondheid van netwerkapparaten en infrastructuur te controleren.",
|
||||
"healthCheckStrategyIcmp": "Gebruikt ICMP-verzoeken (pings) om te controleren of een bron bereikbaar en responsief is.",
|
||||
"healthCheckTabStrategy": "Strategie",
|
||||
"healthCheckTabConnection": "Verbinding",
|
||||
"healthCheckTabAdvanced": "Geavanceerd",
|
||||
"healthCheckStrategyNotAvailable": "Deze strategie is niet beschikbaar. Neem contact op met sales om deze functie in te schakelen.",
|
||||
"uptime30d": "Beschikbaarheid (30d)",
|
||||
"idpAddActionCreateNew": "Nieuwe identiteitsprovider aanmaken",
|
||||
"idpAddActionImportFromOrg": "Importeer vanuit een andere organisatie",
|
||||
"idpImportDialogTitle": "Importeer Identiteitsprovider",
|
||||
"idpImportDialogDescription": "Kies een identiteitsprovider van een organisatie waar u beheerder bent. Het wordt gekoppeld aan deze organisatie.",
|
||||
"idpImportSearchPlaceholder": "Zoek op organisatie- of providernamen...",
|
||||
"idpImportEmpty": "Geen identiteitsproviders gevonden.",
|
||||
"idpImportedDescription": "Identiteitsprovider succesvol geïmporteerd.",
|
||||
"idpDeleteGlobalQuestion": "Weet u zeker dat u deze identiteitsprovider permanent wilt verwijderen?",
|
||||
"idpDeleteGlobalDescription": "Hiermee wordt de identiteitsprovider permanent verwijderd uit alle organisaties waarmee het is geassocieerd.",
|
||||
"idpUnassociateTitle": "Koppel Identiteitsprovider los",
|
||||
"idpUnassociateQuestion": "Weet u zeker dat u deze identiteitsprovider van deze organisatie wilt loskoppelen?",
|
||||
"idpUnassociateDescription": "Alle gebruikers die aan deze identiteitsprovider zijn gekoppeld, worden uit deze organisatie verwijderd, maar de identiteitsprovider blijft bestaan voor andere gerelateerde organisaties.",
|
||||
"idpUnassociateConfirm": "Bevestig ontkoppelen identiteitsprovider",
|
||||
"idpUnassociateWarning": "Dit kan niet ongedaan worden gemaakt voor deze organisatie.",
|
||||
"idpUnassociatedDescription": "Identiteitsprovider succesvol losgekoppeld van deze organisatie",
|
||||
"idpUnassociateMenu": "Ontkoppelen",
|
||||
"idpDeleteAllOrgsMenu": "Verwijderen",
|
||||
"publicIpEndpoint": "Eindpunt",
|
||||
"lastTriggeredAt": "Laatste Trigger",
|
||||
"reject": "Afwijzen"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"contactSalesEnable": "Skontaktuj się z działem sprzedaży, aby włączyć tę funkcję.",
|
||||
"contactSalesBookDemo": "Umów się na demo",
|
||||
"contactSalesOr": "lub",
|
||||
"contactSalesContactUs": "skontaktuj się z nami",
|
||||
"setupCreate": "Utwórz organizację, witrynę i zasoby",
|
||||
"headerAuthCompatibilityInfo": "Włącz to, aby wymusić odpowiedź Unauthorized 401, gdy brakuje tokena uwierzytelniania. Jest to wymagane dla przeglądarek lub określonych bibliotek HTTP, które nie wysyłają poświadczeń bez wyzwania serwera.",
|
||||
"headerAuthCompatibility": "Rozszerzona kompatybilność",
|
||||
@@ -19,6 +23,14 @@
|
||||
"componentsInvalidKey": "Wykryto nieprawidłowe lub wygasłe klucze licencyjne. Postępuj zgodnie z warunkami licencji, aby kontynuować korzystanie ze wszystkich funkcji.",
|
||||
"dismiss": "Odrzuć",
|
||||
"subscriptionViolationMessage": "Nie masz ograniczeń dla aktualnego planu. Popraw problem poprzez usunięcie stron, użytkowników lub innych zasobów, aby pozostać w swoim planie.",
|
||||
"trialBannerMessage": "Twój okres próbny wygasa za {countdown}. Uaktualnij, aby zachować dostęp.",
|
||||
"trialBannerExpired": "Twój okres próbny wygasł. Uaktualnij teraz, aby przywrócić dostęp.",
|
||||
"trialActive": "Okres próbny aktywny",
|
||||
"trialExpired": "Okres próbny wygasł",
|
||||
"trialHasEnded": "Twój okres próbny dobiegł końca.",
|
||||
"trialDaysRemaining": "{count, plural, one {# dzień pozostaje} few {# dni pozostają} many {# dni pozostaje} other {# dni pozostają}}",
|
||||
"trialDaysLeftShort": "Pozostało {days}d próbny",
|
||||
"trialGoToBilling": "Przejdź do strony rozliczeń",
|
||||
"subscriptionViolationViewBilling": "Zobacz rozliczenie",
|
||||
"componentsLicenseViolation": "Naruszenie licencji: Ten serwer używa stron {usedSites} , które przekraczają limit licencyjny stron {maxSites} . Postępuj zgodnie z warunkami licencji, aby kontynuować korzystanie ze wszystkich funkcji.",
|
||||
"componentsSupporterMessage": "Dziękujemy za wsparcie Pangolina jako {tier}!",
|
||||
@@ -267,8 +279,11 @@
|
||||
"orgMissing": "Brak ID organizacji",
|
||||
"orgMissingMessage": "Nie można ponownie wygenerować zaproszenia bez ID organizacji.",
|
||||
"accessUsersManage": "Zarządzaj użytkownikami",
|
||||
"accessUserManage": "Zarządzaj użytkownikiem",
|
||||
"accessUsersDescription": "Zaproś użytkowników z dostępem do tej organizacji i zarządzaj nimi",
|
||||
"accessUsersSearch": "Szukaj użytkowników...",
|
||||
"accessUsersRoleFilterCount": "{count, plural, one {# rola} few {# role} many {# ról} other {# ról}}",
|
||||
"accessUsersRoleFilterClear": "Wyczyść filtry ról",
|
||||
"accessUserCreate": "Utwórz użytkownika",
|
||||
"accessUserRemove": "Usuń użytkownika",
|
||||
"username": "Nazwa użytkownika",
|
||||
@@ -898,6 +913,7 @@
|
||||
"idpDisplayName": "Nazwa wyświetlana dla tego dostawcy tożsamości",
|
||||
"idpAutoProvisionUsers": "Automatyczne tworzenie użytkowników",
|
||||
"idpAutoProvisionUsersDescription": "Gdy włączone, użytkownicy będą automatycznie tworzeni w systemie przy pierwszym logowaniu z możliwością mapowania użytkowników do ról i organizacji.",
|
||||
"idpAutoProvisionConfigureAfterCreate": "Możesz skonfigurować automatyczne ustawienia provision, gdy dostawca tożsamości zostanie utworzony.",
|
||||
"licenseBadge": "EE",
|
||||
"idpType": "Typ dostawcy",
|
||||
"idpTypeDescription": "Wybierz typ dostawcy tożsamości, który chcesz skonfigurować",
|
||||
@@ -949,7 +965,7 @@
|
||||
"defaultMappingsRole": "Domyślne mapowanie roli",
|
||||
"defaultMappingsRoleDescription": "JMESPath do wydobycia informacji o roli z tokena ID. Wynik tego wyrażenia musi zwrócić nazwę roli zdefiniowaną w organizacji jako ciąg znaków.",
|
||||
"defaultMappingsOrg": "Domyślne mapowanie organizacji",
|
||||
"defaultMappingsOrgDescription": "JMESPath do wydobycia informacji o organizacji z tokena ID. To wyrażenie musi zwrócić ID organizacji lub true, aby użytkownik mógł uzyskać dostęp do organizacji.",
|
||||
"defaultMappingsOrgDescription": "Gdy jest ustawiona, ta wyrażenie musi zwrócić identyfikator organizacji lub true, aby użytkownik mógł uzyskać dostęp do tej organizacji. Gdy nie jest ustawiona, wystarczające jest zdefiniowanie mapowania ról: użytkownik jest dopuszczony, o ile można rozwiązać dla niego ważne mapowanie ról w organizacji.",
|
||||
"defaultMappingsSubmit": "Zapisz domyślne mapowania",
|
||||
"orgPoliciesEdit": "Edytuj politykę organizacji",
|
||||
"org": "Organizacja",
|
||||
@@ -1256,6 +1272,7 @@
|
||||
"actionViewLogs": "Zobacz dzienniki",
|
||||
"noneSelected": "Nie wybrano",
|
||||
"orgNotFound2": "Nie znaleziono organizacji.",
|
||||
"search": "Szukaj…",
|
||||
"searchPlaceholder": "Szukaj...",
|
||||
"emptySearchOptions": "Nie znaleziono opcji",
|
||||
"create": "Utwórz",
|
||||
@@ -1340,10 +1357,166 @@
|
||||
"sidebarGeneral": "Zarządzaj",
|
||||
"sidebarLogAndAnalytics": "Dziennik & Analityka",
|
||||
"sidebarBluePrints": "Schematy",
|
||||
"sidebarAlerting": "Alarmowanie",
|
||||
"sidebarHealthChecks": "Kontrole zdrowia",
|
||||
"sidebarOrganization": "Organizacja",
|
||||
"sidebarManagement": "Zarządzanie",
|
||||
"sidebarBillingAndLicenses": "Płatność i licencje",
|
||||
"sidebarLogsAnalytics": "Analityka",
|
||||
"alertingTitle": "Alarmowanie",
|
||||
"alertingDescription": "Zdefiniuj źródła, ustawienia, i działania dla powiadomień",
|
||||
"alertingRules": "Reguły alarmowe",
|
||||
"alertingSearchRules": "Szukaj reguł…",
|
||||
"alertingAddRule": "Utwórz Regułę",
|
||||
"alertingColumnSource": "Źródło",
|
||||
"alertingColumnTrigger": "Ustawienie",
|
||||
"alertingColumnActions": "Akcje",
|
||||
"alertingColumnEnabled": "Włączone",
|
||||
"alertingDeleteQuestion": "Potwierdź, że chcesz usunąć tę regułę alarmową.",
|
||||
"alertingDeleteRule": "Usuń regułę alarmową",
|
||||
"alertingRuleDeleted": "Reguła alarmowa usunięta",
|
||||
"alertingRuleSaved": "Reguła alarmowa zapisana",
|
||||
"alertingRuleSavedCreatedDescription": "Nowa reguła alarmowa została utworzona. Możesz ją kontynuować edytować na tej stronie.",
|
||||
"alertingRuleSavedUpdatedDescription": "Twoje zmiany w tej regule alarmowej zostały zapisane.",
|
||||
"alertingEditRule": "Edytuj regułę alarmową",
|
||||
"alertingCreateRule": "Utwórz regułę alarmową",
|
||||
"alertingRuleCredenzaDescription": "Wybierz, co obserwować, kiedy uruchamiać i jak powiadamiać.",
|
||||
"alertingRuleNamePlaceholder": "Strona produkcyjna w dół",
|
||||
"alertingRuleEnabled": "Reguła włączona",
|
||||
"alertingSectionSource": "Źródło",
|
||||
"alertingSourceType": "Typ źródła",
|
||||
"alertingSourceSite": "Witryna",
|
||||
"alertingSourceHealthCheck": "Kontrola zdrowia",
|
||||
"alertingPickSites": "Witryny",
|
||||
"alertingPickHealthChecks": "Kontrole zdrowia",
|
||||
"alertingPickResources": "Zasoby",
|
||||
"alertingAllSites": "Wszystkie witryny",
|
||||
"alertingAllSitesDescription": "Alarm uruchomiony dla dowolnej witryny",
|
||||
"alertingSpecificSites": "Określone witryny",
|
||||
"alertingSpecificSitesDescription": "Wybierz określone witryny do obserwacji",
|
||||
"alertingAllHealthChecks": "Wszystkie Kontrole Zdrowia",
|
||||
"alertingAllHealthChecksDescription": "Alarm uruchomiony dla dowolnej kontroli zdrowia",
|
||||
"alertingSpecificHealthChecks": "Określone Kontrole Zdrowia",
|
||||
"alertingSpecificHealthChecksDescription": "Wybierz określone kontrole zdrowia do obserwacji",
|
||||
"alertingAllResources": "Wszystkie zasoby",
|
||||
"alertingAllResourcesDescription": "Alarm uruchomiony dla dowolnego zasobu",
|
||||
"alertingSpecificResources": "Określone Zasoby",
|
||||
"alertingSpecificResourcesDescription": "Wybierz określone zasoby do obserwacji",
|
||||
"alertingSelectResources": "Wybierz zasoby…",
|
||||
"alertingResourcesSelected": "{count} zasobów wybrano",
|
||||
"alertingResourcesEmpty": "Brak zasobów z celami w pierwszych 10 wynikach.",
|
||||
"alertingSectionTrigger": "Ustawienie",
|
||||
"alertingTrigger": "Kiedy alarmować",
|
||||
"alertingTriggerSiteOnline": "Strona online",
|
||||
"alertingTriggerSiteOffline": "Strona offline",
|
||||
"alertingTriggerSiteToggle": "Status strony zmienia się",
|
||||
"alertingTriggerHcHealthy": "Kontrola zdrowia zdrowa",
|
||||
"alertingTriggerHcUnhealthy": "Kontrola zdrowia niezdrowa",
|
||||
"alertingTriggerHcToggle": "Status kontroli zdrowia zmienia się",
|
||||
"alertingTriggerResourceHealthy": "Zasób zdrowy",
|
||||
"alertingTriggerResourceUnhealthy": "Zasób niezdrowy",
|
||||
"alertingSearchHealthChecks": "Szukaj kontroli zdrowia…",
|
||||
"alertingHealthChecksEmpty": "Brak dostępnych kontroli zdrowia.",
|
||||
"alertingTriggerResourceToggle": "Zmiany statusu zasobu",
|
||||
"alertingSourceResource": "Zasób",
|
||||
"alertingSectionActions": "Akcje",
|
||||
"alertingAddAction": "Dodaj Akcję",
|
||||
"alertingActionNotify": "E-mail",
|
||||
"alertingActionNotifyDescription": "Wyślij powiadomienia e-mail do użytkowników lub ról",
|
||||
"alertingActionWebhook": "Webhook",
|
||||
"alertingActionWebhookDescription": "Wyślij żądanie HTTP do niestandardowego punktu końcowego",
|
||||
"alertingExternalIntegration": "Integracja Zewnętrzna",
|
||||
"alertingExternalPagerDutyDescription": "Przesyłaj alerty do PagerDuty do zarządzania incydentami",
|
||||
"alertingExternalOpsgenieDescription": "Kieruj alerty do Opsgenie dla zarządzania dyżurem",
|
||||
"alertingExternalServiceNowDescription": "Twórz incydenty ServiceNow z alertów",
|
||||
"alertingExternalIncidentIoDescription": "Wyzwalaj przepływy Incident.io z alertów",
|
||||
"alertingActionType": "Typ akcji",
|
||||
"alertingNotifyUsers": "Użytkownicy",
|
||||
"alertingNotifyRoles": "Role",
|
||||
"alertingNotifyEmails": "Adres e-mail",
|
||||
"alertingEmailPlaceholder": "Dodaj e-mail i naciśnij Enter",
|
||||
"alertingWebhookMethod": "Metoda HTTP",
|
||||
"alertingWebhookSecret": "Sekret podpisu (opcjonalny)",
|
||||
"alertingWebhookSecretPlaceholder": "Sekret HMAC",
|
||||
"alertingWebhookHeaders": "Nagłówki",
|
||||
"alertingAddHeader": "Dodaj nagłówek",
|
||||
"alertingSelectSites": "Wybierz witryny…",
|
||||
"alertingSitesSelected": "{count} witryny wybrano",
|
||||
"alertingSelectHealthChecks": "Wybierz wyniki zdrowia…",
|
||||
"alertingHealthChecksSelected": "{count} wyniki zdrowia wybrane",
|
||||
"alertingNoHealthChecks": "Brak celów z aktywowanymi kontrolami zdrowia",
|
||||
"alertingHealthCheckStub": "Wybór źródła kontroli zdrowia jeszcze nie skonfigurowany - możesz nadal skonfigurować wyzwalacze i akcje.",
|
||||
"alertingSelectUsers": "Wybierz użytkowników…",
|
||||
"alertingUsersSelected": "{count} użytkowników wybrano",
|
||||
"alertingSelectRoles": "Wybierz role…",
|
||||
"alertingRolesSelected": "{count} ról wybrano",
|
||||
"alertingSummarySites": "Witryny ({count})",
|
||||
"alertingSummaryAllSites": "Wszystkie witryny",
|
||||
"alertingSummaryHealthChecks": "Kontrole zdrowia ({count})",
|
||||
"alertingSummaryAllHealthChecks": "Wszystkie kontrole zdrowia",
|
||||
"alertingSummaryResources": "Zasoby ({count})",
|
||||
"alertingSummaryAllResources": "Wszystkie zasoby",
|
||||
"alertingErrorNameRequired": "Wprowadź nazwę",
|
||||
"alertingErrorActionsMin": "Dodaj co najmniej jedną akcję",
|
||||
"alertingErrorPickSites": "Wybierz co najmniej jedną witrynę",
|
||||
"alertingErrorPickHealthChecks": "Wybierz co najmniej jedną kontrolę zdrowia",
|
||||
"alertingErrorPickResources": "Wybierz co najmniej jeden zasób",
|
||||
"alertingErrorTriggerSite": "Wybierz wyzwalacz witryny",
|
||||
"alertingErrorTriggerHealth": "Wybierz wyzwalacz kontroli zdrowia",
|
||||
"alertingErrorTriggerResource": "Wybierz wyzwalacz zasobu",
|
||||
"alertingErrorNotifyRecipients": "Wybierz użytkowników, role lub co najmniej jeden e-mail",
|
||||
"alertingConfigureSource": "Skonfiguruj źródło",
|
||||
"alertingConfigureTrigger": "Skonfiguruj wyzwalacz",
|
||||
"alertingConfigureActions": "Skonfiguruj akcje",
|
||||
"alertingBackToRules": "Powrót do reguł",
|
||||
"alertingRuleCooldown": "Czas ochłodzenia (sekundy)",
|
||||
"alertingRuleCooldownDescription": "Minimalny czas między powtórzonymi alarmami dla tej samej reguły. Ustaw na 0, aby wyzwalać za każdym razem.",
|
||||
"alertingDraftBadge": "Szkic - zapisz, aby zachować tę regułę",
|
||||
"alertingSidebarHint": "Kliknij krok na kanwie, aby edytować go tutaj.",
|
||||
"alertingGraphCanvasTitle": "Przepływ reguł",
|
||||
"alertingGraphCanvasDescription": "Wizualny podgląd źródła, wyzwalacza i akcji. Wybierz węzeł, aby edytować go w panelu.",
|
||||
"alertingNodeNotConfigured": "Nie skonfigurowano jeszcze",
|
||||
"alertingNodeActionsCount": "{count, plural, one {# akcja} few {# akcje} many {# akcji} other {# akcji}}",
|
||||
"alertingNodeRoleSource": "Źródło",
|
||||
"alertingNodeRoleTrigger": "Wyzwalacz",
|
||||
"alertingNodeRoleAction": "Akcja",
|
||||
"alertingTabRules": "Reguły Alarmowe",
|
||||
"alertingTabHealthChecks": "Kontrole Zdrowia",
|
||||
"alertingRulesBannerTitle": "Otrzymaj Powiadomienie",
|
||||
"alertingRulesBannerDescription": "Każda reguła wiąże ze sobą co obserwować (np. witryna, kontrola zdrowia czy zasób), kiedy uruchomić (np. offline lub niezdrowy), oraz jak powiadomić zespół przez e-mail, webhooks lub integracje. Użyj tej listy, aby utworzyć, włączyć i zarządzać tymi regułami.",
|
||||
"alertingHealthChecksBannerTitle": "Monitor Zdrowia i Zasobów",
|
||||
"alertingHealthChecksBannerDescription": "Kontrole zdrowia to monitory HTTP lub TCP, które definiujesz raz. Następnie możesz używać ich jako źródeł w regułach alarmowych, aby otrzymywać powiadomienia, kiedy cel stanie się zdrowy lub niezdrowy. Kontrole zdrowia w zasobach również pojawiają się tutaj.",
|
||||
"standaloneHcTableTitle": "Kontrole Zdrowia",
|
||||
"standaloneHcSearchPlaceholder": "Szukaj kontroli zdrowia…",
|
||||
"standaloneHcAddButton": "Utwórz Kontrolę Zdrowia",
|
||||
"standaloneHcCreateTitle": "Utwórz Kontrolę Zdrowia",
|
||||
"standaloneHcEditTitle": "Edytuj Kontrolę Zdrowia",
|
||||
"standaloneHcDescription": "Skonfiguruj kontrolę zdrowia HTTP lub TCP do wykorzystania w regułach alarmowych.",
|
||||
"standaloneHcNameLabel": "Nazwa",
|
||||
"standaloneHcNamePlaceholder": "Mój Monitor HTTP",
|
||||
"standaloneHcDeleteTitle": "Usuń kontrolę zdrowia",
|
||||
"standaloneHcDeleteQuestion": "Potwierdź, że chcesz usunąć tę kontrolę zdrowia.",
|
||||
"standaloneHcDeleted": "Kontrola zdrowia usunięta",
|
||||
"standaloneHcSaved": "Kontrola zdrowia zapisana",
|
||||
"standaloneHcColumnHealth": "Zdrowie",
|
||||
"standaloneHcColumnMode": "Tryb",
|
||||
"standaloneHcColumnTarget": "Cel",
|
||||
"standaloneHcHealthStateHealthy": "Zdrowy",
|
||||
"standaloneHcHealthStateUnhealthy": "Niezdrowy",
|
||||
"standaloneHcHealthStateUnknown": "Nieznany",
|
||||
"standaloneHcFilterAnySite": "Wszystkie witryny",
|
||||
"standaloneHcFilterAnyResource": "Wszystkie zasoby",
|
||||
"standaloneHcFilterMode": "Tryb",
|
||||
"standaloneHcFilterModeHttp": "HTTP",
|
||||
"standaloneHcFilterModeTcp": "TCP",
|
||||
"standaloneHcFilterModeSnmp": "SNMP",
|
||||
"standaloneHcFilterModePing": "Ping",
|
||||
"standaloneHcFilterHealth": "Zdrowie",
|
||||
"standaloneHcFilterEnabled": "Włączone",
|
||||
"standaloneHcFilterEnabledOn": "Włączone",
|
||||
"standaloneHcFilterEnabledOff": "Wyłączone",
|
||||
"standaloneHcFilterSiteIdFallback": "Witryna {id}",
|
||||
"standaloneHcFilterResourceIdFallback": "Zasób {id}",
|
||||
"blueprints": "Schematy",
|
||||
"blueprintsDescription": "Zastosuj konfiguracje deklaracyjne i wyświetl poprzednie operacje",
|
||||
"blueprintAdd": "Dodaj schemat",
|
||||
@@ -1762,6 +1935,15 @@
|
||||
"healthCheckIntervalMin": "Interwał sprawdzania musi wynosić co najmniej 5 sekund",
|
||||
"healthCheckTimeoutMin": "Limit czasu musi wynosić co najmniej 1 sekundę",
|
||||
"healthCheckRetryMin": "Liczba prób ponowienia musi wynosić co najmniej 1",
|
||||
"healthCheckMode": "Tryb kontroli",
|
||||
"healthCheckStrategy": "Strategia",
|
||||
"healthCheckModeDescription": "Tryb TCP weryfikuje tylko łączność. Tryb HTTP ocenia odpowiedź HTTP.",
|
||||
"healthyThreshold": "Próg zdrowia",
|
||||
"healthyThresholdDescription": "Wymagane sukcesy pod rząd, zanim oznaczy się jako zdrowe.",
|
||||
"unhealthyThreshold": "Próg niezdrowia",
|
||||
"unhealthyThresholdDescription": "Wymagane niepowodzenia z rzędu, zanim oznaczy się jako niezdrowe.",
|
||||
"healthCheckHealthyThresholdMin": "Próg zdrowia musi wynosić co najmniej 1",
|
||||
"healthCheckUnhealthyThresholdMin": "Próg niezdrowia musi wynosić co najmniej 1",
|
||||
"httpMethod": "Metoda HTTP",
|
||||
"selectHttpMethod": "Wybierz metodę HTTP",
|
||||
"domainPickerSubdomainLabel": "Poddomena",
|
||||
@@ -1821,6 +2003,11 @@
|
||||
"editInternalResourceDialogModePort": "Port",
|
||||
"editInternalResourceDialogModeHost": "Host",
|
||||
"editInternalResourceDialogModeCidr": "CIDR",
|
||||
"editInternalResourceDialogModeHttp": "HTTP",
|
||||
"editInternalResourceDialogModeHttps": "HTTPS",
|
||||
"editInternalResourceDialogScheme": "Schemat",
|
||||
"editInternalResourceDialogEnableSsl": "Włącz SSL",
|
||||
"editInternalResourceDialogEnableSslDescription": "Włącz szyfrowanie SSL/TLS dla bezpiecznych połączeń HTTPS z miejscem docelowym.",
|
||||
"editInternalResourceDialogDestination": "Miejsce docelowe",
|
||||
"editInternalResourceDialogDestinationHostDescription": "Adres IP lub nazwa hosta zasobu w sieci witryny.",
|
||||
"editInternalResourceDialogDestinationIPDescription": "Adres IP lub nazwa hosta zasobu w sieci witryny.",
|
||||
@@ -1836,6 +2023,7 @@
|
||||
"createInternalResourceDialogName": "Nazwa",
|
||||
"createInternalResourceDialogSite": "Witryna",
|
||||
"selectSite": "Wybierz stronę...",
|
||||
"multiSitesSelectorSitesCount": "{count, plural, one {# witryna} few {# witryny} many {# witryn} other {# witryn}}",
|
||||
"noSitesFound": "Nie znaleziono stron.",
|
||||
"createInternalResourceDialogProtocol": "Protokół",
|
||||
"createInternalResourceDialogTcp": "TCP",
|
||||
@@ -1864,11 +2052,19 @@
|
||||
"createInternalResourceDialogModePort": "Port",
|
||||
"createInternalResourceDialogModeHost": "Host",
|
||||
"createInternalResourceDialogModeCidr": "CIDR",
|
||||
"createInternalResourceDialogModeHttp": "HTTP",
|
||||
"createInternalResourceDialogModeHttps": "HTTPS",
|
||||
"scheme": "Schemat",
|
||||
"createInternalResourceDialogScheme": "Schemat",
|
||||
"createInternalResourceDialogEnableSsl": "Włącz SSL",
|
||||
"createInternalResourceDialogEnableSslDescription": "Włącz szyfrowanie SSL/TLS dla bezpiecznych połączeń HTTPS z miejscem docelowym.",
|
||||
"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.",
|
||||
"internalResourceDownstreamSchemeRequired": "Schemat jest wymagany dla zasobów HTTP",
|
||||
"internalResourceHttpPortRequired": "Port docelowy jest wymagany dla zasobów HTTP",
|
||||
"siteConfiguration": "Konfiguracja",
|
||||
"siteAcceptClientConnections": "Akceptuj połączenia klienta",
|
||||
"siteAcceptClientConnectionsDescription": "Zezwalaj urządzeniom i klientom na dostęp do zasobów na tej stronie. Może to zostać zmienione później.",
|
||||
@@ -1993,7 +2189,7 @@
|
||||
"description": "Większa niezawodność i niska konserwacja serwera Pangolin z dodatkowymi dzwonkami i sygnałami",
|
||||
"introTitle": "Zarządzany samowystarczalny Pangolin",
|
||||
"introDescription": "jest opcją wdrażania zaprojektowaną dla osób, które chcą prostoty i dodatkowej niezawodności, przy jednoczesnym utrzymaniu swoich danych prywatnych i samodzielnych.",
|
||||
"introDetail": "Z tą opcją nadal obsługujesz swój własny węzeł Pangolin — tunele, zakończenie SSL i ruch na Twoim serwerze. Różnica polega na tym, że zarządzanie i monitorowanie odbywa się za pomocą naszej tablicy rozdzielczej, która odblokowuje szereg korzyści:",
|
||||
"introDetail": "Z tą opcją nadal obsługujesz swój własny węzeł Pangolin - tunele, zakończenie SSL i ruch na Twoim serwerze. Różnica polega na tym, że zarządzanie i monitorowanie odbywa się za pomocą naszej tablicy rozdzielczej, która odblokowuje szereg korzyści:",
|
||||
"benefitSimplerOperations": {
|
||||
"title": "Uproszczone operacje",
|
||||
"description": "Nie ma potrzeby uruchamiania własnego serwera pocztowego lub ustawiania skomplikowanych powiadomień. Będziesz mieć kontrolę zdrowia i powiadomienia o przestoju."
|
||||
@@ -2026,7 +2222,7 @@
|
||||
},
|
||||
"internationaldomaindetected": "Wykryto międzynarodową domenę",
|
||||
"willbestoredas": "Będą przechowywane jako:",
|
||||
"roleMappingDescription": "Określ jak role są przypisywane do użytkowników podczas logowania się, gdy automatyczne świadczenie jest włączone.",
|
||||
"roleMappingDescription": "Określ, jak role są przypisywane użytkownikom podczas logowania się z tym dostawcą tożsamości.",
|
||||
"selectRole": "Wybierz rolę",
|
||||
"roleMappingExpression": "Wyrażenie",
|
||||
"selectRolePlaceholder": "Wybierz rolę",
|
||||
@@ -2118,7 +2314,7 @@
|
||||
"selectDomainForOrgAuthPage": "Wybierz domenę dla strony uwierzytelniania organizacji",
|
||||
"domainPickerProvidedDomain": "Dostarczona domena",
|
||||
"domainPickerFreeProvidedDomain": "Darmowa oferowana domena",
|
||||
"domainPickerFreeDomainsPaidFeature": "Dostarczane domeny to funkcja płatna. Subskrybuj, aby uzyskać domenę w ramach swojego planu — nie ma potrzeby przynoszenia własnej.",
|
||||
"domainPickerFreeDomainsPaidFeature": "Dostarczane domeny to funkcja płatna. Subskrybuj, aby uzyskać domenę w ramach swojego planu - nie ma potrzeby przynoszenia własnej.",
|
||||
"domainPickerVerified": "Zweryfikowano",
|
||||
"domainPickerUnverified": "Niezweryfikowane",
|
||||
"domainPickerManual": "Podręcznik",
|
||||
@@ -2428,6 +2624,7 @@
|
||||
"validPassword": "Prawidłowe hasło",
|
||||
"validEmail": "Valid email",
|
||||
"validSSO": "Valid SSO",
|
||||
"connectedClient": "Połączony Klient",
|
||||
"resourceBlocked": "Zasób zablokowany",
|
||||
"droppedByRule": "Upuszczone przez regułę",
|
||||
"noSessions": "Brak sesji",
|
||||
@@ -2667,6 +2864,10 @@
|
||||
"editInternalResourceDialogDestinationLabel": "Miejsce docelowe",
|
||||
"editInternalResourceDialogDestinationDescription": "Określ adres docelowy dla wewnętrznego zasobu. Może to być nazwa hosta, adres IP lub zakres CIDR, w zależności od wybranego trybu. Opcjonalnie ustaw wewnętrzny alias DNS dla łatwiejszej identyfikacji.",
|
||||
"editInternalResourceDialogPortRestrictionsDescription": "Ogranicz dostęp do konkretnych portów TCP/UDP lub zezwól/zablokuj wszystkie porty.",
|
||||
"createInternalResourceDialogHttpConfiguration": "Konfiguracja HTTP",
|
||||
"createInternalResourceDialogHttpConfigurationDescription": "Wybierz domenę, której klienci będą używać, aby dotrzeć do tego zasobu przez HTTP lub HTTPS.",
|
||||
"editInternalResourceDialogHttpConfiguration": "Konfiguracja HTTP",
|
||||
"editInternalResourceDialogHttpConfigurationDescription": "Wybierz domenę, której klienci będą używać, aby dotrzeć do tego zasobu przez HTTP lub HTTPS.",
|
||||
"editInternalResourceDialogTcp": "TCP",
|
||||
"editInternalResourceDialogUdp": "UDP",
|
||||
"editInternalResourceDialogIcmp": "ICMP",
|
||||
@@ -2705,6 +2906,8 @@
|
||||
"maintenancePageMessagePlaceholder": "Wrócimy wkrótce! Nasza strona przechodzi obecnie zaplanowaną konserwację.",
|
||||
"maintenancePageMessageDescription": "Szczegółowy komunikat wyjaśniający konserwację",
|
||||
"maintenancePageTimeTitle": "Szacowany czas zakończenia (opcjonalnie)",
|
||||
"privateMaintenanceScreenTitle": "Ekraan prywatnego utrzymania",
|
||||
"privateMaintenanceScreenMessage": "Ta domena jest wykorzystywana na prywatnym zasobie. Połącz się za pomocą klienta Pangolin, aby uzyskać dostęp do tego zasobu.",
|
||||
"maintenanceTime": "np. 2 godziny, 1 listopad o 17:00",
|
||||
"maintenanceEstimatedTimeDescription": "Kiedy oczekujesz zakończenia konserwacji",
|
||||
"editDomain": "Edytuj domenę",
|
||||
@@ -2842,6 +3045,14 @@
|
||||
"httpDestAddTitle": "Dodaj cel HTTP",
|
||||
"httpDestEditDescription": "Aktualizuj konfigurację dla tego celu przesyłania strumieniowego zdarzeń HTTP.",
|
||||
"httpDestAddDescription": "Skonfiguruj nowy punkt końcowy HTTP, aby otrzymywać wydarzenia organizacji.",
|
||||
"S3DestEditTitle": "Edytuj Miejsce Docelowe",
|
||||
"S3DestAddTitle": "Dodaj Miejsce Docelowe S3",
|
||||
"S3DestEditDescription": "Zaktualizuj konfigurację dla tego miejsca docelowego strumieniowego zdarzeń S3.",
|
||||
"S3DestAddDescription": "Skonfiguruj nowy punkt końcowy S3, aby odbierać zdarzenia Twojej organizacji.",
|
||||
"datadogDestEditTitle": "Edytuj Miejsce Docelowe",
|
||||
"datadogDestAddTitle": "Dodaj Miejsce Docelowe Datadog",
|
||||
"datadogDestEditDescription": "Zaktualizuj konfigurację dla tego miejsca docelowego strumieniowego zdarzeń Datadog.",
|
||||
"datadogDestAddDescription": "Skonfiguruj nowy punkt końcowy Datadog, aby odbierać zdarzenia Twojej organizacji.",
|
||||
"httpDestTabSettings": "Ustawienia",
|
||||
"httpDestTabHeaders": "Nagłówki",
|
||||
"httpDestTabBody": "Ciało",
|
||||
@@ -2881,7 +3092,7 @@
|
||||
"httpDestFormatJsonArrayTitle": "Tablica JSON",
|
||||
"httpDestFormatJsonArrayDescription": "Jedna prośba na partię, treść jest tablicą JSON. Kompatybilna z najbardziej ogólnymi webhookami i Datadog.",
|
||||
"httpDestFormatNdjsonTitle": "NDJSON",
|
||||
"httpDestFormatNdjsonDescription": "Jedno żądanie na partię, ciałem jest plik JSON rozdzielony na newline-delimited — jeden obiekt na wiersz, bez tablicy zewnętrznej. Wymagane przez Splunk HEC, Elastic / OpenSesearch i Grafana Loki.",
|
||||
"httpDestFormatNdjsonDescription": "Jedno żądanie na partię, ciałem jest plik JSON rozdzielony na newline-delimited - jeden obiekt na wiersz, bez tablicy zewnętrznej. Wymagane przez Splunk HEC, Elastic / OpenSesearch i Grafana Loki.",
|
||||
"httpDestFormatSingleTitle": "Jedno wydarzenie na żądanie",
|
||||
"httpDestFormatSingleDescription": "Wysyła oddzielny POST HTTP dla każdego zdarzenia. Użyj tylko dla punktów końcowych, które nie mogą obsługiwać partii.",
|
||||
"httpDestLogTypesTitle": "Typy logów",
|
||||
@@ -2899,5 +3110,37 @@
|
||||
"httpDestUpdatedSuccess": "Cel został pomyślnie zaktualizowany",
|
||||
"httpDestCreatedSuccess": "Cel został utworzony pomyślnie",
|
||||
"httpDestUpdateFailed": "Nie udało się zaktualizować miejsca docelowego",
|
||||
"httpDestCreateFailed": "Nie udało się utworzyć miejsca docelowego"
|
||||
"httpDestCreateFailed": "Nie udało się utworzyć miejsca docelowego",
|
||||
"followRedirects": "Podążaj za przekierowaniami",
|
||||
"followRedirectsDescription": "Automatycznie podążaj za przekierowaniami HTTP dla żądań.",
|
||||
"alertingErrorWebhookUrl": "Proszę wprowadzić poprawny URL dla web hooka.",
|
||||
"healthCheckStrategyHttp": "Weryfikuje łączność i sprawdza status odpowiedzi HTTP.",
|
||||
"healthCheckStrategyTcp": "Weryfikuje wyłącznie łączność TCP, bez sprawdzania odpowiedzi.",
|
||||
"healthCheckStrategySnmp": "Wykonuje żądanie SNMP get w celu sprawdzenia stanu urządzeń sieciowych i infrastruktury.",
|
||||
"healthCheckStrategyIcmp": "Używa żądań ICMP echo (pingów), aby sprawdzić, czy zasób jest dostępny i reagujący.",
|
||||
"healthCheckTabStrategy": "Strategia",
|
||||
"healthCheckTabConnection": "Łączenie",
|
||||
"healthCheckTabAdvanced": "Zaawansowane",
|
||||
"healthCheckStrategyNotAvailable": "Strategia ta nie jest dostępna. Skontaktuj się z działem sprzedaży, aby włączyć tę funkcję.",
|
||||
"uptime30d": "Czas działania (30d)",
|
||||
"idpAddActionCreateNew": "Utwórz nowego dostawcę tożsamości",
|
||||
"idpAddActionImportFromOrg": "Importuj z innej organizacji",
|
||||
"idpImportDialogTitle": "Importuj dostawcę tożsamości",
|
||||
"idpImportDialogDescription": "Wybierz dostawcę tożsamości z organizacji, w której jesteś administratorem. Zostanie on powiązany z tą organizacją.",
|
||||
"idpImportSearchPlaceholder": "Szukaj według nazwy organizacji lub dostawcy...",
|
||||
"idpImportEmpty": "Nie znaleziono dostawców tożsamości.",
|
||||
"idpImportedDescription": "Dostawca tożsamości został pomyślnie zaimportowany.",
|
||||
"idpDeleteGlobalQuestion": "Czy na pewno chcesz trwale usunąć tego dostawcę tożsamości?",
|
||||
"idpDeleteGlobalDescription": "Spowoduje to trwałe usunięcie dostawcy tożsamości ze wszystkich organizacji, z którymi jest powiązany.",
|
||||
"idpUnassociateTitle": "Odłącz dostawcę tożsamości",
|
||||
"idpUnassociateQuestion": "Czy na pewno chcesz odłączyć tego dostawcę tożsamości od tej organizacji?",
|
||||
"idpUnassociateDescription": "Wszystkie użytkownicy powiązani z tym dostawcą tożsamości zostaną usunięci z tej organizacji, ale dostawca tożsamości będzie nadal istniał dla innych powiązanych organizacji.",
|
||||
"idpUnassociateConfirm": "Potwierdź odłączenie dostawcy tożsamości",
|
||||
"idpUnassociateWarning": "Tego nie można cofnąć dla tej organizacji.",
|
||||
"idpUnassociatedDescription": "Dostawca tożsamości pomyślnie odłączony od tej organizacji",
|
||||
"idpUnassociateMenu": "Odłącz",
|
||||
"idpDeleteAllOrgsMenu": "Usuń",
|
||||
"publicIpEndpoint": "Koniec punktu pracy",
|
||||
"lastTriggeredAt": "Ostatnie Wyzwolenie",
|
||||
"reject": "Odrzuć"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"contactSalesEnable": "Contacte vendas para ativar esta funcionalidade.",
|
||||
"contactSalesBookDemo": "Agende uma demonstração",
|
||||
"contactSalesOr": "ou",
|
||||
"contactSalesContactUs": "contacte-nos",
|
||||
"setupCreate": "Criar a organização, o site e os recursos",
|
||||
"headerAuthCompatibilityInfo": "Habilite isso para forçar uma resposta 401 Unauthorized quando um token de autenticação estiver faltando. Isso é necessário para navegadores ou bibliotecas HTTP específicas que não enviam credenciais sem um desafio do servidor.",
|
||||
"headerAuthCompatibility": "Compatibilidade Estendida",
|
||||
@@ -19,6 +23,14 @@
|
||||
"componentsInvalidKey": "Chaves de licença inválidas ou expiradas detectadas. Siga os termos da licença para continuar usando todos os recursos.",
|
||||
"dismiss": "Rejeitar",
|
||||
"subscriptionViolationMessage": "Você está além dos seus limites para o seu plano atual. Corrija o problema removendo sites, usuários, ou outros recursos para ficar em seu plano.",
|
||||
"trialBannerMessage": "Sua avaliação termina em {countdown}. Faça o upgrade para manter o acesso.",
|
||||
"trialBannerExpired": "Sua avaliação expirou. Faça o upgrade agora para restaurar o acesso.",
|
||||
"trialActive": "Avaliação Gratuita Ativa",
|
||||
"trialExpired": "Avaliação Expirada",
|
||||
"trialHasEnded": "Sua avaliação terminou.",
|
||||
"trialDaysRemaining": "{count, plural, one {# dia restante} other {# dias restantes}}",
|
||||
"trialDaysLeftShort": "{days}d restante na avaliação",
|
||||
"trialGoToBilling": "Ir para a página de faturamento",
|
||||
"subscriptionViolationViewBilling": "Ver faturamento",
|
||||
"componentsLicenseViolation": "Violação de Licença: Este servidor está usando sites {usedSites} que excedem o limite licenciado de sites {maxSites} . Siga os termos da licença para continuar usando todos os recursos.",
|
||||
"componentsSupporterMessage": "Obrigado por apoiar o Pangolin como um {tier}!",
|
||||
@@ -267,8 +279,11 @@
|
||||
"orgMissing": "ID da Organização Ausente",
|
||||
"orgMissingMessage": "Não é possível regenerar o convite sem um ID de organização.",
|
||||
"accessUsersManage": "Gerir Utilizadores",
|
||||
"accessUserManage": "Gerir Utilizador",
|
||||
"accessUsersDescription": "Convidar e gerenciar usuários com acesso a esta organização",
|
||||
"accessUsersSearch": "Procurar utilizadores...",
|
||||
"accessUsersRoleFilterCount": "{count, plural, one {# função} other {# funções}}",
|
||||
"accessUsersRoleFilterClear": "Limpar filtros de funções",
|
||||
"accessUserCreate": "Criar Usuário",
|
||||
"accessUserRemove": "Remover utilizador",
|
||||
"username": "Usuário:",
|
||||
@@ -898,6 +913,7 @@
|
||||
"idpDisplayName": "Um nome de exibição para este provedor de identidade",
|
||||
"idpAutoProvisionUsers": "Provisionamento Automático de Utilizadores",
|
||||
"idpAutoProvisionUsersDescription": "Quando ativado, os utilizadores serão criados automaticamente no sistema no primeiro login com a capacidade de mapear utilizadores para funções e organizações.",
|
||||
"idpAutoProvisionConfigureAfterCreate": "Você pode configurar as definições de auto provisão assim que o provedor de identidade for criado.",
|
||||
"licenseBadge": "EE",
|
||||
"idpType": "Tipo de Provedor",
|
||||
"idpTypeDescription": "Selecione o tipo de provedor de identidade que deseja configurar",
|
||||
@@ -949,7 +965,7 @@
|
||||
"defaultMappingsRole": "Mapeamento de Função Padrão",
|
||||
"defaultMappingsRoleDescription": "JMESPath para extrair informações de função do token ID. O resultado desta expressão deve retornar o nome da função como definido na organização como uma string.",
|
||||
"defaultMappingsOrg": "Mapeamento de Organização Padrão",
|
||||
"defaultMappingsOrgDescription": "JMESPath para extrair informações da organização do token ID. Esta expressão deve retornar o ID da organização ou verdadeiro para que o utilizador tenha permissão para aceder à organização.",
|
||||
"defaultMappingsOrgDescription": "Quando definida, esta expressão deve retornar o ID da organização ou verdadeiro para que o usuário acesse essa organização. Quando não definida, a definição de um mapeamento de papel é suficiente: o usuário é permitido desde que um mapeamento de papel válido possa ser resolvido para ele dentro da organização.",
|
||||
"defaultMappingsSubmit": "Guardar Mapeamentos Padrão",
|
||||
"orgPoliciesEdit": "Editar Política da Organização",
|
||||
"org": "Organização",
|
||||
@@ -1256,6 +1272,7 @@
|
||||
"actionViewLogs": "Visualizar registros",
|
||||
"noneSelected": "Nenhum selecionado",
|
||||
"orgNotFound2": "Nenhuma organização encontrada.",
|
||||
"search": "Pesquisar…",
|
||||
"searchPlaceholder": "Buscar...",
|
||||
"emptySearchOptions": "Nenhuma opção encontrada",
|
||||
"create": "Criar",
|
||||
@@ -1340,10 +1357,166 @@
|
||||
"sidebarGeneral": "Gerir",
|
||||
"sidebarLogAndAnalytics": "Registo & Análise",
|
||||
"sidebarBluePrints": "Diagramas",
|
||||
"sidebarAlerting": "Alertas",
|
||||
"sidebarHealthChecks": "Verificações de Saúde",
|
||||
"sidebarOrganization": "Organização",
|
||||
"sidebarManagement": "Gestão",
|
||||
"sidebarBillingAndLicenses": "Faturamento e Licenças",
|
||||
"sidebarLogsAnalytics": "Análises",
|
||||
"alertingTitle": "Alertas",
|
||||
"alertingDescription": "Defina fontes, gatilhos e ações para notificações",
|
||||
"alertingRules": "Regras de alerta",
|
||||
"alertingSearchRules": "Pesquisar regras…",
|
||||
"alertingAddRule": "Criar Regra",
|
||||
"alertingColumnSource": "Fonte",
|
||||
"alertingColumnTrigger": "Gatilho",
|
||||
"alertingColumnActions": "Ações",
|
||||
"alertingColumnEnabled": "Ativado",
|
||||
"alertingDeleteQuestion": "Por favor, confirme que deseja excluir esta regra de alerta.",
|
||||
"alertingDeleteRule": "Excluir regra de alerta",
|
||||
"alertingRuleDeleted": "Regra de alerta excluída",
|
||||
"alertingRuleSaved": "Regra de alerta salva",
|
||||
"alertingRuleSavedCreatedDescription": "Sua nova regra de alerta foi criada. Você pode continuar editando-a nesta página.",
|
||||
"alertingRuleSavedUpdatedDescription": "As suas alterações para esta regra de alerta foram salvas.",
|
||||
"alertingEditRule": "Editar Regra de Alerta",
|
||||
"alertingCreateRule": "Criar Regra de Alerta",
|
||||
"alertingRuleCredenzaDescription": "Escolha o que observar, quando disparar e como notificar",
|
||||
"alertingRuleNamePlaceholder": "Site de produção fora do ar",
|
||||
"alertingRuleEnabled": "Regra ativada",
|
||||
"alertingSectionSource": "Fonte",
|
||||
"alertingSourceType": "Tipo de Fonte",
|
||||
"alertingSourceSite": "Site",
|
||||
"alertingSourceHealthCheck": "Verificação de Saúde",
|
||||
"alertingPickSites": "Sites",
|
||||
"alertingPickHealthChecks": "Verificações de Saúde",
|
||||
"alertingPickResources": "Recursos",
|
||||
"alertingAllSites": "Todos os Sites",
|
||||
"alertingAllSitesDescription": "Alerta disparado para qualquer site",
|
||||
"alertingSpecificSites": "Sites Específicos",
|
||||
"alertingSpecificSitesDescription": "Escolha sites específicos para observar",
|
||||
"alertingAllHealthChecks": "Todas as Verificações de Saúde",
|
||||
"alertingAllHealthChecksDescription": "Alerta disparado para qualquer verificação de saúde",
|
||||
"alertingSpecificHealthChecks": "Verificações de Saúde Específicas",
|
||||
"alertingSpecificHealthChecksDescription": "Escolha verificações de saúde específicas para observar",
|
||||
"alertingAllResources": "Todos os Recursos",
|
||||
"alertingAllResourcesDescription": "Alerta disparado para qualquer recurso",
|
||||
"alertingSpecificResources": "Recursos Específicos",
|
||||
"alertingSpecificResourcesDescription": "Escolha recursos específicos para observar",
|
||||
"alertingSelectResources": "Selecionar recursos…",
|
||||
"alertingResourcesSelected": "{count} recursos selecionados",
|
||||
"alertingResourcesEmpty": "Nenhum recurso com alvos nos primeiros 10 resultados.",
|
||||
"alertingSectionTrigger": "Gatilho",
|
||||
"alertingTrigger": "Quando alertar",
|
||||
"alertingTriggerSiteOnline": "Site online",
|
||||
"alertingTriggerSiteOffline": "Site offline",
|
||||
"alertingTriggerSiteToggle": "Status do site muda",
|
||||
"alertingTriggerHcHealthy": "Verificação de saúde saudável",
|
||||
"alertingTriggerHcUnhealthy": "Verificação de saúde não saudável",
|
||||
"alertingTriggerHcToggle": "Status da verificação de saúde muda",
|
||||
"alertingTriggerResourceHealthy": "Recurso saudável",
|
||||
"alertingTriggerResourceUnhealthy": "Recurso não saudável",
|
||||
"alertingSearchHealthChecks": "Pesquisar verificações de saúde…",
|
||||
"alertingHealthChecksEmpty": "Nenhuma verificação de saúde disponível.",
|
||||
"alertingTriggerResourceToggle": "Status do recurso muda",
|
||||
"alertingSourceResource": "Recurso",
|
||||
"alertingSectionActions": "Ações",
|
||||
"alertingAddAction": "Adicionar Ação",
|
||||
"alertingActionNotify": "E-mail",
|
||||
"alertingActionNotifyDescription": "Enviar notificações por e-mail para usuários ou funções",
|
||||
"alertingActionWebhook": "Webhook",
|
||||
"alertingActionWebhookDescription": "Envie uma solicitação HTTP para um endpoint personalizado",
|
||||
"alertingExternalIntegration": "Integração Externa",
|
||||
"alertingExternalPagerDutyDescription": "Envie alertas para PagerDuty para gerenciamento de incidentes",
|
||||
"alertingExternalOpsgenieDescription": "Direcione alertas para Opsgenie para gestão de plantão",
|
||||
"alertingExternalServiceNowDescription": "Crie incidentes do ServiceNow a partir de eventos de alerta",
|
||||
"alertingExternalIncidentIoDescription": "Dispare fluxos de trabalho do Incident.io a partir de eventos de alerta",
|
||||
"alertingActionType": "Tipo de Ação",
|
||||
"alertingNotifyUsers": "Utilizadores",
|
||||
"alertingNotifyRoles": "Papéis",
|
||||
"alertingNotifyEmails": "Endereços de e-mail",
|
||||
"alertingEmailPlaceholder": "Adicione o e-mail e pressione Enter",
|
||||
"alertingWebhookMethod": "Método HTTP",
|
||||
"alertingWebhookSecret": "Segredo de assinatura (opcional)",
|
||||
"alertingWebhookSecretPlaceholder": "Segredo HMAC",
|
||||
"alertingWebhookHeaders": "Cabeçalhos",
|
||||
"alertingAddHeader": "Adicionar cabeçalho",
|
||||
"alertingSelectSites": "Selecionar sites…",
|
||||
"alertingSitesSelected": "{count} sites selecionados",
|
||||
"alertingSelectHealthChecks": "Selecionar verificações de saúde…",
|
||||
"alertingHealthChecksSelected": "{count} verificações de saúde selecionadas",
|
||||
"alertingNoHealthChecks": "Nenhum alvo com verificações de saúde ativadas",
|
||||
"alertingHealthCheckStub": "A seleção da fonte de verificação de saúde ainda não está configurada - você ainda pode configurar gatilhos e ações.",
|
||||
"alertingSelectUsers": "Selecionar utilizadores…",
|
||||
"alertingUsersSelected": "{count} utilizadores selecionados",
|
||||
"alertingSelectRoles": "Selecionar funções…",
|
||||
"alertingRolesSelected": "{count} funções selecionadas",
|
||||
"alertingSummarySites": "Sites ({count})",
|
||||
"alertingSummaryAllSites": "Todos os sites",
|
||||
"alertingSummaryHealthChecks": "Verificações de saúde ({count})",
|
||||
"alertingSummaryAllHealthChecks": "Todas as verificações de saúde",
|
||||
"alertingSummaryResources": "Recursos ({count})",
|
||||
"alertingSummaryAllResources": "Todos os recursos",
|
||||
"alertingErrorNameRequired": "Digite um nome",
|
||||
"alertingErrorActionsMin": "Adicione pelo menos uma ação",
|
||||
"alertingErrorPickSites": "Selecione pelo menos um site",
|
||||
"alertingErrorPickHealthChecks": "Selecione pelo menos uma verificação de saúde",
|
||||
"alertingErrorPickResources": "Selecione pelo menos um recurso",
|
||||
"alertingErrorTriggerSite": "Escolha um gatilho de site",
|
||||
"alertingErrorTriggerHealth": "Escolha um gatilho de verificação de saúde",
|
||||
"alertingErrorTriggerResource": "Escolha um gatilho de recurso",
|
||||
"alertingErrorNotifyRecipients": "Escolha utilizadores, funções ou pelo menos um e-mail",
|
||||
"alertingConfigureSource": "Configurar Fonte",
|
||||
"alertingConfigureTrigger": "Configurar Gatilho",
|
||||
"alertingConfigureActions": "Configurar Ações",
|
||||
"alertingBackToRules": "Voltar às Regras",
|
||||
"alertingRuleCooldown": "Tempo de Resfriamento (segundos)",
|
||||
"alertingRuleCooldownDescription": "Tempo mínimo entre alertas repetidos para a mesma regra. Defina para 0 para disparar todas as vezes.",
|
||||
"alertingDraftBadge": "Rascunho - salvar para armazenar esta regra",
|
||||
"alertingSidebarHint": "Clique em um passo na tela para editá-lo aqui.",
|
||||
"alertingGraphCanvasTitle": "Fluxo de Regras",
|
||||
"alertingGraphCanvasDescription": "Visão geral visual de fonte, gatilho e ações. Selecione um nó para editá-lo no painel.",
|
||||
"alertingNodeNotConfigured": "Ainda não configurado",
|
||||
"alertingNodeActionsCount": "{count, plural, one {# ação} other {# ações}}",
|
||||
"alertingNodeRoleSource": "Fonte",
|
||||
"alertingNodeRoleTrigger": "Gatilho",
|
||||
"alertingNodeRoleAction": "Ação",
|
||||
"alertingTabRules": "Regras de Alerta",
|
||||
"alertingTabHealthChecks": "Verificações de Saúde",
|
||||
"alertingRulesBannerTitle": "Seja Notificado",
|
||||
"alertingRulesBannerDescription": "Cada regra une o que observar (um site, verificação de saúde ou recurso), quando disparar (por exemplo, offline ou não saudável) e como notificar sua equipe por e-mail, webhooks ou integrações. Use esta lista para criar, ativar e gerenciar essas regras.",
|
||||
"alertingHealthChecksBannerTitle": "Monitorar Saúde & Recursos",
|
||||
"alertingHealthChecksBannerDescription": "As verificações de saúde são monitores HTTP ou TCP que você define uma vez. Você pode, então, usá-los como fontes em regras de alerta, para ser notificado quando um alvo se tornar saudável ou não saudável. As verificações de saúde em recursos também aparecem aqui.",
|
||||
"standaloneHcTableTitle": "Verificações de Saúde",
|
||||
"standaloneHcSearchPlaceholder": "Pesquisar verificações de saúde…",
|
||||
"standaloneHcAddButton": "Criar Verificação de Saúde",
|
||||
"standaloneHcCreateTitle": "Criar Verificação de Saúde",
|
||||
"standaloneHcEditTitle": "Editar Verificação de Saúde",
|
||||
"standaloneHcDescription": "Configure uma verificação de saúde HTTP ou TCP para uso em regras de alerta.",
|
||||
"standaloneHcNameLabel": "Nome",
|
||||
"standaloneHcNamePlaceholder": "Meu Monitor HTTP",
|
||||
"standaloneHcDeleteTitle": "Excluir verificação de saúde",
|
||||
"standaloneHcDeleteQuestion": "Por favor, confirme que deseja excluir esta verificação de saúde.",
|
||||
"standaloneHcDeleted": "Verificação de saúde excluída",
|
||||
"standaloneHcSaved": "Verificação de saúde salva",
|
||||
"standaloneHcColumnHealth": "Saúde",
|
||||
"standaloneHcColumnMode": "Modo",
|
||||
"standaloneHcColumnTarget": "Alvo",
|
||||
"standaloneHcHealthStateHealthy": "Saudável",
|
||||
"standaloneHcHealthStateUnhealthy": "Não Saudável",
|
||||
"standaloneHcHealthStateUnknown": "Desconhecido",
|
||||
"standaloneHcFilterAnySite": "Todos os sites",
|
||||
"standaloneHcFilterAnyResource": "Todos os recursos",
|
||||
"standaloneHcFilterMode": "Modo",
|
||||
"standaloneHcFilterModeHttp": "HTTP",
|
||||
"standaloneHcFilterModeTcp": "TCP",
|
||||
"standaloneHcFilterModeSnmp": "SNMP",
|
||||
"standaloneHcFilterModePing": "Ping",
|
||||
"standaloneHcFilterHealth": "Saúde",
|
||||
"standaloneHcFilterEnabled": "Ativado",
|
||||
"standaloneHcFilterEnabledOn": "Ativado",
|
||||
"standaloneHcFilterEnabledOff": "Desativado",
|
||||
"standaloneHcFilterSiteIdFallback": "Site {id}",
|
||||
"standaloneHcFilterResourceIdFallback": "Recurso {id}",
|
||||
"blueprints": "Diagramas",
|
||||
"blueprintsDescription": "Aplicar configurações declarativas e ver execuções anteriores",
|
||||
"blueprintAdd": "Adicionar Diagrama",
|
||||
@@ -1762,6 +1935,15 @@
|
||||
"healthCheckIntervalMin": "O intervalo de verificação deve ser de pelo menos 5 segundos",
|
||||
"healthCheckTimeoutMin": "O tempo limite deve ser de pelo menos 1 segundo",
|
||||
"healthCheckRetryMin": "As tentativas de repetição devem ser pelo menos 1",
|
||||
"healthCheckMode": "Modo de Verificação",
|
||||
"healthCheckStrategy": "Estratégia",
|
||||
"healthCheckModeDescription": "Modo TCP verifica apenas a conectividade. Modo HTTP valida a resposta HTTP.",
|
||||
"healthyThreshold": "Limite de Saúde",
|
||||
"healthyThresholdDescription": "Sucessos consecutivos necessários antes de marcar como saudável.",
|
||||
"unhealthyThreshold": "Limite de Não Saúde",
|
||||
"unhealthyThresholdDescription": "Falhas consecutivas necessárias antes de marcar como não saudável.",
|
||||
"healthCheckHealthyThresholdMin": "Limite de saúde deve ser pelo menos 1",
|
||||
"healthCheckUnhealthyThresholdMin": "Limite de não saúde deve ser pelo menos 1",
|
||||
"httpMethod": "Método HTTP",
|
||||
"selectHttpMethod": "Selecionar método HTTP",
|
||||
"domainPickerSubdomainLabel": "Subdomínio",
|
||||
@@ -1821,6 +2003,11 @@
|
||||
"editInternalResourceDialogModePort": "Porta",
|
||||
"editInternalResourceDialogModeHost": "Servidor",
|
||||
"editInternalResourceDialogModeCidr": "CIDR",
|
||||
"editInternalResourceDialogModeHttp": "HTTP",
|
||||
"editInternalResourceDialogModeHttps": "HTTPS",
|
||||
"editInternalResourceDialogScheme": "Esquema",
|
||||
"editInternalResourceDialogEnableSsl": "Ativar SSL",
|
||||
"editInternalResourceDialogEnableSslDescription": "Ativar criptografia SSL/TLS para conexões HTTPS seguras com o destino.",
|
||||
"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.",
|
||||
@@ -1836,6 +2023,7 @@
|
||||
"createInternalResourceDialogName": "Nome",
|
||||
"createInternalResourceDialogSite": "Site",
|
||||
"selectSite": "Selecionar site...",
|
||||
"multiSitesSelectorSitesCount": "{count, plural, one {# site} other {# sites}}",
|
||||
"noSitesFound": "Nenhum site encontrado.",
|
||||
"createInternalResourceDialogProtocol": "Protocolo",
|
||||
"createInternalResourceDialogTcp": "TCP",
|
||||
@@ -1864,11 +2052,19 @@
|
||||
"createInternalResourceDialogModePort": "Porta",
|
||||
"createInternalResourceDialogModeHost": "Servidor",
|
||||
"createInternalResourceDialogModeCidr": "CIDR",
|
||||
"createInternalResourceDialogModeHttp": "HTTP",
|
||||
"createInternalResourceDialogModeHttps": "HTTPS",
|
||||
"scheme": "Esquema",
|
||||
"createInternalResourceDialogScheme": "Esquema",
|
||||
"createInternalResourceDialogEnableSsl": "Ativar SSL",
|
||||
"createInternalResourceDialogEnableSslDescription": "Ativar criptografia SSL/TLS para conexões HTTPS seguras com o destino.",
|
||||
"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.",
|
||||
"internalResourceDownstreamSchemeRequired": "Esquema é obrigatório para recursos HTTP",
|
||||
"internalResourceHttpPortRequired": "Porta de destino é obrigatória para recursos HTTP",
|
||||
"siteConfiguration": "Configuração",
|
||||
"siteAcceptClientConnections": "Aceitar Conexões de Clientes",
|
||||
"siteAcceptClientConnectionsDescription": "Permitir que dispositivos de usuário e clientes acessem recursos neste site. Isso pode ser alterado mais tarde.",
|
||||
@@ -1993,7 +2189,7 @@
|
||||
"description": "Servidor Pangolin auto-hospedado mais confiável e com baixa manutenção com sinos extras e assobiamentos",
|
||||
"introTitle": "Pangolin Auto-Hospedado Gerenciado",
|
||||
"introDescription": "é uma opção de implantação projetada para pessoas que querem simplicidade e confiança adicional, mantendo os seus dados privados e auto-hospedados.",
|
||||
"introDetail": "Com esta opção, você ainda roda seu próprio nó Pangolin — seus túneis, terminação SSL e tráfego todos permanecem no seu servidor. A diferença é que a gestão e a monitorização são geridos através do nosso painel de nuvem, que desbloqueia vários benefícios:",
|
||||
"introDetail": "Com esta opção, você ainda roda seu próprio nó Pangolin - seus túneis, terminação SSL e tráfego todos permanecem no seu servidor. A diferença é que a gestão e a monitorização são geridos através do nosso painel de nuvem, que desbloqueia vários benefícios:",
|
||||
"benefitSimplerOperations": {
|
||||
"title": "Operações simples",
|
||||
"description": "Não é necessário executar o seu próprio servidor de e-mail ou configurar um alerta complexo. Você receberá fora de caixa verificações de saúde e alertas de tempo de inatividade."
|
||||
@@ -2026,7 +2222,7 @@
|
||||
},
|
||||
"internationaldomaindetected": "Domínio Internacional Detectado",
|
||||
"willbestoredas": "Será armazenado como:",
|
||||
"roleMappingDescription": "Determinar como as funções são atribuídas aos usuários quando eles fazem login quando Auto Provisão está habilitada.",
|
||||
"roleMappingDescription": "Determine como os papéis são atribuídos aos usuários quando eles entram com este provedor de identidade.",
|
||||
"selectRole": "Selecione uma função",
|
||||
"roleMappingExpression": "Expressão",
|
||||
"selectRolePlaceholder": "Escolha uma função",
|
||||
@@ -2118,7 +2314,7 @@
|
||||
"selectDomainForOrgAuthPage": "Selecione um domínio para a página de autenticação da organização",
|
||||
"domainPickerProvidedDomain": "Domínio fornecido",
|
||||
"domainPickerFreeProvidedDomain": "Domínio fornecido grátis",
|
||||
"domainPickerFreeDomainsPaidFeature": "Os domínios fornecidos são um recurso pago. Assine para obter um domínio incluído no seu plano — não há necessidade de trazer o seu próprio.",
|
||||
"domainPickerFreeDomainsPaidFeature": "Os domínios fornecidos são um recurso pago. Assine para obter um domínio incluído no seu plano - não há necessidade de trazer o seu próprio.",
|
||||
"domainPickerVerified": "Verificada",
|
||||
"domainPickerUnverified": "Não verificado",
|
||||
"domainPickerManual": "Manual",
|
||||
@@ -2296,7 +2492,7 @@
|
||||
"alerts": {
|
||||
"commercialUseDisclosure": {
|
||||
"title": "Divulgação de uso",
|
||||
"description": "Selecione o nível de licença que reflete corretamente seu uso pretendido. A Licença Pessoal permite o uso livre do Software para atividades comerciais individuais, não comerciais ou em pequena escala com rendimento bruto anual inferior a 100.000 USD. Qualquer uso além destes limites — incluindo uso dentro de um negócio, organização, ou outro ambiente gerador de receitas — requer uma Licença Enterprise válida e o pagamento da taxa aplicável de licenciamento. Todos os usuários, pessoais ou empresariais, devem cumprir os Termos da Licença Comercial Fossorial."
|
||||
"description": "Selecione o nível de licença que reflete corretamente seu uso pretendido. A Licença Pessoal permite o uso livre do Software para atividades comerciais individuais, não comerciais ou em pequena escala com rendimento bruto anual inferior a 100.000 USD. Qualquer uso além destes limites - incluindo uso dentro de um negócio, organização, ou outro ambiente gerador de receitas - requer uma Licença Enterprise válida e o pagamento da taxa aplicável de licenciamento. Todos os usuários, pessoais ou empresariais, devem cumprir os Termos da Licença Comercial Fossorial."
|
||||
},
|
||||
"trialPeriodInformation": {
|
||||
"title": "Informações do Período de Avaliação",
|
||||
@@ -2428,6 +2624,7 @@
|
||||
"validPassword": "Senha válida",
|
||||
"validEmail": "Valid email",
|
||||
"validSSO": "Valid SSO",
|
||||
"connectedClient": "Cliente Conectado",
|
||||
"resourceBlocked": "Recurso bloqueado",
|
||||
"droppedByRule": "Derrubado pela regra",
|
||||
"noSessions": "Sem Sessões",
|
||||
@@ -2667,6 +2864,10 @@
|
||||
"editInternalResourceDialogDestinationLabel": "Destino",
|
||||
"editInternalResourceDialogDestinationDescription": "Especifique o endereço de destino para o recurso interno. Isso pode ser um nome de host, endereço IP ou intervalo CIDR, dependendo do modo selecionado. Opcionalmente, defina um alias interno de DNS para facilitar a identificação.",
|
||||
"editInternalResourceDialogPortRestrictionsDescription": "Restrinja o acesso a portas TCP/UDP específicas ou permita/bloqueie todas as portas.",
|
||||
"createInternalResourceDialogHttpConfiguration": "Configuração HTTP",
|
||||
"createInternalResourceDialogHttpConfigurationDescription": "Escolha o domínio que os clientes usarão para acessar este recurso via HTTP ou HTTPS.",
|
||||
"editInternalResourceDialogHttpConfiguration": "Configuração HTTP",
|
||||
"editInternalResourceDialogHttpConfigurationDescription": "Escolha o domínio que os clientes usarão para acessar este recurso via HTTP ou HTTPS.",
|
||||
"editInternalResourceDialogTcp": "TCP",
|
||||
"editInternalResourceDialogUdp": "UDP",
|
||||
"editInternalResourceDialogIcmp": "ICMP",
|
||||
@@ -2705,6 +2906,8 @@
|
||||
"maintenancePageMessagePlaceholder": "Voltaremos em breve! Nosso site está passando por manutenção programada.",
|
||||
"maintenancePageMessageDescription": "Mensagem detalhada explicando a manutenção",
|
||||
"maintenancePageTimeTitle": "Hora de Conclusão Estimada (Opcional)",
|
||||
"privateMaintenanceScreenTitle": "Tela de Placeholder Privada",
|
||||
"privateMaintenanceScreenMessage": "Este domínio está sendo usado em um recurso privado. Por favor, conecte-se usando o cliente Pangolin para acessar este recurso.",
|
||||
"maintenanceTime": "por exemplo, 2 horas, 1 de Nov às 17h00",
|
||||
"maintenanceEstimatedTimeDescription": "Quando você espera que a manutenção seja concluída",
|
||||
"editDomain": "Editar Domínio",
|
||||
@@ -2842,6 +3045,14 @@
|
||||
"httpDestAddTitle": "Adicionar Destino HTTP",
|
||||
"httpDestEditDescription": "Atualizar a configuração para este destino de transmissão de eventos HTTP.",
|
||||
"httpDestAddDescription": "Configure um novo ponto de extremidade HTTP para receber eventos da sua organização.",
|
||||
"S3DestEditTitle": "Editar Destino",
|
||||
"S3DestAddTitle": "Adicionar Destino S3",
|
||||
"S3DestEditDescription": "Atualize a configuração para este destino de streaming de eventos S3.",
|
||||
"S3DestAddDescription": "Configure um novo endpoint S3 para receber os eventos da sua organização.",
|
||||
"datadogDestEditTitle": "Editar Destino",
|
||||
"datadogDestAddTitle": "Adicionar Destino Datadog",
|
||||
"datadogDestEditDescription": "Atualize a configuração para este destino de streaming de eventos Datadog.",
|
||||
"datadogDestAddDescription": "Configure um novo endpoint Datadog para receber os eventos da sua organização.",
|
||||
"httpDestTabSettings": "Confirgurações",
|
||||
"httpDestTabHeaders": "Cabeçalhos",
|
||||
"httpDestTabBody": "Conteúdo",
|
||||
@@ -2881,7 +3092,7 @@
|
||||
"httpDestFormatJsonArrayTitle": "Matriz JSON",
|
||||
"httpDestFormatJsonArrayDescription": "Um pedido por lote, o corpo é um array JSON. Compatível com a maioria dos webhooks genéricos e Datadog.",
|
||||
"httpDestFormatNdjsonTitle": "NDJSON",
|
||||
"httpDestFormatNdjsonDescription": "Um pedido por lote, o corpo é um JSON delimitado por nova-linha — um objeto por linha, sem array exterior. Requerido pelo Splunk HEC, Elástico / OpenSearch, e Grafana Loki.",
|
||||
"httpDestFormatNdjsonDescription": "Um pedido por lote, o corpo é um JSON delimitado por nova-linha - um objeto por linha, sem array exterior. Requerido pelo Splunk HEC, Elástico / OpenSearch, e Grafana Loki.",
|
||||
"httpDestFormatSingleTitle": "Um Evento por Requisição",
|
||||
"httpDestFormatSingleDescription": "Envia um POST HTTP separado para cada evento. Utilize apenas para endpoints que não podem manipular lotes.",
|
||||
"httpDestLogTypesTitle": "Tipos de log",
|
||||
@@ -2899,5 +3110,37 @@
|
||||
"httpDestUpdatedSuccess": "Destino atualizado com sucesso",
|
||||
"httpDestCreatedSuccess": "Destino criado com sucesso",
|
||||
"httpDestUpdateFailed": "Falha ao atualizar destino",
|
||||
"httpDestCreateFailed": "Falha ao criar destino"
|
||||
"httpDestCreateFailed": "Falha ao criar destino",
|
||||
"followRedirects": "Seguir Redirecionamentos",
|
||||
"followRedirectsDescription": "Siga automaticamente os redirecionamentos HTTP para requisições.",
|
||||
"alertingErrorWebhookUrl": "Por favor, insira um URL válido para o webhook.",
|
||||
"healthCheckStrategyHttp": "Valida conectividade e verifica o status da resposta HTTP.",
|
||||
"healthCheckStrategyTcp": "Verifica apenas conectividade TCP, sem inspecionar a resposta.",
|
||||
"healthCheckStrategySnmp": "Faz uma solicitação SNMP para verificar a saúde dos dispositivos e infraestruturas de rede.",
|
||||
"healthCheckStrategyIcmp": "Usa solicitações de eco ICMP (pings) para verificar se um recurso é acessível e responsivo.",
|
||||
"healthCheckTabStrategy": "Estratégia",
|
||||
"healthCheckTabConnection": "Conexão",
|
||||
"healthCheckTabAdvanced": "Avançado",
|
||||
"healthCheckStrategyNotAvailable": "Esta estratégia não está disponível. Por favor, contacte vendas para ativar esta funcionalidade.",
|
||||
"uptime30d": "Uptime (30d)",
|
||||
"idpAddActionCreateNew": "Criar novo provedor de identidade",
|
||||
"idpAddActionImportFromOrg": "Importar de outra organização",
|
||||
"idpImportDialogTitle": "Importar Provedor de Identidade",
|
||||
"idpImportDialogDescription": "Escolha um provedor de identidade de uma organização onde você é administrador. Ele será vinculado a esta organização.",
|
||||
"idpImportSearchPlaceholder": "Pesquisar por nome de organização ou provedor...",
|
||||
"idpImportEmpty": "Nenhum provedor de identidade encontrado.",
|
||||
"idpImportedDescription": "Provedor de identidade importado com sucesso.",
|
||||
"idpDeleteGlobalQuestion": "Tem certeza de que deseja eliminar permanentemente este provedor de identidade?",
|
||||
"idpDeleteGlobalDescription": "Isso eliminará permanentemente o provedor de identidade de todas as organizações com as quais está associado.",
|
||||
"idpUnassociateTitle": "Desassociar Provedor de Identidade",
|
||||
"idpUnassociateQuestion": "Tem certeza de que deseja desassociar este provedor de identidade desta organização?",
|
||||
"idpUnassociateDescription": "Todos os usuários associados a este provedor de identidade serão removidos desta organização, mas o provedor de identidade continuará a existir para outras organizações associadas.",
|
||||
"idpUnassociateConfirm": "Confirmar Desassociação do Provedor de Identidade",
|
||||
"idpUnassociateWarning": "Isso não pode ser desfeito para esta organização.",
|
||||
"idpUnassociatedDescription": "Provedor de identidade desassociado desta organização com sucesso",
|
||||
"idpUnassociateMenu": "Desassociar",
|
||||
"idpDeleteAllOrgsMenu": "Excluir",
|
||||
"publicIpEndpoint": "Endpoint",
|
||||
"lastTriggeredAt": "Último Gatilho",
|
||||
"reject": "Rejeitar"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"contactSalesEnable": "Свяжитесь с отделом продаж, чтобы включить эту функцию.",
|
||||
"contactSalesBookDemo": "Записаться на демонстрацию",
|
||||
"contactSalesOr": "или",
|
||||
"contactSalesContactUs": "свяжитесь с нами",
|
||||
"setupCreate": "Создать организацию, сайт и ресурсы",
|
||||
"headerAuthCompatibilityInfo": "Включите это, чтобы принудительно вернуть ответ 401 Unauthorized, если отсутствует токен аутентификации. Это требуется для браузеров или определенных библиотек HTTP, которые не отправляют учетные данные без запроса сервера.",
|
||||
"headerAuthCompatibility": "Дополнительная совместимость",
|
||||
@@ -19,6 +23,14 @@
|
||||
"componentsInvalidKey": "Обнаружены недействительные или просроченные лицензионные ключи. Соблюдайте условия лицензии для использования всех функций.",
|
||||
"dismiss": "Отменить",
|
||||
"subscriptionViolationMessage": "Вы превысили лимиты для вашего текущего плана. Исправьте проблему, удалив сайты, пользователей или другие ресурсы, чтобы остаться в пределах вашего плана.",
|
||||
"trialBannerMessage": "Ваш пробный период истекает через {countdown}. Обновите, чтобы сохранить доступ.",
|
||||
"trialBannerExpired": "Ваш пробный период истек. Обновите сейчас, чтобы восстановить доступ.",
|
||||
"trialActive": "Бесплатный пробный период активен",
|
||||
"trialExpired": "Пробный период истек",
|
||||
"trialHasEnded": "Ваш пробный период окончен.",
|
||||
"trialDaysRemaining": "{count, plural, one {# день остался} few {# дня осталось} many {# дней осталось} other {# дней осталось}}",
|
||||
"trialDaysLeftShort": "Осталось {days}д в пробном периоде",
|
||||
"trialGoToBilling": "Перейти на страницу выставления счетов",
|
||||
"subscriptionViolationViewBilling": "Просмотр биллинга",
|
||||
"componentsLicenseViolation": "Нарушение лицензии: Сервер использует {usedSites} сайтов, что превышает лицензионный лимит в {maxSites} сайтов. Соблюдайте условия лицензии для использования всех функций.",
|
||||
"componentsSupporterMessage": "Спасибо за поддержку Pangolin в качестве {tier}!",
|
||||
@@ -56,7 +68,7 @@
|
||||
"siteManageSites": "Управление сайтами",
|
||||
"siteDescription": "Создание и управление сайтами, чтобы включить подключение к приватным сетям",
|
||||
"sitesBannerTitle": "Подключить любую сеть",
|
||||
"sitesBannerDescription": "Сайт — это соединение с удаленной сетью, которое позволяет Pangolin предоставлять доступ к ресурсам, будь они общедоступными или частными, пользователям в любом месте. Установите сетевой коннектор сайта (Newt) там, где можно запустить исполняемый файл или контейнер, чтобы установить соединение.",
|
||||
"sitesBannerDescription": "Сайт - это соединение с удаленной сетью, которое позволяет Pangolin предоставлять доступ к ресурсам, будь они общедоступными или частными, пользователям в любом месте. Установите сетевой коннектор сайта (Newt) там, где можно запустить исполняемый файл или контейнер, чтобы установить соединение.",
|
||||
"sitesBannerButtonText": "Установить сайт",
|
||||
"approvalsBannerTitle": "Одобрить или запретить доступ к устройству",
|
||||
"approvalsBannerDescription": "Просмотрите и подтвердите или отклоните запросы на доступ к устройству от пользователей. Когда требуется подтверждение устройства, пользователи должны получить одобрение администратора, прежде чем их устройства смогут подключиться к ресурсам вашей организации.",
|
||||
@@ -163,7 +175,7 @@
|
||||
"proxyResourceTitle": "Управление публичными ресурсами",
|
||||
"proxyResourceDescription": "Создание и управление ресурсами, которые доступны через веб-браузер",
|
||||
"proxyResourcesBannerTitle": "Общедоступный доступ через веб",
|
||||
"proxyResourcesBannerDescription": "Общедоступные ресурсы — это прокси-по HTTPS или TCP/UDP, доступные любому пользователю в Интернете через веб-браузер. В отличие от частных ресурсов, они не требуют программного обеспечения на стороне клиента и могут включать политики доступа на основе идентификации и контекста.",
|
||||
"proxyResourcesBannerDescription": "Общедоступные ресурсы - это прокси-по HTTPS или TCP/UDP, доступные любому пользователю в Интернете через веб-браузер. В отличие от частных ресурсов, они не требуют программного обеспечения на стороне клиента и могут включать политики доступа на основе идентификации и контекста.",
|
||||
"clientResourceTitle": "Управление приватными ресурсами",
|
||||
"clientResourceDescription": "Создание и управление ресурсами, которые доступны только через подключенный клиент",
|
||||
"privateResourcesBannerTitle": "Частный доступ с нулевым доверием",
|
||||
@@ -267,8 +279,11 @@
|
||||
"orgMissing": "Отсутствует ID организации",
|
||||
"orgMissingMessage": "Невозможно восстановить приглашение без ID организации.",
|
||||
"accessUsersManage": "Управление пользователями",
|
||||
"accessUserManage": "Управление пользователем",
|
||||
"accessUsersDescription": "Пригласить и управлять пользователями с доступом к этой организации",
|
||||
"accessUsersSearch": "Поиск пользователей...",
|
||||
"accessUsersRoleFilterCount": "{count, plural, one {# роль} few {# роли} many {# ролей} other {# роли}}",
|
||||
"accessUsersRoleFilterClear": "Очистить фильтры ролей",
|
||||
"accessUserCreate": "Создать пользователя",
|
||||
"accessUserRemove": "Удалить пользователя",
|
||||
"username": "Имя пользователя",
|
||||
@@ -371,7 +386,7 @@
|
||||
"provisioningKeysUpdated": "Ключ подготовки обновлен",
|
||||
"provisioningKeysUpdatedDescription": "Ваши изменения были сохранены.",
|
||||
"provisioningKeysBannerTitle": "Ключи подготовки сайта",
|
||||
"provisioningKeysBannerDescription": "Создайте ключ настройки и используйте его с соединителем Newt для автоматического создания сайтов при первом запуске — нет необходимости настраивать отдельные учетные данные для каждого сайта.",
|
||||
"provisioningKeysBannerDescription": "Создайте ключ настройки и используйте его с соединителем Newt для автоматического создания сайтов при первом запуске - нет необходимости настраивать отдельные учетные данные для каждого сайта.",
|
||||
"provisioningKeysBannerButtonText": "Узнать больше",
|
||||
"pendingSitesBannerTitle": "Ожидающие сайты",
|
||||
"pendingSitesBannerDescription": "Сайты, подключающиеся с помощью ключа настройки, отображаются здесь для проверки.",
|
||||
@@ -898,6 +913,7 @@
|
||||
"idpDisplayName": "Отображаемое имя для этого поставщика удостоверений",
|
||||
"idpAutoProvisionUsers": "Автоматическое создание пользователей",
|
||||
"idpAutoProvisionUsersDescription": "При включении пользователи будут автоматически создаваться в системе при первом входе с возможностью сопоставления пользователей с ролями и организациями.",
|
||||
"idpAutoProvisionConfigureAfterCreate": "Вы можете настроить параметры автоматического обеспечения после создания поставщика удостоверений.",
|
||||
"licenseBadge": "EE",
|
||||
"idpType": "Тип поставщика",
|
||||
"idpTypeDescription": "Выберите тип поставщика удостоверений, который вы хотите настроить",
|
||||
@@ -949,7 +965,7 @@
|
||||
"defaultMappingsRole": "Сопоставление ролей по умолчанию",
|
||||
"defaultMappingsRoleDescription": "Результат этого выражения должен возвращать имя роли, как определено в организации, в виде строки.",
|
||||
"defaultMappingsOrg": "Сопоставление организаций по умолчанию",
|
||||
"defaultMappingsOrgDescription": "Это выражение должно возвращать ID организации или true для разрешения доступа пользователя к организации.",
|
||||
"defaultMappingsOrgDescription": "При установке это выражение должно возвращать ID организации или true, чтобы пользователь мог получить доступ к этой организации. При отсутствии настройка отображения роли достаточно: пользователю разрешено войти, пока для него может быть решено отображение гарантированной роли в организации.",
|
||||
"defaultMappingsSubmit": "Сохранить сопоставления по умолчанию",
|
||||
"orgPoliciesEdit": "Редактировать политику организации",
|
||||
"org": "Организация",
|
||||
@@ -1256,6 +1272,7 @@
|
||||
"actionViewLogs": "Просмотр журналов",
|
||||
"noneSelected": "Ничего не выбрано",
|
||||
"orgNotFound2": "Организации не найдены.",
|
||||
"search": "Поиск…",
|
||||
"searchPlaceholder": "Поиск...",
|
||||
"emptySearchOptions": "Опции не найдены",
|
||||
"create": "Создать",
|
||||
@@ -1340,10 +1357,166 @@
|
||||
"sidebarGeneral": "Управление",
|
||||
"sidebarLogAndAnalytics": "Журнал и аналитика",
|
||||
"sidebarBluePrints": "Чертежи",
|
||||
"sidebarAlerting": "Оповещения",
|
||||
"sidebarHealthChecks": "Проверки здоровья",
|
||||
"sidebarOrganization": "Организация",
|
||||
"sidebarManagement": "Управление",
|
||||
"sidebarBillingAndLicenses": "Биллинг и лицензии",
|
||||
"sidebarLogsAnalytics": "Статистика",
|
||||
"alertingTitle": "Оповещения",
|
||||
"alertingDescription": "Определите источники, триггеры и действия для уведомлений",
|
||||
"alertingRules": "Правила оповещений",
|
||||
"alertingSearchRules": "Поиск правил…",
|
||||
"alertingAddRule": "Создать правило",
|
||||
"alertingColumnSource": "Источник",
|
||||
"alertingColumnTrigger": "Триггер",
|
||||
"alertingColumnActions": "Действия",
|
||||
"alertingColumnEnabled": "Включено",
|
||||
"alertingDeleteQuestion": "Пожалуйста, подтвердите удаление этого правила оповещений.",
|
||||
"alertingDeleteRule": "Удалить правило оповещений",
|
||||
"alertingRuleDeleted": "Правило оповещений удалено",
|
||||
"alertingRuleSaved": "Правило оповещений сохранено",
|
||||
"alertingRuleSavedCreatedDescription": "Ваше новое правило оповещений создано. Вы можете продолжать редактировать его на этой странице.",
|
||||
"alertingRuleSavedUpdatedDescription": "Ваши изменения в этом правиле оповещений были сохранены.",
|
||||
"alertingEditRule": "Редактировать правило оповещений",
|
||||
"alertingCreateRule": "Создать правило оповещений",
|
||||
"alertingRuleCredenzaDescription": "Выберите, что отслеживать, когда срабатывать и как уведомлять",
|
||||
"alertingRuleNamePlaceholder": "Рабочий сайт не доступен",
|
||||
"alertingRuleEnabled": "Правило включено",
|
||||
"alertingSectionSource": "Источник",
|
||||
"alertingSourceType": "Тип источника",
|
||||
"alertingSourceSite": "Сайт",
|
||||
"alertingSourceHealthCheck": "Проверка здоровья",
|
||||
"alertingPickSites": "Сайты",
|
||||
"alertingPickHealthChecks": "Проверки здоровья",
|
||||
"alertingPickResources": "Ресурсы",
|
||||
"alertingAllSites": "Все сайты",
|
||||
"alertingAllSitesDescription": "Оповещение срабатывает на любом сайте",
|
||||
"alertingSpecificSites": "Конкретные сайты",
|
||||
"alertingSpecificSitesDescription": "Выберите конкретные сайты для отслеживания",
|
||||
"alertingAllHealthChecks": "Все проверки здоровья",
|
||||
"alertingAllHealthChecksDescription": "Оповещение срабатывает на любой проверке здоровья",
|
||||
"alertingSpecificHealthChecks": "Конкретные проверки здоровья",
|
||||
"alertingSpecificHealthChecksDescription": "Выберите конкретные проверки здоровья для отслеживания",
|
||||
"alertingAllResources": "Все ресурсы",
|
||||
"alertingAllResourcesDescription": "Оповещение срабатывает на любом ресурсе",
|
||||
"alertingSpecificResources": "Конкретные ресурсы",
|
||||
"alertingSpecificResourcesDescription": "Выберите конкретные ресурсы для отслеживания",
|
||||
"alertingSelectResources": "Выберите ресурсы…",
|
||||
"alertingResourcesSelected": "Выбрано {count} ресурсов",
|
||||
"alertingResourcesEmpty": "Нет ресурсов с целью в первых 10 результатах.",
|
||||
"alertingSectionTrigger": "Триггер",
|
||||
"alertingTrigger": "Когда оповестить",
|
||||
"alertingTriggerSiteOnline": "Сайт онлайн",
|
||||
"alertingTriggerSiteOffline": "Сайт офлайн",
|
||||
"alertingTriggerSiteToggle": "Статус сайта изменяется",
|
||||
"alertingTriggerHcHealthy": "Проверка здоровья успешна",
|
||||
"alertingTriggerHcUnhealthy": "Проверка здоровья не успешна",
|
||||
"alertingTriggerHcToggle": "Статус проверки здоровья изменяется",
|
||||
"alertingTriggerResourceHealthy": "Ресурс в нормальном состоянии",
|
||||
"alertingTriggerResourceUnhealthy": "Ресурс в ненормальном состоянии",
|
||||
"alertingSearchHealthChecks": "Поиск проверок здоровья…",
|
||||
"alertingHealthChecksEmpty": "Нет доступных проверок здоровья.",
|
||||
"alertingTriggerResourceToggle": "Статус ресурса изменяется",
|
||||
"alertingSourceResource": "Ресурс",
|
||||
"alertingSectionActions": "Действия",
|
||||
"alertingAddAction": "Добавить действие",
|
||||
"alertingActionNotify": "Электронная почта",
|
||||
"alertingActionNotifyDescription": "Отправляйте email уведомления пользователям или ролям",
|
||||
"alertingActionWebhook": "Веб-хук",
|
||||
"alertingActionWebhookDescription": "Отправьте HTTP-запрос на пользовательскую конечную точку",
|
||||
"alertingExternalIntegration": "Внешняя интеграция",
|
||||
"alertingExternalPagerDutyDescription": "Отправляйте оповещения в PagerDuty для управления инцидентами",
|
||||
"alertingExternalOpsgenieDescription": "Маршрутизируйте оповещения в Opsgenie для управления дежурной службой",
|
||||
"alertingExternalServiceNowDescription": "Создавайте инциденты ServiceNow из событий оповещений",
|
||||
"alertingExternalIncidentIoDescription": "Запускайте рабочие процессы Incident.io из событий оповещений",
|
||||
"alertingActionType": "Тип действия",
|
||||
"alertingNotifyUsers": "Пользователи",
|
||||
"alertingNotifyRoles": "Роли",
|
||||
"alertingNotifyEmails": "Email адреса",
|
||||
"alertingEmailPlaceholder": "Добавьте email и нажмите Enter",
|
||||
"alertingWebhookMethod": "HTTP метод",
|
||||
"alertingWebhookSecret": "Секрет подписания (необязательно)",
|
||||
"alertingWebhookSecretPlaceholder": "HMAC секрет",
|
||||
"alertingWebhookHeaders": "Заголовки",
|
||||
"alertingAddHeader": "Добавить заголовок",
|
||||
"alertingSelectSites": "Выберите сайты…",
|
||||
"alertingSitesSelected": "Выбрано {count} сайтов",
|
||||
"alertingSelectHealthChecks": "Выберите проверки здоровья…",
|
||||
"alertingHealthChecksSelected": "Выбрано {count} проверок здоровья",
|
||||
"alertingNoHealthChecks": "Цели без включенных проверок здоровья отсутствуют",
|
||||
"alertingHealthCheckStub": "Выбор источника проверки здоровья ещё не подключён - вы все ещё можете настроить триггеры и действия.",
|
||||
"alertingSelectUsers": "Выберите пользователей…",
|
||||
"alertingUsersSelected": "Выбрано {count} пользователей",
|
||||
"alertingSelectRoles": "Выберите роли…",
|
||||
"alertingRolesSelected": "Выбрано {count} ролей",
|
||||
"alertingSummarySites": "Сайты ({count})",
|
||||
"alertingSummaryAllSites": "Все сайты",
|
||||
"alertingSummaryHealthChecks": "Проверки здоровья ({count})",
|
||||
"alertingSummaryAllHealthChecks": "Все проверки здоровья",
|
||||
"alertingSummaryResources": "Ресурсы ({count})",
|
||||
"alertingSummaryAllResources": "Все ресурсы",
|
||||
"alertingErrorNameRequired": "Введите название",
|
||||
"alertingErrorActionsMin": "Добавьте как минимум одно действие",
|
||||
"alertingErrorPickSites": "Выберите как минимум один сайт",
|
||||
"alertingErrorPickHealthChecks": "Выберите как минимум одну проверку здоровья",
|
||||
"alertingErrorPickResources": "Выберите как минимум один ресурс",
|
||||
"alertingErrorTriggerSite": "Выберите триггер сайта",
|
||||
"alertingErrorTriggerHealth": "Выберите триггер проверки здоровья",
|
||||
"alertingErrorTriggerResource": "Выберите триггер ресурса",
|
||||
"alertingErrorNotifyRecipients": "Выберите пользователей, роли или как минимум один email",
|
||||
"alertingConfigureSource": "Настроить источник",
|
||||
"alertingConfigureTrigger": "Настроить триггер",
|
||||
"alertingConfigureActions": "Настроить действия",
|
||||
"alertingBackToRules": "Назад к правилам",
|
||||
"alertingRuleCooldown": "Охлаждение (секунды)",
|
||||
"alertingRuleCooldownDescription": "Минимальное время между повторными оповещениями для одного и того же правила. Установите 0 для каждого вызова.",
|
||||
"alertingDraftBadge": "Черновик - сохраните, чтобы сохранить это правило",
|
||||
"alertingSidebarHint": "Кликните по шагу на холсте, чтобы редактировать его здесь.",
|
||||
"alertingGraphCanvasTitle": "Поток правил",
|
||||
"alertingGraphCanvasDescription": "Визуальный обзор источника, триггера и действий. Выберите узел, чтобы редактировать его в панели.",
|
||||
"alertingNodeNotConfigured": "Ещё не настроено",
|
||||
"alertingNodeActionsCount": "{count, plural, one {# действие} few {# действия} many {# действий} other {# действий}}",
|
||||
"alertingNodeRoleSource": "Источник",
|
||||
"alertingNodeRoleTrigger": "Триггер",
|
||||
"alertingNodeRoleAction": "Действие",
|
||||
"alertingTabRules": "Правила оповещений",
|
||||
"alertingTabHealthChecks": "Проверки здоровья",
|
||||
"alertingRulesBannerTitle": "Получить уведомление",
|
||||
"alertingRulesBannerDescription": "Каждое правило объединяет, что отслеживать (сайт, проверка состояния или ресурс), когда срабатывать (например, оффлайн или нарушение), и как уведомлять вашу команду через email, вебхуки или интеграции. Используйте этот список для создания, включения и управления этими правилами.",
|
||||
"alertingHealthChecksBannerTitle": "Мониторинг здоровья и ресурсов",
|
||||
"alertingHealthChecksBannerDescription": "Проверки здоровья — это HTTP или TCP мониторы, которые вы определяете один раз. Затем вы можете использовать их в правилах оповещений, чтобы получать уведомления, когда цель становится здоровой или нездоровой. Проверки здоровья для ресурсов также появляются здесь.",
|
||||
"standaloneHcTableTitle": "Проверки здоровья",
|
||||
"standaloneHcSearchPlaceholder": "Поиск проверок здоровья…",
|
||||
"standaloneHcAddButton": "Создать проверку здоровья",
|
||||
"standaloneHcCreateTitle": "Создать проверку здоровья",
|
||||
"standaloneHcEditTitle": "Редактировать проверку здоровья",
|
||||
"standaloneHcDescription": "Настройте проверку здоровья HTTP или TCP для использования в правилах оповещений.",
|
||||
"standaloneHcNameLabel": "Имя",
|
||||
"standaloneHcNamePlaceholder": "Мой HTTP монитор",
|
||||
"standaloneHcDeleteTitle": "Удалить проверку здоровья",
|
||||
"standaloneHcDeleteQuestion": "Пожалуйста, подтвердите удаление этой проверки здоровья.",
|
||||
"standaloneHcDeleted": "Проверка здоровья удалена",
|
||||
"standaloneHcSaved": "Проверка здоровья сохранена",
|
||||
"standaloneHcColumnHealth": "Здоровье",
|
||||
"standaloneHcColumnMode": "Режим",
|
||||
"standaloneHcColumnTarget": "Цель",
|
||||
"standaloneHcHealthStateHealthy": "Здоровый",
|
||||
"standaloneHcHealthStateUnhealthy": "Нездоровый",
|
||||
"standaloneHcHealthStateUnknown": "Неизвестно",
|
||||
"standaloneHcFilterAnySite": "Все сайты",
|
||||
"standaloneHcFilterAnyResource": "Все ресурсы",
|
||||
"standaloneHcFilterMode": "Режим",
|
||||
"standaloneHcFilterModeHttp": "HTTP",
|
||||
"standaloneHcFilterModeTcp": "TCP",
|
||||
"standaloneHcFilterModeSnmp": "SNMP",
|
||||
"standaloneHcFilterModePing": "Пинг",
|
||||
"standaloneHcFilterHealth": "Здоровье",
|
||||
"standaloneHcFilterEnabled": "Включено",
|
||||
"standaloneHcFilterEnabledOn": "Включено",
|
||||
"standaloneHcFilterEnabledOff": "Отключено",
|
||||
"standaloneHcFilterSiteIdFallback": "Сайт {id}",
|
||||
"standaloneHcFilterResourceIdFallback": "Ресурс {id}",
|
||||
"blueprints": "Чертежи",
|
||||
"blueprintsDescription": "Применить декларирующие конфигурации и просмотреть предыдущие запуски",
|
||||
"blueprintAdd": "Добавить чертёж",
|
||||
@@ -1762,6 +1935,15 @@
|
||||
"healthCheckIntervalMin": "Интервал проверки должен составлять не менее 5 секунд",
|
||||
"healthCheckTimeoutMin": "Тайм-аут должен составлять не менее 1 секунды",
|
||||
"healthCheckRetryMin": "Количество попыток должно быть не менее 1",
|
||||
"healthCheckMode": "Режим проверки",
|
||||
"healthCheckStrategy": "Стратегия",
|
||||
"healthCheckModeDescription": "Режим TCP проверяет только возможность подключения. Режим HTTP проверяет ответ HTTP.",
|
||||
"healthyThreshold": "Порог здорового состояния",
|
||||
"healthyThresholdDescription": "Последовательные успехи, необходимые перед тем, как пометить как здоровый.",
|
||||
"unhealthyThreshold": "Порог нездорового состояния",
|
||||
"unhealthyThresholdDescription": "Последовательные неудачи, необходимые перед тем, как пометить как нездоровый.",
|
||||
"healthCheckHealthyThresholdMin": "Порог здорового состояния должен быть не менее 1",
|
||||
"healthCheckUnhealthyThresholdMin": "Порог нездорового состояния должен быть не менее 1",
|
||||
"httpMethod": "HTTP метод",
|
||||
"selectHttpMethod": "Выберите HTTP метод",
|
||||
"domainPickerSubdomainLabel": "Поддомен",
|
||||
@@ -1821,6 +2003,11 @@
|
||||
"editInternalResourceDialogModePort": "Порт",
|
||||
"editInternalResourceDialogModeHost": "Хост",
|
||||
"editInternalResourceDialogModeCidr": "СИДР",
|
||||
"editInternalResourceDialogModeHttp": "HTTP",
|
||||
"editInternalResourceDialogModeHttps": "HTTPS",
|
||||
"editInternalResourceDialogScheme": "Схема",
|
||||
"editInternalResourceDialogEnableSsl": "Включить SSL",
|
||||
"editInternalResourceDialogEnableSslDescription": "Включите шифрование SSL/TLS для защищенных HTTPS соединений с конечной точкой.",
|
||||
"editInternalResourceDialogDestination": "Пункт назначения",
|
||||
"editInternalResourceDialogDestinationHostDescription": "IP адрес или имя хоста ресурса в сети сайта.",
|
||||
"editInternalResourceDialogDestinationIPDescription": "IP или адрес хоста ресурса в сети сайта.",
|
||||
@@ -1836,6 +2023,7 @@
|
||||
"createInternalResourceDialogName": "Имя",
|
||||
"createInternalResourceDialogSite": "Сайт",
|
||||
"selectSite": "Выберите сайт...",
|
||||
"multiSitesSelectorSitesCount": "{count, plural, one {# сайт} few {# сайта} many {# сайтов} other {# сайтов}}",
|
||||
"noSitesFound": "Сайты не найдены.",
|
||||
"createInternalResourceDialogProtocol": "Протокол",
|
||||
"createInternalResourceDialogTcp": "TCP",
|
||||
@@ -1864,11 +2052,19 @@
|
||||
"createInternalResourceDialogModePort": "Порт",
|
||||
"createInternalResourceDialogModeHost": "Хост",
|
||||
"createInternalResourceDialogModeCidr": "СИДР",
|
||||
"createInternalResourceDialogModeHttp": "HTTP",
|
||||
"createInternalResourceDialogModeHttps": "HTTPS",
|
||||
"scheme": "Схема",
|
||||
"createInternalResourceDialogScheme": "Схема",
|
||||
"createInternalResourceDialogEnableSsl": "Включить SSL",
|
||||
"createInternalResourceDialogEnableSslDescription": "Включите SSL/TLS шифрование для защищенных HTTPS соединений с конечной точкой.",
|
||||
"createInternalResourceDialogDestination": "Пункт назначения",
|
||||
"createInternalResourceDialogDestinationHostDescription": "IP адрес или имя хоста ресурса в сети сайта.",
|
||||
"createInternalResourceDialogDestinationCidrDescription": "Диапазон CIDR ресурса в сети сайта.",
|
||||
"createInternalResourceDialogAlias": "Alias",
|
||||
"createInternalResourceDialogAliasDescription": "Дополнительный внутренний DNS псевдоним для этого ресурса.",
|
||||
"internalResourceDownstreamSchemeRequired": "Схема обязательна для HTTP ресурсов",
|
||||
"internalResourceHttpPortRequired": "Порт назначения обязателен для HTTP ресурсов",
|
||||
"siteConfiguration": "Конфигурация",
|
||||
"siteAcceptClientConnections": "Принимать подключения клиентов",
|
||||
"siteAcceptClientConnectionsDescription": "Разрешить пользовательским устройствам и клиентам доступ к ресурсам на этом сайте. Это может быть изменено позже.",
|
||||
@@ -1993,7 +2189,7 @@
|
||||
"description": "Более надежный и низко обслуживаемый сервер Pangolin с дополнительными колокольнями и свистками",
|
||||
"introTitle": "Управляемый Само-Хост Панголина",
|
||||
"introDescription": "- это вариант развертывания, предназначенный для людей, которые хотят простоты и надёжности, сохраняя при этом свои данные конфиденциальными и самостоятельными.",
|
||||
"introDetail": "С помощью этой опции вы по-прежнему используете узел Pangolin — туннели, SSL, и весь остающийся на вашем сервере. Разница заключается в том, что управление и мониторинг осуществляются через нашу панель инструментов из облака, которая открывает ряд преимуществ:",
|
||||
"introDetail": "С помощью этой опции вы по-прежнему используете узел Pangolin - туннели, SSL, и весь остающийся на вашем сервере. Разница заключается в том, что управление и мониторинг осуществляются через нашу панель инструментов из облака, которая открывает ряд преимуществ:",
|
||||
"benefitSimplerOperations": {
|
||||
"title": "Более простые операции",
|
||||
"description": "Не нужно запускать свой собственный почтовый сервер или настроить комплексное оповещение. Вы будете получать проверки состояния здоровья и оповещения о неисправностях из коробки."
|
||||
@@ -2026,7 +2222,7 @@
|
||||
},
|
||||
"internationaldomaindetected": "Обнаружен международный домен",
|
||||
"willbestoredas": "Будет храниться как:",
|
||||
"roleMappingDescription": "Определите, как роли, назначаемые пользователям, когда они войдут в систему автоматического профиля.",
|
||||
"roleMappingDescription": "Определите, как роли присваиваются пользователям при входе с этим поставщиком удостоверений.",
|
||||
"selectRole": "Выберите роль",
|
||||
"roleMappingExpression": "Выражение",
|
||||
"selectRolePlaceholder": "Выберите роль",
|
||||
@@ -2118,7 +2314,7 @@
|
||||
"selectDomainForOrgAuthPage": "Выберите домен для страницы аутентификации организации",
|
||||
"domainPickerProvidedDomain": "Домен предоставлен",
|
||||
"domainPickerFreeProvidedDomain": "Бесплатный домен",
|
||||
"domainPickerFreeDomainsPaidFeature": "Предоставленные домены являются платной функцией. Подпишитесь, чтобы получить домен, включенный в ваш план — не нужно приносить свой собственный.",
|
||||
"domainPickerFreeDomainsPaidFeature": "Предоставленные домены являются платной функцией. Подпишитесь, чтобы получить домен, включенный в ваш план - не нужно приносить свой собственный.",
|
||||
"domainPickerVerified": "Подтверждено",
|
||||
"domainPickerUnverified": "Не подтверждено",
|
||||
"domainPickerManual": "Ручной",
|
||||
@@ -2296,7 +2492,7 @@
|
||||
"alerts": {
|
||||
"commercialUseDisclosure": {
|
||||
"title": "Раскрытие",
|
||||
"description": "Выберите уровень лицензии, который точно отражает ваше предполагаемое использование. Личная Лицензия разрешает свободное использование Программного Обеспечения для частной, некоммерческой или малой коммерческой деятельности с годовым валовым доходом до $100 000 USD. Любое использование сверх этих пределов — включая использование в бизнесе, организацию, или другой приносящей доход среде — требует действительной лицензии предприятия и уплаты соответствующей лицензионной платы. Все пользователи, будь то Личные или Предприятия, обязаны соблюдать условия коммерческой лицензии Fossoral."
|
||||
"description": "Выберите уровень лицензии, который точно отражает ваше предполагаемое использование. Личная Лицензия разрешает свободное использование Программного Обеспечения для частной, некоммерческой или малой коммерческой деятельности с годовым валовым доходом до $100 000 USD. Любое использование сверх этих пределов - включая использование в бизнесе, организацию, или другой приносящей доход среде - требует действительной лицензии предприятия и уплаты соответствующей лицензионной платы. Все пользователи, будь то Личные или Предприятия, обязаны соблюдать условия коммерческой лицензии Fossoral."
|
||||
},
|
||||
"trialPeriodInformation": {
|
||||
"title": "Информация о пробном периоде",
|
||||
@@ -2428,6 +2624,7 @@
|
||||
"validPassword": "Допустимый пароль",
|
||||
"validEmail": "Valid email",
|
||||
"validSSO": "Valid SSO",
|
||||
"connectedClient": "Подключенный клиент",
|
||||
"resourceBlocked": "Ресурс заблокирован",
|
||||
"droppedByRule": "Отброшено по правилам",
|
||||
"noSessions": "Нет сессий",
|
||||
@@ -2667,6 +2864,10 @@
|
||||
"editInternalResourceDialogDestinationLabel": "Пункт назначения",
|
||||
"editInternalResourceDialogDestinationDescription": "Укажите адрес назначения для внутреннего ресурса. Это может быть имя хоста, IP-адрес или диапазон CIDR в зависимости от выбранного режима. При необходимости установите внутренний DNS-алиас для облегчения идентификации.",
|
||||
"editInternalResourceDialogPortRestrictionsDescription": "Ограничьте доступ к определенным TCP/UDP-портам или разрешите/заблокируйте все порты.",
|
||||
"createInternalResourceDialogHttpConfiguration": "Конфигурация HTTP",
|
||||
"createInternalResourceDialogHttpConfigurationDescription": "Выберите домен, который клиенты будут использовать для доступа к этому ресурсу через HTTP или HTTPS.",
|
||||
"editInternalResourceDialogHttpConfiguration": "Конфигурация HTTP",
|
||||
"editInternalResourceDialogHttpConfigurationDescription": "Выберите домен, который клиенты будут использовать для доступа к этому ресурсу через HTTP или HTTPS.",
|
||||
"editInternalResourceDialogTcp": "TCP",
|
||||
"editInternalResourceDialogUdp": "UDP",
|
||||
"editInternalResourceDialogIcmp": "ICMP",
|
||||
@@ -2705,6 +2906,8 @@
|
||||
"maintenancePageMessagePlaceholder": "Мы скоро вернемся! Наш сайт в настоящее время проходит плановое техническое обслуживание.",
|
||||
"maintenancePageMessageDescription": "Подробное сообщение, объясняющее обслуживание",
|
||||
"maintenancePageTimeTitle": "Предполагаемое время завершения (необязательно)",
|
||||
"privateMaintenanceScreenTitle": "Экраны частной заглушки",
|
||||
"privateMaintenanceScreenMessage": "Этот домен используется на частном ресурсе. Пожалуйста, подключитесь с помощью клиента Pangolin для доступа к этому ресурсу.",
|
||||
"maintenanceTime": "например, 2 часа, 1 ноября в 5:00 вечера",
|
||||
"maintenanceEstimatedTimeDescription": "Когда вы ожидаете завершения обслуживания",
|
||||
"editDomain": "Редактировать домен",
|
||||
@@ -2842,6 +3045,14 @@
|
||||
"httpDestAddTitle": "Добавить HTTP адрес",
|
||||
"httpDestEditDescription": "Обновление конфигурации для этого HTTP события потокового назначения.",
|
||||
"httpDestAddDescription": "Настройте новую HTTP-конечную точку для получения событий вашей организации.",
|
||||
"S3DestEditTitle": "Редактировать пункт назначения",
|
||||
"S3DestAddTitle": "Добавить S3 пункт назначения",
|
||||
"S3DestEditDescription": "Обновите конфигурацию для этого S3 пункта назначения потоковых событий.",
|
||||
"S3DestAddDescription": "Настройте новую S3 конечную точку для получения событий вашей организации.",
|
||||
"datadogDestEditTitle": "Редактировать пункт назначения",
|
||||
"datadogDestAddTitle": "Добавить пункт назначения Datadog",
|
||||
"datadogDestEditDescription": "Обновите конфигурацию для этого пункта назначения потоковых событий Datadog.",
|
||||
"datadogDestAddDescription": "Настройте новую конечную точку Datadog для получения событий вашей организации.",
|
||||
"httpDestTabSettings": "Настройки",
|
||||
"httpDestTabHeaders": "Заголовки",
|
||||
"httpDestTabBody": "Тело",
|
||||
@@ -2899,5 +3110,37 @@
|
||||
"httpDestUpdatedSuccess": "Адрес назначения успешно обновлен",
|
||||
"httpDestCreatedSuccess": "Адрес назначения успешно создан",
|
||||
"httpDestUpdateFailed": "Не удалось обновить место назначения",
|
||||
"httpDestCreateFailed": "Не удалось создать место назначения"
|
||||
"httpDestCreateFailed": "Не удалось создать место назначения",
|
||||
"followRedirects": "Следовать за перенаправлениями",
|
||||
"followRedirectsDescription": "Автоматически следуйте HTTP перенаправлениям для запросов.",
|
||||
"alertingErrorWebhookUrl": "Пожалуйста, введите корректный URL для вебхука.",
|
||||
"healthCheckStrategyHttp": "Проверяет возможность подключения и проверяет статус HTTP ответа.",
|
||||
"healthCheckStrategyTcp": "Проверяет только подключение TCP, не инспектируя ответ.",
|
||||
"healthCheckStrategySnmp": "Выполняет SNMP get-запрос, чтобы проверить состояние сетевых устройств и инфраструктуры.",
|
||||
"healthCheckStrategyIcmp": "Использует эхо-запросы ICMP (ping), чтобы проверить, доступен ли и отзывчив ли ресурс.",
|
||||
"healthCheckTabStrategy": "Стратегия",
|
||||
"healthCheckTabConnection": "Подключение",
|
||||
"healthCheckTabAdvanced": "Дополнительно",
|
||||
"healthCheckStrategyNotAvailable": "Эта стратегия недоступна. Пожалуйста, свяжитесь с отделом продаж для включения этой функции.",
|
||||
"uptime30d": "Время работы (30 дней)",
|
||||
"idpAddActionCreateNew": "Создать нового поставщика удостоверений",
|
||||
"idpAddActionImportFromOrg": "Импортировать из другой организации",
|
||||
"idpImportDialogTitle": "Импортировать поставщика удостоверений",
|
||||
"idpImportDialogDescription": "Выберите поставщика удостоверений из организации, где вы являетесь администратором. Он будет связан с этой организацией.",
|
||||
"idpImportSearchPlaceholder": "Поиск по организации или имени поставщика...",
|
||||
"idpImportEmpty": "Поставщики удостоверений не найдены.",
|
||||
"idpImportedDescription": "Поставщик удостоверений успешно импортирован.",
|
||||
"idpDeleteGlobalQuestion": "Вы уверены, что хотите навсегда удалить этого поставщика удостоверений?",
|
||||
"idpDeleteGlobalDescription": "Это навсегда удалит поставщика удостоверений из всех организаций, с которыми он связан.",
|
||||
"idpUnassociateTitle": "Рассоединить провайдера удостоверений",
|
||||
"idpUnassociateQuestion": "Вы уверены, что хотите рассоединить этого поставщика удостоверений с этой организацией?",
|
||||
"idpUnassociateDescription": "Все пользователи, связанные с этим поставщиком удостоверений, будут удалены из этой организации, но поставщик удостоверений будет продолжать существовать для других связанных организаций.",
|
||||
"idpUnassociateConfirm": "Подтвердите рассоединение поставщика удостоверений",
|
||||
"idpUnassociateWarning": "Это не может быть отменено для этой организации.",
|
||||
"idpUnassociatedDescription": "Поставщик удостоверений успешно рассоединен с этой организацией",
|
||||
"idpUnassociateMenu": "Рассоединить",
|
||||
"idpDeleteAllOrgsMenu": "Удалить",
|
||||
"publicIpEndpoint": "Конечная точка",
|
||||
"lastTriggeredAt": "Последний триггер",
|
||||
"reject": "Отклонить"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"contactSalesEnable": "Bu özelliği etkinleştirmek için satış ekibiyle iletişime geçin.",
|
||||
"contactSalesBookDemo": "Demo ayırt",
|
||||
"contactSalesOr": "veya",
|
||||
"contactSalesContactUs": "bize ulaşın",
|
||||
"setupCreate": "Organizasyonu, siteyi ve kaynakları oluşturun",
|
||||
"headerAuthCompatibilityInfo": "Kimlik doğrulama belirteci eksik olduğunda 401 Yetkisiz yanıtı zorlamak için bunu etkinleştirin. Bu, sunucu sorunu olmadan kimlik bilgilerini göndermeyen tarayıcılar veya belirli HTTP kütüphaneleri için gereklidir.",
|
||||
"headerAuthCompatibility": "Genişletilmiş Uyumluluk",
|
||||
@@ -19,6 +23,14 @@
|
||||
"componentsInvalidKey": "Geçersiz veya süresi dolmuş lisans anahtarları tespit edildi. Tüm özellikleri kullanmaya devam etmek için lisans koşullarına uyun.",
|
||||
"dismiss": "Kapat",
|
||||
"subscriptionViolationMessage": "Geçerli planınız için limitlerinizi aştınız. Planınız dahilinde kalmak için siteleri, kullanıcıları veya diğer kaynakları kaldırarak sorunu düzeltin.",
|
||||
"trialBannerMessage": "Deneme süreniz {countdown} içinde sona eriyor. Erişimi sürdürmek için yükseltin.",
|
||||
"trialBannerExpired": "Deneme süreniz sona erdi. Erişimi geri yüklemek için şimdi yükseltin.",
|
||||
"trialActive": "Ücretsiz Deneme Aktif",
|
||||
"trialExpired": "Deneme Süresi Doldu",
|
||||
"trialHasEnded": "Deneme süreniz sona erdi.",
|
||||
"trialDaysRemaining": "{count, plural, one {# gün kaldı} other {# gün kaldı}}",
|
||||
"trialDaysLeftShort": "Deneme süresi için {days}g kaldı",
|
||||
"trialGoToBilling": "Fatura sayfasına git",
|
||||
"subscriptionViolationViewBilling": "Faturalamayı görüntüle",
|
||||
"componentsLicenseViolation": "Lisans İhlali: Bu sunucu, lisanslı sınırı olan {maxSites} sitesini aşarak {usedSites} site kullanmaktadır. Tüm özellikleri kullanmaya devam etmek için lisans koşullarına uyun.",
|
||||
"componentsSupporterMessage": "Pangolin'e {tier} olarak destek olduğunuz için teşekkür ederiz!",
|
||||
@@ -267,8 +279,11 @@
|
||||
"orgMissing": "Organizasyon Kimliği Eksik",
|
||||
"orgMissingMessage": "Organizasyon kimliği olmadan daveti yeniden oluşturmanız mümkün değildir.",
|
||||
"accessUsersManage": "Kullanıcıları Yönet",
|
||||
"accessUserManage": "Kullanıcıyı Yönet",
|
||||
"accessUsersDescription": "Bu organizasyona erişimi olan kullanıcıları davet edin ve yönetin",
|
||||
"accessUsersSearch": "Kullanıcıları ara...",
|
||||
"accessUsersRoleFilterCount": "{count, plural, one {# rol} other {# roller}}",
|
||||
"accessUsersRoleFilterClear": "Rol filtrelerini temizle",
|
||||
"accessUserCreate": "Kullanıcı Oluştur",
|
||||
"accessUserRemove": "Kullanıcıyı Kaldır",
|
||||
"username": "Kullanıcı Adı",
|
||||
@@ -898,6 +913,7 @@
|
||||
"idpDisplayName": "Bu kimlik sağlayıcı için bir görüntü adı",
|
||||
"idpAutoProvisionUsers": "Kullanıcıları Otomatik Sağla",
|
||||
"idpAutoProvisionUsersDescription": "Etkinleştirildiğinde, kullanıcılar rol ve organizasyonlara eşleme yeteneğiyle birlikte sistemde otomatik olarak oluşturulacak.",
|
||||
"idpAutoProvisionConfigureAfterCreate": "Kimlik sağlayıcı oluşturulduktan sonra otomatik sağlama ayarlarını yapılandırabilirsiniz.",
|
||||
"licenseBadge": " ",
|
||||
"idpType": "Sağlayıcı Türü",
|
||||
"idpTypeDescription": "Yapılandırmak istediğiniz kimlik sağlayıcısı türünü seçin",
|
||||
@@ -949,7 +965,7 @@
|
||||
"defaultMappingsRole": "Varsayılan Rol Eşleme",
|
||||
"defaultMappingsRoleDescription": "JMESPath to extract role information from the ID token. The result of this expression must return the role name as defined in the organization as a string.",
|
||||
"defaultMappingsOrg": "Varsayılan Kuruluş Eşleme",
|
||||
"defaultMappingsOrgDescription": "JMESPath to extract organization information from the ID token. This expression must return the org ID or true for the user to be allowed to access the organization.",
|
||||
"defaultMappingsOrgDescription": "Ayarladığınızda, bu ifade kullanıcının o kuruluşa erişmesi için kuruluş kimliğini veya doğru değerini döndürmelidir. Ayarlamadığınızda, rol eşleme tanımlamak yeterlidir: kullanıcı, kuruluş içinde onlar için geçerli bir rol eşlemesi çözümlenebildiği sürece erişime izin verilir.",
|
||||
"defaultMappingsSubmit": "Varsayılan Eşlemeleri Kaydet",
|
||||
"orgPoliciesEdit": "Kuruluş Politikasını Düzenle",
|
||||
"org": "Kuruluş",
|
||||
@@ -1256,6 +1272,7 @@
|
||||
"actionViewLogs": "Kayıtları Görüntüle",
|
||||
"noneSelected": "Hiçbiri seçili değil",
|
||||
"orgNotFound2": "Hiçbir organizasyon bulunamadı.",
|
||||
"search": "Ara…",
|
||||
"searchPlaceholder": "Ara...",
|
||||
"emptySearchOptions": "Seçenek bulunamadı",
|
||||
"create": "Oluştur",
|
||||
@@ -1340,10 +1357,166 @@
|
||||
"sidebarGeneral": "Yönet",
|
||||
"sidebarLogAndAnalytics": "Kayıt & Analiz",
|
||||
"sidebarBluePrints": "Planlar",
|
||||
"sidebarAlerting": "Uyarı",
|
||||
"sidebarHealthChecks": "Sağlık kontrolleri",
|
||||
"sidebarOrganization": "Organizasyon",
|
||||
"sidebarManagement": "Yönetim",
|
||||
"sidebarBillingAndLicenses": "Faturalandırma & Lisanslar",
|
||||
"sidebarLogsAnalytics": "Analitik",
|
||||
"alertingTitle": "Uyarı",
|
||||
"alertingDescription": "Bildirimler için kaynakları, tetikleyicileri ve eylemleri tanımlayın",
|
||||
"alertingRules": "Uyarı kuralları",
|
||||
"alertingSearchRules": "Kuralları ara…",
|
||||
"alertingAddRule": "Kural Oluştur",
|
||||
"alertingColumnSource": "Kaynak",
|
||||
"alertingColumnTrigger": "Tetikle",
|
||||
"alertingColumnActions": "İşlemler",
|
||||
"alertingColumnEnabled": "Etkin",
|
||||
"alertingDeleteQuestion": "Bu uyarı kuralını silmek istediğinizi onaylayın lütfen.",
|
||||
"alertingDeleteRule": "Uyarı kuralını sil",
|
||||
"alertingRuleDeleted": "Uyarı kuralı silindi",
|
||||
"alertingRuleSaved": "Uyarı kuralı kaydedildi",
|
||||
"alertingRuleSavedCreatedDescription": "Yeni uyarı kuralınız oluşturuldu. Bu sayfada düzenlemeye devam edebilirsiniz.",
|
||||
"alertingRuleSavedUpdatedDescription": "Bu uyarı kuralındaki değişiklikleriniz kaydedildi.",
|
||||
"alertingEditRule": "Uyarı Kuralını Düzenle",
|
||||
"alertingCreateRule": "Uyarı Kuralı Oluştur",
|
||||
"alertingRuleCredenzaDescription": "Ne izlenecek, ne zaman tetiklenecek ve nasıl bildirilecek, bunları seçin",
|
||||
"alertingRuleNamePlaceholder": "Üretim sitesi kapalı",
|
||||
"alertingRuleEnabled": "Kural etkinleştirildi",
|
||||
"alertingSectionSource": "Kaynak",
|
||||
"alertingSourceType": "Kaynak türü",
|
||||
"alertingSourceSite": "Site",
|
||||
"alertingSourceHealthCheck": "Sağlık kontrolü",
|
||||
"alertingPickSites": "Siteler",
|
||||
"alertingPickHealthChecks": "Sağlık kontrolleri",
|
||||
"alertingPickResources": "Kaynaklar",
|
||||
"alertingAllSites": "Tüm Siteler",
|
||||
"alertingAllSitesDescription": "Herhangi bir site için uyarı tetiklenir",
|
||||
"alertingSpecificSites": "Belirli Siteler",
|
||||
"alertingSpecificSitesDescription": "İzlemek için belirli siteleri seçin",
|
||||
"alertingAllHealthChecks": "Tüm Sağlık Kontrolleri",
|
||||
"alertingAllHealthChecksDescription": "Herhangi bir sağlık kontrolü için uyarı tetiklenir",
|
||||
"alertingSpecificHealthChecks": "Belirli Sağlık Kontrolleri",
|
||||
"alertingSpecificHealthChecksDescription": "İzlemek için belirli sağlık kontrollerini seçin",
|
||||
"alertingAllResources": "Tüm Kaynaklar",
|
||||
"alertingAllResourcesDescription": "Herhangi bir kaynak için uyarı tetiklenir",
|
||||
"alertingSpecificResources": "Belirli Kaynaklar",
|
||||
"alertingSpecificResourcesDescription": "İzlemek için belirli kaynakları seçin",
|
||||
"alertingSelectResources": "Kaynakları seçin…",
|
||||
"alertingResourcesSelected": "{count} kaynak seçildi",
|
||||
"alertingResourcesEmpty": "İlk 10 sonuçta hedefleri olan kaynak yok.",
|
||||
"alertingSectionTrigger": "Tetikle",
|
||||
"alertingTrigger": "Uyarı zamanı",
|
||||
"alertingTriggerSiteOnline": "Site çevrimiçi",
|
||||
"alertingTriggerSiteOffline": "Site çevrimdışı",
|
||||
"alertingTriggerSiteToggle": "Site durumu değişiyor",
|
||||
"alertingTriggerHcHealthy": "Sağlık kontrolü sağlıklı",
|
||||
"alertingTriggerHcUnhealthy": "Sağlık kontrolü sağlıksız",
|
||||
"alertingTriggerHcToggle": "Sağlık kontrolü durumu değişiyor",
|
||||
"alertingTriggerResourceHealthy": "Kaynak sağlıklı",
|
||||
"alertingTriggerResourceUnhealthy": "Kaynak sağlıksız",
|
||||
"alertingSearchHealthChecks": "Sağlık kontrollerini ara…",
|
||||
"alertingHealthChecksEmpty": "Mevcut sağlık kontrolü yok.",
|
||||
"alertingTriggerResourceToggle": "Kaynak durumu değişiyor",
|
||||
"alertingSourceResource": "Kaynak",
|
||||
"alertingSectionActions": "İşlemler",
|
||||
"alertingAddAction": "Eylem Ekle",
|
||||
"alertingActionNotify": "E-posta",
|
||||
"alertingActionNotifyDescription": "Kullanıcılara veya role e-posta bildirimleri gönder",
|
||||
"alertingActionWebhook": "Webhook",
|
||||
"alertingActionWebhookDescription": "Özel bir uç noktaya HTTP isteği gönderin",
|
||||
"alertingExternalIntegration": "Harici Entegrasyon",
|
||||
"alertingExternalPagerDutyDescription": "Olay yönetimi için uyarıları PagerDuty'ye gönderin",
|
||||
"alertingExternalOpsgenieDescription": "Nöbetçi yönetimi için uyarıları Opsgenie'ye yönlendirin",
|
||||
"alertingExternalServiceNowDescription": "Uyarı olaylarından ServiceNow olayları oluşturun",
|
||||
"alertingExternalIncidentIoDescription": "Uyarı olaylarından Incident.io iş akışlarını tetikleyin",
|
||||
"alertingActionType": "Eylem türü",
|
||||
"alertingNotifyUsers": "Kullanıcılar",
|
||||
"alertingNotifyRoles": "Roller",
|
||||
"alertingNotifyEmails": "E-posta adresleri",
|
||||
"alertingEmailPlaceholder": "E-posta ekleyin ve Enter tuşuna basın",
|
||||
"alertingWebhookMethod": "HTTP yöntemi",
|
||||
"alertingWebhookSecret": "İmza sırrı (isteğe bağlı)",
|
||||
"alertingWebhookSecretPlaceholder": "HMAC sırrı",
|
||||
"alertingWebhookHeaders": "Başlıklar",
|
||||
"alertingAddHeader": "Başlık ekle",
|
||||
"alertingSelectSites": "Siteleri seçin…",
|
||||
"alertingSitesSelected": "{count} site seçildi",
|
||||
"alertingSelectHealthChecks": "Sağlık kontrolleri seçin…",
|
||||
"alertingHealthChecksSelected": "{count} sağlık kontrolü seçildi",
|
||||
"alertingNoHealthChecks": "Hedefleri etkinleştirilmiş sağlık kontrolleri yok",
|
||||
"alertingHealthCheckStub": "Sağlık kontrolü kaynak seçimi henüz bağlanmadı - yine de tetikleyicileri ve eylemleri yapılandırabilirsiniz.",
|
||||
"alertingSelectUsers": "Kullanıcıları seçin…",
|
||||
"alertingUsersSelected": "{count} kullanıcı seçildi",
|
||||
"alertingSelectRoles": "Rolleri seçin…",
|
||||
"alertingRolesSelected": "{count} rol seçildi",
|
||||
"alertingSummarySites": "Siteler ({count})",
|
||||
"alertingSummaryAllSites": "Tüm siteler",
|
||||
"alertingSummaryHealthChecks": "Sağlık kontrolleri ({count})",
|
||||
"alertingSummaryAllHealthChecks": "Tüm sağlık kontrolleri",
|
||||
"alertingSummaryResources": "Kaynaklar ({count})",
|
||||
"alertingSummaryAllResources": "Tüm kaynaklar",
|
||||
"alertingErrorNameRequired": "Bir ad girin",
|
||||
"alertingErrorActionsMin": "En az bir eylem ekleyin",
|
||||
"alertingErrorPickSites": "En az bir site seçin",
|
||||
"alertingErrorPickHealthChecks": "En az bir sağlık kontrolü seçin",
|
||||
"alertingErrorPickResources": "En az bir kaynak seçin",
|
||||
"alertingErrorTriggerSite": "Bir site tetikleyicisi seçin",
|
||||
"alertingErrorTriggerHealth": "Bir sağlık kontrolü tetikleyicisi seçin",
|
||||
"alertingErrorTriggerResource": "Bir kaynak tetikleyicisi seçin",
|
||||
"alertingErrorNotifyRecipients": "Kullanıcıları, rolleri veya en az bir e-posta seçin",
|
||||
"alertingConfigureSource": "Kaynağı Yapılandır",
|
||||
"alertingConfigureTrigger": "Tetikleyiciyi Yapılandır",
|
||||
"alertingConfigureActions": "Eylemleri Yapılandır",
|
||||
"alertingBackToRules": "Kurallara Geri Dön",
|
||||
"alertingRuleCooldown": "Serinleme süresi (saniye)",
|
||||
"alertingRuleCooldownDescription": "Aynı kural için tekrarlanan uyarılar arasında minimum süre. Her seferinde tetiklenmesi için 0 olarak ayarlayın.",
|
||||
"alertingDraftBadge": "Taslak - bu kuralı kaydetmek için kaydedin",
|
||||
"alertingSidebarHint": "Düzenlemek için kanvas üzerindeki bir adıma tıklayın.",
|
||||
"alertingGraphCanvasTitle": "Kural Akışı",
|
||||
"alertingGraphCanvasDescription": "Kaynak, tetikleyici ve eylemlerin görsel genel bakışı. Düzenlemek için bir düğümü seçin.",
|
||||
"alertingNodeNotConfigured": "Henüz yapılandırılmadı",
|
||||
"alertingNodeActionsCount": "{count, plural, one {# eylem} other {# eylemler}}",
|
||||
"alertingNodeRoleSource": "Kaynak",
|
||||
"alertingNodeRoleTrigger": "Tetikle",
|
||||
"alertingNodeRoleAction": "Aksiyon",
|
||||
"alertingTabRules": "Uyarı Kuralları",
|
||||
"alertingTabHealthChecks": "Sağlık Kontrolleri",
|
||||
"alertingRulesBannerTitle": "Bildirim Alın",
|
||||
"alertingRulesBannerDescription": "Her kural neyin izleneceğini (bir site, sağlık kontrolü veya kaynak), ne zaman tetikleneceğini (örneğin çevrimdışı veya sağlıksız) ve ekibinize e-posta, web kancaları veya entegrasyonlar aracılığıyla nasıl bildirileceğini bağlar. Bu listeyi kullanarak kuralları oluşturun, etkinleştirin ve yönetin.",
|
||||
"alertingHealthChecksBannerTitle": "Sağlık ve Kaynakları İzleyin",
|
||||
"alertingHealthChecksBannerDescription": "Sağlık kontrolleri bir kez tanımladığınız HTTP veya TCP monitörleridir. Ardından hedef sağlıklı veya sağlıksız olduğunda bildirilmeniz için onları uyarı kurallarında kaynak olarak kullanabilirsiniz. Kaynaklar üzerindeki sağlık kontrolleri de burada görünür.",
|
||||
"standaloneHcTableTitle": "Sağlık Kontrolleri",
|
||||
"standaloneHcSearchPlaceholder": "Sağlık kontrollerini ara…",
|
||||
"standaloneHcAddButton": "Sağlık Kontrolü Oluştur",
|
||||
"standaloneHcCreateTitle": "Sağlık Kontrolü Oluştur",
|
||||
"standaloneHcEditTitle": "Sağlık Kontrolünü Düzenle",
|
||||
"standaloneHcDescription": "Uyarı kurallarında kullanılmak üzere bir HTTP veya TCP sağlık kontrolü yapılandırın.",
|
||||
"standaloneHcNameLabel": "Ad",
|
||||
"standaloneHcNamePlaceholder": "HTTP Monitörüm",
|
||||
"standaloneHcDeleteTitle": "Sağlık kontrolünü sil",
|
||||
"standaloneHcDeleteQuestion": "Bu sağlık kontrolünü silmek istediğinizi onaylayın lütfen.",
|
||||
"standaloneHcDeleted": "Sağlık kontrolü silindi",
|
||||
"standaloneHcSaved": "Sağlık kontrolü kaydedildi",
|
||||
"standaloneHcColumnHealth": "Sağlık",
|
||||
"standaloneHcColumnMode": "Mod",
|
||||
"standaloneHcColumnTarget": "Hedef",
|
||||
"standaloneHcHealthStateHealthy": "Sağlıklı",
|
||||
"standaloneHcHealthStateUnhealthy": "Sağlıksız",
|
||||
"standaloneHcHealthStateUnknown": "Bilinmiyor",
|
||||
"standaloneHcFilterAnySite": "Tüm siteler",
|
||||
"standaloneHcFilterAnyResource": "Tüm kaynaklar",
|
||||
"standaloneHcFilterMode": "Mod",
|
||||
"standaloneHcFilterModeHttp": "HTTP",
|
||||
"standaloneHcFilterModeTcp": "TCP",
|
||||
"standaloneHcFilterModeSnmp": "SNMP",
|
||||
"standaloneHcFilterModePing": "Ping",
|
||||
"standaloneHcFilterHealth": "Sağlık",
|
||||
"standaloneHcFilterEnabled": "Etkin",
|
||||
"standaloneHcFilterEnabledOn": "Etkin",
|
||||
"standaloneHcFilterEnabledOff": "Devre Dışı",
|
||||
"standaloneHcFilterSiteIdFallback": "Site {id}",
|
||||
"standaloneHcFilterResourceIdFallback": "Kaynak {id}",
|
||||
"blueprints": "Planlar",
|
||||
"blueprintsDescription": "Deklaratif yapılandırmaları uygulayın ve önceki çalışmaları görüntüleyin",
|
||||
"blueprintAdd": "Plan Ekle",
|
||||
@@ -1762,6 +1935,15 @@
|
||||
"healthCheckIntervalMin": "Kontrol aralığı en az 5 saniye olmalıdır",
|
||||
"healthCheckTimeoutMin": "Zaman aşımı en az 1 saniye olmalıdır",
|
||||
"healthCheckRetryMin": "Tekrar deneme girişimleri en az 1 olmalıdır",
|
||||
"healthCheckMode": "Modu Kontrol Et",
|
||||
"healthCheckStrategy": "Strateji",
|
||||
"healthCheckModeDescription": "TCP modu yalnızca bağlantıyı doğrular. HTTP modu HTTP yanıtını doğrular.",
|
||||
"healthyThreshold": "Sağlıklı Eşik",
|
||||
"healthyThresholdDescription": "Sağlıklı olarak işaretlenmeden önce gereken ardışık başarılar.",
|
||||
"unhealthyThreshold": "Sağlıksız Eşik",
|
||||
"unhealthyThresholdDescription": "Sağlıksız olarak işaretlenmeden önce gereken ardışık başarısızlıklar.",
|
||||
"healthCheckHealthyThresholdMin": "Sağlıklı eşik en az 1 olmalıdır",
|
||||
"healthCheckUnhealthyThresholdMin": "Sağlıksız eşik en az 1 olmalıdır",
|
||||
"httpMethod": "HTTP Yöntemi",
|
||||
"selectHttpMethod": "HTTP yöntemini seçin",
|
||||
"domainPickerSubdomainLabel": "Alt Alan Adı",
|
||||
@@ -1821,6 +2003,11 @@
|
||||
"editInternalResourceDialogModePort": "Bağlantı Noktası",
|
||||
"editInternalResourceDialogModeHost": "Ev Sahibi",
|
||||
"editInternalResourceDialogModeCidr": "CIDR",
|
||||
"editInternalResourceDialogModeHttp": "HTTP",
|
||||
"editInternalResourceDialogModeHttps": "HTTPS",
|
||||
"editInternalResourceDialogScheme": "Şema",
|
||||
"editInternalResourceDialogEnableSsl": "SSL'i Etkinleştir",
|
||||
"editInternalResourceDialogEnableSslDescription": "Hedefe güvenli HTTPS bağlantıları için SSL/TLS şifrelemeyi etkinleştirin.",
|
||||
"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.",
|
||||
@@ -1836,6 +2023,7 @@
|
||||
"createInternalResourceDialogName": "Ad",
|
||||
"createInternalResourceDialogSite": "Site",
|
||||
"selectSite": "Site seç...",
|
||||
"multiSitesSelectorSitesCount": "{count, plural, one {# site} other {# siteler}}",
|
||||
"noSitesFound": "Site bulunamadı.",
|
||||
"createInternalResourceDialogProtocol": "Protokol",
|
||||
"createInternalResourceDialogTcp": "TCP",
|
||||
@@ -1864,11 +2052,19 @@
|
||||
"createInternalResourceDialogModePort": "Bağlantı Noktası",
|
||||
"createInternalResourceDialogModeHost": "Ev Sahibi",
|
||||
"createInternalResourceDialogModeCidr": "CIDR",
|
||||
"createInternalResourceDialogModeHttp": "HTTP",
|
||||
"createInternalResourceDialogModeHttps": "HTTPS",
|
||||
"scheme": "Şema",
|
||||
"createInternalResourceDialogScheme": "Şema",
|
||||
"createInternalResourceDialogEnableSsl": "SSL'i Etkinleştir",
|
||||
"createInternalResourceDialogEnableSslDescription": "Hedefe güvenli HTTPS bağlantıları için SSL/TLS şifrelemeyi etkinleştirin.",
|
||||
"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ı.",
|
||||
"internalResourceDownstreamSchemeRequired": "HTTP kaynakları için şema gereklidir",
|
||||
"internalResourceHttpPortRequired": "HTTP kaynakları için hedef bağlantı noktası gereklidir",
|
||||
"siteConfiguration": "Yapılandırma",
|
||||
"siteAcceptClientConnections": "İstemci Bağlantılarını Kabul Et",
|
||||
"siteAcceptClientConnectionsDescription": "Kullanıcı cihazları ve istemcilerin bu sitedeki kaynaklara erişmesine izin verin. Bu daha sonra değiştirilebilir.",
|
||||
@@ -1993,7 +2189,7 @@
|
||||
"description": "Daha güvenilir ve düşük bakım gerektiren, ekstra özelliklere sahip kendi kendine barındırabileceğiniz Pangolin sunucusu",
|
||||
"introTitle": "Yönetilen Kendi Kendine Barındırılan Pangolin",
|
||||
"introDescription": "Bu, basitlik ve ekstra güvenilirlik arayan, ancak verilerini gizli tutmak ve kendi sunucularında barındırmak isteyen kişiler için tasarlanmış bir dağıtım seçeneğidir.",
|
||||
"introDetail": "Bu seçenekle, kendi Pangolin düğümünüzü çalıştırmaya devam edersiniz — tünelleriniz, SSL bitişiniz ve trafiğiniz tamamen sunucunuzda kalır. Fark, yönetim ve izlemeyi bulut panomuz üzerinden gerçekleştiririz, bu da bir dizi avantaj sağlar:",
|
||||
"introDetail": "Bu seçenekle, kendi Pangolin düğümünüzü çalıştırmaya devam edersiniz - tünelleriniz, SSL bitişiniz ve trafiğiniz tamamen sunucunuzda kalır. Fark, yönetim ve izlemeyi bulut panomuz üzerinden gerçekleştiririz, bu da bir dizi avantaj sağlar:",
|
||||
"benefitSimplerOperations": {
|
||||
"title": "Daha basit işlemler",
|
||||
"description": "Kendi e-posta sunucunuzu çalıştırmanıza veya karmaşık uyarılar kurmanıza gerek yok. Sağlık kontrolleri ve kesinti uyarılarını kutudan çıktığı gibi alırsınız."
|
||||
@@ -2026,7 +2222,7 @@
|
||||
},
|
||||
"internationaldomaindetected": "Uluslararası Alan Adı Tespit Edildi",
|
||||
"willbestoredas": "Şu şekilde depolanacak:",
|
||||
"roleMappingDescription": "Otomatik Sağlama etkinleştirildiğinde kullanıcıların oturum açarken rollerin nasıl atandığını belirleyin.",
|
||||
"roleMappingDescription": "Bu kimlik sağlayıcı ile oturum açıldığında kullanıcılara rollerin nasıl atandığını belirleyin.",
|
||||
"selectRole": "Bir Rol Seçin",
|
||||
"roleMappingExpression": "İfade",
|
||||
"selectRolePlaceholder": "Bir rol seçin",
|
||||
@@ -2296,7 +2492,7 @@
|
||||
"alerts": {
|
||||
"commercialUseDisclosure": {
|
||||
"title": "Kullanım Açıklaması",
|
||||
"description": "Kullanım amacınızı doğru bir şekilde yansıtan lisans seviyesini seçin. Kişisel Lisans, yazılımın bireysel, ticari olmayan veya yıllık geliri 100,000 ABD Dolarının altında olan küçük ölçekli ticari faaliyetlerde ücretsiz kullanılmasına izin verir. Bu sınırların ötesinde kullanım — bir işletme, organizasyon veya diğer gelir getirici ortamlarda kullanım dahil olmak üzere — geçerli bir Kurumsal Lisans ve ilgili lisans ücretinin ödenmesini gerektirir. Tüm kullanıcılar, ister Kişisel ister Kurumsal, Fossorial Ticari Lisans Şartlarına uymalıdır."
|
||||
"description": "Kullanım amacınızı doğru bir şekilde yansıtan lisans seviyesini seçin. Kişisel Lisans, yazılımın bireysel, ticari olmayan veya yıllık geliri 100,000 ABD Dolarının altında olan küçük ölçekli ticari faaliyetlerde ücretsiz kullanılmasına izin verir. Bu sınırların ötesinde kullanım - bir işletme, organizasyon veya diğer gelir getirici ortamlarda kullanım dahil olmak üzere - geçerli bir Kurumsal Lisans ve ilgili lisans ücretinin ödenmesini gerektirir. Tüm kullanıcılar, ister Kişisel ister Kurumsal, Fossorial Ticari Lisans Şartlarına uymalıdır."
|
||||
},
|
||||
"trialPeriodInformation": {
|
||||
"title": "Deneme Süresi Bilgileri",
|
||||
@@ -2428,6 +2624,7 @@
|
||||
"validPassword": "Geçerli Şifre",
|
||||
"validEmail": "Geçerli E-posta",
|
||||
"validSSO": "Geçerli SSO",
|
||||
"connectedClient": "Bağlı İstemci",
|
||||
"resourceBlocked": "Kaynak Engellendi",
|
||||
"droppedByRule": "Kurallara Göre Çıkartıldı",
|
||||
"noSessions": "Oturum Yok",
|
||||
@@ -2667,6 +2864,10 @@
|
||||
"editInternalResourceDialogDestinationLabel": "Hedef",
|
||||
"editInternalResourceDialogDestinationDescription": "Dahili kaynak için hedef adresi belirtin. Seçilen moda bağlı olarak bu bir ana bilgisayar adı, IP adresi veya CIDR aralığı olabilir. Daha kolay tanımlama için isteğe bağlı olarak dahili bir DNS takma adı ayarlayın.",
|
||||
"editInternalResourceDialogPortRestrictionsDescription": "Belirtilen TCP/UDP portlarına erişimi kısıtlayın veya tüm portlara izin/engelleme verin.",
|
||||
"createInternalResourceDialogHttpConfiguration": "HTTP yapılandırması",
|
||||
"createInternalResourceDialogHttpConfigurationDescription": "HTTP veya HTTPS üzerinden bu kaynağa ulaşmak için istemcilerin kullanacağı alan adını seçin.",
|
||||
"editInternalResourceDialogHttpConfiguration": "HTTP yapılandırması",
|
||||
"editInternalResourceDialogHttpConfigurationDescription": "HTTP veya HTTPS üzerinden bu kaynağa ulaşmak için istemcilerin kullanacağı alan adını seçin.",
|
||||
"editInternalResourceDialogTcp": "TCP",
|
||||
"editInternalResourceDialogUdp": "UDP",
|
||||
"editInternalResourceDialogIcmp": "ICMP",
|
||||
@@ -2705,6 +2906,8 @@
|
||||
"maintenancePageMessagePlaceholder": "Yakında geri döneceğiz! Sitemiz şu anda planlı bakım altındadır.",
|
||||
"maintenancePageMessageDescription": "Bakımın detaylarını açıklayan mesaj",
|
||||
"maintenancePageTimeTitle": "Tahmini Tamamlanma Süresi (İsteğe Bağlı)",
|
||||
"privateMaintenanceScreenTitle": "Özel Yer Tutucu Ekran",
|
||||
"privateMaintenanceScreenMessage": "Bu alan adı özel bir kaynak üzerinde kullanılmaktadır. Bu kaynağa erişmek için Pangolin istemcisini kullanarak bağlanın.",
|
||||
"maintenanceTime": "ör. 2 saat, 1 Kasım saat 17:00",
|
||||
"maintenanceEstimatedTimeDescription": "Bakımın ne zaman tamamlanmasını bekliyorsunuz",
|
||||
"editDomain": "Alan Adını Düzenle",
|
||||
@@ -2842,6 +3045,14 @@
|
||||
"httpDestAddTitle": "HTTP Hedefi Ekle",
|
||||
"httpDestEditDescription": "Bu HTTP olay akışı hedefine yapılandırmayı güncelleyin.",
|
||||
"httpDestAddDescription": "Organizasyonunuzun olaylarını almak için yeni bir HTTP uç noktası yapılandırın.",
|
||||
"S3DestEditTitle": "Hedefi Düzenle",
|
||||
"S3DestAddTitle": "S3 Hedefi Ekle",
|
||||
"S3DestEditDescription": "Bu S3 olay akışı hedefi için yapılandırmayı güncelleyin.",
|
||||
"S3DestAddDescription": "Kuruluşunuzun olaylarını almak için yeni bir S3 uç noktası yapılandırın.",
|
||||
"datadogDestEditTitle": "Hedefi Düzenle",
|
||||
"datadogDestAddTitle": "Datadog Hedefi Ekle",
|
||||
"datadogDestEditDescription": "Bu Datadog olay akışı hedefi için yapılandırmayı güncelleyin.",
|
||||
"datadogDestAddDescription": "Kuruluşunuzun olaylarını almak için yeni bir Datadog uç noktası yapılandırın.",
|
||||
"httpDestTabSettings": "Ayarlar",
|
||||
"httpDestTabHeaders": "Başlıklar",
|
||||
"httpDestTabBody": "Gövde",
|
||||
@@ -2899,5 +3110,37 @@
|
||||
"httpDestUpdatedSuccess": "Hedef başarıyla güncellendi",
|
||||
"httpDestCreatedSuccess": "Hedef başarıyla oluşturuldu",
|
||||
"httpDestUpdateFailed": "Hedef güncellenemedi",
|
||||
"httpDestCreateFailed": "Hedef oluşturulamadı"
|
||||
"httpDestCreateFailed": "Hedef oluşturulamadı",
|
||||
"followRedirects": "Yönlendirmeleri Takip Et",
|
||||
"followRedirectsDescription": "İstekler için HTTP yönlendirmelerini otomatik olarak takip edin.",
|
||||
"alertingErrorWebhookUrl": "Webhook için geçerli bir URL girin lütfen.",
|
||||
"healthCheckStrategyHttp": "Bağlantıyı doğrular ve HTTP yanıt durumunu kontrol eder.",
|
||||
"healthCheckStrategyTcp": "Yanıtı denetlemeden sadece TCP bağlantısını doğrular.",
|
||||
"healthCheckStrategySnmp": "Ağ aygıtlarının ve altyapısının sağlığını kontrol etmek için bir SNMP alma isteği yapar.",
|
||||
"healthCheckStrategyIcmp": "Bir kaynağın erişilebilir ve yanıt verebilir olup olmadığını kontrol etmek için ICMP yankı isteklerini (ping) kullanır.",
|
||||
"healthCheckTabStrategy": "Strateji",
|
||||
"healthCheckTabConnection": "Bağlantı",
|
||||
"healthCheckTabAdvanced": "Gelişmiş",
|
||||
"healthCheckStrategyNotAvailable": "Bu strateji kullanılamıyor. Bu özelliği etkinleştirmek için lütfen satış ekibiyle iletişime geçin.",
|
||||
"uptime30d": "Çalışma Süresi (30g)",
|
||||
"idpAddActionCreateNew": "Yeni kimlik sağlayıcı oluştur",
|
||||
"idpAddActionImportFromOrg": "Başka bir kuruluştan içe aktar",
|
||||
"idpImportDialogTitle": "Kimlik Sağlayıcı İçe Aktar",
|
||||
"idpImportDialogDescription": "Bir kuruluştan yönetici olduğunuz bir kimlik sağlayıcı seçin. Bu kuruluşla ilişkilendirilecektir.",
|
||||
"idpImportSearchPlaceholder": "Kuruluş veya sağlayıcı adına göre ara...",
|
||||
"idpImportEmpty": "Hiçbir kimlik sağlayıcı bulunamadı.",
|
||||
"idpImportedDescription": "Kimlik sağlayıcı başarıyla içe aktarıldı.",
|
||||
"idpDeleteGlobalQuestion": "Bu kimlik sağlayıcıyı kalıcı olarak silmek istediğinizden emin misiniz?",
|
||||
"idpDeleteGlobalDescription": "Bu, kimlik sağlayıcıyı ilişkilendirildiği tüm kuruluşlardan kalıcı olarak silecektir.",
|
||||
"idpUnassociateTitle": "Kimlik Sağlayıcının İlişkisini Kes",
|
||||
"idpUnassociateQuestion": "Bu kimlik sağlayıcının bu kuruluştan ilişiğini kesmek istediğinizden emin misiniz?",
|
||||
"idpUnassociateDescription": "Bu kimlik sağlayıcı ile ilişkilendirilen tüm kullanıcılar bu kuruluştan kaldırılacaktır, ancak kimlik sağlayıcı diğer ilişkilendirilen kuruluşlar için var olmaya devam edecektir.",
|
||||
"idpUnassociateConfirm": "Kimlik Sağlayıcının İlişkisinin Kesilmesini Onayla",
|
||||
"idpUnassociateWarning": "Bu işlem bu kuruluş için geri alınamaz.",
|
||||
"idpUnassociatedDescription": "Kimlik sağlayıcı bu kuruluştan başarıyla ayrıldı",
|
||||
"idpUnassociateMenu": "İlişkiyi Kes",
|
||||
"idpDeleteAllOrgsMenu": "Sil",
|
||||
"publicIpEndpoint": "Uç Nokta",
|
||||
"lastTriggeredAt": "Son Tetikleyici",
|
||||
"reject": "Reddet"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"contactSalesEnable": "联系销售以启用此功能。",
|
||||
"contactSalesBookDemo": "预订演示",
|
||||
"contactSalesOr": "或",
|
||||
"contactSalesContactUs": "联系我们",
|
||||
"setupCreate": "创建组织、站点和资源",
|
||||
"headerAuthCompatibilityInfo": "启用此功能以在身份验证令牌缺失时强制返回401未授权响应。对于不在没有服务器挑战的情况下不发送凭证的浏览器或特定HTTP库,这是必需的。",
|
||||
"headerAuthCompatibility": "扩展兼容性",
|
||||
@@ -19,6 +23,14 @@
|
||||
"componentsInvalidKey": "检测到无效或过期的许可证密钥。按照许可证条款操作以继续使用所有功能。",
|
||||
"dismiss": "忽略",
|
||||
"subscriptionViolationMessage": "您的当前计划超出了您的限制。通过移除站点、用户或其他资源以保持在您的计划范围内来纠正问题。",
|
||||
"trialBannerMessage": "您的试用将在 {countdown} 到期。升级以保持访问。",
|
||||
"trialBannerExpired": "您的试用已到期。立即升级以恢复访问。",
|
||||
"trialActive": "免费试用中",
|
||||
"trialExpired": "试用到期",
|
||||
"trialHasEnded": "您的试用已结束。",
|
||||
"trialDaysRemaining": "{count, plural, one {# day remaining} other {# days remaining}}",
|
||||
"trialDaysLeftShort": "试用期剩余 {days} 天",
|
||||
"trialGoToBilling": "转到账单页面",
|
||||
"subscriptionViolationViewBilling": "查看计费",
|
||||
"componentsLicenseViolation": "许可证超限:该服务器使用了 {usedSites} 个站点,已超过授权的 {maxSites} 个。请遵守许可证条款以继续使用全部功能。",
|
||||
"componentsSupporterMessage": "感谢您的支持!您现在是 Pangolin 的 {tier} 用户。",
|
||||
@@ -267,8 +279,11 @@
|
||||
"orgMissing": "缺少组织 ID",
|
||||
"orgMissingMessage": "没有组织ID,无法重新生成邀请。",
|
||||
"accessUsersManage": "管理用户",
|
||||
"accessUserManage": "管理用户",
|
||||
"accessUsersDescription": "邀请和管理访问此组织的用户",
|
||||
"accessUsersSearch": "搜索用户...",
|
||||
"accessUsersRoleFilterCount": "{count, plural, one {# role} other {# roles}}",
|
||||
"accessUsersRoleFilterClear": "清除角色过滤器",
|
||||
"accessUserCreate": "创建用户",
|
||||
"accessUserRemove": "删除用户",
|
||||
"username": "用户名",
|
||||
@@ -898,6 +913,7 @@
|
||||
"idpDisplayName": "此身份提供商的显示名称",
|
||||
"idpAutoProvisionUsers": "自动提供用户",
|
||||
"idpAutoProvisionUsersDescription": "如果启用,用户将在首次登录时自动在系统中创建,并且能够映射用户到角色和组织。",
|
||||
"idpAutoProvisionConfigureAfterCreate": "您可以在创建身份提供者后配置自动配置设置。",
|
||||
"licenseBadge": "EE",
|
||||
"idpType": "提供者类型",
|
||||
"idpTypeDescription": "选择您想要配置的身份提供者类型",
|
||||
@@ -949,7 +965,7 @@
|
||||
"defaultMappingsRole": "默认角色映射",
|
||||
"defaultMappingsRoleDescription": "此表达式的结果必须返回组织中定义的角色名称作为字符串。",
|
||||
"defaultMappingsOrg": "默认组织映射",
|
||||
"defaultMappingsOrgDescription": "此表达式必须返回 组织ID 或 true 才能允许用户访问组织。",
|
||||
"defaultMappingsOrgDescription": "设置时,此表达式必须返回组织ID或true才能让用户访问该组织。如果未设置,定义角色映射就足够了:只要在组织内可以为用户找出有效角色映射,用户就被允许进入。",
|
||||
"defaultMappingsSubmit": "保存默认映射",
|
||||
"orgPoliciesEdit": "编辑组织策略",
|
||||
"org": "组织",
|
||||
@@ -1256,6 +1272,7 @@
|
||||
"actionViewLogs": "查看日志",
|
||||
"noneSelected": "未选择",
|
||||
"orgNotFound2": "未找到组织。",
|
||||
"search": "搜索…",
|
||||
"searchPlaceholder": "搜索...",
|
||||
"emptySearchOptions": "未找到选项",
|
||||
"create": "创建",
|
||||
@@ -1340,10 +1357,166 @@
|
||||
"sidebarGeneral": "管理",
|
||||
"sidebarLogAndAnalytics": "日志与分析",
|
||||
"sidebarBluePrints": "蓝图",
|
||||
"sidebarAlerting": "告警",
|
||||
"sidebarHealthChecks": "健康检查",
|
||||
"sidebarOrganization": "组织",
|
||||
"sidebarManagement": "管理",
|
||||
"sidebarBillingAndLicenses": "帐单和许可证",
|
||||
"sidebarLogsAnalytics": "分析",
|
||||
"alertingTitle": "告警",
|
||||
"alertingDescription": "定义通知的来源、触发器和操作",
|
||||
"alertingRules": "告警规则",
|
||||
"alertingSearchRules": "搜索规则…",
|
||||
"alertingAddRule": "创建规则",
|
||||
"alertingColumnSource": "来源",
|
||||
"alertingColumnTrigger": "触发",
|
||||
"alertingColumnActions": "操作",
|
||||
"alertingColumnEnabled": "已启用",
|
||||
"alertingDeleteQuestion": "请确认您要删除此告警规则。",
|
||||
"alertingDeleteRule": "删除告警规则",
|
||||
"alertingRuleDeleted": "告警规则已删除",
|
||||
"alertingRuleSaved": "告警规则已保存",
|
||||
"alertingRuleSavedCreatedDescription": "您的新告警规则已创建。您可以在此页面继续编辑它。",
|
||||
"alertingRuleSavedUpdatedDescription": "对此告警规则的更改已保存。",
|
||||
"alertingEditRule": "编辑告警规则",
|
||||
"alertingCreateRule": "创建告警规则",
|
||||
"alertingRuleCredenzaDescription": "选择要监视的内容、何时触发以及如何通知",
|
||||
"alertingRuleNamePlaceholder": "生产站点故障",
|
||||
"alertingRuleEnabled": "规则已启用",
|
||||
"alertingSectionSource": "来源",
|
||||
"alertingSourceType": "来源类型",
|
||||
"alertingSourceSite": "站点",
|
||||
"alertingSourceHealthCheck": "健康检查",
|
||||
"alertingPickSites": "站点",
|
||||
"alertingPickHealthChecks": "健康检查",
|
||||
"alertingPickResources": "资源",
|
||||
"alertingAllSites": "所有站点",
|
||||
"alertingAllSitesDescription": "任何站点的告警触发",
|
||||
"alertingSpecificSites": "特定站点",
|
||||
"alertingSpecificSitesDescription": "选择要监视的特定站点",
|
||||
"alertingAllHealthChecks": "所有健康检查",
|
||||
"alertingAllHealthChecksDescription": "任何健康检查的告警触发",
|
||||
"alertingSpecificHealthChecks": "特定健康检查",
|
||||
"alertingSpecificHealthChecksDescription": "选择要监视的特定健康检查",
|
||||
"alertingAllResources": "所有资源",
|
||||
"alertingAllResourcesDescription": "任何资源的告警触发",
|
||||
"alertingSpecificResources": "特定资源",
|
||||
"alertingSpecificResourcesDescription": "选择要监视的特定资源",
|
||||
"alertingSelectResources": "选择资源…",
|
||||
"alertingResourcesSelected": "{count} 个资源已选择",
|
||||
"alertingResourcesEmpty": "在前 10 个结果中没有带目标的资源。",
|
||||
"alertingSectionTrigger": "触发",
|
||||
"alertingTrigger": "何时告警",
|
||||
"alertingTriggerSiteOnline": "站点在线",
|
||||
"alertingTriggerSiteOffline": "站点离线",
|
||||
"alertingTriggerSiteToggle": "站点状态变更",
|
||||
"alertingTriggerHcHealthy": "健康检查正常",
|
||||
"alertingTriggerHcUnhealthy": "健康检查不正常",
|
||||
"alertingTriggerHcToggle": "健康检查状态变更",
|
||||
"alertingTriggerResourceHealthy": "资源正常",
|
||||
"alertingTriggerResourceUnhealthy": "资源不正常",
|
||||
"alertingSearchHealthChecks": "搜索健康检查…",
|
||||
"alertingHealthChecksEmpty": "无可用健康检查。",
|
||||
"alertingTriggerResourceToggle": "资源状态变更",
|
||||
"alertingSourceResource": "资源",
|
||||
"alertingSectionActions": "操作",
|
||||
"alertingAddAction": "新增操作",
|
||||
"alertingActionNotify": "电子邮件",
|
||||
"alertingActionNotifyDescription": "向用户或角色发送电子邮件通知",
|
||||
"alertingActionWebhook": "Webhook",
|
||||
"alertingActionWebhookDescription": "发送 HTTP 请求到自定义终端",
|
||||
"alertingExternalIntegration": "外部集成",
|
||||
"alertingExternalPagerDutyDescription": "将告警发送给 PagerDuty 以进行事件管理",
|
||||
"alertingExternalOpsgenieDescription": "将告警路由到 Opsgenie 进行电话值班管理",
|
||||
"alertingExternalServiceNowDescription": "从告警事件创建 ServiceNow 事件",
|
||||
"alertingExternalIncidentIoDescription": "从告警事件触发 Incident.io 工作流程",
|
||||
"alertingActionType": "操作类型",
|
||||
"alertingNotifyUsers": "用户",
|
||||
"alertingNotifyRoles": "角色",
|
||||
"alertingNotifyEmails": "电子邮件地址",
|
||||
"alertingEmailPlaceholder": "添加电子邮件并按回车键",
|
||||
"alertingWebhookMethod": "HTTP 方法",
|
||||
"alertingWebhookSecret": "签名密钥(可选)",
|
||||
"alertingWebhookSecretPlaceholder": "HMAC 密钥",
|
||||
"alertingWebhookHeaders": "标头",
|
||||
"alertingAddHeader": "添加标头",
|
||||
"alertingSelectSites": "选择站点…",
|
||||
"alertingSitesSelected": "{count} 个站点已选择",
|
||||
"alertingSelectHealthChecks": "选择健康检查…",
|
||||
"alertingHealthChecksSelected": "{count} 个健康检查已选择",
|
||||
"alertingNoHealthChecks": "没有启用健康检查的目标",
|
||||
"alertingHealthCheckStub": "健康检查来源选择尚未配置 - 你仍然可以配置触发器和操作。",
|
||||
"alertingSelectUsers": "选择用户…",
|
||||
"alertingUsersSelected": "{count} 个用户已选择",
|
||||
"alertingSelectRoles": "选择角色…",
|
||||
"alertingRolesSelected": "{count} 个角色已选择",
|
||||
"alertingSummarySites": "站点 ({count})",
|
||||
"alertingSummaryAllSites": "所有站点",
|
||||
"alertingSummaryHealthChecks": "健康检查 ({count})",
|
||||
"alertingSummaryAllHealthChecks": "所有健康检查",
|
||||
"alertingSummaryResources": "资源 ({count})",
|
||||
"alertingSummaryAllResources": "所有资源",
|
||||
"alertingErrorNameRequired": "输入名称",
|
||||
"alertingErrorActionsMin": "添加至少一个操作",
|
||||
"alertingErrorPickSites": "至少选择一个站点",
|
||||
"alertingErrorPickHealthChecks": "至少选择一个健康检查",
|
||||
"alertingErrorPickResources": "至少选择一个资源",
|
||||
"alertingErrorTriggerSite": "选择站点触发器",
|
||||
"alertingErrorTriggerHealth": "选择健康检查触发器",
|
||||
"alertingErrorTriggerResource": "选择资源触发器",
|
||||
"alertingErrorNotifyRecipients": "选择用户、角色或至少一个电子邮件",
|
||||
"alertingConfigureSource": "配置来源",
|
||||
"alertingConfigureTrigger": "配置触发器",
|
||||
"alertingConfigureActions": "配置操作",
|
||||
"alertingBackToRules": "返回规则",
|
||||
"alertingRuleCooldown": "冷却时间(秒)",
|
||||
"alertingRuleCooldownDescription": "相同规则间隔重复告警的最小时间。设置为 0 固定触发。",
|
||||
"alertingDraftBadge": "草稿 - 保存以存储此规则",
|
||||
"alertingSidebarHint": "点击画布上的步骤在此处编辑。",
|
||||
"alertingGraphCanvasTitle": "规则流程",
|
||||
"alertingGraphCanvasDescription": "源、触发器和操作的视觉概况。选择一个节点,在面板上进行编辑。",
|
||||
"alertingNodeNotConfigured": "尚未配置",
|
||||
"alertingNodeActionsCount": "{count, plural, one {# action} other {# actions}}",
|
||||
"alertingNodeRoleSource": "来源",
|
||||
"alertingNodeRoleTrigger": "触发",
|
||||
"alertingNodeRoleAction": "行为",
|
||||
"alertingTabRules": "告警规则",
|
||||
"alertingTabHealthChecks": "健康检查",
|
||||
"alertingRulesBannerTitle": "获取通知",
|
||||
"alertingRulesBannerDescription": "每条规则都连接要监视的对象(站点、健康检查或资源),触发时间(例如离线或不健康),以及如何通过电子邮件、Webhooks 或集成将通知发送给团队。使用此列表创建、启用和管理这些规则。",
|
||||
"alertingHealthChecksBannerTitle": "监视健康和资源",
|
||||
"alertingHealthChecksBannerDescription": "健康检查是您一次定义的 HTTP 或 TCP 监控。然后可以将它们用作告警规则中的来源,以便目标变得正常或不正常时得到通知。资源上的健康检查也会出现在此处。",
|
||||
"standaloneHcTableTitle": "健康检查",
|
||||
"standaloneHcSearchPlaceholder": "搜索健康检查…",
|
||||
"standaloneHcAddButton": "创建健康检查",
|
||||
"standaloneHcCreateTitle": "创建健康检查",
|
||||
"standaloneHcEditTitle": "编辑健康检查",
|
||||
"standaloneHcDescription": "配置 HTTP 或 TCP 健康检查以用于告警规则。",
|
||||
"standaloneHcNameLabel": "名称",
|
||||
"standaloneHcNamePlaceholder": "我的 HTTP 监视器",
|
||||
"standaloneHcDeleteTitle": "删除健康检查",
|
||||
"standaloneHcDeleteQuestion": "请确认您要删除此健康检查。",
|
||||
"standaloneHcDeleted": "健康检查已删除",
|
||||
"standaloneHcSaved": "健康检查已保存",
|
||||
"standaloneHcColumnHealth": "健康",
|
||||
"standaloneHcColumnMode": "模式",
|
||||
"standaloneHcColumnTarget": "目标",
|
||||
"standaloneHcHealthStateHealthy": "健康",
|
||||
"standaloneHcHealthStateUnhealthy": "不健康",
|
||||
"standaloneHcHealthStateUnknown": "未知",
|
||||
"standaloneHcFilterAnySite": "所有站点",
|
||||
"standaloneHcFilterAnyResource": "所有资源",
|
||||
"standaloneHcFilterMode": "模式",
|
||||
"standaloneHcFilterModeHttp": "HTTP",
|
||||
"standaloneHcFilterModeTcp": "TCP",
|
||||
"standaloneHcFilterModeSnmp": "SNMP",
|
||||
"standaloneHcFilterModePing": "Ping",
|
||||
"standaloneHcFilterHealth": "健康",
|
||||
"standaloneHcFilterEnabled": "已启用",
|
||||
"standaloneHcFilterEnabledOn": "已启用",
|
||||
"standaloneHcFilterEnabledOff": "已禁用",
|
||||
"standaloneHcFilterSiteIdFallback": "站点 {id}",
|
||||
"standaloneHcFilterResourceIdFallback": "资源 {id}",
|
||||
"blueprints": "蓝图",
|
||||
"blueprintsDescription": "应用声明配置并查看先前运行的",
|
||||
"blueprintAdd": "添加蓝图",
|
||||
@@ -1762,6 +1935,15 @@
|
||||
"healthCheckIntervalMin": "检查间隔必须至少为 5 秒",
|
||||
"healthCheckTimeoutMin": "超时必须至少为 1 秒",
|
||||
"healthCheckRetryMin": "重试次数必须至少为 1 次",
|
||||
"healthCheckMode": "检查模式",
|
||||
"healthCheckStrategy": "策略",
|
||||
"healthCheckModeDescription": "TCP 模式仅验证连接性。HTTP 模式验证 HTTP 响应。",
|
||||
"healthyThreshold": "正常阈值",
|
||||
"healthyThresholdDescription": "标记为正常之前所需的连续成功次数。",
|
||||
"unhealthyThreshold": "不正常阈值",
|
||||
"unhealthyThresholdDescription": "标记为不正常之前所需的连续失败次数。",
|
||||
"healthCheckHealthyThresholdMin": "健康阈值至少为 1",
|
||||
"healthCheckUnhealthyThresholdMin": "不健康阈值至少为 1",
|
||||
"httpMethod": "HTTP 方法",
|
||||
"selectHttpMethod": "选择 HTTP 方法",
|
||||
"domainPickerSubdomainLabel": "子域名",
|
||||
@@ -1821,6 +2003,11 @@
|
||||
"editInternalResourceDialogModePort": "端口",
|
||||
"editInternalResourceDialogModeHost": "主机",
|
||||
"editInternalResourceDialogModeCidr": "CIDR",
|
||||
"editInternalResourceDialogModeHttp": "HTTP",
|
||||
"editInternalResourceDialogModeHttps": "HTTPS",
|
||||
"editInternalResourceDialogScheme": "方案",
|
||||
"editInternalResourceDialogEnableSsl": "启用 SSL",
|
||||
"editInternalResourceDialogEnableSslDescription": "为目标的安全 HTTPS 连接启用 SSL/TLS 加密。",
|
||||
"editInternalResourceDialogDestination": "目标",
|
||||
"editInternalResourceDialogDestinationHostDescription": "站点网络上资源的 IP 地址或主机名。",
|
||||
"editInternalResourceDialogDestinationIPDescription": "站点网络上资源的IP或主机名地址。",
|
||||
@@ -1836,6 +2023,7 @@
|
||||
"createInternalResourceDialogName": "名称",
|
||||
"createInternalResourceDialogSite": "站点",
|
||||
"selectSite": "选择站点...",
|
||||
"multiSitesSelectorSitesCount": "{count, plural, one {# site} other {# sites}}",
|
||||
"noSitesFound": "未找到站点。",
|
||||
"createInternalResourceDialogProtocol": "协议",
|
||||
"createInternalResourceDialogTcp": "TCP",
|
||||
@@ -1864,11 +2052,19 @@
|
||||
"createInternalResourceDialogModePort": "端口",
|
||||
"createInternalResourceDialogModeHost": "主机",
|
||||
"createInternalResourceDialogModeCidr": "CIDR",
|
||||
"createInternalResourceDialogModeHttp": "HTTP",
|
||||
"createInternalResourceDialogModeHttps": "HTTPS",
|
||||
"scheme": "方案",
|
||||
"createInternalResourceDialogScheme": "方案",
|
||||
"createInternalResourceDialogEnableSsl": "启用 SSL",
|
||||
"createInternalResourceDialogEnableSslDescription": "为目标的安全 HTTPS 连接启用 SSL/TLS 加密。",
|
||||
"createInternalResourceDialogDestination": "目标",
|
||||
"createInternalResourceDialogDestinationHostDescription": "站点网络上资源的 IP 地址或主机名。",
|
||||
"createInternalResourceDialogDestinationCidrDescription": "站点网络上资源的 CIDR 范围。",
|
||||
"createInternalResourceDialogAlias": "Alias",
|
||||
"createInternalResourceDialogAliasDescription": "此资源可选的内部DNS别名。",
|
||||
"internalResourceDownstreamSchemeRequired": "HTTP 资源需要方案",
|
||||
"internalResourceHttpPortRequired": "HTTP 资源需要目的端口",
|
||||
"siteConfiguration": "配置",
|
||||
"siteAcceptClientConnections": "接受客户端连接",
|
||||
"siteAcceptClientConnectionsDescription": "允许用户设备和客户端访问此站点上的资源。这可以稍后更改。",
|
||||
@@ -1993,7 +2189,7 @@
|
||||
"description": "更可靠和低维护自我托管的 Pangolin 服务器,带有额外的铃声和告密器",
|
||||
"introTitle": "托管自托管的潘戈林公司",
|
||||
"introDescription": "这是一种部署选择,为那些希望简洁和额外可靠的人设计,同时仍然保持他们的数据的私密性和自我托管性。",
|
||||
"introDetail": "通过此选项,您仍然运行您自己的 Pangolin 节点 — — 您的隧道、SSL 终止,并且流量在您的服务器上保持所有状态。 不同之处在于,管理和监测是通过我们的云层仪表板进行的,该仪表板开启了一些好处:",
|
||||
"introDetail": "通过此选项,您仍然运行您自己的 Pangolin 节点 - - 您的隧道、SSL 终止,并且流量在您的服务器上保持所有状态。 不同之处在于,管理和监测是通过我们的云层仪表板进行的,该仪表板开启了一些好处:",
|
||||
"benefitSimplerOperations": {
|
||||
"title": "简单的操作",
|
||||
"description": "无需运行您自己的邮件服务器或设置复杂的警报。您将从方框中获得健康检查和下限提醒。"
|
||||
@@ -2026,7 +2222,7 @@
|
||||
},
|
||||
"internationaldomaindetected": "检测到国际域",
|
||||
"willbestoredas": "储存为:",
|
||||
"roleMappingDescription": "确定当用户启用自动配送时如何分配他们的角色。",
|
||||
"roleMappingDescription": "确定当用户使用此身份提供者登陆时如何分配角色。",
|
||||
"selectRole": "选择角色",
|
||||
"roleMappingExpression": "表达式",
|
||||
"selectRolePlaceholder": "选择角色",
|
||||
@@ -2118,7 +2314,7 @@
|
||||
"selectDomainForOrgAuthPage": "选择组织认证页面的域",
|
||||
"domainPickerProvidedDomain": "提供的域",
|
||||
"domainPickerFreeProvidedDomain": "免费提供的域",
|
||||
"domainPickerFreeDomainsPaidFeature": "提供的域名是付费功能。订阅即可将域名包含在您的计划中—无需自带域名。",
|
||||
"domainPickerFreeDomainsPaidFeature": "提供的域名是付费功能。订阅即可将域名包含在您的计划中-无需自带域名。",
|
||||
"domainPickerVerified": "已验证",
|
||||
"domainPickerUnverified": "未验证",
|
||||
"domainPickerManual": "手动",
|
||||
@@ -2296,7 +2492,7 @@
|
||||
"alerts": {
|
||||
"commercialUseDisclosure": {
|
||||
"title": "使用情况披露",
|
||||
"description": "选择能准确反映您预定用途的许可等级。 个人许可证允许对个人、非商业性或小型商业活动免费使用软件,年收入毛额不到100 000美元。 超出这些限度的任何用途,包括在企业、组织内的用途。 或其他创收环境——需要有效的企业许可证和支付适用的许可证费用。 所有用户,不论是个人还是企业,都必须遵守寄养商业许可证条款。"
|
||||
"description": "选择能准确反映您预定用途的许可等级。 个人许可证允许对个人、非商业性或小型商业活动免费使用软件,年收入毛额不到100 000美元。 超出这些限度的任何用途,包括在企业、组织内的用途。 或其他创收环境--需要有效的企业许可证和支付适用的许可证费用。 所有用户,不论是个人还是企业,都必须遵守寄养商业许可证条款。"
|
||||
},
|
||||
"trialPeriodInformation": {
|
||||
"title": "试用期信息",
|
||||
@@ -2428,6 +2624,7 @@
|
||||
"validPassword": "有效密码",
|
||||
"validEmail": "Valid email",
|
||||
"validSSO": "Valid SSO",
|
||||
"connectedClient": "已连接客户端",
|
||||
"resourceBlocked": "资源被阻止",
|
||||
"droppedByRule": "被规则删除",
|
||||
"noSessions": "无会话",
|
||||
@@ -2667,6 +2864,10 @@
|
||||
"editInternalResourceDialogDestinationLabel": "目标",
|
||||
"editInternalResourceDialogDestinationDescription": "指定内部资源的目标地址。根据选择的模式,这可以是主机名、IP地址或CIDR范围。可选的,设置一个内部DNS别名以便于识别。",
|
||||
"editInternalResourceDialogPortRestrictionsDescription": "限制访问特定的TCP/UDP端口或允许/阻止所有端口。",
|
||||
"createInternalResourceDialogHttpConfiguration": "HTTP 配置",
|
||||
"createInternalResourceDialogHttpConfigurationDescription": "选择客户将使用的域名通过 HTTP 或 HTTPS 访问此资源。",
|
||||
"editInternalResourceDialogHttpConfiguration": "HTTP 配置",
|
||||
"editInternalResourceDialogHttpConfigurationDescription": "选择客户将使用的域名通过 HTTP 或 HTTPS 访问此资源。",
|
||||
"editInternalResourceDialogTcp": "TCP",
|
||||
"editInternalResourceDialogUdp": "UDP",
|
||||
"editInternalResourceDialogIcmp": "ICMP",
|
||||
@@ -2705,6 +2906,8 @@
|
||||
"maintenancePageMessagePlaceholder": "我们很快回来! 我们的网站目前正在进行计划中的维护。",
|
||||
"maintenancePageMessageDescription": "详细说明维护的消息",
|
||||
"maintenancePageTimeTitle": "预计完成时间(可选)",
|
||||
"privateMaintenanceScreenTitle": "私有占位符界面",
|
||||
"privateMaintenanceScreenMessage": "此域名正在私有资源上使用。请连接 Pangolin 客户端以访问此资源。",
|
||||
"maintenanceTime": "例如,2小时,11月1日下午5:00",
|
||||
"maintenanceEstimatedTimeDescription": "您期望维护完成的时间",
|
||||
"editDomain": "编辑域名",
|
||||
@@ -2842,6 +3045,14 @@
|
||||
"httpDestAddTitle": "添加 HTTP 目标",
|
||||
"httpDestEditDescription": "更新此 HTTP 事件流媒体目的地的配置。",
|
||||
"httpDestAddDescription": "配置新的 HTTP 端点来接收您的组织事件。",
|
||||
"S3DestEditTitle": "编辑目的地",
|
||||
"S3DestAddTitle": "添加 S3 目的地",
|
||||
"S3DestEditDescription": "更新此 S3 事件流目的地的配置。",
|
||||
"S3DestAddDescription": "配置新的 S3 终端以接收您的组织事件。",
|
||||
"datadogDestEditTitle": "编辑目的地",
|
||||
"datadogDestAddTitle": "添加 Datadog 目的地",
|
||||
"datadogDestEditDescription": "更新此 Datadog 事件流目的地的配置。",
|
||||
"datadogDestAddDescription": "配置新的 Datadog 终端以接收您的组织事件。",
|
||||
"httpDestTabSettings": "设置",
|
||||
"httpDestTabHeaders": "信头",
|
||||
"httpDestTabBody": "正文内容",
|
||||
@@ -2881,7 +3092,7 @@
|
||||
"httpDestFormatJsonArrayTitle": "JSON 数组",
|
||||
"httpDestFormatJsonArrayDescription": "每批一个请求,实体是一个 JSON 数组。与大多数通用的 Web 钩子和数据兼容。",
|
||||
"httpDestFormatNdjsonTitle": "NDJSON",
|
||||
"httpDestFormatNdjsonDescription": "每批有一个请求,物体是换行符限制的 JSON ——每行一个对象,不是外部数组。 Sluk HEC、Elastic / OpenSearch和Grafana Loki所需。",
|
||||
"httpDestFormatNdjsonDescription": "每批有一个请求,物体是换行符限制的 JSON --每行一个对象,不是外部数组。 Sluk HEC、Elastic / OpenSearch和Grafana Loki所需。",
|
||||
"httpDestFormatSingleTitle": "每个请求一个事件",
|
||||
"httpDestFormatSingleDescription": "为每个事件单独发送一个 HTTP POST。仅用于无法处理批量的端点。",
|
||||
"httpDestLogTypesTitle": "日志类型",
|
||||
@@ -2899,5 +3110,37 @@
|
||||
"httpDestUpdatedSuccess": "目标已成功更新",
|
||||
"httpDestCreatedSuccess": "目标创建成功",
|
||||
"httpDestUpdateFailed": "更新目标失败",
|
||||
"httpDestCreateFailed": "创建目标失败"
|
||||
"httpDestCreateFailed": "创建目标失败",
|
||||
"followRedirects": "遵循重定向",
|
||||
"followRedirectsDescription": "自动跟踪请求的 HTTP 重定向。",
|
||||
"alertingErrorWebhookUrl": "请输入有效的 Webhook URL。",
|
||||
"healthCheckStrategyHttp": "验证连接并检查 HTTP 响应状态。",
|
||||
"healthCheckStrategyTcp": "只验证 TCP 连接性,不检查响应。",
|
||||
"healthCheckStrategySnmp": "进行 SNMP get 请求以检查网络设备和基础架构的健康状况。",
|
||||
"healthCheckStrategyIcmp": "使用 ICMP 回显请求(ping)检查资源是否可达并响应。",
|
||||
"healthCheckTabStrategy": "策略",
|
||||
"healthCheckTabConnection": "连接",
|
||||
"healthCheckTabAdvanced": "高级",
|
||||
"healthCheckStrategyNotAvailable": "此策略不可用。请联系销售以启用此功能。",
|
||||
"uptime30d": "正常运行时间(30天)",
|
||||
"idpAddActionCreateNew": "创建新的身份提供者",
|
||||
"idpAddActionImportFromOrg": "从另一个组织导入",
|
||||
"idpImportDialogTitle": "导入身份提供者",
|
||||
"idpImportDialogDescription": "从您是管理员的组织中选择一个身份提供者。它将关联到本组织。",
|
||||
"idpImportSearchPlaceholder": "按组织或提供者名称搜索……",
|
||||
"idpImportEmpty": "未找到身份提供者。",
|
||||
"idpImportedDescription": "身份提供者已成功导入。",
|
||||
"idpDeleteGlobalQuestion": "您确定要永久删除此身份提供者吗?",
|
||||
"idpDeleteGlobalDescription": "这将永久删除与其关联的所有组织中的身份提供者。",
|
||||
"idpUnassociateTitle": "取消关联身份提供者",
|
||||
"idpUnassociateQuestion": "您确定要将此身份提供者从此组织中取消关联吗?",
|
||||
"idpUnassociateDescription": "与此身份提供者关联的所有用户将从该组织中移除,但身份提供者仍会继续存在于关联的其他组织中。",
|
||||
"idpUnassociateConfirm": "确认取消关联身份提供者",
|
||||
"idpUnassociateWarning": "此操作无法对该组织撤销。",
|
||||
"idpUnassociatedDescription": "身份提供者已成功从该组织中取消关联",
|
||||
"idpUnassociateMenu": "取消关联",
|
||||
"idpDeleteAllOrgsMenu": "删除",
|
||||
"publicIpEndpoint": "终端",
|
||||
"lastTriggeredAt": "最后触发",
|
||||
"reject": "拒绝"
|
||||
}
|
||||
|
||||
@@ -1763,7 +1763,7 @@
|
||||
"description": "更可靠、維護成本更低的自架 Pangolin 伺服器,並附帶額外的附加功能",
|
||||
"introTitle": "託管式自架 Pangolin",
|
||||
"introDescription": "這是一種部署選擇,為那些希望簡潔和額外可靠的人設計,同時仍然保持他們的數據的私密性和自我託管性。",
|
||||
"introDetail": "通過此選項,您仍然運行您自己的 Pangolin 節點 — — 您的隧道、SSL 終止,並且流量在您的伺服器上保持所有狀態。 不同之處在於,管理和監測是通過我們的雲層儀錶板進行的,該儀錶板開啟了一些好處:",
|
||||
"introDetail": "通過此選項,您仍然運行您自己的 Pangolin 節點 - - 您的隧道、SSL 終止,並且流量在您的伺服器上保持所有狀態。 不同之處在於,管理和監測是通過我們的雲層儀錶板進行的,該儀錶板開啟了一些好處:",
|
||||
"benefitSimplerOperations": {
|
||||
"title": "簡單的操作",
|
||||
"description": "無需運行您自己的郵件伺服器或設置複雜的警報。您將從方框中獲得健康檢查和下限提醒。"
|
||||
@@ -2035,7 +2035,7 @@
|
||||
"alerts": {
|
||||
"commercialUseDisclosure": {
|
||||
"title": "使用情況披露",
|
||||
"description": "選擇能準確反映您預定用途的許可等級。 個人許可證允許對個人、非商業性或小型商業活動免費使用軟體,年收入毛額不到 100,000 美元。 超出這些限度的任何用途,包括在企業、組織內的用途。 或其他創收環境——需要有效的企業許可證和支付適用的許可證費用。 所有用戶,不論是個人還是企業,都必須遵守寄養商業許可證條款。"
|
||||
"description": "選擇能準確反映您預定用途的許可等級。 個人許可證允許對個人、非商業性或小型商業活動免費使用軟體,年收入毛額不到 100,000 美元。 超出這些限度的任何用途,包括在企業、組織內的用途。 或其他創收環境--需要有效的企業許可證和支付適用的許可證費用。 所有用戶,不論是個人還是企業,都必須遵守寄養商業許可證條款。"
|
||||
},
|
||||
"trialPeriodInformation": {
|
||||
"title": "試用期資訊",
|
||||
|
||||
195
package-lock.json
generated
@@ -45,7 +45,7 @@
|
||||
"@tanstack/react-query": "5.90.21",
|
||||
"@tanstack/react-table": "8.21.3",
|
||||
"arctic": "3.7.0",
|
||||
"axios": "1.13.5",
|
||||
"axios": "1.15.0",
|
||||
"better-sqlite3": "11.9.1",
|
||||
"canvas-confetti": "1.9.4",
|
||||
"class-variance-authority": "0.7.1",
|
||||
@@ -55,7 +55,7 @@
|
||||
"cors": "2.8.6",
|
||||
"crypto-js": "4.2.0",
|
||||
"d3": "7.9.0",
|
||||
"drizzle-orm": "0.45.1",
|
||||
"drizzle-orm": "0.45.2",
|
||||
"express": "5.2.1",
|
||||
"express-rate-limit": "8.3.0",
|
||||
"glob": "13.0.6",
|
||||
@@ -69,12 +69,12 @@
|
||||
"lucide-react": "0.577.0",
|
||||
"maxmind": "5.0.5",
|
||||
"moment": "2.30.1",
|
||||
"next": "15.5.14",
|
||||
"next": "15.5.15",
|
||||
"next-intl": "4.8.3",
|
||||
"next-themes": "0.4.6",
|
||||
"nextjs-toploader": "3.9.17",
|
||||
"node-cache": "5.1.2",
|
||||
"nodemailer": "8.0.4",
|
||||
"nodemailer": "8.0.5",
|
||||
"oslo": "1.2.1",
|
||||
"pg": "8.20.0",
|
||||
"posthog-node": "5.28.0",
|
||||
@@ -89,13 +89,13 @@
|
||||
"reodotdev": "1.1.0",
|
||||
"resend": "6.9.2",
|
||||
"semver": "7.7.4",
|
||||
"sshpk": "^1.18.0",
|
||||
"sshpk": "1.18.0",
|
||||
"stripe": "20.4.1",
|
||||
"swagger-ui-express": "5.0.1",
|
||||
"tailwind-merge": "3.5.0",
|
||||
"topojson-client": "3.1.0",
|
||||
"tw-animate-css": "1.4.0",
|
||||
"use-debounce": "^10.1.0",
|
||||
"use-debounce": "10.1.0",
|
||||
"uuid": "13.0.0",
|
||||
"vaul": "1.1.2",
|
||||
"visionscarto-world-atlas": "1.0.0",
|
||||
@@ -130,7 +130,7 @@
|
||||
"@types/react": "19.2.14",
|
||||
"@types/react-dom": "19.2.3",
|
||||
"@types/semver": "7.7.1",
|
||||
"@types/sshpk": "^1.17.4",
|
||||
"@types/sshpk": "1.17.4",
|
||||
"@types/swagger-ui-express": "4.1.8",
|
||||
"@types/topojson-client": "3.1.5",
|
||||
"@types/ws": "8.18.1",
|
||||
@@ -1058,6 +1058,7 @@
|
||||
"integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.29.0",
|
||||
"@babel/generator": "^7.29.0",
|
||||
@@ -2353,6 +2354,7 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2375,6 +2377,7 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2397,6 +2400,7 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2413,6 +2417,7 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2429,6 +2434,7 @@
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2445,6 +2451,7 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2461,6 +2468,7 @@
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2477,6 +2485,7 @@
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2493,6 +2502,7 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2509,6 +2519,7 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2525,6 +2536,7 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2541,6 +2553,7 @@
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2563,6 +2576,7 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2585,6 +2599,7 @@
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2607,6 +2622,7 @@
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2629,6 +2645,7 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2651,6 +2668,7 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2673,6 +2691,7 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2695,6 +2714,7 @@
|
||||
"cpu": [
|
||||
"wasm32"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
@@ -2714,6 +2734,7 @@
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0 AND LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2733,6 +2754,7 @@
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0 AND LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2752,6 +2774,7 @@
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0 AND LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2862,9 +2885,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/env": {
|
||||
"version": "15.5.14",
|
||||
"resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.14.tgz",
|
||||
"integrity": "sha512-aXeirLYuASxEgi4X4WhfXsShCFxWDfNn/8ZeC5YXAS2BB4A8FJi1kwwGL6nvMVboE7fZCzmJPNdMvVHc8JpaiA==",
|
||||
"version": "15.5.15",
|
||||
"resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.15.tgz",
|
||||
"integrity": "sha512-vcmyu5/MyFzN7CdqRHO3uHO44p/QPCZkuTUXroeUmhNP8bL5PHFEhik22JUazt+CDDoD6EpBYRCaS2pISL+/hg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@next/eslint-plugin-next": {
|
||||
@@ -2878,9 +2901,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-darwin-arm64": {
|
||||
"version": "15.5.14",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.14.tgz",
|
||||
"integrity": "sha512-Y9K6SPzobnZvrRDPO2s0grgzC+Egf0CqfbdvYmQVaztV890zicw8Z8+4Vqw8oPck8r1TjUHxVh8299Cg4TrxXg==",
|
||||
"version": "15.5.15",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.15.tgz",
|
||||
"integrity": "sha512-6PvFO2Tzt10GFK2Ro9tAVEtacMqRmTarYMFKAnV2vYMdwWc73xzmDQyAV7SwEdMhzmiRoo7+m88DuiXlJlGeaw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2894,9 +2917,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-darwin-x64": {
|
||||
"version": "15.5.14",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.14.tgz",
|
||||
"integrity": "sha512-aNnkSMjSFRTOmkd7qoNI2/rETQm/vKD6c/Ac9BZGa9CtoOzy3c2njgz7LvebQJ8iPxdeTuGnAjagyis8a9ifBw==",
|
||||
"version": "15.5.15",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.15.tgz",
|
||||
"integrity": "sha512-G+YNV+z6FDZTp/+IdGyIMFqalBTaQSnvAA+X/hrt+eaTRFSznRMz9K7rTmzvM6tDmKegNtyzgufZW0HwVzEqaQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2910,9 +2933,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-linux-arm64-gnu": {
|
||||
"version": "15.5.14",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.14.tgz",
|
||||
"integrity": "sha512-tjlpia+yStPRS//6sdmlVwuO1Rioern4u2onafa5n+h2hCS9MAvMXqpVbSrjgiEOoCs0nJy7oPOmWgtRRNSM5Q==",
|
||||
"version": "15.5.15",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.15.tgz",
|
||||
"integrity": "sha512-eVkrMcVIBqGfXB+QUC7jjZ94Z6uX/dNStbQFabewAnk13Uy18Igd1YZ/GtPRzdhtm7QwC0e6o7zOQecul4iC1w==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2926,9 +2949,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-linux-arm64-musl": {
|
||||
"version": "15.5.14",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.14.tgz",
|
||||
"integrity": "sha512-8B8cngBaLadl5lbDRdxGCP1Lef8ipD6KlxS3v0ElDAGil6lafrAM3B258p1KJOglInCVFUjk751IXMr2ixeQOQ==",
|
||||
"version": "15.5.15",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.15.tgz",
|
||||
"integrity": "sha512-RwSHKMQ7InLy5GfkY2/n5PcFycKA08qI1VST78n09nN36nUPqCvGSMiLXlfUmzmpQpF6XeBYP2KRWHi0UW3uNg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2942,9 +2965,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-linux-x64-gnu": {
|
||||
"version": "15.5.14",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.14.tgz",
|
||||
"integrity": "sha512-bAS6tIAg8u4Gn3Nz7fCPpSoKAexEt2d5vn1mzokcqdqyov6ZJ6gu6GdF9l8ORFrBuRHgv3go/RfzYz5BkZ6YSQ==",
|
||||
"version": "15.5.15",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.15.tgz",
|
||||
"integrity": "sha512-nplqvY86LakS+eeiuWsNWvfmK8pFcOEW7ZtVRt4QH70lL+0x6LG/m1OpJ/tvrbwjmR8HH9/fH2jzW1GlL03TIg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2958,9 +2981,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-linux-x64-musl": {
|
||||
"version": "15.5.14",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.14.tgz",
|
||||
"integrity": "sha512-mMxv/FcrT7Gfaq4tsR22l17oKWXZmH/lVqcvjX0kfp5I0lKodHYLICKPoX1KRnnE+ci6oIUdriUhuA3rBCDiSw==",
|
||||
"version": "15.5.15",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.15.tgz",
|
||||
"integrity": "sha512-eAgl9NKQ84/sww0v81DQINl/vL2IBxD7sMybd0cWRw6wqgouVI53brVRBrggqBRP/NWeIAE1dm5cbKYoiMlqDQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2974,9 +2997,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-win32-arm64-msvc": {
|
||||
"version": "15.5.14",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.14.tgz",
|
||||
"integrity": "sha512-OTmiBlYThppnvnsqx0rBqjDRemlmIeZ8/o4zI7veaXoeO1PVHoyj2lfTfXTiiGjCyRDhA10y4h6ZvZvBiynr2g==",
|
||||
"version": "15.5.15",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.15.tgz",
|
||||
"integrity": "sha512-GJVZC86lzSquh0MtvZT+L7G8+jMnJcldloOjA8Kf3wXvBrvb6OGe2MzPuALxFshSm/IpwUtD2mIoof39ymf52A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2990,9 +3013,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@next/swc-win32-x64-msvc": {
|
||||
"version": "15.5.14",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.14.tgz",
|
||||
"integrity": "sha512-+W7eFf3RS7m4G6tppVTOSyP9Y6FsJXfOuKzav1qKniiFm3KFByQfPEcouHdjlZmysl4zJGuGLQ/M9XyVeyeNEg==",
|
||||
"version": "15.5.15",
|
||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.15.tgz",
|
||||
"integrity": "sha512-nFucjVdwlFqxh/JG3hWSJ4p8+YJV7Ii8aPDuBQULB6DzUF4UNZETXLfEUk+oI2zEznWWULPt7MeuTE6xtK1HSA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -3011,6 +3034,7 @@
|
||||
"integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": "^14.21.3 || >=16"
|
||||
},
|
||||
@@ -6957,6 +6981,7 @@
|
||||
"resolved": "https://registry.npmjs.org/@react-email/text/-/text-0.1.6.tgz",
|
||||
"integrity": "sha512-TYqkioRS45wTR5il3dYk/SbUjjEdhSwh9BtRNB99qNH1pXAwA45H7rAuxehiu8iJQJH0IyIr+6n62gBz9ezmsw==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=20.0.0"
|
||||
},
|
||||
@@ -8417,6 +8442,7 @@
|
||||
"version": "5.90.21",
|
||||
"resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.21.tgz",
|
||||
"integrity": "sha512-0Lu6y5t+tvlTJMTO7oh5NSpJfpg/5D41LlThfepTixPYkJ0sE2Jj0m0f6yYqujBwIXlId87e234+MxG3D3g7kg==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@tanstack/query-core": "5.90.20"
|
||||
},
|
||||
@@ -8532,6 +8558,7 @@
|
||||
"integrity": "sha512-NMv9ASNARoKksWtsq/SHakpYAYnhBrQgGD8zkLYk/jaK8jUGn08CfEdTRgYhMypUQAfzSP8W6gNLe0q19/t4VA==",
|
||||
"devOptional": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
@@ -8879,6 +8906,7 @@
|
||||
"integrity": "sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/body-parser": "*",
|
||||
"@types/express-serve-static-core": "^5.0.0",
|
||||
@@ -8974,6 +9002,7 @@
|
||||
"integrity": "sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA==",
|
||||
"devOptional": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"undici-types": "~7.18.0"
|
||||
}
|
||||
@@ -9001,6 +9030,7 @@
|
||||
"integrity": "sha512-gT+oueVQkqnj6ajGJXblFR4iavIXWsGAFCk3dP4Kki5+a9R4NMt0JARdk6s8cUKcfUoqP5dAtDSLU8xYUTFV+Q==",
|
||||
"devOptional": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/node": "*",
|
||||
"pg-protocol": "*",
|
||||
@@ -9026,6 +9056,7 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
|
||||
"integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
|
||||
"devOptional": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"csstype": "^3.2.2"
|
||||
}
|
||||
@@ -9036,6 +9067,7 @@
|
||||
"integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
|
||||
"devOptional": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"peerDependencies": {
|
||||
"@types/react": "^19.2.0"
|
||||
}
|
||||
@@ -9122,8 +9154,7 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
|
||||
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"peer": true
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/@types/ws": {
|
||||
"version": "8.18.1",
|
||||
@@ -9197,6 +9228,7 @@
|
||||
"integrity": "sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": "8.56.1",
|
||||
"@typescript-eslint/types": "8.56.1",
|
||||
@@ -9670,6 +9702,7 @@
|
||||
"integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"acorn": "bin/acorn"
|
||||
},
|
||||
@@ -10093,13 +10126,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/axios": {
|
||||
"version": "1.13.5",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz",
|
||||
"integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==",
|
||||
"version": "1.15.0",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.15.0.tgz",
|
||||
"integrity": "sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"follow-redirects": "^1.15.11",
|
||||
"form-data": "^4.0.5",
|
||||
"proxy-from-env": "^1.1.0"
|
||||
"proxy-from-env": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/axobject-query": {
|
||||
@@ -10118,6 +10152,7 @@
|
||||
"integrity": "sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==",
|
||||
"devOptional": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.26.0"
|
||||
}
|
||||
@@ -10189,6 +10224,7 @@
|
||||
"integrity": "sha512-Ba0KR+Fzxh2jDRhdg6TSH0SJGzb8C0aBY4hR8w8madIdIzzC6Y1+kx5qR6eS1Z+Gy20h6ZU28aeyg0z1VIrShQ==",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"bindings": "^1.5.0",
|
||||
"prebuild-install": "^7.1.1"
|
||||
@@ -10317,6 +10353,7 @@
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"baseline-browser-mapping": "^2.9.0",
|
||||
"caniuse-lite": "^1.0.30001759",
|
||||
@@ -11223,6 +11260,7 @@
|
||||
"resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
|
||||
"integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
|
||||
"license": "ISC",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
@@ -11663,7 +11701,6 @@
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.2.tgz",
|
||||
"integrity": "sha512-6obghkliLdmKa56xdbLOpUZ43pAR6xFy1uOrxBaIDjT+yaRuuybLjGS9eVBoSR/UPU5fq3OXClEHLJNGvbxKpQ==",
|
||||
"license": "(MPL-2.0 OR Apache-2.0)",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=20"
|
||||
},
|
||||
@@ -11731,9 +11768,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/drizzle-orm": {
|
||||
"version": "0.45.1",
|
||||
"resolved": "https://registry.npmjs.org/drizzle-orm/-/drizzle-orm-0.45.1.tgz",
|
||||
"integrity": "sha512-Te0FOdKIistGNPMq2jscdqngBRfBpC8uMFVwqjf6gtTVJHIQ/dosgV/CLBU2N4ZJBsXL5savCba9b0YJskKdcA==",
|
||||
"version": "0.45.2",
|
||||
"resolved": "https://registry.npmjs.org/drizzle-orm/-/drizzle-orm-0.45.2.tgz",
|
||||
"integrity": "sha512-kY0BSaTNYWnoDMVoyY8uxmyHjpJW1geOmBMdSSicKo9CIIWkSxMIj2rkeSR51b8KAPB7m+qysjuHme5nKP+E5Q==",
|
||||
"license": "Apache-2.0",
|
||||
"peerDependencies": {
|
||||
"@aws-sdk/client-rds-data": ">=3",
|
||||
@@ -12298,6 +12335,7 @@
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"esbuild": "bin/esbuild"
|
||||
},
|
||||
@@ -12383,6 +12421,7 @@
|
||||
"integrity": "sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.8.0",
|
||||
"@eslint-community/regexpp": "^4.12.2",
|
||||
@@ -12519,6 +12558,7 @@
|
||||
"integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@rtsao/scc": "^1.1.0",
|
||||
"array-includes": "^3.1.9",
|
||||
@@ -12912,6 +12952,7 @@
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz",
|
||||
"integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"accepts": "^2.0.0",
|
||||
"body-parser": "^2.2.1",
|
||||
@@ -13251,9 +13292,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/follow-redirects": {
|
||||
"version": "1.15.11",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
|
||||
"integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
|
||||
"version": "1.16.0",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz",
|
||||
"integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
@@ -14959,9 +15000,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/lodash": {
|
||||
"version": "4.17.23",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
|
||||
"integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
|
||||
"version": "4.18.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
|
||||
"integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/lodash.defaults": {
|
||||
@@ -15329,7 +15370,6 @@
|
||||
"resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.55.1.tgz",
|
||||
"integrity": "sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"dompurify": "3.2.7",
|
||||
"marked": "14.0.0"
|
||||
@@ -15340,7 +15380,6 @@
|
||||
"resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz",
|
||||
"integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"marked": "bin/marked.js"
|
||||
},
|
||||
@@ -15425,12 +15464,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/next": {
|
||||
"version": "15.5.14",
|
||||
"resolved": "https://registry.npmjs.org/next/-/next-15.5.14.tgz",
|
||||
"integrity": "sha512-M6S+4JyRjmKic2Ssm7jHUPkE6YUJ6lv4507jprsSZLulubz0ihO2E+S4zmQK3JZ2ov81JrugukKU4Tz0ivgqqQ==",
|
||||
"version": "15.5.15",
|
||||
"resolved": "https://registry.npmjs.org/next/-/next-15.5.15.tgz",
|
||||
"integrity": "sha512-VSqCrJwtLVGwAVE0Sb/yikrQfkwkZW9p+lL/J4+xe+G3ZA+QnWPqgcfH1tDUEuk9y+pthzzVFp4L/U8JerMfMQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@next/env": "15.5.14",
|
||||
"@next/env": "15.5.15",
|
||||
"@swc/helpers": "0.5.15",
|
||||
"caniuse-lite": "^1.0.30001579",
|
||||
"postcss": "8.4.31",
|
||||
@@ -15443,14 +15483,14 @@
|
||||
"node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@next/swc-darwin-arm64": "15.5.14",
|
||||
"@next/swc-darwin-x64": "15.5.14",
|
||||
"@next/swc-linux-arm64-gnu": "15.5.14",
|
||||
"@next/swc-linux-arm64-musl": "15.5.14",
|
||||
"@next/swc-linux-x64-gnu": "15.5.14",
|
||||
"@next/swc-linux-x64-musl": "15.5.14",
|
||||
"@next/swc-win32-arm64-msvc": "15.5.14",
|
||||
"@next/swc-win32-x64-msvc": "15.5.14",
|
||||
"@next/swc-darwin-arm64": "15.5.15",
|
||||
"@next/swc-darwin-x64": "15.5.15",
|
||||
"@next/swc-linux-arm64-gnu": "15.5.15",
|
||||
"@next/swc-linux-arm64-musl": "15.5.15",
|
||||
"@next/swc-linux-x64-gnu": "15.5.15",
|
||||
"@next/swc-linux-x64-musl": "15.5.15",
|
||||
"@next/swc-win32-arm64-msvc": "15.5.15",
|
||||
"@next/swc-win32-x64-msvc": "15.5.15",
|
||||
"sharp": "^0.34.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
@@ -15646,9 +15686,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/nodemailer": {
|
||||
"version": "8.0.4",
|
||||
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-8.0.4.tgz",
|
||||
"integrity": "sha512-k+jf6N8PfQJ0Fe8ZhJlgqU5qJU44Lpvp2yvidH3vp1lPnVQMgi4yEEMPXg5eJS1gFIJTVq1NHBk7Ia9ARdSBdQ==",
|
||||
"version": "8.0.5",
|
||||
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-8.0.5.tgz",
|
||||
"integrity": "sha512-0PF8Yb1yZuQfQbq+5/pZJrtF6WQcjTd5/S4JOHs9PGFxuTqoB/icwuB44pOdURHJbRKX1PPoJZtY7R4VUoCC8w==",
|
||||
"license": "MIT-0",
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
@@ -16388,6 +16428,7 @@
|
||||
"resolved": "https://registry.npmjs.org/pg/-/pg-8.20.0.tgz",
|
||||
"integrity": "sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"pg-connection-string": "^2.12.0",
|
||||
"pg-pool": "^3.13.0",
|
||||
@@ -16725,10 +16766,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/proxy-from-env": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
||||
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
|
||||
"license": "MIT"
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz",
|
||||
"integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/pump": {
|
||||
"version": "3.0.3",
|
||||
@@ -16892,6 +16936,7 @@
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz",
|
||||
"integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
@@ -16923,6 +16968,7 @@
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz",
|
||||
"integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"scheduler": "^0.27.0"
|
||||
},
|
||||
@@ -17215,6 +17261,7 @@
|
||||
"resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.71.2.tgz",
|
||||
"integrity": "sha512-1CHvcDYzuRUNOflt4MOq3ZM46AronNJtQ1S7tnX6YN4y72qhgiUItpacZUAQ0TyWYci3yz1X+rXaSxiuEm86PA==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18.0.0"
|
||||
},
|
||||
@@ -18676,7 +18723,8 @@
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz",
|
||||
"integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==",
|
||||
"license": "MIT"
|
||||
"license": "MIT",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/tapable": {
|
||||
"version": "2.3.2",
|
||||
@@ -19151,6 +19199,7 @@
|
||||
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
||||
"devOptional": true,
|
||||
"license": "Apache-2.0",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
@@ -19578,6 +19627,7 @@
|
||||
"resolved": "https://registry.npmjs.org/winston/-/winston-3.19.0.tgz",
|
||||
"integrity": "sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@colors/colors": "^1.6.0",
|
||||
"@dabh/diagnostics": "^2.0.8",
|
||||
@@ -19784,6 +19834,7 @@
|
||||
"resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz",
|
||||
"integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==",
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/colinhacks"
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
"@tanstack/react-query": "5.90.21",
|
||||
"@tanstack/react-table": "8.21.3",
|
||||
"arctic": "3.7.0",
|
||||
"axios": "1.13.5",
|
||||
"axios": "1.15.0",
|
||||
"better-sqlite3": "11.9.1",
|
||||
"canvas-confetti": "1.9.4",
|
||||
"class-variance-authority": "0.7.1",
|
||||
@@ -78,7 +78,7 @@
|
||||
"cors": "2.8.6",
|
||||
"crypto-js": "4.2.0",
|
||||
"d3": "7.9.0",
|
||||
"drizzle-orm": "0.45.1",
|
||||
"drizzle-orm": "0.45.2",
|
||||
"express": "5.2.1",
|
||||
"express-rate-limit": "8.3.0",
|
||||
"glob": "13.0.6",
|
||||
@@ -92,12 +92,12 @@
|
||||
"lucide-react": "0.577.0",
|
||||
"maxmind": "5.0.5",
|
||||
"moment": "2.30.1",
|
||||
"next": "15.5.14",
|
||||
"next": "15.5.15",
|
||||
"next-intl": "4.8.3",
|
||||
"next-themes": "0.4.6",
|
||||
"nextjs-toploader": "3.9.17",
|
||||
"node-cache": "5.1.2",
|
||||
"nodemailer": "8.0.4",
|
||||
"nodemailer": "8.0.5",
|
||||
"oslo": "1.2.1",
|
||||
"pg": "8.20.0",
|
||||
"posthog-node": "5.28.0",
|
||||
|
||||
|
Before Width: | Height: | Size: 765 KiB After Width: | Height: | Size: 588 KiB |
|
Before Width: | Height: | Size: 742 KiB After Width: | Height: | Size: 569 KiB |
|
Before Width: | Height: | Size: 765 KiB After Width: | Height: | Size: 588 KiB |
|
Before Width: | Height: | Size: 2.9 MiB After Width: | Height: | Size: 2.4 MiB |
|
Before Width: | Height: | Size: 243 KiB After Width: | Height: | Size: 274 KiB |
BIN
public/third-party/incidentio.png
vendored
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
public/third-party/opsgenie.png
vendored
Normal file
|
After Width: | Height: | Size: 214 KiB |
BIN
public/third-party/pgd.png
vendored
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
public/third-party/servicenow.png
vendored
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
@@ -121,7 +121,7 @@ export function createApiServer() {
|
||||
const httpServer = apiServer.listen(externalPort, (err?: any) => {
|
||||
if (err) throw err;
|
||||
logger.info(
|
||||
`API server is running on http://localhost:${externalPort}`
|
||||
`Dashboard API server is running on http://localhost:${externalPort}`
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
@@ -123,6 +123,7 @@ export enum ActionsEnum {
|
||||
deleteOrgDomain = "deleteOrgDomain",
|
||||
restartOrgDomain = "restartOrgDomain",
|
||||
sendUsageNotification = "sendUsageNotification",
|
||||
sendTrialNotification = "sendTrialNotification",
|
||||
createRemoteExitNode = "createRemoteExitNode",
|
||||
updateRemoteExitNode = "updateRemoteExitNode",
|
||||
getRemoteExitNode = "getRemoteExitNode",
|
||||
@@ -144,7 +145,19 @@ export enum ActionsEnum {
|
||||
createEventStreamingDestination = "createEventStreamingDestination",
|
||||
updateEventStreamingDestination = "updateEventStreamingDestination",
|
||||
deleteEventStreamingDestination = "deleteEventStreamingDestination",
|
||||
listEventStreamingDestinations = "listEventStreamingDestinations"
|
||||
listEventStreamingDestinations = "listEventStreamingDestinations",
|
||||
createAlertRule = "createAlertRule",
|
||||
updateAlertRule = "updateAlertRule",
|
||||
deleteAlertRule = "deleteAlertRule",
|
||||
listAlertRules = "listAlertRules",
|
||||
getAlertRule = "getAlertRule",
|
||||
createHealthCheck = "createHealthCheck",
|
||||
updateHealthCheck = "updateHealthCheck",
|
||||
deleteHealthCheck = "deleteHealthCheck",
|
||||
listHealthChecks = "listHealthChecks",
|
||||
triggerSiteAlert = "triggerSiteAlert",
|
||||
triggerResourceAlert = "triggerResourceAlert",
|
||||
triggerHealthCheckAlert = "triggerHealthCheckAlert"
|
||||
}
|
||||
|
||||
export async function checkUserActionPermission(
|
||||
|
||||
@@ -16,11 +16,14 @@ import {
|
||||
domains,
|
||||
orgs,
|
||||
targets,
|
||||
roles,
|
||||
users,
|
||||
exitNodes,
|
||||
sessions,
|
||||
clients,
|
||||
resources,
|
||||
siteResources,
|
||||
targetHealthCheck,
|
||||
sites
|
||||
} from "./schema";
|
||||
|
||||
@@ -88,6 +91,8 @@ export const subscriptions = pgTable("subscriptions", {
|
||||
updatedAt: bigint("updatedAt", { mode: "number" }),
|
||||
version: integer("version"),
|
||||
billingCycleAnchor: bigint("billingCycleAnchor", { mode: "number" }),
|
||||
expiresAt: bigint("expiresAt", { mode: "number" }),
|
||||
trial: boolean("trial").default(false),
|
||||
type: varchar("type", { length: 50 }) // tier1, tier2, tier3, or license
|
||||
});
|
||||
|
||||
@@ -425,7 +430,9 @@ export const eventStreamingDestinations = pgTable(
|
||||
orgId: varchar("orgId", { length: 255 })
|
||||
.notNull()
|
||||
.references(() => orgs.orgId, { onDelete: "cascade" }),
|
||||
sendConnectionLogs: boolean("sendConnectionLogs").notNull().default(false),
|
||||
sendConnectionLogs: boolean("sendConnectionLogs")
|
||||
.notNull()
|
||||
.default(false),
|
||||
sendRequestLogs: boolean("sendRequestLogs").notNull().default(false),
|
||||
sendActionLogs: boolean("sendActionLogs").notNull().default(false),
|
||||
sendAccessLogs: boolean("sendAccessLogs").notNull().default(false),
|
||||
@@ -447,7 +454,9 @@ export const eventStreamingCursors = pgTable(
|
||||
onDelete: "cascade"
|
||||
}),
|
||||
logType: varchar("logType", { length: 50 }).notNull(), // "request" | "action" | "access" | "connection"
|
||||
lastSentId: bigint("lastSentId", { mode: "number" }).notNull().default(0),
|
||||
lastSentId: bigint("lastSentId", { mode: "number" })
|
||||
.notNull()
|
||||
.default(0),
|
||||
lastSentAt: bigint("lastSentAt", { mode: "number" }) // epoch milliseconds, null if never sent
|
||||
},
|
||||
(table) => [
|
||||
@@ -458,6 +467,104 @@ export const eventStreamingCursors = pgTable(
|
||||
]
|
||||
);
|
||||
|
||||
export const alertRules = pgTable("alertRules", {
|
||||
alertRuleId: serial("alertRuleId").primaryKey(),
|
||||
orgId: varchar("orgId", { length: 255 })
|
||||
.notNull()
|
||||
.references(() => orgs.orgId, { onDelete: "cascade" }),
|
||||
name: varchar("name", { length: 255 }).notNull(),
|
||||
// Single field encodes both source and trigger - no redundancy
|
||||
eventType: varchar("eventType", { length: 100 })
|
||||
.$type<
|
||||
| "site_online"
|
||||
| "site_offline"
|
||||
| "site_toggle"
|
||||
| "health_check_healthy"
|
||||
| "health_check_unhealthy"
|
||||
| "health_check_toggle"
|
||||
| "resource_healthy"
|
||||
| "resource_unhealthy"
|
||||
| "resource_toggle"
|
||||
>()
|
||||
.notNull(),
|
||||
// Nullable depending on eventType
|
||||
enabled: boolean("enabled").notNull().default(true),
|
||||
cooldownSeconds: integer("cooldownSeconds").notNull().default(300),
|
||||
allSites: boolean("allSites").notNull().default(false),
|
||||
allHealthChecks: boolean("allHealthChecks").notNull().default(false),
|
||||
allResources: boolean("allResources").notNull().default(false),
|
||||
lastTriggeredAt: bigint("lastTriggeredAt", { mode: "number" }), // nullable
|
||||
createdAt: bigint("createdAt", { mode: "number" }).notNull(),
|
||||
updatedAt: bigint("updatedAt", { mode: "number" }).notNull()
|
||||
});
|
||||
|
||||
export const alertSites = pgTable("alertSites", {
|
||||
alertRuleId: integer("alertRuleId")
|
||||
.notNull()
|
||||
.references(() => alertRules.alertRuleId, { onDelete: "cascade" }),
|
||||
siteId: integer("siteId")
|
||||
.notNull()
|
||||
.references(() => sites.siteId, { onDelete: "cascade" })
|
||||
});
|
||||
|
||||
export const alertHealthChecks = pgTable("alertHealthChecks", {
|
||||
alertRuleId: integer("alertRuleId")
|
||||
.notNull()
|
||||
.references(() => alertRules.alertRuleId, { onDelete: "cascade" }),
|
||||
healthCheckId: integer("healthCheckId")
|
||||
.notNull()
|
||||
.references(() => targetHealthCheck.targetHealthCheckId, {
|
||||
onDelete: "cascade"
|
||||
})
|
||||
});
|
||||
|
||||
export const alertResources = pgTable("alertResources", {
|
||||
alertRuleId: integer("alertRuleId")
|
||||
.notNull()
|
||||
.references(() => alertRules.alertRuleId, { onDelete: "cascade" }),
|
||||
resourceId: integer("resourceId")
|
||||
.notNull()
|
||||
.references(() => resources.resourceId, { onDelete: "cascade" })
|
||||
});
|
||||
|
||||
// Separating channels by type avoids the mixed-shape problem entirely
|
||||
export const alertEmailActions = pgTable("alertEmailActions", {
|
||||
emailActionId: serial("emailActionId").primaryKey(),
|
||||
alertRuleId: integer("alertRuleId")
|
||||
.notNull()
|
||||
.references(() => alertRules.alertRuleId, { onDelete: "cascade" }),
|
||||
enabled: boolean("enabled").notNull().default(true),
|
||||
lastSentAt: bigint("lastSentAt", { mode: "number" }) // nullable
|
||||
});
|
||||
|
||||
export const alertEmailRecipients = pgTable("alertEmailRecipients", {
|
||||
recipientId: serial("recipientId").primaryKey(),
|
||||
emailActionId: integer("emailActionId")
|
||||
.notNull()
|
||||
.references(() => alertEmailActions.emailActionId, {
|
||||
onDelete: "cascade"
|
||||
}),
|
||||
// At least one of these should be set - enforced at app level
|
||||
userId: varchar("userId").references(() => users.userId, {
|
||||
onDelete: "cascade"
|
||||
}),
|
||||
roleId: integer("roleId").references(() => roles.roleId, {
|
||||
onDelete: "cascade"
|
||||
}),
|
||||
email: varchar("email", { length: 255 }) // external emails not tied to a user
|
||||
});
|
||||
|
||||
export const alertWebhookActions = pgTable("alertWebhookActions", {
|
||||
webhookActionId: serial("webhookActionId").primaryKey(),
|
||||
alertRuleId: integer("alertRuleId")
|
||||
.notNull()
|
||||
.references(() => alertRules.alertRuleId, { onDelete: "cascade" }),
|
||||
webhookUrl: text("webhookUrl").notNull(),
|
||||
config: text("config"), // encrypted JSON with auth config (authType, credentials)
|
||||
enabled: boolean("enabled").notNull().default(true),
|
||||
lastSentAt: bigint("lastSentAt", { mode: "number" }) // nullable
|
||||
});
|
||||
|
||||
export type Approval = InferSelectModel<typeof approvals>;
|
||||
export type Limit = InferSelectModel<typeof limits>;
|
||||
export type Account = InferSelectModel<typeof account>;
|
||||
@@ -495,3 +602,4 @@ export type EventStreamingDestination = InferSelectModel<
|
||||
export type EventStreamingCursor = InferSelectModel<
|
||||
typeof eventStreamingCursors
|
||||
>;
|
||||
export type AlertResources = InferSelectModel<typeof alertResources>;
|
||||
|
||||
@@ -57,7 +57,9 @@ export const orgs = pgTable("orgs", {
|
||||
settingsLogRetentionDaysAction: integer("settingsLogRetentionDaysAction") // where 0 = dont keep logs and -1 = keep forever and 9001 = end of the following year
|
||||
.notNull()
|
||||
.default(0),
|
||||
settingsLogRetentionDaysConnection: integer("settingsLogRetentionDaysConnection") // where 0 = dont keep logs and -1 = keep forever and 9001 = end of the following year
|
||||
settingsLogRetentionDaysConnection: integer(
|
||||
"settingsLogRetentionDaysConnection"
|
||||
) // where 0 = dont keep logs and -1 = keep forever and 9001 = end of the following year
|
||||
.notNull()
|
||||
.default(0),
|
||||
sshCaPrivateKey: text("sshCaPrivateKey"), // Encrypted SSH CA private key (PEM format)
|
||||
@@ -101,7 +103,9 @@ export const sites = pgTable("sites", {
|
||||
lastHolePunch: bigint("lastHolePunch", { mode: "number" }),
|
||||
listenPort: integer("listenPort"),
|
||||
dockerSocketEnabled: boolean("dockerSocketEnabled").notNull().default(true),
|
||||
status: varchar("status").$type<"pending" | "approved">().default("approved")
|
||||
status: varchar("status")
|
||||
.$type<"pending" | "approved">()
|
||||
.default("approved")
|
||||
});
|
||||
|
||||
export const resources = pgTable("resources", {
|
||||
@@ -182,9 +186,18 @@ export const targets = pgTable("targets", {
|
||||
|
||||
export const targetHealthCheck = pgTable("targetHealthCheck", {
|
||||
targetHealthCheckId: serial("targetHealthCheckId").primaryKey(),
|
||||
targetId: integer("targetId")
|
||||
.notNull()
|
||||
.references(() => targets.targetId, { onDelete: "cascade" }),
|
||||
targetId: integer("targetId").references(() => targets.targetId, {
|
||||
onDelete: "cascade"
|
||||
}),
|
||||
orgId: varchar("orgId")
|
||||
.references(() => orgs.orgId, {
|
||||
onDelete: "cascade"
|
||||
})
|
||||
.notNull(),
|
||||
siteId: integer("siteId").references(() => sites.siteId, {
|
||||
onDelete: "cascade"
|
||||
}).notNull(),
|
||||
name: varchar("name"),
|
||||
hcEnabled: boolean("hcEnabled").notNull().default(false),
|
||||
hcPath: varchar("hcPath"),
|
||||
hcScheme: varchar("hcScheme"),
|
||||
@@ -201,7 +214,9 @@ export const targetHealthCheck = pgTable("targetHealthCheck", {
|
||||
hcHealth: text("hcHealth")
|
||||
.$type<"unknown" | "healthy" | "unhealthy">()
|
||||
.default("unknown"), // "unknown", "healthy", "unhealthy"
|
||||
hcTlsServerName: text("hcTlsServerName")
|
||||
hcTlsServerName: text("hcTlsServerName"),
|
||||
hcHealthyThreshold: integer("hcHealthyThreshold").default(1),
|
||||
hcUnhealthyThreshold: integer("hcUnhealthyThreshold").default(1)
|
||||
});
|
||||
|
||||
export const exitNodes = pgTable("exitNodes", {
|
||||
@@ -222,16 +237,23 @@ export const exitNodes = pgTable("exitNodes", {
|
||||
export const siteResources = pgTable("siteResources", {
|
||||
// this is for the clients
|
||||
siteResourceId: serial("siteResourceId").primaryKey(),
|
||||
siteId: integer("siteId")
|
||||
.notNull()
|
||||
.references(() => sites.siteId, { onDelete: "cascade" }),
|
||||
orgId: varchar("orgId")
|
||||
.notNull()
|
||||
.references(() => orgs.orgId, { onDelete: "cascade" }),
|
||||
networkId: integer("networkId").references(() => networks.networkId, {
|
||||
onDelete: "set null"
|
||||
}),
|
||||
defaultNetworkId: integer("defaultNetworkId").references(
|
||||
() => networks.networkId,
|
||||
{
|
||||
onDelete: "restrict"
|
||||
}
|
||||
),
|
||||
niceId: varchar("niceId").notNull(),
|
||||
name: varchar("name").notNull(),
|
||||
mode: varchar("mode").$type<"host" | "cidr">().notNull(), // "host" | "cidr" | "port"
|
||||
protocol: varchar("protocol"), // only for port mode
|
||||
ssl: boolean("ssl").notNull().default(false),
|
||||
mode: varchar("mode").$type<"host" | "cidr" | "http">().notNull(), // "host" | "cidr" | "http"
|
||||
scheme: varchar("scheme").$type<"http" | "https">(), // only for when we are doing https or http mode
|
||||
proxyPort: integer("proxyPort"), // only for port mode
|
||||
destinationPort: integer("destinationPort"), // only for port mode
|
||||
destination: varchar("destination").notNull(), // ip, cidr, hostname; validate against the mode
|
||||
@@ -244,7 +266,38 @@ export const siteResources = pgTable("siteResources", {
|
||||
authDaemonPort: integer("authDaemonPort").default(22123),
|
||||
authDaemonMode: varchar("authDaemonMode", { length: 32 })
|
||||
.$type<"site" | "remote">()
|
||||
.default("site")
|
||||
.default("site"),
|
||||
domainId: varchar("domainId").references(() => domains.domainId, {
|
||||
onDelete: "set null"
|
||||
}),
|
||||
subdomain: varchar("subdomain"),
|
||||
fullDomain: varchar("fullDomain")
|
||||
});
|
||||
|
||||
export const networks = pgTable("networks", {
|
||||
networkId: serial("networkId").primaryKey(),
|
||||
niceId: text("niceId"),
|
||||
name: text("name"),
|
||||
scope: varchar("scope")
|
||||
.$type<"global" | "resource">()
|
||||
.notNull()
|
||||
.default("global"),
|
||||
orgId: varchar("orgId")
|
||||
.references(() => orgs.orgId, {
|
||||
onDelete: "cascade"
|
||||
})
|
||||
.notNull()
|
||||
});
|
||||
|
||||
export const siteNetworks = pgTable("siteNetworks", {
|
||||
siteId: integer("siteId")
|
||||
.notNull()
|
||||
.references(() => sites.siteId, {
|
||||
onDelete: "cascade"
|
||||
}),
|
||||
networkId: integer("networkId")
|
||||
.notNull()
|
||||
.references(() => networks.networkId, { onDelete: "cascade" })
|
||||
});
|
||||
|
||||
export const clientSiteResources = pgTable("clientSiteResources", {
|
||||
@@ -994,6 +1047,7 @@ export const requestAuditLog = pgTable(
|
||||
actor: text("actor"),
|
||||
actorId: text("actorId"),
|
||||
resourceId: integer("resourceId"),
|
||||
siteResourceId: integer("siteResourceId"),
|
||||
ip: text("ip"),
|
||||
location: text("location"),
|
||||
userAgent: text("userAgent"),
|
||||
@@ -1041,6 +1095,20 @@ export const roundTripMessageTracker = pgTable("roundTripMessageTracker", {
|
||||
complete: boolean("complete").notNull().default(false)
|
||||
});
|
||||
|
||||
export const statusHistory = pgTable("statusHistory", {
|
||||
id: serial("id").primaryKey(),
|
||||
entityType: varchar("entityType").notNull(),
|
||||
entityId: integer("entityId").notNull(),
|
||||
orgId: varchar("orgId")
|
||||
.notNull()
|
||||
.references(() => orgs.orgId, { onDelete: "cascade" }),
|
||||
status: varchar("status").notNull(),
|
||||
timestamp: integer("timestamp").notNull(),
|
||||
}, (table) => [
|
||||
index("idx_statusHistory_entity").on(table.entityType, table.entityId, table.timestamp),
|
||||
index("idx_statusHistory_org_timestamp").on(table.orgId, table.timestamp),
|
||||
]);
|
||||
|
||||
export type Org = InferSelectModel<typeof orgs>;
|
||||
export type User = InferSelectModel<typeof users>;
|
||||
export type Site = InferSelectModel<typeof sites>;
|
||||
@@ -1107,3 +1175,5 @@ export type RequestAuditLog = InferSelectModel<typeof requestAuditLog>;
|
||||
export type RoundTripMessageTracker = InferSelectModel<
|
||||
typeof roundTripMessageTracker
|
||||
>;
|
||||
export type Network = InferSelectModel<typeof networks>;
|
||||
export type StatusHistory = InferSelectModel<typeof statusHistory>;
|
||||
|
||||
@@ -13,9 +13,12 @@ import {
|
||||
domains,
|
||||
exitNodes,
|
||||
orgs,
|
||||
resources,
|
||||
roles,
|
||||
sessions,
|
||||
siteResources,
|
||||
sites,
|
||||
targetHealthCheck,
|
||||
users
|
||||
} from "./schema";
|
||||
|
||||
@@ -82,6 +85,8 @@ export const subscriptions = sqliteTable("subscriptions", {
|
||||
createdAt: integer("createdAt").notNull(),
|
||||
updatedAt: integer("updatedAt"),
|
||||
version: integer("version"),
|
||||
expiresAt: integer("expiresAt"),
|
||||
trial: integer("trial", { mode: "boolean" }).default(false),
|
||||
billingCycleAnchor: integer("billingCycleAnchor"),
|
||||
type: text("type") // tier1, tier2, tier3, or license
|
||||
});
|
||||
@@ -455,6 +460,94 @@ export const eventStreamingCursors = sqliteTable(
|
||||
]
|
||||
);
|
||||
|
||||
export const alertRules = sqliteTable("alertRules", {
|
||||
alertRuleId: integer("alertRuleId").primaryKey({ autoIncrement: true }),
|
||||
orgId: text("orgId")
|
||||
.notNull()
|
||||
.references(() => orgs.orgId, { onDelete: "cascade" }),
|
||||
name: text("name").notNull(),
|
||||
eventType: text("eventType")
|
||||
.$type<
|
||||
| "site_online"
|
||||
| "site_offline"
|
||||
| "site_toggle"
|
||||
| "health_check_healthy"
|
||||
| "health_check_unhealthy"
|
||||
| "health_check_toggle"
|
||||
| "resource_healthy"
|
||||
| "resource_unhealthy"
|
||||
| "resource_toggle"
|
||||
>()
|
||||
.notNull(),
|
||||
enabled: integer("enabled", { mode: "boolean" }).notNull().default(true),
|
||||
cooldownSeconds: integer("cooldownSeconds").notNull().default(300),
|
||||
allSites: integer("allSites", { mode: "boolean" }).notNull().default(false),
|
||||
allHealthChecks: integer("allHealthChecks", { mode: "boolean" }).notNull().default(false),
|
||||
allResources: integer("allResources", { mode: "boolean" }).notNull().default(false),
|
||||
lastTriggeredAt: integer("lastTriggeredAt"),
|
||||
createdAt: integer("createdAt").notNull(),
|
||||
updatedAt: integer("updatedAt").notNull()
|
||||
});
|
||||
|
||||
export const alertSites = sqliteTable("alertSites", {
|
||||
alertRuleId: integer("alertRuleId")
|
||||
.notNull()
|
||||
.references(() => alertRules.alertRuleId, { onDelete: "cascade" }),
|
||||
siteId: integer("siteId")
|
||||
.notNull()
|
||||
.references(() => sites.siteId, { onDelete: "cascade" })
|
||||
});
|
||||
|
||||
export const alertHealthChecks = sqliteTable("alertHealthChecks", {
|
||||
alertRuleId: integer("alertRuleId")
|
||||
.notNull()
|
||||
.references(() => alertRules.alertRuleId, { onDelete: "cascade" }),
|
||||
healthCheckId: integer("healthCheckId")
|
||||
.notNull()
|
||||
.references(() => targetHealthCheck.targetHealthCheckId, {
|
||||
onDelete: "cascade"
|
||||
})
|
||||
});
|
||||
|
||||
export const alertResources = sqliteTable("alertResources", {
|
||||
alertRuleId: integer("alertRuleId")
|
||||
.notNull()
|
||||
.references(() => alertRules.alertRuleId, { onDelete: "cascade" }),
|
||||
resourceId: integer("resourceId")
|
||||
.notNull()
|
||||
.references(() => resources.resourceId, { onDelete: "cascade" })
|
||||
});
|
||||
|
||||
export const alertEmailActions = sqliteTable("alertEmailActions", {
|
||||
emailActionId: integer("emailActionId").primaryKey({ autoIncrement: true }),
|
||||
alertRuleId: integer("alertRuleId")
|
||||
.notNull()
|
||||
.references(() => alertRules.alertRuleId, { onDelete: "cascade" }),
|
||||
enabled: integer("enabled", { mode: "boolean" }).notNull().default(true),
|
||||
lastSentAt: integer("lastSentAt")
|
||||
});
|
||||
|
||||
export const alertEmailRecipients = sqliteTable("alertEmailRecipients", {
|
||||
recipientId: integer("recipientId").primaryKey({ autoIncrement: true }),
|
||||
emailActionId: integer("emailActionId")
|
||||
.notNull()
|
||||
.references(() => alertEmailActions.emailActionId, { onDelete: "cascade" }),
|
||||
userId: text("userId").references(() => users.userId, { onDelete: "cascade" }),
|
||||
roleId: integer("roleId").references(() => roles.roleId, { onDelete: "cascade" }),
|
||||
email: text("email")
|
||||
});
|
||||
|
||||
export const alertWebhookActions = sqliteTable("alertWebhookActions", {
|
||||
webhookActionId: integer("webhookActionId").primaryKey({ autoIncrement: true }),
|
||||
alertRuleId: integer("alertRuleId")
|
||||
.notNull()
|
||||
.references(() => alertRules.alertRuleId, { onDelete: "cascade" }),
|
||||
webhookUrl: text("webhookUrl").notNull(),
|
||||
config: text("config"), // encrypted JSON with auth config (authType, credentials)
|
||||
enabled: integer("enabled", { mode: "boolean" }).notNull().default(true),
|
||||
lastSentAt: integer("lastSentAt")
|
||||
});
|
||||
|
||||
export type Approval = InferSelectModel<typeof approvals>;
|
||||
export type Limit = InferSelectModel<typeof limits>;
|
||||
export type Account = InferSelectModel<typeof account>;
|
||||
@@ -486,3 +579,4 @@ export type EventStreamingDestination = InferSelectModel<
|
||||
export type EventStreamingCursor = InferSelectModel<
|
||||
typeof eventStreamingCursors
|
||||
>;
|
||||
export type AlertResources = InferSelectModel<typeof alertResources>;
|
||||
|
||||
@@ -54,7 +54,9 @@ export const orgs = sqliteTable("orgs", {
|
||||
settingsLogRetentionDaysAction: integer("settingsLogRetentionDaysAction") // where 0 = dont keep logs and -1 = keep forever and 9001 = end of the following year
|
||||
.notNull()
|
||||
.default(0),
|
||||
settingsLogRetentionDaysConnection: integer("settingsLogRetentionDaysConnection") // where 0 = dont keep logs and -1 = keep forever and 9001 = end of the following year
|
||||
settingsLogRetentionDaysConnection: integer(
|
||||
"settingsLogRetentionDaysConnection"
|
||||
) // where 0 = dont keep logs and -1 = keep forever and 9001 = end of the following year
|
||||
.notNull()
|
||||
.default(0),
|
||||
sshCaPrivateKey: text("sshCaPrivateKey"), // Encrypted SSH CA private key (PEM format)
|
||||
@@ -92,6 +94,9 @@ export const sites = sqliteTable("sites", {
|
||||
exitNodeId: integer("exitNode").references(() => exitNodes.exitNodeId, {
|
||||
onDelete: "set null"
|
||||
}),
|
||||
networkId: integer("networkId").references(() => networks.networkId, {
|
||||
onDelete: "set null"
|
||||
}),
|
||||
name: text("name").notNull(),
|
||||
pubKey: text("pubKey"),
|
||||
subnet: text("subnet"),
|
||||
@@ -204,9 +209,18 @@ export const targetHealthCheck = sqliteTable("targetHealthCheck", {
|
||||
targetHealthCheckId: integer("targetHealthCheckId").primaryKey({
|
||||
autoIncrement: true
|
||||
}),
|
||||
targetId: integer("targetId")
|
||||
.notNull()
|
||||
.references(() => targets.targetId, { onDelete: "cascade" }),
|
||||
targetId: integer("targetId").references(() => targets.targetId, {
|
||||
onDelete: "cascade"
|
||||
}),
|
||||
orgId: text("orgId")
|
||||
.references(() => orgs.orgId, {
|
||||
onDelete: "cascade"
|
||||
})
|
||||
.notNull(),
|
||||
siteId: integer("siteId").references(() => sites.siteId, {
|
||||
onDelete: "cascade"
|
||||
}).notNull(),
|
||||
name: text("name"),
|
||||
hcEnabled: integer("hcEnabled", { mode: "boolean" })
|
||||
.notNull()
|
||||
.default(false),
|
||||
@@ -227,7 +241,9 @@ export const targetHealthCheck = sqliteTable("targetHealthCheck", {
|
||||
hcHealth: text("hcHealth")
|
||||
.$type<"unknown" | "healthy" | "unhealthy">()
|
||||
.default("unknown"), // "unknown", "healthy", "unhealthy"
|
||||
hcTlsServerName: text("hcTlsServerName")
|
||||
hcTlsServerName: text("hcTlsServerName"),
|
||||
hcHealthyThreshold: integer("hcHealthyThreshold").default(1),
|
||||
hcUnhealthyThreshold: integer("hcUnhealthyThreshold").default(1)
|
||||
});
|
||||
|
||||
export const exitNodes = sqliteTable("exitNodes", {
|
||||
@@ -250,16 +266,21 @@ export const siteResources = sqliteTable("siteResources", {
|
||||
siteResourceId: integer("siteResourceId").primaryKey({
|
||||
autoIncrement: true
|
||||
}),
|
||||
siteId: integer("siteId")
|
||||
.notNull()
|
||||
.references(() => sites.siteId, { onDelete: "cascade" }),
|
||||
orgId: text("orgId")
|
||||
.notNull()
|
||||
.references(() => orgs.orgId, { onDelete: "cascade" }),
|
||||
networkId: integer("networkId").references(() => networks.networkId, {
|
||||
onDelete: "set null"
|
||||
}),
|
||||
defaultNetworkId: integer("defaultNetworkId").references(
|
||||
() => networks.networkId,
|
||||
{ onDelete: "restrict" }
|
||||
),
|
||||
niceId: text("niceId").notNull(),
|
||||
name: text("name").notNull(),
|
||||
mode: text("mode").$type<"host" | "cidr">().notNull(), // "host" | "cidr" | "port"
|
||||
protocol: text("protocol"), // only for port mode
|
||||
ssl: integer("ssl", { mode: "boolean" }).notNull().default(false),
|
||||
mode: text("mode").$type<"host" | "cidr" | "http">().notNull(), // "host" | "cidr" | "http"
|
||||
scheme: text("scheme").$type<"http" | "https">(), // only for when we are doing https or http mode
|
||||
proxyPort: integer("proxyPort"), // only for port mode
|
||||
destinationPort: integer("destinationPort"), // only for port mode
|
||||
destination: text("destination").notNull(), // ip, cidr, hostname
|
||||
@@ -274,7 +295,36 @@ export const siteResources = sqliteTable("siteResources", {
|
||||
authDaemonPort: integer("authDaemonPort").default(22123),
|
||||
authDaemonMode: text("authDaemonMode")
|
||||
.$type<"site" | "remote">()
|
||||
.default("site")
|
||||
.default("site"),
|
||||
domainId: text("domainId").references(() => domains.domainId, {
|
||||
onDelete: "set null"
|
||||
}),
|
||||
subdomain: text("subdomain"),
|
||||
fullDomain: text("fullDomain")
|
||||
});
|
||||
|
||||
export const networks = sqliteTable("networks", {
|
||||
networkId: integer("networkId").primaryKey({ autoIncrement: true }),
|
||||
niceId: text("niceId"),
|
||||
name: text("name"),
|
||||
scope: text("scope")
|
||||
.$type<"global" | "resource">()
|
||||
.notNull()
|
||||
.default("global"),
|
||||
orgId: text("orgId")
|
||||
.notNull()
|
||||
.references(() => orgs.orgId, { onDelete: "cascade" })
|
||||
});
|
||||
|
||||
export const siteNetworks = sqliteTable("siteNetworks", {
|
||||
siteId: integer("siteId")
|
||||
.notNull()
|
||||
.references(() => sites.siteId, {
|
||||
onDelete: "cascade"
|
||||
}),
|
||||
networkId: integer("networkId")
|
||||
.notNull()
|
||||
.references(() => networks.networkId, { onDelete: "cascade" })
|
||||
});
|
||||
|
||||
export const clientSiteResources = sqliteTable("clientSiteResources", {
|
||||
@@ -1096,6 +1146,7 @@ export const requestAuditLog = sqliteTable(
|
||||
actor: text("actor"),
|
||||
actorId: text("actorId"),
|
||||
resourceId: integer("resourceId"),
|
||||
siteResourceId: integer("siteResourceId"),
|
||||
ip: text("ip"),
|
||||
location: text("location"),
|
||||
userAgent: text("userAgent"),
|
||||
@@ -1143,6 +1194,20 @@ export const roundTripMessageTracker = sqliteTable("roundTripMessageTracker", {
|
||||
complete: integer("complete", { mode: "boolean" }).notNull().default(false)
|
||||
});
|
||||
|
||||
export const statusHistory = sqliteTable("statusHistory", {
|
||||
id: integer("id").primaryKey({ autoIncrement: true }),
|
||||
entityType: text("entityType").notNull(), // "site" | "healthCheck"
|
||||
entityId: integer("entityId").notNull(), // siteId or targetHealthCheckId
|
||||
orgId: text("orgId")
|
||||
.notNull()
|
||||
.references(() => orgs.orgId, { onDelete: "cascade" }),
|
||||
status: text("status").notNull(), // "online"/"offline" for sites; "healthy"/"unhealthy"/"unknown" for healthChecks
|
||||
timestamp: integer("timestamp").notNull(), // unix epoch seconds
|
||||
}, (table) => [
|
||||
index("idx_statusHistory_entity").on(table.entityType, table.entityId, table.timestamp),
|
||||
index("idx_statusHistory_org_timestamp").on(table.orgId, table.timestamp),
|
||||
]);
|
||||
|
||||
export type Org = InferSelectModel<typeof orgs>;
|
||||
export type User = InferSelectModel<typeof users>;
|
||||
export type Site = InferSelectModel<typeof sites>;
|
||||
@@ -1195,6 +1260,7 @@ export type ApiKey = InferSelectModel<typeof apiKeys>;
|
||||
export type ApiKeyAction = InferSelectModel<typeof apiKeyActions>;
|
||||
export type ApiKeyOrg = InferSelectModel<typeof apiKeyOrg>;
|
||||
export type SiteResource = InferSelectModel<typeof siteResources>;
|
||||
export type Network = InferSelectModel<typeof networks>;
|
||||
export type OrgDomains = InferSelectModel<typeof orgDomains>;
|
||||
export type SetupToken = InferSelectModel<typeof setupTokens>;
|
||||
export type HostMeta = InferSelectModel<typeof hostMeta>;
|
||||
@@ -1209,3 +1275,4 @@ export type DeviceWebAuthCode = InferSelectModel<typeof deviceWebAuthCodes>;
|
||||
export type RoundTripMessageTracker = InferSelectModel<
|
||||
typeof roundTripMessageTracker
|
||||
>;
|
||||
export type StatusHistory = InferSelectModel<typeof statusHistory>;
|
||||
|
||||
212
server/emails/templates/AlertNotification.tsx
Normal file
@@ -0,0 +1,212 @@
|
||||
import React from "react";
|
||||
import { Body, Head, Html, Preview, Tailwind } from "@react-email/components";
|
||||
import { themeColors } from "./lib/theme";
|
||||
import {
|
||||
EmailContainer,
|
||||
EmailFooter,
|
||||
EmailGreeting,
|
||||
EmailHeading,
|
||||
EmailInfoSection,
|
||||
EmailLetterHead,
|
||||
EmailSection,
|
||||
EmailSignature,
|
||||
EmailText
|
||||
} from "./components/Email";
|
||||
import ButtonLink from "./components/ButtonLink";
|
||||
|
||||
export type AlertEventType =
|
||||
| "site_online"
|
||||
| "site_offline"
|
||||
| "site_toggle"
|
||||
| "health_check_healthy"
|
||||
| "health_check_unhealthy"
|
||||
| "health_check_toggle"
|
||||
| "resource_healthy"
|
||||
| "resource_unhealthy"
|
||||
| "resource_toggle";
|
||||
|
||||
export type AlertNotificationProps = {
|
||||
eventType: AlertEventType;
|
||||
orgId: string;
|
||||
data: Record<string, unknown>;
|
||||
dashboardLink: string;
|
||||
};
|
||||
|
||||
function getEventMeta(eventType: AlertEventType): {
|
||||
heading: string;
|
||||
previewText: string;
|
||||
summary: string;
|
||||
statusLabel: string;
|
||||
statusColor: string;
|
||||
} {
|
||||
switch (eventType) {
|
||||
case "site_online":
|
||||
return {
|
||||
heading: "Site Back Online",
|
||||
previewText: "A site in your organization is back online.",
|
||||
summary:
|
||||
"Good news – a site in your organization has come back online and is now reachable.",
|
||||
statusLabel: "Online",
|
||||
statusColor: "#16a34a"
|
||||
};
|
||||
case "site_offline":
|
||||
return {
|
||||
heading: "Site Offline",
|
||||
previewText: "A site in your organization has gone offline.",
|
||||
summary:
|
||||
"A site in your organization has gone offline and is no longer reachable.",
|
||||
statusLabel: "Offline",
|
||||
statusColor: "#dc2626"
|
||||
};
|
||||
case "site_toggle":
|
||||
return {
|
||||
heading: "Site Status Changed",
|
||||
previewText: "A site in your organization has changed status.",
|
||||
summary: "A site in your organization has changed status.",
|
||||
statusLabel: "Status Changed",
|
||||
statusColor: "#f59e0b"
|
||||
};
|
||||
case "health_check_healthy":
|
||||
return {
|
||||
heading: "Health Check Recovered",
|
||||
previewText:
|
||||
"A health check in your organization is now healthy.",
|
||||
summary:
|
||||
"A health check in your organization has recovered and is now reporting a healthy status.",
|
||||
statusLabel: "Healthy",
|
||||
statusColor: "#16a34a"
|
||||
};
|
||||
case "health_check_unhealthy":
|
||||
return {
|
||||
heading: "Health Check Failing",
|
||||
previewText:
|
||||
"A health check in your organization is not healthy.",
|
||||
summary:
|
||||
"A health check in your organization is currently failing.",
|
||||
statusLabel: "Not Healthy",
|
||||
statusColor: "#dc2626"
|
||||
};
|
||||
case "health_check_toggle":
|
||||
return {
|
||||
heading: "Health Check Status Changed",
|
||||
previewText:
|
||||
"A health check in your organization has changed status.",
|
||||
summary:
|
||||
"A health check in your organization has changed status.",
|
||||
statusLabel: "Status Changed",
|
||||
statusColor: "#f59e0b"
|
||||
};
|
||||
case "resource_healthy":
|
||||
return {
|
||||
heading: "Resource Healthy",
|
||||
previewText: "A resource in your organization is now healthy.",
|
||||
summary:
|
||||
"A resource in your organization has recovered and is now reporting a healthy status.",
|
||||
statusLabel: "Healthy",
|
||||
statusColor: "#16a34a"
|
||||
};
|
||||
case "resource_unhealthy":
|
||||
return {
|
||||
heading: "Resource Unhealthy",
|
||||
previewText: "A resource in your organization is not healthy.",
|
||||
summary:
|
||||
"A resource in your organization is currently unhealthy.",
|
||||
statusLabel: "Unhealthy",
|
||||
statusColor: "#dc2626"
|
||||
};
|
||||
case "resource_toggle":
|
||||
return {
|
||||
heading: "Resource Status Changed",
|
||||
previewText:
|
||||
"A resource in your organization has changed status.",
|
||||
summary: "A resource in your organization has changed status.",
|
||||
statusLabel: "Status Changed",
|
||||
statusColor: "#f59e0b"
|
||||
};
|
||||
default:
|
||||
return {
|
||||
heading: "Alert Notification",
|
||||
previewText:
|
||||
"An alert event has occurred in your organization.",
|
||||
summary: "An alert event has occurred in your organization.",
|
||||
statusLabel: "Alert",
|
||||
statusColor: "#f59e0b"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
function formatDataItems(
|
||||
data: Record<string, unknown>
|
||||
): { label: string; value: React.ReactNode }[] {
|
||||
return Object.entries(data)
|
||||
.filter(([key]) => key !== "orgId")
|
||||
.map(([key, value]) => ({
|
||||
label: key
|
||||
.replace(/([A-Z])/g, " $1")
|
||||
.replace(/^./, (s) => s.toUpperCase())
|
||||
.trim(),
|
||||
value: String(value ?? "-")
|
||||
}));
|
||||
}
|
||||
|
||||
export const AlertNotification = (props: AlertNotificationProps) => {
|
||||
const { eventType, orgId, data, dashboardLink } = props;
|
||||
const meta = getEventMeta(eventType);
|
||||
const dataItems = formatDataItems(data);
|
||||
|
||||
const allItems: { label: string; value: React.ReactNode }[] = [
|
||||
{ label: "Organization", value: orgId },
|
||||
{
|
||||
label: "Status",
|
||||
value: (
|
||||
<span style={{ color: meta.statusColor, fontWeight: 600 }}>
|
||||
{meta.statusLabel}
|
||||
</span>
|
||||
)
|
||||
},
|
||||
{ label: "Time", value: new Date().toUTCString() },
|
||||
...dataItems
|
||||
];
|
||||
|
||||
return (
|
||||
<Html>
|
||||
<Head />
|
||||
<Preview>{meta.previewText}</Preview>
|
||||
<Tailwind config={themeColors}>
|
||||
<Body className="font-sans bg-gray-50">
|
||||
<EmailContainer>
|
||||
<EmailLetterHead />
|
||||
|
||||
<EmailHeading>{meta.heading}</EmailHeading>
|
||||
|
||||
<EmailGreeting>Hi there,</EmailGreeting>
|
||||
|
||||
<EmailText>{meta.summary}</EmailText>
|
||||
|
||||
<EmailInfoSection
|
||||
title="Event Details"
|
||||
items={allItems}
|
||||
/>
|
||||
|
||||
<EmailText>
|
||||
Open your dashboard to view more details and manage
|
||||
your alert rules.
|
||||
</EmailText>
|
||||
|
||||
<EmailSection>
|
||||
<ButtonLink href={dashboardLink}>
|
||||
Open Dashboard
|
||||
</ButtonLink>
|
||||
</EmailSection>
|
||||
|
||||
<EmailFooter>
|
||||
<EmailSignature />
|
||||
</EmailFooter>
|
||||
</EmailContainer>
|
||||
</Body>
|
||||
</Tailwind>
|
||||
</Html>
|
||||
);
|
||||
};
|
||||
|
||||
export default AlertNotification;
|
||||
@@ -32,7 +32,7 @@ export const EnterpriseEditionKeyGenerated = ({
|
||||
}: EnterpriseEditionKeyGeneratedProps) => {
|
||||
const previewText = personalUseOnly
|
||||
? "Your Enterprise Edition key for personal use is ready"
|
||||
: "Thank you for your purchase — your Enterprise Edition key is ready";
|
||||
: "Thank you for your purchase - your Enterprise Edition key is ready";
|
||||
|
||||
return (
|
||||
<Html>
|
||||
|
||||
127
server/emails/templates/NotifyTrialExpiring.tsx
Normal file
@@ -0,0 +1,127 @@
|
||||
import React from "react";
|
||||
import { Body, Head, Html, Preview, Tailwind } from "@react-email/components";
|
||||
import { themeColors } from "./lib/theme";
|
||||
import {
|
||||
EmailContainer,
|
||||
EmailFooter,
|
||||
EmailGreeting,
|
||||
EmailHeading,
|
||||
EmailLetterHead,
|
||||
EmailSignature,
|
||||
EmailText
|
||||
} from "./components/Email";
|
||||
|
||||
interface Props {
|
||||
email: string;
|
||||
orgName: string;
|
||||
trialEndsAt: string;
|
||||
daysRemaining: number | null;
|
||||
billingLink: string;
|
||||
}
|
||||
|
||||
export const NotifyTrialExpiring = ({
|
||||
email,
|
||||
orgName,
|
||||
trialEndsAt,
|
||||
daysRemaining,
|
||||
billingLink
|
||||
}: Props) => {
|
||||
const hasEnded = daysRemaining === null || daysRemaining === 0;
|
||||
const isLastDay = daysRemaining === 1;
|
||||
|
||||
const previewText = hasEnded
|
||||
? `Your trial for ${orgName} has ended.`
|
||||
: isLastDay
|
||||
? `Your trial for ${orgName} ends tomorrow.`
|
||||
: `Your trial for ${orgName} ends in ${daysRemaining} days.`;
|
||||
|
||||
const heading = hasEnded
|
||||
? "Your Trial Ended"
|
||||
: "Your Trial is Ending Soon";
|
||||
|
||||
return (
|
||||
<Html>
|
||||
<Head />
|
||||
<Preview>{previewText}</Preview>
|
||||
<Tailwind config={themeColors}>
|
||||
<Body className="font-sans bg-gray-50">
|
||||
<EmailContainer>
|
||||
<EmailLetterHead />
|
||||
|
||||
<EmailHeading>{heading}</EmailHeading>
|
||||
|
||||
<EmailGreeting>Hi there,</EmailGreeting>
|
||||
|
||||
{hasEnded ? (
|
||||
<>
|
||||
<EmailText>
|
||||
Your free trial for{" "}
|
||||
<strong>{orgName}</strong> ended on{" "}
|
||||
<strong>{trialEndsAt}</strong>. Your account
|
||||
has been moved to the free plan, which
|
||||
includes limited functionality.
|
||||
</EmailText>
|
||||
|
||||
<EmailText>
|
||||
Some features and resources may now be
|
||||
restricted or disconnected. To restore full
|
||||
access and continue using all the features
|
||||
you had during your trial, please upgrade to
|
||||
a paid plan.
|
||||
</EmailText>
|
||||
|
||||
<EmailText>
|
||||
You can{" "}
|
||||
<a href={billingLink}>
|
||||
upgrade your plan here
|
||||
</a>{" "}
|
||||
to get back up and running right away.
|
||||
</EmailText>
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
<EmailText>
|
||||
Just a reminder that your free trial for{" "}
|
||||
<strong>{orgName}</strong> will end on{" "}
|
||||
<strong>{trialEndsAt}</strong>
|
||||
{isLastDay
|
||||
? " — that's tomorrow!"
|
||||
: `, in ${daysRemaining} days`}
|
||||
.
|
||||
</EmailText>
|
||||
|
||||
<EmailText>
|
||||
After your trial ends, your account will be
|
||||
moved to the free plan and some
|
||||
functionality may be restricted or your
|
||||
sites may disconnect.
|
||||
</EmailText>
|
||||
|
||||
<EmailText>
|
||||
To avoid any interruption to your service,
|
||||
we encourage you to upgrade before your
|
||||
trial expires. You can{" "}
|
||||
<a href={billingLink}>
|
||||
upgrade your plan here
|
||||
</a>
|
||||
.
|
||||
</EmailText>
|
||||
</>
|
||||
)}
|
||||
|
||||
<EmailText>
|
||||
If you have any questions or need assistance, please
|
||||
don't hesitate to reach out to our support team.
|
||||
</EmailText>
|
||||
|
||||
<EmailFooter>
|
||||
<EmailSignature />
|
||||
</EmailFooter>
|
||||
</EmailContainer>
|
||||
</Body>
|
||||
</Tailwind>
|
||||
</Html>
|
||||
);
|
||||
};
|
||||
|
||||
export default NotifyTrialExpiring;
|
||||
@@ -5,7 +5,7 @@ import { build } from "@server/build";
|
||||
// EmailContainer: Wraps the entire email layout
|
||||
export function EmailContainer({ children }: { children: React.ReactNode }) {
|
||||
return (
|
||||
<Container className="bg-white border border-solid border-gray-200 max-w-lg mx-auto my-8 rounded-lg overflow-hidden shadow-sm">
|
||||
<Container className="bg-white border border-solid border-gray-200 max-w-lg mx-auto my-8 rounded-xl overflow-hidden">
|
||||
{children}
|
||||
</Container>
|
||||
);
|
||||
@@ -18,7 +18,7 @@ export function EmailLetterHead() {
|
||||
<Img
|
||||
src="https://fossorial-public-assets.s3.us-east-1.amazonaws.com/word_mark_black.png"
|
||||
alt="Pangolin Logo"
|
||||
width="120"
|
||||
width="180"
|
||||
height="auto"
|
||||
className="mx-auto"
|
||||
/>
|
||||
|
||||
@@ -22,6 +22,7 @@ import { TraefikConfigManager } from "@server/lib/traefik/TraefikConfigManager";
|
||||
import { initCleanup } from "#dynamic/cleanup";
|
||||
import license from "#dynamic/license/license";
|
||||
import { initLogCleanupInterval } from "@server/lib/cleanupLogs";
|
||||
import { initAcmeCertSync } from "#dynamic/lib/acmeCertSync";
|
||||
import { fetchServerIp } from "@server/lib/serverIpService";
|
||||
|
||||
async function startServers() {
|
||||
@@ -39,6 +40,7 @@ async function startServers() {
|
||||
initTelemetryClient();
|
||||
|
||||
initLogCleanupInterval();
|
||||
initAcmeCertSync();
|
||||
|
||||
// Start all servers
|
||||
const apiServer = createApiServer();
|
||||
|
||||
@@ -36,7 +36,7 @@ export function createInternalServer() {
|
||||
internalServer.listen(internalPort, (err?: any) => {
|
||||
if (err) throw err;
|
||||
logger.info(
|
||||
`Internal server is running on http://localhost:${internalPort}`
|
||||
`Internal API server is running on http://localhost:${internalPort}`
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
3
server/lib/acmeCertSync.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export function initAcmeCertSync(): void {
|
||||
// stub
|
||||
}
|
||||
19
server/lib/alerts/events/healthCheckEvents.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
// stub
|
||||
|
||||
export async function fireHealthCheckHealthyAlert(
|
||||
orgId: string,
|
||||
healthCheckId: number,
|
||||
healthCheckName?: string,
|
||||
extra?: Record<string, unknown>
|
||||
): Promise<void> {
|
||||
return;
|
||||
}
|
||||
|
||||
export async function fireHealthCheckUnhealthyAlert(
|
||||
orgId: string,
|
||||
healthCheckId: number,
|
||||
healthCheckName?: string,
|
||||
extra?: Record<string, unknown>
|
||||
): Promise<void> {
|
||||
return;
|
||||
}
|
||||
20
server/lib/alerts/events/resourceEvents.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
export async function fireResourceHealthyAlert(
|
||||
orgId: string,
|
||||
resourceId: number,
|
||||
resourceName?: string | null,
|
||||
extra?: Record<string, unknown>
|
||||
): Promise<void> {}
|
||||
|
||||
export async function fireResourceUnhealthyAlert(
|
||||
orgId: string,
|
||||
resourceId: number,
|
||||
resourceName?: string | null,
|
||||
extra?: Record<string, unknown>
|
||||
): Promise<void> {}
|
||||
|
||||
export async function fireResourceToggleAlert(
|
||||
orgId: string,
|
||||
resourceId: number,
|
||||
resourceName?: string | null,
|
||||
extra?: Record<string, unknown>
|
||||
): Promise<void> {}
|
||||
19
server/lib/alerts/events/siteEvents.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
// stub
|
||||
|
||||
export async function fireSiteOnlineAlert(
|
||||
orgId: string,
|
||||
siteId: number,
|
||||
siteName?: string,
|
||||
extra?: Record<string, unknown>
|
||||
): Promise<void> {
|
||||
return;
|
||||
}
|
||||
|
||||
export async function fireSiteOfflineAlert(
|
||||
orgId: string,
|
||||
siteId: number,
|
||||
siteName?: string,
|
||||
extra?: Record<string, unknown>
|
||||
): Promise<void> {
|
||||
return;
|
||||
}
|
||||
3
server/lib/alerts/index.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export * from "./events/siteEvents";
|
||||
export * from "./events/healthCheckEvents";
|
||||
export * from "./events/resourceEvents";
|
||||
@@ -20,7 +20,10 @@ export enum TierFeature {
|
||||
FullRbac = "fullRbac",
|
||||
SiteProvisioningKeys = "siteProvisioningKeys", // handle downgrade by revoking keys if needed
|
||||
SIEM = "siem", // handle downgrade by disabling SIEM integrations
|
||||
DomainNamespaces = "domainNamespaces" // handle downgrade by removing custom domain namespaces
|
||||
HTTPPrivateResources = "httpPrivateResources", // handle downgrade by disabling HTTP private resources
|
||||
DomainNamespaces = "domainNamespaces", // handle downgrade by removing custom domain namespaces
|
||||
StandaloneHealthChecks = "standaloneHealthChecks",
|
||||
AlertingRules = "alertingRules"
|
||||
}
|
||||
|
||||
export const tierMatrix: Record<TierFeature, Tier[]> = {
|
||||
@@ -58,5 +61,8 @@ export const tierMatrix: Record<TierFeature, Tier[]> = {
|
||||
[TierFeature.FullRbac]: ["tier1", "tier2", "tier3", "enterprise"],
|
||||
[TierFeature.SiteProvisioningKeys]: ["tier3", "enterprise"],
|
||||
[TierFeature.SIEM]: ["enterprise"],
|
||||
[TierFeature.DomainNamespaces]: ["tier1", "tier2", "tier3", "enterprise"]
|
||||
[TierFeature.HTTPPrivateResources]: ["tier3", "enterprise"],
|
||||
[TierFeature.DomainNamespaces]: ["tier1", "tier2", "tier3", "enterprise"],
|
||||
[TierFeature.StandaloneHealthChecks]: ["tier2", "tier3", "enterprise"],
|
||||
[TierFeature.AlertingRules]: ["tier2", "tier3", "enterprise"]
|
||||
};
|
||||
|
||||
@@ -121,8 +121,8 @@ export async function applyBlueprint({
|
||||
for (const result of clientResourcesResults) {
|
||||
if (
|
||||
result.oldSiteResource &&
|
||||
result.oldSiteResource.siteId !=
|
||||
result.newSiteResource.siteId
|
||||
JSON.stringify(result.newSites?.sort()) !==
|
||||
JSON.stringify(result.oldSites?.sort())
|
||||
) {
|
||||
// query existing associations
|
||||
const existingRoleIds = await trx
|
||||
@@ -222,38 +222,46 @@ export async function applyBlueprint({
|
||||
trx
|
||||
);
|
||||
} else {
|
||||
const [newSite] = await trx
|
||||
.select()
|
||||
.from(sites)
|
||||
.innerJoin(newts, eq(sites.siteId, newts.siteId))
|
||||
.where(
|
||||
and(
|
||||
eq(sites.siteId, result.newSiteResource.siteId),
|
||||
eq(sites.orgId, orgId),
|
||||
eq(sites.type, "newt"),
|
||||
isNotNull(sites.pubKey)
|
||||
let good = true;
|
||||
for (const newSite of result.newSites) {
|
||||
const [site] = await trx
|
||||
.select()
|
||||
.from(sites)
|
||||
.innerJoin(newts, eq(sites.siteId, newts.siteId))
|
||||
.where(
|
||||
and(
|
||||
eq(sites.siteId, newSite.siteId),
|
||||
eq(sites.orgId, orgId),
|
||||
eq(sites.type, "newt"),
|
||||
isNotNull(sites.pubKey)
|
||||
)
|
||||
)
|
||||
)
|
||||
.limit(1);
|
||||
.limit(1);
|
||||
|
||||
if (!site) {
|
||||
logger.debug(
|
||||
`No newt sites found for client resource ${result.newSiteResource.siteResourceId}, skipping target update`
|
||||
);
|
||||
good = false;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!newSite) {
|
||||
logger.debug(
|
||||
`No newt site found for client resource ${result.newSiteResource.siteResourceId}, skipping target update`
|
||||
`Updating client resource ${result.newSiteResource.siteResourceId} on site ${newSite.siteId}`
|
||||
);
|
||||
continue;
|
||||
}
|
||||
|
||||
logger.debug(
|
||||
`Updating client resource ${result.newSiteResource.siteResourceId} on site ${newSite.sites.siteId}`
|
||||
);
|
||||
if (!good) {
|
||||
continue;
|
||||
}
|
||||
|
||||
await handleMessagingForUpdatedSiteResource(
|
||||
result.oldSiteResource,
|
||||
result.newSiteResource,
|
||||
{
|
||||
siteId: newSite.sites.siteId,
|
||||
orgId: newSite.sites.orgId
|
||||
},
|
||||
result.newSites.map((site) => ({
|
||||
siteId: site.siteId,
|
||||
orgId: result.newSiteResource.orgId
|
||||
})),
|
||||
trx
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,24 +1,104 @@
|
||||
import {
|
||||
clients,
|
||||
clientSiteResources,
|
||||
domains,
|
||||
orgDomains,
|
||||
roles,
|
||||
roleSiteResources,
|
||||
Site,
|
||||
SiteResource,
|
||||
siteNetworks,
|
||||
siteResources,
|
||||
Transaction,
|
||||
userOrgs,
|
||||
users,
|
||||
userSiteResources
|
||||
userSiteResources,
|
||||
networks
|
||||
} from "@server/db";
|
||||
import { sites } from "@server/db";
|
||||
import { eq, and, ne, inArray, or } from "drizzle-orm";
|
||||
import { eq, and, ne, inArray, or, isNotNull } from "drizzle-orm";
|
||||
import { Config } from "./types";
|
||||
import logger from "@server/logger";
|
||||
import { getNextAvailableAliasAddress } from "../ip";
|
||||
import { createCertificate } from "#dynamic/routers/certificates/createCertificate";
|
||||
|
||||
async function getDomainForSiteResource(
|
||||
siteResourceId: number | undefined,
|
||||
fullDomain: string,
|
||||
orgId: string,
|
||||
trx: Transaction
|
||||
): Promise<{ subdomain: string | null; domainId: string }> {
|
||||
const [fullDomainExists] = await trx
|
||||
.select({ siteResourceId: siteResources.siteResourceId })
|
||||
.from(siteResources)
|
||||
.where(
|
||||
and(
|
||||
eq(siteResources.fullDomain, fullDomain),
|
||||
eq(siteResources.orgId, orgId),
|
||||
siteResourceId
|
||||
? ne(siteResources.siteResourceId, siteResourceId)
|
||||
: isNotNull(siteResources.siteResourceId)
|
||||
)
|
||||
)
|
||||
.limit(1);
|
||||
|
||||
if (fullDomainExists) {
|
||||
throw new Error(
|
||||
`Site resource already exists with domain: ${fullDomain} in org ${orgId}`
|
||||
);
|
||||
}
|
||||
|
||||
const possibleDomains = await trx
|
||||
.select()
|
||||
.from(domains)
|
||||
.innerJoin(orgDomains, eq(domains.domainId, orgDomains.domainId))
|
||||
.where(and(eq(orgDomains.orgId, orgId), eq(domains.verified, true)))
|
||||
.execute();
|
||||
|
||||
if (possibleDomains.length === 0) {
|
||||
throw new Error(
|
||||
`Domain not found for full-domain: ${fullDomain} in org ${orgId}`
|
||||
);
|
||||
}
|
||||
|
||||
const validDomains = possibleDomains.filter((domain) => {
|
||||
if (domain.domains.type == "ns" || domain.domains.type == "wildcard") {
|
||||
return (
|
||||
fullDomain === domain.domains.baseDomain ||
|
||||
fullDomain.endsWith(`.${domain.domains.baseDomain}`)
|
||||
);
|
||||
} else if (domain.domains.type == "cname") {
|
||||
return fullDomain === domain.domains.baseDomain;
|
||||
}
|
||||
});
|
||||
|
||||
if (validDomains.length === 0) {
|
||||
throw new Error(
|
||||
`Domain not found for full-domain: ${fullDomain} in org ${orgId}`
|
||||
);
|
||||
}
|
||||
|
||||
const domainSelection = validDomains[0].domains;
|
||||
const baseDomain = domainSelection.baseDomain;
|
||||
|
||||
let subdomain: string | null = null;
|
||||
if (fullDomain !== baseDomain) {
|
||||
subdomain = fullDomain.replace(`.${baseDomain}`, "");
|
||||
}
|
||||
|
||||
await createCertificate(domainSelection.domainId, fullDomain, trx);
|
||||
|
||||
return {
|
||||
subdomain,
|
||||
domainId: domainSelection.domainId
|
||||
};
|
||||
}
|
||||
|
||||
export type ClientResourcesResults = {
|
||||
newSiteResource: SiteResource;
|
||||
oldSiteResource?: SiteResource;
|
||||
newSites: { siteId: number }[];
|
||||
oldSites: { siteId: number }[];
|
||||
}[];
|
||||
|
||||
export async function updateClientResources(
|
||||
@@ -43,53 +123,104 @@ export async function updateClientResources(
|
||||
)
|
||||
.limit(1);
|
||||
|
||||
const resourceSiteId = resourceData.site;
|
||||
let site;
|
||||
const existingSiteIds = existingResource?.networkId
|
||||
? await trx
|
||||
.select({ siteId: sites.siteId })
|
||||
.from(siteNetworks)
|
||||
.where(eq(siteNetworks.networkId, existingResource.networkId))
|
||||
: [];
|
||||
|
||||
if (resourceSiteId) {
|
||||
// Look up site by niceId
|
||||
[site] = await trx
|
||||
.select({ siteId: sites.siteId })
|
||||
.from(sites)
|
||||
.where(
|
||||
and(
|
||||
eq(sites.niceId, resourceSiteId),
|
||||
eq(sites.orgId, orgId)
|
||||
let allSites: { siteId: number }[] = [];
|
||||
if (resourceData.site) {
|
||||
let siteSingle;
|
||||
const resourceSiteId = resourceData.site;
|
||||
|
||||
if (resourceSiteId) {
|
||||
// Look up site by niceId
|
||||
[siteSingle] = await trx
|
||||
.select({ siteId: sites.siteId })
|
||||
.from(sites)
|
||||
.where(
|
||||
and(
|
||||
eq(sites.niceId, resourceSiteId),
|
||||
eq(sites.orgId, orgId)
|
||||
)
|
||||
)
|
||||
)
|
||||
.limit(1);
|
||||
} else if (siteId) {
|
||||
// Use the provided siteId directly, but verify it belongs to the org
|
||||
[site] = await trx
|
||||
.select({ siteId: sites.siteId })
|
||||
.from(sites)
|
||||
.where(and(eq(sites.siteId, siteId), eq(sites.orgId, orgId)))
|
||||
.limit(1);
|
||||
} else {
|
||||
throw new Error(`Target site is required`);
|
||||
.limit(1);
|
||||
} else if (siteId) {
|
||||
// Use the provided siteId directly, but verify it belongs to the org
|
||||
[siteSingle] = await trx
|
||||
.select({ siteId: sites.siteId })
|
||||
.from(sites)
|
||||
.where(
|
||||
and(eq(sites.siteId, siteId), eq(sites.orgId, orgId))
|
||||
)
|
||||
.limit(1);
|
||||
} else {
|
||||
throw new Error(`Target site is required`);
|
||||
}
|
||||
|
||||
if (!siteSingle) {
|
||||
throw new Error(
|
||||
`Site not found: ${resourceSiteId} in org ${orgId}`
|
||||
);
|
||||
}
|
||||
allSites.push(siteSingle);
|
||||
}
|
||||
|
||||
if (!site) {
|
||||
throw new Error(
|
||||
`Site not found: ${resourceSiteId} in org ${orgId}`
|
||||
);
|
||||
if (resourceData.sites) {
|
||||
for (const siteNiceId of resourceData.sites) {
|
||||
const [site] = await trx
|
||||
.select({ siteId: sites.siteId })
|
||||
.from(sites)
|
||||
.where(
|
||||
and(
|
||||
eq(sites.niceId, siteNiceId),
|
||||
eq(sites.orgId, orgId)
|
||||
)
|
||||
)
|
||||
.limit(1);
|
||||
if (!site) {
|
||||
throw new Error(
|
||||
`Site not found: ${siteId} in org ${orgId}`
|
||||
);
|
||||
}
|
||||
allSites.push(site);
|
||||
}
|
||||
}
|
||||
|
||||
if (existingResource) {
|
||||
let domainInfo:
|
||||
| { subdomain: string | null; domainId: string }
|
||||
| undefined;
|
||||
if (resourceData["full-domain"] && resourceData.mode === "http") {
|
||||
domainInfo = await getDomainForSiteResource(
|
||||
existingResource.siteResourceId,
|
||||
resourceData["full-domain"],
|
||||
orgId,
|
||||
trx
|
||||
);
|
||||
}
|
||||
|
||||
// Update existing resource
|
||||
const [updatedResource] = await trx
|
||||
.update(siteResources)
|
||||
.set({
|
||||
name: resourceData.name || resourceNiceId,
|
||||
siteId: site.siteId,
|
||||
mode: resourceData.mode,
|
||||
ssl: resourceData.ssl,
|
||||
scheme: resourceData.scheme,
|
||||
destination: resourceData.destination,
|
||||
destinationPort: resourceData["destination-port"],
|
||||
enabled: true, // hardcoded for now
|
||||
// enabled: resourceData.enabled ?? true,
|
||||
alias: resourceData.alias || null,
|
||||
disableIcmp: resourceData["disable-icmp"],
|
||||
tcpPortRangeString: resourceData["tcp-ports"],
|
||||
udpPortRangeString: resourceData["udp-ports"]
|
||||
udpPortRangeString: resourceData["udp-ports"],
|
||||
fullDomain: resourceData["full-domain"] || null,
|
||||
subdomain: domainInfo ? domainInfo.subdomain : null,
|
||||
domainId: domainInfo ? domainInfo.domainId : null
|
||||
})
|
||||
.where(
|
||||
eq(
|
||||
@@ -100,7 +231,21 @@ export async function updateClientResources(
|
||||
.returning();
|
||||
|
||||
const siteResourceId = existingResource.siteResourceId;
|
||||
const orgId = existingResource.orgId;
|
||||
|
||||
if (updatedResource.networkId) {
|
||||
await trx
|
||||
.delete(siteNetworks)
|
||||
.where(
|
||||
eq(siteNetworks.networkId, updatedResource.networkId)
|
||||
);
|
||||
|
||||
for (const site of allSites) {
|
||||
await trx.insert(siteNetworks).values({
|
||||
siteId: site.siteId,
|
||||
networkId: updatedResource.networkId
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
await trx
|
||||
.delete(clientSiteResources)
|
||||
@@ -204,37 +349,72 @@ export async function updateClientResources(
|
||||
|
||||
results.push({
|
||||
newSiteResource: updatedResource,
|
||||
oldSiteResource: existingResource
|
||||
oldSiteResource: existingResource,
|
||||
newSites: allSites,
|
||||
oldSites: existingSiteIds
|
||||
});
|
||||
} else {
|
||||
let aliasAddress: string | null = null;
|
||||
if (resourceData.mode == "host") {
|
||||
// we can only have an alias on a host
|
||||
if (resourceData.mode === "host" || resourceData.mode === "http") {
|
||||
aliasAddress = await getNextAvailableAliasAddress(orgId);
|
||||
}
|
||||
|
||||
let domainInfo:
|
||||
| { subdomain: string | null; domainId: string }
|
||||
| undefined;
|
||||
if (resourceData["full-domain"] && resourceData.mode === "http") {
|
||||
domainInfo = await getDomainForSiteResource(
|
||||
undefined,
|
||||
resourceData["full-domain"],
|
||||
orgId,
|
||||
trx
|
||||
);
|
||||
}
|
||||
|
||||
const [network] = await trx
|
||||
.insert(networks)
|
||||
.values({
|
||||
scope: "resource",
|
||||
orgId: orgId
|
||||
})
|
||||
.returning();
|
||||
|
||||
// Create new resource
|
||||
const [newResource] = await trx
|
||||
.insert(siteResources)
|
||||
.values({
|
||||
orgId: orgId,
|
||||
siteId: site.siteId,
|
||||
niceId: resourceNiceId,
|
||||
networkId: network.networkId,
|
||||
defaultNetworkId: network.networkId,
|
||||
name: resourceData.name || resourceNiceId,
|
||||
mode: resourceData.mode,
|
||||
ssl: resourceData.ssl,
|
||||
scheme: resourceData.scheme,
|
||||
destination: resourceData.destination,
|
||||
destinationPort: resourceData["destination-port"],
|
||||
enabled: true, // hardcoded for now
|
||||
// enabled: resourceData.enabled ?? true,
|
||||
alias: resourceData.alias || null,
|
||||
aliasAddress: aliasAddress,
|
||||
disableIcmp: resourceData["disable-icmp"],
|
||||
tcpPortRangeString: resourceData["tcp-ports"],
|
||||
udpPortRangeString: resourceData["udp-ports"]
|
||||
udpPortRangeString: resourceData["udp-ports"],
|
||||
fullDomain: resourceData["full-domain"] || null,
|
||||
subdomain: domainInfo ? domainInfo.subdomain : null,
|
||||
domainId: domainInfo ? domainInfo.domainId : null
|
||||
})
|
||||
.returning();
|
||||
|
||||
const siteResourceId = newResource.siteResourceId;
|
||||
|
||||
for (const site of allSites) {
|
||||
await trx.insert(siteNetworks).values({
|
||||
siteId: site.siteId,
|
||||
networkId: network.networkId
|
||||
});
|
||||
}
|
||||
|
||||
const [adminRole] = await trx
|
||||
.select()
|
||||
.from(roles)
|
||||
@@ -324,7 +504,11 @@ export async function updateClientResources(
|
||||
`Created new client resource ${newResource.name} (${newResource.siteResourceId}) for org ${orgId}`
|
||||
);
|
||||
|
||||
results.push({ newSiteResource: newResource });
|
||||
results.push({
|
||||
newSiteResource: newResource,
|
||||
newSites: allSites,
|
||||
oldSites: existingSiteIds
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||