mirror of
https://github.com/henrygd/beszel.git
synced 2026-03-28 16:36:16 +01:00
Compare commits
117 Commits
v0.9.0
...
feat-allow
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ac1b408d5b | ||
|
|
81d3d8ba5c | ||
|
|
a864b6f275 | ||
|
|
c22b57ce67 | ||
|
|
23bee0aa7c | ||
|
|
0c2629f57e | ||
|
|
a4b689e8f1 | ||
|
|
0c5841133b | ||
|
|
78a645fa05 | ||
|
|
f1208a9f00 | ||
|
|
aeb5f1424b | ||
|
|
4a1fb513c5 | ||
|
|
e5a66cc156 | ||
|
|
aef3b3e610 | ||
|
|
1d13ecd8ec | ||
|
|
6404895a47 | ||
|
|
ba7db28e80 | ||
|
|
6b41a98338 | ||
|
|
b958e9eefe | ||
|
|
baf56fe83b | ||
|
|
96f9128d1a | ||
|
|
1fb60e05d7 | ||
|
|
a9a9a932a6 | ||
|
|
e0a1a49a8f | ||
|
|
79eb42d04d | ||
|
|
25b70af196 | ||
|
|
c12b27afb5 | ||
|
|
7485f79071 | ||
|
|
d170e7a00d | ||
|
|
1a6a2a64f2 | ||
|
|
646b899851 | ||
|
|
821e2e3a78 | ||
|
|
9be3fcb8ca | ||
|
|
f271b5a56c | ||
|
|
4f80a58929 | ||
|
|
2ab2cc83de | ||
|
|
3376a97bea | ||
|
|
0c54f95546 | ||
|
|
5ea6eb08a1 | ||
|
|
6b2a9463ca | ||
|
|
a94cfff965 | ||
|
|
1f69937572 | ||
|
|
aa3de511b9 | ||
|
|
3afab00937 | ||
|
|
e6054058b9 | ||
|
|
31d52d5e15 | ||
|
|
44d930a700 | ||
|
|
d7ada1b1c5 | ||
|
|
1daf35406a | ||
|
|
2216e40f04 | ||
|
|
f4480c7aa7 | ||
|
|
5b478c11eb | ||
|
|
58085bf300 | ||
|
|
ce171cf375 | ||
|
|
e689f547ef | ||
|
|
5a8e8c1512 | ||
|
|
ff5eb07716 | ||
|
|
fdbbbc77b0 | ||
|
|
20cba1b695 | ||
|
|
207d58a07e | ||
|
|
0759a3607c | ||
|
|
0b4742d064 | ||
|
|
4557f18195 | ||
|
|
83668e5727 | ||
|
|
120aff0d18 | ||
|
|
7170b24160 | ||
|
|
3441b39a02 | ||
|
|
31d306f8be | ||
|
|
76347f25e5 | ||
|
|
c157f38957 | ||
|
|
d185dfdef8 | ||
|
|
319a9895b0 | ||
|
|
68dae3967d | ||
|
|
0a331524cc | ||
|
|
5b625db57c | ||
|
|
0943e01b71 | ||
|
|
cfda7d0740 | ||
|
|
4e3d198b7b | ||
|
|
a6a9719565 | ||
|
|
ddb4f1c8f8 | ||
|
|
55d13c551a | ||
|
|
fef30b1750 | ||
|
|
0cee9e4e4b | ||
|
|
90378d09a3 | ||
|
|
7adf7ef549 | ||
|
|
ee6a456b66 | ||
|
|
4789f48ad0 | ||
|
|
ea098fd61c | ||
|
|
e7c214799a | ||
|
|
9cabc103e5 | ||
|
|
be955e0122 | ||
|
|
8a0f2d61a8 | ||
|
|
48ed4abc02 | ||
|
|
e8c680bda7 | ||
|
|
37c7a32c10 | ||
|
|
1c4533f1f2 | ||
|
|
5d88599c9a | ||
|
|
73427306d1 | ||
|
|
f24a7313d6 | ||
|
|
ad55d1ca88 | ||
|
|
9c669d8833 | ||
|
|
81fa4f16d6 | ||
|
|
40cc1a875e | ||
|
|
1ac165d7d3 | ||
|
|
9619e6cf89 | ||
|
|
fc31cefd4c | ||
|
|
5fd9010b39 | ||
|
|
c2e3dd5ab1 | ||
|
|
8e531e6b3c | ||
|
|
527e6b57d5 | ||
|
|
245fa538e9 | ||
|
|
e14a851398 | ||
|
|
0c9bc47a3a | ||
|
|
19b4477a75 | ||
|
|
558d051c42 | ||
|
|
9c8528bae1 | ||
|
|
229ef19376 |
61
.github/DISCUSSION_TEMPLATE/support.yml
vendored
Normal file
61
.github/DISCUSSION_TEMPLATE/support.yml
vendored
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
### Before opening a discussion:
|
||||||
|
|
||||||
|
- Check the [common issues guide](https://beszel.dev/guide/common-issues).
|
||||||
|
- Search existing [issues](https://github.com/henrygd/beszel/issues) and [discussions](https://github.com/henrygd/beszel/discussions) (including closed).
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: Description
|
||||||
|
description: A clear and concise description of the issue or question. If applicable, add screenshots to help explain your problem.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: system
|
||||||
|
attributes:
|
||||||
|
label: OS / Architecture
|
||||||
|
placeholder: linux/amd64 (agent), freebsd/arm64 (hub)
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: version
|
||||||
|
attributes:
|
||||||
|
label: Beszel version
|
||||||
|
placeholder: 0.9.1
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
id: install-method
|
||||||
|
attributes:
|
||||||
|
label: Installation method
|
||||||
|
options:
|
||||||
|
- Docker
|
||||||
|
- Binary
|
||||||
|
- Nix
|
||||||
|
- Unraid
|
||||||
|
- Coolify
|
||||||
|
- Other (please describe above)
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: config
|
||||||
|
attributes:
|
||||||
|
label: Configuration
|
||||||
|
description: Please provide any relevant service configuration
|
||||||
|
render: yaml
|
||||||
|
- type: textarea
|
||||||
|
id: hub-logs
|
||||||
|
attributes:
|
||||||
|
label: Hub Logs
|
||||||
|
description: Check the logs page in PocketBase (`/_/#/logs`) for relevant errors (copy JSON).
|
||||||
|
render: json
|
||||||
|
- type: textarea
|
||||||
|
id: agent-logs
|
||||||
|
attributes:
|
||||||
|
label: Agent Logs
|
||||||
|
description: Please provide any logs from the agent, if relevant. Use `LOG_LEVEL=debug` for more info.
|
||||||
|
render: shell
|
||||||
91
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
91
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
name: 🐛 Bug report
|
||||||
|
description: Report a new bug or issue.
|
||||||
|
title: '[Bug]: '
|
||||||
|
labels: ['bug']
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
### Thanks for taking the time to fill out this bug report!
|
||||||
|
|
||||||
|
- For more general support, please [start a support thread](https://github.com/henrygd/beszel/discussions/new?category=support).
|
||||||
|
- To request a change or feature, use the [feature request form](https://github.com/henrygd/beszel/issues/new?template=feature_request.yml).
|
||||||
|
- Please do not submit bugs that are specific to ZFS. We plan to add integration with ZFS utilities in the near future.
|
||||||
|
|
||||||
|
### Before submitting a bug report:
|
||||||
|
|
||||||
|
- Check the [common issues guide](https://beszel.dev/guide/common-issues).
|
||||||
|
- Search existing [issues](https://github.com/henrygd/beszel/issues) and [discussions](https://github.com/henrygd/beszel/discussions) (including closed).
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: Description
|
||||||
|
description: Explain the issue you experienced clearly and concisely.
|
||||||
|
placeholder: I went to the coffee pot and it was empty.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: expected-behavior
|
||||||
|
attributes:
|
||||||
|
label: Expected Behavior
|
||||||
|
description: In a perfect world, what should have happened?
|
||||||
|
placeholder: When I got to the coffee pot, it should have been full.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: steps-to-reproduce
|
||||||
|
attributes:
|
||||||
|
label: Steps to Reproduce
|
||||||
|
description: Describe how to reproduce the issue in repeatable steps.
|
||||||
|
placeholder: |
|
||||||
|
1. Go to the coffee pot.
|
||||||
|
2. Make more coffee.
|
||||||
|
3. Pour it into a cup.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: system
|
||||||
|
attributes:
|
||||||
|
label: OS / Architecture
|
||||||
|
placeholder: linux/amd64 (agent), freebsd/arm64 (hub)
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: version
|
||||||
|
attributes:
|
||||||
|
label: Beszel version
|
||||||
|
placeholder: 0.9.1
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
id: install-method
|
||||||
|
attributes:
|
||||||
|
label: Installation method
|
||||||
|
default: 0
|
||||||
|
options:
|
||||||
|
- Docker
|
||||||
|
- Binary
|
||||||
|
- Nix
|
||||||
|
- Unraid
|
||||||
|
- Coolify
|
||||||
|
- Other (please describe above)
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: config
|
||||||
|
attributes:
|
||||||
|
label: Configuration
|
||||||
|
description: Please provide any relevant service configuration
|
||||||
|
render: yaml
|
||||||
|
- type: textarea
|
||||||
|
id: hub-logs
|
||||||
|
attributes:
|
||||||
|
label: Hub Logs
|
||||||
|
description: Check the logs page in PocketBase (`/_/#/logs`) for relevant errors (copy JSON).
|
||||||
|
render: json
|
||||||
|
- type: textarea
|
||||||
|
id: agent-logs
|
||||||
|
attributes:
|
||||||
|
label: Agent Logs
|
||||||
|
description: Please provide any logs from the agent, if relevant. Use `LOG_LEVEL=debug` for more info.
|
||||||
|
render: shell
|
||||||
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
blank_issues_enabled: false
|
||||||
|
contact_links:
|
||||||
|
- name: 💬 Support and questions
|
||||||
|
url: https://github.com/henrygd/beszel/discussions
|
||||||
|
about: Ask and answer questions here.
|
||||||
|
- name: ℹ️ View the Common Issues page
|
||||||
|
url: https://beszel.dev/guide/common-issues
|
||||||
|
about: Find information about commonly encountered problems.
|
||||||
18
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
18
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
name: 🚀 Feature request
|
||||||
|
description: Request a new feature or change.
|
||||||
|
title: "[Feature]: "
|
||||||
|
labels: ["enhancement"]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: Before submitting, please search existing [issues](https://github.com/henrygd/beszel/issues) and [discussions](https://github.com/henrygd/beszel/discussions) (including closed).
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Describe the feature you would like to see
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Describe how you would like to see this feature implemented
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
1
.github/funding.yml
vendored
Normal file
1
.github/funding.yml
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
buy_me_a_coffee: henrygd
|
||||||
23
.github/workflows/docker-images.yml
vendored
23
.github/workflows/docker-images.yml
vendored
@@ -15,9 +15,27 @@ jobs:
|
|||||||
- image: henrygd/beszel
|
- image: henrygd/beszel
|
||||||
context: ./beszel
|
context: ./beszel
|
||||||
dockerfile: ./beszel/dockerfile_Hub
|
dockerfile: ./beszel/dockerfile_Hub
|
||||||
|
registry: docker.io
|
||||||
|
username_secret: DOCKERHUB_USERNAME
|
||||||
|
password_secret: DOCKERHUB_TOKEN
|
||||||
- image: henrygd/beszel-agent
|
- image: henrygd/beszel-agent
|
||||||
context: ./beszel
|
context: ./beszel
|
||||||
dockerfile: ./beszel/dockerfile_Agent
|
dockerfile: ./beszel/dockerfile_Agent
|
||||||
|
registry: docker.io
|
||||||
|
username_secret: DOCKERHUB_USERNAME
|
||||||
|
password_secret: DOCKERHUB_TOKEN
|
||||||
|
- image: ghcr.io/${{ github.repository }}/beszel
|
||||||
|
context: ./beszel
|
||||||
|
dockerfile: ./beszel/dockerfile_Hub
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password_secret: GITHUB_TOKEN
|
||||||
|
- image: ghcr.io/${{ github.repository }}/beszel-agent
|
||||||
|
context: ./beszel
|
||||||
|
dockerfile: ./beszel/dockerfile_Agent
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password_secret: GITHUB_TOKEN
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
packages: write
|
packages: write
|
||||||
@@ -57,8 +75,9 @@ jobs:
|
|||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request'
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ matrix.username || secrets[matrix.username_secret] }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets[matrix.password_secret] }}
|
||||||
|
registry: ${{ matrix.registry }}
|
||||||
|
|
||||||
# Build and push Docker image with Buildx (don't push on PR)
|
# Build and push Docker image with Buildx (don't push on PR)
|
||||||
# https://github.com/docker/build-push-action
|
# https://github.com/docker/build-push-action
|
||||||
|
|||||||
@@ -29,14 +29,22 @@ builds:
|
|||||||
- linux
|
- linux
|
||||||
- darwin
|
- darwin
|
||||||
- freebsd
|
- freebsd
|
||||||
|
- windows
|
||||||
goarch:
|
goarch:
|
||||||
- amd64
|
- amd64
|
||||||
- arm64
|
- arm64
|
||||||
- arm
|
- arm
|
||||||
- mips64
|
- mips64
|
||||||
|
- riscv64
|
||||||
ignore:
|
ignore:
|
||||||
- goos: freebsd
|
- goos: freebsd
|
||||||
goarch: arm
|
goarch: arm
|
||||||
|
- goos: windows
|
||||||
|
goarch: arm
|
||||||
|
- goos: darwin
|
||||||
|
goarch: riscv64
|
||||||
|
- goos: windows
|
||||||
|
goarch: riscv64
|
||||||
|
|
||||||
archives:
|
archives:
|
||||||
- id: beszel
|
- id: beszel
|
||||||
@@ -47,6 +55,10 @@ archives:
|
|||||||
{{ .Binary }}_
|
{{ .Binary }}_
|
||||||
{{- .Os }}_
|
{{- .Os }}_
|
||||||
{{- .Arch }}
|
{{- .Arch }}
|
||||||
|
format_overrides:
|
||||||
|
- goos: windows
|
||||||
|
format: zip
|
||||||
|
|
||||||
- id: beszel-agent
|
- id: beszel-agent
|
||||||
format: tar.gz
|
format: tar.gz
|
||||||
builds:
|
builds:
|
||||||
@@ -55,10 +67,52 @@ archives:
|
|||||||
{{ .Binary }}_
|
{{ .Binary }}_
|
||||||
{{- .Os }}_
|
{{- .Os }}_
|
||||||
{{- .Arch }}
|
{{- .Arch }}
|
||||||
# use zip for windows archives
|
|
||||||
# format_overrides:
|
nfpms:
|
||||||
# - goos: windows
|
- id: beszel-agent
|
||||||
# format: zip
|
package_name: beszel-agent
|
||||||
|
description: |-
|
||||||
|
Agent for Beszel
|
||||||
|
Beszel is a lightweight server monitoring platform that includes Docker
|
||||||
|
statistics, historical data, and alert functions. It has a friendly web
|
||||||
|
interface, simple configuration, and is ready to use out of the box.
|
||||||
|
It supports automatic backup, multi-user, OAuth authentication, and
|
||||||
|
API access.
|
||||||
|
maintainer: henrygd <hank@henrygd.me>
|
||||||
|
section: net
|
||||||
|
builds:
|
||||||
|
- beszel-agent
|
||||||
|
formats:
|
||||||
|
- deb
|
||||||
|
# don't think this is needed with CGO_ENABLED=0
|
||||||
|
# dependencies:
|
||||||
|
# - libc6
|
||||||
|
contents:
|
||||||
|
- src: ../supplemental/debian/beszel-agent.service
|
||||||
|
dst: lib/systemd/system/beszel-agent.service
|
||||||
|
packager: deb
|
||||||
|
- src: ../supplemental/debian/copyright
|
||||||
|
dst: usr/share/doc/beszel-agent/copyright
|
||||||
|
packager: deb
|
||||||
|
- src: ../supplemental/debian/lintian-overrides
|
||||||
|
dst: usr/share/lintian/overrides/beszel-agent
|
||||||
|
packager: deb
|
||||||
|
scripts:
|
||||||
|
postinstall: ../supplemental/debian/postinstall.sh
|
||||||
|
preremove: ../supplemental/debian/prerm.sh
|
||||||
|
postremove: ../supplemental/debian/postrm.sh
|
||||||
|
deb:
|
||||||
|
predepends:
|
||||||
|
- adduser
|
||||||
|
- debconf
|
||||||
|
scripts:
|
||||||
|
templates: ../supplemental/debian/templates
|
||||||
|
# Currently broken due to a bug in goreleaser
|
||||||
|
# https://github.com/goreleaser/goreleaser/issues/5487
|
||||||
|
#config: ../supplemental/debian/config.sh
|
||||||
|
|
||||||
|
release:
|
||||||
|
draft: true
|
||||||
|
|
||||||
changelog:
|
changelog:
|
||||||
disable: true
|
disable: true
|
||||||
|
|||||||
@@ -27,10 +27,10 @@ build-web-ui:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
build-agent: tidy
|
build-agent: tidy
|
||||||
CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go build -o ./build/beszel-agent_$(OS)_$(ARCH) -ldflags "-w -s" beszel/cmd/agent
|
GOOS=$(OS) GOARCH=$(ARCH) go build -o ./build/beszel-agent_$(OS)_$(ARCH) -ldflags "-w -s" beszel/cmd/agent
|
||||||
|
|
||||||
build-hub: tidy $(if $(filter false,$(SKIP_WEB)),build-web-ui)
|
build-hub: tidy $(if $(filter false,$(SKIP_WEB)),build-web-ui)
|
||||||
CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go build -o ./build/beszel_$(OS)_$(ARCH) -ldflags "-w -s" beszel/cmd/hub
|
GOOS=$(OS) GOARCH=$(ARCH) go build -o ./build/beszel_$(OS)_$(ARCH) -ldflags "-w -s" beszel/cmd/hub
|
||||||
|
|
||||||
build: build-agent build-hub
|
build: build-agent build-hub
|
||||||
|
|
||||||
@@ -48,6 +48,7 @@ dev-server: generate-locales
|
|||||||
cd ./site && npm run dev; \
|
cd ./site && npm run dev; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dev-hub: export ENV=dev
|
||||||
dev-hub:
|
dev-hub:
|
||||||
mkdir -p ./site/dist && touch ./site/dist/index.html
|
mkdir -p ./site/dist && touch ./site/dist/index.html
|
||||||
@if command -v entr >/dev/null 2>&1; then \
|
@if command -v entr >/dev/null 2>&1; then \
|
||||||
|
|||||||
@@ -3,39 +3,134 @@ package main
|
|||||||
import (
|
import (
|
||||||
"beszel"
|
"beszel"
|
||||||
"beszel/internal/agent"
|
"beszel/internal/agent"
|
||||||
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"golang.org/x/crypto/ssh"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
// cli options
|
||||||
// handle flags / subcommands
|
type cmdOptions struct {
|
||||||
if len(os.Args) > 1 {
|
key string // key is the public key(s) for SSH authentication.
|
||||||
switch os.Args[1] {
|
addr string // addr is the address or port to listen on.
|
||||||
case "-v":
|
}
|
||||||
fmt.Println(beszel.AppName+"-agent", beszel.Version)
|
|
||||||
case "update":
|
// parseFlags parses the command line flags and populates the config struct.
|
||||||
agent.Update()
|
func (opts *cmdOptions) parseFlags() {
|
||||||
}
|
flag.StringVar(&opts.key, "key", "", "Public key(s) for SSH authentication")
|
||||||
|
flag.StringVar(&opts.addr, "addr", "", "Address or port to listen on")
|
||||||
|
|
||||||
|
flag.Usage = func() {
|
||||||
|
fmt.Printf("Usage: %s [options] [subcommand]\n", os.Args[0])
|
||||||
|
fmt.Println("\nOptions:")
|
||||||
|
flag.PrintDefaults()
|
||||||
|
fmt.Println("\nSubcommands:")
|
||||||
|
fmt.Println(" version Display the version")
|
||||||
|
fmt.Println(" help Display this help message")
|
||||||
|
fmt.Println(" update Update the agent to the latest version")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// handleSubcommand handles subcommands such as version, help, and update.
|
||||||
|
// It returns true if a subcommand was handled, false otherwise.
|
||||||
|
func handleSubcommand() bool {
|
||||||
|
if len(os.Args) <= 1 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
switch os.Args[1] {
|
||||||
|
case "version", "-v":
|
||||||
|
fmt.Println(beszel.AppName+"-agent", beszel.Version)
|
||||||
|
os.Exit(0)
|
||||||
|
case "help":
|
||||||
|
flag.Usage()
|
||||||
|
os.Exit(0)
|
||||||
|
case "update":
|
||||||
|
agent.Update()
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
return false
|
||||||
var pubKey []byte
|
}
|
||||||
if pubKeyEnv, exists := os.LookupEnv("KEY"); exists {
|
|
||||||
pubKey = []byte(pubKeyEnv)
|
// loadPublicKeys loads the public keys from the command line flag, environment variable, or key file.
|
||||||
} else {
|
func (opts *cmdOptions) loadPublicKeys() ([]ssh.PublicKey, error) {
|
||||||
log.Fatal("KEY environment variable is not set")
|
// Try command line flag first
|
||||||
}
|
if opts.key != "" {
|
||||||
|
return agent.ParseKeys(opts.key)
|
||||||
addr := ":45876"
|
}
|
||||||
if portEnvVar, exists := os.LookupEnv("PORT"); exists {
|
|
||||||
// allow passing an address in the form of "127.0.0.1:45876"
|
// Try environment variable
|
||||||
if !strings.Contains(portEnvVar, ":") {
|
if key, ok := agent.GetEnv("KEY"); ok && key != "" {
|
||||||
portEnvVar = ":" + portEnvVar
|
return agent.ParseKeys(key)
|
||||||
}
|
}
|
||||||
addr = portEnvVar
|
|
||||||
}
|
// Try key file
|
||||||
|
keyFile, ok := agent.GetEnv("KEY_FILE")
|
||||||
agent.NewAgent().Run(pubKey, addr)
|
if !ok {
|
||||||
|
return nil, fmt.Errorf("no key provided: must set -key flag, KEY env var, or KEY_FILE env var. Use 'beszel-agent help' for usage")
|
||||||
|
}
|
||||||
|
|
||||||
|
pubKey, err := os.ReadFile(keyFile)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to read key file: %w", err)
|
||||||
|
}
|
||||||
|
return agent.ParseKeys(string(pubKey))
|
||||||
|
}
|
||||||
|
|
||||||
|
// getAddress gets the address to listen on from the command line flag, environment variable, or default value.
|
||||||
|
func (opts *cmdOptions) getAddress() string {
|
||||||
|
// Try command line flag first
|
||||||
|
if opts.addr != "" {
|
||||||
|
return opts.addr
|
||||||
|
}
|
||||||
|
// Try environment variables
|
||||||
|
if addr, ok := agent.GetEnv("ADDR"); ok && addr != "" {
|
||||||
|
return addr
|
||||||
|
}
|
||||||
|
// Legacy PORT environment variable support
|
||||||
|
if port, ok := agent.GetEnv("PORT"); ok && port != "" {
|
||||||
|
return port
|
||||||
|
}
|
||||||
|
return ":45876"
|
||||||
|
}
|
||||||
|
|
||||||
|
// getNetwork returns the network type to use for the server.
|
||||||
|
func (opts *cmdOptions) getNetwork() string {
|
||||||
|
if network, _ := agent.GetEnv("NETWORK"); network != "" {
|
||||||
|
return network
|
||||||
|
}
|
||||||
|
if strings.HasPrefix(opts.addr, "/") {
|
||||||
|
return "unix"
|
||||||
|
}
|
||||||
|
return "tcp"
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
var opts cmdOptions
|
||||||
|
opts.parseFlags()
|
||||||
|
|
||||||
|
if handleSubcommand() {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
flag.Parse()
|
||||||
|
|
||||||
|
opts.addr = opts.getAddress()
|
||||||
|
|
||||||
|
var serverConfig agent.ServerOptions
|
||||||
|
var err error
|
||||||
|
serverConfig.Keys, err = opts.loadPublicKeys()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal("Failed to load public keys:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
serverConfig.Addr = opts.addr
|
||||||
|
serverConfig.Network = opts.getNetwork()
|
||||||
|
|
||||||
|
agent := agent.NewAgent()
|
||||||
|
if err := agent.StartServer(serverConfig); err != nil {
|
||||||
|
log.Fatal("Failed to start server:", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
302
beszel/cmd/agent/agent_test.go
Normal file
302
beszel/cmd/agent/agent_test.go
Normal file
@@ -0,0 +1,302 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto/ed25519"
|
||||||
|
"flag"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
"golang.org/x/crypto/ssh"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestGetAddress(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
opts cmdOptions
|
||||||
|
envVars map[string]string
|
||||||
|
expected string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "default port when no config",
|
||||||
|
opts: cmdOptions{},
|
||||||
|
expected: ":45876",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "use address from flag",
|
||||||
|
opts: cmdOptions{
|
||||||
|
addr: "8080",
|
||||||
|
},
|
||||||
|
expected: "8080",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "use unix socket from flag",
|
||||||
|
opts: cmdOptions{
|
||||||
|
addr: "/tmp/beszel.sock",
|
||||||
|
},
|
||||||
|
expected: "/tmp/beszel.sock",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "use ADDR env var",
|
||||||
|
opts: cmdOptions{},
|
||||||
|
envVars: map[string]string{
|
||||||
|
"ADDR": "1.2.3.4:9090",
|
||||||
|
},
|
||||||
|
expected: "1.2.3.4:9090",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "use legacy PORT env var",
|
||||||
|
opts: cmdOptions{},
|
||||||
|
envVars: map[string]string{
|
||||||
|
"PORT": "7070",
|
||||||
|
},
|
||||||
|
expected: "7070",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "use unix socket from env var",
|
||||||
|
opts: cmdOptions{
|
||||||
|
addr: "",
|
||||||
|
},
|
||||||
|
envVars: map[string]string{
|
||||||
|
"ADDR": "/tmp/beszel.sock",
|
||||||
|
},
|
||||||
|
expected: "/tmp/beszel.sock",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "flag takes precedence over env vars",
|
||||||
|
opts: cmdOptions{
|
||||||
|
addr: ":8080",
|
||||||
|
},
|
||||||
|
envVars: map[string]string{
|
||||||
|
"ADDR": ":9090",
|
||||||
|
"PORT": "7070",
|
||||||
|
},
|
||||||
|
expected: ":8080",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
// Setup environment
|
||||||
|
for k, v := range tt.envVars {
|
||||||
|
t.Setenv(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
|
addr := tt.opts.getAddress()
|
||||||
|
assert.Equal(t, tt.expected, addr)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLoadPublicKeys(t *testing.T) {
|
||||||
|
// Generate a test key
|
||||||
|
_, priv, err := ed25519.GenerateKey(nil)
|
||||||
|
require.NoError(t, err)
|
||||||
|
signer, err := ssh.NewSignerFromKey(priv)
|
||||||
|
require.NoError(t, err)
|
||||||
|
pubKey := ssh.MarshalAuthorizedKey(signer.PublicKey())
|
||||||
|
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
opts cmdOptions
|
||||||
|
envVars map[string]string
|
||||||
|
setupFiles map[string][]byte
|
||||||
|
wantErr bool
|
||||||
|
errContains string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "load key from flag",
|
||||||
|
opts: cmdOptions{
|
||||||
|
key: string(pubKey),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "load key from env var",
|
||||||
|
envVars: map[string]string{
|
||||||
|
"KEY": string(pubKey),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "load key from file",
|
||||||
|
envVars: map[string]string{
|
||||||
|
"KEY_FILE": "testkey.pub",
|
||||||
|
},
|
||||||
|
setupFiles: map[string][]byte{
|
||||||
|
"testkey.pub": pubKey,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "error when no key provided",
|
||||||
|
wantErr: true,
|
||||||
|
errContains: "no key provided",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "error on invalid key file",
|
||||||
|
envVars: map[string]string{
|
||||||
|
"KEY_FILE": "nonexistent.pub",
|
||||||
|
},
|
||||||
|
wantErr: true,
|
||||||
|
errContains: "failed to read key file",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "error on invalid key data",
|
||||||
|
opts: cmdOptions{
|
||||||
|
key: "invalid-key-data",
|
||||||
|
},
|
||||||
|
wantErr: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
// Create a temporary directory for test files
|
||||||
|
if len(tt.setupFiles) > 0 {
|
||||||
|
tmpDir := t.TempDir()
|
||||||
|
for name, content := range tt.setupFiles {
|
||||||
|
path := filepath.Join(tmpDir, name)
|
||||||
|
err := os.WriteFile(path, content, 0600)
|
||||||
|
require.NoError(t, err)
|
||||||
|
if tt.envVars != nil {
|
||||||
|
tt.envVars["KEY_FILE"] = path
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set up environment
|
||||||
|
for k, v := range tt.envVars {
|
||||||
|
t.Setenv(k, v)
|
||||||
|
}
|
||||||
|
|
||||||
|
keys, err := tt.opts.loadPublicKeys()
|
||||||
|
if tt.wantErr {
|
||||||
|
assert.Error(t, err)
|
||||||
|
if tt.errContains != "" {
|
||||||
|
assert.Contains(t, err.Error(), tt.errContains)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.Len(t, keys, 1)
|
||||||
|
assert.Equal(t, signer.PublicKey().Type(), keys[0].Type())
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestGetNetwork(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
opts cmdOptions
|
||||||
|
envVars map[string]string
|
||||||
|
expected string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "NETWORK env var",
|
||||||
|
envVars: map[string]string{
|
||||||
|
"NETWORK": "tcp4",
|
||||||
|
},
|
||||||
|
expected: "tcp4",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "only port",
|
||||||
|
opts: cmdOptions{addr: "8080"},
|
||||||
|
expected: "tcp",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "ipv4 address",
|
||||||
|
opts: cmdOptions{addr: "1.2.3.4:8080"},
|
||||||
|
expected: "tcp",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "ipv6 address",
|
||||||
|
opts: cmdOptions{addr: "[2001:db8::1]:8080"},
|
||||||
|
expected: "tcp",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "unix network",
|
||||||
|
opts: cmdOptions{addr: "/tmp/beszel.sock"},
|
||||||
|
expected: "unix",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "env var network",
|
||||||
|
opts: cmdOptions{addr: ":8080"},
|
||||||
|
envVars: map[string]string{"NETWORK": "tcp4"},
|
||||||
|
expected: "tcp4",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
// Setup environment
|
||||||
|
for k, v := range tt.envVars {
|
||||||
|
t.Setenv(k, v)
|
||||||
|
}
|
||||||
|
network := tt.opts.getNetwork()
|
||||||
|
assert.Equal(t, tt.expected, network)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestParseFlags(t *testing.T) {
|
||||||
|
// Save original command line arguments and restore after test
|
||||||
|
oldArgs := os.Args
|
||||||
|
defer func() {
|
||||||
|
os.Args = oldArgs
|
||||||
|
flag.CommandLine = flag.NewFlagSet(os.Args[0], flag.ExitOnError)
|
||||||
|
}()
|
||||||
|
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
args []string
|
||||||
|
expected cmdOptions
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "no flags",
|
||||||
|
args: []string{"cmd"},
|
||||||
|
expected: cmdOptions{
|
||||||
|
key: "",
|
||||||
|
addr: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "key flag only",
|
||||||
|
args: []string{"cmd", "-key", "testkey"},
|
||||||
|
expected: cmdOptions{
|
||||||
|
key: "testkey",
|
||||||
|
addr: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "addr flag only",
|
||||||
|
args: []string{"cmd", "-addr", ":8080"},
|
||||||
|
expected: cmdOptions{
|
||||||
|
key: "",
|
||||||
|
addr: ":8080",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "both flags",
|
||||||
|
args: []string{"cmd", "-key", "testkey", "-addr", ":8080"},
|
||||||
|
expected: cmdOptions{
|
||||||
|
key: "testkey",
|
||||||
|
addr: ":8080",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
// Reset flags for each test
|
||||||
|
flag.CommandLine = flag.NewFlagSet(tt.args[0], flag.ExitOnError)
|
||||||
|
os.Args = tt.args
|
||||||
|
|
||||||
|
var opts cmdOptions
|
||||||
|
opts.parseFlags()
|
||||||
|
flag.Parse()
|
||||||
|
|
||||||
|
assert.Equal(t, tt.expected, opts)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,29 +1,10 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"beszel"
|
|
||||||
"beszel/internal/hub"
|
"beszel/internal/hub"
|
||||||
|
|
||||||
_ "beszel/migrations"
|
_ "beszel/migrations"
|
||||||
|
|
||||||
"github.com/pocketbase/pocketbase"
|
|
||||||
"github.com/spf13/cobra"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
app := pocketbase.NewWithConfig(pocketbase.Config{
|
hub.NewHub().Run()
|
||||||
DefaultDataDir: beszel.AppName + "_data",
|
|
||||||
})
|
|
||||||
app.RootCmd.Version = beszel.Version
|
|
||||||
app.RootCmd.Use = beszel.AppName
|
|
||||||
app.RootCmd.Short = ""
|
|
||||||
|
|
||||||
// add update command
|
|
||||||
app.RootCmd.AddCommand(&cobra.Command{
|
|
||||||
Use: "update",
|
|
||||||
Short: "Update " + beszel.AppName + " to the latest version",
|
|
||||||
Run: hub.Update,
|
|
||||||
})
|
|
||||||
|
|
||||||
hub.NewHub(app).Run()
|
|
||||||
}
|
}
|
||||||
|
|||||||
104
beszel/go.mod
104
beszel/go.mod
@@ -1,77 +1,72 @@
|
|||||||
module beszel
|
module beszel
|
||||||
|
|
||||||
go 1.23
|
go 1.24.0
|
||||||
|
|
||||||
toolchain go1.23.2
|
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/blang/semver v3.5.1+incompatible
|
github.com/blang/semver v3.5.1+incompatible
|
||||||
github.com/containrrr/shoutrrr v0.8.0
|
github.com/containrrr/shoutrrr v0.8.0
|
||||||
github.com/gliderlabs/ssh v0.3.8
|
github.com/gliderlabs/ssh v0.3.8
|
||||||
github.com/goccy/go-json v0.10.4
|
github.com/goccy/go-json v0.10.5
|
||||||
github.com/pocketbase/dbx v1.11.0
|
github.com/pocketbase/dbx v1.11.0
|
||||||
github.com/pocketbase/pocketbase v0.23.9
|
github.com/pocketbase/pocketbase v0.25.0
|
||||||
github.com/rhysd/go-github-selfupdate v1.2.3
|
github.com/rhysd/go-github-selfupdate v1.2.3
|
||||||
github.com/shirou/gopsutil/v4 v4.24.11
|
github.com/shirou/gopsutil/v4 v4.25.1
|
||||||
github.com/spf13/cast v1.7.0
|
github.com/spf13/cast v1.7.1
|
||||||
github.com/spf13/cobra v1.8.1
|
github.com/spf13/cobra v1.8.1
|
||||||
golang.org/x/crypto v0.31.0
|
github.com/stretchr/testify v1.10.0
|
||||||
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67
|
golang.org/x/crypto v0.32.0
|
||||||
|
golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c
|
||||||
gopkg.in/yaml.v3 v3.0.1
|
gopkg.in/yaml.v3 v3.0.1
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/AlecAivazis/survey/v2 v2.3.7 // indirect
|
|
||||||
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect
|
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect
|
||||||
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
|
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2 v1.32.6 // indirect
|
github.com/aws/aws-sdk-go-v2 v1.36.1 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7 // indirect
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.28.6 // indirect
|
github.com/aws/aws-sdk-go-v2/config v1.29.6 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.17.47 // indirect
|
github.com/aws/aws-sdk-go-v2/credentials v1.17.59 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21 // indirect
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.43 // indirect
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.59 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.25 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.6 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.6 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.6 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.71.0 // indirect
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.75.4 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.24.7 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sso v1.24.15 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.6 // indirect
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.33.2 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sts v1.33.14 // indirect
|
||||||
github.com/aws/smithy-go v1.22.1 // indirect
|
github.com/aws/smithy-go v1.22.2 // indirect
|
||||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
||||||
github.com/disintegration/imaging v1.6.2 // indirect
|
github.com/disintegration/imaging v1.6.2 // indirect
|
||||||
github.com/domodwyer/mailyak/v3 v3.6.2 // indirect
|
github.com/domodwyer/mailyak/v3 v3.6.2 // indirect
|
||||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||||
github.com/ebitengine/purego v0.8.1 // indirect
|
github.com/ebitengine/purego v0.8.2 // indirect
|
||||||
github.com/fatih/color v1.18.0 // indirect
|
github.com/fatih/color v1.18.0 // indirect
|
||||||
github.com/gabriel-vasile/mimetype v1.4.7 // indirect
|
github.com/gabriel-vasile/mimetype v1.4.8 // indirect
|
||||||
github.com/ganigeorgiev/fexpr v0.4.1 // indirect
|
github.com/ganigeorgiev/fexpr v0.4.1 // indirect
|
||||||
github.com/go-ole/go-ole v1.3.0 // indirect
|
github.com/go-ole/go-ole v1.3.0 // indirect
|
||||||
github.com/go-ozzo/ozzo-validation/v4 v4.3.0 // indirect
|
github.com/go-ozzo/ozzo-validation/v4 v4.3.0 // indirect
|
||||||
github.com/golang-jwt/jwt/v4 v4.5.1 // indirect
|
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
|
||||||
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
|
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
|
||||||
github.com/google/go-github/v30 v30.1.0 // indirect
|
github.com/google/go-github/v30 v30.1.0 // indirect
|
||||||
github.com/google/go-querystring v1.1.0 // indirect
|
github.com/google/go-querystring v1.1.0 // indirect
|
||||||
github.com/google/uuid v1.6.0 // indirect
|
github.com/google/uuid v1.6.0 // indirect
|
||||||
github.com/googleapis/gax-go/v2 v2.14.0 // indirect
|
github.com/googleapis/gax-go/v2 v2.14.1 // indirect
|
||||||
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
|
|
||||||
github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf // indirect
|
github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf // indirect
|
||||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
|
|
||||||
github.com/lufia/plan9stats v0.0.0-20240909124753-873cd0166683 // indirect
|
github.com/lufia/plan9stats v0.0.0-20240909124753-873cd0166683 // indirect
|
||||||
github.com/mattn/go-colorable v0.1.13 // indirect
|
github.com/mattn/go-colorable v0.1.14 // indirect
|
||||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
|
|
||||||
github.com/ncruces/go-strftime v0.1.9 // indirect
|
github.com/ncruces/go-strftime v0.1.9 // indirect
|
||||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||||
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
|
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
||||||
github.com/spf13/pflag v1.0.5 // indirect
|
github.com/spf13/pflag v1.0.6 // indirect
|
||||||
github.com/tcnksm/go-gitconfig v0.1.2 // indirect
|
github.com/tcnksm/go-gitconfig v0.1.2 // indirect
|
||||||
github.com/tklauser/go-sysconf v0.3.14 // indirect
|
github.com/tklauser/go-sysconf v0.3.14 // indirect
|
||||||
github.com/tklauser/numcpus v0.9.0 // indirect
|
github.com/tklauser/numcpus v0.9.0 // indirect
|
||||||
@@ -79,23 +74,20 @@ require (
|
|||||||
github.com/yusufpapurcu/wmi v1.2.4 // indirect
|
github.com/yusufpapurcu/wmi v1.2.4 // indirect
|
||||||
go.opencensus.io v0.24.0 // indirect
|
go.opencensus.io v0.24.0 // indirect
|
||||||
gocloud.dev v0.40.0 // indirect
|
gocloud.dev v0.40.0 // indirect
|
||||||
golang.org/x/image v0.23.0 // indirect
|
golang.org/x/image v0.24.0 // indirect
|
||||||
golang.org/x/net v0.32.0 // indirect
|
golang.org/x/net v0.34.0 // indirect
|
||||||
golang.org/x/oauth2 v0.24.0 // indirect
|
golang.org/x/oauth2 v0.26.0 // indirect
|
||||||
golang.org/x/sync v0.10.0 // indirect
|
golang.org/x/sync v0.11.0 // indirect
|
||||||
golang.org/x/sys v0.28.0 // indirect
|
golang.org/x/sys v0.30.0 // indirect
|
||||||
golang.org/x/term v0.27.0 // indirect
|
golang.org/x/term v0.29.0 // indirect
|
||||||
golang.org/x/text v0.21.0 // indirect
|
golang.org/x/text v0.22.0 // indirect
|
||||||
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
|
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
|
||||||
google.golang.org/api v0.212.0 // indirect
|
google.golang.org/api v0.220.0 // indirect
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20241216192217-9240e9c98484 // indirect
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20250204164813-702378808489 // indirect
|
||||||
google.golang.org/grpc v1.69.0 // indirect
|
google.golang.org/grpc v1.70.0 // indirect
|
||||||
google.golang.org/protobuf v1.36.0 // indirect
|
google.golang.org/protobuf v1.36.4 // indirect
|
||||||
modernc.org/gc/v3 v3.0.0-20241213165251-3bc300f6d0c9 // indirect
|
modernc.org/libc v1.55.3 // indirect
|
||||||
modernc.org/libc v1.61.4 // indirect
|
modernc.org/mathutil v1.7.1 // indirect
|
||||||
modernc.org/mathutil v1.6.0 // indirect
|
modernc.org/memory v1.8.2 // indirect
|
||||||
modernc.org/memory v1.8.0 // indirect
|
modernc.org/sqlite v1.34.5 // indirect
|
||||||
modernc.org/sqlite v1.34.2 // indirect
|
|
||||||
modernc.org/strutil v1.2.0 // indirect
|
|
||||||
modernc.org/token v1.1.0 // indirect
|
|
||||||
)
|
)
|
||||||
|
|||||||
294
beszel/go.sum
294
beszel/go.sum
@@ -1,10 +1,10 @@
|
|||||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||||
cloud.google.com/go v0.115.0 h1:CnFSK6Xo3lDYRoBKEcAtia6VSC837/ZkJuRduSFnr14=
|
cloud.google.com/go v0.115.0 h1:CnFSK6Xo3lDYRoBKEcAtia6VSC837/ZkJuRduSFnr14=
|
||||||
cloud.google.com/go v0.115.0/go.mod h1:8jIM5vVgoAEoiVxQ/O4BFTfHqulPZgs/ufEzMcFMdWU=
|
cloud.google.com/go v0.115.0/go.mod h1:8jIM5vVgoAEoiVxQ/O4BFTfHqulPZgs/ufEzMcFMdWU=
|
||||||
cloud.google.com/go/auth v0.13.0 h1:8Fu8TZy167JkW8Tj3q7dIkr2v4cndv41ouecJx0PAHs=
|
cloud.google.com/go/auth v0.14.1 h1:AwoJbzUdxA/whv1qj3TLKwh3XX5sikny2fc40wUl+h0=
|
||||||
cloud.google.com/go/auth v0.13.0/go.mod h1:COOjD9gwfKNKz+IIduatIhYJQIc0mG3H102r/EMxX6Q=
|
cloud.google.com/go/auth v0.14.1/go.mod h1:4JHUxlGXisL0AW8kXPtUF6ztuOksyfUQNFjfsOCXkPM=
|
||||||
cloud.google.com/go/auth/oauth2adapt v0.2.6 h1:V6a6XDu2lTwPZWOawrAa9HUK+DB2zfJyTuciBG5hFkU=
|
cloud.google.com/go/auth/oauth2adapt v0.2.7 h1:/Lc7xODdqcEw8IrZ9SvwnlLX6j9FHQM74z6cBk9Rw6M=
|
||||||
cloud.google.com/go/auth/oauth2adapt v0.2.6/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8=
|
cloud.google.com/go/auth/oauth2adapt v0.2.7/go.mod h1:NTbTTzfvPl1Y3V1nPpOgl2w6d/FjO7NNUQaWSox6ZMc=
|
||||||
cloud.google.com/go/compute v1.14.0 h1:hfm2+FfxVmnRlh6LpB7cg1ZNU+5edAHmW679JePztk0=
|
cloud.google.com/go/compute v1.14.0 h1:hfm2+FfxVmnRlh6LpB7cg1ZNU+5edAHmW679JePztk0=
|
||||||
cloud.google.com/go/compute/metadata v0.6.0 h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4j01OwKxG9I=
|
cloud.google.com/go/compute/metadata v0.6.0 h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4j01OwKxG9I=
|
||||||
cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg=
|
cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg=
|
||||||
@@ -14,11 +14,7 @@ cloud.google.com/go/storage v1.43.0 h1:CcxnSohZwizt4LCzQHWvBf1/kvtHUn7gk9QERXPyX
|
|||||||
cloud.google.com/go/storage v1.43.0/go.mod h1:ajvxEa7WmZS1PxvKRq4bq0tFT3vMd502JwstCcYv0Q0=
|
cloud.google.com/go/storage v1.43.0/go.mod h1:ajvxEa7WmZS1PxvKRq4bq0tFT3vMd502JwstCcYv0Q0=
|
||||||
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
|
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
|
||||||
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
|
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
|
||||||
github.com/AlecAivazis/survey/v2 v2.3.7 h1:6I/u8FvytdGsgonrYsVn2t8t4QiRnh6QSTqkkhIiSjQ=
|
|
||||||
github.com/AlecAivazis/survey/v2 v2.3.7/go.mod h1:xUTIdE4KCOIjsBAE1JYsUPoCqYdZ1reCfTwbto0Fduo=
|
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s=
|
|
||||||
github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w=
|
|
||||||
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
|
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
|
||||||
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
|
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
|
github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
|
||||||
@@ -26,44 +22,44 @@ github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3d
|
|||||||
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
|
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
|
||||||
github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU=
|
github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU=
|
||||||
github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
|
github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
|
||||||
github.com/aws/aws-sdk-go-v2 v1.32.6 h1:7BokKRgRPuGmKkFMhEg/jSul+tB9VvXhcViILtfG8b4=
|
github.com/aws/aws-sdk-go-v2 v1.36.1 h1:iTDl5U6oAhkNPba0e1t1hrwAo02ZMqbrGq4k5JBWM5E=
|
||||||
github.com/aws/aws-sdk-go-v2 v1.32.6/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U=
|
github.com/aws/aws-sdk-go-v2 v1.36.1/go.mod h1:5PMILGVKiW32oDzjj6RU52yrNrDPUHcbZQYr1sM7qmM=
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7 h1:lL7IfaFzngfx0ZwUGOZdsFFnQ5uLvR0hWqqhyE7Q9M8=
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 h1:zAxi9p3wsZMIaVCdoiQp2uZ9k1LsZvmAnoTBeZPXom0=
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7/go.mod h1:QraP0UcVlQJsmHfioCrveWOC1nbiWUl3ej08h4mXWoc=
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8/go.mod h1:3XkePX5dSaxveLAYY7nsbsZZrKxCyEuE5pM4ziFxyGg=
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.28.6 h1:D89IKtGrs/I3QXOLNTH93NJYtDhm8SYa9Q5CsPShmyo=
|
github.com/aws/aws-sdk-go-v2/config v1.29.6 h1:fqgqEKK5HaZVWLQoLiC9Q+xDlSp+1LYidp6ybGE2OGg=
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.28.6/go.mod h1:GDzxJ5wyyFSCoLkS+UhGB0dArhb9mI+Co4dHtoTxbko=
|
github.com/aws/aws-sdk-go-v2/config v1.29.6/go.mod h1:Ft+WLODzDQmCTHDvqAH1JfC2xxbZ0MxpZAcJqmE1LTQ=
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.17.47 h1:48bA+3/fCdi2yAwVt+3COvmatZ6jUDNkDTIsqDiMUdw=
|
github.com/aws/aws-sdk-go-v2/credentials v1.17.59 h1:9btwmrt//Q6JcSdgJOLI98sdr5p7tssS9yAsGe8aKP4=
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.17.47/go.mod h1:+KdckOejLW3Ks3b0E3b5rHsr2f9yuORBum0WPnE5o5w=
|
github.com/aws/aws-sdk-go-v2/credentials v1.17.59/go.mod h1:NM8fM6ovI3zak23UISdWidyZuI1ghNe2xjzUZAyT+08=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21 h1:AmoU1pziydclFT/xRV+xXE/Vb8fttJCLRPv8oAkprc0=
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28 h1:KwsodFKVQTlI5EyhRSugALzsV6mG/SGrdjlMXSZSdso=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.21/go.mod h1:AjUdLYe4Tgs6kpH4Bv7uMZo7pottoyHMn4eTcIcneaY=
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28/go.mod h1:EY3APf9MzygVhKuPXAc5H+MkGb8k/DOSQjWS0LgkKqI=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.43 h1:iLdpkYZ4cXIQMO7ud+cqMWR1xK5ESbt1rvN77tRi1BY=
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.59 h1:5Vsrfdlf9KQP3leGX1dD7VwZq/3HAerEFoXAII4t6zo=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.43/go.mod h1:OgbsKPAswXDd5kxnR4vZov69p3oYjbvUyIRBAAV0y9o=
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.59/go.mod h1:7XTNs3NYApJjkx6A2Fk9qq23qBuBnIU58k3fKC2Fr1I=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 h1:s/fF4+yDQDoElYhfIVvSNyeCydfbuTKzhxSXDXCPasU=
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 h1:BjUcr3X3K0wZPGFg2bxOWW3VPN8rkE3/61zhP+IHviA=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25/go.mod h1:IgPfDv5jqFIzQSNbUEMoitNooSMXjRSDkhXv8jiROvU=
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32/go.mod h1:80+OGC/bgzzFFTUmcuwD0lb4YutwQeKLFpmt6hoWapU=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 h1:ZntTCl5EsYnhN/IygQEUugpdwbhdkom9uHcbCftiGgA=
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 h1:m1GeXHVMJsRsUAqG6HjZWx9dj7F5TR+cF1bjyfYyBd4=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25/go.mod h1:DBdPrgeocww+CSl1C8cEV8PN1mHMBhuCDLpXezyvWkE=
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32/go.mod h1:IitoQxGfaKdVLNg0hD8/DXmAqNy0H4K2H2Sf91ti8sI=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ=
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 h1:Pg9URiobXy85kgFev3og2CuOZ8JZUBENF+dcgWBaYNk=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc=
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.25 h1:r67ps7oHCYnflpgDy2LZU0MAQtQbYIOqNNnqGO6xQkE=
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32 h1:OIHj/nAhVzIXGzbAE+4XmZ8FPvro3THr6NlqErJc3wY=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.25/go.mod h1:GrGY+Q4fIokYLtjCVB/aFfCVL6hhGUFl8inD18fDalE=
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32/go.mod h1:LiBEsDo34OJXqdDlRGsilhlIiXR7DL+6Cx2f4p1EgzI=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y=
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 h1:D4oz8/CzT9bAEYtVhSBmFj2dNOtaHOtMKc2vHBwYizA=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE=
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2/go.mod h1:Za3IHqTQ+yNcRHxu1OFucBh0ACZT4j4VQFF0BqpZcLY=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.6 h1:HCpPsWqmYQieU7SS6E9HXfdAMSud0pteVXieJmcpIRI=
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.6 h1:cCBJaT7EeEojpJ4s7wTDbhZlHVJOgNHN7iw6qVurGaw=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.6/go.mod h1:ngUiVRCco++u+soRRVBIvBZxSMMvOVMXA4PJ36JLfSw=
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.6/go.mod h1:WYH1ABybY7JK9TITPnk6ZlP7gQB8psI4c9qDmMsnLSA=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6 h1:50+XsN70RS7dwJ2CkVNXzj7U2L1HKP8nqTd3XWEXBN4=
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 h1:SYVGSFQHlchIcy6e7x12bsrxClCXSP5et8cqVhL8cuw=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.6/go.mod h1:WqgLmwY7so32kG01zD8CPTJWVWM+TzJoOVHwTg4aPug=
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13/go.mod h1:kizuDaLX37bG5WZaoxGPQR/LNFXpxp0vsUnqfkWXfNE=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.6 h1:BbGDtTi0T1DYlmjBiCr/le3wzhA37O8QTC5/Ab8+EXk=
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13 h1:OBsrtam3rk8NfBEq7OLOMm5HtQ9Yyw32X4UQMya/wjw=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.6/go.mod h1:hLMJt7Q8ePgViKupeymbqI0la+t9/iYFBjxQCFwuAwI=
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13/go.mod h1:3U4gFA5pmoCOja7aq4nSaIAGbaOHv2Yl2ug018cmC+Q=
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.71.0 h1:nyuzXooUNJexRT0Oy0UQY6AhOzxPxhtt4DcBIHyCnmw=
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.75.4 h1:DJYjOvNgC30JAcDCRmtQHoYK4trc7XetDXRTEAReGKA=
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.71.0/go.mod h1:sT/iQz8JK3u/5gZkT+Hmr7GzVZehUMkRZpOaAwYXeGY=
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.75.4/go.mod h1:KuLNrwYJFaC2AVZ+CVVc12k9NyqwgWsoNNHjwqF6QNk=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.24.7 h1:rLnYAfXQ3YAccocshIH5mzNNwZBkBo+bP6EhIxak6Hw=
|
github.com/aws/aws-sdk-go-v2/service/sso v1.24.15 h1:/eE3DogBjYlvlbhd2ssWyeuovWunHLxfgw3s/OJa4GQ=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.24.7/go.mod h1:ZHtuQJ6t9A/+YDuxOLnbryAmITtr8UysSny3qcyvJTc=
|
github.com/aws/aws-sdk-go-v2/service/sso v1.24.15/go.mod h1:2PCJYpi7EKeA5SkStAmZlF6fi0uUABuhtF8ILHjGc3Y=
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.6 h1:JnhTZR3PiYDNKlXy50/pNeix9aGMo6lLpXwJ1mw8MD4=
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14 h1:M/zwXiL2iXUrHputuXgmO94TVNmcenPHxgLXLutodKE=
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.6/go.mod h1:URronUEGfXZN1VpdktPSD1EkAL9mfrV+2F4sjH38qOY=
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14/go.mod h1:RVwIw3y/IqxC2YEXSIkAzRDdEU1iRabDPaYjpGCbCGQ=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.33.2 h1:s4074ZO1Hk8qv65GqNXqDjmkf4HSQqJukaLuuW0TpDA=
|
github.com/aws/aws-sdk-go-v2/service/sts v1.33.14 h1:TzeR06UCMUq+KA3bDkujxK1GVGy+G8qQN/QVYzGLkQE=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.33.2/go.mod h1:mVggCnIWoM09jP71Wh+ea7+5gAp53q+49wDFs1SW5z8=
|
github.com/aws/aws-sdk-go-v2/service/sts v1.33.14/go.mod h1:dspXf/oYWGWo6DEvj98wpaTeqt5+DMidZD0A9BYTizc=
|
||||||
github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro=
|
github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ=
|
||||||
github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
|
github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
|
||||||
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
|
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
|
||||||
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
|
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
@@ -72,8 +68,6 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX
|
|||||||
github.com/containrrr/shoutrrr v0.8.0 h1:mfG2ATzIS7NR2Ec6XL+xyoHzN97H8WPjir8aYzJUSec=
|
github.com/containrrr/shoutrrr v0.8.0 h1:mfG2ATzIS7NR2Ec6XL+xyoHzN97H8WPjir8aYzJUSec=
|
||||||
github.com/containrrr/shoutrrr v0.8.0/go.mod h1:ioyQAyu1LJY6sILuNyKaQaw+9Ttik5QePU8atnAdO2o=
|
github.com/containrrr/shoutrrr v0.8.0/go.mod h1:ioyQAyu1LJY6sILuNyKaQaw+9Ttik5QePU8atnAdO2o=
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||||
github.com/creack/pty v1.1.17 h1:QeVUsEDNrLBW4tMgZHvxy18sKtr6VI492kBhUfhDJNI=
|
|
||||||
github.com/creack/pty v1.1.17/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
|
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
|
||||||
@@ -84,8 +78,8 @@ github.com/domodwyer/mailyak/v3 v3.6.2 h1:x3tGMsyFhTCaxp6ycgR0FE/bu5QiNp+hetUuCO
|
|||||||
github.com/domodwyer/mailyak/v3 v3.6.2/go.mod h1:lOm/u9CyCVWHeaAmHIdF4RiKVxKUT/H5XX10lIKAL6c=
|
github.com/domodwyer/mailyak/v3 v3.6.2/go.mod h1:lOm/u9CyCVWHeaAmHIdF4RiKVxKUT/H5XX10lIKAL6c=
|
||||||
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
||||||
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
||||||
github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE=
|
github.com/ebitengine/purego v0.8.2 h1:jPPGWs2sZ1UgOSgD2bClL0MJIqu58nOmIcBuXr62z1I=
|
||||||
github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
|
github.com/ebitengine/purego v0.8.2/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
@@ -97,8 +91,8 @@ github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSw
|
|||||||
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
|
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
|
||||||
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
|
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
|
||||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||||
github.com/gabriel-vasile/mimetype v1.4.7 h1:SKFKl7kD0RiPdbht0s7hFtjl489WcQ1VyPW8ZzUMYCA=
|
github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM=
|
||||||
github.com/gabriel-vasile/mimetype v1.4.7/go.mod h1:GDlAgAyIRT27BhFl53XNAFtfjzOkLaF35JdEG0P7LtU=
|
github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8=
|
||||||
github.com/ganigeorgiev/fexpr v0.4.1 h1:hpUgbUEEWIZhSDBtf4M9aUNfQQ0BZkGRaMePy7Gcx5k=
|
github.com/ganigeorgiev/fexpr v0.4.1 h1:hpUgbUEEWIZhSDBtf4M9aUNfQQ0BZkGRaMePy7Gcx5k=
|
||||||
github.com/ganigeorgiev/fexpr v0.4.1/go.mod h1:RyGiGqmeXhEQ6+mlGdnUleLHgtzzu/VGO2WtJkF5drE=
|
github.com/ganigeorgiev/fexpr v0.4.1/go.mod h1:RyGiGqmeXhEQ6+mlGdnUleLHgtzzu/VGO2WtJkF5drE=
|
||||||
github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c=
|
github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c=
|
||||||
@@ -117,10 +111,10 @@ github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpv
|
|||||||
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
|
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
|
||||||
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
|
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
|
||||||
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
|
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
|
||||||
github.com/goccy/go-json v0.10.4 h1:JSwxQzIqKfmFX1swYPpUThQZp/Ka4wzJdK0LWVytLPM=
|
github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4=
|
||||||
github.com/goccy/go-json v0.10.4/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
|
github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
|
||||||
github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo=
|
github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
|
||||||
github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
|
github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
|
||||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
|
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
|
||||||
@@ -154,8 +148,8 @@ github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD
|
|||||||
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
|
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
|
||||||
github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 h1:FKHo8hFI3A+7w0aUQuYXQ+6EN5stWmeY/AZqtM8xk9k=
|
github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 h1:FKHo8hFI3A+7w0aUQuYXQ+6EN5stWmeY/AZqtM8xk9k=
|
||||||
github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo=
|
github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo=
|
||||||
github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM=
|
github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0=
|
||||||
github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA=
|
github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM=
|
||||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
@@ -163,12 +157,8 @@ github.com/google/wire v0.6.0 h1:HBkoIh4BdSxoyo9PveV8giw7ZsaBOvzWKfcg/6MrVwI=
|
|||||||
github.com/google/wire v0.6.0/go.mod h1:F4QhpQ9EDIdJ1Mbop/NZBRB+5yrR6qg3BnctaoUk6NA=
|
github.com/google/wire v0.6.0/go.mod h1:F4QhpQ9EDIdJ1Mbop/NZBRB+5yrR6qg3BnctaoUk6NA=
|
||||||
github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw=
|
github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw=
|
||||||
github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA=
|
github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA=
|
||||||
github.com/googleapis/gax-go/v2 v2.14.0 h1:f+jMrjBPl+DL9nI4IQzLUxMq7XrAqFYB7hBPqMNIe8o=
|
github.com/googleapis/gax-go/v2 v2.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q=
|
||||||
github.com/googleapis/gax-go/v2 v2.14.0/go.mod h1:lhBCnjdLrWRaPvLWhmc8IS24m9mr07qSYnHncrgo+zk=
|
github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA=
|
||||||
github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
|
|
||||||
github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
|
|
||||||
github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec h1:qv2VnGeEQHchGaZ/u7lxST/RaJw+cv273q79D81Xbog=
|
|
||||||
github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec/go.mod h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68=
|
|
||||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||||
github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf h1:WfD7VjIE6z8dIvMsI4/s+1qr5EL+zoIGev1BQj1eoJ8=
|
github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf h1:WfD7VjIE6z8dIvMsI4/s+1qr5EL+zoIGev1BQj1eoJ8=
|
||||||
github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf/go.mod h1:hyb9oH7vZsitZCiBt0ZvifOrB+qc8PS5IiilCIb87rg=
|
github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf/go.mod h1:hyb9oH7vZsitZCiBt0ZvifOrB+qc8PS5IiilCIb87rg=
|
||||||
@@ -178,8 +168,6 @@ github.com/jarcoal/httpmock v1.3.0 h1:2RJ8GP0IIaWwcC9Fp2BmVi8Kog3v2Hn7VXM3fTd+nu
|
|||||||
github.com/jarcoal/httpmock v1.3.0/go.mod h1:3yb8rc4BI7TCBhFY8ng0gjuLKJNquuDNiPaZjnENuYg=
|
github.com/jarcoal/httpmock v1.3.0/go.mod h1:3yb8rc4BI7TCBhFY8ng0gjuLKJNquuDNiPaZjnENuYg=
|
||||||
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
|
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
|
||||||
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
|
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
|
||||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
|
|
||||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
|
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||||
@@ -189,16 +177,10 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
|||||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||||
github.com/lufia/plan9stats v0.0.0-20240909124753-873cd0166683 h1:7UMa6KCCMjZEMDtTVdcGu0B1GmmC7QJKiCCjyTAWQy0=
|
github.com/lufia/plan9stats v0.0.0-20240909124753-873cd0166683 h1:7UMa6KCCMjZEMDtTVdcGu0B1GmmC7QJKiCCjyTAWQy0=
|
||||||
github.com/lufia/plan9stats v0.0.0-20240909124753-873cd0166683/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k=
|
github.com/lufia/plan9stats v0.0.0-20240909124753-873cd0166683/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k=
|
||||||
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
|
||||||
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
|
||||||
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
|
||||||
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
|
||||||
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
|
||||||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
|
|
||||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI=
|
|
||||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
|
|
||||||
github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4=
|
github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4=
|
||||||
github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
|
github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
|
||||||
github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw=
|
github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw=
|
||||||
@@ -213,8 +195,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
|
|||||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/pocketbase/dbx v1.11.0 h1:LpZezioMfT3K4tLrqA55wWFw1EtH1pM4tzSVa7kgszU=
|
github.com/pocketbase/dbx v1.11.0 h1:LpZezioMfT3K4tLrqA55wWFw1EtH1pM4tzSVa7kgszU=
|
||||||
github.com/pocketbase/dbx v1.11.0/go.mod h1:xXRCIAKTHMgUCyCKZm55pUOdvFziJjQfXaWKhu2vhMs=
|
github.com/pocketbase/dbx v1.11.0/go.mod h1:xXRCIAKTHMgUCyCKZm55pUOdvFziJjQfXaWKhu2vhMs=
|
||||||
github.com/pocketbase/pocketbase v0.23.9 h1:0P3BaMTUO8QzyamYqd/OpPM4L7zmu6HrmDGFQmX+eu4=
|
github.com/pocketbase/pocketbase v0.25.0 h1:/4YQq1hd0muvhzbERyUTVNh88N0BCj5diqK0jtLN6k8=
|
||||||
github.com/pocketbase/pocketbase v0.23.9/go.mod h1:8qIx1v60b+YES3e8H4J2QQF48J0uiydPhRi4ZHlKNjk=
|
github.com/pocketbase/pocketbase v0.25.0/go.mod h1:tOtOv7f3vJhAiyUluIwV9JPuKeknZRQ9F6uJE3W/ntI=
|
||||||
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU=
|
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU=
|
||||||
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
|
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
|
||||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||||
@@ -225,24 +207,24 @@ github.com/rhysd/go-github-selfupdate v1.2.3/go.mod h1:mp/N8zj6jFfBQy/XMYoWsmfzx
|
|||||||
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
|
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
|
||||||
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
|
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
|
||||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||||
github.com/shirou/gopsutil/v4 v4.24.11 h1:WaU9xqGFKvFfsUv94SXcUPD7rCkU0vr/asVdQOBZNj8=
|
github.com/shirou/gopsutil/v4 v4.25.1 h1:QSWkTc+fu9LTAWfkZwZ6j8MSUk4A2LV7rbH0ZqmLjXs=
|
||||||
github.com/shirou/gopsutil/v4 v4.24.11/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8=
|
github.com/shirou/gopsutil/v4 v4.25.1/go.mod h1:RoUCUpndaJFtT+2zsZzzmhvbfGoDCJ7nFXKJf8GqJbI=
|
||||||
github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w=
|
github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y=
|
||||||
github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
|
github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
|
||||||
github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
|
github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
|
||||||
github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
|
github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
|
||||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
|
||||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
|
github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
|
||||||
|
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
|
||||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||||
github.com/tcnksm/go-gitconfig v0.1.2 h1:iiDhRitByXAEyjgBqsKi9QU4o2TNtv9kPP3RgPgXBPw=
|
github.com/tcnksm/go-gitconfig v0.1.2 h1:iiDhRitByXAEyjgBqsKi9QU4o2TNtv9kPP3RgPgXBPw=
|
||||||
github.com/tcnksm/go-gitconfig v0.1.2/go.mod h1:/8EhP4H7oJZdIPyT+/UIsG87kTzrzM4UsLGSItWYCpE=
|
github.com/tcnksm/go-gitconfig v0.1.2/go.mod h1:/8EhP4H7oJZdIPyT+/UIsG87kTzrzM4UsLGSItWYCpE=
|
||||||
github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU=
|
github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU=
|
||||||
@@ -252,43 +234,42 @@ github.com/tklauser/numcpus v0.9.0/go.mod h1:SN6Nq1O3VychhC1npsWostA+oW+VOQTxZrS
|
|||||||
github.com/ulikunitz/xz v0.5.9/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
|
github.com/ulikunitz/xz v0.5.9/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
|
||||||
github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc=
|
github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc=
|
||||||
github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
|
github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
|
||||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
|
||||||
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
|
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
|
||||||
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
|
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
|
||||||
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
|
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
|
||||||
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
|
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
|
||||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 h1:r6I7RJCN86bpD/FQwedZ0vSixDpwuWREjW9oRMsmqDc=
|
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
|
||||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0/go.mod h1:B9yO6b04uB80CzjedvewuqDhxJxi11s7/GtiGa8bAjI=
|
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk=
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0 h1:PS8wXpbyaDJQ2VDHHncMe9Vct0Zn1fEjpsjrLxGJoSc=
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8=
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.58.0/go.mod h1:HDBUsEjOuRC0EzKZ1bSaRGZWUBAzo+MhAcUUORSr4D0=
|
||||||
go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY=
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU=
|
||||||
go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE=
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q=
|
||||||
go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE=
|
go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY=
|
||||||
go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY=
|
go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI=
|
||||||
go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk=
|
go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ=
|
||||||
go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0=
|
go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE=
|
||||||
go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc=
|
go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4=
|
||||||
go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8=
|
go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU=
|
||||||
go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys=
|
go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU=
|
||||||
go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A=
|
go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ=
|
||||||
|
go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k=
|
||||||
|
go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE=
|
||||||
gocloud.dev v0.40.0 h1:f8LgP+4WDqOG/RXoUcyLpeIAGOcAbZrZbDQCUee10ng=
|
gocloud.dev v0.40.0 h1:f8LgP+4WDqOG/RXoUcyLpeIAGOcAbZrZbDQCUee10ng=
|
||||||
gocloud.dev v0.40.0/go.mod h1:drz+VyYNBvrMTW0KZiBAYEdl8lbNZx+OQ7oQvdrFmSQ=
|
gocloud.dev v0.40.0/go.mod h1:drz+VyYNBvrMTW0KZiBAYEdl8lbNZx+OQ7oQvdrFmSQ=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
|
||||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
|
||||||
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
|
golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
|
||||||
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
|
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 h1:1UoZQm6f0P/ZO0w1Ri+f+ifG/gXhegadRdwBIXEFWDo=
|
golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c h1:KL/ZBHXgKGVmuZBZ01Lt57yE5ws8ZPSkkihmEyq7FXc=
|
||||||
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c=
|
golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU=
|
||||||
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||||
golang.org/x/image v0.23.0 h1:HseQ7c2OpPKTPVzNjG5fwJsOTCiiwS4QdsYi5XU6H68=
|
golang.org/x/image v0.24.0 h1:AN7zRgVsbvmTfNyqIbbOraYL8mSwcKncEj8ofjgzcMQ=
|
||||||
golang.org/x/image v0.23.0/go.mod h1:wJJBTdLfCCf3tiHa1fNxpZmUI4mmoZvwMCPP0ddoNKY=
|
golang.org/x/image v0.24.0/go.mod h1:4b/ITuLfqYq1hqZcjofwctIhi7sZh2WaCjvsBNjjya8=
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
|
||||||
golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
|
golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
|
||||||
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
|
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
|
||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@@ -298,70 +279,53 @@ golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
|
||||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
|
||||||
golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI=
|
|
||||||
golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE=
|
golang.org/x/oauth2 v0.26.0 h1:afQXWNNaeC4nvZ0Ed9XvCCzXM6UHJG7iCg0W4fPqSBE=
|
||||||
golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
|
golang.org/x/oauth2 v0.26.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
|
||||||
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
|
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||||
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
|
||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
||||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
||||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
||||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
||||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
|
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
|
||||||
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU=
|
||||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s=
|
||||||
golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
|
|
||||||
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
|
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
|
||||||
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
|
||||||
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
|
||||||
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
||||||
golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg=
|
|
||||||
golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
|
||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
|
||||||
golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8=
|
|
||||||
golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw=
|
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY=
|
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhSt0ABwskkZKjD3bXGnZGpNY=
|
||||||
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90=
|
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90=
|
||||||
google.golang.org/api v0.212.0 h1:BcRj3MJfHF3FYD29rk7u9kuu1SyfGqfHcA0hSwKqkHg=
|
google.golang.org/api v0.220.0 h1:3oMI4gdBgB72WFVwE1nerDD8W3HUOS4kypK6rRLbGns=
|
||||||
google.golang.org/api v0.212.0/go.mod h1:gICpLlpp12/E8mycRMzgy3SQ9cFh2XnVJ6vJi/kQbvI=
|
google.golang.org/api v0.220.0/go.mod h1:26ZAlY6aN/8WgpCzjPNy18QpYaz7Zgg1h0qe1GkZEmY=
|
||||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||||
google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
@@ -371,17 +335,17 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98
|
|||||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
||||||
google.golang.org/genproto v0.0.0-20240812133136-8ffd90a71988 h1:CT2Thj5AuPV9phrYMtzX11k+XkzMGfRAet42PmoTATM=
|
google.golang.org/genproto v0.0.0-20240812133136-8ffd90a71988 h1:CT2Thj5AuPV9phrYMtzX11k+XkzMGfRAet42PmoTATM=
|
||||||
google.golang.org/genproto v0.0.0-20240812133136-8ffd90a71988/go.mod h1:7uvplUBj4RjHAxIZ//98LzOvrQ04JBkaixRmCMI29hc=
|
google.golang.org/genproto v0.0.0-20240812133136-8ffd90a71988/go.mod h1:7uvplUBj4RjHAxIZ//98LzOvrQ04JBkaixRmCMI29hc=
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g=
|
google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q=
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4=
|
google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08=
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20241216192217-9240e9c98484 h1:Z7FRVJPSMaHQxD0uXU8WdgFh8PseLM8Q8NzhnpMrBhQ=
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20250204164813-702378808489 h1:5bKytslY8ViY0Cj/ewmRtrWHW64bNF03cAatUUFCdFI=
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20241216192217-9240e9c98484/go.mod h1:lcTa1sDdWEIHMWlITnIczmw5w60CF9ffkb8Z+DVmmjA=
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20250204164813-702378808489/go.mod h1:8BS3B93F/U1juMFq9+EDk+qOT5CO1R9IzXxG3PTqiRk=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||||
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
||||||
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
|
||||||
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
||||||
google.golang.org/grpc v1.69.0 h1:quSiOM1GJPmPH5XtU+BCoVXcDVJJAzNcoyfC2cCjGkI=
|
google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ=
|
||||||
google.golang.org/grpc v1.69.0/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4=
|
google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
@@ -391,8 +355,8 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2
|
|||||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||||
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||||
google.golang.org/protobuf v1.36.0 h1:mjIs9gYtt56AzC4ZaffQuh88TZurBGhIJMBZGSxNerQ=
|
google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM=
|
||||||
google.golang.org/protobuf v1.36.0/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
@@ -405,28 +369,26 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
|||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
modernc.org/cc/v4 v4.23.1 h1:WqJoPL3x4cUufQVHkXpXX7ThFJ1C4ik80i2eXEXbhD8=
|
modernc.org/cc/v4 v4.21.4 h1:3Be/Rdo1fpr8GrQ7IVw9OHtplU4gWbb+wNgeoBMmGLQ=
|
||||||
modernc.org/cc/v4 v4.23.1/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ=
|
modernc.org/cc/v4 v4.21.4/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ=
|
||||||
modernc.org/ccgo/v4 v4.23.1 h1:N49a7JiWGWV7lkPE4yYcvjkBGZQi93/JabRYjdWmJXc=
|
modernc.org/ccgo/v4 v4.19.2 h1:lwQZgvboKD0jBwdaeVCTouxhxAyN6iawF3STraAal8Y=
|
||||||
modernc.org/ccgo/v4 v4.23.1/go.mod h1:JoIUegEIfutvoWV/BBfDFpPpfR2nc3U0jKucGcbmwDU=
|
modernc.org/ccgo/v4 v4.19.2/go.mod h1:ysS3mxiMV38XGRTTcgo0DQTeTmAO4oCmJl1nX9VFI3s=
|
||||||
modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE=
|
modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE=
|
||||||
modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ=
|
modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ=
|
||||||
modernc.org/gc/v2 v2.5.0 h1:bJ9ChznK1L1mUtAQtxi0wi5AtAs5jQuw4PrPHO5pb6M=
|
modernc.org/gc/v2 v2.4.1 h1:9cNzOqPyMJBvrUipmynX0ZohMhcxPtMccYgGOJdOiBw=
|
||||||
modernc.org/gc/v2 v2.5.0/go.mod h1:wzN5dK1AzVGoH6XOzc3YZ+ey/jPgYHLuVckd62P0GYU=
|
modernc.org/gc/v2 v2.4.1/go.mod h1:wzN5dK1AzVGoH6XOzc3YZ+ey/jPgYHLuVckd62P0GYU=
|
||||||
modernc.org/gc/v3 v3.0.0-20241213165251-3bc300f6d0c9 h1:ovz6yUKX71igz2yvk4NpiCL5fvdjZAI+DhuDEGx1xyU=
|
modernc.org/libc v1.55.3 h1:AzcW1mhlPNrRtjS5sS+eW2ISCgSOLLNyFzRh/V3Qj/U=
|
||||||
modernc.org/gc/v3 v3.0.0-20241213165251-3bc300f6d0c9/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4=
|
modernc.org/libc v1.55.3/go.mod h1:qFXepLhz+JjFThQ4kzwzOjA/y/artDeg+pcYnY+Q83w=
|
||||||
modernc.org/libc v1.61.4 h1:wVyqEx6tlltte9lPTjq0kDAdtdM9c4JH8rU6M1ZVawA=
|
modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU=
|
||||||
modernc.org/libc v1.61.4/go.mod h1:VfXVuM/Shh5XsMNrh3C6OkfL78G3loa4ZC/Ljv9k7xc=
|
modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg=
|
||||||
modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4=
|
modernc.org/memory v1.8.2 h1:cL9L4bcoAObu4NkxOlKWBWtNHIsnnACGF/TbqQ6sbcI=
|
||||||
modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo=
|
modernc.org/memory v1.8.2/go.mod h1:ZbjSvMO5NQ1A2i3bWeDiVMxIorXwdClKE/0SZ+BMotU=
|
||||||
modernc.org/memory v1.8.0 h1:IqGTL6eFMaDZZhEWwcREgeMXYwmW83LYW8cROZYkg+E=
|
|
||||||
modernc.org/memory v1.8.0/go.mod h1:XPZ936zp5OMKGWPqbD3JShgd/ZoQ7899TUuQqxY+peU=
|
|
||||||
modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4=
|
modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4=
|
||||||
modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
|
modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
|
||||||
modernc.org/sortutil v1.2.0 h1:jQiD3PfS2REGJNzNCMMaLSp/wdMNieTbKX920Cqdgqc=
|
modernc.org/sortutil v1.2.0 h1:jQiD3PfS2REGJNzNCMMaLSp/wdMNieTbKX920Cqdgqc=
|
||||||
modernc.org/sortutil v1.2.0/go.mod h1:TKU2s7kJMf1AE84OoiGppNHJwvB753OYfNl2WRb++Ss=
|
modernc.org/sortutil v1.2.0/go.mod h1:TKU2s7kJMf1AE84OoiGppNHJwvB753OYfNl2WRb++Ss=
|
||||||
modernc.org/sqlite v1.34.2 h1:J9n76TPsfYYkFkZ9Uy1QphILYifiVEwwOT7yP5b++2Y=
|
modernc.org/sqlite v1.34.5 h1:Bb6SR13/fjp15jt70CL4f18JIN7p7dnMExd+UFnF15g=
|
||||||
modernc.org/sqlite v1.34.2/go.mod h1:dnR723UrTtjKpoHCAMN0Q/gZ9MT4r+iRvIBb9umWFkU=
|
modernc.org/sqlite v1.34.5/go.mod h1:YLuNmX9NKs8wRNK2ko1LW1NGYcc9FkBO69JOt1AR9JE=
|
||||||
modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA=
|
modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA=
|
||||||
modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0=
|
modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0=
|
||||||
modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
|
modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
|
||||||
|
|||||||
@@ -8,11 +8,13 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
|
|
||||||
"github.com/shirou/gopsutil/v4/common"
|
"github.com/shirou/gopsutil/v4/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Agent struct {
|
type Agent struct {
|
||||||
|
sync.Mutex // Used to lock agent while collecting data
|
||||||
debug bool // true if LOG_LEVEL is set to debug
|
debug bool // true if LOG_LEVEL is set to debug
|
||||||
zfs bool // true if system has arcstats
|
zfs bool // true if system has arcstats
|
||||||
memCalc string // Memory calculation formula
|
memCalc string // Memory calculation formula
|
||||||
@@ -28,19 +30,16 @@ type Agent struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewAgent() *Agent {
|
func NewAgent() *Agent {
|
||||||
return &Agent{
|
agent := &Agent{
|
||||||
sensorsContext: context.Background(),
|
fsStats: make(map[string]*system.FsStats),
|
||||||
memCalc: os.Getenv("MEM_CALC"),
|
|
||||||
fsStats: make(map[string]*system.FsStats),
|
|
||||||
}
|
}
|
||||||
}
|
agent.memCalc, _ = GetEnv("MEM_CALC")
|
||||||
|
|
||||||
func (a *Agent) Run(pubKey []byte, addr string) {
|
|
||||||
// Set up slog with a log level determined by the LOG_LEVEL env var
|
// Set up slog with a log level determined by the LOG_LEVEL env var
|
||||||
if logLevelStr, exists := os.LookupEnv("LOG_LEVEL"); exists {
|
if logLevelStr, exists := GetEnv("LOG_LEVEL"); exists {
|
||||||
switch strings.ToLower(logLevelStr) {
|
switch strings.ToLower(logLevelStr) {
|
||||||
case "debug":
|
case "debug":
|
||||||
a.debug = true
|
agent.debug = true
|
||||||
slog.SetLogLoggerLevel(slog.LevelDebug)
|
slog.SetLogLoggerLevel(slog.LevelDebug)
|
||||||
case "warn":
|
case "warn":
|
||||||
slog.SetLogLoggerLevel(slog.LevelWarn)
|
slog.SetLogLoggerLevel(slog.LevelWarn)
|
||||||
@@ -52,45 +51,58 @@ func (a *Agent) Run(pubKey []byte, addr string) {
|
|||||||
slog.Debug(beszel.Version)
|
slog.Debug(beszel.Version)
|
||||||
|
|
||||||
// Set sensors context (allows overriding sys location for sensors)
|
// Set sensors context (allows overriding sys location for sensors)
|
||||||
if sysSensors, exists := os.LookupEnv("SYS_SENSORS"); exists {
|
if sysSensors, exists := GetEnv("SYS_SENSORS"); exists {
|
||||||
slog.Info("SYS_SENSORS", "path", sysSensors)
|
slog.Info("SYS_SENSORS", "path", sysSensors)
|
||||||
a.sensorsContext = context.WithValue(a.sensorsContext,
|
agent.sensorsContext = context.WithValue(agent.sensorsContext,
|
||||||
common.EnvKey, common.EnvMap{common.HostSysEnvKey: sysSensors},
|
common.EnvKey, common.EnvMap{common.HostSysEnvKey: sysSensors},
|
||||||
)
|
)
|
||||||
|
} else {
|
||||||
|
agent.sensorsContext = context.Background()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set sensors whitelist
|
// Set sensors whitelist
|
||||||
if sensors, exists := os.LookupEnv("SENSORS"); exists {
|
if sensors, exists := GetEnv("SENSORS"); exists {
|
||||||
a.sensorsWhitelist = make(map[string]struct{})
|
agent.sensorsWhitelist = make(map[string]struct{})
|
||||||
for _, sensor := range strings.Split(sensors, ",") {
|
for _, sensor := range strings.Split(sensors, ",") {
|
||||||
if sensor != "" {
|
if sensor != "" {
|
||||||
a.sensorsWhitelist[sensor] = struct{}{}
|
agent.sensorsWhitelist[sensor] = struct{}{}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// initialize system info / docker manager
|
// initialize system info / docker manager
|
||||||
a.initializeSystemInfo()
|
agent.initializeSystemInfo()
|
||||||
a.initializeDiskInfo()
|
agent.initializeDiskInfo()
|
||||||
a.initializeNetIoStats()
|
agent.initializeNetIoStats()
|
||||||
a.dockerManager = newDockerManager(a)
|
agent.dockerManager = newDockerManager(agent)
|
||||||
|
|
||||||
// initialize GPU manager
|
// initialize GPU manager
|
||||||
if gm, err := NewGPUManager(); err != nil {
|
if gm, err := NewGPUManager(); err != nil {
|
||||||
slog.Debug("GPU", "err", err)
|
slog.Debug("GPU", "err", err)
|
||||||
} else {
|
} else {
|
||||||
a.gpuManager = gm
|
agent.gpuManager = gm
|
||||||
}
|
}
|
||||||
|
|
||||||
// if debugging, print stats
|
// if debugging, print stats
|
||||||
if a.debug {
|
if agent.debug {
|
||||||
slog.Debug("Stats", "data", a.gatherStats())
|
slog.Debug("Stats", "data", agent.gatherStats())
|
||||||
}
|
}
|
||||||
|
|
||||||
a.startServer(pubKey, addr)
|
return agent
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetEnv retrieves an environment variable with a "BESZEL_AGENT_" prefix, or falls back to the unprefixed key.
|
||||||
|
func GetEnv(key string) (value string, exists bool) {
|
||||||
|
if value, exists = os.LookupEnv("BESZEL_AGENT_" + key); exists {
|
||||||
|
return value, exists
|
||||||
|
}
|
||||||
|
// Fallback to the old unprefixed key
|
||||||
|
return os.LookupEnv(key)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *Agent) gatherStats() system.CombinedData {
|
func (a *Agent) gatherStats() system.CombinedData {
|
||||||
|
a.Lock()
|
||||||
|
defer a.Unlock()
|
||||||
slog.Debug("Getting stats")
|
slog.Debug("Getting stats")
|
||||||
systemData := system.CombinedData{
|
systemData := system.CombinedData{
|
||||||
Stats: a.getSystemStats(),
|
Stats: a.getSystemStats(),
|
||||||
|
|||||||
@@ -3,18 +3,17 @@ package agent
|
|||||||
import (
|
import (
|
||||||
"beszel/internal/entities/system"
|
"beszel/internal/entities/system"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"time"
|
|
||||||
|
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/shirou/gopsutil/v4/disk"
|
"github.com/shirou/gopsutil/v4/disk"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Sets up the filesystems to monitor for disk usage and I/O.
|
// Sets up the filesystems to monitor for disk usage and I/O.
|
||||||
func (a *Agent) initializeDiskInfo() {
|
func (a *Agent) initializeDiskInfo() {
|
||||||
filesystem := os.Getenv("FILESYSTEM")
|
filesystem, _ := GetEnv("FILESYSTEM")
|
||||||
efPath := "/extra-filesystems"
|
efPath := "/extra-filesystems"
|
||||||
hasRoot := false
|
hasRoot := false
|
||||||
|
|
||||||
@@ -79,7 +78,7 @@ func (a *Agent) initializeDiskInfo() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add EXTRA_FILESYSTEMS env var values to fsStats
|
// Add EXTRA_FILESYSTEMS env var values to fsStats
|
||||||
if extraFilesystems, exists := os.LookupEnv("EXTRA_FILESYSTEMS"); exists {
|
if extraFilesystems, exists := GetEnv("EXTRA_FILESYSTEMS"); exists {
|
||||||
for _, fs := range strings.Split(extraFilesystems, ",") {
|
for _, fs := range strings.Split(extraFilesystems, ",") {
|
||||||
found := false
|
found := false
|
||||||
for _, p := range partitions {
|
for _, p := range partitions {
|
||||||
|
|||||||
@@ -208,7 +208,7 @@ func (dm *dockerManager) deleteContainerStatsSync(id string) {
|
|||||||
|
|
||||||
// Creates a new http client for Docker or Podman API
|
// Creates a new http client for Docker or Podman API
|
||||||
func newDockerManager(a *Agent) *dockerManager {
|
func newDockerManager(a *Agent) *dockerManager {
|
||||||
dockerHost, exists := os.LookupEnv("DOCKER_HOST")
|
dockerHost, exists := GetEnv("DOCKER_HOST")
|
||||||
if exists {
|
if exists {
|
||||||
slog.Info("DOCKER_HOST", "host", dockerHost)
|
slog.Info("DOCKER_HOST", "host", dockerHost)
|
||||||
} else {
|
} else {
|
||||||
@@ -242,7 +242,7 @@ func newDockerManager(a *Agent) *dockerManager {
|
|||||||
|
|
||||||
// configurable timeout
|
// configurable timeout
|
||||||
timeout := time.Millisecond * 2100
|
timeout := time.Millisecond * 2100
|
||||||
if t, set := os.LookupEnv("DOCKER_TIMEOUT"); set {
|
if t, set := GetEnv("DOCKER_TIMEOUT"); set {
|
||||||
timeout, err = time.ParseDuration(t)
|
timeout, err = time.ParseDuration(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error(err.Error())
|
slog.Error(err.Error())
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
@@ -16,28 +17,31 @@ import (
|
|||||||
|
|
||||||
// GPUManager manages data collection for GPUs (either Nvidia or AMD)
|
// GPUManager manages data collection for GPUs (either Nvidia or AMD)
|
||||||
type GPUManager struct {
|
type GPUManager struct {
|
||||||
|
sync.Mutex
|
||||||
nvidiaSmi bool
|
nvidiaSmi bool
|
||||||
rocmSmi bool
|
rocmSmi bool
|
||||||
|
tegrastats bool
|
||||||
GpuDataMap map[string]*system.GPUData
|
GpuDataMap map[string]*system.GPUData
|
||||||
mutex sync.Mutex
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// RocmSmiJson represents the JSON structure of rocm-smi output
|
// RocmSmiJson represents the JSON structure of rocm-smi output
|
||||||
type RocmSmiJson struct {
|
type RocmSmiJson struct {
|
||||||
ID string `json:"Device ID"`
|
ID string `json:"GUID"`
|
||||||
Name string `json:"Card series"`
|
Name string `json:"Card series"`
|
||||||
Temperature string `json:"Temperature (Sensor edge) (C)"`
|
Temperature string `json:"Temperature (Sensor edge) (C)"`
|
||||||
MemoryUsed string `json:"VRAM Total Used Memory (B)"`
|
MemoryUsed string `json:"VRAM Total Used Memory (B)"`
|
||||||
MemoryTotal string `json:"VRAM Total Memory (B)"`
|
MemoryTotal string `json:"VRAM Total Memory (B)"`
|
||||||
Usage string `json:"GPU use (%)"`
|
Usage string `json:"GPU use (%)"`
|
||||||
Power string `json:"Current Socket Graphics Package Power (W)"`
|
PowerPackage string `json:"Average Graphics Package Power (W)"`
|
||||||
|
PowerSocket string `json:"Current Socket Graphics Package Power (W)"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// gpuCollector defines a collector for a specific GPU management utility (nvidia-smi or rocm-smi)
|
// gpuCollector defines a collector for a specific GPU management utility (nvidia-smi or rocm-smi)
|
||||||
type gpuCollector struct {
|
type gpuCollector struct {
|
||||||
name string
|
name string
|
||||||
cmd *exec.Cmd
|
cmdArgs []string
|
||||||
parse func([]byte) bool // returns true if valid data was found
|
parse func([]byte) bool // returns true if valid data was found
|
||||||
|
buf []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
var errNoValidData = fmt.Errorf("no valid GPU data found") // Error for missing data
|
var errNoValidData = fmt.Errorf("no valid GPU data found") // Error for missing data
|
||||||
@@ -60,71 +64,118 @@ func (c *gpuCollector) start() {
|
|||||||
|
|
||||||
// collect executes the command, parses output with the assigned parser function
|
// collect executes the command, parses output with the assigned parser function
|
||||||
func (c *gpuCollector) collect() error {
|
func (c *gpuCollector) collect() error {
|
||||||
stdout, err := c.cmd.StdoutPipe()
|
cmd := exec.Command(c.name, c.cmdArgs...)
|
||||||
|
stdout, err := cmd.StdoutPipe()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := c.cmd.Start(); err != nil {
|
if err := cmd.Start(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
scanner := bufio.NewScanner(stdout)
|
scanner := bufio.NewScanner(stdout)
|
||||||
buf := make([]byte, 0, 8*1024)
|
if c.buf == nil {
|
||||||
scanner.Buffer(buf, bufio.MaxScanTokenSize)
|
c.buf = make([]byte, 0, 4*1024)
|
||||||
|
|
||||||
hasValidData := false
|
|
||||||
for scanner.Scan() {
|
|
||||||
if c.parse(scanner.Bytes()) {
|
|
||||||
hasValidData = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
scanner.Buffer(c.buf, bufio.MaxScanTokenSize)
|
||||||
|
|
||||||
if !hasValidData {
|
for scanner.Scan() {
|
||||||
return errNoValidData
|
hasValidData := c.parse(scanner.Bytes())
|
||||||
|
if !hasValidData {
|
||||||
|
return errNoValidData
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := scanner.Err(); err != nil {
|
if err := scanner.Err(); err != nil {
|
||||||
return fmt.Errorf("scanner error: %w", err)
|
return fmt.Errorf("scanner error: %w", err)
|
||||||
}
|
}
|
||||||
return c.cmd.Wait()
|
return cmd.Wait()
|
||||||
|
}
|
||||||
|
|
||||||
|
// getJetsonParser returns a function to parse the output of tegrastats and update the GPUData map
|
||||||
|
func (gm *GPUManager) getJetsonParser() func(output []byte) bool {
|
||||||
|
// use closure to avoid recompiling the regex
|
||||||
|
ramPattern := regexp.MustCompile(`RAM (\d+)/(\d+)MB`)
|
||||||
|
gr3dPattern := regexp.MustCompile(`GR3D_FREQ (\d+)%`)
|
||||||
|
tempPattern := regexp.MustCompile(`tj@(\d+\.?\d*)C`)
|
||||||
|
// Orin Nano / NX do not have GPU specific power monitor
|
||||||
|
// TODO: Maybe use VDD_IN for Nano / NX and add a total system power chart
|
||||||
|
powerPattern := regexp.MustCompile(`(GPU_SOC|CPU_GPU_CV) (\d+)mW`)
|
||||||
|
|
||||||
|
return func(output []byte) bool {
|
||||||
|
gm.Lock()
|
||||||
|
defer gm.Unlock()
|
||||||
|
// we get gpu name from the intitial run of nvidia-smi, so return if it hasn't been initialized
|
||||||
|
gpuData, ok := gm.GpuDataMap["0"]
|
||||||
|
if !ok {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
data := string(output)
|
||||||
|
// Parse RAM usage
|
||||||
|
ramMatches := ramPattern.FindStringSubmatch(data)
|
||||||
|
if ramMatches != nil {
|
||||||
|
gpuData.MemoryUsed, _ = strconv.ParseFloat(ramMatches[1], 64)
|
||||||
|
gpuData.MemoryTotal, _ = strconv.ParseFloat(ramMatches[2], 64)
|
||||||
|
}
|
||||||
|
// Parse GR3D (GPU) usage
|
||||||
|
gr3dMatches := gr3dPattern.FindStringSubmatch(data)
|
||||||
|
if gr3dMatches != nil {
|
||||||
|
gpuData.Usage, _ = strconv.ParseFloat(gr3dMatches[1], 64)
|
||||||
|
}
|
||||||
|
// Parse temperature
|
||||||
|
tempMatches := tempPattern.FindStringSubmatch(data)
|
||||||
|
if tempMatches != nil {
|
||||||
|
gpuData.Temperature, _ = strconv.ParseFloat(tempMatches[1], 64)
|
||||||
|
}
|
||||||
|
// Parse power usage
|
||||||
|
powerMatches := powerPattern.FindStringSubmatch(data)
|
||||||
|
if powerMatches != nil {
|
||||||
|
power, _ := strconv.ParseFloat(powerMatches[2], 64)
|
||||||
|
gpuData.Power = power / 1000
|
||||||
|
}
|
||||||
|
gpuData.Count++
|
||||||
|
return true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// parseNvidiaData parses the output of nvidia-smi and updates the GPUData map
|
// parseNvidiaData parses the output of nvidia-smi and updates the GPUData map
|
||||||
func (gm *GPUManager) parseNvidiaData(output []byte) bool {
|
func (gm *GPUManager) parseNvidiaData(output []byte) bool {
|
||||||
fields := strings.Split(string(output), ", ")
|
gm.Lock()
|
||||||
if len(fields) < 7 {
|
defer gm.Unlock()
|
||||||
return false
|
var valid bool
|
||||||
}
|
for line := range strings.Lines(string(output)) {
|
||||||
gm.mutex.Lock()
|
fields := strings.Split(strings.TrimSpace(line), ", ")
|
||||||
defer gm.mutex.Unlock()
|
if len(fields) < 7 {
|
||||||
lines := strings.Split(string(output), "\n")
|
continue
|
||||||
for _, line := range lines {
|
}
|
||||||
if line != "" {
|
valid = true
|
||||||
fields := strings.Split(line, ", ")
|
id := fields[0]
|
||||||
if len(fields) >= 7 {
|
temp, _ := strconv.ParseFloat(fields[2], 64)
|
||||||
id := fields[0]
|
memoryUsage, _ := strconv.ParseFloat(fields[3], 64)
|
||||||
temp, _ := strconv.ParseFloat(fields[2], 64)
|
totalMemory, _ := strconv.ParseFloat(fields[4], 64)
|
||||||
memoryUsage, _ := strconv.ParseFloat(fields[3], 64)
|
usage, _ := strconv.ParseFloat(fields[5], 64)
|
||||||
totalMemory, _ := strconv.ParseFloat(fields[4], 64)
|
power, _ := strconv.ParseFloat(fields[6], 64)
|
||||||
usage, _ := strconv.ParseFloat(fields[5], 64)
|
// add gpu if not exists
|
||||||
power, _ := strconv.ParseFloat(fields[6], 64)
|
if _, ok := gm.GpuDataMap[id]; !ok {
|
||||||
// add gpu if not exists
|
name := strings.TrimPrefix(fields[1], "NVIDIA ")
|
||||||
if _, ok := gm.GpuDataMap[id]; !ok {
|
gm.GpuDataMap[id] = &system.GPUData{Name: strings.TrimSuffix(name, " Laptop GPU")}
|
||||||
name := strings.TrimPrefix(fields[1], "NVIDIA ")
|
// check if tegrastats is active - if so we will only use nvidia-smi to get gpu name
|
||||||
gm.GpuDataMap[id] = &system.GPUData{Name: strings.TrimSuffix(name, " Laptop GPU")}
|
// - nvidia-smi does not provide metrics for tegra / jetson devices
|
||||||
}
|
// this will end the nvidia-smi collector
|
||||||
// update gpu data
|
if gm.tegrastats {
|
||||||
gpu := gm.GpuDataMap[id]
|
return false
|
||||||
gpu.Temperature = temp
|
|
||||||
gpu.MemoryUsed = memoryUsage / 1.024
|
|
||||||
gpu.MemoryTotal = totalMemory / 1.024
|
|
||||||
gpu.Usage += usage
|
|
||||||
gpu.Power += power
|
|
||||||
gpu.Count++
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// update gpu data
|
||||||
|
gpu := gm.GpuDataMap[id]
|
||||||
|
gpu.Temperature = temp
|
||||||
|
gpu.MemoryUsed = memoryUsage / 1.024
|
||||||
|
gpu.MemoryTotal = totalMemory / 1.024
|
||||||
|
gpu.Usage += usage
|
||||||
|
gpu.Power += power
|
||||||
|
gpu.Count++
|
||||||
}
|
}
|
||||||
return true
|
return valid
|
||||||
}
|
}
|
||||||
|
|
||||||
// parseAmdData parses the output of rocm-smi and updates the GPUData map
|
// parseAmdData parses the output of rocm-smi and updates the GPUData map
|
||||||
@@ -133,24 +184,26 @@ func (gm *GPUManager) parseAmdData(output []byte) bool {
|
|||||||
if err := json.Unmarshal(output, &rocmSmiInfo); err != nil || len(rocmSmiInfo) == 0 {
|
if err := json.Unmarshal(output, &rocmSmiInfo); err != nil || len(rocmSmiInfo) == 0 {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
gm.mutex.Lock()
|
gm.Lock()
|
||||||
defer gm.mutex.Unlock()
|
defer gm.Unlock()
|
||||||
for _, v := range rocmSmiInfo {
|
for _, v := range rocmSmiInfo {
|
||||||
temp, _ := strconv.ParseFloat(v.Temperature, 64)
|
var power float64
|
||||||
|
if v.PowerPackage != "" {
|
||||||
|
power, _ = strconv.ParseFloat(v.PowerPackage, 64)
|
||||||
|
} else {
|
||||||
|
power, _ = strconv.ParseFloat(v.PowerSocket, 64)
|
||||||
|
}
|
||||||
memoryUsage, _ := strconv.ParseFloat(v.MemoryUsed, 64)
|
memoryUsage, _ := strconv.ParseFloat(v.MemoryUsed, 64)
|
||||||
totalMemory, _ := strconv.ParseFloat(v.MemoryTotal, 64)
|
totalMemory, _ := strconv.ParseFloat(v.MemoryTotal, 64)
|
||||||
usage, _ := strconv.ParseFloat(v.Usage, 64)
|
usage, _ := strconv.ParseFloat(v.Usage, 64)
|
||||||
power, _ := strconv.ParseFloat(v.Power, 64)
|
|
||||||
memoryUsage = bytesToMegabytes(memoryUsage)
|
|
||||||
totalMemory = bytesToMegabytes(totalMemory)
|
|
||||||
|
|
||||||
if _, ok := gm.GpuDataMap[v.ID]; !ok {
|
if _, ok := gm.GpuDataMap[v.ID]; !ok {
|
||||||
gm.GpuDataMap[v.ID] = &system.GPUData{Name: v.Name}
|
gm.GpuDataMap[v.ID] = &system.GPUData{Name: v.Name}
|
||||||
}
|
}
|
||||||
gpu := gm.GpuDataMap[v.ID]
|
gpu := gm.GpuDataMap[v.ID]
|
||||||
gpu.Temperature = temp
|
gpu.Temperature, _ = strconv.ParseFloat(v.Temperature, 64)
|
||||||
gpu.MemoryUsed = memoryUsage
|
gpu.MemoryUsed = bytesToMegabytes(memoryUsage)
|
||||||
gpu.MemoryTotal = totalMemory
|
gpu.MemoryTotal = bytesToMegabytes(totalMemory)
|
||||||
gpu.Usage += usage
|
gpu.Usage += usage
|
||||||
gpu.Power += power
|
gpu.Power += power
|
||||||
gpu.Count++
|
gpu.Count++
|
||||||
@@ -160,8 +213,15 @@ func (gm *GPUManager) parseAmdData(output []byte) bool {
|
|||||||
|
|
||||||
// sums and resets the current GPU utilization data since the last update
|
// sums and resets the current GPU utilization data since the last update
|
||||||
func (gm *GPUManager) GetCurrentData() map[string]system.GPUData {
|
func (gm *GPUManager) GetCurrentData() map[string]system.GPUData {
|
||||||
gm.mutex.Lock()
|
gm.Lock()
|
||||||
defer gm.mutex.Unlock()
|
defer gm.Unlock()
|
||||||
|
|
||||||
|
// check for GPUs with the same name
|
||||||
|
nameCounts := make(map[string]int)
|
||||||
|
for _, gpu := range gm.GpuDataMap {
|
||||||
|
nameCounts[gpu.Name]++
|
||||||
|
}
|
||||||
|
|
||||||
// copy / reset the data
|
// copy / reset the data
|
||||||
gpuData := make(map[string]system.GPUData, len(gm.GpuDataMap))
|
gpuData := make(map[string]system.GPUData, len(gm.GpuDataMap))
|
||||||
for id, gpu := range gm.GpuDataMap {
|
for id, gpu := range gm.GpuDataMap {
|
||||||
@@ -171,48 +231,71 @@ func (gm *GPUManager) GetCurrentData() map[string]system.GPUData {
|
|||||||
gpu.MemoryTotal = twoDecimals(gpu.MemoryTotal)
|
gpu.MemoryTotal = twoDecimals(gpu.MemoryTotal)
|
||||||
gpu.Usage = twoDecimals(gpu.Usage / gpu.Count)
|
gpu.Usage = twoDecimals(gpu.Usage / gpu.Count)
|
||||||
gpu.Power = twoDecimals(gpu.Power / gpu.Count)
|
gpu.Power = twoDecimals(gpu.Power / gpu.Count)
|
||||||
gpuData[id] = *gpu
|
|
||||||
// reset the count
|
// reset the count
|
||||||
gpu.Count = 1
|
gpu.Count = 1
|
||||||
|
// dereference to avoid overwriting anything else
|
||||||
|
gpuCopy := *gpu
|
||||||
|
// append id to the name if there are multiple GPUs with the same name
|
||||||
|
if nameCounts[gpu.Name] > 1 {
|
||||||
|
gpuCopy.Name = fmt.Sprintf("%s %s", gpu.Name, id)
|
||||||
|
}
|
||||||
|
gpuData[id] = gpuCopy
|
||||||
}
|
}
|
||||||
return gpuData
|
return gpuData
|
||||||
}
|
}
|
||||||
|
|
||||||
// detectGPUs returns the GPU brand (nvidia or amd) or an error if none is found
|
// detectGPUs checks for the presence of GPU management tools (nvidia-smi, rocm-smi, tegrastats)
|
||||||
// todo: make sure there's actually a GPU, not just if the command exists
|
// in the system path. It sets the corresponding flags in the GPUManager struct if any of these
|
||||||
|
// tools are found. If none of the tools are found, it returns an error indicating that no GPU
|
||||||
|
// management tools are available.
|
||||||
func (gm *GPUManager) detectGPUs() error {
|
func (gm *GPUManager) detectGPUs() error {
|
||||||
if err := exec.Command("nvidia-smi").Run(); err == nil {
|
if _, err := exec.LookPath("nvidia-smi"); err == nil {
|
||||||
gm.nvidiaSmi = true
|
gm.nvidiaSmi = true
|
||||||
}
|
}
|
||||||
if err := exec.Command("rocm-smi").Run(); err == nil {
|
if _, err := exec.LookPath("rocm-smi"); err == nil {
|
||||||
gm.rocmSmi = true
|
gm.rocmSmi = true
|
||||||
}
|
}
|
||||||
if gm.nvidiaSmi || gm.rocmSmi {
|
if _, err := exec.LookPath("tegrastats"); err == nil {
|
||||||
|
gm.tegrastats = true
|
||||||
|
}
|
||||||
|
if gm.nvidiaSmi || gm.rocmSmi || gm.tegrastats {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return fmt.Errorf("no GPU found - install nvidia-smi or rocm-smi")
|
return fmt.Errorf("no GPU found - install nvidia-smi, rocm-smi, or tegrastats")
|
||||||
}
|
}
|
||||||
|
|
||||||
// startCollector starts the appropriate GPU data collector based on the command
|
// startCollector starts the appropriate GPU data collector based on the command
|
||||||
func (gm *GPUManager) startCollector(command string) {
|
func (gm *GPUManager) startCollector(command string) {
|
||||||
|
collector := gpuCollector{
|
||||||
|
name: command,
|
||||||
|
}
|
||||||
switch command {
|
switch command {
|
||||||
case "nvidia-smi":
|
case "nvidia-smi":
|
||||||
nvidia := gpuCollector{
|
collector.cmdArgs = []string{"-l", "4",
|
||||||
name: "nvidia-smi",
|
"--query-gpu=index,name,temperature.gpu,memory.used,memory.total,utilization.gpu,power.draw",
|
||||||
cmd: exec.Command("nvidia-smi", "-l", "4",
|
"--format=csv,noheader,nounits"}
|
||||||
"--query-gpu=index,name,temperature.gpu,memory.used,memory.total,utilization.gpu,power.draw",
|
collector.parse = gm.parseNvidiaData
|
||||||
"--format=csv,noheader,nounits"),
|
go collector.start()
|
||||||
parse: gm.parseNvidiaData,
|
case "tegrastats":
|
||||||
}
|
collector.cmdArgs = []string{"--interval", "3000"}
|
||||||
go nvidia.start()
|
collector.parse = gm.getJetsonParser()
|
||||||
|
go collector.start()
|
||||||
case "rocm-smi":
|
case "rocm-smi":
|
||||||
amdCollector := gpuCollector{
|
collector.cmdArgs = []string{"--showid", "--showtemp", "--showuse", "--showpower", "--showproductname", "--showmeminfo", "vram", "--json"}
|
||||||
name: "rocm-smi",
|
collector.parse = gm.parseAmdData
|
||||||
cmd: exec.Command("/bin/sh", "-c",
|
go func() {
|
||||||
"while true; do rocm-smi --showid --showtemp --showuse --showpower --showproductname --showmeminfo vram --json; sleep 4.3; done"),
|
failures := 0
|
||||||
parse: gm.parseAmdData,
|
for {
|
||||||
}
|
if err := collector.collect(); err != nil {
|
||||||
go amdCollector.start()
|
failures++
|
||||||
|
if failures > 5 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
slog.Warn("Error collecting AMD GPU data", "err", err)
|
||||||
|
}
|
||||||
|
time.Sleep(4300 * time.Millisecond)
|
||||||
|
}
|
||||||
|
}()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -222,7 +305,7 @@ func NewGPUManager() (*GPUManager, error) {
|
|||||||
if err := gm.detectGPUs(); err != nil {
|
if err := gm.detectGPUs(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
gm.GpuDataMap = make(map[string]*system.GPUData, 1)
|
gm.GpuDataMap = make(map[string]*system.GPUData)
|
||||||
|
|
||||||
if gm.nvidiaSmi {
|
if gm.nvidiaSmi {
|
||||||
gm.startCollector("nvidia-smi")
|
gm.startCollector("nvidia-smi")
|
||||||
@@ -230,6 +313,9 @@ func NewGPUManager() (*GPUManager, error) {
|
|||||||
if gm.rocmSmi {
|
if gm.rocmSmi {
|
||||||
gm.startCollector("rocm-smi")
|
gm.startCollector("rocm-smi")
|
||||||
}
|
}
|
||||||
|
if gm.tegrastats {
|
||||||
|
gm.startCollector("tegrastats")
|
||||||
|
}
|
||||||
|
|
||||||
return &gm, nil
|
return &gm, nil
|
||||||
}
|
}
|
||||||
|
|||||||
525
beszel/internal/agent/gpu_test.go
Normal file
525
beszel/internal/agent/gpu_test.go
Normal file
@@ -0,0 +1,525 @@
|
|||||||
|
package agent
|
||||||
|
|
||||||
|
import (
|
||||||
|
"beszel/internal/entities/system"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestParseNvidiaData(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
input string
|
||||||
|
wantData map[string]system.GPUData
|
||||||
|
wantValid bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "valid multi-gpu data",
|
||||||
|
input: "0, NVIDIA GeForce RTX 3050 Ti Laptop GPU, 48, 12, 4096, 26.3, 12.73\n1, NVIDIA A100-PCIE-40GB, 38, 74, 40960, [N/A], 36.79",
|
||||||
|
wantData: map[string]system.GPUData{
|
||||||
|
"0": {
|
||||||
|
Name: "GeForce RTX 3050 Ti",
|
||||||
|
Temperature: 48.0,
|
||||||
|
MemoryUsed: 12.0 / 1.024,
|
||||||
|
MemoryTotal: 4096.0 / 1.024,
|
||||||
|
Usage: 26.3,
|
||||||
|
Power: 12.73,
|
||||||
|
Count: 1,
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
Name: "A100-PCIE-40GB",
|
||||||
|
Temperature: 38.0,
|
||||||
|
MemoryUsed: 74.0 / 1.024,
|
||||||
|
MemoryTotal: 40960.0 / 1.024,
|
||||||
|
Usage: 0.0,
|
||||||
|
Power: 36.79,
|
||||||
|
Count: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
wantValid: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "empty input",
|
||||||
|
input: "",
|
||||||
|
wantData: map[string]system.GPUData{},
|
||||||
|
wantValid: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "malformed data",
|
||||||
|
input: "bad, data, here",
|
||||||
|
wantData: map[string]system.GPUData{},
|
||||||
|
wantValid: false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
gm := &GPUManager{
|
||||||
|
GpuDataMap: make(map[string]*system.GPUData),
|
||||||
|
}
|
||||||
|
valid := gm.parseNvidiaData([]byte(tt.input))
|
||||||
|
assert.Equal(t, tt.wantValid, valid)
|
||||||
|
|
||||||
|
if tt.wantValid {
|
||||||
|
for id, want := range tt.wantData {
|
||||||
|
got := gm.GpuDataMap[id]
|
||||||
|
require.NotNil(t, got)
|
||||||
|
assert.Equal(t, want.Name, got.Name)
|
||||||
|
assert.InDelta(t, want.Temperature, got.Temperature, 0.01)
|
||||||
|
assert.InDelta(t, want.MemoryUsed, got.MemoryUsed, 0.01)
|
||||||
|
assert.InDelta(t, want.MemoryTotal, got.MemoryTotal, 0.01)
|
||||||
|
assert.InDelta(t, want.Usage, got.Usage, 0.01)
|
||||||
|
assert.InDelta(t, want.Power, got.Power, 0.01)
|
||||||
|
assert.Equal(t, want.Count, got.Count)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestParseAmdData(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
input string
|
||||||
|
wantData map[string]system.GPUData
|
||||||
|
wantValid bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "valid single gpu data",
|
||||||
|
input: `{
|
||||||
|
"card0": {
|
||||||
|
"GUID": "34756",
|
||||||
|
"Temperature (Sensor edge) (C)": "47.0",
|
||||||
|
"Current Socket Graphics Package Power (W)": "9.215",
|
||||||
|
"GPU use (%)": "0",
|
||||||
|
"VRAM Total Memory (B)": "536870912",
|
||||||
|
"VRAM Total Used Memory (B)": "482263040",
|
||||||
|
"Card Series": "Rembrandt [Radeon 680M]"
|
||||||
|
}
|
||||||
|
}`,
|
||||||
|
wantData: map[string]system.GPUData{
|
||||||
|
"34756": {
|
||||||
|
Name: "Rembrandt [Radeon 680M]",
|
||||||
|
Temperature: 47.0,
|
||||||
|
MemoryUsed: 482263040.0 / (1024 * 1024),
|
||||||
|
MemoryTotal: 536870912.0 / (1024 * 1024),
|
||||||
|
Usage: 0.0,
|
||||||
|
Power: 9.215,
|
||||||
|
Count: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
wantValid: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "valid multi gpu data",
|
||||||
|
input: `{
|
||||||
|
"card0": {
|
||||||
|
"GUID": "34756",
|
||||||
|
"Temperature (Sensor edge) (C)": "47.0",
|
||||||
|
"Current Socket Graphics Package Power (W)": "9.215",
|
||||||
|
"GPU use (%)": "0",
|
||||||
|
"VRAM Total Memory (B)": "536870912",
|
||||||
|
"VRAM Total Used Memory (B)": "482263040",
|
||||||
|
"Card Series": "Rembrandt [Radeon 680M]"
|
||||||
|
},
|
||||||
|
"card1": {
|
||||||
|
"GUID": "38294",
|
||||||
|
"Temperature (Sensor edge) (C)": "49.0",
|
||||||
|
"Temperature (Sensor junction) (C)": "49.0",
|
||||||
|
"Temperature (Sensor memory) (C)": "62.0",
|
||||||
|
"Average Graphics Package Power (W)": "19.0",
|
||||||
|
"GPU use (%)": "20.3",
|
||||||
|
"VRAM Total Memory (B)": "25753026560",
|
||||||
|
"VRAM Total Used Memory (B)": "794341376",
|
||||||
|
"Card Series": "Navi 31 [Radeon RX 7900 XT]"
|
||||||
|
}
|
||||||
|
}`,
|
||||||
|
wantData: map[string]system.GPUData{
|
||||||
|
"34756": {
|
||||||
|
Name: "Rembrandt [Radeon 680M]",
|
||||||
|
Temperature: 47.0,
|
||||||
|
MemoryUsed: 482263040.0 / (1024 * 1024),
|
||||||
|
MemoryTotal: 536870912.0 / (1024 * 1024),
|
||||||
|
Usage: 0.0,
|
||||||
|
Power: 9.215,
|
||||||
|
Count: 1,
|
||||||
|
},
|
||||||
|
"38294": {
|
||||||
|
Name: "Navi 31 [Radeon RX 7900 XT]",
|
||||||
|
Temperature: 49.0,
|
||||||
|
MemoryUsed: 794341376.0 / (1024 * 1024),
|
||||||
|
MemoryTotal: 25753026560.0 / (1024 * 1024),
|
||||||
|
Usage: 20.3,
|
||||||
|
Power: 19.0,
|
||||||
|
Count: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
wantValid: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "invalid json",
|
||||||
|
input: "{bad json",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "invalid json",
|
||||||
|
input: "{bad json",
|
||||||
|
wantData: map[string]system.GPUData{},
|
||||||
|
wantValid: false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
gm := &GPUManager{
|
||||||
|
GpuDataMap: make(map[string]*system.GPUData),
|
||||||
|
}
|
||||||
|
valid := gm.parseAmdData([]byte(tt.input))
|
||||||
|
assert.Equal(t, tt.wantValid, valid)
|
||||||
|
|
||||||
|
if tt.wantValid {
|
||||||
|
for id, want := range tt.wantData {
|
||||||
|
got := gm.GpuDataMap[id]
|
||||||
|
require.NotNil(t, got)
|
||||||
|
assert.Equal(t, want.Name, got.Name)
|
||||||
|
assert.InDelta(t, want.Temperature, got.Temperature, 0.01)
|
||||||
|
assert.InDelta(t, want.MemoryUsed, got.MemoryUsed, 0.01)
|
||||||
|
assert.InDelta(t, want.MemoryTotal, got.MemoryTotal, 0.01)
|
||||||
|
assert.InDelta(t, want.Usage, got.Usage, 0.01)
|
||||||
|
assert.InDelta(t, want.Power, got.Power, 0.01)
|
||||||
|
assert.Equal(t, want.Count, got.Count)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestParseJetsonData(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
input string
|
||||||
|
gm *GPUManager
|
||||||
|
wantMetrics *system.GPUData
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "valid data",
|
||||||
|
input: "RAM 4300/30698MB GR3D_FREQ 45% tj@52.468C VDD_GPU_SOC 2171mW",
|
||||||
|
wantMetrics: &system.GPUData{
|
||||||
|
Name: "Jetson",
|
||||||
|
MemoryUsed: 4300.0,
|
||||||
|
MemoryTotal: 30698.0,
|
||||||
|
Usage: 45.0,
|
||||||
|
Temperature: 52.468,
|
||||||
|
Power: 2.171,
|
||||||
|
Count: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "missing temperature",
|
||||||
|
input: "RAM 4300/30698MB GR3D_FREQ 45% VDD_GPU_SOC 2171mW",
|
||||||
|
wantMetrics: &system.GPUData{
|
||||||
|
Name: "Jetson",
|
||||||
|
MemoryUsed: 4300.0,
|
||||||
|
MemoryTotal: 30698.0,
|
||||||
|
Usage: 45.0,
|
||||||
|
Power: 2.171,
|
||||||
|
Count: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "no gpu defined by nvidia-smi",
|
||||||
|
input: "RAM 4300/30698MB GR3D_FREQ 45% VDD_GPU_SOC 2171mW",
|
||||||
|
gm: &GPUManager{
|
||||||
|
GpuDataMap: map[string]*system.GPUData{},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
if tt.gm != nil {
|
||||||
|
// should return if no gpu set by nvidia-smi
|
||||||
|
assert.Empty(t, tt.gm.GpuDataMap)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
tt.gm = &GPUManager{
|
||||||
|
GpuDataMap: map[string]*system.GPUData{
|
||||||
|
"0": {Name: "Jetson"},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
parser := tt.gm.getJetsonParser()
|
||||||
|
valid := parser([]byte(tt.input))
|
||||||
|
assert.Equal(t, true, valid)
|
||||||
|
|
||||||
|
got := tt.gm.GpuDataMap["0"]
|
||||||
|
require.NotNil(t, got)
|
||||||
|
assert.Equal(t, tt.wantMetrics.Name, got.Name)
|
||||||
|
assert.InDelta(t, tt.wantMetrics.MemoryUsed, got.MemoryUsed, 0.01)
|
||||||
|
assert.InDelta(t, tt.wantMetrics.MemoryTotal, got.MemoryTotal, 0.01)
|
||||||
|
assert.InDelta(t, tt.wantMetrics.Usage, got.Usage, 0.01)
|
||||||
|
if tt.wantMetrics.Temperature > 0 {
|
||||||
|
assert.InDelta(t, tt.wantMetrics.Temperature, got.Temperature, 0.01)
|
||||||
|
}
|
||||||
|
assert.InDelta(t, tt.wantMetrics.Power, got.Power, 0.01)
|
||||||
|
assert.Equal(t, tt.wantMetrics.Count, got.Count)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestGetCurrentData(t *testing.T) {
|
||||||
|
gm := &GPUManager{
|
||||||
|
GpuDataMap: map[string]*system.GPUData{
|
||||||
|
"0": {
|
||||||
|
Name: "GPU1",
|
||||||
|
Temperature: 50,
|
||||||
|
MemoryUsed: 2048,
|
||||||
|
MemoryTotal: 4096,
|
||||||
|
Usage: 100, // 100 over 2 counts = 50 avg
|
||||||
|
Power: 200, // 200 over 2 counts = 100 avg
|
||||||
|
Count: 2,
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
Name: "GPU1",
|
||||||
|
Temperature: 60,
|
||||||
|
MemoryUsed: 3072,
|
||||||
|
MemoryTotal: 8192,
|
||||||
|
Usage: 30,
|
||||||
|
Power: 60,
|
||||||
|
Count: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
result := gm.GetCurrentData()
|
||||||
|
|
||||||
|
// Verify name disambiguation
|
||||||
|
assert.Equal(t, "GPU1 0", result["0"].Name)
|
||||||
|
assert.Equal(t, "GPU1 1", result["1"].Name)
|
||||||
|
|
||||||
|
// Check averaged values
|
||||||
|
assert.InDelta(t, 50.0, result["0"].Usage, 0.01)
|
||||||
|
assert.InDelta(t, 100.0, result["0"].Power, 0.01)
|
||||||
|
assert.InDelta(t, 30.0, result["1"].Usage, 0.01)
|
||||||
|
assert.InDelta(t, 60.0, result["1"].Power, 0.01)
|
||||||
|
|
||||||
|
// Verify reset counts
|
||||||
|
assert.Equal(t, float64(1), gm.GpuDataMap["0"].Count)
|
||||||
|
assert.Equal(t, float64(1), gm.GpuDataMap["1"].Count)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestDetectGPUs(t *testing.T) {
|
||||||
|
// Save original PATH
|
||||||
|
origPath := os.Getenv("PATH")
|
||||||
|
defer os.Setenv("PATH", origPath)
|
||||||
|
|
||||||
|
// Set up temp dir with the commands
|
||||||
|
tempDir := t.TempDir()
|
||||||
|
os.Setenv("PATH", tempDir)
|
||||||
|
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
setupCommands func() error
|
||||||
|
wantNvidiaSmi bool
|
||||||
|
wantRocmSmi bool
|
||||||
|
wantTegrastats bool
|
||||||
|
wantErr bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "nvidia-smi not available",
|
||||||
|
setupCommands: func() error {
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
wantNvidiaSmi: false,
|
||||||
|
wantRocmSmi: false,
|
||||||
|
wantTegrastats: false,
|
||||||
|
wantErr: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "nvidia-smi available",
|
||||||
|
setupCommands: func() error {
|
||||||
|
path := filepath.Join(tempDir, "nvidia-smi")
|
||||||
|
script := `#!/bin/sh
|
||||||
|
echo "test"`
|
||||||
|
if err := os.WriteFile(path, []byte(script), 0755); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
wantNvidiaSmi: true,
|
||||||
|
wantTegrastats: false,
|
||||||
|
wantRocmSmi: false,
|
||||||
|
wantErr: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "rocm-smi available",
|
||||||
|
setupCommands: func() error {
|
||||||
|
path := filepath.Join(tempDir, "rocm-smi")
|
||||||
|
script := `#!/bin/sh
|
||||||
|
echo "test"`
|
||||||
|
if err := os.WriteFile(path, []byte(script), 0755); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
wantNvidiaSmi: true,
|
||||||
|
wantRocmSmi: true,
|
||||||
|
wantTegrastats: false,
|
||||||
|
wantErr: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "tegrastats available",
|
||||||
|
setupCommands: func() error {
|
||||||
|
path := filepath.Join(tempDir, "tegrastats")
|
||||||
|
script := `#!/bin/sh
|
||||||
|
echo "test"`
|
||||||
|
if err := os.WriteFile(path, []byte(script), 0755); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
wantNvidiaSmi: true,
|
||||||
|
wantRocmSmi: true,
|
||||||
|
wantTegrastats: true,
|
||||||
|
wantErr: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "no gpu tools available",
|
||||||
|
setupCommands: func() error {
|
||||||
|
os.Setenv("PATH", "")
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
wantErr: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
if err := tt.setupCommands(); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
gm := &GPUManager{}
|
||||||
|
err := gm.detectGPUs()
|
||||||
|
|
||||||
|
t.Logf("nvidiaSmi: %v, rocmSmi: %v, tegrastats: %v", gm.nvidiaSmi, gm.rocmSmi, gm.tegrastats)
|
||||||
|
|
||||||
|
if tt.wantErr {
|
||||||
|
assert.Error(t, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, tt.wantNvidiaSmi, gm.nvidiaSmi)
|
||||||
|
assert.Equal(t, tt.wantRocmSmi, gm.rocmSmi)
|
||||||
|
assert.Equal(t, tt.wantTegrastats, gm.tegrastats)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStartCollector(t *testing.T) {
|
||||||
|
// Save original PATH
|
||||||
|
origPath := os.Getenv("PATH")
|
||||||
|
defer os.Setenv("PATH", origPath)
|
||||||
|
|
||||||
|
// Set up temp dir with the commands
|
||||||
|
dir := t.TempDir()
|
||||||
|
os.Setenv("PATH", dir)
|
||||||
|
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
command string
|
||||||
|
setup func(t *testing.T) error
|
||||||
|
validate func(t *testing.T, gm *GPUManager)
|
||||||
|
gm *GPUManager
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "nvidia-smi collector",
|
||||||
|
command: "nvidia-smi",
|
||||||
|
setup: func(t *testing.T) error {
|
||||||
|
path := filepath.Join(dir, "nvidia-smi")
|
||||||
|
script := `#!/bin/sh
|
||||||
|
echo "0, NVIDIA Test GPU, 50, 1024, 4096, 25, 100"`
|
||||||
|
if err := os.WriteFile(path, []byte(script), 0755); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
validate: func(t *testing.T, gm *GPUManager) {
|
||||||
|
gpu, exists := gm.GpuDataMap["0"]
|
||||||
|
assert.True(t, exists)
|
||||||
|
if exists {
|
||||||
|
assert.Equal(t, "Test GPU", gpu.Name)
|
||||||
|
assert.Equal(t, 50.0, gpu.Temperature)
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "rocm-smi collector",
|
||||||
|
command: "rocm-smi",
|
||||||
|
setup: func(t *testing.T) error {
|
||||||
|
path := filepath.Join(dir, "rocm-smi")
|
||||||
|
script := `#!/bin/sh
|
||||||
|
echo '{"card0": {"Temperature (Sensor edge) (C)": "49.0", "Current Socket Graphics Package Power (W)": "28.159", "GPU use (%)": "0", "VRAM Total Memory (B)": "536870912", "VRAM Total Used Memory (B)": "445550592", "Card Series": "Rembrandt [Radeon 680M]", "Card Model": "0x1681", "Card Vendor": "Advanced Micro Devices, Inc. [AMD/ATI]", "Card SKU": "REMBRANDT", "Subsystem ID": "0x8a22", "Device Rev": "0xc8", "Node ID": "1", "GUID": "34756", "GFX Version": "gfx1035"}}'`
|
||||||
|
if err := os.WriteFile(path, []byte(script), 0755); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
validate: func(t *testing.T, gm *GPUManager) {
|
||||||
|
gpu, exists := gm.GpuDataMap["34756"]
|
||||||
|
assert.True(t, exists)
|
||||||
|
if exists {
|
||||||
|
assert.Equal(t, "Rembrandt [Radeon 680M]", gpu.Name)
|
||||||
|
assert.InDelta(t, 49.0, gpu.Temperature, 0.01)
|
||||||
|
assert.InDelta(t, 28.159, gpu.Power, 0.01)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "tegrastats collector",
|
||||||
|
command: "tegrastats",
|
||||||
|
setup: func(t *testing.T) error {
|
||||||
|
path := filepath.Join(dir, "tegrastats")
|
||||||
|
script := `#!/bin/sh
|
||||||
|
echo "RAM 1024/4096MB GR3D_FREQ 80% tj@70C VDD_GPU_SOC 1000mW"`
|
||||||
|
if err := os.WriteFile(path, []byte(script), 0755); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
validate: func(t *testing.T, gm *GPUManager) {
|
||||||
|
gpu, exists := gm.GpuDataMap["0"]
|
||||||
|
assert.True(t, exists)
|
||||||
|
if exists {
|
||||||
|
assert.InDelta(t, 70.0, gpu.Temperature, 0.1)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
gm: &GPUManager{
|
||||||
|
GpuDataMap: map[string]*system.GPUData{
|
||||||
|
"0": {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
if err := tt.setup(t); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if tt.gm == nil {
|
||||||
|
tt.gm = &GPUManager{
|
||||||
|
GpuDataMap: make(map[string]*system.GPUData),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tt.gm.startCollector(tt.command)
|
||||||
|
time.Sleep(50 * time.Millisecond) // Give collector time to run
|
||||||
|
tt.validate(t, tt.gm)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,7 +2,6 @@ package agent
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"os"
|
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -15,7 +14,7 @@ func (a *Agent) initializeNetIoStats() {
|
|||||||
|
|
||||||
// map of network interface names passed in via NICS env var
|
// map of network interface names passed in via NICS env var
|
||||||
var nicsMap map[string]struct{}
|
var nicsMap map[string]struct{}
|
||||||
nics, nicsEnvExists := os.LookupEnv("NICS")
|
nics, nicsEnvExists := GetEnv("NICS")
|
||||||
if nicsEnvExists {
|
if nicsEnvExists {
|
||||||
nicsMap = make(map[string]struct{}, 0)
|
nicsMap = make(map[string]struct{}, 0)
|
||||||
for _, nic := range strings.Split(nics, ",") {
|
for _, nic := range strings.Split(nics, ",") {
|
||||||
|
|||||||
@@ -2,33 +2,96 @@ package agent
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
|
"net"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
|
|
||||||
sshServer "github.com/gliderlabs/ssh"
|
sshServer "github.com/gliderlabs/ssh"
|
||||||
|
"golang.org/x/crypto/ssh"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (a *Agent) startServer(pubKey []byte, addr string) {
|
type ServerOptions struct {
|
||||||
|
Addr string
|
||||||
|
Network string
|
||||||
|
Keys []ssh.PublicKey
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *Agent) StartServer(opts ServerOptions) error {
|
||||||
sshServer.Handle(a.handleSession)
|
sshServer.Handle(a.handleSession)
|
||||||
|
|
||||||
slog.Info("Starting SSH server", "address", addr)
|
slog.Info("Starting SSH server", "addr", opts.Addr, "network", opts.Network)
|
||||||
if err := sshServer.ListenAndServe(addr, nil, sshServer.NoPty(),
|
|
||||||
sshServer.PublicKeyAuth(func(ctx sshServer.Context, key sshServer.PublicKey) bool {
|
switch opts.Network {
|
||||||
allowed, _, _, _, _ := sshServer.ParseAuthorizedKey(pubKey)
|
case "unix":
|
||||||
return sshServer.KeysEqual(key, allowed)
|
// remove existing socket file if it exists
|
||||||
}),
|
if err := os.Remove(opts.Addr); err != nil && !os.IsNotExist(err) {
|
||||||
); err != nil {
|
return err
|
||||||
slog.Error("Error starting SSH server", "err", err)
|
}
|
||||||
os.Exit(1)
|
default:
|
||||||
|
// prefix with : if only port was provided
|
||||||
|
if !strings.Contains(opts.Addr, ":") {
|
||||||
|
opts.Addr = ":" + opts.Addr
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Listen on the address
|
||||||
|
ln, err := net.Listen(opts.Network, opts.Addr)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer ln.Close()
|
||||||
|
|
||||||
|
// Start SSH server on the listener
|
||||||
|
err = sshServer.Serve(ln, nil, sshServer.NoPty(),
|
||||||
|
sshServer.PublicKeyAuth(func(ctx sshServer.Context, key sshServer.PublicKey) bool {
|
||||||
|
for _, pubKey := range opts.Keys {
|
||||||
|
if sshServer.KeysEqual(key, pubKey) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *Agent) handleSession(s sshServer.Session) {
|
func (a *Agent) handleSession(s sshServer.Session) {
|
||||||
|
// slog.Debug("connection", "remoteaddr", s.RemoteAddr(), "user", s.User())
|
||||||
stats := a.gatherStats()
|
stats := a.gatherStats()
|
||||||
if err := json.NewEncoder(s).Encode(stats); err != nil {
|
if err := json.NewEncoder(s).Encode(stats); err != nil {
|
||||||
slog.Error("Error encoding stats", "err", err)
|
slog.Error("Error encoding stats", "err", err, "stats", stats)
|
||||||
s.Exit(1)
|
s.Exit(1)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
s.Exit(0)
|
s.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ParseKeys parses a string containing SSH public keys in authorized_keys format.
|
||||||
|
// It returns a slice of ssh.PublicKey and an error if any key fails to parse.
|
||||||
|
func ParseKeys(input string) ([]ssh.PublicKey, error) {
|
||||||
|
var parsedKeys []ssh.PublicKey
|
||||||
|
|
||||||
|
for line := range strings.Lines(input) {
|
||||||
|
line = strings.TrimSpace(line)
|
||||||
|
|
||||||
|
// Skip empty lines or comments
|
||||||
|
if len(line) == 0 || strings.HasPrefix(line, "#") {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse the key
|
||||||
|
parsedKey, _, _, _, err := ssh.ParseAuthorizedKey([]byte(line))
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed to parse key: %s, error: %w", line, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Append the parsed key to the list
|
||||||
|
parsedKeys = append(parsedKeys, parsedKey)
|
||||||
|
}
|
||||||
|
|
||||||
|
return parsedKeys, nil
|
||||||
|
}
|
||||||
|
|||||||
289
beszel/internal/agent/server_test.go
Normal file
289
beszel/internal/agent/server_test.go
Normal file
@@ -0,0 +1,289 @@
|
|||||||
|
package agent
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto/ed25519"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
"golang.org/x/crypto/ssh"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestStartServer(t *testing.T) {
|
||||||
|
// Generate a test key pair
|
||||||
|
pubKey, privKey, err := ed25519.GenerateKey(nil)
|
||||||
|
require.NoError(t, err)
|
||||||
|
signer, err := ssh.NewSignerFromKey(privKey)
|
||||||
|
require.NoError(t, err)
|
||||||
|
sshPubKey, err := ssh.NewPublicKey(pubKey)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
// Generate a different key pair for bad key test
|
||||||
|
badPubKey, badPrivKey, err := ed25519.GenerateKey(nil)
|
||||||
|
require.NoError(t, err)
|
||||||
|
badSigner, err := ssh.NewSignerFromKey(badPrivKey)
|
||||||
|
require.NoError(t, err)
|
||||||
|
sshBadPubKey, err := ssh.NewPublicKey(badPubKey)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
socketFile := filepath.Join(t.TempDir(), "beszel-test.sock")
|
||||||
|
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
config ServerOptions
|
||||||
|
wantErr bool
|
||||||
|
errContains string
|
||||||
|
setup func() error
|
||||||
|
cleanup func() error
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "tcp port only",
|
||||||
|
config: ServerOptions{
|
||||||
|
Network: "tcp",
|
||||||
|
Addr: "45987",
|
||||||
|
Keys: []ssh.PublicKey{sshPubKey},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "tcp with ipv4",
|
||||||
|
config: ServerOptions{
|
||||||
|
Network: "tcp4",
|
||||||
|
Addr: "127.0.0.1:45988",
|
||||||
|
Keys: []ssh.PublicKey{sshPubKey},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "tcp with ipv6",
|
||||||
|
config: ServerOptions{
|
||||||
|
Network: "tcp6",
|
||||||
|
Addr: "[::1]:45989",
|
||||||
|
Keys: []ssh.PublicKey{sshPubKey},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "unix socket",
|
||||||
|
config: ServerOptions{
|
||||||
|
Network: "unix",
|
||||||
|
Addr: socketFile,
|
||||||
|
Keys: []ssh.PublicKey{sshPubKey},
|
||||||
|
},
|
||||||
|
setup: func() error {
|
||||||
|
// Create a socket file that should be removed
|
||||||
|
f, err := os.Create(socketFile)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return f.Close()
|
||||||
|
},
|
||||||
|
cleanup: func() error {
|
||||||
|
return os.Remove(socketFile)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "bad key should fail",
|
||||||
|
config: ServerOptions{
|
||||||
|
Network: "tcp",
|
||||||
|
Addr: "45987",
|
||||||
|
Keys: []ssh.PublicKey{sshBadPubKey},
|
||||||
|
},
|
||||||
|
wantErr: true,
|
||||||
|
errContains: "ssh: handshake failed",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "good key still good",
|
||||||
|
config: ServerOptions{
|
||||||
|
Network: "tcp",
|
||||||
|
Addr: "45987",
|
||||||
|
Keys: []ssh.PublicKey{sshPubKey},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
if tt.setup != nil {
|
||||||
|
err := tt.setup()
|
||||||
|
require.NoError(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if tt.cleanup != nil {
|
||||||
|
defer tt.cleanup()
|
||||||
|
}
|
||||||
|
|
||||||
|
agent := NewAgent()
|
||||||
|
|
||||||
|
// Start server in a goroutine since it blocks
|
||||||
|
errChan := make(chan error, 1)
|
||||||
|
go func() {
|
||||||
|
errChan <- agent.StartServer(tt.config)
|
||||||
|
}()
|
||||||
|
|
||||||
|
// Add a short delay to allow the server to start
|
||||||
|
time.Sleep(100 * time.Millisecond)
|
||||||
|
|
||||||
|
// Try to connect to verify server is running
|
||||||
|
var client *ssh.Client
|
||||||
|
var err error
|
||||||
|
|
||||||
|
// Choose the appropriate signer based on the test case
|
||||||
|
testSigner := signer
|
||||||
|
if tt.name == "bad key should fail" {
|
||||||
|
testSigner = badSigner
|
||||||
|
}
|
||||||
|
|
||||||
|
sshClientConfig := &ssh.ClientConfig{
|
||||||
|
User: "a",
|
||||||
|
Auth: []ssh.AuthMethod{
|
||||||
|
ssh.PublicKeys(testSigner),
|
||||||
|
},
|
||||||
|
HostKeyCallback: ssh.InsecureIgnoreHostKey(),
|
||||||
|
Timeout: 4 * time.Second,
|
||||||
|
}
|
||||||
|
|
||||||
|
switch tt.config.Network {
|
||||||
|
case "unix":
|
||||||
|
client, err = ssh.Dial("unix", tt.config.Addr, sshClientConfig)
|
||||||
|
default:
|
||||||
|
if !strings.Contains(tt.config.Addr, ":") {
|
||||||
|
tt.config.Addr = ":" + tt.config.Addr
|
||||||
|
}
|
||||||
|
client, err = ssh.Dial("tcp", tt.config.Addr, sshClientConfig)
|
||||||
|
}
|
||||||
|
|
||||||
|
if tt.wantErr {
|
||||||
|
assert.Error(t, err)
|
||||||
|
if tt.errContains != "" {
|
||||||
|
assert.Contains(t, err.Error(), tt.errContains)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.NotNil(t, client)
|
||||||
|
client.Close()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////
|
||||||
|
//////////////////// ParseKeys Tests ////////////////////////////
|
||||||
|
/////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Helper function to generate a temporary file with content
|
||||||
|
func createTempFile(content string) (string, error) {
|
||||||
|
tmpFile, err := os.CreateTemp("", "ssh_keys_*.txt")
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("failed to create temp file: %w", err)
|
||||||
|
}
|
||||||
|
defer tmpFile.Close()
|
||||||
|
|
||||||
|
if _, err := tmpFile.WriteString(content); err != nil {
|
||||||
|
return "", fmt.Errorf("failed to write to temp file: %w", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return tmpFile.Name(), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test case 1: String with a single SSH key
|
||||||
|
func TestParseSingleKeyFromString(t *testing.T) {
|
||||||
|
input := "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKCBM91kukN7hbvFKtbpEeo2JXjCcNxXcdBH7V7ADMBo"
|
||||||
|
keys, err := ParseKeys(input)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Expected no error, got: %v", err)
|
||||||
|
}
|
||||||
|
if len(keys) != 1 {
|
||||||
|
t.Fatalf("Expected 1 key, got %d keys", len(keys))
|
||||||
|
}
|
||||||
|
if keys[0].Type() != "ssh-ed25519" {
|
||||||
|
t.Fatalf("Expected key type 'ssh-ed25519', got '%s'", keys[0].Type())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test case 2: String with multiple SSH keys
|
||||||
|
func TestParseMultipleKeysFromString(t *testing.T) {
|
||||||
|
input := "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKCBM91kukN7hbvFKtbpEeo2JXjCcNxXcdBH7V7ADMBo\nssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJDMtAOQfxDlCxe+A5lVbUY/DHxK1LAF2Z3AV0FYv36D \n #comment\n ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJDMtAOQfxDlCxe+A5lVbUY/DHxK1LAF2Z3AV0FYv36D"
|
||||||
|
keys, err := ParseKeys(input)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Expected no error, got: %v", err)
|
||||||
|
}
|
||||||
|
if len(keys) != 3 {
|
||||||
|
t.Fatalf("Expected 3 keys, got %d keys", len(keys))
|
||||||
|
}
|
||||||
|
if keys[0].Type() != "ssh-ed25519" || keys[1].Type() != "ssh-ed25519" || keys[2].Type() != "ssh-ed25519" {
|
||||||
|
t.Fatalf("Unexpected key types: %s, %s, %s", keys[0].Type(), keys[1].Type(), keys[2].Type())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test case 3: File with a single SSH key
|
||||||
|
func TestParseSingleKeyFromFile(t *testing.T) {
|
||||||
|
content := "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKCBM91kukN7hbvFKtbpEeo2JXjCcNxXcdBH7V7ADMBo"
|
||||||
|
filePath, err := createTempFile(content)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed to create temp file: %v", err)
|
||||||
|
}
|
||||||
|
defer os.Remove(filePath) // Clean up the file after the test
|
||||||
|
|
||||||
|
// Read the file content
|
||||||
|
fileContent, err := os.ReadFile(filePath)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed to read temp file: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse the keys
|
||||||
|
keys, err := ParseKeys(string(fileContent))
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Expected no error, got: %v", err)
|
||||||
|
}
|
||||||
|
if len(keys) != 1 {
|
||||||
|
t.Fatalf("Expected 1 key, got %d keys", len(keys))
|
||||||
|
}
|
||||||
|
if keys[0].Type() != "ssh-ed25519" {
|
||||||
|
t.Fatalf("Expected key type 'ssh-ed25519', got '%s'", keys[0].Type())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test case 4: File with multiple SSH keys
|
||||||
|
func TestParseMultipleKeysFromFile(t *testing.T) {
|
||||||
|
content := "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKCBM91kukN7hbvFKtbpEeo2JXjCcNxXcdBH7V7ADMBo\nssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJDMtAOQfxDlCxe+A5lVbUY/DHxK1LAF2Z3AV0FYv36D \n #comment\n ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJDMtAOQfxDlCxe+A5lVbUY/DHxK1LAF2Z3AV0FYv36D"
|
||||||
|
filePath, err := createTempFile(content)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed to create temp file: %v", err)
|
||||||
|
}
|
||||||
|
// defer os.Remove(filePath) // Clean up the file after the test
|
||||||
|
|
||||||
|
// Read the file content
|
||||||
|
fileContent, err := os.ReadFile(filePath)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed to read temp file: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse the keys
|
||||||
|
keys, err := ParseKeys(string(fileContent))
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Expected no error, got: %v", err)
|
||||||
|
}
|
||||||
|
if len(keys) != 3 {
|
||||||
|
t.Fatalf("Expected 3 keys, got %d keys", len(keys))
|
||||||
|
}
|
||||||
|
if keys[0].Type() != "ssh-ed25519" || keys[1].Type() != "ssh-ed25519" || keys[2].Type() != "ssh-ed25519" {
|
||||||
|
t.Fatalf("Unexpected key types: %s, %s, %s", keys[0].Type(), keys[1].Type(), keys[2].Type())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test case 5: Invalid SSH key input
|
||||||
|
func TestParseInvalidKey(t *testing.T) {
|
||||||
|
input := "invalid-key-data"
|
||||||
|
_, err := ParseKeys(input)
|
||||||
|
if err == nil {
|
||||||
|
t.Fatalf("Expected an error for invalid key, got nil")
|
||||||
|
}
|
||||||
|
expectedErrMsg := "failed to parse key"
|
||||||
|
if !strings.Contains(err.Error(), expectedErrMsg) {
|
||||||
|
t.Fatalf("Expected error message to contain '%s', got: %v", expectedErrMsg, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -138,6 +138,13 @@ func (a *Agent) getSystemStats() system.Stats {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// network stats
|
// network stats
|
||||||
|
if len(a.netInterfaces) == 0 {
|
||||||
|
// if no network interfaces, initialize again
|
||||||
|
// this is a fix if agent started before network is online (#466)
|
||||||
|
// maybe refactor this in the future to not cache interface names at all so we
|
||||||
|
// don't miss an interface that's been added after agent started in any circumstance
|
||||||
|
a.initializeNetIoStats()
|
||||||
|
}
|
||||||
if netIO, err := psutilNet.IOCounters(true); err == nil {
|
if netIO, err := psutilNet.IOCounters(true); err == nil {
|
||||||
secondsElapsed := time.Since(a.netIoStats.Time).Seconds()
|
secondsElapsed := time.Since(a.netIoStats.Time).Seconds()
|
||||||
a.netIoStats.Time = time.Now()
|
a.netIoStats.Time = time.Now()
|
||||||
@@ -178,44 +185,19 @@ func (a *Agent) getSystemStats() system.Stats {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// temperatures (skip if sensors whitelist is set to empty string)
|
// temperatures (skip if sensors whitelist is set to empty string)
|
||||||
if a.sensorsWhitelist != nil && len(a.sensorsWhitelist) == 0 {
|
err = a.updateTemperatures(&systemStats)
|
||||||
slog.Debug("Skipping temperature collection")
|
if err != nil {
|
||||||
} else {
|
slog.Error("Error getting temperatures", "err", err)
|
||||||
temps, err := sensors.TemperaturesWithContext(a.sensorsContext)
|
|
||||||
if err != nil {
|
|
||||||
slog.Debug("Sensor error", "err", err)
|
|
||||||
}
|
|
||||||
slog.Debug("Temperature", "sensors", temps)
|
|
||||||
if len(temps) > 0 {
|
|
||||||
systemStats.Temperatures = make(map[string]float64, len(temps))
|
|
||||||
for i, sensor := range temps {
|
|
||||||
// skip if temperature is 0
|
|
||||||
if sensor.Temperature <= 0 || sensor.Temperature >= 200 {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if _, ok := systemStats.Temperatures[sensor.SensorKey]; ok {
|
|
||||||
// if key already exists, append int to key
|
|
||||||
systemStats.Temperatures[sensor.SensorKey+"_"+strconv.Itoa(i)] = twoDecimals(sensor.Temperature)
|
|
||||||
} else {
|
|
||||||
systemStats.Temperatures[sensor.SensorKey] = twoDecimals(sensor.Temperature)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// remove sensors from systemStats if whitelist exists and sensor is not in whitelist
|
|
||||||
// (do this here instead of in initial loop so we have correct keys if int was appended)
|
|
||||||
if a.sensorsWhitelist != nil {
|
|
||||||
for key := range systemStats.Temperatures {
|
|
||||||
if _, nameInWhitelist := a.sensorsWhitelist[key]; !nameInWhitelist {
|
|
||||||
delete(systemStats.Temperatures, key)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GPU data
|
// GPU data
|
||||||
if a.gpuManager != nil {
|
if a.gpuManager != nil {
|
||||||
|
// reset high gpu percent
|
||||||
|
a.systemInfo.GpuPct = 0
|
||||||
|
// get current GPU data
|
||||||
if gpuData := a.gpuManager.GetCurrentData(); len(gpuData) > 0 {
|
if gpuData := a.gpuManager.GetCurrentData(); len(gpuData) > 0 {
|
||||||
systemStats.GPUData = gpuData
|
systemStats.GPUData = gpuData
|
||||||
|
|
||||||
// add temperatures
|
// add temperatures
|
||||||
if systemStats.Temperatures == nil {
|
if systemStats.Temperatures == nil {
|
||||||
systemStats.Temperatures = make(map[string]float64, len(gpuData))
|
systemStats.Temperatures = make(map[string]float64, len(gpuData))
|
||||||
@@ -224,6 +206,8 @@ func (a *Agent) getSystemStats() system.Stats {
|
|||||||
if gpu.Temperature > 0 {
|
if gpu.Temperature > 0 {
|
||||||
systemStats.Temperatures[gpu.Name] = gpu.Temperature
|
systemStats.Temperatures[gpu.Name] = gpu.Temperature
|
||||||
}
|
}
|
||||||
|
// update high gpu percent for dashboard
|
||||||
|
a.systemInfo.GpuPct = max(a.systemInfo.GpuPct, gpu.Usage)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -239,6 +223,60 @@ func (a *Agent) getSystemStats() system.Stats {
|
|||||||
return systemStats
|
return systemStats
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *Agent) updateTemperatures(systemStats *system.Stats) error {
|
||||||
|
// skip if sensors whitelist is set to empty string
|
||||||
|
if a.sensorsWhitelist != nil && len(a.sensorsWhitelist) == 0 {
|
||||||
|
slog.Debug("Skipping temperature collection")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
primarySensor, primarySensorIsDefined := GetEnv("PRIMARY_SENSOR")
|
||||||
|
|
||||||
|
// reset high temp
|
||||||
|
a.systemInfo.DashboardTemp = 0
|
||||||
|
|
||||||
|
// get sensor data
|
||||||
|
temps, err := sensors.TemperaturesWithContext(a.sensorsContext)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
slog.Debug("Temperature", "sensors", temps)
|
||||||
|
|
||||||
|
// return if no sensors
|
||||||
|
if len(temps) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
systemStats.Temperatures = make(map[string]float64, len(temps))
|
||||||
|
for i, sensor := range temps {
|
||||||
|
// skip if temperature is unreasonable
|
||||||
|
if sensor.Temperature <= 0 || sensor.Temperature >= 200 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
sensorName := sensor.SensorKey
|
||||||
|
if _, ok := systemStats.Temperatures[sensorName]; ok {
|
||||||
|
// if key already exists, append int to key
|
||||||
|
sensorName = sensorName + "_" + strconv.Itoa(i)
|
||||||
|
}
|
||||||
|
// skip if not in whitelist
|
||||||
|
if a.sensorsWhitelist != nil {
|
||||||
|
if _, nameInWhitelist := a.sensorsWhitelist[sensorName]; !nameInWhitelist {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// set dashboard temperature
|
||||||
|
if primarySensorIsDefined {
|
||||||
|
if sensorName == primarySensor {
|
||||||
|
a.systemInfo.DashboardTemp = sensor.Temperature
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
a.systemInfo.DashboardTemp = max(a.systemInfo.DashboardTemp, sensor.Temperature)
|
||||||
|
}
|
||||||
|
systemStats.Temperatures[sensorName] = twoDecimals(sensor.Temperature)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// Returns the size of the ZFS ARC memory cache in bytes
|
// Returns the size of the ZFS ARC memory cache in bytes
|
||||||
func getARCSize() (uint64, error) {
|
func getARCSize() (uint64, error) {
|
||||||
file, err := os.Open("/proc/spl/kstat/zfs/arcstats")
|
file, err := os.Open("/proc/spl/kstat/zfs/arcstats")
|
||||||
|
|||||||
@@ -2,26 +2,24 @@
|
|||||||
package alerts
|
package alerts
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"beszel/internal/entities/system"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/mail"
|
"net/mail"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strings"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containrrr/shoutrrr"
|
"github.com/containrrr/shoutrrr"
|
||||||
"github.com/goccy/go-json"
|
|
||||||
"github.com/pocketbase/dbx"
|
"github.com/pocketbase/dbx"
|
||||||
"github.com/pocketbase/pocketbase"
|
|
||||||
"github.com/pocketbase/pocketbase/apis"
|
"github.com/pocketbase/pocketbase/apis"
|
||||||
"github.com/pocketbase/pocketbase/core"
|
"github.com/pocketbase/pocketbase/core"
|
||||||
"github.com/pocketbase/pocketbase/tools/mailer"
|
"github.com/pocketbase/pocketbase/tools/mailer"
|
||||||
"github.com/pocketbase/pocketbase/tools/types"
|
|
||||||
"github.com/spf13/cast"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type AlertManager struct {
|
type AlertManager struct {
|
||||||
app *pocketbase.PocketBase
|
app core.App
|
||||||
|
alertQueue chan alertTask
|
||||||
|
stopChan chan struct{}
|
||||||
|
pendingAlerts sync.Map
|
||||||
}
|
}
|
||||||
|
|
||||||
type AlertMessageData struct {
|
type AlertMessageData struct {
|
||||||
@@ -61,351 +59,43 @@ type SystemAlertData struct {
|
|||||||
descriptor string // override descriptor in notification body (for temp sensor, disk partition, etc)
|
descriptor string // override descriptor in notification body (for temp sensor, disk partition, etc)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewAlertManager(app *pocketbase.PocketBase) *AlertManager {
|
// notification services that support title param
|
||||||
return &AlertManager{
|
var supportsTitle = map[string]struct{}{
|
||||||
app: app,
|
"bark": {},
|
||||||
}
|
"discord": {},
|
||||||
|
"gotify": {},
|
||||||
|
"ifttt": {},
|
||||||
|
"join": {},
|
||||||
|
"matrix": {},
|
||||||
|
"ntfy": {},
|
||||||
|
"opsgenie": {},
|
||||||
|
"pushbullet": {},
|
||||||
|
"pushover": {},
|
||||||
|
"slack": {},
|
||||||
|
"teams": {},
|
||||||
|
"telegram": {},
|
||||||
|
"zulip": {},
|
||||||
}
|
}
|
||||||
|
|
||||||
func (am *AlertManager) HandleSystemAlerts(systemRecord *core.Record, systemInfo system.Info, temperatures map[string]float64, extraFs map[string]*system.FsStats) error {
|
// NewAlertManager creates a new AlertManager instance.
|
||||||
// start := time.Now()
|
func NewAlertManager(app core.App) *AlertManager {
|
||||||
// defer func() {
|
am := &AlertManager{
|
||||||
// log.Println("alert stats took", time.Since(start))
|
app: app,
|
||||||
// }()
|
alertQueue: make(chan alertTask),
|
||||||
alertRecords, err := am.app.FindAllRecords("alerts",
|
stopChan: make(chan struct{}),
|
||||||
dbx.NewExp("system={:system}", dbx.Params{"system": systemRecord.Id}),
|
|
||||||
)
|
|
||||||
if err != nil || len(alertRecords) == 0 {
|
|
||||||
// log.Println("no alerts found for system")
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
go am.startWorker()
|
||||||
var validAlerts []SystemAlertData
|
return am
|
||||||
now := systemRecord.GetDateTime("updated").Time().UTC()
|
|
||||||
oldestTime := now
|
|
||||||
|
|
||||||
for _, alertRecord := range alertRecords {
|
|
||||||
name := alertRecord.GetString("name")
|
|
||||||
var val float64
|
|
||||||
unit := "%"
|
|
||||||
|
|
||||||
switch name {
|
|
||||||
case "CPU":
|
|
||||||
val = systemInfo.Cpu
|
|
||||||
case "Memory":
|
|
||||||
val = systemInfo.MemPct
|
|
||||||
case "Bandwidth":
|
|
||||||
val = systemInfo.Bandwidth
|
|
||||||
unit = " MB/s"
|
|
||||||
case "Disk":
|
|
||||||
maxUsedPct := systemInfo.DiskPct
|
|
||||||
for _, fs := range extraFs {
|
|
||||||
usedPct := fs.DiskUsed / fs.DiskTotal * 100
|
|
||||||
if usedPct > maxUsedPct {
|
|
||||||
maxUsedPct = usedPct
|
|
||||||
}
|
|
||||||
}
|
|
||||||
val = maxUsedPct
|
|
||||||
case "Temperature":
|
|
||||||
if temperatures == nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
for _, temp := range temperatures {
|
|
||||||
if temp > val {
|
|
||||||
val = temp
|
|
||||||
}
|
|
||||||
}
|
|
||||||
unit = "°C"
|
|
||||||
}
|
|
||||||
|
|
||||||
triggered := alertRecord.GetBool("triggered")
|
|
||||||
threshold := alertRecord.GetFloat("value")
|
|
||||||
|
|
||||||
// CONTINUE
|
|
||||||
// IF alert is not triggered and curValue is less than threshold
|
|
||||||
// OR alert is triggered and curValue is greater than threshold
|
|
||||||
if (!triggered && val <= threshold) || (triggered && val > threshold) {
|
|
||||||
// log.Printf("Skipping alert %s: val %f | threshold %f | triggered %v\n", name, val, threshold, triggered)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
min := max(1, cast.ToUint8(alertRecord.Get("min")))
|
|
||||||
// add time to alert time to make sure it's slighty after record creation
|
|
||||||
time := now.Add(-time.Duration(min) * time.Minute)
|
|
||||||
if time.Before(oldestTime) {
|
|
||||||
oldestTime = time
|
|
||||||
}
|
|
||||||
|
|
||||||
validAlerts = append(validAlerts, SystemAlertData{
|
|
||||||
systemRecord: systemRecord,
|
|
||||||
alertRecord: alertRecord,
|
|
||||||
name: name,
|
|
||||||
unit: unit,
|
|
||||||
val: val,
|
|
||||||
threshold: threshold,
|
|
||||||
triggered: triggered,
|
|
||||||
time: time,
|
|
||||||
min: min,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
systemStats := []struct {
|
|
||||||
Stats []byte `db:"stats"`
|
|
||||||
Created types.DateTime `db:"created"`
|
|
||||||
}{}
|
|
||||||
|
|
||||||
err = am.app.DB().
|
|
||||||
Select("stats", "created").
|
|
||||||
From("system_stats").
|
|
||||||
Where(dbx.NewExp(
|
|
||||||
"system={:system} AND type='1m' AND created > {:created}",
|
|
||||||
dbx.Params{
|
|
||||||
"system": systemRecord.Id,
|
|
||||||
// subtract some time to give us a bit of buffer
|
|
||||||
"created": oldestTime.Add(-time.Second * 90),
|
|
||||||
},
|
|
||||||
)).
|
|
||||||
OrderBy("created").
|
|
||||||
All(&systemStats)
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// get oldest record creation time from first record in the slice
|
|
||||||
oldestRecordTime := systemStats[0].Created.Time()
|
|
||||||
// log.Println("oldestRecordTime", oldestRecordTime.String())
|
|
||||||
|
|
||||||
// delete from validAlerts if time is older than oldestRecord
|
|
||||||
for i := 0; i < len(validAlerts); i++ {
|
|
||||||
if validAlerts[i].time.Before(oldestRecordTime) {
|
|
||||||
// log.Println("deleting alert - time is older than oldestRecord", validAlerts[i].name, oldestRecordTime, validAlerts[i].time)
|
|
||||||
validAlerts = append(validAlerts[:i], validAlerts[i+1:]...)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(validAlerts) == 0 {
|
|
||||||
// log.Println("no valid alerts found")
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
var stats SystemAlertStats
|
|
||||||
|
|
||||||
// we can skip the latest systemStats record since it's the current value
|
|
||||||
for i := 0; i < len(systemStats); i++ {
|
|
||||||
stat := systemStats[i]
|
|
||||||
// subtract 10 seconds to give a small time buffer
|
|
||||||
systemStatsCreation := stat.Created.Time().Add(-time.Second * 10)
|
|
||||||
if err := json.Unmarshal(stat.Stats, &stats); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
// log.Println("stats", stats)
|
|
||||||
for j := range validAlerts {
|
|
||||||
alert := &validAlerts[j]
|
|
||||||
// reset alert val on first iteration
|
|
||||||
if i == 0 {
|
|
||||||
alert.val = 0
|
|
||||||
}
|
|
||||||
// continue if system_stats is older than alert time range
|
|
||||||
if systemStatsCreation.Before(alert.time) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
// add to alert value
|
|
||||||
switch alert.name {
|
|
||||||
case "CPU":
|
|
||||||
alert.val += stats.Cpu
|
|
||||||
case "Memory":
|
|
||||||
alert.val += stats.Mem
|
|
||||||
case "Bandwidth":
|
|
||||||
alert.val += stats.NetSent + stats.NetRecv
|
|
||||||
case "Disk":
|
|
||||||
if alert.mapSums == nil {
|
|
||||||
alert.mapSums = make(map[string]float32, len(extraFs)+1)
|
|
||||||
}
|
|
||||||
// add root disk
|
|
||||||
if _, ok := alert.mapSums["root"]; !ok {
|
|
||||||
alert.mapSums["root"] = 0.0
|
|
||||||
}
|
|
||||||
alert.mapSums["root"] += float32(stats.Disk)
|
|
||||||
// add extra disks
|
|
||||||
for key, fs := range extraFs {
|
|
||||||
if _, ok := alert.mapSums[key]; !ok {
|
|
||||||
alert.mapSums[key] = 0.0
|
|
||||||
}
|
|
||||||
alert.mapSums[key] += float32(fs.DiskUsed / fs.DiskTotal * 100)
|
|
||||||
}
|
|
||||||
case "Temperature":
|
|
||||||
if alert.mapSums == nil {
|
|
||||||
alert.mapSums = make(map[string]float32, len(stats.Temperatures))
|
|
||||||
}
|
|
||||||
for key, temp := range stats.Temperatures {
|
|
||||||
if _, ok := alert.mapSums[key]; !ok {
|
|
||||||
alert.mapSums[key] = float32(0)
|
|
||||||
}
|
|
||||||
alert.mapSums[key] += temp
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
alert.count++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// sum up vals for each alert
|
|
||||||
for _, alert := range validAlerts {
|
|
||||||
switch alert.name {
|
|
||||||
case "Disk":
|
|
||||||
maxPct := float32(0)
|
|
||||||
for key, value := range alert.mapSums {
|
|
||||||
sumPct := float32(value)
|
|
||||||
if sumPct > maxPct {
|
|
||||||
maxPct = sumPct
|
|
||||||
alert.descriptor = fmt.Sprintf("Usage of %s", key)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
alert.val = float64(maxPct / float32(alert.count))
|
|
||||||
case "Temperature":
|
|
||||||
maxTemp := float32(0)
|
|
||||||
for key, value := range alert.mapSums {
|
|
||||||
sumTemp := float32(value) / float32(alert.count)
|
|
||||||
if sumTemp > maxTemp {
|
|
||||||
maxTemp = sumTemp
|
|
||||||
alert.descriptor = fmt.Sprintf("Highest sensor %s", key)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
alert.val = float64(maxTemp)
|
|
||||||
default:
|
|
||||||
alert.val = alert.val / float64(alert.count)
|
|
||||||
}
|
|
||||||
minCount := float32(alert.min) / 1.2
|
|
||||||
// log.Println("alert", alert.name, "val", alert.val, "threshold", alert.threshold, "triggered", alert.triggered)
|
|
||||||
// log.Printf("%s: val %f | count %d | min-count %f | threshold %f\n", alert.name, alert.val, alert.count, minCount, alert.threshold)
|
|
||||||
// pass through alert if count is greater than or equal to minCount
|
|
||||||
if float32(alert.count) >= minCount {
|
|
||||||
if !alert.triggered && alert.val > alert.threshold {
|
|
||||||
alert.triggered = true
|
|
||||||
go am.sendSystemAlert(alert)
|
|
||||||
} else if alert.triggered && alert.val <= alert.threshold {
|
|
||||||
alert.triggered = false
|
|
||||||
go am.sendSystemAlert(alert)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (am *AlertManager) sendSystemAlert(alert SystemAlertData) {
|
func (am *AlertManager) SendAlert(data AlertMessageData) error {
|
||||||
// log.Printf("Sending alert %s: val %f | count %d | threshold %f\n", alert.name, alert.val, alert.count, alert.threshold)
|
|
||||||
systemName := alert.systemRecord.GetString("name")
|
|
||||||
|
|
||||||
// change Disk to Disk usage
|
|
||||||
if alert.name == "Disk" {
|
|
||||||
alert.name += " usage"
|
|
||||||
}
|
|
||||||
|
|
||||||
// make title alert name lowercase if not CPU
|
|
||||||
titleAlertName := alert.name
|
|
||||||
if titleAlertName != "CPU" {
|
|
||||||
titleAlertName = strings.ToLower(titleAlertName)
|
|
||||||
}
|
|
||||||
|
|
||||||
var subject string
|
|
||||||
if alert.triggered {
|
|
||||||
subject = fmt.Sprintf("%s %s above threshold", systemName, titleAlertName)
|
|
||||||
} else {
|
|
||||||
subject = fmt.Sprintf("%s %s below threshold", systemName, titleAlertName)
|
|
||||||
}
|
|
||||||
minutesLabel := "minute"
|
|
||||||
if alert.min > 1 {
|
|
||||||
minutesLabel += "s"
|
|
||||||
}
|
|
||||||
if alert.descriptor == "" {
|
|
||||||
alert.descriptor = alert.name
|
|
||||||
}
|
|
||||||
body := fmt.Sprintf("%s averaged %.2f%s for the previous %v %s.", alert.descriptor, alert.val, alert.unit, alert.min, minutesLabel)
|
|
||||||
|
|
||||||
alert.alertRecord.Set("triggered", alert.triggered)
|
|
||||||
if err := am.app.Save(alert.alertRecord); err != nil {
|
|
||||||
// app.Logger().Error("failed to save alert record", "err", err.Error())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// expand the user relation and send the alert
|
|
||||||
if errs := am.app.ExpandRecord(alert.alertRecord, []string{"user"}, nil); len(errs) > 0 {
|
|
||||||
// app.Logger().Error("failed to expand user relation", "errs", errs)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if user := alert.alertRecord.ExpandedOne("user"); user != nil {
|
|
||||||
am.sendAlert(AlertMessageData{
|
|
||||||
UserID: user.Id,
|
|
||||||
Title: subject,
|
|
||||||
Message: body,
|
|
||||||
Link: am.app.Settings().Meta.AppURL + "/system/" + url.PathEscape(systemName),
|
|
||||||
LinkText: "View " + systemName,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// todo: allow x minutes downtime before sending alert
|
|
||||||
func (am *AlertManager) HandleStatusAlerts(newStatus string, oldSystemRecord *core.Record) error {
|
|
||||||
var alertStatus string
|
|
||||||
switch newStatus {
|
|
||||||
case "up":
|
|
||||||
if oldSystemRecord.GetString("status") == "down" {
|
|
||||||
alertStatus = "up"
|
|
||||||
}
|
|
||||||
case "down":
|
|
||||||
if oldSystemRecord.GetString("status") == "up" {
|
|
||||||
alertStatus = "down"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if alertStatus == "" {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
// check if use
|
|
||||||
alertRecords, err := am.app.FindAllRecords("alerts",
|
|
||||||
dbx.HashExp{
|
|
||||||
"system": oldSystemRecord.Id,
|
|
||||||
"name": "Status",
|
|
||||||
},
|
|
||||||
)
|
|
||||||
if err != nil || len(alertRecords) == 0 {
|
|
||||||
// log.Println("no alerts found for system")
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
for _, alertRecord := range alertRecords {
|
|
||||||
// expand the user relation
|
|
||||||
if errs := am.app.ExpandRecord(alertRecord, []string{"user"}, nil); len(errs) > 0 {
|
|
||||||
return fmt.Errorf("failed to expand: %v", errs)
|
|
||||||
}
|
|
||||||
user := alertRecord.ExpandedOne("user")
|
|
||||||
if user == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
emoji := "\U0001F534"
|
|
||||||
if alertStatus == "up" {
|
|
||||||
emoji = "\u2705"
|
|
||||||
}
|
|
||||||
// send alert
|
|
||||||
systemName := oldSystemRecord.GetString("name")
|
|
||||||
am.sendAlert(AlertMessageData{
|
|
||||||
UserID: user.Id,
|
|
||||||
Title: fmt.Sprintf("Connection to %s is %s %v", systemName, alertStatus, emoji),
|
|
||||||
Message: fmt.Sprintf("Connection to %s is %s", systemName, alertStatus),
|
|
||||||
Link: am.app.Settings().Meta.AppURL + "/system/" + url.PathEscape(systemName),
|
|
||||||
LinkText: "View " + systemName,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (am *AlertManager) sendAlert(data AlertMessageData) {
|
|
||||||
// get user settings
|
// get user settings
|
||||||
record, err := am.app.FindFirstRecordByFilter(
|
record, err := am.app.FindFirstRecordByFilter(
|
||||||
"user_settings", "user={:user}",
|
"user_settings", "user={:user}",
|
||||||
dbx.Params{"user": data.UserID},
|
dbx.Params{"user": data.UserID},
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
am.app.Logger().Error("Failed to get user settings", "err", err.Error())
|
return err
|
||||||
return
|
|
||||||
}
|
}
|
||||||
// unmarshal user settings
|
// unmarshal user settings
|
||||||
userAlertSettings := UserNotificationSettings{
|
userAlertSettings := UserNotificationSettings{
|
||||||
@@ -423,8 +113,7 @@ func (am *AlertManager) sendAlert(data AlertMessageData) {
|
|||||||
}
|
}
|
||||||
// send alerts via email
|
// send alerts via email
|
||||||
if len(userAlertSettings.Emails) == 0 {
|
if len(userAlertSettings.Emails) == 0 {
|
||||||
// log.Println("No email addresses found")
|
return nil
|
||||||
return
|
|
||||||
}
|
}
|
||||||
addresses := []mail.Address{}
|
addresses := []mail.Address{}
|
||||||
for _, email := range userAlertSettings.Emails {
|
for _, email := range userAlertSettings.Emails {
|
||||||
@@ -439,18 +128,16 @@ func (am *AlertManager) sendAlert(data AlertMessageData) {
|
|||||||
Name: am.app.Settings().Meta.SenderName,
|
Name: am.app.Settings().Meta.SenderName,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
if err := am.app.NewMailClient().Send(&message); err != nil {
|
err = am.app.NewMailClient().Send(&message)
|
||||||
am.app.Logger().Error("Failed to send alert: ", "err", err.Error())
|
if err != nil {
|
||||||
} else {
|
return err
|
||||||
am.app.Logger().Info("Sent email alert", "to", message.To, "subj", message.Subject)
|
|
||||||
}
|
}
|
||||||
|
am.app.Logger().Info("Sent email alert", "to", message.To, "subj", message.Subject)
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// SendShoutrrrAlert sends an alert via a Shoutrrr URL
|
// SendShoutrrrAlert sends an alert via a Shoutrrr URL
|
||||||
func (am *AlertManager) SendShoutrrrAlert(notificationUrl, title, message, link, linkText string) error {
|
func (am *AlertManager) SendShoutrrrAlert(notificationUrl, title, message, link, linkText string) error {
|
||||||
// services that support title param
|
|
||||||
supportsTitle := []string{"bark", "discord", "gotify", "ifttt", "join", "matrix", "ntfy", "opsgenie", "pushbullet", "pushover", "slack", "teams", "telegram", "zulip"}
|
|
||||||
|
|
||||||
// Parse the URL
|
// Parse the URL
|
||||||
parsedURL, err := url.Parse(notificationUrl)
|
parsedURL, err := url.Parse(notificationUrl)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -460,7 +147,7 @@ func (am *AlertManager) SendShoutrrrAlert(notificationUrl, title, message, link,
|
|||||||
queryParams := parsedURL.Query()
|
queryParams := parsedURL.Query()
|
||||||
|
|
||||||
// Add title
|
// Add title
|
||||||
if sliceContains(supportsTitle, scheme) {
|
if _, ok := supportsTitle[scheme]; ok {
|
||||||
queryParams.Add("title", title)
|
queryParams.Add("title", title)
|
||||||
} else if scheme == "mattermost" {
|
} else if scheme == "mattermost" {
|
||||||
// use markdown title for mattermost
|
// use markdown title for mattermost
|
||||||
@@ -501,16 +188,6 @@ func (am *AlertManager) SendShoutrrrAlert(notificationUrl, title, message, link,
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Contains checks if a string is present in a slice of strings
|
|
||||||
func sliceContains(slice []string, item string) bool {
|
|
||||||
for _, v := range slice {
|
|
||||||
if v == item {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func (am *AlertManager) SendTestNotification(e *core.RequestEvent) error {
|
func (am *AlertManager) SendTestNotification(e *core.RequestEvent) error {
|
||||||
info, _ := e.RequestInfo()
|
info, _ := e.RequestInfo()
|
||||||
if info.Auth == nil {
|
if info.Auth == nil {
|
||||||
|
|||||||
175
beszel/internal/alerts/alerts_status.go
Normal file
175
beszel/internal/alerts/alerts_status.go
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
package alerts
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"net/url"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/pocketbase/dbx"
|
||||||
|
"github.com/pocketbase/pocketbase/core"
|
||||||
|
)
|
||||||
|
|
||||||
|
type alertTask struct {
|
||||||
|
action string // "schedule" or "cancel"
|
||||||
|
systemName string
|
||||||
|
alertRecord *core.Record
|
||||||
|
delay time.Duration
|
||||||
|
}
|
||||||
|
|
||||||
|
type alertInfo struct {
|
||||||
|
systemName string
|
||||||
|
alertRecord *core.Record
|
||||||
|
expireTime time.Time
|
||||||
|
}
|
||||||
|
|
||||||
|
// startWorker is a long-running goroutine that processes alert tasks
|
||||||
|
// every x seconds. It must be running to process status alerts.
|
||||||
|
func (am *AlertManager) startWorker() {
|
||||||
|
// no special reason for 13 seconds
|
||||||
|
tick := time.Tick(13 * time.Second)
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-am.stopChan:
|
||||||
|
return
|
||||||
|
case task := <-am.alertQueue:
|
||||||
|
switch task.action {
|
||||||
|
case "schedule":
|
||||||
|
am.pendingAlerts.Store(task.alertRecord.Id, &alertInfo{
|
||||||
|
systemName: task.systemName,
|
||||||
|
alertRecord: task.alertRecord,
|
||||||
|
expireTime: time.Now().Add(task.delay),
|
||||||
|
})
|
||||||
|
case "cancel":
|
||||||
|
am.pendingAlerts.Delete(task.alertRecord.Id)
|
||||||
|
}
|
||||||
|
case <-tick:
|
||||||
|
// Check for expired alerts every tick
|
||||||
|
now := time.Now()
|
||||||
|
for key, value := range am.pendingAlerts.Range {
|
||||||
|
info := value.(*alertInfo)
|
||||||
|
if now.After(info.expireTime) {
|
||||||
|
// Downtime delay has passed, process alert
|
||||||
|
am.sendStatusAlert("down", info.systemName, info.alertRecord)
|
||||||
|
am.pendingAlerts.Delete(key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// StopWorker shuts down the AlertManager.worker goroutine
|
||||||
|
func (am *AlertManager) StopWorker() {
|
||||||
|
close(am.stopChan)
|
||||||
|
}
|
||||||
|
|
||||||
|
// HandleStatusAlerts manages the logic when system status changes.
|
||||||
|
func (am *AlertManager) HandleStatusAlerts(newStatus string, oldSystemRecord *core.Record) error {
|
||||||
|
switch newStatus {
|
||||||
|
case "up":
|
||||||
|
if oldSystemRecord.GetString("status") != "down" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
case "down":
|
||||||
|
if oldSystemRecord.GetString("status") != "up" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
alertRecords, err := am.getSystemStatusAlerts(oldSystemRecord.Id)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if len(alertRecords) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
systemName := oldSystemRecord.GetString("name")
|
||||||
|
if newStatus == "down" {
|
||||||
|
am.handleSystemDown(systemName, alertRecords)
|
||||||
|
} else {
|
||||||
|
am.handleSystemUp(systemName, alertRecords)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// getSystemStatusAlerts retrieves all "Status" alert records for a given system ID.
|
||||||
|
func (am *AlertManager) getSystemStatusAlerts(systemID string) ([]*core.Record, error) {
|
||||||
|
alertRecords, err := am.app.FindAllRecords("alerts", dbx.HashExp{
|
||||||
|
"system": systemID,
|
||||||
|
"name": "Status",
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return alertRecords, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Schedules delayed "down" alerts for each alert record.
|
||||||
|
func (am *AlertManager) handleSystemDown(systemName string, alertRecords []*core.Record) {
|
||||||
|
for _, alertRecord := range alertRecords {
|
||||||
|
// Continue if alert is already scheduled
|
||||||
|
if _, exists := am.pendingAlerts.Load(alertRecord.Id); exists {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// Schedule by adding to queue
|
||||||
|
min := max(1, alertRecord.GetInt("min"))
|
||||||
|
am.alertQueue <- alertTask{
|
||||||
|
action: "schedule",
|
||||||
|
systemName: systemName,
|
||||||
|
alertRecord: alertRecord,
|
||||||
|
delay: time.Duration(min) * time.Minute,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// handleSystemUp manages the logic when a system status changes to "up".
|
||||||
|
// It cancels any pending alerts and sends "up" alerts.
|
||||||
|
func (am *AlertManager) handleSystemUp(systemName string, alertRecords []*core.Record) {
|
||||||
|
for _, alertRecord := range alertRecords {
|
||||||
|
alertRecordID := alertRecord.Id
|
||||||
|
// If alert exists for record, delete and continue (down alert not sent)
|
||||||
|
if _, exists := am.pendingAlerts.Load(alertRecordID); exists {
|
||||||
|
am.alertQueue <- alertTask{
|
||||||
|
action: "cancel",
|
||||||
|
alertRecord: alertRecord,
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// No alert scheduled for this record, send "up" alert
|
||||||
|
if err := am.sendStatusAlert("up", systemName, alertRecord); err != nil {
|
||||||
|
am.app.Logger().Error("Failed to send alert", "err", err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// sendStatusAlert sends a status alert ("up" or "down") to the users associated with the alert records.
|
||||||
|
func (am *AlertManager) sendStatusAlert(alertStatus string, systemName string, alertRecord *core.Record) error {
|
||||||
|
var emoji string
|
||||||
|
if alertStatus == "up" {
|
||||||
|
emoji = "\u2705" // Green checkmark emoji
|
||||||
|
} else {
|
||||||
|
emoji = "\U0001F534" // Red alert emoji
|
||||||
|
}
|
||||||
|
|
||||||
|
title := fmt.Sprintf("Connection to %s is %s %v", systemName, alertStatus, emoji)
|
||||||
|
message := strings.TrimSuffix(title, emoji)
|
||||||
|
|
||||||
|
if errs := am.app.ExpandRecord(alertRecord, []string{"user"}, nil); len(errs) > 0 {
|
||||||
|
return errs["user"]
|
||||||
|
}
|
||||||
|
user := alertRecord.ExpandedOne("user")
|
||||||
|
if user == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return am.SendAlert(AlertMessageData{
|
||||||
|
UserID: user.Id,
|
||||||
|
Title: title,
|
||||||
|
Message: message,
|
||||||
|
Link: am.app.Settings().Meta.AppURL + "/system/" + url.PathEscape(systemName),
|
||||||
|
LinkText: "View " + systemName,
|
||||||
|
})
|
||||||
|
}
|
||||||
288
beszel/internal/alerts/alerts_system.go
Normal file
288
beszel/internal/alerts/alerts_system.go
Normal file
@@ -0,0 +1,288 @@
|
|||||||
|
package alerts
|
||||||
|
|
||||||
|
import (
|
||||||
|
"beszel/internal/entities/system"
|
||||||
|
"fmt"
|
||||||
|
"net/url"
|
||||||
|
"slices"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/goccy/go-json"
|
||||||
|
"github.com/pocketbase/dbx"
|
||||||
|
"github.com/pocketbase/pocketbase/core"
|
||||||
|
"github.com/pocketbase/pocketbase/tools/types"
|
||||||
|
"github.com/spf13/cast"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (am *AlertManager) HandleSystemAlerts(systemRecord *core.Record, systemInfo system.Info, temperatures map[string]float64, extraFs map[string]*system.FsStats) error {
|
||||||
|
alertRecords, err := am.app.FindAllRecords("alerts",
|
||||||
|
dbx.NewExp("system={:system}", dbx.Params{"system": systemRecord.Id}),
|
||||||
|
)
|
||||||
|
if err != nil || len(alertRecords) == 0 {
|
||||||
|
// log.Println("no alerts found for system")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var validAlerts []SystemAlertData
|
||||||
|
now := systemRecord.GetDateTime("updated").Time().UTC()
|
||||||
|
oldestTime := now
|
||||||
|
|
||||||
|
for _, alertRecord := range alertRecords {
|
||||||
|
name := alertRecord.GetString("name")
|
||||||
|
var val float64
|
||||||
|
unit := "%"
|
||||||
|
|
||||||
|
switch name {
|
||||||
|
case "CPU":
|
||||||
|
val = systemInfo.Cpu
|
||||||
|
case "Memory":
|
||||||
|
val = systemInfo.MemPct
|
||||||
|
case "Bandwidth":
|
||||||
|
val = systemInfo.Bandwidth
|
||||||
|
unit = " MB/s"
|
||||||
|
case "Disk":
|
||||||
|
maxUsedPct := systemInfo.DiskPct
|
||||||
|
for _, fs := range extraFs {
|
||||||
|
usedPct := fs.DiskUsed / fs.DiskTotal * 100
|
||||||
|
if usedPct > maxUsedPct {
|
||||||
|
maxUsedPct = usedPct
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val = maxUsedPct
|
||||||
|
case "Temperature":
|
||||||
|
if temperatures == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
for _, temp := range temperatures {
|
||||||
|
if temp > val {
|
||||||
|
val = temp
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unit = "°C"
|
||||||
|
}
|
||||||
|
|
||||||
|
triggered := alertRecord.GetBool("triggered")
|
||||||
|
threshold := alertRecord.GetFloat("value")
|
||||||
|
|
||||||
|
// CONTINUE
|
||||||
|
// IF alert is not triggered and curValue is less than threshold
|
||||||
|
// OR alert is triggered and curValue is greater than threshold
|
||||||
|
if (!triggered && val <= threshold) || (triggered && val > threshold) {
|
||||||
|
// log.Printf("Skipping alert %s: val %f | threshold %f | triggered %v\n", name, val, threshold, triggered)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
min := max(1, cast.ToUint8(alertRecord.Get("min")))
|
||||||
|
// add time to alert time to make sure it's slighty after record creation
|
||||||
|
time := now.Add(-time.Duration(min) * time.Minute)
|
||||||
|
if time.Before(oldestTime) {
|
||||||
|
oldestTime = time
|
||||||
|
}
|
||||||
|
|
||||||
|
validAlerts = append(validAlerts, SystemAlertData{
|
||||||
|
systemRecord: systemRecord,
|
||||||
|
alertRecord: alertRecord,
|
||||||
|
name: name,
|
||||||
|
unit: unit,
|
||||||
|
val: val,
|
||||||
|
threshold: threshold,
|
||||||
|
triggered: triggered,
|
||||||
|
time: time,
|
||||||
|
min: min,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
systemStats := []struct {
|
||||||
|
Stats []byte `db:"stats"`
|
||||||
|
Created types.DateTime `db:"created"`
|
||||||
|
}{}
|
||||||
|
|
||||||
|
err = am.app.DB().
|
||||||
|
Select("stats", "created").
|
||||||
|
From("system_stats").
|
||||||
|
Where(dbx.NewExp(
|
||||||
|
"system={:system} AND type='1m' AND created > {:created}",
|
||||||
|
dbx.Params{
|
||||||
|
"system": systemRecord.Id,
|
||||||
|
// subtract some time to give us a bit of buffer
|
||||||
|
"created": oldestTime.Add(-time.Second * 90),
|
||||||
|
},
|
||||||
|
)).
|
||||||
|
OrderBy("created").
|
||||||
|
All(&systemStats)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// get oldest record creation time from first record in the slice
|
||||||
|
oldestRecordTime := systemStats[0].Created.Time()
|
||||||
|
// log.Println("oldestRecordTime", oldestRecordTime.String())
|
||||||
|
|
||||||
|
// delete from validAlerts if time is older than oldestRecord
|
||||||
|
for i := range validAlerts {
|
||||||
|
if validAlerts[i].time.Before(oldestRecordTime) {
|
||||||
|
// log.Println("deleting alert - time is older than oldestRecord", validAlerts[i].name, oldestRecordTime, validAlerts[i].time)
|
||||||
|
validAlerts = slices.Delete(validAlerts, i, i+1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(validAlerts) == 0 {
|
||||||
|
// log.Println("no valid alerts found")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var stats SystemAlertStats
|
||||||
|
|
||||||
|
// we can skip the latest systemStats record since it's the current value
|
||||||
|
for i := range systemStats {
|
||||||
|
stat := systemStats[i]
|
||||||
|
// subtract 10 seconds to give a small time buffer
|
||||||
|
systemStatsCreation := stat.Created.Time().Add(-time.Second * 10)
|
||||||
|
if err := json.Unmarshal(stat.Stats, &stats); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
// log.Println("stats", stats)
|
||||||
|
for j := range validAlerts {
|
||||||
|
alert := &validAlerts[j]
|
||||||
|
// reset alert val on first iteration
|
||||||
|
if i == 0 {
|
||||||
|
alert.val = 0
|
||||||
|
}
|
||||||
|
// continue if system_stats is older than alert time range
|
||||||
|
if systemStatsCreation.Before(alert.time) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// add to alert value
|
||||||
|
switch alert.name {
|
||||||
|
case "CPU":
|
||||||
|
alert.val += stats.Cpu
|
||||||
|
case "Memory":
|
||||||
|
alert.val += stats.Mem
|
||||||
|
case "Bandwidth":
|
||||||
|
alert.val += stats.NetSent + stats.NetRecv
|
||||||
|
case "Disk":
|
||||||
|
if alert.mapSums == nil {
|
||||||
|
alert.mapSums = make(map[string]float32, len(extraFs)+1)
|
||||||
|
}
|
||||||
|
// add root disk
|
||||||
|
if _, ok := alert.mapSums["root"]; !ok {
|
||||||
|
alert.mapSums["root"] = 0.0
|
||||||
|
}
|
||||||
|
alert.mapSums["root"] += float32(stats.Disk)
|
||||||
|
// add extra disks
|
||||||
|
for key, fs := range extraFs {
|
||||||
|
if _, ok := alert.mapSums[key]; !ok {
|
||||||
|
alert.mapSums[key] = 0.0
|
||||||
|
}
|
||||||
|
alert.mapSums[key] += float32(fs.DiskUsed / fs.DiskTotal * 100)
|
||||||
|
}
|
||||||
|
case "Temperature":
|
||||||
|
if alert.mapSums == nil {
|
||||||
|
alert.mapSums = make(map[string]float32, len(stats.Temperatures))
|
||||||
|
}
|
||||||
|
for key, temp := range stats.Temperatures {
|
||||||
|
if _, ok := alert.mapSums[key]; !ok {
|
||||||
|
alert.mapSums[key] = float32(0)
|
||||||
|
}
|
||||||
|
alert.mapSums[key] += temp
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
alert.count++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// sum up vals for each alert
|
||||||
|
for _, alert := range validAlerts {
|
||||||
|
switch alert.name {
|
||||||
|
case "Disk":
|
||||||
|
maxPct := float32(0)
|
||||||
|
for key, value := range alert.mapSums {
|
||||||
|
sumPct := float32(value)
|
||||||
|
if sumPct > maxPct {
|
||||||
|
maxPct = sumPct
|
||||||
|
alert.descriptor = fmt.Sprintf("Usage of %s", key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
alert.val = float64(maxPct / float32(alert.count))
|
||||||
|
case "Temperature":
|
||||||
|
maxTemp := float32(0)
|
||||||
|
for key, value := range alert.mapSums {
|
||||||
|
sumTemp := float32(value) / float32(alert.count)
|
||||||
|
if sumTemp > maxTemp {
|
||||||
|
maxTemp = sumTemp
|
||||||
|
alert.descriptor = fmt.Sprintf("Highest sensor %s", key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
alert.val = float64(maxTemp)
|
||||||
|
default:
|
||||||
|
alert.val = alert.val / float64(alert.count)
|
||||||
|
}
|
||||||
|
minCount := float32(alert.min) / 1.2
|
||||||
|
// log.Println("alert", alert.name, "val", alert.val, "threshold", alert.threshold, "triggered", alert.triggered)
|
||||||
|
// log.Printf("%s: val %f | count %d | min-count %f | threshold %f\n", alert.name, alert.val, alert.count, minCount, alert.threshold)
|
||||||
|
// pass through alert if count is greater than or equal to minCount
|
||||||
|
if float32(alert.count) >= minCount {
|
||||||
|
if !alert.triggered && alert.val > alert.threshold {
|
||||||
|
alert.triggered = true
|
||||||
|
go am.sendSystemAlert(alert)
|
||||||
|
} else if alert.triggered && alert.val <= alert.threshold {
|
||||||
|
alert.triggered = false
|
||||||
|
go am.sendSystemAlert(alert)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (am *AlertManager) sendSystemAlert(alert SystemAlertData) {
|
||||||
|
// log.Printf("Sending alert %s: val %f | count %d | threshold %f\n", alert.name, alert.val, alert.count, alert.threshold)
|
||||||
|
systemName := alert.systemRecord.GetString("name")
|
||||||
|
|
||||||
|
// change Disk to Disk usage
|
||||||
|
if alert.name == "Disk" {
|
||||||
|
alert.name += " usage"
|
||||||
|
}
|
||||||
|
|
||||||
|
// make title alert name lowercase if not CPU
|
||||||
|
titleAlertName := alert.name
|
||||||
|
if titleAlertName != "CPU" {
|
||||||
|
titleAlertName = strings.ToLower(titleAlertName)
|
||||||
|
}
|
||||||
|
|
||||||
|
var subject string
|
||||||
|
if alert.triggered {
|
||||||
|
subject = fmt.Sprintf("%s %s above threshold", systemName, titleAlertName)
|
||||||
|
} else {
|
||||||
|
subject = fmt.Sprintf("%s %s below threshold", systemName, titleAlertName)
|
||||||
|
}
|
||||||
|
minutesLabel := "minute"
|
||||||
|
if alert.min > 1 {
|
||||||
|
minutesLabel += "s"
|
||||||
|
}
|
||||||
|
if alert.descriptor == "" {
|
||||||
|
alert.descriptor = alert.name
|
||||||
|
}
|
||||||
|
body := fmt.Sprintf("%s averaged %.2f%s for the previous %v %s.", alert.descriptor, alert.val, alert.unit, alert.min, minutesLabel)
|
||||||
|
|
||||||
|
alert.alertRecord.Set("triggered", alert.triggered)
|
||||||
|
if err := am.app.Save(alert.alertRecord); err != nil {
|
||||||
|
// app.Logger().Error("failed to save alert record", "err", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// expand the user relation and send the alert
|
||||||
|
if errs := am.app.ExpandRecord(alert.alertRecord, []string{"user"}, nil); len(errs) > 0 {
|
||||||
|
// app.Logger().Error("failed to expand user relation", "errs", errs)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if user := alert.alertRecord.ExpandedOne("user"); user != nil {
|
||||||
|
am.SendAlert(AlertMessageData{
|
||||||
|
UserID: user.Id,
|
||||||
|
Title: subject,
|
||||||
|
Message: body,
|
||||||
|
Link: am.app.Settings().Meta.AppURL + "/system/" + url.PathEscape(systemName),
|
||||||
|
LinkText: "View " + systemName,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -75,6 +75,8 @@ type Info struct {
|
|||||||
Bandwidth float64 `json:"b"`
|
Bandwidth float64 `json:"b"`
|
||||||
AgentVersion string `json:"v"`
|
AgentVersion string `json:"v"`
|
||||||
Podman bool `json:"p,omitempty"`
|
Podman bool `json:"p,omitempty"`
|
||||||
|
GpuPct float64 `json:"g,omitempty"`
|
||||||
|
DashboardTemp float64 `json:"dt,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Final data structure to return to the hub
|
// Final data structure to return to the hub
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ type SystemConfig struct {
|
|||||||
|
|
||||||
// Syncs systems with the config.yml file
|
// Syncs systems with the config.yml file
|
||||||
func (h *Hub) syncSystemsWithConfig() error {
|
func (h *Hub) syncSystemsWithConfig() error {
|
||||||
configPath := filepath.Join(h.app.DataDir(), "config.yml")
|
configPath := filepath.Join(h.DataDir(), "config.yml")
|
||||||
configData, err := os.ReadFile(configPath)
|
configData, err := os.ReadFile(configPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil
|
return nil
|
||||||
@@ -49,7 +49,7 @@ func (h *Hub) syncSystemsWithConfig() error {
|
|||||||
|
|
||||||
// Create a map of email to user ID
|
// Create a map of email to user ID
|
||||||
userEmailToID := make(map[string]string)
|
userEmailToID := make(map[string]string)
|
||||||
users, err := h.app.FindAllRecords("users", dbx.NewExp("id != ''"))
|
users, err := h.FindAllRecords("users", dbx.NewExp("id != ''"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -84,7 +84,7 @@ func (h *Hub) syncSystemsWithConfig() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get existing systems
|
// Get existing systems
|
||||||
existingSystems, err := h.app.FindAllRecords("systems", dbx.NewExp("id != ''"))
|
existingSystems, err := h.FindAllRecords("systems", dbx.NewExp("id != ''"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -104,13 +104,13 @@ func (h *Hub) syncSystemsWithConfig() error {
|
|||||||
existingSystem.Set("name", sysConfig.Name)
|
existingSystem.Set("name", sysConfig.Name)
|
||||||
existingSystem.Set("users", sysConfig.Users)
|
existingSystem.Set("users", sysConfig.Users)
|
||||||
existingSystem.Set("port", sysConfig.Port)
|
existingSystem.Set("port", sysConfig.Port)
|
||||||
if err := h.app.Save(existingSystem); err != nil {
|
if err := h.Save(existingSystem); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
delete(existingSystemsMap, key)
|
delete(existingSystemsMap, key)
|
||||||
} else {
|
} else {
|
||||||
// Create new system
|
// Create new system
|
||||||
systemsCollection, err := h.app.FindCollectionByNameOrId("systems")
|
systemsCollection, err := h.FindCollectionByNameOrId("systems")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to find systems collection: %v", err)
|
return fmt.Errorf("failed to find systems collection: %v", err)
|
||||||
}
|
}
|
||||||
@@ -121,7 +121,7 @@ func (h *Hub) syncSystemsWithConfig() error {
|
|||||||
newSystem.Set("users", sysConfig.Users)
|
newSystem.Set("users", sysConfig.Users)
|
||||||
newSystem.Set("info", system.Info{})
|
newSystem.Set("info", system.Info{})
|
||||||
newSystem.Set("status", "pending")
|
newSystem.Set("status", "pending")
|
||||||
if err := h.app.Save(newSystem); err != nil {
|
if err := h.Save(newSystem); err != nil {
|
||||||
return fmt.Errorf("failed to create new system: %v", err)
|
return fmt.Errorf("failed to create new system: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -129,7 +129,7 @@ func (h *Hub) syncSystemsWithConfig() error {
|
|||||||
|
|
||||||
// Delete systems not in config
|
// Delete systems not in config
|
||||||
for _, system := range existingSystemsMap {
|
for _, system := range existingSystemsMap {
|
||||||
if err := h.app.Delete(system); err != nil {
|
if err := h.Delete(system); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -141,7 +141,7 @@ func (h *Hub) syncSystemsWithConfig() error {
|
|||||||
// Generates content for the config.yml file as a YAML string
|
// Generates content for the config.yml file as a YAML string
|
||||||
func (h *Hub) generateConfigYAML() (string, error) {
|
func (h *Hub) generateConfigYAML() (string, error) {
|
||||||
// Fetch all systems from the database
|
// Fetch all systems from the database
|
||||||
systems, err := h.app.FindRecordsByFilter("systems", "id != ''", "name", -1, 0)
|
systems, err := h.FindRecordsByFilter("systems", "id != ''", "name", -1, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
@@ -194,7 +194,7 @@ func (h *Hub) generateConfigYAML() (string, error) {
|
|||||||
|
|
||||||
// New helper function to get a map of user IDs to emails
|
// New helper function to get a map of user IDs to emails
|
||||||
func (h *Hub) getUserEmailMap(userIDs []string) (map[string]string, error) {
|
func (h *Hub) getUserEmailMap(userIDs []string) (map[string]string, error) {
|
||||||
users, err := h.app.FindRecordsByIds("users", userIDs)
|
users, err := h.FindRecordsByIds("users", userIDs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ import (
|
|||||||
"beszel/internal/records"
|
"beszel/internal/records"
|
||||||
"beszel/internal/users"
|
"beszel/internal/users"
|
||||||
"beszel/site"
|
"beszel/site"
|
||||||
|
|
||||||
"context"
|
"context"
|
||||||
"crypto/ed25519"
|
"crypto/ed25519"
|
||||||
"encoding/pem"
|
"encoding/pem"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io/fs"
|
||||||
"log"
|
"log"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
@@ -20,7 +20,6 @@ import (
|
|||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
@@ -28,72 +27,101 @@ import (
|
|||||||
"github.com/pocketbase/pocketbase/apis"
|
"github.com/pocketbase/pocketbase/apis"
|
||||||
"github.com/pocketbase/pocketbase/core"
|
"github.com/pocketbase/pocketbase/core"
|
||||||
"github.com/pocketbase/pocketbase/plugins/migratecmd"
|
"github.com/pocketbase/pocketbase/plugins/migratecmd"
|
||||||
|
"github.com/spf13/cobra"
|
||||||
"golang.org/x/crypto/ssh"
|
"golang.org/x/crypto/ssh"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Hub struct {
|
type Hub struct {
|
||||||
app *pocketbase.PocketBase
|
*pocketbase.PocketBase
|
||||||
systemConnections sync.Map
|
sshClientConfig *ssh.ClientConfig
|
||||||
sshClientConfig *ssh.ClientConfig
|
pubKey string
|
||||||
pubKey string
|
am *alerts.AlertManager
|
||||||
am *alerts.AlertManager
|
um *users.UserManager
|
||||||
um *users.UserManager
|
rm *records.RecordManager
|
||||||
rm *records.RecordManager
|
systemStats *core.Collection
|
||||||
systemStats *core.Collection
|
containerStats *core.Collection
|
||||||
containerStats *core.Collection
|
appURL string
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewHub(app *pocketbase.PocketBase) *Hub {
|
// NewHub creates a new Hub instance with default configuration
|
||||||
return &Hub{
|
func NewHub() *Hub {
|
||||||
app: app,
|
var hub Hub
|
||||||
am: alerts.NewAlertManager(app),
|
hub.PocketBase = pocketbase.NewWithConfig(pocketbase.Config{
|
||||||
um: users.NewUserManager(app),
|
DefaultDataDir: beszel.AppName + "_data",
|
||||||
rm: records.NewRecordManager(app),
|
})
|
||||||
|
|
||||||
|
hub.RootCmd.Version = beszel.Version
|
||||||
|
hub.RootCmd.Use = beszel.AppName
|
||||||
|
hub.RootCmd.Short = ""
|
||||||
|
// add update command
|
||||||
|
hub.RootCmd.AddCommand(&cobra.Command{
|
||||||
|
Use: "update",
|
||||||
|
Short: "Update " + beszel.AppName + " to the latest version",
|
||||||
|
Run: Update,
|
||||||
|
})
|
||||||
|
|
||||||
|
hub.am = alerts.NewAlertManager(hub)
|
||||||
|
hub.um = users.NewUserManager(hub)
|
||||||
|
hub.rm = records.NewRecordManager(hub)
|
||||||
|
hub.appURL, _ = GetEnv("APP_URL")
|
||||||
|
return &hub
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetEnv retrieves an environment variable with a "BESZEL_HUB_" prefix, or falls back to the unprefixed key.
|
||||||
|
func GetEnv(key string) (value string, exists bool) {
|
||||||
|
if value, exists = os.LookupEnv("BESZEL_HUB_" + key); exists {
|
||||||
|
return value, exists
|
||||||
}
|
}
|
||||||
|
// Fallback to the old unprefixed key
|
||||||
|
return os.LookupEnv(key)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Hub) Run() {
|
func (h *Hub) Run() {
|
||||||
// loosely check if it was executed using "go run"
|
isDev := os.Getenv("ENV") == "dev"
|
||||||
isGoRun := strings.HasPrefix(os.Args[0], os.TempDir())
|
|
||||||
|
|
||||||
// enable auto creation of migration files when making collection changes in the Admin UI
|
// enable auto creation of migration files when making collection changes in the Admin UI
|
||||||
migratecmd.MustRegister(h.app, h.app.RootCmd, migratecmd.Config{
|
migratecmd.MustRegister(h, h.RootCmd, migratecmd.Config{
|
||||||
// (the isGoRun check is to enable it only during development)
|
// (the isDev check is to enable it only during development)
|
||||||
Automigrate: isGoRun,
|
Automigrate: isDev,
|
||||||
Dir: "../../migrations",
|
Dir: "../../migrations",
|
||||||
})
|
})
|
||||||
|
|
||||||
// initial setup
|
// initial setup
|
||||||
h.app.OnServe().BindFunc(func(se *core.ServeEvent) error {
|
h.OnServe().BindFunc(func(se *core.ServeEvent) error {
|
||||||
// create ssh client config
|
// create ssh client config
|
||||||
err := h.createSSHClientConfig()
|
err := h.createSSHClientConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
// set general settings
|
// set general settings
|
||||||
settings := h.app.Settings()
|
settings := h.Settings()
|
||||||
// batch requests (for global alerts)
|
// batch requests (for global alerts)
|
||||||
settings.Batch.Enabled = true
|
settings.Batch.Enabled = true
|
||||||
|
// set URL if BASE_URL env is set
|
||||||
|
if h.appURL != "" {
|
||||||
|
settings.Meta.AppURL = h.appURL
|
||||||
|
}
|
||||||
// set auth settings
|
// set auth settings
|
||||||
usersCollection, err := h.app.FindCollectionByNameOrId("users")
|
usersCollection, err := h.FindCollectionByNameOrId("users")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// disable email auth if DISABLE_PASSWORD_AUTH env var is set
|
// disable email auth if DISABLE_PASSWORD_AUTH env var is set
|
||||||
usersCollection.PasswordAuth.Enabled = os.Getenv("DISABLE_PASSWORD_AUTH") != "true"
|
disablePasswordAuth, _ := GetEnv("DISABLE_PASSWORD_AUTH")
|
||||||
|
usersCollection.PasswordAuth.Enabled = disablePasswordAuth != "true"
|
||||||
usersCollection.PasswordAuth.IdentityFields = []string{"email"}
|
usersCollection.PasswordAuth.IdentityFields = []string{"email"}
|
||||||
// disable oauth if no providers are configured (todo: remove this in post 0.9.0 release)
|
// disable oauth if no providers are configured (todo: remove this in post 0.9.0 release)
|
||||||
if usersCollection.OAuth2.Enabled {
|
if usersCollection.OAuth2.Enabled {
|
||||||
usersCollection.OAuth2.Enabled = len(usersCollection.OAuth2.Providers) > 0
|
usersCollection.OAuth2.Enabled = len(usersCollection.OAuth2.Providers) > 0
|
||||||
}
|
}
|
||||||
// allow oauth user creation if USER_CREATION is set
|
// allow oauth user creation if USER_CREATION is set
|
||||||
if os.Getenv("USER_CREATION") == "true" {
|
if userCreation, _ := GetEnv("USER_CREATION"); userCreation == "true" {
|
||||||
cr := "@request.context = 'oauth2'"
|
cr := "@request.context = 'oauth2'"
|
||||||
usersCollection.CreateRule = &cr
|
usersCollection.CreateRule = &cr
|
||||||
} else {
|
} else {
|
||||||
usersCollection.CreateRule = nil
|
usersCollection.CreateRule = nil
|
||||||
}
|
}
|
||||||
if err := h.app.Save(usersCollection); err != nil {
|
if err := h.Save(usersCollection); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// sync systems with config
|
// sync systems with config
|
||||||
@@ -102,40 +130,60 @@ func (h *Hub) Run() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// serve web ui
|
// serve web ui
|
||||||
h.app.OnServe().BindFunc(func(se *core.ServeEvent) error {
|
h.OnServe().BindFunc(func(se *core.ServeEvent) error {
|
||||||
switch isGoRun {
|
switch isDev {
|
||||||
case true:
|
case true:
|
||||||
proxy := httputil.NewSingleHostReverseProxy(&url.URL{
|
proxy := httputil.NewSingleHostReverseProxy(&url.URL{
|
||||||
Scheme: "http",
|
Scheme: "http",
|
||||||
Host: "localhost:5173",
|
Host: "localhost:5173",
|
||||||
})
|
})
|
||||||
se.Router.Any("/", func(e *core.RequestEvent) error {
|
se.Router.GET("/{path...}", func(e *core.RequestEvent) error {
|
||||||
proxy.ServeHTTP(e.Response, e.Request)
|
proxy.ServeHTTP(e.Response, e.Request)
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
default:
|
default:
|
||||||
csp, cspExists := os.LookupEnv("CSP")
|
// parse app url
|
||||||
se.Router.Any("/{path...}", func(e *core.RequestEvent) error {
|
parsedURL, err := url.Parse(h.appURL)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
// fix base paths in html if using subpath
|
||||||
|
basePath := strings.TrimSuffix(parsedURL.Path, "/") + "/"
|
||||||
|
indexFile, _ := fs.ReadFile(site.DistDirFS, "index.html")
|
||||||
|
indexContent := strings.ReplaceAll(string(indexFile), "./", basePath)
|
||||||
|
// set up static asset serving
|
||||||
|
staticPaths := [2]string{"/static/", "/assets/"}
|
||||||
|
serveStatic := apis.Static(site.DistDirFS, false)
|
||||||
|
// get CSP configuration
|
||||||
|
csp, cspExists := GetEnv("CSP")
|
||||||
|
// add route
|
||||||
|
se.Router.GET("/{path...}", func(e *core.RequestEvent) error {
|
||||||
|
// serve static assets if path is in staticPaths
|
||||||
|
for i := range staticPaths {
|
||||||
|
if strings.Contains(e.Request.URL.Path, staticPaths[i]) {
|
||||||
|
e.Response.Header().Set("Cache-Control", "public, max-age=2592000")
|
||||||
|
return serveStatic(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
if cspExists {
|
if cspExists {
|
||||||
e.Response.Header().Del("X-Frame-Options")
|
e.Response.Header().Del("X-Frame-Options")
|
||||||
e.Response.Header().Set("Content-Security-Policy", csp)
|
e.Response.Header().Set("Content-Security-Policy", csp)
|
||||||
}
|
}
|
||||||
indexFallback := !strings.HasPrefix(e.Request.URL.Path, "/static/")
|
return e.HTML(http.StatusOK, indexContent)
|
||||||
return apis.Static(site.DistDirFS, indexFallback)(e)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return se.Next()
|
return se.Next()
|
||||||
})
|
})
|
||||||
|
|
||||||
// set up scheduled jobs / ticker for system updates
|
// set up scheduled jobs / ticker for system updates
|
||||||
h.app.OnServe().BindFunc(func(se *core.ServeEvent) error {
|
h.OnServe().BindFunc(func(se *core.ServeEvent) error {
|
||||||
// 15 second ticker for system updates
|
// 15 second ticker for system updates
|
||||||
go h.startSystemUpdateTicker()
|
go h.startSystemUpdateTicker()
|
||||||
// set up cron jobs
|
// set up cron jobs
|
||||||
// delete old records once every hour
|
// delete old records once every hour
|
||||||
h.app.Cron().MustAdd("delete old records", "8 * * * *", h.rm.DeleteOldRecords)
|
h.Cron().MustAdd("delete old records", "8 * * * *", h.rm.DeleteOldRecords)
|
||||||
// create longer records every 10 minutes
|
// create longer records every 10 minutes
|
||||||
h.app.Cron().MustAdd("create longer records", "*/10 * * * *", func() {
|
h.Cron().MustAdd("create longer records", "*/10 * * * *", func() {
|
||||||
if systemStats, containerStats, err := h.getCollections(); err == nil {
|
if systemStats, containerStats, err := h.getCollections(); err == nil {
|
||||||
h.rm.CreateLongerRecords([]*core.Collection{systemStats, containerStats})
|
h.rm.CreateLongerRecords([]*core.Collection{systemStats, containerStats})
|
||||||
}
|
}
|
||||||
@@ -144,7 +192,7 @@ func (h *Hub) Run() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// custom api routes
|
// custom api routes
|
||||||
h.app.OnServe().BindFunc(func(se *core.ServeEvent) error {
|
h.OnServe().BindFunc(func(se *core.ServeEvent) error {
|
||||||
// returns public key
|
// returns public key
|
||||||
se.Router.GET("/api/beszel/getkey", func(e *core.RequestEvent) error {
|
se.Router.GET("/api/beszel/getkey", func(e *core.RequestEvent) error {
|
||||||
info, _ := e.RequestInfo()
|
info, _ := e.RequestInfo()
|
||||||
@@ -155,7 +203,7 @@ func (h *Hub) Run() {
|
|||||||
})
|
})
|
||||||
// check if first time setup on login page
|
// check if first time setup on login page
|
||||||
se.Router.GET("/api/beszel/first-run", func(e *core.RequestEvent) error {
|
se.Router.GET("/api/beszel/first-run", func(e *core.RequestEvent) error {
|
||||||
total, err := h.app.CountRecords("users")
|
total, err := h.CountRecords("users")
|
||||||
return e.JSON(http.StatusOK, map[string]bool{"firstRun": err == nil && total == 0})
|
return e.JSON(http.StatusOK, map[string]bool{"firstRun": err == nil && total == 0})
|
||||||
})
|
})
|
||||||
// send test notification
|
// send test notification
|
||||||
@@ -163,31 +211,31 @@ func (h *Hub) Run() {
|
|||||||
// API endpoint to get config.yml content
|
// API endpoint to get config.yml content
|
||||||
se.Router.GET("/api/beszel/config-yaml", h.getYamlConfig)
|
se.Router.GET("/api/beszel/config-yaml", h.getYamlConfig)
|
||||||
// create first user endpoint only needed if no users exist
|
// create first user endpoint only needed if no users exist
|
||||||
if totalUsers, _ := h.app.CountRecords("users"); totalUsers == 0 {
|
if totalUsers, _ := h.CountRecords("users"); totalUsers == 0 {
|
||||||
se.Router.POST("/api/beszel/create-user", h.um.CreateFirstUser)
|
se.Router.POST("/api/beszel/create-user", h.um.CreateFirstUser)
|
||||||
}
|
}
|
||||||
return se.Next()
|
return se.Next()
|
||||||
})
|
})
|
||||||
|
|
||||||
// system creation defaults
|
// system creation defaults
|
||||||
h.app.OnRecordCreate("systems").BindFunc(func(e *core.RecordEvent) error {
|
h.OnRecordCreate("systems").BindFunc(func(e *core.RecordEvent) error {
|
||||||
e.Record.Set("info", system.Info{})
|
e.Record.Set("info", system.Info{})
|
||||||
e.Record.Set("status", "pending")
|
e.Record.Set("status", "pending")
|
||||||
return e.Next()
|
return e.Next()
|
||||||
})
|
})
|
||||||
|
|
||||||
// immediately create connection for new systems
|
// immediately create connection for new systems
|
||||||
h.app.OnRecordAfterCreateSuccess("systems").BindFunc(func(e *core.RecordEvent) error {
|
h.OnRecordAfterCreateSuccess("systems").BindFunc(func(e *core.RecordEvent) error {
|
||||||
go h.updateSystem(e.Record)
|
go h.updateSystem(e.Record)
|
||||||
return e.Next()
|
return e.Next()
|
||||||
})
|
})
|
||||||
|
|
||||||
// handle default values for user / user_settings creation
|
// handle default values for user / user_settings creation
|
||||||
h.app.OnRecordCreate("users").BindFunc(h.um.InitializeUserRole)
|
h.OnRecordCreate("users").BindFunc(h.um.InitializeUserRole)
|
||||||
h.app.OnRecordCreate("user_settings").BindFunc(h.um.InitializeUserSettings)
|
h.OnRecordCreate("user_settings").BindFunc(h.um.InitializeUserSettings)
|
||||||
|
|
||||||
// empty info for systems that are paused
|
// empty info for systems that are paused
|
||||||
h.app.OnRecordUpdate("systems").BindFunc(func(e *core.RecordEvent) error {
|
h.OnRecordUpdate("systems").BindFunc(func(e *core.RecordEvent) error {
|
||||||
if e.Record.GetString("status") == "paused" {
|
if e.Record.GetString("status") == "paused" {
|
||||||
e.Record.Set("info", system.Info{})
|
e.Record.Set("info", system.Info{})
|
||||||
}
|
}
|
||||||
@@ -195,13 +243,13 @@ func (h *Hub) Run() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// do things after a systems record is updated
|
// do things after a systems record is updated
|
||||||
h.app.OnRecordAfterUpdateSuccess("systems").BindFunc(func(e *core.RecordEvent) error {
|
h.OnRecordAfterUpdateSuccess("systems").BindFunc(func(e *core.RecordEvent) error {
|
||||||
newRecord := e.Record.Fresh()
|
newRecord := e.Record.Fresh()
|
||||||
oldRecord := newRecord.Original()
|
oldRecord := newRecord.Original()
|
||||||
newStatus := newRecord.GetString("status")
|
newStatus := newRecord.GetString("status")
|
||||||
|
|
||||||
// if system is disconnected and connection exists, remove it
|
// if system is not up and connection exists, remove it
|
||||||
if newStatus == "down" || newStatus == "paused" {
|
if newStatus != "up" {
|
||||||
h.deleteSystemConnection(newRecord)
|
h.deleteSystemConnection(newRecord)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,31 +258,30 @@ func (h *Hub) Run() {
|
|||||||
go h.updateSystem(newRecord)
|
go h.updateSystem(newRecord)
|
||||||
} else {
|
} else {
|
||||||
h.am.HandleStatusAlerts(newStatus, oldRecord)
|
h.am.HandleStatusAlerts(newStatus, oldRecord)
|
||||||
|
|
||||||
}
|
}
|
||||||
return e.Next()
|
return e.Next()
|
||||||
})
|
})
|
||||||
|
|
||||||
// if system is deleted, close connection
|
// if system is deleted, close connection
|
||||||
h.app.OnRecordAfterDeleteSuccess("systems").BindFunc(func(e *core.RecordEvent) error {
|
h.OnRecordAfterDeleteSuccess("systems").BindFunc(func(e *core.RecordEvent) error {
|
||||||
h.deleteSystemConnection(e.Record)
|
h.deleteSystemConnection(e.Record)
|
||||||
return e.Next()
|
return e.Next()
|
||||||
})
|
})
|
||||||
|
|
||||||
if err := h.app.Start(); err != nil {
|
if err := h.Start(); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Hub) startSystemUpdateTicker() {
|
func (h *Hub) startSystemUpdateTicker() {
|
||||||
ticker := time.NewTicker(15 * time.Second)
|
c := time.Tick(15 * time.Second)
|
||||||
for range ticker.C {
|
for range c {
|
||||||
h.updateSystems()
|
h.updateSystems()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Hub) updateSystems() {
|
func (h *Hub) updateSystems() {
|
||||||
records, err := h.app.FindRecordsByFilter(
|
records, err := h.FindRecordsByFilter(
|
||||||
"2hz5ncl8tizk5nx", // systems collection
|
"2hz5ncl8tizk5nx", // systems collection
|
||||||
"status != 'paused'", // filter
|
"status != 'paused'", // filter
|
||||||
"updated", // sort
|
"updated", // sort
|
||||||
@@ -243,7 +290,7 @@ func (h *Hub) updateSystems() {
|
|||||||
)
|
)
|
||||||
// log.Println("records", len(records))
|
// log.Println("records", len(records))
|
||||||
if err != nil || len(records) == 0 {
|
if err != nil || len(records) == 0 {
|
||||||
// h.app.Logger().Error("Failed to query systems")
|
// h.Logger().Error("Failed to query systems")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
fiftySecondsAgo := time.Now().UTC().Add(-50 * time.Second)
|
fiftySecondsAgo := time.Now().UTC().Add(-50 * time.Second)
|
||||||
@@ -268,52 +315,52 @@ func (h *Hub) updateSystem(record *core.Record) {
|
|||||||
var err error
|
var err error
|
||||||
|
|
||||||
// check if system connection exists
|
// check if system connection exists
|
||||||
if existingClient, ok := h.systemConnections.Load(record.Id); ok {
|
if existingClient, ok := h.Store().GetOk(record.Id); ok {
|
||||||
client = existingClient.(*ssh.Client)
|
client = existingClient.(*ssh.Client)
|
||||||
} else {
|
} else {
|
||||||
// create system connection
|
// create system connection
|
||||||
client, err = h.createSystemConnection(record)
|
client, err = h.createSystemConnection(record)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if record.GetString("status") != "down" {
|
if record.GetString("status") != "down" {
|
||||||
h.app.Logger().Error("Failed to connect:", "err", err.Error(), "system", record.GetString("host"), "port", record.GetString("port"))
|
h.Logger().Error("Failed to connect:", "err", err.Error(), "system", record.GetString("host"), "port", record.GetString("port"))
|
||||||
h.updateSystemStatus(record, "down")
|
h.updateSystemStatus(record, "down")
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
h.systemConnections.Store(record.Id, client)
|
h.Store().Set(record.Id, client)
|
||||||
}
|
}
|
||||||
// get system stats from agent
|
// get system stats from agent
|
||||||
var systemData system.CombinedData
|
var systemData system.CombinedData
|
||||||
if err := h.requestJsonFromAgent(client, &systemData); err != nil {
|
if err := h.requestJsonFromAgent(client, &systemData); err != nil {
|
||||||
if err.Error() == "bad client" {
|
if err.Error() == "bad client" {
|
||||||
// if previous connection was closed, try again
|
// if previous connection was closed, try again
|
||||||
h.app.Logger().Error("Existing SSH connection closed. Retrying...", "host", record.GetString("host"), "port", record.GetString("port"))
|
h.Logger().Error("Existing SSH connection closed. Retrying...", "host", record.GetString("host"), "port", record.GetString("port"))
|
||||||
h.deleteSystemConnection(record)
|
h.deleteSystemConnection(record)
|
||||||
time.Sleep(time.Millisecond * 100)
|
time.Sleep(time.Millisecond * 100)
|
||||||
h.updateSystem(record)
|
h.updateSystem(record)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
h.app.Logger().Error("Failed to get system stats: ", "err", err.Error())
|
h.Logger().Error("Failed to get system stats: ", "err", err.Error())
|
||||||
h.updateSystemStatus(record, "down")
|
h.updateSystemStatus(record, "down")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// update system record
|
// update system record
|
||||||
record.Set("status", "up")
|
record.Set("status", "up")
|
||||||
record.Set("info", systemData.Info)
|
record.Set("info", systemData.Info)
|
||||||
if err := h.app.SaveNoValidate(record); err != nil {
|
if err := h.SaveNoValidate(record); err != nil {
|
||||||
h.app.Logger().Error("Failed to update record: ", "err", err.Error())
|
h.Logger().Error("Failed to update record: ", "err", err.Error())
|
||||||
}
|
}
|
||||||
// add system_stats and container_stats records
|
// add system_stats and container_stats records
|
||||||
if systemStats, containerStats, err := h.getCollections(); err != nil {
|
if systemStats, containerStats, err := h.getCollections(); err != nil {
|
||||||
h.app.Logger().Error("Failed to get collections: ", "err", err.Error())
|
h.Logger().Error("Failed to get collections: ", "err", err.Error())
|
||||||
} else {
|
} else {
|
||||||
// add new system_stats record
|
// add new system_stats record
|
||||||
systemStatsRecord := core.NewRecord(systemStats)
|
systemStatsRecord := core.NewRecord(systemStats)
|
||||||
systemStatsRecord.Set("system", record.Id)
|
systemStatsRecord.Set("system", record.Id)
|
||||||
systemStatsRecord.Set("stats", systemData.Stats)
|
systemStatsRecord.Set("stats", systemData.Stats)
|
||||||
systemStatsRecord.Set("type", "1m")
|
systemStatsRecord.Set("type", "1m")
|
||||||
if err := h.app.SaveNoValidate(systemStatsRecord); err != nil {
|
if err := h.SaveNoValidate(systemStatsRecord); err != nil {
|
||||||
h.app.Logger().Error("Failed to save record: ", "err", err.Error())
|
h.Logger().Error("Failed to save record: ", "err", err.Error())
|
||||||
}
|
}
|
||||||
// add new container_stats record
|
// add new container_stats record
|
||||||
if len(systemData.Containers) > 0 {
|
if len(systemData.Containers) > 0 {
|
||||||
@@ -321,29 +368,29 @@ func (h *Hub) updateSystem(record *core.Record) {
|
|||||||
containerStatsRecord.Set("system", record.Id)
|
containerStatsRecord.Set("system", record.Id)
|
||||||
containerStatsRecord.Set("stats", systemData.Containers)
|
containerStatsRecord.Set("stats", systemData.Containers)
|
||||||
containerStatsRecord.Set("type", "1m")
|
containerStatsRecord.Set("type", "1m")
|
||||||
if err := h.app.SaveNoValidate(containerStatsRecord); err != nil {
|
if err := h.SaveNoValidate(containerStatsRecord); err != nil {
|
||||||
h.app.Logger().Error("Failed to save record: ", "err", err.Error())
|
h.Logger().Error("Failed to save record: ", "err", err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// system info alerts
|
// system info alerts
|
||||||
if err := h.am.HandleSystemAlerts(record, systemData.Info, systemData.Stats.Temperatures, systemData.Stats.ExtraFs); err != nil {
|
if err := h.am.HandleSystemAlerts(record, systemData.Info, systemData.Stats.Temperatures, systemData.Stats.ExtraFs); err != nil {
|
||||||
h.app.Logger().Error("System alerts error", "err", err.Error())
|
h.Logger().Error("System alerts error", "err", err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// return system_stats and container_stats collections
|
// return system_stats and container_stats collections
|
||||||
func (h *Hub) getCollections() (*core.Collection, *core.Collection, error) {
|
func (h *Hub) getCollections() (*core.Collection, *core.Collection, error) {
|
||||||
if h.systemStats == nil {
|
if h.systemStats == nil {
|
||||||
systemStats, err := h.app.FindCollectionByNameOrId("system_stats")
|
systemStats, err := h.FindCollectionByNameOrId("system_stats")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
h.systemStats = systemStats
|
h.systemStats = systemStats
|
||||||
}
|
}
|
||||||
if h.containerStats == nil {
|
if h.containerStats == nil {
|
||||||
containerStats, err := h.app.FindCollectionByNameOrId("container_stats")
|
containerStats, err := h.FindCollectionByNameOrId("container_stats")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
@@ -356,24 +403,31 @@ func (h *Hub) getCollections() (*core.Collection, *core.Collection, error) {
|
|||||||
func (h *Hub) updateSystemStatus(record *core.Record, status string) {
|
func (h *Hub) updateSystemStatus(record *core.Record, status string) {
|
||||||
if record.Fresh().GetString("status") != status {
|
if record.Fresh().GetString("status") != status {
|
||||||
record.Set("status", status)
|
record.Set("status", status)
|
||||||
if err := h.app.SaveNoValidate(record); err != nil {
|
if err := h.SaveNoValidate(record); err != nil {
|
||||||
h.app.Logger().Error("Failed to update record: ", "err", err.Error())
|
h.Logger().Error("Failed to update record: ", "err", err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// delete system connection from map and close connection
|
// delete system connection from map and close connection
|
||||||
func (h *Hub) deleteSystemConnection(record *core.Record) {
|
func (h *Hub) deleteSystemConnection(record *core.Record) {
|
||||||
if client, ok := h.systemConnections.Load(record.Id); ok {
|
if client, ok := h.Store().GetOk(record.Id); ok {
|
||||||
if sshClient := client.(*ssh.Client); sshClient != nil {
|
if sshClient := client.(*ssh.Client); sshClient != nil {
|
||||||
sshClient.Close()
|
sshClient.Close()
|
||||||
}
|
}
|
||||||
h.systemConnections.Delete(record.Id)
|
h.Store().Remove(record.Id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Hub) createSystemConnection(record *core.Record) (*ssh.Client, error) {
|
func (h *Hub) createSystemConnection(record *core.Record) (*ssh.Client, error) {
|
||||||
client, err := ssh.Dial("tcp", net.JoinHostPort(record.GetString("host"), record.GetString("port")), h.sshClientConfig)
|
network := "tcp"
|
||||||
|
host := record.GetString("host")
|
||||||
|
if strings.HasPrefix(host, "/") {
|
||||||
|
network = "unix"
|
||||||
|
} else {
|
||||||
|
host = net.JoinHostPort(host, record.GetString("port"))
|
||||||
|
}
|
||||||
|
client, err := ssh.Dial(network, host, h.sshClientConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -383,7 +437,7 @@ func (h *Hub) createSystemConnection(record *core.Record) (*ssh.Client, error) {
|
|||||||
func (h *Hub) createSSHClientConfig() error {
|
func (h *Hub) createSSHClientConfig() error {
|
||||||
key, err := h.getSSHKey()
|
key, err := h.getSSHKey()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
h.app.Logger().Error("Failed to get SSH key: ", "err", err.Error())
|
h.Logger().Error("Failed to get SSH key: ", "err", err.Error())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -460,11 +514,11 @@ func newSessionWithTimeout(client *ssh.Client, timeout time.Duration) (*ssh.Sess
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (h *Hub) getSSHKey() ([]byte, error) {
|
func (h *Hub) getSSHKey() ([]byte, error) {
|
||||||
dataDir := h.app.DataDir()
|
dataDir := h.DataDir()
|
||||||
// check if the key pair already exists
|
// check if the key pair already exists
|
||||||
existingKey, err := os.ReadFile(dataDir + "/id_ed25519")
|
existingKey, err := os.ReadFile(dataDir + "/id_ed25519")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if pubKey, err := os.ReadFile(h.app.DataDir() + "/id_ed25519.pub"); err == nil {
|
if pubKey, err := os.ReadFile(h.DataDir() + "/id_ed25519.pub"); err == nil {
|
||||||
h.pubKey = strings.TrimSuffix(string(pubKey), "\n")
|
h.pubKey = strings.TrimSuffix(string(pubKey), "\n")
|
||||||
}
|
}
|
||||||
// return existing private key
|
// return existing private key
|
||||||
@@ -474,27 +528,27 @@ func (h *Hub) getSSHKey() ([]byte, error) {
|
|||||||
// Generate the Ed25519 key pair
|
// Generate the Ed25519 key pair
|
||||||
pubKey, privKey, err := ed25519.GenerateKey(nil)
|
pubKey, privKey, err := ed25519.GenerateKey(nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// h.app.Logger().Error("Error generating key pair:", "err", err.Error())
|
// h.Logger().Error("Error generating key pair:", "err", err.Error())
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the private key in OpenSSH format
|
// Get the private key in OpenSSH format
|
||||||
privKeyBytes, err := ssh.MarshalPrivateKey(privKey, "")
|
privKeyBytes, err := ssh.MarshalPrivateKey(privKey, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// h.app.Logger().Error("Error marshaling private key:", "err", err.Error())
|
// h.Logger().Error("Error marshaling private key:", "err", err.Error())
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save the private key to a file
|
// Save the private key to a file
|
||||||
privateFile, err := os.Create(dataDir + "/id_ed25519")
|
privateFile, err := os.Create(dataDir + "/id_ed25519")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// h.app.Logger().Error("Error creating private key file:", "err", err.Error())
|
// h.Logger().Error("Error creating private key file:", "err", err.Error())
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer privateFile.Close()
|
defer privateFile.Close()
|
||||||
|
|
||||||
if err := pem.Encode(privateFile, privKeyBytes); err != nil {
|
if err := pem.Encode(privateFile, privKeyBytes); err != nil {
|
||||||
// h.app.Logger().Error("Error writing private key to file:", "err", err.Error())
|
// h.Logger().Error("Error writing private key to file:", "err", err.Error())
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -518,9 +572,9 @@ func (h *Hub) getSSHKey() ([]byte, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
h.app.Logger().Info("ed25519 SSH key pair generated successfully.")
|
h.Logger().Info("ed25519 SSH key pair generated successfully.")
|
||||||
h.app.Logger().Info("Private key saved to: " + dataDir + "/id_ed25519")
|
h.Logger().Info("Private key saved to: " + dataDir + "/id_ed25519")
|
||||||
h.app.Logger().Info("Public key saved to: " + dataDir + "/id_ed25519.pub")
|
h.Logger().Info("Public key saved to: " + dataDir + "/id_ed25519.pub")
|
||||||
|
|
||||||
existingKey, err = os.ReadFile(dataDir + "/id_ed25519")
|
existingKey, err = os.ReadFile(dataDir + "/id_ed25519")
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|||||||
@@ -10,13 +10,12 @@ import (
|
|||||||
|
|
||||||
"github.com/goccy/go-json"
|
"github.com/goccy/go-json"
|
||||||
"github.com/pocketbase/dbx"
|
"github.com/pocketbase/dbx"
|
||||||
"github.com/pocketbase/pocketbase"
|
|
||||||
"github.com/pocketbase/pocketbase/core"
|
"github.com/pocketbase/pocketbase/core"
|
||||||
"github.com/pocketbase/pocketbase/tools/types"
|
"github.com/pocketbase/pocketbase/tools/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
type RecordManager struct {
|
type RecordManager struct {
|
||||||
app *pocketbase.PocketBase
|
app core.App
|
||||||
}
|
}
|
||||||
|
|
||||||
type LongerRecordData struct {
|
type LongerRecordData struct {
|
||||||
@@ -35,7 +34,7 @@ type RecordStats []struct {
|
|||||||
Stats []byte `db:"stats"`
|
Stats []byte `db:"stats"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewRecordManager(app *pocketbase.PocketBase) *RecordManager {
|
func NewRecordManager(app core.App) *RecordManager {
|
||||||
return &RecordManager{app}
|
return &RecordManager{app}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,6 +154,7 @@ func (rm *RecordManager) AverageSystemStats(records RecordStats) system.Stats {
|
|||||||
|
|
||||||
var stats system.Stats
|
var stats system.Stats
|
||||||
for i := range records {
|
for i := range records {
|
||||||
|
stats = system.Stats{} // Zero the struct before unmarshalling
|
||||||
json.Unmarshal(records[i].Stats, &stats)
|
json.Unmarshal(records[i].Stats, &stats)
|
||||||
sum.Cpu += stats.Cpu
|
sum.Cpu += stats.Cpu
|
||||||
sum.Mem += stats.Mem
|
sum.Mem += stats.Mem
|
||||||
|
|||||||
@@ -5,14 +5,12 @@ import (
|
|||||||
"beszel/migrations"
|
"beszel/migrations"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/pocketbase/pocketbase"
|
|
||||||
"github.com/pocketbase/pocketbase/core"
|
"github.com/pocketbase/pocketbase/core"
|
||||||
)
|
)
|
||||||
|
|
||||||
type UserManager struct {
|
type UserManager struct {
|
||||||
app *pocketbase.PocketBase
|
app core.App
|
||||||
}
|
}
|
||||||
|
|
||||||
type UserSettings struct {
|
type UserSettings struct {
|
||||||
@@ -22,7 +20,7 @@ type UserSettings struct {
|
|||||||
// Language string `json:"lang"`
|
// Language string `json:"lang"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewUserManager(app *pocketbase.PocketBase) *UserManager {
|
func NewUserManager(app core.App) *UserManager {
|
||||||
return &UserManager{
|
return &UserManager{
|
||||||
app: app,
|
app: app,
|
||||||
}
|
}
|
||||||
@@ -98,9 +96,6 @@ func (um *UserManager) CreateFirstUser(e *core.RequestEvent) error {
|
|||||||
user.SetPassword(data.Password)
|
user.SetPassword(data.Password)
|
||||||
user.Set("role", "admin")
|
user.Set("role", "admin")
|
||||||
user.Set("verified", true)
|
user.Set("verified", true)
|
||||||
if username := strings.Split(data.Email, "@")[0]; len(username) > 2 {
|
|
||||||
user.Set("username", username)
|
|
||||||
}
|
|
||||||
if err := um.app.Save(user); err != nil {
|
if err := um.app.Save(user); err != nil {
|
||||||
return e.JSON(http.StatusInternalServerError, map[string]string{"err": err.Error()})
|
return e.JSON(http.StatusInternalServerError, map[string]string{"err": err.Error()})
|
||||||
}
|
}
|
||||||
|
|||||||
98
beszel/migrations/1738624382_updated_users.go
Normal file
98
beszel/migrations/1738624382_updated_users.go
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
package migrations
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/pocketbase/pocketbase/core"
|
||||||
|
m "github.com/pocketbase/pocketbase/migrations"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
m.Register(func(app core.App) error {
|
||||||
|
collection, err := app.FindCollectionByNameOrId("_pb_users_auth_")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// update collection data
|
||||||
|
if err := json.Unmarshal([]byte(`{
|
||||||
|
"indexes": [
|
||||||
|
"CREATE UNIQUE INDEX ` + "`" + `__pb_users_auth__email_idx` + "`" + ` ON ` + "`" + `users` + "`" + ` (` + "`" + `email` + "`" + `) WHERE ` + "`" + `email` + "`" + ` != ''",
|
||||||
|
"CREATE UNIQUE INDEX ` + "`" + `__pb_users_auth__tokenKey_idx` + "`" + ` ON ` + "`" + `users` + "`" + ` (` + "`" + `tokenKey` + "`" + `)"
|
||||||
|
]
|
||||||
|
}`), &collection); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// remove field
|
||||||
|
collection.Fields.RemoveById("text4166911607")
|
||||||
|
|
||||||
|
// update field
|
||||||
|
if err := collection.Fields.AddMarshaledJSONAt(3, []byte(`{
|
||||||
|
"exceptDomains": null,
|
||||||
|
"hidden": false,
|
||||||
|
"id": "email3885137012",
|
||||||
|
"name": "email",
|
||||||
|
"onlyDomains": null,
|
||||||
|
"presentable": false,
|
||||||
|
"required": true,
|
||||||
|
"system": true,
|
||||||
|
"type": "email"
|
||||||
|
}`)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return app.Save(collection)
|
||||||
|
}, func(app core.App) error {
|
||||||
|
collection, err := app.FindCollectionByNameOrId("_pb_users_auth_")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// update collection data
|
||||||
|
if err := json.Unmarshal([]byte(`{
|
||||||
|
"indexes": [
|
||||||
|
"CREATE UNIQUE INDEX ` + "`" + `__pb_users_auth__username_idx` + "`" + ` ON ` + "`" + `users` + "`" + ` (username COLLATE NOCASE)",
|
||||||
|
"CREATE UNIQUE INDEX ` + "`" + `__pb_users_auth__email_idx` + "`" + ` ON ` + "`" + `users` + "`" + ` (` + "`" + `email` + "`" + `) WHERE ` + "`" + `email` + "`" + ` != ''",
|
||||||
|
"CREATE UNIQUE INDEX ` + "`" + `__pb_users_auth__tokenKey_idx` + "`" + ` ON ` + "`" + `users` + "`" + ` (` + "`" + `tokenKey` + "`" + `)"
|
||||||
|
]
|
||||||
|
}`), &collection); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// add field
|
||||||
|
if err := collection.Fields.AddMarshaledJSONAt(6, []byte(`{
|
||||||
|
"autogeneratePattern": "users[0-9]{6}",
|
||||||
|
"hidden": false,
|
||||||
|
"id": "text4166911607",
|
||||||
|
"max": 150,
|
||||||
|
"min": 3,
|
||||||
|
"name": "username",
|
||||||
|
"pattern": "^[\\w][\\w\\.\\-]*$",
|
||||||
|
"presentable": false,
|
||||||
|
"primaryKey": false,
|
||||||
|
"required": true,
|
||||||
|
"system": false,
|
||||||
|
"type": "text"
|
||||||
|
}`)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// update field
|
||||||
|
if err := collection.Fields.AddMarshaledJSONAt(3, []byte(`{
|
||||||
|
"exceptDomains": null,
|
||||||
|
"hidden": false,
|
||||||
|
"id": "email3885137012",
|
||||||
|
"name": "email",
|
||||||
|
"onlyDomains": null,
|
||||||
|
"presentable": false,
|
||||||
|
"required": false,
|
||||||
|
"system": true,
|
||||||
|
"type": "email"
|
||||||
|
}`)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return app.Save(collection)
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -3,7 +3,6 @@ package migrations
|
|||||||
import (
|
import (
|
||||||
"github.com/pocketbase/pocketbase/core"
|
"github.com/pocketbase/pocketbase/core"
|
||||||
m "github.com/pocketbase/pocketbase/migrations"
|
m "github.com/pocketbase/pocketbase/migrations"
|
||||||
"github.com/pocketbase/pocketbase/tools/security"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -16,6 +15,7 @@ func init() {
|
|||||||
settings := app.Settings()
|
settings := app.Settings()
|
||||||
settings.Meta.AppName = "Beszel"
|
settings.Meta.AppName = "Beszel"
|
||||||
settings.Meta.HideControls = true
|
settings.Meta.HideControls = true
|
||||||
|
settings.Logs.MinLevel = 4
|
||||||
if err := app.Save(settings); err != nil {
|
if err := app.Save(settings); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -23,7 +23,7 @@ func init() {
|
|||||||
collection, _ := app.FindCollectionByNameOrId(core.CollectionNameSuperusers)
|
collection, _ := app.FindCollectionByNameOrId(core.CollectionNameSuperusers)
|
||||||
user := core.NewRecord(collection)
|
user := core.NewRecord(collection)
|
||||||
user.SetEmail(TempAdminEmail)
|
user.SetEmail(TempAdminEmail)
|
||||||
user.SetPassword(security.RandomString(12))
|
user.SetRandomPassword()
|
||||||
return app.Save(user)
|
return app.Save(user)
|
||||||
}, nil)
|
}, nil)
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -1,10 +1,12 @@
|
|||||||
<!DOCTYPE html>
|
<!doctype html>
|
||||||
<html lang="en" dir="ltr">
|
<html lang="en" dir="ltr">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg" />
|
<link rel="manifest" href="./static/manifest.json" />
|
||||||
|
<link rel="icon" type="image/svg+xml" href="./static/favicon.svg" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Beszel</title>
|
<title>Beszel</title>
|
||||||
|
<script>window.BASE_PATH = "%BASE_URL%"</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
|
|||||||
@@ -4,23 +4,30 @@ const config: LinguiConfig = {
|
|||||||
locales: [
|
locales: [
|
||||||
"en",
|
"en",
|
||||||
"ar",
|
"ar",
|
||||||
|
"bg",
|
||||||
"cs",
|
"cs",
|
||||||
|
"da",
|
||||||
"de",
|
"de",
|
||||||
"es",
|
"es",
|
||||||
"fa",
|
"fa",
|
||||||
"fr",
|
"fr",
|
||||||
"hr",
|
"hr",
|
||||||
|
"hu",
|
||||||
"it",
|
"it",
|
||||||
|
"is",
|
||||||
"ja",
|
"ja",
|
||||||
"ko",
|
"ko",
|
||||||
"nl",
|
"nl",
|
||||||
|
"no",
|
||||||
"pl",
|
"pl",
|
||||||
"pt",
|
"pt",
|
||||||
"tr",
|
"tr",
|
||||||
"ru",
|
"ru",
|
||||||
|
"sl",
|
||||||
"sv",
|
"sv",
|
||||||
"uk",
|
"uk",
|
||||||
"vi",
|
"vi",
|
||||||
|
"zh",
|
||||||
"zh-CN",
|
"zh-CN",
|
||||||
"zh-HK",
|
"zh-HK",
|
||||||
],
|
],
|
||||||
|
|||||||
422
beszel/site/package-lock.json
generated
422
beszel/site/package-lock.json
generated
@@ -14,20 +14,20 @@
|
|||||||
"@lingui/react": "^4.14.1",
|
"@lingui/react": "^4.14.1",
|
||||||
"@nanostores/react": "^0.7.3",
|
"@nanostores/react": "^0.7.3",
|
||||||
"@nanostores/router": "^0.11.0",
|
"@nanostores/router": "^0.11.0",
|
||||||
"@radix-ui/react-alert-dialog": "^1.1.4",
|
"@radix-ui/react-alert-dialog": "^1.1.6",
|
||||||
"@radix-ui/react-checkbox": "^1.1.3",
|
"@radix-ui/react-checkbox": "^1.1.4",
|
||||||
"@radix-ui/react-dialog": "^1.1.4",
|
"@radix-ui/react-dialog": "^1.1.6",
|
||||||
"@radix-ui/react-direction": "^1.1.0",
|
"@radix-ui/react-direction": "^1.1.0",
|
||||||
"@radix-ui/react-dropdown-menu": "^2.1.4",
|
"@radix-ui/react-dropdown-menu": "^2.1.6",
|
||||||
"@radix-ui/react-label": "^2.1.1",
|
"@radix-ui/react-label": "^2.1.2",
|
||||||
"@radix-ui/react-select": "^2.1.4",
|
"@radix-ui/react-select": "^2.1.6",
|
||||||
"@radix-ui/react-separator": "^1.1.1",
|
"@radix-ui/react-separator": "^1.1.2",
|
||||||
"@radix-ui/react-slider": "^1.2.2",
|
"@radix-ui/react-slider": "^1.2.3",
|
||||||
"@radix-ui/react-slot": "^1.1.1",
|
"@radix-ui/react-slot": "^1.1.2",
|
||||||
"@radix-ui/react-switch": "^1.1.2",
|
"@radix-ui/react-switch": "^1.1.3",
|
||||||
"@radix-ui/react-tabs": "^1.1.2",
|
"@radix-ui/react-tabs": "^1.1.3",
|
||||||
"@radix-ui/react-toast": "^1.2.4",
|
"@radix-ui/react-toast": "^1.2.6",
|
||||||
"@radix-ui/react-tooltip": "^1.1.6",
|
"@radix-ui/react-tooltip": "^1.1.8",
|
||||||
"@tanstack/react-table": "^8.20.6",
|
"@tanstack/react-table": "^8.20.6",
|
||||||
"class-variance-authority": "^0.7.1",
|
"class-variance-authority": "^0.7.1",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
@@ -35,11 +35,11 @@
|
|||||||
"d3-time": "^3.1.0",
|
"d3-time": "^3.1.0",
|
||||||
"lucide-react": "^0.452.0",
|
"lucide-react": "^0.452.0",
|
||||||
"nanostores": "^0.11.3",
|
"nanostores": "^0.11.3",
|
||||||
"pocketbase": "^0.22.1",
|
"pocketbase": "^0.25.1",
|
||||||
"react": "^18.3.1",
|
"react": "^18.3.1",
|
||||||
"react-dom": "^18.3.1",
|
"react-dom": "^18.3.1",
|
||||||
"recharts": "^2.15.0",
|
"recharts": "^2.15.1",
|
||||||
"tailwind-merge": "^2.5.5",
|
"tailwind-merge": "^2.6.0",
|
||||||
"tailwindcss-animate": "^1.0.7",
|
"tailwindcss-animate": "^1.0.7",
|
||||||
"valibot": "^0.36.0"
|
"valibot": "^0.36.0"
|
||||||
},
|
},
|
||||||
@@ -47,16 +47,16 @@
|
|||||||
"@lingui/cli": "^4.14.1",
|
"@lingui/cli": "^4.14.1",
|
||||||
"@lingui/swc-plugin": "^4.1.0",
|
"@lingui/swc-plugin": "^4.1.0",
|
||||||
"@lingui/vite-plugin": "^4.14.1",
|
"@lingui/vite-plugin": "^4.14.1",
|
||||||
"@types/bun": "^1.1.14",
|
"@types/bun": "^1.2.2",
|
||||||
"@types/react": "^18.3.17",
|
"@types/react": "^18.3.18",
|
||||||
"@types/react-dom": "^18.3.5",
|
"@types/react-dom": "^18.3.5",
|
||||||
"@vitejs/plugin-react-swc": "^3.7.2",
|
"@vitejs/plugin-react-swc": "^3.7.2",
|
||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.20",
|
||||||
"postcss": "^8.4.49",
|
"postcss": "^8.5.1",
|
||||||
"tailwindcss": "^3.4.17",
|
"tailwindcss": "^3.4.17",
|
||||||
"tailwindcss-rtl": "^0.9.0",
|
"tailwindcss-rtl": "^0.9.0",
|
||||||
"typescript": "^5.7.2",
|
"typescript": "^5.7.3",
|
||||||
"vite": "^5.4.11"
|
"vite": "^5.4.14"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@esbuild/linux-arm64": "^0.21.5"
|
"@esbuild/linux-arm64": "^0.21.5"
|
||||||
@@ -1079,22 +1079,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@floating-ui/core": {
|
"node_modules/@floating-ui/core": {
|
||||||
"version": "1.6.8",
|
"version": "1.6.9",
|
||||||
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz",
|
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz",
|
||||||
"integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==",
|
"integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@floating-ui/utils": "^0.2.8"
|
"@floating-ui/utils": "^0.2.9"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@floating-ui/dom": {
|
"node_modules/@floating-ui/dom": {
|
||||||
"version": "1.6.12",
|
"version": "1.6.13",
|
||||||
"resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz",
|
"resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz",
|
||||||
"integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==",
|
"integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@floating-ui/core": "^1.6.0",
|
"@floating-ui/core": "^1.6.0",
|
||||||
"@floating-ui/utils": "^0.2.8"
|
"@floating-ui/utils": "^0.2.9"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@floating-ui/react-dom": {
|
"node_modules/@floating-ui/react-dom": {
|
||||||
@@ -1111,9 +1111,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@floating-ui/utils": {
|
"node_modules/@floating-ui/utils": {
|
||||||
"version": "0.2.8",
|
"version": "0.2.9",
|
||||||
"resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz",
|
"resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz",
|
||||||
"integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==",
|
"integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@henrygd/queue": {
|
"node_modules/@henrygd/queue": {
|
||||||
@@ -2246,17 +2246,17 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-alert-dialog": {
|
"node_modules/@radix-ui/react-alert-dialog": {
|
||||||
"version": "1.1.4",
|
"version": "1.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.6.tgz",
|
||||||
"integrity": "sha512-A6Kh23qZDLy3PSU4bh2UJZznOrUdHImIXqF8YtUa6CN73f8EOO9XlXSCd9IHyPvIquTaa/kwaSWzZTtUvgXVGw==",
|
"integrity": "sha512-p4XnPqgej8sZAAReCAKgz1REYZEBLR8hU9Pg27wFnCWIMc8g1ccCs0FjBcy05V15VTu8pAePw/VDYeOm/uZ6yQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/primitive": "1.1.1",
|
"@radix-ui/primitive": "1.1.1",
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
"@radix-ui/react-compose-refs": "1.1.1",
|
||||||
"@radix-ui/react-context": "1.1.1",
|
"@radix-ui/react-context": "1.1.1",
|
||||||
"@radix-ui/react-dialog": "1.1.4",
|
"@radix-ui/react-dialog": "1.1.6",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-slot": "1.1.1"
|
"@radix-ui/react-slot": "1.1.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@types/react": "*",
|
"@types/react": "*",
|
||||||
@@ -2274,12 +2274,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-arrow": {
|
"node_modules/@radix-ui/react-arrow": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.2.tgz",
|
||||||
"integrity": "sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==",
|
"integrity": "sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/react-primitive": "2.0.1"
|
"@radix-ui/react-primitive": "2.0.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@types/react": "*",
|
"@types/react": "*",
|
||||||
@@ -2297,16 +2297,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-checkbox": {
|
"node_modules/@radix-ui/react-checkbox": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.1.4.tgz",
|
||||||
"integrity": "sha512-HD7/ocp8f1B3e6OHygH0n7ZKjONkhciy1Nh0yuBgObqThc3oyx+vuMfFHKAknXRHHWVE9XvXStxJFyjUmB8PIw==",
|
"integrity": "sha512-wP0CPAHq+P5I4INKe3hJrIa1WoNqqrejzW+zoU0rOvo1b9gDEJJFl2rYfO1PYJUQCc2H1WZxIJmyv9BS8i5fLw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/primitive": "1.1.1",
|
"@radix-ui/primitive": "1.1.1",
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
"@radix-ui/react-compose-refs": "1.1.1",
|
||||||
"@radix-ui/react-context": "1.1.1",
|
"@radix-ui/react-context": "1.1.1",
|
||||||
"@radix-ui/react-presence": "1.1.2",
|
"@radix-ui/react-presence": "1.1.2",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-use-controllable-state": "1.1.0",
|
"@radix-ui/react-use-controllable-state": "1.1.0",
|
||||||
"@radix-ui/react-use-previous": "1.1.0",
|
"@radix-ui/react-use-previous": "1.1.0",
|
||||||
"@radix-ui/react-use-size": "1.1.0"
|
"@radix-ui/react-use-size": "1.1.0"
|
||||||
@@ -2327,15 +2327,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-collection": {
|
"node_modules/@radix-ui/react-collection": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.2.tgz",
|
||||||
"integrity": "sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==",
|
"integrity": "sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
"@radix-ui/react-compose-refs": "1.1.1",
|
||||||
"@radix-ui/react-context": "1.1.1",
|
"@radix-ui/react-context": "1.1.1",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-slot": "1.1.1"
|
"@radix-ui/react-slot": "1.1.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@types/react": "*",
|
"@types/react": "*",
|
||||||
@@ -2383,25 +2383,25 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-dialog": {
|
"node_modules/@radix-ui/react-dialog": {
|
||||||
"version": "1.1.4",
|
"version": "1.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.6.tgz",
|
||||||
"integrity": "sha512-Ur7EV1IwQGCyaAuyDRiOLA5JIUZxELJljF+MbM/2NC0BYwfuRrbpS30BiQBJrVruscgUkieKkqXYDOoByaxIoA==",
|
"integrity": "sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/primitive": "1.1.1",
|
"@radix-ui/primitive": "1.1.1",
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
"@radix-ui/react-compose-refs": "1.1.1",
|
||||||
"@radix-ui/react-context": "1.1.1",
|
"@radix-ui/react-context": "1.1.1",
|
||||||
"@radix-ui/react-dismissable-layer": "1.1.3",
|
"@radix-ui/react-dismissable-layer": "1.1.5",
|
||||||
"@radix-ui/react-focus-guards": "1.1.1",
|
"@radix-ui/react-focus-guards": "1.1.1",
|
||||||
"@radix-ui/react-focus-scope": "1.1.1",
|
"@radix-ui/react-focus-scope": "1.1.2",
|
||||||
"@radix-ui/react-id": "1.1.0",
|
"@radix-ui/react-id": "1.1.0",
|
||||||
"@radix-ui/react-portal": "1.1.3",
|
"@radix-ui/react-portal": "1.1.4",
|
||||||
"@radix-ui/react-presence": "1.1.2",
|
"@radix-ui/react-presence": "1.1.2",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-slot": "1.1.1",
|
"@radix-ui/react-slot": "1.1.2",
|
||||||
"@radix-ui/react-use-controllable-state": "1.1.0",
|
"@radix-ui/react-use-controllable-state": "1.1.0",
|
||||||
"aria-hidden": "^1.1.1",
|
"aria-hidden": "^1.2.4",
|
||||||
"react-remove-scroll": "^2.6.1"
|
"react-remove-scroll": "^2.6.3"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@types/react": "*",
|
"@types/react": "*",
|
||||||
@@ -2434,14 +2434,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-dismissable-layer": {
|
"node_modules/@radix-ui/react-dismissable-layer": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.5.tgz",
|
||||||
"integrity": "sha512-onrWn/72lQoEucDmJnr8uczSNTujT0vJnA/X5+3AkChVPowr8n1yvIKIabhWyMQeMvvmdpsvcyDqx3X1LEXCPg==",
|
"integrity": "sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/primitive": "1.1.1",
|
"@radix-ui/primitive": "1.1.1",
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
"@radix-ui/react-compose-refs": "1.1.1",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-use-callback-ref": "1.1.0",
|
"@radix-ui/react-use-callback-ref": "1.1.0",
|
||||||
"@radix-ui/react-use-escape-keydown": "1.1.0"
|
"@radix-ui/react-use-escape-keydown": "1.1.0"
|
||||||
},
|
},
|
||||||
@@ -2461,17 +2461,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-dropdown-menu": {
|
"node_modules/@radix-ui/react-dropdown-menu": {
|
||||||
"version": "2.1.4",
|
"version": "2.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.6.tgz",
|
||||||
"integrity": "sha512-iXU1Ab5ecM+yEepGAWK8ZhMyKX4ubFdCNtol4sT9D0OVErG9PNElfx3TQhjw7n7BC5nFVz68/5//clWy+8TXzA==",
|
"integrity": "sha512-no3X7V5fD487wab/ZYSHXq3H37u4NVeLDKI/Ks724X/eEFSSEFYZxWgsIlr1UBeEyDaM29HM5x9p1Nv8DuTYPA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/primitive": "1.1.1",
|
"@radix-ui/primitive": "1.1.1",
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
"@radix-ui/react-compose-refs": "1.1.1",
|
||||||
"@radix-ui/react-context": "1.1.1",
|
"@radix-ui/react-context": "1.1.1",
|
||||||
"@radix-ui/react-id": "1.1.0",
|
"@radix-ui/react-id": "1.1.0",
|
||||||
"@radix-ui/react-menu": "2.1.4",
|
"@radix-ui/react-menu": "2.1.6",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-use-controllable-state": "1.1.0"
|
"@radix-ui/react-use-controllable-state": "1.1.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
@@ -2505,13 +2505,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-focus-scope": {
|
"node_modules/@radix-ui/react-focus-scope": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.2.tgz",
|
||||||
"integrity": "sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==",
|
"integrity": "sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
"@radix-ui/react-compose-refs": "1.1.1",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-use-callback-ref": "1.1.0"
|
"@radix-ui/react-use-callback-ref": "1.1.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
@@ -2548,12 +2548,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-label": {
|
"node_modules/@radix-ui/react-label": {
|
||||||
"version": "2.1.1",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.2.tgz",
|
||||||
"integrity": "sha512-UUw5E4e/2+4kFMH7+YxORXGWggtY6sM8WIwh5RZchhLuUg2H1hc98Py+pr8HMz6rdaYrK2t296ZEjYLOCO5uUw==",
|
"integrity": "sha512-zo1uGMTaNlHehDyFQcDZXRJhUPDuukcnHz0/jnrup0JA6qL+AFpAnty+7VKa9esuU5xTblAZzTGYJKSKaBxBhw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/react-primitive": "2.0.1"
|
"@radix-ui/react-primitive": "2.0.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@types/react": "*",
|
"@types/react": "*",
|
||||||
@@ -2571,29 +2571,29 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-menu": {
|
"node_modules/@radix-ui/react-menu": {
|
||||||
"version": "2.1.4",
|
"version": "2.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.6.tgz",
|
||||||
"integrity": "sha512-BnOgVoL6YYdHAG6DtXONaR29Eq4nvbi8rutrV/xlr3RQCMMb3yqP85Qiw/3NReozrSW+4dfLkK+rc1hb4wPU/A==",
|
"integrity": "sha512-tBBb5CXDJW3t2mo9WlO7r6GTmWV0F0uzHZVFmlRmYpiSK1CDU5IKojP1pm7oknpBOrFZx/YgBRW9oorPO2S/Lg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/primitive": "1.1.1",
|
"@radix-ui/primitive": "1.1.1",
|
||||||
"@radix-ui/react-collection": "1.1.1",
|
"@radix-ui/react-collection": "1.1.2",
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
"@radix-ui/react-compose-refs": "1.1.1",
|
||||||
"@radix-ui/react-context": "1.1.1",
|
"@radix-ui/react-context": "1.1.1",
|
||||||
"@radix-ui/react-direction": "1.1.0",
|
"@radix-ui/react-direction": "1.1.0",
|
||||||
"@radix-ui/react-dismissable-layer": "1.1.3",
|
"@radix-ui/react-dismissable-layer": "1.1.5",
|
||||||
"@radix-ui/react-focus-guards": "1.1.1",
|
"@radix-ui/react-focus-guards": "1.1.1",
|
||||||
"@radix-ui/react-focus-scope": "1.1.1",
|
"@radix-ui/react-focus-scope": "1.1.2",
|
||||||
"@radix-ui/react-id": "1.1.0",
|
"@radix-ui/react-id": "1.1.0",
|
||||||
"@radix-ui/react-popper": "1.2.1",
|
"@radix-ui/react-popper": "1.2.2",
|
||||||
"@radix-ui/react-portal": "1.1.3",
|
"@radix-ui/react-portal": "1.1.4",
|
||||||
"@radix-ui/react-presence": "1.1.2",
|
"@radix-ui/react-presence": "1.1.2",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-roving-focus": "1.1.1",
|
"@radix-ui/react-roving-focus": "1.1.2",
|
||||||
"@radix-ui/react-slot": "1.1.1",
|
"@radix-ui/react-slot": "1.1.2",
|
||||||
"@radix-ui/react-use-callback-ref": "1.1.0",
|
"@radix-ui/react-use-callback-ref": "1.1.0",
|
||||||
"aria-hidden": "^1.1.1",
|
"aria-hidden": "^1.2.4",
|
||||||
"react-remove-scroll": "^2.6.1"
|
"react-remove-scroll": "^2.6.3"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@types/react": "*",
|
"@types/react": "*",
|
||||||
@@ -2611,16 +2611,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-popper": {
|
"node_modules/@radix-ui/react-popper": {
|
||||||
"version": "1.2.1",
|
"version": "1.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.2.tgz",
|
||||||
"integrity": "sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==",
|
"integrity": "sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@floating-ui/react-dom": "^2.0.0",
|
"@floating-ui/react-dom": "^2.0.0",
|
||||||
"@radix-ui/react-arrow": "1.1.1",
|
"@radix-ui/react-arrow": "1.1.2",
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
"@radix-ui/react-compose-refs": "1.1.1",
|
||||||
"@radix-ui/react-context": "1.1.1",
|
"@radix-ui/react-context": "1.1.1",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-use-callback-ref": "1.1.0",
|
"@radix-ui/react-use-callback-ref": "1.1.0",
|
||||||
"@radix-ui/react-use-layout-effect": "1.1.0",
|
"@radix-ui/react-use-layout-effect": "1.1.0",
|
||||||
"@radix-ui/react-use-rect": "1.1.0",
|
"@radix-ui/react-use-rect": "1.1.0",
|
||||||
@@ -2643,12 +2643,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-portal": {
|
"node_modules/@radix-ui/react-portal": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.4.tgz",
|
||||||
"integrity": "sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==",
|
"integrity": "sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-use-layout-effect": "1.1.0"
|
"@radix-ui/react-use-layout-effect": "1.1.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
@@ -2691,12 +2691,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-primitive": {
|
"node_modules/@radix-ui/react-primitive": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.2.tgz",
|
||||||
"integrity": "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==",
|
"integrity": "sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/react-slot": "1.1.1"
|
"@radix-ui/react-slot": "1.1.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@types/react": "*",
|
"@types/react": "*",
|
||||||
@@ -2714,18 +2714,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-roving-focus": {
|
"node_modules/@radix-ui/react-roving-focus": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.2.tgz",
|
||||||
"integrity": "sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==",
|
"integrity": "sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/primitive": "1.1.1",
|
"@radix-ui/primitive": "1.1.1",
|
||||||
"@radix-ui/react-collection": "1.1.1",
|
"@radix-ui/react-collection": "1.1.2",
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
"@radix-ui/react-compose-refs": "1.1.1",
|
||||||
"@radix-ui/react-context": "1.1.1",
|
"@radix-ui/react-context": "1.1.1",
|
||||||
"@radix-ui/react-direction": "1.1.0",
|
"@radix-ui/react-direction": "1.1.0",
|
||||||
"@radix-ui/react-id": "1.1.0",
|
"@radix-ui/react-id": "1.1.0",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-use-callback-ref": "1.1.0",
|
"@radix-ui/react-use-callback-ref": "1.1.0",
|
||||||
"@radix-ui/react-use-controllable-state": "1.1.0"
|
"@radix-ui/react-use-controllable-state": "1.1.0"
|
||||||
},
|
},
|
||||||
@@ -2745,32 +2745,32 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-select": {
|
"node_modules/@radix-ui/react-select": {
|
||||||
"version": "2.1.4",
|
"version": "2.1.6",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.6.tgz",
|
||||||
"integrity": "sha512-pOkb2u8KgO47j/h7AylCj7dJsm69BXcjkrvTqMptFqsE2i0p8lHkfgneXKjAgPzBMivnoMyt8o4KiV4wYzDdyQ==",
|
"integrity": "sha512-T6ajELxRvTuAMWH0YmRJ1qez+x4/7Nq7QIx7zJ0VK3qaEWdnWpNbEDnmWldG1zBDwqrLy5aLMUWcoGirVj5kMg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/number": "1.1.0",
|
"@radix-ui/number": "1.1.0",
|
||||||
"@radix-ui/primitive": "1.1.1",
|
"@radix-ui/primitive": "1.1.1",
|
||||||
"@radix-ui/react-collection": "1.1.1",
|
"@radix-ui/react-collection": "1.1.2",
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
"@radix-ui/react-compose-refs": "1.1.1",
|
||||||
"@radix-ui/react-context": "1.1.1",
|
"@radix-ui/react-context": "1.1.1",
|
||||||
"@radix-ui/react-direction": "1.1.0",
|
"@radix-ui/react-direction": "1.1.0",
|
||||||
"@radix-ui/react-dismissable-layer": "1.1.3",
|
"@radix-ui/react-dismissable-layer": "1.1.5",
|
||||||
"@radix-ui/react-focus-guards": "1.1.1",
|
"@radix-ui/react-focus-guards": "1.1.1",
|
||||||
"@radix-ui/react-focus-scope": "1.1.1",
|
"@radix-ui/react-focus-scope": "1.1.2",
|
||||||
"@radix-ui/react-id": "1.1.0",
|
"@radix-ui/react-id": "1.1.0",
|
||||||
"@radix-ui/react-popper": "1.2.1",
|
"@radix-ui/react-popper": "1.2.2",
|
||||||
"@radix-ui/react-portal": "1.1.3",
|
"@radix-ui/react-portal": "1.1.4",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-slot": "1.1.1",
|
"@radix-ui/react-slot": "1.1.2",
|
||||||
"@radix-ui/react-use-callback-ref": "1.1.0",
|
"@radix-ui/react-use-callback-ref": "1.1.0",
|
||||||
"@radix-ui/react-use-controllable-state": "1.1.0",
|
"@radix-ui/react-use-controllable-state": "1.1.0",
|
||||||
"@radix-ui/react-use-layout-effect": "1.1.0",
|
"@radix-ui/react-use-layout-effect": "1.1.0",
|
||||||
"@radix-ui/react-use-previous": "1.1.0",
|
"@radix-ui/react-use-previous": "1.1.0",
|
||||||
"@radix-ui/react-visually-hidden": "1.1.1",
|
"@radix-ui/react-visually-hidden": "1.1.2",
|
||||||
"aria-hidden": "^1.1.1",
|
"aria-hidden": "^1.2.4",
|
||||||
"react-remove-scroll": "^2.6.1"
|
"react-remove-scroll": "^2.6.3"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@types/react": "*",
|
"@types/react": "*",
|
||||||
@@ -2788,12 +2788,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-separator": {
|
"node_modules/@radix-ui/react-separator": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.2.tgz",
|
||||||
"integrity": "sha512-RRiNRSrD8iUiXriq/Y5n4/3iE8HzqgLHsusUSg5jVpU2+3tqcUFPJXHDymwEypunc2sWxDUS3UC+rkZRlHedsw==",
|
"integrity": "sha512-oZfHcaAp2Y6KFBX6I5P1u7CQoy4lheCGiYj+pGFrHy8E/VNRb5E39TkTr3JrV520csPBTZjkuKFdEsjS5EUNKQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/react-primitive": "2.0.1"
|
"@radix-ui/react-primitive": "2.0.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@types/react": "*",
|
"@types/react": "*",
|
||||||
@@ -2811,18 +2811,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-slider": {
|
"node_modules/@radix-ui/react-slider": {
|
||||||
"version": "1.2.2",
|
"version": "1.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.2.3.tgz",
|
||||||
"integrity": "sha512-sNlU06ii1/ZcbHf8I9En54ZPW0Vil/yPVg4vQMcFNjrIx51jsHbFl1HYHQvCIWJSr1q0ZmA+iIs/ZTv8h7HHSA==",
|
"integrity": "sha512-nNrLAWLjGESnhqBqcCNW4w2nn7LxudyMzeB6VgdyAnFLC6kfQgnAjSL2v6UkQTnDctJBlxrmxfplWS4iYjdUTw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/number": "1.1.0",
|
"@radix-ui/number": "1.1.0",
|
||||||
"@radix-ui/primitive": "1.1.1",
|
"@radix-ui/primitive": "1.1.1",
|
||||||
"@radix-ui/react-collection": "1.1.1",
|
"@radix-ui/react-collection": "1.1.2",
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
"@radix-ui/react-compose-refs": "1.1.1",
|
||||||
"@radix-ui/react-context": "1.1.1",
|
"@radix-ui/react-context": "1.1.1",
|
||||||
"@radix-ui/react-direction": "1.1.0",
|
"@radix-ui/react-direction": "1.1.0",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-use-controllable-state": "1.1.0",
|
"@radix-ui/react-use-controllable-state": "1.1.0",
|
||||||
"@radix-ui/react-use-layout-effect": "1.1.0",
|
"@radix-ui/react-use-layout-effect": "1.1.0",
|
||||||
"@radix-ui/react-use-previous": "1.1.0",
|
"@radix-ui/react-use-previous": "1.1.0",
|
||||||
@@ -2844,9 +2844,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-slot": {
|
"node_modules/@radix-ui/react-slot": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.2.tgz",
|
||||||
"integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==",
|
"integrity": "sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/react-compose-refs": "1.1.1"
|
"@radix-ui/react-compose-refs": "1.1.1"
|
||||||
@@ -2862,15 +2862,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-switch": {
|
"node_modules/@radix-ui/react-switch": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.3.tgz",
|
||||||
"integrity": "sha512-zGukiWHjEdBCRyXvKR6iXAQG6qXm2esuAD6kDOi9Cn+1X6ev3ASo4+CsYaD6Fov9r/AQFekqnD/7+V0Cs6/98g==",
|
"integrity": "sha512-1nc+vjEOQkJVsJtWPSiISGT6OKm4SiOdjMo+/icLxo2G4vxz1GntC5MzfL4v8ey9OEfw787QCD1y3mUv0NiFEQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/primitive": "1.1.1",
|
"@radix-ui/primitive": "1.1.1",
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
"@radix-ui/react-compose-refs": "1.1.1",
|
||||||
"@radix-ui/react-context": "1.1.1",
|
"@radix-ui/react-context": "1.1.1",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-use-controllable-state": "1.1.0",
|
"@radix-ui/react-use-controllable-state": "1.1.0",
|
||||||
"@radix-ui/react-use-previous": "1.1.0",
|
"@radix-ui/react-use-previous": "1.1.0",
|
||||||
"@radix-ui/react-use-size": "1.1.0"
|
"@radix-ui/react-use-size": "1.1.0"
|
||||||
@@ -2891,9 +2891,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-tabs": {
|
"node_modules/@radix-ui/react-tabs": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.3.tgz",
|
||||||
"integrity": "sha512-9u/tQJMcC2aGq7KXpGivMm1mgq7oRJKXphDwdypPd/j21j/2znamPU8WkXgnhUaTrSFNIt8XhOyCAupg8/GbwQ==",
|
"integrity": "sha512-9mFyI30cuRDImbmFF6O2KUJdgEOsGh9Vmx9x/Dh9tOhL7BngmQPQfwW4aejKm5OHpfWIdmeV6ySyuxoOGjtNng==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/primitive": "1.1.1",
|
"@radix-ui/primitive": "1.1.1",
|
||||||
@@ -2901,8 +2901,8 @@
|
|||||||
"@radix-ui/react-direction": "1.1.0",
|
"@radix-ui/react-direction": "1.1.0",
|
||||||
"@radix-ui/react-id": "1.1.0",
|
"@radix-ui/react-id": "1.1.0",
|
||||||
"@radix-ui/react-presence": "1.1.2",
|
"@radix-ui/react-presence": "1.1.2",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-roving-focus": "1.1.1",
|
"@radix-ui/react-roving-focus": "1.1.2",
|
||||||
"@radix-ui/react-use-controllable-state": "1.1.0"
|
"@radix-ui/react-use-controllable-state": "1.1.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
@@ -2921,23 +2921,23 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-toast": {
|
"node_modules/@radix-ui/react-toast": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.6",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.6.tgz",
|
||||||
"integrity": "sha512-Sch9idFJHJTMH9YNpxxESqABcAFweJG4tKv+0zo0m5XBvUSL8FM5xKcJLFLXononpePs8IclyX1KieL5SDUNgA==",
|
"integrity": "sha512-gN4dpuIVKEgpLn1z5FhzT9mYRUitbfZq9XqN/7kkBMUgFTzTG8x/KszWJugJXHcwxckY8xcKDZPz7kG3o6DsUA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/primitive": "1.1.1",
|
"@radix-ui/primitive": "1.1.1",
|
||||||
"@radix-ui/react-collection": "1.1.1",
|
"@radix-ui/react-collection": "1.1.2",
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
"@radix-ui/react-compose-refs": "1.1.1",
|
||||||
"@radix-ui/react-context": "1.1.1",
|
"@radix-ui/react-context": "1.1.1",
|
||||||
"@radix-ui/react-dismissable-layer": "1.1.3",
|
"@radix-ui/react-dismissable-layer": "1.1.5",
|
||||||
"@radix-ui/react-portal": "1.1.3",
|
"@radix-ui/react-portal": "1.1.4",
|
||||||
"@radix-ui/react-presence": "1.1.2",
|
"@radix-ui/react-presence": "1.1.2",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-use-callback-ref": "1.1.0",
|
"@radix-ui/react-use-callback-ref": "1.1.0",
|
||||||
"@radix-ui/react-use-controllable-state": "1.1.0",
|
"@radix-ui/react-use-controllable-state": "1.1.0",
|
||||||
"@radix-ui/react-use-layout-effect": "1.1.0",
|
"@radix-ui/react-use-layout-effect": "1.1.0",
|
||||||
"@radix-ui/react-visually-hidden": "1.1.1"
|
"@radix-ui/react-visually-hidden": "1.1.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@types/react": "*",
|
"@types/react": "*",
|
||||||
@@ -2955,23 +2955,23 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-tooltip": {
|
"node_modules/@radix-ui/react-tooltip": {
|
||||||
"version": "1.1.6",
|
"version": "1.1.8",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.8.tgz",
|
||||||
"integrity": "sha512-TLB5D8QLExS1uDn7+wH/bjEmRurNMTzNrtq7IjaS4kjion9NtzsTGkvR5+i7yc9q01Pi2KMM2cN3f8UG4IvvXA==",
|
"integrity": "sha512-YAA2cu48EkJZdAMHC0dqo9kialOcRStbtiY4nJPaht7Ptrhcvpo+eDChaM6BIs8kL6a8Z5l5poiqLnXcNduOkA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/primitive": "1.1.1",
|
"@radix-ui/primitive": "1.1.1",
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
"@radix-ui/react-compose-refs": "1.1.1",
|
||||||
"@radix-ui/react-context": "1.1.1",
|
"@radix-ui/react-context": "1.1.1",
|
||||||
"@radix-ui/react-dismissable-layer": "1.1.3",
|
"@radix-ui/react-dismissable-layer": "1.1.5",
|
||||||
"@radix-ui/react-id": "1.1.0",
|
"@radix-ui/react-id": "1.1.0",
|
||||||
"@radix-ui/react-popper": "1.2.1",
|
"@radix-ui/react-popper": "1.2.2",
|
||||||
"@radix-ui/react-portal": "1.1.3",
|
"@radix-ui/react-portal": "1.1.4",
|
||||||
"@radix-ui/react-presence": "1.1.2",
|
"@radix-ui/react-presence": "1.1.2",
|
||||||
"@radix-ui/react-primitive": "2.0.1",
|
"@radix-ui/react-primitive": "2.0.2",
|
||||||
"@radix-ui/react-slot": "1.1.1",
|
"@radix-ui/react-slot": "1.1.2",
|
||||||
"@radix-ui/react-use-controllable-state": "1.1.0",
|
"@radix-ui/react-use-controllable-state": "1.1.0",
|
||||||
"@radix-ui/react-visually-hidden": "1.1.1"
|
"@radix-ui/react-visually-hidden": "1.1.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@types/react": "*",
|
"@types/react": "*",
|
||||||
@@ -3106,12 +3106,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-visually-hidden": {
|
"node_modules/@radix-ui/react-visually-hidden": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.2.tgz",
|
||||||
"integrity": "sha512-vVfA2IZ9q/J+gEamvj761Oq1FpWgCDaNOOIfbPVp2MVPLEomUr5+Vf7kJGwQ24YxZSlQVar7Bes8kyTo5Dshpg==",
|
"integrity": "sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@radix-ui/react-primitive": "2.0.1"
|
"@radix-ui/react-primitive": "2.0.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@types/react": "*",
|
"@types/react": "*",
|
||||||
@@ -3624,13 +3624,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/bun": {
|
"node_modules/@types/bun": {
|
||||||
"version": "1.1.14",
|
"version": "1.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.1.14.tgz",
|
"resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.2.2.tgz",
|
||||||
"integrity": "sha512-opVYiFGtO2af0dnWBdZWlioLBoxSdDO5qokaazLhq8XQtGZbY4pY3/JxY8Zdf/hEwGubbp7ErZXoN1+h2yesxA==",
|
"integrity": "sha512-tr74gdku+AEDN5ergNiBnplr7hpDp3V1h7fqI2GcR/rsUaM39jpSeKH0TFibRvU0KwniRx5POgaYnaXbk0hU+w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bun-types": "1.1.37"
|
"bun-types": "1.2.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/d3-array": {
|
"node_modules/@types/d3-array": {
|
||||||
@@ -3750,9 +3750,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@types/react": {
|
"node_modules/@types/react": {
|
||||||
"version": "18.3.17",
|
"version": "18.3.18",
|
||||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.17.tgz",
|
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz",
|
||||||
"integrity": "sha512-opAQ5no6LqJNo9TqnxBKsgnkIYHozW9KSTlFVoSUJYh1Fl/sswkEoqIugRSm7tbh6pABtYjGAjW+GOS23j8qbw==",
|
"integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==",
|
||||||
"devOptional": true,
|
"devOptional": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -3771,9 +3771,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/ws": {
|
"node_modules/@types/ws": {
|
||||||
"version": "8.5.13",
|
"version": "8.5.14",
|
||||||
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz",
|
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.14.tgz",
|
||||||
"integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==",
|
"integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -4100,13 +4100,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/bun-types": {
|
"node_modules/bun-types": {
|
||||||
"version": "1.1.37",
|
"version": "1.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.1.37.tgz",
|
"resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.2.2.tgz",
|
||||||
"integrity": "sha512-C65lv6eBr3LPJWFZ2gswyrGZ82ljnH8flVE03xeXxKhi2ZGtFiO4isRKTKnitbSqtRAcaqYSR6djt1whI66AbA==",
|
"integrity": "sha512-RCbMH5elr9gjgDGDhkTTugA21XtJAy/9jkKe/G3WR2q17VPGhcquf9Sir6uay9iW+7P/BV0CAHA1XlHXMAVKHg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/node": "~20.12.8",
|
"@types/node": "*",
|
||||||
"@types/ws": "~8.5.10"
|
"@types/ws": "~8.5.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -4724,9 +4724,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/fast-equals": {
|
"node_modules/fast-equals": {
|
||||||
"version": "5.0.1",
|
"version": "5.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.2.2.tgz",
|
||||||
"integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==",
|
"integrity": "sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.0.0"
|
"node": ">=6.0.0"
|
||||||
@@ -6167,9 +6167,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/pocketbase": {
|
"node_modules/pocketbase": {
|
||||||
"version": "0.22.1",
|
"version": "0.25.1",
|
||||||
"resolved": "https://registry.npmjs.org/pocketbase/-/pocketbase-0.22.1.tgz",
|
"resolved": "https://registry.npmjs.org/pocketbase/-/pocketbase-0.25.1.tgz",
|
||||||
"integrity": "sha512-hnzpDcIx5kbkUJXz6IkiTox6R4nb706u4rPSMy2FYCaI2OqBnFxbY0qwWBSqx1ERz/Xi61Uguf17Gb9bWZ8+kw==",
|
"integrity": "sha512-2IH0KLI/qMNR/E17C7BGWX2FxW7Tead+igLHOWZ45P56v/NyVT18Jnmddeft+3qWWGL1Hog2F8bc4orWV/+Fcg==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/pofile": {
|
"node_modules/pofile": {
|
||||||
@@ -6180,9 +6180,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/postcss": {
|
"node_modules/postcss": {
|
||||||
"version": "8.4.49",
|
"version": "8.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz",
|
||||||
"integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
|
"integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
@@ -6199,7 +6199,7 @@
|
|||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"nanoid": "^3.3.7",
|
"nanoid": "^3.3.8",
|
||||||
"picocolors": "^1.1.1",
|
"picocolors": "^1.1.1",
|
||||||
"source-map-js": "^1.2.1"
|
"source-map-js": "^1.2.1"
|
||||||
},
|
},
|
||||||
@@ -6460,16 +6460,16 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/react-remove-scroll": {
|
"node_modules/react-remove-scroll": {
|
||||||
"version": "2.6.2",
|
"version": "2.6.3",
|
||||||
"resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz",
|
||||||
"integrity": "sha512-KmONPx5fnlXYJQqC62Q+lwIeAk64ws/cUw6omIumRzMRPqgnYqhSSti99nbj0Ry13bv7dF+BKn7NB+OqkdZGTw==",
|
"integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"react-remove-scroll-bar": "^2.3.7",
|
"react-remove-scroll-bar": "^2.3.7",
|
||||||
"react-style-singleton": "^2.2.1",
|
"react-style-singleton": "^2.2.3",
|
||||||
"tslib": "^2.1.0",
|
"tslib": "^2.1.0",
|
||||||
"use-callback-ref": "^1.3.3",
|
"use-callback-ref": "^1.3.3",
|
||||||
"use-sidecar": "^1.1.2"
|
"use-sidecar": "^1.1.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
@@ -6507,9 +6507,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/react-smooth": {
|
"node_modules/react-smooth": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz",
|
||||||
"integrity": "sha512-OE4hm7XqR0jNOq3Qmk9mFLyd6p2+j6bvbPJ7qlB7+oo0eNcL2l7WQzG6MBnT3EXY6xzkLMUBec3AfewJdA0J8w==",
|
"integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fast-equals": "^5.0.1",
|
"fast-equals": "^5.0.1",
|
||||||
@@ -6517,8 +6517,8 @@
|
|||||||
"react-transition-group": "^4.4.5"
|
"react-transition-group": "^4.4.5"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
||||||
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/react-style-singleton": {
|
"node_modules/react-style-singleton": {
|
||||||
@@ -6596,16 +6596,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/recharts": {
|
"node_modules/recharts": {
|
||||||
"version": "2.15.0",
|
"version": "2.15.1",
|
||||||
"resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.0.tgz",
|
"resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.1.tgz",
|
||||||
"integrity": "sha512-cIvMxDfpAmqAmVgc4yb7pgm/O1tmmkl/CjrvXuW+62/+7jj/iF9Ykm+hb/UJt42TREHMyd3gb+pkgoa2MxgDIw==",
|
"integrity": "sha512-v8PUTUlyiDe56qUj82w/EDVuzEFXwEHp9/xOowGAZwfLjB9uAy3GllQVIYMWF6nU+qibx85WF75zD7AjqoT54Q==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"clsx": "^2.0.0",
|
"clsx": "^2.0.0",
|
||||||
"eventemitter3": "^4.0.1",
|
"eventemitter3": "^4.0.1",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"react-is": "^18.3.1",
|
"react-is": "^18.3.1",
|
||||||
"react-smooth": "^4.0.0",
|
"react-smooth": "^4.0.4",
|
||||||
"recharts-scale": "^0.4.4",
|
"recharts-scale": "^0.4.4",
|
||||||
"tiny-invariant": "^1.3.1",
|
"tiny-invariant": "^1.3.1",
|
||||||
"victory-vendor": "^36.6.8"
|
"victory-vendor": "^36.6.8"
|
||||||
@@ -7034,9 +7034,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tailwind-merge": {
|
"node_modules/tailwind-merge": {
|
||||||
"version": "2.5.5",
|
"version": "2.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.5.tgz",
|
"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz",
|
||||||
"integrity": "sha512-0LXunzzAZzo0tEPxV3I297ffKZPlKDrjj7NXphC8V5ak9yHC5zRmxnOe2m/Rd/7ivsOMJe3JZ2JVocoDdQTRBA==",
|
"integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
@@ -7200,9 +7200,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/typescript": {
|
"node_modules/typescript": {
|
||||||
"version": "5.7.2",
|
"version": "5.7.3",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
|
||||||
"integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==",
|
"integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
|
||||||
"devOptional": true,
|
"devOptional": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -7343,9 +7343,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "5.4.11",
|
"version": "5.4.14",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz",
|
||||||
"integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==",
|
"integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -17,20 +17,20 @@
|
|||||||
"@lingui/react": "^4.14.1",
|
"@lingui/react": "^4.14.1",
|
||||||
"@nanostores/react": "^0.7.3",
|
"@nanostores/react": "^0.7.3",
|
||||||
"@nanostores/router": "^0.11.0",
|
"@nanostores/router": "^0.11.0",
|
||||||
"@radix-ui/react-alert-dialog": "^1.1.4",
|
"@radix-ui/react-alert-dialog": "^1.1.6",
|
||||||
"@radix-ui/react-checkbox": "^1.1.3",
|
"@radix-ui/react-checkbox": "^1.1.4",
|
||||||
"@radix-ui/react-dialog": "^1.1.4",
|
"@radix-ui/react-dialog": "^1.1.6",
|
||||||
"@radix-ui/react-direction": "^1.1.0",
|
"@radix-ui/react-direction": "^1.1.0",
|
||||||
"@radix-ui/react-dropdown-menu": "^2.1.4",
|
"@radix-ui/react-dropdown-menu": "^2.1.6",
|
||||||
"@radix-ui/react-label": "^2.1.1",
|
"@radix-ui/react-label": "^2.1.2",
|
||||||
"@radix-ui/react-select": "^2.1.4",
|
"@radix-ui/react-select": "^2.1.6",
|
||||||
"@radix-ui/react-separator": "^1.1.1",
|
"@radix-ui/react-separator": "^1.1.2",
|
||||||
"@radix-ui/react-slider": "^1.2.2",
|
"@radix-ui/react-slider": "^1.2.3",
|
||||||
"@radix-ui/react-slot": "^1.1.1",
|
"@radix-ui/react-slot": "^1.1.2",
|
||||||
"@radix-ui/react-switch": "^1.1.2",
|
"@radix-ui/react-switch": "^1.1.3",
|
||||||
"@radix-ui/react-tabs": "^1.1.2",
|
"@radix-ui/react-tabs": "^1.1.3",
|
||||||
"@radix-ui/react-toast": "^1.2.4",
|
"@radix-ui/react-toast": "^1.2.6",
|
||||||
"@radix-ui/react-tooltip": "^1.1.6",
|
"@radix-ui/react-tooltip": "^1.1.8",
|
||||||
"@tanstack/react-table": "^8.20.6",
|
"@tanstack/react-table": "^8.20.6",
|
||||||
"class-variance-authority": "^0.7.1",
|
"class-variance-authority": "^0.7.1",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
@@ -38,11 +38,11 @@
|
|||||||
"d3-time": "^3.1.0",
|
"d3-time": "^3.1.0",
|
||||||
"lucide-react": "^0.452.0",
|
"lucide-react": "^0.452.0",
|
||||||
"nanostores": "^0.11.3",
|
"nanostores": "^0.11.3",
|
||||||
"pocketbase": "^0.22.1",
|
"pocketbase": "^0.25.1",
|
||||||
"react": "^18.3.1",
|
"react": "^18.3.1",
|
||||||
"react-dom": "^18.3.1",
|
"react-dom": "^18.3.1",
|
||||||
"recharts": "^2.15.0",
|
"recharts": "^2.15.1",
|
||||||
"tailwind-merge": "^2.5.5",
|
"tailwind-merge": "^2.6.0",
|
||||||
"tailwindcss-animate": "^1.0.7",
|
"tailwindcss-animate": "^1.0.7",
|
||||||
"valibot": "^0.36.0"
|
"valibot": "^0.36.0"
|
||||||
},
|
},
|
||||||
@@ -50,16 +50,16 @@
|
|||||||
"@lingui/cli": "^4.14.1",
|
"@lingui/cli": "^4.14.1",
|
||||||
"@lingui/swc-plugin": "^4.1.0",
|
"@lingui/swc-plugin": "^4.1.0",
|
||||||
"@lingui/vite-plugin": "^4.14.1",
|
"@lingui/vite-plugin": "^4.14.1",
|
||||||
"@types/bun": "^1.1.14",
|
"@types/bun": "^1.2.2",
|
||||||
"@types/react": "^18.3.17",
|
"@types/react": "^18.3.18",
|
||||||
"@types/react-dom": "^18.3.5",
|
"@types/react-dom": "^18.3.5",
|
||||||
"@vitejs/plugin-react-swc": "^3.7.2",
|
"@vitejs/plugin-react-swc": "^3.7.2",
|
||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.20",
|
||||||
"postcss": "^8.4.49",
|
"postcss": "^8.5.1",
|
||||||
"tailwindcss": "^3.4.17",
|
"tailwindcss": "^3.4.17",
|
||||||
"tailwindcss-rtl": "^0.9.0",
|
"tailwindcss-rtl": "^0.9.0",
|
||||||
"typescript": "^5.7.2",
|
"typescript": "^5.7.3",
|
||||||
"vite": "^5.4.11"
|
"vite": "^5.4.14"
|
||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"@nanostores/router": {
|
"@nanostores/router": {
|
||||||
|
|||||||
BIN
beszel/site/public/static/icon.png
Normal file
BIN
beszel/site/public/static/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.3 KiB |
@@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 257 B |
14
beszel/site/public/static/manifest.json
Normal file
14
beszel/site/public/static/manifest.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"name": "Beszel",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "icon.png",
|
||||||
|
"sizes": "512x512",
|
||||||
|
"type": "image/png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"start_url": "../",
|
||||||
|
"display": "standalone",
|
||||||
|
"background_color": "#202225",
|
||||||
|
"theme_color": "#202225"
|
||||||
|
}
|
||||||
@@ -8,63 +8,27 @@ import {
|
|||||||
DialogTitle,
|
DialogTitle,
|
||||||
DialogTrigger,
|
DialogTrigger,
|
||||||
} from "@/components/ui/dialog"
|
} from "@/components/ui/dialog"
|
||||||
import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from "@/components/ui/tooltip"
|
|
||||||
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
|
||||||
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip"
|
||||||
|
|
||||||
import { Input } from "@/components/ui/input"
|
import { Input } from "@/components/ui/input"
|
||||||
import { Label } from "@/components/ui/label"
|
import { Label } from "@/components/ui/label"
|
||||||
import { $publicKey, pb } from "@/lib/stores"
|
import { $publicKey, pb } from "@/lib/stores"
|
||||||
import { Copy, PlusIcon } from "lucide-react"
|
|
||||||
import { useState, useRef, MutableRefObject } from "react"
|
|
||||||
import { useStore } from "@nanostores/react"
|
|
||||||
import { cn, copyToClipboard, isReadOnlyUser } from "@/lib/utils"
|
import { cn, copyToClipboard, isReadOnlyUser } from "@/lib/utils"
|
||||||
import { navigate } from "./router"
|
|
||||||
import { Trans } from "@lingui/macro"
|
|
||||||
import { i18n } from "@lingui/core"
|
import { i18n } from "@lingui/core"
|
||||||
|
import { t, Trans } from "@lingui/macro"
|
||||||
|
import { useStore } from "@nanostores/react"
|
||||||
|
import { ChevronDownIcon, Copy, PlusIcon } from "lucide-react"
|
||||||
|
import { memo, useRef, useState } from "react"
|
||||||
|
import { basePath, navigate } from "./router"
|
||||||
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "./ui/dropdown-menu"
|
||||||
|
import { SystemRecord } from "@/types"
|
||||||
|
|
||||||
export function AddSystemButton({ className }: { className?: string }) {
|
export function AddSystemButton({ className }: { className?: string }) {
|
||||||
const [open, setOpen] = useState(false)
|
const [open, setOpen] = useState(false)
|
||||||
const port = useRef() as MutableRefObject<HTMLInputElement>
|
let opened = useRef(false)
|
||||||
const publicKey = useStore($publicKey)
|
if (open) {
|
||||||
|
opened.current = true
|
||||||
function copyDockerCompose(port: string) {
|
|
||||||
copyToClipboard(`services:
|
|
||||||
beszel-agent:
|
|
||||||
image: "henrygd/beszel-agent"
|
|
||||||
container_name: "beszel-agent"
|
|
||||||
restart: unless-stopped
|
|
||||||
network_mode: host
|
|
||||||
volumes:
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
||||||
# monitor other disks / partitions by mounting a folder in /extra-filesystems
|
|
||||||
# - /mnt/disk/.beszel:/extra-filesystems/sda1:ro
|
|
||||||
environment:
|
|
||||||
PORT: ${port}
|
|
||||||
KEY: "${publicKey}"`)
|
|
||||||
}
|
|
||||||
|
|
||||||
function copyInstallCommand(port: string) {
|
|
||||||
let cmd = `curl -sL https://raw.githubusercontent.com/henrygd/beszel/main/supplemental/scripts/install-agent.sh -o install-agent.sh && chmod +x install-agent.sh && ./install-agent.sh -p ${port} -k "${publicKey}"`
|
|
||||||
// add china mirrors flag if zh-CN
|
|
||||||
if ((i18n.locale + navigator.language).includes("zh-CN")) {
|
|
||||||
cmd += ` --china-mirrors`
|
|
||||||
}
|
|
||||||
copyToClipboard(cmd)
|
|
||||||
}
|
|
||||||
|
|
||||||
async function handleSubmit(e: SubmitEvent) {
|
|
||||||
e.preventDefault()
|
|
||||||
const formData = new FormData(e.target as HTMLFormElement)
|
|
||||||
const data = Object.fromEntries(formData) as Record<string, any>
|
|
||||||
data.users = pb.authStore.record!.id
|
|
||||||
try {
|
|
||||||
setOpen(false)
|
|
||||||
await pb.collection("systems").create(data)
|
|
||||||
navigate("/")
|
|
||||||
// console.log(record)
|
|
||||||
} catch (e) {
|
|
||||||
console.log(e)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -80,106 +44,230 @@ export function AddSystemButton({ className }: { className?: string }) {
|
|||||||
</Trans>
|
</Trans>
|
||||||
</Button>
|
</Button>
|
||||||
</DialogTrigger>
|
</DialogTrigger>
|
||||||
<DialogContent className="w-[90%] sm:max-w-[440px] rounded-lg">
|
{opened.current && <SystemDialog setOpen={setOpen} />}
|
||||||
<Tabs defaultValue="docker">
|
|
||||||
<DialogHeader>
|
|
||||||
<DialogTitle className="mb-2">
|
|
||||||
<Trans>Add New System</Trans>
|
|
||||||
</DialogTitle>
|
|
||||||
<TabsList className="grid w-full grid-cols-2">
|
|
||||||
<TabsTrigger value="docker">Docker</TabsTrigger>
|
|
||||||
<TabsTrigger value="binary">
|
|
||||||
<Trans>Binary</Trans>
|
|
||||||
</TabsTrigger>
|
|
||||||
</TabsList>
|
|
||||||
</DialogHeader>
|
|
||||||
{/* Docker */}
|
|
||||||
<TabsContent value="docker">
|
|
||||||
<DialogDescription className="mb-4 leading-normal">
|
|
||||||
<Trans>
|
|
||||||
The agent must be running on the system to connect. Copy the
|
|
||||||
<code className="bg-muted px-1 rounded-sm leading-3">docker-compose.yml</code> for the agent below.
|
|
||||||
</Trans>
|
|
||||||
</DialogDescription>
|
|
||||||
</TabsContent>
|
|
||||||
{/* Binary */}
|
|
||||||
<TabsContent value="binary">
|
|
||||||
<DialogDescription className="mb-4 leading-normal">
|
|
||||||
<Trans>
|
|
||||||
The agent must be running on the system to connect. Copy the installation command for the agent below.
|
|
||||||
</Trans>
|
|
||||||
</DialogDescription>
|
|
||||||
</TabsContent>
|
|
||||||
<form onSubmit={handleSubmit as any}>
|
|
||||||
<div className="grid xs:grid-cols-[auto_1fr] gap-y-3 gap-x-4 items-center mt-1 mb-4">
|
|
||||||
<Label htmlFor="name" className="xs:text-end">
|
|
||||||
<Trans>Name</Trans>
|
|
||||||
</Label>
|
|
||||||
<Input id="name" name="name" className="" required />
|
|
||||||
<Label htmlFor="host" className="xs:text-end">
|
|
||||||
<Trans>Host / IP</Trans>
|
|
||||||
</Label>
|
|
||||||
<Input id="host" name="host" className="" required />
|
|
||||||
<Label htmlFor="port" className="xs:text-end">
|
|
||||||
<Trans>Port</Trans>
|
|
||||||
</Label>
|
|
||||||
<Input ref={port} name="port" id="port" defaultValue="45876" className="" required />
|
|
||||||
<Label htmlFor="pkey" className="xs:text-end whitespace-pre">
|
|
||||||
<Trans comment="Use 'Key' if your language requires many more characters">Public Key</Trans>
|
|
||||||
</Label>
|
|
||||||
<div className="relative">
|
|
||||||
<Input readOnly id="pkey" value={publicKey} className="" required></Input>
|
|
||||||
<div
|
|
||||||
className={
|
|
||||||
"h-6 w-24 bg-gradient-to-r rtl:bg-gradient-to-l from-transparent to-background to-65% absolute top-2 end-1 pointer-events-none"
|
|
||||||
}
|
|
||||||
></div>
|
|
||||||
<TooltipProvider delayDuration={100}>
|
|
||||||
<Tooltip>
|
|
||||||
<TooltipTrigger asChild>
|
|
||||||
<Button
|
|
||||||
type="button"
|
|
||||||
variant={"link"}
|
|
||||||
className="absolute end-0 top-0"
|
|
||||||
onClick={() => copyToClipboard(publicKey)}
|
|
||||||
>
|
|
||||||
<Copy className="h-4 w-4 " />
|
|
||||||
</Button>
|
|
||||||
</TooltipTrigger>
|
|
||||||
<TooltipContent>
|
|
||||||
<p>
|
|
||||||
<Trans>Click to copy</Trans>
|
|
||||||
</p>
|
|
||||||
</TooltipContent>
|
|
||||||
</Tooltip>
|
|
||||||
</TooltipProvider>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{/* Docker */}
|
|
||||||
<TabsContent value="docker">
|
|
||||||
<DialogFooter className="flex justify-end gap-2 sm:w-[calc(100%+20px)] sm:-ms-[20px]">
|
|
||||||
<Button type="button" variant={"ghost"} onClick={() => copyDockerCompose(port.current.value)}>
|
|
||||||
<Trans>Copy</Trans> docker compose
|
|
||||||
</Button>
|
|
||||||
<Button>
|
|
||||||
<Trans>Add system</Trans>
|
|
||||||
</Button>
|
|
||||||
</DialogFooter>
|
|
||||||
</TabsContent>
|
|
||||||
{/* Binary */}
|
|
||||||
<TabsContent value="binary">
|
|
||||||
<DialogFooter className="flex justify-end gap-2 sm:w-[calc(100%+20px)] sm:-ms-[20px]">
|
|
||||||
<Button type="button" variant={"ghost"} onClick={() => copyInstallCommand(port.current.value)}>
|
|
||||||
<Trans>Copy Linux command</Trans>
|
|
||||||
</Button>
|
|
||||||
<Button>
|
|
||||||
<Trans>Add system</Trans>
|
|
||||||
</Button>
|
|
||||||
</DialogFooter>
|
|
||||||
</TabsContent>
|
|
||||||
</form>
|
|
||||||
</Tabs>
|
|
||||||
</DialogContent>
|
|
||||||
</Dialog>
|
</Dialog>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function copyDockerCompose(port = "45876", publicKey: string) {
|
||||||
|
copyToClipboard(`services:
|
||||||
|
beszel-agent:
|
||||||
|
image: "henrygd/beszel-agent"
|
||||||
|
container_name: "beszel-agent"
|
||||||
|
restart: unless-stopped
|
||||||
|
network_mode: host
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
# monitor other disks / partitions by mounting a folder in /extra-filesystems
|
||||||
|
# - /mnt/disk/.beszel:/extra-filesystems/sda1:ro
|
||||||
|
environment:
|
||||||
|
PORT: ${port}
|
||||||
|
KEY: "${publicKey}"`)
|
||||||
|
}
|
||||||
|
|
||||||
|
function copyDockerRun(port = "45876", publicKey: string) {
|
||||||
|
copyToClipboard(
|
||||||
|
`docker run -d --name beszel-agent --network host --restart unless-stopped -v /var/run/docker.sock:/var/run/docker.sock:ro -e KEY="${publicKey}" -e PORT=${port} henrygd/beszel-agent:latest`
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
function copyInstallCommand(port = "45876", publicKey: string) {
|
||||||
|
let cmd = `curl -sL https://raw.githubusercontent.com/henrygd/beszel/main/supplemental/scripts/install-agent.sh -o install-agent.sh && chmod +x install-agent.sh && ./install-agent.sh -p ${port} -k "${publicKey}"`
|
||||||
|
// add china mirrors flag if zh-CN
|
||||||
|
if ((i18n.locale + navigator.language).includes("zh-CN")) {
|
||||||
|
cmd += ` --china-mirrors`
|
||||||
|
}
|
||||||
|
copyToClipboard(cmd)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SystemDialog component for adding or editing a system.
|
||||||
|
* @param {Object} props - The component props.
|
||||||
|
* @param {function} props.setOpen - Function to set the open state of the dialog.
|
||||||
|
* @param {SystemRecord} [props.system] - Optional system record for editing an existing system.
|
||||||
|
*/
|
||||||
|
export const SystemDialog = memo(({ setOpen, system }: { setOpen: (open: boolean) => void; system?: SystemRecord }) => {
|
||||||
|
const publicKey = useStore($publicKey)
|
||||||
|
const port = useRef<HTMLInputElement>(null)
|
||||||
|
const [hostValue, setHostValue] = useState(system?.host ?? "")
|
||||||
|
const isUnixSocket = hostValue.startsWith("/")
|
||||||
|
|
||||||
|
async function handleSubmit(e: SubmitEvent) {
|
||||||
|
e.preventDefault()
|
||||||
|
const formData = new FormData(e.target as HTMLFormElement)
|
||||||
|
const data = Object.fromEntries(formData) as Record<string, any>
|
||||||
|
data.users = pb.authStore.record!.id
|
||||||
|
try {
|
||||||
|
setOpen(false)
|
||||||
|
if (system) {
|
||||||
|
await pb.collection("systems").update(system.id, { ...data, status: "pending" })
|
||||||
|
} else {
|
||||||
|
await pb.collection("systems").create(data)
|
||||||
|
}
|
||||||
|
navigate(basePath)
|
||||||
|
// console.log(record)
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<DialogContent
|
||||||
|
className="w-[90%] sm:w-auto sm:ns-dialog max-w-full rounded-lg"
|
||||||
|
onCloseAutoFocus={() => {
|
||||||
|
setHostValue(system?.host ?? "")
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Tabs defaultValue="docker">
|
||||||
|
<DialogHeader>
|
||||||
|
<DialogTitle className="mb-2">
|
||||||
|
{system ? `${t`Edit`} ${system?.name}` : <Trans>Add New System</Trans>}
|
||||||
|
</DialogTitle>
|
||||||
|
<TabsList className="grid w-full grid-cols-2">
|
||||||
|
<TabsTrigger value="docker">Docker</TabsTrigger>
|
||||||
|
<TabsTrigger value="binary">
|
||||||
|
<Trans>Binary</Trans>
|
||||||
|
</TabsTrigger>
|
||||||
|
</TabsList>
|
||||||
|
</DialogHeader>
|
||||||
|
{/* Docker (set tab index to prevent auto focusing content in edit system dialog) */}
|
||||||
|
<TabsContent value="docker" tabIndex={-1}>
|
||||||
|
<DialogDescription className="mb-4 leading-normal w-0 min-w-full">
|
||||||
|
<Trans>
|
||||||
|
The agent must be running on the system to connect. Copy the
|
||||||
|
<code className="bg-muted px-1 rounded-sm leading-3">docker-compose.yml</code> for the agent below.
|
||||||
|
</Trans>
|
||||||
|
</DialogDescription>
|
||||||
|
</TabsContent>
|
||||||
|
{/* Binary */}
|
||||||
|
<TabsContent value="binary">
|
||||||
|
<DialogDescription className="mb-4 leading-normal w-0 min-w-full">
|
||||||
|
<Trans>
|
||||||
|
The agent must be running on the system to connect. Copy the installation command for the agent below.
|
||||||
|
</Trans>
|
||||||
|
</DialogDescription>
|
||||||
|
</TabsContent>
|
||||||
|
<form onSubmit={handleSubmit as any}>
|
||||||
|
<div className="grid xs:grid-cols-[auto_1fr] gap-y-3 gap-x-4 items-center mt-1 mb-4">
|
||||||
|
<Label htmlFor="name" className="xs:text-end">
|
||||||
|
<Trans>Name</Trans>
|
||||||
|
</Label>
|
||||||
|
<Input id="name" name="name" defaultValue={system?.name} required />
|
||||||
|
<Label htmlFor="host" className="xs:text-end">
|
||||||
|
<Trans>Host / IP</Trans>
|
||||||
|
</Label>
|
||||||
|
<Input
|
||||||
|
id="host"
|
||||||
|
name="host"
|
||||||
|
value={hostValue}
|
||||||
|
required
|
||||||
|
onChange={(e) => {
|
||||||
|
setHostValue(e.target.value)
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<Label htmlFor="port" className={cn("xs:text-end", isUnixSocket && "hidden")}>
|
||||||
|
<Trans>Port</Trans>
|
||||||
|
</Label>
|
||||||
|
<Input
|
||||||
|
ref={port}
|
||||||
|
name="port"
|
||||||
|
id="port"
|
||||||
|
defaultValue={system?.port || "45876"}
|
||||||
|
required={!isUnixSocket}
|
||||||
|
className={cn(isUnixSocket && "hidden")}
|
||||||
|
/>
|
||||||
|
<Label htmlFor="pkey" className="xs:text-end whitespace-pre">
|
||||||
|
<Trans comment="Use 'Key' if your language requires many more characters">Public Key</Trans>
|
||||||
|
</Label>
|
||||||
|
<div className="relative">
|
||||||
|
<Input readOnly id="pkey" value={publicKey} required></Input>
|
||||||
|
<div
|
||||||
|
className={
|
||||||
|
"h-6 w-24 bg-gradient-to-r rtl:bg-gradient-to-l from-transparent to-background to-65% absolute top-2 end-1 pointer-events-none"
|
||||||
|
}
|
||||||
|
></div>
|
||||||
|
<TooltipProvider delayDuration={100}>
|
||||||
|
<Tooltip>
|
||||||
|
<TooltipTrigger asChild>
|
||||||
|
<Button
|
||||||
|
type="button"
|
||||||
|
variant={"link"}
|
||||||
|
className="absolute end-0 top-0"
|
||||||
|
onClick={() => copyToClipboard(publicKey)}
|
||||||
|
>
|
||||||
|
<Copy className="h-4 w-4 " />
|
||||||
|
</Button>
|
||||||
|
</TooltipTrigger>
|
||||||
|
<TooltipContent>
|
||||||
|
<p>
|
||||||
|
<Trans>Click to copy</Trans>
|
||||||
|
</p>
|
||||||
|
</TooltipContent>
|
||||||
|
</Tooltip>
|
||||||
|
</TooltipProvider>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<DialogFooter className="flex justify-end gap-x-2 gap-y-3 flex-col mt-5">
|
||||||
|
{/* Docker */}
|
||||||
|
<TabsContent value="docker" className="contents">
|
||||||
|
<CopyButton
|
||||||
|
text={t`Copy` + " docker compose"}
|
||||||
|
onClick={() => copyDockerCompose(isUnixSocket ? hostValue : port.current?.value, publicKey)}
|
||||||
|
dropdownText={t`Copy` + " docker run"}
|
||||||
|
dropdownOnClick={() => copyDockerRun(isUnixSocket ? hostValue : port.current?.value, publicKey)}
|
||||||
|
/>
|
||||||
|
</TabsContent>
|
||||||
|
{/* Binary */}
|
||||||
|
<TabsContent value="binary" className="contents">
|
||||||
|
<CopyButton
|
||||||
|
text={t`Copy Linux command`}
|
||||||
|
onClick={() => copyInstallCommand(isUnixSocket ? hostValue : port.current?.value, publicKey)}
|
||||||
|
dropdownText={t`Manual setup instructions`}
|
||||||
|
dropdownUrl="https://beszel.dev/guide/agent-installation#binary"
|
||||||
|
/>
|
||||||
|
</TabsContent>
|
||||||
|
{/* Save */}
|
||||||
|
<Button>{system ? <Trans>Save system</Trans> : <Trans>Add system</Trans>}</Button>
|
||||||
|
</DialogFooter>
|
||||||
|
</form>
|
||||||
|
</Tabs>
|
||||||
|
</DialogContent>
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
interface CopyButtonProps {
|
||||||
|
text: string
|
||||||
|
onClick: () => void
|
||||||
|
dropdownText: string
|
||||||
|
dropdownOnClick?: () => void
|
||||||
|
dropdownUrl?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
const CopyButton = memo((props: CopyButtonProps) => {
|
||||||
|
return (
|
||||||
|
<div className="flex gap-0 rounded-lg">
|
||||||
|
<Button type="button" variant="outline" onClick={props.onClick} className="rounded-e-none dark:border-e-0 grow">
|
||||||
|
{props.text}
|
||||||
|
</Button>
|
||||||
|
<div className="w-px h-full bg-muted"></div>
|
||||||
|
<DropdownMenu>
|
||||||
|
<DropdownMenuTrigger asChild>
|
||||||
|
<Button variant="outline" className={"px-2 rounded-s-none border-s-0"}>
|
||||||
|
<ChevronDownIcon />
|
||||||
|
</Button>
|
||||||
|
</DropdownMenuTrigger>
|
||||||
|
<DropdownMenuContent align="end">
|
||||||
|
{props.dropdownUrl ? (
|
||||||
|
<DropdownMenuItem asChild>
|
||||||
|
<a href={props.dropdownUrl} target="_blank" rel="noopener noreferrer">
|
||||||
|
{props.dropdownText}
|
||||||
|
</a>
|
||||||
|
</DropdownMenuItem>
|
||||||
|
) : (
|
||||||
|
<DropdownMenuItem onClick={props.dropdownOnClick}>{props.dropdownText}</DropdownMenuItem>
|
||||||
|
)}
|
||||||
|
</DropdownMenuContent>
|
||||||
|
</DropdownMenu>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|||||||
@@ -160,13 +160,11 @@ export function SystemAlertGlobal({
|
|||||||
function AlertContent({ data }: { data: AlertData }) {
|
function AlertContent({ data }: { data: AlertData }) {
|
||||||
const { key } = data
|
const { key } = data
|
||||||
|
|
||||||
const hasSliders = !("single" in data.alert)
|
const singleDescription = data.alert.singleDesc?.()
|
||||||
|
|
||||||
const [checked, setChecked] = useState(data.checked || false)
|
const [checked, setChecked] = useState(data.checked || false)
|
||||||
const [min, setMin] = useState(data.min || (hasSliders ? 10 : 0))
|
const [min, setMin] = useState(data.min || 10)
|
||||||
const [value, setValue] = useState(data.val || (hasSliders ? 80 : 0))
|
const [value, setValue] = useState(data.val || (singleDescription ? 0 : 80))
|
||||||
|
|
||||||
const showSliders = checked && hasSliders
|
|
||||||
|
|
||||||
const newMin = useRef(min)
|
const newMin = useRef(min)
|
||||||
const newValue = useRef(value)
|
const newValue = useRef(value)
|
||||||
@@ -180,14 +178,14 @@ function AlertContent({ data }: { data: AlertData }) {
|
|||||||
<label
|
<label
|
||||||
htmlFor={`s${key}`}
|
htmlFor={`s${key}`}
|
||||||
className={cn("flex flex-row items-center justify-between gap-4 cursor-pointer p-4", {
|
className={cn("flex flex-row items-center justify-between gap-4 cursor-pointer p-4", {
|
||||||
"pb-0": showSliders,
|
"pb-0": checked,
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<div className="grid gap-1 select-none">
|
<div className="grid gap-1 select-none">
|
||||||
<p className="font-semibold flex gap-3 items-center">
|
<p className="font-semibold flex gap-3 items-center">
|
||||||
<Icon className="h-4 w-4 opacity-85" /> {data.alert.name()}
|
<Icon className="h-4 w-4 opacity-85" /> {data.alert.name()}
|
||||||
</p>
|
</p>
|
||||||
{!showSliders && <span className="block text-sm text-muted-foreground">{data.alert.desc()}</span>}
|
{!checked && <span className="block text-sm text-muted-foreground">{data.alert.desc()}</span>}
|
||||||
</div>
|
</div>
|
||||||
<Switch
|
<Switch
|
||||||
id={`s${key}`}
|
id={`s${key}`}
|
||||||
@@ -198,9 +196,10 @@ function AlertContent({ data }: { data: AlertData }) {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</label>
|
</label>
|
||||||
{showSliders && (
|
{checked && (
|
||||||
<div className="grid sm:grid-cols-2 mt-1.5 gap-5 px-4 pb-5 tabular-nums text-muted-foreground">
|
<div className="grid sm:grid-cols-2 mt-1.5 gap-5 px-4 pb-5 tabular-nums text-muted-foreground">
|
||||||
<Suspense fallback={<div className="h-10" />}>
|
<Suspense fallback={<div className="h-10" />}>
|
||||||
|
{!singleDescription && (
|
||||||
<div>
|
<div>
|
||||||
<p id={`v${key}`} className="text-sm block h-8">
|
<p id={`v${key}`} className="text-sm block h-8">
|
||||||
<Trans>
|
<Trans>
|
||||||
@@ -222,8 +221,12 @@ function AlertContent({ data }: { data: AlertData }) {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
)}
|
||||||
<p id={`t${key}`} className="text-sm block h-8">
|
<div className={cn(singleDescription && "col-span-full lowercase")}>
|
||||||
|
<p id={`t${key}`} className="text-sm block h-8 first-letter:uppercase">
|
||||||
|
{singleDescription && (
|
||||||
|
<>{singleDescription}{` `}</>
|
||||||
|
)}
|
||||||
<Trans>
|
<Trans>
|
||||||
For <strong className="text-foreground">{min}</strong>{" "}
|
For <strong className="text-foreground">{min}</strong>{" "}
|
||||||
<Plural value={min} one=" minute" other=" minutes" />
|
<Plural value={min} one=" minute" other=" minutes" />
|
||||||
|
|||||||
@@ -22,9 +22,10 @@ import {
|
|||||||
import { useEffect } from "react"
|
import { useEffect } from "react"
|
||||||
import { useStore } from "@nanostores/react"
|
import { useStore } from "@nanostores/react"
|
||||||
import { $systems } from "@/lib/stores"
|
import { $systems } from "@/lib/stores"
|
||||||
import { isAdmin } from "@/lib/utils"
|
import { getHostDisplayValue, isAdmin } from "@/lib/utils"
|
||||||
import { navigate } from "./router"
|
import { $router, basePath, navigate } from "./router"
|
||||||
import { Trans, t } from "@lingui/macro"
|
import { Trans, t } from "@lingui/macro"
|
||||||
|
import { getPagePath } from "@nanostores/router"
|
||||||
|
|
||||||
export default function CommandPalette({ open, setOpen }: { open: boolean; setOpen: (open: boolean) => void }) {
|
export default function CommandPalette({ open, setOpen }: { open: boolean; setOpen: (open: boolean) => void }) {
|
||||||
const systems = useStore($systems)
|
const systems = useStore($systems)
|
||||||
@@ -55,13 +56,13 @@ export default function CommandPalette({ open, setOpen }: { open: boolean; setOp
|
|||||||
<CommandItem
|
<CommandItem
|
||||||
key={system.id}
|
key={system.id}
|
||||||
onSelect={() => {
|
onSelect={() => {
|
||||||
navigate(`/system/${encodeURIComponent(system.name)}`)
|
navigate(getPagePath($router, "system", { name: system.name }))
|
||||||
setOpen(false)
|
setOpen(false)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Server className="me-2 h-4 w-4" />
|
<Server className="me-2 h-4 w-4" />
|
||||||
<span>{system.name}</span>
|
<span>{system.name}</span>
|
||||||
<CommandShortcut>{system.host}</CommandShortcut>
|
<CommandShortcut>{getHostDisplayValue(system)}</CommandShortcut>
|
||||||
</CommandItem>
|
</CommandItem>
|
||||||
))}
|
))}
|
||||||
</CommandGroup>
|
</CommandGroup>
|
||||||
@@ -72,7 +73,7 @@ export default function CommandPalette({ open, setOpen }: { open: boolean; setOp
|
|||||||
<CommandItem
|
<CommandItem
|
||||||
keywords={["home"]}
|
keywords={["home"]}
|
||||||
onSelect={() => {
|
onSelect={() => {
|
||||||
navigate("/")
|
navigate(basePath)
|
||||||
setOpen(false)
|
setOpen(false)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -86,7 +87,7 @@ export default function CommandPalette({ open, setOpen }: { open: boolean; setOp
|
|||||||
</CommandItem>
|
</CommandItem>
|
||||||
<CommandItem
|
<CommandItem
|
||||||
onSelect={() => {
|
onSelect={() => {
|
||||||
navigate("/settings/general")
|
navigate(getPagePath($router, "settings", { name: "general" }))
|
||||||
setOpen(false)
|
setOpen(false)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -101,7 +102,7 @@ export default function CommandPalette({ open, setOpen }: { open: boolean; setOp
|
|||||||
<CommandItem
|
<CommandItem
|
||||||
keywords={["alerts"]}
|
keywords={["alerts"]}
|
||||||
onSelect={() => {
|
onSelect={() => {
|
||||||
navigate("/settings/notifications")
|
navigate(getPagePath($router, "settings", { name: "notifications" }))
|
||||||
setOpen(false)
|
setOpen(false)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -7,14 +7,19 @@ import { $authenticated, pb } from "@/lib/stores"
|
|||||||
import * as v from "valibot"
|
import * as v from "valibot"
|
||||||
import { toast } from "../ui/use-toast"
|
import { toast } from "../ui/use-toast"
|
||||||
import { Dialog, DialogContent, DialogTrigger, DialogHeader, DialogTitle } from "@/components/ui/dialog"
|
import { Dialog, DialogContent, DialogTrigger, DialogHeader, DialogTitle } from "@/components/ui/dialog"
|
||||||
import { useCallback, useState } from "react"
|
import { useCallback, useEffect, useState } from "react"
|
||||||
import { AuthMethodsList, OAuth2AuthConfig } from "pocketbase"
|
import { AuthMethodsList, AuthProviderInfo, OAuth2AuthConfig } from "pocketbase"
|
||||||
import { Link } from "../router"
|
import { $router, Link, prependBasePath } from "../router"
|
||||||
import { Trans, t } from "@lingui/macro"
|
import { Trans, t } from "@lingui/macro"
|
||||||
|
import { getPagePath } from "@nanostores/router"
|
||||||
|
|
||||||
const honeypot = v.literal("")
|
const honeypot = v.literal("")
|
||||||
const emailSchema = v.pipe(v.string(), v.email(t`Invalid email address.`))
|
const emailSchema = v.pipe(v.string(), v.email(t`Invalid email address.`))
|
||||||
const passwordSchema = v.pipe(v.string(), v.minLength(8, t`Password must be at least 8 characters.`))
|
const passwordSchema = v.pipe(
|
||||||
|
v.string(),
|
||||||
|
v.minLength(8, t`Password must be at least 8 characters.`),
|
||||||
|
v.maxBytes(72, t`Password must be less than 72 bytes.`)
|
||||||
|
)
|
||||||
|
|
||||||
const LoginSchema = v.looseObject({
|
const LoginSchema = v.looseObject({
|
||||||
name: honeypot,
|
name: honeypot,
|
||||||
@@ -113,9 +118,49 @@ export function UserAuthForm({
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
const oauthEnabled = authMethods.oauth2.enabled && authMethods.oauth2.providers.length > 0
|
const authProviders = authMethods.oauth2.providers ?? []
|
||||||
|
const oauthEnabled = authMethods.oauth2.enabled && authProviders.length > 0
|
||||||
const passwordEnabled = authMethods.password.enabled
|
const passwordEnabled = authMethods.password.enabled
|
||||||
|
|
||||||
|
function loginWithOauth(provider: AuthProviderInfo, forcePopup = false) {
|
||||||
|
setIsOauthLoading(true)
|
||||||
|
const oAuthOpts: OAuth2AuthConfig = {
|
||||||
|
provider: provider.name,
|
||||||
|
}
|
||||||
|
// https://github.com/pocketbase/pocketbase/discussions/2429#discussioncomment-5943061
|
||||||
|
if (forcePopup || navigator.userAgent.match(/iPhone|iPad|iPod/i)) {
|
||||||
|
const authWindow = window.open()
|
||||||
|
if (!authWindow) {
|
||||||
|
setIsOauthLoading(false)
|
||||||
|
toast({
|
||||||
|
title: t`Error`,
|
||||||
|
description: t`Please enable pop-ups for this site`,
|
||||||
|
variant: "destructive",
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
oAuthOpts.urlCallback = (url) => {
|
||||||
|
authWindow.location.href = url
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pb.collection("users")
|
||||||
|
.authWithOAuth2(oAuthOpts)
|
||||||
|
.then(() => {
|
||||||
|
$authenticated.set(pb.authStore.isValid)
|
||||||
|
})
|
||||||
|
.catch(showLoginFaliedToast)
|
||||||
|
.finally(() => {
|
||||||
|
setIsOauthLoading(false)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
// auto login if password disabled and only one auth provider
|
||||||
|
if (!passwordEnabled && authProviders.length === 1) {
|
||||||
|
loginWithOauth(authProviders[0], true)
|
||||||
|
}
|
||||||
|
}, [])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={cn("grid gap-6", className)} {...props}>
|
<div className={cn("grid gap-6", className)} {...props}>
|
||||||
{passwordEnabled && (
|
{passwordEnabled && (
|
||||||
@@ -132,12 +177,12 @@ export function UserAuthForm({
|
|||||||
name="email"
|
name="email"
|
||||||
required
|
required
|
||||||
placeholder="name@example.com"
|
placeholder="name@example.com"
|
||||||
type="email"
|
type="text"
|
||||||
autoCapitalize="none"
|
autoCapitalize="none"
|
||||||
autoComplete="email"
|
autoComplete="email"
|
||||||
autoCorrect="off"
|
autoCorrect="off"
|
||||||
disabled={isLoading || isOauthLoading}
|
disabled={isLoading || isOauthLoading}
|
||||||
className="ps-9"
|
className={cn("ps-9", errors?.email && "border-red-500")}
|
||||||
/>
|
/>
|
||||||
{errors?.email && <p className="px-1 text-xs text-red-600">{errors.email}</p>}
|
{errors?.email && <p className="px-1 text-xs text-red-600">{errors.email}</p>}
|
||||||
</div>
|
</div>
|
||||||
@@ -154,7 +199,7 @@ export function UserAuthForm({
|
|||||||
type="password"
|
type="password"
|
||||||
autoComplete="current-password"
|
autoComplete="current-password"
|
||||||
disabled={isLoading || isOauthLoading}
|
disabled={isLoading || isOauthLoading}
|
||||||
className="ps-9 placeholder:lowercase"
|
className={cn("ps-9", errors?.password && "border-red-500")}
|
||||||
/>
|
/>
|
||||||
{errors?.password && <p className="px-1 text-xs text-red-600">{errors.password}</p>}
|
{errors?.password && <p className="px-1 text-xs text-red-600">{errors.password}</p>}
|
||||||
</div>
|
</div>
|
||||||
@@ -172,7 +217,7 @@ export function UserAuthForm({
|
|||||||
type="password"
|
type="password"
|
||||||
autoComplete="current-password"
|
autoComplete="current-password"
|
||||||
disabled={isLoading || isOauthLoading}
|
disabled={isLoading || isOauthLoading}
|
||||||
className="ps-9 placeholder:lowercase"
|
className={cn("ps-9", errors?.password && "border-red-500")}
|
||||||
/>
|
/>
|
||||||
{errors?.passwordConfirm && <p className="px-1 text-xs text-red-600">{errors.passwordConfirm}</p>}
|
{errors?.passwordConfirm && <p className="px-1 text-xs text-red-600">{errors.passwordConfirm}</p>}
|
||||||
</div>
|
</div>
|
||||||
@@ -218,37 +263,7 @@ export function UserAuthForm({
|
|||||||
"justify-self-center": !passwordEnabled,
|
"justify-self-center": !passwordEnabled,
|
||||||
"px-5": !passwordEnabled,
|
"px-5": !passwordEnabled,
|
||||||
})}
|
})}
|
||||||
onClick={() => {
|
onClick={() => loginWithOauth(provider)}
|
||||||
setIsOauthLoading(true)
|
|
||||||
const oAuthOpts: OAuth2AuthConfig = {
|
|
||||||
provider: provider.name,
|
|
||||||
}
|
|
||||||
// https://github.com/pocketbase/pocketbase/discussions/2429#discussioncomment-5943061
|
|
||||||
if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) {
|
|
||||||
const authWindow = window.open()
|
|
||||||
if (!authWindow) {
|
|
||||||
setIsOauthLoading(false)
|
|
||||||
toast({
|
|
||||||
title: t`Error`,
|
|
||||||
description: t`Please enable pop-ups for this site`,
|
|
||||||
variant: "destructive",
|
|
||||||
})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
oAuthOpts.urlCallback = (url) => {
|
|
||||||
authWindow.location.href = url
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pb.collection("users")
|
|
||||||
.authWithOAuth2(oAuthOpts)
|
|
||||||
.then(() => {
|
|
||||||
$authenticated.set(pb.authStore.isValid)
|
|
||||||
})
|
|
||||||
.catch(showLoginFaliedToast)
|
|
||||||
.finally(() => {
|
|
||||||
setIsOauthLoading(false)
|
|
||||||
})
|
|
||||||
}}
|
|
||||||
disabled={isLoading || isOauthLoading}
|
disabled={isLoading || isOauthLoading}
|
||||||
>
|
>
|
||||||
{isOauthLoading ? (
|
{isOauthLoading ? (
|
||||||
@@ -256,11 +271,11 @@ export function UserAuthForm({
|
|||||||
) : (
|
) : (
|
||||||
<img
|
<img
|
||||||
className="me-2 h-4 w-4 dark:brightness-0 dark:invert"
|
className="me-2 h-4 w-4 dark:brightness-0 dark:invert"
|
||||||
src={`/_/images/oauth2/${provider.name}.svg`}
|
src={prependBasePath(`/_/images/oauth2/${provider.name}.svg`)}
|
||||||
alt=""
|
alt=""
|
||||||
onError={(e) => {
|
// onError={(e) => {
|
||||||
e.currentTarget.src = "/static/lock.svg"
|
// e.currentTarget.src = "/static/lock.svg"
|
||||||
}}
|
// }}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
<span className="translate-y-[1px]">{provider.displayName}</span>
|
<span className="translate-y-[1px]">{provider.displayName}</span>
|
||||||
@@ -274,7 +289,7 @@ export function UserAuthForm({
|
|||||||
<Dialog>
|
<Dialog>
|
||||||
<DialogTrigger asChild>
|
<DialogTrigger asChild>
|
||||||
<button type="button" className={cn(buttonVariants({ variant: "outline" }))}>
|
<button type="button" className={cn(buttonVariants({ variant: "outline" }))}>
|
||||||
<img className="me-2 h-4 w-4 dark:invert" src="/_/images/oauth2/github.svg" alt="" />
|
<img className="me-2 h-4 w-4 dark:invert" src={prependBasePath("/_/images/oauth2/github.svg")} alt="" />
|
||||||
<span className="translate-y-[1px]">GitHub</span>
|
<span className="translate-y-[1px]">GitHub</span>
|
||||||
</button>
|
</button>
|
||||||
</DialogTrigger>
|
</DialogTrigger>
|
||||||
@@ -307,7 +322,7 @@ export function UserAuthForm({
|
|||||||
|
|
||||||
{passwordEnabled && !isFirstRun && (
|
{passwordEnabled && !isFirstRun && (
|
||||||
<Link
|
<Link
|
||||||
href="/forgot-password"
|
href={getPagePath($router, "forgot_password")}
|
||||||
className="text-sm mx-auto hover:text-brand underline underline-offset-4 opacity-70 hover:opacity-100 transition-opacity"
|
className="text-sm mx-auto hover:text-brand underline underline-offset-4 opacity-70 hover:opacity-100 transition-opacity"
|
||||||
>
|
>
|
||||||
<Trans>Forgot password?</Trans>
|
<Trans>Forgot password?</Trans>
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ export default function ForgotPassword() {
|
|||||||
<Trans>Command line instructions</Trans>
|
<Trans>Command line instructions</Trans>
|
||||||
</button>
|
</button>
|
||||||
</DialogTrigger>
|
</DialogTrigger>
|
||||||
<DialogContent className="max-w-[33em]">
|
<DialogContent className="max-w-[41em]">
|
||||||
<DialogHeader>
|
<DialogHeader>
|
||||||
<DialogTitle>
|
<DialogTitle>
|
||||||
<Trans>Command line instructions</Trans>
|
<Trans>Command line instructions</Trans>
|
||||||
@@ -98,7 +98,10 @@ export default function ForgotPassword() {
|
|||||||
<Trans>Then log into the backend and reset your user account password in the users table.</Trans>
|
<Trans>Then log into the backend and reset your user account password in the users table.</Trans>
|
||||||
</p>
|
</p>
|
||||||
<code className="bg-muted rounded-sm py-0.5 px-2.5 me-auto text-sm">
|
<code className="bg-muted rounded-sm py-0.5 px-2.5 me-auto text-sm">
|
||||||
beszel admin update youremail@example.com newpassword
|
./beszel superuser upsert user@example.com password
|
||||||
|
</code>
|
||||||
|
<code className="bg-muted rounded-sm py-0.5 px-2.5 me-auto text-sm">
|
||||||
|
docker exec beszel /beszel superuser upsert name@example.com password
|
||||||
</code>
|
</code>
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
</Dialog>
|
</Dialog>
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ export default function () {
|
|||||||
const subtitle = useMemo(() => {
|
const subtitle = useMemo(() => {
|
||||||
if (isFirstRun) {
|
if (isFirstRun) {
|
||||||
return t`Please create an admin account`
|
return t`Please create an admin account`
|
||||||
} else if (page?.path === "/forgot-password") {
|
} else if (page?.route === "forgot_password") {
|
||||||
return t`Enter email address to reset password`
|
return t`Enter email address to reset password`
|
||||||
} else {
|
} else {
|
||||||
return t`Please sign in to your account`
|
return t`Please sign in to your account`
|
||||||
@@ -59,7 +59,7 @@ export default function () {
|
|||||||
</h1>
|
</h1>
|
||||||
<p className="text-sm text-muted-foreground">{subtitle}</p>
|
<p className="text-sm text-muted-foreground">{subtitle}</p>
|
||||||
</div>
|
</div>
|
||||||
{page?.path === "/forgot-password" ? (
|
{page?.route === "forgot_password" ? (
|
||||||
<ForgotPassword />
|
<ForgotPassword />
|
||||||
) : (
|
) : (
|
||||||
<UserAuthForm isFirstRun={isFirstRun} authMethods={authMethods} />
|
<UserAuthForm isFirstRun={isFirstRun} authMethods={authMethods} />
|
||||||
|
|||||||
@@ -10,12 +10,12 @@ import {
|
|||||||
UserIcon,
|
UserIcon,
|
||||||
UsersIcon,
|
UsersIcon,
|
||||||
} from "lucide-react"
|
} from "lucide-react"
|
||||||
import { Link } from "./router"
|
import { $router, basePath, Link, prependBasePath } from "./router"
|
||||||
import { LangToggle } from "./lang-toggle"
|
import { LangToggle } from "./lang-toggle"
|
||||||
import { ModeToggle } from "./mode-toggle"
|
import { ModeToggle } from "./mode-toggle"
|
||||||
import { Logo } from "./logo"
|
import { Logo } from "./logo"
|
||||||
import { pb } from "@/lib/stores"
|
import { pb } from "@/lib/stores"
|
||||||
import { cn, isReadOnlyUser, isAdmin } from "@/lib/utils"
|
import { cn, isReadOnlyUser, isAdmin, logOut } from "@/lib/utils"
|
||||||
import {
|
import {
|
||||||
DropdownMenu,
|
DropdownMenu,
|
||||||
DropdownMenuTrigger,
|
DropdownMenuTrigger,
|
||||||
@@ -27,6 +27,7 @@ import {
|
|||||||
} from "@/components/ui/dropdown-menu"
|
} from "@/components/ui/dropdown-menu"
|
||||||
import { AddSystemButton } from "./add-system"
|
import { AddSystemButton } from "./add-system"
|
||||||
import { Trans } from "@lingui/macro"
|
import { Trans } from "@lingui/macro"
|
||||||
|
import { getPagePath } from "@nanostores/router"
|
||||||
|
|
||||||
const CommandPalette = lazy(() => import("./command-palette"))
|
const CommandPalette = lazy(() => import("./command-palette"))
|
||||||
|
|
||||||
@@ -35,7 +36,7 @@ const isMac = navigator.platform.toUpperCase().indexOf("MAC") >= 0
|
|||||||
export default function Navbar() {
|
export default function Navbar() {
|
||||||
return (
|
return (
|
||||||
<div className="flex items-center h-14 md:h-16 bg-card px-4 pe-3 sm:px-6 border border-border/60 bt-0 rounded-md my-4">
|
<div className="flex items-center h-14 md:h-16 bg-card px-4 pe-3 sm:px-6 border border-border/60 bt-0 rounded-md my-4">
|
||||||
<Link href="/" aria-label="Home" className="p-2 ps-0 me-3">
|
<Link href={basePath} aria-label="Home" className="p-2 ps-0 me-3">
|
||||||
<Logo className="h-[1.1rem] md:h-5 fill-foreground" />
|
<Logo className="h-[1.1rem] md:h-5 fill-foreground" />
|
||||||
</Link>
|
</Link>
|
||||||
<SearchButton />
|
<SearchButton />
|
||||||
@@ -44,7 +45,7 @@ export default function Navbar() {
|
|||||||
<LangToggle />
|
<LangToggle />
|
||||||
<ModeToggle />
|
<ModeToggle />
|
||||||
<Link
|
<Link
|
||||||
href="/settings/general"
|
href={getPagePath($router, "settings", { name: "general" })}
|
||||||
aria-label="Settings"
|
aria-label="Settings"
|
||||||
className={cn("", buttonVariants({ variant: "ghost", size: "icon" }))}
|
className={cn("", buttonVariants({ variant: "ghost", size: "icon" }))}
|
||||||
>
|
>
|
||||||
@@ -63,7 +64,7 @@ export default function Navbar() {
|
|||||||
{isAdmin() && (
|
{isAdmin() && (
|
||||||
<>
|
<>
|
||||||
<DropdownMenuItem asChild>
|
<DropdownMenuItem asChild>
|
||||||
<a href="/_/" target="_blank">
|
<a href={prependBasePath("/_/")} target="_blank">
|
||||||
<UsersIcon className="me-2.5 h-4 w-4" />
|
<UsersIcon className="me-2.5 h-4 w-4" />
|
||||||
<span>
|
<span>
|
||||||
<Trans>Users</Trans>
|
<Trans>Users</Trans>
|
||||||
@@ -71,7 +72,7 @@ export default function Navbar() {
|
|||||||
</a>
|
</a>
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem asChild>
|
<DropdownMenuItem asChild>
|
||||||
<a href="/_/#/collections?collectionId=2hz5ncl8tizk5nx" target="_blank">
|
<a href={prependBasePath("/_/#/collections?collection=systems")} target="_blank">
|
||||||
<ServerIcon className="me-2.5 h-4 w-4" />
|
<ServerIcon className="me-2.5 h-4 w-4" />
|
||||||
<span>
|
<span>
|
||||||
<Trans>Systems</Trans>
|
<Trans>Systems</Trans>
|
||||||
@@ -79,7 +80,7 @@ export default function Navbar() {
|
|||||||
</a>
|
</a>
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem asChild>
|
<DropdownMenuItem asChild>
|
||||||
<a href="/_/#/logs" target="_blank">
|
<a href={prependBasePath("/_/#/logs")} target="_blank">
|
||||||
<LogsIcon className="me-2.5 h-4 w-4" />
|
<LogsIcon className="me-2.5 h-4 w-4" />
|
||||||
<span>
|
<span>
|
||||||
<Trans>Logs</Trans>
|
<Trans>Logs</Trans>
|
||||||
@@ -87,7 +88,7 @@ export default function Navbar() {
|
|||||||
</a>
|
</a>
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem asChild>
|
<DropdownMenuItem asChild>
|
||||||
<a href="/_/#/settings/backups" target="_blank">
|
<a href={prependBasePath("/_/#/settings/backups")} target="_blank">
|
||||||
<DatabaseBackupIcon className="me-2.5 h-4 w-4" />
|
<DatabaseBackupIcon className="me-2.5 h-4 w-4" />
|
||||||
<span>
|
<span>
|
||||||
<Trans>Backups</Trans>
|
<Trans>Backups</Trans>
|
||||||
@@ -98,7 +99,7 @@ export default function Navbar() {
|
|||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</DropdownMenuGroup>
|
</DropdownMenuGroup>
|
||||||
<DropdownMenuItem onSelect={() => pb.authStore.clear()}>
|
<DropdownMenuItem onSelect={logOut}>
|
||||||
<LogOutIcon className="me-2.5 h-4 w-4" />
|
<LogOutIcon className="me-2.5 h-4 w-4" />
|
||||||
<span>
|
<span>
|
||||||
<Trans>Log Out</Trans>
|
<Trans>Log Out</Trans>
|
||||||
|
|||||||
@@ -1,16 +1,36 @@
|
|||||||
import { createRouter } from "@nanostores/router"
|
import { createRouter } from "@nanostores/router"
|
||||||
|
|
||||||
export const $router = createRouter(
|
const routes = {
|
||||||
{
|
home: "/",
|
||||||
home: "/",
|
system: `/system/:name`,
|
||||||
server: "/system/:name",
|
settings: `/settings/:name?`,
|
||||||
settings: "/settings/:name?",
|
forgot_password: `/forgot-password`,
|
||||||
forgot_password: "/forgot-password",
|
} as const
|
||||||
},
|
|
||||||
{ links: false }
|
|
||||||
)
|
|
||||||
|
|
||||||
/** Navigate to url using router */
|
/**
|
||||||
|
* The base path of the application.
|
||||||
|
* This is used to prepend the base path to all routes.
|
||||||
|
*/
|
||||||
|
export const basePath = window.BASE_PATH || ""
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prepends the base path to the given path.
|
||||||
|
* @param path The path to prepend the base path to.
|
||||||
|
* @returns The path with the base path prepended.
|
||||||
|
*/
|
||||||
|
export const prependBasePath = (path: string) => (basePath + path).replaceAll("//", "/")
|
||||||
|
|
||||||
|
// prepend base path to routes
|
||||||
|
for (const route in routes) {
|
||||||
|
// @ts-ignore need as const above to get nanostores to parse types properly
|
||||||
|
routes[route] = prependBasePath(routes[route])
|
||||||
|
}
|
||||||
|
|
||||||
|
export const $router = createRouter(routes, { links: false })
|
||||||
|
|
||||||
|
/** Navigate to url using router
|
||||||
|
* Base path is automatically prepended if serving from subpath
|
||||||
|
*/
|
||||||
export const navigate = (urlString: string) => {
|
export const navigate = (urlString: string) => {
|
||||||
$router.open(urlString)
|
$router.open(urlString)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,8 +7,9 @@ import { Separator } from "../ui/separator"
|
|||||||
import { alertInfo, updateRecordList, updateSystemList } from "@/lib/utils"
|
import { alertInfo, updateRecordList, updateSystemList } from "@/lib/utils"
|
||||||
import { AlertRecord, SystemRecord } from "@/types"
|
import { AlertRecord, SystemRecord } from "@/types"
|
||||||
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"
|
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"
|
||||||
import { Link } from "../router"
|
import { $router, Link } from "../router"
|
||||||
import { Plural, t, Trans } from "@lingui/macro"
|
import { Plural, t, Trans } from "@lingui/macro"
|
||||||
|
import { getPagePath } from "@nanostores/router"
|
||||||
|
|
||||||
const SystemsTable = lazy(() => import("../systems-table/systems-table"))
|
const SystemsTable = lazy(() => import("../systems-table/systems-table"))
|
||||||
|
|
||||||
@@ -83,7 +84,7 @@ export default function Home() {
|
|||||||
</Trans>
|
</Trans>
|
||||||
</AlertDescription>
|
</AlertDescription>
|
||||||
<Link
|
<Link
|
||||||
href={`/system/${encodeURIComponent(alert.sysname!)}`}
|
href={getPagePath($router, "system", { name: alert.sysname! })}
|
||||||
className="absolute inset-0 w-full h-full"
|
className="absolute inset-0 w-full h-full"
|
||||||
aria-label="View system"
|
aria-label="View system"
|
||||||
></Link>
|
></Link>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { SidebarNav } from "./sidebar-nav.tsx"
|
|||||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card.tsx"
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card.tsx"
|
||||||
import { useStore } from "@nanostores/react"
|
import { useStore } from "@nanostores/react"
|
||||||
import { $router } from "@/components/router.tsx"
|
import { $router } from "@/components/router.tsx"
|
||||||
import { redirectPage } from "@nanostores/router"
|
import { getPagePath, redirectPage } from "@nanostores/router"
|
||||||
import { BellIcon, FileSlidersIcon, SettingsIcon } from "lucide-react"
|
import { BellIcon, FileSlidersIcon, SettingsIcon } from "lucide-react"
|
||||||
import { $userSettings, pb } from "@/lib/stores.ts"
|
import { $userSettings, pb } from "@/lib/stores.ts"
|
||||||
import { toast } from "@/components/ui/use-toast.ts"
|
import { toast } from "@/components/ui/use-toast.ts"
|
||||||
@@ -49,17 +49,17 @@ export default function SettingsLayout() {
|
|||||||
const sidebarNavItems = [
|
const sidebarNavItems = [
|
||||||
{
|
{
|
||||||
title: _(t({ message: `General`, comment: "Context: General settings" })),
|
title: _(t({ message: `General`, comment: "Context: General settings" })),
|
||||||
href: "/settings/general",
|
href: getPagePath($router, "settings", { name: "general" }),
|
||||||
icon: SettingsIcon,
|
icon: SettingsIcon,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t`Notifications`,
|
title: t`Notifications`,
|
||||||
href: "/settings/notifications",
|
href: getPagePath($router, "settings", { name: "notifications" }),
|
||||||
icon: BellIcon,
|
icon: BellIcon,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t`YAML Config`,
|
title: t`YAML Config`,
|
||||||
href: "/settings/config",
|
href: getPagePath($router, "settings", { name: "config" }),
|
||||||
icon: FileSlidersIcon,
|
icon: FileSlidersIcon,
|
||||||
admin: true,
|
admin: true,
|
||||||
},
|
},
|
||||||
@@ -69,8 +69,8 @@ export default function SettingsLayout() {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
document.title = t`Settings` + " / Beszel"
|
document.title = t`Settings` + " / Beszel"
|
||||||
// redirect to account page if no page is specified
|
// @ts-ignore redirect to account page if no page is specified
|
||||||
if (page?.path === "/settings") {
|
if (!page?.params?.name) {
|
||||||
redirectPage($router, "settings", { name: "general" })
|
redirectPage($router, "settings", { name: "general" })
|
||||||
}
|
}
|
||||||
}, [])
|
}, [])
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import { saveSettings } from "./layout"
|
|||||||
import * as v from "valibot"
|
import * as v from "valibot"
|
||||||
import { isAdmin } from "@/lib/utils"
|
import { isAdmin } from "@/lib/utils"
|
||||||
import { Trans, t } from "@lingui/macro"
|
import { Trans, t } from "@lingui/macro"
|
||||||
|
import { prependBasePath } from "@/components/router"
|
||||||
|
|
||||||
interface ShoutrrrUrlCardProps {
|
interface ShoutrrrUrlCardProps {
|
||||||
url: string
|
url: string
|
||||||
@@ -94,7 +95,7 @@ const SettingsNotificationsPage = ({ userSettings }: { userSettings: UserSetting
|
|||||||
<p className="text-sm text-muted-foreground leading-relaxed">
|
<p className="text-sm text-muted-foreground leading-relaxed">
|
||||||
<Trans>
|
<Trans>
|
||||||
Please{" "}
|
Please{" "}
|
||||||
<a href="/_/#/settings/mail" className="link" target="_blank">
|
<a href={prependBasePath("/_/#/settings/mail")} className="link" target="_blank">
|
||||||
configure an SMTP server
|
configure an SMTP server
|
||||||
</a>{" "}
|
</a>{" "}
|
||||||
to ensure alerts are delivered.
|
to ensure alerts are delivered.
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export function SidebarNav({ className, items, ...props }: SidebarNavProps) {
|
|||||||
<>
|
<>
|
||||||
{/* Mobile View */}
|
{/* Mobile View */}
|
||||||
<div className="md:hidden">
|
<div className="md:hidden">
|
||||||
<Select onValueChange={(value: string) => navigate(value)} value={page?.path}>
|
<Select onValueChange={navigate} value={page?.path}>
|
||||||
<SelectTrigger className="w-full my-3.5">
|
<SelectTrigger className="w-full my-3.5">
|
||||||
<SelectValue placeholder="Select page" />
|
<SelectValue placeholder="Select page" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
|
|||||||
@@ -1,12 +1,20 @@
|
|||||||
import { $systems, pb, $chartTime, $containerFilter, $userSettings, $direction } from "@/lib/stores"
|
import { $systems, pb, $chartTime, $containerFilter, $userSettings, $direction, $maxValues } from "@/lib/stores"
|
||||||
import { ChartData, ChartTimes, ContainerStatsRecord, GPUData, SystemRecord, SystemStatsRecord } from "@/types"
|
import { ChartData, ChartTimes, ContainerStatsRecord, GPUData, SystemRecord, SystemStatsRecord } from "@/types"
|
||||||
import React, { lazy, useCallback, useEffect, useMemo, useRef, useState } from "react"
|
import React, { lazy, memo, useCallback, useEffect, useMemo, useRef, useState } from "react"
|
||||||
import { Card, CardHeader, CardTitle, CardDescription } from "../ui/card"
|
import { Card, CardHeader, CardTitle, CardDescription } from "../ui/card"
|
||||||
import { useStore } from "@nanostores/react"
|
import { useStore } from "@nanostores/react"
|
||||||
import Spinner from "../spinner"
|
import Spinner from "../spinner"
|
||||||
import { ClockArrowUp, CpuIcon, GlobeIcon, LayoutGridIcon, MonitorIcon, XIcon } from "lucide-react"
|
import { ClockArrowUp, CpuIcon, GlobeIcon, LayoutGridIcon, MonitorIcon, XIcon } from "lucide-react"
|
||||||
import ChartTimeSelect from "../charts/chart-time-select"
|
import ChartTimeSelect from "../charts/chart-time-select"
|
||||||
import { chartTimeData, cn, getPbTimestamp, getSizeAndUnit, toFixedFloat, useLocalStorage } from "@/lib/utils"
|
import {
|
||||||
|
chartTimeData,
|
||||||
|
cn,
|
||||||
|
getHostDisplayValue,
|
||||||
|
getPbTimestamp,
|
||||||
|
getSizeAndUnit,
|
||||||
|
toFixedFloat,
|
||||||
|
useLocalStorage,
|
||||||
|
} from "@/lib/utils"
|
||||||
import { Separator } from "../ui/separator"
|
import { Separator } from "../ui/separator"
|
||||||
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "../ui/tooltip"
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "../ui/tooltip"
|
||||||
import { Button } from "../ui/button"
|
import { Button } from "../ui/button"
|
||||||
@@ -98,10 +106,7 @@ export default function SystemDetail({ name }: { name: string }) {
|
|||||||
const { _ } = useLingui()
|
const { _ } = useLingui()
|
||||||
const systems = useStore($systems)
|
const systems = useStore($systems)
|
||||||
const chartTime = useStore($chartTime)
|
const chartTime = useStore($chartTime)
|
||||||
/** Max CPU toggle value */
|
const maxValues = useStore($maxValues)
|
||||||
const cpuMaxStore = useState(false)
|
|
||||||
const bandwidthMaxStore = useState(false)
|
|
||||||
const diskIoMaxStore = useState(false)
|
|
||||||
const [grid, setGrid] = useLocalStorage("grid", true)
|
const [grid, setGrid] = useLocalStorage("grid", true)
|
||||||
const [system, setSystem] = useState({} as SystemRecord)
|
const [system, setSystem] = useState({} as SystemRecord)
|
||||||
const [systemStats, setSystemStats] = useState([] as SystemStatsRecord[])
|
const [systemStats, setSystemStats] = useState([] as SystemStatsRecord[])
|
||||||
@@ -121,9 +126,6 @@ export default function SystemDetail({ name }: { name: string }) {
|
|||||||
setContainerData([])
|
setContainerData([])
|
||||||
setContainerFilterBar(null)
|
setContainerFilterBar(null)
|
||||||
$containerFilter.set("")
|
$containerFilter.set("")
|
||||||
cpuMaxStore[1](false)
|
|
||||||
bandwidthMaxStore[1](false)
|
|
||||||
diskIoMaxStore[1](false)
|
|
||||||
}
|
}
|
||||||
}, [name])
|
}, [name])
|
||||||
|
|
||||||
@@ -250,7 +252,7 @@ export default function SystemDetail({ name }: { name: string }) {
|
|||||||
uptime = <Plural value={Math.trunc(system.info?.u / 86400)} one="# day" other="# days" />
|
uptime = <Plural value={Math.trunc(system.info?.u / 86400)} one="# day" other="# days" />
|
||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
{ value: system.host, Icon: GlobeIcon },
|
{ value: getHostDisplayValue(system), Icon: GlobeIcon },
|
||||||
{
|
{
|
||||||
value: system.info.h,
|
value: system.info.h,
|
||||||
Icon: MonitorIcon,
|
Icon: MonitorIcon,
|
||||||
@@ -291,9 +293,21 @@ export default function SystemDetail({ name }: { name: string }) {
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// select field for switching between avg and max values
|
||||||
|
const maxValSelect = isLongerChart ? <SelectAvgMax max={maxValues} /> : null
|
||||||
|
|
||||||
// if no data, show empty message
|
// if no data, show empty message
|
||||||
const dataEmpty = !chartLoading && chartData.systemStats.length === 0
|
const dataEmpty = !chartLoading && chartData.systemStats.length === 0
|
||||||
const hasGpuData = Object.keys(systemStats.at(-1)?.stats.g ?? {}).length > 0
|
const lastGpuVals = Object.values(systemStats.at(-1)?.stats.g ?? {})
|
||||||
|
const hasGpuData = lastGpuVals.length > 0
|
||||||
|
const hasGpuPowerData = lastGpuVals.some((gpu) => gpu.p !== undefined)
|
||||||
|
|
||||||
|
let translatedStatus: string = system.status
|
||||||
|
if (system.status === "up") {
|
||||||
|
translatedStatus = t({ message: "Up", comment: "Context: System is up" })
|
||||||
|
} else if (system.status === "down") {
|
||||||
|
translatedStatus = t({ message: "Down", comment: "Context: System is down" })
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@@ -321,7 +335,7 @@ export default function SystemDetail({ name }: { name: string }) {
|
|||||||
})}
|
})}
|
||||||
></span>
|
></span>
|
||||||
</span>
|
</span>
|
||||||
{system.status}
|
{translatedStatus}
|
||||||
</div>
|
</div>
|
||||||
{systemInfo.map(({ value, label, Icon, hide }, i) => {
|
{systemInfo.map(({ value, label, Icon, hide }, i) => {
|
||||||
if (hide || !value) {
|
if (hide || !value) {
|
||||||
@@ -383,9 +397,9 @@ export default function SystemDetail({ name }: { name: string }) {
|
|||||||
grid={grid}
|
grid={grid}
|
||||||
title={_(t`CPU Usage`)}
|
title={_(t`CPU Usage`)}
|
||||||
description={t`Average system-wide CPU utilization`}
|
description={t`Average system-wide CPU utilization`}
|
||||||
cornerEl={isLongerChart ? <SelectAvgMax store={cpuMaxStore} /> : null}
|
cornerEl={maxValSelect}
|
||||||
>
|
>
|
||||||
<AreaChartDefault chartData={chartData} chartName="CPU Usage" maxToggled={cpuMaxStore[0]} unit="%" />
|
<AreaChartDefault chartData={chartData} chartName="CPU Usage" maxToggled={maxValues} unit="%" />
|
||||||
</ChartCard>
|
</ChartCard>
|
||||||
|
|
||||||
{containerFilterBar && (
|
{containerFilterBar && (
|
||||||
@@ -430,19 +444,19 @@ export default function SystemDetail({ name }: { name: string }) {
|
|||||||
grid={grid}
|
grid={grid}
|
||||||
title={t`Disk I/O`}
|
title={t`Disk I/O`}
|
||||||
description={t`Throughput of root filesystem`}
|
description={t`Throughput of root filesystem`}
|
||||||
cornerEl={isLongerChart ? <SelectAvgMax store={diskIoMaxStore} /> : null}
|
cornerEl={maxValSelect}
|
||||||
>
|
>
|
||||||
<AreaChartDefault chartData={chartData} maxToggled={diskIoMaxStore[0]} chartName="dio" />
|
<AreaChartDefault chartData={chartData} chartName="dio" maxToggled={maxValues} />
|
||||||
</ChartCard>
|
</ChartCard>
|
||||||
|
|
||||||
<ChartCard
|
<ChartCard
|
||||||
empty={dataEmpty}
|
empty={dataEmpty}
|
||||||
grid={grid}
|
grid={grid}
|
||||||
title={t`Bandwidth`}
|
title={t`Bandwidth`}
|
||||||
cornerEl={isLongerChart ? <SelectAvgMax store={bandwidthMaxStore} /> : null}
|
cornerEl={maxValSelect}
|
||||||
description={t`Network traffic of public interfaces`}
|
description={t`Network traffic of public interfaces`}
|
||||||
>
|
>
|
||||||
<AreaChartDefault chartData={chartData} maxToggled={bandwidthMaxStore[0]} chartName="bw" />
|
<AreaChartDefault chartData={chartData} chartName="bw" maxToggled={maxValues} />
|
||||||
</ChartCard>
|
</ChartCard>
|
||||||
|
|
||||||
{containerFilterBar && containerData.length > 0 && (
|
{containerFilterBar && containerData.length > 0 && (
|
||||||
@@ -489,7 +503,7 @@ export default function SystemDetail({ name }: { name: string }) {
|
|||||||
)}
|
)}
|
||||||
|
|
||||||
{/* GPU power draw chart */}
|
{/* GPU power draw chart */}
|
||||||
{hasGpuData && (
|
{hasGpuPowerData && (
|
||||||
<ChartCard
|
<ChartCard
|
||||||
empty={dataEmpty}
|
empty={dataEmpty}
|
||||||
grid={grid}
|
grid={grid}
|
||||||
@@ -562,13 +576,9 @@ export default function SystemDetail({ name }: { name: string }) {
|
|||||||
grid={grid}
|
grid={grid}
|
||||||
title={`${extraFsName} I/O`}
|
title={`${extraFsName} I/O`}
|
||||||
description={t`Throughput of ${extraFsName}`}
|
description={t`Throughput of ${extraFsName}`}
|
||||||
cornerEl={isLongerChart ? <SelectAvgMax store={diskIoMaxStore} /> : null}
|
cornerEl={maxValSelect}
|
||||||
>
|
>
|
||||||
<AreaChartDefault
|
<AreaChartDefault chartData={chartData} chartName={`efs.${extraFsName}`} maxToggled={maxValues} />
|
||||||
chartData={chartData}
|
|
||||||
maxToggled={diskIoMaxStore[0]}
|
|
||||||
chartName={`efs.${extraFsName}`}
|
|
||||||
/>
|
|
||||||
</ChartCard>
|
</ChartCard>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
@@ -610,12 +620,10 @@ function ContainerFilterBar() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
function SelectAvgMax({ store }: { store: [boolean, React.Dispatch<React.SetStateAction<boolean>>] }) {
|
const SelectAvgMax = memo(({ max }: { max: boolean }) => {
|
||||||
const [max, setMax] = store
|
|
||||||
const Icon = max ? ChartMax : ChartAverage
|
const Icon = max ? ChartMax : ChartAverage
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Select value={max ? "max" : "avg"} onValueChange={(e) => setMax(e === "max")}>
|
<Select value={max ? "max" : "avg"} onValueChange={(e) => $maxValues.set(e === "max")}>
|
||||||
<SelectTrigger className="relative ps-10 pe-5">
|
<SelectTrigger className="relative ps-10 pe-5">
|
||||||
<Icon className="h-4 w-4 absolute start-4 top-1/2 -translate-y-1/2 opacity-85" />
|
<Icon className="h-4 w-4 absolute start-4 top-1/2 -translate-y-1/2 opacity-85" />
|
||||||
<SelectValue />
|
<SelectValue />
|
||||||
@@ -630,7 +638,7 @@ function SelectAvgMax({ store }: { store: [boolean, React.Dispatch<React.SetStat
|
|||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
)
|
)
|
||||||
}
|
})
|
||||||
|
|
||||||
function ChartCard({
|
function ChartCard({
|
||||||
title,
|
title,
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import {
|
|||||||
VisibilityState,
|
VisibilityState,
|
||||||
getCoreRowModel,
|
getCoreRowModel,
|
||||||
useReactTable,
|
useReactTable,
|
||||||
Column,
|
HeaderContext,
|
||||||
} from "@tanstack/react-table"
|
} from "@tanstack/react-table"
|
||||||
|
|
||||||
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"
|
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"
|
||||||
@@ -37,7 +37,6 @@ import {
|
|||||||
AlertDialogFooter,
|
AlertDialogFooter,
|
||||||
AlertDialogHeader,
|
AlertDialogHeader,
|
||||||
AlertDialogTitle,
|
AlertDialogTitle,
|
||||||
AlertDialogTrigger,
|
|
||||||
} from "@/components/ui/alert-dialog"
|
} from "@/components/ui/alert-dialog"
|
||||||
|
|
||||||
import { SystemRecord } from "@/types"
|
import { SystemRecord } from "@/types"
|
||||||
@@ -59,32 +58,39 @@ import {
|
|||||||
ArrowUpIcon,
|
ArrowUpIcon,
|
||||||
Settings2Icon,
|
Settings2Icon,
|
||||||
EyeIcon,
|
EyeIcon,
|
||||||
|
PenBoxIcon,
|
||||||
} from "lucide-react"
|
} from "lucide-react"
|
||||||
import { useEffect, useMemo, useState } from "react"
|
import { memo, useEffect, useMemo, useRef, useState } from "react"
|
||||||
import { $hubVersion, $systems, pb } from "@/lib/stores"
|
import { $hubVersion, $systems, pb } from "@/lib/stores"
|
||||||
import { useStore } from "@nanostores/react"
|
import { useStore } from "@nanostores/react"
|
||||||
import { cn, copyToClipboard, decimalString, isReadOnlyUser, useLocalStorage } from "@/lib/utils"
|
import { cn, copyToClipboard, decimalString, isReadOnlyUser, useLocalStorage } from "@/lib/utils"
|
||||||
import AlertsButton from "../alerts/alert-button"
|
import AlertsButton from "../alerts/alert-button"
|
||||||
import { Link, navigate } from "../router"
|
import { $router, Link, navigate } from "../router"
|
||||||
import { EthernetIcon } from "../ui/icons"
|
import { EthernetIcon, GpuIcon, ThermometerIcon } from "../ui/icons"
|
||||||
import { Trans, t } from "@lingui/macro"
|
import { Trans, t } from "@lingui/macro"
|
||||||
import { useLingui } from "@lingui/react"
|
import { useLingui } from "@lingui/react"
|
||||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "../ui/card"
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "../ui/card"
|
||||||
import { Input } from "../ui/input"
|
import { Input } from "../ui/input"
|
||||||
import { ClassValue } from "clsx"
|
import { ClassValue } from "clsx"
|
||||||
|
import { getPagePath } from "@nanostores/router"
|
||||||
|
import { SystemDialog } from "../add-system"
|
||||||
|
import { Dialog } from "../ui/dialog"
|
||||||
|
|
||||||
type ViewMode = "table" | "grid"
|
type ViewMode = "table" | "grid"
|
||||||
|
|
||||||
function CellFormatter(info: CellContext<SystemRecord, unknown>) {
|
function CellFormatter(info: CellContext<SystemRecord, unknown>) {
|
||||||
const val = info.getValue() as number
|
const val = (info.getValue() as number) || 0
|
||||||
return (
|
return (
|
||||||
<div className="flex gap-2 items-center tabular-nums tracking-tight">
|
<div className="flex gap-2 items-center tabular-nums tracking-tight">
|
||||||
<span className="min-w-[3.5em]">{decimalString(val, 1)}%</span>
|
<span className="min-w-[3.3em]">{decimalString(val, 1)}%</span>
|
||||||
<span className="grow min-w-10 block bg-muted h-[1em] relative rounded-sm overflow-hidden">
|
<span className="grow min-w-10 block bg-muted h-[1em] relative rounded-sm overflow-hidden">
|
||||||
<span
|
<span
|
||||||
className={cn(
|
className={cn(
|
||||||
"absolute inset-0 w-full h-full origin-left",
|
"absolute inset-0 w-full h-full origin-left",
|
||||||
(val < 65 && "bg-green-500") || (val < 90 && "bg-yellow-500") || "bg-red-600"
|
(info.row.original.status !== "up" && "bg-primary/30") ||
|
||||||
|
(val < 65 && "bg-green-500") ||
|
||||||
|
(val < 90 && "bg-yellow-500") ||
|
||||||
|
"bg-red-600"
|
||||||
)}
|
)}
|
||||||
style={{
|
style={{
|
||||||
transform: `scalex(${val / 100})`,
|
transform: `scalex(${val / 100})`,
|
||||||
@@ -95,7 +101,8 @@ function CellFormatter(info: CellContext<SystemRecord, unknown>) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
function sortableHeader(column: Column<SystemRecord, unknown>, hideSortIcon = false) {
|
function sortableHeader(context: HeaderContext<SystemRecord, unknown>) {
|
||||||
|
const { column } = context
|
||||||
return (
|
return (
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
@@ -103,9 +110,10 @@ function sortableHeader(column: Column<SystemRecord, unknown>, hideSortIcon = fa
|
|||||||
onClick={() => column.toggleSorting(column.getIsSorted() === "asc")}
|
onClick={() => column.toggleSorting(column.getIsSorted() === "asc")}
|
||||||
>
|
>
|
||||||
{/* @ts-ignore */}
|
{/* @ts-ignore */}
|
||||||
{column.columnDef?.icon && <column.columnDef.icon className="me-2 size-4" />}
|
{column.columnDef.icon && <column.columnDef.icon className="me-2 size-4" />}
|
||||||
{column.id}
|
{column.id}
|
||||||
{!hideSortIcon && <ArrowUpDownIcon className="ms-2 size-4" />}
|
{/* @ts-ignore */}
|
||||||
|
{column.columnDef.hideSort || <ArrowUpDownIcon className="ms-2 size-4" />}
|
||||||
</Button>
|
</Button>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -150,7 +158,7 @@ export default function SystemsTable() {
|
|||||||
</Button>
|
</Button>
|
||||||
</span>
|
</span>
|
||||||
),
|
),
|
||||||
header: ({ column }) => sortableHeader(column),
|
header: sortableHeader,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessorKey: "info.cpu",
|
accessorKey: "info.cpu",
|
||||||
@@ -158,7 +166,7 @@ export default function SystemsTable() {
|
|||||||
invertSorting: true,
|
invertSorting: true,
|
||||||
cell: CellFormatter,
|
cell: CellFormatter,
|
||||||
icon: CpuIcon,
|
icon: CpuIcon,
|
||||||
header: ({ column }) => sortableHeader(column),
|
header: sortableHeader,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessorKey: "info.mp",
|
accessorKey: "info.mp",
|
||||||
@@ -166,7 +174,7 @@ export default function SystemsTable() {
|
|||||||
invertSorting: true,
|
invertSorting: true,
|
||||||
cell: CellFormatter,
|
cell: CellFormatter,
|
||||||
icon: MemoryStickIcon,
|
icon: MemoryStickIcon,
|
||||||
header: ({ column }) => sortableHeader(column),
|
header: sortableHeader,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessorKey: "info.dp",
|
accessorKey: "info.dp",
|
||||||
@@ -174,15 +182,24 @@ export default function SystemsTable() {
|
|||||||
invertSorting: true,
|
invertSorting: true,
|
||||||
cell: CellFormatter,
|
cell: CellFormatter,
|
||||||
icon: HardDriveIcon,
|
icon: HardDriveIcon,
|
||||||
header: ({ column }) => sortableHeader(column),
|
header: sortableHeader,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorFn: (originalRow) => originalRow.info.g,
|
||||||
|
id: "GPU",
|
||||||
|
invertSorting: true,
|
||||||
|
sortUndefined: -1,
|
||||||
|
cell: CellFormatter,
|
||||||
|
icon: GpuIcon,
|
||||||
|
header: sortableHeader,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessorFn: (originalRow) => originalRow.info.b || 0,
|
accessorFn: (originalRow) => originalRow.info.b || 0,
|
||||||
id: t`Net`,
|
id: t`Net`,
|
||||||
invertSorting: true,
|
invertSorting: true,
|
||||||
size: 115,
|
size: 50,
|
||||||
icon: EthernetIcon,
|
icon: EthernetIcon,
|
||||||
header: ({ column }) => sortableHeader(column),
|
header: sortableHeader,
|
||||||
cell(info) {
|
cell(info) {
|
||||||
const val = info.getValue() as number
|
const val = info.getValue() as number
|
||||||
return (
|
return (
|
||||||
@@ -196,18 +213,48 @@ export default function SystemsTable() {
|
|||||||
)
|
)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
accessorFn: (originalRow) => originalRow.info.dt,
|
||||||
|
id: t({
|
||||||
|
message: "Temp",
|
||||||
|
comment: "Temperature label in systems table",
|
||||||
|
}),
|
||||||
|
invertSorting: true,
|
||||||
|
sortUndefined: -1,
|
||||||
|
size: 50,
|
||||||
|
hideSort: true,
|
||||||
|
icon: ThermometerIcon,
|
||||||
|
header: sortableHeader,
|
||||||
|
cell(info) {
|
||||||
|
const val = info.getValue() as number
|
||||||
|
if (!val) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<span
|
||||||
|
className={cn("tabular-nums whitespace-nowrap", {
|
||||||
|
"ps-1.5": viewMode === "table",
|
||||||
|
})}
|
||||||
|
>
|
||||||
|
{decimalString(val)} °C
|
||||||
|
</span>
|
||||||
|
)
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
accessorKey: "info.v",
|
accessorKey: "info.v",
|
||||||
id: t`Agent`,
|
id: t`Agent`,
|
||||||
invertSorting: true,
|
invertSorting: true,
|
||||||
size: 50,
|
size: 50,
|
||||||
icon: WifiIcon,
|
icon: WifiIcon,
|
||||||
header: ({ column }) => sortableHeader(column, true),
|
hideSort: true,
|
||||||
|
header: sortableHeader,
|
||||||
cell(info) {
|
cell(info) {
|
||||||
const version = info.getValue() as string
|
const version = info.getValue() as string
|
||||||
if (!version || !hubVersion) {
|
if (!version || !hubVersion) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
const system = info.row.original
|
||||||
return (
|
return (
|
||||||
<span
|
<span
|
||||||
className={cn("flex gap-2 items-center md:pe-5 tabular-nums", {
|
className={cn("flex gap-2 items-center md:pe-5 tabular-nums", {
|
||||||
@@ -215,8 +262,12 @@ export default function SystemsTable() {
|
|||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<IndicatorDot
|
<IndicatorDot
|
||||||
system={info.row.original}
|
system={system}
|
||||||
className={version === hubVersion ? "bg-green-500" : "bg-yellow-500"}
|
className={
|
||||||
|
(system.status !== "up" && "bg-primary/30") ||
|
||||||
|
(version === hubVersion && "bg-green-500") ||
|
||||||
|
"bg-yellow-500"
|
||||||
|
}
|
||||||
/>
|
/>
|
||||||
<span>{info.getValue() as string}</span>
|
<span>{info.getValue() as string}</span>
|
||||||
</span>
|
</span>
|
||||||
@@ -225,7 +276,7 @@ export default function SystemsTable() {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: t({ message: "Actions", comment: "Table column" }),
|
id: t({ message: "Actions", comment: "Table column" }),
|
||||||
size: 120,
|
size: 50,
|
||||||
cell: ({ row }) => (
|
cell: ({ row }) => (
|
||||||
<div className="flex justify-end items-center gap-1">
|
<div className="flex justify-end items-center gap-1">
|
||||||
<AlertsButton system={row.original} />
|
<AlertsButton system={row.original} />
|
||||||
@@ -257,6 +308,8 @@ export default function SystemsTable() {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const rows = table.getRowModel().rows
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Card>
|
<Card>
|
||||||
<CardHeader className="pb-5 px-2 sm:px-6 max-sm:pt-5 max-sm:pb-1">
|
<CardHeader className="pb-5 px-2 sm:px-6 max-sm:pt-5 max-sm:pb-1">
|
||||||
@@ -387,7 +440,7 @@ export default function SystemsTable() {
|
|||||||
))}
|
))}
|
||||||
</TableHeader>
|
</TableHeader>
|
||||||
<TableBody>
|
<TableBody>
|
||||||
{table.getRowModel().rows?.length ? (
|
{rows.length ? (
|
||||||
table.getRowModel().rows.map((row) => (
|
table.getRowModel().rows.map((row) => (
|
||||||
<TableRow
|
<TableRow
|
||||||
key={row.original.id}
|
key={row.original.id}
|
||||||
@@ -398,7 +451,7 @@ export default function SystemsTable() {
|
|||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
const target = e.target as HTMLElement
|
const target = e.target as HTMLElement
|
||||||
if (!target.closest("[data-nolink]") && e.currentTarget.contains(target)) {
|
if (!target.closest("[data-nolink]") && e.currentTarget.contains(target)) {
|
||||||
navigate(`/system/${encodeURIComponent(row.original.name)}`)
|
navigate(getPagePath($router, "system", { name: row.original.name }))
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -481,7 +534,7 @@ export default function SystemsTable() {
|
|||||||
})}
|
})}
|
||||||
</CardContent>
|
</CardContent>
|
||||||
<Link
|
<Link
|
||||||
href={`/system/${encodeURIComponent(row.original.name)}`}
|
href={getPagePath($router, "system", { name: row.original.name })}
|
||||||
className="inset-0 absolute w-full h-full"
|
className="inset-0 absolute w-full h-full"
|
||||||
>
|
>
|
||||||
<span className="sr-only">{row.original.name}</span>
|
<span className="sr-only">{row.original.name}</span>
|
||||||
@@ -516,11 +569,15 @@ function IndicatorDot({ system, className }: { system: SystemRecord; className?:
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
function ActionsButton({ system }: { system: SystemRecord }) {
|
const ActionsButton = memo(({ system }: { system: SystemRecord }) => {
|
||||||
// const [opened, setOpened] = useState(false)
|
const [deleteOpen, setDeleteOpen] = useState(false)
|
||||||
|
const [editOpen, setEditOpen] = useState(false)
|
||||||
|
let editOpened = useRef(false)
|
||||||
|
|
||||||
const { id, status, host, name } = system
|
const { id, status, host, name } = system
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<AlertDialog>
|
<>
|
||||||
<DropdownMenu>
|
<DropdownMenu>
|
||||||
<DropdownMenuTrigger asChild>
|
<DropdownMenuTrigger asChild>
|
||||||
<Button variant="ghost" size={"icon"} data-nolink>
|
<Button variant="ghost" size={"icon"} data-nolink>
|
||||||
@@ -531,6 +588,17 @@ function ActionsButton({ system }: { system: SystemRecord }) {
|
|||||||
</Button>
|
</Button>
|
||||||
</DropdownMenuTrigger>
|
</DropdownMenuTrigger>
|
||||||
<DropdownMenuContent align="end">
|
<DropdownMenuContent align="end">
|
||||||
|
{!isReadOnlyUser() && (
|
||||||
|
<DropdownMenuItem
|
||||||
|
onSelect={() => {
|
||||||
|
editOpened.current = true
|
||||||
|
setEditOpen(true)
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<PenBoxIcon className="me-2.5 size-4" />
|
||||||
|
<Trans>Edit</Trans>
|
||||||
|
</DropdownMenuItem>
|
||||||
|
)}
|
||||||
<DropdownMenuItem
|
<DropdownMenuItem
|
||||||
className={cn(isReadOnlyUser() && "hidden")}
|
className={cn(isReadOnlyUser() && "hidden")}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
@@ -556,38 +624,43 @@ function ActionsButton({ system }: { system: SystemRecord }) {
|
|||||||
<Trans>Copy host</Trans>
|
<Trans>Copy host</Trans>
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuSeparator className={cn(isReadOnlyUser() && "hidden")} />
|
<DropdownMenuSeparator className={cn(isReadOnlyUser() && "hidden")} />
|
||||||
<AlertDialogTrigger asChild>
|
<DropdownMenuItem className={cn(isReadOnlyUser() && "hidden")} onSelect={() => setDeleteOpen(true)}>
|
||||||
<DropdownMenuItem className={cn(isReadOnlyUser() && "hidden")}>
|
<Trash2Icon className="me-2.5 size-4" />
|
||||||
<Trash2Icon className="me-2.5 size-4" />
|
<Trans>Delete</Trans>
|
||||||
<Trans>Delete</Trans>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuItem>
|
|
||||||
</AlertDialogTrigger>
|
|
||||||
</DropdownMenuContent>
|
</DropdownMenuContent>
|
||||||
</DropdownMenu>
|
</DropdownMenu>
|
||||||
<AlertDialogContent>
|
{/* edit dialog */}
|
||||||
<AlertDialogHeader>
|
<Dialog open={editOpen} onOpenChange={setEditOpen}>
|
||||||
<AlertDialogTitle>
|
{editOpened.current && <SystemDialog system={system} setOpen={setEditOpen} />}
|
||||||
<Trans>Are you sure you want to delete {name}?</Trans>
|
</Dialog>
|
||||||
</AlertDialogTitle>
|
{/* deletion dialog */}
|
||||||
<AlertDialogDescription>
|
<AlertDialog open={deleteOpen} onOpenChange={(open) => setDeleteOpen(open)}>
|
||||||
<Trans>
|
<AlertDialogContent>
|
||||||
This action cannot be undone. This will permanently delete all current records for {name} from the
|
<AlertDialogHeader>
|
||||||
database.
|
<AlertDialogTitle>
|
||||||
</Trans>
|
<Trans>Are you sure you want to delete {name}?</Trans>
|
||||||
</AlertDialogDescription>
|
</AlertDialogTitle>
|
||||||
</AlertDialogHeader>
|
<AlertDialogDescription>
|
||||||
<AlertDialogFooter>
|
<Trans>
|
||||||
<AlertDialogCancel>
|
This action cannot be undone. This will permanently delete all current records for {name} from the
|
||||||
<Trans>Cancel</Trans>
|
database.
|
||||||
</AlertDialogCancel>
|
</Trans>
|
||||||
<AlertDialogAction
|
</AlertDialogDescription>
|
||||||
className={cn(buttonVariants({ variant: "destructive" }))}
|
</AlertDialogHeader>
|
||||||
onClick={() => pb.collection("systems").delete(id)}
|
<AlertDialogFooter>
|
||||||
>
|
<AlertDialogCancel>
|
||||||
<Trans>Continue</Trans>
|
<Trans>Cancel</Trans>
|
||||||
</AlertDialogAction>
|
</AlertDialogCancel>
|
||||||
</AlertDialogFooter>
|
<AlertDialogAction
|
||||||
</AlertDialogContent>
|
className={cn(buttonVariants({ variant: "destructive" }))}
|
||||||
</AlertDialog>
|
onClick={() => pb.collection("systems").delete(id)}
|
||||||
|
>
|
||||||
|
<Trans>Continue</Trans>
|
||||||
|
</AlertDialogAction>
|
||||||
|
</AlertDialogFooter>
|
||||||
|
</AlertDialogContent>
|
||||||
|
</AlertDialog>
|
||||||
|
</>
|
||||||
)
|
)
|
||||||
}
|
})
|
||||||
|
|||||||
@@ -63,3 +63,13 @@ export function ThermometerIcon(props: SVGProps<SVGSVGElement>) {
|
|||||||
</svg>
|
</svg>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Huge icons (MIT)
|
||||||
|
export function GpuIcon(props: SVGProps<SVGSVGElement>) {
|
||||||
|
return (
|
||||||
|
<svg viewBox="0 0 24 24" {...props} stroke="currentColor" fill="none" strokeWidth="2">
|
||||||
|
<path d="M4 21V4.1a1.5 1.5 0 0 0-1.1-1L2 3m2 2h13c2.4 0 3.5 0 4.3.7s.7 2 .7 4.3v4.5c0 2.4 0 3.5-.7 4.3-.8.7-2 .7-4.3.7h-4.9a1.8 1.8 0 0 1-1.6-1c-.3-.6-1-1-1.6-1H4" />
|
||||||
|
<path d="M19 11.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0m-11.5-3h2m-2 3h2m-2 3h2" />
|
||||||
|
</svg>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|||||||
@@ -78,9 +78,19 @@
|
|||||||
body {
|
body {
|
||||||
@apply bg-background text-foreground;
|
@apply bg-background text-foreground;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@layer utilities {
|
||||||
.link {
|
.link {
|
||||||
@apply text-primary font-medium underline-offset-4 hover:underline;
|
@apply text-primary font-medium underline-offset-4 hover:underline;
|
||||||
}
|
}
|
||||||
|
/* New system dialog width */
|
||||||
|
.ns-dialog {
|
||||||
|
min-width: 30.3rem;
|
||||||
|
}
|
||||||
|
:where(:lang(zh), :lang(zh-CN), :lang(ko)) .ns-dialog {
|
||||||
|
min-width: 27.9rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.recharts-tooltip-wrapper {
|
.recharts-tooltip-wrapper {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { $direction } from "./stores"
|
|||||||
import { i18n } from "@lingui/core"
|
import { i18n } from "@lingui/core"
|
||||||
import type { Messages } from "@lingui/core"
|
import type { Messages } from "@lingui/core"
|
||||||
import languages from "@/lib/languages"
|
import languages from "@/lib/languages"
|
||||||
import { detect, fromUrl, fromStorage, fromNavigator } from "@lingui/detect-locale"
|
import { detect, fromStorage, fromNavigator } from "@lingui/detect-locale"
|
||||||
import { messages as enMessages } from "@/locales/en/en.ts"
|
import { messages as enMessages } from "@/locales/en/en.ts"
|
||||||
|
|
||||||
// let locale = detect(fromUrl("lang"), fromStorage("lang"), fromNavigator(), "en")
|
// let locale = detect(fromUrl("lang"), fromStorage("lang"), fromNavigator(), "en")
|
||||||
@@ -41,15 +41,10 @@ export async function dynamicActivate(locale: string) {
|
|||||||
if (locale?.startsWith("zh-")) {
|
if (locale?.startsWith("zh-")) {
|
||||||
// map zh variants to zh-CN
|
// map zh variants to zh-CN
|
||||||
const zhVariantMap: Record<string, string> = {
|
const zhVariantMap: Record<string, string> = {
|
||||||
"zh-CN": "zh-CN",
|
|
||||||
"zh-SG": "zh-CN",
|
|
||||||
"zh-MY": "zh-CN",
|
|
||||||
zh: "zh-CN",
|
|
||||||
"zh-Hans": "zh-CN",
|
|
||||||
"zh-HK": "zh-HK",
|
"zh-HK": "zh-HK",
|
||||||
"zh-TW": "zh-HK",
|
"zh-TW": "zh",
|
||||||
"zh-MO": "zh-HK",
|
"zh-MO": "zh",
|
||||||
"zh-Hant": "zh-HK",
|
"zh-Hant": "zh",
|
||||||
}
|
}
|
||||||
dynamicActivate(zhVariantMap[locale] || "zh-CN")
|
dynamicActivate(zhVariantMap[locale] || "zh-CN")
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -4,11 +4,21 @@ export default [
|
|||||||
label: "العربية",
|
label: "العربية",
|
||||||
e: "🇵🇸",
|
e: "🇵🇸",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
lang: "bg",
|
||||||
|
label: "Български",
|
||||||
|
e: "🇧🇬",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
lang: "cs",
|
lang: "cs",
|
||||||
label: "Čeština",
|
label: "Čeština",
|
||||||
e: "🇨🇿",
|
e: "🇨🇿",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
lang: "da",
|
||||||
|
label: "Dansk",
|
||||||
|
e: "🇩🇰",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
lang: "de",
|
lang: "de",
|
||||||
label: "Deutsch",
|
label: "Deutsch",
|
||||||
@@ -39,6 +49,11 @@ export default [
|
|||||||
label: "Hrvatski",
|
label: "Hrvatski",
|
||||||
e: "🇭🇷",
|
e: "🇭🇷",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
lang: "hu",
|
||||||
|
label: "Magyar",
|
||||||
|
e: "🇭🇺",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
lang: "it",
|
lang: "it",
|
||||||
label: "Italiano",
|
label: "Italiano",
|
||||||
@@ -59,6 +74,11 @@ export default [
|
|||||||
label: "Nederlands",
|
label: "Nederlands",
|
||||||
e: "🇳🇱",
|
e: "🇳🇱",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
lang: "no",
|
||||||
|
label: "Norsk",
|
||||||
|
e: "🇳🇴",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
lang: "pl",
|
lang: "pl",
|
||||||
label: "Polski",
|
label: "Polski",
|
||||||
@@ -79,6 +99,11 @@ export default [
|
|||||||
label: "Русский",
|
label: "Русский",
|
||||||
e: "🇷🇺",
|
e: "🇷🇺",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
lang: "sl",
|
||||||
|
label: "Slovenščina",
|
||||||
|
e: "🇸🇮",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
lang: "sv",
|
lang: "sv",
|
||||||
label: "Svenska",
|
label: "Svenska",
|
||||||
@@ -104,4 +129,9 @@ export default [
|
|||||||
label: "繁體中文",
|
label: "繁體中文",
|
||||||
e: "🇭🇰",
|
e: "🇭🇰",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
lang: "zh",
|
||||||
|
label: "繁體中文",
|
||||||
|
e: "🇹🇼",
|
||||||
|
},
|
||||||
] as const
|
] as const
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
import PocketBase from "pocketbase"
|
import PocketBase from "pocketbase"
|
||||||
import { atom, map, WritableAtom } from "nanostores"
|
import { atom, map, PreinitializedWritableAtom } from "nanostores"
|
||||||
import { AlertRecord, ChartTimes, SystemRecord, UserSettings } from "@/types"
|
import { AlertRecord, ChartTimes, SystemRecord, UserSettings } from "@/types"
|
||||||
|
import { basePath } from "@/components/router"
|
||||||
|
|
||||||
/** PocketBase JS Client */
|
/** PocketBase JS Client */
|
||||||
export const pb = new PocketBase("/")
|
export const pb = new PocketBase(basePath)
|
||||||
|
|
||||||
/** Store if user is authenticated */
|
/** Store if user is authenticated */
|
||||||
export const $authenticated = atom(pb.authStore.isValid)
|
export const $authenticated = atom(pb.authStore.isValid)
|
||||||
@@ -21,7 +22,10 @@ export const $publicKey = atom("")
|
|||||||
export const $hubVersion = atom("")
|
export const $hubVersion = atom("")
|
||||||
|
|
||||||
/** Chart time period */
|
/** Chart time period */
|
||||||
export const $chartTime = atom("1h") as WritableAtom<ChartTimes>
|
export const $chartTime = atom("1h") as PreinitializedWritableAtom<ChartTimes>
|
||||||
|
|
||||||
|
/** Whether to display average or max chart values */
|
||||||
|
export const $maxValues = atom(false)
|
||||||
|
|
||||||
/** User settings */
|
/** User settings */
|
||||||
export const $userSettings = map<UserSettings>({
|
export const $userSettings = map<UserSettings>({
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import { useEffect, useState } from "react"
|
|||||||
import { CpuIcon, HardDriveIcon, MemoryStickIcon, ServerIcon } from "lucide-react"
|
import { CpuIcon, HardDriveIcon, MemoryStickIcon, ServerIcon } from "lucide-react"
|
||||||
import { EthernetIcon, ThermometerIcon } from "@/components/ui/icons"
|
import { EthernetIcon, ThermometerIcon } from "@/components/ui/icons"
|
||||||
import { t } from "@lingui/macro"
|
import { t } from "@lingui/macro"
|
||||||
|
import { prependBasePath } from "@/components/router"
|
||||||
|
|
||||||
export function cn(...inputs: ClassValue[]) {
|
export function cn(...inputs: ClassValue[]) {
|
||||||
return twMerge(clsx(inputs))
|
return twMerge(clsx(inputs))
|
||||||
@@ -33,7 +34,7 @@ const verifyAuth = () => {
|
|||||||
pb.collection("users")
|
pb.collection("users")
|
||||||
.authRefresh()
|
.authRefresh()
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
pb.authStore.clear()
|
logOut()
|
||||||
toast({
|
toast({
|
||||||
title: t`Failed to authenticate`,
|
title: t`Failed to authenticate`,
|
||||||
description: t`Please log in again`,
|
description: t`Please log in again`,
|
||||||
@@ -42,15 +43,33 @@ const verifyAuth = () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export const updateSystemList = async () => {
|
export const updateSystemList = (() => {
|
||||||
const records = await pb
|
let isFetchingSystems = false
|
||||||
.collection<SystemRecord>("systems")
|
return async () => {
|
||||||
.getFullList({ sort: "+name", fields: "id,name,host,info,status" })
|
if (isFetchingSystems) {
|
||||||
if (records.length) {
|
return
|
||||||
$systems.set(records)
|
}
|
||||||
} else {
|
isFetchingSystems = true
|
||||||
verifyAuth()
|
try {
|
||||||
|
const records = await pb
|
||||||
|
.collection<SystemRecord>("systems")
|
||||||
|
.getFullList({ sort: "+name", fields: "id,name,host,port,info,status" })
|
||||||
|
|
||||||
|
if (records.length) {
|
||||||
|
$systems.set(records)
|
||||||
|
} else {
|
||||||
|
verifyAuth()
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
isFetchingSystems = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
})()
|
||||||
|
|
||||||
|
/** Logs the user out by clearing the auth store and unsubscribing from realtime updates. */
|
||||||
|
export async function logOut() {
|
||||||
|
pb.authStore.clear()
|
||||||
|
pb.realtime.unsubscribe()
|
||||||
}
|
}
|
||||||
|
|
||||||
export const updateAlerts = () => {
|
export const updateAlerts = () => {
|
||||||
@@ -88,7 +107,7 @@ export const formatDay = (timestamp: string) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const updateFavicon = (newIcon: string) => {
|
export const updateFavicon = (newIcon: string) => {
|
||||||
;(document.querySelector("link[rel='icon']") as HTMLLinkElement).href = `/static/${newIcon}`
|
;(document.querySelector("link[rel='icon']") as HTMLLinkElement).href = prependBasePath(`/static/${newIcon}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
export const isAdmin = () => pb.authStore.record?.role === "admin"
|
export const isAdmin = () => pb.authStore.record?.role === "admin"
|
||||||
@@ -283,7 +302,8 @@ export const alertInfo: Record<string, AlertInfo> = {
|
|||||||
unit: "",
|
unit: "",
|
||||||
icon: ServerIcon,
|
icon: ServerIcon,
|
||||||
desc: () => t`Triggers when status switches between up and down`,
|
desc: () => t`Triggers when status switches between up and down`,
|
||||||
single: true,
|
/** "for x minutes" is appended to desc when only one value */
|
||||||
|
singleDesc: () => t`System` + " " + t`Down`,
|
||||||
},
|
},
|
||||||
CPU: {
|
CPU: {
|
||||||
name: () => t`CPU Usage`,
|
name: () => t`CPU Usage`,
|
||||||
@@ -317,3 +337,11 @@ export const alertInfo: Record<string, AlertInfo> = {
|
|||||||
desc: () => t`Triggers when any sensor exceeds a threshold`,
|
desc: () => t`Triggers when any sensor exceeds a threshold`,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retuns value of system host, truncating full path if socket.
|
||||||
|
* @example
|
||||||
|
* // Assuming system.host is "/var/run/beszel.sock"
|
||||||
|
* const hostname = getHostDisplayValue(system) // hostname will be "beszel.sock"
|
||||||
|
*/
|
||||||
|
export const getHostDisplayValue = (system: SystemRecord): string => system.host.slice(system.host.lastIndexOf("/") + 1)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: ar\n"
|
"Language: ar\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Arabic\n"
|
"Language-Team: Arabic\n"
|
||||||
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
|
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# يوم} other {# أيام}}"
|
msgstr "{0, plural, one {# يوم} other {# أيام}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# ساعة} other {# ساعات}}"
|
msgstr "{hours, plural, one {# ساعة} other {# ساعات}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 ساعة"
|
msgstr "1 ساعة"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 أسبوع"
|
msgstr "1 أسبوع"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 ساعة"
|
msgstr "12 ساعة"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 ساعة"
|
msgstr "24 ساعة"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 يومًا"
|
msgstr "30 يومًا"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "إجراءات"
|
msgstr "إجراءات"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "التنبيهات النشطة"
|
msgstr "التنبيهات النشطة"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "إضافة <0>نظام</0>"
|
msgstr "إضافة <0>نظام</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "إضافة نظام جديد"
|
msgstr "إضافة نظام جديد"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "إضافة نظام"
|
msgstr "إضافة نظام"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "إضافة عنوان URL"
|
msgstr "إضافة عنوان URL"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "إضافة عنوان URL"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "تعديل خيارات العرض للرسوم البيانية."
|
msgstr "تعديل خيارات العرض للرسوم البيانية."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "مسؤول"
|
msgstr "مسؤول"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "وكيل"
|
msgstr "وكيل"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "التنبيهات"
|
msgstr "التنبيهات"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "جميع الأنظمة"
|
msgstr "جميع الأنظمة"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "هل أنت متأكد أنك تريد حذف {name}؟"
|
msgstr "هل أنت متأكد أنك تريد حذف {name}؟"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "هل أنت متأكد أنك تريد حذف {name}؟"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "النسخ التلقائي يتطلب سياقًا آمنًا."
|
msgstr "النسخ التلقائي يتطلب سياقًا آمنًا."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "متوسط"
|
msgstr "متوسط"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "متوسط استخدام وحدة المعالجة المركزية للحاويات"
|
msgstr "متوسط استخدام وحدة المعالجة المركزية للحاويات"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "متوسط استخدام وحدة المعالجة المركزية ل
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "المتوسط يتجاوز <0>{value}{0}</0>"
|
msgstr "المتوسط يتجاوز <0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr "متوسط استهلاك طاقة GPUs"
|
msgstr "متوسط استهلاك طاقة GPUs"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "متوسط استخدام وحدة المعالجة المركزية على مستوى النظام"
|
msgstr "متوسط استخدام وحدة المعالجة المركزية على مستوى النظام"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr "متوسط استخدام {0}"
|
msgstr "متوسط استخدام {0}"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "النسخ الاحتياطية"
|
msgstr "النسخ الاحتياطية"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "عرض النطاق الترددي"
|
msgstr "عرض النطاق الترددي"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "يدعم Beszel OpenID Connect والعديد من مزودي المصادقة OAuth2."
|
msgstr "يدعم Beszel OpenID Connect والعديد من مزودي المصادقة OAuth2."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "يستخدم Beszel <0>Shoutrrr</0> للتكامل مع خدمات الإشعارات الشهيرة."
|
msgstr "يستخدم Beszel <0>Shoutrrr</0> للتكامل مع خدمات الإشعارات الشهيرة."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "ثنائي"
|
msgstr "ثنائي"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "ثنائي"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "ذاكرة التخزين المؤقت / المخازن المؤقتة"
|
msgstr "ذاكرة التخزين المؤقت / المخازن المؤقتة"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "إلغاء"
|
msgstr "إلغاء"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "تحقق من {email} للحصول على رابط إعادة التعي
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "تحقق من السجلات لمزيد من التفاصيل."
|
msgstr "تحقق من السجلات لمزيد من التفاصيل."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "تحقق من خدمة الإشعارات الخاصة بك"
|
msgstr "تحقق من خدمة الإشعارات الخاصة بك"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "انقر للنسخ"
|
msgstr "انقر للنسخ"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "انقر للنسخ"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "تعليمات سطر الأوامر"
|
msgstr "تعليمات سطر الأوامر"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "قم بتكوين كيفية تلقي إشعارات التنبيه."
|
msgstr "قم بتكوين كيفية تلقي إشعارات التنبيه."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "تأكيد كلمة المرور"
|
msgstr "تأكيد كلمة المرور"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "متابعة"
|
msgstr "متابعة"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "تم النسخ إلى الحافظة"
|
msgstr "تم النسخ إلى الحافظة"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "نسخ"
|
msgstr "نسخ"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "نسخ المضيف"
|
msgstr "نسخ المضيف"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "نسخ أمر لينكس"
|
msgstr "نسخ أمر لينكس"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "نسخ أمر لينكس"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "نسخ النص"
|
msgstr "نسخ النص"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "المعالج"
|
msgstr "المعالج"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "استخدام وحدة المعالجة المركزية"
|
msgstr "استخدام وحدة المعالجة المركزية"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "إنشاء حساب"
|
msgstr "إنشاء حساب"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "إنشاء حساب"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "داكن"
|
msgstr "داكن"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "لوحة التحكم"
|
msgstr "لوحة التحكم"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "لوحة التحكم"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "الفترة الزمنية الافتراضية"
|
msgstr "الفترة الزمنية الافتراضية"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "حذف"
|
msgstr "حذف"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "القرص"
|
msgstr "القرص"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "إدخال/إخراج القرص"
|
msgstr "إدخال/إخراج القرص"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "استخدام القرص"
|
msgstr "استخدام القرص"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "استخدام القرص لـ {extraFsName}"
|
msgstr "استخدام القرص لـ {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "استخدام CPU لـ Docker"
|
msgstr "استخدام CPU لـ Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "استخدام الذاكرة لـ Docker"
|
msgstr "استخدام الذاكرة لـ Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "إدخال/إخراج الشبكة لـ Docker"
|
msgstr "إدخال/إخراج الشبكة لـ Docker"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "التوثيق"
|
msgstr "التوثيق"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "البريد الإلكتروني"
|
msgstr "البريد الإلكتروني"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "إشعارات البريد الإلكتروني"
|
msgstr "إشعارات البريد الإلكتروني"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "إشعارات البريد الإلكتروني"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "أدخل عنوان البريد الإلكتروني لإعادة تعيين كلمة المرور"
|
msgstr "أدخل عنوان البريد الإلكتروني لإعادة تعيين كلمة المرور"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "أدخل عنوان البريد الإلكتروني..."
|
msgstr "أدخل عنوان البريد الإلكتروني..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "خطأ"
|
msgstr "خطأ"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "يتجاوز {0}{1} في آخر {2, plural, one {# دقيقة} other {# دقائق}}"
|
msgstr "يتجاوز {0}{1} في آخر {2, plural, one {# دقيقة} other {# دقائق}}"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "تصدير التكوين"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "تصدير تكوين الأنظمة الحالية الخاصة بك."
|
msgstr "تصدير تكوين الأنظمة الحالية الخاصة بك."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "فشل في المصادقة"
|
msgstr "فشل في المصادقة"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "فشل في حفظ الإعدادات"
|
msgstr "فشل في حفظ الإعدادات"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "فشل في إرسال إشعار الاختبار"
|
msgstr "فشل في إرسال إشعار الاختبار"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "فشل في إرسال إشعار الاختبار"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "فشل في تحديث التنبيه"
|
msgstr "فشل في تحديث التنبيه"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "تصفية..."
|
msgstr "تصفية..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "تصفية..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "لمدة <0>{min}</0> {min, plural, one {دقيقة} other {دقائق}}"
|
msgstr "لمدة <0>{min}</0> {min, plural, one {دقيقة} other {دقائق}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "هل نسيت كلمة المرور؟"
|
msgstr "هل نسيت كلمة المرور؟"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "هل نسيت كلمة المرور؟"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "عام"
|
msgstr "عام"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr "استهلاك طاقة GPU"
|
msgstr "استهلاك طاقة GPU"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "شبكة"
|
msgstr "شبكة"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "مضيف / IP"
|
msgstr "مضيف / IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "مضيف / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "إذا فقدت كلمة المرور لحساب المسؤول الخاص بك، يمكنك إعادة تعيينها باستخدام الأمر التالي."
|
msgstr "إذا فقدت كلمة المرور لحساب المسؤول الخاص بك، يمكنك إعادة تعيينها باستخدام الأمر التالي."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "عنوان البريد الإلكتروني غير صالح."
|
msgstr "عنوان البريد الإلكتروني غير صالح."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "كيرنل"
|
msgstr "كيرنل"
|
||||||
|
|
||||||
@@ -399,7 +404,7 @@ msgstr "كيرنل"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "اللغة"
|
msgstr "اللغة"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "التخطيط"
|
msgstr "التخطيط"
|
||||||
|
|
||||||
@@ -408,7 +413,7 @@ msgstr "التخطيط"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "فاتح"
|
msgstr "فاتح"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "تسجيل الخروج"
|
msgstr "تسجيل الخروج"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "تسجيل الخروج"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "تسجيل الدخول"
|
msgstr "تسجيل الدخول"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "فشل محاولة تسجيل الدخول"
|
msgstr "فشل محاولة تسجيل الدخول"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "السجلات"
|
msgstr "السجلات"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "هل تبحث عن مكان لإنشاء التنبيهات؟ انقر على أيقونات الجرس <0/> في جدول الأنظمة."
|
msgstr "هل تبحث عن مكان لإنشاء التنبيهات؟ انقر على أيقونات الجرس <0/> في جدول الأنظمة."
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "هل تبحث عن مكان لإنشاء التنبيهات؟ انقر
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "إدارة تفضيلات العرض والإشعارات."
|
msgstr "إدارة تفضيلات العرض والإشعارات."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "1 دقيقة كحد"
|
msgstr "1 دقيقة كحد"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "الذاكرة"
|
msgstr "الذاكرة"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "استخدام الذاكرة"
|
msgstr "استخدام الذاكرة"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "استخدام الذاكرة لحاويات Docker"
|
msgstr "استخدام الذاكرة لحاويات Docker"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "الاسم"
|
msgstr "الاسم"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "الشبكة"
|
msgstr "الشبكة"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "حركة مرور الشبكة لحاويات Docker"
|
msgstr "حركة مرور الشبكة لحاويات Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "حركة مرور الشبكة للواجهات العامة"
|
msgstr "حركة مرور الشبكة للواجهات العامة"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "لم يتم العثور على نتائج."
|
msgstr "لم يتم العثور على نتائج."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "لم يتم العثور على أنظمة."
|
msgstr "لم يتم العثور على أنظمة."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "الإشعارات"
|
msgstr "الإشعارات"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "دعم OAuth 2 / OIDC"
|
msgstr "دعم OAuth 2 / OIDC"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "دعم OAuth 2 / OIDC"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "في كل إعادة تشغيل، سيتم تحديث الأنظمة في قاعدة البيانات لتتطابق مع الأنظمة المعرفة في الملف."
|
msgstr "في كل إعادة تشغيل، سيتم تحديث الأنظمة في قاعدة البيانات لتتطابق مع الأنظمة المعرفة في الملف."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "فتح القائمة"
|
msgstr "فتح القائمة"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "أو المتابعة باستخدام"
|
msgstr "أو المتابعة باستخدام"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "أو المتابعة باستخدام"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "الكتابة فوق التنبيهات الحالية"
|
msgstr "الكتابة فوق التنبيهات الحالية"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "صفحة"
|
msgstr "صفحة"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "الصفحات / الإعدادات"
|
msgstr "الصفحات / الإعدادات"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "كلمة المرور"
|
msgstr "كلمة المرور"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "كلمة المرور يجب أن تتكون من 8 أحرف على الأقل."
|
msgstr "كلمة المرور يجب أن تتكون من 8 أحرف على الأقل."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "تم استلام طلب إعادة تعيين كلمة المرور"
|
msgstr "تم استلام طلب إعادة تعيين كلمة المرور"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "إيقاف مؤقت"
|
msgstr "إيقاف مؤقت"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "يرجى <0>تكوين خادم SMTP</0> لضمان تسليم التنبيهات."
|
msgstr "يرجى <0>تكوين خادم SMTP</0> لضمان تسليم التنبيهات."
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "يرجى <0>تكوين خادم SMTP</0> لضمان تسليم التن
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "يرجى التحقق من السجلات لمزيد من التفاصيل."
|
msgstr "يرجى التحقق من السجلات لمزيد من التفاصيل."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "يرجى التحقق من بيانات الاعتماد الخاصة بك والمحاولة مرة أخرى"
|
msgstr "يرجى التحقق من بيانات الاعتماد الخاصة بك والمحاولة مرة أخرى"
|
||||||
@@ -545,15 +558,15 @@ msgstr "يرجى التحقق من بيانات الاعتماد الخاصة ب
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "يرجى إنشاء حساب مسؤول"
|
msgstr "يرجى إنشاء حساب مسؤول"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "يرجى تمكين النوافذ المنبثقة لهذا الموقع"
|
msgstr "يرجى تمكين النوافذ المنبثقة لهذا الموقع"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "يرجى تسجيل الدخول مرة أخرى"
|
msgstr "يرجى تسجيل الدخول مرة أخرى"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "يرجى الاطلاع على <0>التوثيق</0> للحصول على التعليمات."
|
msgstr "يرجى الاطلاع على <0>التوثيق</0> للحصول على التعليمات."
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "يرجى الاطلاع على <0>التوثيق</0> للحصول على
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "يرجى تسجيل الدخول إلى حسابك"
|
msgstr "يرجى تسجيل الدخول إلى حسابك"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "المنفذ"
|
msgstr "المنفذ"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "الاستخدام الدقيق في الوقت المسجل"
|
msgstr "الاستخدام الدقيق في الوقت المسجل"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "اللغة المفضلة"
|
msgstr "اللغة المفضلة"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "المفتاح العام"
|
msgstr "المفتاح العام"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "تم الاستلام"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "إعادة تعيين كلمة المرور"
|
msgstr "إعادة تعيين كلمة المرور"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "استئناف"
|
msgstr "استئناف"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "احفظ العنوان باستخدام مفتاح الإدخال أو الفاصلة. اتركه فارغًا لتعطيل إشعارات البريد الإلكتروني."
|
msgstr "احفظ العنوان باستخدام مفتاح الإدخال أو الفاصلة. اتركه فارغًا لتعطيل إشعارات البريد الإلكتروني."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "حفظ الإعدادات"
|
msgstr "حفظ الإعدادات"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "بحث"
|
msgstr "بحث"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "البحث عن الأنظمة أو الإعدادات..."
|
msgstr "البحث عن الأنظمة أو الإعدادات..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "تم الإرسال"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "يحدد النطاق الزمني الافتراضي للرسوم البيانية عند عرض النظام."
|
msgstr "يحدد النطاق الزمني الافتراضي للرسوم البيانية عند عرض النظام."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "الإعدادات"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "تم حفظ الإعدادات"
|
msgstr "تم حفظ الإعدادات"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "تسجيل الدخول"
|
msgstr "تسجيل الدخول"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "إعدادات SMTP"
|
msgstr "إعدادات SMTP"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "الترتيب حسب"
|
msgstr "الترتيب حسب"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "الحالة"
|
msgstr "الحالة"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "مساحة التبديل المستخدمة من قبل النظام"
|
msgstr "مساحة التبديل المستخدمة من قبل النظام"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "استخدام التبديل"
|
msgstr "استخدام التبديل"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "النظام"
|
msgstr "النظام"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "الأنظمة"
|
msgstr "الأنظمة"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "الأنظمة"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "يمكن إدارة الأنظمة في ملف <0>config.yml</0> داخل دليل البيانات الخاص بك."
|
msgstr "يمكن إدارة الأنظمة في ملف <0>config.yml</0> داخل دليل البيانات الخاص بك."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "جدول"
|
msgstr "جدول"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "درجة الحرارة"
|
msgstr "درجة الحرارة"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "درجات حرارة مستشعرات النظام"
|
msgstr "درجات حرارة مستشعرات النظام"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "اختبار <0>URL</0>"
|
msgstr "اختبار <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "تم إرسال إشعار الاختبار"
|
msgstr "تم إرسال إشعار الاختبار"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "يجب أن يكون الوكيل قيد التشغيل على النظام للاتصال. انسخ أمر التثبيت للوكيل أدناه."
|
msgstr "يجب أن يكون الوكيل قيد التشغيل على النظام للاتصال. انسخ أمر التثبيت للوكيل أدناه."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "يجب أن يكون الوكيل قيد التشغيل على النظام للاتصال. انسخ <0>docker-compose.yml</0> للوكيل أدناه."
|
msgstr "يجب أن يكون الوكيل قيد التشغيل على النظام للاتصال. انسخ <0>docker-compose.yml</0> للوكيل أدناه."
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "يجب أن يكون الوكيل قيد التشغيل على النظ
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "ثم قم بتسجيل الدخول إلى الواجهة الخلفية وأعد تعيين كلمة مرور حساب المستخدم الخاص بك في جدول المستخدمين."
|
msgstr "ثم قم بتسجيل الدخول إلى الواجهة الخلفية وأعد تعيين كلمة مرور حساب المستخدم الخاص بك في جدول المستخدمين."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "لا يمكن التراجع عن هذا الإجراء. سيؤدي ذلك إلى حذف جميع السجلات الحالية لـ {name} من قاعدة البيانات بشكل دائم."
|
msgstr "لا يمكن التراجع عن هذا الإجراء. سيؤدي ذلك إلى حذف جميع السجلات الحالية لـ {name} من قاعدة البيانات بشكل دائم."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "معدل نقل {extraFsName}"
|
msgstr "معدل نقل {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "معدل نقل نظام الملفات الجذر"
|
msgstr "معدل نقل نظام الملفات الجذر"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "إلى البريد الإلكتروني"
|
msgstr "إلى البريد الإلكتروني"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "تبديل الشبكة"
|
msgstr "تبديل الشبكة"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "تبديل الشبكة"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "تبديل السمة"
|
msgstr "تبديل السمة"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "يتم التفعيل عندما <20><>تجاوز أي مستشعر عتبة معينة"
|
msgstr "يتم التفعيل عندما <20><>تجاوز أي مستشعر عتبة معينة"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "يتم التفعيل عندما يتجاوز الجمع بين الصعود/الهبوط عتبة معينة"
|
msgstr "يتم التفعيل عندما يتجاوز الجمع بين الصعود/الهبوط عتبة معينة"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "يتم التفعيل عندما يتجاوز استخدام وحدة المعالجة المركزية عتبة معينة"
|
msgstr "يتم التفعيل عندما يتجاوز استخدام وحدة المعالجة المركزية عتبة معينة"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "يتم التفعيل عندما يتجاوز استخدام الذاكرة عتبة معينة"
|
msgstr "يتم التفعيل عندما يتجاوز استخدام الذاكرة عتبة معينة"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "يتم التفعيل عندما يتغير الحالة بين التشغيل والإيقاف"
|
msgstr "يتم التفعيل عندما يتغير الحالة بين التشغيل والإيقاف"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "يتم التفعيل عندما يتجاوز استخدام أي قرص عتبة معينة"
|
msgstr "يتم التفعيل عندما يتجاوز استخدام أي قرص عتبة معينة"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "محدث في الوقت الحقيقي. انقر على نظام لعرض المعلومات."
|
msgstr "محدث في الوقت الحقيقي. انقر على نظام لعرض المعلومات."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "مدة التشغيل"
|
msgstr "مدة التشغيل"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "الاستخدام"
|
msgstr "الاستخدام"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "استخدام القسم الجذر"
|
msgstr "استخدام القسم الجذر"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "استخدام القسم الجذر"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "مستخدم"
|
msgstr "مستخدم"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "المستخدمون"
|
msgstr "المستخدمون"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "عرض"
|
msgstr "عرض"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "الأعمدة الظاهرة"
|
msgstr "الأعمدة الظاهرة"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "في انتظار وجود سجلات كافية للعرض"
|
msgstr "في انتظار وجود سجلات كافية للعرض"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "في انتظار وجود سجلات كافية للعرض"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "هل تريد مساعدتنا في تحسين ترجماتنا؟ تحقق من <0>Crowdin</0> لمزيد من التفاصيل."
|
msgstr "هل تريد مساعدتنا في تحسين ترجماتنا؟ تحقق من <0>Crowdin</0> لمزيد من التفاصيل."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "إشعارات Webhook / Push"
|
msgstr "إشعارات Webhook / Push"
|
||||||
|
|
||||||
|
|||||||
853
beszel/site/src/locales/bg/bg.po
Normal file
853
beszel/site/src/locales/bg/bg.po
Normal file
@@ -0,0 +1,853 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"POT-Creation-Date: 2024-11-01 11:30-0400\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: @lingui/cli\n"
|
||||||
|
"Language: bg\n"
|
||||||
|
"Project-Id-Version: beszel\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"PO-Revision-Date: 2025-02-23 04:50\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: Bulgarian\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Crowdin-Project: beszel\n"
|
||||||
|
"X-Crowdin-Project-ID: 733311\n"
|
||||||
|
"X-Crowdin-Language: bg\n"
|
||||||
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:252
|
||||||
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
|
msgstr "{0, plural, one {# ден} other {# дни}}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:250
|
||||||
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
|
msgstr "{hours, plural, one {# час} other {# часа}}"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:158
|
||||||
|
msgid "1 hour"
|
||||||
|
msgstr "1 час"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:181
|
||||||
|
msgid "1 week"
|
||||||
|
msgstr "1 седмица"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:166
|
||||||
|
msgid "12 hours"
|
||||||
|
msgstr "12 часа"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:174
|
||||||
|
msgid "24 hours"
|
||||||
|
msgstr "24 часа"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:189
|
||||||
|
msgid "30 days"
|
||||||
|
msgstr "30 дни"
|
||||||
|
|
||||||
|
#. Table column
|
||||||
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
|
msgid "Actions"
|
||||||
|
msgstr "Действия"
|
||||||
|
|
||||||
|
#: src/components/routes/home.tsx:62
|
||||||
|
msgid "Active Alerts"
|
||||||
|
msgstr "Активни тревоги"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:42
|
||||||
|
msgid "Add <0>System</0>"
|
||||||
|
msgstr "Добави <0>Система</0>"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:124
|
||||||
|
msgid "Add New System"
|
||||||
|
msgstr "Добави нова система"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Add system"
|
||||||
|
msgstr "Добави система"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
|
msgid "Add URL"
|
||||||
|
msgstr "Добави URL"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:81
|
||||||
|
msgid "Adjust display options for charts."
|
||||||
|
msgstr "Настрой опциите за показване на диаграмите."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:133
|
||||||
|
#: src/components/command-palette.tsx:146
|
||||||
|
#: src/components/command-palette.tsx:160
|
||||||
|
#: src/components/command-palette.tsx:174
|
||||||
|
#: src/components/command-palette.tsx:189
|
||||||
|
msgid "Admin"
|
||||||
|
msgstr "Администратор"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
|
msgid "Agent"
|
||||||
|
msgstr "Агент"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:32
|
||||||
|
#: src/components/alerts/alert-button.tsx:68
|
||||||
|
msgid "Alerts"
|
||||||
|
msgstr "Тревоги"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
|
msgid "All Systems"
|
||||||
|
msgstr "Всички системи"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
|
msgid "Are you sure you want to delete {name}?"
|
||||||
|
msgstr "Сигурен ли си, че искаш да изтриеш {name}?"
|
||||||
|
|
||||||
|
#: src/components/copy-to-clipboard.tsx:16
|
||||||
|
msgid "Automatic copy requires a secure context."
|
||||||
|
msgstr "Автоматичното копиране изисква защитен контескт."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:626
|
||||||
|
msgid "Average"
|
||||||
|
msgstr "Средно"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:403
|
||||||
|
msgid "Average CPU utilization of containers"
|
||||||
|
msgstr "Средно използване на процесора на контейнерите"
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:206
|
||||||
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
|
msgstr "Средната стойност надхвърля <0>{value}{0}</0>"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:504
|
||||||
|
msgid "Average power consumption of GPUs"
|
||||||
|
msgstr "Средна консумация на ток от графични карти"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:392
|
||||||
|
msgid "Average system-wide CPU utilization"
|
||||||
|
msgstr "Средно използване на процесора на цялата система"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:522
|
||||||
|
msgid "Average utilization of {0}"
|
||||||
|
msgstr "Средно използване на {0}"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:171
|
||||||
|
#: src/components/navbar.tsx:94
|
||||||
|
msgid "Backups"
|
||||||
|
msgstr "Архиви"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:448
|
||||||
|
#: src/lib/utils.ts:326
|
||||||
|
msgid "Bandwidth"
|
||||||
|
msgstr "Bandwidth на мрежата"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:304
|
||||||
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
|
msgstr "Beszel поддържа OpenID Connect и много други OAuth2 доставчици за удостоверяване."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
|
msgstr "Beszel ползва <0>Shoutrrr</0> за да се интегрира с известни услуги за уведомяване."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:129
|
||||||
|
msgid "Binary"
|
||||||
|
msgstr "Двоичен код"
|
||||||
|
|
||||||
|
#: src/components/charts/mem-chart.tsx:89
|
||||||
|
msgid "Cache / Buffers"
|
||||||
|
msgstr "Кеш / Буфери"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Откажи"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:68
|
||||||
|
msgid "Caution - potential data loss"
|
||||||
|
msgstr "Внимание - възможност за загуба на данни"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:36
|
||||||
|
msgid "Change general application options."
|
||||||
|
msgstr "Смени общите опции на приложението."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:78
|
||||||
|
msgid "Chart options"
|
||||||
|
msgstr "Опции на диаграмата"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:34
|
||||||
|
msgid "Check {email} for a reset link."
|
||||||
|
msgstr "Провери {email} за линк за нулиране."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:40
|
||||||
|
msgid "Check logs for more details."
|
||||||
|
msgstr "Провери log-овете за повече информация."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
|
msgid "Check your notification service"
|
||||||
|
msgstr "Провери услугата си за удостоверяване"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:203
|
||||||
|
msgid "Click to copy"
|
||||||
|
msgstr "Настисни за да копираш"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:83
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:89
|
||||||
|
msgid "Command line instructions"
|
||||||
|
msgstr "Инструкции за командната линия"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
|
msgid "Configure how you receive alert notifications."
|
||||||
|
msgstr "Настрой как получаваш нотификации за тревоги."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:210
|
||||||
|
#: src/components/login/auth-form.tsx:215
|
||||||
|
msgid "Confirm password"
|
||||||
|
msgstr "Потвърди парола"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
|
msgid "Continue"
|
||||||
|
msgstr "Продължи"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:26
|
||||||
|
msgid "Copied to clipboard"
|
||||||
|
msgstr "Записано в клипборда"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
|
msgid "Copy"
|
||||||
|
msgstr "Копирай"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
|
msgid "Copy host"
|
||||||
|
msgstr "Копирай хоста"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:223
|
||||||
|
msgid "Copy Linux command"
|
||||||
|
msgstr "Копирай linux командата"
|
||||||
|
|
||||||
|
#: src/components/copy-to-clipboard.tsx:13
|
||||||
|
msgid "Copy text"
|
||||||
|
msgstr "Копирай текста"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
|
msgid "CPU"
|
||||||
|
msgstr "Процесор"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:56
|
||||||
|
#: src/components/routes/system.tsx:391
|
||||||
|
#: src/lib/utils.ts:308
|
||||||
|
msgid "CPU Usage"
|
||||||
|
msgstr "Употреба на процесор"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:236
|
||||||
|
msgid "Create account"
|
||||||
|
msgstr "Създай акаунт"
|
||||||
|
|
||||||
|
#. Dark theme
|
||||||
|
#: src/components/mode-toggle.tsx:21
|
||||||
|
msgid "Dark"
|
||||||
|
msgstr "Тъмно"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:82
|
||||||
|
#: src/components/routes/home.tsx:35
|
||||||
|
msgid "Dashboard"
|
||||||
|
msgstr "Табло"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:85
|
||||||
|
msgid "Default time period"
|
||||||
|
msgstr "Времеви диапазон по подразбиране"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Изтрий"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
|
msgid "Disk"
|
||||||
|
msgstr "Диск"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:438
|
||||||
|
msgid "Disk I/O"
|
||||||
|
msgstr "Диск I/O"
|
||||||
|
|
||||||
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
|
#: src/components/routes/system.tsx:431
|
||||||
|
#: src/lib/utils.ts:320
|
||||||
|
msgid "Disk Usage"
|
||||||
|
msgstr "Използване на диск"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:559
|
||||||
|
msgid "Disk usage of {extraFsName}"
|
||||||
|
msgstr "Изполване на диск от {extraFsName}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:402
|
||||||
|
msgid "Docker CPU Usage"
|
||||||
|
msgstr "Използване на процесор от docker"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:423
|
||||||
|
msgid "Docker Memory Usage"
|
||||||
|
msgstr "Изполване на памет от docker"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:464
|
||||||
|
msgid "Docker Network I/O"
|
||||||
|
msgstr "Мрежов I/O използван от docker"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:125
|
||||||
|
msgid "Documentation"
|
||||||
|
msgstr "Документация"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
|
msgid "Email"
|
||||||
|
msgstr "Имейл"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
|
msgid "Email notifications"
|
||||||
|
msgstr "Имейл нотификации"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:38
|
||||||
|
msgid "Enter email address to reset password"
|
||||||
|
msgstr "Въведи имейл адрес за да нулираш паролата"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
|
msgid "Enter email address..."
|
||||||
|
msgstr "Въведи имейл адрес..."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:136
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
|
msgid "Error"
|
||||||
|
msgstr "Грешка"
|
||||||
|
|
||||||
|
#: src/components/routes/home.tsx:81
|
||||||
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
|
msgstr "Надвишава {0}{1} в последните {2, plural, one {# минута} other {# минути}}"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:72
|
||||||
|
msgid "Existing systems not defined in <0>config.yml</0> will be deleted. Please make regular backups."
|
||||||
|
msgstr "Съществуващи системи които не са дефинирани в <0>config.yml</0> ще бъдат изтрити. Моля прави чести архиви."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:93
|
||||||
|
msgid "Export configuration"
|
||||||
|
msgstr "Експортирай конфигурация"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:48
|
||||||
|
msgid "Export your current systems configuration."
|
||||||
|
msgstr "Експортирай конфигурацията на системите."
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:39
|
||||||
|
msgid "Failed to authenticate"
|
||||||
|
msgstr "Неуспешно удостоверяване"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
|
msgid "Failed to save settings"
|
||||||
|
msgstr "Неуспешно запазване на настройки"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
|
msgid "Failed to send test notification"
|
||||||
|
msgstr "Неуспешно изпрати тестова нотификация"
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:24
|
||||||
|
msgid "Failed to update alert"
|
||||||
|
msgstr "Неуспешно обнови тревога"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:599
|
||||||
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
|
msgid "Filter..."
|
||||||
|
msgstr "Филтрирай..."
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:227
|
||||||
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
|
msgstr "За <0>{min}</0> {min, plural, one {минута} other {минути}}"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:328
|
||||||
|
msgid "Forgot password?"
|
||||||
|
msgstr "Забравена парола?"
|
||||||
|
|
||||||
|
#. Context: General settings
|
||||||
|
#: src/components/routes/settings/general.tsx:33
|
||||||
|
#: src/components/routes/settings/layout.tsx:51
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Общо"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:503
|
||||||
|
msgid "GPU Power Draw"
|
||||||
|
msgstr "Консумация на ток от графична карта"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
|
msgid "Grid"
|
||||||
|
msgstr "Мрежово"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:157
|
||||||
|
msgid "Host / IP"
|
||||||
|
msgstr "Хост / IP"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:93
|
||||||
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
|
msgstr "Ако си загубил паролата до администраторския акаунт, можеш да я нулираш със следващата команда."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:17
|
||||||
|
msgid "Invalid email address."
|
||||||
|
msgstr "Невалиден имейл адрес."
|
||||||
|
|
||||||
|
#. Linux kernel
|
||||||
|
#: src/components/routes/system.tsx:264
|
||||||
|
msgid "Kernel"
|
||||||
|
msgstr "Linux Kernel"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:45
|
||||||
|
msgid "Language"
|
||||||
|
msgstr "Език"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
|
msgid "Layout"
|
||||||
|
msgstr "Подреждане"
|
||||||
|
|
||||||
|
#. Light theme
|
||||||
|
#: src/components/mode-toggle.tsx:16
|
||||||
|
msgid "Light"
|
||||||
|
msgstr "Светъл"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:105
|
||||||
|
msgid "Log Out"
|
||||||
|
msgstr "Изход"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:19
|
||||||
|
msgid "Login"
|
||||||
|
msgstr "Вход"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:39
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
|
msgid "Login attempt failed"
|
||||||
|
msgstr "Неуспешен опит за вход"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:157
|
||||||
|
#: src/components/navbar.tsx:86
|
||||||
|
msgid "Logs"
|
||||||
|
msgstr "Логове"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
|
msgstr "Търсиш къде да създадеш тревоги? Натисни емотиконата за звънец <0/> в таблицата за системи."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:85
|
||||||
|
msgid "Manage display and notification preferences."
|
||||||
|
msgstr "Управление на предпочитанията за показване и уведомяване."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Chart select field. Please try to keep this short.
|
||||||
|
#: src/components/routes/system.tsx:629
|
||||||
|
msgid "Max 1 min"
|
||||||
|
msgstr "Максимум 1 минута"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
|
msgid "Memory"
|
||||||
|
msgstr "Памет"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:413
|
||||||
|
#: src/lib/utils.ts:314
|
||||||
|
msgid "Memory Usage"
|
||||||
|
msgstr "Употреба на паметта"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:424
|
||||||
|
msgid "Memory usage of docker containers"
|
||||||
|
msgstr "Използването на памет от docker контейнерите"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:153
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "Име"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
|
msgid "Net"
|
||||||
|
msgstr "Мрежа"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:465
|
||||||
|
msgid "Network traffic of docker containers"
|
||||||
|
msgstr "Мрежов трафик на docker контейнери"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:450
|
||||||
|
msgid "Network traffic of public interfaces"
|
||||||
|
msgstr "Мрежов трафик на публични интерфейси"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:50
|
||||||
|
msgid "No results found."
|
||||||
|
msgstr "Няма намерени резултати."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
|
msgid "No systems found."
|
||||||
|
msgstr "Няма намерени системи."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:111
|
||||||
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
|
msgid "Notifications"
|
||||||
|
msgstr "Нотификации"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:299
|
||||||
|
msgid "OAuth 2 / OIDC support"
|
||||||
|
msgstr "Поддръжка на OAuth 2 / OIDC"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:61
|
||||||
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
|
msgstr "На всеки рестарт, системите в датабазата ще бъдат обновени да съвпадат със системите зададени във файла."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
|
msgid "Open menu"
|
||||||
|
msgstr "Отвори менюто"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:248
|
||||||
|
msgid "Or continue with"
|
||||||
|
msgstr "Или продължи с"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:109
|
||||||
|
msgid "Overwrite existing alerts"
|
||||||
|
msgstr "Презапиши съществуващи тревоги"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:85
|
||||||
|
msgid "Page"
|
||||||
|
msgstr "Страница"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:72
|
||||||
|
msgid "Pages / Settings"
|
||||||
|
msgstr "Страници / Настройки"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:192
|
||||||
|
#: src/components/login/auth-form.tsx:197
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "Парола"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:20
|
||||||
|
msgid "Password must be at least 8 characters."
|
||||||
|
msgstr "Паролата трябва да е поне 8 символа."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
|
msgid "Password reset request received"
|
||||||
|
msgstr "Получено е искането за нулиране на паролата"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
|
msgid "Pause"
|
||||||
|
msgstr "Пауза"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
|
msgstr "Моля <0>конфигурурай SMTP сървър</0> за да се подсигуриш, че тревогите са доставени."
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:25
|
||||||
|
msgid "Please check logs for more details."
|
||||||
|
msgstr "Моля провери log-овете за повече информация."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:40
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
|
msgid "Please check your credentials and try again"
|
||||||
|
msgstr "Моля провери дадената информация и опитай отново"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:36
|
||||||
|
msgid "Please create an admin account"
|
||||||
|
msgstr "Моля създай администраторски акаунт"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:137
|
||||||
|
msgid "Please enable pop-ups for this site"
|
||||||
|
msgstr "Моля активирай изскачащите прозорци за този сайт"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:40
|
||||||
|
msgid "Please log in again"
|
||||||
|
msgstr "Моля влез отново"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:307
|
||||||
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
|
msgstr "Моля виж <0>документацията</0> за инструкции."
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:40
|
||||||
|
msgid "Please sign in to your account"
|
||||||
|
msgstr "Моля влез в акаунта ти"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:169
|
||||||
|
msgid "Port"
|
||||||
|
msgstr "Порт"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:414
|
||||||
|
#: src/components/routes/system.tsx:530
|
||||||
|
msgid "Precise utilization at the recorded time"
|
||||||
|
msgstr "Точно използване в записаното време"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:58
|
||||||
|
msgid "Preferred Language"
|
||||||
|
msgstr "Предпочитан език"
|
||||||
|
|
||||||
|
#. Use 'Key' if your language requires many more characters
|
||||||
|
#: src/components/add-system.tsx:180
|
||||||
|
msgid "Public Key"
|
||||||
|
msgstr "Публичен ключ"
|
||||||
|
|
||||||
|
#. Disk read
|
||||||
|
#: src/components/charts/area-chart.tsx:60
|
||||||
|
#: src/components/charts/area-chart.tsx:70
|
||||||
|
msgid "Read"
|
||||||
|
msgstr "Прочети"
|
||||||
|
|
||||||
|
#. Network bytes received (download)
|
||||||
|
#: src/components/charts/area-chart.tsx:65
|
||||||
|
msgid "Received"
|
||||||
|
msgstr "Получени"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:76
|
||||||
|
msgid "Reset Password"
|
||||||
|
msgstr "Нулиране на парола"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
|
msgid "Resume"
|
||||||
|
msgstr "Възобнови"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
|
msgstr "Запази адреса с enter или запетая. Остави празно за да изключиш нотификациите чрез имейл."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:106
|
||||||
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Запази настройките"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
|
msgid "Search"
|
||||||
|
msgstr "Търси"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:47
|
||||||
|
msgid "Search for systems or settings..."
|
||||||
|
msgstr "Търси за системи или настройки..."
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:71
|
||||||
|
msgid "See <0>notification settings</0> to configure how you receive alerts."
|
||||||
|
msgstr "Виж <0>настройките за нотификациите</0> за да конфигурираш как получаваш тревоги."
|
||||||
|
|
||||||
|
#. Network bytes sent (upload)
|
||||||
|
#: src/components/charts/area-chart.tsx:64
|
||||||
|
msgid "Sent"
|
||||||
|
msgstr "Изпратени"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:100
|
||||||
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
|
msgstr "Задава диапазона за време за диаграмите, когато се разглежда система."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:96
|
||||||
|
#: src/components/command-palette.tsx:99
|
||||||
|
#: src/components/command-palette.tsx:114
|
||||||
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Настройки"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:33
|
||||||
|
msgid "Settings saved"
|
||||||
|
msgstr "Настройките са запазени"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:236
|
||||||
|
msgid "Sign in"
|
||||||
|
msgstr "Влез"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:186
|
||||||
|
msgid "SMTP settings"
|
||||||
|
msgstr "Настройки за SMTP"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
|
msgid "Sort By"
|
||||||
|
msgstr "Сортиране по"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:301
|
||||||
|
msgid "Status"
|
||||||
|
msgstr "Статус"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:480
|
||||||
|
msgid "Swap space used by the system"
|
||||||
|
msgstr "Изполван swap от системата"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:479
|
||||||
|
msgid "Swap Usage"
|
||||||
|
msgstr "Използване на swap"
|
||||||
|
|
||||||
|
#. System theme
|
||||||
|
#: src/components/mode-toggle.tsx:26
|
||||||
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
|
msgid "System"
|
||||||
|
msgstr "Система"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:78
|
||||||
|
msgid "Systems"
|
||||||
|
msgstr "Системи"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:55
|
||||||
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
|
msgstr "Системите могат да бъдат управлявани в <0>config.yml</0> файл намиращ се в директорията с данни."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
|
msgid "Table"
|
||||||
|
msgstr "Таблица"
|
||||||
|
|
||||||
|
#. Temperature label in systems table
|
||||||
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
|
msgid "Temperature"
|
||||||
|
msgstr "Температура"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:492
|
||||||
|
msgid "Temperatures of system sensors"
|
||||||
|
msgstr "Температири на системни сензори"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
|
msgid "Test <0>URL</0>"
|
||||||
|
msgstr "Тествай <0>URL</0>"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
|
msgid "Test notification sent"
|
||||||
|
msgstr "Тестова нотификация изпратена"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:145
|
||||||
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
|
msgstr "Агента трябва да работи на системата за да се свърже. Копирай инсталационната команда за агента долу."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:136
|
||||||
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
|
msgstr "Агемта трябва да работи на системата за да се свърже. Копирай <0>docker-compose.yml</0> файла за агента долу."
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:98
|
||||||
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
|
msgstr "След това влез в backend-а и нулирай паролата за потребителския акаунт в таблицата за потребители."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
|
msgstr "Това действие не може да бъде отменено. Това ще изтрие всички записи за {name} от датабазата."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:571
|
||||||
|
msgid "Throughput of {extraFsName}"
|
||||||
|
msgstr "Пропускателна способност на {extraFsName}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:439
|
||||||
|
msgid "Throughput of root filesystem"
|
||||||
|
msgstr "Пропускателна способност на root файловата система"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
|
msgid "To email(s)"
|
||||||
|
msgstr "До имейл(ите)"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:366
|
||||||
|
#: src/components/routes/system.tsx:379
|
||||||
|
msgid "Toggle grid"
|
||||||
|
msgstr "Превключване на мрежа"
|
||||||
|
|
||||||
|
#: src/components/mode-toggle.tsx:33
|
||||||
|
msgid "Toggle theme"
|
||||||
|
msgstr "Включи тема"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:336
|
||||||
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
|
msgstr "Задейства се, когато някой даден сензор надвиши зададен праг"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:329
|
||||||
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
|
msgstr "Задейства се, когато комбинираното качване/сваляне надвиши зададен праг"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:311
|
||||||
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
|
msgstr "Задейства се, когато употребата на процесора надвиши зададен праг"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:317
|
||||||
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
|
msgstr "Задейства се, когато употребата на паметта надвиши зададен праг"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:304
|
||||||
|
msgid "Triggers when status switches between up and down"
|
||||||
|
msgstr "Задейства се, когато статуса превключва между долу и горе"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:323
|
||||||
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
|
msgstr "Задейства се, когато употребата на някой диск надивши зададен праг"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
|
msgstr "Актуализира се в реално време. Натисни на система за да видиш информация."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:263
|
||||||
|
msgid "Uptime"
|
||||||
|
msgstr "Време на работа"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:73
|
||||||
|
#: src/components/routes/system.tsx:521
|
||||||
|
#: src/components/routes/system.tsx:558
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Употреба"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:431
|
||||||
|
msgid "Usage of root partition"
|
||||||
|
msgstr "Употреба на root partition-а"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:73
|
||||||
|
#: src/components/charts/mem-chart.tsx:65
|
||||||
|
#: src/components/charts/swap-chart.tsx:56
|
||||||
|
msgid "Used"
|
||||||
|
msgstr "Използвани"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:143
|
||||||
|
#: src/components/navbar.tsx:70
|
||||||
|
msgid "Users"
|
||||||
|
msgstr "Потребители"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
|
msgid "View"
|
||||||
|
msgstr "Изглед"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
|
msgid "Visible Fields"
|
||||||
|
msgstr "Видими полета"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:663
|
||||||
|
msgid "Waiting for enough records to display"
|
||||||
|
msgstr "Изчаква се за достатъчно записи за показване"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:48
|
||||||
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
|
msgstr "Искаш да помогнеш да направиш преводите още по-добри? Провери нашия <0>Crowdin</0> за повече детайли."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
|
msgid "Webhook / Push notifications"
|
||||||
|
msgstr "Webhook / Пуш нотификации"
|
||||||
|
|
||||||
|
#. Disk write
|
||||||
|
#: src/components/charts/area-chart.tsx:59
|
||||||
|
#: src/components/charts/area-chart.tsx:69
|
||||||
|
msgid "Write"
|
||||||
|
msgstr "Запиши"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:61
|
||||||
|
msgid "YAML Config"
|
||||||
|
msgstr "YAML конфигурация"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:45
|
||||||
|
msgid "YAML Configuration"
|
||||||
|
msgstr "YAML конфигурация"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:34
|
||||||
|
msgid "Your user settings have been updated."
|
||||||
|
msgstr "Настройките за потребителя ти са обновени."
|
||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: cs\n"
|
"Language: cs\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Czech\n"
|
"Language-Team: Czech\n"
|
||||||
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
|
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# den} few {# dny} other {# dní}}"
|
msgstr "{0, plural, one {# den} few {# dny} other {# dní}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# Hodina} few {# Hodiny} many {# Hodin} other {# Hodin}}"
|
msgstr "{hours, plural, one {# Hodina} few {# Hodiny} many {# Hodin} other {# Hodin}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 hodina"
|
msgstr "1 hodina"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 týden"
|
msgstr "1 týden"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 hodin"
|
msgstr "12 hodin"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 hodin"
|
msgstr "24 hodin"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 dní"
|
msgstr "30 dní"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Akce"
|
msgstr "Akce"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "Aktivní výstrahy"
|
msgstr "Aktivní výstrahy"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "Přidat <0>Systém</0>"
|
msgstr "Přidat <0>Systém</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "Přidat nový systém"
|
msgstr "Přidat nový systém"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "Přidat systém"
|
msgstr "Přidat systém"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "Přidat URL"
|
msgstr "Přidat URL"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "Přidat URL"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "Upravit možnosti zobrazení pro grafy."
|
msgstr "Upravit možnosti zobrazení pro grafy."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Admin"
|
msgstr "Admin"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "Agent"
|
msgstr "Agent"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "Výstrahy"
|
msgstr "Výstrahy"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "Všechny systémy"
|
msgstr "Všechny systémy"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "Opravdu chcete odstranit {name}?"
|
msgstr "Opravdu chcete odstranit {name}?"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "Opravdu chcete odstranit {name}?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "Automatická kopie vyžaduje zabezpečený kontext."
|
msgstr "Automatická kopie vyžaduje zabezpečený kontext."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Průměr"
|
msgstr "Průměr"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "Průměrné využití CPU kontejnerů"
|
msgstr "Průměrné využití CPU kontejnerů"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "Průměrné využití CPU kontejnerů"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "Průměr je vyšší než <0>{value}{0}</0>"
|
msgstr "Průměr je vyšší než <0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr "Průměrná spotřeba energie GPU"
|
msgstr "Průměrná spotřeba energie GPU"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "Průměrné využití CPU v celém systému"
|
msgstr "Průměrné využití CPU v celém systému"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr "Průměrné využití {0}"
|
msgstr "Průměrné využití {0}"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "Zálohy"
|
msgstr "Zálohy"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "Přenos"
|
msgstr "Přenos"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel podporuje OpenID Connect a mnoho poskytovatelů OAuth2 ověřování."
|
msgstr "Beszel podporuje OpenID Connect a mnoho poskytovatelů OAuth2 ověřování."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel používá <0>Shoutrrr</0> k integraci s populárními notifikačními službami."
|
msgstr "Beszel používá <0>Shoutrrr</0> k integraci s populárními notifikačními službami."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "Binary"
|
msgstr "Binary"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "Binary"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "Cache / vyrovnávací paměť"
|
msgstr "Cache / vyrovnávací paměť"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Zrušit"
|
msgstr "Zrušit"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "Zkontrolujte {email} pro odkaz na obnovení."
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "Pro více informací zkontrolujte logy."
|
msgstr "Pro více informací zkontrolujte logy."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "Zkontrolujte službu upozornění"
|
msgstr "Zkontrolujte službu upozornění"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "Klikněte pro zkopírování"
|
msgstr "Klikněte pro zkopírování"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "Klikněte pro zkopírování"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "Instrukce příkazového řádku"
|
msgstr "Instrukce příkazového řádku"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "Konfigurace způsobu přijímání upozornění."
|
msgstr "Konfigurace způsobu přijímání upozornění."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "Potvrdit heslo"
|
msgstr "Potvrdit heslo"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Pokračovat"
|
msgstr "Pokračovat"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "Zkopírováno do schránky"
|
msgstr "Zkopírováno do schránky"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Kopírovat"
|
msgstr "Kopírovat"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "Kopírovat hostitele"
|
msgstr "Kopírovat hostitele"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Kopírovat příkaz Linux"
|
msgstr "Kopírovat příkaz Linux"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "Kopírovat příkaz Linux"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "Kopírovat text"
|
msgstr "Kopírovat text"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "Procesor"
|
msgstr "Procesor"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "Využití procesoru"
|
msgstr "Využití procesoru"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "Vytvořit účet"
|
msgstr "Vytvořit účet"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "Vytvořit účet"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "Tmavý"
|
msgstr "Tmavý"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Přehled"
|
msgstr "Přehled"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "Přehled"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "Výchozí doba"
|
msgstr "Výchozí doba"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Odstranit"
|
msgstr "Odstranit"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "Disk"
|
msgstr "Disk"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "Disk I/O"
|
msgstr "Disk I/O"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "Využití disku"
|
msgstr "Využití disku"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "Využití disku {extraFsName}"
|
msgstr "Využití disku {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Využití CPU Dockeru"
|
msgstr "Využití CPU Dockeru"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Využití paměti Dockeru"
|
msgstr "Využití paměti Dockeru"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "Síťové I/O Dockeru"
|
msgstr "Síťové I/O Dockeru"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "Dokumentace"
|
msgstr "Dokumentace"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Email"
|
msgstr "Email"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "Emailová upozornění"
|
msgstr "Emailová upozornění"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "Emailová upozornění"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "Zadejte e-mailovou adresu pro obnovu hesla"
|
msgstr "Zadejte e-mailovou adresu pro obnovu hesla"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "Zadejte e-mailovou adresu..."
|
msgstr "Zadejte e-mailovou adresu..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Chyba"
|
msgstr "Chyba"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "Překračuje {0}{1} za {2, plural, one {poslední # minutu} few {poslední # minuty} other {posledních # minut}}"
|
msgstr "Překračuje {0}{1} za {2, plural, one {poslední # minutu} few {poslední # minuty} other {posledních # minut}}"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "Exportovat konfiguraci"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "Exportovat aktuální konfiguraci systémů."
|
msgstr "Exportovat aktuální konfiguraci systémů."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "Ověření se nezdařilo"
|
msgstr "Ověření se nezdařilo"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "Nepodařilo se uložit nastavení"
|
msgstr "Nepodařilo se uložit nastavení"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "Nepodařilo se odeslat testovací oznámení"
|
msgstr "Nepodařilo se odeslat testovací oznámení"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "Nepodařilo se odeslat testovací oznámení"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "Nepodařilo se aktualizovat upozornění"
|
msgstr "Nepodařilo se aktualizovat upozornění"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "Filtr..."
|
msgstr "Filtr..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "Filtr..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "Za <0>{min}</0> {min, plural, one {minutu} few {minuty} other {minut}}"
|
msgstr "Za <0>{min}</0> {min, plural, one {minutu} few {minuty} other {minut}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "Zapomněli jste heslo?"
|
msgstr "Zapomněli jste heslo?"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "Zapomněli jste heslo?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Obecné"
|
msgstr "Obecné"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr "Spotřeba energie GPU"
|
msgstr "Spotřeba energie GPU"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "Mřížka"
|
msgstr "Mřížka"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "Hostitel / IP"
|
msgstr "Hostitel / IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "Hostitel / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "Pokud jste ztratili heslo k vašemu účtu správce, můžete jej obnovit pomocí následujícího příkazu."
|
msgstr "Pokud jste ztratili heslo k vašemu účtu správce, můžete jej obnovit pomocí následujícího příkazu."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "Neplatná e-mailová adresa."
|
msgstr "Neplatná e-mailová adresa."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "Kernel"
|
msgstr "Kernel"
|
||||||
|
|
||||||
@@ -399,7 +404,7 @@ msgstr "Kernel"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Jazyk"
|
msgstr "Jazyk"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "Rozvržení"
|
msgstr "Rozvržení"
|
||||||
|
|
||||||
@@ -408,7 +413,7 @@ msgstr "Rozvržení"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Světlý"
|
msgstr "Světlý"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Odhlásit"
|
msgstr "Odhlásit"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "Odhlásit"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Přihlásit"
|
msgstr "Přihlásit"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "Pokus o přihlášení selhal"
|
msgstr "Pokus o přihlášení selhal"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "Logy"
|
msgstr "Logy"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "Hledáte místo kde vytvářet upozornění? Klikněte na ikonu zvonku <0/> v systémové tabulce."
|
msgstr "Hledáte místo kde vytvářet upozornění? Klikněte na ikonu zvonku <0/> v systémové tabulce."
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "Hledáte místo kde vytvářet upozornění? Klikněte na ikonu zvonku <
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "Správa nastavení zobrazení a oznámení."
|
msgstr "Správa nastavení zobrazení a oznámení."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "Max. 1 min"
|
msgstr "Max. 1 min"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "Paměť"
|
msgstr "Paměť"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "Využití paměti"
|
msgstr "Využití paměti"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Využití paměti docker kontejnerů"
|
msgstr "Využití paměti docker kontejnerů"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Název"
|
msgstr "Název"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "Síť"
|
msgstr "Síť"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Síťový provoz kontejnerů docker"
|
msgstr "Síťový provoz kontejnerů docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "Síťový provoz veřejných rozhraní"
|
msgstr "Síťový provoz veřejných rozhraní"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "Nenalezeny žádné výskyty."
|
msgstr "Nenalezeny žádné výskyty."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "Nenalezeny žádné systémy."
|
msgstr "Nenalezeny žádné systémy."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Upozornění"
|
msgstr "Upozornění"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "Podpora OAuth 2 / OIDC"
|
msgstr "Podpora OAuth 2 / OIDC"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "Podpora OAuth 2 / OIDC"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "Při každém restartu budou systémy v databázi aktualizovány tak, aby odpovídaly systémům definovaným v souboru."
|
msgstr "Při každém restartu budou systémy v databázi aktualizovány tak, aby odpovídaly systémům definovaným v souboru."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "Otevřít menu"
|
msgstr "Otevřít menu"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "Nebo pokračujte s"
|
msgstr "Nebo pokračujte s"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "Nebo pokračujte s"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "Přepsat existující upozornění"
|
msgstr "Přepsat existující upozornění"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Stránka"
|
msgstr "Stránka"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "Stránky / Nastavení"
|
msgstr "Stránky / Nastavení"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Heslo"
|
msgstr "Heslo"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "Heslo musí obsahovat alespoň 8 znaků."
|
msgstr "Heslo musí obsahovat alespoň 8 znaků."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "Žádost o obnovu hesla byla přijata"
|
msgstr "Žádost o obnovu hesla byla přijata"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Pozastavit"
|
msgstr "Pozastavit"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "<0>nakonfigurujte SMTP server</0> pro zajištění toho, aby byla upozornění doručena."
|
msgstr "<0>nakonfigurujte SMTP server</0> pro zajištění toho, aby byla upozornění doručena."
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "<0>nakonfigurujte SMTP server</0> pro zajištění toho, aby byla upozor
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "Pro více informací zkontrolujte logy."
|
msgstr "Pro více informací zkontrolujte logy."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "Zkontrolujte prosím Vaše přihlašovací údaje a zkuste to znovu"
|
msgstr "Zkontrolujte prosím Vaše přihlašovací údaje a zkuste to znovu"
|
||||||
@@ -545,15 +558,15 @@ msgstr "Zkontrolujte prosím Vaše přihlašovací údaje a zkuste to znovu"
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "Vytvořte si prosím účet administrátora"
|
msgstr "Vytvořte si prosím účet administrátora"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "Prosím povolte vyskakovací okna pro tento web"
|
msgstr "Prosím povolte vyskakovací okna pro tento web"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "Přihlaste se prosím znovu"
|
msgstr "Přihlaste se prosím znovu"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "Instrukce naleznete v <0>dokumentaci</0>."
|
msgstr "Instrukce naleznete v <0>dokumentaci</0>."
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "Instrukce naleznete v <0>dokumentaci</0>."
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "Přihlaste se prosím k vašemu účtu"
|
msgstr "Přihlaste se prosím k vašemu účtu"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Port"
|
msgstr "Port"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "Přesné využití v zaznamenaném čase"
|
msgstr "Přesné využití v zaznamenaném čase"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "Upřednostňovaný jazyk"
|
msgstr "Upřednostňovaný jazyk"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Veřejný klíč"
|
msgstr "Veřejný klíč"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "Přijato"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "Obnovit heslo"
|
msgstr "Obnovit heslo"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "Pokračovat"
|
msgstr "Pokračovat"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Adresu uložte pomocí klávesy enter nebo čárky. Pro deaktivaci e-mailových oznámení ponechte prázdné pole."
|
msgstr "Adresu uložte pomocí klávesy enter nebo čárky. Pro deaktivaci e-mailových oznámení ponechte prázdné pole."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "Uložit nastavení"
|
msgstr "Uložit nastavení"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Hledat"
|
msgstr "Hledat"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "Hledat systémy nebo nastavení..."
|
msgstr "Hledat systémy nebo nastavení..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "Odeslat"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "Nastaví výchozí časový rozsah grafů, když je systém zobrazen."
|
msgstr "Nastaví výchozí časový rozsah grafů, když je systém zobrazen."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "Nastavení"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "Nastavení uloženo"
|
msgstr "Nastavení uloženo"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Přihlásit se"
|
msgstr "Přihlásit se"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "Nastavení SMTP"
|
msgstr "Nastavení SMTP"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "Seřadit podle"
|
msgstr "Seřadit podle"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Stav"
|
msgstr "Stav"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "Swap prostor využívaný systémem"
|
msgstr "Swap prostor využívaný systémem"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "Swap využití"
|
msgstr "Swap využití"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Systém"
|
msgstr "Systém"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "Systémy"
|
msgstr "Systémy"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "Systémy"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "Systémy lze spravovat v souboru <0>config.yml</0> uvnitř datového adresáře."
|
msgstr "Systémy lze spravovat v souboru <0>config.yml</0> uvnitř datového adresáře."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "Tabulka"
|
msgstr "Tabulka"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "Teplota"
|
msgstr "Teplota"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "Teploty systémových senzorů"
|
msgstr "Teploty systémových senzorů"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "Test <0>URL</0>"
|
msgstr "Test <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Testovací oznámení odesláno"
|
msgstr "Testovací oznámení odesláno"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "Agent musí být v systému spuštěn, aby se mohl připojit. Zkopírujte níže uvedený instalační příkaz pro agenta."
|
msgstr "Agent musí být v systému spuštěn, aby se mohl připojit. Zkopírujte níže uvedený instalační příkaz pro agenta."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "Agent musí být v systému spuštěn, aby se mohl připojit. Zkopírujte níže uvedený soubor<0>docker-compose.yml</0> pro agenta."
|
msgstr "Agent musí být v systému spuštěn, aby se mohl připojit. Zkopírujte níže uvedený soubor<0>docker-compose.yml</0> pro agenta."
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "Agent musí být v systému spuštěn, aby se mohl připojit. Zkopírujt
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "Poté se přihlaste do backendu a obnovte heslo k uživatelskému účtu v tabulce uživatelů."
|
msgstr "Poté se přihlaste do backendu a obnovte heslo k uživatelskému účtu v tabulce uživatelů."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "Tuto akci nelze vzít zpět. Tím se z databáze trvale odstraní všechny aktuální záznamy pro {name}."
|
msgstr "Tuto akci nelze vzít zpět. Tím se z databáze trvale odstraní všechny aktuální záznamy pro {name}."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "Propustnost {extraFsName}"
|
msgstr "Propustnost {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "Propustnost kořenového souborového systému"
|
msgstr "Propustnost kořenového souborového systému"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "Na email(y)"
|
msgstr "Na email(y)"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "Přepnout mřížku"
|
msgstr "Přepnout mřížku"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "Přepnout mřížku"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "Přepnout motiv"
|
msgstr "Přepnout motiv"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "Spustí se, když některý senzor překročí prahovou hodnotu"
|
msgstr "Spustí se, když některý senzor překročí prahovou hodnotu"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "Spustí se, když kombinace up/down překročí prahovou hodnotu"
|
msgstr "Spustí se, když kombinace up/down překročí prahovou hodnotu"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "Spustí se, když využití procesoru překročí prahovou hodnotu"
|
msgstr "Spustí se, když využití procesoru překročí prahovou hodnotu"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "Spustí se, když využití paměti překročí prahovou hodnotu"
|
msgstr "Spustí se, když využití paměti překročí prahovou hodnotu"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "Spouští se, když se změní dostupnost"
|
msgstr "Spouští se, když se změní dostupnost"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "Spustí se, když využití disku překročí prahovou hodnotu"
|
msgstr "Spustí se, když využití disku překročí prahovou hodnotu"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "Aktualizováno v reálném čase. Klepnutím na systém zobrazíte informace."
|
msgstr "Aktualizováno v reálném čase. Klepnutím na systém zobrazíte informace."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "Doba provozu"
|
msgstr "Doba provozu"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "Využití"
|
msgstr "Využití"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "Využití kořenového oddílu"
|
msgstr "Využití kořenového oddílu"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "Využití kořenového oddílu"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "Využito"
|
msgstr "Využito"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Uživatelé"
|
msgstr "Uživatelé"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Zobrazení"
|
msgstr "Zobrazení"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "Viditelné sloupce"
|
msgstr "Viditelné sloupce"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "Čeká se na dostatek záznamů k zobrazení"
|
msgstr "Čeká se na dostatek záznamů k zobrazení"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "Čeká se na dostatek záznamů k zobrazení"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "Chcete nám pomoci s našimi překlady ještě lépe? Podívejte se na <0>Crowdin</0> pro více informací."
|
msgstr "Chcete nám pomoci s našimi překlady ještě lépe? Podívejte se na <0>Crowdin</0> pro více informací."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Webhook / Push oznámení"
|
msgstr "Webhook / Push oznámení"
|
||||||
|
|
||||||
|
|||||||
853
beszel/site/src/locales/da/da.po
Normal file
853
beszel/site/src/locales/da/da.po
Normal file
@@ -0,0 +1,853 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"POT-Creation-Date: 2024-11-01 11:30-0400\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: @lingui/cli\n"
|
||||||
|
"Language: da\n"
|
||||||
|
"Project-Id-Version: beszel\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: Danish\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Crowdin-Project: beszel\n"
|
||||||
|
"X-Crowdin-Project-ID: 733311\n"
|
||||||
|
"X-Crowdin-Language: da\n"
|
||||||
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:252
|
||||||
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
|
msgstr "{0, plural, one {# day} other {# days}}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:250
|
||||||
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
|
msgstr "{hours, plural, one {# hour} other {# hours}}"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:158
|
||||||
|
msgid "1 hour"
|
||||||
|
msgstr "1 time"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:181
|
||||||
|
msgid "1 week"
|
||||||
|
msgstr "1 uge"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:166
|
||||||
|
msgid "12 hours"
|
||||||
|
msgstr "12 timer"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:174
|
||||||
|
msgid "24 hours"
|
||||||
|
msgstr "24 timer"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:189
|
||||||
|
msgid "30 days"
|
||||||
|
msgstr "30 dage"
|
||||||
|
|
||||||
|
#. Table column
|
||||||
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
|
msgid "Actions"
|
||||||
|
msgstr "Handlinger"
|
||||||
|
|
||||||
|
#: src/components/routes/home.tsx:62
|
||||||
|
msgid "Active Alerts"
|
||||||
|
msgstr "Aktive Alarmer"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:42
|
||||||
|
msgid "Add <0>System</0>"
|
||||||
|
msgstr "Tilføj <0>System</0>"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:124
|
||||||
|
msgid "Add New System"
|
||||||
|
msgstr "Tilføj nyt system"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Add system"
|
||||||
|
msgstr "Tilføj system"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
|
msgid "Add URL"
|
||||||
|
msgstr "Tilføj URL"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:81
|
||||||
|
msgid "Adjust display options for charts."
|
||||||
|
msgstr "Juster visningsindstillinger for diagrammer."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:133
|
||||||
|
#: src/components/command-palette.tsx:146
|
||||||
|
#: src/components/command-palette.tsx:160
|
||||||
|
#: src/components/command-palette.tsx:174
|
||||||
|
#: src/components/command-palette.tsx:189
|
||||||
|
msgid "Admin"
|
||||||
|
msgstr "Admin"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
|
msgid "Agent"
|
||||||
|
msgstr "Agent"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:32
|
||||||
|
#: src/components/alerts/alert-button.tsx:68
|
||||||
|
msgid "Alerts"
|
||||||
|
msgstr "Alarmer"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
|
msgid "All Systems"
|
||||||
|
msgstr "Alle systemer"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
|
msgid "Are you sure you want to delete {name}?"
|
||||||
|
msgstr "Er du sikker på, at du vil slette {name}?"
|
||||||
|
|
||||||
|
#: src/components/copy-to-clipboard.tsx:16
|
||||||
|
msgid "Automatic copy requires a secure context."
|
||||||
|
msgstr "Automatisk kopiering kræver en sikker kontekst."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:626
|
||||||
|
msgid "Average"
|
||||||
|
msgstr "Gennemsnitlig"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:403
|
||||||
|
msgid "Average CPU utilization of containers"
|
||||||
|
msgstr "Gennemsnitlig CPU udnyttelse af containere"
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:206
|
||||||
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
|
msgstr "Gennemsnit overstiger <0>{value}{0}</0>"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:504
|
||||||
|
msgid "Average power consumption of GPUs"
|
||||||
|
msgstr "Gennemsnitligt strømforbrug for GPU'er"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:392
|
||||||
|
msgid "Average system-wide CPU utilization"
|
||||||
|
msgstr "Gennemsnitlig systembaseret CPU-udnyttelse"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:522
|
||||||
|
msgid "Average utilization of {0}"
|
||||||
|
msgstr "Gennemsnitlig udnyttelse af {0}"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:171
|
||||||
|
#: src/components/navbar.tsx:94
|
||||||
|
msgid "Backups"
|
||||||
|
msgstr "Sikkerhedskopier"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:448
|
||||||
|
#: src/lib/utils.ts:326
|
||||||
|
msgid "Bandwidth"
|
||||||
|
msgstr "Båndbredde"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:304
|
||||||
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
|
msgstr "Beszel understøtter OpenID Connect og mange OAuth2 godkendelsesudbydere."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
|
msgstr "Beszel bruger <0>Shoutrrr</0> til at integrere med populære notifikationstjenester."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:129
|
||||||
|
msgid "Binary"
|
||||||
|
msgstr "Binær"
|
||||||
|
|
||||||
|
#: src/components/charts/mem-chart.tsx:89
|
||||||
|
msgid "Cache / Buffers"
|
||||||
|
msgstr "Cache / Buffere"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Fortryd"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:68
|
||||||
|
msgid "Caution - potential data loss"
|
||||||
|
msgstr "Forsigtig - muligt tab af data"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:36
|
||||||
|
msgid "Change general application options."
|
||||||
|
msgstr "Skift generelle applikationsindstillinger."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:78
|
||||||
|
msgid "Chart options"
|
||||||
|
msgstr "Diagrammuligheder"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:34
|
||||||
|
msgid "Check {email} for a reset link."
|
||||||
|
msgstr "Tjek {email} for et nulstillingslink."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:40
|
||||||
|
msgid "Check logs for more details."
|
||||||
|
msgstr "Tjek logfiler for flere detaljer."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
|
msgid "Check your notification service"
|
||||||
|
msgstr "Tjek din notifikationstjeneste"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:203
|
||||||
|
msgid "Click to copy"
|
||||||
|
msgstr "Klik for at kopiere"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:83
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:89
|
||||||
|
msgid "Command line instructions"
|
||||||
|
msgstr "Instruktioner for kommandolinje"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
|
msgid "Configure how you receive alert notifications."
|
||||||
|
msgstr "Konfigurer hvordan du modtager advarselsmeddelelser."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:210
|
||||||
|
#: src/components/login/auth-form.tsx:215
|
||||||
|
msgid "Confirm password"
|
||||||
|
msgstr "Bekræft adgangskode"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
|
msgid "Continue"
|
||||||
|
msgstr "Forsæt"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:26
|
||||||
|
msgid "Copied to clipboard"
|
||||||
|
msgstr "Kopieret til udklipsholder"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
|
msgid "Copy"
|
||||||
|
msgstr "Kopier"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
|
msgid "Copy host"
|
||||||
|
msgstr "Kopier host"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:223
|
||||||
|
msgid "Copy Linux command"
|
||||||
|
msgstr "Kopier Linux kommando"
|
||||||
|
|
||||||
|
#: src/components/copy-to-clipboard.tsx:13
|
||||||
|
msgid "Copy text"
|
||||||
|
msgstr "Kopier tekst"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
|
msgid "CPU"
|
||||||
|
msgstr "CPU"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:56
|
||||||
|
#: src/components/routes/system.tsx:391
|
||||||
|
#: src/lib/utils.ts:308
|
||||||
|
msgid "CPU Usage"
|
||||||
|
msgstr "CPU forbrug"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:236
|
||||||
|
msgid "Create account"
|
||||||
|
msgstr "Opret konto"
|
||||||
|
|
||||||
|
#. Dark theme
|
||||||
|
#: src/components/mode-toggle.tsx:21
|
||||||
|
msgid "Dark"
|
||||||
|
msgstr "Mørk"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:82
|
||||||
|
#: src/components/routes/home.tsx:35
|
||||||
|
msgid "Dashboard"
|
||||||
|
msgstr "Oversigtspanel"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:85
|
||||||
|
msgid "Default time period"
|
||||||
|
msgstr "Standard tidsperiode"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Slet"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
|
msgid "Disk"
|
||||||
|
msgstr "Disk"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:438
|
||||||
|
msgid "Disk I/O"
|
||||||
|
msgstr "Disk I/O"
|
||||||
|
|
||||||
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
|
#: src/components/routes/system.tsx:431
|
||||||
|
#: src/lib/utils.ts:320
|
||||||
|
msgid "Disk Usage"
|
||||||
|
msgstr "Diskforbrug"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:559
|
||||||
|
msgid "Disk usage of {extraFsName}"
|
||||||
|
msgstr "Diskforbrug af {extraFsName}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:402
|
||||||
|
msgid "Docker CPU Usage"
|
||||||
|
msgstr "Docker CPU forbrug"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:423
|
||||||
|
msgid "Docker Memory Usage"
|
||||||
|
msgstr "Docker Hukommelsesforbrug"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:464
|
||||||
|
msgid "Docker Network I/O"
|
||||||
|
msgstr "Docker Netværk I/O"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:125
|
||||||
|
msgid "Documentation"
|
||||||
|
msgstr "Dokumentation"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
|
msgid "Email"
|
||||||
|
msgstr "E-mail"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
|
msgid "Email notifications"
|
||||||
|
msgstr "Email-notifikationer"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:38
|
||||||
|
msgid "Enter email address to reset password"
|
||||||
|
msgstr "Indtast e-mailadresse for at nulstille adgangskoden"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
|
msgid "Enter email address..."
|
||||||
|
msgstr "Indtast e-mailadresse..."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:136
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
|
msgid "Error"
|
||||||
|
msgstr "Fejl"
|
||||||
|
|
||||||
|
#: src/components/routes/home.tsx:81
|
||||||
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
|
msgstr "Overskrider {0}{1} i sidste {2, plural, one {# minut} other {# minutter}}"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:72
|
||||||
|
msgid "Existing systems not defined in <0>config.yml</0> will be deleted. Please make regular backups."
|
||||||
|
msgstr "Eksisterende systemer ikke defineret i <0>config.yml</0> vil blive slettet. Opret venligst regelmæssige sikkerhedskopier."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:93
|
||||||
|
msgid "Export configuration"
|
||||||
|
msgstr "Eksporter konfiguration"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:48
|
||||||
|
msgid "Export your current systems configuration."
|
||||||
|
msgstr "Eksporter din nuværende systemkonfiguration."
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:39
|
||||||
|
msgid "Failed to authenticate"
|
||||||
|
msgstr "Kunne ikke godkende"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
|
msgid "Failed to save settings"
|
||||||
|
msgstr "Kunne ikke gemme indstillinger"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
|
msgid "Failed to send test notification"
|
||||||
|
msgstr "Afsendelse af testnotifikation mislykkedes"
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:24
|
||||||
|
msgid "Failed to update alert"
|
||||||
|
msgstr "Kunne ikke opdatere alarm"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:599
|
||||||
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
|
msgid "Filter..."
|
||||||
|
msgstr "Filter..."
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:227
|
||||||
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
|
msgstr "For <0>{min}</0> {min, plural, one {minut} other {minutter}}"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:328
|
||||||
|
msgid "Forgot password?"
|
||||||
|
msgstr "Glemt adgangskode?"
|
||||||
|
|
||||||
|
#. Context: General settings
|
||||||
|
#: src/components/routes/settings/general.tsx:33
|
||||||
|
#: src/components/routes/settings/layout.tsx:51
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Generelt"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:503
|
||||||
|
msgid "GPU Power Draw"
|
||||||
|
msgstr "Gpu Strøm Træk"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
|
msgid "Grid"
|
||||||
|
msgstr "Gitter"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:157
|
||||||
|
msgid "Host / IP"
|
||||||
|
msgstr "Vært / IP"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:93
|
||||||
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
|
msgstr "Hvis du har mistet adgangskoden til din administratorkonto, kan du nulstille den ved hjælp af følgende kommando."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:17
|
||||||
|
msgid "Invalid email address."
|
||||||
|
msgstr "Ugyldig email adresse."
|
||||||
|
|
||||||
|
#. Linux kernel
|
||||||
|
#: src/components/routes/system.tsx:264
|
||||||
|
msgid "Kernel"
|
||||||
|
msgstr "Kernel"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:45
|
||||||
|
msgid "Language"
|
||||||
|
msgstr "Sprog"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
|
msgid "Layout"
|
||||||
|
msgstr "Layout"
|
||||||
|
|
||||||
|
#. Light theme
|
||||||
|
#: src/components/mode-toggle.tsx:16
|
||||||
|
msgid "Light"
|
||||||
|
msgstr "Lys"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:105
|
||||||
|
msgid "Log Out"
|
||||||
|
msgstr "Log ud"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:19
|
||||||
|
msgid "Login"
|
||||||
|
msgstr "Log ind"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:39
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
|
msgid "Login attempt failed"
|
||||||
|
msgstr "Loginforsøg mislykkedes"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:157
|
||||||
|
#: src/components/navbar.tsx:86
|
||||||
|
msgid "Logs"
|
||||||
|
msgstr "Logs"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
|
msgstr "Leder du i stedet for efter hvor du kan oprette alarmer? Klik på klokken <0/> ikoner i system tabellen."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:85
|
||||||
|
msgid "Manage display and notification preferences."
|
||||||
|
msgstr "Administrer display og notifikationsindstillinger."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Chart select field. Please try to keep this short.
|
||||||
|
#: src/components/routes/system.tsx:629
|
||||||
|
msgid "Max 1 min"
|
||||||
|
msgstr "Maks. 1 min"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
|
msgid "Memory"
|
||||||
|
msgstr "Hukommelse"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:413
|
||||||
|
#: src/lib/utils.ts:314
|
||||||
|
msgid "Memory Usage"
|
||||||
|
msgstr "Hukommelsesforbrug"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:424
|
||||||
|
msgid "Memory usage of docker containers"
|
||||||
|
msgstr "Hukommelsesforbrug af dockercontainere"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:153
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "Navn"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
|
msgid "Net"
|
||||||
|
msgstr "Net"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:465
|
||||||
|
msgid "Network traffic of docker containers"
|
||||||
|
msgstr "Netværkstrafik af dockercontainere"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:450
|
||||||
|
msgid "Network traffic of public interfaces"
|
||||||
|
msgstr "Netværkstrafik af offentlige grænseflader"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:50
|
||||||
|
msgid "No results found."
|
||||||
|
msgstr "Ingen resultater fundet."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
|
msgid "No systems found."
|
||||||
|
msgstr "Ingen systemer fundet."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:111
|
||||||
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
|
msgid "Notifications"
|
||||||
|
msgstr "Notifikationer"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:299
|
||||||
|
msgid "OAuth 2 / OIDC support"
|
||||||
|
msgstr "OAuth 2 / OIDC understøttelse"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:61
|
||||||
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
|
msgstr "Ved hver genstart vil systemer i databasen blive opdateret til at matche de systemer, der er defineret i filen."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
|
msgid "Open menu"
|
||||||
|
msgstr "Åbn menu"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:248
|
||||||
|
msgid "Or continue with"
|
||||||
|
msgstr "Eller fortsæt med"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:109
|
||||||
|
msgid "Overwrite existing alerts"
|
||||||
|
msgstr "Overskriv eksisterende alarmer"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:85
|
||||||
|
msgid "Page"
|
||||||
|
msgstr "Side"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:72
|
||||||
|
msgid "Pages / Settings"
|
||||||
|
msgstr "Sider / Indstillinger"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:192
|
||||||
|
#: src/components/login/auth-form.tsx:197
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "Adgangskode"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:20
|
||||||
|
msgid "Password must be at least 8 characters."
|
||||||
|
msgstr "Adgangskoden skal være på mindst 8 tegn."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
|
msgid "Password reset request received"
|
||||||
|
msgstr "Anmodning om nulstilling af adgangskode modtaget"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
|
msgid "Pause"
|
||||||
|
msgstr "Pause"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
|
msgstr "Konfigurer <0>en SMTP server</0> for at sikre at alarmer bliver leveret."
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:25
|
||||||
|
msgid "Please check logs for more details."
|
||||||
|
msgstr "Tjek logfiler for flere detaljer."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:40
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
|
msgid "Please check your credentials and try again"
|
||||||
|
msgstr "Tjek dine legitimationsoplysninger og prøv igen"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:36
|
||||||
|
msgid "Please create an admin account"
|
||||||
|
msgstr "Opret venligst en administratorkonto"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:137
|
||||||
|
msgid "Please enable pop-ups for this site"
|
||||||
|
msgstr "Aktiver pop-ups for dette websted"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:40
|
||||||
|
msgid "Please log in again"
|
||||||
|
msgstr "Log venligst ind igen"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:307
|
||||||
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
|
msgstr "Se <0>dokumentationen</0> for instruktioner."
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:40
|
||||||
|
msgid "Please sign in to your account"
|
||||||
|
msgstr "Log venligst ind på din konto"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:169
|
||||||
|
msgid "Port"
|
||||||
|
msgstr "Port"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:414
|
||||||
|
#: src/components/routes/system.tsx:530
|
||||||
|
msgid "Precise utilization at the recorded time"
|
||||||
|
msgstr "Præcis udnyttelse på det registrerede tidspunkt"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:58
|
||||||
|
msgid "Preferred Language"
|
||||||
|
msgstr "Foretrukket sprog"
|
||||||
|
|
||||||
|
#. Use 'Key' if your language requires many more characters
|
||||||
|
#: src/components/add-system.tsx:180
|
||||||
|
msgid "Public Key"
|
||||||
|
msgstr "Offentlig nøgle"
|
||||||
|
|
||||||
|
#. Disk read
|
||||||
|
#: src/components/charts/area-chart.tsx:60
|
||||||
|
#: src/components/charts/area-chart.tsx:70
|
||||||
|
msgid "Read"
|
||||||
|
msgstr "Læs"
|
||||||
|
|
||||||
|
#. Network bytes received (download)
|
||||||
|
#: src/components/charts/area-chart.tsx:65
|
||||||
|
msgid "Received"
|
||||||
|
msgstr "Modtaget"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:76
|
||||||
|
msgid "Reset Password"
|
||||||
|
msgstr "Nulstil adgangskode"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
|
msgid "Resume"
|
||||||
|
msgstr "Genoptag"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
|
msgstr "Gem adresse ved hjælp af enter eller komma. Lad feltet stå tomt for at deaktivere e-mail-meddelelser."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:106
|
||||||
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Gem indstillinger"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
|
msgid "Search"
|
||||||
|
msgstr "Søg"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:47
|
||||||
|
msgid "Search for systems or settings..."
|
||||||
|
msgstr "Søg efter systemer eller indstillinger..."
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:71
|
||||||
|
msgid "See <0>notification settings</0> to configure how you receive alerts."
|
||||||
|
msgstr "Se <0>meddelelsesindstillinger</0> for at konfigurere, hvordan du modtager alarmer."
|
||||||
|
|
||||||
|
#. Network bytes sent (upload)
|
||||||
|
#: src/components/charts/area-chart.tsx:64
|
||||||
|
msgid "Sent"
|
||||||
|
msgstr "Sendt"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:100
|
||||||
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
|
msgstr "Sætter standardtidsintervallet for diagrammer når et system vises."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:96
|
||||||
|
#: src/components/command-palette.tsx:99
|
||||||
|
#: src/components/command-palette.tsx:114
|
||||||
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Indstillinger"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:33
|
||||||
|
msgid "Settings saved"
|
||||||
|
msgstr "Indstillinger gemt"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:236
|
||||||
|
msgid "Sign in"
|
||||||
|
msgstr "Log ind"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:186
|
||||||
|
msgid "SMTP settings"
|
||||||
|
msgstr "SMTP-indstillinger"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
|
msgid "Sort By"
|
||||||
|
msgstr "Sorter efter"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:301
|
||||||
|
msgid "Status"
|
||||||
|
msgstr "Status"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:480
|
||||||
|
msgid "Swap space used by the system"
|
||||||
|
msgstr "Swap plads brugt af systemet"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:479
|
||||||
|
msgid "Swap Usage"
|
||||||
|
msgstr "Swap forbrug"
|
||||||
|
|
||||||
|
#. System theme
|
||||||
|
#: src/components/mode-toggle.tsx:26
|
||||||
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
|
msgid "System"
|
||||||
|
msgstr "System"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:78
|
||||||
|
msgid "Systems"
|
||||||
|
msgstr "Systemer"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:55
|
||||||
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
|
msgstr "Systemer kan være administreres i filen <0>config.yml</0> i din datamappe."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
|
msgid "Table"
|
||||||
|
msgstr "Tabel"
|
||||||
|
|
||||||
|
#. Temperature label in systems table
|
||||||
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
|
msgid "Temperature"
|
||||||
|
msgstr "Temperatur"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:492
|
||||||
|
msgid "Temperatures of system sensors"
|
||||||
|
msgstr "Temperaturer i systemsensorer"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
|
msgid "Test <0>URL</0>"
|
||||||
|
msgstr "Test <0>URL</0>"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
|
msgid "Test notification sent"
|
||||||
|
msgstr "Test notifikation sendt"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:145
|
||||||
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
|
msgstr "Agenten skal køre på systemet for at forbinde. Kopier installationskommandoen for agenten nedenfor."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:136
|
||||||
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
|
msgstr "Agenten skal køre på systemet for at forbinde. Kopier <0>docker-compose.yml</0> for agenten nedenfor."
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:98
|
||||||
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
|
msgstr "Log derefter ind på backend og nulstil adgangskoden til din brugerkonto i tabellen brugere."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
|
msgstr "Denne handling kan ikke fortrydes. Dette vil permanent slette alle aktuelle elementer for {name} fra databasen."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:571
|
||||||
|
msgid "Throughput of {extraFsName}"
|
||||||
|
msgstr "Gennemløb af {extraFsName}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:439
|
||||||
|
msgid "Throughput of root filesystem"
|
||||||
|
msgstr "Gennemløb af rodfilsystemet"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
|
msgid "To email(s)"
|
||||||
|
msgstr "Til email(s)"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:366
|
||||||
|
#: src/components/routes/system.tsx:379
|
||||||
|
msgid "Toggle grid"
|
||||||
|
msgstr "Slå gitter til/fra"
|
||||||
|
|
||||||
|
#: src/components/mode-toggle.tsx:33
|
||||||
|
msgid "Toggle theme"
|
||||||
|
msgstr "Skift tema"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:336
|
||||||
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
|
msgstr "Udløser når en sensor overstiger en tærskel"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:329
|
||||||
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
|
msgstr "Udløses når de kombinerede op/ned overstiger en tærskel"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:311
|
||||||
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
|
msgstr "Udløser når CPU-forbrug overstiger en tærskel"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:317
|
||||||
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
|
msgstr "Udløser når hukommelsesforbruget overstiger en tærskel"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:304
|
||||||
|
msgid "Triggers when status switches between up and down"
|
||||||
|
msgstr "Udløser når status skifter mellem op og ned"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:323
|
||||||
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
|
msgstr "Udløser når brugen af en disk overstiger en tærskel"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
|
msgstr "Opdateret i realtid. Klik på et system for at se information."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:263
|
||||||
|
msgid "Uptime"
|
||||||
|
msgstr "Oppetid"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:73
|
||||||
|
#: src/components/routes/system.tsx:521
|
||||||
|
#: src/components/routes/system.tsx:558
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Forbrug"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:431
|
||||||
|
msgid "Usage of root partition"
|
||||||
|
msgstr "Brug af rodpartition"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:73
|
||||||
|
#: src/components/charts/mem-chart.tsx:65
|
||||||
|
#: src/components/charts/swap-chart.tsx:56
|
||||||
|
msgid "Used"
|
||||||
|
msgstr "Brugt"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:143
|
||||||
|
#: src/components/navbar.tsx:70
|
||||||
|
msgid "Users"
|
||||||
|
msgstr "Brugere"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
|
msgid "View"
|
||||||
|
msgstr "Vis"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
|
msgid "Visible Fields"
|
||||||
|
msgstr "Synlige felter"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:663
|
||||||
|
msgid "Waiting for enough records to display"
|
||||||
|
msgstr "Venter på nok posteringer til at vise"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:48
|
||||||
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
|
msgstr "Vil du hjælpe os med at gøre vores oversættelser endnu bedre? Tjek <0>Crowdin</0> for flere detaljer."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
|
msgid "Webhook / Push notifications"
|
||||||
|
msgstr "Webhook / Push notifikationer"
|
||||||
|
|
||||||
|
#. Disk write
|
||||||
|
#: src/components/charts/area-chart.tsx:59
|
||||||
|
#: src/components/charts/area-chart.tsx:69
|
||||||
|
msgid "Write"
|
||||||
|
msgstr "Skriv"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:61
|
||||||
|
msgid "YAML Config"
|
||||||
|
msgstr "YAML Konfiguration"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:45
|
||||||
|
msgid "YAML Configuration"
|
||||||
|
msgstr "YAML Konfiguration"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:34
|
||||||
|
msgid "Your user settings have been updated."
|
||||||
|
msgstr "Dine brugerindstillinger er opdateret."
|
||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-22 11:59\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: German\n"
|
"Language-Team: German\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# Tag} other {# Tage}}"
|
msgstr "{0, plural, one {# Tag} other {# Tage}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# Stunde} other {# Stunden}}"
|
msgstr "{hours, plural, one {# Stunde} other {# Stunden}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 Stunde"
|
msgstr "1 Stunde"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 Woche"
|
msgstr "1 Woche"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 Stunden"
|
msgstr "12 Stunden"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 Stunden"
|
msgstr "24 Stunden"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 Tage"
|
msgstr "30 Tage"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Aktionen"
|
msgstr "Aktionen"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "Aktive Warnungen"
|
msgstr "Aktive Warnungen"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "<0>System</0> hinzufügen"
|
msgstr "<0>System</0> hinzufügen"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "Neues System hinzufügen"
|
msgstr "Neues System hinzufügen"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "System hinzufügen"
|
msgstr "System hinzufügen"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "URL hinzufügen"
|
msgstr "URL hinzufügen"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "URL hinzufügen"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "Anzeigeoptionen für Diagramme anpassen."
|
msgstr "Anzeigeoptionen für Diagramme anpassen."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Admin"
|
msgstr "Admin"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "Agent"
|
msgstr "Agent"
|
||||||
|
|
||||||
@@ -97,23 +96,23 @@ msgid "Alerts"
|
|||||||
msgstr "Warnungen"
|
msgstr "Warnungen"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "Alle Systeme"
|
msgstr "Alle Systeme"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "Möchten Sie {name} wirklich löschen?"
|
msgstr "Möchtest du {name} wirklich löschen?"
|
||||||
|
|
||||||
#: src/components/copy-to-clipboard.tsx:16
|
#: src/components/copy-to-clipboard.tsx:16
|
||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "Automatisches Kopieren erfordert einen sicheren Kontext."
|
msgstr "Automatisches Kopieren erfordert einen sicheren Kontext."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Durchschnitt"
|
msgstr "Durchschnitt"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "Durchschnittliche CPU-Auslastung der Container"
|
msgstr "Durchschnittliche CPU-Auslastung der Container"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "Durchschnittliche CPU-Auslastung der Container"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "Durchschnitt überschreitet <0>{value}{0}</0>"
|
msgstr "Durchschnitt überschreitet <0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr "Durchschnittlicher Stromverbrauch der GPUs"
|
msgstr "Durchschnittlicher Stromverbrauch der GPUs"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "Durchschnittliche systemweite CPU-Auslastung"
|
msgstr "Durchschnittliche systemweite CPU-Auslastung"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr "Durchschnittliche Auslastung von {0}"
|
msgstr "Durchschnittliche Auslastung von {0}"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "Backups"
|
msgstr "Backups"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "Bandbreite"
|
msgstr "Bandbreite"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel unterstützt OpenID Connect und viele OAuth2-Authentifizierungsanbieter."
|
msgstr "Beszel unterstützt OpenID Connect und viele OAuth2-Authentifizierungsanbieter."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel verwendet <0>Shoutrrr</0>, um sich mit beliebten Benachrichtigungsdiensten zu integrieren."
|
msgstr "Beszel verwendet <0>Shoutrrr</0>, um sich mit beliebten Benachrichtigungsdiensten zu integrieren."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "Binär"
|
msgstr "Binär"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "Binär"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "Cache / Puffer"
|
msgstr "Cache / Puffer"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Abbrechen"
|
msgstr "Abbrechen"
|
||||||
|
|
||||||
@@ -177,17 +176,17 @@ msgstr "Diagrammoptionen"
|
|||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:34
|
#: src/components/login/forgot-pass-form.tsx:34
|
||||||
msgid "Check {email} for a reset link."
|
msgid "Check {email} for a reset link."
|
||||||
msgstr "Überprüfen Sie {email} auf einen Rücksetzlink."
|
msgstr "Überprüfe {email} auf einen Link zum Zurücksetzen."
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:40
|
#: src/components/routes/settings/layout.tsx:40
|
||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "Überprüfen Sie die Protokolle für weitere Details."
|
msgstr "Überprüfe die Protokolle für weitere Details."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "Überprüfen Sie Ihren Benachrichtigungsdienst"
|
msgstr "Überprüfe deinen Benachrichtigungsdienst"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "Zum Kopieren klicken"
|
msgstr "Zum Kopieren klicken"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "Zum Kopieren klicken"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "Befehlszeilenanweisungen"
|
msgstr "Befehlszeilenanweisungen"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "Konfigurieren Sie, wie Sie Warnbenachrichtigungen erhalten."
|
msgstr "Konfiguriere, wie du Warnbenachrichtigungen erhältst."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "Passwort bestätigen"
|
msgstr "Passwort bestätigen"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Fortfahren"
|
msgstr "Fortfahren"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "In die Zwischenablage kopiert"
|
msgstr "In die Zwischenablage kopiert"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Kopieren"
|
msgstr "Kopieren"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "Host kopieren"
|
msgstr "Host kopieren"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Linux-Befehl kopieren"
|
msgstr "Linux-Befehl kopieren"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "Linux-Befehl kopieren"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "Text kopieren"
|
msgstr "Text kopieren"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "CPU"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "CPU-Auslastung"
|
msgstr "CPU-Auslastung"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "Konto erstellen"
|
msgstr "Konto erstellen"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "Konto erstellen"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "Dunkel"
|
msgstr "Dunkel"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Dashboard"
|
msgstr "Dashboard"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "Dashboard"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "Standardzeitraum"
|
msgstr "Standardzeitraum"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Löschen"
|
msgstr "Löschen"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "Festplatte"
|
msgstr "Festplatte"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "Festplatten-I/O"
|
msgstr "Festplatten-I/O"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "Festplattennutzung"
|
msgstr "Festplattennutzung"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "Festplattennutzung von {extraFsName}"
|
msgstr "Festplattennutzung von {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Docker-CPU-Auslastung"
|
msgstr "Docker-CPU-Auslastung"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Docker-Speichernutzung"
|
msgstr "Docker-Arbeitsspeichernutzung"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "Docker-Netzwerk-I/O"
|
msgstr "Docker-Netzwerk-I/O"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "Dokumentation"
|
msgstr "Dokumentation"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Bearbeiten"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "E-Mail"
|
msgstr "E-Mail"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "E-Mail-Benachrichtigungen"
|
msgstr "E-Mail-Benachrichtigungen"
|
||||||
|
|
||||||
@@ -308,23 +313,23 @@ msgstr "E-Mail-Benachrichtigungen"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "E-Mail-Adresse eingeben, um das Passwort zurückzusetzen"
|
msgstr "E-Mail-Adresse eingeben, um das Passwort zurückzusetzen"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "E-Mail-Adresse eingeben..."
|
msgstr "E-Mail-Adresse eingeben..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Fehler"
|
msgstr "Fehler"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "Überschreitet {0}{1} in den letzten {2, plural, one {# Minute} other {# Minuten}}"
|
msgstr "Überschreitet {0}{1} in den letzten {2, plural, one {# Minute} other {# Minuten}}"
|
||||||
|
|
||||||
#: src/components/routes/settings/config-yaml.tsx:72
|
#: src/components/routes/settings/config-yaml.tsx:72
|
||||||
msgid "Existing systems not defined in <0>config.yml</0> will be deleted. Please make regular backups."
|
msgid "Existing systems not defined in <0>config.yml</0> will be deleted. Please make regular backups."
|
||||||
msgstr "Bestehende Systeme, die nicht in <0>config.yml</0> definiert sind, werden gelöscht. Bitte machen Sie regelmäßige Backups."
|
msgstr "Bestehende Systeme, die nicht in der <0>config.yml</0> definiert sind, werden gelöscht. Bitte mache regelmäßige Backups."
|
||||||
|
|
||||||
#: src/components/routes/settings/config-yaml.tsx:93
|
#: src/components/routes/settings/config-yaml.tsx:93
|
||||||
msgid "Export configuration"
|
msgid "Export configuration"
|
||||||
@@ -332,18 +337,18 @@ msgstr "Konfiguration exportieren"
|
|||||||
|
|
||||||
#: src/components/routes/settings/config-yaml.tsx:48
|
#: src/components/routes/settings/config-yaml.tsx:48
|
||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "Exportieren Sie Ihre aktuelle Systemkonfiguration."
|
msgstr "Exportiere die aktuelle Systemkonfiguration."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "Authentifizierung fehlgeschlagen"
|
msgstr "Authentifizierung fehlgeschlagen"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "Einstellungen konnten nicht gespeichert werden"
|
msgstr "Einstellungen konnten nicht gespeichert werden"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "Testbenachrichtigung konnte nicht gesendet werden"
|
msgstr "Testbenachrichtigung konnte nicht gesendet werden"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "Testbenachrichtigung konnte nicht gesendet werden"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "Warnung konnte nicht aktualisiert werden"
|
msgstr "Warnung konnte nicht aktualisiert werden"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "Filter..."
|
msgstr "Filter..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "Filter..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "Für <0>{min}</0> {min, plural, one {Minute} other {Minuten}}"
|
msgstr "Für <0>{min}</0> {min, plural, one {Minute} other {Minuten}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "Passwort vergessen?"
|
msgstr "Passwort vergessen?"
|
||||||
|
|
||||||
@@ -370,28 +375,28 @@ msgstr "Passwort vergessen?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Allgemein"
|
msgstr "Allgemein"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr "GPU-Leistungsaufnahme"
|
msgstr "GPU-Leistungsaufnahme"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "Raster"
|
msgstr "Raster"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "Host / IP"
|
msgstr "Host / IP"
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:93
|
#: src/components/login/forgot-pass-form.tsx:93
|
||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "Wenn Sie das Passwort für Ihr Administratorkonto verloren haben, können Sie es mit dem folgenden Befehl zurücksetzen."
|
msgstr "Wenn du das Passwort für dein Administratorkonto verloren hast, kannst du es mit dem folgenden Befehl zurücksetzen."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "Ungültige E-Mail-Adresse."
|
msgstr "Ungültige E-Mail-Adresse."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "Kernel"
|
msgstr "Kernel"
|
||||||
|
|
||||||
@@ -399,16 +404,16 @@ msgstr "Kernel"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Sprache"
|
msgstr "Sprache"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr ""
|
msgstr "Anordnung"
|
||||||
|
|
||||||
#. Light theme
|
#. Light theme
|
||||||
#: src/components/mode-toggle.tsx:16
|
#: src/components/mode-toggle.tsx:16
|
||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Hell"
|
msgstr "Hell"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Abmelden"
|
msgstr "Abmelden"
|
||||||
|
|
||||||
@@ -416,86 +421,90 @@ msgstr "Abmelden"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Anmelden"
|
msgstr "Anmelden"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "Anmeldeversuch fehlgeschlagen"
|
msgstr "Anmeldeversuch fehlgeschlagen"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "Protokolle"
|
msgstr "Protokolle"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "Suchen Sie stattdessen nach der Erstellung von Warnungen? Klicken Sie auf die Glocken-<0/>-Symbole in der Systemtabelle."
|
msgstr "Du möchtest neue Warnungen erstellen? Klicke dafür auf die Glocken-<0/>-Symbole in der Systemtabelle."
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:85
|
#: src/components/routes/settings/layout.tsx:85
|
||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "Anzeige- und Benachrichtigungseinstellungen verwalten."
|
msgstr "Anzeige- und Benachrichtigungseinstellungen verwalten."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "Max 1 Min"
|
msgstr "Max 1 Min"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "Speicher"
|
msgstr "Arbeitsspeicher"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "Speichernutzung"
|
msgstr "Arbeitsspeichernutzung"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Speichernutzung der Docker-Container"
|
msgstr "Arbeitsspeichernutzung der Docker-Container"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Name"
|
msgstr "Name"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "Netz"
|
msgstr "Netz"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Netzwerkverkehr der Docker-Container"
|
msgstr "Netzwerkverkehr der Docker-Container"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "Netzwerkverkehr der öffentlichen Schnittstellen"
|
msgstr "Netzwerkverkehr der öffentlichen Schnittstellen"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "Keine Ergebnisse gefunden."
|
msgstr "Keine Ergebnisse gefunden."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "Keine Systeme gefunden."
|
msgstr "Keine Systeme gefunden."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Benachrichtigungen"
|
msgstr "Benachrichtigungen"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "OAuth 2 / OIDC-Unterstützung"
|
msgstr "OAuth 2 / OIDC-Unterstützung"
|
||||||
|
|
||||||
#: src/components/routes/settings/config-yaml.tsx:61
|
#: src/components/routes/settings/config-yaml.tsx:61
|
||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "Bei jedem Neustart werden die Systeme in der Datenbank aktualisiert, um den im Datei definierten Systemen zu entsprechen."
|
msgstr "Bei jedem Neustart werden die Systeme in der Datenbank aktualisiert, um den in der Datei definierten Systemen zu entsprechen."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "Menü öffnen"
|
msgstr "Menü öffnen"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "Oder fortfahren mit"
|
msgstr "Oder fortfahren mit"
|
||||||
|
|
||||||
@@ -503,70 +512,74 @@ msgstr "Oder fortfahren mit"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "Bestehende Warnungen überschreiben"
|
msgstr "Bestehende Warnungen überschreiben"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Seite"
|
msgstr "Seite"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "Seiten / Einstellungen"
|
msgstr "Seiten / Einstellungen"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Passwort"
|
msgstr "Passwort"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "Das Passwort muss mindestens 8 Zeichen haben."
|
msgstr "Das Passwort muss mindestens 8 Zeichen haben."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr "Das Passwort muss weniger als 72 Bytes lang sein."
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "Anfrage zum Zurücksetzen des Passworts erhalten"
|
msgstr "Anfrage zum Zurücksetzen des Passworts erhalten"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Pause"
|
msgstr "Pause"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "Bitte <0>konfigurieren Sie einen SMTP-Server</0>, um sicherzustellen, dass Warnungen zugestellt werden."
|
msgstr "Bitte <0>konfiguriere einen SMTP-Server</0>, um sicherzustellen, dass Warnungen zugestellt werden."
|
||||||
|
|
||||||
#: src/components/alerts/alerts-system.tsx:25
|
#: src/components/alerts/alerts-system.tsx:25
|
||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "Bitte überprüfen Sie die Protokolle für weitere Details."
|
msgstr "Bitte überprüfe die Protokolle für weitere Details."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "Bitte überprüfen Sie Ihre Anmeldedaten und versuchen Sie es erneut"
|
msgstr "Bitte überprüfe deine Anmeldedaten und versuche es erneut"
|
||||||
|
|
||||||
#: src/components/login/login.tsx:36
|
#: src/components/login/login.tsx:36
|
||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "Bitte erstellen Sie ein Administratorkonto"
|
msgstr "Bitte erstelle ein Administratorkonto"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "Bitte aktivieren Sie Pop-ups für diese Seite"
|
msgstr "Bitte aktiviere Pop-ups für diese Seite"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "Bitte melden Sie sich erneut an"
|
msgstr "Bitte melde dich erneut an"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "Bitte sehen Sie sich <0>die Dokumentation</0> für Anweisungen an."
|
msgstr "In der <0>Dokumentation</0> findest du weitere Anweisungen."
|
||||||
|
|
||||||
#: src/components/login/login.tsx:40
|
#: src/components/login/login.tsx:40
|
||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "Bitte melden Sie sich bei Ihrem Konto an"
|
msgstr "Bitte melde dich bei beinem Konto an"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Port"
|
msgstr "Port"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "Genaue Nutzung zum aufgezeichneten Zeitpunkt"
|
msgstr "Genaue Nutzung zum aufgezeichneten Zeitpunkt"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "Bevorzugte Sprache"
|
msgstr "Bevorzugte Sprache"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Schlüssel"
|
msgstr "Schlüssel"
|
||||||
|
|
||||||
@@ -594,30 +607,34 @@ msgstr "Empfangen"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "Passwort zurücksetzen"
|
msgstr "Passwort zurücksetzen"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "Fortsetzen"
|
msgstr "Fortsetzen"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Adresse mit der Eingabetaste oder Komma speichern. Leer lassen, um E-Mail-Benachrichtigungen zu deaktivieren."
|
msgstr "Adresse mit der Enter-Taste oder Komma speichern. Leer lassen, um E-Mail-Benachrichtigungen zu deaktivieren."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "Einstellungen speichern"
|
msgstr "Einstellungen speichern"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Suche"
|
msgstr "Suche"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "Nach Systemen oder Einstellungen suchen..."
|
msgstr "Nach Systemen oder Einstellungen suchen..."
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:71
|
#: src/components/alerts/alert-button.tsx:71
|
||||||
msgid "See <0>notification settings</0> to configure how you receive alerts."
|
msgid "See <0>notification settings</0> to configure how you receive alerts."
|
||||||
msgstr "Siehe <0>Benachrichtigungseinstellungen</0>, um zu konfigurieren, wie Sie Warnungen erhalten."
|
msgstr "Siehe <0>Benachrichtigungseinstellungen</0>, um zu konfigurieren, wie du Warnungen erhältst."
|
||||||
|
|
||||||
#. Network bytes sent (upload)
|
#. Network bytes sent (upload)
|
||||||
#: src/components/charts/area-chart.tsx:64
|
#: src/components/charts/area-chart.tsx:64
|
||||||
@@ -628,9 +645,9 @@ msgstr "Gesendet"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "Legt den Standardzeitraum für Diagramme fest, wenn ein System angezeigt wird."
|
msgstr "Legt den Standardzeitraum für Diagramme fest, wenn ein System angezeigt wird."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,144 +657,149 @@ msgstr "Einstellungen"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "Einstellungen gespeichert"
|
msgstr "Einstellungen gespeichert"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Anmelden"
|
msgstr "Anmelden"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "SMTP-Einstellungen"
|
msgstr "SMTP-Einstellungen"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "Sortieren nach"
|
msgstr "Sortieren nach"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Status"
|
msgstr "Status"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "Vom System genutzter Swap-Speicher"
|
msgstr "Vom System genutzter Swap-Speicher"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "Swap-Nutzung"
|
msgstr "Swap-Nutzung"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "System"
|
msgstr "System"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "Systeme"
|
msgstr "Systeme"
|
||||||
|
|
||||||
#: src/components/routes/settings/config-yaml.tsx:55
|
#: src/components/routes/settings/config-yaml.tsx:55
|
||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "Systeme können in einer <0>config.yml</0>-Datei in Ihrem Datenverzeichnis verwaltet werden."
|
msgstr "Systeme können in einer <0>config.yml</0>-Datei im Datenverzeichnis verwaltet werden."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "Tabelle"
|
msgstr "Tabelle"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "Temperatur"
|
msgstr "Temperatur"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "Temperaturen der Systemsensoren"
|
msgstr "Temperaturen der Systemsensoren"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "Test <0>URL</0>"
|
msgstr "Test <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Testbenachrichtigung gesendet"
|
msgstr "Testbenachrichtigung gesendet"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "Der Agent muss auf dem System laufen, um eine Verbindung herzustellen. Kopieren Sie den Installationsbefehl für den Agenten unten."
|
msgstr "Der Agent muss auf dem System laufen, um eine Verbindung herzustellen. Kopiere den Installationsbefehl für den Agent unten."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "Der Agent muss auf dem System laufen, um eine Verbindung herzustellen. Kopieren Sie die <0>docker-compose.yml</0> für den Agenten unten."
|
msgstr "Der Agent muss auf dem System laufen, um eine Verbindung herzustellen. Kopiere die <0>docker-compose.yml</0> für den Agent unten."
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:98
|
#: src/components/login/forgot-pass-form.tsx:98
|
||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "Melden Sie sich dann im Backend an und setzen Sie Ihr Benutzerkontopasswort in der Benutzertabelle zurück."
|
msgstr "Melde dich dann im Backend an und setze dein Benutzerkontopasswort in der Benutzertabelle zurück."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "Diese Aktion kann nicht rückgängig gemacht werden. Dadurch werden alle aktuellen Datensätze für {name} dauerhaft aus der Datenbank gelöscht."
|
msgstr "Diese Aktion kann nicht rückgängig gemacht werden. Dadurch werden alle aktuellen Datensätze für {name} dauerhaft aus der Datenbank gelöscht."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "Durchsatz von {extraFsName}"
|
msgstr "Durchsatz von {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "Durchsatz des Root-Dateisystems"
|
msgstr "Durchsatz des Root-Dateisystems"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "An E-Mail(s)"
|
msgstr "An E-Mail(s)"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "Raster umschalten"
|
msgstr "Raster umschalten"
|
||||||
|
|
||||||
#: src/components/mode-toggle.tsx:33
|
#: src/components/mode-toggle.tsx:33
|
||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "Thema umschalten"
|
msgstr "Darstellung umschalten"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "Löst aus, wenn ein Sensor einen Schwellenwert überschreitet"
|
msgstr "Löst aus, wenn ein Sensor einen Schwellenwert überschreitet"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "Löst aus, wenn die kombinierte Auf-/Abwärtsbewegung einen Schwellenwert überschreitet"
|
msgstr "Löst aus, wenn die kombinierte Auf-/Abwärtsbewegung einen Schwellenwert überschreitet"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "Löst aus, wenn die CPU-Auslastung einen Schwellenwert überschreitet"
|
msgstr "Löst aus, wenn die CPU-Auslastung einen Schwellenwert überschreitet"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "Löst aus, wenn die Speichernutzung einen Schwellenwert überschreitet"
|
msgstr "Löst aus, wenn die Arbeitsspeichernutzung einen Schwellenwert überschreitet"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
|
||||||
msgid "Triggers when status switches between up and down"
|
|
||||||
msgstr "Löst aus, wenn der Status zwischen oben und unten wechselt"
|
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:304
|
||||||
|
msgid "Triggers when status switches between up and down"
|
||||||
|
msgstr "Löst aus, wenn der Status zwischen online und offline wechselt"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "Löst aus, wenn die Nutzung einer Festplatte einen Schwellenwert überschreitet"
|
msgstr "Löst aus, wenn die Nutzung einer Festplatte einen Schwellenwert überschreitet"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "In Echtzeit aktualisiert. Klicken Sie auf ein System, um Informationen anzuzeigen."
|
msgstr "In Echtzeit aktualisiert. Klicke auf ein System, um Informationen anzuzeigen."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "Betriebszeit"
|
msgstr "Betriebszeit"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "Nutzung"
|
msgstr "Nutzung"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "Nutzung der Root-Partition"
|
msgstr "Nutzung der Root-Partition"
|
||||||
|
|
||||||
@@ -787,28 +809,28 @@ msgstr "Nutzung der Root-Partition"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "Verwendet"
|
msgstr "Verwendet"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Benutzer"
|
msgstr "Benutzer"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Ansicht"
|
msgstr "Ansicht"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "Sichtbare Spalten"
|
msgstr "Sichtbare Spalten"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "Warten auf genügend Datensätze zur Anzeige"
|
msgstr "Warten auf genügend Datensätze zur Anzeige"
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:48
|
#: src/components/routes/settings/general.tsx:48
|
||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "Möchten Sie uns helfen, unsere Übersetzungen noch besser zu machen? Schauen Sie sich <0>Crowdin</0> für weitere Details an."
|
msgstr "Möchtest du uns helfen, unsere Übersetzungen noch besser zu machen? Schau dir <0>Crowdin</0> für weitere Details an."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Webhook / Push-Benachrichtigungen"
|
msgstr "Webhook / Push-Benachrichtigungen"
|
||||||
|
|
||||||
@@ -828,4 +850,4 @@ msgstr "YAML-Konfiguration"
|
|||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:34
|
#: src/components/routes/settings/layout.tsx:34
|
||||||
msgid "Your user settings have been updated."
|
msgid "Your user settings have been updated."
|
||||||
msgstr "Ihre Benutzereinstellungen wurden aktualisiert."
|
msgstr "Deine Benutzereinstellungen wurden aktualisiert."
|
||||||
|
|||||||
@@ -13,60 +13,59 @@ msgstr ""
|
|||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Plural-Forms: \n"
|
"Plural-Forms: \n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# day} other {# days}}"
|
msgstr "{0, plural, one {# day} other {# days}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# hour} other {# hours}}"
|
msgstr "{hours, plural, one {# hour} other {# hours}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 hour"
|
msgstr "1 hour"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 week"
|
msgstr "1 week"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 hours"
|
msgstr "12 hours"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 hours"
|
msgstr "24 hours"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 days"
|
msgstr "30 days"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Actions"
|
msgstr "Actions"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "Active Alerts"
|
msgstr "Active Alerts"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "Add <0>System</0>"
|
msgstr "Add <0>System</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "Add New System"
|
msgstr "Add New System"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "Add system"
|
msgstr "Add system"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "Add URL"
|
msgstr "Add URL"
|
||||||
|
|
||||||
@@ -74,15 +73,15 @@ msgstr "Add URL"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "Adjust display options for charts."
|
msgstr "Adjust display options for charts."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Admin"
|
msgstr "Admin"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "Agent"
|
msgstr "Agent"
|
||||||
|
|
||||||
@@ -92,11 +91,11 @@ msgid "Alerts"
|
|||||||
msgstr "Alerts"
|
msgstr "Alerts"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "All Systems"
|
msgstr "All Systems"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "Are you sure you want to delete {name}?"
|
msgstr "Are you sure you want to delete {name}?"
|
||||||
|
|
||||||
@@ -104,11 +103,11 @@ msgstr "Are you sure you want to delete {name}?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "Automatic copy requires a secure context."
|
msgstr "Automatic copy requires a secure context."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Average"
|
msgstr "Average"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "Average CPU utilization of containers"
|
msgstr "Average CPU utilization of containers"
|
||||||
|
|
||||||
@@ -116,37 +115,37 @@ msgstr "Average CPU utilization of containers"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "Average exceeds <0>{value}{0}</0>"
|
msgstr "Average exceeds <0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr "Average power consumption of GPUs"
|
msgstr "Average power consumption of GPUs"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "Average system-wide CPU utilization"
|
msgstr "Average system-wide CPU utilization"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr "Average utilization of {0}"
|
msgstr "Average utilization of {0}"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "Backups"
|
msgstr "Backups"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "Bandwidth"
|
msgstr "Bandwidth"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgstr "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgstr "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "Binary"
|
msgstr "Binary"
|
||||||
|
|
||||||
@@ -154,7 +153,7 @@ msgstr "Binary"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "Cache / Buffers"
|
msgstr "Cache / Buffers"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancel"
|
msgstr "Cancel"
|
||||||
|
|
||||||
@@ -178,11 +177,11 @@ msgstr "Check {email} for a reset link."
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "Check logs for more details."
|
msgstr "Check logs for more details."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "Check your notification service"
|
msgstr "Check your notification service"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "Click to copy"
|
msgstr "Click to copy"
|
||||||
|
|
||||||
@@ -191,32 +190,33 @@ msgstr "Click to copy"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "Command line instructions"
|
msgstr "Command line instructions"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "Configure how you receive alert notifications."
|
msgstr "Configure how you receive alert notifications."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "Confirm password"
|
msgstr "Confirm password"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Continue"
|
msgstr "Continue"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "Copied to clipboard"
|
msgstr "Copied to clipboard"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Copy"
|
msgstr "Copy"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "Copy host"
|
msgstr "Copy host"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Copy Linux command"
|
msgstr "Copy Linux command"
|
||||||
|
|
||||||
@@ -224,17 +224,17 @@ msgstr "Copy Linux command"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "Copy text"
|
msgstr "Copy text"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "CPU"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "CPU Usage"
|
msgstr "CPU Usage"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "Create account"
|
msgstr "Create account"
|
||||||
|
|
||||||
@@ -243,8 +243,8 @@ msgstr "Create account"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "Dark"
|
msgstr "Dark"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Dashboard"
|
msgstr "Dashboard"
|
||||||
|
|
||||||
@@ -252,50 +252,55 @@ msgstr "Dashboard"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "Default time period"
|
msgstr "Default time period"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Delete"
|
msgstr "Delete"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "Disk"
|
msgstr "Disk"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "Disk I/O"
|
msgstr "Disk I/O"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "Disk Usage"
|
msgstr "Disk Usage"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "Disk usage of {extraFsName}"
|
msgstr "Disk usage of {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Docker CPU Usage"
|
msgstr "Docker CPU Usage"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Docker Memory Usage"
|
msgstr "Docker Memory Usage"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "Docker Network I/O"
|
msgstr "Docker Network I/O"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "Documentation"
|
msgstr "Documentation"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Edit"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Email"
|
msgstr "Email"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "Email notifications"
|
msgstr "Email notifications"
|
||||||
|
|
||||||
@@ -303,17 +308,17 @@ msgstr "Email notifications"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "Enter email address to reset password"
|
msgstr "Enter email address to reset password"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "Enter email address..."
|
msgstr "Enter email address..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Error"
|
msgstr "Error"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgstr "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
|
|
||||||
@@ -329,16 +334,16 @@ msgstr "Export configuration"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "Export your current systems configuration."
|
msgstr "Export your current systems configuration."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "Failed to authenticate"
|
msgstr "Failed to authenticate"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "Failed to save settings"
|
msgstr "Failed to save settings"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "Failed to send test notification"
|
msgstr "Failed to send test notification"
|
||||||
|
|
||||||
@@ -346,8 +351,8 @@ msgstr "Failed to send test notification"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "Failed to update alert"
|
msgstr "Failed to update alert"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "Filter..."
|
msgstr "Filter..."
|
||||||
|
|
||||||
@@ -355,7 +360,7 @@ msgstr "Filter..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgstr "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "Forgot password?"
|
msgstr "Forgot password?"
|
||||||
|
|
||||||
@@ -365,15 +370,15 @@ msgstr "Forgot password?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "General"
|
msgstr "General"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr "GPU Power Draw"
|
msgstr "GPU Power Draw"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "Grid"
|
msgstr "Grid"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "Host / IP"
|
msgstr "Host / IP"
|
||||||
|
|
||||||
@@ -381,12 +386,12 @@ msgstr "Host / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "If you've lost the password to your admin account, you may reset it using the following command."
|
msgstr "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "Invalid email address."
|
msgstr "Invalid email address."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "Kernel"
|
msgstr "Kernel"
|
||||||
|
|
||||||
@@ -394,7 +399,7 @@ msgstr "Kernel"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Language"
|
msgstr "Language"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "Layout"
|
msgstr "Layout"
|
||||||
|
|
||||||
@@ -403,7 +408,7 @@ msgstr "Layout"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Light"
|
msgstr "Light"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Log Out"
|
msgstr "Log Out"
|
||||||
|
|
||||||
@@ -411,17 +416,17 @@ msgstr "Log Out"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Login"
|
msgstr "Login"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "Login attempt failed"
|
msgstr "Login attempt failed"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "Logs"
|
msgstr "Logs"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgstr "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
|
|
||||||
@@ -429,56 +434,60 @@ msgstr "Looking instead for where to create alerts? Click the bell <0/> icons in
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "Manage display and notification preferences."
|
msgstr "Manage display and notification preferences."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr "Manual setup instructions"
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "Max 1 min"
|
msgstr "Max 1 min"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "Memory"
|
msgstr "Memory"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "Memory Usage"
|
msgstr "Memory Usage"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Memory usage of docker containers"
|
msgstr "Memory usage of docker containers"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Name"
|
msgstr "Name"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "Net"
|
msgstr "Net"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Network traffic of docker containers"
|
msgstr "Network traffic of docker containers"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "Network traffic of public interfaces"
|
msgstr "Network traffic of public interfaces"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "No results found."
|
msgstr "No results found."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "No systems found."
|
msgstr "No systems found."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Notifications"
|
msgstr "Notifications"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "OAuth 2 / OIDC support"
|
msgstr "OAuth 2 / OIDC support"
|
||||||
|
|
||||||
@@ -486,11 +495,11 @@ msgstr "OAuth 2 / OIDC support"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgstr "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "Open menu"
|
msgstr "Open menu"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "Or continue with"
|
msgstr "Or continue with"
|
||||||
|
|
||||||
@@ -498,32 +507,36 @@ msgstr "Or continue with"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "Overwrite existing alerts"
|
msgstr "Overwrite existing alerts"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Page"
|
msgstr "Page"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "Pages / Settings"
|
msgstr "Pages / Settings"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Password"
|
msgstr "Password"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "Password must be at least 8 characters."
|
msgstr "Password must be at least 8 characters."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr "Password must be less than 72 bytes."
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "Password reset request received"
|
msgstr "Password reset request received"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Pause"
|
msgstr "Pause"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgstr "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
|
|
||||||
@@ -531,7 +544,7 @@ msgstr "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "Please check logs for more details."
|
msgstr "Please check logs for more details."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "Please check your credentials and try again"
|
msgstr "Please check your credentials and try again"
|
||||||
@@ -540,15 +553,15 @@ msgstr "Please check your credentials and try again"
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "Please create an admin account"
|
msgstr "Please create an admin account"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "Please enable pop-ups for this site"
|
msgstr "Please enable pop-ups for this site"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "Please log in again"
|
msgstr "Please log in again"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "Please see <0>the documentation</0> for instructions."
|
msgstr "Please see <0>the documentation</0> for instructions."
|
||||||
|
|
||||||
@@ -556,12 +569,12 @@ msgstr "Please see <0>the documentation</0> for instructions."
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "Please sign in to your account"
|
msgstr "Please sign in to your account"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Port"
|
msgstr "Port"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "Precise utilization at the recorded time"
|
msgstr "Precise utilization at the recorded time"
|
||||||
|
|
||||||
@@ -570,7 +583,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "Preferred Language"
|
msgstr "Preferred Language"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Public Key"
|
msgstr "Public Key"
|
||||||
|
|
||||||
@@ -589,24 +602,28 @@ msgstr "Received"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "Reset Password"
|
msgstr "Reset Password"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "Resume"
|
msgstr "Resume"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgstr "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "Save Settings"
|
msgstr "Save Settings"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr "Save system"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Search"
|
msgstr "Search"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "Search for systems or settings..."
|
msgstr "Search for systems or settings..."
|
||||||
|
|
||||||
@@ -623,9 +640,9 @@ msgstr "Sent"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "Sets the default time range for charts when a system is viewed."
|
msgstr "Sets the default time range for charts when a system is viewed."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -635,40 +652,40 @@ msgstr "Settings"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "Settings saved"
|
msgstr "Settings saved"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Sign in"
|
msgstr "Sign in"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "SMTP settings"
|
msgstr "SMTP settings"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "Sort By"
|
msgstr "Sort By"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Status"
|
msgstr "Status"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "Swap space used by the system"
|
msgstr "Swap space used by the system"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "Swap Usage"
|
msgstr "Swap Usage"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "System"
|
msgstr "System"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "Systems"
|
msgstr "Systems"
|
||||||
|
|
||||||
@@ -676,32 +693,37 @@ msgstr "Systems"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgstr "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "Table"
|
msgstr "Table"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr "Temp"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "Temperature"
|
msgstr "Temperature"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "Temperatures of system sensors"
|
msgstr "Temperatures of system sensors"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "Test <0>URL</0>"
|
msgstr "Test <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Test notification sent"
|
msgstr "Test notification sent"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgstr "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgstr "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
|
|
||||||
@@ -709,24 +731,24 @@ msgstr "The agent must be running on the system to connect. Copy the<0>docker-co
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "Then log into the backend and reset your user account password in the users table."
|
msgstr "Then log into the backend and reset your user account password in the users table."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgstr "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "Throughput of {extraFsName}"
|
msgstr "Throughput of {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "Throughput of root filesystem"
|
msgstr "Throughput of root filesystem"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "To email(s)"
|
msgstr "To email(s)"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "Toggle grid"
|
msgstr "Toggle grid"
|
||||||
|
|
||||||
@@ -734,45 +756,45 @@ msgstr "Toggle grid"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "Toggle theme"
|
msgstr "Toggle theme"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "Triggers when any sensor exceeds a threshold"
|
msgstr "Triggers when any sensor exceeds a threshold"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "Triggers when combined up/down exceeds a threshold"
|
msgstr "Triggers when combined up/down exceeds a threshold"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "Triggers when CPU usage exceeds a threshold"
|
msgstr "Triggers when CPU usage exceeds a threshold"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "Triggers when memory usage exceeds a threshold"
|
msgstr "Triggers when memory usage exceeds a threshold"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "Triggers when status switches between up and down"
|
msgstr "Triggers when status switches between up and down"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "Triggers when usage of any disk exceeds a threshold"
|
msgstr "Triggers when usage of any disk exceeds a threshold"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "Updated in real time. Click on a system to view information."
|
msgstr "Updated in real time. Click on a system to view information."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "Uptime"
|
msgstr "Uptime"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "Usage"
|
msgstr "Usage"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "Usage of root partition"
|
msgstr "Usage of root partition"
|
||||||
|
|
||||||
@@ -782,20 +804,20 @@ msgstr "Usage of root partition"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "Used"
|
msgstr "Used"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Users"
|
msgstr "Users"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "View"
|
msgstr "View"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "Visible Fields"
|
msgstr "Visible Fields"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "Waiting for enough records to display"
|
msgstr "Waiting for enough records to display"
|
||||||
|
|
||||||
@@ -803,7 +825,7 @@ msgstr "Waiting for enough records to display"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgstr "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Webhook / Push notifications"
|
msgstr "Webhook / Push notifications"
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: es\n"
|
"Language: es\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Spanish\n"
|
"Language-Team: Spanish\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# día} other {# días}}"
|
msgstr "{0, plural, one {# día} other {# días}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# hora} other {# horas}}"
|
msgstr "{hours, plural, one {# hora} other {# horas}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 hora"
|
msgstr "1 hora"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 semana"
|
msgstr "1 semana"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 horas"
|
msgstr "12 horas"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 horas"
|
msgstr "24 horas"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 días"
|
msgstr "30 días"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Acciones"
|
msgstr "Acciones"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "Alertas Activas"
|
msgstr "Alertas Activas"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "Agregar <0>Sistema</0>"
|
msgstr "Agregar <0>Sistema</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "Agregar Nuevo Sistema"
|
msgstr "Agregar Nuevo Sistema"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "Agregar sistema"
|
msgstr "Agregar sistema"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "Agregar URL"
|
msgstr "Agregar URL"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "Agregar URL"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "Ajustar las opciones de visualización para los gráficos."
|
msgstr "Ajustar las opciones de visualización para los gráficos."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Administrador"
|
msgstr "Administrador"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "Agente"
|
msgstr "Agente"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "Alertas"
|
msgstr "Alertas"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "Todos los Sistemas"
|
msgstr "Todos los Sistemas"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "¿Está seguro de que desea eliminar {name}?"
|
msgstr "¿Está seguro de que desea eliminar {name}?"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "¿Está seguro de que desea eliminar {name}?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "La copia automática requiere un contexto seguro."
|
msgstr "La copia automática requiere un contexto seguro."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Promedio"
|
msgstr "Promedio"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "Utilización promedio de CPU de los contenedores"
|
msgstr "Utilización promedio de CPU de los contenedores"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "Utilización promedio de CPU de los contenedores"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "El promedio excede <0>{value}{0}</0>"
|
msgstr "El promedio excede <0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr ""
|
msgstr "Consumo de energía promedio de GPUs"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "Utilización promedio de CPU del sistema"
|
msgstr "Utilización promedio de CPU del sistema"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr ""
|
msgstr "Uso promedio de {0}"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "Copias de Seguridad"
|
msgstr "Copias de Seguridad"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "Ancho de banda"
|
msgstr "Ancho de banda"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel admite OpenID Connect y muchos proveedores de autenticación OAuth2."
|
msgstr "Beszel admite OpenID Connect y muchos proveedores de autenticación OAuth2."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel utiliza <0>Shoutrrr</0> para integrarse con servicios populares de notificación."
|
msgstr "Beszel utiliza <0>Shoutrrr</0> para integrarse con servicios populares de notificación."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "Binario"
|
msgstr "Binario"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "Binario"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "Caché / Buffers"
|
msgstr "Caché / Buffers"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancelar"
|
msgstr "Cancelar"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "Revise {email} para un enlace de restablecimiento."
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "Revise los registros para más detalles."
|
msgstr "Revise los registros para más detalles."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "Verifique su servicio de notificaciones"
|
msgstr "Verifique su servicio de notificaciones"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "Haga clic para copiar"
|
msgstr "Haga clic para copiar"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "Haga clic para copiar"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "Instrucciones de línea de comandos"
|
msgstr "Instrucciones de línea de comandos"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "Configure cómo recibe las notificaciones de alertas."
|
msgstr "Configure cómo recibe las notificaciones de alertas."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "Confirmar contraseña"
|
msgstr "Confirmar contraseña"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Continuar"
|
msgstr "Continuar"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "Copiado al portapapeles"
|
msgstr "Copiado al portapapeles"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Copiar"
|
msgstr "Copiar"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "Copiar host"
|
msgstr "Copiar host"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Copiar comando de Linux"
|
msgstr "Copiar comando de Linux"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "Copiar comando de Linux"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "Copiar texto"
|
msgstr "Copiar texto"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "CPU"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "Uso de CPU"
|
msgstr "Uso de CPU"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "Crear cuenta"
|
msgstr "Crear cuenta"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "Crear cuenta"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "Oscuro"
|
msgstr "Oscuro"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Tablero"
|
msgstr "Tablero"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "Tablero"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "Período de tiempo predeterminado"
|
msgstr "Período de tiempo predeterminado"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Eliminar"
|
msgstr "Eliminar"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "Disco"
|
msgstr "Disco"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "E/S de Disco"
|
msgstr "E/S de Disco"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "Uso de Disco"
|
msgstr "Uso de Disco"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "Uso de disco de {extraFsName}"
|
msgstr "Uso de disco de {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Uso de CPU de Docker"
|
msgstr "Uso de CPU de Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Uso de Memoria de Docker"
|
msgstr "Uso de Memoria de Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "E/S de Red de Docker"
|
msgstr "E/S de Red de Docker"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "Documentación"
|
msgstr "Documentación"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Correo electrónico"
|
msgstr "Correo electrónico"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "Notificaciones por correo"
|
msgstr "Notificaciones por correo"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "Notificaciones por correo"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "Ingrese la dirección de correo electrónico para restablecer la contraseña"
|
msgstr "Ingrese la dirección de correo electrónico para restablecer la contraseña"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "Ingrese dirección de correo..."
|
msgstr "Ingrese dirección de correo..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Error"
|
msgstr "Error"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "Excede {0}{1} en el último {2, plural, one {# minuto} other {# minutos}}"
|
msgstr "Excede {0}{1} en el último {2, plural, one {# minuto} other {# minutos}}"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "Exportar configuración"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "Exporte la configuración actual de sus sistemas."
|
msgstr "Exporte la configuración actual de sus sistemas."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "Error al autenticar"
|
msgstr "Error al autenticar"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "Error al guardar la configuración"
|
msgstr "Error al guardar la configuración"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "Error al enviar la notificación de prueba"
|
msgstr "Error al enviar la notificación de prueba"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "Error al enviar la notificación de prueba"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "Error al actualizar la alerta"
|
msgstr "Error al actualizar la alerta"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "Filtrar..."
|
msgstr "Filtrar..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "Filtrar..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "Por <0>{min}</0> {min, plural, one {minuto} other {minutos}}"
|
msgstr "Por <0>{min}</0> {min, plural, one {minuto} other {minutos}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "¿Olvidó su contraseña?"
|
msgstr "¿Olvidó su contraseña?"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "¿Olvidó su contraseña?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "General"
|
msgstr "General"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "Cuadrícula"
|
msgstr "Cuadrícula"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "Host / IP"
|
msgstr "Host / IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "Host / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "Si ha perdido la contraseña de su cuenta de administrador, puede restablecerla usando el siguiente comando."
|
msgstr "Si ha perdido la contraseña de su cuenta de administrador, puede restablecerla usando el siguiente comando."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "Dirección de correo electrónico no válida."
|
msgstr "Dirección de correo electrónico no válida."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "Kernel"
|
msgstr "Kernel"
|
||||||
|
|
||||||
@@ -399,7 +404,7 @@ msgstr "Kernel"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Idioma"
|
msgstr "Idioma"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "Diseño"
|
msgstr "Diseño"
|
||||||
|
|
||||||
@@ -408,7 +413,7 @@ msgstr "Diseño"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Claro"
|
msgstr "Claro"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Cerrar Sesión"
|
msgstr "Cerrar Sesión"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "Cerrar Sesión"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Iniciar sesión"
|
msgstr "Iniciar sesión"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "Intento de inicio de sesión fallido"
|
msgstr "Intento de inicio de sesión fallido"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "Registros"
|
msgstr "Registros"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "¿Busca dónde crear alertas? Haga clic en los iconos de campana <0/> en la tabla de sistemas."
|
msgstr "¿Busca dónde crear alertas? Haga clic en los iconos de campana <0/> en la tabla de sistemas."
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "¿Busca dónde crear alertas? Haga clic en los iconos de campana <0/> en
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "Administrar preferencias de visualización y notificaciones."
|
msgstr "Administrar preferencias de visualización y notificaciones."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "Máx 1 min"
|
msgstr "Máx 1 min"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "Memoria"
|
msgstr "Memoria"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "Uso de Memoria"
|
msgstr "Uso de Memoria"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Uso de memoria de los contenedores de Docker"
|
msgstr "Uso de memoria de los contenedores de Docker"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nombre"
|
msgstr "Nombre"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "Red"
|
msgstr "Red"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Tráfico de red de los contenedores de Docker"
|
msgstr "Tráfico de red de los contenedores de Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "Tráfico de red de interfaces públicas"
|
msgstr "Tráfico de red de interfaces públicas"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "No se encontraron resultados."
|
msgstr "No se encontraron resultados."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "No se encontraron sistemas."
|
msgstr "No se encontraron sistemas."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Notificaciones"
|
msgstr "Notificaciones"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "Soporte para OAuth 2 / OIDC"
|
msgstr "Soporte para OAuth 2 / OIDC"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "Soporte para OAuth 2 / OIDC"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "En cada reinicio, los sistemas en la base de datos se actualizarán para coincidir con los sistemas definidos en el archivo."
|
msgstr "En cada reinicio, los sistemas en la base de datos se actualizarán para coincidir con los sistemas definidos en el archivo."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "Abrir menú"
|
msgstr "Abrir menú"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "O continuar con"
|
msgstr "O continuar con"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "O continuar con"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "Sobrescribir alertas existentes"
|
msgstr "Sobrescribir alertas existentes"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Página"
|
msgstr "Página"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "Páginas / Configuraciones"
|
msgstr "Páginas / Configuraciones"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Contraseña"
|
msgstr "Contraseña"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "La contraseña debe tener al menos 8 caracteres."
|
msgstr "La contraseña debe tener al menos 8 caracteres."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "Solicitud de restablecimiento de contraseña recibida"
|
msgstr "Solicitud de restablecimiento de contraseña recibida"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Pausar"
|
msgstr "Pausar"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "Por favor, <0>configure un servidor SMTP</0> para asegurar que las alertas sean entregadas."
|
msgstr "Por favor, <0>configure un servidor SMTP</0> para asegurar que las alertas sean entregadas."
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "Por favor, <0>configure un servidor SMTP</0> para asegurar que las alert
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "Por favor, revise los registros para más detalles."
|
msgstr "Por favor, revise los registros para más detalles."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "Por favor, verifique sus credenciales e intente de nuevo"
|
msgstr "Por favor, verifique sus credenciales e intente de nuevo"
|
||||||
@@ -545,15 +558,15 @@ msgstr "Por favor, verifique sus credenciales e intente de nuevo"
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "Por favor, cree una cuenta de administrador"
|
msgstr "Por favor, cree una cuenta de administrador"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "Por favor, habilite las ventanas emergentes para este sitio"
|
msgstr "Por favor, habilite las ventanas emergentes para este sitio"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "Por favor, inicie sesión de nuevo"
|
msgstr "Por favor, inicie sesión de nuevo"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "Por favor, consulte <0>la documentación</0> para obtener instrucciones."
|
msgstr "Por favor, consulte <0>la documentación</0> para obtener instrucciones."
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "Por favor, consulte <0>la documentación</0> para obtener instrucciones.
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "Por favor, inicie sesión en su cuenta"
|
msgstr "Por favor, inicie sesión en su cuenta"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Puerto"
|
msgstr "Puerto"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "Utilización precisa en el momento registrado"
|
msgstr "Utilización precisa en el momento registrado"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "Idioma Preferido"
|
msgstr "Idioma Preferido"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Clave Pública"
|
msgstr "Clave Pública"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "Recibido"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "Restablecer Contraseña"
|
msgstr "Restablecer Contraseña"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "Reanudar"
|
msgstr "Reanudar"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Guarde la dirección usando la tecla enter o coma. Deje en blanco para desactivar las notificaciones por correo."
|
msgstr "Guarde la dirección usando la tecla enter o coma. Deje en blanco para desactivar las notificaciones por correo."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "Guardar Configuración"
|
msgstr "Guardar Configuración"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Buscar"
|
msgstr "Buscar"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "Buscar sistemas o configuraciones..."
|
msgstr "Buscar sistemas o configuraciones..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "Enviado"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "Establece el rango de tiempo predeterminado para los gráficos cuando se visualiza un sistema."
|
msgstr "Establece el rango de tiempo predeterminado para los gráficos cuando se visualiza un sistema."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "Configuración"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "Configuración guardada"
|
msgstr "Configuración guardada"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Iniciar sesión"
|
msgstr "Iniciar sesión"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "Configuración SMTP"
|
msgstr "Configuración SMTP"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "Ordenar por"
|
msgstr "Ordenar por"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Estado"
|
msgstr "Estado"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "Espacio de swap utilizado por el sistema"
|
msgstr "Espacio de swap utilizado por el sistema"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "Uso de Swap"
|
msgstr "Uso de Swap"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Sistema"
|
msgstr "Sistema"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "Sistemas"
|
msgstr "Sistemas"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "Sistemas"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "Los sistemas pueden ser gestionados en un archivo <0>config.yml</0> dentro de su directorio de datos."
|
msgstr "Los sistemas pueden ser gestionados en un archivo <0>config.yml</0> dentro de su directorio de datos."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "Tabla"
|
msgstr "Tabla"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "Temperatura"
|
msgstr "Temperatura"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "Temperaturas de los sensores del sistema"
|
msgstr "Temperaturas de los sensores del sistema"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "Probar <0>URL</0>"
|
msgstr "Probar <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Notificación de prueba enviada"
|
msgstr "Notificación de prueba enviada"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "El agente debe estar ejecutándose en el sistema para conectarse. Copie el comando de instalación para el agente a continuación."
|
msgstr "El agente debe estar ejecutándose en el sistema para conectarse. Copie el comando de instalación para el agente a continuación."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "El agente debe estar ejecutándose en el sistema para conectarse. Copie el <0>docker-compose.yml</0> para el agente a continuación."
|
msgstr "El agente debe estar ejecutándose en el sistema para conectarse. Copie el <0>docker-compose.yml</0> para el agente a continuación."
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "El agente debe estar ejecutándose en el sistema para conectarse. Copie
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "Luego inicie sesión en el backend y restablezca la contraseña de su cuenta de usuario en la tabla de usuarios."
|
msgstr "Luego inicie sesión en el backend y restablezca la contraseña de su cuenta de usuario en la tabla de usuarios."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "Esta acción no se puede deshacer. Esto eliminará permanentemente todos los registros actuales de {name} de la base de datos."
|
msgstr "Esta acción no se puede deshacer. Esto eliminará permanentemente todos los registros actuales de {name} de la base de datos."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "Rendimiento de {extraFsName}"
|
msgstr "Rendimiento de {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "Rendimiento del sistema de archivos raíz"
|
msgstr "Rendimiento del sistema de archivos raíz"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "A correo(s)"
|
msgstr "A correo(s)"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "Alternar cuadrícula"
|
msgstr "Alternar cuadrícula"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "Alternar cuadrícula"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "Alternar tema"
|
msgstr "Alternar tema"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "Se activa cuando cualquier sensor supera un umbral"
|
msgstr "Se activa cuando cualquier sensor supera un umbral"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "Se activa cuando la suma de subida/bajada supera un umbral"
|
msgstr "Se activa cuando la suma de subida/bajada supera un umbral"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "Se activa cuando el uso de CPU supera un umbral"
|
msgstr "Se activa cuando el uso de CPU supera un umbral"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "Se activa cuando el uso de memoria supera un umbral"
|
msgstr "Se activa cuando el uso de memoria supera un umbral"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "Se activa cuando el estado cambia entre activo e inactivo"
|
msgstr "Se activa cuando el estado cambia entre activo e inactivo"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "Se activa cuando el uso de cualquier disco supera un umbral"
|
msgstr "Se activa cuando el uso de cualquier disco supera un umbral"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "Actualizado en tiempo real. Haga clic en un sistema para ver la información."
|
msgstr "Actualizado en tiempo real. Haga clic en un sistema para ver la información."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "Tiempo de actividad"
|
msgstr "Tiempo de actividad"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "Uso"
|
msgstr "Uso"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "Uso de la partición raíz"
|
msgstr "Uso de la partición raíz"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "Uso de la partición raíz"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "Usado"
|
msgstr "Usado"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Usuarios"
|
msgstr "Usuarios"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Vista"
|
msgstr "Vista"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "Columnas visibles"
|
msgstr "Columnas visibles"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "Esperando suficientes registros para mostrar"
|
msgstr "Esperando suficientes registros para mostrar"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "Esperando suficientes registros para mostrar"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "¿Quieres ayudarnos a mejorar nuestras traducciones? Consulta <0>Crowdin</0> para más detalles."
|
msgstr "¿Quieres ayudarnos a mejorar nuestras traducciones? Consulta <0>Crowdin</0> para más detalles."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Notificaciones Webhook / Push"
|
msgstr "Notificaciones Webhook / Push"
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: fa\n"
|
"Language: fa\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Persian\n"
|
"Language-Team: Persian\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# روز} other {# روز}}"
|
msgstr "{0, plural, one {# روز} other {# روز}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# ساعت} other {# ساعت}}"
|
msgstr "{hours, plural, one {# ساعت} other {# ساعت}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "۱ ساعت"
|
msgstr "۱ ساعت"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "۱ هفته"
|
msgstr "۱ هفته"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "۱۲ ساعت"
|
msgstr "۱۲ ساعت"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "۲۴ ساعت"
|
msgstr "۲۴ ساعت"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "۳۰ روز"
|
msgstr "۳۰ روز"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "عملیات"
|
msgstr "عملیات"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr " هشدارهای فعال"
|
msgstr " هشدارهای فعال"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "افزودن <0>سیستم</0>"
|
msgstr "افزودن <0>سیستم</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "افزودن سیستم جدید"
|
msgstr "افزودن سیستم جدید"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "افزودن سیستم"
|
msgstr "افزودن سیستم"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "افزودن آدرس اینترنتی"
|
msgstr "افزودن آدرس اینترنتی"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "افزودن آدرس اینترنتی"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "تنظیم گزینههای نمایش برای نمودارها."
|
msgstr "تنظیم گزینههای نمایش برای نمودارها."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "مدیر"
|
msgstr "مدیر"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "عامل"
|
msgstr "عامل"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "هشدارها"
|
msgstr "هشدارها"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "همه سیستمها"
|
msgstr "همه سیستمها"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "آیا مطمئن هستید که میخواهید {name} را حذف کنید؟"
|
msgstr "آیا مطمئن هستید که میخواهید {name} را حذف کنید؟"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "آیا مطمئن هستید که میخواهید {name} را حذف
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "کپی خودکار نیاز به یک زمینه امن دارد."
|
msgstr "کپی خودکار نیاز به یک زمینه امن دارد."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "میانگین"
|
msgstr "میانگین"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "میانگین استفاده از CPU کانتینرها"
|
msgstr "میانگین استفاده از CPU کانتینرها"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "میانگین استفاده از CPU کانتینرها"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr "میانگین مصرف برق پردازندههای گرافیکی"
|
msgstr "میانگین مصرف برق پردازندههای گرافیکی"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "میانگین استفاده از CPU در کل سیستم"
|
msgstr "میانگین استفاده از CPU در کل سیستم"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr "میانگین استفاده از {0}"
|
msgstr "میانگین استفاده از {0}"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "پشتیبانگیریها"
|
msgstr "پشتیبانگیریها"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "پهنای باند"
|
msgstr "پهنای باند"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "بِزل از OpenID Connect و بسیاری از ارائهدهندگان احراز هویت OAuth2 پشتیبانی میکند."
|
msgstr "بِزل از OpenID Connect و بسیاری از ارائهدهندگان احراز هویت OAuth2 پشتیبانی میکند."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "بِزل از <0>Shoutrrr</0> برای ادغام با سرویسهای اطلاعرسانی محبوب استفاده میکند."
|
msgstr "بِزل از <0>Shoutrrr</0> برای ادغام با سرویسهای اطلاعرسانی محبوب استفاده میکند."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "دودویی"
|
msgstr "دودویی"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "دودویی"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "حافظه پنهان / بافرها"
|
msgstr "حافظه پنهان / بافرها"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "لغو"
|
msgstr "لغو"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "ایمیل {email} خود را برای لینک بازنشانی برر
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "برای جزئیات بیشتر، لاگها را بررسی کنید."
|
msgstr "برای جزئیات بیشتر، لاگها را بررسی کنید."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "سرویس اطلاعرسانی خود را بررسی کنید"
|
msgstr "سرویس اطلاعرسانی خود را بررسی کنید"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "برای کپی کردن کلیک کنید"
|
msgstr "برای کپی کردن کلیک کنید"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "برای کپی کردن کلیک کنید"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "دستورالعملهای خط فرمان"
|
msgstr "دستورالعملهای خط فرمان"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "نحوه دریافت هشدارهای اطلاعرسانی را پیکربندی کنید."
|
msgstr "نحوه دریافت هشدارهای اطلاعرسانی را پیکربندی کنید."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "تأیید رمز عبور"
|
msgstr "تأیید رمز عبور"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "ادامه"
|
msgstr "ادامه"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "در کلیپبورد کپی شد"
|
msgstr "در کلیپبورد کپی شد"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "کپی"
|
msgstr "کپی"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "کپی میزبان"
|
msgstr "کپی میزبان"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "کپی دستور لینوکس"
|
msgstr "کپی دستور لینوکس"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "کپی دستور لینوکس"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "کپی متن"
|
msgstr "کپی متن"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "پردازنده"
|
msgstr "پردازنده"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "میزان استفاده از پردازنده"
|
msgstr "میزان استفاده از پردازنده"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "ایجاد حساب کاربری"
|
msgstr "ایجاد حساب کاربری"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "ایجاد حساب کاربری"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "تیره"
|
msgstr "تیره"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "داشبورد"
|
msgstr "داشبورد"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "داشبورد"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "بازه زمانی پیشفرض"
|
msgstr "بازه زمانی پیشفرض"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "حذف"
|
msgstr "حذف"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "دیسک"
|
msgstr "دیسک"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "ورودی/خروجی دیسک"
|
msgstr "ورودی/خروجی دیسک"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "میزان استفاده از دیسک"
|
msgstr "میزان استفاده از دیسک"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "میزان استفاده از دیسک {extraFsName}"
|
msgstr "میزان استفاده از دیسک {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "میزان استفاده از CPU داکر"
|
msgstr "میزان استفاده از CPU داکر"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "میزان استفاده از حافظه داکر"
|
msgstr "میزان استفاده از حافظه داکر"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "ورودی/خروجی شبکه داکر"
|
msgstr "ورودی/خروجی شبکه داکر"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "مستندات"
|
msgstr "مستندات"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "ایمیل"
|
msgstr "ایمیل"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "اعلانهای ایمیلی"
|
msgstr "اعلانهای ایمیلی"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "اعلانهای ایمیلی"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "آدرس ایمیل را برای بازنشانی رمز عبور وارد کنید"
|
msgstr "آدرس ایمیل را برای بازنشانی رمز عبور وارد کنید"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "آدرس ایمیل را وارد کنید..."
|
msgstr "آدرس ایمیل را وارد کنید..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "خطا"
|
msgstr "خطا"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "در {2, plural, one {# دقیقه} other {# دقیقه}} گذشته از {0}{1} بیشتر است"
|
msgstr "در {2, plural, one {# دقیقه} other {# دقیقه}} گذشته از {0}{1} بیشتر است"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "خارج کردن پیکربندی"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "پیکربندی سیستمهای فعلی خود را خارج کنید."
|
msgstr "پیکربندی سیستمهای فعلی خود را خارج کنید."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "احراز هویت ناموفق بود"
|
msgstr "احراز هویت ناموفق بود"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "ذخیره تنظیمات ناموفق بود"
|
msgstr "ذخیره تنظیمات ناموفق بود"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "ارسال اعلان آزمایشی ناموفق بود"
|
msgstr "ارسال اعلان آزمایشی ناموفق بود"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "ارسال اعلان آزمایشی ناموفق بود"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "بهروزرسانی هشدار ناموفق بود"
|
msgstr "بهروزرسانی هشدار ناموفق بود"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "فیلتر..."
|
msgstr "فیلتر..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "فیلتر..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "برای <0>{min}</0> {min, plural, one {دقیقه} other {دقیقه}}"
|
msgstr "برای <0>{min}</0> {min, plural, one {دقیقه} other {دقیقه}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "رمز عبور را فراموش کردهاید؟"
|
msgstr "رمز عبور را فراموش کردهاید؟"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "رمز عبور را فراموش کردهاید؟"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "عمومی"
|
msgstr "عمومی"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr "مصرف برق پردازنده گرافیکی"
|
msgstr "مصرف برق پردازنده گرافیکی"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "جدول"
|
msgstr "جدول"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "میزبان / IP"
|
msgstr "میزبان / IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "میزبان / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "اگر رمز عبور حساب مدیر خود را گم کردهاید، میتوانید آن را با استفاده از دستور زیر بازنشانی کنید."
|
msgstr "اگر رمز عبور حساب مدیر خود را گم کردهاید، میتوانید آن را با استفاده از دستور زیر بازنشانی کنید."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "آدرس ایمیل نامعتبر است."
|
msgstr "آدرس ایمیل نامعتبر است."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "هسته"
|
msgstr "هسته"
|
||||||
|
|
||||||
@@ -399,7 +404,7 @@ msgstr "هسته"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "زبان"
|
msgstr "زبان"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "طرحبندی"
|
msgstr "طرحبندی"
|
||||||
|
|
||||||
@@ -408,7 +413,7 @@ msgstr "طرحبندی"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "روشن"
|
msgstr "روشن"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "خروج"
|
msgstr "خروج"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "خروج"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "ورود"
|
msgstr "ورود"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "تلاش برای ورود ناموفق بود"
|
msgstr "تلاش برای ورود ناموفق بود"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "لاگها"
|
msgstr "لاگها"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "به دنبال جایی برای ایجاد هشدار هستید؟ روی آیکونهای زنگ <0/> در جدول سیستمها کلیک کنید."
|
msgstr "به دنبال جایی برای ایجاد هشدار هستید؟ روی آیکونهای زنگ <0/> در جدول سیستمها کلیک کنید."
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "به دنبال جایی برای ایجاد هشدار هستید؟ ر
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "مدیریت تنظیمات نمایش و اعلانها."
|
msgstr "مدیریت تنظیمات نمایش و اعلانها."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "حداکثر ۱ دقیقه"
|
msgstr "حداکثر ۱ دقیقه"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "حافظه"
|
msgstr "حافظه"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "میزان استفاده از حافظه"
|
msgstr "میزان استفاده از حافظه"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "میزان استفاده از حافظه کانتینرهای داکر"
|
msgstr "میزان استفاده از حافظه کانتینرهای داکر"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "نام"
|
msgstr "نام"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "شبکه"
|
msgstr "شبکه"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "ترافیک شبکه کانتینرهای داکر"
|
msgstr "ترافیک شبکه کانتینرهای داکر"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "ترافیک شبکه رابطهای عمومی"
|
msgstr "ترافیک شبکه رابطهای عمومی"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "هیچ نتیجهای یافت نشد."
|
msgstr "هیچ نتیجهای یافت نشد."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "هیچ سیستمی یافت نشد."
|
msgstr "هیچ سیستمی یافت نشد."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "اعلانها"
|
msgstr "اعلانها"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "پشتیبانی از OAuth 2 / OIDC"
|
msgstr "پشتیبانی از OAuth 2 / OIDC"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "پشتیبانی از OAuth 2 / OIDC"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "در هر بار راهاندازی مجدد، سیستمهای موجود در پایگاه داده با سیستمهای تعریف شده در فایل مطابقت داده میشوند."
|
msgstr "در هر بار راهاندازی مجدد، سیستمهای موجود در پایگاه داده با سیستمهای تعریف شده در فایل مطابقت داده میشوند."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "باز کردن منو"
|
msgstr "باز کردن منو"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "یا ادامه با"
|
msgstr "یا ادامه با"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "یا ادامه با"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "بازنویسی هشدارهای موجود"
|
msgstr "بازنویسی هشدارهای موجود"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "صفحه"
|
msgstr "صفحه"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "صفحات / تنظیمات"
|
msgstr "صفحات / تنظیمات"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "رمز عبور"
|
msgstr "رمز عبور"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "رمز عبور باید حداقل ۸ کاراکتر باشد."
|
msgstr "رمز عبور باید حداقل ۸ کاراکتر باشد."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "درخواست بازنشانی رمز عبور دریافت شد"
|
msgstr "درخواست بازنشانی رمز عبور دریافت شد"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "توقف"
|
msgstr "توقف"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "لطفاً برای اطمینان از تحویل هشدارها، یک <0>سرور SMTP پیکربندی کنید</0>."
|
msgstr "لطفاً برای اطمینان از تحویل هشدارها، یک <0>سرور SMTP پیکربندی کنید</0>."
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "لطفاً برای اطمینان از تحویل هشدارها، یک
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "لطفاً برای جزئیات بیشتر، لاگها را بررسی کنید."
|
msgstr "لطفاً برای جزئیات بیشتر، لاگها را بررسی کنید."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "لطفاً اعتبارنامههای خود را بررسی کرده و دوباره تلاش کنید."
|
msgstr "لطفاً اعتبارنامههای خود را بررسی کرده و دوباره تلاش کنید."
|
||||||
@@ -545,15 +558,15 @@ msgstr "لطفاً اعتبارنامههای خود را بررسی کرده
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "لطفاً یک حساب مدیر ایجاد کنید"
|
msgstr "لطفاً یک حساب مدیر ایجاد کنید"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "لطفاً پنجرههای بازشو را برای این سایت فعال کنید"
|
msgstr "لطفاً پنجرههای بازشو را برای این سایت فعال کنید"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "لطفاً دوباره وارد شوید"
|
msgstr "لطفاً دوباره وارد شوید"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "لطفاً برای دستورالعملها به <0>مستندات</0> مراجعه کنید."
|
msgstr "لطفاً برای دستورالعملها به <0>مستندات</0> مراجعه کنید."
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "لطفاً برای دستورالعملها به <0>مستندات</
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "لطفاً به حساب کاربری خود وارد شوید"
|
msgstr "لطفاً به حساب کاربری خود وارد شوید"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "پورت"
|
msgstr "پورت"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "میزان دقیق استفاده در زمان ثبت شده"
|
msgstr "میزان دقیق استفاده در زمان ثبت شده"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "زبان ترجیحی"
|
msgstr "زبان ترجیحی"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "کلید عمومی"
|
msgstr "کلید عمومی"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "دریافت شد"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "بازنشانی رمز عبور"
|
msgstr "بازنشانی رمز عبور"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "ادامه"
|
msgstr "ادامه"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "آدرس را با استفاده از کلید Enter یا کاما ذخیره کنید. برای غیرفعال کردن اعلانهای ایمیلی، خالی بگذارید."
|
msgstr "آدرس را با استفاده از کلید Enter یا کاما ذخیره کنید. برای غیرفعال کردن اعلانهای ایمیلی، خالی بگذارید."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "ذخیره تنظیمات"
|
msgstr "ذخیره تنظیمات"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "جستجو"
|
msgstr "جستجو"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "جستجو برای سیستمها یا تنظیمات..."
|
msgstr "جستجو برای سیستمها یا تنظیمات..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "ارسال شد"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "بازه زمانی پیشفرض برای نمودارها هنگام مشاهده یک سیستم را تعیین میکند."
|
msgstr "بازه زمانی پیشفرض برای نمودارها هنگام مشاهده یک سیستم را تعیین میکند."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "تنظیمات"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "تنظیمات ذخیره شد"
|
msgstr "تنظیمات ذخیره شد"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "ورود"
|
msgstr "ورود"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "تنظیمات SMTP"
|
msgstr "تنظیمات SMTP"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "مرتبسازی بر اساس"
|
msgstr "مرتبسازی بر اساس"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "وضعیت"
|
msgstr "وضعیت"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "فضای Swap استفاده شده توسط سیستم"
|
msgstr "فضای Swap استفاده شده توسط سیستم"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "میزان استفاده از Swap"
|
msgstr "میزان استفاده از Swap"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "سیستم"
|
msgstr "سیستم"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "سیستمها"
|
msgstr "سیستمها"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "سیستمها"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "سیستمها ممکن است در یک فایل <0>config.yml</0> درون دایرکتوری داده شما مدیریت شوند."
|
msgstr "سیستمها ممکن است در یک فایل <0>config.yml</0> درون دایرکتوری داده شما مدیریت شوند."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "جدول"
|
msgstr "جدول"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "دما"
|
msgstr "دما"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "دمای حسگرهای سیستم"
|
msgstr "دمای حسگرهای سیستم"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "تست <0>آدرس اینترنتی</0>"
|
msgstr "تست <0>آدرس اینترنتی</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "اعلان آزمایشی ارسال شد"
|
msgstr "اعلان آزمایشی ارسال شد"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "برای اتصال، عامل باید روی سیستم در حال اجرا باشد. دستور نصب عامل را از زیر کپی کنید."
|
msgstr "برای اتصال، عامل باید روی سیستم در حال اجرا باشد. دستور نصب عامل را از زیر کپی کنید."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "برای اتصال، عامل باید روی سیستم در حال اجرا باشد. <0>docker-compose.yml</0> مربوط به عامل را از زیر کپی کنید."
|
msgstr "برای اتصال، عامل باید روی سیستم در حال اجرا باشد. <0>docker-compose.yml</0> مربوط به عامل را از زیر کپی کنید."
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "برای اتصال، عامل باید روی سیستم در حال ا
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "سپس وارد بخش پشتیبان شوید و رمز عبور حساب کاربری خود را در جدول کاربران بازنشانی کنید."
|
msgstr "سپس وارد بخش پشتیبان شوید و رمز عبور حساب کاربری خود را در جدول کاربران بازنشانی کنید."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "این عمل قابل برگشت نیست. این کار تمام رکوردهای فعلی {name} را برای همیشه از پایگاه داده حذف خواهد کرد."
|
msgstr "این عمل قابل برگشت نیست. این کار تمام رکوردهای فعلی {name} را برای همیشه از پایگاه داده حذف خواهد کرد."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "توان عملیاتی {extraFsName}"
|
msgstr "توان عملیاتی {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "توان عملیاتی سیستم فایل ریشه"
|
msgstr "توان عملیاتی سیستم فایل ریشه"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "به ایمیل(ها)"
|
msgstr "به ایمیل(ها)"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "تغییر نمایش جدول"
|
msgstr "تغییر نمایش جدول"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "تغییر نمایش جدول"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "تغییر تم"
|
msgstr "تغییر تم"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "هنگامی که هر حسگری از یک آستانه فراتر رود، فعال میشود"
|
msgstr "هنگامی که هر حسگری از یک آستانه فراتر رود، فعال میشود"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "هنگامی که مجموع بالا/پایین از یک آستانه فراتر رود، فعال میشود"
|
msgstr "هنگامی که مجموع بالا/پایین از یک آستانه فراتر رود، فعال میشود"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "هنگامی که میزان استفاده از CPU از یک آستانه فراتر رود، فعال میشود"
|
msgstr "هنگامی که میزان استفاده از CPU از یک آستانه فراتر رود، فعال میشود"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "هنگامی که میزان استفاده از حافظه از یک آستانه فراتر رود، فعال میشود"
|
msgstr "هنگامی که میزان استفاده از حافظه از یک آستانه فراتر رود، فعال میشود"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "هنگامی که وضعیت بین بالا و پایین تغییر میکند، فعال میشود"
|
msgstr "هنگامی که وضعیت بین بالا و پایین تغییر میکند، فعال میشود"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "هنگامی که استفاده از هر دیسکی از یک آستانه فراتر رود، فعال میشود"
|
msgstr "هنگامی که استفاده از هر دیسکی از یک آستانه فراتر رود، فعال میشود"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "به صورت لحظهای بهروزرسانی میشود. برای مشاهده اطلاعات، روی یک سیستم کلیک کنید."
|
msgstr "به صورت لحظهای بهروزرسانی میشود. برای مشاهده اطلاعات، روی یک سیستم کلیک کنید."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "آپتایم"
|
msgstr "آپتایم"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "میزان استفاده"
|
msgstr "میزان استفاده"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "میزان استفاده از پارتیشن ریشه"
|
msgstr "میزان استفاده از پارتیشن ریشه"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "میزان استفاده از پارتیشن ریشه"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "استفاده شده"
|
msgstr "استفاده شده"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "کاربران"
|
msgstr "کاربران"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "مشاهده"
|
msgstr "مشاهده"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "فیلدهای قابل مشاهده"
|
msgstr "فیلدهای قابل مشاهده"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "در انتظار رکوردهای کافی برای نمایش"
|
msgstr "در انتظار رکوردهای کافی برای نمایش"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "در انتظار رکوردهای کافی برای نمایش"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "میخواهید به ما کمک کنید تا ترجمههای خود را بهتر کنیم؟ برای جزئیات بیشتر به <0>Crowdin</0> مراجعه کنید."
|
msgstr "میخواهید به ما کمک کنید تا ترجمههای خود را بهتر کنیم؟ برای جزئیات بیشتر به <0>Crowdin</0> مراجعه کنید."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "اعلانهای Webhook / Push"
|
msgstr "اعلانهای Webhook / Push"
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: French\n"
|
"Language-Team: French\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# jour} other {# jours}}"
|
msgstr "{0, plural, one {# jour} other {# jours}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# heure} other {# heures}}"
|
msgstr "{hours, plural, one {# heure} other {# heures}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 heure"
|
msgstr "1 heure"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 semaine"
|
msgstr "1 semaine"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 heures"
|
msgstr "12 heures"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 heures"
|
msgstr "24 heures"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 jours"
|
msgstr "30 jours"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Actions"
|
msgstr "Actions"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "Alertes actives"
|
msgstr "Alertes actives"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "Ajouter <0>Système</0>"
|
msgstr "Ajouter <0>Système</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "Ajouter un nouveau système"
|
msgstr "Ajouter un nouveau système"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "Ajouter un système"
|
msgstr "Ajouter un système"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "Ajouter URL"
|
msgstr "Ajouter URL"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "Ajouter URL"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "Ajuster les options d'affichage pour les graphiques."
|
msgstr "Ajuster les options d'affichage pour les graphiques."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Admin"
|
msgstr "Admin"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "Agent"
|
msgstr "Agent"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "Alertes"
|
msgstr "Alertes"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "Tous les systèmes"
|
msgstr "Tous les systèmes"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "Êtes-vous sûr de vouloir supprimer {name} ?"
|
msgstr "Êtes-vous sûr de vouloir supprimer {name} ?"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "Êtes-vous sûr de vouloir supprimer {name} ?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "La copie automatique nécessite un contexte sécurisé."
|
msgstr "La copie automatique nécessite un contexte sécurisé."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Moyenne"
|
msgstr "Moyenne"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "Utilisation moyenne du CPU des conteneurs"
|
msgstr "Utilisation moyenne du CPU des conteneurs"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "Utilisation moyenne du CPU des conteneurs"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "La moyenne dépasse <0>{value}{0}</0>"
|
msgstr "La moyenne dépasse <0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr ""
|
msgstr "Consommation d'énergie moyenne des GPUs"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "Utilisation moyenne du CPU à l'échelle du système"
|
msgstr "Utilisation moyenne du CPU à l'échelle du système"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr ""
|
msgstr "Utilisation moyenne de {0}"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "Sauvegardes"
|
msgstr "Sauvegardes"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "Bande passante"
|
msgstr "Bande passante"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel prend en charge OpenID Connect et de nombreux fournisseurs d'authentification OAuth2."
|
msgstr "Beszel prend en charge OpenID Connect et de nombreux fournisseurs d'authentification OAuth2."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel utilise <0>Shoutrrr</0> pour s'intégrer aux services de notification populaires."
|
msgstr "Beszel utilise <0>Shoutrrr</0> pour s'intégrer aux services de notification populaires."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "Binaire"
|
msgstr "Binaire"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "Binaire"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "Cache / Tampons"
|
msgstr "Cache / Tampons"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Annuler"
|
msgstr "Annuler"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "Vérifiez {email} pour un lien de réinitialisation."
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "Vérifiez les journaux pour plus de détails."
|
msgstr "Vérifiez les journaux pour plus de détails."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "Vérifiez votre service de notification"
|
msgstr "Vérifiez votre service de notification"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "Cliquez pour copier"
|
msgstr "Cliquez pour copier"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "Cliquez pour copier"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "Instructions en ligne de commande"
|
msgstr "Instructions en ligne de commande"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "Configurez comment vous recevez les notifications d'alerte."
|
msgstr "Configurez comment vous recevez les notifications d'alerte."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "Confirmer le mot de passe"
|
msgstr "Confirmer le mot de passe"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Continuer"
|
msgstr "Continuer"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "Copié dans le presse-papiers"
|
msgstr "Copié dans le presse-papiers"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Copier"
|
msgstr "Copier"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "Copier l'hôte"
|
msgstr "Copier l'hôte"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Copier la commande Linux"
|
msgstr "Copier la commande Linux"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "Copier la commande Linux"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "Copier le texte"
|
msgstr "Copier le texte"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "CPU"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "Utilisation du CPU"
|
msgstr "Utilisation du CPU"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "Créer un compte"
|
msgstr "Créer un compte"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "Créer un compte"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "Sombre"
|
msgstr "Sombre"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Tableau de bord"
|
msgstr "Tableau de bord"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "Tableau de bord"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "Période par défaut"
|
msgstr "Période par défaut"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Supprimer"
|
msgstr "Supprimer"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "Disque"
|
msgstr "Disque"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "Entrée/Sortie disque"
|
msgstr "Entrée/Sortie disque"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "Utilisation du disque"
|
msgstr "Utilisation du disque"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "Utilisation du disque de {extraFsName}"
|
msgstr "Utilisation du disque de {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Utilisation du CPU Docker"
|
msgstr "Utilisation du CPU Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Utilisation de la mémoire Docker"
|
msgstr "Utilisation de la mémoire Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "Entrée/Sortie réseau Docker"
|
msgstr "Entrée/Sortie réseau Docker"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "Documentation"
|
msgstr "Documentation"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Email"
|
msgstr "Email"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "Notifications par email"
|
msgstr "Notifications par email"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "Notifications par email"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "Entrez l'adresse email pour réinitialiser le mot de passe"
|
msgstr "Entrez l'adresse email pour réinitialiser le mot de passe"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "Entrez l'adresse email..."
|
msgstr "Entrez l'adresse email..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Erreur"
|
msgstr "Erreur"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "Dépasse {0}{1} dans {2, plural, one {la dernière # minute} other {les dernières # minutes}}"
|
msgstr "Dépasse {0}{1} dans {2, plural, one {la dernière # minute} other {les dernières # minutes}}"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "Exporter la configuration"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "Exportez la configuration actuelle de vos systèmes."
|
msgstr "Exportez la configuration actuelle de vos systèmes."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "Échec de l'authentification"
|
msgstr "Échec de l'authentification"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "Échec de l'enregistrement des paramètres"
|
msgstr "Échec de l'enregistrement des paramètres"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "Échec de l'envoi de la notification de test"
|
msgstr "Échec de l'envoi de la notification de test"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "Échec de l'envoi de la notification de test"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "Échec de la mise à jour de l'alerte"
|
msgstr "Échec de la mise à jour de l'alerte"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "Filtrer..."
|
msgstr "Filtrer..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "Filtrer..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "Pour <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgstr "Pour <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "Mot de passe oublié ?"
|
msgstr "Mot de passe oublié ?"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "Mot de passe oublié ?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Général"
|
msgstr "Général"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr ""
|
msgstr "Consommation du GPU"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "Grille"
|
msgstr "Grille"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "Hôte / IP"
|
msgstr "Hôte / IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "Hôte / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "Si vous avez perdu le mot de passe de votre compte administrateur, vous pouvez le réinitialiser en utilisant la commande suivante."
|
msgstr "Si vous avez perdu le mot de passe de votre compte administrateur, vous pouvez le réinitialiser en utilisant la commande suivante."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "Adresse email invalide."
|
msgstr "Adresse email invalide."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "Noyau"
|
msgstr "Noyau"
|
||||||
|
|
||||||
@@ -399,7 +404,7 @@ msgstr "Noyau"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Langue"
|
msgstr "Langue"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "Disposition"
|
msgstr "Disposition"
|
||||||
|
|
||||||
@@ -408,7 +413,7 @@ msgstr "Disposition"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Clair"
|
msgstr "Clair"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Déconnexion"
|
msgstr "Déconnexion"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "Déconnexion"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Connexion"
|
msgstr "Connexion"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "Échec de la tentative de connexion"
|
msgstr "Échec de la tentative de connexion"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "Journaux"
|
msgstr "Journaux"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "Vous cherchez plutôt où créer des alertes ? Cliquez sur les icônes de cloche <0/> dans le tableau des systèmes."
|
msgstr "Vous cherchez plutôt où créer des alertes ? Cliquez sur les icônes de cloche <0/> dans le tableau des systèmes."
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "Vous cherchez plutôt où créer des alertes ? Cliquez sur les icônes d
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "Gérer les préférences d'affichage et de notification."
|
msgstr "Gérer les préférences d'affichage et de notification."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "Max 1 min"
|
msgstr "Max 1 min"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "Mémoire"
|
msgstr "Mémoire"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "Utilisation de la mémoire"
|
msgstr "Utilisation de la mémoire"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Utilisation de la mémoire des conteneurs Docker"
|
msgstr "Utilisation de la mémoire des conteneurs Docker"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nom"
|
msgstr "Nom"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "Net"
|
msgstr "Net"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Trafic réseau des conteneurs Docker"
|
msgstr "Trafic réseau des conteneurs Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "Trafic réseau des interfaces publiques"
|
msgstr "Trafic réseau des interfaces publiques"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "Aucun résultat trouvé."
|
msgstr "Aucun résultat trouvé."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "Aucun système trouvé."
|
msgstr "Aucun système trouvé."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Notifications"
|
msgstr "Notifications"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "Support OAuth 2 / OIDC"
|
msgstr "Support OAuth 2 / OIDC"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "Support OAuth 2 / OIDC"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "À chaque redémarrage, les systèmes dans la base de données seront mis à jour pour correspondre aux systèmes définis dans le fichier."
|
msgstr "À chaque redémarrage, les systèmes dans la base de données seront mis à jour pour correspondre aux systèmes définis dans le fichier."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "Ouvrir le menu"
|
msgstr "Ouvrir le menu"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "Ou continuer avec"
|
msgstr "Ou continuer avec"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "Ou continuer avec"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "Écraser les alertes existantes"
|
msgstr "Écraser les alertes existantes"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Page"
|
msgstr "Page"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "Pages / Paramètres"
|
msgstr "Pages / Paramètres"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Mot de passe"
|
msgstr "Mot de passe"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "Le mot de passe doit contenir au moins 8 caractères."
|
msgstr "Le mot de passe doit contenir au moins 8 caractères."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "Demande de réinitialisation du mot de passe reçue"
|
msgstr "Demande de réinitialisation du mot de passe reçue"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Pause"
|
msgstr "Pause"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "Veuillez <0>configurer un serveur SMTP</0> pour garantir la livraison des alertes."
|
msgstr "Veuillez <0>configurer un serveur SMTP</0> pour garantir la livraison des alertes."
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "Veuillez <0>configurer un serveur SMTP</0> pour garantir la livraison de
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "Veuillez vérifier les journaux pour plus de détails."
|
msgstr "Veuillez vérifier les journaux pour plus de détails."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "Veuillez vérifier vos identifiants et réessayer"
|
msgstr "Veuillez vérifier vos identifiants et réessayer"
|
||||||
@@ -545,15 +558,15 @@ msgstr "Veuillez vérifier vos identifiants et réessayer"
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "Veuillez créer un compte administrateur"
|
msgstr "Veuillez créer un compte administrateur"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "Veuillez activer les pop-ups pour ce site"
|
msgstr "Veuillez activer les pop-ups pour ce site"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "Veuillez vous reconnecter"
|
msgstr "Veuillez vous reconnecter"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "Veuillez consulter <0>la documentation</0> pour les instructions."
|
msgstr "Veuillez consulter <0>la documentation</0> pour les instructions."
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "Veuillez consulter <0>la documentation</0> pour les instructions."
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "Veuillez vous connecter à votre compte"
|
msgstr "Veuillez vous connecter à votre compte"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Port"
|
msgstr "Port"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "Utilisation précise au moment enregistré"
|
msgstr "Utilisation précise au moment enregistré"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "Langue préférée"
|
msgstr "Langue préférée"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Clé publique"
|
msgstr "Clé publique"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "Reçu"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "Réinitialiser le mot de passe"
|
msgstr "Réinitialiser le mot de passe"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "Reprendre"
|
msgstr "Reprendre"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Enregistrez l'adresse en utilisant la touche Entrée ou la virgule. Laissez vide pour désactiver les notifications par email."
|
msgstr "Enregistrez l'adresse en utilisant la touche Entrée ou la virgule. Laissez vide pour désactiver les notifications par email."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "Enregistrer les paramètres"
|
msgstr "Enregistrer les paramètres"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Recherche"
|
msgstr "Recherche"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "Rechercher des systèmes ou des paramètres..."
|
msgstr "Rechercher des systèmes ou des paramètres..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "Envoyé"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "Définit la plage de temps par défaut pour les graphiques lorsqu'un système est consulté."
|
msgstr "Définit la plage de temps par défaut pour les graphiques lorsqu'un système est consulté."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "Paramètres"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "Paramètres enregistrés"
|
msgstr "Paramètres enregistrés"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Se connecter"
|
msgstr "Se connecter"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "Paramètres SMTP"
|
msgstr "Paramètres SMTP"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "Trier par"
|
msgstr "Trier par"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Statut"
|
msgstr "Statut"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "Espace Swap utilisé par le système"
|
msgstr "Espace Swap utilisé par le système"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "Utilisation du swap"
|
msgstr "Utilisation du swap"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Système"
|
msgstr "Système"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "Systèmes"
|
msgstr "Systèmes"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "Systèmes"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "Les systèmes peuvent être gérés dans un fichier <0>config.yml</0> à l'intérieur de votre répertoire de données."
|
msgstr "Les systèmes peuvent être gérés dans un fichier <0>config.yml</0> à l'intérieur de votre répertoire de données."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "Tableau"
|
msgstr "Tableau"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "Température"
|
msgstr "Température"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "Températures des capteurs du système"
|
msgstr "Températures des capteurs du système"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "Tester <0>URL</0>"
|
msgstr "Tester <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Notification de test envoyée"
|
msgstr "Notification de test envoyée"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "L'agent doit être en cours d'exécution sur le système pour se connecter. Copiez la commande d'installation pour l'agent ci-dessous."
|
msgstr "L'agent doit être en cours d'exécution sur le système pour se connecter. Copiez la commande d'installation pour l'agent ci-dessous."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "L'agent doit être en cours d'exécution sur le système pour se connecter. Copiez le <0>docker-compose.yml</0> pour l'agent ci-dessous."
|
msgstr "L'agent doit être en cours d'exécution sur le système pour se connecter. Copiez le <0>docker-compose.yml</0> pour l'agent ci-dessous."
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "L'agent doit être en cours d'exécution sur le système pour se connect
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "Ensuite, connectez-vous au backend et réinitialisez le mot de passe de votre compte utilisateur dans la table des utilisateurs."
|
msgstr "Ensuite, connectez-vous au backend et réinitialisez le mot de passe de votre compte utilisateur dans la table des utilisateurs."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "Cette action ne peut pas être annulée. Cela supprimera définitivement tous les enregistrements actuels pour {name} de la base de données."
|
msgstr "Cette action ne peut pas être annulée. Cela supprimera définitivement tous les enregistrements actuels pour {name} de la base de données."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "Débit de {extraFsName}"
|
msgstr "Débit de {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "Débit du système de fichiers racine"
|
msgstr "Débit du système de fichiers racine"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "Aux email(s)"
|
msgstr "Aux email(s)"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "Basculer la grille"
|
msgstr "Basculer la grille"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "Basculer la grille"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "Changer le thème"
|
msgstr "Changer le thème"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "Déclenchement lorsque tout capteur dépasse un seuil"
|
msgstr "Déclenchement lorsque tout capteur dépasse un seuil"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "Déclenchement lorsque le montant/descendant combinée dépasse un seuil"
|
msgstr "Déclenchement lorsque le montant/descendant combinée dépasse un seuil"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "Déclenchement lorsque l'utilisation du CPU dépasse un seuil"
|
msgstr "Déclenchement lorsque l'utilisation du CPU dépasse un seuil"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "Déclenchement lorsque l'utilisation de la mémoire dépasse un seuil"
|
msgstr "Déclenchement lorsque l'utilisation de la mémoire dépasse un seuil"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "Déclenchement lorsque le statut passe d'opérationnel à indisponible"
|
msgstr "Déclenchement lorsque le statut passe d'opérationnel à indisponible"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "Déclenchement lorsque l'utilisation de tout disque dépasse un seuil"
|
msgstr "Déclenchement lorsque l'utilisation de tout disque dépasse un seuil"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "Mis à jour en temps réel. Cliquez sur un système pour voir les informations."
|
msgstr "Mis à jour en temps réel. Cliquez sur un système pour voir les informations."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "Temps de fonctionnement"
|
msgstr "Temps de fonctionnement"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "Utilisation"
|
msgstr "Utilisation"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "Utilisation de la partition racine"
|
msgstr "Utilisation de la partition racine"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "Utilisation de la partition racine"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "Utilisé"
|
msgstr "Utilisé"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Utilisateurs"
|
msgstr "Utilisateurs"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Vue"
|
msgstr "Vue"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "Colonnes visibles"
|
msgstr "Colonnes visibles"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "En attente de suffisamment d'enregistrements à afficher"
|
msgstr "En attente de suffisamment d'enregistrements à afficher"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "En attente de suffisamment d'enregistrements à afficher"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "Vous voulez nous aider à améliorer nos traductions ? Consultez <0>Crowdin</0> pour plus de détails."
|
msgstr "Vous voulez nous aider à améliorer nos traductions ? Consultez <0>Crowdin</0> pour plus de détails."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Notifications Webhook / Push"
|
msgstr "Notifications Webhook / Push"
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: hr\n"
|
"Language: hr\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Croatian\n"
|
"Language-Team: Croatian\n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# dan} other {# dani}}"
|
msgstr "{0, plural, one {# dan} other {# dani}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# sat} other {# sati}}"
|
msgstr "{hours, plural, one {# sat} other {# sati}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 sat"
|
msgstr "1 sat"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 tjedan"
|
msgstr "1 tjedan"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 sati"
|
msgstr "12 sati"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 sati"
|
msgstr "24 sati"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 dana"
|
msgstr "30 dana"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Akcije"
|
msgstr "Akcije"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "Aktivna upozorenja"
|
msgstr "Aktivna upozorenja"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "Dodaj <0>Sistem</0>"
|
msgstr "Dodaj <0>Sistem</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "Dodaj Novi Sistem"
|
msgstr "Dodaj Novi Sistem"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "Dodaj sistem"
|
msgstr "Dodaj sistem"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "Dodaj URL"
|
msgstr "Dodaj URL"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "Dodaj URL"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "Podesite opcije prikaza za grafikone."
|
msgstr "Podesite opcije prikaza za grafikone."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Admin"
|
msgstr "Admin"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "Agent"
|
msgstr "Agent"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "Upozorenja"
|
msgstr "Upozorenja"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "Svi Sistemi"
|
msgstr "Svi Sistemi"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "Jeste li sigurni da želite izbrisati {name}?"
|
msgstr "Jeste li sigurni da želite izbrisati {name}?"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "Jeste li sigurni da želite izbrisati {name}?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "Automatsko kopiranje zahtijeva siguran kontekst."
|
msgstr "Automatsko kopiranje zahtijeva siguran kontekst."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Prosjek"
|
msgstr "Prosjek"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "Prosječna iskorištenost procesora u spremnicima"
|
msgstr "Prosječna iskorištenost procesora u spremnicima"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "Prosječna iskorištenost procesora u spremnicima"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "Prosjek premašuje <0>{value}{0}</0>"
|
msgstr "Prosjek premašuje <0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "Prosječna iskorištenost procesora na cijelom sustavu"
|
msgstr "Prosječna iskorištenost procesora na cijelom sustavu"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "Sigurnosne kopije"
|
msgstr "Sigurnosne kopije"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "Propusnost"
|
msgstr "Propusnost"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel podržava OpenID Connect i mnoge druge OAuth2 davatalje autentifikacije."
|
msgstr "Beszel podržava OpenID Connect i mnoge druge OAuth2 davatalje autentifikacije."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel koristi <0>Shoutrrr</0> za integraciju sa popularnim servisima za notifikacije."
|
msgstr "Beszel koristi <0>Shoutrrr</0> za integraciju sa popularnim servisima za notifikacije."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "Binarni"
|
msgstr "Binarni"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "Binarni"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "Predmemorija / Međuspremnici"
|
msgstr "Predmemorija / Međuspremnici"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Otkaži"
|
msgstr "Otkaži"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "Provjerite {email} za vezu za resetiranje."
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "Provjerite logove za više detalja."
|
msgstr "Provjerite logove za više detalja."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "Provjerite Vaš servis notifikacija"
|
msgstr "Provjerite Vaš servis notifikacija"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "Pritisnite za kopiranje"
|
msgstr "Pritisnite za kopiranje"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "Pritisnite za kopiranje"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "Upute za naredbeni redak"
|
msgstr "Upute za naredbeni redak"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "Konfigurirajte način primanja obavijesti upozorenja."
|
msgstr "Konfigurirajte način primanja obavijesti upozorenja."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "Potvrdite lozinku"
|
msgstr "Potvrdite lozinku"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Nastavite"
|
msgstr "Nastavite"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "Kopirano u međuspremnik"
|
msgstr "Kopirano u međuspremnik"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Kopiraj"
|
msgstr "Kopiraj"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "Kopiraj hosta"
|
msgstr "Kopiraj hosta"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Kopiraj Linux komandu"
|
msgstr "Kopiraj Linux komandu"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "Kopiraj Linux komandu"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "Kopiraj tekst"
|
msgstr "Kopiraj tekst"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "Procesor"
|
msgstr "Procesor"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "Iskorištenost procesora"
|
msgstr "Iskorištenost procesora"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "Napravite račun"
|
msgstr "Napravite račun"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "Napravite račun"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "Tamno"
|
msgstr "Tamno"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Nadzorna ploča"
|
msgstr "Nadzorna ploča"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "Nadzorna ploča"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "Zadano vremensko razdoblje"
|
msgstr "Zadano vremensko razdoblje"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Izbriši"
|
msgstr "Izbriši"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "Disk"
|
msgstr "Disk"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "Disk I/O"
|
msgstr "Disk I/O"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "Iskorištenost Diska"
|
msgstr "Iskorištenost Diska"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "Iskorištenost diska od {extraFsName}"
|
msgstr "Iskorištenost diska od {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Iskorištenost Docker Procesora"
|
msgstr "Iskorištenost Docker Procesora"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Iskorištenost Docker Memorije"
|
msgstr "Iskorištenost Docker Memorije"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "Docker Mrežni I/O"
|
msgstr "Docker Mrežni I/O"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "Dokumentacija"
|
msgstr "Dokumentacija"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Email"
|
msgstr "Email"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "Email notifikacije"
|
msgstr "Email notifikacije"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "Email notifikacije"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "Unesite email adresu za resetiranje lozinke"
|
msgstr "Unesite email adresu za resetiranje lozinke"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "Unesite email adresu..."
|
msgstr "Unesite email adresu..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Greška"
|
msgstr "Greška"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "Premašuje {0}{1} u posljednjih {2, plural, one {# minuta} other {# minute}}"
|
msgstr "Premašuje {0}{1} u posljednjih {2, plural, one {# minuta} other {# minute}}"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "Izvoz konfiguracije"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "Izvoz trenutne sistemske konfiguracije."
|
msgstr "Izvoz trenutne sistemske konfiguracije."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "Provjera autentičnosti nije uspjela"
|
msgstr "Provjera autentičnosti nije uspjela"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "Neuspješno snimanje postavki"
|
msgstr "Neuspješno snimanje postavki"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "Neuspješno slanje testne notifikacije"
|
msgstr "Neuspješno slanje testne notifikacije"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "Neuspješno slanje testne notifikacije"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "Ažuriranje upozorenja nije uspjelo"
|
msgstr "Ažuriranje upozorenja nije uspjelo"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "Filter..."
|
msgstr "Filter..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "Filter..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "Za <0>{min}</0> {min, plural, one {minutu} other {minute}}"
|
msgstr "Za <0>{min}</0> {min, plural, one {minutu} other {minute}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "Zaboravljena lozinka?"
|
msgstr "Zaboravljena lozinka?"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "Zaboravljena lozinka?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Općenito"
|
msgstr "Općenito"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "Mreža"
|
msgstr "Mreža"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "Host / IP"
|
msgstr "Host / IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "Host / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "Ako ste izgubili lozinku za svoj administratorski račun, možete ju resetirati pomoću sljedeće naredbe."
|
msgstr "Ako ste izgubili lozinku za svoj administratorski račun, možete ju resetirati pomoću sljedeće naredbe."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "Nevažeća adresa e-pošte."
|
msgstr "Nevažeća adresa e-pošte."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "Kernel"
|
msgstr "Kernel"
|
||||||
|
|
||||||
@@ -399,7 +404,7 @@ msgstr "Kernel"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Jezik"
|
msgstr "Jezik"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "Izgled"
|
msgstr "Izgled"
|
||||||
|
|
||||||
@@ -408,7 +413,7 @@ msgstr "Izgled"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Svijetlo"
|
msgstr "Svijetlo"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Odjava"
|
msgstr "Odjava"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "Odjava"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Prijava"
|
msgstr "Prijava"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "Pokušaj prijave nije uspio"
|
msgstr "Pokušaj prijave nije uspio"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "Logovi"
|
msgstr "Logovi"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "Tražite gdje stvoriti upozorenja? Kliknite ikonu zvona <0/> u tablici sustava."
|
msgstr "Tražite gdje stvoriti upozorenja? Kliknite ikonu zvona <0/> u tablici sustava."
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "Tražite gdje stvoriti upozorenja? Kliknite ikonu zvona <0/> u tablici s
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "Upravljajte postavkama prikaza i obavijesti."
|
msgstr "Upravljajte postavkama prikaza i obavijesti."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "Maksimalno 1 minuta"
|
msgstr "Maksimalno 1 minuta"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "Memorija"
|
msgstr "Memorija"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "Upotreba memorije"
|
msgstr "Upotreba memorije"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Upotreba memorije Docker spremnika"
|
msgstr "Upotreba memorije Docker spremnika"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Ime"
|
msgstr "Ime"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "Mreža"
|
msgstr "Mreža"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Mrežni promet Docker spremnika"
|
msgstr "Mrežni promet Docker spremnika"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "Mrežni promet javnih sučelja"
|
msgstr "Mrežni promet javnih sučelja"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "Nema rezultata."
|
msgstr "Nema rezultata."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "Nije pronađen nijedan sustav."
|
msgstr "Nije pronađen nijedan sustav."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Obavijesti"
|
msgstr "Obavijesti"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "Podrška za OAuth 2 / OIDC"
|
msgstr "Podrška za OAuth 2 / OIDC"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "Podrška za OAuth 2 / OIDC"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "Prilikom svakog ponovnog pokretanja, sustavi u bazi podataka biti će ažurirani kako bi odgovarali sustavima definiranim u datoteci."
|
msgstr "Prilikom svakog ponovnog pokretanja, sustavi u bazi podataka biti će ažurirani kako bi odgovarali sustavima definiranim u datoteci."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "Otvori menu"
|
msgstr "Otvori menu"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "Ili nastavi sa"
|
msgstr "Ili nastavi sa"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "Ili nastavi sa"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "Prebrišite postojeća upozorenja"
|
msgstr "Prebrišite postojeća upozorenja"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Stranica"
|
msgstr "Stranica"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "Stranice / Postavke"
|
msgstr "Stranice / Postavke"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Lozinka"
|
msgstr "Lozinka"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "Lozinka mora imati najmanje 8 znakova."
|
msgstr "Lozinka mora imati najmanje 8 znakova."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "Zahtjev za ponovno postavljanje lozinke primljen"
|
msgstr "Zahtjev za ponovno postavljanje lozinke primljen"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Pauza"
|
msgstr "Pauza"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "Molimo <0>konfigurirajte SMTP server</0> kako biste osigurali isporuku upozorenja."
|
msgstr "Molimo <0>konfigurirajte SMTP server</0> kako biste osigurali isporuku upozorenja."
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "Molimo <0>konfigurirajte SMTP server</0> kako biste osigurali isporuku u
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "Za više detalja provjerite logove."
|
msgstr "Za više detalja provjerite logove."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "Provjerite svoje podatke i pokušajte ponovno"
|
msgstr "Provjerite svoje podatke i pokušajte ponovno"
|
||||||
@@ -545,15 +558,15 @@ msgstr "Provjerite svoje podatke i pokušajte ponovno"
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "Molimo kreirajte administratorski račun"
|
msgstr "Molimo kreirajte administratorski račun"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "Omogućite skočne prozore za ovu stranicu"
|
msgstr "Omogućite skočne prozore za ovu stranicu"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "Molimo prijavite se ponovno"
|
msgstr "Molimo prijavite se ponovno"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "Molimo pogledajte <0>dokumentaciju</0> za instrukcije."
|
msgstr "Molimo pogledajte <0>dokumentaciju</0> za instrukcije."
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "Molimo pogledajte <0>dokumentaciju</0> za instrukcije."
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "Molimo prijavite se u svoj račun"
|
msgstr "Molimo prijavite se u svoj račun"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Port"
|
msgstr "Port"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "Precizno iskorištenje u zabilježenom vremenu"
|
msgstr "Precizno iskorištenje u zabilježenom vremenu"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "Preferirani jezik"
|
msgstr "Preferirani jezik"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Javni Ključ"
|
msgstr "Javni Ključ"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "Primljeno"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "Resetiraj Lozinku"
|
msgstr "Resetiraj Lozinku"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "Nastavi"
|
msgstr "Nastavi"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Spremite adresu pomoću tipke enter ili zareza. Ostavite prazno kako biste onemogućili obavijesti e-poštom."
|
msgstr "Spremite adresu pomoću tipke enter ili zareza. Ostavite prazno kako biste onemogućili obavijesti e-poštom."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "Spremi Postavke"
|
msgstr "Spremi Postavke"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Pretraži"
|
msgstr "Pretraži"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "Pretraži za sisteme ili postavke..."
|
msgstr "Pretraži za sisteme ili postavke..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "Poslano"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "Postavlja zadani vremenski raspon za grafikone kada se sustav gleda."
|
msgstr "Postavlja zadani vremenski raspon za grafikone kada se sustav gleda."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "Postavke"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "Postavke spremljene"
|
msgstr "Postavke spremljene"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Prijava"
|
msgstr "Prijava"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "SMTP postavke"
|
msgstr "SMTP postavke"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "Sortiraj po"
|
msgstr "Sortiraj po"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Status"
|
msgstr "Status"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "Swap prostor uzet od strane sistema"
|
msgstr "Swap prostor uzet od strane sistema"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "Swap Iskorištenost"
|
msgstr "Swap Iskorištenost"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Sistem"
|
msgstr "Sistem"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "Sistemi"
|
msgstr "Sistemi"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "Sistemi"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "Sistemima se može upravljati u <0>config.yml</0> datoteci unutar data direktorija."
|
msgstr "Sistemima se može upravljati u <0>config.yml</0> datoteci unutar data direktorija."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "Tablica"
|
msgstr "Tablica"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "Temperatura"
|
msgstr "Temperatura"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "Temperature sistemskih senzora"
|
msgstr "Temperature sistemskih senzora"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "Testni <0>URL</0>"
|
msgstr "Testni <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Testna obavijest poslana"
|
msgstr "Testna obavijest poslana"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "Agent mora biti pokrenut na sistemu da bi se spojio. Kopirajte instalacijske komande za agenta ispod."
|
msgstr "Agent mora biti pokrenut na sistemu da bi se spojio. Kopirajte instalacijske komande za agenta ispod."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "Agent mora biti pokrenut na sistemu da bi se spojio. Kopirajte <0>docker-compose.yml</0> za agenta ispod."
|
msgstr "Agent mora biti pokrenut na sistemu da bi se spojio. Kopirajte <0>docker-compose.yml</0> za agenta ispod."
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "Agent mora biti pokrenut na sistemu da bi se spojio. Kopirajte <0>docker
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "Zatim se prijavite u backend i resetirajte lozinku korisničkog računa u tablici korisnika."
|
msgstr "Zatim se prijavite u backend i resetirajte lozinku korisničkog računa u tablici korisnika."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "Ova radnja se ne može poništiti. Ovo će trajno izbrisati sve trenutne zapise za {name} iz baze podataka."
|
msgstr "Ova radnja se ne može poništiti. Ovo će trajno izbrisati sve trenutne zapise za {name} iz baze podataka."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "Protok {extraFsName}"
|
msgstr "Protok {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "Protok root datotečnog sustava"
|
msgstr "Protok root datotečnog sustava"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "Primaoci e-pošte"
|
msgstr "Primaoci e-pošte"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "Uključi/isključi rešetku"
|
msgstr "Uključi/isključi rešetku"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "Uključi/isključi rešetku"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "Uključi/isključi temu"
|
msgstr "Uključi/isključi temu"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "Pokreće se kada bilo koji senzor prijeđe prag"
|
msgstr "Pokreće se kada bilo koji senzor prijeđe prag"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "Pokreće se kada kombinacija gore/dolje premaši prag"
|
msgstr "Pokreće se kada kombinacija gore/dolje premaši prag"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "Pokreće se kada iskorištenost procesora premaši prag"
|
msgstr "Pokreće se kada iskorištenost procesora premaši prag"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "Pokreće se kada iskorištenost memorije premaši prag"
|
msgstr "Pokreće se kada iskorištenost memorije premaši prag"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "Pokreće se kada se status sistema promijeni"
|
msgstr "Pokreće se kada se status sistema promijeni"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "Pokreće se kada iskorištenost bilo kojeg diska premaši prag"
|
msgstr "Pokreće se kada iskorištenost bilo kojeg diska premaši prag"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "Ažurirano odmah. Kliknite na sistem za više informacija."
|
msgstr "Ažurirano odmah. Kliknite na sistem za više informacija."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "Vrijeme rada"
|
msgstr "Vrijeme rada"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "Iskorištenost"
|
msgstr "Iskorištenost"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "Iskorištenost root datotečnog sustava"
|
msgstr "Iskorištenost root datotečnog sustava"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "Iskorištenost root datotečnog sustava"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "Iskorišteno"
|
msgstr "Iskorišteno"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Korisnici"
|
msgstr "Korisnici"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Prikaz"
|
msgstr "Prikaz"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "Vidljiva polja"
|
msgstr "Vidljiva polja"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "Čeka se na više podataka prije prikaza"
|
msgstr "Čeka se na više podataka prije prikaza"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "Čeka se na više podataka prije prikaza"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "Želite li nam pomoći da naše prijevode učinimo još boljim? Posjetite <0>Crowdin</0> za više detalja."
|
msgstr "Želite li nam pomoći da naše prijevode učinimo još boljim? Posjetite <0>Crowdin</0> za više detalja."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Webhook / Push obavijest"
|
msgstr "Webhook / Push obavijest"
|
||||||
|
|
||||||
|
|||||||
853
beszel/site/src/locales/hu/hu.po
Normal file
853
beszel/site/src/locales/hu/hu.po
Normal file
@@ -0,0 +1,853 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"POT-Creation-Date: 2024-11-01 11:30-0400\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: @lingui/cli\n"
|
||||||
|
"Language: hu\n"
|
||||||
|
"Project-Id-Version: beszel\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: Hungarian\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Crowdin-Project: beszel\n"
|
||||||
|
"X-Crowdin-Project-ID: 733311\n"
|
||||||
|
"X-Crowdin-Language: hu\n"
|
||||||
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:252
|
||||||
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
|
msgstr "{0, plural, one {# nap} other {# nap}}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:250
|
||||||
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
|
msgstr "{hours, plural, one {# óra} other {# óra}}"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:158
|
||||||
|
msgid "1 hour"
|
||||||
|
msgstr "1 óra"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:181
|
||||||
|
msgid "1 week"
|
||||||
|
msgstr "1 hét"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:166
|
||||||
|
msgid "12 hours"
|
||||||
|
msgstr "12 óra"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:174
|
||||||
|
msgid "24 hours"
|
||||||
|
msgstr "24 óra"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:189
|
||||||
|
msgid "30 days"
|
||||||
|
msgstr "30 nap"
|
||||||
|
|
||||||
|
#. Table column
|
||||||
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
|
msgid "Actions"
|
||||||
|
msgstr "Műveletek"
|
||||||
|
|
||||||
|
#: src/components/routes/home.tsx:62
|
||||||
|
msgid "Active Alerts"
|
||||||
|
msgstr "Aktív riasztások"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:42
|
||||||
|
msgid "Add <0>System</0>"
|
||||||
|
msgstr "Hozzáadás <0>System</0>"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:124
|
||||||
|
msgid "Add New System"
|
||||||
|
msgstr "Új rendszer hozzáadása"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Add system"
|
||||||
|
msgstr "Rendszer hozzáadása"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
|
msgid "Add URL"
|
||||||
|
msgstr "URL hozzáadása"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:81
|
||||||
|
msgid "Adjust display options for charts."
|
||||||
|
msgstr "Állítsa be a diagram megjelenítését."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:133
|
||||||
|
#: src/components/command-palette.tsx:146
|
||||||
|
#: src/components/command-palette.tsx:160
|
||||||
|
#: src/components/command-palette.tsx:174
|
||||||
|
#: src/components/command-palette.tsx:189
|
||||||
|
msgid "Admin"
|
||||||
|
msgstr "Admin"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
|
msgid "Agent"
|
||||||
|
msgstr "Ügynök"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:32
|
||||||
|
#: src/components/alerts/alert-button.tsx:68
|
||||||
|
msgid "Alerts"
|
||||||
|
msgstr "Riasztások"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
|
msgid "All Systems"
|
||||||
|
msgstr "Minden rendszer"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
|
msgid "Are you sure you want to delete {name}?"
|
||||||
|
msgstr "Biztosan törölni szeretnéd {name}-t?"
|
||||||
|
|
||||||
|
#: src/components/copy-to-clipboard.tsx:16
|
||||||
|
msgid "Automatic copy requires a secure context."
|
||||||
|
msgstr "Az automatikus másolás biztonságos környezetet igényel."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:626
|
||||||
|
msgid "Average"
|
||||||
|
msgstr "Átlag"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:403
|
||||||
|
msgid "Average CPU utilization of containers"
|
||||||
|
msgstr "Konténerek átlagos CPU kihasználtsága"
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:206
|
||||||
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
|
msgstr "Az átlag meghaladja a <0>{value}{0}</0> értéket"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:504
|
||||||
|
msgid "Average power consumption of GPUs"
|
||||||
|
msgstr "GPU-k átlagos energiafogyasztása"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:392
|
||||||
|
msgid "Average system-wide CPU utilization"
|
||||||
|
msgstr "Rendszerszintű CPU átlagos kihasználtság"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:522
|
||||||
|
msgid "Average utilization of {0}"
|
||||||
|
msgstr "{0} átlagos kihasználtsága"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:171
|
||||||
|
#: src/components/navbar.tsx:94
|
||||||
|
msgid "Backups"
|
||||||
|
msgstr "Biztonsági mentések"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:448
|
||||||
|
#: src/lib/utils.ts:326
|
||||||
|
msgid "Bandwidth"
|
||||||
|
msgstr "Sávszélesség"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:304
|
||||||
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
|
msgstr "A Beszel támogatja az OpenID Connect-et és számos OAuth2 hitelesítési szolgáltatót."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
|
msgstr "A Beszel a <0>Shoutrrr</0>-t használja a népszerű értesítési szolgáltatások integrálására."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:129
|
||||||
|
msgid "Binary"
|
||||||
|
msgstr "Bináris"
|
||||||
|
|
||||||
|
#: src/components/charts/mem-chart.tsx:89
|
||||||
|
msgid "Cache / Buffers"
|
||||||
|
msgstr "Gyorsítótár / Pufferelések"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Mégsem"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:68
|
||||||
|
msgid "Caution - potential data loss"
|
||||||
|
msgstr "Figyelem - potenciális adatvesztés"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:36
|
||||||
|
msgid "Change general application options."
|
||||||
|
msgstr "Általános alkalmazásbeállítások módosítása."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:78
|
||||||
|
msgid "Chart options"
|
||||||
|
msgstr "Diagram beállítások"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:34
|
||||||
|
msgid "Check {email} for a reset link."
|
||||||
|
msgstr "Ellenőrizd a {email} címet a visszaállító linkért."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:40
|
||||||
|
msgid "Check logs for more details."
|
||||||
|
msgstr "Ellenőrizd a naplót a további részletekért."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
|
msgid "Check your notification service"
|
||||||
|
msgstr "Ellenőrizd az értesítési szolgáltatásodat"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:203
|
||||||
|
msgid "Click to copy"
|
||||||
|
msgstr "Kattints a másoláshoz"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:83
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:89
|
||||||
|
msgid "Command line instructions"
|
||||||
|
msgstr "Parancssori utasítások"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
|
msgid "Configure how you receive alert notifications."
|
||||||
|
msgstr "Konfiguráld, hogyan kapod az értesítéseket."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:210
|
||||||
|
#: src/components/login/auth-form.tsx:215
|
||||||
|
msgid "Confirm password"
|
||||||
|
msgstr "Jelszó megerősítése"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
|
msgid "Continue"
|
||||||
|
msgstr "Tovább"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:26
|
||||||
|
msgid "Copied to clipboard"
|
||||||
|
msgstr "Vágólapra másolva"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
|
msgid "Copy"
|
||||||
|
msgstr "Másolás"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
|
msgid "Copy host"
|
||||||
|
msgstr "Hoszt másolása"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:223
|
||||||
|
msgid "Copy Linux command"
|
||||||
|
msgstr "Linux parancs másolása"
|
||||||
|
|
||||||
|
#: src/components/copy-to-clipboard.tsx:13
|
||||||
|
msgid "Copy text"
|
||||||
|
msgstr "Szöveg másolása"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
|
msgid "CPU"
|
||||||
|
msgstr "CPU"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:56
|
||||||
|
#: src/components/routes/system.tsx:391
|
||||||
|
#: src/lib/utils.ts:308
|
||||||
|
msgid "CPU Usage"
|
||||||
|
msgstr "CPU használat"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:236
|
||||||
|
msgid "Create account"
|
||||||
|
msgstr "Fiók létrehozása"
|
||||||
|
|
||||||
|
#. Dark theme
|
||||||
|
#: src/components/mode-toggle.tsx:21
|
||||||
|
msgid "Dark"
|
||||||
|
msgstr "Sötét"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:82
|
||||||
|
#: src/components/routes/home.tsx:35
|
||||||
|
msgid "Dashboard"
|
||||||
|
msgstr "Áttekintés"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:85
|
||||||
|
msgid "Default time period"
|
||||||
|
msgstr "Alapértelmezett időszak"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Törlés"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
|
msgid "Disk"
|
||||||
|
msgstr "Lemez"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:438
|
||||||
|
msgid "Disk I/O"
|
||||||
|
msgstr "Lemez I/O"
|
||||||
|
|
||||||
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
|
#: src/components/routes/system.tsx:431
|
||||||
|
#: src/lib/utils.ts:320
|
||||||
|
msgid "Disk Usage"
|
||||||
|
msgstr "Lemezhasználat"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:559
|
||||||
|
msgid "Disk usage of {extraFsName}"
|
||||||
|
msgstr "Lemezhasználat a {extraFsName}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:402
|
||||||
|
msgid "Docker CPU Usage"
|
||||||
|
msgstr "Docker CPU használat"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:423
|
||||||
|
msgid "Docker Memory Usage"
|
||||||
|
msgstr "Docker memória használat"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:464
|
||||||
|
msgid "Docker Network I/O"
|
||||||
|
msgstr "Docker hálózat I/O"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:125
|
||||||
|
msgid "Documentation"
|
||||||
|
msgstr "Dokumentáció"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
|
msgid "Email"
|
||||||
|
msgstr "Email"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
|
msgid "Email notifications"
|
||||||
|
msgstr "E-mail értesítések"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:38
|
||||||
|
msgid "Enter email address to reset password"
|
||||||
|
msgstr "E-mail cím megadása a jelszó visszaállításához"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
|
msgid "Enter email address..."
|
||||||
|
msgstr "Adja meg az e-mail címet..."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:136
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
|
msgid "Error"
|
||||||
|
msgstr "Hiba"
|
||||||
|
|
||||||
|
#: src/components/routes/home.tsx:81
|
||||||
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
|
msgstr "Túllépi a {0}{1} értéket az elmúlt {2, plural, one {# percben} other {# percben}}"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:72
|
||||||
|
msgid "Existing systems not defined in <0>config.yml</0> will be deleted. Please make regular backups."
|
||||||
|
msgstr "A <0>config.yml</0> fájlban nem definiált meglévő rendszerek törlésre kerülnek. Kérjük, készítsen rendszeres biztonsági mentéseket."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:93
|
||||||
|
msgid "Export configuration"
|
||||||
|
msgstr "Konfiguráció exportálása"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:48
|
||||||
|
msgid "Export your current systems configuration."
|
||||||
|
msgstr "Exportálja a jelenlegi rendszerkonfigurációt."
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:39
|
||||||
|
msgid "Failed to authenticate"
|
||||||
|
msgstr "Hitelesítés sikertelen"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
|
msgid "Failed to save settings"
|
||||||
|
msgstr "Nem sikerült menteni a beállításokat"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
|
msgid "Failed to send test notification"
|
||||||
|
msgstr "Teszt értesítés elküldése sikertelen"
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:24
|
||||||
|
msgid "Failed to update alert"
|
||||||
|
msgstr "Nem sikerült frissíteni a riasztást"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:599
|
||||||
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
|
msgid "Filter..."
|
||||||
|
msgstr "Szűrő..."
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:227
|
||||||
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
|
msgstr "A <0>{min}</0> {min, plural, one {perc} other {percek}}"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:328
|
||||||
|
msgid "Forgot password?"
|
||||||
|
msgstr "Elfelejtette a jelszavát?"
|
||||||
|
|
||||||
|
#. Context: General settings
|
||||||
|
#: src/components/routes/settings/general.tsx:33
|
||||||
|
#: src/components/routes/settings/layout.tsx:51
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Általános"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:503
|
||||||
|
msgid "GPU Power Draw"
|
||||||
|
msgstr "GPU áramfelvétele"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
|
msgid "Grid"
|
||||||
|
msgstr "Rács"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:157
|
||||||
|
msgid "Host / IP"
|
||||||
|
msgstr "Állomás / IP"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:93
|
||||||
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
|
msgstr "Ha elvesztette az admin fiók jelszavát, a következő paranccsal állíthatja vissza."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:17
|
||||||
|
msgid "Invalid email address."
|
||||||
|
msgstr "Érvénytelen e-mail cím."
|
||||||
|
|
||||||
|
#. Linux kernel
|
||||||
|
#: src/components/routes/system.tsx:264
|
||||||
|
msgid "Kernel"
|
||||||
|
msgstr "Kernel"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:45
|
||||||
|
msgid "Language"
|
||||||
|
msgstr "Nyelv"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
|
msgid "Layout"
|
||||||
|
msgstr "Elrendezés"
|
||||||
|
|
||||||
|
#. Light theme
|
||||||
|
#: src/components/mode-toggle.tsx:16
|
||||||
|
msgid "Light"
|
||||||
|
msgstr "Világos"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:105
|
||||||
|
msgid "Log Out"
|
||||||
|
msgstr "Kijelentkezés"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:19
|
||||||
|
msgid "Login"
|
||||||
|
msgstr "Bejelentkezés"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:39
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
|
msgid "Login attempt failed"
|
||||||
|
msgstr "Bejelentkezés sikertelen"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:157
|
||||||
|
#: src/components/navbar.tsx:86
|
||||||
|
msgid "Logs"
|
||||||
|
msgstr "Naplók"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
|
msgstr "Inkább azt keresi, hogy hol hozhat létre riasztásokat? Kattintson a csengő <0/> ikonokra a rendszerek táblázatában."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:85
|
||||||
|
msgid "Manage display and notification preferences."
|
||||||
|
msgstr "A megjelenítési és értesítési beállítások kezelése."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Chart select field. Please try to keep this short.
|
||||||
|
#: src/components/routes/system.tsx:629
|
||||||
|
msgid "Max 1 min"
|
||||||
|
msgstr "Maximum 1 perc"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
|
msgid "Memory"
|
||||||
|
msgstr "RAM"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:413
|
||||||
|
#: src/lib/utils.ts:314
|
||||||
|
msgid "Memory Usage"
|
||||||
|
msgstr "Memóriahasználat"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:424
|
||||||
|
msgid "Memory usage of docker containers"
|
||||||
|
msgstr "Docker konténerek memória használata"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:153
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "Név"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
|
msgid "Net"
|
||||||
|
msgstr "Hálózat"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:465
|
||||||
|
msgid "Network traffic of docker containers"
|
||||||
|
msgstr "Docker konténerek hálózati forgalma"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:450
|
||||||
|
msgid "Network traffic of public interfaces"
|
||||||
|
msgstr "Nyilvános interfészek hálózati forgalma"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:50
|
||||||
|
msgid "No results found."
|
||||||
|
msgstr "Nincs találat."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
|
msgid "No systems found."
|
||||||
|
msgstr "Nem található rendszer."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:111
|
||||||
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
|
msgid "Notifications"
|
||||||
|
msgstr "Értesítések"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:299
|
||||||
|
msgid "OAuth 2 / OIDC support"
|
||||||
|
msgstr "OAuth 2 / OIDC támogatás"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:61
|
||||||
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
|
msgstr "Minden újraindításkor az adatbázisban lévő rendszerek frissítésre kerülnek, hogy megfeleljenek a fájlban meghatározott rendszereknek."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
|
msgid "Open menu"
|
||||||
|
msgstr "Menü megnyitása"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:248
|
||||||
|
msgid "Or continue with"
|
||||||
|
msgstr "Vagy folytasd ezzel"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:109
|
||||||
|
msgid "Overwrite existing alerts"
|
||||||
|
msgstr "Felülírja a meglévő riasztásokat"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:85
|
||||||
|
msgid "Page"
|
||||||
|
msgstr "Oldal"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:72
|
||||||
|
msgid "Pages / Settings"
|
||||||
|
msgstr "Oldalak / Beállítások"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:192
|
||||||
|
#: src/components/login/auth-form.tsx:197
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "Jelszó"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:20
|
||||||
|
msgid "Password must be at least 8 characters."
|
||||||
|
msgstr "A jelszónak legalább 8 karakternek kell lennie."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
|
msgid "Password reset request received"
|
||||||
|
msgstr "Jelszó-visszaállítási kérelmet kaptunk"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
|
msgid "Pause"
|
||||||
|
msgstr "Szüneteltetés"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
|
msgstr "Kérjük, <0>konfigurálj egy SMTP szervert</0> az értesítések kézbesítésének biztosítása érdekében."
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:25
|
||||||
|
msgid "Please check logs for more details."
|
||||||
|
msgstr "Kérjük, ellenőrizd a naplókat a további részletekért."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:40
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
|
msgid "Please check your credentials and try again"
|
||||||
|
msgstr "Kérjük, ellenőrizze a hitelesítő adatait, és próbálja újra"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:36
|
||||||
|
msgid "Please create an admin account"
|
||||||
|
msgstr "Kérjük, hozzon létre egy admin fiókot"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:137
|
||||||
|
msgid "Please enable pop-ups for this site"
|
||||||
|
msgstr "Kérjük, engedélyezze a felugró ablakokat ezen az oldalon"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:40
|
||||||
|
msgid "Please log in again"
|
||||||
|
msgstr "Kérjük jelentkezz be újra"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:307
|
||||||
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
|
msgstr "Kérjük, nézze meg <0>a dokumentációt</0> az utasításokért."
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:40
|
||||||
|
msgid "Please sign in to your account"
|
||||||
|
msgstr "Kérjük, jelentkezzen be a fiókjába"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:169
|
||||||
|
msgid "Port"
|
||||||
|
msgstr "Port"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:414
|
||||||
|
#: src/components/routes/system.tsx:530
|
||||||
|
msgid "Precise utilization at the recorded time"
|
||||||
|
msgstr "Pontos kihasználás a rögzített időpontban"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:58
|
||||||
|
msgid "Preferred Language"
|
||||||
|
msgstr "Preferált nyelv"
|
||||||
|
|
||||||
|
#. Use 'Key' if your language requires many more characters
|
||||||
|
#: src/components/add-system.tsx:180
|
||||||
|
msgid "Public Key"
|
||||||
|
msgstr "Nyilvános kulcs"
|
||||||
|
|
||||||
|
#. Disk read
|
||||||
|
#: src/components/charts/area-chart.tsx:60
|
||||||
|
#: src/components/charts/area-chart.tsx:70
|
||||||
|
msgid "Read"
|
||||||
|
msgstr "Olvasás"
|
||||||
|
|
||||||
|
#. Network bytes received (download)
|
||||||
|
#: src/components/charts/area-chart.tsx:65
|
||||||
|
msgid "Received"
|
||||||
|
msgstr "Fogadott"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:76
|
||||||
|
msgid "Reset Password"
|
||||||
|
msgstr "Jelszó visszaállítása"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
|
msgid "Resume"
|
||||||
|
msgstr "Folytatás"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
|
msgstr "Mentse el a címet az Enter billentyű vagy a vessző használatával. Hagyja üresen az e-mail értesítések letiltásához."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:106
|
||||||
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Beállítások mentése"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
|
msgid "Search"
|
||||||
|
msgstr "Keresés"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:47
|
||||||
|
msgid "Search for systems or settings..."
|
||||||
|
msgstr "Keresés rendszerek vagy beállítások után..."
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:71
|
||||||
|
msgid "See <0>notification settings</0> to configure how you receive alerts."
|
||||||
|
msgstr "Lásd <0>az értesítési beállításokat</0>, hogy konfigurálja, hogyan kap értesítéseket."
|
||||||
|
|
||||||
|
#. Network bytes sent (upload)
|
||||||
|
#: src/components/charts/area-chart.tsx:64
|
||||||
|
msgid "Sent"
|
||||||
|
msgstr "Elküldve"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:100
|
||||||
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
|
msgstr "Beállítja az alapértelmezett időtartamot a diagramokhoz, amikor egy rendszert néznek."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:96
|
||||||
|
#: src/components/command-palette.tsx:99
|
||||||
|
#: src/components/command-palette.tsx:114
|
||||||
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Beállítások"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:33
|
||||||
|
msgid "Settings saved"
|
||||||
|
msgstr "Beállítások elmentve"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:236
|
||||||
|
msgid "Sign in"
|
||||||
|
msgstr "Bejelentkezés"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:186
|
||||||
|
msgid "SMTP settings"
|
||||||
|
msgstr "SMTP beállítások"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
|
msgid "Sort By"
|
||||||
|
msgstr "Rendezés"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:301
|
||||||
|
msgid "Status"
|
||||||
|
msgstr "Állapot"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:480
|
||||||
|
msgid "Swap space used by the system"
|
||||||
|
msgstr "Rendszer által használt swap terület"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:479
|
||||||
|
msgid "Swap Usage"
|
||||||
|
msgstr "Swap használat"
|
||||||
|
|
||||||
|
#. System theme
|
||||||
|
#: src/components/mode-toggle.tsx:26
|
||||||
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
|
msgid "System"
|
||||||
|
msgstr "Rendszer"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:78
|
||||||
|
msgid "Systems"
|
||||||
|
msgstr "Rendszer"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:55
|
||||||
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
|
msgstr "A rendszereket egy <0>config.yml</0> fájlban lehet kezelni az adatkönyvtárban."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
|
msgid "Table"
|
||||||
|
msgstr "Tábla"
|
||||||
|
|
||||||
|
#. Temperature label in systems table
|
||||||
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
|
msgid "Temperature"
|
||||||
|
msgstr "Hőmérséklet"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:492
|
||||||
|
msgid "Temperatures of system sensors"
|
||||||
|
msgstr "A rendszer érzékelőinek hőmérséklete"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
|
msgid "Test <0>URL</0>"
|
||||||
|
msgstr "Teszt <0>URL</0>"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
|
msgid "Test notification sent"
|
||||||
|
msgstr "Teszt értesítés elküldve"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:145
|
||||||
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
|
msgstr "A csatlakozáshoz az ügynöknek futnia kell a rendszerben. Másolja ki az alábbi telepítési parancsot az ügynök telepítéséhez."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:136
|
||||||
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
|
msgstr "A csatlakozáshoz az ügynöknek futnia kell a rendszerben. Másolja az<0>docker-compose.yml</0> fájlt az ügynök futtatásához."
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:98
|
||||||
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
|
msgstr "Ezután jelentkezzen be a backendbe, és állítsa vissza a felhasználói fiók jelszavát a felhasználók táblázatban."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
|
msgstr "Ezt a műveletet nem lehet visszavonni! Véglegesen törli a {name} összes jelenlegi rekordját az adatbázisból!"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:571
|
||||||
|
msgid "Throughput of {extraFsName}"
|
||||||
|
msgstr "A {extraFsName} átviteli teljesítménye"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:439
|
||||||
|
msgid "Throughput of root filesystem"
|
||||||
|
msgstr "A gyökér fájlrendszer átviteli teljesítménye"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
|
msgid "To email(s)"
|
||||||
|
msgstr "E-mailben"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:366
|
||||||
|
#: src/components/routes/system.tsx:379
|
||||||
|
msgid "Toggle grid"
|
||||||
|
msgstr "Rács ki- és bekapcsolása"
|
||||||
|
|
||||||
|
#: src/components/mode-toggle.tsx:33
|
||||||
|
msgid "Toggle theme"
|
||||||
|
msgstr "Téma váltása"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:336
|
||||||
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
|
msgstr "Bekapcsol, ha bármelyik érzékelő túllép egy küszöbértéket"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:329
|
||||||
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
|
msgstr "Bekapcsol, ha bármelyik érzékelő túllép egy küszöbértéket"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:311
|
||||||
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
|
msgstr "Bekapcsol, ha a CPU érzékelő túllép egy küszöbértéket"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:317
|
||||||
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
|
msgstr "Bekapcsol, ha a Ram érzékelő túllép egy küszöbértéket"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:304
|
||||||
|
msgid "Triggers when status switches between up and down"
|
||||||
|
msgstr "Bekapcsol, amikor az állapot fel és le között változik"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:323
|
||||||
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
|
msgstr "Bekapcsol, ha a lemez érzékelő túllép egy küszöbértéket"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
|
msgstr "Valós időben frissítve. Kattintson egy rendszerre az információk megtekintéséhez."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:263
|
||||||
|
msgid "Uptime"
|
||||||
|
msgstr "Üzemidő"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:73
|
||||||
|
#: src/components/routes/system.tsx:521
|
||||||
|
#: src/components/routes/system.tsx:558
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Használat"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:431
|
||||||
|
msgid "Usage of root partition"
|
||||||
|
msgstr "Root partíció kihasználtsága"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:73
|
||||||
|
#: src/components/charts/mem-chart.tsx:65
|
||||||
|
#: src/components/charts/swap-chart.tsx:56
|
||||||
|
msgid "Used"
|
||||||
|
msgstr "Felhasznált"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:143
|
||||||
|
#: src/components/navbar.tsx:70
|
||||||
|
msgid "Users"
|
||||||
|
msgstr "Felhasználók"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
|
msgid "View"
|
||||||
|
msgstr "Nézet"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
|
msgid "Visible Fields"
|
||||||
|
msgstr "Látható mezők"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:663
|
||||||
|
msgid "Waiting for enough records to display"
|
||||||
|
msgstr "Elegendő rekordra várva a megjelenítéshez"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:48
|
||||||
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
|
msgstr "Szeretne segíteni nekünk abban, hogy fordításaink még jobbak legyenek? További részletekért nézze meg a <0>Crowdin</0> honlapot."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
|
msgid "Webhook / Push notifications"
|
||||||
|
msgstr "Webhook / Push értesítések"
|
||||||
|
|
||||||
|
#. Disk write
|
||||||
|
#: src/components/charts/area-chart.tsx:59
|
||||||
|
#: src/components/charts/area-chart.tsx:69
|
||||||
|
msgid "Write"
|
||||||
|
msgstr "Írás"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:61
|
||||||
|
msgid "YAML Config"
|
||||||
|
msgstr "YAML konfiguráció"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:45
|
||||||
|
msgid "YAML Configuration"
|
||||||
|
msgstr "YAML konfiguráció"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:34
|
||||||
|
msgid "Your user settings have been updated."
|
||||||
|
msgstr "A felhasználói beállítások frissítésre kerültek."
|
||||||
853
beszel/site/src/locales/is/is.po
Normal file
853
beszel/site/src/locales/is/is.po
Normal file
@@ -0,0 +1,853 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"POT-Creation-Date: 2024-11-01 11:30-0400\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: @lingui/cli\n"
|
||||||
|
"Language: is\n"
|
||||||
|
"Project-Id-Version: beszel\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: Icelandic\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Crowdin-Project: beszel\n"
|
||||||
|
"X-Crowdin-Project-ID: 733311\n"
|
||||||
|
"X-Crowdin-Language: is\n"
|
||||||
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:252
|
||||||
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
|
msgstr "{0, plural, one {# dagur} other {# dagar}}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:250
|
||||||
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
|
msgstr "{hours, plural, one {# klukkustund} other {# klukkustundir}}"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:158
|
||||||
|
msgid "1 hour"
|
||||||
|
msgstr "1 klukkustund"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:181
|
||||||
|
msgid "1 week"
|
||||||
|
msgstr "1 vika"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:166
|
||||||
|
msgid "12 hours"
|
||||||
|
msgstr "12 klukkustundir"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:174
|
||||||
|
msgid "24 hours"
|
||||||
|
msgstr "24 klukkustundir"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:189
|
||||||
|
msgid "30 days"
|
||||||
|
msgstr "30 dagar"
|
||||||
|
|
||||||
|
#. Table column
|
||||||
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
|
msgid "Actions"
|
||||||
|
msgstr "Aðgerðir"
|
||||||
|
|
||||||
|
#: src/components/routes/home.tsx:62
|
||||||
|
msgid "Active Alerts"
|
||||||
|
msgstr "Virkar tilkynningar"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:42
|
||||||
|
msgid "Add <0>System</0>"
|
||||||
|
msgstr "Bæta við <0>Kerfi</0>"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:124
|
||||||
|
msgid "Add New System"
|
||||||
|
msgstr "Bæta við nýju kerfi"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Add system"
|
||||||
|
msgstr "Bæta við kerfi"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
|
msgid "Add URL"
|
||||||
|
msgstr "Bæta við léni"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:81
|
||||||
|
msgid "Adjust display options for charts."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:133
|
||||||
|
#: src/components/command-palette.tsx:146
|
||||||
|
#: src/components/command-palette.tsx:160
|
||||||
|
#: src/components/command-palette.tsx:174
|
||||||
|
#: src/components/command-palette.tsx:189
|
||||||
|
msgid "Admin"
|
||||||
|
msgstr "Admin"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
|
msgid "Agent"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:32
|
||||||
|
#: src/components/alerts/alert-button.tsx:68
|
||||||
|
msgid "Alerts"
|
||||||
|
msgstr "Tilkynningar"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
|
msgid "All Systems"
|
||||||
|
msgstr "Öll kerfi"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
|
msgid "Are you sure you want to delete {name}?"
|
||||||
|
msgstr "Ertu viss um að þú viljir eyða {name}?"
|
||||||
|
|
||||||
|
#: src/components/copy-to-clipboard.tsx:16
|
||||||
|
msgid "Automatic copy requires a secure context."
|
||||||
|
msgstr "Sjálfvisk afritun krefst öruggs samhengis."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:626
|
||||||
|
msgid "Average"
|
||||||
|
msgstr "Meðal"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:403
|
||||||
|
msgid "Average CPU utilization of containers"
|
||||||
|
msgstr "Meðal örgjörva notkun container-a."
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:206
|
||||||
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
|
msgstr "Meðaltal er yfir <0>{value}{0}</0>"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:504
|
||||||
|
msgid "Average power consumption of GPUs"
|
||||||
|
msgstr "Meðal orkunotkun skjákorta"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:392
|
||||||
|
msgid "Average system-wide CPU utilization"
|
||||||
|
msgstr "Meðal nýting örgjörva yfir allt kerfið"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:522
|
||||||
|
msgid "Average utilization of {0}"
|
||||||
|
msgstr "Meðal notkun af {0}"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:171
|
||||||
|
#: src/components/navbar.tsx:94
|
||||||
|
msgid "Backups"
|
||||||
|
msgstr "Öryggisafrit"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:448
|
||||||
|
#: src/lib/utils.ts:326
|
||||||
|
msgid "Bandwidth"
|
||||||
|
msgstr "Gangnaflutningsgeta"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:304
|
||||||
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
|
msgstr "Beszel styður OpenID Connect og margar OAuth2 auðkenningarveitendur."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
|
msgstr "Beszel notar <0>Shoutrrr</0> til að tengjast vinsælum tilkynningaþjónustum."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:129
|
||||||
|
msgid "Binary"
|
||||||
|
msgstr "Binary"
|
||||||
|
|
||||||
|
#: src/components/charts/mem-chart.tsx:89
|
||||||
|
msgid "Cache / Buffers"
|
||||||
|
msgstr "Skyndiminni / Biðminni"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Hætta við"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:68
|
||||||
|
msgid "Caution - potential data loss"
|
||||||
|
msgstr "Aðvörun - möguleiki á gagnatapi"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:36
|
||||||
|
msgid "Change general application options."
|
||||||
|
msgstr "Breyta almennum stillingum."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:78
|
||||||
|
msgid "Chart options"
|
||||||
|
msgstr "Valkostir fyrir línurit"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:34
|
||||||
|
msgid "Check {email} for a reset link."
|
||||||
|
msgstr "Skoðaðu {email} fyrir endurstillingar lén."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:40
|
||||||
|
msgid "Check logs for more details."
|
||||||
|
msgstr "Skoðaðu logga til að sjá meiri upplýsingar."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
|
msgid "Check your notification service"
|
||||||
|
msgstr "Athugaðu tilkynningaþjónustuna þína"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:203
|
||||||
|
msgid "Click to copy"
|
||||||
|
msgstr "Smelltu til að afrita"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:83
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:89
|
||||||
|
msgid "Command line instructions"
|
||||||
|
msgstr "Skipanalínu leiðbeiningar"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
|
msgid "Configure how you receive alert notifications."
|
||||||
|
msgstr "Stilltu hvernig þú vilt fá tilkynningar."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:210
|
||||||
|
#: src/components/login/auth-form.tsx:215
|
||||||
|
msgid "Confirm password"
|
||||||
|
msgstr "Staðfestu lykilorð"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
|
msgid "Continue"
|
||||||
|
msgstr "Halda áfram"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:26
|
||||||
|
msgid "Copied to clipboard"
|
||||||
|
msgstr "Afritað í klippiborð"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
|
msgid "Copy"
|
||||||
|
msgstr "Afrita"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
|
msgid "Copy host"
|
||||||
|
msgstr "Afrita host"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:223
|
||||||
|
msgid "Copy Linux command"
|
||||||
|
msgstr "Afrita Linux aðgerð"
|
||||||
|
|
||||||
|
#: src/components/copy-to-clipboard.tsx:13
|
||||||
|
msgid "Copy text"
|
||||||
|
msgstr "Afrita texta"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
|
msgid "CPU"
|
||||||
|
msgstr "Örgjörvi"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:56
|
||||||
|
#: src/components/routes/system.tsx:391
|
||||||
|
#: src/lib/utils.ts:308
|
||||||
|
msgid "CPU Usage"
|
||||||
|
msgstr "Örgjörva notkun"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:236
|
||||||
|
msgid "Create account"
|
||||||
|
msgstr "Búa til aðgang"
|
||||||
|
|
||||||
|
#. Dark theme
|
||||||
|
#: src/components/mode-toggle.tsx:21
|
||||||
|
msgid "Dark"
|
||||||
|
msgstr "Dökkt"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:82
|
||||||
|
#: src/components/routes/home.tsx:35
|
||||||
|
msgid "Dashboard"
|
||||||
|
msgstr "Yfirlitssíða"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:85
|
||||||
|
msgid "Default time period"
|
||||||
|
msgstr "Sjálfgefið tímabil"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Eyða"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
|
msgid "Disk"
|
||||||
|
msgstr "Diskur"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:438
|
||||||
|
msgid "Disk I/O"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
|
#: src/components/routes/system.tsx:431
|
||||||
|
#: src/lib/utils.ts:320
|
||||||
|
msgid "Disk Usage"
|
||||||
|
msgstr "Diskanotkun"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:559
|
||||||
|
msgid "Disk usage of {extraFsName}"
|
||||||
|
msgstr "Diska notkun af {extraFsName}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:402
|
||||||
|
msgid "Docker CPU Usage"
|
||||||
|
msgstr "Docker CPU notkun"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:423
|
||||||
|
msgid "Docker Memory Usage"
|
||||||
|
msgstr "Minnisnotkun Docker"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:464
|
||||||
|
msgid "Docker Network I/O"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:125
|
||||||
|
msgid "Documentation"
|
||||||
|
msgstr "Skjal"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
|
msgid "Email"
|
||||||
|
msgstr "Netfang"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
|
msgid "Email notifications"
|
||||||
|
msgstr "Tilkynningar í tölvupósti"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:38
|
||||||
|
msgid "Enter email address to reset password"
|
||||||
|
msgstr "Settu netfang til að endursetja lykilorð"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
|
msgid "Enter email address..."
|
||||||
|
msgstr "Settu inn Netfang..."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:136
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
|
msgid "Error"
|
||||||
|
msgstr "Villa"
|
||||||
|
|
||||||
|
#: src/components/routes/home.tsx:81
|
||||||
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
|
msgstr "Fór yfir {0}{1} á síðustu {2, plural, one {# mínútu} other {# mínútum}}"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:72
|
||||||
|
msgid "Existing systems not defined in <0>config.yml</0> will be deleted. Please make regular backups."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:93
|
||||||
|
msgid "Export configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:48
|
||||||
|
msgid "Export your current systems configuration."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:39
|
||||||
|
msgid "Failed to authenticate"
|
||||||
|
msgstr "Villa í auðkenningu"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
|
msgid "Failed to save settings"
|
||||||
|
msgstr "Villa við að vista stillingar"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
|
msgid "Failed to send test notification"
|
||||||
|
msgstr "Villa í sendingu prufu skilaboða"
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:24
|
||||||
|
msgid "Failed to update alert"
|
||||||
|
msgstr "Mistókst að uppfæra tilkynningu"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:599
|
||||||
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
|
msgid "Filter..."
|
||||||
|
msgstr "Sía..."
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:227
|
||||||
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:328
|
||||||
|
msgid "Forgot password?"
|
||||||
|
msgstr "Gleymt lykilorð?"
|
||||||
|
|
||||||
|
#. Context: General settings
|
||||||
|
#: src/components/routes/settings/general.tsx:33
|
||||||
|
#: src/components/routes/settings/layout.tsx:51
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Almennt"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:503
|
||||||
|
msgid "GPU Power Draw"
|
||||||
|
msgstr "Skjákorts rafmagnsnotkun"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
|
msgid "Grid"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:157
|
||||||
|
msgid "Host / IP"
|
||||||
|
msgstr "Host / IP"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:93
|
||||||
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:17
|
||||||
|
msgid "Invalid email address."
|
||||||
|
msgstr "Ógilt netfang."
|
||||||
|
|
||||||
|
#. Linux kernel
|
||||||
|
#: src/components/routes/system.tsx:264
|
||||||
|
msgid "Kernel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:45
|
||||||
|
msgid "Language"
|
||||||
|
msgstr "Tungumál"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
|
msgid "Layout"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Light theme
|
||||||
|
#: src/components/mode-toggle.tsx:16
|
||||||
|
msgid "Light"
|
||||||
|
msgstr "Ljóst"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:105
|
||||||
|
msgid "Log Out"
|
||||||
|
msgstr "Útskrá"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:19
|
||||||
|
msgid "Login"
|
||||||
|
msgstr "Innskrá"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:39
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
|
msgid "Login attempt failed"
|
||||||
|
msgstr "Innskránings tilraun misheppnaðist"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:157
|
||||||
|
#: src/components/navbar.tsx:86
|
||||||
|
msgid "Logs"
|
||||||
|
msgstr "Loggar"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:85
|
||||||
|
msgid "Manage display and notification preferences."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Chart select field. Please try to keep this short.
|
||||||
|
#: src/components/routes/system.tsx:629
|
||||||
|
msgid "Max 1 min"
|
||||||
|
msgstr "Mest 1 mínúta"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
|
msgid "Memory"
|
||||||
|
msgstr "Minni"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:413
|
||||||
|
#: src/lib/utils.ts:314
|
||||||
|
msgid "Memory Usage"
|
||||||
|
msgstr "Minnisnotkun"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:424
|
||||||
|
msgid "Memory usage of docker containers"
|
||||||
|
msgstr "Minnisnotkun docker kerfa"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:153
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "Nafn"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
|
msgid "Net"
|
||||||
|
msgstr "Net"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:465
|
||||||
|
msgid "Network traffic of docker containers"
|
||||||
|
msgstr "Net traffík docker kerfa"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:450
|
||||||
|
msgid "Network traffic of public interfaces"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:50
|
||||||
|
msgid "No results found."
|
||||||
|
msgstr "Engar niðurstöður fundust."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
|
msgid "No systems found."
|
||||||
|
msgstr "Engin kerfi fundust."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:111
|
||||||
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
|
msgid "Notifications"
|
||||||
|
msgstr "Tilkynningar"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:299
|
||||||
|
msgid "OAuth 2 / OIDC support"
|
||||||
|
msgstr "OAuth 2 / OIDC stuðningur"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:61
|
||||||
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
|
msgid "Open menu"
|
||||||
|
msgstr "Opna valmynd"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:248
|
||||||
|
msgid "Or continue with"
|
||||||
|
msgstr "Eða halda áfram með"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:109
|
||||||
|
msgid "Overwrite existing alerts"
|
||||||
|
msgstr "Yfirskrifa núverandi tilkynningu"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:85
|
||||||
|
msgid "Page"
|
||||||
|
msgstr "Síða"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:72
|
||||||
|
msgid "Pages / Settings"
|
||||||
|
msgstr "Síða / Stillingar"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:192
|
||||||
|
#: src/components/login/auth-form.tsx:197
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "Lykilorð"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:20
|
||||||
|
msgid "Password must be at least 8 characters."
|
||||||
|
msgstr "Lykilorðið verður að vera minnst 8 stafir."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
|
msgid "Password reset request received"
|
||||||
|
msgstr "Beiðni um að endurstilla lykilorð móttekin"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
|
msgid "Pause"
|
||||||
|
msgstr "Pása"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:25
|
||||||
|
msgid "Please check logs for more details."
|
||||||
|
msgstr "Skoðaðu logga til að sjá meiri upplýsingar."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:40
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
|
msgid "Please check your credentials and try again"
|
||||||
|
msgstr "Vinsamlegast farðu yfir upplýsingarnar þínar og reyndu aftur"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:36
|
||||||
|
msgid "Please create an admin account"
|
||||||
|
msgstr "Vinsamlegast búðu til admin aðgang"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:137
|
||||||
|
msgid "Please enable pop-ups for this site"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:40
|
||||||
|
msgid "Please log in again"
|
||||||
|
msgstr "Vinsamlegast skráðu þið inn aftur"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:307
|
||||||
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
|
msgstr "Vinsamlegast skoðaðu <0>skjölin</0> fyrir leiðbeiningar."
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:40
|
||||||
|
msgid "Please sign in to your account"
|
||||||
|
msgstr "Vinsamlegast skráðu þig inn á aðganginn þinn"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:169
|
||||||
|
msgid "Port"
|
||||||
|
msgstr "Port"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:414
|
||||||
|
#: src/components/routes/system.tsx:530
|
||||||
|
msgid "Precise utilization at the recorded time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:58
|
||||||
|
msgid "Preferred Language"
|
||||||
|
msgstr "Valið tungumál"
|
||||||
|
|
||||||
|
#. Use 'Key' if your language requires many more characters
|
||||||
|
#: src/components/add-system.tsx:180
|
||||||
|
msgid "Public Key"
|
||||||
|
msgstr "Dreifilykill"
|
||||||
|
|
||||||
|
#. Disk read
|
||||||
|
#: src/components/charts/area-chart.tsx:60
|
||||||
|
#: src/components/charts/area-chart.tsx:70
|
||||||
|
msgid "Read"
|
||||||
|
msgstr "Lesa"
|
||||||
|
|
||||||
|
#. Network bytes received (download)
|
||||||
|
#: src/components/charts/area-chart.tsx:65
|
||||||
|
msgid "Received"
|
||||||
|
msgstr "Móttekið"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:76
|
||||||
|
msgid "Reset Password"
|
||||||
|
msgstr "Endurstilla lykilorð"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
|
msgid "Resume"
|
||||||
|
msgstr "Halda áfram"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:106
|
||||||
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Vista stillingar"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
|
msgid "Search"
|
||||||
|
msgstr "Leita"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:47
|
||||||
|
msgid "Search for systems or settings..."
|
||||||
|
msgstr "Leita að kerfum eða stillingum..."
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:71
|
||||||
|
msgid "See <0>notification settings</0> to configure how you receive alerts."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Network bytes sent (upload)
|
||||||
|
#: src/components/charts/area-chart.tsx:64
|
||||||
|
msgid "Sent"
|
||||||
|
msgstr "Sent"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:100
|
||||||
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:96
|
||||||
|
#: src/components/command-palette.tsx:99
|
||||||
|
#: src/components/command-palette.tsx:114
|
||||||
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Stillingar"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:33
|
||||||
|
msgid "Settings saved"
|
||||||
|
msgstr "Stillingar vistaðar"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:236
|
||||||
|
msgid "Sign in"
|
||||||
|
msgstr "Innskrá"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:186
|
||||||
|
msgid "SMTP settings"
|
||||||
|
msgstr "SMTP stillingar"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
|
msgid "Sort By"
|
||||||
|
msgstr "Raða eftir"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:301
|
||||||
|
msgid "Status"
|
||||||
|
msgstr "Staða"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:480
|
||||||
|
msgid "Swap space used by the system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:479
|
||||||
|
msgid "Swap Usage"
|
||||||
|
msgstr "Skipti minni"
|
||||||
|
|
||||||
|
#. System theme
|
||||||
|
#: src/components/mode-toggle.tsx:26
|
||||||
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
|
msgid "System"
|
||||||
|
msgstr "Kerfi"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:78
|
||||||
|
msgid "Systems"
|
||||||
|
msgstr "Kerfi"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:55
|
||||||
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
|
msgid "Table"
|
||||||
|
msgstr "Tafla"
|
||||||
|
|
||||||
|
#. Temperature label in systems table
|
||||||
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
|
msgid "Temperature"
|
||||||
|
msgstr "Hitastig"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:492
|
||||||
|
msgid "Temperatures of system sensors"
|
||||||
|
msgstr "Hitastig kerfa skynjara"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
|
msgid "Test <0>URL</0>"
|
||||||
|
msgstr "Prufa <0>URL</0>"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
|
msgid "Test notification sent"
|
||||||
|
msgstr "Prufu tilkynning send"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:145
|
||||||
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:136
|
||||||
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:98
|
||||||
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
|
msgstr "Skráðu þig þá inní bakendann og endurstilltu lykilorðið þitt inni í notenda töflunni."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
|
msgstr "Þessi aðgerð er óafturkvæmanleg. Þetta mun eyða gögnum fyrir {name} varanlega úr gagnagrunninum."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:571
|
||||||
|
msgid "Throughput of {extraFsName}"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:439
|
||||||
|
msgid "Throughput of root filesystem"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
|
msgid "To email(s)"
|
||||||
|
msgstr "Til tölvupósta"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:366
|
||||||
|
#: src/components/routes/system.tsx:379
|
||||||
|
msgid "Toggle grid"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/mode-toggle.tsx:33
|
||||||
|
msgid "Toggle theme"
|
||||||
|
msgstr "Velja þema"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:336
|
||||||
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
|
msgstr "Virkjast þegar einhver skynjari fer yfir þröskuld"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:329
|
||||||
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
|
msgstr "Virkjast þegar samanlagt sent/móttekið fer yfir þröskuld"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:311
|
||||||
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
|
msgstr "Virkjast þegar örgjörva notkun fer yfir þröskuld"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:317
|
||||||
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
|
msgstr "Virkjast þegar minnisnotkun fer yfir þröskuld"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:304
|
||||||
|
msgid "Triggers when status switches between up and down"
|
||||||
|
msgstr "Virkjast þegar staða breytist milli virkur og óvirkur"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:323
|
||||||
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
|
msgstr "Virkjast þegar diska notkun fer yfir þröskuld"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
|
msgstr "Uppfærist í rauntíma. Veldu kerfi til að skoða upplýsingar."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:263
|
||||||
|
msgid "Uptime"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:73
|
||||||
|
#: src/components/routes/system.tsx:521
|
||||||
|
#: src/components/routes/system.tsx:558
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:431
|
||||||
|
msgid "Usage of root partition"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:73
|
||||||
|
#: src/components/charts/mem-chart.tsx:65
|
||||||
|
#: src/components/charts/swap-chart.tsx:56
|
||||||
|
msgid "Used"
|
||||||
|
msgstr "Notað"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:143
|
||||||
|
#: src/components/navbar.tsx:70
|
||||||
|
msgid "Users"
|
||||||
|
msgstr "Notendur"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
|
msgid "View"
|
||||||
|
msgstr "Skoða"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
|
msgid "Visible Fields"
|
||||||
|
msgstr "Sjáanlegir reitir"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:663
|
||||||
|
msgid "Waiting for enough records to display"
|
||||||
|
msgstr "Bíður eftir nægum upplýsingum til að sýna"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:48
|
||||||
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
|
msgid "Webhook / Push notifications"
|
||||||
|
msgstr "Webhook / Tilkynningar"
|
||||||
|
|
||||||
|
#. Disk write
|
||||||
|
#: src/components/charts/area-chart.tsx:59
|
||||||
|
#: src/components/charts/area-chart.tsx:69
|
||||||
|
msgid "Write"
|
||||||
|
msgstr "Skrifa"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:61
|
||||||
|
msgid "YAML Config"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:45
|
||||||
|
msgid "YAML Configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:34
|
||||||
|
msgid "Your user settings have been updated."
|
||||||
|
msgstr "Notenda stillingar vistaðar."
|
||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: it\n"
|
"Language: it\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Italian\n"
|
"Language-Team: Italian\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# giorno} other {# giorni}}"
|
msgstr "{0, plural, one {# giorno} other {# giorni}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# ora} other {# ore}}"
|
msgstr "{hours, plural, one {# ora} other {# ore}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 ora"
|
msgstr "1 ora"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 settimana"
|
msgstr "1 settimana"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 ore"
|
msgstr "12 ore"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 ore"
|
msgstr "24 ore"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 giorni"
|
msgstr "30 giorni"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Azioni"
|
msgstr "Azioni"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "Avvisi Attivi"
|
msgstr "Avvisi Attivi"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "Aggiungi <0>Sistema</0>"
|
msgstr "Aggiungi <0>Sistema</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "Aggiungi Nuovo Sistema"
|
msgstr "Aggiungi Nuovo Sistema"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "Aggiungi sistema"
|
msgstr "Aggiungi sistema"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "Aggiungi URL"
|
msgstr "Aggiungi URL"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "Aggiungi URL"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "Regola le opzioni di visualizzazione per i grafici."
|
msgstr "Regola le opzioni di visualizzazione per i grafici."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Amministratore"
|
msgstr "Amministratore"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "Agente"
|
msgstr "Agente"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "Avvisi"
|
msgstr "Avvisi"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "Tutti i Sistemi"
|
msgstr "Tutti i Sistemi"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "Sei sicuro di voler eliminare {name}?"
|
msgstr "Sei sicuro di voler eliminare {name}?"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "Sei sicuro di voler eliminare {name}?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "La copia automatica richiede un contesto sicuro."
|
msgstr "La copia automatica richiede un contesto sicuro."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Media"
|
msgstr "Media"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "Utilizzo medio della CPU dei container"
|
msgstr "Utilizzo medio della CPU dei container"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "Utilizzo medio della CPU dei container"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "La media supera <0>{value}{0}</0>"
|
msgstr "La media supera <0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr ""
|
msgstr "Consumo energetico medio delle GPU"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "Utilizzo medio della CPU a livello di sistema"
|
msgstr "Utilizzo medio della CPU a livello di sistema"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr ""
|
msgstr "Utilizzo medio di {0}"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "Backup"
|
msgstr "Backup"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "Larghezza di banda"
|
msgstr "Larghezza di banda"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel supporta OpenID Connect e molti provider di autenticazione OAuth2."
|
msgstr "Beszel supporta OpenID Connect e molti provider di autenticazione OAuth2."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel utilizza <0>Shoutrrr</0> per integrarsi con i servizi di notifica popolari."
|
msgstr "Beszel utilizza <0>Shoutrrr</0> per integrarsi con i servizi di notifica popolari."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "Binario"
|
msgstr "Binario"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "Binario"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "Cache / Buffer"
|
msgstr "Cache / Buffer"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Annulla"
|
msgstr "Annulla"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "Controlla {email} per un link di reset."
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "Controlla i log per maggiori dettagli."
|
msgstr "Controlla i log per maggiori dettagli."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "Controlla il tuo servizio di notifica"
|
msgstr "Controlla il tuo servizio di notifica"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "Clicca per copiare"
|
msgstr "Clicca per copiare"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "Clicca per copiare"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "Istruzioni da riga di comando"
|
msgstr "Istruzioni da riga di comando"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "Configura come ricevere le notifiche di avviso."
|
msgstr "Configura come ricevere le notifiche di avviso."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "Conferma password"
|
msgstr "Conferma password"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Continua"
|
msgstr "Continua"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "Copiato negli appunti"
|
msgstr "Copiato negli appunti"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Copia"
|
msgstr "Copia"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "Copia host"
|
msgstr "Copia host"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Copia comando Linux"
|
msgstr "Copia comando Linux"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "Copia comando Linux"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "Copia testo"
|
msgstr "Copia testo"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "CPU"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "Utilizzo CPU"
|
msgstr "Utilizzo CPU"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "Crea account"
|
msgstr "Crea account"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "Crea account"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "Scuro"
|
msgstr "Scuro"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Cruscotto"
|
msgstr "Cruscotto"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "Cruscotto"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "Periodo di tempo predefinito"
|
msgstr "Periodo di tempo predefinito"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Elimina"
|
msgstr "Elimina"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "Disco"
|
msgstr "Disco"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "I/O Disco"
|
msgstr "I/O Disco"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "Utilizzo Disco"
|
msgstr "Utilizzo Disco"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "Utilizzo del disco di {extraFsName}"
|
msgstr "Utilizzo del disco di {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Utilizzo CPU Docker"
|
msgstr "Utilizzo CPU Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Utilizzo Memoria Docker"
|
msgstr "Utilizzo Memoria Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "I/O di Rete Docker"
|
msgstr "I/O di Rete Docker"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "Documentazione"
|
msgstr "Documentazione"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Email"
|
msgstr "Email"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "Notifiche email"
|
msgstr "Notifiche email"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "Notifiche email"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "Inserisci l'indirizzo email per reimpostare la password"
|
msgstr "Inserisci l'indirizzo email per reimpostare la password"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "Inserisci l'indirizzo email..."
|
msgstr "Inserisci l'indirizzo email..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Errore"
|
msgstr "Errore"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "Supera {0}{1} negli ultimi {2, plural, one {# minuto} other {# minuti}}"
|
msgstr "Supera {0}{1} negli ultimi {2, plural, one {# minuto} other {# minuti}}"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "Esporta configurazione"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "Esporta la configurazione attuale dei tuoi sistemi."
|
msgstr "Esporta la configurazione attuale dei tuoi sistemi."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "Autenticazione fallita"
|
msgstr "Autenticazione fallita"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "Salvataggio delle impostazioni fallito"
|
msgstr "Salvataggio delle impostazioni fallito"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "Invio della notifica di test fallito"
|
msgstr "Invio della notifica di test fallito"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "Invio della notifica di test fallito"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "Aggiornamento dell'avviso fallito"
|
msgstr "Aggiornamento dell'avviso fallito"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "Filtra..."
|
msgstr "Filtra..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "Filtra..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "Per <0>{min}</0> {min, plural, one {minuto} other {minuti}}"
|
msgstr "Per <0>{min}</0> {min, plural, one {minuto} other {minuti}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "Password dimenticata?"
|
msgstr "Password dimenticata?"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "Password dimenticata?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Generale"
|
msgstr "Generale"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr ""
|
msgstr "Consumo della GPU"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "Griglia"
|
msgstr "Griglia"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "Host / IP"
|
msgstr "Host / IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "Host / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "Se hai perso la password del tuo account amministratore, puoi reimpostarla utilizzando il seguente comando."
|
msgstr "Se hai perso la password del tuo account amministratore, puoi reimpostarla utilizzando il seguente comando."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "Indirizzo email non valido."
|
msgstr "Indirizzo email non valido."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "Kernel"
|
msgstr "Kernel"
|
||||||
|
|
||||||
@@ -399,16 +404,16 @@ msgstr "Kernel"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Lingua"
|
msgstr "Lingua"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr ""
|
msgstr "Aspetto"
|
||||||
|
|
||||||
#. Light theme
|
#. Light theme
|
||||||
#: src/components/mode-toggle.tsx:16
|
#: src/components/mode-toggle.tsx:16
|
||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Chiaro"
|
msgstr "Chiaro"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Disconnetti"
|
msgstr "Disconnetti"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "Disconnetti"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Accedi"
|
msgstr "Accedi"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "Tentativo di accesso fallito"
|
msgstr "Tentativo di accesso fallito"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "Log"
|
msgstr "Log"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "Cerchi invece dove creare avvisi? Clicca sulle icone della campana <0/> nella tabella dei sistemi."
|
msgstr "Cerchi invece dove creare avvisi? Clicca sulle icone della campana <0/> nella tabella dei sistemi."
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "Cerchi invece dove creare avvisi? Clicca sulle icone della campana <0/>
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "Gestisci le preferenze di visualizzazione e notifica."
|
msgstr "Gestisci le preferenze di visualizzazione e notifica."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "Max 1 min"
|
msgstr "Max 1 min"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "Memoria"
|
msgstr "Memoria"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "Utilizzo Memoria"
|
msgstr "Utilizzo Memoria"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Utilizzo della memoria dei container Docker"
|
msgstr "Utilizzo della memoria dei container Docker"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nome"
|
msgstr "Nome"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "Rete"
|
msgstr "Rete"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Traffico di rete dei container Docker"
|
msgstr "Traffico di rete dei container Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "Traffico di rete delle interfacce pubbliche"
|
msgstr "Traffico di rete delle interfacce pubbliche"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "Nessun risultato trovato."
|
msgstr "Nessun risultato trovato."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "Nessun sistema trovato."
|
msgstr "Nessun sistema trovato."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Notifiche"
|
msgstr "Notifiche"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "Supporto OAuth 2 / OIDC"
|
msgstr "Supporto OAuth 2 / OIDC"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "Supporto OAuth 2 / OIDC"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "Ad ogni riavvio, i sistemi nel database verranno aggiornati per corrispondere ai sistemi definiti nel file."
|
msgstr "Ad ogni riavvio, i sistemi nel database verranno aggiornati per corrispondere ai sistemi definiti nel file."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "Apri menu"
|
msgstr "Apri menu"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "Oppure continua con"
|
msgstr "Oppure continua con"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "Oppure continua con"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "Sovrascrivi avvisi esistenti"
|
msgstr "Sovrascrivi avvisi esistenti"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Pagina"
|
msgstr "Pagina"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "Pagine / Impostazioni"
|
msgstr "Pagine / Impostazioni"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Password"
|
msgstr "Password"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "La password deve contenere almeno 8 caratteri."
|
msgstr "La password deve contenere almeno 8 caratteri."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "Richiesta di reimpostazione password ricevuta"
|
msgstr "Richiesta di reimpostazione password ricevuta"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Pausa"
|
msgstr "Pausa"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "Si prega di <0>configurare un server SMTP</0> per garantire la consegna degli avvisi."
|
msgstr "Si prega di <0>configurare un server SMTP</0> per garantire la consegna degli avvisi."
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "Si prega di <0>configurare un server SMTP</0> per garantire la consegna
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "Si prega di controllare i log per maggiori dettagli."
|
msgstr "Si prega di controllare i log per maggiori dettagli."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "Si prega di controllare le credenziali e riprovare"
|
msgstr "Si prega di controllare le credenziali e riprovare"
|
||||||
@@ -545,15 +558,15 @@ msgstr "Si prega di controllare le credenziali e riprovare"
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "Si prega di creare un account amministratore"
|
msgstr "Si prega di creare un account amministratore"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "Si prega di abilitare i pop-up per questo sito"
|
msgstr "Si prega di abilitare i pop-up per questo sito"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "Si prega di accedere nuovamente"
|
msgstr "Si prega di accedere nuovamente"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "Si prega di consultare <0>la documentazione</0> per le istruzioni."
|
msgstr "Si prega di consultare <0>la documentazione</0> per le istruzioni."
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "Si prega di consultare <0>la documentazione</0> per le istruzioni."
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "Si prega di accedere al proprio account"
|
msgstr "Si prega di accedere al proprio account"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Porta"
|
msgstr "Porta"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "Utilizzo preciso al momento registrato"
|
msgstr "Utilizzo preciso al momento registrato"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "Lingua Preferita"
|
msgstr "Lingua Preferita"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Chiave Pub"
|
msgstr "Chiave Pub"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "Ricevuto"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "Reimposta Password"
|
msgstr "Reimposta Password"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "Riprendi"
|
msgstr "Riprendi"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Salva l'indirizzo usando il tasto invio o la virgola. Lascia vuoto per disabilitare le notifiche email."
|
msgstr "Salva l'indirizzo usando il tasto invio o la virgola. Lascia vuoto per disabilitare le notifiche email."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "Salva Impostazioni"
|
msgstr "Salva Impostazioni"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Cerca"
|
msgstr "Cerca"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "Cerca sistemi o impostazioni..."
|
msgstr "Cerca sistemi o impostazioni..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "Inviato"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "Imposta l'intervallo di tempo predefinito per i grafici quando viene visualizzato un sistema."
|
msgstr "Imposta l'intervallo di tempo predefinito per i grafici quando viene visualizzato un sistema."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "Impostazioni"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "Impostazioni salvate"
|
msgstr "Impostazioni salvate"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Accedi"
|
msgstr "Accedi"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "Impostazioni SMTP"
|
msgstr "Impostazioni SMTP"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "Ordina per"
|
msgstr "Ordina per"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Stato"
|
msgstr "Stato"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "Spazio di swap utilizzato dal sistema"
|
msgstr "Spazio di swap utilizzato dal sistema"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "Utilizzo Swap"
|
msgstr "Utilizzo Swap"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Sistema"
|
msgstr "Sistema"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "Sistemi"
|
msgstr "Sistemi"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "Sistemi"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "I sistemi possono essere gestiti in un file <0>config.yml</0> all'interno della tua directory dati."
|
msgstr "I sistemi possono essere gestiti in un file <0>config.yml</0> all'interno della tua directory dati."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "Tabella"
|
msgstr "Tabella"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "Temperatura"
|
msgstr "Temperatura"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "Temperature dei sensori di sistema"
|
msgstr "Temperature dei sensori di sistema"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "Test <0>URL</0>"
|
msgstr "Test <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Notifica di test inviata"
|
msgstr "Notifica di test inviata"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "L'agente deve essere in esecuzione sul sistema per connettersi. Copia il comando di installazione per l'agente qui sotto."
|
msgstr "L'agente deve essere in esecuzione sul sistema per connettersi. Copia il comando di installazione per l'agente qui sotto."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "L'agente deve essere in esecuzione sul sistema per connettersi. Copia il<0>docker-compose.yml</0> per l'agente qui sotto."
|
msgstr "L'agente deve essere in esecuzione sul sistema per connettersi. Copia il<0>docker-compose.yml</0> per l'agente qui sotto."
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "L'agente deve essere in esecuzione sul sistema per connettersi. Copia il
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "Quindi accedi al backend e reimposta la password del tuo account utente nella tabella degli utenti."
|
msgstr "Quindi accedi al backend e reimposta la password del tuo account utente nella tabella degli utenti."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "Questa azione non può essere annullata. Questo eliminerà permanentemente tutti i record attuali per {name} dal database."
|
msgstr "Questa azione non può essere annullata. Questo eliminerà permanentemente tutti i record attuali per {name} dal database."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "Throughput di {extraFsName}"
|
msgstr "Throughput di {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "Throughput del filesystem root"
|
msgstr "Throughput del filesystem root"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "A email(s)"
|
msgstr "A email(s)"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "Attiva/disattiva griglia"
|
msgstr "Attiva/disattiva griglia"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "Attiva/disattiva griglia"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "Attiva/disattiva tema"
|
msgstr "Attiva/disattiva tema"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "Attiva quando un sensore supera una soglia"
|
msgstr "Attiva quando un sensore supera una soglia"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "Attiva quando il combinato up/down supera una soglia"
|
msgstr "Attiva quando il combinato up/down supera una soglia"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "Attiva quando l'utilizzo della CPU supera una soglia"
|
msgstr "Attiva quando l'utilizzo della CPU supera una soglia"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "Attiva quando l'utilizzo della memoria supera una soglia"
|
msgstr "Attiva quando l'utilizzo della memoria supera una soglia"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "Attiva quando lo stato passa tra up e down"
|
msgstr "Attiva quando lo stato passa tra up e down"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "Attiva quando l'utilizzo di un disco supera una soglia"
|
msgstr "Attiva quando l'utilizzo di un disco supera una soglia"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "Aggiornato in tempo reale. Clicca su un sistema per visualizzare le informazioni."
|
msgstr "Aggiornato in tempo reale. Clicca su un sistema per visualizzare le informazioni."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "Tempo di attività"
|
msgstr "Tempo di attività"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "Utilizzo"
|
msgstr "Utilizzo"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "Utilizzo della partizione root"
|
msgstr "Utilizzo della partizione root"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "Utilizzo della partizione root"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "Utilizzato"
|
msgstr "Utilizzato"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Utenti"
|
msgstr "Utenti"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Vista"
|
msgstr "Vista"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "Colonne visibili"
|
msgstr "Colonne visibili"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "In attesa di abbastanza record da visualizzare"
|
msgstr "In attesa di abbastanza record da visualizzare"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "In attesa di abbastanza record da visualizzare"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "Vuoi aiutarci a migliorare ulteriormente le nostre traduzioni? Dai un'occhiata a <0>Crowdin</0> per maggiori dettagli."
|
msgstr "Vuoi aiutarci a migliorare ulteriormente le nostre traduzioni? Dai un'occhiata a <0>Crowdin</0> per maggiori dettagli."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Notifiche Webhook / Push"
|
msgstr "Notifiche Webhook / Push"
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: ja\n"
|
"Language: ja\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-23 04:50\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Japanese\n"
|
"Language-Team: Japanese\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# 日} other {# 日}}"
|
msgstr "{0, plural, one {# 日} other {# 日}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# 時間} other {# 時間}}"
|
msgstr "{hours, plural, one {# 時間} other {# 時間}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1時間"
|
msgstr "1時間"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1週間"
|
msgstr "1週間"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12時間"
|
msgstr "12時間"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24時間"
|
msgstr "24時間"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30日間"
|
msgstr "30日間"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "アクション"
|
msgstr "アクション"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "アクティブなアラート"
|
msgstr "アクティブなアラート"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "<0>システム</0>を追加"
|
msgstr "<0>システム</0>を追加"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "新しいシステムを追加"
|
msgstr "新しいシステムを追加"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "システムを追加"
|
msgstr "システムを追加"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "URLを追加"
|
msgstr "URLを追加"
|
||||||
|
|
||||||
@@ -79,17 +78,17 @@ msgstr "URLを追加"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "チャートの表示オプションを調整します。"
|
msgstr "チャートの表示オプションを調整します。"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "管理者"
|
msgstr "管理者"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "代理"
|
msgstr "エージェント"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:32
|
#: src/components/alerts/alert-button.tsx:32
|
||||||
#: src/components/alerts/alert-button.tsx:68
|
#: src/components/alerts/alert-button.tsx:68
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "アラート"
|
msgstr "アラート"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "すべてのシステム"
|
msgstr "すべてのシステム"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "{name}を削除してもよろしいですか?"
|
msgstr "{name}を削除してもよろしいですか?"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "{name}を削除してもよろしいですか?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "自動コピーには安全なコンテキストが必要です。"
|
msgstr "自動コピーには安全なコンテキストが必要です。"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "平均"
|
msgstr "平均"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "コンテナの平均CPU使用率"
|
msgstr "コンテナの平均CPU使用率"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "コンテナの平均CPU使用率"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "平均が<0>{value}{0}</0>を超えています"
|
msgstr "平均が<0>{value}{0}</0>を超えています"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr ""
|
msgstr "GPUの平均消費電力"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "システム全体の平均CPU使用率"
|
msgstr "システム全体の平均CPU使用率"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr ""
|
msgstr "{0}の平均使用率"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "バックアップ"
|
msgstr "バックアップ"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "帯域幅"
|
msgstr "帯域幅"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "BeszelはOpenID Connectと多くのOAuth2認証プロバイダーをサポートしています。"
|
msgstr "BeszelはOpenID Connectと多くのOAuth2認証プロバイダーをサポートしています。"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszelは<0>Shoutrrr</0>を使用して、人気のある通知サービスと統合します。"
|
msgstr "Beszelは<0>Shoutrrr</0>を使用して、人気のある通知サービスと統合します。"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "バイナリ"
|
msgstr "バイナリ"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "バイナリ"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "キャッシュ / バッファ"
|
msgstr "キャッシュ / バッファ"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "キャンセル"
|
msgstr "キャンセル"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "{email}を確認してリセットリンクを探してください。"
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "詳細についてはログを確認してください。"
|
msgstr "詳細についてはログを確認してください。"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "通知サービスを確認してください"
|
msgstr "通知サービスを確認してください"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "クリックしてコピー"
|
msgstr "クリックしてコピー"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "クリックしてコピー"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "コマンドラインの指示"
|
msgstr "コマンドラインの指示"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "アラート通知の受信方法を設定します。"
|
msgstr "アラート通知の受信方法を設定します。"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "パスワードを確認"
|
msgstr "パスワードを確認"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "続行"
|
msgstr "続行"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "クリップボードにコピーされました"
|
msgstr "クリップボードにコピーされました"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "コピー"
|
msgstr "コピー"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "ホストをコピー"
|
msgstr "ホストをコピー"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Linuxコマンドをコピー"
|
msgstr "Linuxコマンドをコピー"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "Linuxコマンドをコピー"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "テキストをコピー"
|
msgstr "テキストをコピー"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "CPU"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "CPU使用率"
|
msgstr "CPU使用率"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "アカウントを作成"
|
msgstr "アカウントを作成"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "アカウントを作成"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "ダーク"
|
msgstr "ダーク"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "ダッシュボード"
|
msgstr "ダッシュボード"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "ダッシュボード"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "デフォルトの期間"
|
msgstr "デフォルトの期間"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "削除"
|
msgstr "削除"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "ディスク"
|
msgstr "ディスク"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "ディスクI/O"
|
msgstr "ディスクI/O"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "ディスク使用率"
|
msgstr "ディスク使用率"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "{extraFsName}のディスク使用率"
|
msgstr "{extraFsName}のディスク使用率"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Docker CPU使用率"
|
msgstr "Docker CPU使用率"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Dockerメモリ使用率"
|
msgstr "Dockerメモリ使用率"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "DockerネットワークI/O"
|
msgstr "DockerネットワークI/O"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "ドキュメント"
|
msgstr "ドキュメント"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "編集"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "メール"
|
msgstr "メール"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "メール通知"
|
msgstr "メール通知"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "メール通知"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "パスワードをリセットするためにメールアドレスを入力してください"
|
msgstr "パスワードをリセットするためにメールアドレスを入力してください"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "メールアドレスを入力..."
|
msgstr "メールアドレスを入力..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "エラー"
|
msgstr "エラー"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "過去{2, plural, one {# 分} other {# 分}}で{0}{1}を超えています"
|
msgstr "過去{2, plural, one {# 分} other {# 分}}で{0}{1}を超えています"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "設定をエクスポート"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "現在のシステム設定をエクスポートします。"
|
msgstr "現在のシステム設定をエクスポートします。"
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "認証に失敗しました"
|
msgstr "認証に失敗しました"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "設定の保存に失敗しました"
|
msgstr "設定の保存に失敗しました"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "テスト通知の送信に失敗しました"
|
msgstr "テスト通知の送信に失敗しました"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "テスト通知の送信に失敗しました"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "アラートの更新に失敗しました"
|
msgstr "アラートの更新に失敗しました"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "フィルター..."
|
msgstr "フィルター..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "フィルター..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "<0>{min}</0> {min, plural, one {分} other {分}}の間"
|
msgstr "<0>{min}</0> {min, plural, one {分} other {分}}の間"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "パスワードをお忘れですか?"
|
msgstr "パスワードをお忘れですか?"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "パスワードをお忘れですか?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "一般"
|
msgstr "一般"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr ""
|
msgstr "GPUの消費電力"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "グリッド"
|
msgstr "グリッド"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "ホスト / IP"
|
msgstr "ホスト / IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "ホスト / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "管理者アカウントのパスワードを忘れた場合は、次のコマンドを使用してリセットできます。"
|
msgstr "管理者アカウントのパスワードを忘れた場合は、次のコマンドを使用してリセットできます。"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "無効なメールアドレスです。"
|
msgstr "無効なメールアドレスです。"
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "カーネル"
|
msgstr "カーネル"
|
||||||
|
|
||||||
@@ -399,7 +404,7 @@ msgstr "カーネル"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "言語"
|
msgstr "言語"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "レイアウト"
|
msgstr "レイアウト"
|
||||||
|
|
||||||
@@ -408,7 +413,7 @@ msgstr "レイアウト"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "ライト"
|
msgstr "ライト"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "ログアウト"
|
msgstr "ログアウト"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "ログアウト"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "ログイン"
|
msgstr "ログイン"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "ログイン試行に失敗しました"
|
msgstr "ログイン試行に失敗しました"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "ログ"
|
msgstr "ログ"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "アラートを作成する場所を探していますか?システムテーブルのベル<0/>アイコンをクリックしてください。"
|
msgstr "アラートを作成する場所を探していますか?システムテーブルのベル<0/>アイコンをクリックしてください。"
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "アラートを作成する場所を探していますか?システム
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "表示と通知の設定を管理します。"
|
msgstr "表示と通知の設定を管理します。"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "最大1分"
|
msgstr "最大1分"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "メモリ"
|
msgstr "メモリ"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "メモリ使用率"
|
msgstr "メモリ使用率"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Dockerコンテナのメモリ使用率"
|
msgstr "Dockerコンテナのメモリ使用率"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "名前"
|
msgstr "名前"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "帯域"
|
msgstr "帯域"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Dockerコンテナのネットワークトラフィック"
|
msgstr "Dockerコンテナのネットワークトラフィック"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "パブリックインターフェースのネットワークトラフィック"
|
msgstr "パブリックインターフェースのネットワークトラフィック"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "結果が見つかりませんでした。"
|
msgstr "結果が見つかりませんでした。"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "システムが見つかりませんでした。"
|
msgstr "システムが見つかりませんでした。"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "通知"
|
msgstr "通知"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "OAuth 2 / OIDCサポート"
|
msgstr "OAuth 2 / OIDCサポート"
|
||||||
|
|
||||||
@@ -491,44 +500,48 @@ msgstr "OAuth 2 / OIDCサポート"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "再起動のたびに、データベース内のシステムはファイルに定義されたシステムに一致するように更新されます。"
|
msgstr "再起動のたびに、データベース内のシステムはファイルに定義されたシステムに一致するように更新されます。"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "メニューを開く"
|
msgstr "メニューを開く"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "または続行"
|
msgstr "または、以下の方法でログイン"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:109
|
#: src/components/alerts/alert-button.tsx:109
|
||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "既存のアラートを上書き"
|
msgstr "既存のアラートを上書き"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "ページ"
|
msgstr "ページ"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "ページ / 設定"
|
msgstr "ページ / 設定"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "パスワード"
|
msgstr "パスワード"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "パスワードは8文字以上である必要があります。"
|
msgstr "パスワードは8文字以上である必要があります。"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr "パスワードは72バイト未満でなければなりません。"
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "パスワードリセットのリクエストを受け取りました"
|
msgstr "パスワードリセットのリクエストを受け取りました"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "一時停止"
|
msgstr "一時停止"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "アラートが配信されるように<0>SMTPサーバーを設定</0>してください。"
|
msgstr "アラートが配信されるように<0>SMTPサーバーを設定</0>してください。"
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "アラートが配信されるように<0>SMTPサーバーを設定</0>
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "詳細についてはログを確認してください。"
|
msgstr "詳細についてはログを確認してください。"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "資格情報を確認して再試行してください"
|
msgstr "資格情報を確認して再試行してください"
|
||||||
@@ -545,15 +558,15 @@ msgstr "資格情報を確認して再試行してください"
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "管理者アカウントを作成してください"
|
msgstr "管理者アカウントを作成してください"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "このサイトのポップアップを有効にしてください"
|
msgstr "このサイトのポップアップを有効にしてください"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "再度ログインしてください"
|
msgstr "再度ログインしてください"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "手順については<0>ドキュメント</0>を参照してください。"
|
msgstr "手順については<0>ドキュメント</0>を参照してください。"
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "手順については<0>ドキュメント</0>を参照してくださ
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "アカウントにサインインしてください"
|
msgstr "アカウントにサインインしてください"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "ポート"
|
msgstr "ポート"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "記録された時点での正確な利用"
|
msgstr "記録された時点での正確な利用"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "優先言語"
|
msgstr "優先言語"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "公開鍵"
|
msgstr "公開鍵"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "受信"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "パスワードをリセット"
|
msgstr "パスワードをリセット"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "再開"
|
msgstr "再開"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Enterキーまたはカンマを使用してアドレスを保存します。空白のままにするとメール通知が無効になります。"
|
msgstr "Enterキーまたはカンマを使用してアドレスを保存します。空白のままにするとメール通知が無効になります。"
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "設定を保存"
|
msgstr "設定を保存"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr "システムを保存"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "検索"
|
msgstr "検索"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "システムまたは設定を検索..."
|
msgstr "システムまたは設定を検索..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "送信"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "システムを表示する際のチャートのデフォルトの時間範囲を設定します。"
|
msgstr "システムを表示する際のチャートのデフォルトの時間範囲を設定します。"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "設定"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "設定が保存されました"
|
msgstr "設定が保存されました"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "サインイン"
|
msgstr "サインイン"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "SMTP設定"
|
msgstr "SMTP設定"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "並び替え基準"
|
msgstr "並び替え基準"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "ステータス"
|
msgstr "ステータス"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "システムが使用するスワップ領域"
|
msgstr "システムが使用するスワップ領域"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "スワップ使用量"
|
msgstr "スワップ使用量"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "システム"
|
msgstr "システム"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "システム"
|
msgstr "システム"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "システム"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "システムはデータディレクトリ内の<0>config.yml</0>ファイルで管理できます。"
|
msgstr "システムはデータディレクトリ内の<0>config.yml</0>ファイルで管理できます。"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "テーブル"
|
msgstr "テーブル"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr "温度"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "温度"
|
msgstr "温度"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "システムセンサーの温度"
|
msgstr "システムセンサーの温度"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "テスト<0>URL</0>"
|
msgstr "テスト<0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "テスト通知が送信されました"
|
msgstr "テスト通知が送信されました"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "接続するにはエージェントがシステム上で実行されている必要があります。以下のエージェントのインストールコマンドをコピーしてください。"
|
msgstr "接続するにはエージェントがシステム上で実行されている必要があります。以下のエージェントのインストールコマンドをコピーしてください。"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "接続するにはエージェントがシステム上で実行されている必要があります。以下のエージェント用<0>docker-compose.yml</0>をコピーしてください。"
|
msgstr "接続するにはエージェントがシステム上で実行されている必要があります。以下のエージェント用<0>docker-compose.yml</0>をコピーしてください。"
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "接続するにはエージェントがシステム上で実行されて
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "その後、バックエンドにログインして、ユーザーテーブルでユーザーアカウントのパスワードをリセットしてください。"
|
msgstr "その後、バックエンドにログインして、ユーザーテーブルでユーザーアカウントのパスワードをリセットしてください。"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "この操作は元に戻せません。これにより、データベースから{name}のすべての現在のレコードが永久に削除されます。"
|
msgstr "この操作は元に戻せません。これにより、データベースから{name}のすべての現在のレコードが永久に削除されます。"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "{extraFsName}のスループット"
|
msgstr "{extraFsName}のスループット"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "ルートファイルシステムのスループット"
|
msgstr "ルートファイルシステムのスループット"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "メール宛"
|
msgstr "宛先メールアドレス"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "グリッドを切り替え"
|
msgstr "グリッドを切り替え"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "グリッドを切り替え"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "テーマを切り替え"
|
msgstr "テーマを切り替え"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "センサーがしきい値を超えたときにトリガーされます"
|
msgstr "センサーがしきい値を超えたときにトリガーされます"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "上り/下りの合計がしきい値を超えたときにトリガーされます"
|
msgstr "上り/下りの合計がしきい値を超えたときにトリガーされます"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "CPU使用率がしきい値を超えたときにトリガーされます"
|
msgstr "CPU使用率がしきい値を超えたときにトリガーされます"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "メモリ使用率がしきい値を超えたときにトリガーされます"
|
msgstr "メモリ使用率がしきい値を超えたときにトリガーされます"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "ステータスが上から下に切り替わるときにトリガーされます"
|
msgstr "ステータスが上から下に切り替わるときにトリガーされます"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "ディスクの使用量がしきい値を超えたときにトリガーされます"
|
msgstr "ディスクの使用量がしきい値を超えたときにトリガーされます"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "リアルタイムで更新されます。システムをクリックして情報を表示します。"
|
msgstr "リアルタイムで更新されます。システムをクリックして情報を表示します。"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "稼働時間"
|
msgstr "稼働時間"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "使用量"
|
msgstr "使用量"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "ルートパーティションの使用量"
|
msgstr "ルートパーティションの使用量"
|
||||||
|
|
||||||
@@ -785,22 +807,22 @@ msgstr "ルートパーティションの使用量"
|
|||||||
#: src/components/charts/mem-chart.tsx:65
|
#: src/components/charts/mem-chart.tsx:65
|
||||||
#: src/components/charts/swap-chart.tsx:56
|
#: src/components/charts/swap-chart.tsx:56
|
||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "使用済み"
|
msgstr "使用中"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "ユーザー"
|
msgstr "ユーザー"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "表示"
|
msgstr "表示"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "表示列"
|
msgstr "表示列"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "表示するのに十分なレコードを待っています"
|
msgstr "表示するのに十分なレコードを待っています"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "表示するのに十分なレコードを待っています"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "翻訳をさらに良くするためにご協力いただけますか?詳細については<0>Crowdin</0>をご覧ください。"
|
msgstr "翻訳をさらに良くするためにご協力いただけますか?詳細については<0>Crowdin</0>をご覧ください。"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Webhook / プッシュ通知"
|
msgstr "Webhook / プッシュ通知"
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: ko\n"
|
"Language: ko\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-23 04:50\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Korean\n"
|
"Language-Team: Korean\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
@@ -18,90 +18,89 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# 일} other {# 일}}"
|
msgstr "{0, plural, one {# 일} other {# 일}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# 시간} other {# 시간}}"
|
msgstr "{hours, plural, one {# 시간} other {# 시간}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1시간"
|
msgstr "1시간"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1주"
|
msgstr "1주"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12시간"
|
msgstr "12시간"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24시간"
|
msgstr "24시간"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30일"
|
msgstr "30일"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "작업"
|
msgstr "작업"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "활성 경고"
|
msgstr "활성화된 알림들"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "<0>시스템</0> 추가"
|
msgstr "<0>시스템</0> 추가"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "새 시스템 추가"
|
msgstr "새 시스템 추가"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "시스템 추가"
|
msgstr "시스템 추가"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "URL 추가"
|
msgstr "URL 추가"
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:81
|
#: src/components/routes/settings/general.tsx:81
|
||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "차트의 표시 옵션 조정."
|
msgstr "차트 표시 옵션 변경."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "관리자"
|
msgstr "관리자"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "에이젠"
|
msgstr "에이전트"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:32
|
#: src/components/alerts/alert-button.tsx:32
|
||||||
#: src/components/alerts/alert-button.tsx:68
|
#: src/components/alerts/alert-button.tsx:68
|
||||||
msgid "Alerts"
|
msgid "Alerts"
|
||||||
msgstr "경고"
|
msgstr "알림"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "모든 시스템"
|
msgstr "모든 시스템"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "{name}을(를) 삭제하시겠습니까?"
|
msgstr "{name}을(를) 삭제하시겠습니까?"
|
||||||
|
|
||||||
@@ -109,57 +108,57 @@ msgstr "{name}을(를) 삭제하시겠습니까?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "자동 복사는 안전한 컨텍스트가 필요합니다."
|
msgstr "자동 복사는 안전한 컨텍스트가 필요합니다."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "평균"
|
msgstr "평균"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "컨테이너의 평균 CPU 사용량"
|
msgstr "컨테이너의 평균 CPU 사용량"
|
||||||
|
|
||||||
#: src/components/alerts/alerts-system.tsx:206
|
#: src/components/alerts/alerts-system.tsx:206
|
||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "평균이 <0>{value}{0}</0>을 초과합니다"
|
msgstr "평균이 <0>{value}{0}</0>을(를) 초과합니다"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr ""
|
msgstr "GPU들의 평균 전원 사용량"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "시스템 전체의 평균 CPU 사용량"
|
msgstr "시스템 전체의 평균 CPU 사용량"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr ""
|
msgstr "평균 {0} 사용량"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "백업"
|
msgstr "백업"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "대역폭"
|
msgstr "대역폭"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel은 OpenID Connect 및 많은 OAuth2 인증 제공자를 지원합니다."
|
msgstr "Beszel은 OpenID Connect 및 많은 OAuth2 인증 제공자를 지원합니다."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel은 <0>Shoutrrr</0>을 사용하여 인기 있는 알림 서비스와 통합합니다."
|
msgstr "Beszel은 여러 인기 있는 알림 서비스와 연동하기 위해 <0>Shoutrrr</0>을 이용합니다."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "이진"
|
msgstr "실행 파일"
|
||||||
|
|
||||||
#: src/components/charts/mem-chart.tsx:89
|
#: src/components/charts/mem-chart.tsx:89
|
||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "캐시 / 버퍼"
|
msgstr "캐시 / 버퍼"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "취소"
|
msgstr "취소"
|
||||||
|
|
||||||
@@ -183,124 +182,130 @@ msgstr "{email}에서 재설정 링크를 확인하세요."
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "자세한 내용은 로그를 확인하세요."
|
msgstr "자세한 내용은 로그를 확인하세요."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "알림 서비스를 확인하세요."
|
msgstr "알림 서비스를 확인하세요."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "클릭하여 복사"
|
msgstr "클릭하여 복사"
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:83
|
#: src/components/login/forgot-pass-form.tsx:83
|
||||||
#: src/components/login/forgot-pass-form.tsx:89
|
#: src/components/login/forgot-pass-form.tsx:89
|
||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "명령줄 지침"
|
msgstr "명령어 사용 지침"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "경고 알림을 받는 방법을 구성하세요."
|
msgstr "알림을 수신할 방법을 설정하세요."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "비밀번호 확인"
|
msgstr "비밀번호 확인"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "계속"
|
msgstr "계속"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "클립보드에 복사됨"
|
msgstr "클립보드에 복사됨"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "복사"
|
msgstr "복사"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "호스트 복사"
|
msgstr "호스트 복사"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "리눅스 명령 복사"
|
msgstr "리눅스 명령어 복사"
|
||||||
|
|
||||||
#: src/components/copy-to-clipboard.tsx:13
|
#: src/components/copy-to-clipboard.tsx:13
|
||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "텍스트 복사"
|
msgstr "텍스트 복사"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "CPU"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "CPU 사용량"
|
msgstr "CPU 사용량"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "계정 생성"
|
msgstr "계정 생성"
|
||||||
|
|
||||||
#. Dark theme
|
#. Dark theme
|
||||||
#: src/components/mode-toggle.tsx:21
|
#: src/components/mode-toggle.tsx:21
|
||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "어두운"
|
msgstr "어둡게"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "대시보드"
|
msgstr "대시보드"
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:85
|
#: src/components/routes/settings/general.tsx:85
|
||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "기본 시간 기간"
|
msgstr "기본 기간"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "삭제"
|
msgstr "삭제"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "디스크"
|
msgstr "디스크"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "디스크 I/O"
|
msgstr "디스크 I/O"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "디스크 사용량"
|
msgstr "디스크 사용량"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "{extraFsName}의 디스크 사용량"
|
msgstr "{extraFsName}의 디스크 사용량"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "도커 CPU 사용량"
|
msgstr "Docker CPU 사용량"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "도커 메모리 사용량"
|
msgstr "Docker 메모리 사용량"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "도커 네트워크 I/O"
|
msgstr "Docker 네트워크 I/O"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "문서"
|
msgstr "문서"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "이메일"
|
msgstr "이메일"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "이메일 알림"
|
msgstr "이메일 알림"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "이메일 알림"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "비밀번호를 재설정하려면 이메일 주소를 입력하세요"
|
msgstr "비밀번호를 재설정하려면 이메일 주소를 입력하세요"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "이메일 주소 입력..."
|
msgstr "이메일 주소 입력..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "오류"
|
msgstr "오류"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "마지막 {2, plural, one {# 분} other {# 분}} 동안 {0}{1} 초과"
|
msgstr "마지막 {2, plural, one {# 분} other {# 분}} 동안 {0}{1} 초과"
|
||||||
|
|
||||||
@@ -332,27 +337,27 @@ msgstr "구성 내보내기"
|
|||||||
|
|
||||||
#: src/components/routes/settings/config-yaml.tsx:48
|
#: src/components/routes/settings/config-yaml.tsx:48
|
||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "현재 시스템 구성을 내보내기."
|
msgstr "현재 시스템 구성 내보내기"
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "인증 실패"
|
msgstr "인증 실패"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "설정 저장 실패"
|
msgstr "설정 저장 실패"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "테스트 알림 전송 실패"
|
msgstr "테스트 알림 전송 실패"
|
||||||
|
|
||||||
#: src/components/alerts/alerts-system.tsx:24
|
#: src/components/alerts/alerts-system.tsx:24
|
||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "경고 업데이트 실패"
|
msgstr "알림 수정 실패"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "필터..."
|
msgstr "필터..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "필터..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "<0>{min}</0> {min, plural, one {분} other {분}} 동안"
|
msgstr "<0>{min}</0> {min, plural, one {분} other {분}} 동안"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "비밀번호를 잊으셨나요?"
|
msgstr "비밀번호를 잊으셨나요?"
|
||||||
|
|
||||||
@@ -370,28 +375,28 @@ msgstr "비밀번호를 잊으셨나요?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "일반"
|
msgstr "일반"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr ""
|
msgstr "GPU 전원 사용량"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "그리드"
|
msgstr "그리드"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "호스트 / IP"
|
msgstr "호스트 / IP"
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:93
|
#: src/components/login/forgot-pass-form.tsx:93
|
||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "관리자 계정의 비밀번호를 잃어버린 경우, 다음 명령을 사용하여 재설정할 수 있습니다."
|
msgstr "관리자 계정의 비밀번호를 잃어버린 경우, 다음 명령어를 사용하여 재설정할 수 있습니다."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "잘못된 이메일 주소입니다."
|
msgstr "잘못된 이메일 주소입니다."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "커널"
|
msgstr "커널"
|
||||||
|
|
||||||
@@ -399,16 +404,16 @@ msgstr "커널"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "언어"
|
msgstr "언어"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "레이아웃"
|
msgstr "레이아웃"
|
||||||
|
|
||||||
#. Light theme
|
#. Light theme
|
||||||
#: src/components/mode-toggle.tsx:16
|
#: src/components/mode-toggle.tsx:16
|
||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "밝은"
|
msgstr "밝게"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "로그아웃"
|
msgstr "로그아웃"
|
||||||
|
|
||||||
@@ -416,127 +421,135 @@ msgstr "로그아웃"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "로그인"
|
msgstr "로그인"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "로그인 시도 실패"
|
msgstr "로그인 실패"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "로그"
|
msgstr "로그"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "경고를 생성할 위치를 찾고 계신가요? 시스템 테이블의 종 <0/> 아이콘을 클릭하세요."
|
msgstr "알림을 생성하려 하시나요? 시스템 테이블의 종 <0/> 아이콘을 클릭하세요."
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:85
|
#: src/components/routes/settings/layout.tsx:85
|
||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "디스플레이 및 알림 환경설정을 관리하세요."
|
msgstr "디스플레이 및 알림 설정"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "최대 1분"
|
msgstr "1분간 최댓값"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "메모리"
|
msgstr "메모리"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "메모리 사용량"
|
msgstr "메모리 사용량"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "도커 컨테이너의 메모리 사용량"
|
msgstr "Docker 컨테이너의 메모리 사용량"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "이름"
|
msgstr "이름"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "네트"
|
msgstr "네트워크"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "도커 컨테이너의 네트워크 트래픽"
|
msgstr "Docker 컨테이너의 네트워크 트래픽"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "공용 인터페이스의 네트워크 트래픽"
|
msgstr "공용 인터페이스의 네트워크 트래픽"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "결과가 없습니다."
|
msgstr "결과가 없습니다."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "시스템을 찾을 수 없습니다."
|
msgstr "시스템을 찾을 수 없습니다."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "알림"
|
msgstr "알림"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "OAuth 2 / OIDC 지원"
|
msgstr "OAuth 2 / OIDC 지원"
|
||||||
|
|
||||||
#: src/components/routes/settings/config-yaml.tsx:61
|
#: src/components/routes/settings/config-yaml.tsx:61
|
||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "각 재시작 시, 데이터베이스의 시스템이 파일에 정의된 시스템과 일치하도록 업데이트됩니다."
|
msgstr "매 시작 시, 데이터베이스가 파일에 정의된 시스템과 일치하도록 업데이트됩니다."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "메뉴 열기"
|
msgstr "메뉴 열기"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "또는 계속하기"
|
msgstr "또는 아래 항목으로 진행하기"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:109
|
#: src/components/alerts/alert-button.tsx:109
|
||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "기존 경고 덮어쓰기"
|
msgstr "기존 알림 덮어쓰기"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "페이지"
|
msgstr "페이지"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "페이지 / 설정"
|
msgstr "페이지 / 설정"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "비밀번호"
|
msgstr "비밀번호"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "비밀번호는 최소 8자 이상이어야 합니다."
|
msgstr "비밀번호는 최소 8자 이상이어야 합니다."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "비밀번호 재설정 요청이 접수되었습니다"
|
msgstr "비밀번호 재설정 요청이 접수되었습니다"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "일시 중지"
|
msgstr "일시 중지"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "경고가 전달되도록 <0>SMTP 서버를 구성</0>하세요."
|
msgstr "알림이 전달되도록 <0>SMTP 서버를 구성</0>하세요."
|
||||||
|
|
||||||
#: src/components/alerts/alerts-system.tsx:25
|
#: src/components/alerts/alerts-system.tsx:25
|
||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "자세한 내용은 로그를 확인하세요."
|
msgstr "자세한 내용은 로그를 확인하세요."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "자격 증명을 확인하고 다시 시도하세요."
|
msgstr "자격 증명을 확인하고 다시 시도하세요."
|
||||||
@@ -545,28 +558,28 @@ msgstr "자격 증명을 확인하고 다시 시도하세요."
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "관리자 계정을 생성하세요."
|
msgstr "관리자 계정을 생성하세요."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "이 사이트에 대한 팝업을 활성화하세요."
|
msgstr "이 사이트에 대해 팝업을 활성화하세요."
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "다시 로그인하세요."
|
msgstr "다시 로그인하세요."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "지침은 <0>문서</0>를 참조하세요."
|
msgstr "사용법은 <0>문서</0>를 참조하세요."
|
||||||
|
|
||||||
#: src/components/login/login.tsx:40
|
#: src/components/login/login.tsx:40
|
||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "계정에 로그인하세요."
|
msgstr "계정에 로그인하세요."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "포트"
|
msgstr "포트"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "기록된 시간의 정확한 사용량"
|
msgstr "기록된 시간의 정확한 사용량"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "선호 언어"
|
msgstr "선호 언어"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "공개 키"
|
msgstr "공개 키"
|
||||||
|
|
||||||
@@ -594,30 +607,34 @@ msgstr "수신됨"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "비밀번호 재설정"
|
msgstr "비밀번호 재설정"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "재개"
|
msgstr "재개"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Enter 키 또는 쉼표를 사용하여 주소를 저장하세요. 이메일 알림을 비활성화하려면 비워 두세요."
|
msgstr "Enter 키 또는 쉼표를 사용하여 주소를 저장하세요. 이메일 알림을 비활성화하려면 비워 두세요."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "설정 저장"
|
msgstr "설정 저장"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "검색"
|
msgstr "검색"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "시스템 또는 설정 검색..."
|
msgstr "시스템 또는 설정 검색..."
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:71
|
#: src/components/alerts/alert-button.tsx:71
|
||||||
msgid "See <0>notification settings</0> to configure how you receive alerts."
|
msgid "See <0>notification settings</0> to configure how you receive alerts."
|
||||||
msgstr "경고를 받는 방법을 구성하려면 <0>알림 설정</0>을 참조하세요."
|
msgstr "알림을 받는 방법을 구성하려면 <0>알림 설정</0>을 참조하세요."
|
||||||
|
|
||||||
#. Network bytes sent (upload)
|
#. Network bytes sent (upload)
|
||||||
#: src/components/charts/area-chart.tsx:64
|
#: src/components/charts/area-chart.tsx:64
|
||||||
@@ -628,9 +645,9 @@ msgstr "보냄"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "시스템을 볼 때 차트의 기본 시간 범위를 설정합니다."
|
msgstr "시스템을 볼 때 차트의 기본 시간 범위를 설정합니다."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "설정"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "설정이 저장되었습니다."
|
msgstr "설정이 저장되었습니다."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "로그인"
|
msgstr "로그인"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "SMTP 설정"
|
msgstr "SMTP 설정"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "정렬 기준"
|
msgstr "정렬 기준"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "상태"
|
msgstr "상태"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "시스템에서 사용된 스왑 공간"
|
msgstr "시스템에서 사용된 스왑 공간"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "스왑 사용량"
|
msgstr "스왑 사용량"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "시스템"
|
msgstr "시스템"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "시스템"
|
msgstr "시스템"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "시스템"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "시스템은 데이터 디렉토리 내의 <0>config.yml</0> 파일에서 관리할 수 있습니다."
|
msgstr "시스템은 데이터 디렉토리 내의 <0>config.yml</0> 파일에서 관리할 수 있습니다."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "테이블"
|
msgstr "표"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "온도"
|
msgstr "온도"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "시스템 센서의 온도"
|
msgstr "시스템 센서의 온도"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "테스트 <0>URL</0>"
|
msgstr "테스트 <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "테스트 알림이 전송되었습니다."
|
msgstr "테스트 알림이 전송되었습니다."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "에이전트가 시스템에서 실행 중이어야 연결할 수 있습니다. 아래의 에이전트 설치 명령을 복사하세요."
|
msgstr "에이전트가 시스템에서 실행 중이어야 연결할 수 있습니다. 아래의 에이전트 설치 명령을 복사하세요."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "에이전트가 시스템에서 실행 중이어야 연결할 수 있습니다. 아래의 <0>docker-compose.yml</0>을 복사하세요."
|
msgstr "에이전트가 시스템에서 실행 중이어야 연결할 수 있습니다. 아래의 <0>docker-compose.yml</0>을 복사하세요."
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "에이전트가 시스템에서 실행 중이어야 연결할 수 있습
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "그런 다음 백엔드에 로그인하여 사용자 테이블에서 사용자 계정 비밀번호를 재설정하세요."
|
msgstr "그런 다음 백엔드에 로그인하여 사용자 테이블에서 사용자 계정 비밀번호를 재설정하세요."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "이 작업은 되돌릴 수 없습니다. 데이터베이스에서 {name}에 대한 모든 현재 기록이 영구적으로 삭제됩니다."
|
msgstr "이 작업은 되돌릴 수 없습니다. 데이터베이스에서 {name}에 대한 모든 현재 기록이 영구적으로 삭제됩니다."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "{extraFsName}의 처리량"
|
msgstr "{extraFsName}의 처리량"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "루트 파일 시스템의 처리량"
|
msgstr "루트 파일 시스템의 처리량"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "이메일로"
|
msgstr "받는사람(들)"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "그리드 전환"
|
msgstr "그리드 전환"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "그리드 전환"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "테마 전환"
|
msgstr "테마 전환"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "센서가 임계값을 초과할 때 트리거됩니다."
|
msgstr "센서가 임계값을 초과할 때 트리거됩니다."
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "상승/하강이 결합되어 임계값을 초과할 때 트리거됩니다."
|
msgstr "업로드와 다운로드 대역폭의 합이 임계값을 초과할 때 트리거됩니다."
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "CPU 사용량이 임계값을 초과할 때 트리거됩니다."
|
msgstr "CPU 사용량이 임계값을 초과할 때 트리거됩니다."
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "메모리 사용량이 임계값을 초과할 때 트리거됩니다."
|
msgstr "메모리 사용량이 임계값을 초과할 때 트리거됩니다."
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
|
||||||
msgid "Triggers when status switches between up and down"
|
|
||||||
msgstr "상태가 상승과 하강 사이에서 전환될 때 트리거됩니다."
|
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:304
|
||||||
|
msgid "Triggers when status switches between up and down"
|
||||||
|
msgstr "시스템의 전원이 켜지거나 꺼질때 트리거됩니다."
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "디스크 사용량이 임계값을 초과할 때 트리거됩니다."
|
msgstr "디스크 사용량이 임계값을 초과할 때 트리거됩니다."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "실시간으로 업데이트됩니다. 시스템을 클릭하여 정보를 확인하세요."
|
msgstr "실시간으로 업데이트됩니다. 시스템을 클릭하여 정보를 확인하세요."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "가동 시간"
|
msgstr "가동 시간"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "사용량"
|
msgstr "사용량"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "루트 파티션의 사용량"
|
msgstr "루트 파티션의 사용량"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "루트 파티션의 사용량"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "사용됨"
|
msgstr "사용됨"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "사용자"
|
msgstr "사용자"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "보기"
|
msgstr "보기"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "표시 열"
|
msgstr "표시할 열"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "표시할 충분한 기록을 기다리는 중"
|
msgstr "표시할 충분한 기록을 기다리는 중"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "표시할 충분한 기록을 기다리는 중"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "번역을 더 좋게 만드는 데 도움을 주시겠습니까? 자세한 내용은 <0>Crowdin</0>을 확인하세요."
|
msgstr "번역을 더 좋게 만드는 데 도움을 주시겠습니까? 자세한 내용은 <0>Crowdin</0>을 확인하세요."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Webhook / 푸시 알림"
|
msgstr "Webhook / 푸시 알림"
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: nl\n"
|
"Language: nl\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Dutch\n"
|
"Language-Team: Dutch\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# dag} other {# dagen}}"
|
msgstr "{0, plural, one {# dag} other {# dagen}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# uur} other {# uren}}"
|
msgstr "{hours, plural, one {# uur} other {# uren}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 uur"
|
msgstr "1 uur"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 week"
|
msgstr "1 week"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 uren"
|
msgstr "12 uren"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 uren"
|
msgstr "24 uren"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 dagen"
|
msgstr "30 dagen"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Acties"
|
msgstr "Acties"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "Actieve waarschuwingen"
|
msgstr "Actieve waarschuwingen"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "Voeg <0>Systeem</0> toe"
|
msgstr "Voeg <0>Systeem</0> toe"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "Nieuw systeem toevoegen"
|
msgstr "Nieuw systeem toevoegen"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "Voeg systeem toe"
|
msgstr "Voeg systeem toe"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "Voeg URL toe"
|
msgstr "Voeg URL toe"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "Voeg URL toe"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "Weergaveopties voor grafieken aanpassen."
|
msgstr "Weergaveopties voor grafieken aanpassen."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Admin"
|
msgstr "Admin"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "Agent"
|
msgstr "Agent"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "Waarschuwingen"
|
msgstr "Waarschuwingen"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "Alle systemen"
|
msgstr "Alle systemen"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "Weet je zeker dat je {name} wilt verwijderen?"
|
msgstr "Weet je zeker dat je {name} wilt verwijderen?"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "Weet je zeker dat je {name} wilt verwijderen?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "Automatisch kopiëren vereist een veilige context."
|
msgstr "Automatisch kopiëren vereist een veilige context."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Gemiddelde"
|
msgstr "Gemiddelde"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "Gemiddeld CPU-gebruik van containers"
|
msgstr "Gemiddeld CPU-gebruik van containers"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "Gemiddeld CPU-gebruik van containers"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "Gemiddelde overschrijdt <0>{value}{0}</0>"
|
msgstr "Gemiddelde overschrijdt <0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr "Gemiddeld stroomverbruik van GPU's"
|
msgstr "Gemiddeld stroomverbruik van GPU's"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "Gemiddeld systeembrede CPU-gebruik"
|
msgstr "Gemiddeld systeembrede CPU-gebruik"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr "Gemiddeld gebruik van {0}"
|
msgstr "Gemiddeld gebruik van {0}"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "Back-ups"
|
msgstr "Back-ups"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "Bandbreedte"
|
msgstr "Bandbreedte"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel ondersteunt OpenID Connect en vele OAuth2 authenticatieaanbieders."
|
msgstr "Beszel ondersteunt OpenID Connect en vele OAuth2 authenticatieaanbieders."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel gebruikt <0>Shoutrr</0> om te integreren met populaire meldingsdiensten."
|
msgstr "Beszel gebruikt <0>Shoutrr</0> om te integreren met populaire meldingsdiensten."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "Binair"
|
msgstr "Binair"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "Binair"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "Cache / Buffers"
|
msgstr "Cache / Buffers"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Annuleren"
|
msgstr "Annuleren"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "Controleer {email} op een reset link."
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "Controleer de logs voor meer details."
|
msgstr "Controleer de logs voor meer details."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "Controleer je meldingsservice"
|
msgstr "Controleer je meldingsservice"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "Klik om te kopiëren"
|
msgstr "Klik om te kopiëren"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "Klik om te kopiëren"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "Instructies voor de opdrachtregel"
|
msgstr "Instructies voor de opdrachtregel"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "Configureer hoe je waarschuwingsmeldingen ontvangt."
|
msgstr "Configureer hoe je waarschuwingsmeldingen ontvangt."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "Bevestig wachtwoord"
|
msgstr "Bevestig wachtwoord"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Volgende"
|
msgstr "Volgende"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "Gekopieerd naar het klembord"
|
msgstr "Gekopieerd naar het klembord"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Kopieer"
|
msgstr "Kopieer"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "Kopieer host"
|
msgstr "Kopieer host"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Kopieer Linux-opdracht"
|
msgstr "Kopieer Linux-opdracht"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "Kopieer Linux-opdracht"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "Kopieer tekst"
|
msgstr "Kopieer tekst"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "CPU"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "Processorgebruik"
|
msgstr "Processorgebruik"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "Account aanmaken"
|
msgstr "Account aanmaken"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "Account aanmaken"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "Donker"
|
msgstr "Donker"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Dashboard"
|
msgstr "Dashboard"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "Dashboard"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "Standaard tijdsduur"
|
msgstr "Standaard tijdsduur"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Verwijderen"
|
msgstr "Verwijderen"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "Schijf"
|
msgstr "Schijf"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "Schijf I/O"
|
msgstr "Schijf I/O"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "Schijfgebruik"
|
msgstr "Schijfgebruik"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "Schijfgebruik van {extraFsName}"
|
msgstr "Schijfgebruik van {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Docker CPU-gebruik"
|
msgstr "Docker CPU-gebruik"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Docker geheugengebruik"
|
msgstr "Docker geheugengebruik"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "Docker netwerk I/O"
|
msgstr "Docker netwerk I/O"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "Documentatie"
|
msgstr "Documentatie"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "E-mail"
|
msgstr "E-mail"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "E-mailnotificaties"
|
msgstr "E-mailnotificaties"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "E-mailnotificaties"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "Voer een e-mailadres in om het wachtwoord opnieuw in te stellen"
|
msgstr "Voer een e-mailadres in om het wachtwoord opnieuw in te stellen"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "Voer een e-mailadres in..."
|
msgstr "Voer een e-mailadres in..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Fout"
|
msgstr "Fout"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "Overschrijdt {0}{1} in de laatste {2, plural, one {# minuut} other {# minuten}}"
|
msgstr "Overschrijdt {0}{1} in de laatste {2, plural, one {# minuut} other {# minuten}}"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "Configuratie exporteren"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "Exporteer je huidige systeemconfiguratie."
|
msgstr "Exporteer je huidige systeemconfiguratie."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "Authenticatie mislukt"
|
msgstr "Authenticatie mislukt"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "Instellingen opslaan mislukt"
|
msgstr "Instellingen opslaan mislukt"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "Versturen test notificatie mislukt"
|
msgstr "Versturen test notificatie mislukt"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "Versturen test notificatie mislukt"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "Bijwerken waarschuwing mislukt"
|
msgstr "Bijwerken waarschuwing mislukt"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "Filter..."
|
msgstr "Filter..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "Filter..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "Voor <0>{min}</0> {min, plural, one {minuut} other {minuten}}"
|
msgstr "Voor <0>{min}</0> {min, plural, one {minuut} other {minuten}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "Wachtwoord vergeten?"
|
msgstr "Wachtwoord vergeten?"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "Wachtwoord vergeten?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Algemeen"
|
msgstr "Algemeen"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr "GPU stroomverbruik"
|
msgstr "GPU stroomverbruik"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "Raster"
|
msgstr "Raster"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "Host / IP-adres"
|
msgstr "Host / IP-adres"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "Host / IP-adres"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "Als je het wachtwoord voor je beheerdersaccount bent kwijtgeraakt, kan je het opnieuw instellen met behulp van de volgende opdracht."
|
msgstr "Als je het wachtwoord voor je beheerdersaccount bent kwijtgeraakt, kan je het opnieuw instellen met behulp van de volgende opdracht."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "Ongeldig e-mailadres."
|
msgstr "Ongeldig e-mailadres."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "Kernel"
|
msgstr "Kernel"
|
||||||
|
|
||||||
@@ -399,7 +404,7 @@ msgstr "Kernel"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Taal"
|
msgstr "Taal"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "Indeling"
|
msgstr "Indeling"
|
||||||
|
|
||||||
@@ -408,7 +413,7 @@ msgstr "Indeling"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Licht"
|
msgstr "Licht"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Afmelden"
|
msgstr "Afmelden"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "Afmelden"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Aanmelden"
|
msgstr "Aanmelden"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "Aanmelding mislukt"
|
msgstr "Aanmelding mislukt"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "Logs"
|
msgstr "Logs"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "Zoek je waar je meldingen kunt aanmaken? Klik op de bel <0/> in de systeemtabel."
|
msgstr "Zoek je waar je meldingen kunt aanmaken? Klik op de bel <0/> in de systeemtabel."
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "Zoek je waar je meldingen kunt aanmaken? Klik op de bel <0/> in de syste
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "Weergave- en notificatievoorkeuren beheren."
|
msgstr "Weergave- en notificatievoorkeuren beheren."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "Max 1 min"
|
msgstr "Max 1 min"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "Geheugen"
|
msgstr "Geheugen"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "Geheugengebruik"
|
msgstr "Geheugengebruik"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Geheugengebruik van docker containers"
|
msgstr "Geheugengebruik van docker containers"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Naam"
|
msgstr "Naam"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "Net"
|
msgstr "Net"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Netwerkverkeer van docker containers"
|
msgstr "Netwerkverkeer van docker containers"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "Netwerkverkeer van publieke interfaces"
|
msgstr "Netwerkverkeer van publieke interfaces"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "Geen resultaten gevonden."
|
msgstr "Geen resultaten gevonden."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "Geen systemen gevonden."
|
msgstr "Geen systemen gevonden."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Meldingen"
|
msgstr "Meldingen"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "OAuth 2 / OIDC ondersteuning"
|
msgstr "OAuth 2 / OIDC ondersteuning"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "OAuth 2 / OIDC ondersteuning"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "Bij elke herstart zullen systemen in de database worden bijgewerkt om overeen te komen met de systemen die in het bestand zijn gedefinieerd."
|
msgstr "Bij elke herstart zullen systemen in de database worden bijgewerkt om overeen te komen met de systemen die in het bestand zijn gedefinieerd."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "Open menu"
|
msgstr "Open menu"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "Of ga verder met"
|
msgstr "Of ga verder met"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "Of ga verder met"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "Overschrijf bestaande waarschuwingen"
|
msgstr "Overschrijf bestaande waarschuwingen"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Pagina"
|
msgstr "Pagina"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "Pagina's / Instellingen"
|
msgstr "Pagina's / Instellingen"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Wachtwoord"
|
msgstr "Wachtwoord"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "Het wachtwoord moet minimaal 8 tekens bevatten."
|
msgstr "Het wachtwoord moet minimaal 8 tekens bevatten."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "Wachtwoord reset aanvraag ontvangen"
|
msgstr "Wachtwoord reset aanvraag ontvangen"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Pauze"
|
msgstr "Pauze"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "<0>Configureer een SMTP-server </0> om ervoor te zorgen dat waarschuwingen worden afgeleverd."
|
msgstr "<0>Configureer een SMTP-server </0> om ervoor te zorgen dat waarschuwingen worden afgeleverd."
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "<0>Configureer een SMTP-server </0> om ervoor te zorgen dat waarschuwing
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "Controleer de logs voor meer details."
|
msgstr "Controleer de logs voor meer details."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "Controleer je aanmeldgegevens en probeer het opnieuw"
|
msgstr "Controleer je aanmeldgegevens en probeer het opnieuw"
|
||||||
@@ -545,15 +558,15 @@ msgstr "Controleer je aanmeldgegevens en probeer het opnieuw"
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "Maak een beheerdersaccount aan"
|
msgstr "Maak een beheerdersaccount aan"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "Activeer pop-ups voor deze website"
|
msgstr "Activeer pop-ups voor deze website"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "Meld je opnieuw aan"
|
msgstr "Meld je opnieuw aan"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "Bekijk <0>de documentatie</0> voor instructies."
|
msgstr "Bekijk <0>de documentatie</0> voor instructies."
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "Bekijk <0>de documentatie</0> voor instructies."
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "Meld je aan bij je account"
|
msgstr "Meld je aan bij je account"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Poort"
|
msgstr "Poort"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "Nauwkeurig gebruik op de opgenomen tijd"
|
msgstr "Nauwkeurig gebruik op de opgenomen tijd"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "Voorkeurstaal"
|
msgstr "Voorkeurstaal"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Publieke sleutel"
|
msgstr "Publieke sleutel"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "Ontvangen"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "Wachtwoord resetten"
|
msgstr "Wachtwoord resetten"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "Hervatten"
|
msgstr "Hervatten"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Bewaar het adres met de enter-toets of komma. Laat leeg om e-mailmeldingen uit te schakelen."
|
msgstr "Bewaar het adres met de enter-toets of komma. Laat leeg om e-mailmeldingen uit te schakelen."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "Instellingen opslaan"
|
msgstr "Instellingen opslaan"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Zoeken"
|
msgstr "Zoeken"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "Zoek naar systemen of instellingen..."
|
msgstr "Zoek naar systemen of instellingen..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "Verzonden"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "Stelt het standaard tijdsbereik voor grafieken in wanneer een systeem wordt bekeken."
|
msgstr "Stelt het standaard tijdsbereik voor grafieken in wanneer een systeem wordt bekeken."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "Instellingen"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "Instellingen opgeslagen"
|
msgstr "Instellingen opgeslagen"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Aanmelden"
|
msgstr "Aanmelden"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "SMTP-instellingen"
|
msgstr "SMTP-instellingen"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "Sorteren op"
|
msgstr "Sorteren op"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Status"
|
msgstr "Status"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "Swap ruimte gebruikt door het systeem"
|
msgstr "Swap ruimte gebruikt door het systeem"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "Swap gebruik"
|
msgstr "Swap gebruik"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Systeem"
|
msgstr "Systeem"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "Systemen"
|
msgstr "Systemen"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "Systemen"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "Systemen kunnen worden beheerd in een <0>config.yml</0> bestand in je data map."
|
msgstr "Systemen kunnen worden beheerd in een <0>config.yml</0> bestand in je data map."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "Tabel"
|
msgstr "Tabel"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "Temperatuur"
|
msgstr "Temperatuur"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "Temperatuur van systeem sensoren"
|
msgstr "Temperatuur van systeem sensoren"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "Test <0>URL</0>"
|
msgstr "Test <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Testmelding verzonden"
|
msgstr "Testmelding verzonden"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "De agent moet op het systeem draaien om te verbinden. Kopieer het installatiecommando voor de agent hieronder."
|
msgstr "De agent moet op het systeem draaien om te verbinden. Kopieer het installatiecommando voor de agent hieronder."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "De agent moet op het systeem draaien om te verbinden. Kopieer de<0>docker-compose.yml</0> voor de agent hieronder."
|
msgstr "De agent moet op het systeem draaien om te verbinden. Kopieer de<0>docker-compose.yml</0> voor de agent hieronder."
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "De agent moet op het systeem draaien om te verbinden. Kopieer de<0>docke
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "Log vervolgens in op de backend en reset het wachtwoord van je gebruikersaccount in het gebruikersoverzicht."
|
msgstr "Log vervolgens in op de backend en reset het wachtwoord van je gebruikersaccount in het gebruikersoverzicht."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "Deze actie kan niet ongedaan worden gemaakt. Dit zal alle huidige records voor {name} permanent verwijderen uit de database."
|
msgstr "Deze actie kan niet ongedaan worden gemaakt. Dit zal alle huidige records voor {name} permanent verwijderen uit de database."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "Doorvoer van {extraFsName}"
|
msgstr "Doorvoer van {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "Doorvoer van het root bestandssysteem"
|
msgstr "Doorvoer van het root bestandssysteem"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "Naar e-mail(s)"
|
msgstr "Naar e-mail(s)"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "Schakel raster"
|
msgstr "Schakel raster"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "Schakel raster"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "Schakel thema"
|
msgstr "Schakel thema"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "Triggert wanneer een sensor een drempelwaarde overschrijdt"
|
msgstr "Triggert wanneer een sensor een drempelwaarde overschrijdt"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "Triggert wanneer de gecombineerde up/down een drempelwaarde overschrijdt"
|
msgstr "Triggert wanneer de gecombineerde up/down een drempelwaarde overschrijdt"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "Triggert wanneer het CPU-gebruik een drempelwaarde overschrijdt"
|
msgstr "Triggert wanneer het CPU-gebruik een drempelwaarde overschrijdt"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "Triggert wanneer het geheugengebruik een drempelwaarde overschrijdt"
|
msgstr "Triggert wanneer het geheugengebruik een drempelwaarde overschrijdt"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "Triggert wanneer de status schakelt tussen up en down"
|
msgstr "Triggert wanneer de status schakelt tussen up en down"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "Triggert wanneer het gebruik van een schijf een drempelwaarde overschrijdt"
|
msgstr "Triggert wanneer het gebruik van een schijf een drempelwaarde overschrijdt"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "In realtime bijgewerkt. Klik op een systeem om informatie te bekijken."
|
msgstr "In realtime bijgewerkt. Klik op een systeem om informatie te bekijken."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "Actief"
|
msgstr "Actief"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "Gebruik"
|
msgstr "Gebruik"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "Gebruik van root-partitie"
|
msgstr "Gebruik van root-partitie"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "Gebruik van root-partitie"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "Gebruikt"
|
msgstr "Gebruikt"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Gebruikers"
|
msgstr "Gebruikers"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Weergave"
|
msgstr "Weergave"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "Zichtbare kolommen"
|
msgstr "Zichtbare kolommen"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "Wachtend op genoeg records om weer te geven"
|
msgstr "Wachtend op genoeg records om weer te geven"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "Wachtend op genoeg records om weer te geven"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "Wil je ons helpen onze vertalingen nog beter te maken? Bekijk <0>Crowdin</0> voor meer informatie."
|
msgstr "Wil je ons helpen onze vertalingen nog beter te maken? Bekijk <0>Crowdin</0> voor meer informatie."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Webhook / Pushmeldingen"
|
msgstr "Webhook / Pushmeldingen"
|
||||||
|
|
||||||
|
|||||||
853
beszel/site/src/locales/no/no.po
Normal file
853
beszel/site/src/locales/no/no.po
Normal file
@@ -0,0 +1,853 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"POT-Creation-Date: 2025-02-20 01:42-0100\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: @lingui/cli\n"
|
||||||
|
"Language: no\n"
|
||||||
|
"Project-Id-Version: beszel\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"PO-Revision-Date: 2025-02-23 04:50\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: Norwegian\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Crowdin-Project: beszel\n"
|
||||||
|
"X-Crowdin-Project-ID: 733311\n"
|
||||||
|
"X-Crowdin-Language: no\n"
|
||||||
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:252
|
||||||
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
|
msgstr "{0, plural, one {# dag} other {# dager}}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:250
|
||||||
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
|
msgstr "{hours, plural, one {# time} other {# timer}}"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:158
|
||||||
|
msgid "1 hour"
|
||||||
|
msgstr "1 time"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:181
|
||||||
|
msgid "1 week"
|
||||||
|
msgstr "1 uke"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:166
|
||||||
|
msgid "12 hours"
|
||||||
|
msgstr "12 timer"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:174
|
||||||
|
msgid "24 hours"
|
||||||
|
msgstr "24 timer"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:189
|
||||||
|
msgid "30 days"
|
||||||
|
msgstr "30 dager"
|
||||||
|
|
||||||
|
#. Table column
|
||||||
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
|
msgid "Actions"
|
||||||
|
msgstr "Handlinger"
|
||||||
|
|
||||||
|
#: src/components/routes/home.tsx:62
|
||||||
|
msgid "Active Alerts"
|
||||||
|
msgstr "Aktive Alarmer"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:42
|
||||||
|
msgid "Add <0>System</0>"
|
||||||
|
msgstr "Legg til <0>System</0>"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:124
|
||||||
|
msgid "Add New System"
|
||||||
|
msgstr "Legg Til Nytt System"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Add system"
|
||||||
|
msgstr "Legg til system"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
|
msgid "Add URL"
|
||||||
|
msgstr "Legg Til URL"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:81
|
||||||
|
msgid "Adjust display options for charts."
|
||||||
|
msgstr "Juster visningsalternativer for diagrammer."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:133
|
||||||
|
#: src/components/command-palette.tsx:146
|
||||||
|
#: src/components/command-palette.tsx:160
|
||||||
|
#: src/components/command-palette.tsx:174
|
||||||
|
#: src/components/command-palette.tsx:189
|
||||||
|
msgid "Admin"
|
||||||
|
msgstr "Admin"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
|
msgid "Agent"
|
||||||
|
msgstr "Agent"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:32
|
||||||
|
#: src/components/alerts/alert-button.tsx:68
|
||||||
|
msgid "Alerts"
|
||||||
|
msgstr "Alarmer"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
|
msgid "All Systems"
|
||||||
|
msgstr "Alle Systemer"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
|
msgid "Are you sure you want to delete {name}?"
|
||||||
|
msgstr "Er du sikker på at du vil slette {name}?"
|
||||||
|
|
||||||
|
#: src/components/copy-to-clipboard.tsx:16
|
||||||
|
msgid "Automatic copy requires a secure context."
|
||||||
|
msgstr "Automatisk kopiering krever en sikker kontekst."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:626
|
||||||
|
msgid "Average"
|
||||||
|
msgstr "Gjennomsnitt"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:403
|
||||||
|
msgid "Average CPU utilization of containers"
|
||||||
|
msgstr "Gjennomsnittlig CPU-utnyttelse av konteinere"
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:206
|
||||||
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
|
msgstr "Gjennomsnittet overstiger <0>{value}{0}</0>"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:504
|
||||||
|
msgid "Average power consumption of GPUs"
|
||||||
|
msgstr "Gjennomsnittlig strømforbruk for GPU-er"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:392
|
||||||
|
msgid "Average system-wide CPU utilization"
|
||||||
|
msgstr "Gjennomsnittlig CPU-utnyttelse for hele systemet"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:522
|
||||||
|
msgid "Average utilization of {0}"
|
||||||
|
msgstr "Gjennomsnittlig utnyttelse av {0}"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:171
|
||||||
|
#: src/components/navbar.tsx:94
|
||||||
|
msgid "Backups"
|
||||||
|
msgstr "Sikkerhetskopier"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:448
|
||||||
|
#: src/lib/utils.ts:326
|
||||||
|
msgid "Bandwidth"
|
||||||
|
msgstr "Båndbredde"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:304
|
||||||
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
|
msgstr "Beszel støtter OpenID Connect og mange OAuth2 autentiserings-tilbydere."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
|
msgstr "Beszel bruker <0>Shoutrrr</0> for integrering mot populære meldingstjenester."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:129
|
||||||
|
msgid "Binary"
|
||||||
|
msgstr "Binær"
|
||||||
|
|
||||||
|
#: src/components/charts/mem-chart.tsx:89
|
||||||
|
msgid "Cache / Buffers"
|
||||||
|
msgstr "Cache / Buffere"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Avbryt"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:68
|
||||||
|
msgid "Caution - potential data loss"
|
||||||
|
msgstr "Advarsel - potensielt tap av data"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:36
|
||||||
|
msgid "Change general application options."
|
||||||
|
msgstr "Endre generelle program-innstillinger."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:78
|
||||||
|
msgid "Chart options"
|
||||||
|
msgstr "Diagraminnstillinger"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:34
|
||||||
|
msgid "Check {email} for a reset link."
|
||||||
|
msgstr "Sjekk {email} for en nullstillings-link."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:40
|
||||||
|
msgid "Check logs for more details."
|
||||||
|
msgstr "Sjekk loggene for flere detaljer."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
|
msgid "Check your notification service"
|
||||||
|
msgstr "Sjekk din meldingstjeneste"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:203
|
||||||
|
msgid "Click to copy"
|
||||||
|
msgstr "Klikk for å kopiere"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:83
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:89
|
||||||
|
msgid "Command line instructions"
|
||||||
|
msgstr "Kommandolinje-instrukser"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
|
msgid "Configure how you receive alert notifications."
|
||||||
|
msgstr "Konfigurer hvordan du vil motta alarmvarsler."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:210
|
||||||
|
#: src/components/login/auth-form.tsx:215
|
||||||
|
msgid "Confirm password"
|
||||||
|
msgstr "Bekreft passord"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
|
msgid "Continue"
|
||||||
|
msgstr "Fortsett"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:26
|
||||||
|
msgid "Copied to clipboard"
|
||||||
|
msgstr "Kopiert til utklippstavlen"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
|
msgid "Copy"
|
||||||
|
msgstr "Kopier"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
|
msgid "Copy host"
|
||||||
|
msgstr "Kopier vert"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:223
|
||||||
|
msgid "Copy Linux command"
|
||||||
|
msgstr "Kopier Linux-kommando"
|
||||||
|
|
||||||
|
#: src/components/copy-to-clipboard.tsx:13
|
||||||
|
msgid "Copy text"
|
||||||
|
msgstr "Kopier tekst"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
|
msgid "CPU"
|
||||||
|
msgstr "CPU"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:56
|
||||||
|
#: src/components/routes/system.tsx:391
|
||||||
|
#: src/lib/utils.ts:308
|
||||||
|
msgid "CPU Usage"
|
||||||
|
msgstr "CPU-bruk"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:236
|
||||||
|
msgid "Create account"
|
||||||
|
msgstr "Opprett konto"
|
||||||
|
|
||||||
|
#. Dark theme
|
||||||
|
#: src/components/mode-toggle.tsx:21
|
||||||
|
msgid "Dark"
|
||||||
|
msgstr "Mørkt"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:82
|
||||||
|
#: src/components/routes/home.tsx:35
|
||||||
|
msgid "Dashboard"
|
||||||
|
msgstr "Dashbord"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:85
|
||||||
|
msgid "Default time period"
|
||||||
|
msgstr "Standard tidsperiode"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Slett"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
|
msgid "Disk"
|
||||||
|
msgstr "Disk"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:438
|
||||||
|
msgid "Disk I/O"
|
||||||
|
msgstr "Disk I/O"
|
||||||
|
|
||||||
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
|
#: src/components/routes/system.tsx:431
|
||||||
|
#: src/lib/utils.ts:320
|
||||||
|
msgid "Disk Usage"
|
||||||
|
msgstr "Diskbruk"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:559
|
||||||
|
msgid "Disk usage of {extraFsName}"
|
||||||
|
msgstr "Diskbruk av {extraFsName}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:402
|
||||||
|
msgid "Docker CPU Usage"
|
||||||
|
msgstr "Docker CPU-bruk"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:423
|
||||||
|
msgid "Docker Memory Usage"
|
||||||
|
msgstr "Docker Minnebruk"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:464
|
||||||
|
msgid "Docker Network I/O"
|
||||||
|
msgstr "Docker Nettverks-I/O"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:125
|
||||||
|
msgid "Documentation"
|
||||||
|
msgstr "Dokumentasjon"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Rediger"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
|
msgid "Email"
|
||||||
|
msgstr "E-post"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
|
msgid "Email notifications"
|
||||||
|
msgstr "E-postvarslinger"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:38
|
||||||
|
msgid "Enter email address to reset password"
|
||||||
|
msgstr "Skriv inn e-postadresse for å nullstille passordet"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
|
msgid "Enter email address..."
|
||||||
|
msgstr "Skriv inn e-postadresse..."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:136
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
|
msgid "Error"
|
||||||
|
msgstr "Feil"
|
||||||
|
|
||||||
|
#: src/components/routes/home.tsx:81
|
||||||
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
|
msgstr "Overstiger {0}{1} {2, plural, one {det siste minuttet} other {de siste # minuttene}}"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:72
|
||||||
|
msgid "Existing systems not defined in <0>config.yml</0> will be deleted. Please make regular backups."
|
||||||
|
msgstr "Eksisterende systemer som ikke er er definert i <0>config.yml</0> vil bli slettet. Vennligst ta jevnlige sikkerhetskopier."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:93
|
||||||
|
msgid "Export configuration"
|
||||||
|
msgstr "Eksporter konfigurasjon"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:48
|
||||||
|
msgid "Export your current systems configuration."
|
||||||
|
msgstr "Eksporter din nåværende systemkonfigurasjon"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:39
|
||||||
|
msgid "Failed to authenticate"
|
||||||
|
msgstr "Autentisering mislyktes"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
|
msgid "Failed to save settings"
|
||||||
|
msgstr "Kunne ikke lagre innstillingene"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
|
msgid "Failed to send test notification"
|
||||||
|
msgstr "Kunne ikke sende test-varsling"
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:24
|
||||||
|
msgid "Failed to update alert"
|
||||||
|
msgstr "Kunne ikke oppdatere alarm"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:599
|
||||||
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
|
msgid "Filter..."
|
||||||
|
msgstr "Filter..."
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:227
|
||||||
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
|
msgstr "I <0>{min}</0> {min, plural, one {minutt} other {minutter}}"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:328
|
||||||
|
msgid "Forgot password?"
|
||||||
|
msgstr "Glemt passord?"
|
||||||
|
|
||||||
|
#. Context: General settings
|
||||||
|
#: src/components/routes/settings/general.tsx:33
|
||||||
|
#: src/components/routes/settings/layout.tsx:51
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Generelt"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:503
|
||||||
|
msgid "GPU Power Draw"
|
||||||
|
msgstr "GPU Effektforbruk"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
|
msgid "Grid"
|
||||||
|
msgstr "Rutenett"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:157
|
||||||
|
msgid "Host / IP"
|
||||||
|
msgstr "Vert / IP"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:93
|
||||||
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
|
msgstr "Dersom du har mistet passordet til admin-kontoen kan du nullstille det med følgende kommando."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:17
|
||||||
|
msgid "Invalid email address."
|
||||||
|
msgstr "Ugyldig e-postadresse."
|
||||||
|
|
||||||
|
#. Linux kernel
|
||||||
|
#: src/components/routes/system.tsx:264
|
||||||
|
msgid "Kernel"
|
||||||
|
msgstr "Kjerne"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:45
|
||||||
|
msgid "Language"
|
||||||
|
msgstr "Språk"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
|
msgid "Layout"
|
||||||
|
msgstr "Layout"
|
||||||
|
|
||||||
|
#. Light theme
|
||||||
|
#: src/components/mode-toggle.tsx:16
|
||||||
|
msgid "Light"
|
||||||
|
msgstr "Lyst"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:105
|
||||||
|
msgid "Log Out"
|
||||||
|
msgstr "Logg Ut"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:19
|
||||||
|
msgid "Login"
|
||||||
|
msgstr "Logg Inn"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:39
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
|
msgid "Login attempt failed"
|
||||||
|
msgstr "Innlogging mislyktes"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:157
|
||||||
|
#: src/components/navbar.tsx:86
|
||||||
|
msgid "Logs"
|
||||||
|
msgstr "Logger"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
|
msgstr "Ser du etter hvor du kan opprette alarmer? Klikk på bjelle-ikonene <0/> i systemtabellen."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:85
|
||||||
|
msgid "Manage display and notification preferences."
|
||||||
|
msgstr "Endre visnings- og varslingsinnstillinger."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Chart select field. Please try to keep this short.
|
||||||
|
#: src/components/routes/system.tsx:629
|
||||||
|
msgid "Max 1 min"
|
||||||
|
msgstr "Maks 1 min"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
|
msgid "Memory"
|
||||||
|
msgstr "Minne"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:413
|
||||||
|
#: src/lib/utils.ts:314
|
||||||
|
msgid "Memory Usage"
|
||||||
|
msgstr "Minnebruk"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:424
|
||||||
|
msgid "Memory usage of docker containers"
|
||||||
|
msgstr "Minnebruk av docker-konteinere"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:153
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "Navn"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
|
msgid "Net"
|
||||||
|
msgstr "Nett"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:465
|
||||||
|
msgid "Network traffic of docker containers"
|
||||||
|
msgstr "Nettverkstrafikk av docker-konteinere"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:450
|
||||||
|
msgid "Network traffic of public interfaces"
|
||||||
|
msgstr "Nettverkstrafikk av eksterne nettverksgrensesnitt"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:50
|
||||||
|
msgid "No results found."
|
||||||
|
msgstr "Ingen resultater funnet."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
|
msgid "No systems found."
|
||||||
|
msgstr "Ingen systemer funnet."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:111
|
||||||
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
|
msgid "Notifications"
|
||||||
|
msgstr "Varslinger"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:299
|
||||||
|
msgid "OAuth 2 / OIDC support"
|
||||||
|
msgstr "OAuth 2 / OIDC-støtte"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:61
|
||||||
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
|
msgstr "Ved hver omstart vil systemer i databasen bli oppdatert til å matche systemene definert i fila."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
|
msgid "Open menu"
|
||||||
|
msgstr "Åpne meny"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:248
|
||||||
|
msgid "Or continue with"
|
||||||
|
msgstr "Eller fortsett med"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:109
|
||||||
|
msgid "Overwrite existing alerts"
|
||||||
|
msgstr "Overskriv eksisterende alarmer"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:85
|
||||||
|
msgid "Page"
|
||||||
|
msgstr "Side"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:72
|
||||||
|
msgid "Pages / Settings"
|
||||||
|
msgstr "Sider / Innstillinger"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:192
|
||||||
|
#: src/components/login/auth-form.tsx:197
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "Passord"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:20
|
||||||
|
msgid "Password must be at least 8 characters."
|
||||||
|
msgstr "Passord må bestå av minst 8 tegn."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr "Passord må være mindre enn 72 byte."
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
|
msgid "Password reset request received"
|
||||||
|
msgstr "Mottatt forespørsel om å nullstille passord"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
|
msgid "Pause"
|
||||||
|
msgstr "Pause"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
|
msgstr "Vennligst <0>konfigurer en SMTP-server</0> for å forsikre deg om at varsler blir levert."
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:25
|
||||||
|
msgid "Please check logs for more details."
|
||||||
|
msgstr "Vennligst sjekk loggene for mer informasjon."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:40
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
|
msgid "Please check your credentials and try again"
|
||||||
|
msgstr "Vennligst kontroller dine innloggingsopplysninger og prøv igjen"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:36
|
||||||
|
msgid "Please create an admin account"
|
||||||
|
msgstr "Vennligst opprett en admin-konto"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:137
|
||||||
|
msgid "Please enable pop-ups for this site"
|
||||||
|
msgstr "Vennligst aktiver pop-ups for nettsiden"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:40
|
||||||
|
msgid "Please log in again"
|
||||||
|
msgstr "Vennligst logg inn på nytt"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:307
|
||||||
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
|
msgstr "Vennligst se <0>dokumentasjonen</0> for instrukser."
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:40
|
||||||
|
msgid "Please sign in to your account"
|
||||||
|
msgstr "Vennligst logg inn på kontoen din"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:169
|
||||||
|
msgid "Port"
|
||||||
|
msgstr "Port"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:414
|
||||||
|
#: src/components/routes/system.tsx:530
|
||||||
|
msgid "Precise utilization at the recorded time"
|
||||||
|
msgstr "Nøyaktig utnyttelse på registrert tidspunkt"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:58
|
||||||
|
msgid "Preferred Language"
|
||||||
|
msgstr "Foretrukket Språk"
|
||||||
|
|
||||||
|
#. Use 'Key' if your language requires many more characters
|
||||||
|
#: src/components/add-system.tsx:180
|
||||||
|
msgid "Public Key"
|
||||||
|
msgstr "Offentlig Nøkkel"
|
||||||
|
|
||||||
|
#. Disk read
|
||||||
|
#: src/components/charts/area-chart.tsx:60
|
||||||
|
#: src/components/charts/area-chart.tsx:70
|
||||||
|
msgid "Read"
|
||||||
|
msgstr "Lesing"
|
||||||
|
|
||||||
|
#. Network bytes received (download)
|
||||||
|
#: src/components/charts/area-chart.tsx:65
|
||||||
|
msgid "Received"
|
||||||
|
msgstr "Mottatt"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:76
|
||||||
|
msgid "Reset Password"
|
||||||
|
msgstr "Nullstill Passord"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
|
msgid "Resume"
|
||||||
|
msgstr "Gjenoppta"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
|
msgstr "Lagre adressen med Enter-tasten eller komma. La feltet være tomt for å deaktivere e-postvarsler."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:106
|
||||||
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Lagre Innstillinger"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr "Lagre system"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
|
msgid "Search"
|
||||||
|
msgstr "Søk"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:47
|
||||||
|
msgid "Search for systems or settings..."
|
||||||
|
msgstr "Søk etter systemer eller innstillinger..."
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:71
|
||||||
|
msgid "See <0>notification settings</0> to configure how you receive alerts."
|
||||||
|
msgstr "Se <0>varslingsinnstillingene</0> for å konfigurere hvordan du vil motta varsler."
|
||||||
|
|
||||||
|
#. Network bytes sent (upload)
|
||||||
|
#: src/components/charts/area-chart.tsx:64
|
||||||
|
msgid "Sent"
|
||||||
|
msgstr "Sendt"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:100
|
||||||
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
|
msgstr "Angir standard tidsperiode for diagrammer når et system vises."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:96
|
||||||
|
#: src/components/command-palette.tsx:99
|
||||||
|
#: src/components/command-palette.tsx:114
|
||||||
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Innstillinger"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:33
|
||||||
|
msgid "Settings saved"
|
||||||
|
msgstr "Innstillinger lagret"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:236
|
||||||
|
msgid "Sign in"
|
||||||
|
msgstr "Logg inn"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:186
|
||||||
|
msgid "SMTP settings"
|
||||||
|
msgstr "SMTP-innstillinger"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
|
msgid "Sort By"
|
||||||
|
msgstr "Sorter Etter"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:301
|
||||||
|
msgid "Status"
|
||||||
|
msgstr "Status"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:480
|
||||||
|
msgid "Swap space used by the system"
|
||||||
|
msgstr "Swap-plass i bruk av systemet"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:479
|
||||||
|
msgid "Swap Usage"
|
||||||
|
msgstr "Swap-bruk"
|
||||||
|
|
||||||
|
#. System theme
|
||||||
|
#: src/components/mode-toggle.tsx:26
|
||||||
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
|
msgid "System"
|
||||||
|
msgstr "System"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:78
|
||||||
|
msgid "Systems"
|
||||||
|
msgstr "Systemer"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:55
|
||||||
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
|
msgstr "Systemer kan håndteres i en <0>config.yml</0>-fil i din data-katalog."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
|
msgid "Table"
|
||||||
|
msgstr "Tabell"
|
||||||
|
|
||||||
|
#. Temperature label in systems table
|
||||||
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr "Temp"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
|
msgid "Temperature"
|
||||||
|
msgstr "Temperatur"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:492
|
||||||
|
msgid "Temperatures of system sensors"
|
||||||
|
msgstr "Temperaturer på system-sensorer"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
|
msgid "Test <0>URL</0>"
|
||||||
|
msgstr "Test <0>URL</0>"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
|
msgid "Test notification sent"
|
||||||
|
msgstr "Test-varsling sendt"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:145
|
||||||
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
|
msgstr "Agenten må kjøre på systemet du vil koble til. Kopier installasjons-kommandoen for agenten under."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:136
|
||||||
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
|
msgstr "Agenten må kjøre på systemet du vil koble til. Kopier <0>docker-compose.yml</0> for agenten under."
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:98
|
||||||
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
|
msgstr "Logg deretter inn i backend og nullstill passordet på din konto i users-tabellen."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
|
msgstr "Denne handlingen kan ikke omgjøres. Dette vil slette alle poster for {name} permanent fra databasen."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:571
|
||||||
|
msgid "Throughput of {extraFsName}"
|
||||||
|
msgstr "Gjennomstrømning av {extraFsName}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:439
|
||||||
|
msgid "Throughput of root filesystem"
|
||||||
|
msgstr "Gjennomstrømning av rot-filsystemet"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
|
msgid "To email(s)"
|
||||||
|
msgstr "Til e-postadresse(r)"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:366
|
||||||
|
#: src/components/routes/system.tsx:379
|
||||||
|
msgid "Toggle grid"
|
||||||
|
msgstr "Rutenett av/på"
|
||||||
|
|
||||||
|
#: src/components/mode-toggle.tsx:33
|
||||||
|
msgid "Toggle theme"
|
||||||
|
msgstr "Tema av/på"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:336
|
||||||
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
|
msgstr "Slår inn når enhver sensor overstiger en grenseverdi"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:329
|
||||||
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
|
msgstr "Slår inn når kombinert opp/ned overskrider en grenseverdi"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:311
|
||||||
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
|
msgstr "Slår inn når CPU-bruken overstiger en grenseverdi"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:317
|
||||||
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
|
msgstr "Slår inn når minnebruken overstiger en grenseverdi"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:304
|
||||||
|
msgid "Triggers when status switches between up and down"
|
||||||
|
msgstr "Slår inn når statusen veksler mellom oppe og nede"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:323
|
||||||
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
|
msgstr "Slår inn når forbruk av hvilken som helst disk overstiger en grenseverdi"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
|
msgstr "Oppdatert i sanntid. Klikk på et system for å se mer informasjon."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:263
|
||||||
|
msgid "Uptime"
|
||||||
|
msgstr "Oppetid"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:73
|
||||||
|
#: src/components/routes/system.tsx:521
|
||||||
|
#: src/components/routes/system.tsx:558
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Forbruk"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:431
|
||||||
|
msgid "Usage of root partition"
|
||||||
|
msgstr "Forbruk av rot-partisjon"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:73
|
||||||
|
#: src/components/charts/mem-chart.tsx:65
|
||||||
|
#: src/components/charts/swap-chart.tsx:56
|
||||||
|
msgid "Used"
|
||||||
|
msgstr "Brukt"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:143
|
||||||
|
#: src/components/navbar.tsx:70
|
||||||
|
msgid "Users"
|
||||||
|
msgstr "Brukere"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
|
msgid "View"
|
||||||
|
msgstr "Visning"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
|
msgid "Visible Fields"
|
||||||
|
msgstr "Synlige Felter"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:663
|
||||||
|
msgid "Waiting for enough records to display"
|
||||||
|
msgstr "Venter på nok registreringer til å vise"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:48
|
||||||
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
|
msgstr "Vil du hjelpe oss med å gjøre oversettelsene enda bedre? Ta en titt på <0>Crowdin</0> for mer informasjon."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
|
msgid "Webhook / Push notifications"
|
||||||
|
msgstr "Webhook / Push-varslinger"
|
||||||
|
|
||||||
|
#. Disk write
|
||||||
|
#: src/components/charts/area-chart.tsx:59
|
||||||
|
#: src/components/charts/area-chart.tsx:69
|
||||||
|
msgid "Write"
|
||||||
|
msgstr "Skriving"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:61
|
||||||
|
msgid "YAML Config"
|
||||||
|
msgstr "YAML Oppsett"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:45
|
||||||
|
msgid "YAML Configuration"
|
||||||
|
msgstr "YAML Konfigurasjon"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:34
|
||||||
|
msgid "Your user settings have been updated."
|
||||||
|
msgstr "Dine brukerinnstillinger har blitt oppdatert."
|
||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: pl\n"
|
"Language: pl\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Polish\n"
|
"Language-Team: Polish\n"
|
||||||
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
|
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# dzień} few {# dni} many {# dni} other {# dni}}"
|
msgstr "{0, plural, one {# dzień} few {# dni} many {# dni} other {# dni}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {godzinę} few {# godziny} many {# godzin} other {# godziny}}"
|
msgstr "{hours, plural, one {godzinę} few {# godziny} many {# godzin} other {# godziny}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 godzina"
|
msgstr "1 godzina"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 tydzień"
|
msgstr "1 tydzień"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 godzin"
|
msgstr "12 godzin"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 godziny"
|
msgstr "24 godziny"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 dni"
|
msgstr "30 dni"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Akcje"
|
msgstr "Akcje"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "Aktywne alerty"
|
msgstr "Aktywne alerty"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "Dodaj <0>system</0>"
|
msgstr "Dodaj <0>system</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "Dodaj nowy system"
|
msgstr "Dodaj nowy system"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "Dodaj system"
|
msgstr "Dodaj system"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "Dodaj URL"
|
msgstr "Dodaj URL"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "Dodaj URL"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "Dostosuj opcje wyświetlania wykresów."
|
msgstr "Dostosuj opcje wyświetlania wykresów."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Admin"
|
msgstr "Admin"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "Agent"
|
msgstr "Agent"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "Alerty"
|
msgstr "Alerty"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "Wszystkie systemy"
|
msgstr "Wszystkie systemy"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "Czy na pewno chcesz usunąć {name}?"
|
msgstr "Czy na pewno chcesz usunąć {name}?"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "Czy na pewno chcesz usunąć {name}?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "Automatyczne kopiowanie wymaga bezpiecznego kontekstu."
|
msgstr "Automatyczne kopiowanie wymaga bezpiecznego kontekstu."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Średnia"
|
msgstr "Średnia"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "Średnie wykorzystanie procesora przez kontenery"
|
msgstr "Średnie wykorzystanie procesora przez kontenery"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "Średnie wykorzystanie procesora przez kontenery"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "Średnia przekracza <0>{value}{0}</0>"
|
msgstr "Średnia przekracza <0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr ""
|
msgstr "Średnie zużycie energii przez GPU"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "Średnie wykorzystanie procesora w całym systemie"
|
msgstr "Średnie wykorzystanie procesora w całym systemie"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr ""
|
msgstr "Średnie użycie {0}"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "Kopie"
|
msgstr "Kopie"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "Przepustowość"
|
msgstr "Przepustowość"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel obsługuje OpenID Connect i wielu dostawców uwierzytelniania OAuth2."
|
msgstr "Beszel obsługuje OpenID Connect i wielu dostawców uwierzytelniania OAuth2."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel używa <0>Shoutrrr</0> do integracji z popularnych serwisami powiadomień."
|
msgstr "Beszel używa <0>Shoutrrr</0> do integracji z popularnych serwisami powiadomień."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "Plik binarny"
|
msgstr "Plik binarny"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "Plik binarny"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "Pamięć podręczna / Bufory"
|
msgstr "Pamięć podręczna / Bufory"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Anuluj"
|
msgstr "Anuluj"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "Sprawdź {email}, aby uzyskać link do resetowania."
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "Sprawdź logi, aby uzyskać więcej informacji."
|
msgstr "Sprawdź logi, aby uzyskać więcej informacji."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "Sprawdź swój serwis powiadomień"
|
msgstr "Sprawdź swój serwis powiadomień"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "Kliknij, aby skopiować"
|
msgstr "Kliknij, aby skopiować"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "Kliknij, aby skopiować"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "Instrukcje wiersza poleceń"
|
msgstr "Instrukcje wiersza poleceń"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "Skonfiguruj sposób otrzymywania powiadomień."
|
msgstr "Skonfiguruj sposób otrzymywania powiadomień."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "Potwierdź hasło"
|
msgstr "Potwierdź hasło"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Kontynuuj"
|
msgstr "Kontynuuj"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "Skopiowano do schowka"
|
msgstr "Skopiowano do schowka"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Kopiuj"
|
msgstr "Kopiuj"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "Kopiuj host"
|
msgstr "Kopiuj host"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Kopiuj polecenie Linux"
|
msgstr "Kopiuj polecenie Linux"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "Kopiuj polecenie Linux"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "Kopiuj tekst"
|
msgstr "Kopiuj tekst"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "Procesor"
|
msgstr "Procesor"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "Użycie procesora"
|
msgstr "Użycie procesora"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "Utwórz konto"
|
msgstr "Utwórz konto"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "Utwórz konto"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "Ciemny"
|
msgstr "Ciemny"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Panel kontrolny"
|
msgstr "Panel kontrolny"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "Panel kontrolny"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "Domyślny przedział czasu"
|
msgstr "Domyślny przedział czasu"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Usuń"
|
msgstr "Usuń"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "Dysk"
|
msgstr "Dysk"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "Dysk I/O"
|
msgstr "Dysk I/O"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "Użycie dysku"
|
msgstr "Użycie dysku"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "Wykorzystanie dysku {extraFsName}"
|
msgstr "Wykorzystanie dysku {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Wykorzystanie procesora przez Docker"
|
msgstr "Wykorzystanie procesora przez Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Wykorzystanie pamięci przez Docker"
|
msgstr "Wykorzystanie pamięci przez Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "Sieć Docker I/O"
|
msgstr "Sieć Docker I/O"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "Dokumentacja"
|
msgstr "Dokumentacja"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "E-mail"
|
msgstr "E-mail"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "Powiadomienia e-mail"
|
msgstr "Powiadomienia e-mail"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "Powiadomienia e-mail"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "Wprowadź adres e-mail, aby zresetować hasło"
|
msgstr "Wprowadź adres e-mail, aby zresetować hasło"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "Wprowadź adres e-mail..."
|
msgstr "Wprowadź adres e-mail..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Błąd"
|
msgstr "Błąd"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "Przekracza {0}{1} w ciągu ostatnich {2, plural, one {# minuty} other {# minut}}"
|
msgstr "Przekracza {0}{1} w ciągu ostatnich {2, plural, one {# minuty} other {# minut}}"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "Eksportuj konfigurację"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "Eksportuj aktualną konfigurację systemów."
|
msgstr "Eksportuj aktualną konfigurację systemów."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "Błąd autoryzacji"
|
msgstr "Błąd autoryzacji"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "Nie udało się zapisać ustawień"
|
msgstr "Nie udało się zapisać ustawień"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "Nie udało się wysłać testowego powiadomienia"
|
msgstr "Nie udało się wysłać testowego powiadomienia"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "Nie udało się wysłać testowego powiadomienia"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "Nie udało się zaktualizować powiadomienia"
|
msgstr "Nie udało się zaktualizować powiadomienia"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "Filtruj..."
|
msgstr "Filtruj..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "Filtruj..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "Na <0>{min}</0> {min, plural, one {minutę} other {minut}}"
|
msgstr "Na <0>{min}</0> {min, plural, one {minutę} other {minut}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "Zapomniałeś hasła?"
|
msgstr "Zapomniałeś hasła?"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "Zapomniałeś hasła?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Ogólne"
|
msgstr "Ogólne"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr ""
|
msgstr "Moc GPU"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "Siatka"
|
msgstr "Siatka"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "Host / adres IP"
|
msgstr "Host / adres IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "Host / adres IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "Jeśli utraciłeś hasło do swojego konta administratora, możesz je zresetować, używając następującego polecenia."
|
msgstr "Jeśli utraciłeś hasło do swojego konta administratora, możesz je zresetować, używając następującego polecenia."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "Nieprawidłowy adres e-mail."
|
msgstr "Nieprawidłowy adres e-mail."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "Jądro"
|
msgstr "Jądro"
|
||||||
|
|
||||||
@@ -399,7 +404,7 @@ msgstr "Jądro"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Język"
|
msgstr "Język"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "Układ"
|
msgstr "Układ"
|
||||||
|
|
||||||
@@ -408,7 +413,7 @@ msgstr "Układ"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Jasny"
|
msgstr "Jasny"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Wyloguj"
|
msgstr "Wyloguj"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "Wyloguj"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Logowanie"
|
msgstr "Logowanie"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "Próba logowania nie powiodła się"
|
msgstr "Próba logowania nie powiodła się"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "Logi"
|
msgstr "Logi"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "Szukasz, gdzie utworzyć powiadomienia? Kliknij ikonę dzwonka <0/> w tabeli systemów."
|
msgstr "Szukasz, gdzie utworzyć powiadomienia? Kliknij ikonę dzwonka <0/> w tabeli systemów."
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "Szukasz, gdzie utworzyć powiadomienia? Kliknij ikonę dzwonka <0/> w ta
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "Zarządzaj preferencjami wyświetlania i powiadomień."
|
msgstr "Zarządzaj preferencjami wyświetlania i powiadomień."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "Maks. 1 min"
|
msgstr "Maks. 1 min"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "Pamięć"
|
msgstr "Pamięć"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "Wykorzystanie pamięci"
|
msgstr "Wykorzystanie pamięci"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Użycie pamięci przez kontenery Docker."
|
msgstr "Użycie pamięci przez kontenery Docker."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nazwa"
|
msgstr "Nazwa"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "Sieć"
|
msgstr "Sieć"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Ruch sieciowy kontenerów Docker."
|
msgstr "Ruch sieciowy kontenerów Docker."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "Ruch sieciowy interfejsów publicznych"
|
msgstr "Ruch sieciowy interfejsów publicznych"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "Brak wyników."
|
msgstr "Brak wyników."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "Nie znaleziono systemów."
|
msgstr "Nie znaleziono systemów."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Powiadomienia"
|
msgstr "Powiadomienia"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "Wsparcie OAuth 2 / OIDC"
|
msgstr "Wsparcie OAuth 2 / OIDC"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "Wsparcie OAuth 2 / OIDC"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "Przy każdym ponownym uruchomieniu systemy w bazie danych będą aktualizowane, aby odpowiadały systemom zdefiniowanym w pliku."
|
msgstr "Przy każdym ponownym uruchomieniu systemy w bazie danych będą aktualizowane, aby odpowiadały systemom zdefiniowanym w pliku."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "Otwórz menu"
|
msgstr "Otwórz menu"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "Lub kontynuuj z"
|
msgstr "Lub kontynuuj z"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "Lub kontynuuj z"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "Nadpisz istniejące alerty"
|
msgstr "Nadpisz istniejące alerty"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Strona"
|
msgstr "Strona"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "Strony / Ustawienia"
|
msgstr "Strony / Ustawienia"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Hasło"
|
msgstr "Hasło"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "Hasło musi mieć co najmniej 8 znaków."
|
msgstr "Hasło musi mieć co najmniej 8 znaków."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "Otrzymane żądanie resetowania hasła"
|
msgstr "Otrzymane żądanie resetowania hasła"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Pauza"
|
msgstr "Pauza"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "Proszę <0>skonfigurować serwer SMTP</0>, aby zapewnić dostarczanie powiadomień."
|
msgstr "Proszę <0>skonfigurować serwer SMTP</0>, aby zapewnić dostarczanie powiadomień."
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "Proszę <0>skonfigurować serwer SMTP</0>, aby zapewnić dostarczanie po
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "Sprawdź logi, aby uzyskać więcej informacji."
|
msgstr "Sprawdź logi, aby uzyskać więcej informacji."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "Sprawdź swoje poświadczenia i spróbuj ponownie"
|
msgstr "Sprawdź swoje poświadczenia i spróbuj ponownie"
|
||||||
@@ -545,15 +558,15 @@ msgstr "Sprawdź swoje poświadczenia i spróbuj ponownie"
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "Utwórz konto administratora"
|
msgstr "Utwórz konto administratora"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "Włącz wyskakujące okna dla tej strony"
|
msgstr "Włącz wyskakujące okna dla tej strony"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "Zaloguj się ponownie"
|
msgstr "Zaloguj się ponownie"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "Proszę zapoznać się z <0>dokumentacją</0>."
|
msgstr "Proszę zapoznać się z <0>dokumentacją</0>."
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "Proszę zapoznać się z <0>dokumentacją</0>."
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "Zaloguj się na swoje konto"
|
msgstr "Zaloguj się na swoje konto"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Port"
|
msgstr "Port"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "Dokładne wykorzystanie w zarejestrowanym czasie"
|
msgstr "Dokładne wykorzystanie w zarejestrowanym czasie"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "Preferowany język"
|
msgstr "Preferowany język"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Klucz publiczny"
|
msgstr "Klucz publiczny"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "Otrzymane"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "Resetuj hasło"
|
msgstr "Resetuj hasło"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "Wznów"
|
msgstr "Wznów"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Zapisz adres, używając klawisza enter lub przecinka. Pozostaw puste, aby wyłączyć powiadomienia e-mail."
|
msgstr "Zapisz adres, używając klawisza enter lub przecinka. Pozostaw puste, aby wyłączyć powiadomienia e-mail."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "Zapisz ustawienia"
|
msgstr "Zapisz ustawienia"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Szukaj"
|
msgstr "Szukaj"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "Szukaj systemów lub ustawień..."
|
msgstr "Szukaj systemów lub ustawień..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "Wysłane"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "Ustawia domyślny zakres czasowy dla wykresów, gdy system jest wyświetlony."
|
msgstr "Ustawia domyślny zakres czasowy dla wykresów, gdy system jest wyświetlony."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "Ustawienia"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "Ustawienia zapisane"
|
msgstr "Ustawienia zapisane"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Zaloguj się"
|
msgstr "Zaloguj się"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "Ustawienia SMTP"
|
msgstr "Ustawienia SMTP"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "Sortuj według"
|
msgstr "Sortuj według"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Status"
|
msgstr "Status"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "Pamięć wymiany używana przez system"
|
msgstr "Pamięć wymiany używana przez system"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "Użycie pamięci wymiany"
|
msgstr "Użycie pamięci wymiany"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "System"
|
msgstr "System"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "Systemy"
|
msgstr "Systemy"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "Systemy"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "Systemy mogą być zarządzane w pliku <0>config.yml</0> znajdującym się w Twoim katalogu danych."
|
msgstr "Systemy mogą być zarządzane w pliku <0>config.yml</0> znajdującym się w Twoim katalogu danych."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "Tabela"
|
msgstr "Tabela"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "Temperatura"
|
msgstr "Temperatura"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "Temperatury czujników systemowych."
|
msgstr "Temperatury czujników systemowych."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "Test <0>URL</0>"
|
msgstr "Test <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Testowe powiadomienie wysłane."
|
msgstr "Testowe powiadomienie wysłane."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "Agent musi być uruchomiony na systemie, aby nawiązać połączenie. Skopiuj poniżej polecenie instalacji agenta."
|
msgstr "Agent musi być uruchomiony na systemie, aby nawiązać połączenie. Skopiuj poniżej polecenie instalacji agenta."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "Agent musi być uruchomiony na systemie, aby nawiązać połączenie. Skopiuj poniżej plik <0>docker-compose.yml</0> dla agenta."
|
msgstr "Agent musi być uruchomiony na systemie, aby nawiązać połączenie. Skopiuj poniżej plik <0>docker-compose.yml</0> dla agenta."
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "Agent musi być uruchomiony na systemie, aby nawiązać połączenie. Sk
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "Następnie zaloguj się do panelu administracyjnego i zresetuj hasło do konta użytkownika w tabeli użytkowników."
|
msgstr "Następnie zaloguj się do panelu administracyjnego i zresetuj hasło do konta użytkownika w tabeli użytkowników."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "Tej akcji nie można cofnąć. Spowoduje to trwałe usunięcie wszystkich bieżących rekordów dla {name} z bazy danych."
|
msgstr "Tej akcji nie można cofnąć. Spowoduje to trwałe usunięcie wszystkich bieżących rekordów dla {name} z bazy danych."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "Przepustowość {extraFsName}"
|
msgstr "Przepustowość {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "Przepustowość głównego systemu plików"
|
msgstr "Przepustowość głównego systemu plików"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "Do e-mail(ów)"
|
msgstr "Do e-mail(ów)"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "Przełącz siatkę"
|
msgstr "Przełącz siatkę"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "Przełącz siatkę"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "Zmień motyw"
|
msgstr "Zmień motyw"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "Wyzwalane, gdy jakikolwiek czujnik przekroczy ustalony próg."
|
msgstr "Wyzwalane, gdy jakikolwiek czujnik przekroczy ustalony próg."
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "Wyzwalane, gdy łączna wartość w górę/w dół przekroczy próg"
|
msgstr "Wyzwalane, gdy łączna wartość w górę/w dół przekroczy próg"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "Wyzwalane, gdy użycie procesora przekracza próg"
|
msgstr "Wyzwalane, gdy użycie procesora przekracza próg"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "Wyzwalane, wykorzystanie pamięci przekroczy ustalony próg."
|
msgstr "Wyzwalane, wykorzystanie pamięci przekroczy ustalony próg."
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "Wyzwalane, gdy status przełącza się między stanem aktywnym a nieaktywnym"
|
msgstr "Wyzwalane, gdy status przełącza się między stanem aktywnym a nieaktywnym"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "Wyzwalane, gdy wykorzystanie któregokolwiek dysku przekroczy ustalony próg"
|
msgstr "Wyzwalane, gdy wykorzystanie któregokolwiek dysku przekroczy ustalony próg"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "Aktualizowane w czasie rzeczywistym. Kliknij system, aby zobaczyć informacje."
|
msgstr "Aktualizowane w czasie rzeczywistym. Kliknij system, aby zobaczyć informacje."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "Czas pracy"
|
msgstr "Czas pracy"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "Wykorzystanie"
|
msgstr "Wykorzystanie"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "Użycie partycji głównej"
|
msgstr "Użycie partycji głównej"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "Użycie partycji głównej"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "Używane"
|
msgstr "Używane"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Użytkownicy"
|
msgstr "Użytkownicy"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Widok"
|
msgstr "Widok"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "Widoczne kolumny"
|
msgstr "Widoczne kolumny"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "Oczekiwanie na wystarczającą liczbę rekordów do wyświetlenia"
|
msgstr "Oczekiwanie na wystarczającą liczbę rekordów do wyświetlenia"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "Oczekiwanie na wystarczającą liczbę rekordów do wyświetlenia"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "Chcesz pomóc nam uczynić nasze tłumaczenia jeszcze lepszymi? Sprawdź <0>Crowdin</0> po więcej szczegółów."
|
msgstr "Chcesz pomóc nam uczynić nasze tłumaczenia jeszcze lepszymi? Sprawdź <0>Crowdin</0> po więcej szczegółów."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Webhook / Powiadomienia push"
|
msgstr "Webhook / Powiadomienia push"
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: pt\n"
|
"Language: pt\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-23 04:50\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Portuguese\n"
|
"Language-Team: Portuguese\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# dia} other {# dias}}"
|
msgstr "{0, plural, one {# dia} other {# dias}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# hora} other {# horas}}"
|
msgstr "{hours, plural, one {# hora} other {# horas}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 hora"
|
msgstr "1 hora"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 semana"
|
msgstr "1 semana"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 horas"
|
msgstr "12 horas"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 horas"
|
msgstr "24 horas"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 dias"
|
msgstr "30 dias"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Ações"
|
msgstr "Ações"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "Alertas Ativos"
|
msgstr "Alertas Ativos"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "Adicionar <0>Sistema</0>"
|
msgstr "Adicionar <0>Sistema</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "Adicionar Novo Sistema"
|
msgstr "Adicionar Novo Sistema"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "Adicionar sistema"
|
msgstr "Adicionar sistema"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "Adicionar URL"
|
msgstr "Adicionar URL"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "Adicionar URL"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "Ajustar opções de exibição para gráficos."
|
msgstr "Ajustar opções de exibição para gráficos."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Admin"
|
msgstr "Admin"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "Agente"
|
msgstr "Agente"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "Alertas"
|
msgstr "Alertas"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "Todos os Sistemas"
|
msgstr "Todos os Sistemas"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "Tem certeza de que deseja excluir {name}?"
|
msgstr "Tem certeza de que deseja excluir {name}?"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "Tem certeza de que deseja excluir {name}?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "A cópia automática requer um contexto seguro."
|
msgstr "A cópia automática requer um contexto seguro."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Média"
|
msgstr "Média"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "Utilização média de CPU dos contêineres"
|
msgstr "Utilização média de CPU dos contêineres"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "Utilização média de CPU dos contêineres"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "A média excede <0>{value}{0}</0>"
|
msgstr "A média excede <0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr ""
|
msgstr "Consumo médio de energia pelas GPU's"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "Utilização média de CPU em todo o sistema"
|
msgstr "Utilização média de CPU em todo o sistema"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr ""
|
msgstr "Utilização média de {0}"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "Backups"
|
msgstr "Backups"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "Largura de Banda"
|
msgstr "Largura de Banda"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel suporta OpenID Connect e muitos provedores de autenticação OAuth2."
|
msgstr "Beszel suporta OpenID Connect e muitos provedores de autenticação OAuth2."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel usa <0>Shoutrrr</0> para integrar com serviços de notificação populares."
|
msgstr "Beszel usa <0>Shoutrrr</0> para integrar com serviços de notificação populares."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "Binário"
|
msgstr "Binário"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "Binário"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "Cache / Buffers"
|
msgstr "Cache / Buffers"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancelar"
|
msgstr "Cancelar"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "Verifique {email} para um link de redefinição."
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "Verifique os logs para mais detalhes."
|
msgstr "Verifique os logs para mais detalhes."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "Verifique seu serviço de notificação"
|
msgstr "Verifique seu serviço de notificação"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "Clique para copiar"
|
msgstr "Clique para copiar"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "Clique para copiar"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "Instruções de linha de comando"
|
msgstr "Instruções de linha de comando"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "Configure como você recebe notificações de alerta."
|
msgstr "Configure como você recebe notificações de alerta."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "Confirmar senha"
|
msgstr "Confirmar senha"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Continuar"
|
msgstr "Continuar"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "Copiado para a área de transferência"
|
msgstr "Copiado para a área de transferência"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Copiar"
|
msgstr "Copiar"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "Copiar host"
|
msgstr "Copiar host"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Copiar comando Linux"
|
msgstr "Copiar comando Linux"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "Copiar comando Linux"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "Copiar texto"
|
msgstr "Copiar texto"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "CPU"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "Uso de CPU"
|
msgstr "Uso de CPU"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "Criar conta"
|
msgstr "Criar conta"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "Criar conta"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "Escuro"
|
msgstr "Escuro"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Painel"
|
msgstr "Painel"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "Painel"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "Período de tempo padrão"
|
msgstr "Período de tempo padrão"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Excluir"
|
msgstr "Excluir"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "Disco"
|
msgstr "Disco"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "E/S de Disco"
|
msgstr "E/S de Disco"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "Uso de Disco"
|
msgstr "Uso de Disco"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "Uso de disco de {extraFsName}"
|
msgstr "Uso de disco de {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Uso de CPU do Docker"
|
msgstr "Uso de CPU do Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Uso de Memória do Docker"
|
msgstr "Uso de Memória do Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "E/S de Rede do Docker"
|
msgstr "E/S de Rede do Docker"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "Documentação"
|
msgstr "Documentação"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Editar"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Email"
|
msgstr "Email"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "Notificações por email"
|
msgstr "Notificações por email"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "Notificações por email"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "Digite o endereço de email para redefinir a senha"
|
msgstr "Digite o endereço de email para redefinir a senha"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "Digite o endereço de email..."
|
msgstr "Digite o endereço de email..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Erro"
|
msgstr "Erro"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "Excede {0}{1} no último {2, plural, one {# minuto} other {# minutos}}"
|
msgstr "Excede {0}{1} no último {2, plural, one {# minuto} other {# minutos}}"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "Exportar configuração"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "Exporte a configuração atual dos seus sistemas."
|
msgstr "Exporte a configuração atual dos seus sistemas."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "Falha na autenticação"
|
msgstr "Falha na autenticação"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "Falha ao salvar configurações"
|
msgstr "Falha ao guardar as definições"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "Falha ao enviar notificação de teste"
|
msgstr "Falha ao enviar notificação de teste"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "Falha ao enviar notificação de teste"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "Falha ao atualizar alerta"
|
msgstr "Falha ao atualizar alerta"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "Filtrar..."
|
msgstr "Filtrar..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "Filtrar..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "Por <0>{min}</0> {min, plural, one {minuto} other {minutos}}"
|
msgstr "Por <0>{min}</0> {min, plural, one {minuto} other {minutos}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "Esqueceu a senha?"
|
msgstr "Esqueceu a senha?"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "Esqueceu a senha?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Geral"
|
msgstr "Geral"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr ""
|
msgstr "Consumo de Energia da GPU"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "Grade"
|
msgstr "Grade"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "Host / IP"
|
msgstr "Host / IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "Host / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "Se você perdeu a senha da sua conta de administrador, pode redefini-la usando o seguinte comando."
|
msgstr "Se você perdeu a senha da sua conta de administrador, pode redefini-la usando o seguinte comando."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "Endereço de email inválido."
|
msgstr "Endereço de email inválido."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "Kernel"
|
msgstr "Kernel"
|
||||||
|
|
||||||
@@ -399,16 +404,16 @@ msgstr "Kernel"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Idioma"
|
msgstr "Idioma"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr ""
|
msgstr "Aspeto"
|
||||||
|
|
||||||
#. Light theme
|
#. Light theme
|
||||||
#: src/components/mode-toggle.tsx:16
|
#: src/components/mode-toggle.tsx:16
|
||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Claro"
|
msgstr "Claro"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Sair"
|
msgstr "Sair"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "Sair"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Entrar"
|
msgstr "Entrar"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "Tentativa de login falhou"
|
msgstr "Tentativa de login falhou"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "Logs"
|
msgstr "Logs"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "Procurando onde criar alertas? Clique nos ícones de sino <0/> na tabela de sistemas."
|
msgstr "Procurando onde criar alertas? Clique nos ícones de sino <0/> na tabela de sistemas."
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "Procurando onde criar alertas? Clique nos ícones de sino <0/> na tabela
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "Gerenciar preferências de exibição e notificação."
|
msgstr "Gerenciar preferências de exibição e notificação."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "Máx 1 min"
|
msgstr "Máx 1 min"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "Memória"
|
msgstr "Memória"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "Uso de Memória"
|
msgstr "Uso de Memória"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Uso de memória dos contêineres Docker"
|
msgstr "Uso de memória dos contêineres Docker"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nome"
|
msgstr "Nome"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "Rede"
|
msgstr "Rede"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Tráfego de rede dos contêineres Docker"
|
msgstr "Tráfego de rede dos contêineres Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "Tráfego de rede das interfaces públicas"
|
msgstr "Tráfego de rede das interfaces públicas"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "Nenhum resultado encontrado."
|
msgstr "Nenhum resultado encontrado."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "Nenhum sistema encontrado."
|
msgstr "Nenhum sistema encontrado."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Notificações"
|
msgstr "Notificações"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "Suporte a OAuth 2 / OIDC"
|
msgstr "Suporte a OAuth 2 / OIDC"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "Suporte a OAuth 2 / OIDC"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "A cada reinício, os sistemas no banco de dados serão atualizados para corresponder aos sistemas definidos no arquivo."
|
msgstr "A cada reinício, os sistemas no banco de dados serão atualizados para corresponder aos sistemas definidos no arquivo."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "Abrir menu"
|
msgstr "Abrir menu"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "Ou continue com"
|
msgstr "Ou continue com"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "Ou continue com"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "Sobrescrever alertas existentes"
|
msgstr "Sobrescrever alertas existentes"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Página"
|
msgstr "Página"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "Páginas / Configurações"
|
msgstr "Páginas / Configurações"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Senha"
|
msgstr "Senha"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "A senha deve ter pelo menos 8 caracteres."
|
msgstr "A senha deve ter pelo menos 8 caracteres."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr "A password tem que ter menos de 72 bytes."
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "Solicitação de redefinição de senha recebida"
|
msgstr "Solicitação de redefinição de senha recebida"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Pausar"
|
msgstr "Pausar"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "Por favor, <0>configure um servidor SMTP</0> para garantir que os alertas sejam entregues."
|
msgstr "Por favor, <0>configure um servidor SMTP</0> para garantir que os alertas sejam entregues."
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "Por favor, <0>configure um servidor SMTP</0> para garantir que os alerta
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "Por favor, verifique os logs para mais detalhes."
|
msgstr "Por favor, verifique os logs para mais detalhes."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "Por favor, verifique suas credenciais e tente novamente"
|
msgstr "Por favor, verifique suas credenciais e tente novamente"
|
||||||
@@ -545,15 +558,15 @@ msgstr "Por favor, verifique suas credenciais e tente novamente"
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "Por favor, crie uma conta de administrador"
|
msgstr "Por favor, crie uma conta de administrador"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "Por favor, habilite pop-ups para este site"
|
msgstr "Por favor, habilite pop-ups para este site"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "Por favor, faça login novamente"
|
msgstr "Por favor, faça login novamente"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "Por favor, veja <0>a documentação</0> para instruções."
|
msgstr "Por favor, veja <0>a documentação</0> para instruções."
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "Por favor, veja <0>a documentação</0> para instruções."
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "Por favor, entre na sua conta"
|
msgstr "Por favor, entre na sua conta"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Porta"
|
msgstr "Porta"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "Utilização precisa no momento registrado"
|
msgstr "Utilização precisa no momento registrado"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "Idioma Preferido"
|
msgstr "Idioma Preferido"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Chave Pública"
|
msgstr "Chave Pública"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "Recebido"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "Redefinir Senha"
|
msgstr "Redefinir Senha"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "Retomar"
|
msgstr "Retomar"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Salve o endereço usando a tecla enter ou vírgula. Deixe em branco para desativar notificações por email."
|
msgstr "Salve o endereço usando a tecla enter ou vírgula. Deixe em branco para desativar notificações por email."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "Salvar Configurações"
|
msgstr "Guardar Definições"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr "Guardar Sistema"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Pesquisar"
|
msgstr "Pesquisar"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "Pesquisar por sistemas ou configurações..."
|
msgstr "Pesquisar por sistemas ou configurações..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "Enviado"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "Define o intervalo de tempo padrão para gráficos quando um sistema é visualizado."
|
msgstr "Define o intervalo de tempo padrão para gráficos quando um sistema é visualizado."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -638,42 +655,42 @@ msgstr "Configurações"
|
|||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:33
|
#: src/components/routes/settings/layout.tsx:33
|
||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "Configurações salvas"
|
msgstr "Definições guardadas"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Entrar"
|
msgstr "Entrar"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "Configurações SMTP"
|
msgstr "Configurações SMTP"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "Ordenar Por"
|
msgstr "Ordenar Por"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Status"
|
msgstr "Status"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "Espaço de swap usado pelo sistema"
|
msgstr "Espaço de swap usado pelo sistema"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "Uso de Swap"
|
msgstr "Uso de Swap"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Sistema"
|
msgstr "Sistema"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "Sistemas"
|
msgstr "Sistemas"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "Sistemas"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "Os sistemas podem ser gerenciados em um arquivo <0>config.yml</0> dentro do seu diretório de dados."
|
msgstr "Os sistemas podem ser gerenciados em um arquivo <0>config.yml</0> dentro do seu diretório de dados."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "Tabela"
|
msgstr "Tabela"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr "Temp"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "Temperatura"
|
msgstr "Temperatura"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "Temperaturas dos sensores do sistema"
|
msgstr "Temperaturas dos sensores do sistema"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "Testar <0>URL</0>"
|
msgstr "Testar <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Notificação de teste enviada"
|
msgstr "Notificação de teste enviada"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "O agente deve estar em execução no sistema para conectar. Copie o comando de instalação para o agente abaixo."
|
msgstr "O agente deve estar em execução no sistema para conectar. Copie o comando de instalação para o agente abaixo."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "O agente deve estar em execução no sistema para conectar. Copie o <0>docker-compose.yml</0> para o agente abaixo."
|
msgstr "O agente deve estar em execução no sistema para conectar. Copie o <0>docker-compose.yml</0> para o agente abaixo."
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "O agente deve estar em execução no sistema para conectar. Copie o <0>d
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "Em seguida, faça login no backend e redefina a senha da sua conta de usuário na tabela de usuários."
|
msgstr "Em seguida, faça login no backend e redefina a senha da sua conta de usuário na tabela de usuários."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "Esta ação não pode ser desfeita. Isso excluirá permanentemente todos os registros atuais de {name} do banco de dados."
|
msgstr "Esta ação não pode ser desfeita. Isso excluirá permanentemente todos os registros atuais de {name} do banco de dados."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "Taxa de transferência de {extraFsName}"
|
msgstr "Taxa de transferência de {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "Taxa de transferência do sistema de arquivos raiz"
|
msgstr "Taxa de transferência do sistema de arquivos raiz"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "Para email(s)"
|
msgstr "Para email(s)"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "Alternar grade"
|
msgstr "Alternar grade"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "Alternar grade"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "Alternar tema"
|
msgstr "Alternar tema"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "Dispara quando qualquer sensor excede um limite"
|
msgstr "Dispara quando qualquer sensor excede um limite"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "Dispara quando a soma de subida/descida excede um limite"
|
msgstr "Dispara quando a soma de subida/descida excede um limite"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "Dispara quando o uso de CPU excede um limite"
|
msgstr "Dispara quando o uso de CPU excede um limite"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "Dispara quando o uso de memória excede um limite"
|
msgstr "Dispara quando o uso de memória excede um limite"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "Dispara quando o status alterna entre ativo e inativo"
|
msgstr "Dispara quando o status alterna entre ativo e inativo"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "Dispara quando o uso de qualquer disco excede um limite"
|
msgstr "Dispara quando o uso de qualquer disco excede um limite"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "Atualizado em tempo real. Clique em um sistema para ver informações."
|
msgstr "Atualizado em tempo real. Clique em um sistema para ver informações."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "Tempo de Atividade"
|
msgstr "Tempo de Atividade"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "Uso"
|
msgstr "Uso"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "Uso da partição raiz"
|
msgstr "Uso da partição raiz"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "Uso da partição raiz"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "Usado"
|
msgstr "Usado"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Usuários"
|
msgstr "Usuários"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Visual"
|
msgstr "Visual"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "Campos Visíveis"
|
msgstr "Campos Visíveis"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "Aguardando registros suficientes para exibir"
|
msgstr "Aguardando registros suficientes para exibir"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "Aguardando registros suficientes para exibir"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "Quer nos ajudar a melhorar ainda mais nossas traduções? Confira <0>Crowdin</0> para mais detalhes."
|
msgstr "Quer nos ajudar a melhorar ainda mais nossas traduções? Confira <0>Crowdin</0> para mais detalhes."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Notificações Webhook / Push"
|
msgstr "Notificações Webhook / Push"
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: ru\n"
|
"Language: ru\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-23 04:50\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Russian\n"
|
"Language-Team: Russian\n"
|
||||||
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
|
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# день} other {# дней}}"
|
msgstr "{0, plural, one {# день} other {# дней}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# час} other {# часов}}"
|
msgstr "{hours, plural, one {# час} other {# часов}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 час"
|
msgstr "1 час"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 неделя"
|
msgstr "1 неделя"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 часов"
|
msgstr "12 часов"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 часа"
|
msgstr "24 часа"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 дней"
|
msgstr "30 дней"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Действия"
|
msgstr "Действия"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "Активные оповещения"
|
msgstr "Активные оповещения"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "Добавить <0>Систему</0>"
|
msgstr "Добавить <0>Систему</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "Добавить новую систему"
|
msgstr "Добавить новую систему"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "Добавить систему"
|
msgstr "Добавить систему"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "Добавить URL"
|
msgstr "Добавить URL"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "Добавить URL"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "Настроить параметры отображения для графиков."
|
msgstr "Настроить параметры отображения для графиков."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Администратор"
|
msgstr "Администратор"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "Агент"
|
msgstr "Агент"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "Оповещения"
|
msgstr "Оповещения"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "Все системы"
|
msgstr "Все системы"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "Вы уверены, что хотите удалить {name}?"
|
msgstr "Вы уверены, что хотите удалить {name}?"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "Вы уверены, что хотите удалить {name}?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "Автоматическое копирование требует безопасного контекста."
|
msgstr "Автоматическое копирование требует безопасного контекста."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Среднее"
|
msgstr "Среднее"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "Среднее использование CPU контейнерами"
|
msgstr "Среднее использование CPU контейнерами"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "Среднее использование CPU контейнерами"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "Среднее превышает <0>{value}{0}</0>"
|
msgstr "Среднее превышает <0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr "Среднее потребление мощности всеми GPU"
|
msgstr "Среднее потребление мощности всеми GPU"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "Среднее использование CPU по всей системе"
|
msgstr "Среднее использование CPU по всей системе"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr "Среднее использование {0}"
|
msgstr "Среднее использование {0}"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "Резервные копии"
|
msgstr "Резервные копии"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "Пропускная способность"
|
msgstr "Пропускная способность"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel поддерживает OpenID Connect и многих поставщиков аутентификации OAuth2."
|
msgstr "Beszel поддерживает OpenID Connect и множество поставщиков аутентификации OAuth2."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel использует <0>Shoutrrr</0> для интеграции с популярными сервисами уведомлений."
|
msgstr "Beszel использует <0>Shoutrrr</0> для интеграции с популярными сервисами уведомлений."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "Двоичный"
|
msgstr "Двоичный"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "Двоичный"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "Кэш / Буферы"
|
msgstr "Кэш / Буферы"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Отмена"
|
msgstr "Отмена"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "Проверьте {email} для получения ссылки на
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "Проверьте журналы для получения более подробной информации."
|
msgstr "Проверьте журналы для получения более подробной информации."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "Проверьте ваш сервис уведомлений"
|
msgstr "Проверьте ваш сервис уведомлений"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "Нажмите, чтобы скопировать"
|
msgstr "Нажмите, чтобы скопировать"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "Нажмите, чтобы скопировать"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "Инструкции командной строки"
|
msgstr "Инструкции командной строки"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "Настройте, как вы получаете уведомления об оповещениях."
|
msgstr "Настройте, как вы получаете уведомления об оповещениях."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "Подтвердите пароль"
|
msgstr "Подтвердите пароль"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Продолжить"
|
msgstr "Продолжить"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "Скопировано в буфер обмена"
|
msgstr "Скопировано в буфер обмена"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Копировать"
|
msgstr "Копировать"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "Копировать хост"
|
msgstr "Копировать хост"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Копировать команду Linux"
|
msgstr "Копировать команду Linux"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "Копировать команду Linux"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "Копировать текст"
|
msgstr "Копировать текст"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "CPU"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "Использование CPU"
|
msgstr "Использование CPU"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "Создать аккаунт"
|
msgstr "Создать аккаунт"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "Создать аккаунт"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "Темная"
|
msgstr "Темная"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Панель управления"
|
msgstr "Панель управления"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "Панель управления"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "Период по умолчанию"
|
msgstr "Период по умолчанию"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Удалить"
|
msgstr "Удалить"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "Диск"
|
msgstr "Диск"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "Дисковый ввод/вывод"
|
msgstr "Дисковый ввод/вывод"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "Использование диска"
|
msgstr "Использование диска"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "Использование диска {extraFsName}"
|
msgstr "Использование диска {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Использование CPU Docker"
|
msgstr "Использование CPU Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Использование памяти Docker"
|
msgstr "Использование памяти Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "Сетевой ввод/вывод Docker"
|
msgstr "Сетевой ввод/вывод Docker"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "Документация"
|
msgstr "Документация"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Электронная почта"
|
msgstr "Электронная почта"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "Уведомления по электронной почте"
|
msgstr "Уведомления по электронной почте"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "Уведомления по электронной почте"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "Введите адрес электронной почты для сброса пароля"
|
msgstr "Введите адрес электронной почты для сброса пароля"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "Введите адрес электронной почты..."
|
msgstr "Введите адрес электронной почты..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Ошибка"
|
msgstr "Ошибка"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "Превышает {0}{1} за последние {2, plural, one {# минуту} other {# минут}}"
|
msgstr "Превышает {0}{1} за последние {2, plural, one {# минуту} other {# минут}}"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "Экспорт конфигурации"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "Экспортируйте текущую конфигурацию систем."
|
msgstr "Экспортируйте текущую конфигурацию систем."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "Не удалось аутентифицировать"
|
msgstr "Не удалось аутентифицировать"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "Не удалось сохранить настройки"
|
msgstr "Не удалось сохранить настройки"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "Не удалось отправить тестовое уведомление"
|
msgstr "Не удалось отправить тестовое уведомление"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "Не удалось отправить тестовое уведомле
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "Не удалось обновить оповещение"
|
msgstr "Не удалось обновить оповещение"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "Фильтр..."
|
msgstr "Фильтр..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "Фильтр..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "На <0>{min}</0> {min, plural, one {минуту} other {минут}}"
|
msgstr "На <0>{min}</0> {min, plural, one {минуту} other {минут}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "Забыли пароль?"
|
msgstr "Забыли пароль?"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "Забыли пароль?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Общие"
|
msgstr "Общие"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr "Потребляемая мощность GPU"
|
msgstr "Потребляемая мощность GPU"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "Сетка"
|
msgstr "Сетка"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "Хост / IP"
|
msgstr "Хост / IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "Хост / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "Если вы потеряли пароль от своей учетной записи администратора, вы можете сбросить его, используя следующую команду."
|
msgstr "Если вы потеряли пароль от своей учетной записи администратора, вы можете сбросить его, используя следующую команду."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "Неверный адрес электронной почты."
|
msgstr "Неверный адрес электронной почты."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "Ядро"
|
msgstr "Ядро"
|
||||||
|
|
||||||
@@ -399,7 +404,7 @@ msgstr "Ядро"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Язык"
|
msgstr "Язык"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "Макет"
|
msgstr "Макет"
|
||||||
|
|
||||||
@@ -408,7 +413,7 @@ msgstr "Макет"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Светлая"
|
msgstr "Светлая"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Выйти"
|
msgstr "Выйти"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "Выйти"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Вход"
|
msgstr "Вход"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "Попытка входа не удалась"
|
msgstr "Попытка входа не удалась"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "Журналы"
|
msgstr "Журналы"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "Ищете, где создать оповещения? Нажмите на значки колокольчика <0/> в таблице систем."
|
msgstr "Ищете, где создать оповещения? Нажмите на значки колокольчика <0/> в таблице систем."
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "Ищете, где создать оповещения? Нажмите
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "Управляйте предпочтениями отображения и уведомлений."
|
msgstr "Управляйте предпочтениями отображения и уведомлений."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "Макс 1 мин"
|
msgstr "Макс 1 мин"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "Память"
|
msgstr "Память"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "Использование памяти"
|
msgstr "Использование памяти"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Использование памяти контейнерами Docker"
|
msgstr "Использование памяти контейнерами Docker"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Имя"
|
msgstr "Имя"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "Сеть"
|
msgstr "Сеть"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Сетевой трафик контейнеров Docker"
|
msgstr "Сетевой трафик контейнеров Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "Сетевой трафик публичных интерфейсов"
|
msgstr "Сетевой трафик публичных интерфейсов"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "Результаты не найдены."
|
msgstr "Результаты не найдены."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "Системы не найдены."
|
msgstr "Системы не найдены."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Уведомления"
|
msgstr "Уведомления"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "Поддержка OAuth 2 / OIDC"
|
msgstr "Поддержка OAuth 2 / OIDC"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "Поддержка OAuth 2 / OIDC"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "При каждом перезапуске системы в базе данных будут обновлены в соответствии с системами, определенными в файле."
|
msgstr "При каждом перезапуске системы в базе данных будут обновлены в соответствии с системами, определенными в файле."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "Открыть меню"
|
msgstr "Открыть меню"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "Или продолжить с"
|
msgstr "Или продолжить с"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "Или продолжить с"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "Перезаписать существующие оповещения"
|
msgstr "Перезаписать существующие оповещения"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Страница"
|
msgstr "Страница"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "Страницы / Настройки"
|
msgstr "Страницы / Настройки"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Пароль"
|
msgstr "Пароль"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "Пароль должен содержать не менее 8 символов."
|
msgstr "Пароль должен содержать не менее 8 символов."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "Запрос на сброс пароля получен"
|
msgstr "Запрос на сброс пароля получен"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Пауза"
|
msgstr "Пауза"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "Пожалуйста, <0>настройте SMTP-сервер</0>, чтобы гарантировать доставку оповещений."
|
msgstr "Пожалуйста, <0>настройте SMTP-сервер</0>, чтобы гарантировать доставку оповещений."
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "Пожалуйста, <0>настройте SMTP-сервер</0>, чт
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "Пожалуйста, проверьте журналы для получения более подробной информации."
|
msgstr "Пожалуйста, проверьте журналы для получения более подробной информации."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "Пожалуйста, проверьте свои учетные данные и попробуйте снова"
|
msgstr "Пожалуйста, проверьте свои учетные данные и попробуйте снова"
|
||||||
@@ -545,15 +558,15 @@ msgstr "Пожалуйста, проверьте свои учетные дан
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "Пожалуйста, создайте учетную запись администратора"
|
msgstr "Пожалуйста, создайте учетную запись администратора"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "Пожалуйста, включите всплывающие окна для этого сайта"
|
msgstr "Пожалуйста, включите всплывающие окна для этого сайта"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "Пожалуйста, войдите снова"
|
msgstr "Пожалуйста, войдите снова"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "Пожалуйста, смотрите <0>документацию</0> для получения инструкций."
|
msgstr "Пожалуйста, смотрите <0>документацию</0> для получения инструкций."
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "Пожалуйста, смотрите <0>документацию</0>
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "Пожалуйста, войдите в свою учетную запись"
|
msgstr "Пожалуйста, войдите в свою учетную запись"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Порт"
|
msgstr "Порт"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "Точное использование в записанное время"
|
msgstr "Точное использование в записанное время"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "Предпочтительный язык"
|
msgstr "Предпочтительный язык"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Ключ"
|
msgstr "Ключ"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "Получено"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "Сбросить пароль"
|
msgstr "Сбросить пароль"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "Возобновить"
|
msgstr "Возобновить"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Сохраните адрес, используя клавишу ввода или запятую. Оставьте пустым, чтобы отключить уведомления по электронной почте."
|
msgstr "Сохраните адрес, используя клавишу ввода или запятую. Оставьте пустым, чтобы отключить уведомления по электронной почте."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "Сохранить настройки"
|
msgstr "Сохранить настройки"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Поиск"
|
msgstr "Поиск"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "Поиск систем или настроек..."
|
msgstr "Поиск систем или настроек..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "Отправлено"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "Устанавливает диапазон времени по умолчанию для графиков при просмотре системы."
|
msgstr "Устанавливает диапазон времени по умолчанию для графиков при просмотре системы."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "Настройки"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "Настройки сохранены"
|
msgstr "Настройки сохранены"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Войти"
|
msgstr "Войти"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "Настройки SMTP"
|
msgstr "Настройки SMTP"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "Сортировать по"
|
msgstr "Сортировать по"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Статус"
|
msgstr "Статус"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "Используемое системой пространство подкачки"
|
msgstr "Используемое системой пространство подкачки"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "Использование подкачки"
|
msgstr "Использование подкачки"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Система"
|
msgstr "Система"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "Системы"
|
msgstr "Системы"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "Системы"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "Системы могут управляться в файле <0>config.yml</0> внутри вашего каталога данных."
|
msgstr "Системы могут управляться в файле <0>config.yml</0> внутри вашего каталога данных."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "Таблица"
|
msgstr "Таблица"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "Температура"
|
msgstr "Температура"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "Температуры датчиков системы"
|
msgstr "Температуры датчиков системы"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "Тест <0>URL</0>"
|
msgstr "Тест <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Тестовое уведомление отправлено"
|
msgstr "Тестовое уведомление отправлено"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "Агент должен работать на системе для подключения. Скопируйте команду установки агента ниже."
|
msgstr "Агент должен работать на системе для подключения. Скопируйте команду установки агента ниже."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "Агент должен работать на системе для подключения. Скопируйте <0>docker-compose.yml</0> для агента ниже."
|
msgstr "Агент должен работать на системе для подключения. Скопируйте <0>docker-compose.yml</0> для агента ниже."
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "Агент должен работать на системе для по
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "Затем войдите в бэкенд и сбросьте пароль вашей учетной записи в таблице пользователей."
|
msgstr "Затем войдите в бэкенд и сбросьте пароль вашей учетной записи в таблице пользователей."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "Это действие не может быть отменено. Это навсегда удалит все текущие записи для {name} из базы данных."
|
msgstr "Это действие не может быть отменено. Это навсегда удалит все текущие записи для {name} из базы данных."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "Пропускная способность {extraFsName}"
|
msgstr "Пропускная способность {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "Пропускная способность корневой файловой системы"
|
msgstr "Пропускная способность корневой файловой системы"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "На электронную почту"
|
msgstr "На электронную почту"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "Переключить сетку"
|
msgstr "Переключить сетку"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "Переключить сетку"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "Переключить тему"
|
msgstr "Переключить тему"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "Срабатывает, когда любой датчик превышает порог"
|
msgstr "Срабатывает, когда любой датчик превышает порог"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "Срабатывает, когда комбинированный вход/выход превышает порог"
|
msgstr "Срабатывает, когда комбинированный вход/выход превышает порог"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "Срабатывает, когда использование CPU превышает порог"
|
msgstr "Срабатывает, когда использование CPU превышает порог"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "Срабатывает, когда использование памяти превышает порог"
|
msgstr "Срабатывает, когда использование памяти превышает порог"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "Срабатывает, когда статус переключается между включено и выключено"
|
msgstr "Срабатывает, когда статус переключается между включено и выключено"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "Срабатывает, когда использование любого диска превышает порог"
|
msgstr "Срабатывает, когда использование любого диска превышает порог"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "Обновляется в реальном времени. Нажмите на систему, чтобы просмотреть информацию."
|
msgstr "Обновляется в реальном времени. Нажмите на систему, чтобы просмотреть информацию."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "Время работы"
|
msgstr "Время работы"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "Использование"
|
msgstr "Использование"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "Использование корневого раздела"
|
msgstr "Использование корневого раздела"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "Использование корневого раздела"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "Использовано"
|
msgstr "Использовано"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Пользователи"
|
msgstr "Пользователи"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Вид"
|
msgstr "Вид"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "Видимые столбцы"
|
msgstr "Видимые столбцы"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "Ожидание достаточного количества записей для отображения"
|
msgstr "Ожидание достаточного количества записей для отображения"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "Ожидание достаточного количества запи
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "Хотите помочь нам улучшить наши переводы? Посетите <0>Crowdin</0> для получения более подробной информации."
|
msgstr "Хотите помочь нам улучшить наши переводы? Посетите <0>Crowdin</0> для получения более подробной информации."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Webhook / Push уведомления"
|
msgstr "Webhook / Push уведомления"
|
||||||
|
|
||||||
|
|||||||
853
beszel/site/src/locales/sl/sl.po
Normal file
853
beszel/site/src/locales/sl/sl.po
Normal file
@@ -0,0 +1,853 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"POT-Creation-Date: 2024-11-01 11:30-0400\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: @lingui/cli\n"
|
||||||
|
"Language: sl\n"
|
||||||
|
"Project-Id-Version: beszel\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: Slovenian\n"
|
||||||
|
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
|
||||||
|
"X-Crowdin-Project: beszel\n"
|
||||||
|
"X-Crowdin-Project-ID: 733311\n"
|
||||||
|
"X-Crowdin-Language: sl\n"
|
||||||
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:252
|
||||||
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
|
msgstr "{0, plural, one {# dan} two {# dneva} few {# dni} other {# dni}}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:250
|
||||||
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
|
msgstr "{hours, plural, one {# ura} two {# uri} few {# ur} other {# ur}}"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:158
|
||||||
|
msgid "1 hour"
|
||||||
|
msgstr "1 ura"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:181
|
||||||
|
msgid "1 week"
|
||||||
|
msgstr "1 teden"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:166
|
||||||
|
msgid "12 hours"
|
||||||
|
msgstr "12 ur"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:174
|
||||||
|
msgid "24 hours"
|
||||||
|
msgstr "24 ur"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:189
|
||||||
|
msgid "30 days"
|
||||||
|
msgstr "30 dni"
|
||||||
|
|
||||||
|
#. Table column
|
||||||
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
|
msgid "Actions"
|
||||||
|
msgstr "Dejanja"
|
||||||
|
|
||||||
|
#: src/components/routes/home.tsx:62
|
||||||
|
msgid "Active Alerts"
|
||||||
|
msgstr "Aktivna opozorila"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:42
|
||||||
|
msgid "Add <0>System</0>"
|
||||||
|
msgstr "Dodaj <0>sistem</0>"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:124
|
||||||
|
msgid "Add New System"
|
||||||
|
msgstr "Dodaj nov sistem"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Add system"
|
||||||
|
msgstr "Dodaj sistem"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
|
msgid "Add URL"
|
||||||
|
msgstr "Dodaj URL"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:81
|
||||||
|
msgid "Adjust display options for charts."
|
||||||
|
msgstr "Prilagodi možnosti prikaza za grafikone."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:133
|
||||||
|
#: src/components/command-palette.tsx:146
|
||||||
|
#: src/components/command-palette.tsx:160
|
||||||
|
#: src/components/command-palette.tsx:174
|
||||||
|
#: src/components/command-palette.tsx:189
|
||||||
|
msgid "Admin"
|
||||||
|
msgstr "Administrator"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
|
msgid "Agent"
|
||||||
|
msgstr "Agent"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:32
|
||||||
|
#: src/components/alerts/alert-button.tsx:68
|
||||||
|
msgid "Alerts"
|
||||||
|
msgstr "Opozorila"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
|
msgid "All Systems"
|
||||||
|
msgstr "Vsi sistemi"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
|
msgid "Are you sure you want to delete {name}?"
|
||||||
|
msgstr "Ali ste prepričani, da želite izbrisati {name}?"
|
||||||
|
|
||||||
|
#: src/components/copy-to-clipboard.tsx:16
|
||||||
|
msgid "Automatic copy requires a secure context."
|
||||||
|
msgstr "Za samodejno kopiranje je potreben varen kontekst."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:626
|
||||||
|
msgid "Average"
|
||||||
|
msgstr "Povprečno"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:403
|
||||||
|
msgid "Average CPU utilization of containers"
|
||||||
|
msgstr "Povprečna izkoriščenost procesorja kontejnerjev"
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:206
|
||||||
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
|
msgstr "Povprečje presega <0>{value}{0}</0>"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:504
|
||||||
|
msgid "Average power consumption of GPUs"
|
||||||
|
msgstr "Povprečna poraba energije GPU"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:392
|
||||||
|
msgid "Average system-wide CPU utilization"
|
||||||
|
msgstr "Povprečna CPU izkoriščenost v celotnem sistemu"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:522
|
||||||
|
msgid "Average utilization of {0}"
|
||||||
|
msgstr "Povprečna poraba {0}"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:171
|
||||||
|
#: src/components/navbar.tsx:94
|
||||||
|
msgid "Backups"
|
||||||
|
msgstr "Varnostne kopije"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:448
|
||||||
|
#: src/lib/utils.ts:326
|
||||||
|
msgid "Bandwidth"
|
||||||
|
msgstr "Pasovna širina"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:304
|
||||||
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
|
msgstr "Beszel podpira OpenID Connect in številne ponudnike preverjanja pristnosti OAuth2."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
|
msgstr "Beszel uporablja <0>Shoutrrr</0> za integracijo s priljubljenimi storitvami obveščanja."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:129
|
||||||
|
msgid "Binary"
|
||||||
|
msgstr "Binarno"
|
||||||
|
|
||||||
|
#: src/components/charts/mem-chart.tsx:89
|
||||||
|
msgid "Cache / Buffers"
|
||||||
|
msgstr "Predpomnilnik / medpomnilniki"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Prekliči"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:68
|
||||||
|
msgid "Caution - potential data loss"
|
||||||
|
msgstr "Pozor - možna izguba podatkov"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:36
|
||||||
|
msgid "Change general application options."
|
||||||
|
msgstr "Spremeni splošne možnosti aplikacije."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:78
|
||||||
|
msgid "Chart options"
|
||||||
|
msgstr "Možnosti grafikona"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:34
|
||||||
|
msgid "Check {email} for a reset link."
|
||||||
|
msgstr "Preverite {email} za povezavo za ponastavitev."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:40
|
||||||
|
msgid "Check logs for more details."
|
||||||
|
msgstr "Za več podrobnosti preverite dnevnike."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
|
msgid "Check your notification service"
|
||||||
|
msgstr "Preverite storitev obveščanja"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:203
|
||||||
|
msgid "Click to copy"
|
||||||
|
msgstr "Klikni za kopiranje"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:83
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:89
|
||||||
|
msgid "Command line instructions"
|
||||||
|
msgstr "Navodila za ukazno vrstico"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
|
msgid "Configure how you receive alert notifications."
|
||||||
|
msgstr "Nastavi način prejemanja opozorilnih obvestil."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:210
|
||||||
|
#: src/components/login/auth-form.tsx:215
|
||||||
|
msgid "Confirm password"
|
||||||
|
msgstr "Potrdite geslo"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
|
msgid "Continue"
|
||||||
|
msgstr "Nadaljuj"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:26
|
||||||
|
msgid "Copied to clipboard"
|
||||||
|
msgstr "Kopirano v odložišče"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
|
msgid "Copy"
|
||||||
|
msgstr "Kopiraj"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
|
msgid "Copy host"
|
||||||
|
msgstr "Kopiraj gostitelja"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:223
|
||||||
|
msgid "Copy Linux command"
|
||||||
|
msgstr "Kopiraj Linux ukaz"
|
||||||
|
|
||||||
|
#: src/components/copy-to-clipboard.tsx:13
|
||||||
|
msgid "Copy text"
|
||||||
|
msgstr "Kopiraj besedilo"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
|
msgid "CPU"
|
||||||
|
msgstr "CPU"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:56
|
||||||
|
#: src/components/routes/system.tsx:391
|
||||||
|
#: src/lib/utils.ts:308
|
||||||
|
msgid "CPU Usage"
|
||||||
|
msgstr "CPU poraba"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:236
|
||||||
|
msgid "Create account"
|
||||||
|
msgstr "Ustvari račun"
|
||||||
|
|
||||||
|
#. Dark theme
|
||||||
|
#: src/components/mode-toggle.tsx:21
|
||||||
|
msgid "Dark"
|
||||||
|
msgstr "Temno"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:82
|
||||||
|
#: src/components/routes/home.tsx:35
|
||||||
|
msgid "Dashboard"
|
||||||
|
msgstr "Nadzorna plošča"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:85
|
||||||
|
msgid "Default time period"
|
||||||
|
msgstr "Privzeto časovno obdobje"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Izbriši"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
|
msgid "Disk"
|
||||||
|
msgstr "Disk"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:438
|
||||||
|
msgid "Disk I/O"
|
||||||
|
msgstr "Disk I/O"
|
||||||
|
|
||||||
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
|
#: src/components/routes/system.tsx:431
|
||||||
|
#: src/lib/utils.ts:320
|
||||||
|
msgid "Disk Usage"
|
||||||
|
msgstr "Poraba diska"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:559
|
||||||
|
msgid "Disk usage of {extraFsName}"
|
||||||
|
msgstr "Poraba diska za {extraFsName}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:402
|
||||||
|
msgid "Docker CPU Usage"
|
||||||
|
msgstr "Docker CPU poraba"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:423
|
||||||
|
msgid "Docker Memory Usage"
|
||||||
|
msgstr "Docker poraba spomina"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:464
|
||||||
|
msgid "Docker Network I/O"
|
||||||
|
msgstr "Docker I/O mreže"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:125
|
||||||
|
msgid "Documentation"
|
||||||
|
msgstr "Dokumentacija"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
|
msgid "Email"
|
||||||
|
msgstr "E-pošta"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
|
msgid "Email notifications"
|
||||||
|
msgstr "E-poštna obvestila"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:38
|
||||||
|
msgid "Enter email address to reset password"
|
||||||
|
msgstr "Vnesite e-poštni naslov za ponastavitev gesla"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
|
msgid "Enter email address..."
|
||||||
|
msgstr "Vnesite e-poštni naslov..."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:136
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
|
msgid "Error"
|
||||||
|
msgstr "Napaka"
|
||||||
|
|
||||||
|
#: src/components/routes/home.tsx:81
|
||||||
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
|
msgstr "Preseženo {0}{1} v zadnjih {2, plural, one {# minuti} other {# minutah}}"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:72
|
||||||
|
msgid "Existing systems not defined in <0>config.yml</0> will be deleted. Please make regular backups."
|
||||||
|
msgstr "Obstoječi sistemi, ki niso definirani v <0>config.yml</0>, bodo izbrisani. Prosimo, naredite redne varnostne kopije."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:93
|
||||||
|
msgid "Export configuration"
|
||||||
|
msgstr "Izvozi nastavitve"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:48
|
||||||
|
msgid "Export your current systems configuration."
|
||||||
|
msgstr "Izvozi trenutne nastavitve sistema."
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:39
|
||||||
|
msgid "Failed to authenticate"
|
||||||
|
msgstr "Preverjanje pristnosti ni uspelo"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
|
msgid "Failed to save settings"
|
||||||
|
msgstr "Shranjevanje nastavitev ni uspelo"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
|
msgid "Failed to send test notification"
|
||||||
|
msgstr "Pošiljanje testnega obvestila ni uspelo"
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:24
|
||||||
|
msgid "Failed to update alert"
|
||||||
|
msgstr "Opozorila ni bilo mogoče posodobiti"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:599
|
||||||
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
|
msgid "Filter..."
|
||||||
|
msgstr "Filter..."
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:227
|
||||||
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
|
msgstr "Za <0>{min}</0> {min, plural, one {minuto} other {minut}}"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:328
|
||||||
|
msgid "Forgot password?"
|
||||||
|
msgstr "Pozabljeno geslo?"
|
||||||
|
|
||||||
|
#. Context: General settings
|
||||||
|
#: src/components/routes/settings/general.tsx:33
|
||||||
|
#: src/components/routes/settings/layout.tsx:51
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Splošno"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:503
|
||||||
|
msgid "GPU Power Draw"
|
||||||
|
msgstr "GPU poraba moči"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
|
msgid "Grid"
|
||||||
|
msgstr "Mreža"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:157
|
||||||
|
msgid "Host / IP"
|
||||||
|
msgstr "Gostitelj / IP"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:93
|
||||||
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
|
msgstr "Če ste izgubili geslo za svoj skrbniški račun, ga lahko ponastavite z naslednjim ukazom."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:17
|
||||||
|
msgid "Invalid email address."
|
||||||
|
msgstr "Napačen e-poštni naslov."
|
||||||
|
|
||||||
|
#. Linux kernel
|
||||||
|
#: src/components/routes/system.tsx:264
|
||||||
|
msgid "Kernel"
|
||||||
|
msgstr "Jedro"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:45
|
||||||
|
msgid "Language"
|
||||||
|
msgstr "Jezik"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
|
msgid "Layout"
|
||||||
|
msgstr "Postavitev"
|
||||||
|
|
||||||
|
#. Light theme
|
||||||
|
#: src/components/mode-toggle.tsx:16
|
||||||
|
msgid "Light"
|
||||||
|
msgstr "Svetlo"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:105
|
||||||
|
msgid "Log Out"
|
||||||
|
msgstr "Odjava"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:19
|
||||||
|
msgid "Login"
|
||||||
|
msgstr "Prijava"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:39
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
|
msgid "Login attempt failed"
|
||||||
|
msgstr "Poskus prijave ni uspel"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:157
|
||||||
|
#: src/components/navbar.tsx:86
|
||||||
|
msgid "Logs"
|
||||||
|
msgstr "Dnevniki"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
|
msgstr "Namesto tega iščete, kje ustvariti opozorila? Kliknite ikone zvonca <0/> v sistemski tabeli."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:85
|
||||||
|
msgid "Manage display and notification preferences."
|
||||||
|
msgstr "Upravljajte nastavitve prikaza in obvestil."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Chart select field. Please try to keep this short.
|
||||||
|
#: src/components/routes/system.tsx:629
|
||||||
|
msgid "Max 1 min"
|
||||||
|
msgstr "Največ 1 min"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
|
msgid "Memory"
|
||||||
|
msgstr "Pomnilnik"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:413
|
||||||
|
#: src/lib/utils.ts:314
|
||||||
|
msgid "Memory Usage"
|
||||||
|
msgstr "Poraba pomnilnika"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:424
|
||||||
|
msgid "Memory usage of docker containers"
|
||||||
|
msgstr "Poraba pomnilnika docker kontejnerjev"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:153
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "Naziv"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
|
msgid "Net"
|
||||||
|
msgstr "Mreža"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:465
|
||||||
|
msgid "Network traffic of docker containers"
|
||||||
|
msgstr "Omrežni promet docker kontejnerjev"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:450
|
||||||
|
msgid "Network traffic of public interfaces"
|
||||||
|
msgstr "Omrežni promet javnih vmesnikov"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:50
|
||||||
|
msgid "No results found."
|
||||||
|
msgstr "Ni rezultatov."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
|
msgid "No systems found."
|
||||||
|
msgstr "Ne najdem sistema."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:111
|
||||||
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
|
msgid "Notifications"
|
||||||
|
msgstr "Obvestila"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:299
|
||||||
|
msgid "OAuth 2 / OIDC support"
|
||||||
|
msgstr "Podpora za OAuth 2 / OIDC"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:61
|
||||||
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
|
msgstr "Ob vsakem ponovnem zagonu bodo sistemi v zbirki podatkov posodobljeni, da se bodo ujemali s sistemi, definiranimi v datoteki."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
|
msgid "Open menu"
|
||||||
|
msgstr "Odpri menu"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:248
|
||||||
|
msgid "Or continue with"
|
||||||
|
msgstr "Ali nadaljuj z"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:109
|
||||||
|
msgid "Overwrite existing alerts"
|
||||||
|
msgstr "Prepiši obstoječe alarme"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:85
|
||||||
|
msgid "Page"
|
||||||
|
msgstr "Stran"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:72
|
||||||
|
msgid "Pages / Settings"
|
||||||
|
msgstr "Strani / Nastavitve"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:192
|
||||||
|
#: src/components/login/auth-form.tsx:197
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "Geslo"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:20
|
||||||
|
msgid "Password must be at least 8 characters."
|
||||||
|
msgstr "Geslo mora imeti vsaj 8 znakov."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
|
msgid "Password reset request received"
|
||||||
|
msgstr "Prejeta zahteva za ponastavitev gesla"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
|
msgid "Pause"
|
||||||
|
msgstr "Premor"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
|
msgstr "<0>Nastavite strežnik SMTP</0>, da zagotovite dostavo opozoril."
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:25
|
||||||
|
msgid "Please check logs for more details."
|
||||||
|
msgstr "Za več podrobnosti preverite dnevnike."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:40
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
|
msgid "Please check your credentials and try again"
|
||||||
|
msgstr "Preverite svoje poverilnice in poskusite znova"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:36
|
||||||
|
msgid "Please create an admin account"
|
||||||
|
msgstr "Ustvarite skrbniški račun"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:137
|
||||||
|
msgid "Please enable pop-ups for this site"
|
||||||
|
msgstr "Omogočite pojavna okna za to spletno mesto"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:40
|
||||||
|
msgid "Please log in again"
|
||||||
|
msgstr "Prosimo, prijavite se znova"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:307
|
||||||
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
|
msgstr "Za navodila glejte <0>dokumentacijo</0>."
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:40
|
||||||
|
msgid "Please sign in to your account"
|
||||||
|
msgstr "Prijavite se v svoj račun"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:169
|
||||||
|
msgid "Port"
|
||||||
|
msgstr "Vrata"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:414
|
||||||
|
#: src/components/routes/system.tsx:530
|
||||||
|
msgid "Precise utilization at the recorded time"
|
||||||
|
msgstr "Natančna poraba v zabeleženem času"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:58
|
||||||
|
msgid "Preferred Language"
|
||||||
|
msgstr "Prednostni jezik"
|
||||||
|
|
||||||
|
#. Use 'Key' if your language requires many more characters
|
||||||
|
#: src/components/add-system.tsx:180
|
||||||
|
msgid "Public Key"
|
||||||
|
msgstr "Javni ključ"
|
||||||
|
|
||||||
|
#. Disk read
|
||||||
|
#: src/components/charts/area-chart.tsx:60
|
||||||
|
#: src/components/charts/area-chart.tsx:70
|
||||||
|
msgid "Read"
|
||||||
|
msgstr "Preberano"
|
||||||
|
|
||||||
|
#. Network bytes received (download)
|
||||||
|
#: src/components/charts/area-chart.tsx:65
|
||||||
|
msgid "Received"
|
||||||
|
msgstr "Prejeto"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:76
|
||||||
|
msgid "Reset Password"
|
||||||
|
msgstr "Ponastavi geslo"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
|
msgid "Resume"
|
||||||
|
msgstr "Nadaljuj"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
|
msgstr "Shranite naslov s tipko enter ali vejico. Pustite prazno, da onemogočite e-poštna obvestila."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:106
|
||||||
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "Shrani nastavitve"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
|
msgid "Search"
|
||||||
|
msgstr "Iskanje"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:47
|
||||||
|
msgid "Search for systems or settings..."
|
||||||
|
msgstr "Iskanje sistemov ali nastavitev..."
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:71
|
||||||
|
msgid "See <0>notification settings</0> to configure how you receive alerts."
|
||||||
|
msgstr "Glejte <0>nastavitve obvestil</0>, da nastavite način prejemanja opozoril."
|
||||||
|
|
||||||
|
#. Network bytes sent (upload)
|
||||||
|
#: src/components/charts/area-chart.tsx:64
|
||||||
|
msgid "Sent"
|
||||||
|
msgstr "Poslano"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:100
|
||||||
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
|
msgstr "Nastavi privzeti časovni obseg za grafikone, ko si ogledujete sistem."
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:96
|
||||||
|
#: src/components/command-palette.tsx:99
|
||||||
|
#: src/components/command-palette.tsx:114
|
||||||
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "Nastavitve"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:33
|
||||||
|
msgid "Settings saved"
|
||||||
|
msgstr "Nastavitve so shranjene"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:236
|
||||||
|
msgid "Sign in"
|
||||||
|
msgstr "Prijavite se"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:186
|
||||||
|
msgid "SMTP settings"
|
||||||
|
msgstr "SMTP nastavitve"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
|
msgid "Sort By"
|
||||||
|
msgstr "Razvrsti po"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:301
|
||||||
|
msgid "Status"
|
||||||
|
msgstr "Status"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:480
|
||||||
|
msgid "Swap space used by the system"
|
||||||
|
msgstr "Swap prostor, ki ga uporablja sistem"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:479
|
||||||
|
msgid "Swap Usage"
|
||||||
|
msgstr "Swap uporaba"
|
||||||
|
|
||||||
|
#. System theme
|
||||||
|
#: src/components/mode-toggle.tsx:26
|
||||||
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
|
msgid "System"
|
||||||
|
msgstr "Sistemsko"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:78
|
||||||
|
msgid "Systems"
|
||||||
|
msgstr "Sistemi"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:55
|
||||||
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
|
msgstr "Sisteme lahko upravljate v datoteki <0>config.yml</0> v vašem podatkovnem imeniku."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
|
msgid "Table"
|
||||||
|
msgstr "Tabela"
|
||||||
|
|
||||||
|
#. Temperature label in systems table
|
||||||
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
|
msgid "Temperature"
|
||||||
|
msgstr "Temperatura"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:492
|
||||||
|
msgid "Temperatures of system sensors"
|
||||||
|
msgstr "Temperature sistemskih senzorjev"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
|
msgid "Test <0>URL</0>"
|
||||||
|
msgstr "Preveri <0>URL</0>"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
|
msgid "Test notification sent"
|
||||||
|
msgstr "Testno obvestilo je poslano"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:145
|
||||||
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
|
msgstr "Za vzpostavitev povezave mora biti agent zagnan v sistemu. Kopirajte spodnji namestitveni ukaz za agenta."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:136
|
||||||
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
|
msgstr "Za vzpostavitev povezave mora biti agent zagnan v sistemu. Kopirajte <0>docker-compose.yml</0> za spodnjega agenta."
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:98
|
||||||
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
|
msgstr "Nato se prijavite v zaledni sistem in ponastavite geslo svojega uporabniškega računa v tabeli uporabnikov."
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
|
msgstr "Tega dejanja ni mogoče razveljaviti. To bo trajno izbrisalo vse trenutne zapise za {name} iz zbirke podatkov."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:571
|
||||||
|
msgid "Throughput of {extraFsName}"
|
||||||
|
msgstr "Prepustnost {extraFsName}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:439
|
||||||
|
msgid "Throughput of root filesystem"
|
||||||
|
msgstr "Prepustnost korenskega datotečnega sistema"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
|
msgid "To email(s)"
|
||||||
|
msgstr "E-pošta za"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:366
|
||||||
|
#: src/components/routes/system.tsx:379
|
||||||
|
msgid "Toggle grid"
|
||||||
|
msgstr "Preklopi način mreže"
|
||||||
|
|
||||||
|
#: src/components/mode-toggle.tsx:33
|
||||||
|
msgid "Toggle theme"
|
||||||
|
msgstr "Obrni temo"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:336
|
||||||
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
|
msgstr "Sproži se, ko kateri koli senzor preseže prag"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:329
|
||||||
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
|
msgstr "Sproži, ko kombinacija gor/dol preseže prag"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:311
|
||||||
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
|
msgstr "Sproži se, ko poraba procesorja preseže prag"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:317
|
||||||
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
|
msgstr "Sproži se, ko uporaba pomnilnika preseže prag"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:304
|
||||||
|
msgid "Triggers when status switches between up and down"
|
||||||
|
msgstr "Sproži se, ko se stanje preklaplja med gor in dol"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:323
|
||||||
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
|
msgstr "Sproži se, ko uporaba katerega koli diska preseže prag"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
|
msgstr "Posodobljeno v realnem času. Za ogled informacij kliknite na sistem."
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:263
|
||||||
|
msgid "Uptime"
|
||||||
|
msgstr "Čas delovanja"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:73
|
||||||
|
#: src/components/routes/system.tsx:521
|
||||||
|
#: src/components/routes/system.tsx:558
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "Uporaba"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:431
|
||||||
|
msgid "Usage of root partition"
|
||||||
|
msgstr "Uporaba korenske particije"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:73
|
||||||
|
#: src/components/charts/mem-chart.tsx:65
|
||||||
|
#: src/components/charts/swap-chart.tsx:56
|
||||||
|
msgid "Used"
|
||||||
|
msgstr "Uporabljeno"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:143
|
||||||
|
#: src/components/navbar.tsx:70
|
||||||
|
msgid "Users"
|
||||||
|
msgstr "Uporabniki"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
|
msgid "View"
|
||||||
|
msgstr "Pogled"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
|
msgid "Visible Fields"
|
||||||
|
msgstr "Vidna polja"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:663
|
||||||
|
msgid "Waiting for enough records to display"
|
||||||
|
msgstr "Čakam na dovolj zapisov za prikaz"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:48
|
||||||
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
|
msgstr "Ali nam želite pomagati, da bomo naše prevode še izboljšali? Za več podrobnosti si oglejte <0>Crowdin</0>."
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
|
msgid "Webhook / Push notifications"
|
||||||
|
msgstr "Webhook / potisna obvestila"
|
||||||
|
|
||||||
|
#. Disk write
|
||||||
|
#: src/components/charts/area-chart.tsx:59
|
||||||
|
#: src/components/charts/area-chart.tsx:69
|
||||||
|
msgid "Write"
|
||||||
|
msgstr "Pisanje"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:61
|
||||||
|
msgid "YAML Config"
|
||||||
|
msgstr "YAML nastaviitev"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:45
|
||||||
|
msgid "YAML Configuration"
|
||||||
|
msgstr "YAML nastavitev"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:34
|
||||||
|
msgid "Your user settings have been updated."
|
||||||
|
msgstr "Vaše uporabniške nastavitve so posodobljene."
|
||||||
@@ -1,72 +1,76 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"POT-Creation-Date: 2024-12-17 14:47-0500\n"
|
"POT-Creation-Date: 2024-11-01 11:30-0400\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: @lingui/cli\n"
|
"X-Generator: @lingui/cli\n"
|
||||||
"Language: se\n"
|
"Language: sv\n"
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: \n"
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: Swedish\n"
|
||||||
"Plural-Forms: \n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Crowdin-Project: beszel\n"
|
||||||
|
"X-Crowdin-Project-ID: 733311\n"
|
||||||
|
"X-Crowdin-Language: sv-SE\n"
|
||||||
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# dag} other {# dagar}}"
|
msgstr "{0, plural, one {# dag} other {# dagar}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# timme} other {# timmar}}"
|
msgstr "{hours, plural, one {# timme} other {# timmar}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 timme"
|
msgstr "1 timme"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 vecka"
|
msgstr "1 vecka"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 timmar"
|
msgstr "12 timmar"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 timmar"
|
msgstr "24 timmar"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 dagar"
|
msgstr "30 dagar"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Åtgärder"
|
msgstr "Åtgärder"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "Aktiva larm"
|
msgstr "Aktiva larm"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "Lägg till <0>System</0>"
|
msgstr "Lägg till <0>System</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "Lägg till nytt system"
|
msgstr "Lägg till nytt system"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "Lägg till system"
|
msgstr "Lägg till system"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "Lägg till URL"
|
msgstr "Lägg till URL"
|
||||||
|
|
||||||
@@ -74,15 +78,15 @@ msgstr "Lägg till URL"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "Justera visningsalternativ för diagram."
|
msgstr "Justera visningsalternativ för diagram."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Admin"
|
msgstr "Admin"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "Agent"
|
msgstr "Agent"
|
||||||
|
|
||||||
@@ -92,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "Larm"
|
msgstr "Larm"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "Alla system"
|
msgstr "Alla system"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "Är du säker på att du vill ta bort {name}?"
|
msgstr "Är du säker på att du vill ta bort {name}?"
|
||||||
|
|
||||||
@@ -104,11 +108,11 @@ msgstr "Är du säker på att du vill ta bort {name}?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "Automatisk kopiering kräver en säker kontext."
|
msgstr "Automatisk kopiering kräver en säker kontext."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Genomsnitt"
|
msgstr "Genomsnitt"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "Genomsnittlig CPU-användning för containrar"
|
msgstr "Genomsnittlig CPU-användning för containrar"
|
||||||
|
|
||||||
@@ -116,37 +120,37 @@ msgstr "Genomsnittlig CPU-användning för containrar"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "Genomsnittet överskrider <0>{value}{0}</0>"
|
msgstr "Genomsnittet överskrider <0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr "Genomsnittlig strömförbrukning för GPU:er"
|
msgstr "Genomsnittlig strömförbrukning för GPU:er"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "Genomsnittlig systemomfattande CPU-användning"
|
msgstr "Genomsnittlig systemomfattande CPU-användning"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr "Genomsnittlig användning av {0}"
|
msgstr "Genomsnittlig användning av {0}"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "Säkerhetskopior"
|
msgstr "Säkerhetskopior"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "Bandbredd"
|
msgstr "Bandbredd"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel stöder OpenID Connect och många OAuth2-autentiseringsleverantörer."
|
msgstr "Beszel stöder OpenID Connect och många OAuth2-autentiseringsleverantörer."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel använder <0>Shoutrrr</0> för att integrera med populära aviseringstjänster."
|
msgstr "Beszel använder <0>Shoutrrr</0> för att integrera med populära aviseringstjänster."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "Binär"
|
msgstr "Binär"
|
||||||
|
|
||||||
@@ -154,7 +158,7 @@ msgstr "Binär"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "Cache / Buffertar"
|
msgstr "Cache / Buffertar"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Avbryt"
|
msgstr "Avbryt"
|
||||||
|
|
||||||
@@ -178,11 +182,11 @@ msgstr "Kontrollera {email} för en återställningslänk."
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "Kontrollera loggarna för mer information."
|
msgstr "Kontrollera loggarna för mer information."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "Kontrollera din aviseringstjänst"
|
msgstr "Kontrollera din aviseringstjänst"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "Klicka för att kopiera"
|
msgstr "Klicka för att kopiera"
|
||||||
|
|
||||||
@@ -191,32 +195,33 @@ msgstr "Klicka för att kopiera"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "Instruktioner för kommandoraden"
|
msgstr "Instruktioner för kommandoraden"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "Konfigurera hur du tar emot larmaviseringar."
|
msgstr "Konfigurera hur du tar emot larmaviseringar."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "Bekräfta lösenord"
|
msgstr "Bekräfta lösenord"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Fortsätt"
|
msgstr "Fortsätt"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "Kopierat till Urklipp"
|
msgstr "Kopierat till urklipp"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Kopiera"
|
msgstr "Kopiera"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "Kopiera värd"
|
msgstr "Kopiera värd"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Kopiera Linux-kommando"
|
msgstr "Kopiera Linux-kommando"
|
||||||
|
|
||||||
@@ -224,17 +229,17 @@ msgstr "Kopiera Linux-kommando"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "Kopiera text"
|
msgstr "Kopiera text"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "CPU"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "CPU-användning"
|
msgstr "CPU-användning"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "Skapa konto"
|
msgstr "Skapa konto"
|
||||||
|
|
||||||
@@ -243,8 +248,8 @@ msgstr "Skapa konto"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "Mörkt"
|
msgstr "Mörkt"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Dashboard"
|
msgstr "Dashboard"
|
||||||
|
|
||||||
@@ -252,50 +257,55 @@ msgstr "Dashboard"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "Standardtidsperiod"
|
msgstr "Standardtidsperiod"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Ta bort"
|
msgstr "Ta bort"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "Disk"
|
msgstr "Disk"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "Disk I/O"
|
msgstr "Disk I/O"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "Diskanvändning"
|
msgstr "Diskanvändning"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "Diskanvändning av {extraFsName}"
|
msgstr "Diskanvändning av {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Docker CPU-användning"
|
msgstr "Docker CPU-användning"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Docker Minnesanvändning"
|
msgstr "Docker Minnesanvändning"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "Docker Nätverks-I/O"
|
msgstr "Docker Nätverks-I/O"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "Dokumentation"
|
msgstr "Dokumentation"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "E-post"
|
msgstr "E-post"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "E-postaviseringar"
|
msgstr "E-postaviseringar"
|
||||||
|
|
||||||
@@ -303,17 +313,17 @@ msgstr "E-postaviseringar"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "Ange e-postadress för att återställa lösenord"
|
msgstr "Ange e-postadress för att återställa lösenord"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "Ange e-postadress..."
|
msgstr "Ange e-postadress..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Fel"
|
msgstr "Fel"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "Överskrider {0}{1} under de senaste {2, plural, one {# minuten} other {# minuterna}}"
|
msgstr "Överskrider {0}{1} under de senaste {2, plural, one {# minuten} other {# minuterna}}"
|
||||||
|
|
||||||
@@ -329,16 +339,16 @@ msgstr "Exportera konfiguration"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "Exportera din nuvarande systemkonfiguration."
|
msgstr "Exportera din nuvarande systemkonfiguration."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "Autentisering misslyckades"
|
msgstr "Autentisering misslyckades"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "Kunde inte spara inställningar"
|
msgstr "Kunde inte spara inställningar"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "Kunde inte skicka testavisering"
|
msgstr "Kunde inte skicka testavisering"
|
||||||
|
|
||||||
@@ -346,8 +356,8 @@ msgstr "Kunde inte skicka testavisering"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "Kunde inte uppdatera larm"
|
msgstr "Kunde inte uppdatera larm"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "Filtrera..."
|
msgstr "Filtrera..."
|
||||||
|
|
||||||
@@ -355,7 +365,7 @@ msgstr "Filtrera..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "Under <0>{min}</0> {min, plural, one {minut} other {minuter}}"
|
msgstr "Under <0>{min}</0> {min, plural, one {minut} other {minuter}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "Glömt lösenordet?"
|
msgstr "Glömt lösenordet?"
|
||||||
|
|
||||||
@@ -365,15 +375,15 @@ msgstr "Glömt lösenordet?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Allmänt"
|
msgstr "Allmänt"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr "GPU-strömförbrukning"
|
msgstr "GPU-strömförbrukning"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "Rutnät"
|
msgstr "Rutnät"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "Värd / IP"
|
msgstr "Värd / IP"
|
||||||
|
|
||||||
@@ -381,12 +391,12 @@ msgstr "Värd / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "Om du har glömt lösenordet till ditt administratörskonto kan du återställa det med följande kommando."
|
msgstr "Om du har glömt lösenordet till ditt administratörskonto kan du återställa det med följande kommando."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "Ogiltig e-postadress."
|
msgstr "Ogiltig e-postadress."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "Kärna"
|
msgstr "Kärna"
|
||||||
|
|
||||||
@@ -394,7 +404,7 @@ msgstr "Kärna"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Språk"
|
msgstr "Språk"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "Layout"
|
msgstr "Layout"
|
||||||
|
|
||||||
@@ -403,7 +413,7 @@ msgstr "Layout"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Ljust"
|
msgstr "Ljust"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Logga ut"
|
msgstr "Logga ut"
|
||||||
|
|
||||||
@@ -411,17 +421,17 @@ msgstr "Logga ut"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Logga in"
|
msgstr "Logga in"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "Inloggningsförsök misslyckades"
|
msgstr "Inloggningsförsök misslyckades"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "Loggar"
|
msgstr "Loggar"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "Letar du istället efter var du skapar larm? Klicka på klockikonerna <0/> i systemtabellen."
|
msgstr "Letar du istället efter var du skapar larm? Klicka på klockikonerna <0/> i systemtabellen."
|
||||||
|
|
||||||
@@ -429,56 +439,60 @@ msgstr "Letar du istället efter var du skapar larm? Klicka på klockikonerna <0
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "Hantera visnings- och aviseringsinställningar."
|
msgstr "Hantera visnings- och aviseringsinställningar."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "Max 1 min"
|
msgstr "Max 1 min"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "Minne"
|
msgstr "Minne"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "Minnesanvändning"
|
msgstr "Minnesanvändning"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Minnesanvändning för dockercontainrar"
|
msgstr "Minnesanvändning för dockercontainrar"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Namn"
|
msgstr "Namn"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "Nät"
|
msgstr "Nät"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Nätverkstrafik för dockercontainrar"
|
msgstr "Nätverkstrafik för dockercontainrar"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "Nätverkstrafik för publika gränssnitt"
|
msgstr "Nätverkstrafik för publika gränssnitt"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "Inga resultat hittades."
|
msgstr "Inga resultat hittades."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "Inga system hittades."
|
msgstr "Inga system hittades."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Aviseringar"
|
msgstr "Aviseringar"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "Stöd för OAuth 2 / OIDC"
|
msgstr "Stöd för OAuth 2 / OIDC"
|
||||||
|
|
||||||
@@ -486,11 +500,11 @@ msgstr "Stöd för OAuth 2 / OIDC"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "Vid varje omstart kommer systemen i databasen att uppdateras för att matcha systemen som definieras i filen."
|
msgstr "Vid varje omstart kommer systemen i databasen att uppdateras för att matcha systemen som definieras i filen."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "Öppna menyn"
|
msgstr "Öppna menyn"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "Eller fortsätt med"
|
msgstr "Eller fortsätt med"
|
||||||
|
|
||||||
@@ -498,32 +512,36 @@ msgstr "Eller fortsätt med"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "Skriv över befintliga larm"
|
msgstr "Skriv över befintliga larm"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Sida"
|
msgstr "Sida"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "Sidor / Inställningar"
|
msgstr "Sidor / Inställningar"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Lösenord"
|
msgstr "Lösenord"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "Lösenordet måste vara minst 8 tecken."
|
msgstr "Lösenordet måste vara minst 8 tecken."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "Begäran om återställning av lösenord mottagen"
|
msgstr "Begäran om återställning av lösenord mottagen"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Paus"
|
msgstr "Paus"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "Vänligen <0>konfigurera en SMTP-server</0> för att säkerställa att larm levereras."
|
msgstr "Vänligen <0>konfigurera en SMTP-server</0> för att säkerställa att larm levereras."
|
||||||
|
|
||||||
@@ -531,7 +549,7 @@ msgstr "Vänligen <0>konfigurera en SMTP-server</0> för att säkerställa att l
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "Vänligen kontrollera loggarna för mer information."
|
msgstr "Vänligen kontrollera loggarna för mer information."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "Vänligen kontrollera dina inloggningsuppgifter och försök igen"
|
msgstr "Vänligen kontrollera dina inloggningsuppgifter och försök igen"
|
||||||
@@ -540,15 +558,15 @@ msgstr "Vänligen kontrollera dina inloggningsuppgifter och försök igen"
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "Vänligen skapa ett administratörskonto"
|
msgstr "Vänligen skapa ett administratörskonto"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "Vänligen aktivera popup-fönster för den här webbplatsen"
|
msgstr "Vänligen aktivera popup-fönster för den här webbplatsen"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "Vänligen logga in igen"
|
msgstr "Vänligen logga in igen"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "Vänligen se <0>dokumentationen</0> för instruktioner."
|
msgstr "Vänligen se <0>dokumentationen</0> för instruktioner."
|
||||||
|
|
||||||
@@ -556,12 +574,12 @@ msgstr "Vänligen se <0>dokumentationen</0> för instruktioner."
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "Vänligen logga in på ditt konto"
|
msgstr "Vänligen logga in på ditt konto"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Port"
|
msgstr "Port"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "Exakt användning vid den registrerade tidpunkten"
|
msgstr "Exakt användning vid den registrerade tidpunkten"
|
||||||
|
|
||||||
@@ -570,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "Föredraget språk"
|
msgstr "Föredraget språk"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Offentlig nyckel"
|
msgstr "Offentlig nyckel"
|
||||||
|
|
||||||
@@ -589,24 +607,28 @@ msgstr "Mottaget"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "Återställ lösenord"
|
msgstr "Återställ lösenord"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "Återuppta"
|
msgstr "Återuppta"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Spara adressen med Enter-tangenten eller komma. Lämna tomt för att inaktivera e-postaviseringar."
|
msgstr "Spara adressen med Enter-tangenten eller komma. Lämna tomt för att inaktivera e-postaviseringar."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "Spara inställningar"
|
msgstr "Spara inställningar"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Sök"
|
msgstr "Sök"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "Sök efter system eller inställningar..."
|
msgstr "Sök efter system eller inställningar..."
|
||||||
|
|
||||||
@@ -623,9 +645,9 @@ msgstr "Skickat"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "Anger standardtidsintervallet för diagram när ett system visas."
|
msgstr "Anger standardtidsintervallet för diagram när ett system visas."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -635,40 +657,40 @@ msgstr "Inställningar"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "Inställningar sparade"
|
msgstr "Inställningar sparade"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Logga in"
|
msgstr "Logga in"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "SMTP-inställningar"
|
msgstr "SMTP-inställningar"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "Sortera efter"
|
msgstr "Sortera efter"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Status"
|
msgstr "Status"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "Swap-utrymme som används av systemet"
|
msgstr "Swap-utrymme som används av systemet"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "Swap-användning"
|
msgstr "Swap-användning"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "System"
|
msgstr "System"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "System"
|
msgstr "System"
|
||||||
|
|
||||||
@@ -676,32 +698,37 @@ msgstr "System"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "System kan hanteras i en <0>config.yml</0>-fil i din datakatalog."
|
msgstr "System kan hanteras i en <0>config.yml</0>-fil i din datakatalog."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "Tabell"
|
msgstr "Tabell"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "Temperatur"
|
msgstr "Temperatur"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "Temperaturer för systemsensorer"
|
msgstr "Temperaturer för systemsensorer"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "Testa <0>URL</0>"
|
msgstr "Testa <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Testavisering skickad"
|
msgstr "Testavisering skickad"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "Agenten måste köras på systemet för att ansluta. Kopiera installationskommandot för agenten nedan."
|
msgstr "Agenten måste köras på systemet för att ansluta. Kopiera installationskommandot för agenten nedan."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "Agenten måste köras på systemet för att ansluta. Kopiera <0>docker-compose.yml</0> för agenten nedan."
|
msgstr "Agenten måste köras på systemet för att ansluta. Kopiera <0>docker-compose.yml</0> för agenten nedan."
|
||||||
|
|
||||||
@@ -709,24 +736,24 @@ msgstr "Agenten måste köras på systemet för att ansluta. Kopiera <0>docker-c
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "Logga sedan in på backend och återställ ditt användarkontos lösenord i användartabellen."
|
msgstr "Logga sedan in på backend och återställ ditt användarkontos lösenord i användartabellen."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "Den här åtgärden kan inte ångras. Detta kommer permanent att ta bort alla aktuella poster för {name} från databasen."
|
msgstr "Den här åtgärden kan inte ångras. Detta kommer permanent att ta bort alla aktuella poster för {name} från databasen."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "Genomströmning av {extraFsName}"
|
msgstr "Genomströmning av {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "Genomströmning av rotfilsystemet"
|
msgstr "Genomströmning av rotfilsystemet"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "Till e-postadress(er)"
|
msgstr "Till e-postadress(er)"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "Växla rutnät"
|
msgstr "Växla rutnät"
|
||||||
|
|
||||||
@@ -734,45 +761,45 @@ msgstr "Växla rutnät"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "Växla tema"
|
msgstr "Växla tema"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "Utlöses när någon sensor överskrider ett tröskelvärde"
|
msgstr "Utlöses när någon sensor överskrider ett tröskelvärde"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "Utlöses när kombinerad upp/ner överskrider ett tröskelvärde"
|
msgstr "Utlöses när kombinerad upp/ner överskrider ett tröskelvärde"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "Utlöses när CPU-användningen överskrider ett tröskelvärde"
|
msgstr "Utlöses när CPU-användningen överskrider ett tröskelvärde"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "Utlöses när minnesanvändningen överskrider ett tröskelvärde"
|
msgstr "Utlöses när minnesanvändningen överskrider ett tröskelvärde"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "Utlöses när status växlar mellan upp och ner"
|
msgstr "Utlöses när status växlar mellan upp och ner"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "Utlöses när användningen av någon disk överskrider ett tröskelvärde"
|
msgstr "Utlöses när användningen av någon disk överskrider ett tröskelvärde"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "Uppdateras i realtid. Klicka på ett system för att visa information."
|
msgstr "Uppdateras i realtid. Klicka på ett system för att visa information."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "Drifttid"
|
msgstr "Drifttid"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "Användning"
|
msgstr "Användning"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "Användning av rotpartitionen"
|
msgstr "Användning av rotpartitionen"
|
||||||
|
|
||||||
@@ -782,20 +809,20 @@ msgstr "Användning av rotpartitionen"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "Använt"
|
msgstr "Använt"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Användare"
|
msgstr "Användare"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Visa"
|
msgstr "Visa"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "Synliga fält"
|
msgstr "Synliga fält"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "Väntar på tillräckligt med poster att visa"
|
msgstr "Väntar på tillräckligt med poster att visa"
|
||||||
|
|
||||||
@@ -803,7 +830,7 @@ msgstr "Väntar på tillräckligt med poster att visa"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "Vill du hjälpa oss att göra våra översättningar ännu bättre? Kolla in <0>Crowdin</0> för mer information."
|
msgstr "Vill du hjälpa oss att göra våra översättningar ännu bättre? Kolla in <0>Crowdin</0> för mer information."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Webhook / Push-aviseringar"
|
msgstr "Webhook / Push-aviseringar"
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: tr\n"
|
"Language: tr\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Turkish\n"
|
"Language-Team: Turkish\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# gün} other {# gün}}"
|
msgstr "{0, plural, one {# gün} other {# gün}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# saat} other {# saat}}"
|
msgstr "{hours, plural, one {# saat} other {# saat}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 saat"
|
msgstr "1 saat"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 hafta"
|
msgstr "1 hafta"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 saat"
|
msgstr "12 saat"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 saat"
|
msgstr "24 saat"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 gün"
|
msgstr "30 gün"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Eylemler"
|
msgstr "Eylemler"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "Aktif Uyarılar"
|
msgstr "Aktif Uyarılar"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "<0>Sistem</0> Ekle"
|
msgstr "<0>Sistem</0> Ekle"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "Yeni Sistem Ekle"
|
msgstr "Yeni Sistem Ekle"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "Sistem ekle"
|
msgstr "Sistem ekle"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "URL Ekle"
|
msgstr "URL Ekle"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "URL Ekle"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "Grafikler için görüntüleme seçeneklerini ayarlayın."
|
msgstr "Grafikler için görüntüleme seçeneklerini ayarlayın."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Yönetici"
|
msgstr "Yönetici"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "Aracı"
|
msgstr "Aracı"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "Uyarılar"
|
msgstr "Uyarılar"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "Tüm Sistemler"
|
msgstr "Tüm Sistemler"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "{name} silmek istediğinizden emin misiniz?"
|
msgstr "{name} silmek istediğinizden emin misiniz?"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "{name} silmek istediğinizden emin misiniz?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "Otomatik kopyalama güvenli bir bağlam gerektirir."
|
msgstr "Otomatik kopyalama güvenli bir bağlam gerektirir."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Ortalama"
|
msgstr "Ortalama"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "Konteynerlerin ortalama CPU kullanımı"
|
msgstr "Konteynerlerin ortalama CPU kullanımı"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "Konteynerlerin ortalama CPU kullanımı"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "Ortalama <0>{value}{0}</0> aşıyor"
|
msgstr "Ortalama <0>{value}{0}</0> aşıyor"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr "GPU ların ortalama güç tüketimi"
|
msgstr "GPU ların ortalama güç tüketimi"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "Sistem genelinde ortalama CPU kullanımı"
|
msgstr "Sistem genelinde ortalama CPU kullanımı"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr "{0} ortalama kullanımı"
|
msgstr "{0} ortalama kullanımı"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "Yedekler"
|
msgstr "Yedekler"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "Bant Genişliği"
|
msgstr "Bant Genişliği"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel, OpenID Connect ve birçok OAuth2 kimlik doğrulama sağlayıcısını destekler."
|
msgstr "Beszel, OpenID Connect ve birçok OAuth2 kimlik doğrulama sağlayıcısını destekler."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel, popüler bildirim hizmetleriyle entegre olmak için <0>Shoutrrr</0> kullanır."
|
msgstr "Beszel, popüler bildirim hizmetleriyle entegre olmak için <0>Shoutrrr</0> kullanır."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "İkili"
|
msgstr "İkili"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "İkili"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "Önbellek / Tamponlar"
|
msgstr "Önbellek / Tamponlar"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "İptal"
|
msgstr "İptal"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "Sıfırlama bağlantısı için {email} kontrol edin."
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "Daha fazla ayrıntı için günlükleri kontrol edin."
|
msgstr "Daha fazla ayrıntı için günlükleri kontrol edin."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "Bildirim hizmetinizi kontrol edin"
|
msgstr "Bildirim hizmetinizi kontrol edin"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "Kopyalamak için tıklayın"
|
msgstr "Kopyalamak için tıklayın"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "Kopyalamak için tıklayın"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "Komut satırı talimatları"
|
msgstr "Komut satırı talimatları"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "Uyarı bildirimlerini nasıl alacağınızı yapılandırın."
|
msgstr "Uyarı bildirimlerini nasıl alacağınızı yapılandırın."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "Şifreyi onayla"
|
msgstr "Şifreyi onayla"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Devam et"
|
msgstr "Devam et"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "Panoya kopyalandı"
|
msgstr "Panoya kopyalandı"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Kopyala"
|
msgstr "Kopyala"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "Ana bilgisayarı kopyala"
|
msgstr "Ana bilgisayarı kopyala"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Linux komutunu kopyala"
|
msgstr "Linux komutunu kopyala"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "Linux komutunu kopyala"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "Metni kopyala"
|
msgstr "Metni kopyala"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "CPU"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "CPU Kullanımı"
|
msgstr "CPU Kullanımı"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "Hesap oluştur"
|
msgstr "Hesap oluştur"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "Hesap oluştur"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "Koyu"
|
msgstr "Koyu"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Gösterge Paneli"
|
msgstr "Gösterge Paneli"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "Gösterge Paneli"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "Varsayılan zaman dilimi"
|
msgstr "Varsayılan zaman dilimi"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Sil"
|
msgstr "Sil"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "Disk"
|
msgstr "Disk"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "Disk G/Ç"
|
msgstr "Disk G/Ç"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "Disk Kullanımı"
|
msgstr "Disk Kullanımı"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "{extraFsName} disk kullanımı"
|
msgstr "{extraFsName} disk kullanımı"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Docker CPU Kullanımı"
|
msgstr "Docker CPU Kullanımı"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Docker Bellek Kullanımı"
|
msgstr "Docker Bellek Kullanımı"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "Docker Ağ G/Ç"
|
msgstr "Docker Ağ G/Ç"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "Dokümantasyon"
|
msgstr "Dokümantasyon"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "E-posta"
|
msgstr "E-posta"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "E-posta bildirimleri"
|
msgstr "E-posta bildirimleri"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "E-posta bildirimleri"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "Şifreyi sıfırlamak için e-posta adresini girin"
|
msgstr "Şifreyi sıfırlamak için e-posta adresini girin"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "E-posta adresini girin..."
|
msgstr "E-posta adresini girin..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Hata"
|
msgstr "Hata"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "Son {2, plural, one {# dakika} other {# dakika}} içinde {0}{1} aşıyor"
|
msgstr "Son {2, plural, one {# dakika} other {# dakika}} içinde {0}{1} aşıyor"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "Yapılandırmayı dışa aktar"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "Mevcut sistem yapılandırmanızı dışa aktarın."
|
msgstr "Mevcut sistem yapılandırmanızı dışa aktarın."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "Kimlik doğrulama başarısız"
|
msgstr "Kimlik doğrulama başarısız"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "Ayarlar kaydedilemedi"
|
msgstr "Ayarlar kaydedilemedi"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "Test bildirimi gönderilemedi"
|
msgstr "Test bildirimi gönderilemedi"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "Test bildirimi gönderilemedi"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "Uyarı güncellenemedi"
|
msgstr "Uyarı güncellenemedi"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "Filtrele..."
|
msgstr "Filtrele..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "Filtrele..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "<0>{min}</0> {min, plural, one {dakika} other {dakika}} için"
|
msgstr "<0>{min}</0> {min, plural, one {dakika} other {dakika}} için"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "Şifrenizi mi unuttunuz?"
|
msgstr "Şifrenizi mi unuttunuz?"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "Şifrenizi mi unuttunuz?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Genel"
|
msgstr "Genel"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr "GPU Güç Çekimi"
|
msgstr "GPU Güç Çekimi"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "Izgara"
|
msgstr "Izgara"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "Host / IP"
|
msgstr "Host / IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "Host / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "Yönetici hesabınızın şifresini kaybettiyseniz, aşağıdaki komutu kullanarak sıfırlayabilirsiniz."
|
msgstr "Yönetici hesabınızın şifresini kaybettiyseniz, aşağıdaki komutu kullanarak sıfırlayabilirsiniz."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "Geçersiz e-posta adresi."
|
msgstr "Geçersiz e-posta adresi."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "Çekirdek"
|
msgstr "Çekirdek"
|
||||||
|
|
||||||
@@ -399,7 +404,7 @@ msgstr "Çekirdek"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Dil"
|
msgstr "Dil"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "Düzen"
|
msgstr "Düzen"
|
||||||
|
|
||||||
@@ -408,7 +413,7 @@ msgstr "Düzen"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Açık"
|
msgstr "Açık"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Çıkış Yap"
|
msgstr "Çıkış Yap"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "Çıkış Yap"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Giriş Yap"
|
msgstr "Giriş Yap"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "Giriş denemesi başarısız"
|
msgstr "Giriş denemesi başarısız"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "Günlükler"
|
msgstr "Günlükler"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "Uyarı oluşturma yerini mi arıyorsunuz? Sistemler tablosundaki zil <0/> simgelerine tıklayın."
|
msgstr "Uyarı oluşturma yerini mi arıyorsunuz? Sistemler tablosundaki zil <0/> simgelerine tıklayın."
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "Uyarı oluşturma yerini mi arıyorsunuz? Sistemler tablosundaki zil <0/
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "Görüntüleme ve bildirim tercihlerini yönetin."
|
msgstr "Görüntüleme ve bildirim tercihlerini yönetin."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "Maks 1 dk"
|
msgstr "Maks 1 dk"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "Bellek"
|
msgstr "Bellek"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "Bellek Kullanımı"
|
msgstr "Bellek Kullanımı"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Docker konteynerlerinin bellek kullanımı"
|
msgstr "Docker konteynerlerinin bellek kullanımı"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Ad"
|
msgstr "Ad"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "Ağ"
|
msgstr "Ağ"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Docker konteynerlerinin ağ trafiği"
|
msgstr "Docker konteynerlerinin ağ trafiği"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "Genel arayüzlerin ağ trafiği"
|
msgstr "Genel arayüzlerin ağ trafiği"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "Sonuç bulunamadı."
|
msgstr "Sonuç bulunamadı."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "Sistem bulunamadı."
|
msgstr "Sistem bulunamadı."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Bildirimler"
|
msgstr "Bildirimler"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "OAuth 2 / OIDC desteği"
|
msgstr "OAuth 2 / OIDC desteği"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "OAuth 2 / OIDC desteği"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "Her yeniden başlatmada, veritabanındaki sistemler dosyada tanımlanan sistemlerle eşleşecek şekilde güncellenecektir."
|
msgstr "Her yeniden başlatmada, veritabanındaki sistemler dosyada tanımlanan sistemlerle eşleşecek şekilde güncellenecektir."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "Menüyü aç"
|
msgstr "Menüyü aç"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "Veya devam et"
|
msgstr "Veya devam et"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "Veya devam et"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "Mevcut uyarıların üzerine yaz"
|
msgstr "Mevcut uyarıların üzerine yaz"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Sayfa"
|
msgstr "Sayfa"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "Sayfalar / Ayarlar"
|
msgstr "Sayfalar / Ayarlar"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Şifre"
|
msgstr "Şifre"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "Şifre en az 8 karakter olmalıdır."
|
msgstr "Şifre en az 8 karakter olmalıdır."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "Şifre sıfırlama isteği alındı"
|
msgstr "Şifre sıfırlama isteği alındı"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Duraklat"
|
msgstr "Duraklat"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "Uyarıların teslim edilmesini sağlamak için lütfen bir SMTP sunucusu <0>yapılandırın</0>."
|
msgstr "Uyarıların teslim edilmesini sağlamak için lütfen bir SMTP sunucusu <0>yapılandırın</0>."
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "Uyarıların teslim edilmesini sağlamak için lütfen bir SMTP sunucusu
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "Daha fazla ayrıntı için lütfen günlükleri kontrol edin."
|
msgstr "Daha fazla ayrıntı için lütfen günlükleri kontrol edin."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "Lütfen kimlik bilgilerinizi kontrol edin ve tekrar deneyin"
|
msgstr "Lütfen kimlik bilgilerinizi kontrol edin ve tekrar deneyin"
|
||||||
@@ -545,15 +558,15 @@ msgstr "Lütfen kimlik bilgilerinizi kontrol edin ve tekrar deneyin"
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "Lütfen bir yönetici hesabı oluşturun"
|
msgstr "Lütfen bir yönetici hesabı oluşturun"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "Lütfen bu site için açılır pencereleri etkinleştirin"
|
msgstr "Lütfen bu site için açılır pencereleri etkinleştirin"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "Lütfen tekrar giriş yapın"
|
msgstr "Lütfen tekrar giriş yapın"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "Talimatlar için lütfen <0>dokümantasyonu</0> inceleyin."
|
msgstr "Talimatlar için lütfen <0>dokümantasyonu</0> inceleyin."
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "Talimatlar için lütfen <0>dokümantasyonu</0> inceleyin."
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "Lütfen hesabınıza giriş yapın"
|
msgstr "Lütfen hesabınıza giriş yapın"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Port"
|
msgstr "Port"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "Kayıtlı zamanda kesin kullanım"
|
msgstr "Kayıtlı zamanda kesin kullanım"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "Tercih Edilen Dil"
|
msgstr "Tercih Edilen Dil"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Genel Anahtar"
|
msgstr "Genel Anahtar"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "Alındı"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "Şifreyi Sıfırla"
|
msgstr "Şifreyi Sıfırla"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "Devam et"
|
msgstr "Devam et"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Adresleri enter tuşu veya virgül ile kaydedin. E-posta bildirimlerini devre dışı bırakmak için boş bırakın."
|
msgstr "Adresleri enter tuşu veya virgül ile kaydedin. E-posta bildirimlerini devre dışı bırakmak için boş bırakın."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "Ayarları Kaydet"
|
msgstr "Ayarları Kaydet"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Ara"
|
msgstr "Ara"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "Sistemler veya ayarlar için ara..."
|
msgstr "Sistemler veya ayarlar için ara..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "Gönderildi"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "Bir sistem görüntülendiğinde grafikler için varsayılan zaman aralığını ayarlar."
|
msgstr "Bir sistem görüntülendiğinde grafikler için varsayılan zaman aralığını ayarlar."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "Ayarlar"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "Ayarlar kaydedildi"
|
msgstr "Ayarlar kaydedildi"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Giriş yap"
|
msgstr "Giriş yap"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "SMTP ayarları"
|
msgstr "SMTP ayarları"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "Sıralama Ölçütü"
|
msgstr "Sıralama Ölçütü"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Durum"
|
msgstr "Durum"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "Sistem tarafından kullanılan takas alanı"
|
msgstr "Sistem tarafından kullanılan takas alanı"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "Takas Kullanımı"
|
msgstr "Takas Kullanımı"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Sistem"
|
msgstr "Sistem"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "Sistemler"
|
msgstr "Sistemler"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "Sistemler"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "Sistemler, veri dizininizdeki bir <0>config.yml</0> dosyasında yönetilebilir."
|
msgstr "Sistemler, veri dizininizdeki bir <0>config.yml</0> dosyasında yönetilebilir."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "Tablo"
|
msgstr "Tablo"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "Sıcaklık"
|
msgstr "Sıcaklık"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "Sistem sensörlerinin sıcaklıkları"
|
msgstr "Sistem sensörlerinin sıcaklıkları"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "Test <0>URL</0>"
|
msgstr "Test <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Test bildirimi gönderildi"
|
msgstr "Test bildirimi gönderildi"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "Bağlanmak için aracının sistemde çalışıyor olması gerekir. Aşağıdaki aracı kurulum komutunu kopyalayın."
|
msgstr "Bağlanmak için aracının sistemde çalışıyor olması gerekir. Aşağıdaki aracı kurulum komutunu kopyalayın."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "Bağlanmak için aracının sistemde çalışıyor olması gerekir. Aşağıdaki <0>docker-compose.yml</0> dosyasını kopyalayın."
|
msgstr "Bağlanmak için aracının sistemde çalışıyor olması gerekir. Aşağıdaki <0>docker-compose.yml</0> dosyasını kopyalayın."
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "Bağlanmak için aracının sistemde çalışıyor olması gerekir. Aşa
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "Ardından arka uca giriş yapın ve kullanıcılar tablosunda kullanıcı hesabı şifrenizi sıfırlayın."
|
msgstr "Ardından arka uca giriş yapın ve kullanıcılar tablosunda kullanıcı hesabı şifrenizi sıfırlayın."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "Bu işlem geri alınamaz. Bu, veritabanından {name} için tüm mevcut kayıtları kalıcı olarak silecektir."
|
msgstr "Bu işlem geri alınamaz. Bu, veritabanından {name} için tüm mevcut kayıtları kalıcı olarak silecektir."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "{extraFsName} verimliliği"
|
msgstr "{extraFsName} verimliliği"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "Kök dosya sisteminin verimliliği"
|
msgstr "Kök dosya sisteminin verimliliği"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "E-posta(lar)a"
|
msgstr "E-posta(lar)a"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "Izgarayı değiştir"
|
msgstr "Izgarayı değiştir"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "Izgarayı değiştir"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "Temayı değiştir"
|
msgstr "Temayı değiştir"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "Herhangi bir sensör bir eşiği aştığında tetiklenir"
|
msgstr "Herhangi bir sensör bir eşiği aştığında tetiklenir"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "Birleştirilmiş yukarı/aşağı bir eşiği aştığında tetiklenir"
|
msgstr "Birleştirilmiş yukarı/aşağı bir eşiği aştığında tetiklenir"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "CPU kullanımı bir eşiği aştığında tetiklenir"
|
msgstr "CPU kullanımı bir eşiği aştığında tetiklenir"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "Bellek kullanımı bir eşiği aştığında tetiklenir"
|
msgstr "Bellek kullanımı bir eşiği aştığında tetiklenir"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "Durum yukarı ve aşağı arasında değiştiğinde tetiklenir"
|
msgstr "Durum yukarı ve aşağı arasında değiştiğinde tetiklenir"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "Herhangi bir diskin kullanımı bir eşiği aştığında tetiklenir"
|
msgstr "Herhangi bir diskin kullanımı bir eşiği aştığında tetiklenir"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "Gerçek zamanlı olarak güncellenir. Bilgileri görüntülemek için bir sisteme tıklayın."
|
msgstr "Gerçek zamanlı olarak güncellenir. Bilgileri görüntülemek için bir sisteme tıklayın."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "Çalışma Süresi"
|
msgstr "Çalışma Süresi"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "Kullanım"
|
msgstr "Kullanım"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "Kök bölümün kullanımı"
|
msgstr "Kök bölümün kullanımı"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "Kök bölümün kullanımı"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "Kullanıldı"
|
msgstr "Kullanıldı"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Kullanıcılar"
|
msgstr "Kullanıcılar"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Görüntüle"
|
msgstr "Görüntüle"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "Görünür Alanlar"
|
msgstr "Görünür Alanlar"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "Görüntülemek için yeterli kayıt bekleniyor"
|
msgstr "Görüntülemek için yeterli kayıt bekleniyor"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "Görüntülemek için yeterli kayıt bekleniyor"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "Çevirilerimizi daha iyi hale getirmemize yardımcı olmak ister misiniz? Daha fazla bilgi için <0>Crowdin</0> inceleyin."
|
msgstr "Çevirilerimizi daha iyi hale getirmemize yardımcı olmak ister misiniz? Daha fazla bilgi için <0>Crowdin</0> inceleyin."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Webhook / Anlık bildirimler"
|
msgstr "Webhook / Anlık bildirimler"
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: uk\n"
|
"Language: uk\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Ukrainian\n"
|
"Language-Team: Ukrainian\n"
|
||||||
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
|
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# день} few {# дні} many {# днів} other {# дня}}"
|
msgstr "{0, plural, one {# день} few {# дні} many {# днів} other {# дня}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# година} few {# години} many {# годин} other {# години}}"
|
msgstr "{hours, plural, one {# година} few {# години} many {# годин} other {# години}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 година"
|
msgstr "1 година"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 тиждень"
|
msgstr "1 тиждень"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 годин"
|
msgstr "12 годин"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 години"
|
msgstr "24 години"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 днів"
|
msgstr "30 днів"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Дії"
|
msgstr "Дії"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "Активні сповіщення"
|
msgstr "Активні сповіщення"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "Додати <0>Систему</0>"
|
msgstr "Додати <0>Систему</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "Додати нову систему"
|
msgstr "Додати нову систему"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "Додати систему"
|
msgstr "Додати систему"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "Додати URL"
|
msgstr "Додати URL"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "Додати URL"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "Налаштуйте параметри відображення для графіків."
|
msgstr "Налаштуйте параметри відображення для графіків."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Адміністратор"
|
msgstr "Адміністратор"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "Агент"
|
msgstr "Агент"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "Сповіщення"
|
msgstr "Сповіщення"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "Всі системи"
|
msgstr "Всі системи"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "Ви впевнені, що хочете видалити {name}?"
|
msgstr "Ви впевнені, що хочете видалити {name}?"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "Ви впевнені, що хочете видалити {name}?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "Автоматичне копіювання вимагає безпечного контексту."
|
msgstr "Автоматичне копіювання вимагає безпечного контексту."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Середнє"
|
msgstr "Середнє"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "Середнє використання CPU контейнерами"
|
msgstr "Середнє використання CPU контейнерами"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "Середнє використання CPU контейнерами"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "Середнє перевищує <0>{value}{0}</0>"
|
msgstr "Середнє перевищує <0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr "Середнє енергоспоживання GPUs"
|
msgstr "Середнє енергоспоживання GPUs"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "Середнє використання CPU по всій системі"
|
msgstr "Середнє використання CPU по всій системі"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr "Середнє використання {0}"
|
msgstr "Середнє використання {0}"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "Резервні копії"
|
msgstr "Резервні копії"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "Пропускна здатність"
|
msgstr "Пропускна здатність"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel підтримує OpenID Connect та багато постачальників автентифікації OAuth2."
|
msgstr "Beszel підтримує OpenID Connect та багато постачальників автентифікації OAuth2."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel використовує <0>Shoutrrr</0> для інтеграції з популярними сервісами сповіщень."
|
msgstr "Beszel використовує <0>Shoutrrr</0> для інтеграції з популярними сервісами сповіщень."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "Двійковий"
|
msgstr "Двійковий"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "Двійковий"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "Кеш / Буфери"
|
msgstr "Кеш / Буфери"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Скасувати"
|
msgstr "Скасувати"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "Перевірте {email} для отримання посилання
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "Перевірте журнали для отримання додаткової інформації."
|
msgstr "Перевірте журнали для отримання додаткової інформації."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "Перевірте свій сервіс сповіщень"
|
msgstr "Перевірте свій сервіс сповіщень"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "Натисніть, щоб скопіювати"
|
msgstr "Натисніть, щоб скопіювати"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "Натисніть, щоб скопіювати"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "Інструкції командного рядка"
|
msgstr "Інструкції командного рядка"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "Налаштуйте, як ви отримуєте сповіщення про тривоги."
|
msgstr "Налаштуйте, як ви отримуєте сповіщення про тривоги."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "Підтвердьте пароль"
|
msgstr "Підтвердьте пароль"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Продовжити"
|
msgstr "Продовжити"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "Скопійовано в буфер обміну"
|
msgstr "Скопійовано в буфер обміну"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Копіювати"
|
msgstr "Копіювати"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "Копіювати хост"
|
msgstr "Копіювати хост"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Копіювати команду Linux"
|
msgstr "Копіювати команду Linux"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "Копіювати команду Linux"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "Копіювати текст"
|
msgstr "Копіювати текст"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "ЦП"
|
msgstr "ЦП"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "Використання ЦП"
|
msgstr "Використання ЦП"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "Створити обліковий запис"
|
msgstr "Створити обліковий запис"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "Створити обліковий запис"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "Темний"
|
msgstr "Темний"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Панель управління"
|
msgstr "Панель управління"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "Панель управління"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "Стандартний період часу"
|
msgstr "Стандартний період часу"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Видалити"
|
msgstr "Видалити"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "Диск"
|
msgstr "Диск"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "Дисковий ввід/вивід"
|
msgstr "Дисковий ввід/вивід"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "Використання диска"
|
msgstr "Використання диска"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "Використання диска {extraFsName}"
|
msgstr "Використання диска {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Використання ЦП Docker"
|
msgstr "Використання ЦП Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Використання пам'яті Docker"
|
msgstr "Використання пам'яті Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "Мережевий ввід/вивід Docker"
|
msgstr "Мережевий ввід/вивід Docker"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "Документація"
|
msgstr "Документація"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Електронна пошта"
|
msgstr "Електронна пошта"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "Сповіщення електронною поштою"
|
msgstr "Сповіщення електронною поштою"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "Сповіщення електронною поштою"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "Введіть адресу електронної пошти для скидання пароля"
|
msgstr "Введіть адресу електронної пошти для скидання пароля"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "Введіть адресу електронної пошти..."
|
msgstr "Введіть адресу електронної пошти..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Помилка"
|
msgstr "Помилка"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "Перевищує {0}{1} протягом {2, plural, one {останньої # хвилини} other {останніх # хвилин}}"
|
msgstr "Перевищує {0}{1} протягом {2, plural, one {останньої # хвилини} other {останніх # хвилин}}"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "Експорт конфігурації"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "Експортуйте поточну конфігурацію систем."
|
msgstr "Експортуйте поточну конфігурацію систем."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "Не вдалося автентифікувати"
|
msgstr "Не вдалося автентифікувати"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "Не вдалося зберегти налаштування"
|
msgstr "Не вдалося зберегти налаштування"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "Не вдалося надіслати тестове сповіщення"
|
msgstr "Не вдалося надіслати тестове сповіщення"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "Не вдалося надіслати тестове сповіщенн
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "Не вдалося оновити сповіщення"
|
msgstr "Не вдалося оновити сповіщення"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "Фільтр..."
|
msgstr "Фільтр..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "Фільтр..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "Протягом <0>{min}</0> {min, plural, one {хвилини} other {хвилин}}"
|
msgstr "Протягом <0>{min}</0> {min, plural, one {хвилини} other {хвилин}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "Забули пароль?"
|
msgstr "Забули пароль?"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "Забули пароль?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Загальні"
|
msgstr "Загальні"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr "Енергоспоживання GPU"
|
msgstr "Енергоспоживання GPU"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "Сітка"
|
msgstr "Сітка"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "Хост / IP"
|
msgstr "Хост / IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "Хост / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "Якщо ви втратили пароль до свого адміністративного облікового запису, ви можете скинути його за допомогою наступної команди."
|
msgstr "Якщо ви втратили пароль до свого адміністративного облікового запису, ви можете скинути його за допомогою наступної команди."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "Неправильна адреса електронної пошти."
|
msgstr "Неправильна адреса електронної пошти."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "Ядро"
|
msgstr "Ядро"
|
||||||
|
|
||||||
@@ -399,7 +404,7 @@ msgstr "Ядро"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Мова"
|
msgstr "Мова"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "Макет"
|
msgstr "Макет"
|
||||||
|
|
||||||
@@ -408,7 +413,7 @@ msgstr "Макет"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Світлий"
|
msgstr "Світлий"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Вийти"
|
msgstr "Вийти"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "Вийти"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Увійти"
|
msgstr "Увійти"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "Спроба входу не вдалася"
|
msgstr "Спроба входу не вдалася"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "Журнали"
|
msgstr "Журнали"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "Шукаєте, де створити сповіщення? Натисніть на іконки дзвінка <0/> в таблиці систем."
|
msgstr "Шукаєте, де створити сповіщення? Натисніть на іконки дзвінка <0/> в таблиці систем."
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "Шукаєте, де створити сповіщення? Натисн
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "Керуйте параметрами відображення та сповіщень."
|
msgstr "Керуйте параметрами відображення та сповіщень."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "Макс 1 хв"
|
msgstr "Макс 1 хв"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "Пам'ять"
|
msgstr "Пам'ять"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "Використання пам'яті"
|
msgstr "Використання пам'яті"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Використання пам'яті контейнерами Docker"
|
msgstr "Використання пам'яті контейнерами Docker"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Ім'я"
|
msgstr "Ім'я"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "Мережа"
|
msgstr "Мережа"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Мережевий трафік контейнерів Docker"
|
msgstr "Мережевий трафік контейнерів Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "Мережевий трафік публічних інтерфейсів"
|
msgstr "Мережевий трафік публічних інтерфейсів"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "Результатів не знайдено."
|
msgstr "Результатів не знайдено."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "Систем не знайдено."
|
msgstr "Систем не знайдено."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Сповіщення"
|
msgstr "Сповіщення"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "Підтримка OAuth 2 / OIDC"
|
msgstr "Підтримка OAuth 2 / OIDC"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "Підтримка OAuth 2 / OIDC"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "При кожному перезапуску системи в базі даних будуть оновлені, щоб відповідати системам, визначеним у файлі."
|
msgstr "При кожному перезапуску системи в базі даних будуть оновлені, щоб відповідати системам, визначеним у файлі."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "Відкрити меню"
|
msgstr "Відкрити меню"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "Або продовжити з"
|
msgstr "Або продовжити з"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "Або продовжити з"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "Перезаписати існуючі сповіщення"
|
msgstr "Перезаписати існуючі сповіщення"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Сторінка"
|
msgstr "Сторінка"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "Сторінки / Налаштування"
|
msgstr "Сторінки / Налаштування"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Пароль"
|
msgstr "Пароль"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "Пароль має містити щонайменше 8 символів."
|
msgstr "Пароль має містити щонайменше 8 символів."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "Запит на скидання пароля отримано"
|
msgstr "Запит на скидання пароля отримано"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Пауза"
|
msgstr "Пауза"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "Будь ласка, <0>налаштуйте SMTP сервер</0>, щоб забезпечити доставку сповіщень."
|
msgstr "Будь ласка, <0>налаштуйте SMTP сервер</0>, щоб забезпечити доставку сповіщень."
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "Будь ласка, <0>налаштуйте SMTP сервер</0>, що
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "Будь ласка, перевірте журнали для отримання додаткової інформації."
|
msgstr "Будь ласка, перевірте журнали для отримання додаткової інформації."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "Будь ласка, перевірте свої облікові дані та спробуйте ще раз"
|
msgstr "Будь ласка, перевірте свої облікові дані та спробуйте ще раз"
|
||||||
@@ -545,15 +558,15 @@ msgstr "Будь ласка, перевірте свої облікові дан
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "Будь ласка, створіть адміністративний обліковий запис"
|
msgstr "Будь ласка, створіть адміністративний обліковий запис"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "Будь ласка, увімкніть спливаючі вікна для цього сайту"
|
msgstr "Будь ласка, увімкніть спливаючі вікна для цього сайту"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "Будь ласка, увійдіть знову"
|
msgstr "Будь ласка, увійдіть знову"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "Будь ласка, перегляньте <0>документацію</0> для отримання інструкцій."
|
msgstr "Будь ласка, перегляньте <0>документацію</0> для отримання інструкцій."
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "Будь ласка, перегляньте <0>документацію<
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "Будь ласка, увійдіть у свій обліковий запис"
|
msgstr "Будь ласка, увійдіть у свій обліковий запис"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Порт"
|
msgstr "Порт"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "Точне використання в записаний час"
|
msgstr "Точне використання в записаний час"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "Бажана мова"
|
msgstr "Бажана мова"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Ключ"
|
msgstr "Ключ"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "Отримано"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "Скинути пароль"
|
msgstr "Скинути пароль"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "Продовжити"
|
msgstr "Продовжити"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Збережіть адресу, використовуючи клавішу Enter або кому. Залиште порожнім, щоб вимкнути сповіщення електронною поштою."
|
msgstr "Збережіть адресу, використовуючи клавішу Enter або кому. Залиште порожнім, щоб вимкнути сповіщення електронною поштою."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "Зберегти налаштування"
|
msgstr "Зберегти налаштування"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Пошук"
|
msgstr "Пошук"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "Шукати системи або налаштування..."
|
msgstr "Шукати системи або налаштування..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "Відправлено"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "Встановлює стандартний діапазон часу для графіків при перегляді системи."
|
msgstr "Встановлює стандартний діапазон часу для графіків при перегляді системи."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "Налаштування"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "Налаштування збережено"
|
msgstr "Налаштування збережено"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Увійти"
|
msgstr "Увійти"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "Налаштування SMTP"
|
msgstr "Налаштування SMTP"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "Сортувати за"
|
msgstr "Сортувати за"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Статус"
|
msgstr "Статус"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "Область підкачки, використана системою"
|
msgstr "Область підкачки, використана системою"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "Використання підкачки"
|
msgstr "Використання підкачки"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Система"
|
msgstr "Система"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "Системи"
|
msgstr "Системи"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "Системи"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "Системи можуть керуватися у файлі <0>config.yml</0> у вашій директорії даних."
|
msgstr "Системи можуть керуватися у файлі <0>config.yml</0> у вашій директорії даних."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "Таблиця"
|
msgstr "Таблиця"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "Температура"
|
msgstr "Температура"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "Температури датчиків системи"
|
msgstr "Температури датчиків системи"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "Тест <0>URL</0>"
|
msgstr "Тест <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Тестове сповіщення надіслано"
|
msgstr "Тестове сповіщення надіслано"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "Агент повинен працювати на системі для підключення. Скопіюйте команду встановлення для агента нижче."
|
msgstr "Агент повинен працювати на системі для підключення. Скопіюйте команду встановлення для агента нижче."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "Агент повинен працювати на системі для підключення. Скопіюйте <0>docker-compose.yml</0> для агента нижче."
|
msgstr "Агент повинен працювати на системі для підключення. Скопіюйте <0>docker-compose.yml</0> для агента нижче."
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "Агент повинен працювати на системі для
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "Потім увійдіть у бекенд і скиньте пароль вашого облікового запису користувача в таблиці користувачів."
|
msgstr "Потім увійдіть у бекенд і скиньте пароль вашого облікового запису користувача в таблиці користувачів."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "Цю дію не можна скасувати. Це назавжди видалить всі поточні записи для {name} з бази даних."
|
msgstr "Цю дію не можна скасувати. Це назавжди видалить всі поточні записи для {name} з бази даних."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "Пропускна здатність {extraFsName}"
|
msgstr "Пропускна здатність {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "Пропускна здатність кореневої файлової системи"
|
msgstr "Пропускна здатність кореневої файлової системи"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "На електронну пошту"
|
msgstr "На електронну пошту"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "Перемкнути сітку"
|
msgstr "Перемкнути сітку"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "Перемкнути сітку"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "Перемкнути тему"
|
msgstr "Перемкнути тему"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "Спрацьовує, коли будь-який датчик перевищує поріг"
|
msgstr "Спрацьовує, коли будь-який датчик перевищує поріг"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "Спрацьовує, коли комбіноване підняття/падіння перевищує поріг"
|
msgstr "Спрацьовує, коли комбіноване підняття/падіння перевищує поріг"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "Спрацьовує, коли використання ЦП перевищує поріг"
|
msgstr "Спрацьовує, коли використання ЦП перевищує поріг"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "Спрацьовує, коли використання пам'яті перевищує поріг"
|
msgstr "Спрацьовує, коли використання пам'яті перевищує поріг"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "Спрацьовує, коли статус перемикається між підняттям і падінням"
|
msgstr "Спрацьовує, коли статус перемикається між підняттям і падінням"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "Спрацьовує, коли використання будь-якого диска перевищує поріг"
|
msgstr "Спрацьовує, коли використання будь-якого диска перевищує поріг"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "Оновлюється в реальному часі. Натисніть на систему, щоб переглянути інформацію."
|
msgstr "Оновлюється в реальному часі. Натисніть на систему, щоб переглянути інформацію."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "Час роботи"
|
msgstr "Час роботи"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "Використання"
|
msgstr "Використання"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "Використання кореневого розділу"
|
msgstr "Використання кореневого розділу"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "Використання кореневого розділу"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "Використано"
|
msgstr "Використано"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Користувачі"
|
msgstr "Користувачі"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Вид"
|
msgstr "Вигляд"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "Видимі стовпці"
|
msgstr "Видимі стовпці"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "Очікування достатньої кількості записів для відображення"
|
msgstr "Очікування достатньої кількості записів для відображення"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "Очікування достатньої кількості запис
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "Хочете допомогти нам зробити наші переклади ще кращими? Перегляньте <0>Crowdin</0> для отримання додаткової інформації."
|
msgstr "Хочете допомогти нам зробити наші переклади ще кращими? Перегляньте <0>Crowdin</0> для отримання додаткової інформації."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Webhook / Push сповіщення"
|
msgstr "Webhook / Push сповіщення"
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: vi\n"
|
"Language: vi\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Vietnamese\n"
|
"Language-Team: Vietnamese\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# ngày} other {# ngày}}"
|
msgstr "{0, plural, one {# ngày} other {# ngày}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# giờ} other {# giờ}}"
|
msgstr "{hours, plural, one {# giờ} other {# giờ}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1 giờ"
|
msgstr "1 giờ"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1 tuần"
|
msgstr "1 tuần"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12 giờ"
|
msgstr "12 giờ"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24 giờ"
|
msgstr "24 giờ"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30 ngày"
|
msgstr "30 ngày"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Hành động"
|
msgstr "Hành động"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "Cảnh báo hoạt động"
|
msgstr "Cảnh báo hoạt động"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "Thêm <0>Hệ thống</0>"
|
msgstr "Thêm <0>Hệ thống</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "Thêm Hệ thống Mới"
|
msgstr "Thêm Hệ thống Mới"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "Thêm hệ thống"
|
msgstr "Thêm hệ thống"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "Thêm URL"
|
msgstr "Thêm URL"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "Thêm URL"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "Điều chỉnh tùy chọn hiển thị cho biểu đồ."
|
msgstr "Điều chỉnh tùy chọn hiển thị cho biểu đồ."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Quản trị viên"
|
msgstr "Quản trị viên"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "Tác nhân"
|
msgstr "Tác nhân"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "Cảnh báo"
|
msgstr "Cảnh báo"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "Tất cả Hệ thống"
|
msgstr "Tất cả Hệ thống"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "Bạn có chắc chắn muốn xóa {name} không?"
|
msgstr "Bạn có chắc chắn muốn xóa {name} không?"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "Bạn có chắc chắn muốn xóa {name} không?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "Sao chép tự động yêu cầu một ngữ cảnh an toàn."
|
msgstr "Sao chép tự động yêu cầu một ngữ cảnh an toàn."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "Trung bình"
|
msgstr "Trung bình"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "Sử dụng CPU trung bình của các container"
|
msgstr "Sử dụng CPU trung bình của các container"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "Sử dụng CPU trung bình của các container"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "Trung bình vượt quá <0>{value}{0}</0>"
|
msgstr "Trung bình vượt quá <0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "Sử dụng CPU trung bình toàn hệ thống"
|
msgstr "Sử dụng CPU trung bình toàn hệ thống"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "Sao lưu"
|
msgstr "Sao lưu"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "Băng thông"
|
msgstr "Băng thông"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel hỗ trợ OpenID Connect và nhiều nhà cung cấp xác thực OAuth2."
|
msgstr "Beszel hỗ trợ OpenID Connect và nhiều nhà cung cấp xác thực OAuth2."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel sử dụng <0>Shoutrrr</0> để tích hợp với các dịch vụ thông báo phổ biến."
|
msgstr "Beszel sử dụng <0>Shoutrrr</0> để tích hợp với các dịch vụ thông báo phổ biến."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "Nhị phân"
|
msgstr "Nhị phân"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "Nhị phân"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "Bộ nhớ đệm / Bộ đệm"
|
msgstr "Bộ nhớ đệm / Bộ đệm"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Hủy bỏ"
|
msgstr "Hủy bỏ"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "Kiểm tra {email} để lấy liên kết đặt lại."
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "Kiểm tra nhật ký để biết thêm chi tiết."
|
msgstr "Kiểm tra nhật ký để biết thêm chi tiết."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "Kiểm tra dịch vụ thông báo của bạn"
|
msgstr "Kiểm tra dịch vụ thông báo của bạn"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "Nhấp để sao chép"
|
msgstr "Nhấp để sao chép"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "Nhấp để sao chép"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "Hướng dẫn dòng lệnh"
|
msgstr "Hướng dẫn dòng lệnh"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "Cấu hình cách bạn nhận thông báo cảnh báo."
|
msgstr "Cấu hình cách bạn nhận thông báo cảnh báo."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "Xác nhận mật khẩu"
|
msgstr "Xác nhận mật khẩu"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "Tiếp tục"
|
msgstr "Tiếp tục"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "Đã sao chép vào clipboard"
|
msgstr "Đã sao chép vào clipboard"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "Sao chép"
|
msgstr "Sao chép"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "Sao chép máy chủ"
|
msgstr "Sao chép máy chủ"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "Sao chép lệnh Linux"
|
msgstr "Sao chép lệnh Linux"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "Sao chép lệnh Linux"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "Sao chép văn bản"
|
msgstr "Sao chép văn bản"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "CPU"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "Sử dụng CPU"
|
msgstr "Sử dụng CPU"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "Tạo tài khoản"
|
msgstr "Tạo tài khoản"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "Tạo tài khoản"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "Tối"
|
msgstr "Tối"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "Bảng điều khiển"
|
msgstr "Bảng điều khiển"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "Bảng điều khiển"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "Thời gian mặc định"
|
msgstr "Thời gian mặc định"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Xóa"
|
msgstr "Xóa"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "Đĩa"
|
msgstr "Đĩa"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "Đĩa I/O"
|
msgstr "Đĩa I/O"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "Sử dụng Đĩa"
|
msgstr "Sử dụng Đĩa"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "Sử dụng đĩa của {extraFsName}"
|
msgstr "Sử dụng đĩa của {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Sử dụng CPU Docker"
|
msgstr "Sử dụng CPU Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Sử dụng Bộ nhớ Docker"
|
msgstr "Sử dụng Bộ nhớ Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "Mạng I/O Docker"
|
msgstr "Mạng I/O Docker"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "Tài liệu"
|
msgstr "Tài liệu"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Email"
|
msgstr "Email"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "Thông báo email"
|
msgstr "Thông báo email"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "Thông báo email"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "Nhập địa chỉ email để đặt lại mật khẩu"
|
msgstr "Nhập địa chỉ email để đặt lại mật khẩu"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "Nhập địa chỉ email..."
|
msgstr "Nhập địa chỉ email..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Lỗi"
|
msgstr "Lỗi"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "Vượt quá {0}{1} trong {2, plural, one {# phút} other {# phút}} qua"
|
msgstr "Vượt quá {0}{1} trong {2, plural, one {# phút} other {# phút}} qua"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "Xuất cấu hình"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "Xuất cấu hình hệ thống hiện tại của bạn."
|
msgstr "Xuất cấu hình hệ thống hiện tại của bạn."
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "Xác thực thất bại"
|
msgstr "Xác thực thất bại"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "Lưu cài đặt thất bại"
|
msgstr "Lưu cài đặt thất bại"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "Gửi thông báo thử nghiệm thất bại"
|
msgstr "Gửi thông báo thử nghiệm thất bại"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "Gửi thông báo thử nghiệm thất bại"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "Cập nhật cảnh báo thất bại"
|
msgstr "Cập nhật cảnh báo thất bại"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "Lọc..."
|
msgstr "Lọc..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "Lọc..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "Trong <0>{min}</0> {min, plural, one {phút} other {phút}}"
|
msgstr "Trong <0>{min}</0> {min, plural, one {phút} other {phút}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "Quên mật khẩu?"
|
msgstr "Quên mật khẩu?"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "Quên mật khẩu?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "Chung"
|
msgstr "Chung"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "Lưới"
|
msgstr "Lưới"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "Máy chủ / IP"
|
msgstr "Máy chủ / IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "Máy chủ / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "Nếu bạn đã mất mật khẩu cho tài khoản quản trị viên của mình, bạn có thể đặt lại bằng cách sử dụng lệnh sau."
|
msgstr "Nếu bạn đã mất mật khẩu cho tài khoản quản trị viên của mình, bạn có thể đặt lại bằng cách sử dụng lệnh sau."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "Địa chỉ email không hợp lệ."
|
msgstr "Địa chỉ email không hợp lệ."
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "Nhân"
|
msgstr "Nhân"
|
||||||
|
|
||||||
@@ -399,7 +404,7 @@ msgstr "Nhân"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Ngôn ngữ"
|
msgstr "Ngôn ngữ"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "Bố cục"
|
msgstr "Bố cục"
|
||||||
|
|
||||||
@@ -408,7 +413,7 @@ msgstr "Bố cục"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Sáng"
|
msgstr "Sáng"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "Đăng xuất"
|
msgstr "Đăng xuất"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "Đăng xuất"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "Đăng nhập"
|
msgstr "Đăng nhập"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "Nỗ lực đăng nhập thất bại"
|
msgstr "Nỗ lực đăng nhập thất bại"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "Nhật ký"
|
msgstr "Nhật ký"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "Thay vào đó, bạn đang tìm nơi để tạo cảnh báo? Nhấp vào biểu tượng chuông <0/> trong bảng hệ thống."
|
msgstr "Thay vào đó, bạn đang tìm nơi để tạo cảnh báo? Nhấp vào biểu tượng chuông <0/> trong bảng hệ thống."
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "Thay vào đó, bạn đang tìm nơi để tạo cảnh báo? Nhấp v
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "Quản lý tùy chọn hiển thị và thông báo."
|
msgstr "Quản lý tùy chọn hiển thị và thông báo."
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "Tối đa 1 phút"
|
msgstr "Tối đa 1 phút"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "Bộ nhớ"
|
msgstr "Bộ nhớ"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "Sử dụng Bộ nhớ"
|
msgstr "Sử dụng Bộ nhớ"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Sử dụng bộ nhớ của các container Docker"
|
msgstr "Sử dụng bộ nhớ của các container Docker"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Tên"
|
msgstr "Tên"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "Mạng"
|
msgstr "Mạng"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Lưu lượng mạng của các container Docker"
|
msgstr "Lưu lượng mạng của các container Docker"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "Lưu lượng mạng của các giao diện công cộng"
|
msgstr "Lưu lượng mạng của các giao diện công cộng"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "Không tìm thấy kết quả."
|
msgstr "Không tìm thấy kết quả."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "Không tìm thấy hệ thống."
|
msgstr "Không tìm thấy hệ thống."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Thông báo"
|
msgstr "Thông báo"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "Hỗ trợ OAuth 2 / OIDC"
|
msgstr "Hỗ trợ OAuth 2 / OIDC"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "Hỗ trợ OAuth 2 / OIDC"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "Mỗi khi khởi động lại, các hệ thống trong cơ sở dữ liệu sẽ được cập nhật để khớp với các hệ thống được định nghĩa trong tệp."
|
msgstr "Mỗi khi khởi động lại, các hệ thống trong cơ sở dữ liệu sẽ được cập nhật để khớp với các hệ thống được định nghĩa trong tệp."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "Mở menu"
|
msgstr "Mở menu"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "Hoặc tiếp tục với"
|
msgstr "Hoặc tiếp tục với"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "Hoặc tiếp tục với"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "Ghi đè các cảnh báo hiện có"
|
msgstr "Ghi đè các cảnh báo hiện có"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "Trang"
|
msgstr "Trang"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "Trang / Cài đặt"
|
msgstr "Trang / Cài đặt"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Mật khẩu"
|
msgstr "Mật khẩu"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "Mật khẩu phải có ít nhất 8 ký tự."
|
msgstr "Mật khẩu phải có ít nhất 8 ký tự."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "Yêu cầu đặt lại mật khẩu đã được nhận"
|
msgstr "Yêu cầu đặt lại mật khẩu đã được nhận"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "Tạm dừng"
|
msgstr "Tạm dừng"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "Vui lòng <0>cấu hình máy chủ SMTP</0> để đảm bảo cảnh báo được gửi đi."
|
msgstr "Vui lòng <0>cấu hình máy chủ SMTP</0> để đảm bảo cảnh báo được gửi đi."
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "Vui lòng <0>cấu hình máy chủ SMTP</0> để đảm bảo cảnh b
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "Vui lòng kiểm tra nhật ký để biết thêm chi tiết."
|
msgstr "Vui lòng kiểm tra nhật ký để biết thêm chi tiết."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "Vui lòng kiểm tra thông tin đăng nhập của bạn và thử lại"
|
msgstr "Vui lòng kiểm tra thông tin đăng nhập của bạn và thử lại"
|
||||||
@@ -545,15 +558,15 @@ msgstr "Vui lòng kiểm tra thông tin đăng nhập của bạn và thử lạ
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "Vui lòng tạo một tài khoản quản trị viên"
|
msgstr "Vui lòng tạo một tài khoản quản trị viên"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "Vui lòng bật cửa sổ bật lên cho trang web này"
|
msgstr "Vui lòng bật cửa sổ bật lên cho trang web này"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "Vui lòng đăng nhập lại"
|
msgstr "Vui lòng đăng nhập lại"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "Vui lòng xem <0>tài liệu</0> để biết hướng dẫn."
|
msgstr "Vui lòng xem <0>tài liệu</0> để biết hướng dẫn."
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "Vui lòng xem <0>tài liệu</0> để biết hướng dẫn."
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "Vui lòng đăng nhập vào tài khoản của bạn"
|
msgstr "Vui lòng đăng nhập vào tài khoản của bạn"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "Cổng"
|
msgstr "Cổng"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "Sử dụng chính xác tại thời điểm ghi nhận"
|
msgstr "Sử dụng chính xác tại thời điểm ghi nhận"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "Ngôn ngữ Ưa thích"
|
msgstr "Ngôn ngữ Ưa thích"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "Khóa"
|
msgstr "Khóa"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "Đã nhận"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "Đặt lại Mật khẩu"
|
msgstr "Đặt lại Mật khẩu"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "Tiếp tục"
|
msgstr "Tiếp tục"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "Lưu địa chỉ bằng cách sử dụng phím enter hoặc dấu phẩy. Để trống để vô hiệu hóa thông báo email."
|
msgstr "Lưu địa chỉ bằng cách sử dụng phím enter hoặc dấu phẩy. Để trống để vô hiệu hóa thông báo email."
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "Lưu Cài đặt"
|
msgstr "Lưu Cài đặt"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "Tìm kiếm"
|
msgstr "Tìm kiếm"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "Tìm kiếm hệ thống hoặc cài đặt..."
|
msgstr "Tìm kiếm hệ thống hoặc cài đặt..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "Đã gửi"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "Đặt phạm vi thời gian mặc định cho biểu đồ khi một hệ thống được xem."
|
msgstr "Đặt phạm vi thời gian mặc định cho biểu đồ khi một hệ thống được xem."
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "Cài đặt"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "Cài đặt đã được lưu"
|
msgstr "Cài đặt đã được lưu"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "Đăng nhập"
|
msgstr "Đăng nhập"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "Cài đặt SMTP"
|
msgstr "Cài đặt SMTP"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "Sắp xếp theo"
|
msgstr "Sắp xếp theo"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "Trạng thái"
|
msgstr "Trạng thái"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "Không gian hoán đổi được sử dụng bởi hệ thống"
|
msgstr "Không gian hoán đổi được sử dụng bởi hệ thống"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "Sử dụng Hoán đổi"
|
msgstr "Sử dụng Hoán đổi"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Hệ thống"
|
msgstr "Hệ thống"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "Các hệ thống"
|
msgstr "Các hệ thống"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "Các hệ thống"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "Các hệ thống có thể được quản lý trong tệp <0>config.yml</0> bên trong thư mục dữ liệu của bạn."
|
msgstr "Các hệ thống có thể được quản lý trong tệp <0>config.yml</0> bên trong thư mục dữ liệu của bạn."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "Bảng"
|
msgstr "Bảng"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "Nhiệt độ"
|
msgstr "Nhiệt độ"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "Nhiệt độ của các cảm biến hệ thống"
|
msgstr "Nhiệt độ của các cảm biến hệ thống"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "Kiểm tra <0>URL</0>"
|
msgstr "Kiểm tra <0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Thông báo thử nghiệm đã được gửi"
|
msgstr "Thông báo thử nghiệm đã được gửi"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "Tác nhân phải đang chạy trên hệ thống để kết nối. Sao chép lệnh cài đặt cho tác nhân bên dưới."
|
msgstr "Tác nhân phải đang chạy trên hệ thống để kết nối. Sao chép lệnh cài đặt cho tác nhân bên dưới."
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "Tác nhân phải đang chạy trên hệ thống để kết nối. Sao chép <0>docker-compose.yml</0> cho tác nhân bên dưới."
|
msgstr "Tác nhân phải đang chạy trên hệ thống để kết nối. Sao chép <0>docker-compose.yml</0> cho tác nhân bên dưới."
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "Tác nhân phải đang chạy trên hệ thống để kết nối. Sao
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "Sau đó đăng nhập vào backend và đặt lại mật khẩu tài khoản người dùng của bạn trong bảng người dùng."
|
msgstr "Sau đó đăng nhập vào backend và đặt lại mật khẩu tài khoản người dùng của bạn trong bảng người dùng."
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "Hành động này không thể hoàn tác. Điều này sẽ xóa vĩnh viễn tất cả các bản ghi hiện tại cho {name} khỏi cơ sở dữ liệu."
|
msgstr "Hành động này không thể hoàn tác. Điều này sẽ xóa vĩnh viễn tất cả các bản ghi hiện tại cho {name} khỏi cơ sở dữ liệu."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "Thông lượng của {extraFsName}"
|
msgstr "Thông lượng của {extraFsName}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "Thông lượng của hệ thống tệp gốc"
|
msgstr "Thông lượng của hệ thống tệp gốc"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "Đến email(s)"
|
msgstr "Đến email(s)"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "Chuyển đổi lưới"
|
msgstr "Chuyển đổi lưới"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "Chuyển đổi lưới"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "Chuyển đổi chủ đề"
|
msgstr "Chuyển đổi chủ đề"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "Kích hoạt khi bất kỳ cảm biến nào vượt quá ngưỡng"
|
msgstr "Kích hoạt khi bất kỳ cảm biến nào vượt quá ngưỡng"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "Kích hoạt khi kết hợp lên/xuống vượt quá ngưỡng"
|
msgstr "Kích hoạt khi kết hợp lên/xuống vượt quá ngưỡng"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "Kích hoạt khi sử dụng CPU vượt quá ngưỡng"
|
msgstr "Kích hoạt khi sử dụng CPU vượt quá ngưỡng"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "Kích hoạt khi sử dụng bộ nhớ vượt quá ngưỡng"
|
msgstr "Kích hoạt khi sử dụng bộ nhớ vượt quá ngưỡng"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "Kích hoạt khi trạng thái chuyển đổi giữa lên và xuống"
|
msgstr "Kích hoạt khi trạng thái chuyển đổi giữa lên và xuống"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "Kích hoạt khi sử dụng bất kỳ đĩa nào vượt quá ngưỡng"
|
msgstr "Kích hoạt khi sử dụng bất kỳ đĩa nào vượt quá ngưỡng"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "Cập nhật theo thời gian thực. Nhấp vào một hệ thống để xem thông tin."
|
msgstr "Cập nhật theo thời gian thực. Nhấp vào một hệ thống để xem thông tin."
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "Thời gian hoạt động"
|
msgstr "Thời gian hoạt động"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "Sử dụng"
|
msgstr "Sử dụng"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "Sử dụng phân vùng gốc"
|
msgstr "Sử dụng phân vùng gốc"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "Sử dụng phân vùng gốc"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "Đã sử dụng"
|
msgstr "Đã sử dụng"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "Người dùng"
|
msgstr "Người dùng"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Xem"
|
msgstr "Xem"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "Các cột hiển thị"
|
msgstr "Các cột hiển thị"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "Đang chờ đủ bản ghi để hiển thị"
|
msgstr "Đang chờ đủ bản ghi để hiển thị"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "Đang chờ đủ bản ghi để hiển thị"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "Muốn giúp chúng tôi cải thiện bản dịch của mình? Xem <0>Crowdin</0> để biết thêm chi tiết."
|
msgstr "Muốn giúp chúng tôi cải thiện bản dịch của mình? Xem <0>Crowdin</0> để biết thêm chi tiết."
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Thông báo Webhook / Push"
|
msgstr "Thông báo Webhook / Push"
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: zh\n"
|
"Language: zh\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Chinese Simplified\n"
|
"Language-Team: Chinese Simplified\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# 天} other {# 天}}"
|
msgstr "{0, plural, one {# 天} other {# 天}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# 小时} other {# 小时}}"
|
msgstr "{hours, plural, one {# 小时} other {# 小时}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1小时"
|
msgstr "1小时"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1周"
|
msgstr "1周"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12小时"
|
msgstr "12小时"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24小时"
|
msgstr "24小时"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30天"
|
msgstr "30天"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "操作"
|
msgstr "操作"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "启用的警报"
|
msgstr "启用的警报"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "添加<0>客户端</0>"
|
msgstr "添加<0>客户端</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "添加新客户端"
|
msgstr "添加新客户端"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "添加客户端"
|
msgstr "添加客户端"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "添加URL"
|
msgstr "添加URL"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "添加URL"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "调整图表的显示选项。"
|
msgstr "调整图表的显示选项。"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "管理员"
|
msgstr "管理员"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "客户端"
|
msgstr "客户端"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "警报"
|
msgstr "警报"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "所有客户端"
|
msgstr "所有客户端"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "您确定要删除{name}吗?"
|
msgstr "您确定要删除{name}吗?"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "您确定要删除{name}吗?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "自动复制所需的安全上下文。"
|
msgstr "自动复制所需的安全上下文。"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "平均"
|
msgstr "平均"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "容器的平均CPU使用率"
|
msgstr "容器的平均CPU使用率"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "容器的平均CPU使用率"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "平均值超过<0>{value}{0}</0>"
|
msgstr "平均值超过<0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr "GPU 平均能耗"
|
msgstr "GPU 平均能耗"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "系统范围内的平均CPU使用率"
|
msgstr "系统范围内的平均CPU使用率"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr "{0} 平均利用率"
|
msgstr "{0} 平均利用率"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "备份"
|
msgstr "备份"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "带宽"
|
msgstr "带宽"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel支持OpenID Connect和其他OAuth2认证方式。"
|
msgstr "Beszel支持OpenID Connect和其他OAuth2认证方式。"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel使用<0>Shoutrrr</0>以实现与常见的通知服务集成。"
|
msgstr "Beszel使用<0>Shoutrrr</0>以实现与常见的通知服务集成。"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "二进制"
|
msgstr "二进制"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "二进制"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "缓存/缓冲区"
|
msgstr "缓存/缓冲区"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "取消"
|
msgstr "取消"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "检查{email}以获取重置链接。"
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "检查日志以获取更多详细信息。"
|
msgstr "检查日志以获取更多详细信息。"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "检查您的通知服务"
|
msgstr "检查您的通知服务"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "点击复制"
|
msgstr "点击复制"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "点击复制"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "命令行说明"
|
msgstr "命令行说明"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "配置您接收警报通知的方式。"
|
msgstr "配置您接收警报通知的方式。"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "确认密码"
|
msgstr "确认密码"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "继续"
|
msgstr "继续"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "已复制到剪贴板"
|
msgstr "已复制到剪贴板"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "复制"
|
msgstr "复制"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "复制主机名"
|
msgstr "复制主机名"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "复制Linux安装命令"
|
msgstr "复制Linux安装命令"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "复制Linux安装命令"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "复制文本"
|
msgstr "复制文本"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "CPU"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "CPU使用率"
|
msgstr "CPU使用率"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "创建账户"
|
msgstr "创建账户"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "创建账户"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "深色模式"
|
msgstr "深色模式"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "仪表板"
|
msgstr "仪表板"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "仪表板"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "默认时间段"
|
msgstr "默认时间段"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "删除"
|
msgstr "删除"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "磁盘"
|
msgstr "磁盘"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "磁盘I/O"
|
msgstr "磁盘I/O"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "磁盘使用"
|
msgstr "磁盘使用"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "{extraFsName}的磁盘使用"
|
msgstr "{extraFsName}的磁盘使用"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Docker CPU使用"
|
msgstr "Docker CPU使用"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Docker内存使用"
|
msgstr "Docker内存使用"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "Docker网络I/O"
|
msgstr "Docker网络I/O"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "文档"
|
msgstr "文档"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "电子邮件"
|
msgstr "电子邮件"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "电子邮件通知"
|
msgstr "电子邮件通知"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "电子邮件通知"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "输入电子邮件地址以重置密码"
|
msgstr "输入电子邮件地址以重置密码"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "输入电子邮件地址..."
|
msgstr "输入电子邮件地址..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "错误"
|
msgstr "错误"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "在过去的{2, plural, one {# 分钟} other {# 分钟}}中超过{0}{1}"
|
msgstr "在过去的{2, plural, one {# 分钟} other {# 分钟}}中超过{0}{1}"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "导出配置"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "导出您当前的系统配置。"
|
msgstr "导出您当前的系统配置。"
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "认证失败"
|
msgstr "认证失败"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "保存设置失败"
|
msgstr "保存设置失败"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "发送测试通知失败"
|
msgstr "发送测试通知失败"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "发送测试通知失败"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "更新警报失败"
|
msgstr "更新警报失败"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "过滤..."
|
msgstr "过滤..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "过滤..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "持续<0>{min}</0> {min, plural, one {分钟} other {分钟}}"
|
msgstr "持续<0>{min}</0> {min, plural, one {分钟} other {分钟}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "忘记密码?"
|
msgstr "忘记密码?"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "忘记密码?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "常规"
|
msgstr "常规"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr "GPU 功耗"
|
msgstr "GPU 功耗"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "网格"
|
msgstr "网格"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "主机/IP"
|
msgstr "主机/IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "主机/IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "如果您丢失了管理员账户的密码,可以使用以下命令重置。"
|
msgstr "如果您丢失了管理员账户的密码,可以使用以下命令重置。"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "无效的电子邮件地址。"
|
msgstr "无效的电子邮件地址。"
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "内核"
|
msgstr "内核"
|
||||||
|
|
||||||
@@ -399,7 +404,7 @@ msgstr "内核"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "语言"
|
msgstr "语言"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "布局"
|
msgstr "布局"
|
||||||
|
|
||||||
@@ -408,7 +413,7 @@ msgstr "布局"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "浅色模式"
|
msgstr "浅色模式"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "登出"
|
msgstr "登出"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "登出"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "登录"
|
msgstr "登录"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "登录尝试失败"
|
msgstr "登录尝试失败"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "日志"
|
msgstr "日志"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "在寻找创建警报的位置吗?点击系统表中的铃铛<0/>图标。"
|
msgstr "在寻找创建警报的位置吗?点击系统表中的铃铛<0/>图标。"
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "在寻找创建警报的位置吗?点击系统表中的铃铛<0/>图
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "管理显示和通知偏好。"
|
msgstr "管理显示和通知偏好。"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "1分钟内最大值"
|
msgstr "1分钟内最大值"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "内存"
|
msgstr "内存"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "内存使用"
|
msgstr "内存使用"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Docker容器的内存使用"
|
msgstr "Docker容器的内存使用"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "名称"
|
msgstr "名称"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "网络"
|
msgstr "网络"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Docker容器的网络流量"
|
msgstr "Docker容器的网络流量"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "公共接口的网络流量"
|
msgstr "公共接口的网络流量"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "未找到结果。"
|
msgstr "未找到结果。"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "未找到系统。"
|
msgstr "未找到系统。"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "通知"
|
msgstr "通知"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "支持OAuth 2 / OIDC"
|
msgstr "支持OAuth 2 / OIDC"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "支持OAuth 2 / OIDC"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "每次重启时,数据库中的系统将更新以匹配文件中定义的系统。"
|
msgstr "每次重启时,数据库中的系统将更新以匹配文件中定义的系统。"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "打开菜单"
|
msgstr "打开菜单"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "或使用以下方式登录"
|
msgstr "或使用以下方式登录"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "或使用以下方式登录"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "覆盖现有警报"
|
msgstr "覆盖现有警报"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "页面"
|
msgstr "页面"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "页面/设置"
|
msgstr "页面/设置"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "密码"
|
msgstr "密码"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "密码必须至少包含 8 个字符。"
|
msgstr "密码必须至少包含 8 个字符。"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "已收到密码重置请求"
|
msgstr "已收到密码重置请求"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "暂停"
|
msgstr "暂停"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "请<0>配置SMTP服务器</0>以确保警报被传递。"
|
msgstr "请<0>配置SMTP服务器</0>以确保警报被传递。"
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "请<0>配置SMTP服务器</0>以确保警报被传递。"
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "请检查日志以获取更多详细信息。"
|
msgstr "请检查日志以获取更多详细信息。"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "请检查您的凭据并重试"
|
msgstr "请检查您的凭据并重试"
|
||||||
@@ -545,15 +558,15 @@ msgstr "请检查您的凭据并重试"
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "请创建一个管理员账户"
|
msgstr "请创建一个管理员账户"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "请为此网站启用弹出窗口"
|
msgstr "请为此网站启用弹出窗口"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "请重新登录"
|
msgstr "请重新登录"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "请参阅<0>文档</0>以获取说明。"
|
msgstr "请参阅<0>文档</0>以获取说明。"
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "请参阅<0>文档</0>以获取说明。"
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "请登录您的账户"
|
msgstr "请登录您的账户"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "端口"
|
msgstr "端口"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "采集时间下的精确内存使用率"
|
msgstr "采集时间下的精确内存使用率"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "首选语言"
|
msgstr "首选语言"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "公钥"
|
msgstr "公钥"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "接收"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "重置密码"
|
msgstr "重置密码"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "恢复"
|
msgstr "恢复"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "使用回车键或逗号保存地址。留空以禁用电子邮件通知。"
|
msgstr "使用回车键或逗号保存地址。留空以禁用电子邮件通知。"
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "保存设置"
|
msgstr "保存设置"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "搜索"
|
msgstr "搜索"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "搜索系统或设置..."
|
msgstr "搜索系统或设置..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "发送"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "设置查看系统时图表的默认时间范围。"
|
msgstr "设置查看系统时图表的默认时间范围。"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "设置"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "设置已保存"
|
msgstr "设置已保存"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "登录"
|
msgstr "登录"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "SMTP设置"
|
msgstr "SMTP设置"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "排序依据"
|
msgstr "排序依据"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "状态"
|
msgstr "状态"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "系统使用的SWAP空间"
|
msgstr "系统使用的SWAP空间"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "SWAP使用"
|
msgstr "SWAP使用"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "系统"
|
msgstr "系统"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "系统"
|
msgstr "系统"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "系统"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "系统可以在数据目录中的<0>config.yml</0>文件中管理。"
|
msgstr "系统可以在数据目录中的<0>config.yml</0>文件中管理。"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "表格"
|
msgstr "表格"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "温度"
|
msgstr "温度"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "系统传感器的温度"
|
msgstr "系统传感器的温度"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "测试<0>URL</0>"
|
msgstr "测试<0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "测试通知已发送"
|
msgstr "测试通知已发送"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "必须在系统上运行客户端之后才能连接。复制下面的客户端安装命令。"
|
msgstr "必须在系统上运行客户端之后才能连接。复制下面的客户端安装命令。"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "必须在系统上运行客户端之后才能连接。复制下面的<0>docker-compose.yml</0>。"
|
msgstr "必须在系统上运行客户端之后才能连接。复制下面的<0>docker-compose.yml</0>。"
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "必须在系统上运行客户端之后才能连接。复制下面的<0>
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "然后登录到后台并在用户表中重置您的用户账户密码。"
|
msgstr "然后登录到后台并在用户表中重置您的用户账户密码。"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "此操作无法撤销。这将永久删除数据库中{name}的所有当前记录。"
|
msgstr "此操作无法撤销。这将永久删除数据库中{name}的所有当前记录。"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "{extraFsName}的吞吐量"
|
msgstr "{extraFsName}的吞吐量"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "根文件系统的吞吐量"
|
msgstr "根文件系统的吞吐量"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "发送到电子邮件"
|
msgstr "发送到电子邮件"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "切换网格"
|
msgstr "切换网格"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "切换网格"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "切换主题"
|
msgstr "切换主题"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "当任何传感器超过阈值时触发"
|
msgstr "当任何传感器超过阈值时触发"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "当网络的上/下行速度超过阈值时触发"
|
msgstr "当网络的上/下行速度超过阈值时触发"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "当CPU使用率超过阈值时触发"
|
msgstr "当CPU使用率超过阈值时触发"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "当内存使用率超过阈值时触发"
|
msgstr "当内存使用率超过阈值时触发"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "当状态在上线与掉线之间切换时触发"
|
msgstr "当状态在上线与掉线之间切换时触发"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "当任何磁盘的使用率超过阈值时触发"
|
msgstr "当任何磁盘的使用率超过阈值时触发"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "实时更新。点击系统查看信息。"
|
msgstr "实时更新。点击系统查看信息。"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "正常运行时间"
|
msgstr "正常运行时间"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "使用"
|
msgstr "使用"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "根分区的使用"
|
msgstr "根分区的使用"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "根分区的使用"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "已用"
|
msgstr "已用"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "用户"
|
msgstr "用户"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "视图"
|
msgstr "视图"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "可见列"
|
msgstr "可见列"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "正在收集足够的数据来显示"
|
msgstr "正在收集足够的数据来显示"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "正在收集足够的数据来显示"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "想帮助我们改进翻译吗?查看<0>Crowdin</0>以获取更多详细信息。"
|
msgstr "想帮助我们改进翻译吗?查看<0>Crowdin</0>以获取更多详细信息。"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Webhook / 推送通知"
|
msgstr "Webhook / 推送通知"
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Language: zh\n"
|
"Language: zh\n"
|
||||||
"Project-Id-Version: beszel\n"
|
"Project-Id-Version: beszel\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"PO-Revision-Date: 2024-12-17 21:36\n"
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Chinese Traditional, Hong Kong\n"
|
"Language-Team: Chinese Traditional, Hong Kong\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
@@ -18,60 +18,59 @@ msgstr ""
|
|||||||
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
"X-Crowdin-File-ID: 16\n"
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:250
|
#: src/components/routes/system.tsx:252
|
||||||
msgid "{0, plural, one {# day} other {# days}}"
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
msgstr "{0, plural, one {# 天} other {# 天}}"
|
msgstr "{0, plural, one {# 天} other {# 天}}"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:248
|
#: src/components/routes/system.tsx:250
|
||||||
msgid "{hours, plural, one {# hour} other {# hours}}"
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
msgstr "{hours, plural, one {# 小時} other {# 小時}}"
|
msgstr "{hours, plural, one {# 小時} other {# 小時}}"
|
||||||
|
|
||||||
#: src/lib/utils.ts:139
|
#: src/lib/utils.ts:158
|
||||||
msgid "1 hour"
|
msgid "1 hour"
|
||||||
msgstr "1小時"
|
msgstr "1小時"
|
||||||
|
|
||||||
#: src/lib/utils.ts:162
|
#: src/lib/utils.ts:181
|
||||||
msgid "1 week"
|
msgid "1 week"
|
||||||
msgstr "1週"
|
msgstr "1週"
|
||||||
|
|
||||||
#: src/lib/utils.ts:147
|
#: src/lib/utils.ts:166
|
||||||
msgid "12 hours"
|
msgid "12 hours"
|
||||||
msgstr "12小時"
|
msgstr "12小時"
|
||||||
|
|
||||||
#: src/lib/utils.ts:155
|
#: src/lib/utils.ts:174
|
||||||
msgid "24 hours"
|
msgid "24 hours"
|
||||||
msgstr "24小時"
|
msgstr "24小時"
|
||||||
|
|
||||||
#: src/lib/utils.ts:170
|
#: src/lib/utils.ts:189
|
||||||
msgid "30 days"
|
msgid "30 days"
|
||||||
msgstr "30天"
|
msgstr "30天"
|
||||||
|
|
||||||
#. Table column
|
#. Table column
|
||||||
#: src/components/systems-table/systems-table.tsx:227
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
#: src/components/systems-table/systems-table.tsx:313
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
#: src/components/systems-table/systems-table.tsx:455
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "操作"
|
msgstr "操作"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:61
|
#: src/components/routes/home.tsx:62
|
||||||
msgid "Active Alerts"
|
msgid "Active Alerts"
|
||||||
msgstr "活動警報"
|
msgstr "活動警報"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:78
|
#: src/components/add-system.tsx:42
|
||||||
msgid "Add <0>System</0>"
|
msgid "Add <0>System</0>"
|
||||||
msgstr "添加<0>系統</0>"
|
msgstr "添加<0>系統</0>"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:87
|
#: src/components/add-system.tsx:124
|
||||||
msgid "Add New System"
|
msgid "Add New System"
|
||||||
msgstr "添加新系統"
|
msgstr "添加新系統"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:165
|
#: src/components/add-system.tsx:230
|
||||||
#: src/components/add-system.tsx:176
|
|
||||||
msgid "Add system"
|
msgid "Add system"
|
||||||
msgstr "添加系統"
|
msgstr "添加系統"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:156
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
msgid "Add URL"
|
msgid "Add URL"
|
||||||
msgstr "添加URL"
|
msgstr "添加URL"
|
||||||
|
|
||||||
@@ -79,15 +78,15 @@ msgstr "添加URL"
|
|||||||
msgid "Adjust display options for charts."
|
msgid "Adjust display options for charts."
|
||||||
msgstr "調整圖表的顯示選項。"
|
msgstr "調整圖表的顯示選項。"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:132
|
#: src/components/command-palette.tsx:133
|
||||||
#: src/components/command-palette.tsx:145
|
#: src/components/command-palette.tsx:146
|
||||||
#: src/components/command-palette.tsx:159
|
#: src/components/command-palette.tsx:160
|
||||||
#: src/components/command-palette.tsx:173
|
#: src/components/command-palette.tsx:174
|
||||||
#: src/components/command-palette.tsx:188
|
#: src/components/command-palette.tsx:189
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "管理員"
|
msgstr "管理員"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:201
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
msgid "Agent"
|
msgid "Agent"
|
||||||
msgstr "代理"
|
msgstr "代理"
|
||||||
|
|
||||||
@@ -97,11 +96,11 @@ msgid "Alerts"
|
|||||||
msgstr "警報"
|
msgstr "警報"
|
||||||
|
|
||||||
#: src/components/alerts/alert-button.tsx:88
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
#: src/components/systems-table/systems-table.tsx:266
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
msgid "All Systems"
|
msgid "All Systems"
|
||||||
msgstr "所有系統"
|
msgstr "所有系統"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:570
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
msgid "Are you sure you want to delete {name}?"
|
msgid "Are you sure you want to delete {name}?"
|
||||||
msgstr "您確定要刪除{name}嗎?"
|
msgstr "您確定要刪除{name}嗎?"
|
||||||
|
|
||||||
@@ -109,11 +108,11 @@ msgstr "您確定要刪除{name}嗎?"
|
|||||||
msgid "Automatic copy requires a secure context."
|
msgid "Automatic copy requires a secure context."
|
||||||
msgstr "自動複製需要安全的上下文。"
|
msgstr "自動複製需要安全的上下文。"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:625
|
#: src/components/routes/system.tsx:626
|
||||||
msgid "Average"
|
msgid "Average"
|
||||||
msgstr "平均"
|
msgstr "平均"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:396
|
#: src/components/routes/system.tsx:403
|
||||||
msgid "Average CPU utilization of containers"
|
msgid "Average CPU utilization of containers"
|
||||||
msgstr "容器的平均CPU使用率"
|
msgstr "容器的平均CPU使用率"
|
||||||
|
|
||||||
@@ -121,37 +120,37 @@ msgstr "容器的平均CPU使用率"
|
|||||||
msgid "Average exceeds <0>{value}{0}</0>"
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
msgstr "平均值超過<0>{value}{0}</0>"
|
msgstr "平均值超過<0>{value}{0}</0>"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:497
|
#: src/components/routes/system.tsx:504
|
||||||
msgid "Average power consumption of GPUs"
|
msgid "Average power consumption of GPUs"
|
||||||
msgstr ""
|
msgstr "GPU 的平均功耗"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:385
|
#: src/components/routes/system.tsx:392
|
||||||
msgid "Average system-wide CPU utilization"
|
msgid "Average system-wide CPU utilization"
|
||||||
msgstr "系統範圍內的平均CPU使用率"
|
msgstr "系統範圍內的平均CPU使用率"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:515
|
#: src/components/routes/system.tsx:522
|
||||||
msgid "Average utilization of {0}"
|
msgid "Average utilization of {0}"
|
||||||
msgstr ""
|
msgstr "{0} 的平均使用率"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:170
|
#: src/components/command-palette.tsx:171
|
||||||
#: src/components/navbar.tsx:93
|
#: src/components/navbar.tsx:94
|
||||||
msgid "Backups"
|
msgid "Backups"
|
||||||
msgstr "備份"
|
msgstr "備份"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:441
|
#: src/components/routes/system.tsx:448
|
||||||
#: src/lib/utils.ts:307
|
#: src/lib/utils.ts:326
|
||||||
msgid "Bandwidth"
|
msgid "Bandwidth"
|
||||||
msgstr "帶寬"
|
msgstr "帶寬"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:289
|
#: src/components/login/auth-form.tsx:304
|
||||||
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
msgstr "Beszel支持OpenID Connect和許多OAuth2認證提供者。"
|
msgstr "Beszel支持OpenID Connect和許多OAuth2認證提供者。"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:127
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
msgstr "Beszel使用<0>Shoutrrr</0>與流行的通知服務集成。"
|
msgstr "Beszel使用<0>Shoutrrr</0>與流行的通知服務集成。"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:92
|
#: src/components/add-system.tsx:129
|
||||||
msgid "Binary"
|
msgid "Binary"
|
||||||
msgstr "二進制"
|
msgstr "二進制"
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ msgstr "二進制"
|
|||||||
msgid "Cache / Buffers"
|
msgid "Cache / Buffers"
|
||||||
msgstr "緩存/緩衝區"
|
msgstr "緩存/緩衝區"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:581
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "取消"
|
msgstr "取消"
|
||||||
|
|
||||||
@@ -183,11 +182,11 @@ msgstr "檢查{email}以獲取重置鏈接。"
|
|||||||
msgid "Check logs for more details."
|
msgid "Check logs for more details."
|
||||||
msgstr "檢查日誌以獲取更多詳細信息。"
|
msgstr "檢查日誌以獲取更多詳細信息。"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:183
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
msgid "Check your notification service"
|
msgid "Check your notification service"
|
||||||
msgstr "檢查您的通知服務"
|
msgstr "檢查您的通知服務"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:151
|
#: src/components/add-system.tsx:203
|
||||||
msgid "Click to copy"
|
msgid "Click to copy"
|
||||||
msgstr "點擊以複製"
|
msgstr "點擊以複製"
|
||||||
|
|
||||||
@@ -196,32 +195,33 @@ msgstr "點擊以複製"
|
|||||||
msgid "Command line instructions"
|
msgid "Command line instructions"
|
||||||
msgstr "命令行指令"
|
msgstr "命令行指令"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:77
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
msgid "Configure how you receive alert notifications."
|
msgid "Configure how you receive alert notifications."
|
||||||
msgstr "配置您接收警報通知的方式。"
|
msgstr "配置您接收警報通知的方式。"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:165
|
#: src/components/login/auth-form.tsx:210
|
||||||
#: src/components/login/auth-form.tsx:170
|
#: src/components/login/auth-form.tsx:215
|
||||||
msgid "Confirm password"
|
msgid "Confirm password"
|
||||||
msgstr "確認密碼"
|
msgstr "確認密碼"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:587
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
msgid "Continue"
|
msgid "Continue"
|
||||||
msgstr "繼續"
|
msgstr "繼續"
|
||||||
|
|
||||||
#: src/lib/utils.ts:25
|
#: src/lib/utils.ts:26
|
||||||
msgid "Copied to clipboard"
|
msgid "Copied to clipboard"
|
||||||
msgstr "已複製到剪貼板"
|
msgstr "已複製到剪貼板"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:162
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "複製"
|
msgstr "複製"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:556
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
msgid "Copy host"
|
msgid "Copy host"
|
||||||
msgstr "複製主機"
|
msgstr "複製主機"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:173
|
#: src/components/add-system.tsx:223
|
||||||
msgid "Copy Linux command"
|
msgid "Copy Linux command"
|
||||||
msgstr "複製Linux命令"
|
msgstr "複製Linux命令"
|
||||||
|
|
||||||
@@ -229,17 +229,17 @@ msgstr "複製Linux命令"
|
|||||||
msgid "Copy text"
|
msgid "Copy text"
|
||||||
msgstr "複製文本"
|
msgstr "複製文本"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:157
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
msgid "CPU"
|
msgid "CPU"
|
||||||
msgstr "CPU"
|
msgstr "CPU"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:56
|
#: src/components/charts/area-chart.tsx:56
|
||||||
#: src/components/routes/system.tsx:384
|
#: src/components/routes/system.tsx:391
|
||||||
#: src/lib/utils.ts:289
|
#: src/lib/utils.ts:308
|
||||||
msgid "CPU Usage"
|
msgid "CPU Usage"
|
||||||
msgstr "CPU使用率"
|
msgstr "CPU使用率"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Create account"
|
msgid "Create account"
|
||||||
msgstr "創建帳戶"
|
msgstr "創建帳戶"
|
||||||
|
|
||||||
@@ -248,8 +248,8 @@ msgstr "創建帳戶"
|
|||||||
msgid "Dark"
|
msgid "Dark"
|
||||||
msgstr "深色"
|
msgstr "深色"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:81
|
#: src/components/command-palette.tsx:82
|
||||||
#: src/components/routes/home.tsx:34
|
#: src/components/routes/home.tsx:35
|
||||||
msgid "Dashboard"
|
msgid "Dashboard"
|
||||||
msgstr "儀表板"
|
msgstr "儀表板"
|
||||||
|
|
||||||
@@ -257,50 +257,55 @@ msgstr "儀表板"
|
|||||||
msgid "Default time period"
|
msgid "Default time period"
|
||||||
msgstr "默認時間段"
|
msgstr "默認時間段"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:562
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "刪除"
|
msgstr "刪除"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:173
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
msgid "Disk"
|
msgid "Disk"
|
||||||
msgstr "磁碟"
|
msgstr "磁碟"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:431
|
#: src/components/routes/system.tsx:438
|
||||||
msgid "Disk I/O"
|
msgid "Disk I/O"
|
||||||
msgstr "磁碟I/O"
|
msgstr "磁碟I/O"
|
||||||
|
|
||||||
#: src/components/charts/disk-chart.tsx:79
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
#: src/lib/utils.ts:301
|
#: src/lib/utils.ts:320
|
||||||
msgid "Disk Usage"
|
msgid "Disk Usage"
|
||||||
msgstr "磁碟使用"
|
msgstr "磁碟使用"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:552
|
#: src/components/routes/system.tsx:559
|
||||||
msgid "Disk usage of {extraFsName}"
|
msgid "Disk usage of {extraFsName}"
|
||||||
msgstr "{extraFsName}的磁碟使用"
|
msgstr "{extraFsName}的磁碟使用"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:395
|
#: src/components/routes/system.tsx:402
|
||||||
msgid "Docker CPU Usage"
|
msgid "Docker CPU Usage"
|
||||||
msgstr "Docker CPU使用"
|
msgstr "Docker CPU使用"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:416
|
#: src/components/routes/system.tsx:423
|
||||||
msgid "Docker Memory Usage"
|
msgid "Docker Memory Usage"
|
||||||
msgstr "Docker記憶體使用"
|
msgstr "Docker記憶體使用"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:457
|
#: src/components/routes/system.tsx:464
|
||||||
msgid "Docker Network I/O"
|
msgid "Docker Network I/O"
|
||||||
msgstr "Docker網絡I/O"
|
msgstr "Docker網絡I/O"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:124
|
#: src/components/command-palette.tsx:125
|
||||||
msgid "Documentation"
|
msgid "Documentation"
|
||||||
msgstr "文檔"
|
msgstr "文檔"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:128
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
#: src/components/login/forgot-pass-form.tsx:53
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "電子郵件"
|
msgstr "電子郵件"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:91
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
msgid "Email notifications"
|
msgid "Email notifications"
|
||||||
msgstr "電子郵件通知"
|
msgstr "電子郵件通知"
|
||||||
|
|
||||||
@@ -308,17 +313,17 @@ msgstr "電子郵件通知"
|
|||||||
msgid "Enter email address to reset password"
|
msgid "Enter email address to reset password"
|
||||||
msgstr "輸入電子郵件地址以重置密碼"
|
msgstr "輸入電子郵件地址以重置密碼"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:111
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
msgid "Enter email address..."
|
msgid "Enter email address..."
|
||||||
msgstr "輸入電子郵件地址..."
|
msgstr "輸入電子郵件地址..."
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:232
|
#: src/components/login/auth-form.tsx:136
|
||||||
#: src/components/routes/settings/config-yaml.tsx:28
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
#: src/components/routes/settings/notifications.tsx:187
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "錯誤"
|
msgstr "錯誤"
|
||||||
|
|
||||||
#: src/components/routes/home.tsx:80
|
#: src/components/routes/home.tsx:81
|
||||||
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
msgstr "在過去的{2, plural, one {# 分鐘} other {# 分鐘}}中超過{0}{1}"
|
msgstr "在過去的{2, plural, one {# 分鐘} other {# 分鐘}}中超過{0}{1}"
|
||||||
|
|
||||||
@@ -334,16 +339,16 @@ msgstr "導出配置"
|
|||||||
msgid "Export your current systems configuration."
|
msgid "Export your current systems configuration."
|
||||||
msgstr "導出您當前的系統配置。"
|
msgstr "導出您當前的系統配置。"
|
||||||
|
|
||||||
#: src/lib/utils.ts:38
|
#: src/lib/utils.ts:39
|
||||||
msgid "Failed to authenticate"
|
msgid "Failed to authenticate"
|
||||||
msgstr "認證失敗"
|
msgstr "認證失敗"
|
||||||
|
|
||||||
#: src/components/routes/settings/layout.tsx:39
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
#: src/components/routes/settings/notifications.tsx:62
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
msgid "Failed to save settings"
|
msgid "Failed to save settings"
|
||||||
msgstr "保存設置失敗"
|
msgstr "保存設置失敗"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:188
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
msgid "Failed to send test notification"
|
msgid "Failed to send test notification"
|
||||||
msgstr "發送測試通知失敗"
|
msgstr "發送測試通知失敗"
|
||||||
|
|
||||||
@@ -351,8 +356,8 @@ msgstr "發送測試通知失敗"
|
|||||||
msgid "Failed to update alert"
|
msgid "Failed to update alert"
|
||||||
msgstr "更新警報失敗"
|
msgstr "更新警報失敗"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:596
|
#: src/components/routes/system.tsx:599
|
||||||
#: src/components/systems-table/systems-table.tsx:273
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr "篩選..."
|
msgstr "篩選..."
|
||||||
|
|
||||||
@@ -360,7 +365,7 @@ msgstr "篩選..."
|
|||||||
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
msgstr "持續<0>{min}</0> {min, plural, one {分鐘} other {分鐘}}"
|
msgstr "持續<0>{min}</0> {min, plural, one {分鐘} other {分鐘}}"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:313
|
#: src/components/login/auth-form.tsx:328
|
||||||
msgid "Forgot password?"
|
msgid "Forgot password?"
|
||||||
msgstr "忘記密碼?"
|
msgstr "忘記密碼?"
|
||||||
|
|
||||||
@@ -370,15 +375,15 @@ msgstr "忘記密碼?"
|
|||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "一般"
|
msgstr "一般"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:496
|
#: src/components/routes/system.tsx:503
|
||||||
msgid "GPU Power Draw"
|
msgid "GPU Power Draw"
|
||||||
msgstr ""
|
msgstr "GPU 功耗"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:300
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
msgid "Grid"
|
msgid "Grid"
|
||||||
msgstr "網格"
|
msgstr "網格"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:120
|
#: src/components/add-system.tsx:157
|
||||||
msgid "Host / IP"
|
msgid "Host / IP"
|
||||||
msgstr "主機 / IP"
|
msgstr "主機 / IP"
|
||||||
|
|
||||||
@@ -386,12 +391,12 @@ msgstr "主機 / IP"
|
|||||||
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
msgstr "如果您丟失了管理員帳戶的密碼,可以使用以下命令重置。"
|
msgstr "如果您丟失了管理員帳戶的密碼,可以使用以下命令重置。"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:16
|
#: src/components/login/auth-form.tsx:17
|
||||||
msgid "Invalid email address."
|
msgid "Invalid email address."
|
||||||
msgstr "無效的電子郵件地址。"
|
msgstr "無效的電子郵件地址。"
|
||||||
|
|
||||||
#. Linux kernel
|
#. Linux kernel
|
||||||
#: src/components/routes/system.tsx:262
|
#: src/components/routes/system.tsx:264
|
||||||
msgid "Kernel"
|
msgid "Kernel"
|
||||||
msgstr "內核"
|
msgstr "內核"
|
||||||
|
|
||||||
@@ -399,7 +404,7 @@ msgstr "內核"
|
|||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "語言"
|
msgstr "語言"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:286
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "版面配置"
|
msgstr "版面配置"
|
||||||
|
|
||||||
@@ -408,7 +413,7 @@ msgstr "版面配置"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "淺色"
|
msgstr "淺色"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:104
|
#: src/components/navbar.tsx:105
|
||||||
msgid "Log Out"
|
msgid "Log Out"
|
||||||
msgstr "登出"
|
msgstr "登出"
|
||||||
|
|
||||||
@@ -416,17 +421,17 @@ msgstr "登出"
|
|||||||
msgid "Login"
|
msgid "Login"
|
||||||
msgstr "登錄"
|
msgstr "登錄"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:34
|
#: src/components/login/auth-form.tsx:39
|
||||||
#: src/components/login/forgot-pass-form.tsx:15
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
msgid "Login attempt failed"
|
msgid "Login attempt failed"
|
||||||
msgstr "登錄嘗試失敗"
|
msgstr "登錄嘗試失敗"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:156
|
#: src/components/command-palette.tsx:157
|
||||||
#: src/components/navbar.tsx:85
|
#: src/components/navbar.tsx:86
|
||||||
msgid "Logs"
|
msgid "Logs"
|
||||||
msgstr "日誌"
|
msgstr "日誌"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:80
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
msgstr "在尋找創建警報的位置嗎?點擊系統表中的鈴鐺<0/>圖標。"
|
msgstr "在尋找創建警報的位置嗎?點擊系統表中的鈴鐺<0/>圖標。"
|
||||||
|
|
||||||
@@ -434,56 +439,60 @@ msgstr "在尋找創建警報的位置嗎?點擊系統表中的鈴鐺<0/>圖
|
|||||||
msgid "Manage display and notification preferences."
|
msgid "Manage display and notification preferences."
|
||||||
msgstr "管理顯示和通知偏好。"
|
msgstr "管理顯示和通知偏好。"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. Chart select field. Please try to keep this short.
|
#. Chart select field. Please try to keep this short.
|
||||||
#: src/components/routes/system.tsx:628
|
#: src/components/routes/system.tsx:629
|
||||||
msgid "Max 1 min"
|
msgid "Max 1 min"
|
||||||
msgstr "最大1分鐘"
|
msgstr "最大1分鐘"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:165
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
msgid "Memory"
|
msgid "Memory"
|
||||||
msgstr "記憶體"
|
msgstr "記憶體"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:406
|
#: src/components/routes/system.tsx:413
|
||||||
#: src/lib/utils.ts:295
|
#: src/lib/utils.ts:314
|
||||||
msgid "Memory Usage"
|
msgid "Memory Usage"
|
||||||
msgstr "記憶體使用"
|
msgstr "記憶體使用"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:417
|
#: src/components/routes/system.tsx:424
|
||||||
msgid "Memory usage of docker containers"
|
msgid "Memory usage of docker containers"
|
||||||
msgstr "Docker容器的記憶體使用"
|
msgstr "Docker容器的記憶體使用"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:116
|
#: src/components/add-system.tsx:153
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "名稱"
|
msgstr "名稱"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:181
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
msgid "Net"
|
msgid "Net"
|
||||||
msgstr "網絡"
|
msgstr "網絡"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:458
|
#: src/components/routes/system.tsx:465
|
||||||
msgid "Network traffic of docker containers"
|
msgid "Network traffic of docker containers"
|
||||||
msgstr "Docker容器的網絡流量"
|
msgstr "Docker容器的網絡流量"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:443
|
#: src/components/routes/system.tsx:450
|
||||||
msgid "Network traffic of public interfaces"
|
msgid "Network traffic of public interfaces"
|
||||||
msgstr "公共接口的網絡流量"
|
msgstr "公共接口的網絡流量"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:49
|
#: src/components/command-palette.tsx:50
|
||||||
msgid "No results found."
|
msgid "No results found."
|
||||||
msgstr "未找到結果。"
|
msgstr "未找到結果。"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:421
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
#: src/components/systems-table/systems-table.tsx:494
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
msgid "No systems found."
|
msgid "No systems found."
|
||||||
msgstr "未找到系統。"
|
msgstr "未找到系統。"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:110
|
#: src/components/command-palette.tsx:111
|
||||||
#: src/components/routes/settings/layout.tsx:56
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
#: src/components/routes/settings/notifications.tsx:74
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "通知"
|
msgstr "通知"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:284
|
#: src/components/login/auth-form.tsx:299
|
||||||
msgid "OAuth 2 / OIDC support"
|
msgid "OAuth 2 / OIDC support"
|
||||||
msgstr "支持OAuth 2 / OIDC"
|
msgstr "支持OAuth 2 / OIDC"
|
||||||
|
|
||||||
@@ -491,11 +500,11 @@ msgstr "支持OAuth 2 / OIDC"
|
|||||||
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
msgstr "每次重啟時,數據庫中的系統將更新以匹配文件中定義的系統。"
|
msgstr "每次重啟時,數據庫中的系統將更新以匹配文件中定義的系統。"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:528
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
msgid "Open menu"
|
msgid "Open menu"
|
||||||
msgstr "打開菜單"
|
msgstr "打開菜單"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:203
|
#: src/components/login/auth-form.tsx:248
|
||||||
msgid "Or continue with"
|
msgid "Or continue with"
|
||||||
msgstr "或繼續使用"
|
msgstr "或繼續使用"
|
||||||
|
|
||||||
@@ -503,32 +512,36 @@ msgstr "或繼續使用"
|
|||||||
msgid "Overwrite existing alerts"
|
msgid "Overwrite existing alerts"
|
||||||
msgstr "覆蓋現有警報"
|
msgstr "覆蓋現有警報"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:84
|
#: src/components/command-palette.tsx:85
|
||||||
msgid "Page"
|
msgid "Page"
|
||||||
msgstr "頁面"
|
msgstr "頁面"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:71
|
#: src/components/command-palette.tsx:72
|
||||||
msgid "Pages / Settings"
|
msgid "Pages / Settings"
|
||||||
msgstr "頁面 / 設置"
|
msgstr "頁面 / 設置"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:147
|
#: src/components/login/auth-form.tsx:192
|
||||||
#: src/components/login/auth-form.tsx:152
|
#: src/components/login/auth-form.tsx:197
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "密碼"
|
msgstr "密碼"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:17
|
#: src/components/login/auth-form.tsx:20
|
||||||
msgid "Password must be at least 8 characters."
|
msgid "Password must be at least 8 characters."
|
||||||
msgstr "密碼必須至少包含 8 個字元。"
|
msgstr "密碼必須至少包含 8 個字元。"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: src/components/login/forgot-pass-form.tsx:33
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
msgid "Password reset request received"
|
msgid "Password reset request received"
|
||||||
msgstr "已收到密碼重置請求"
|
msgstr "已收到密碼重置請求"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:550
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
msgid "Pause"
|
msgid "Pause"
|
||||||
msgstr "暫停"
|
msgstr "暫停"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:95
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
msgstr "請<0>配置SMTP服務器</0>以確保警報被傳送。"
|
msgstr "請<0>配置SMTP服務器</0>以確保警報被傳送。"
|
||||||
|
|
||||||
@@ -536,7 +549,7 @@ msgstr "請<0>配置SMTP服務器</0>以確保警報被傳送。"
|
|||||||
msgid "Please check logs for more details."
|
msgid "Please check logs for more details."
|
||||||
msgstr "請檢查日誌以獲取更多詳細信息。"
|
msgstr "請檢查日誌以獲取更多詳細信息。"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:35
|
#: src/components/login/auth-form.tsx:40
|
||||||
#: src/components/login/forgot-pass-form.tsx:16
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
msgid "Please check your credentials and try again"
|
msgid "Please check your credentials and try again"
|
||||||
msgstr "請檢查您的憑證並重試"
|
msgstr "請檢查您的憑證並重試"
|
||||||
@@ -545,15 +558,15 @@ msgstr "請檢查您的憑證並重試"
|
|||||||
msgid "Please create an admin account"
|
msgid "Please create an admin account"
|
||||||
msgstr "請創建一個管理員帳戶"
|
msgstr "請創建一個管理員帳戶"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:233
|
#: src/components/login/auth-form.tsx:137
|
||||||
msgid "Please enable pop-ups for this site"
|
msgid "Please enable pop-ups for this site"
|
||||||
msgstr "請為此網站啟用彈出窗口"
|
msgstr "請為此網站啟用彈出窗口"
|
||||||
|
|
||||||
#: src/lib/utils.ts:39
|
#: src/lib/utils.ts:40
|
||||||
msgid "Please log in again"
|
msgid "Please log in again"
|
||||||
msgstr "請重新登錄"
|
msgstr "請重新登錄"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:292
|
#: src/components/login/auth-form.tsx:307
|
||||||
msgid "Please see <0>the documentation</0> for instructions."
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
msgstr "請參閱<0>文檔</0>以獲取說明。"
|
msgstr "請參閱<0>文檔</0>以獲取說明。"
|
||||||
|
|
||||||
@@ -561,12 +574,12 @@ msgstr "請參閱<0>文檔</0>以獲取說明。"
|
|||||||
msgid "Please sign in to your account"
|
msgid "Please sign in to your account"
|
||||||
msgstr "請登錄到您的帳戶"
|
msgstr "請登錄到您的帳戶"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:124
|
#: src/components/add-system.tsx:169
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "端口"
|
msgstr "端口"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:407
|
#: src/components/routes/system.tsx:414
|
||||||
#: src/components/routes/system.tsx:523
|
#: src/components/routes/system.tsx:530
|
||||||
msgid "Precise utilization at the recorded time"
|
msgid "Precise utilization at the recorded time"
|
||||||
msgstr "記錄時間的精確使用率"
|
msgstr "記錄時間的精確使用率"
|
||||||
|
|
||||||
@@ -575,7 +588,7 @@ msgid "Preferred Language"
|
|||||||
msgstr "首選語言"
|
msgstr "首選語言"
|
||||||
|
|
||||||
#. Use 'Key' if your language requires many more characters
|
#. Use 'Key' if your language requires many more characters
|
||||||
#: src/components/add-system.tsx:128
|
#: src/components/add-system.tsx:180
|
||||||
msgid "Public Key"
|
msgid "Public Key"
|
||||||
msgstr "公鑰"
|
msgstr "公鑰"
|
||||||
|
|
||||||
@@ -594,24 +607,28 @@ msgstr "接收"
|
|||||||
msgid "Reset Password"
|
msgid "Reset Password"
|
||||||
msgstr "重置密碼"
|
msgstr "重置密碼"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:545
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
msgid "Resume"
|
msgid "Resume"
|
||||||
msgstr "恢復"
|
msgstr "恢復"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:117
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
msgstr "使用回車鍵或逗號保存地址。留空以禁用電子郵件通知。"
|
msgstr "使用回車鍵或逗號保存地址。留空以禁用電子郵件通知。"
|
||||||
|
|
||||||
#: src/components/routes/settings/general.tsx:106
|
#: src/components/routes/settings/general.tsx:106
|
||||||
#: src/components/routes/settings/notifications.tsx:167
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
msgid "Save Settings"
|
msgid "Save Settings"
|
||||||
msgstr "保存設置"
|
msgstr "保存設置"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:133
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
msgid "Search"
|
msgid "Search"
|
||||||
msgstr "搜索"
|
msgstr "搜索"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:46
|
#: src/components/command-palette.tsx:47
|
||||||
msgid "Search for systems or settings..."
|
msgid "Search for systems or settings..."
|
||||||
msgstr "搜索系統或設置..."
|
msgstr "搜索系統或設置..."
|
||||||
|
|
||||||
@@ -628,9 +645,9 @@ msgstr "發送"
|
|||||||
msgid "Sets the default time range for charts when a system is viewed."
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
msgstr "設置查看系統時圖表的默認時間範圍。"
|
msgstr "設置查看系統時圖表的默認時間範圍。"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:95
|
#: src/components/command-palette.tsx:96
|
||||||
#: src/components/command-palette.tsx:98
|
#: src/components/command-palette.tsx:99
|
||||||
#: src/components/command-palette.tsx:113
|
#: src/components/command-palette.tsx:114
|
||||||
#: src/components/routes/settings/layout.tsx:71
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
#: src/components/routes/settings/layout.tsx:82
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
@@ -640,40 +657,40 @@ msgstr "設置"
|
|||||||
msgid "Settings saved"
|
msgid "Settings saved"
|
||||||
msgstr "設置已保存"
|
msgstr "設置已保存"
|
||||||
|
|
||||||
#: src/components/login/auth-form.tsx:191
|
#: src/components/login/auth-form.tsx:236
|
||||||
msgid "Sign in"
|
msgid "Sign in"
|
||||||
msgstr "登錄"
|
msgstr "登錄"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:185
|
#: src/components/command-palette.tsx:186
|
||||||
msgid "SMTP settings"
|
msgid "SMTP settings"
|
||||||
msgstr "SMTP設置"
|
msgstr "SMTP設置"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:308
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
msgid "Sort By"
|
msgid "Sort By"
|
||||||
msgstr "排序依據"
|
msgstr "排序依據"
|
||||||
|
|
||||||
#: src/lib/utils.ts:282
|
#: src/lib/utils.ts:301
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
msgstr "狀態"
|
msgstr "狀態"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:473
|
#: src/components/routes/system.tsx:480
|
||||||
msgid "Swap space used by the system"
|
msgid "Swap space used by the system"
|
||||||
msgstr "系統使用的交換空間"
|
msgstr "系統使用的交換空間"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:472
|
#: src/components/routes/system.tsx:479
|
||||||
msgid "Swap Usage"
|
msgid "Swap Usage"
|
||||||
msgstr "交換使用"
|
msgstr "交換使用"
|
||||||
|
|
||||||
#. System theme
|
#. System theme
|
||||||
#: src/components/mode-toggle.tsx:26
|
#: src/components/mode-toggle.tsx:26
|
||||||
#: src/components/systems-table/systems-table.tsx:117
|
|
||||||
#: src/components/systems-table/systems-table.tsx:125
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
#: src/components/systems-table/systems-table.tsx:136
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
#: src/components/systems-table/systems-table.tsx:465
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "系統"
|
msgstr "系統"
|
||||||
|
|
||||||
#: src/components/navbar.tsx:77
|
#: src/components/navbar.tsx:78
|
||||||
msgid "Systems"
|
msgid "Systems"
|
||||||
msgstr "系統"
|
msgstr "系統"
|
||||||
|
|
||||||
@@ -681,32 +698,37 @@ msgstr "系統"
|
|||||||
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
msgstr "系統可以在您的數據目錄中的<0>config.yml</0>文件中管理。"
|
msgstr "系統可以在您的數據目錄中的<0>config.yml</0>文件中管理。"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:296
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
msgid "Table"
|
msgid "Table"
|
||||||
msgstr "表格"
|
msgstr "表格"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:484
|
#. Temperature label in systems table
|
||||||
#: src/lib/utils.ts:314
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
msgid "Temperature"
|
msgid "Temperature"
|
||||||
msgstr "溫度"
|
msgstr "溫度"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:485
|
#: src/components/routes/system.tsx:492
|
||||||
msgid "Temperatures of system sensors"
|
msgid "Temperatures of system sensors"
|
||||||
msgstr "系統傳感器的溫度"
|
msgstr "系統傳感器的溫度"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:211
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
msgid "Test <0>URL</0>"
|
msgid "Test <0>URL</0>"
|
||||||
msgstr "測試<0>URL</0>"
|
msgstr "測試<0>URL</0>"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:182
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "測試通知已發送"
|
msgstr "測試通知已發送"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:108
|
#: src/components/add-system.tsx:145
|
||||||
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
msgstr "代理必須在系統上運行才能連接。複製下面的代理安裝命令。"
|
msgstr "代理必須在系統上運行才能連接。複製下面的代理安裝命令。"
|
||||||
|
|
||||||
#: src/components/add-system.tsx:99
|
#: src/components/add-system.tsx:136
|
||||||
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
msgstr "代理必須在系統上運行才能連接。複製下面的<0>docker-compose.yml</0>。"
|
msgstr "代理必須在系統上運行才能連接。複製下面的<0>docker-compose.yml</0>。"
|
||||||
|
|
||||||
@@ -714,24 +736,24 @@ msgstr "代理必須在系統上運行才能連接。複製下面的<0>docker-co
|
|||||||
msgid "Then log into the backend and reset your user account password in the users table."
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
msgstr "然後登錄到後端並在用戶表中重置您的用戶帳戶密碼。"
|
msgstr "然後登錄到後端並在用戶表中重置您的用戶帳戶密碼。"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:573
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
msgstr "此操作無法撤銷。這將永久刪除數據庫中{name}的所有當前記錄。"
|
msgstr "此操作無法撤銷。這將永久刪除數據庫中{name}的所有當前記錄。"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:564
|
#: src/components/routes/system.tsx:571
|
||||||
msgid "Throughput of {extraFsName}"
|
msgid "Throughput of {extraFsName}"
|
||||||
msgstr "{extraFsName}的吞吐量"
|
msgstr "{extraFsName}的吞吐量"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:432
|
#: src/components/routes/system.tsx:439
|
||||||
msgid "Throughput of root filesystem"
|
msgid "Throughput of root filesystem"
|
||||||
msgstr "根文件系統的吞吐量"
|
msgstr "根文件系統的吞吐量"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:106
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
msgid "To email(s)"
|
msgid "To email(s)"
|
||||||
msgstr "發送到電子郵件"
|
msgstr "發送到電子郵件"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:359
|
#: src/components/routes/system.tsx:366
|
||||||
#: src/components/routes/system.tsx:372
|
#: src/components/routes/system.tsx:379
|
||||||
msgid "Toggle grid"
|
msgid "Toggle grid"
|
||||||
msgstr "切換網格"
|
msgstr "切換網格"
|
||||||
|
|
||||||
@@ -739,45 +761,45 @@ msgstr "切換網格"
|
|||||||
msgid "Toggle theme"
|
msgid "Toggle theme"
|
||||||
msgstr "切換主題"
|
msgstr "切換主題"
|
||||||
|
|
||||||
#: src/lib/utils.ts:317
|
#: src/lib/utils.ts:336
|
||||||
msgid "Triggers when any sensor exceeds a threshold"
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
msgstr "當任何傳感器超過閾值時觸發"
|
msgstr "當任何傳感器超過閾值時觸發"
|
||||||
|
|
||||||
#: src/lib/utils.ts:310
|
#: src/lib/utils.ts:329
|
||||||
msgid "Triggers when combined up/down exceeds a threshold"
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
msgstr "當組合的上/下超過閾值時觸發"
|
msgstr "當組合的上/下超過閾值時觸發"
|
||||||
|
|
||||||
#: src/lib/utils.ts:292
|
#: src/lib/utils.ts:311
|
||||||
msgid "Triggers when CPU usage exceeds a threshold"
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
msgstr "當CPU使用率超過閾值時觸發"
|
msgstr "當CPU使用率超過閾值時觸發"
|
||||||
|
|
||||||
#: src/lib/utils.ts:298
|
#: src/lib/utils.ts:317
|
||||||
msgid "Triggers when memory usage exceeds a threshold"
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
msgstr "當記憶體使用率超過閾值時觸發"
|
msgstr "當記憶體使用率超過閾值時觸發"
|
||||||
|
|
||||||
#: src/lib/utils.ts:285
|
#: src/lib/utils.ts:304
|
||||||
msgid "Triggers when status switches between up and down"
|
msgid "Triggers when status switches between up and down"
|
||||||
msgstr "當狀態在上和下之間切換時觸發"
|
msgstr "當狀態在上和下之間切換時觸發"
|
||||||
|
|
||||||
#: src/lib/utils.ts:304
|
#: src/lib/utils.ts:323
|
||||||
msgid "Triggers when usage of any disk exceeds a threshold"
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
msgstr "當任何磁碟的使用超過閾值時觸發"
|
msgstr "當任何磁碟的使用超過閾值時觸發"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:269
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
msgid "Updated in real time. Click on a system to view information."
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
msgstr "實時更新。點擊系統查看信息。"
|
msgstr "實時更新。點擊系統查看信息。"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:261
|
#: src/components/routes/system.tsx:263
|
||||||
msgid "Uptime"
|
msgid "Uptime"
|
||||||
msgstr "正常運行時間"
|
msgstr "正常運行時間"
|
||||||
|
|
||||||
#: src/components/charts/area-chart.tsx:73
|
#: src/components/charts/area-chart.tsx:73
|
||||||
#: src/components/routes/system.tsx:514
|
#: src/components/routes/system.tsx:521
|
||||||
#: src/components/routes/system.tsx:551
|
#: src/components/routes/system.tsx:558
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "使用"
|
msgstr "使用"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:424
|
#: src/components/routes/system.tsx:431
|
||||||
msgid "Usage of root partition"
|
msgid "Usage of root partition"
|
||||||
msgstr "根分區的使用"
|
msgstr "根分區的使用"
|
||||||
|
|
||||||
@@ -787,20 +809,20 @@ msgstr "根分區的使用"
|
|||||||
msgid "Used"
|
msgid "Used"
|
||||||
msgstr "已用"
|
msgstr "已用"
|
||||||
|
|
||||||
#: src/components/command-palette.tsx:142
|
#: src/components/command-palette.tsx:143
|
||||||
#: src/components/navbar.tsx:69
|
#: src/components/navbar.tsx:70
|
||||||
msgid "Users"
|
msgid "Users"
|
||||||
msgstr "用戶"
|
msgstr "用戶"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:278
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "檢視"
|
msgstr "檢視"
|
||||||
|
|
||||||
#: src/components/systems-table/systems-table.tsx:342
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
msgid "Visible Fields"
|
msgid "Visible Fields"
|
||||||
msgstr "可見欄位"
|
msgstr "可見欄位"
|
||||||
|
|
||||||
#: src/components/routes/system.tsx:662
|
#: src/components/routes/system.tsx:663
|
||||||
msgid "Waiting for enough records to display"
|
msgid "Waiting for enough records to display"
|
||||||
msgstr "等待足夠的記錄以顯示"
|
msgstr "等待足夠的記錄以顯示"
|
||||||
|
|
||||||
@@ -808,7 +830,7 @@ msgstr "等待足夠的記錄以顯示"
|
|||||||
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
msgstr "想幫助我們改進翻譯嗎?查看<0>Crowdin</0>以獲取更多詳細信息。"
|
msgstr "想幫助我們改進翻譯嗎?查看<0>Crowdin</0>以獲取更多詳細信息。"
|
||||||
|
|
||||||
#: src/components/routes/settings/notifications.tsx:124
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
msgid "Webhook / Push notifications"
|
msgid "Webhook / Push notifications"
|
||||||
msgstr "Webhook / 推送通知"
|
msgstr "Webhook / 推送通知"
|
||||||
|
|
||||||
|
|||||||
853
beszel/site/src/locales/zh/zh.po
Normal file
853
beszel/site/src/locales/zh/zh.po
Normal file
@@ -0,0 +1,853 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"POT-Creation-Date: 2024-11-01 11:30-0400\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: @lingui/cli\n"
|
||||||
|
"Language: zh\n"
|
||||||
|
"Project-Id-Version: beszel\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"PO-Revision-Date: 2025-02-20 02:40\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: Chinese Traditional\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
"X-Crowdin-Project: beszel\n"
|
||||||
|
"X-Crowdin-Project-ID: 733311\n"
|
||||||
|
"X-Crowdin-Language: zh-TW\n"
|
||||||
|
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
|
||||||
|
"X-Crowdin-File-ID: 16\n"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:252
|
||||||
|
msgid "{0, plural, one {# day} other {# days}}"
|
||||||
|
msgstr "{0, plural, one {# 天} other {# 天}}"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:250
|
||||||
|
msgid "{hours, plural, one {# hour} other {# hours}}"
|
||||||
|
msgstr "{hours, plural, one {# 小時} other {# 小時}}"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:158
|
||||||
|
msgid "1 hour"
|
||||||
|
msgstr "1小時"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:181
|
||||||
|
msgid "1 week"
|
||||||
|
msgstr "1週"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:166
|
||||||
|
msgid "12 hours"
|
||||||
|
msgstr "12小時"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:174
|
||||||
|
msgid "24 hours"
|
||||||
|
msgstr "24小時"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:189
|
||||||
|
msgid "30 days"
|
||||||
|
msgstr "30天"
|
||||||
|
|
||||||
|
#. Table column
|
||||||
|
#: src/components/systems-table/systems-table.tsx:278
|
||||||
|
#: src/components/systems-table/systems-table.tsx:366
|
||||||
|
#: src/components/systems-table/systems-table.tsx:508
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
|
msgid "Actions"
|
||||||
|
msgstr "操作"
|
||||||
|
|
||||||
|
#: src/components/routes/home.tsx:62
|
||||||
|
msgid "Active Alerts"
|
||||||
|
msgstr "活動警報"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:42
|
||||||
|
msgid "Add <0>System</0>"
|
||||||
|
msgstr "新增<0>系統</0>"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:124
|
||||||
|
msgid "Add New System"
|
||||||
|
msgstr "新增新系統"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Add system"
|
||||||
|
msgstr "新增系統"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:157
|
||||||
|
msgid "Add URL"
|
||||||
|
msgstr "新增 URL"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:81
|
||||||
|
msgid "Adjust display options for charts."
|
||||||
|
msgstr "調整圖表的顯示選項。"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:133
|
||||||
|
#: src/components/command-palette.tsx:146
|
||||||
|
#: src/components/command-palette.tsx:160
|
||||||
|
#: src/components/command-palette.tsx:174
|
||||||
|
#: src/components/command-palette.tsx:189
|
||||||
|
msgid "Admin"
|
||||||
|
msgstr "管理員"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:246
|
||||||
|
msgid "Agent"
|
||||||
|
msgstr "代理"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:32
|
||||||
|
#: src/components/alerts/alert-button.tsx:68
|
||||||
|
msgid "Alerts"
|
||||||
|
msgstr "警報"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:88
|
||||||
|
#: src/components/systems-table/systems-table.tsx:319
|
||||||
|
msgid "All Systems"
|
||||||
|
msgstr "所有系統"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:642
|
||||||
|
msgid "Are you sure you want to delete {name}?"
|
||||||
|
msgstr "您確定要刪除 {name} 嗎?"
|
||||||
|
|
||||||
|
#: src/components/copy-to-clipboard.tsx:16
|
||||||
|
msgid "Automatic copy requires a secure context."
|
||||||
|
msgstr "只有在受保護的環境才能自動複製。"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:626
|
||||||
|
msgid "Average"
|
||||||
|
msgstr "平均"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:403
|
||||||
|
msgid "Average CPU utilization of containers"
|
||||||
|
msgstr "容器的平均 CPU 使用率"
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:206
|
||||||
|
msgid "Average exceeds <0>{value}{0}</0>"
|
||||||
|
msgstr "平均值超過<0>{value}{0}</0>"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:504
|
||||||
|
msgid "Average power consumption of GPUs"
|
||||||
|
msgstr "GPU 的平均功耗"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:392
|
||||||
|
msgid "Average system-wide CPU utilization"
|
||||||
|
msgstr "系統的平均 CPU 使用率"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:522
|
||||||
|
msgid "Average utilization of {0}"
|
||||||
|
msgstr "{0} 的平均使用率"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:171
|
||||||
|
#: src/components/navbar.tsx:94
|
||||||
|
msgid "Backups"
|
||||||
|
msgstr "備份"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:448
|
||||||
|
#: src/lib/utils.ts:326
|
||||||
|
msgid "Bandwidth"
|
||||||
|
msgstr "網路流量"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:304
|
||||||
|
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
|
||||||
|
msgstr "Beszel支援OpenID Connect和許多OAuth2認證提供者。"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:128
|
||||||
|
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
|
||||||
|
msgstr "Beszel以<0>Shoutrrr</0>整合常用的通知服務。"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:129
|
||||||
|
msgid "Binary"
|
||||||
|
msgstr "執行檔"
|
||||||
|
|
||||||
|
#: src/components/charts/mem-chart.tsx:89
|
||||||
|
msgid "Cache / Buffers"
|
||||||
|
msgstr "快取/緩衝"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:653
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "取消"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:68
|
||||||
|
msgid "Caution - potential data loss"
|
||||||
|
msgstr "注意 - 可能遺失資料"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:36
|
||||||
|
msgid "Change general application options."
|
||||||
|
msgstr "修改一般應用程式選項。"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:78
|
||||||
|
msgid "Chart options"
|
||||||
|
msgstr "圖表選項"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:34
|
||||||
|
msgid "Check {email} for a reset link."
|
||||||
|
msgstr "檢查{email}以取得重設連結。"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:40
|
||||||
|
msgid "Check logs for more details."
|
||||||
|
msgstr "檢查系統記錄以取得更多資訊。"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:184
|
||||||
|
msgid "Check your notification service"
|
||||||
|
msgstr "檢查您的通知服務"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:203
|
||||||
|
msgid "Click to copy"
|
||||||
|
msgstr "點擊複製"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:83
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:89
|
||||||
|
msgid "Command line instructions"
|
||||||
|
msgstr "命令列指令"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:78
|
||||||
|
msgid "Configure how you receive alert notifications."
|
||||||
|
msgstr "設定您要如何接收警報通知"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:210
|
||||||
|
#: src/components/login/auth-form.tsx:215
|
||||||
|
msgid "Confirm password"
|
||||||
|
msgstr "確認密碼"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:659
|
||||||
|
msgid "Continue"
|
||||||
|
msgstr "繼續"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:26
|
||||||
|
msgid "Copied to clipboard"
|
||||||
|
msgstr "已複製到剪貼簿"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:214
|
||||||
|
#: src/components/add-system.tsx:216
|
||||||
|
msgid "Copy"
|
||||||
|
msgstr "複製"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:624
|
||||||
|
msgid "Copy host"
|
||||||
|
msgstr "複製主機"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:223
|
||||||
|
msgid "Copy Linux command"
|
||||||
|
msgstr "複製Linux指令"
|
||||||
|
|
||||||
|
#: src/components/copy-to-clipboard.tsx:13
|
||||||
|
msgid "Copy text"
|
||||||
|
msgstr "複製文字"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:165
|
||||||
|
msgid "CPU"
|
||||||
|
msgstr "CPU"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:56
|
||||||
|
#: src/components/routes/system.tsx:391
|
||||||
|
#: src/lib/utils.ts:308
|
||||||
|
msgid "CPU Usage"
|
||||||
|
msgstr "CPU使用率"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:236
|
||||||
|
msgid "Create account"
|
||||||
|
msgstr "建立帳號"
|
||||||
|
|
||||||
|
#. Dark theme
|
||||||
|
#: src/components/mode-toggle.tsx:21
|
||||||
|
msgid "Dark"
|
||||||
|
msgstr "深色"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:82
|
||||||
|
#: src/components/routes/home.tsx:35
|
||||||
|
msgid "Dashboard"
|
||||||
|
msgstr "控制面板"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:85
|
||||||
|
msgid "Default time period"
|
||||||
|
msgstr "預設時間段"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:629
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "刪除"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:181
|
||||||
|
msgid "Disk"
|
||||||
|
msgstr "磁碟"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:438
|
||||||
|
msgid "Disk I/O"
|
||||||
|
msgstr "磁碟 I/O"
|
||||||
|
|
||||||
|
#: src/components/charts/disk-chart.tsx:79
|
||||||
|
#: src/components/routes/system.tsx:431
|
||||||
|
#: src/lib/utils.ts:320
|
||||||
|
msgid "Disk Usage"
|
||||||
|
msgstr "磁碟使用量"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:559
|
||||||
|
msgid "Disk usage of {extraFsName}"
|
||||||
|
msgstr "{extraFsName}的磁碟使用量"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:402
|
||||||
|
msgid "Docker CPU Usage"
|
||||||
|
msgstr "Docker CPU使用率"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:423
|
||||||
|
msgid "Docker Memory Usage"
|
||||||
|
msgstr "Docker 記憶體使用率"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:464
|
||||||
|
msgid "Docker Network I/O"
|
||||||
|
msgstr "Docker 網路 I/O"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:125
|
||||||
|
msgid "Documentation"
|
||||||
|
msgstr "文件"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:124
|
||||||
|
#: src/components/systems-table/systems-table.tsx:599
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:173
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:53
|
||||||
|
msgid "Email"
|
||||||
|
msgstr "電子郵件"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:92
|
||||||
|
msgid "Email notifications"
|
||||||
|
msgstr "電子郵件通知"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:38
|
||||||
|
msgid "Enter email address to reset password"
|
||||||
|
msgstr "輸入電子郵件地址以重設密碼"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:112
|
||||||
|
msgid "Enter email address..."
|
||||||
|
msgstr "輸入電子郵件地址..."
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:136
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:28
|
||||||
|
#: src/components/routes/settings/notifications.tsx:188
|
||||||
|
msgid "Error"
|
||||||
|
msgstr "錯誤"
|
||||||
|
|
||||||
|
#: src/components/routes/home.tsx:81
|
||||||
|
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
|
||||||
|
msgstr "在過去的{2, plural, one {# 分鐘} other {# 分鐘}}中超過{0}{1}"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:72
|
||||||
|
msgid "Existing systems not defined in <0>config.yml</0> will be deleted. Please make regular backups."
|
||||||
|
msgstr "未在<0>config.yml</0>中定義的現有系統將會被刪除。請定期備份。"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:93
|
||||||
|
msgid "Export configuration"
|
||||||
|
msgstr "匯出設定"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:48
|
||||||
|
msgid "Export your current systems configuration."
|
||||||
|
msgstr "匯出您現在的系統設定。"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:39
|
||||||
|
msgid "Failed to authenticate"
|
||||||
|
msgstr "認證失敗"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:39
|
||||||
|
#: src/components/routes/settings/notifications.tsx:63
|
||||||
|
msgid "Failed to save settings"
|
||||||
|
msgstr "儲存設定失敗"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:189
|
||||||
|
msgid "Failed to send test notification"
|
||||||
|
msgstr "發送測試通知失敗"
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:24
|
||||||
|
msgid "Failed to update alert"
|
||||||
|
msgstr "更新警報失敗"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:599
|
||||||
|
#: src/components/systems-table/systems-table.tsx:326
|
||||||
|
msgid "Filter..."
|
||||||
|
msgstr "篩選..."
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:227
|
||||||
|
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
|
||||||
|
msgstr "持續<0>{min}</0> {min, plural, one {分鐘} other {分鐘}}"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:328
|
||||||
|
msgid "Forgot password?"
|
||||||
|
msgstr "忘記密碼?"
|
||||||
|
|
||||||
|
#. Context: General settings
|
||||||
|
#: src/components/routes/settings/general.tsx:33
|
||||||
|
#: src/components/routes/settings/layout.tsx:51
|
||||||
|
msgid "General"
|
||||||
|
msgstr "一般"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:503
|
||||||
|
msgid "GPU Power Draw"
|
||||||
|
msgstr "GPU 功耗"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:353
|
||||||
|
msgid "Grid"
|
||||||
|
msgstr "網格"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:157
|
||||||
|
msgid "Host / IP"
|
||||||
|
msgstr "Host / IP"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:93
|
||||||
|
msgid "If you've lost the password to your admin account, you may reset it using the following command."
|
||||||
|
msgstr "如果您遺失管理員帳號密碼,可以使用以下指令重設。"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:17
|
||||||
|
msgid "Invalid email address."
|
||||||
|
msgstr "無效的電子郵件地址。"
|
||||||
|
|
||||||
|
#. Linux kernel
|
||||||
|
#: src/components/routes/system.tsx:264
|
||||||
|
msgid "Kernel"
|
||||||
|
msgstr "Kernel"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:45
|
||||||
|
msgid "Language"
|
||||||
|
msgstr "語言"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:339
|
||||||
|
msgid "Layout"
|
||||||
|
msgstr "版面配置"
|
||||||
|
|
||||||
|
#. Light theme
|
||||||
|
#: src/components/mode-toggle.tsx:16
|
||||||
|
msgid "Light"
|
||||||
|
msgstr "淺色"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:105
|
||||||
|
msgid "Log Out"
|
||||||
|
msgstr "登出"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:19
|
||||||
|
msgid "Login"
|
||||||
|
msgstr "登入"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:39
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:15
|
||||||
|
msgid "Login attempt failed"
|
||||||
|
msgstr "登入失敗"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:157
|
||||||
|
#: src/components/navbar.tsx:86
|
||||||
|
msgid "Logs"
|
||||||
|
msgstr "系統記錄"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:81
|
||||||
|
msgid "Looking instead for where to create alerts? Click the bell <0/> icons in the systems table."
|
||||||
|
msgstr "在尋找從哪裡建立警報嗎?點擊系統列表中的小鈴鐺<0/>。"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:85
|
||||||
|
msgid "Manage display and notification preferences."
|
||||||
|
msgstr "管理顯示和通知偏好。"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:225
|
||||||
|
msgid "Manual setup instructions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Chart select field. Please try to keep this short.
|
||||||
|
#: src/components/routes/system.tsx:629
|
||||||
|
msgid "Max 1 min"
|
||||||
|
msgstr "最多1分鐘"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:173
|
||||||
|
msgid "Memory"
|
||||||
|
msgstr "記憶體"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:413
|
||||||
|
#: src/lib/utils.ts:314
|
||||||
|
msgid "Memory Usage"
|
||||||
|
msgstr "記憶體使用量"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:424
|
||||||
|
msgid "Memory usage of docker containers"
|
||||||
|
msgstr "Docker 容器的記憶體使用量"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:153
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "名稱"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:198
|
||||||
|
msgid "Net"
|
||||||
|
msgstr "網路"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:465
|
||||||
|
msgid "Network traffic of docker containers"
|
||||||
|
msgstr "Docker 容器的網路流量"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:450
|
||||||
|
msgid "Network traffic of public interfaces"
|
||||||
|
msgstr "公開介面的網路流量"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:50
|
||||||
|
msgid "No results found."
|
||||||
|
msgstr "找不到結果。"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:474
|
||||||
|
#: src/components/systems-table/systems-table.tsx:547
|
||||||
|
msgid "No systems found."
|
||||||
|
msgstr "找不到任何系統。"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:111
|
||||||
|
#: src/components/routes/settings/layout.tsx:56
|
||||||
|
#: src/components/routes/settings/notifications.tsx:75
|
||||||
|
msgid "Notifications"
|
||||||
|
msgstr "通知"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:299
|
||||||
|
msgid "OAuth 2 / OIDC support"
|
||||||
|
msgstr "支援 OAuth 2 / OIDC"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:61
|
||||||
|
msgid "On each restart, systems in the database will be updated to match the systems defined in the file."
|
||||||
|
msgstr "每次重新啟動時,將會以檔案中的系統定義更新資料庫。"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:585
|
||||||
|
msgid "Open menu"
|
||||||
|
msgstr "開啟選單"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:248
|
||||||
|
msgid "Or continue with"
|
||||||
|
msgstr "或繼續使用"
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:109
|
||||||
|
msgid "Overwrite existing alerts"
|
||||||
|
msgstr "覆蓋現有警報"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:85
|
||||||
|
msgid "Page"
|
||||||
|
msgstr "頁面"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:72
|
||||||
|
msgid "Pages / Settings"
|
||||||
|
msgstr "頁面 / 設定"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:192
|
||||||
|
#: src/components/login/auth-form.tsx:197
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "密碼"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:20
|
||||||
|
msgid "Password must be at least 8 characters."
|
||||||
|
msgstr "密碼需要至少8個字元"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:21
|
||||||
|
msgid "Password must be less than 72 bytes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:33
|
||||||
|
msgid "Password reset request received"
|
||||||
|
msgstr "已收到密碼重設請求"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:618
|
||||||
|
msgid "Pause"
|
||||||
|
msgstr "暫停"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:96
|
||||||
|
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
|
||||||
|
msgstr "請<0>設定一個SMTP 伺服器</0>以確保能傳送警報。"
|
||||||
|
|
||||||
|
#: src/components/alerts/alerts-system.tsx:25
|
||||||
|
msgid "Please check logs for more details."
|
||||||
|
msgstr "請檢查系統記錄以取得更多資訊。"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:40
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:16
|
||||||
|
msgid "Please check your credentials and try again"
|
||||||
|
msgstr "請檢查您的憑證後重試"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:36
|
||||||
|
msgid "Please create an admin account"
|
||||||
|
msgstr "請建立一個管理員帳號"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:137
|
||||||
|
msgid "Please enable pop-ups for this site"
|
||||||
|
msgstr "請為此網站啟用彈出視窗"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:40
|
||||||
|
msgid "Please log in again"
|
||||||
|
msgstr "請重新登入"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:307
|
||||||
|
msgid "Please see <0>the documentation</0> for instructions."
|
||||||
|
msgstr "請參閱<0>文件</0>以取得說明。"
|
||||||
|
|
||||||
|
#: src/components/login/login.tsx:40
|
||||||
|
msgid "Please sign in to your account"
|
||||||
|
msgstr "請登入您的帳號"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:169
|
||||||
|
msgid "Port"
|
||||||
|
msgstr "Port"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:414
|
||||||
|
#: src/components/routes/system.tsx:530
|
||||||
|
msgid "Precise utilization at the recorded time"
|
||||||
|
msgstr "紀錄時間內的精確使用量"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:58
|
||||||
|
msgid "Preferred Language"
|
||||||
|
msgstr "首選語言"
|
||||||
|
|
||||||
|
#. Use 'Key' if your language requires many more characters
|
||||||
|
#: src/components/add-system.tsx:180
|
||||||
|
msgid "Public Key"
|
||||||
|
msgstr "公鑰"
|
||||||
|
|
||||||
|
#. Disk read
|
||||||
|
#: src/components/charts/area-chart.tsx:60
|
||||||
|
#: src/components/charts/area-chart.tsx:70
|
||||||
|
msgid "Read"
|
||||||
|
msgstr "讀取"
|
||||||
|
|
||||||
|
#. Network bytes received (download)
|
||||||
|
#: src/components/charts/area-chart.tsx:65
|
||||||
|
msgid "Received"
|
||||||
|
msgstr "接收"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:76
|
||||||
|
msgid "Reset Password"
|
||||||
|
msgstr "重設密碼"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:613
|
||||||
|
msgid "Resume"
|
||||||
|
msgstr "繼續"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:118
|
||||||
|
msgid "Save address using enter key or comma. Leave blank to disable email notifications."
|
||||||
|
msgstr "使用 Enter 鍵或逗號儲存地址。留空以停用電子郵件通知。"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:106
|
||||||
|
#: src/components/routes/settings/notifications.tsx:168
|
||||||
|
msgid "Save Settings"
|
||||||
|
msgstr "儲存設定"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:230
|
||||||
|
msgid "Save system"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:134
|
||||||
|
msgid "Search"
|
||||||
|
msgstr "搜尋"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:47
|
||||||
|
msgid "Search for systems or settings..."
|
||||||
|
msgstr "在設定或系統中搜尋..."
|
||||||
|
|
||||||
|
#: src/components/alerts/alert-button.tsx:71
|
||||||
|
msgid "See <0>notification settings</0> to configure how you receive alerts."
|
||||||
|
msgstr "查看<0>通知設定</0>以設定您如何接收警報。"
|
||||||
|
|
||||||
|
#. Network bytes sent (upload)
|
||||||
|
#: src/components/charts/area-chart.tsx:64
|
||||||
|
msgid "Sent"
|
||||||
|
msgstr "傳送"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:100
|
||||||
|
msgid "Sets the default time range for charts when a system is viewed."
|
||||||
|
msgstr "設定顯示系統圖表的預設時間範圍。"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:96
|
||||||
|
#: src/components/command-palette.tsx:99
|
||||||
|
#: src/components/command-palette.tsx:114
|
||||||
|
#: src/components/routes/settings/layout.tsx:71
|
||||||
|
#: src/components/routes/settings/layout.tsx:82
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "設定"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:33
|
||||||
|
msgid "Settings saved"
|
||||||
|
msgstr "已儲存設定"
|
||||||
|
|
||||||
|
#: src/components/login/auth-form.tsx:236
|
||||||
|
msgid "Sign in"
|
||||||
|
msgstr "登入"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:186
|
||||||
|
msgid "SMTP settings"
|
||||||
|
msgstr "SMTP設定"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:361
|
||||||
|
msgid "Sort By"
|
||||||
|
msgstr "排序"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:301
|
||||||
|
msgid "Status"
|
||||||
|
msgstr "狀態"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:480
|
||||||
|
msgid "Swap space used by the system"
|
||||||
|
msgstr "系統的虛擬記憶體使用量"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:479
|
||||||
|
msgid "Swap Usage"
|
||||||
|
msgstr "虛擬記憶體使用量"
|
||||||
|
|
||||||
|
#. System theme
|
||||||
|
#: src/components/mode-toggle.tsx:26
|
||||||
|
#: src/components/systems-table/systems-table.tsx:125
|
||||||
|
#: src/components/systems-table/systems-table.tsx:133
|
||||||
|
#: src/components/systems-table/systems-table.tsx:144
|
||||||
|
#: src/components/systems-table/systems-table.tsx:518
|
||||||
|
msgid "System"
|
||||||
|
msgstr "系統"
|
||||||
|
|
||||||
|
#: src/components/navbar.tsx:78
|
||||||
|
msgid "Systems"
|
||||||
|
msgstr "系統"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:55
|
||||||
|
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
|
||||||
|
msgstr "可以用您Data資料夾中的<0>config.yml</0>來管理系統。"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:349
|
||||||
|
msgid "Table"
|
||||||
|
msgstr "列表"
|
||||||
|
|
||||||
|
#. Temperature label in systems table
|
||||||
|
#: src/components/systems-table/systems-table.tsx:218
|
||||||
|
msgid "Temp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:491
|
||||||
|
#: src/lib/utils.ts:333
|
||||||
|
msgid "Temperature"
|
||||||
|
msgstr "溫度"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:492
|
||||||
|
msgid "Temperatures of system sensors"
|
||||||
|
msgstr "系統感應器的溫度"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:212
|
||||||
|
msgid "Test <0>URL</0>"
|
||||||
|
msgstr "測試<0>URL</0>"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:183
|
||||||
|
msgid "Test notification sent"
|
||||||
|
msgstr "已發送測試通知"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:145
|
||||||
|
msgid "The agent must be running on the system to connect. Copy the installation command for the agent below."
|
||||||
|
msgstr "必須在系統上執行代理程式才能連線,複製以下代理程式的安裝指令。"
|
||||||
|
|
||||||
|
#: src/components/add-system.tsx:136
|
||||||
|
msgid "The agent must be running on the system to connect. Copy the<0>docker-compose.yml</0> for the agent below."
|
||||||
|
msgstr "必須在系統上執行代理程式才能連線,複製以下代理程式的<0>docker-compose.yml</0>。"
|
||||||
|
|
||||||
|
#: src/components/login/forgot-pass-form.tsx:98
|
||||||
|
msgid "Then log into the backend and reset your user account password in the users table."
|
||||||
|
msgstr "然後登入後台並在使用者列表中重設您的帳號密碼。"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:645
|
||||||
|
msgid "This action cannot be undone. This will permanently delete all current records for {name} from the database."
|
||||||
|
msgstr "此操作無法復原。這將永久刪除資料庫中{name}的所有當前記錄。"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:571
|
||||||
|
msgid "Throughput of {extraFsName}"
|
||||||
|
msgstr "{extraFsName}的傳輸速率"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:439
|
||||||
|
msgid "Throughput of root filesystem"
|
||||||
|
msgstr "Root文件系統的傳輸速率"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:107
|
||||||
|
msgid "To email(s)"
|
||||||
|
msgstr "發送到電子郵件"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:366
|
||||||
|
#: src/components/routes/system.tsx:379
|
||||||
|
msgid "Toggle grid"
|
||||||
|
msgstr "切換網格"
|
||||||
|
|
||||||
|
#: src/components/mode-toggle.tsx:33
|
||||||
|
msgid "Toggle theme"
|
||||||
|
msgstr "切換主題"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:336
|
||||||
|
msgid "Triggers when any sensor exceeds a threshold"
|
||||||
|
msgstr "當任何感應器超過閾值時觸發"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:329
|
||||||
|
msgid "Triggers when combined up/down exceeds a threshold"
|
||||||
|
msgstr "當總流量超過閾值時觸發"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:311
|
||||||
|
msgid "Triggers when CPU usage exceeds a threshold"
|
||||||
|
msgstr "當CPU使用率超過閾值時觸發"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:317
|
||||||
|
msgid "Triggers when memory usage exceeds a threshold"
|
||||||
|
msgstr "當記憶體使用率超過閾值時觸發"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:304
|
||||||
|
msgid "Triggers when status switches between up and down"
|
||||||
|
msgstr "當連線和離線時觸發"
|
||||||
|
|
||||||
|
#: src/lib/utils.ts:323
|
||||||
|
msgid "Triggers when usage of any disk exceeds a threshold"
|
||||||
|
msgstr "當任何磁碟使用率超過閾值時觸發"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:322
|
||||||
|
msgid "Updated in real time. Click on a system to view information."
|
||||||
|
msgstr "實時更新。點擊系統顯示資訊。"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:263
|
||||||
|
msgid "Uptime"
|
||||||
|
msgstr "運行時間"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:73
|
||||||
|
#: src/components/routes/system.tsx:521
|
||||||
|
#: src/components/routes/system.tsx:558
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr "使用量"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:431
|
||||||
|
msgid "Usage of root partition"
|
||||||
|
msgstr "Root 分區的使用量"
|
||||||
|
|
||||||
|
#: src/components/charts/area-chart.tsx:73
|
||||||
|
#: src/components/charts/mem-chart.tsx:65
|
||||||
|
#: src/components/charts/swap-chart.tsx:56
|
||||||
|
msgid "Used"
|
||||||
|
msgstr "已使用"
|
||||||
|
|
||||||
|
#: src/components/command-palette.tsx:143
|
||||||
|
#: src/components/navbar.tsx:70
|
||||||
|
msgid "Users"
|
||||||
|
msgstr "使用者"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:331
|
||||||
|
msgid "View"
|
||||||
|
msgstr "檢視"
|
||||||
|
|
||||||
|
#: src/components/systems-table/systems-table.tsx:395
|
||||||
|
msgid "Visible Fields"
|
||||||
|
msgstr "顯示欄位"
|
||||||
|
|
||||||
|
#: src/components/routes/system.tsx:663
|
||||||
|
msgid "Waiting for enough records to display"
|
||||||
|
msgstr "等待足夠的記錄以顯示"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/general.tsx:48
|
||||||
|
msgid "Want to help us make our translations even better? Check out <0>Crowdin</0> for more details."
|
||||||
|
msgstr "想幫助我們改善翻譯嗎?查看<0>Crowdin</0>以取得更多詳細信息。"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/notifications.tsx:125
|
||||||
|
msgid "Webhook / Push notifications"
|
||||||
|
msgstr "Webhook / 推送通知"
|
||||||
|
|
||||||
|
#. Disk write
|
||||||
|
#: src/components/charts/area-chart.tsx:59
|
||||||
|
#: src/components/charts/area-chart.tsx:69
|
||||||
|
msgid "Write"
|
||||||
|
msgstr "寫入"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:61
|
||||||
|
msgid "YAML Config"
|
||||||
|
msgstr "YAML 設定檔"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/config-yaml.tsx:45
|
||||||
|
msgid "YAML Configuration"
|
||||||
|
msgstr "YAML 設定檔"
|
||||||
|
|
||||||
|
#: src/components/routes/settings/layout.tsx:34
|
||||||
|
msgid "Your user settings have been updated."
|
||||||
|
msgstr "已更新您的使用者設定"
|
||||||
@@ -63,9 +63,9 @@ const App = () => {
|
|||||||
|
|
||||||
if (!page) {
|
if (!page) {
|
||||||
return <h1 className="text-3xl text-center my-14">404</h1>
|
return <h1 className="text-3xl text-center my-14">404</h1>
|
||||||
} else if (page.path === "/") {
|
} else if (page.route === "home") {
|
||||||
return <Home />
|
return <Home />
|
||||||
} else if (page.route === "server") {
|
} else if (page.route === "system") {
|
||||||
return <SystemDetail name={page.params.name} />
|
return <SystemDetail name={page.params.name} />
|
||||||
} else if (page.route === "settings") {
|
} else if (page.route === "settings") {
|
||||||
return (
|
return (
|
||||||
|
|||||||
14
beszel/site/src/types.d.ts
vendored
14
beszel/site/src/types.d.ts
vendored
@@ -1,5 +1,12 @@
|
|||||||
import { RecordModel } from "pocketbase"
|
import { RecordModel } from "pocketbase"
|
||||||
|
|
||||||
|
// global window properties
|
||||||
|
declare global {
|
||||||
|
interface Window {
|
||||||
|
BASE_PATH: string
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export interface SystemRecord extends RecordModel {
|
export interface SystemRecord extends RecordModel {
|
||||||
name: string
|
name: string
|
||||||
host: string
|
host: string
|
||||||
@@ -36,6 +43,10 @@ export interface SystemInfo {
|
|||||||
v: string
|
v: string
|
||||||
/** system is using podman */
|
/** system is using podman */
|
||||||
p?: boolean
|
p?: boolean
|
||||||
|
/** highest gpu utilization */
|
||||||
|
g?: number
|
||||||
|
/** dashboard display temperature */
|
||||||
|
dt?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SystemStats {
|
export interface SystemStats {
|
||||||
@@ -189,6 +200,7 @@ interface AlertInfo {
|
|||||||
unit: string
|
unit: string
|
||||||
icon: any
|
icon: any
|
||||||
desc: () => string
|
desc: () => string
|
||||||
single?: boolean
|
|
||||||
max?: number
|
max?: number
|
||||||
|
/** Single value description (when there's only one value, like status) */
|
||||||
|
singleDesc?: () => string
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import react from "@vitejs/plugin-react-swc"
|
|||||||
import { lingui } from "@lingui/vite-plugin"
|
import { lingui } from "@lingui/vite-plugin"
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
|
base: "./",
|
||||||
plugins: [
|
plugins: [
|
||||||
react({
|
react({
|
||||||
plugins: [["@lingui/swc-plugin", {}]],
|
plugins: [["@lingui/swc-plugin", {}]],
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package beszel
|
package beszel
|
||||||
|
|
||||||
const (
|
const (
|
||||||
Version = "0.9.0"
|
Version = "0.9.1"
|
||||||
AppName = "beszel"
|
AppName = "beszel"
|
||||||
)
|
)
|
||||||
|
|||||||
330
readme.md
330
readme.md
@@ -1,329 +1,53 @@
|
|||||||
# Beszel
|
# Beszel
|
||||||
|
|
||||||
A lightweight server resource monitoring hub with historical data, docker stats, and alerts.
|
Beszel is a lightweight server monitoring platform that includes Docker statistics, historical data, and alert functions.
|
||||||
|
|
||||||
[](https://hub.docker.com/r/henrygd/beszel-agent)
|
It has a friendly web interface, simple configuration, and is ready to use out of the box. It supports automatic backup, multi-user, OAuth authentication, and API access.
|
||||||
[](https://hub.docker.com/r/henrygd/beszel)
|
|
||||||
|
[](https://hub.docker.com/r/henrygd/beszel-agent)
|
||||||
|
[](https://hub.docker.com/r/henrygd/beszel)
|
||||||
|
[](https://github.com/henrygd/beszel/blob/main/LICENSE)
|
||||||
[](https://crowdin.com/project/beszel)
|
[](https://crowdin.com/project/beszel)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- **Lightweight**: Smaller and less resource-intensive than leading solutions.
|
- **Lightweight**: Smaller and less resource-intensive than leading solutions.
|
||||||
- **Simple**: Easy setup, no need for public internet exposure.
|
- **Simple**: Easy setup, no need for public internet exposure.
|
||||||
- **Docker stats**: Tracks CPU, memory, and network usage history for each container.
|
- **Docker stats**: Tracks CPU, memory, and network usage history for each container.
|
||||||
- **Alerts**: Configurable alerts for CPU, memory, disk, bandwidth, temperature, and system status.
|
- **Alerts**: Configurable alerts for CPU, memory, disk, bandwidth, temperature, and status.
|
||||||
- **Multi-user**: Each user manages their own systems. Admins can share systems across users.
|
- **Multi-user**: Users manage their own systems. Admins can share systems across users.
|
||||||
- **OAuth / OIDC**: Supports multiple OAuth2 providers. Password authentication can be disabled.
|
- **OAuth / OIDC**: Supports many OAuth2 providers. Password auth can be disabled.
|
||||||
- **Automatic backups**: Save and restore data from disk or S3-compatible storage.
|
- **Automatic backups**: Save and restore data from disk or S3-compatible storage.
|
||||||
- **REST API**: Use or update your data in your own scripts and applications.
|
- **REST API**: Use or update your data in your own scripts and applications.
|
||||||
|
|
||||||
## Introduction
|
## Architecture
|
||||||
|
|
||||||
Beszel consists of two main components: the hub and the agent.
|
Beszel consists of two main components: the **hub** and the **agent**.
|
||||||
|
|
||||||
- **Hub:** A web application that provides a dashboard for viewing and managing connected systems. Built on [PocketBase](https://pocketbase.io/).
|
- **Hub**: A web application built on [PocketBase](https://pocketbase.io/) that provides a dashboard for viewing and managing connected systems.
|
||||||
|
- **Agent**: Runs on each system you want to monitor, creating a minimal SSH server to communicate system metrics to the hub.
|
||||||
- **Agent:** Runs on each system you want to monitor, creating a minimal SSH server to communicate system metrics to the hub.
|
|
||||||
|
|
||||||
## Getting started
|
## Getting started
|
||||||
|
|
||||||
If not using docker, skip steps 4-5 and run the agent using the binary.
|
The [quick start guide](https://beszel.dev/guide/getting-started) and other documentation is available on our website, [beszel.dev](https://beszel.dev). You'll be up and running in a few minutes.
|
||||||
|
|
||||||
1. Start the hub (see [installation](#installation)).
|
## Screenshots
|
||||||
2. Open <http://localhost:8090> and create an admin user.
|
|
||||||
3. Click "Add system." Enter the name and host of the system you want to monitor.
|
|
||||||
4. Click "Copy docker compose" to copy the agent's docker-compose.yml file to your clipboard.
|
|
||||||
5. On the agent system, create the compose file and run `docker compose up` to start the agent.
|
|
||||||
6. Back in the hub, click the "Add system" button in the dialog to finish adding the system.
|
|
||||||
|
|
||||||
If all goes well, the system should flip to green. If it turns red, check the Logs page and refer to [troubleshooting tips](#faq--troubleshooting).
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
### Tutoriel en français
|
## Supported metrics
|
||||||
|
|
||||||
Pour le tutoriel en français, consultez <https://belginux.com/installer-beszel-avec-docker/>
|
- **CPU usage** - Host system and Docker / Podman containers.
|
||||||
|
- **Memory usage** - Host system and containers. Includes swap and ZFS ARC.
|
||||||
## Installation
|
- **Disk usage** - Host system. Supports multiple partitions and devices.
|
||||||
|
- **Disk I/O** - Host system. Supports multiple partitions and devices.
|
||||||
You can install the hub and agent as single binaries or using Docker.
|
- **Network usage** - Host system and containers.
|
||||||
|
- **Temperature** - Host system sensors.
|
||||||
### Docker
|
- **GPU usage / temperature / power draw** - Nvidia and AMD only. Must use binary agent.
|
||||||
|
|
||||||
**Hub**: See the example [docker-compose.yml](/supplemental/docker/hub/docker-compose.yml) file.
|
|
||||||
|
|
||||||
**Agent**: The hub provides compose content for the agent, but you can also reference the example [docker-compose.yml](/supplemental/docker/agent/docker-compose.yml) file.
|
|
||||||
|
|
||||||
The agent uses host network mode to access network interface stats, which automatically exposes the port. Change the port using an environment variable if needed.
|
|
||||||
|
|
||||||
If you don't need network stats, remove that line from the compose file and map the port manually.
|
|
||||||
|
|
||||||
### Binary
|
|
||||||
|
|
||||||
> [!TIP]
|
|
||||||
> If using Linux, see [guides/systemd.md](/supplemental/guides/systemd.md) for a script to install the hub or agent as a system service. This is also built into the web UI.
|
|
||||||
|
|
||||||
Download and run the latest binaries from the [releases page](https://github.com/henrygd/beszel/releases) or use the commands below.
|
|
||||||
|
|
||||||
#### Hub
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed 's/armv7l/arm/' | sed 's/aarch64/arm64/').tar.gz" | tar -xz -O beszel | tee ./beszel >/dev/null && chmod +x beszel && ls beszel
|
|
||||||
```
|
|
||||||
|
|
||||||
Running the hub directly:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
./beszel serve
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Agent
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel-agent_$(uname -s)_$(uname -m | sed 's/x86_64/amd64/' | sed 's/armv7l/arm/' | sed 's/aarch64/arm64/').tar.gz" | tar -xz -O beszel-agent | tee ./beszel-agent >/dev/null && chmod +x beszel-agent && ls beszel-agent
|
|
||||||
```
|
|
||||||
|
|
||||||
Running the agent directly:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
PORT=45876 KEY="{PASTE_YOUR_KEY}" ./beszel-agent
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Updating
|
|
||||||
|
|
||||||
Use `./beszel update` and `./beszel-agent update` to update to the latest version.
|
|
||||||
|
|
||||||
## Environment variables
|
|
||||||
|
|
||||||
### Hub
|
|
||||||
|
|
||||||
| Name | Default | Description |
|
|
||||||
| ----------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
||||||
| `CSP` | unset | Adds a [Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) header with this value. |
|
|
||||||
| `DISABLE_PASSWORD_AUTH` | false | Disables password authentication. |
|
|
||||||
|
|
||||||
### Agent
|
|
||||||
|
|
||||||
| Name | Default | Description |
|
|
||||||
| ------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
||||||
| `DOCKER_HOST` | unset | Overrides the docker host (docker.sock) if using a proxy.[^socket] |
|
|
||||||
| `EXTRA_FILESYSTEMS` | unset | See [Monitoring additional disks, partitions, or remote mounts](#monitoring-additional-disks-partitions-or-remote-mounts) |
|
|
||||||
| `FILESYSTEM` | unset | Device, partition, or mount point to use for root disk stats. |
|
|
||||||
| `KEY` | unset | Public SSH key to use for authentication. Provided in hub. |
|
|
||||||
| `LOG_LEVEL` | info | Logging level. Valid values: "debug", "info", "warn", "error". |
|
|
||||||
| `MEM_CALC` | unset | Overrides the default memory calculation.[^memcalc] |
|
|
||||||
| `NICS` | unset | Whitelist of network interfaces to monitor for bandwidth chart. |
|
|
||||||
| `PORT` | 45876 | Port or address:port to listen on. |
|
|
||||||
| `SENSORS` | unset | Whitelist of temperature sensors to monitor. |
|
|
||||||
| `SYS_SENSORS` | unset | Overrides sys path for sensors. See [#160](https://github.com/henrygd/beszel/discussions/160). |
|
|
||||||
|
|
||||||
[^socket]: Beszel only needs access to read container information. For [linuxserver/docker-socket-proxy](https://github.com/linuxserver/docker-socket-proxy) you would set `CONTAINERS=1`.
|
|
||||||
[^memcalc]: The default value for used memory is based on gopsutil's [Used](https://pkg.go.dev/github.com/shirou/gopsutil/v4@v4.24.6/mem#VirtualMemoryStat) calculation, which should align fairly closely with `free`. Set `MEM_CALC` to `htop` to align with htop's calculation.
|
|
||||||
|
|
||||||
## OAuth / OIDC Setup
|
|
||||||
|
|
||||||
Beszel supports OpenID Connect and many OAuth2 authentication providers (see list below).
|
|
||||||
|
|
||||||
Visit the "Auth providers" page to enable your provider. The redirect / callback URL should be `<your-beszel-url>/api/oauth2-redirect`.
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Supported provider list</summary>
|
|
||||||
|
|
||||||
- Apple
|
|
||||||
- Bitbucket
|
|
||||||
- Discord
|
|
||||||
- Facebook
|
|
||||||
- Gitea
|
|
||||||
- Gitee
|
|
||||||
- GitHub
|
|
||||||
- GitLab
|
|
||||||
- Google
|
|
||||||
- Instagram
|
|
||||||
- Kakao
|
|
||||||
- LiveChat
|
|
||||||
- mailcow
|
|
||||||
- Microsoft
|
|
||||||
- OpenID Connect
|
|
||||||
- Patreon (v2)
|
|
||||||
- Spotify
|
|
||||||
- Strava
|
|
||||||
- Twitch
|
|
||||||
- Twitter
|
|
||||||
- VK
|
|
||||||
- Yandex
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Monitoring additional disks, partitions, or remote mounts
|
|
||||||
|
|
||||||
The method for adding additional disks differs depending on your deployment method.
|
|
||||||
|
|
||||||
Use `lsblk` to find the names and mount points of your partitions. If you have trouble, check the agent logs.
|
|
||||||
|
|
||||||
> Note: The charts will use the name of the device or partition if available, and fall back to the folder name. You will not get I/O stats for network mounted drives.
|
|
||||||
|
|
||||||
### Docker
|
|
||||||
|
|
||||||
Mount a folder from the target filesystem in the container's `/extra-filesystems` directory. For example:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
volumes:
|
|
||||||
- /mnt/disk1/.beszel:/extra-filesystems/sdb1:ro
|
|
||||||
- /dev/mmcblk0/.beszel:/extra-filesystems/mmcblk0:ro
|
|
||||||
```
|
|
||||||
|
|
||||||
### Binary
|
|
||||||
|
|
||||||
Set the `EXTRA_FILESYSTEMS` environment variable to a comma-separated list of devices, partitions, or mount points to monitor. For example:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
EXTRA_FILESYSTEMS="sdb,sdc1,mmcblk0,/mnt/network-share"
|
|
||||||
```
|
|
||||||
|
|
||||||
## REST API
|
|
||||||
|
|
||||||
Because Beszel is built on PocketBase, you can use the PocketBase [web APIs](https://pocketbase.io/docs/api-records/) and [client-side SDKs](https://pocketbase.io/docs/client-side-sdks/) to read or update data from outside Beszel itself.
|
|
||||||
|
|
||||||
## Security
|
|
||||||
|
|
||||||
The hub and agent communicate over SSH, so they don't need to be exposed to the internet. Even if you place an external auth gateway, such as Authelia, in front of the hub, it won't disrupt or break the connection between the hub and agent.
|
|
||||||
|
|
||||||
When the hub is started for the first time, it generates an ED25519 key pair.
|
|
||||||
|
|
||||||
The agent's SSH server is configured to accept connections using this key only. It does not provide a pseudo-terminal or accept input, so it's impossible to execute commands on the agent even if your private key is compromised.
|
|
||||||
|
|
||||||
## User roles
|
|
||||||
|
|
||||||
### Admin
|
|
||||||
|
|
||||||
Admins have access to additional links in the hub, such as backups, SMTP settings, etc. The first user created is automatically an admin and can log into PocketBase.
|
|
||||||
|
|
||||||
Changing a user's role does not create a PocketBase admin account for them. To do that, go to Settings > Admins in PocketBase and add them manually.
|
|
||||||
|
|
||||||
### User
|
|
||||||
|
|
||||||
Users can create their own systems and alerts. Links to PocketBase settings are not shown in the hub.
|
|
||||||
|
|
||||||
### Read only
|
|
||||||
|
|
||||||
Read-only users cannot create systems but can view any system shared with them by an admin and create alerts.
|
|
||||||
|
|
||||||
## FAQ / Troubleshooting
|
|
||||||
|
|
||||||
### Agent is not connecting
|
|
||||||
|
|
||||||
Assuming the agent is running, the connection is probably being blocked by a firewall. You have two options:
|
|
||||||
|
|
||||||
1. Add an inbound rule to the agent system's firewall(s) to allow TCP connections to the port. Check any active firewalls, like iptables, and your cloud provider's firewall settings if applicable.
|
|
||||||
2. Alternatively, use software like [Cloudflare Tunnel](https://www.cloudflare.com/products/tunnel/), [WireGuard](https://www.wireguard.com/), or [Tailscale](https://tailscale.com/) to securely bypass your firewall.
|
|
||||||
|
|
||||||
You can test connectivity by running `telnet <agent-ip> <port>`.
|
|
||||||
|
|
||||||
### Connecting the hub and agent on the same system using Docker
|
|
||||||
|
|
||||||
If using host network mode for the agent but not the hub, add your system using the hostname `host.docker.internal`, which resolves to the internal IP address used by the host. See the [example docker-compose.yml](/supplemental/docker/same-system/docker-compose.yml).
|
|
||||||
|
|
||||||
If using host network mode for both, you can use `localhost` as the hostname.
|
|
||||||
|
|
||||||
Otherwise, use the agent's `container_name` as the hostname if both are in the same Docker network.
|
|
||||||
|
|
||||||
### Finding the correct filesystem
|
|
||||||
|
|
||||||
Specify the filesystem/device/partition for root disk stats using the `FILESYSTEM` environment variable.
|
|
||||||
|
|
||||||
If not set, the agent will try to find the partition mounted on `/` and use that. This may not work correctly in a container, so it's recommended to set this value. Use one of the following methods to find the correct filesystem:
|
|
||||||
|
|
||||||
- Run `lsblk` and choose an option under "NAME."
|
|
||||||
- Run `df -h` and choose an option under "Filesystem."
|
|
||||||
- Run `sudo fdisk -l` and choose an option under "Device."
|
|
||||||
|
|
||||||
### Docker container charts are empty or missing
|
|
||||||
|
|
||||||
If container charts show empty data or don't appear at all, you may need to enable cgroup memory accounting. To verify, run `docker stats`. If that shows zero memory usage, follow this guide to fix the issue:
|
|
||||||
|
|
||||||
<https://akashrajpurohit.com/blog/resolving-missing-memory-stats-in-docker-stats-on-raspberry-pi/>
|
|
||||||
|
|
||||||
### Docker Containers Are Not Populating Reliably
|
|
||||||
|
|
||||||
Try upgrading your Docker version on the agent system. This issue was observed on a machine running version 24 and was resolved by upgrading to version 27.
|
|
||||||
|
|
||||||
### Month / week records are not populating reliably
|
|
||||||
|
|
||||||
Records for longer time periods are created by averaging stats from shorter periods. The agent must run uninterrupted for a full set of data to populate these records.
|
|
||||||
|
|
||||||
Pausing/unpausing the agent for longer than one minute will result in incomplete data, resetting the timing for the current interval.
|
|
||||||
|
|
||||||
## Compiling
|
|
||||||
|
|
||||||
Both the hub and agent are written in Go, so you can easily build them yourself, or cross-compile for different platforms. Please [install Go](https://go.dev/doc/install) first if you haven't already.
|
|
||||||
|
|
||||||
### Using Makefile
|
|
||||||
|
|
||||||
Run `make` in `/beszel`. This creates a `build` directory containing the binaries.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd beszel && make
|
|
||||||
```
|
|
||||||
|
|
||||||
You can also build for different platforms:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
make OS=freebsd ARCH=arm64
|
|
||||||
```
|
|
||||||
|
|
||||||
See a list of valid options by running `go tool dist list`.
|
|
||||||
|
|
||||||
### Manual compilation
|
|
||||||
|
|
||||||
#### Prepare dependencies
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd beszel && go mod tidy
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Agent
|
|
||||||
|
|
||||||
Go to `beszel/cmd/agent` and run the following command to create a binary in the current directory:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
CGO_ENABLED=0 go build -ldflags "-w -s" .
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Hub
|
|
||||||
|
|
||||||
The hub embeds the web UI in the binary, so you must build the website first. I use [Bun](https://bun.sh/), but you may use Node.js if you prefer:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd beszel/site
|
|
||||||
bun install
|
|
||||||
bun run build
|
|
||||||
```
|
|
||||||
|
|
||||||
Then in `beszel/cmd/hub`:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
CGO_ENABLED=0 go build -ldflags "-w -s" .
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Cross-compiling
|
|
||||||
|
|
||||||
You can cross-compile for different platforms using the `GOOS` and `GOARCH` environment variables.
|
|
||||||
|
|
||||||
For example, to build for FreeBSD ARM64:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
GOOS=freebsd GOARCH=arm64 CGO_ENABLED=0 go build -ldflags "-w -s" .
|
|
||||||
```
|
|
||||||
|
|
||||||
See a list of valid options by running `go tool dist list`.
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
Contributions are welcome, but it's a good idea to check with us first in a discussion / issue if you plan on doing anything significant.
|
|
||||||
|
|
||||||
We use [Crowdin](https://crowdin.com/project/beszel) to manage translations. New languages or improvements to existing translations are appreciated!
|
|
||||||
|
|
||||||
We'll have more helpful information about contributing to Beszel in the near future.
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
31
supplemental/debian/beszel-agent.service
Normal file
31
supplemental/debian/beszel-agent.service
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Beszel Agent Service
|
||||||
|
Wants=network-online.target
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment="PORT=45876"
|
||||||
|
# Port number can be overridden in beszel-agent.conf if needed
|
||||||
|
EnvironmentFile=/etc/beszel-agent.conf
|
||||||
|
ExecStart=/usr/bin/beszel-agent
|
||||||
|
User=beszel
|
||||||
|
Restart=on-failure
|
||||||
|
StateDirectory=beszel-agent
|
||||||
|
|
||||||
|
# Security/sandboxing settings
|
||||||
|
KeyringMode=private
|
||||||
|
LockPersonality=yes
|
||||||
|
NoNewPrivileges=yes
|
||||||
|
PrivateTmp=yes
|
||||||
|
ProtectClock=yes
|
||||||
|
ProtectHome=read-only
|
||||||
|
ProtectHostname=yes
|
||||||
|
ProtectKernelLogs=yes
|
||||||
|
ProtectKernelTunables=yes
|
||||||
|
ProtectSystem=strict
|
||||||
|
RemoveIPC=yes
|
||||||
|
RestrictSUIDSGID=true
|
||||||
|
SystemCallArchitectures=native
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
8
supplemental/debian/config.sh
Normal file
8
supplemental/debian/config.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
db_version 2.0
|
||||||
|
|
||||||
|
db_input high beszel-agent/key || true
|
||||||
|
db_go
|
||||||
8
supplemental/debian/copyright
Normal file
8
supplemental/debian/copyright
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
|
Upstream-Name: Beszel
|
||||||
|
Upstream-Contact: henrygd <hank@henrygd.me>
|
||||||
|
Source: https://beszel.dev/
|
||||||
|
|
||||||
|
Files: *
|
||||||
|
Copyright: 2024 henrygd
|
||||||
|
License: MIT
|
||||||
11
supplemental/debian/lintian-overrides
Normal file
11
supplemental/debian/lintian-overrides
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# No changelog in the repo at the moment. This would be good to fix
|
||||||
|
beszel-agent: no-changelog
|
||||||
|
# Current unable to fix these due to Goreleaser bug
|
||||||
|
# https://github.com/goreleaser/goreleaser/issues/5487
|
||||||
|
beszel-agent: no-debconf-config
|
||||||
|
beszel-agent: postinst-uses-db-input
|
||||||
|
# Needs to be fixed in Beszel build
|
||||||
|
beszel-agent: hardening-no-pie
|
||||||
|
beszel-agent: hardening-no-relro
|
||||||
|
# Maybe one day
|
||||||
|
beszel-agent: no-manual-page
|
||||||
49
supplemental/debian/postinstall.sh
Normal file
49
supplemental/debian/postinstall.sh
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
[ "$1" = "configure" ] || exit 0
|
||||||
|
|
||||||
|
CONFIG_FILE=/etc/beszel-agent.conf
|
||||||
|
SERVICE=beszel-agent
|
||||||
|
SERVICE_USER=beszel
|
||||||
|
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
|
# This would normally be in the config control file, however this is currently
|
||||||
|
# broken in goreleaser. Temporarily do it here.
|
||||||
|
# https://github.com/goreleaser/goreleaser/issues/5487
|
||||||
|
db_version 2.0
|
||||||
|
db_input high beszel-agent/key || true
|
||||||
|
db_go
|
||||||
|
|
||||||
|
# Create group and user
|
||||||
|
if ! getent group "$SERVICE_USER" >/dev/null; then
|
||||||
|
echo "Creating $SERVICE_USER group"
|
||||||
|
addgroup --quiet --system "$SERVICE_USER"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! getent passwd "$SERVICE_USER" >/dev/null; then
|
||||||
|
echo "Creating $SERVICE_USER user"
|
||||||
|
adduser --quiet --system "$SERVICE_USER" \
|
||||||
|
--ingroup "$SERVICE_USER" \
|
||||||
|
--no-create-home \
|
||||||
|
--home /nonexistent \
|
||||||
|
--gecos "System user for $SERVICE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create config file if it doesn't already exist
|
||||||
|
if [ ! -f "$CONFIG_FILE" ]; then
|
||||||
|
touch "$CONFIG_FILE"
|
||||||
|
chmod 0600 "$CONFIG_FILE"
|
||||||
|
chown "$SERVICE_USER":"$SERVICE_USER" "$CONFIG_FILE"
|
||||||
|
fi;
|
||||||
|
|
||||||
|
# Only add key to config if it's not already present
|
||||||
|
if ! grep -q "^KEY=" "$CONFIG_FILE"; then
|
||||||
|
db_get beszel-agent/key
|
||||||
|
echo "KEY=$RET" > "$CONFIG_FILE"
|
||||||
|
fi;
|
||||||
|
|
||||||
|
deb-systemd-helper enable "$SERVICE".service
|
||||||
|
systemctl daemon-reload
|
||||||
|
deb-systemd-invoke start "$SERVICE".service || echo "could not start $SERVICE.service!"
|
||||||
8
supplemental/debian/postrm.sh
Normal file
8
supplemental/debian/postrm.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$1" = "purge" ]; then
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
db_purge
|
||||||
|
rm /etc/beszel-agent.conf
|
||||||
|
fi
|
||||||
9
supplemental/debian/prerm.sh
Normal file
9
supplemental/debian/prerm.sh
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
SERVICE=beszel-agent
|
||||||
|
|
||||||
|
deb-systemd-invoke stop "$SERVICE".service
|
||||||
|
if [ "$1" = "remove" ]; then
|
||||||
|
deb-systemd-helper purge "$SERVICE".service
|
||||||
|
fi
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user