Compare commits

...

43 Commits

Author SHA1 Message Date
Henry Dollman
8a69c09939 release 0.8.0 2024-11-12 18:28:25 -05:00
Henry Dollman
e87af81db4 change spinner to visibility hidden after chart loads 2024-11-12 18:25:27 -05:00
Henry Dollman
6043c59da8 update translations 2024-11-12 18:19:37 -05:00
Henry Dollman
4cb7b97416 change podman socket path to use current uid 2024-11-12 18:14:43 -05:00
Henry Dollman
b1db450e00 enable gpu monitoring by default 2024-11-12 18:13:57 -05:00
Henry Dollman
2e8ac98924 Improve disk discovery slightly by checking partition labels 2024-11-12 18:11:44 -05:00
Henry Dollman
529a628368 remove stopped containers from net chart 2024-11-12 17:33:18 -05:00
Henry Dollman
8a2e821c8f style updates 2024-11-12 15:03:15 -05:00
Henry Dollman
3cd11d6bc4 improve podman support (#211) 2024-11-12 11:59:56 -05:00
Henry Dollman
db092d2440 Merge branch 'main' of github.com:henrygd/beszel 2024-11-11 16:56:16 -05:00
Henry Dollman
a4a7c91fc1 dark mode tweaks 2024-11-11 16:56:10 -05:00
hank
543fd44cb2 New Crowdin updates (#273)
* New translations en.po (Chinese Simplified)

Co-authored-by: D <17147265+wwng2333@users.noreply.github.com>
2024-11-11 13:32:58 -05:00
Henry Dollman
eab262c3f7 dark theme updates 2024-11-11 12:55:44 -05:00
Henry Dollman
52bde8ea6d release 0.7.4 2024-11-08 20:32:27 -05:00
Henry Dollman
03de73560c add gpu power consumption chart 2024-11-08 20:31:22 -05:00
Henry Dollman
bcb7de1b9a add Dutch language 2024-11-08 19:02:49 -05:00
hank
ca94bd32f2 New Crowdin updates (#272)
* New translations en.po (Dutch)

* New translations en.po (Dutch)

* New translations en.po (Dutch)

Co-authored-by: Mathy Vandersmissen <mathy.vds@gmail.com>
2024-11-08 18:07:05 -05:00
Henry Dollman
cd10727795 gpu usage and vram charts 2024-11-08 18:00:30 -05:00
Henry Dollman
8262a9a45b progress on gpu metrics 2024-11-08 16:52:50 -05:00
hank
b433437636 New Crowdin updates (#271)
* New translations en.po (Chinese Simplified)

* New translations en.po (Chinese Simplified)

Co-authored-by: D <17147265+wwng2333@users.noreply.github.com>
2024-11-07 15:57:07 -05:00
Henry Dollman
02825ed109 add Polish and Croatian languages 2024-11-07 13:11:58 -05:00
Henry Dollman
a97e6149bb add option for automatic updates to install-agent.sh (#268) 2024-11-07 13:02:01 -05:00
hank
946b1e7f54 New Crowdin updates (#259)
* New translations en.po (Polish)

* New translations en.po (Polish)

* New translations en.po (Polish)

* New translations en.po (Polish)

* New translations en.po (Croatian)

* New translations en.po (Croatian)

* New translations en.po (French)

* New translations en.po (French)

Co-authored-by: Dino Horvat <73183619+DinoHorvat96@users.noreply.github.com>
Co-authored-by: dymek37 <122745160+dymek37@users.noreply.github.com>
Co-authored-by: Adam Gąsowski <gander@users.noreply.github.com>
Co-authored-by: Damien Fajole <60252259+damsdev1@users.noreply.github.com>
2024-11-06 19:06:16 -05:00
Henry Dollman
b5ed7cd555 fix display of values under 1 GB in disk usage chart (closes #261) 2024-11-06 13:52:35 -05:00
Henry Dollman
233349fb2a release 0.7.3 2024-11-04 21:33:19 -05:00
Henry Dollman
c54e6ff0ea po file formatting 2024-11-04 21:33:05 -05:00
Henry Dollman
98c4102f72 revert to previous behavior for displaying stopped containers
* Previously, a stopped container was completely removed from the chart/tooltip during the time period when it was not running. In the last few releases, the container remained in the chart with zero values if it was running at any time during the chart's duration. This restores the previous functionality.
2024-11-04 21:24:44 -05:00
hank
640ee7a88e New translations en.po (Polish) (#257) 2024-11-04 20:57:01 -05:00
Henry Dollman
8a85246a0b set lang in activateLocale func instead of dynamicActivate 2024-11-04 20:56:33 -05:00
Henry Dollman
655bfc95ca add ability to specify partition for extra disk using folder name 2024-11-04 20:52:27 -05:00
hank
37a066e6bd New Crowdin updates (#256)
* New translations en.po (French)

* New translations en.po (Spanish)

* New translations en.po (Arabic)

* New translations en.po (German)

* New translations en.po (Japanese)

* New translations en.po (Korean)

* New translations en.po (Portuguese)

* New translations en.po (Russian)

* New translations en.po (Turkish)

* New translations en.po (Ukrainian)

* New translations en.po (Chinese Simplified)

* New translations en.po (Vietnamese)

* New translations en.po (Chinese Traditional, Hong Kong)

* New translations en.po (Italian)
2024-11-04 16:01:01 -05:00
Henry Dollman
9e959a6b7b update translations 2024-11-04 15:42:23 -05:00
Henry Dollman
2b6560b9e1 update translation messages on build
* add lingui extract to build script
* delete translation ts files and add to gitignore
2024-11-04 15:34:59 -05:00
hank
d8836d53bf New Crowdin updates (#252)
* New translations en.po (French)

* New translations en.po (Spanish)

* New translations en.po (Arabic)

* New translations en.po (German)

* New translations en.po (Japanese)

* New translations en.po (Korean)

* New translations en.po (Portuguese)

* New translations en.po (Russian)

* New translations en.po (Turkish)

* New translations en.po (Ukrainian)

* New translations en.po (Chinese Simplified)

* New translations en.po (Vietnamese)

* New translations en.po (Chinese Traditional, Hong Kong)

* New translations en.po (Italian)
2024-11-04 14:30:27 -05:00
Henry Dollman
aa15876aa2 fix: read/write labels swapped for extra disk charts (#254) 2024-11-04 14:29:10 -05:00
Henry Dollman
7ca960b521 update system view grid to min xl 2024-11-04 14:18:08 -05:00
Henry Dollman
4eaedcf825 release 0.7.2 2024-11-03 15:31:39 -05:00
Henry Dollman
b337ba1d7f fix subheading for memory chart 2024-11-03 15:30:35 -05:00
hank
c9b72f724f New translations en.po (Ukrainian) (#251)
Co-authored-by: stanol <stanol777@gmail.com>
2024-11-03 15:02:59 -05:00
Henry Dollman
35d8996e00 release 0.7.1 2024-11-03 12:10:53 -05:00
Henry Dollman
6e61c5f1e4 update go deps 2024-11-03 12:10:17 -05:00
Henry Dollman
6bb147c349 fix en fallback if detected user locale is missing (#247) 2024-11-03 11:59:49 -05:00
hank
3668aa4e8e New Crowdin updates (#246)
* New translations en.po (French)

* New translations en.po (Spanish)

* New translations en.po (Arabic)

* New translations en.po (German)

* New translations en.po (Japanese)

* New translations en.po (Korean)

* New translations en.po (Portuguese)

* New translations en.po (Russian)

* New translations en.po (Turkish)

* New translations en.po (Ukrainian)

* New translations en.po (Chinese Simplified)

* New translations en.po (Vietnamese)

* New translations en.po (Chinese Traditional, Hong Kong)

* New translations en.po (Italian)

* New translations en.po (Ukrainian)
2024-11-03 11:28:27 -05:00
81 changed files with 4772 additions and 1411 deletions

2
.gitignore vendored
View File

@@ -13,3 +13,5 @@ beszel/cmd/agent/agent
node_modules
beszel/build
*timestamp*
.swc
beszel/site/src/locales/**/*.ts

View File

@@ -9,9 +9,9 @@ require (
github.com/goccy/go-json v0.10.3
github.com/labstack/echo/v5 v5.0.0-20230722203903-ec5b858dab61
github.com/pocketbase/dbx v1.10.1
github.com/pocketbase/pocketbase v0.22.22
github.com/pocketbase/pocketbase v0.22.23
github.com/rhysd/go-github-selfupdate v1.2.3
github.com/shirou/gopsutil/v4 v4.24.9
github.com/shirou/gopsutil/v4 v4.24.10
github.com/spf13/cast v1.7.0
github.com/spf13/cobra v1.8.1
golang.org/x/crypto v0.28.0
@@ -22,31 +22,31 @@ require (
github.com/AlecAivazis/survey/v2 v2.3.7 // indirect
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
github.com/aws/aws-sdk-go-v2 v1.32.2 // indirect
github.com/aws/aws-sdk-go-v2 v1.32.3 // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect
github.com/aws/aws-sdk-go-v2/config v1.28.0 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.17.41 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 // indirect
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.33 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 // indirect
github.com/aws/aws-sdk-go-v2/config v1.28.1 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.17.42 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.18 // indirect
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.35 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.21 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.22 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.2 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.2 // indirect
github.com/aws/aws-sdk-go-v2/service/s3 v1.66.0 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.24.2 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.32.2 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.3 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.3 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.3 // indirect
github.com/aws/aws-sdk-go-v2/service/s3 v1.66.2 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.24.3 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.3 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.32.3 // indirect
github.com/aws/smithy-go v1.22.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/disintegration/imaging v1.6.2 // indirect
github.com/domodwyer/mailyak/v3 v3.6.2 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/ebitengine/purego v0.8.0 // indirect
github.com/fatih/color v1.17.0 // indirect
github.com/ebitengine/purego v0.8.1 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.6 // indirect
github.com/ganigeorgiev/fexpr v0.4.1 // indirect
github.com/go-ole/go-ole v1.3.0 // indirect
@@ -73,7 +73,7 @@ require (
github.com/spf13/pflag v1.0.5 // indirect
github.com/tcnksm/go-gitconfig v0.1.2 // indirect
github.com/tklauser/go-sysconf v0.3.14 // indirect
github.com/tklauser/numcpus v0.8.0 // indirect
github.com/tklauser/numcpus v0.9.0 // indirect
github.com/ulikunitz/xz v0.5.12 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/valyala/fasttemplate v1.2.2 // indirect
@@ -90,8 +90,8 @@ require (
golang.org/x/text v0.19.0 // indirect
golang.org/x/time v0.7.0 // indirect
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
google.golang.org/api v0.201.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53 // indirect
google.golang.org/api v0.204.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 // indirect
google.golang.org/grpc v1.67.1 // indirect
google.golang.org/protobuf v1.35.1 // indirect
modernc.org/gc/v3 v3.0.0-20241004144649-1aea3fae8852 // indirect

View File

@@ -1,10 +1,10 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE=
cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U=
cloud.google.com/go/auth v0.9.8 h1:+CSJ0Gw9iVeSENVCKJoLHhdUykDgXSc4Qn+gu2BRtR8=
cloud.google.com/go/auth v0.9.8/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI=
cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY=
cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc=
cloud.google.com/go/auth v0.10.0 h1:tWlkvFAh+wwTOzXIjrwM64karR1iTBZ/GRr0S/DULYo=
cloud.google.com/go/auth v0.10.0/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI=
cloud.google.com/go/auth/oauth2adapt v0.2.5 h1:2p29+dePqsCHPP1bqDJcKj4qxRyYCcbzKpFyKGt3MTk=
cloud.google.com/go/auth/oauth2adapt v0.2.5/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8=
cloud.google.com/go/compute v1.14.0 h1:hfm2+FfxVmnRlh6LpB7cg1ZNU+5edAHmW679JePztk0=
cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo=
cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k=
@@ -26,42 +26,42 @@ 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/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-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcTduI=
github.com/aws/aws-sdk-go-v2 v1.32.2/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo=
github.com/aws/aws-sdk-go-v2 v1.32.3 h1:T0dRlFBKcdaUPGNtkBSwHZxrtis8CQU17UpNBZYd0wk=
github.com/aws/aws-sdk-go-v2 v1.32.3/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo=
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 h1:pT3hpW0cOHRJx8Y0DfJUEQuqPild8jRGmSFmBgvydr0=
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6/go.mod h1:j/I2++U0xX+cr44QjHay4Cvxj6FUbnxrgmqN3H1jTZA=
github.com/aws/aws-sdk-go-v2/config v1.28.0 h1:FosVYWcqEtWNxHn8gB/Vs6jOlNwSoyOCA/g/sxyySOQ=
github.com/aws/aws-sdk-go-v2/config v1.28.0/go.mod h1:pYhbtvg1siOOg8h5an77rXle9tVG8T+BWLWAo7cOukc=
github.com/aws/aws-sdk-go-v2/credentials v1.17.41 h1:7gXo+Axmp+R4Z+AK8YFQO0ZV3L0gizGINCOWxSLY9W8=
github.com/aws/aws-sdk-go-v2/credentials v1.17.41/go.mod h1:u4Eb8d3394YLubphT4jLEwN1rLNq2wFOlT6OuxFwPzU=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 h1:TMH3f/SCAWdNtXXVPPu5D6wrr4G5hI1rAxbcocKfC7Q=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17/go.mod h1:1ZRXLdTpzdJb9fwTMXiLipENRxkGMTn1sfKexGllQCw=
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.33 h1:X+4YY5kZRI/cOoSMVMGTqFXHAMg1bvvay7IBcqHpybQ=
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.33/go.mod h1:DPynzu+cn92k5UQ6tZhX+wfTB4ah6QDU/NgdHqatmvk=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 h1:UAsR3xA31QGf79WzpG/ixT9FZvQlh5HY1NRqSHBNOCk=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21/go.mod h1:JNr43NFf5L9YaG3eKTm7HQzls9J+A9YYcGI5Quh1r2Y=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 h1:6jZVETqmYCadGFvrYEQfC5fAQmlo80CeL5psbno6r0s=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21/go.mod h1:1SR0GbLlnN3QUmYaflZNiH1ql+1qrSiB2vwcJ+4UM60=
github.com/aws/aws-sdk-go-v2/config v1.28.1 h1:oxIvOUXy8x0U3fR//0eq+RdCKimWI900+SV+10xsCBw=
github.com/aws/aws-sdk-go-v2/config v1.28.1/go.mod h1:bRQcttQJiARbd5JZxw6wG0yIK3eLeSCPdg6uqmmlIiI=
github.com/aws/aws-sdk-go-v2/credentials v1.17.42 h1:sBP0RPjBU4neGpIYyx8mkU2QqLPl5u9cmdTWVzIpHkM=
github.com/aws/aws-sdk-go-v2/credentials v1.17.42/go.mod h1:FwZBfU530dJ26rv9saAbxa9Ej3eF/AK0OAY86k13n4M=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.18 h1:68jFVtt3NulEzojFesM/WVarlFpCaXLKaBxDpzkQ9OQ=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.18/go.mod h1:Fjnn5jQVIo6VyedMc0/EhPpfNlPl7dHV916O6B+49aE=
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.35 h1:ihPPdcCVSN0IvBByXwqVp28/l4VosBZ6sDulcvU2J7w=
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.35/go.mod h1:JkgEhs3SVF51Dj3m1Bj+yL8IznpxzkwlA3jLg3x7Kls=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22 h1:Jw50LwEkVjuVzE1NzkhNKkBf9cRN7MtE1F/b2cOKTUM=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.22/go.mod h1:Y/SmAyPcOTmpeVaWSzSKiILfXTVJwrGmYZhcRbhWuEY=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22 h1:981MHwBaRZM7+9QSR6XamDzF/o7ouUGxFzr+nVSIhrs=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.22/go.mod h1:1RA1+aBEfn+CAB/Mh0MB6LsdCYCnjZm7tKXtnk499ZQ=
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.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc=
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.21 h1:7edmS3VOBDhK00b/MwGtGglCm7hhwNYnjJs/PgFdMQE=
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.21/go.mod h1:Q9o5h4HoIWG8XfzxqiuK/CGUbepCJ8uTlaE3bAbxytQ=
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.22 h1:yV+hCAHZZYJQcwAaszoBNwLbPItHvApxT0kVIw6jRgs=
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.22/go.mod h1:kbR1TL8llqB1eGnVbybcA4/wgScxdylOdyAd51yxPdw=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 h1:TToQNkvGguu209puTojY/ozlqy2d/SFNcoLIqTFi42g=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0/go.mod h1:0jp+ltwkf+SwG2fm/PKo8t4y8pJSgOCO4D8Lz3k0aHQ=
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.2 h1:4FMHqLfk0efmTqhXVRL5xYRqlEBNBiRI7N6w4jsEdd4=
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.2/go.mod h1:LWoqeWlK9OZeJxsROW2RqrSPvQHKTpp69r/iDjwsSaw=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 h1:s7NA1SOw8q/5c0wr8477yOPp0z+uBaXBnLE0XYb0POA=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2/go.mod h1:fnjjWyAW/Pj5HYOxl9LJqWtEwS7W2qgcRLWP+uWbss0=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.2 h1:t7iUP9+4wdc5lt3E41huP+GvQZJD38WLsgVp4iOtAjg=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.2/go.mod h1:/niFCtmuQNxqx9v8WAPq5qh7EH25U4BF6tjoyq9bObM=
github.com/aws/aws-sdk-go-v2/service/s3 v1.66.0 h1:xA6XhTF7PE89BCNHJbQi8VvPzcgMtmGC5dr8S8N7lHk=
github.com/aws/aws-sdk-go-v2/service/s3 v1.66.0/go.mod h1:cB6oAuus7YXRZhWCc1wIwPywwZ1XwweNp2TVAEGYeB8=
github.com/aws/aws-sdk-go-v2/service/sso v1.24.2 h1:bSYXVyUzoTHoKalBmwaZxs97HU9DWWI3ehHSAMa7xOk=
github.com/aws/aws-sdk-go-v2/service/sso v1.24.2/go.mod h1:skMqY7JElusiOUjMJMOv1jJsP7YUg7DrhgqZZWuzu1U=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2 h1:AhmO1fHINP9vFYUE0LHzCWg/LfUWUF+zFPEcY9QXb7o=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2/go.mod h1:o8aQygT2+MVP0NaV6kbdE1YnnIM8RRVQzoeUH45GOdI=
github.com/aws/aws-sdk-go-v2/service/sts v1.32.2 h1:CiS7i0+FUe+/YY1GvIBLLrR/XNGZ4CtM1Ll0XavNuVo=
github.com/aws/aws-sdk-go-v2/service/sts v1.32.2/go.mod h1:HtaiBI8CjYoNVde8arShXb94UbQQi9L4EMr6D+xGBwo=
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.3 h1:kT6BcZsmMtNkP/iYMcRG+mIEA/IbeiUimXtGmqF39y0=
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.3/go.mod h1:Z8uGua2k4PPaGOYn66pK02rhMrot3Xk3tpBuUFPomZU=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.3 h1:qcxX0JYlgWH3hpPUnd6U0ikcl6LLA9sLkXE2w1fpMvY=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.3/go.mod h1:cLSNEmI45soc+Ef8K/L+8sEA3A3pYFEYf5B5UI+6bH4=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.3 h1:ZC7Y/XgKUxwqcdhO5LE8P6oGP1eh6xlQReWNKfhvJno=
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.3/go.mod h1:WqfO7M9l9yUAw0HcHaikwRd/H6gzYdz7vjejCA5e2oY=
github.com/aws/aws-sdk-go-v2/service/s3 v1.66.2 h1:p9TNFL8bFUMd+38YIpTAXpoxyz0MxC7FlbFEH4P4E1U=
github.com/aws/aws-sdk-go-v2/service/s3 v1.66.2/go.mod h1:fNjyo0Coen9QTwQLWeV6WO2Nytwiu+cCcWaTdKCAqqE=
github.com/aws/aws-sdk-go-v2/service/sso v1.24.3 h1:UTpsIf0loCIWEbrqdLb+0RxnTXfWh2vhw4nQmFi4nPc=
github.com/aws/aws-sdk-go-v2/service/sso v1.24.3/go.mod h1:FZ9j3PFHHAR+w0BSEjK955w5YD2UwB/l/H0yAK3MJvI=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.3 h1:2YCmIXv3tmiItw0LlYf6v7gEHebLY45kBEnPezbUKyU=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.3/go.mod h1:u19stRyNPxGhj6dRm+Cdgu6N75qnbW7+QN0q0dsAk58=
github.com/aws/aws-sdk-go-v2/service/sts v1.32.3 h1:wVnQ6tigGsRqSWDEEyH6lSAJ9OyFUsSnbaUWChuSGzs=
github.com/aws/aws-sdk-go-v2/service/sts v1.32.3/go.mod h1:VZa9yTFyj4o10YGsmDO4gbQJUvvhY72fhumT8W4LqsE=
github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM=
github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
@@ -84,14 +84,14 @@ 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/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/ebitengine/purego v0.8.0 h1:JbqvnEzRvPpxhCJzJJ2y0RbiZ8nyjccVUrSM3q+GvvE=
github.com/ebitengine/purego v0.8.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE=
github.com/ebitengine/purego v0.8.1/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.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/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
@@ -217,8 +217,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/pocketbase/dbx v1.10.1 h1:cw+vsyfCJD8YObOVeqb93YErnlxwYMkNZ4rwN0G0AaA=
github.com/pocketbase/dbx v1.10.1/go.mod h1:xXRCIAKTHMgUCyCKZm55pUOdvFziJjQfXaWKhu2vhMs=
github.com/pocketbase/pocketbase v0.22.22 h1:iA128U+cmM9euxPpuCN7blmQ2FZNzOix2aUUcnbbQu8=
github.com/pocketbase/pocketbase v0.22.22/go.mod h1:u+l7T04g7eBXetoodXLch3WoV/QonRf1qYq+2vuTKuI=
github.com/pocketbase/pocketbase v0.22.23 h1:cnjSiBcMf7VIhXmoBmZCAV8qKYkOubHCOQQPZMKFBAk=
github.com/pocketbase/pocketbase v0.22.23/go.mod h1:h2ojT2pqBWH9LLl1aiawkwXiICKtzZA/kjM/8VhydR4=
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/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
@@ -229,8 +229,8 @@ 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/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/shirou/gopsutil/v4 v4.24.9 h1:KIV+/HaHD5ka5f570RZq+2SaeFsb/pq+fp2DGNWYoOI=
github.com/shirou/gopsutil/v4 v4.24.9/go.mod h1:3fkaHNeYsUFCGZ8+9vZVWtbyM1k2eRnlL+bWO8Bxa/Q=
github.com/shirou/gopsutil/v4 v4.24.10 h1:7VOzPtfw/5YDU+jLEoBwXwxJbQetULywoSV4RYY7HkM=
github.com/shirou/gopsutil/v4 v4.24.10/go.mod h1:s4D/wg+ag4rG0WO7AiTj2BeYCRhym0vM7DHbZRxnIT8=
github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w=
github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
@@ -251,8 +251,8 @@ github.com/tcnksm/go-gitconfig v0.1.2 h1:iiDhRitByXAEyjgBqsKi9QU4o2TNtv9kPP3RgPg
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/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY=
github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY=
github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE=
github.com/tklauser/numcpus v0.9.0 h1:lmyCHtANi8aRUgkckBgoDk1nHCux3n2cgkJLXdQGPDo=
github.com/tklauser/numcpus v0.9.0/go.mod h1:SN6Nq1O3VychhC1npsWostA+oW+VOQTxZrS604NSRyI=
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/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
@@ -364,8 +364,8 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T
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/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90=
google.golang.org/api v0.201.0 h1:+7AD9JNM3tREtawRMu8sOjSbb8VYcYXJG/2eEOmfDu0=
google.golang.org/api v0.201.0/go.mod h1:HVY0FCHVs89xIW9fzf/pBvOEm+OolHa86G/txFezyq4=
google.golang.org/api v0.204.0 h1:3PjmQQEDkR/ENVZZwIYB4W/KzYtN8OrqnNcHWpeR8E4=
google.golang.org/api v0.204.0/go.mod h1:69y8QSoKIbL9F94bWgWAq6wGqGwyjBgi2y8rAK8zLag=
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.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@@ -373,12 +373,12 @@ google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9 h1:nFS3IivktIU5Mk6KQa+v6RKkHUpdQpphqGNLxqNnbEk=
google.golang.org/genproto v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:tEzYTYZxbmVNOu0OAFH9HzdJtLn6h4Aj89zzlBCdHms=
google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 h1:Q3nlH8iSQSRUwOskjbcSMcF2jiYMNiQYZ0c2KEJLKKU=
google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38/go.mod h1:xBI+tzfqGGN2JBeSebfKXFSdBpWVQ7sLW40PTupVRm4=
google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8=
google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo=
google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53 h1:X58yt85/IXCx0Y3ZwN6sEIKZzQtDEYaBWrDvErdXrRE=
google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI=
google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 h1:zciRKQ4kBpFgpfC5QQCVtnnNAcLIqweL7plyZRQHVpI=
google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI=
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.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=

View File

@@ -24,6 +24,7 @@ type Agent struct {
sensorsContext context.Context // Sensors context to override sys location
sensorsWhitelist map[string]struct{} // List of sensors to monitor
systemInfo system.Info // Host system info
gpuManager *GPUManager // Manages GPU data
}
func NewAgent() *Agent {
@@ -72,7 +73,14 @@ func (a *Agent) Run(pubKey []byte, addr string) {
a.initializeSystemInfo()
a.initializeDiskInfo()
a.initializeNetIoStats()
a.dockerManager = newDockerManager()
a.dockerManager = newDockerManager(a)
// initialize GPU manager
if gm, err := NewGPUManager(); err != nil {
slog.Debug("GPU", "err", err)
} else {
a.gpuManager = gm
}
// if debugging, print stats
if a.debug {

View File

@@ -38,14 +38,26 @@ func (a *Agent) initializeDiskInfo() {
// Helper function to add a filesystem to fsStats if it doesn't exist
addFsStat := func(device, mountpoint string, root bool) {
key := filepath.Base(device)
var ioMatch bool
if _, exists := a.fsStats[key]; !exists {
if root {
slog.Info("Detected root device", "name", key)
// check if root device is in /proc/diskstats, use fallback if not
if _, exists := diskIoCounters[key]; !exists {
slog.Warn("Device not found in diskstats", "name", key)
key = findFallbackIoDevice(filesystem, diskIoCounters, a.fsStats)
slog.Info("Using I/O fallback", "name", key)
// Check if root device is in /proc/diskstats, use fallback if not
if _, ioMatch = diskIoCounters[key]; !ioMatch {
key, ioMatch = findIoDevice(filesystem, diskIoCounters, a.fsStats)
if !ioMatch {
slog.Info("Using I/O fallback", "device", device, "mountpoint", mountpoint, "fallback", key)
}
}
} else {
// Check if non-root has diskstats and fall back to folder name if not
// Scenario: device is encrypted and named luks-2bcb02be-999d-4417-8d18-5c61e660fb6e - not in /proc/diskstats.
// However, the device can be specified by mounting folder from luks device at /extra-filesystems/sda1
if _, ioMatch = diskIoCounters[key]; !ioMatch {
efBase := filepath.Base(mountpoint)
if _, ioMatch = diskIoCounters[efBase]; ioMatch {
key = efBase
}
}
}
a.fsStats[key] = &system.FsStats{Root: root, Mountpoint: mountpoint}
@@ -92,9 +104,12 @@ func (a *Agent) initializeDiskInfo() {
for _, p := range partitions {
// fmt.Println(p.Device, p.Mountpoint)
// Binary root fallback or docker root fallback
if !hasRoot && (p.Mountpoint == "/" || (p.Mountpoint == "/etc/hosts" && strings.HasPrefix(p.Device, "/dev") && !strings.Contains(p.Device, "mapper"))) {
addFsStat(p.Device, "/", true)
hasRoot = true
if !hasRoot && (p.Mountpoint == "/" || (p.Mountpoint == "/etc/hosts" && strings.HasPrefix(p.Device, "/dev"))) {
fs, match := findIoDevice(filepath.Base(p.Device), diskIoCounters, a.fsStats)
if match {
addFsStat(fs, p.Mountpoint, true)
hasRoot = true
}
}
// Check if device is in /extra-filesystems
@@ -114,7 +129,7 @@ func (a *Agent) initializeDiskInfo() {
mountpoint := filepath.Join(efPath, folder.Name())
slog.Debug("/extra-filesystems", "mountpoint", mountpoint)
if !existingMountpoints[mountpoint] {
a.fsStats[folder.Name()] = &system.FsStats{Mountpoint: mountpoint}
addFsStat(folder.Name(), mountpoint, false)
}
}
}
@@ -122,7 +137,7 @@ func (a *Agent) initializeDiskInfo() {
// If no root filesystem set, use fallback
if !hasRoot {
rootDevice := findFallbackIoDevice(filepath.Base(filesystem), diskIoCounters, a.fsStats)
rootDevice, _ := findIoDevice(filepath.Base(filesystem), diskIoCounters, a.fsStats)
slog.Info("Root disk", "mountpoint", "/", "io", rootDevice)
a.fsStats[rootDevice] = &system.FsStats{Root: true, Mountpoint: "/"}
}
@@ -130,14 +145,15 @@ func (a *Agent) initializeDiskInfo() {
a.initializeDiskIoStats(diskIoCounters)
}
// Returns the device with the most reads in /proc/diskstats,
// or the device specified by the filesystem argument if it exists
func findFallbackIoDevice(filesystem string, diskIoCounters map[string]disk.IOCountersStat, fsStats map[string]*system.FsStats) string {
// Returns matching device from /proc/diskstats,
// or the device with the most reads if no match is found.
// bool is true if a match was found.
func findIoDevice(filesystem string, diskIoCounters map[string]disk.IOCountersStat, fsStats map[string]*system.FsStats) (string, bool) {
var maxReadBytes uint64
maxReadDevice := "/"
for _, d := range diskIoCounters {
if d.Name == filesystem {
return d.Name
if d.Name == filesystem || (d.Label != "" && d.Label == filesystem) {
return d.Name, true
}
if d.ReadBytes > maxReadBytes {
// don't use if device already exists in fsStats
@@ -147,7 +163,7 @@ func findFallbackIoDevice(filesystem string, diskIoCounters map[string]disk.IOCo
}
}
}
return maxReadDevice
return maxReadDevice, false
}
// Sets start values for disk I/O stats.

View File

@@ -25,18 +25,23 @@ type dockerManager struct {
apiContainerList *[]container.ApiInfo // List of containers from Docker API
containerStatsMap map[string]*container.Stats // Keeps track of container stats
validIds map[string]struct{} // Map of valid container ids, used to prune invalid containers from containerStatsMap
goodDockerVersion bool // Whether docker version is at least 25.0.0 (one-shot works correctly)
}
// Add goroutine to the queue
func (d *dockerManager) queue() {
d.sem <- struct{}{}
d.wg.Add(1)
if d.goodDockerVersion {
d.sem <- struct{}{}
}
}
// Remove goroutine from the queue
func (d *dockerManager) dequeue() {
<-d.sem
d.wg.Done()
if d.goodDockerVersion {
<-d.sem
}
}
// Returns stats for all running containers
@@ -75,6 +80,7 @@ func (dm *dockerManager) getDockerStats() ([]*container.Stats, error) {
go func() {
defer dm.dequeue()
err := dm.updateContainerStats(ctr)
// if error, delete from map and add to failed list to retry
if err != nil {
dm.containerStatsMutex.Lock()
delete(dm.containerStatsMap, ctr.IdShort)
@@ -89,11 +95,10 @@ func (dm *dockerManager) getDockerStats() ([]*container.Stats, error) {
// retry failed containers separately so we can run them in parallel (docker 24 bug)
if len(failedContainters) > 0 {
slog.Debug("Retrying failed containers", "count", len(failedContainters))
// time.Sleep(time.Millisecond * 1100)
for _, ctr := range failedContainters {
dm.wg.Add(1)
dm.queue()
go func() {
defer dm.wg.Done()
defer dm.dequeue()
err = dm.updateContainerStats(ctr)
if err != nil {
slog.Error("Error getting container stats", "err", err)
@@ -201,12 +206,13 @@ func (dm *dockerManager) deleteContainerStatsSync(id string) {
delete(dm.containerStatsMap, id)
}
// Creates a new http client for Docker API
func newDockerManager() *dockerManager {
dockerHost := "unix:///var/run/docker.sock"
if dockerHostEnv, exists := os.LookupEnv("DOCKER_HOST"); exists {
slog.Info("DOCKER_HOST", "host", dockerHostEnv)
dockerHost = dockerHostEnv
// Creates a new http client for Docker or Podman API
func newDockerManager(a *Agent) *dockerManager {
dockerHost, exists := os.LookupEnv("DOCKER_HOST")
if exists {
slog.Info("DOCKER_HOST", "host", dockerHost)
} else {
dockerHost = getDockerHost()
}
parsedURL, err := url.Parse(dockerHost)
@@ -251,11 +257,15 @@ func newDockerManager() *dockerManager {
Transport: transport,
},
containerStatsMap: make(map[string]*container.Stats),
sem: make(chan struct{}, 5),
}
// Make sure sem is initialized
concurrency := 200
defer func() { dockerClient.sem = make(chan struct{}, concurrency) }()
// If using podman, return client
if strings.Contains(dockerHost, "podman") {
a.systemInfo.Podman = true
dockerClient.goodDockerVersion = true
return dockerClient
}
// Check docker version
// (versions before 25.0.0 have a bug with one-shot which requires all requests to be made in one batch)
@@ -273,9 +283,22 @@ func newDockerManager() *dockerManager {
// if version > 24, one-shot works correctly and we can limit concurrent operations
if dockerVersion, err := semver.Parse(versionInfo.Version); err == nil && dockerVersion.Major > 24 {
concurrency = 5
dockerClient.goodDockerVersion = true
} else {
slog.Info(fmt.Sprintf("Docker %s is outdated. Upgrade if possible. See https://github.com/henrygd/beszel/issues/58", versionInfo.Version))
}
slog.Debug("Docker", "version", versionInfo.Version, "concurrency", concurrency)
return dockerClient
}
// Test docker / podman sockets and return if one exists
func getDockerHost() string {
scheme := "unix://"
socks := []string{"/var/run/docker.sock", fmt.Sprintf("/run/user/%v/podman/podman.sock", os.Getuid())}
for _, sock := range socks {
if _, err := os.Stat(sock); err == nil {
return scheme + sock
}
}
return scheme + socks[0]
}

View File

@@ -0,0 +1,229 @@
package agent
import (
"beszel/internal/entities/system"
"bufio"
"encoding/json"
"fmt"
"os/exec"
"strconv"
"strings"
"sync"
"time"
"golang.org/x/exp/slog"
)
type GPUManager struct {
nvidiaSmi bool
rocmSmi bool
GpuDataMap map[string]*system.GPUData
mutex sync.Mutex
}
type RocmSmiJson struct {
ID string `json:"Device ID"`
Name string `json:"Card series"`
Temperature string `json:"Temperature (Sensor edge) (C)"`
MemoryUsed string `json:"VRAM Total Used Memory (B)"`
MemoryTotal string `json:"VRAM Total Memory (B)"`
Usage string `json:"GPU use (%)"`
Power string `json:"Current Socket Graphics Package Power (W)"`
}
// startNvidiaCollector oversees collectNvidiaStats and restarts nvidia-smi if it fails
func (gm *GPUManager) startNvidiaCollector() error {
for {
if err := gm.collectNvidiaStats(); err != nil {
slog.Warn("Restarting nvidia-smi", "err", err)
time.Sleep(time.Second) // Wait before retrying
continue
}
}
}
// collectNvidiaStats runs nvidia-smi in a loop and passes the output to parseNvidiaData
func (gm *GPUManager) collectNvidiaStats() error {
// Set up the command
cmd := exec.Command("nvidia-smi", "-l", "4", "--query-gpu=index,name,temperature.gpu,memory.used,memory.total,utilization.gpu,power.draw", "--format=csv,noheader,nounits")
// Set up a pipe to capture stdout
stdout, err := cmd.StdoutPipe()
if err != nil {
return err
}
// Start the command
if err := cmd.Start(); err != nil {
return err
}
// Use a scanner to read each line of output
scanner := bufio.NewScanner(stdout)
buf := make([]byte, 0, 8*1024) // 8KB buffer
scanner.Buffer(buf, bufio.MaxScanTokenSize)
for scanner.Scan() {
line := scanner.Bytes()
gm.parseNvidiaData(line) // Run your function on each new line
}
// Check for any errors encountered during scanning
if err := scanner.Err(); err != nil {
return err
}
// Wait for the command to complete
return cmd.Wait()
}
// parseNvidiaData parses the output of nvidia-smi and updates the GPUData map
func (gm *GPUManager) parseNvidiaData(output []byte) {
gm.mutex.Lock()
defer gm.mutex.Unlock()
lines := strings.Split(string(output), "\n")
for _, line := range lines {
if line != "" {
fields := strings.Split(line, ", ")
if len(fields) >= 7 {
id := fields[0]
temp, _ := strconv.ParseFloat(fields[2], 64)
memoryUsage, _ := strconv.ParseFloat(fields[3], 64)
totalMemory, _ := strconv.ParseFloat(fields[4], 64)
usage, _ := strconv.ParseFloat(fields[5], 64)
power, _ := strconv.ParseFloat(fields[6], 64)
// add gpu if not exists
if _, ok := gm.GpuDataMap[id]; !ok {
name := strings.TrimPrefix(fields[1], "NVIDIA ")
gm.GpuDataMap[id] = &system.GPUData{Name: strings.TrimSuffix(name, " Laptop GPU")}
}
// 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++
}
}
}
}
// startAmdCollector oversees collectAmdStats and restarts rocm-smi if it fails
func (gm *GPUManager) startAmdCollector() {
for {
if err := gm.collectAmdStats(); err != nil {
slog.Warn("Restarting rocm-smi", "err", err)
time.Sleep(time.Second) // Wait before retrying
continue
} else {
// break if no error (command runs but no card found)
break
}
}
}
// collectAmdStats runs rocm-smi in a loop and passes the output to parseAmdData
func (gm *GPUManager) collectAmdStats() error {
cmd := exec.Command("/bin/sh", "-c", "while true; do rocm-smi --showid --showtemp --showuse --showpower --showproductname --showmeminfo vram --json; sleep 4.3; done")
// Set up a pipe to capture stdout
stdout, err := cmd.StdoutPipe()
if err != nil {
return err
}
// Start the command
if err := cmd.Start(); err != nil {
return err
}
// Use a scanner to read each line of output
scanner := bufio.NewScanner(stdout)
buf := make([]byte, 0, 8*1024) // 8KB buffer
scanner.Buffer(buf, bufio.MaxScanTokenSize)
for scanner.Scan() {
var rocmSmiInfo map[string]RocmSmiJson
if err := json.Unmarshal(scanner.Bytes(), &rocmSmiInfo); err != nil {
return err
}
if len(rocmSmiInfo) > 0 {
// slog.Info("rocm-smi", "data", rocmSmiInfo)
gm.parseAmdData(&rocmSmiInfo)
} else {
slog.Warn("rocm-smi returned no GPU")
return nil
}
}
if err := scanner.Err(); err != nil {
return err
}
return cmd.Wait()
}
// parseAmdData parses the output of rocm-smi and updates the GPUData map
func (gm *GPUManager) parseAmdData(rocmSmiInfo *map[string]RocmSmiJson) {
for _, v := range *rocmSmiInfo {
temp, _ := strconv.ParseFloat(v.Temperature, 64)
memoryUsage, _ := strconv.ParseFloat(v.MemoryUsed, 64)
totalMemory, _ := strconv.ParseFloat(v.MemoryTotal, 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 {
gm.GpuDataMap[v.ID] = &system.GPUData{Name: v.Name}
}
gpu := gm.GpuDataMap[v.ID]
gpu.Temperature = temp
gpu.MemoryUsed = memoryUsage
gpu.MemoryTotal = totalMemory
gpu.Usage += usage
gpu.Power += power
gpu.Count++
}
}
// sums and resets the current GPU utilization data since the last update
func (gm *GPUManager) GetCurrentData() map[string]system.GPUData {
gm.mutex.Lock()
defer gm.mutex.Unlock()
// copy / reset the data
gpuData := make(map[string]system.GPUData, len(gm.GpuDataMap))
for id, gpu := range gm.GpuDataMap {
// sum the data
gpu.Temperature = twoDecimals(gpu.Temperature)
gpu.MemoryUsed = twoDecimals(gpu.MemoryUsed)
gpu.MemoryTotal = twoDecimals(gpu.MemoryTotal)
gpu.Usage = twoDecimals(gpu.Usage / gpu.Count)
gpu.Power = twoDecimals(gpu.Power / gpu.Count)
gpuData[id] = *gpu
// reset the count
gpu.Count = 1
}
return gpuData
}
// detectGPU returns the GPU brand (nvidia or amd) or an error if none is found
// todo: make sure there's actually a GPU, not just if the command exists
func (gm *GPUManager) detectGPU() error {
if err := exec.Command("nvidia-smi").Run(); err == nil {
gm.nvidiaSmi = true
}
if err := exec.Command("rocm-smi").Run(); err == nil {
gm.rocmSmi = true
}
if gm.nvidiaSmi || gm.rocmSmi {
return nil
}
return fmt.Errorf("no GPU found - install nvidia-smi or rocm-smi")
}
// NewGPUManager returns a new GPUManager
func NewGPUManager() (*GPUManager, error) {
var gm GPUManager
if err := gm.detectGPU(); err != nil {
return nil, err
}
gm.GpuDataMap = make(map[string]*system.GPUData, 1)
if gm.nvidiaSmi {
go gm.startNvidiaCollector()
}
if gm.rocmSmi {
go gm.startAmdCollector()
}
return &gm, nil
}

View File

@@ -206,6 +206,22 @@ func (a *Agent) getSystemStats() system.Stats {
}
}
// GPU data
if a.gpuManager != nil {
if gpuData := a.gpuManager.GetCurrentData(); len(gpuData) > 0 {
systemStats.GPUData = gpuData
// add temperatures
if systemStats.Temperatures == nil {
systemStats.Temperatures = make(map[string]float64, len(gpuData))
}
for _, gpu := range gpuData {
if gpu.Temperature > 0 {
systemStats.Temperatures[gpu.Name] = gpu.Temperature
}
}
}
}
// update base system info
a.systemInfo.Cpu = systemStats.Cpu
a.systemInfo.MemPct = systemStats.MemPct

View File

@@ -345,6 +345,7 @@ func (am *AlertManager) sendSystemAlert(alert SystemAlertData) {
}
}
// todo: allow x minutes downtime before sending alert
func (am *AlertManager) HandleStatusAlerts(newStatus string, oldSystemRecord *models.Record) error {
var alertStatus string
switch newStatus {

View File

@@ -28,6 +28,17 @@ type Stats struct {
MaxNetworkRecv float64 `json:"nrm,omitempty"`
Temperatures map[string]float64 `json:"t,omitempty"`
ExtraFs map[string]*FsStats `json:"efs,omitempty"`
GPUData map[string]GPUData `json:"g,omitempty"`
}
type GPUData struct {
Name string `json:"n"`
Temperature float64 `json:"-"`
MemoryUsed float64 `json:"mu,omitempty"`
MemoryTotal float64 `json:"mt,omitempty"`
Usage float64 `json:"u"`
Power float64 `json:"p,omitempty"`
Count float64 `json:"-"`
}
type FsStats struct {
@@ -63,6 +74,7 @@ type Info struct {
DiskPct float64 `json:"dp"`
Bandwidth float64 `json:"b"`
AgentVersion string `json:"v"`
Podman bool `json:"p,omitempty"`
}
// Final data structure to return to the hub

View File

@@ -149,11 +149,7 @@ func (rm *RecordManager) CreateLongerRecords(collections []*models.Collection) {
// Calculate the average stats of a list of system_stats records without reflect
func (rm *RecordManager) AverageSystemStats(records RecordStats) system.Stats {
sum := system.Stats{
Temperatures: make(map[string]float64),
ExtraFs: make(map[string]*system.FsStats),
}
sum := system.Stats{}
count := float64(len(records))
// use different counter for temps in case some records don't have them
tempCount := float64(0)
@@ -184,6 +180,9 @@ func (rm *RecordManager) AverageSystemStats(records RecordStats) system.Stats {
sum.MaxDiskWritePs = max(sum.MaxDiskWritePs, stats.MaxDiskWritePs, stats.DiskWritePs)
// add temps to sum
if stats.Temperatures != nil {
if sum.Temperatures == nil {
sum.Temperatures = make(map[string]float64, len(stats.Temperatures))
}
tempCount++
for key, value := range stats.Temperatures {
if _, ok := sum.Temperatures[key]; !ok {
@@ -194,6 +193,9 @@ func (rm *RecordManager) AverageSystemStats(records RecordStats) system.Stats {
}
// add extra fs to sum
if stats.ExtraFs != nil {
if sum.ExtraFs == nil {
sum.ExtraFs = make(map[string]*system.FsStats, len(stats.ExtraFs))
}
for key, value := range stats.ExtraFs {
if _, ok := sum.ExtraFs[key]; !ok {
sum.ExtraFs[key] = &system.FsStats{}
@@ -207,6 +209,25 @@ func (rm *RecordManager) AverageSystemStats(records RecordStats) system.Stats {
sum.ExtraFs[key].MaxDiskWritePS = max(sum.ExtraFs[key].MaxDiskWritePS, value.MaxDiskWritePS, value.DiskWritePs)
}
}
// add GPU data
if stats.GPUData != nil {
if sum.GPUData == nil {
sum.GPUData = make(map[string]system.GPUData, len(stats.GPUData))
}
for id, value := range stats.GPUData {
if _, ok := sum.GPUData[id]; !ok {
sum.GPUData[id] = system.GPUData{Name: value.Name}
}
gpu := sum.GPUData[id]
gpu.Temperature += value.Temperature
gpu.MemoryUsed += value.MemoryUsed
gpu.MemoryTotal += value.MemoryTotal
gpu.Usage += value.Usage
gpu.Power += value.Power
gpu.Count += value.Count
sum.GPUData[id] = gpu
}
}
}
stats = system.Stats{
@@ -232,14 +253,14 @@ func (rm *RecordManager) AverageSystemStats(records RecordStats) system.Stats {
MaxNetworkRecv: sum.MaxNetworkRecv,
}
if len(sum.Temperatures) != 0 {
if sum.Temperatures != nil {
stats.Temperatures = make(map[string]float64, len(sum.Temperatures))
for key, value := range sum.Temperatures {
stats.Temperatures[key] = twoDecimals(value / tempCount)
}
}
if len(sum.ExtraFs) != 0 {
if sum.ExtraFs != nil {
stats.ExtraFs = make(map[string]*system.FsStats, len(sum.ExtraFs))
for key, value := range sum.ExtraFs {
stats.ExtraFs[key] = &system.FsStats{
@@ -253,6 +274,21 @@ func (rm *RecordManager) AverageSystemStats(records RecordStats) system.Stats {
}
}
if sum.GPUData != nil {
stats.GPUData = make(map[string]system.GPUData, len(sum.GPUData))
for id, value := range sum.GPUData {
stats.GPUData[id] = system.GPUData{
Name: value.Name,
Temperature: twoDecimals(value.Temperature / count),
MemoryUsed: twoDecimals(value.MemoryUsed / count),
MemoryTotal: twoDecimals(value.MemoryTotal / count),
Usage: twoDecimals(value.Usage / count),
Power: twoDecimals(value.Power / count),
Count: twoDecimals(value.Count / count),
}
}
}
return stats
}

View File

@@ -1,7 +1,26 @@
import type { LinguiConfig } from "@lingui/conf"
const config: LinguiConfig = {
locales: ["en", "ar", "de", "es", "fr", "it", "ja", "ko", "pt", "tr", "ru", "uk", "vi", "zh-CN", "zh-HK"],
locales: [
"en",
"ar",
"de",
"es",
"fr",
"hr",
"it",
"ja",
"ko",
"nl",
"pl",
"pt",
"tr",
"ru",
"uk",
"vi",
"zh-CN",
"zh-HK",
],
sourceLocale: "en",
compileNamespace: "ts",
catalogs: [

View File

@@ -5,7 +5,7 @@
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"build": "lingui extract --overwrite && lingui compile && vite build",
"preview": "vite preview",
"sync": "lingui extract --overwrite && lingui compile",
"sync_and_purge": "lingui extract --overwrite --clean && lingui compile"

View File

@@ -36,7 +36,7 @@ export function AddSystemButton({ className }: { className?: string }) {
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
# monitor other disks / partitions by mounting a folder in /extra-filesystems
# - /mnt/disk1/.beszel:/extra-filesystems/disk1:ro
# - /mnt/disk/.beszel:/extra-filesystems/sda1:ro
environment:
PORT: ${port}
KEY: "${publicKey}"`)
@@ -107,33 +107,27 @@ export function AddSystemButton({ className }: { className?: string }) {
</DialogDescription>
</TabsContent>
<form onSubmit={handleSubmit as any}>
<div className="grid gap-3 mt-1 mb-4">
<div className="grid grid-cols-4 items-center gap-4">
<Label htmlFor="name" className="text-end">
<Trans>Name</Trans>
</Label>
<Input id="name" name="name" className="col-span-3" required />
</div>
<div className="grid grid-cols-4 items-center gap-4">
<Label htmlFor="host" className="text-end">
<Trans>Host / IP</Trans>
</Label>
<Input id="host" name="host" className="col-span-3" required />
</div>
<div className="grid grid-cols-4 items-center gap-4">
<Label htmlFor="port" className="text-end">
<Trans>Port</Trans>
</Label>
<Input ref={port} name="port" id="port" defaultValue="45876" className="col-span-3" required />
</div>
<div className="grid grid-cols-4 items-center gap-4 relative">
<Label htmlFor="pkey" className="text-end whitespace-pre">
<Trans comment="Use 'Key' if your language requires many more characters">Public Key</Trans>
</Label>
<Input readOnly id="pkey" value={publicKey} className="col-span-3" required></Input>
<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 end-1 pointer-events-none"
"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}>
@@ -142,7 +136,7 @@ export function AddSystemButton({ className }: { className?: string }) {
<Button
type="button"
variant={"link"}
className="absolute end-0"
className="absolute end-0 top-0"
onClick={() => copyToClipboard(publicKey)}
>
<Copy className="h-4 w-4 " />

View File

@@ -33,11 +33,15 @@ export default memo(function AreaChartDefault({
unit = " MB/s",
chartName,
chartData,
max,
tickFormatter,
}: {
maxToggled?: boolean
unit?: string
chartName: string
chartData: ChartData
max?: number
tickFormatter?: (value: number) => string
}) {
const { yAxisWidth, updateYAxisWidth } = useYAxisWidth()
const { i18n } = useLingui()
@@ -52,19 +56,21 @@ export default memo(function AreaChartDefault({
return [[t`CPU Usage`, "cpu", 1, 0.4]]
} else if (chartName === "dio") {
return [
[t({ message: "Write", comment: "Context is disk write" }), "dw", 3, 0.3],
[t({ message: "Read", comment: "Context is disk read" }), "dr", 1, 0.3],
[t({ message: "Write", comment: "Disk write" }), "dw", 3, 0.3],
[t({ message: "Read", comment: "Disk read" }), "dr", 1, 0.3],
]
} else if (chartName === "bw") {
return [
[t({ message: "Sent", comment: "Context is network bytes sent (upload)" }), "ns", 5, 0.2],
[t({ message: "Received", comment: "Context is network bytes received (download)" }), "nr", 2, 0.2],
[t({ message: "Sent", comment: "Network bytes sent (upload)" }), "ns", 5, 0.2],
[t({ message: "Received", comment: "Network bytes received (download)" }), "nr", 2, 0.2],
]
} else if (chartName.startsWith("efs")) {
return [
[t`Read`, `${chartName}.w`, 3, 0.3],
[t`Write`, `${chartName}.r`, 1, 0.3],
[t`Write`, `${chartName}.w`, 3, 0.3],
[t`Read`, `${chartName}.r`, 1, 0.3],
]
} else if (chartName.startsWith("g.")) {
return [chartName.includes("mu") ? [t`Used`, chartName, 2, 0.25] : [t`Usage`, chartName, 1, 0.4]]
}
return []
}, [chartName, i18n.locale])
@@ -89,8 +95,14 @@ export default memo(function AreaChartDefault({
orientation={chartData.orientation}
className="tracking-tighter"
width={yAxisWidth}
domain={[0, max ?? "auto"]}
tickFormatter={(value) => {
const val = toFixedWithoutTrailingZeros(value, 2) + unit
let val: string
if (tickFormatter) {
val = tickFormatter(value)
} else {
val = toFixedWithoutTrailingZeros(value, 2) + unit
}
return updateYAxisWidth(val)
}}
tickLine={false}

View File

@@ -116,9 +116,9 @@ export default memo(function ContainerChart({
}
// data function
if (isNetChart) {
obj.dataFunction = (key: string, data: any) => (data[key]?.nr ?? 0) + (data[key]?.ns ?? 0)
obj.dataFunction = (key: string, data: any) => (data[key] ? data[key].nr + data[key].ns : null)
} else {
obj.dataFunction = (key: string, data: any) => data[key]?.[dataKey] ?? 0
obj.dataFunction = (key: string, data: any) => data[key]?.[dataKey] ?? null
}
return obj
}, [])

View File

@@ -27,6 +27,11 @@ export default memo(function DiskChart({
const { yAxisWidth, updateYAxisWidth } = useYAxisWidth()
const { _ } = useLingui()
// round to nearest GB
if (diskSize >= 100) {
diskSize = Math.round(diskSize)
}
if (chartData.systemStats.length === 0) {
return null
}

View File

@@ -0,0 +1,112 @@
import { CartesianGrid, Line, LineChart, YAxis } from "recharts"
import {
ChartContainer,
ChartLegend,
ChartLegendContent,
ChartTooltip,
ChartTooltipContent,
xAxis,
} from "@/components/ui/chart"
import {
useYAxisWidth,
cn,
formatShortDate,
toFixedWithoutTrailingZeros,
decimalString,
chartMargin,
} from "@/lib/utils"
import { ChartData } from "@/types"
import { memo, useMemo } from "react"
export default memo(function GpuPowerChart({ chartData }: { chartData: ChartData }) {
const { yAxisWidth, updateYAxisWidth } = useYAxisWidth()
if (chartData.systemStats.length === 0) {
return null
}
/** Format temperature data for chart and assign colors */
const newChartData = useMemo(() => {
const newChartData = { data: [], colors: {} } as {
data: Record<string, number | string>[]
colors: Record<string, string>
}
const powerSums = {} as Record<string, number>
for (let data of chartData.systemStats) {
let newData = { created: data.created } as Record<string, number | string>
for (let gpu of Object.values(data.stats?.g ?? {})) {
if (gpu.p) {
const name = gpu.n
newData[name] = gpu.p
powerSums[name] = (powerSums[name] ?? 0) + newData[name]
}
}
newChartData.data.push(newData)
}
const keys = Object.keys(powerSums).sort((a, b) => powerSums[b] - powerSums[a])
for (let key of keys) {
newChartData.colors[key] = `hsl(${((keys.indexOf(key) * 360) / keys.length) % 360}, 60%, 55%)`
}
return newChartData
}, [chartData])
const colors = Object.keys(newChartData.colors)
// console.log('rendered at', new Date())
return (
<div>
<ChartContainer
className={cn("h-full w-full absolute aspect-auto bg-card opacity-0 transition-opacity", {
"opacity-100": yAxisWidth,
})}
>
<LineChart accessibilityLayer data={newChartData.data} margin={chartMargin}>
<CartesianGrid vertical={false} />
<YAxis
direction="ltr"
orientation={chartData.orientation}
className="tracking-tighter"
domain={[0, "auto"]}
width={yAxisWidth}
tickFormatter={(value) => {
const val = toFixedWithoutTrailingZeros(value, 2)
return updateYAxisWidth(val + "W")
}}
tickLine={false}
axisLine={false}
/>
{xAxis(chartData)}
<ChartTooltip
animationEasing="ease-out"
animationDuration={150}
// @ts-ignore
itemSorter={(a, b) => b.value - a.value}
content={
<ChartTooltipContent
labelFormatter={(_, data) => formatShortDate(data[0].payload.created)}
contentFormatter={(item) => decimalString(item.value) + "W"}
// indicator="line"
/>
}
/>
{colors.map((key) => (
<Line
key={key}
dataKey={key}
name={key}
type="monotoneX"
dot={false}
strokeWidth={1.5}
stroke={newChartData.colors[key]}
isAnimationActive={false}
/>
))}
{colors.length > 1 && <ChartLegend content={<ChartLegendContent />} />}
</LineChart>
</ChartContainer>
</div>
)
})

View File

@@ -2,7 +2,7 @@ import { LanguagesIcon } from "lucide-react"
import { Button } from "@/components/ui/button"
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu"
import languages from "../lib/languages.json"
import languages from "@/lib/languages"
import { cn } from "@/lib/utils"
import { useLingui } from "@lingui/react"
import { dynamicActivate } from "@/lib/i18n"
@@ -22,7 +22,7 @@ export function LangToggle() {
{languages.map(({ lang, label, e }) => (
<DropdownMenuItem
key={lang}
className={cn("px-3 flex gap-2.5", lang === i18n.locale && "font-semibold")}
className={cn("px-2.5 flex gap-2.5", lang === i18n.locale && "font-semibold")}
onClick={() => dynamicActivate(lang)}
>
<span>{e}</span> {label}

View File

@@ -7,11 +7,13 @@ import ForgotPassword from "./forgot-pass-form"
import { $router } from "../router"
import { AuthMethodsList } from "pocketbase"
import { t } from "@lingui/macro"
import { useTheme } from "../theme-provider"
export default function () {
const page = useStore($router)
const [isFirstRun, setFirstRun] = useState(false)
const [authMethods, setAuthMethods] = useState<AuthMethodsList>()
const { theme } = useTheme()
useEffect(() => {
document.title = t`Login` + " / Beszel"
@@ -45,7 +47,11 @@ export default function () {
return (
<div className="min-h-svh grid items-center py-12">
<div className="grid gap-5 w-full px-4 mx-auto" style={{ maxWidth: "22em" }}>
<div
className="grid gap-5 w-full px-4 mx-auto"
// @ts-ignore
style={{ maxWidth: "22em", "--border": theme == "light" ? "30 8% 80%" : "220 3% 20%" }}
>
<div className="text-center">
<h1 className="mb-3">
<Logo className="h-7 fill-foreground mx-auto" />

View File

@@ -35,7 +35,7 @@ const isMac = navigator.platform.toUpperCase().indexOf("MAC") >= 0
export default function Navbar() {
return (
<div className="flex items-center h-14 md:h-16 bg-card px-4 pe-3 sm:px-6 border 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">
<Logo className="h-[1.1rem] md:h-5 fill-foreground" />
</Link>

View File

@@ -8,7 +8,7 @@ import { UserSettings } from "@/types"
import { saveSettings } from "./layout"
import { useState } from "react"
import { Trans } from "@lingui/macro"
import languages from "../../../lib/languages.json"
import languages from "@/lib/languages"
import { dynamicActivate } from "@/lib/i18n"
import { useLingui } from "@lingui/react"
// import { setLang } from "@/lib/i18n"

View File

@@ -193,7 +193,7 @@ const ShoutrrrUrlCard = ({ url, onUrlChange, onRemove }: ShoutrrrUrlCardProps) =
}
return (
<Card className="bg-muted/30 p-2 md:p-3">
<Card className="bg-muted/70 p-2 md:p-3">
<div className="flex items-center gap-1">
<Input
type="url"

View File

@@ -45,21 +45,26 @@ export function SidebarNav({ className, items, ...props }: SidebarNavProps) {
{/* Desktop View */}
<nav className={cn("hidden md:grid gap-1", className)} {...props}>
{items.map((item) => (
<Link
key={item.href}
href={item.href}
className={cn(
buttonVariants({ variant: "ghost" }),
"flex items-center gap-3",
page?.path === item.href ? "bg-muted hover:bg-muted" : "hover:bg-muted/50",
"justify-start"
)}
>
{item.icon && <item.icon className="h-4 w-4" />}
{item.title}
</Link>
))}
{items.map((item) => {
if (item.admin && !isAdmin()) {
return null
}
return (
<Link
key={item.href}
href={item.href}
className={cn(
buttonVariants({ variant: "ghost" }),
"flex items-center gap-3",
page?.path === item.href ? "bg-muted hover:bg-muted" : "hover:bg-muted/50",
"justify-start"
)}
>
{item.icon && <item.icon className="h-4 w-4" />}
{item.title}
</Link>
)
})}
</nav>
</>
)

View File

@@ -1,12 +1,12 @@
import { $systems, pb, $chartTime, $containerFilter, $userSettings, $direction } from "@/lib/stores"
import { ChartData, ChartTimes, ContainerStatsRecord, SystemRecord, SystemStatsRecord } from "@/types"
import { ChartData, ChartTimes, ContainerStatsRecord, GPUData, SystemRecord, SystemStatsRecord } from "@/types"
import React, { lazy, useCallback, useEffect, useMemo, useRef, useState } from "react"
import { Card, CardHeader, CardTitle, CardDescription } from "../ui/card"
import { useStore } from "@nanostores/react"
import Spinner from "../spinner"
import { ClockArrowUp, CpuIcon, GlobeIcon, LayoutGridIcon, MonitorIcon, XIcon } from "lucide-react"
import ChartTimeSelect from "../charts/chart-time-select"
import { chartTimeData, cn, getPbTimestamp, useLocalStorage } from "@/lib/utils"
import { chartTimeData, cn, getPbTimestamp, getSizeAndUnit, toFixedFloat, useLocalStorage } from "@/lib/utils"
import { Separator } from "../ui/separator"
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "../ui/tooltip"
import { Button } from "../ui/button"
@@ -24,6 +24,7 @@ const MemChart = lazy(() => import("../charts/mem-chart"))
const DiskChart = lazy(() => import("../charts/disk-chart"))
const SwapChart = lazy(() => import("../charts/swap-chart"))
const TemperatureChart = lazy(() => import("../charts/temperature-chart"))
const GpuPowerChart = lazy(() => import("../charts/gpu-power-chart"))
const cache = new Map<string, any>()
@@ -85,6 +86,13 @@ async function getStats<T>(collection: string, system: SystemRecord, chartTime:
})
}
function dockerOrPodman(str: string, system: SystemRecord) {
if (system.info.p) {
str = str.replace("docker", "podman").replace("Docker", "Podman")
}
return str
}
export default function SystemDetail({ name }: { name: string }) {
const direction = useStore($direction)
const { _ } = useLingui()
@@ -285,13 +293,14 @@ export default function SystemDetail({ name }: { name: string }) {
// if no data, show empty message
const dataEmpty = !chartLoading && chartData.systemStats.length === 0
const hasGpuData = Object.keys(systemStats.at(-1)?.stats.g ?? {}).length > 0
return (
<>
<div id="chartwrap" className="grid gap-4 mb-10 overflow-x-clip">
{/* system info */}
<Card>
<div className="grid lg:flex gap-4 px-4 sm:px-6 pt-3 sm:pt-4 pb-5">
<div className="grid xl:flex gap-4 px-4 sm:px-6 pt-3 sm:pt-4 pb-5">
<div>
<h1 className="text-[1.6rem] font-semibold mb-1.5">{system.name}</h1>
<div className="flex flex-wrap items-center gap-3 gap-y-2 text-sm opacity-90">
@@ -341,8 +350,8 @@ export default function SystemDetail({ name }: { name: string }) {
})}
</div>
</div>
<div className="lg:ms-auto flex items-center gap-2 max-sm:-mb-1">
<ChartTimeSelect className="w-full lg:w-40" />
<div className="xl:ms-auto flex items-center gap-2 max-sm:-mb-1">
<ChartTimeSelect className="w-full xl:w-40" />
<TooltipProvider delayDuration={100}>
<Tooltip>
<TooltipTrigger asChild>
@@ -350,7 +359,7 @@ export default function SystemDetail({ name }: { name: string }) {
aria-label={t`Toggle grid`}
variant="outline"
size="icon"
className="hidden lg:flex p-0 text-primary"
className="hidden xl:flex p-0 text-primary"
onClick={() => setGrid(!grid)}
>
{grid ? (
@@ -383,7 +392,7 @@ export default function SystemDetail({ name }: { name: string }) {
<ChartCard
empty={dataEmpty}
grid={grid}
title={t`Docker CPU Usage`}
title={dockerOrPodman(t`Docker CPU Usage`, system)}
description={t`Average CPU utilization of containers`}
cornerEl={containerFilterBar}
>
@@ -395,7 +404,7 @@ export default function SystemDetail({ name }: { name: string }) {
empty={dataEmpty}
grid={grid}
title={t`Memory Usage`}
description={t`Triggers when memory usage exceeds a threshold.`}
description={t`Precise utilization at the recorded time`}
>
<MemChart chartData={chartData} />
</ChartCard>
@@ -404,8 +413,8 @@ export default function SystemDetail({ name }: { name: string }) {
<ChartCard
empty={dataEmpty}
grid={grid}
title={t`Docker Memory Usage`}
description={t`Memory usage of docker containers`}
title={dockerOrPodman(t`Docker Memory Usage`, system)}
description={dockerOrPodman(t`Memory usage of docker containers`, system)}
cornerEl={containerFilterBar}
>
<ContainerChart chartData={chartData} chartName="mem" dataKey="m" unit=" MB" />
@@ -413,11 +422,7 @@ export default function SystemDetail({ name }: { name: string }) {
)}
<ChartCard empty={dataEmpty} grid={grid} title={t`Disk Usage`} description={t`Usage of root partition`}>
<DiskChart
chartData={chartData}
dataKey="stats.du"
diskSize={Math.round(systemStats.at(-1)?.stats.d ?? NaN)}
/>
<DiskChart chartData={chartData} dataKey="stats.du" diskSize={systemStats.at(-1)?.stats.d ?? NaN} />
</ChartCard>
<ChartCard
@@ -449,8 +454,8 @@ export default function SystemDetail({ name }: { name: string }) {
>
<ChartCard
empty={dataEmpty}
title={t`Docker Network I/O`}
description={t`Network traffic of docker containers`}
title={dockerOrPodman(t`Docker Network I/O`, system)}
description={dockerOrPodman(t`Network traffic of docker containers`, system)}
cornerEl={containerFilterBar}
>
{/* @ts-ignore */}
@@ -459,6 +464,7 @@ export default function SystemDetail({ name }: { name: string }) {
</div>
)}
{/* Swap chart */}
{(systemStats.at(-1)?.stats.su ?? 0) > 0 && (
<ChartCard
empty={dataEmpty}
@@ -470,6 +476,7 @@ export default function SystemDetail({ name }: { name: string }) {
</ChartCard>
)}
{/* Temperature chart */}
{systemStats.at(-1)?.stats.t && (
<ChartCard
empty={dataEmpty}
@@ -480,11 +487,61 @@ export default function SystemDetail({ name }: { name: string }) {
<TemperatureChart chartData={chartData} />
</ChartCard>
)}
{/* GPU power draw chart */}
{hasGpuData && (
<ChartCard
empty={dataEmpty}
grid={grid}
title={t`GPU Power Draw`}
description={t`Average power consumption of GPUs`}
>
<GpuPowerChart chartData={chartData} />
</ChartCard>
)}
</div>
{/* GPU charts */}
{hasGpuData && (
<div className="grid xl:grid-cols-2 gap-4">
{Object.keys(systemStats.at(-1)?.stats.g ?? {}).map((id) => {
const gpu = systemStats.at(-1)?.stats.g?.[id] as GPUData
return (
<div key={id} className="contents">
<ChartCard
empty={dataEmpty}
grid={grid}
title={`${gpu.n} ${t`Usage`}`}
description={t`Average utilization of ${gpu.n}`}
>
<AreaChartDefault chartData={chartData} chartName={`g.${id}.u`} unit="%" />
</ChartCard>
<ChartCard
empty={dataEmpty}
grid={grid}
title={`${gpu.n} VRAM`}
description={t`Precise utilization at the recorded time`}
>
<AreaChartDefault
chartData={chartData}
chartName={`g.${id}.mu`}
unit=" MB"
max={gpu.mt}
tickFormatter={(value) => {
const { v, u } = getSizeAndUnit(value, false)
return toFixedFloat(v, 1) + u
}}
/>
</ChartCard>
</div>
)
})}
</div>
)}
{/* extra filesystem charts */}
{Object.keys(systemStats.at(-1)?.stats.efs ?? {}).length > 0 && (
<div className="grid lg:grid-cols-2 gap-4">
<div className="grid xl:grid-cols-2 gap-4">
{Object.keys(systemStats.at(-1)?.stats.efs ?? {}).map((extraFsName) => {
return (
<div key={extraFsName} className="contents">
@@ -497,7 +554,7 @@ export default function SystemDetail({ name }: { name: string }) {
<DiskChart
chartData={chartData}
dataKey={`stats.efs.${extraFsName}.du`}
diskSize={Math.round(systemStats.at(-1)?.stats.efs?.[extraFsName].d ?? NaN)}
diskSize={systemStats.at(-1)?.stats.efs?.[extraFsName].d ?? NaN}
/>
</ChartCard>
<ChartCard
@@ -599,8 +656,14 @@ function ChartCard({
<CardDescription>{description}</CardDescription>
{cornerEl && <div className="relative py-1 block sm:w-44 sm:absolute sm:top-2.5 sm:end-3.5">{cornerEl}</div>}
</CardHeader>
<div className="ps-0 w-[calc(100%-1.6em)] h-52 relative">
{<Spinner msg={empty ? t`Waiting for enough records to display` : undefined} />}
<div className="ps-0 w-[calc(100%-1.5em)] h-48 md:h-52 relative group">
{
<Spinner
msg={empty ? t`Waiting for enough records to display` : undefined}
// className="group-has-[.opacity-100]:opacity-0 transition-opacity"
className="group-has-[.opacity-100]:invisible duration-100"
/>
}
{isIntersecting && children}
</div>
</Card>

View File

@@ -1,10 +1,11 @@
import { cn } from "@/lib/utils"
import { LoaderCircleIcon } from "lucide-react"
export default function ({ msg }: { msg?: string }) {
export default function ({ msg, className }: { msg?: string; className?: string }) {
return (
<div className="flex flex-col items-center justify-center h-full absolute inset-0">
<div className={cn(className, "flex flex-col items-center justify-center h-full absolute inset-0")}>
{msg ? (
<p className={"opacity-60 mb-2 text-center px-4"}>{msg}</p>
<p className={"opacity-60 mb-2 text-center text-sm px-4"}>{msg}</p>
) : (
<LoaderCircleIcon className="animate-spin h-10 w-10 opacity-60" />
)}

View File

@@ -352,7 +352,7 @@ export default function SystemsTable() {
<CardContent className="max-sm:p-2">
<div className="rounded-md border overflow-hidden">
<Table>
<TableHeader className="bg-muted/40">
<TableHeader>
{table.getHeaderGroups().map((headerGroup) => (
<TableRow key={headerGroup.id}>
{headerGroup.headers.map((header) => {

View File

@@ -16,7 +16,7 @@ const AlertDialogOverlay = React.forwardRef<
>(({ className, ...props }, ref) => (
<AlertDialogPrimitive.Overlay
className={cn(
"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
"fixed inset-0 z-50 bg-black/40 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
className
)}
{...props}

View File

@@ -11,7 +11,7 @@ const buttonVariants = cva(
variant: {
default: "bg-primary text-primary-foreground hover:bg-primary/90",
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
outline: "border bg-background hover:bg-accent/70 dark:hover:bg-accent/50 hover:text-accent-foreground",
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
ghost: "hover:bg-accent hover:text-accent-foreground",
link: "text-primary underline-offset-4 hover:underline",

View File

@@ -3,7 +3,11 @@ import * as React from "react"
import { cn } from "@/lib/utils"
const Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (
<div ref={ref} className={cn("rounded-lg border bg-card text-card-foreground shadow-sm", className)} {...props} />
<div
ref={ref}
className={cn("rounded-lg border border-border/60 bg-card text-card-foreground shadow-sm", className)}
{...props}
/>
))
Card.displayName = "Card"

View File

@@ -334,7 +334,7 @@ const xAxis = function ({ domain, ticks, chartTime }: ChartData) {
allowDataOverflow
type="number"
scale="time"
minTickGap={15}
minTickGap={12}
tickMargin={8}
axisLine={false}
tickFormatter={chartTimeData[chartTime].format}

View File

@@ -19,7 +19,7 @@ const DialogOverlay = React.forwardRef<
<DialogPrimitive.Overlay
ref={ref}
className={cn(
"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
"fixed inset-0 z-50 bg-black/40 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
className
)}
{...props}

View File

@@ -33,7 +33,7 @@ const InputTags = React.forwardRef<HTMLInputElement, InputTagsProps>(
return (
<div
className={cn(
"bg-background min-h-10 flex w-full flex-wrap gap-2 rounded-md border border-input px-3 py-2 text-sm placeholder:text-muted-foreground has-[:focus-visible]:outline-none ring-offset-background has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-ring has-[:focus-visible]:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
"bg-background min-h-10 flex w-full flex-wrap gap-2 rounded-md border px-3 py-2 text-sm placeholder:text-muted-foreground has-[:focus-visible]:outline-none ring-offset-background has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-ring has-[:focus-visible]:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
className
)}
>

View File

@@ -9,7 +9,7 @@ const Input = React.forwardRef<HTMLInputElement, InputProps>(({ className, type,
<input
type={type}
className={cn(
"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
"flex h-10 w-full rounded-md border bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
className
)}
ref={ref}

View File

@@ -17,7 +17,7 @@ const SelectTrigger = React.forwardRef<
<SelectPrimitive.Trigger
ref={ref}
className={cn(
"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
"flex h-10 w-full items-center justify-between rounded-md border bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
className
)}
{...props}

View File

@@ -12,7 +12,9 @@ const Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableE
Table.displayName = "Table"
const TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(
({ className, ...props }, ref) => <thead ref={ref} className={cn("[&_tr]:border-b", className)} {...props} />
({ className, ...props }, ref) => (
<thead ref={ref} className={cn("bg-muted/30 [&_tr]:border-b", className)} {...props} />
)
)
TableHeader.displayName = "TableHeader"
@@ -34,7 +36,10 @@ const TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTML
({ className, ...props }, ref) => (
<tr
ref={ref}
className={cn("border-b hover:bg-muted/40 dark:hover:bg-muted/30 data-[state=selected]:bg-muted", className)}
className={cn(
"border-b border-border/60 hover:bg-muted/40 dark:hover:bg-muted/20 data-[state=selected]:bg-muted",
className
)}
{...props}
/>
)

View File

@@ -8,7 +8,7 @@ const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(({ classNa
return (
<textarea
className={cn(
"flex min-h-14 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
"flex min-h-14 w-full rounded-md border bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
className
)}
ref={ref}

View File

@@ -34,25 +34,25 @@
.dark {
color-scheme: dark;
--background: 240 10% 6.2%;
--foreground: 0 0% 98.04%;
--card: 240 8.57% 8%;
--card-foreground: 0 0% 98.04%;
--popover: 240 10% 6.2%;
--popover-foreground: 0 0% 98.04%;
--primary: 0 0% 98.04%;
--primary-foreground: 240 5.88% 10%;
--secondary: 240 3.7% 15.88%;
--secondary-foreground: 0 0% 98.04%;
--muted: 240 3.7% 15.88%;
--muted-foreground: 240 5.03% 64.9%;
--accent: 240 3.7% 15.88%;
--accent-foreground: 0 0% 98.04%;
--destructive: 0 59% 46%;
--destructive-foreground: 0 0% 98.04%;
--border: 240 2.86% 12%;
--input: 240 3.7% 15.88%;
--ring: 240 4.88% 86%;
--background: 220 5.5% 9.5%;
--foreground: 220 2% 97%;
--card: 220 5.5% 11%;
--card-foreground: 220 2% 97%;
--popover: 220 5.5% 9.5%;
--popover-foreground: 220 2% 97%;
--primary: 220 2% 96%;
--primary-foreground: 220 4% 10%;
--secondary: 220 4% 16%;
--secondary-foreground: 220 0% 98%;
--muted: 220 6% 16%;
--muted-foreground: 220 4% 67%;
--accent: 220 5% 15.5%;
--accent-foreground: 220 2% 98%;
--destructive: 0 62% 46%;
--destructive-foreground: 0 0% 97%;
--border: 220 3% 16%;
--input: 220 4% 22%;
--ring: 220 4% 80%;
--radius: 0.8rem;
}
}

View File

@@ -1,29 +1,43 @@
import { $direction } from "./stores"
import { i18n } from "@lingui/core"
import type { Messages } from "@lingui/core"
import languages from "@/lib/languages"
import { detect, fromUrl, fromStorage, fromNavigator } from "@lingui/detect-locale"
import { messages as enMessages } from "../locales/en/en.ts"
// const locale = detect(fromUrl("lang"), fromStorage("lang"), fromNavigator(), "en")
const locale = detect(fromStorage("lang"), fromNavigator(), "en")
// let locale = detect(fromUrl("lang"), fromStorage("lang"), fromNavigator(), "en")
let locale = detect(fromStorage("lang"), fromNavigator(), "en")
// log if dev
if (import.meta.env.DEV) {
console.log("detected locale", locale)
}
// activates locale
function activateLocale(locale: string, messages: Messages = enMessages) {
i18n.load(locale, messages)
i18n.activate(locale)
document.documentElement.lang = locale
localStorage.setItem("lang", locale)
$direction.set(locale.startsWith("ar") ? "rtl" : "ltr")
}
// dynamically loads translations for the given locale
export async function dynamicActivate(locale: string) {
try {
const { messages } = await import(`../locales/${locale}/${locale}.ts`)
i18n.load(locale, messages)
i18n.activate(locale)
document.documentElement.lang = locale
$direction.set(locale.startsWith("ar") ? "rtl" : "ltr")
localStorage.setItem("lang", locale)
} catch (error) {
console.error(`Error loading ${locale}`, error)
if (locale == "en") {
activateLocale(locale)
} else {
try {
const { messages }: { messages: Messages } = await import(`../locales/${locale}/${locale}.ts`)
activateLocale(locale, messages)
} catch (error) {
console.error(`Error loading ${locale}`, error)
activateLocale("en")
}
}
}
// handle zh variants
if (locale?.startsWith("zh-")) {
// map zh variants to zh-CN
const zhVariantMap: Record<string, string> = {
@@ -38,9 +52,11 @@ if (locale?.startsWith("zh-")) {
"zh-Hant": "zh-HK",
}
dynamicActivate(zhVariantMap[locale] || "zh-CN")
} else if (locale && !locale.startsWith("en")) {
dynamicActivate(locale.split("-")[0])
} else {
i18n.load("en", enMessages)
i18n.activate("en")
locale = (locale || "en").split("-")[0]
// use en if locale is not in languages
if (!languages.some((l) => l.lang === locale)) {
locale = "en"
}
dynamicActivate(locale)
}

View File

@@ -1,77 +0,0 @@
[
{
"lang": "ar",
"label": "العربية",
"e": "🇵🇸"
},
{
"lang": "de",
"label": "Deutsch",
"e": "🇩🇪"
},
{
"lang": "en",
"label": "English",
"e": "🇺🇸"
},
{
"lang": "es",
"label": "Español",
"e": "🇲🇽"
},
{
"lang": "fr",
"label": "Français",
"e": "🇫🇷"
},
{
"lang": "it",
"label": "Italiano",
"e": "🇮🇹"
},
{
"lang": "ja",
"label": "日本語",
"e": "🇯🇵"
},
{
"lang": "ko",
"label": "한국어",
"e": "🇰🇷"
},
{
"lang": "pt",
"label": "Português",
"e": "🇧🇷"
},
{
"lang": "tr",
"label": "Türkçe",
"e": "🇹🇷"
},
{
"lang": "ru",
"label": "Русский",
"e": "🇷🇺"
},
{
"lang": "uk",
"label": "Українська",
"e": "🇺🇦"
},
{
"lang": "vi",
"label": "Tiếng Việt",
"e": "🇻🇳"
},
{
"lang": "zh-CN",
"label": "简体中文",
"e": "🇨🇳"
},
{
"lang": "zh-HK",
"label": "繁體中文",
"e": "🇭🇰"
}
]

View File

@@ -0,0 +1,92 @@
export default [
{
lang: "ar",
label: "العربية",
e: "🇵🇸",
},
{
lang: "de",
label: "Deutsch",
e: "🇩🇪",
},
{
lang: "en",
label: "English",
e: "🇺🇸",
},
{
lang: "es",
label: "Español",
e: "🇲🇽",
},
{
lang: "fr",
label: "Français",
e: "🇫🇷",
},
{
lang: "hr",
label: "Hrvatski",
e: "🇭🇷",
},
{
lang: "it",
label: "Italiano",
e: "🇮🇹",
},
{
lang: "ja",
label: "日本語",
e: "🇯🇵",
},
{
lang: "ko",
label: "한국어",
e: "🇰🇷",
},
{
lang: "nl",
label: "Nederlands",
e: "🇳🇱",
},
{
lang: "pl",
label: "Polski",
e: "🇵🇱",
},
{
lang: "pt",
label: "Português",
e: "🇧🇷",
},
{
lang: "tr",
label: "Türkçe",
e: "🇹🇷",
},
{
lang: "ru",
label: "Русский",
e: "🇷🇺",
},
{
lang: "uk",
label: "Українська",
e: "🇺🇦",
},
{
lang: "vi",
label: "Tiếng Việt",
e: "🇻🇳",
},
{
lang: "zh-CN",
label: "简体中文",
e: "🇨🇳",
},
{
lang: "zh-HK",
label: "繁體中文",
e: "🇭🇰",
},
] as const

View File

@@ -272,7 +272,7 @@ export const getSizeAndUnit = (n: number, isGigabytes = true) => {
} else if (sizeInGB >= 1) {
return { v: sizeInGB, u: " GB" }
}
return { v: n, u: " MB" }
return { v: isGigabytes ? sizeInGB * 1_000 : n, u: " MB" }
}
export const chartMargin = { top: 12 }

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: ar\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-02 02:13\n"
"PO-Revision-Date: 2024-11-04 20:46\n"
"Last-Translator: \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"
@@ -18,11 +18,11 @@ msgstr ""
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
"X-Crowdin-File-ID: 16\n"
#: src/components/routes/system.tsx:242
#: src/components/routes/system.tsx:250
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# يوم} other {# أيام}}"
#: src/components/routes/system.tsx:240
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# ساعة} other {# ساعات}}"
@@ -63,8 +63,8 @@ msgstr "إضافة <0>نظام</0>"
msgid "Add New System"
msgstr "إضافة نظام جديد"
#: src/components/add-system.tsx:167
#: src/components/add-system.tsx:178
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "إضافة نظام"
@@ -112,11 +112,11 @@ msgstr "مزودو المصادقة"
msgid "Automatic copy requires a secure context."
msgstr "النسخ التلقائي يتطلب سياقًا آمنًا."
#: src/components/routes/system.tsx:568
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "متوسط"
#: src/components/routes/system.tsx:387
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "متوسط استخدام وحدة المعالجة المركزية للحاويات"
@@ -124,16 +124,24 @@ msgstr "متوسط استخدام وحدة المعالجة المركزية ل
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "المتوسط يتجاوز <0>{value}{0}</0>"
#: src/components/routes/system.tsx:376
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "متوسط استخدام وحدة المعالجة المركزية على مستوى النظام"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "النسخ الاحتياطية"
#: src/components/routes/system.tsx:436
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "عرض النطاق الترددي"
@@ -182,7 +190,7 @@ msgstr "تحقق من السجلات لمزيد من التفاصيل."
msgid "Check your notification service"
msgstr "تحقق من خدمة الإشعارات الخاصة بك"
#: src/components/add-system.tsx:153
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "انقر للنسخ"
@@ -213,7 +221,7 @@ msgstr "متابعة"
msgid "Copied to clipboard"
msgstr "تم النسخ إلى الحافظة"
#: src/components/add-system.tsx:164
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "نسخ"
@@ -221,7 +229,7 @@ msgstr "نسخ"
msgid "Copy host"
msgstr "نسخ المضيف"
#: src/components/add-system.tsx:175
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "نسخ أمر لينكس"
@@ -233,8 +241,8 @@ msgstr "نسخ النص"
msgid "CPU"
msgstr "المعالج"
#: src/components/charts/area-chart.tsx:52
#: src/components/routes/system.tsx:375
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "استخدام وحدة المعالجة المركزية"
@@ -265,29 +273,29 @@ msgstr "حذف"
msgid "Disk"
msgstr "القرص"
#: src/components/routes/system.tsx:426
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "إدخال/إخراج القرص"
#: src/components/charts/disk-chart.tsx:74
#: src/components/routes/system.tsx:415
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "استخدام القرص"
#: src/components/routes/system.tsx:495
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "استخدام القرص لـ {extraFsName}"
#: src/components/routes/system.tsx:386
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "استخدام وحدة المعالجة المركزية لـ Docker"
msgstr "استخدام CPU لـ Docker"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "استخدام الذاكرة لـ Docker"
#: src/components/routes/system.tsx:452
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "إدخال/إخراج الشبكة لـ Docker"
@@ -308,7 +316,7 @@ msgstr "البريد الإلكتروني"
msgid "Email notifications"
msgstr "إشعارات البريد الإلكتروني"
#: src/components/login/login.tsx:36
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "أدخل عنوان البريد الإلكتروني لإعادة تعيين كلمة المرور"
@@ -355,7 +363,7 @@ msgstr "فشل في إرسال إشعار الاختبار"
msgid "Failed to update alert"
msgstr "فشل في تحديث التنبيه"
#: src/components/routes/system.tsx:539
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "تصفية..."
@@ -374,7 +382,11 @@ msgstr "هل نسيت كلمة المرور؟"
msgid "General"
msgstr "عام"
#: src/components/add-system.tsx:119
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "مضيف / IP"
@@ -387,7 +399,7 @@ msgid "Invalid email address."
msgstr "عنوان البريد الإلكتروني غير صالح."
#. Linux kernel
#: src/components/routes/system.tsx:254
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "كيرنل"
@@ -404,7 +416,7 @@ msgstr "فاتح"
msgid "Log Out"
msgstr "تسجيل الخروج"
#: src/components/login/login.tsx:17
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "تسجيل الدخول"
@@ -427,7 +439,7 @@ msgid "Manage display and notification preferences."
msgstr "إدارة تفضيلات العرض والإشعارات."
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:571
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "1 دقيقة كحد"
@@ -435,16 +447,16 @@ msgstr "1 دقيقة كحد"
msgid "Memory"
msgstr "الذاكرة"
#: src/components/routes/system.tsx:397
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "استخدام الذاكرة"
#: src/components/routes/system.tsx:408
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "استخدام الذاكرة لحاويات Docker"
#: src/components/add-system.tsx:113
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "الاسم"
@@ -452,11 +464,11 @@ msgstr "الاسم"
msgid "Net"
msgstr "الشبكة"
#: src/components/routes/system.tsx:453
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "حركة مرور الشبكة لحاويات Docker"
#: src/components/routes/system.tsx:438
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "حركة مرور الشبكة للواجهات العامة"
@@ -532,7 +544,7 @@ msgstr "يرجى التحقق من السجلات لمزيد من التفاصي
msgid "Please check your credentials and try again"
msgstr "يرجى التحقق من بيانات الاعتماد الخاصة بك والمحاولة مرة أخرى"
#: src/components/login/login.tsx:34
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "يرجى إنشاء حساب مسؤول"
@@ -548,31 +560,36 @@ msgstr "يرجى تسجيل الدخول مرة أخرى"
msgid "Please see <0>the documentation</0> for instructions."
msgstr "يرجى الاطلاع على <0>التوثيق</0> للحصول على التعليمات."
#: src/components/login/login.tsx:38
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "يرجى تسجيل الدخول إلى حسابك"
#: src/components/add-system.tsx:125
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "المنفذ"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
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:131
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "المفتاح العام"
#. Context is disk read
#: src/components/charts/area-chart.tsx:56
#: src/components/charts/area-chart.tsx:65
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "قراءة"
#. Context is network bytes received (download)
#: src/components/charts/area-chart.tsx:61
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "تم الاستلام"
@@ -605,8 +622,8 @@ msgstr "البحث عن الأنظمة أو الإعدادات..."
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "راجع <0>إعدادات الإشعارات</0> لتكوين كيفية تلقي التنبيهات."
#. Context is network bytes sent (upload)
#: src/components/charts/area-chart.tsx:60
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "تم الإرسال"
@@ -638,11 +655,11 @@ msgstr "إعدادات SMTP"
msgid "Status"
msgstr "الحالة"
#: src/components/routes/system.tsx:467
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "مساحة التبديل المستخدمة من قبل النظام"
#: src/components/routes/system.tsx:466
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "استخدام التبديل"
@@ -661,12 +678,12 @@ msgstr "الأنظمة"
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
msgstr "يمكن إدارة الأنظمة في ملف <0>config.yml</0> داخل دليل البيانات الخاص بك."
#: src/components/routes/system.tsx:477
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "درجة الحرارة"
#: src/components/routes/system.tsx:478
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "درجات حرارة مستشعرات النظام"
@@ -694,11 +711,11 @@ msgstr "ثم قم بتسجيل الدخول إلى الواجهة الخلفية
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:507
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "معدل نقل {extraFsName}"
#: src/components/routes/system.tsx:427
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "معدل نقل نظام الملفات الجذر"
@@ -706,8 +723,8 @@ msgstr "معدل نقل نظام الملفات الجذر"
msgid "To email(s)"
msgstr "إلى البريد الإلكتروني"
#: src/components/routes/system.tsx:350
#: src/components/routes/system.tsx:363
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "تبديل الشبكة"
@@ -731,10 +748,6 @@ msgstr "يتم التفعيل عندما يتجاوز استخدام وحدة ا
msgid "Triggers when memory usage exceeds a threshold"
msgstr "يتم التفعيل عندما يتجاوز استخدام الذاكرة عتبة معينة"
#: src/components/routes/system.tsx:398
msgid "Triggers when memory usage exceeds a threshold."
msgstr "يتم التفعيل عندما يتجاوز استخدام الذاكرة عتبة معينة."
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "يتم التفعيل عندما يتغير الحالة بين التشغيل والإيقاف"
@@ -747,18 +760,21 @@ msgstr "يتم التفعيل عندما يتجاوز استخدام أي قرص
msgid "Updated in real time. Click on a system to view information."
msgstr "محدث في الوقت الحقيقي. انقر على نظام لعرض المعلومات."
#: src/components/routes/system.tsx:253
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "مدة التشغيل"
#: src/components/routes/system.tsx:494
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "الاستخدام"
#: src/components/routes/system.tsx:415
#: src/components/routes/system.tsx:424
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"
@@ -777,7 +793,7 @@ msgstr "اسم المستخدم"
msgid "Users"
msgstr "المستخدمون"
#: src/components/routes/system.tsx:603
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "في انتظار وجود سجلات كافية للعرض"
@@ -789,9 +805,9 @@ msgstr "هل تريد مساعدتنا في تحسين ترجماتنا؟ تحق
msgid "Webhook / Push notifications"
msgstr "إشعارات Webhook / Push"
#. Context is disk write
#: src/components/charts/area-chart.tsx:55
#: src/components/charts/area-chart.tsx:66
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "كتابة"

File diff suppressed because one or more lines are too long

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: de\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-02 02:13\n"
"PO-Revision-Date: 2024-11-04 20:46\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,11 +18,11 @@ msgstr ""
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
"X-Crowdin-File-ID: 16\n"
#: src/components/routes/system.tsx:242
#: src/components/routes/system.tsx:250
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# Tag} other {# Tage}}"
#: src/components/routes/system.tsx:240
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# Stunde} other {# Stunden}}"
@@ -63,8 +63,8 @@ msgstr "<0>System</0> hinzufügen"
msgid "Add New System"
msgstr "Neues System hinzufügen"
#: src/components/add-system.tsx:167
#: src/components/add-system.tsx:178
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "System hinzufügen"
@@ -112,11 +112,11 @@ msgstr "Authentifizierungsanbieter"
msgid "Automatic copy requires a secure context."
msgstr "Automatisches Kopieren erfordert einen sicheren Kontext."
#: src/components/routes/system.tsx:568
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "Durchschnitt"
#: src/components/routes/system.tsx:387
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "Durchschnittliche CPU-Auslastung der Container"
@@ -124,16 +124,24 @@ msgstr "Durchschnittliche CPU-Auslastung der Container"
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "Durchschnitt überschreitet <0>{value}{0}</0>"
#: src/components/routes/system.tsx:376
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "Durchschnittliche systemweite CPU-Auslastung"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "Backups"
#: src/components/routes/system.tsx:436
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "Bandbreite"
@@ -182,7 +190,7 @@ msgstr "Überprüfen Sie die Protokolle für weitere Details."
msgid "Check your notification service"
msgstr "Überprüfen Sie Ihren Benachrichtigungsdienst"
#: src/components/add-system.tsx:153
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "Zum Kopieren klicken"
@@ -213,7 +221,7 @@ msgstr "Fortfahren"
msgid "Copied to clipboard"
msgstr "In die Zwischenablage kopiert"
#: src/components/add-system.tsx:164
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "Kopieren"
@@ -221,7 +229,7 @@ msgstr "Kopieren"
msgid "Copy host"
msgstr "Host kopieren"
#: src/components/add-system.tsx:175
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "Linux-Befehl kopieren"
@@ -233,8 +241,8 @@ msgstr "Text kopieren"
msgid "CPU"
msgstr "CPU"
#: src/components/charts/area-chart.tsx:52
#: src/components/routes/system.tsx:375
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "CPU-Auslastung"
@@ -265,29 +273,29 @@ msgstr "Löschen"
msgid "Disk"
msgstr "Festplatte"
#: src/components/routes/system.tsx:426
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "Festplatten-I/O"
#: src/components/charts/disk-chart.tsx:74
#: src/components/routes/system.tsx:415
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "Festplattennutzung"
#: src/components/routes/system.tsx:495
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "Festplattennutzung von {extraFsName}"
#: src/components/routes/system.tsx:386
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Docker-CPU-Auslastung"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Docker-Speichernutzung"
#: src/components/routes/system.tsx:452
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "Docker-Netzwerk-I/O"
@@ -308,7 +316,7 @@ msgstr "E-Mail"
msgid "Email notifications"
msgstr "E-Mail-Benachrichtigungen"
#: src/components/login/login.tsx:36
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "E-Mail-Adresse eingeben, um das Passwort zurückzusetzen"
@@ -355,7 +363,7 @@ msgstr "Testbenachrichtigung konnte nicht gesendet werden"
msgid "Failed to update alert"
msgstr "Warnung konnte nicht aktualisiert werden"
#: src/components/routes/system.tsx:539
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "Filter..."
@@ -374,7 +382,11 @@ msgstr "Passwort vergessen?"
msgid "General"
msgstr "Allgemein"
#: src/components/add-system.tsx:119
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "Host / IP"
@@ -387,7 +399,7 @@ msgid "Invalid email address."
msgstr "Ungültige E-Mail-Adresse."
#. Linux kernel
#: src/components/routes/system.tsx:254
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "Kernel"
@@ -404,7 +416,7 @@ msgstr "Hell"
msgid "Log Out"
msgstr "Abmelden"
#: src/components/login/login.tsx:17
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "Anmelden"
@@ -427,7 +439,7 @@ msgid "Manage display and notification preferences."
msgstr "Anzeige- und Benachrichtigungseinstellungen verwalten."
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:571
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "Max 1 Min"
@@ -435,16 +447,16 @@ msgstr "Max 1 Min"
msgid "Memory"
msgstr "Speicher"
#: src/components/routes/system.tsx:397
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "Speichernutzung"
#: src/components/routes/system.tsx:408
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Speichernutzung der Docker-Container"
#: src/components/add-system.tsx:113
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "Name"
@@ -452,11 +464,11 @@ msgstr "Name"
msgid "Net"
msgstr "Netz"
#: src/components/routes/system.tsx:453
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Netzwerkverkehr der Docker-Container"
#: src/components/routes/system.tsx:438
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "Netzwerkverkehr der öffentlichen Schnittstellen"
@@ -532,7 +544,7 @@ msgstr "Bitte überprüfen Sie die Protokolle für weitere Details."
msgid "Please check your credentials and try again"
msgstr "Bitte überprüfen Sie Ihre Anmeldedaten und versuchen Sie es erneut"
#: src/components/login/login.tsx:34
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "Bitte erstellen Sie ein Administratorkonto"
@@ -548,31 +560,36 @@ msgstr "Bitte melden Sie sich erneut an"
msgid "Please see <0>the documentation</0> for instructions."
msgstr "Bitte sehen Sie sich <0>die Dokumentation</0> für Anweisungen an."
#: src/components/login/login.tsx:38
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "Bitte melden Sie sich bei Ihrem Konto an"
#: src/components/add-system.tsx:125
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "Port"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
msgid "Precise utilization at the recorded time"
msgstr "Genaue Nutzung zum aufgezeichneten Zeitpunkt"
#: src/components/routes/settings/general.tsx:58
msgid "Preferred Language"
msgstr "Bevorzugte Sprache"
#. Use 'Key' if your language requires many more characters
#: src/components/add-system.tsx:131
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "Schlüssel"
#. Context is disk read
#: src/components/charts/area-chart.tsx:56
#: src/components/charts/area-chart.tsx:65
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "Lesen"
#. Context is network bytes received (download)
#: src/components/charts/area-chart.tsx:61
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "Empfangen"
@@ -605,8 +622,8 @@ msgstr "Nach Systemen oder Einstellungen suchen..."
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "Siehe <0>Benachrichtigungseinstellungen</0>, um zu konfigurieren, wie Sie Warnungen erhalten."
#. Context is network bytes sent (upload)
#: src/components/charts/area-chart.tsx:60
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "Gesendet"
@@ -638,11 +655,11 @@ msgstr "SMTP-Einstellungen"
msgid "Status"
msgstr "Status"
#: src/components/routes/system.tsx:467
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "Vom System genutzter Swap-Speicher"
#: src/components/routes/system.tsx:466
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "Swap-Nutzung"
@@ -661,12 +678,12 @@ msgstr "Systeme"
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."
#: src/components/routes/system.tsx:477
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "Temperatur"
#: src/components/routes/system.tsx:478
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "Temperaturen der Systemsensoren"
@@ -694,11 +711,11 @@ msgstr "Melden Sie sich dann im Backend an und setzen Sie Ihr Benutzerkontopassw
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."
#: src/components/routes/system.tsx:507
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "Durchsatz von {extraFsName}"
#: src/components/routes/system.tsx:427
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "Durchsatz des Root-Dateisystems"
@@ -706,8 +723,8 @@ msgstr "Durchsatz des Root-Dateisystems"
msgid "To email(s)"
msgstr "An E-Mail(s)"
#: src/components/routes/system.tsx:350
#: src/components/routes/system.tsx:363
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "Raster umschalten"
@@ -731,10 +748,6 @@ msgstr "Löst aus, wenn die CPU-Auslastung einen Schwellenwert überschreitet"
msgid "Triggers when memory usage exceeds a threshold"
msgstr "Löst aus, wenn die Speichernutzung einen Schwellenwert überschreitet"
#: src/components/routes/system.tsx:398
msgid "Triggers when memory usage exceeds a threshold."
msgstr "Löst aus, wenn die Speichernutzung 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"
@@ -747,18 +760,21 @@ msgstr "Löst aus, wenn die Nutzung einer Festplatte einen Schwellenwert übersc
msgid "Updated in real time. Click on a system to view information."
msgstr "In Echtzeit aktualisiert. Klicken Sie auf ein System, um Informationen anzuzeigen."
#: src/components/routes/system.tsx:253
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "Betriebszeit"
#: src/components/routes/system.tsx:494
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "Nutzung"
#: src/components/routes/system.tsx:415
#: src/components/routes/system.tsx:424
msgid "Usage of root partition"
msgstr "Nutzung der 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"
@@ -777,7 +793,7 @@ msgstr "Benutzername"
msgid "Users"
msgstr "Benutzer"
#: src/components/routes/system.tsx:603
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "Warten auf genügend Datensätze zur Anzeige"
@@ -789,9 +805,9 @@ msgstr "Möchten Sie uns helfen, unsere Übersetzungen noch besser zu machen? Sc
msgid "Webhook / Push notifications"
msgstr "Webhook / Push-Benachrichtigungen"
#. Context is disk write
#: src/components/charts/area-chart.tsx:55
#: src/components/charts/area-chart.tsx:66
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "Schreiben"

File diff suppressed because one or more lines are too long

View File

@@ -13,11 +13,11 @@ msgstr ""
"Language-Team: \n"
"Plural-Forms: \n"
#: src/components/routes/system.tsx:242
#: src/components/routes/system.tsx:250
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# day} other {# days}}"
#: src/components/routes/system.tsx:240
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# hour} other {# hours}}"
@@ -58,8 +58,8 @@ msgstr "Add <0>System</0>"
msgid "Add New System"
msgstr "Add New System"
#: src/components/add-system.tsx:167
#: src/components/add-system.tsx:178
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "Add system"
@@ -107,11 +107,11 @@ msgstr "Auth Providers"
msgid "Automatic copy requires a secure context."
msgstr "Automatic copy requires a secure context."
#: src/components/routes/system.tsx:568
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "Average"
#: src/components/routes/system.tsx:387
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "Average CPU utilization of containers"
@@ -119,16 +119,24 @@ msgstr "Average CPU utilization of containers"
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "Average exceeds <0>{value}{0}</0>"
#: src/components/routes/system.tsx:376
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr "Average power consumption of GPUs"
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "Average system-wide CPU utilization"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr "Average utilization of {0}"
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "Backups"
#: src/components/routes/system.tsx:436
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "Bandwidth"
@@ -177,7 +185,7 @@ msgstr "Check logs for more details."
msgid "Check your notification service"
msgstr "Check your notification service"
#: src/components/add-system.tsx:153
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "Click to copy"
@@ -208,7 +216,7 @@ msgstr "Continue"
msgid "Copied to clipboard"
msgstr "Copied to clipboard"
#: src/components/add-system.tsx:164
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "Copy"
@@ -216,7 +224,7 @@ msgstr "Copy"
msgid "Copy host"
msgstr "Copy host"
#: src/components/add-system.tsx:175
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "Copy Linux command"
@@ -228,8 +236,8 @@ msgstr "Copy text"
msgid "CPU"
msgstr "CPU"
#: src/components/charts/area-chart.tsx:52
#: src/components/routes/system.tsx:375
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "CPU Usage"
@@ -260,29 +268,29 @@ msgstr "Delete"
msgid "Disk"
msgstr "Disk"
#: src/components/routes/system.tsx:426
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "Disk I/O"
#: src/components/charts/disk-chart.tsx:74
#: src/components/routes/system.tsx:415
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "Disk Usage"
#: src/components/routes/system.tsx:495
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "Disk usage of {extraFsName}"
#: src/components/routes/system.tsx:386
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Docker CPU Usage"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Docker Memory Usage"
#: src/components/routes/system.tsx:452
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "Docker Network I/O"
@@ -303,7 +311,7 @@ msgstr "Email"
msgid "Email notifications"
msgstr "Email notifications"
#: src/components/login/login.tsx:36
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "Enter email address to reset password"
@@ -350,7 +358,7 @@ msgstr "Failed to send test notification"
msgid "Failed to update alert"
msgstr "Failed to update alert"
#: src/components/routes/system.tsx:539
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "Filter..."
@@ -369,7 +377,11 @@ msgstr "Forgot password?"
msgid "General"
msgstr "General"
#: src/components/add-system.tsx:119
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr "GPU Power Draw"
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "Host / IP"
@@ -382,7 +394,7 @@ msgid "Invalid email address."
msgstr "Invalid email address."
#. Linux kernel
#: src/components/routes/system.tsx:254
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "Kernel"
@@ -399,7 +411,7 @@ msgstr "Light"
msgid "Log Out"
msgstr "Log Out"
#: src/components/login/login.tsx:17
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "Login"
@@ -422,7 +434,7 @@ msgid "Manage display and notification preferences."
msgstr "Manage display and notification preferences."
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:571
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "Max 1 min"
@@ -430,16 +442,16 @@ msgstr "Max 1 min"
msgid "Memory"
msgstr "Memory"
#: src/components/routes/system.tsx:397
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "Memory Usage"
#: src/components/routes/system.tsx:408
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Memory usage of docker containers"
#: src/components/add-system.tsx:113
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "Name"
@@ -447,11 +459,11 @@ msgstr "Name"
msgid "Net"
msgstr "Net"
#: src/components/routes/system.tsx:453
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Network traffic of docker containers"
#: src/components/routes/system.tsx:438
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "Network traffic of public interfaces"
@@ -527,7 +539,7 @@ msgstr "Please check logs for more details."
msgid "Please check your credentials and try again"
msgstr "Please check your credentials and try again"
#: src/components/login/login.tsx:34
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "Please create an admin account"
@@ -543,31 +555,36 @@ msgstr "Please log in again"
msgid "Please see <0>the documentation</0> for instructions."
msgstr "Please see <0>the documentation</0> for instructions."
#: src/components/login/login.tsx:38
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "Please sign in to your account"
#: src/components/add-system.tsx:125
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "Port"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
msgid "Precise utilization at the recorded time"
msgstr "Precise utilization at the recorded time"
#: src/components/routes/settings/general.tsx:58
msgid "Preferred Language"
msgstr "Preferred Language"
#. Use 'Key' if your language requires many more characters
#: src/components/add-system.tsx:131
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "Public Key"
#. Context is disk read
#: src/components/charts/area-chart.tsx:56
#: src/components/charts/area-chart.tsx:65
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "Read"
#. Context is network bytes received (download)
#: src/components/charts/area-chart.tsx:61
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "Received"
@@ -600,8 +617,8 @@ msgstr "Search for systems or settings..."
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "See <0>notification settings</0> to configure how you receive alerts."
#. Context is network bytes sent (upload)
#: src/components/charts/area-chart.tsx:60
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "Sent"
@@ -633,11 +650,11 @@ msgstr "SMTP settings"
msgid "Status"
msgstr "Status"
#: src/components/routes/system.tsx:467
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "Swap space used by the system"
#: src/components/routes/system.tsx:466
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "Swap Usage"
@@ -656,12 +673,12 @@ msgstr "Systems"
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."
#: src/components/routes/system.tsx:477
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "Temperature"
#: src/components/routes/system.tsx:478
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "Temperatures of system sensors"
@@ -689,11 +706,11 @@ msgstr "Then log into the backend and reset your user account password in the us
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."
#: src/components/routes/system.tsx:507
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "Throughput of {extraFsName}"
#: src/components/routes/system.tsx:427
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "Throughput of root filesystem"
@@ -701,8 +718,8 @@ msgstr "Throughput of root filesystem"
msgid "To email(s)"
msgstr "To email(s)"
#: src/components/routes/system.tsx:350
#: src/components/routes/system.tsx:363
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "Toggle grid"
@@ -726,10 +743,6 @@ msgstr "Triggers when CPU usage exceeds a threshold"
msgid "Triggers when memory usage exceeds a threshold"
msgstr "Triggers when memory usage exceeds a threshold"
#: src/components/routes/system.tsx:398
msgid "Triggers when memory usage exceeds a threshold."
msgstr "Triggers when memory usage exceeds a threshold."
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "Triggers when status switches between up and down"
@@ -742,18 +755,21 @@ msgstr "Triggers when usage of any disk exceeds a threshold"
msgid "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:253
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "Uptime"
#: src/components/routes/system.tsx:494
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "Usage"
#: src/components/routes/system.tsx:415
#: src/components/routes/system.tsx:424
msgid "Usage of root partition"
msgstr "Usage of 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"
@@ -772,7 +788,7 @@ msgstr "Username"
msgid "Users"
msgstr "Users"
#: src/components/routes/system.tsx:603
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "Waiting for enough records to display"
@@ -784,9 +800,9 @@ msgstr "Want to help us make our translations even better? Check out <0>Crowdin<
msgid "Webhook / Push notifications"
msgstr "Webhook / Push notifications"
#. Context is disk write
#: src/components/charts/area-chart.tsx:55
#: src/components/charts/area-chart.tsx:66
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "Write"

File diff suppressed because one or more lines are too long

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: es\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-02 02:13\n"
"PO-Revision-Date: 2024-11-04 20:46\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,11 +18,11 @@ msgstr ""
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
"X-Crowdin-File-ID: 16\n"
#: src/components/routes/system.tsx:242
#: src/components/routes/system.tsx:250
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# día} other {# días}}"
#: src/components/routes/system.tsx:240
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# hora} other {# horas}}"
@@ -63,8 +63,8 @@ msgstr "Agregar <0>Sistema</0>"
msgid "Add New System"
msgstr "Agregar Nuevo Sistema"
#: src/components/add-system.tsx:167
#: src/components/add-system.tsx:178
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "Agregar sistema"
@@ -112,11 +112,11 @@ msgstr "Proveedores de Autenticación"
msgid "Automatic copy requires a secure context."
msgstr "La copia automática requiere un contexto seguro."
#: src/components/routes/system.tsx:568
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "Promedio"
#: src/components/routes/system.tsx:387
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "Utilización promedio de CPU de los contenedores"
@@ -124,16 +124,24 @@ msgstr "Utilización promedio de CPU de los contenedores"
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "El promedio excede <0>{value}{0}</0>"
#: src/components/routes/system.tsx:376
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "Utilización promedio de CPU del sistema"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "Copias de Seguridad"
#: src/components/routes/system.tsx:436
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "Ancho de banda"
@@ -182,7 +190,7 @@ msgstr "Revise los registros para más detalles."
msgid "Check your notification service"
msgstr "Verifique su servicio de notificaciones"
#: src/components/add-system.tsx:153
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "Haga clic para copiar"
@@ -213,7 +221,7 @@ msgstr "Continuar"
msgid "Copied to clipboard"
msgstr "Copiado al portapapeles"
#: src/components/add-system.tsx:164
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "Copiar"
@@ -221,7 +229,7 @@ msgstr "Copiar"
msgid "Copy host"
msgstr "Copiar host"
#: src/components/add-system.tsx:175
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "Copiar comando de Linux"
@@ -233,8 +241,8 @@ msgstr "Copiar texto"
msgid "CPU"
msgstr "CPU"
#: src/components/charts/area-chart.tsx:52
#: src/components/routes/system.tsx:375
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "Uso de CPU"
@@ -265,29 +273,29 @@ msgstr "Eliminar"
msgid "Disk"
msgstr "Disco"
#: src/components/routes/system.tsx:426
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "E/S de Disco"
#: src/components/charts/disk-chart.tsx:74
#: src/components/routes/system.tsx:415
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "Uso de Disco"
#: src/components/routes/system.tsx:495
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "Uso de disco de {extraFsName}"
#: src/components/routes/system.tsx:386
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Uso de CPU de Docker"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Uso de Memoria de Docker"
#: src/components/routes/system.tsx:452
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "E/S de Red de Docker"
@@ -308,7 +316,7 @@ msgstr "Correo electrónico"
msgid "Email notifications"
msgstr "Notificaciones por correo"
#: src/components/login/login.tsx:36
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "Ingrese la dirección de correo electrónico para restablecer la contraseña"
@@ -355,7 +363,7 @@ msgstr "Error al enviar la notificación de prueba"
msgid "Failed to update alert"
msgstr "Error al actualizar la alerta"
#: src/components/routes/system.tsx:539
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "Filtrar..."
@@ -374,7 +382,11 @@ msgstr "¿Olvidó su contraseña?"
msgid "General"
msgstr "General"
#: src/components/add-system.tsx:119
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "Host / IP"
@@ -387,7 +399,7 @@ msgid "Invalid email address."
msgstr "Dirección de correo electrónico no válida."
#. Linux kernel
#: src/components/routes/system.tsx:254
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "Kernel"
@@ -404,7 +416,7 @@ msgstr "Claro"
msgid "Log Out"
msgstr "Cerrar Sesión"
#: src/components/login/login.tsx:17
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "Iniciar sesión"
@@ -427,7 +439,7 @@ msgid "Manage display and notification preferences."
msgstr "Administrar preferencias de visualización y notificaciones."
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:571
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "Máx 1 min"
@@ -435,16 +447,16 @@ msgstr "Máx 1 min"
msgid "Memory"
msgstr "Memoria"
#: src/components/routes/system.tsx:397
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "Uso de Memoria"
#: src/components/routes/system.tsx:408
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Uso de memoria de los contenedores de Docker"
#: src/components/add-system.tsx:113
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "Nombre"
@@ -452,11 +464,11 @@ msgstr "Nombre"
msgid "Net"
msgstr "Red"
#: src/components/routes/system.tsx:453
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Tráfico de red de los contenedores de Docker"
#: src/components/routes/system.tsx:438
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "Tráfico de red de interfaces públicas"
@@ -532,7 +544,7 @@ msgstr "Por favor, revise los registros para más detalles."
msgid "Please check your credentials and try again"
msgstr "Por favor, verifique sus credenciales e intente de nuevo"
#: src/components/login/login.tsx:34
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "Por favor, cree una cuenta de administrador"
@@ -548,31 +560,36 @@ msgstr "Por favor, inicie sesión de nuevo"
msgid "Please see <0>the documentation</0> for instructions."
msgstr "Por favor, consulte <0>la documentación</0> para obtener instrucciones."
#: src/components/login/login.tsx:38
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "Por favor, inicie sesión en su cuenta"
#: src/components/add-system.tsx:125
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "Puerto"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
msgid "Precise utilization at the recorded time"
msgstr "Utilización precisa en el momento registrado"
#: src/components/routes/settings/general.tsx:58
msgid "Preferred Language"
msgstr "Idioma Preferido"
#. Use 'Key' if your language requires many more characters
#: src/components/add-system.tsx:131
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "Clave Pública"
#. Context is disk read
#: src/components/charts/area-chart.tsx:56
#: src/components/charts/area-chart.tsx:65
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "Lectura"
#. Context is network bytes received (download)
#: src/components/charts/area-chart.tsx:61
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "Recibido"
@@ -605,8 +622,8 @@ msgstr "Buscar sistemas o configuraciones..."
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "Consulte <0>configuración de notificaciones</0> para configurar cómo recibe alertas."
#. Context is network bytes sent (upload)
#: src/components/charts/area-chart.tsx:60
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "Enviado"
@@ -638,11 +655,11 @@ msgstr "Configuración SMTP"
msgid "Status"
msgstr "Estado"
#: src/components/routes/system.tsx:467
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "Espacio de swap utilizado por el sistema"
#: src/components/routes/system.tsx:466
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "Uso de Swap"
@@ -661,12 +678,12 @@ msgstr "Sistemas"
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."
#: src/components/routes/system.tsx:477
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "Temperatura"
#: src/components/routes/system.tsx:478
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "Temperaturas de los sensores del sistema"
@@ -694,11 +711,11 @@ msgstr "Luego inicie sesión en el backend y restablezca la contraseña de su cu
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."
#: src/components/routes/system.tsx:507
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "Rendimiento de {extraFsName}"
#: src/components/routes/system.tsx:427
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "Rendimiento del sistema de archivos raíz"
@@ -706,8 +723,8 @@ msgstr "Rendimiento del sistema de archivos raíz"
msgid "To email(s)"
msgstr "A correo(s)"
#: src/components/routes/system.tsx:350
#: src/components/routes/system.tsx:363
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "Alternar cuadrícula"
@@ -731,10 +748,6 @@ msgstr "Se activa cuando el uso de CPU supera un umbral"
msgid "Triggers when memory usage exceeds a threshold"
msgstr "Se activa cuando el uso de memoria supera un umbral"
#: src/components/routes/system.tsx:398
msgid "Triggers when memory usage exceeds a threshold."
msgstr "Se activa cuando el uso de memoria supera un umbral."
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "Se activa cuando el estado cambia entre activo e inactivo"
@@ -747,18 +760,21 @@ msgstr "Se activa cuando el uso de cualquier disco supera un umbral"
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."
#: src/components/routes/system.tsx:253
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "Tiempo de actividad"
#: src/components/routes/system.tsx:494
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "Uso"
#: src/components/routes/system.tsx:415
#: src/components/routes/system.tsx:424
msgid "Usage of root partition"
msgstr "Uso de la partición raíz"
#: src/components/charts/area-chart.tsx:73
#: src/components/charts/mem-chart.tsx:65
#: src/components/charts/swap-chart.tsx:56
msgid "Used"
@@ -777,7 +793,7 @@ msgstr "Nombre de usuario"
msgid "Users"
msgstr "Usuarios"
#: src/components/routes/system.tsx:603
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "Esperando suficientes registros para mostrar"
@@ -789,9 +805,9 @@ msgstr "¿Quieres ayudarnos a mejorar nuestras traducciones? Consulta <0>Crowdin
msgid "Webhook / Push notifications"
msgstr "Notificaciones Webhook / Push"
#. Context is disk write
#: src/components/charts/area-chart.tsx:55
#: src/components/charts/area-chart.tsx:66
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "Escritura"

File diff suppressed because one or more lines are too long

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: fr\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-02 02:13\n"
"PO-Revision-Date: 2024-11-06 20:36\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -18,11 +18,11 @@ msgstr ""
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
"X-Crowdin-File-ID: 16\n"
#: src/components/routes/system.tsx:242
#: src/components/routes/system.tsx:250
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# jour} other {# jours}}"
#: src/components/routes/system.tsx:240
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# heure} other {# heures}}"
@@ -63,8 +63,8 @@ msgstr "Ajouter <0>Système</0>"
msgid "Add New System"
msgstr "Ajouter un nouveau système"
#: src/components/add-system.tsx:167
#: src/components/add-system.tsx:178
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "Ajouter un système"
@@ -112,11 +112,11 @@ msgstr "Fournisseurs d'authentification"
msgid "Automatic copy requires a secure context."
msgstr "La copie automatique nécessite un contexte sécurisé."
#: src/components/routes/system.tsx:568
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "Moyenne"
#: src/components/routes/system.tsx:387
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "Utilisation moyenne du CPU des conteneurs"
@@ -124,16 +124,24 @@ msgstr "Utilisation moyenne du CPU des conteneurs"
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "La moyenne dépasse <0>{value}{0}</0>"
#: src/components/routes/system.tsx:376
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "Utilisation moyenne du CPU à l'échelle du système"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "Sauvegardes"
#: src/components/routes/system.tsx:436
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "Bande passante"
@@ -182,7 +190,7 @@ msgstr "Vérifiez les journaux pour plus de détails."
msgid "Check your notification service"
msgstr "Vérifiez votre service de notification"
#: src/components/add-system.tsx:153
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "Cliquez pour copier"
@@ -213,7 +221,7 @@ msgstr "Continuer"
msgid "Copied to clipboard"
msgstr "Copié dans le presse-papiers"
#: src/components/add-system.tsx:164
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "Copier"
@@ -221,7 +229,7 @@ msgstr "Copier"
msgid "Copy host"
msgstr "Copier l'hôte"
#: src/components/add-system.tsx:175
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "Copier la commande Linux"
@@ -233,8 +241,8 @@ msgstr "Copier le texte"
msgid "CPU"
msgstr "CPU"
#: src/components/charts/area-chart.tsx:52
#: src/components/routes/system.tsx:375
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "Utilisation du CPU"
@@ -265,29 +273,29 @@ msgstr "Supprimer"
msgid "Disk"
msgstr "Disque"
#: src/components/routes/system.tsx:426
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "Entrée/Sortie disque"
#: src/components/charts/disk-chart.tsx:74
#: src/components/routes/system.tsx:415
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "Utilisation du disque"
#: src/components/routes/system.tsx:495
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "Utilisation du disque de {extraFsName}"
#: src/components/routes/system.tsx:386
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Utilisation du CPU Docker"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Utilisation de la mémoire Docker"
#: src/components/routes/system.tsx:452
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "Entrée/Sortie réseau Docker"
@@ -308,7 +316,7 @@ msgstr "Email"
msgid "Email notifications"
msgstr "Notifications par email"
#: src/components/login/login.tsx:36
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "Entrez l'adresse email pour réinitialiser le mot de passe"
@@ -324,7 +332,7 @@ msgstr "Erreur"
#: src/components/routes/home.tsx:81
msgid "Exceeds {0}{1} in last {2, plural, one {# minute} other {# minutes}}"
msgstr "Dépasse {0}{1} dans la dernière {2, plural, one {# minute} other {# minutes}}"
msgstr "Dépasse {0}{1} dans {2, plural, one {la dernière # minute} other {les dernières # minutes}}"
#: 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."
@@ -355,7 +363,7 @@ msgstr "Échec de l'envoi de la notification de test"
msgid "Failed to update alert"
msgstr "Échec de la mise à jour de l'alerte"
#: src/components/routes/system.tsx:539
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "Filtrer..."
@@ -374,7 +382,11 @@ msgstr "Mot de passe oublié ?"
msgid "General"
msgstr "Général"
#: src/components/add-system.tsx:119
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "Hôte / IP"
@@ -387,7 +399,7 @@ msgid "Invalid email address."
msgstr "Adresse email invalide."
#. Linux kernel
#: src/components/routes/system.tsx:254
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "Noyau"
@@ -404,7 +416,7 @@ msgstr "Clair"
msgid "Log Out"
msgstr "Déconnexion"
#: src/components/login/login.tsx:17
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "Connexion"
@@ -427,7 +439,7 @@ msgid "Manage display and notification preferences."
msgstr "Gérer les préférences d'affichage et de notification."
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:571
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "Max 1 min"
@@ -435,16 +447,16 @@ msgstr "Max 1 min"
msgid "Memory"
msgstr "Mémoire"
#: src/components/routes/system.tsx:397
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "Utilisation de la mémoire"
#: src/components/routes/system.tsx:408
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Utilisation de la mémoire des conteneurs Docker"
#: src/components/add-system.tsx:113
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "Nom"
@@ -452,11 +464,11 @@ msgstr "Nom"
msgid "Net"
msgstr "Net"
#: src/components/routes/system.tsx:453
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Trafic réseau des conteneurs Docker"
#: src/components/routes/system.tsx:438
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "Trafic réseau des interfaces publiques"
@@ -532,7 +544,7 @@ msgstr "Veuillez vérifier les journaux pour plus de détails."
msgid "Please check your credentials and try again"
msgstr "Veuillez vérifier vos identifiants et réessayer"
#: src/components/login/login.tsx:34
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "Veuillez créer un compte administrateur"
@@ -548,31 +560,36 @@ msgstr "Veuillez vous reconnecter"
msgid "Please see <0>the documentation</0> for instructions."
msgstr "Veuillez consulter <0>la documentation</0> pour les instructions."
#: src/components/login/login.tsx:38
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "Veuillez vous connecter à votre compte"
#: src/components/add-system.tsx:125
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "Port"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
msgid "Precise utilization at the recorded time"
msgstr "Utilisation précise au moment enregistré"
#: src/components/routes/settings/general.tsx:58
msgid "Preferred Language"
msgstr "Langue préférée"
#. Use 'Key' if your language requires many more characters
#: src/components/add-system.tsx:131
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "Clé publique"
#. Context is disk read
#: src/components/charts/area-chart.tsx:56
#: src/components/charts/area-chart.tsx:65
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "Lecture"
#. Context is network bytes received (download)
#: src/components/charts/area-chart.tsx:61
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "Reçu"
@@ -605,8 +622,8 @@ msgstr "Rechercher des systèmes ou des paramètres..."
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "Voir les <0>paramètres de notification</0> pour configurer comment vous recevez les alertes."
#. Context is network bytes sent (upload)
#: src/components/charts/area-chart.tsx:60
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "Envoyé"
@@ -638,13 +655,13 @@ msgstr "Paramètres SMTP"
msgid "Status"
msgstr "Statut"
#: src/components/routes/system.tsx:467
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "Espace d'échange utilisé par le système"
msgstr "Espace Swap utilisé par le système"
#: src/components/routes/system.tsx:466
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "Utilisation de l'échange"
msgstr "Utilisation du swap"
#. System theme
#: src/components/mode-toggle.tsx:26
@@ -661,12 +678,12 @@ msgstr "Systèmes"
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."
#: src/components/routes/system.tsx:477
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "Température"
#: src/components/routes/system.tsx:478
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "Températures des capteurs du système"
@@ -694,11 +711,11 @@ msgstr "Ensuite, connectez-vous au backend et réinitialisez le mot de passe de
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."
#: src/components/routes/system.tsx:507
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "Débit de {extraFsName}"
#: src/components/routes/system.tsx:427
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "Débit du système de fichiers racine"
@@ -706,14 +723,14 @@ msgstr "Débit du système de fichiers racine"
msgid "To email(s)"
msgstr "Aux email(s)"
#: src/components/routes/system.tsx:350
#: src/components/routes/system.tsx:363
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "Basculer la grille"
#: src/components/mode-toggle.tsx:33
msgid "Toggle theme"
msgstr "Basculer le thème"
msgstr "Changer le thème"
#: src/lib/utils.ts:317
msgid "Triggers when any sensor exceeds a threshold"
@@ -721,7 +738,7 @@ msgstr "Déclenchement lorsque tout capteur dépasse un seuil"
#: src/lib/utils.ts:310
msgid "Triggers when combined up/down exceeds a threshold"
msgstr "Déclenchement lorsque la montée/descente combinée dépasse un seuil"
msgstr "Déclenchement lorsque le montant/descendant combinée dépasse un seuil"
#: src/lib/utils.ts:292
msgid "Triggers when CPU usage exceeds a threshold"
@@ -731,13 +748,9 @@ msgstr "Déclenchement lorsque l'utilisation du CPU dépasse un seuil"
msgid "Triggers when memory usage exceeds a threshold"
msgstr "Déclenchement lorsque l'utilisation de la mémoire dépasse un seuil"
#: src/components/routes/system.tsx:398
msgid "Triggers when memory usage exceeds a threshold."
msgstr "Déclenchement lorsque l'utilisation de la mémoire dépasse un seuil."
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "Déclenchement lorsque le statut passe de haut en bas"
msgstr "Déclenchement lorsque le statut passe d'opérationnel à indisponible"
#: src/lib/utils.ts:304
msgid "Triggers when usage of any disk exceeds a threshold"
@@ -747,18 +760,21 @@ msgstr "Déclenchement lorsque l'utilisation de tout disque dépasse un seuil"
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."
#: src/components/routes/system.tsx:253
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "Temps de fonctionnement"
#: src/components/routes/system.tsx:494
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "Utilisation"
#: src/components/routes/system.tsx:415
#: src/components/routes/system.tsx:424
msgid "Usage of root partition"
msgstr "Utilisation de la partition racine"
#: src/components/charts/area-chart.tsx:73
#: src/components/charts/mem-chart.tsx:65
#: src/components/charts/swap-chart.tsx:56
msgid "Used"
@@ -777,7 +793,7 @@ msgstr "Nom d'utilisateur"
msgid "Users"
msgstr "Utilisateurs"
#: src/components/routes/system.tsx:603
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "En attente de suffisamment d'enregistrements à afficher"
@@ -789,9 +805,9 @@ msgstr "Vous voulez nous aider à améliorer nos traductions ? Consultez <0>Crow
msgid "Webhook / Push notifications"
msgstr "Notifications Webhook / Push"
#. Context is disk write
#: src/components/charts/area-chart.tsx:55
#: src/components/charts/area-chart.tsx:66
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "Écriture"

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,824 @@
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: hr\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-05 19:48\n"
"Last-Translator: \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"
"X-Crowdin-Project: beszel\n"
"X-Crowdin-Project-ID: 733311\n"
"X-Crowdin-Language: hr\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
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# dan} other {# dani}}"
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# sat} other {# sati}}"
#: src/lib/utils.ts:139
msgid "1 hour"
msgstr "1 sat"
#: src/lib/utils.ts:162
msgid "1 week"
msgstr "1 tjedan"
#: src/lib/utils.ts:147
msgid "12 hours"
msgstr "12 sati"
#: src/lib/utils.ts:155
msgid "24 hours"
msgstr "24 sati"
#: src/lib/utils.ts:170
msgid "30 days"
msgstr "30 dana"
#. Table column
#: src/components/systems-table/systems-table.tsx:207
msgid "Actions"
msgstr "Akcije"
#: src/components/routes/home.tsx:62
msgid "Active Alerts"
msgstr "Aktivna upozorenja"
#: src/components/add-system.tsx:74
msgid "Add <0>System</0>"
msgstr "Dodaj <0>Sistem</0>"
#: src/components/add-system.tsx:83
msgid "Add New System"
msgstr "Dodaj Novi Sistem"
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "Dodaj sistem"
#: src/components/routes/settings/notifications.tsx:156
msgid "Add URL"
msgstr "Dodaj URL"
#: src/components/routes/settings/general.tsx:81
msgid "Adjust display options for charts."
msgstr "Podesite opcije 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
#: src/components/command-palette.tsx:204
msgid "Admin"
msgstr "Admin"
#: src/components/systems-table/systems-table.tsx:186
msgid "Agent"
msgstr "Agent"
#: src/components/alerts/alert-button.tsx:32
#: src/components/alerts/alert-button.tsx:68
msgid "Alerts"
msgstr "Upozorenja"
#: src/components/alerts/alert-button.tsx:88
#: src/components/systems-table/systems-table.tsx:317
msgid "All Systems"
msgstr "Svi Sistemi"
#: src/components/systems-table/systems-table.tsx:261
msgid "Are you sure you want to delete {name}?"
msgstr "Jeste li sigurni da želite izbrisati {name}?"
#: src/components/command-palette.tsx:186
#: src/components/navbar.tsx:102
msgid "Auth Providers"
msgstr "Davatelji Autentifikacije"
#: src/components/copy-to-clipboard.tsx:16
msgid "Automatic copy requires a secure context."
msgstr "Automatsko kopiranje zahtijeva siguran kontekst."
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "Prosjek"
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "Prosječna iskorištenost procesora u spremnicima"
#: src/components/alerts/alerts-system.tsx:204
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "Prosjek premašuje <0>{value}{0}</0>"
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "Prosječna iskorištenost procesora na cijelom sustavu"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "Sigurnosne kopije"
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "Propusnost"
#: src/components/login/auth-form.tsx:313
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
msgstr "Beszel podržava OpenID Connect i mnoge druge OAuth2 davatalje autentifikacije."
#: src/components/routes/settings/notifications.tsx:127
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."
#: src/components/add-system.tsx:88
msgid "Binary"
msgstr "Binarni"
#: src/components/charts/mem-chart.tsx:89
msgid "Cache / Buffers"
msgstr "Predmemorija / Međuspremnici"
#: src/components/systems-table/systems-table.tsx:272
msgid "Cancel"
msgstr "Otkaži"
#: src/components/routes/settings/config-yaml.tsx:68
msgid "Caution - potential data loss"
msgstr "Oprez - mogući gubitak podataka"
#: src/components/routes/settings/general.tsx:36
msgid "Change general application options."
msgstr "Promijenite opće opcije aplikacije."
#: src/components/routes/settings/general.tsx:78
msgid "Chart options"
msgstr "Opcije grafikona"
#: src/components/login/forgot-pass-form.tsx:34
msgid "Check {email} for a reset link."
msgstr "Provjerite {email} za vezu za resetiranje."
#: src/components/routes/settings/layout.tsx:40
msgid "Check logs for more details."
msgstr "Provjerite logove za više detalja."
#: src/components/routes/settings/notifications.tsx:183
msgid "Check your notification service"
msgstr "Provjerite Vaš servis notifikacija"
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "Pritisnite za kopiranje"
#. Context: table columns
#: src/components/systems-table/systems-table.tsx:328
msgid "Columns"
msgstr "Stupci"
#: src/components/login/forgot-pass-form.tsx:83
#: src/components/login/forgot-pass-form.tsx:89
msgid "Command line instructions"
msgstr "Upute za naredbeni redak"
#: src/components/routes/settings/notifications.tsx:77
msgid "Configure how you receive alert notifications."
msgstr "Konfigurirajte način primanja obavijesti upozorenja."
#: src/components/login/auth-form.tsx:189
#: src/components/login/auth-form.tsx:194
msgid "Confirm password"
msgstr "Potvrdite lozinku"
#: src/components/systems-table/systems-table.tsx:278
msgid "Continue"
msgstr "Nastavite"
#: src/lib/utils.ts:25
msgid "Copied to clipboard"
msgstr "Kopirano u međuspremnik"
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "Kopiraj"
#: src/components/systems-table/systems-table.tsx:247
msgid "Copy host"
msgstr "Kopiraj hosta"
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "Kopiraj Linux komandu"
#: src/components/copy-to-clipboard.tsx:13
msgid "Copy text"
msgstr "Kopiraj tekst"
#: src/components/systems-table/systems-table.tsx:152
msgid "CPU"
msgstr "Procesor"
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "Iskorištenost procesora"
#: src/components/login/auth-form.tsx:215
msgid "Create account"
msgstr "Napravite račun"
#. Dark theme
#: src/components/mode-toggle.tsx:21
msgid "Dark"
msgstr "Tamno"
#: 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 "Zadano vremensko razdoblje"
#: src/components/systems-table/systems-table.tsx:253
msgid "Delete"
msgstr "Izbriši"
#: src/components/systems-table/systems-table.tsx:166
msgid "Disk"
msgstr "Disk"
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "Disk I/O"
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "Iskorištenost Diska"
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "Iskorištenost diska od {extraFsName}"
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Iskorištenost Docker Procesora"
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Iskorištenost Docker Memorije"
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "Docker Mrežni I/O"
#: src/components/command-palette.tsx:125
msgid "Documentation"
msgstr "Dokumentacija"
#: src/components/login/auth-form.tsx:158
msgid "email"
msgstr "email"
#: src/components/login/auth-form.tsx:152
#: src/components/login/forgot-pass-form.tsx:53
msgid "Email"
msgstr "Email"
#: src/components/routes/settings/notifications.tsx:91
msgid "Email notifications"
msgstr "Email notifikacije"
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "Unesite email adresu za resetiranje lozinke"
#: src/components/routes/settings/notifications.tsx:111
msgid "Enter email address..."
msgstr "Unesite email adresu..."
#: src/components/login/auth-form.tsx:256
#: src/components/routes/settings/config-yaml.tsx:28
#: src/components/routes/settings/notifications.tsx:187
msgid "Error"
msgstr "Greška"
#: src/components/routes/home.tsx:81
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}}"
#: 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 "Postojeći sistemi koji nisu definirani u <0>config.yml</0> će biti izbrisani. Molimo Vas napravite redovite sigurnosne kopije."
#: src/components/routes/settings/config-yaml.tsx:93
msgid "Export configuration"
msgstr "Izvoz konfiguracije"
#: src/components/routes/settings/config-yaml.tsx:48
msgid "Export your current systems configuration."
msgstr "Izvoz trenutne sistemske konfiguracije."
#: src/lib/utils.ts:38
msgid "Failed to authenticate"
msgstr "Provjera autentičnosti nije uspjela"
#: src/components/routes/settings/layout.tsx:39
#: src/components/routes/settings/notifications.tsx:62
msgid "Failed to save settings"
msgstr "Neuspješno snimanje postavki"
#: src/components/routes/settings/notifications.tsx:188
msgid "Failed to send test notification"
msgstr "Neuspješno slanje testne notifikacije"
#: src/components/alerts/alerts-system.tsx:27
msgid "Failed to update alert"
msgstr "Ažuriranje upozorenja nije uspjelo"
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "Filter..."
#: src/components/alerts/alerts-system.tsx:225
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Za <0>{min}</0> {min, plural, one {minutu} other {minute}}"
#: src/components/login/auth-form.tsx:337
msgid "Forgot password?"
msgstr "Zaboravljena lozinka?"
#. Context: General settings
#: src/components/routes/settings/general.tsx:33
#: src/components/routes/settings/layout.tsx:51
msgid "General"
msgstr "Općenito"
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
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 "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
msgid "Invalid email address."
msgstr "Nevažeća adresa e-pošte."
#. Linux kernel
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "Kernel"
#: src/components/routes/settings/general.tsx:45
msgid "Language"
msgstr "Jezik"
#. Light theme
#: src/components/mode-toggle.tsx:16
msgid "Light"
msgstr "Svijetlo"
#: src/components/navbar.tsx:113
msgid "Log Out"
msgstr "Odjava"
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "Prijava"
#: src/components/login/auth-form.tsx:42
#: src/components/login/forgot-pass-form.tsx:15
msgid "Login attempt failed"
msgstr "Pokušaj prijave nije uspio"
#: src/components/command-palette.tsx:157
#: src/components/navbar.tsx:86
msgid "Logs"
msgstr "Logovi"
#: src/components/routes/settings/notifications.tsx:80
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."
#: src/components/routes/settings/layout.tsx:85
msgid "Manage display and notification preferences."
msgstr "Upravljajte postavkama prikaza i obavijesti."
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "Maksimalno 1 minuta"
#: src/components/systems-table/systems-table.tsx:159
msgid "Memory"
msgstr "Memorija"
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "Upotreba memorije"
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Upotreba memorije Docker spremnika"
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "Ime"
#: src/components/systems-table/systems-table.tsx:173
msgid "Net"
msgstr "Mreža"
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Mrežni promet Docker spremnika"
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "Mrežni promet javnih sučelja"
#: src/components/command-palette.tsx:50
msgid "No results found."
msgstr "Nema rezultata."
#: src/components/systems-table/systems-table.tsx:400
msgid "No systems found."
msgstr "Nije pronađen nijedan sustav."
#: src/components/command-palette.tsx:111
#: src/components/routes/settings/layout.tsx:56
#: src/components/routes/settings/notifications.tsx:74
msgid "Notifications"
msgstr "Obavijesti"
#: src/components/login/auth-form.tsx:308
msgid "OAuth 2 / OIDC support"
msgstr "Podrška 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 "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:219
msgid "Open menu"
msgstr "Otvori menu"
#: src/components/login/auth-form.tsx:227
msgid "Or continue with"
msgstr "Ili nastavi sa"
#: src/components/alerts/alert-button.tsx:109
msgid "Overwrite existing alerts"
msgstr "Prebrišite postojeća upozorenja"
#: src/components/command-palette.tsx:85
msgid "Page"
msgstr "Stranica"
#: src/components/command-palette.tsx:72
msgid "Pages / Settings"
msgstr "Stranice / Postavke"
#: src/components/login/auth-form.tsx:171
#: src/components/login/auth-form.tsx:176
msgid "Password"
msgstr "Lozinka"
#: src/components/login/auth-form.tsx:17
msgid "Password must be at least 10 characters."
msgstr "Lozinka mora imati 10 znakova."
#: src/components/login/forgot-pass-form.tsx:33
msgid "Password reset request received"
msgstr "Zahtjev za ponovno postavljanje lozinke primljen"
#: src/components/systems-table/systems-table.tsx:241
msgid "Pause"
msgstr "Pauza"
#: src/components/routes/settings/notifications.tsx:95
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."
#: src/components/alerts/alerts-system.tsx:28
msgid "Please check logs for more details."
msgstr "Za više detalja provjerite logove."
#: src/components/login/auth-form.tsx:43
#: src/components/login/forgot-pass-form.tsx:16
msgid "Please check your credentials and try again"
msgstr "Provjerite svoje podatke i pokušajte ponovno"
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "Molimo kreirajte administratorski račun"
#: src/components/login/auth-form.tsx:257
msgid "Please enable pop-ups for this site"
msgstr "Omogućite skočne prozore za ovu stranicu"
#: src/lib/utils.ts:39
msgid "Please log in again"
msgstr "Molimo prijavite se ponovno"
#: src/components/login/auth-form.tsx:316
msgid "Please see <0>the documentation</0> for instructions."
msgstr "Molimo pogledajte <0>dokumentaciju</0> za instrukcije."
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "Molimo prijavite se u svoj račun"
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "Port"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
msgid "Precise utilization at the recorded time"
msgstr "Precizno iskorištenje u zabilježenom vremenu"
#: src/components/routes/settings/general.tsx:58
msgid "Preferred Language"
msgstr "Preferirani jezik"
#. Use 'Key' if your language requires many more characters
#: src/components/add-system.tsx:124
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 "Pročitaj"
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "Primljeno"
#: src/components/login/forgot-pass-form.tsx:76
msgid "Reset Password"
msgstr "Resetiraj Lozinku"
#: src/components/systems-table/systems-table.tsx:236
msgid "Resume"
msgstr "Nastavi"
#: src/components/routes/settings/notifications.tsx:117
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."
#: src/components/routes/settings/general.tsx:106
#: src/components/routes/settings/notifications.tsx:167
msgid "Save Settings"
msgstr "Spremi Postavke"
#: src/components/navbar.tsx:142
msgid "Search"
msgstr "Pretraži"
#: src/components/command-palette.tsx:47
msgid "Search for systems or settings..."
msgstr "Pretraži za sisteme ili postavke..."
#: src/components/alerts/alert-button.tsx:71
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "Pogledajte <0>postavke obavijesti</0> da biste konfigurirali način primanja upozorenja."
#. 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 "Postavlja zadani vremenski raspon za grafikone kada se sustav gleda."
#: 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 "Postavke"
#: src/components/routes/settings/layout.tsx:33
msgid "Settings saved"
msgstr "Postavke spremljene"
#: src/components/login/auth-form.tsx:215
msgid "Sign in"
msgstr "Prijava"
#: src/components/command-palette.tsx:201
msgid "SMTP settings"
msgstr "SMTP postavke"
#: src/lib/utils.ts:282
msgid "Status"
msgstr "Status"
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "Swap prostor uzet od strane sistema"
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "Swap Iskorištenost"
#. System theme
#: src/components/mode-toggle.tsx:26
#: src/components/systems-table/systems-table.tsx:110
#: src/components/systems-table/systems-table.tsx:121
msgid "System"
msgstr "Sistem"
#: 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 "Sistemima se može upravljati u <0>config.yml</0> datoteci unutar data direktorija."
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "Temperatura"
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "Temperature sistemskih senzora"
#: src/components/routes/settings/notifications.tsx:211
msgid "Test <0>URL</0>"
msgstr "Testni <0>URL</0>"
#: src/components/routes/settings/notifications.tsx:182
msgid "Test notification sent"
msgstr "Testna obavijest poslana"
#: src/components/add-system.tsx:104
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."
#: src/components/add-system.tsx:95
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."
#: 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 "Zatim se prijavite u backend i resetirajte lozinku korisničkog računa u tablici korisnika."
#: src/components/systems-table/systems-table.tsx:264
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."
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "Protok {extraFsName}"
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "Protok root datotečnog sustava"
#: src/components/routes/settings/notifications.tsx:106
msgid "To email(s)"
msgstr "Primaoci e-pošte"
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "Uključi/isključi rešetku"
#: src/components/mode-toggle.tsx:33
msgid "Toggle theme"
msgstr "Uključi/isključi temu"
#: src/lib/utils.ts:317
msgid "Triggers when any sensor exceeds a threshold"
msgstr "Pokreće se kada bilo koji senzor prijeđe prag"
#: src/lib/utils.ts:310
msgid "Triggers when combined up/down exceeds a threshold"
msgstr "Pokreće se kada kombinacija gore/dolje premaši prag"
#: src/lib/utils.ts:292
msgid "Triggers when CPU usage exceeds a threshold"
msgstr "Pokreće se kada iskorištenost procesora premaši prag"
#: src/lib/utils.ts:298
msgid "Triggers when memory usage exceeds a threshold"
msgstr "Pokreće se kada iskorištenost memorije premaši prag"
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "Pokreće se kada se status sistema promijeni"
#: src/lib/utils.ts:304
msgid "Triggers when usage of any disk exceeds a threshold"
msgstr "Pokreće se kada iskorištenost bilo kojeg diska premaši prag"
#: src/components/systems-table/systems-table.tsx:320
msgid "Updated in real time. Click on a system to view information."
msgstr "Ažurirano odmah. Kliknite na sistem za više informacija."
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "Vrijeme rada"
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "Iskorištenost"
#: src/components/routes/system.tsx:424
msgid "Usage of root partition"
msgstr "Iskorištenost root datotečnog sustava"
#: src/components/charts/area-chart.tsx:73
#: src/components/charts/mem-chart.tsx:65
#: src/components/charts/swap-chart.tsx:56
msgid "Used"
msgstr "Iskorišteno"
#: src/components/login/auth-form.tsx:138
msgid "username"
msgstr "račun"
#: src/components/login/auth-form.tsx:131
msgid "Username"
msgstr "Račun"
#: src/components/command-palette.tsx:143
#: src/components/navbar.tsx:70
msgid "Users"
msgstr "Korisnici"
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "Čeka se na više podataka prije prikaza"
#: 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 "Ž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
msgid "Webhook / Push notifications"
msgstr "Webhook / Push obavijest"
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "Piši"
#: src/components/routes/settings/layout.tsx:61
msgid "YAML Config"
msgstr "YAML Config"
#: src/components/routes/settings/config-yaml.tsx:45
msgid "YAML Configuration"
msgstr "YAML Konfiguracija"
#: src/components/routes/settings/layout.tsx:34
msgid "Your user settings have been updated."
msgstr "Vaše korisničke postavke su ažurirane."

View File

@@ -1,23 +1,28 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2024-11-02 12:19-0400\n"
"POT-Creation-Date: 2024-11-01 11:30-0400\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"
"X-Generator: @lingui/cli\n"
"Language: it\n"
"Project-Id-Version: \n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: \n"
"PO-Revision-Date: 2024-11-04 20:47\n"
"Last-Translator: \n"
"Language-Team: \n"
"Plural-Forms: \n"
"Language-Team: Italian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: beszel\n"
"X-Crowdin-Project-ID: 733311\n"
"X-Crowdin-Language: it\n"
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
"X-Crowdin-File-ID: 16\n"
#: src/components/routes/system.tsx:242
#: src/components/routes/system.tsx:250
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# giorno} other {# giorni}}"
#: src/components/routes/system.tsx:240
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# ora} other {# ore}}"
@@ -58,8 +63,8 @@ msgstr "Aggiungi <0>Sistema</0>"
msgid "Add New System"
msgstr "Aggiungi Nuovo Sistema"
#: src/components/add-system.tsx:167
#: src/components/add-system.tsx:178
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "Aggiungi sistema"
@@ -107,11 +112,11 @@ msgstr "Provider di Autenticazione"
msgid "Automatic copy requires a secure context."
msgstr "La copia automatica richiede un contesto sicuro."
#: src/components/routes/system.tsx:568
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "Media"
#: src/components/routes/system.tsx:387
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "Utilizzo medio della CPU dei container"
@@ -119,16 +124,24 @@ msgstr "Utilizzo medio della CPU dei container"
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "La media supera <0>{value}{0}</0>"
#: src/components/routes/system.tsx:376
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "Utilizzo medio della CPU a livello di sistema"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "Backup"
#: src/components/routes/system.tsx:436
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "Larghezza di banda"
@@ -177,7 +190,7 @@ msgstr "Controlla i log per maggiori dettagli."
msgid "Check your notification service"
msgstr "Controlla il tuo servizio di notifica"
#: src/components/add-system.tsx:153
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "Clicca per copiare"
@@ -208,7 +221,7 @@ msgstr "Continua"
msgid "Copied to clipboard"
msgstr "Copiato negli appunti"
#: src/components/add-system.tsx:164
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "Copia"
@@ -216,7 +229,7 @@ msgstr "Copia"
msgid "Copy host"
msgstr "Copia host"
#: src/components/add-system.tsx:175
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "Copia comando Linux"
@@ -228,8 +241,8 @@ msgstr "Copia testo"
msgid "CPU"
msgstr "CPU"
#: src/components/charts/area-chart.tsx:52
#: src/components/routes/system.tsx:375
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "Utilizzo CPU"
@@ -260,29 +273,29 @@ msgstr "Elimina"
msgid "Disk"
msgstr "Disco"
#: src/components/routes/system.tsx:426
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "I/O Disco"
#: src/components/charts/disk-chart.tsx:74
#: src/components/routes/system.tsx:415
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "Utilizzo Disco"
#: src/components/routes/system.tsx:495
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "Utilizzo del disco di {extraFsName}"
#: src/components/routes/system.tsx:386
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Utilizzo CPU Docker"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Utilizzo Memoria Docker"
#: src/components/routes/system.tsx:452
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "I/O di Rete Docker"
@@ -303,7 +316,7 @@ msgstr "Email"
msgid "Email notifications"
msgstr "Notifiche email"
#: src/components/login/login.tsx:36
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "Inserisci l'indirizzo email per reimpostare la password"
@@ -350,7 +363,7 @@ msgstr "Invio della notifica di test fallito"
msgid "Failed to update alert"
msgstr "Aggiornamento dell'avviso fallito"
#: src/components/routes/system.tsx:539
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "Filtra..."
@@ -369,7 +382,11 @@ msgstr "Password dimenticata?"
msgid "General"
msgstr "Generale"
#: src/components/add-system.tsx:119
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "Host / IP"
@@ -382,7 +399,7 @@ msgid "Invalid email address."
msgstr "Indirizzo email non valido."
#. Linux kernel
#: src/components/routes/system.tsx:254
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "Kernel"
@@ -399,7 +416,7 @@ msgstr "Chiaro"
msgid "Log Out"
msgstr "Disconnetti"
#: src/components/login/login.tsx:17
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "Accedi"
@@ -422,7 +439,7 @@ msgid "Manage display and notification preferences."
msgstr "Gestisci le preferenze di visualizzazione e notifica."
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:571
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "Max 1 min"
@@ -430,16 +447,16 @@ msgstr "Max 1 min"
msgid "Memory"
msgstr "Memoria"
#: src/components/routes/system.tsx:397
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "Utilizzo Memoria"
#: src/components/routes/system.tsx:408
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Utilizzo della memoria dei container Docker"
#: src/components/add-system.tsx:113
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "Nome"
@@ -447,11 +464,11 @@ msgstr "Nome"
msgid "Net"
msgstr "Rete"
#: src/components/routes/system.tsx:453
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Traffico di rete dei container Docker"
#: src/components/routes/system.tsx:438
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "Traffico di rete delle interfacce pubbliche"
@@ -527,7 +544,7 @@ msgstr "Si prega di controllare i log per maggiori dettagli."
msgid "Please check your credentials and try again"
msgstr "Si prega di controllare le credenziali e riprovare"
#: src/components/login/login.tsx:34
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "Si prega di creare un account amministratore"
@@ -543,31 +560,36 @@ msgstr "Si prega di accedere nuovamente"
msgid "Please see <0>the documentation</0> for instructions."
msgstr "Si prega di consultare <0>la documentazione</0> per le istruzioni."
#: src/components/login/login.tsx:38
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "Si prega di accedere al proprio account"
#: src/components/add-system.tsx:125
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "Porta"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
msgid "Precise utilization at the recorded time"
msgstr "Utilizzo preciso al momento registrato"
#: src/components/routes/settings/general.tsx:58
msgid "Preferred Language"
msgstr "Lingua Preferita"
#. Use 'Key' if your language requires many more characters
#: src/components/add-system.tsx:131
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "Chiave Pub"
#. Context is disk read
#: src/components/charts/area-chart.tsx:56
#: src/components/charts/area-chart.tsx:65
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "Lettura"
#. Context is network bytes received (download)
#: src/components/charts/area-chart.tsx:61
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "Ricevuto"
@@ -600,8 +622,8 @@ msgstr "Cerca sistemi o impostazioni..."
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "Vedi <0>impostazioni di notifica</0> per configurare come ricevere gli avvisi."
#. Context is network bytes sent (upload)
#: src/components/charts/area-chart.tsx:60
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "Inviato"
@@ -633,11 +655,11 @@ msgstr "Impostazioni SMTP"
msgid "Status"
msgstr "Stato"
#: src/components/routes/system.tsx:467
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "Spazio di swap utilizzato dal sistema"
#: src/components/routes/system.tsx:466
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "Utilizzo Swap"
@@ -656,12 +678,12 @@ msgstr "Sistemi"
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."
#: src/components/routes/system.tsx:477
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "Temperatura"
#: src/components/routes/system.tsx:478
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "Temperature dei sensori di sistema"
@@ -689,11 +711,11 @@ msgstr "Quindi accedi al backend e reimposta la password del tuo account utente
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."
#: src/components/routes/system.tsx:507
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "Throughput di {extraFsName}"
#: src/components/routes/system.tsx:427
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "Throughput del filesystem root"
@@ -701,8 +723,8 @@ msgstr "Throughput del filesystem root"
msgid "To email(s)"
msgstr "A email(s)"
#: src/components/routes/system.tsx:350
#: src/components/routes/system.tsx:363
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "Attiva/disattiva griglia"
@@ -726,10 +748,6 @@ msgstr "Attiva quando l'utilizzo della CPU supera una soglia"
msgid "Triggers when memory usage exceeds a threshold"
msgstr "Attiva quando l'utilizzo della memoria supera una soglia"
#: src/components/routes/system.tsx:398
msgid "Triggers when memory usage exceeds a threshold."
msgstr "Attiva quando l'utilizzo della memoria supera una soglia."
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "Attiva quando lo stato passa tra up e down"
@@ -742,18 +760,21 @@ msgstr "Attiva quando l'utilizzo di un disco supera una soglia"
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."
#: src/components/routes/system.tsx:253
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "Tempo di attività"
#: src/components/routes/system.tsx:494
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "Utilizzo"
#: src/components/routes/system.tsx:415
#: src/components/routes/system.tsx:424
msgid "Usage of root partition"
msgstr "Utilizzo della partizione root"
#: src/components/charts/area-chart.tsx:73
#: src/components/charts/mem-chart.tsx:65
#: src/components/charts/swap-chart.tsx:56
msgid "Used"
@@ -772,7 +793,7 @@ msgstr "Nome utente"
msgid "Users"
msgstr "Utenti"
#: src/components/routes/system.tsx:603
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "In attesa di abbastanza record da visualizzare"
@@ -784,9 +805,9 @@ msgstr "Vuoi aiutarci a migliorare ulteriormente le nostre traduzioni? Dai un'oc
msgid "Webhook / Push notifications"
msgstr "Notifiche Webhook / Push"
#. Context is disk write
#: src/components/charts/area-chart.tsx:55
#: src/components/charts/area-chart.tsx:66
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "Scrittura"

File diff suppressed because one or more lines are too long

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: ja\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-02 03:24\n"
"PO-Revision-Date: 2024-11-04 20:46\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -18,11 +18,11 @@ msgstr ""
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
"X-Crowdin-File-ID: 16\n"
#: src/components/routes/system.tsx:242
#: src/components/routes/system.tsx:250
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# 日} other {# 日}}"
#: src/components/routes/system.tsx:240
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# 時間} other {# 時間}}"
@@ -63,8 +63,8 @@ msgstr "<0>システム</0>を追加"
msgid "Add New System"
msgstr "新しいシステムを追加"
#: src/components/add-system.tsx:167
#: src/components/add-system.tsx:178
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "システムを追加"
@@ -112,11 +112,11 @@ msgstr "認証プロバイダー"
msgid "Automatic copy requires a secure context."
msgstr "自動コピーには安全なコンテキストが必要です。"
#: src/components/routes/system.tsx:568
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "平均"
#: src/components/routes/system.tsx:387
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "コンテナの平均CPU使用率"
@@ -124,16 +124,24 @@ msgstr "コンテナの平均CPU使用率"
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "平均が<0>{value}{0}</0>を超えています"
#: src/components/routes/system.tsx:376
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "システム全体の平均CPU使用率"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "バックアップ"
#: src/components/routes/system.tsx:436
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "帯域幅"
@@ -182,7 +190,7 @@ msgstr "詳細についてはログを確認してください。"
msgid "Check your notification service"
msgstr "通知サービスを確認してください"
#: src/components/add-system.tsx:153
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "クリックしてコピー"
@@ -213,7 +221,7 @@ msgstr "続行"
msgid "Copied to clipboard"
msgstr "クリップボードにコピーされました"
#: src/components/add-system.tsx:164
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "コピー"
@@ -221,7 +229,7 @@ msgstr "コピー"
msgid "Copy host"
msgstr "ホストをコピー"
#: src/components/add-system.tsx:175
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "Linuxコマンドをコピー"
@@ -233,8 +241,8 @@ msgstr "テキストをコピー"
msgid "CPU"
msgstr "CPU"
#: src/components/charts/area-chart.tsx:52
#: src/components/routes/system.tsx:375
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "CPU使用率"
@@ -265,29 +273,29 @@ msgstr "削除"
msgid "Disk"
msgstr "ディスク"
#: src/components/routes/system.tsx:426
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "ディスクI/O"
#: src/components/charts/disk-chart.tsx:74
#: src/components/routes/system.tsx:415
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "ディスク使用率"
#: src/components/routes/system.tsx:495
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "{extraFsName}のディスク使用率"
#: src/components/routes/system.tsx:386
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Docker CPU使用率"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Dockerメモリ使用率"
#: src/components/routes/system.tsx:452
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "DockerネットワークI/O"
@@ -308,7 +316,7 @@ msgstr "メール"
msgid "Email notifications"
msgstr "メール通知"
#: src/components/login/login.tsx:36
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "パスワードをリセットするためにメールアドレスを入力してください"
@@ -355,7 +363,7 @@ msgstr "テスト通知の送信に失敗しました"
msgid "Failed to update alert"
msgstr "アラートの更新に失敗しました"
#: src/components/routes/system.tsx:539
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "フィルター..."
@@ -374,7 +382,11 @@ msgstr "パスワードをお忘れですか?"
msgid "General"
msgstr "一般"
#: src/components/add-system.tsx:119
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "ホスト / IP"
@@ -387,7 +399,7 @@ msgid "Invalid email address."
msgstr "無効なメールアドレスです。"
#. Linux kernel
#: src/components/routes/system.tsx:254
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "カーネル"
@@ -404,7 +416,7 @@ msgstr "ライト"
msgid "Log Out"
msgstr "ログアウト"
#: src/components/login/login.tsx:17
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "ログイン"
@@ -427,7 +439,7 @@ msgid "Manage display and notification preferences."
msgstr "表示と通知の設定を管理します。"
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:571
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "最大1分"
@@ -435,16 +447,16 @@ msgstr "最大1分"
msgid "Memory"
msgstr "メモリ"
#: src/components/routes/system.tsx:397
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "メモリ使用率"
#: src/components/routes/system.tsx:408
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Dockerコンテナのメモリ使用率"
#: src/components/add-system.tsx:113
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "名前"
@@ -452,11 +464,11 @@ msgstr "名前"
msgid "Net"
msgstr "帯域"
#: src/components/routes/system.tsx:453
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Dockerコンテナのネットワークトラフィック"
#: src/components/routes/system.tsx:438
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "パブリックインターフェースのネットワークトラフィック"
@@ -532,7 +544,7 @@ msgstr "詳細についてはログを確認してください。"
msgid "Please check your credentials and try again"
msgstr "資格情報を確認して再試行してください"
#: src/components/login/login.tsx:34
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "管理者アカウントを作成してください"
@@ -548,31 +560,36 @@ msgstr "再度ログインしてください"
msgid "Please see <0>the documentation</0> for instructions."
msgstr "手順については<0>ドキュメント</0>を参照してください。"
#: src/components/login/login.tsx:38
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "アカウントにサインインしてください"
#: src/components/add-system.tsx:125
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "ポート"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
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:131
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "公開鍵"
#. Context is disk read
#: src/components/charts/area-chart.tsx:56
#: src/components/charts/area-chart.tsx:65
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "読み取り"
#. Context is network bytes received (download)
#: src/components/charts/area-chart.tsx:61
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "受信"
@@ -605,8 +622,8 @@ msgstr "システムまたは設定を検索..."
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "アラートの受信方法を設定するには<0>通知設定</0>を参照してください。"
#. Context is network bytes sent (upload)
#: src/components/charts/area-chart.tsx:60
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "送信"
@@ -638,11 +655,11 @@ msgstr "SMTP設定"
msgid "Status"
msgstr "ステータス"
#: src/components/routes/system.tsx:467
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "システムが使用するスワップ領域"
#: src/components/routes/system.tsx:466
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "スワップ使用量"
@@ -661,12 +678,12 @@ msgstr "システム"
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
msgstr "システムはデータディレクトリ内の<0>config.yml</0>ファイルで管理できます。"
#: src/components/routes/system.tsx:477
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "温度"
#: src/components/routes/system.tsx:478
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "システムセンサーの温度"
@@ -694,11 +711,11 @@ msgstr "その後、バックエンドにログインして、ユーザーテー
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:507
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "{extraFsName}のスループット"
#: src/components/routes/system.tsx:427
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "ルートファイルシステムのスループット"
@@ -706,8 +723,8 @@ msgstr "ルートファイルシステムのスループット"
msgid "To email(s)"
msgstr "メール宛"
#: src/components/routes/system.tsx:350
#: src/components/routes/system.tsx:363
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "グリッドを切り替え"
@@ -731,10 +748,6 @@ msgstr "CPU使用率がしきい値を超えたときにトリガーされます
msgid "Triggers when memory usage exceeds a threshold"
msgstr "メモリ使用率がしきい値を超えたときにトリガーされます"
#: src/components/routes/system.tsx:398
msgid "Triggers when memory usage exceeds a threshold."
msgstr "メモリ使用率がしきい値を超えたときにトリガーされます。"
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "ステータスが上から下に切り替わるときにトリガーされます"
@@ -747,18 +760,21 @@ msgstr "ディスクの使用量がしきい値を超えたときにトリガー
msgid "Updated in real time. Click on a system to view information."
msgstr "リアルタイムで更新されます。システムをクリックして情報を表示します。"
#: src/components/routes/system.tsx:253
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "稼働時間"
#: src/components/routes/system.tsx:494
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "使用量"
#: src/components/routes/system.tsx:415
#: src/components/routes/system.tsx:424
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"
@@ -777,7 +793,7 @@ msgstr "ユーザー名"
msgid "Users"
msgstr "ユーザー"
#: src/components/routes/system.tsx:603
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "表示するのに十分なレコードを待っています"
@@ -789,9 +805,9 @@ msgstr "翻訳をさらに良くするためにご協力いただけますか?
msgid "Webhook / Push notifications"
msgstr "Webhook / プッシュ通知"
#. Context is disk write
#: src/components/charts/area-chart.tsx:55
#: src/components/charts/area-chart.tsx:66
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "書き込み"

File diff suppressed because one or more lines are too long

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: ko\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-02 02:14\n"
"PO-Revision-Date: 2024-11-04 20:46\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -18,11 +18,11 @@ msgstr ""
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
"X-Crowdin-File-ID: 16\n"
#: src/components/routes/system.tsx:242
#: src/components/routes/system.tsx:250
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# 일} other {# 일}}"
#: src/components/routes/system.tsx:240
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# 시간} other {# 시간}}"
@@ -63,8 +63,8 @@ msgstr "<0>시스템</0> 추가"
msgid "Add New System"
msgstr "새 시스템 추가"
#: src/components/add-system.tsx:167
#: src/components/add-system.tsx:178
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "시스템 추가"
@@ -112,11 +112,11 @@ msgstr "인증 제공자"
msgid "Automatic copy requires a secure context."
msgstr "자동 복사는 안전한 컨텍스트가 필요합니다."
#: src/components/routes/system.tsx:568
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "평균"
#: src/components/routes/system.tsx:387
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "컨테이너의 평균 CPU 사용량"
@@ -124,16 +124,24 @@ msgstr "컨테이너의 평균 CPU 사용량"
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "평균이 <0>{value}{0}</0>을 초과합니다"
#: src/components/routes/system.tsx:376
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "시스템 전체의 평균 CPU 사용량"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "백업"
#: src/components/routes/system.tsx:436
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "대역폭"
@@ -182,7 +190,7 @@ msgstr "자세한 내용은 로그를 확인하세요."
msgid "Check your notification service"
msgstr "알림 서비스를 확인하세요."
#: src/components/add-system.tsx:153
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "클릭하여 복사"
@@ -213,7 +221,7 @@ msgstr "계속"
msgid "Copied to clipboard"
msgstr "클립보드에 복사됨"
#: src/components/add-system.tsx:164
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "복사"
@@ -221,7 +229,7 @@ msgstr "복사"
msgid "Copy host"
msgstr "호스트 복사"
#: src/components/add-system.tsx:175
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "리눅스 명령 복사"
@@ -233,8 +241,8 @@ msgstr "텍스트 복사"
msgid "CPU"
msgstr "CPU"
#: src/components/charts/area-chart.tsx:52
#: src/components/routes/system.tsx:375
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "CPU 사용량"
@@ -265,29 +273,29 @@ msgstr "삭제"
msgid "Disk"
msgstr "디스크"
#: src/components/routes/system.tsx:426
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "디스크 I/O"
#: src/components/charts/disk-chart.tsx:74
#: src/components/routes/system.tsx:415
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "디스크 사용량"
#: src/components/routes/system.tsx:495
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "{extraFsName}의 디스크 사용량"
#: src/components/routes/system.tsx:386
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "도커 CPU 사용량"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "도커 메모리 사용량"
#: src/components/routes/system.tsx:452
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "도커 네트워크 I/O"
@@ -308,7 +316,7 @@ msgstr "이메일"
msgid "Email notifications"
msgstr "이메일 알림"
#: src/components/login/login.tsx:36
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "비밀번호를 재설정하려면 이메일 주소를 입력하세요"
@@ -355,7 +363,7 @@ msgstr "테스트 알림 전송 실패"
msgid "Failed to update alert"
msgstr "경고 업데이트 실패"
#: src/components/routes/system.tsx:539
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "필터..."
@@ -374,7 +382,11 @@ msgstr "비밀번호를 잊으셨나요?"
msgid "General"
msgstr "일반"
#: src/components/add-system.tsx:119
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "호스트 / IP"
@@ -387,7 +399,7 @@ msgid "Invalid email address."
msgstr "잘못된 이메일 주소입니다."
#. Linux kernel
#: src/components/routes/system.tsx:254
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "커널"
@@ -404,7 +416,7 @@ msgstr "밝은"
msgid "Log Out"
msgstr "로그아웃"
#: src/components/login/login.tsx:17
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "로그인"
@@ -427,7 +439,7 @@ msgid "Manage display and notification preferences."
msgstr "디스플레이 및 알림 환경설정을 관리하세요."
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:571
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "최대 1분"
@@ -435,16 +447,16 @@ msgstr "최대 1분"
msgid "Memory"
msgstr "메모리"
#: src/components/routes/system.tsx:397
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "메모리 사용량"
#: src/components/routes/system.tsx:408
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "도커 컨테이너의 메모리 사용량"
#: src/components/add-system.tsx:113
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "이름"
@@ -452,11 +464,11 @@ msgstr "이름"
msgid "Net"
msgstr "네트"
#: src/components/routes/system.tsx:453
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "도커 컨테이너의 네트워크 트래픽"
#: src/components/routes/system.tsx:438
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "공용 인터페이스의 네트워크 트래픽"
@@ -532,7 +544,7 @@ msgstr "자세한 내용은 로그를 확인하세요."
msgid "Please check your credentials and try again"
msgstr "자격 증명을 확인하고 다시 시도하세요."
#: src/components/login/login.tsx:34
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "관리자 계정을 생성하세요."
@@ -548,31 +560,36 @@ msgstr "다시 로그인하세요."
msgid "Please see <0>the documentation</0> for instructions."
msgstr "지침은 <0>문서</0>를 참조하세요."
#: src/components/login/login.tsx:38
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "계정에 로그인하세요."
#: src/components/add-system.tsx:125
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "포트"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
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:131
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "공개 키"
#. Context is disk read
#: src/components/charts/area-chart.tsx:56
#: src/components/charts/area-chart.tsx:65
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "읽기"
#. Context is network bytes received (download)
#: src/components/charts/area-chart.tsx:61
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "수신됨"
@@ -605,8 +622,8 @@ msgstr "시스템 또는 설정 검색..."
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "경고를 받는 방법을 구성하려면 <0>알림 설정</0>을 참조하세요."
#. Context is network bytes sent (upload)
#: src/components/charts/area-chart.tsx:60
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "보냄"
@@ -638,11 +655,11 @@ msgstr "SMTP 설정"
msgid "Status"
msgstr "상태"
#: src/components/routes/system.tsx:467
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "시스템에서 사용된 스왑 공간"
#: src/components/routes/system.tsx:466
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "스왑 사용량"
@@ -661,12 +678,12 @@ msgstr "시스템"
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
msgstr "시스템은 데이터 디렉토리 내의 <0>config.yml</0> 파일에서 관리할 수 있습니다."
#: src/components/routes/system.tsx:477
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "온도"
#: src/components/routes/system.tsx:478
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "시스템 센서의 온도"
@@ -694,11 +711,11 @@ msgstr "그런 다음 백엔드에 로그인하여 사용자 테이블에서 사
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:507
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "{extraFsName}의 처리량"
#: src/components/routes/system.tsx:427
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "루트 파일 시스템의 처리량"
@@ -706,8 +723,8 @@ msgstr "루트 파일 시스템의 처리량"
msgid "To email(s)"
msgstr "이메일로"
#: src/components/routes/system.tsx:350
#: src/components/routes/system.tsx:363
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "그리드 전환"
@@ -731,10 +748,6 @@ msgstr "CPU 사용량이 임계값을 초과할 때 트리거됩니다."
msgid "Triggers when memory usage exceeds a threshold"
msgstr "메모리 사용량이 임계값을 초과할 때 트리거됩니다."
#: src/components/routes/system.tsx:398
msgid "Triggers when memory usage exceeds a threshold."
msgstr "메모리 사용량이 임계값을 초과할 때 트리거됩니다."
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "상태가 상승과 하강 사이에서 전환될 때 트리거됩니다."
@@ -747,18 +760,21 @@ msgstr "디스크 사용량이 임계값을 초과할 때 트리거됩니다."
msgid "Updated in real time. Click on a system to view information."
msgstr "실시간으로 업데이트됩니다. 시스템을 클릭하여 정보를 확인하세요."
#: src/components/routes/system.tsx:253
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "가동 시간"
#: src/components/routes/system.tsx:494
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "사용량"
#: src/components/routes/system.tsx:415
#: src/components/routes/system.tsx:424
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"
@@ -777,7 +793,7 @@ msgstr "사용자 이름"
msgid "Users"
msgstr "사용자"
#: src/components/routes/system.tsx:603
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "표시할 충분한 기록을 기다리는 중"
@@ -789,9 +805,9 @@ msgstr "번역을 더 좋게 만드는 데 도움을 주시겠습니까? 자세
msgid "Webhook / Push notifications"
msgstr "Webhook / 푸시 알림"
#. Context is disk write
#: src/components/charts/area-chart.tsx:55
#: src/components/charts/area-chart.tsx:66
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "쓰기"

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,824 @@
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: nl\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-08 17:29\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: beszel\n"
"X-Crowdin-Project-ID: 733311\n"
"X-Crowdin-Language: nl\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
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# dag} other {# dagen}}"
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# uur} other {# uren}}"
#: src/lib/utils.ts:139
msgid "1 hour"
msgstr "1 uur"
#: src/lib/utils.ts:162
msgid "1 week"
msgstr "1 week"
#: src/lib/utils.ts:147
msgid "12 hours"
msgstr "12 uren"
#: src/lib/utils.ts:155
msgid "24 hours"
msgstr "24 uren"
#: src/lib/utils.ts:170
msgid "30 days"
msgstr "30 dagen"
#. Table column
#: src/components/systems-table/systems-table.tsx:207
msgid "Actions"
msgstr "Acties"
#: src/components/routes/home.tsx:62
msgid "Active Alerts"
msgstr "Actieve waarschuwingen"
#: src/components/add-system.tsx:74
msgid "Add <0>System</0>"
msgstr "Voeg <0>Systeem</0> toe"
#: src/components/add-system.tsx:83
msgid "Add New System"
msgstr "Nieuw systeem toevoegen"
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "Voeg systeem toe"
#: src/components/routes/settings/notifications.tsx:156
msgid "Add URL"
msgstr "Voeg URL toe"
#: src/components/routes/settings/general.tsx:81
msgid "Adjust display options for charts."
msgstr "Weergaveopties voor grafieken aanpassen."
#: 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
#: src/components/command-palette.tsx:204
msgid "Admin"
msgstr "Admin"
#: src/components/systems-table/systems-table.tsx:186
msgid "Agent"
msgstr "Agent"
#: src/components/alerts/alert-button.tsx:32
#: src/components/alerts/alert-button.tsx:68
msgid "Alerts"
msgstr "Waarschuwingen"
#: src/components/alerts/alert-button.tsx:88
#: src/components/systems-table/systems-table.tsx:317
msgid "All Systems"
msgstr "Alle systemen"
#: src/components/systems-table/systems-table.tsx:261
msgid "Are you sure you want to delete {name}?"
msgstr "Weet je zeker dat je {name} wilt verwijderen?"
#: src/components/command-palette.tsx:186
#: src/components/navbar.tsx:102
msgid "Auth Providers"
msgstr "Authenticatie aanbieders"
#: src/components/copy-to-clipboard.tsx:16
msgid "Automatic copy requires a secure context."
msgstr "Automatisch kopiëren vereist een veilige context."
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "Gemiddelde"
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "Gemiddeld CPU-gebruik van containers"
#: src/components/alerts/alerts-system.tsx:204
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "Gemiddelde overschrijdt <0>{value}{0}</0>"
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "Gemiddeld systeembrede CPU-gebruik"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "Back-ups"
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "Bandbreedte"
#: src/components/login/auth-form.tsx:313
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
msgstr "Beszel ondersteunt OpenID Connect en vele OAuth2 authenticatieaanbieders."
#: src/components/routes/settings/notifications.tsx:127
msgid "Beszel uses <0>Shoutrrr</0> to integrate with popular notification services."
msgstr "Beszel gebruikt <0>Shoutrr</0> om te integreren met populaire meldingsdiensten."
#: src/components/add-system.tsx:88
msgid "Binary"
msgstr "Binair"
#: src/components/charts/mem-chart.tsx:89
msgid "Cache / Buffers"
msgstr "Cache / Buffers"
#: src/components/systems-table/systems-table.tsx:272
msgid "Cancel"
msgstr "Annuleren"
#: src/components/routes/settings/config-yaml.tsx:68
msgid "Caution - potential data loss"
msgstr "Opgelet - potentieel gegevensverlies"
#: src/components/routes/settings/general.tsx:36
msgid "Change general application options."
msgstr "Wijzig algemene applicatie opties."
#: src/components/routes/settings/general.tsx:78
msgid "Chart options"
msgstr "Grafiekopties"
#: src/components/login/forgot-pass-form.tsx:34
msgid "Check {email} for a reset link."
msgstr "Controleer {email} op een reset link."
#: src/components/routes/settings/layout.tsx:40
msgid "Check logs for more details."
msgstr "Controleer de logs voor meer details."
#: src/components/routes/settings/notifications.tsx:183
msgid "Check your notification service"
msgstr "Controleer je meldingsservice"
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "Klik om te kopiëren"
#. Context: table columns
#: src/components/systems-table/systems-table.tsx:328
msgid "Columns"
msgstr "Kolommen"
#: src/components/login/forgot-pass-form.tsx:83
#: src/components/login/forgot-pass-form.tsx:89
msgid "Command line instructions"
msgstr "Instructies voor de opdrachtregel"
#: src/components/routes/settings/notifications.tsx:77
msgid "Configure how you receive alert notifications."
msgstr "Configureer hoe je waarschuwingsmeldingen ontvangt."
#: src/components/login/auth-form.tsx:189
#: src/components/login/auth-form.tsx:194
msgid "Confirm password"
msgstr "Bevestig wachtwoord"
#: src/components/systems-table/systems-table.tsx:278
msgid "Continue"
msgstr "Volgende"
#: src/lib/utils.ts:25
msgid "Copied to clipboard"
msgstr "Gekopieerd naar het klembord"
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "Kopieer"
#: src/components/systems-table/systems-table.tsx:247
msgid "Copy host"
msgstr "Kopieer host"
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "Kopieer Linux-opdracht"
#: src/components/copy-to-clipboard.tsx:13
msgid "Copy text"
msgstr "Kopieer tekst"
#: src/components/systems-table/systems-table.tsx:152
msgid "CPU"
msgstr "CPU"
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "Processorgebruik"
#: src/components/login/auth-form.tsx:215
msgid "Create account"
msgstr "Account aanmaken"
#. Dark theme
#: src/components/mode-toggle.tsx:21
msgid "Dark"
msgstr "Donker"
#: src/components/command-palette.tsx:82
#: src/components/routes/home.tsx:35
msgid "Dashboard"
msgstr "Dashboard"
#: src/components/routes/settings/general.tsx:85
msgid "Default time period"
msgstr "Standaard tijdsduur"
#: src/components/systems-table/systems-table.tsx:253
msgid "Delete"
msgstr "Verwijderen"
#: src/components/systems-table/systems-table.tsx:166
msgid "Disk"
msgstr "Schijf"
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "Schijf I/O"
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "Schijfgebruik"
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "Schijfgebruik van {extraFsName}"
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Docker CPU-gebruik"
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Docker geheugengebruik"
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "Docker netwerk I/O"
#: src/components/command-palette.tsx:125
msgid "Documentation"
msgstr "Documentatie"
#: src/components/login/auth-form.tsx:158
msgid "email"
msgstr "e-mail"
#: src/components/login/auth-form.tsx:152
#: src/components/login/forgot-pass-form.tsx:53
msgid "Email"
msgstr "E-mail"
#: src/components/routes/settings/notifications.tsx:91
msgid "Email notifications"
msgstr "E-mailnotificaties"
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "Voer een e-mailadres in om het wachtwoord opnieuw in te stellen"
#: src/components/routes/settings/notifications.tsx:111
msgid "Enter email address..."
msgstr "Voer een e-mailadres in..."
#: src/components/login/auth-form.tsx:256
#: src/components/routes/settings/config-yaml.tsx:28
#: src/components/routes/settings/notifications.tsx:187
msgid "Error"
msgstr "Fout"
#: src/components/routes/home.tsx:81
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}}"
#: 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 "Bestaande systemen die niet gedefinieerd zijn in <0>config.yml</0> zullen worden verwijderd. Maak regelmatige backups."
#: src/components/routes/settings/config-yaml.tsx:93
msgid "Export configuration"
msgstr "Configuratie exporteren"
#: src/components/routes/settings/config-yaml.tsx:48
msgid "Export your current systems configuration."
msgstr "Exporteer je huidige systeemconfiguratie."
#: src/lib/utils.ts:38
msgid "Failed to authenticate"
msgstr "Authenticatie mislukt"
#: src/components/routes/settings/layout.tsx:39
#: src/components/routes/settings/notifications.tsx:62
msgid "Failed to save settings"
msgstr "Instellingen opslaan mislukt"
#: src/components/routes/settings/notifications.tsx:188
msgid "Failed to send test notification"
msgstr "Versturen test notificatie mislukt"
#: src/components/alerts/alerts-system.tsx:27
msgid "Failed to update alert"
msgstr "Bijwerken waarschuwing mislukt"
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "Filter..."
#: src/components/alerts/alerts-system.tsx:225
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Voor <0>{min}</0> {min, plural, one {minuut} other {minuten}}"
#: src/components/login/auth-form.tsx:337
msgid "Forgot password?"
msgstr "Wachtwoord vergeten?"
#. Context: General settings
#: src/components/routes/settings/general.tsx:33
#: src/components/routes/settings/layout.tsx:51
msgid "General"
msgstr "Algemeen"
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "Host / IP-adres"
#: 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 "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
msgid "Invalid email address."
msgstr "Ongeldig e-mailadres."
#. Linux kernel
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "Kernel"
#: src/components/routes/settings/general.tsx:45
msgid "Language"
msgstr "Taal"
#. Light theme
#: src/components/mode-toggle.tsx:16
msgid "Light"
msgstr "Licht"
#: src/components/navbar.tsx:113
msgid "Log Out"
msgstr "Afmelden"
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "Aanmelden"
#: src/components/login/auth-form.tsx:42
#: src/components/login/forgot-pass-form.tsx:15
msgid "Login attempt failed"
msgstr "Aanmelding mislukt"
#: src/components/command-palette.tsx:157
#: src/components/navbar.tsx:86
msgid "Logs"
msgstr "Logs"
#: src/components/routes/settings/notifications.tsx:80
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."
#: src/components/routes/settings/layout.tsx:85
msgid "Manage display and notification preferences."
msgstr "Weergave- en notificatievoorkeuren beheren."
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "Max 1 min"
#: src/components/systems-table/systems-table.tsx:159
msgid "Memory"
msgstr "Geheugen"
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "Geheugengebruik"
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Geheugengebruik van docker containers"
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "Naam"
#: src/components/systems-table/systems-table.tsx:173
msgid "Net"
msgstr "Net"
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Netwerkverkeer van docker containers"
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "Netwerkverkeer van publieke interfaces"
#: src/components/command-palette.tsx:50
msgid "No results found."
msgstr "Geen resultaten gevonden."
#: src/components/systems-table/systems-table.tsx:400
msgid "No systems found."
msgstr "Geen systemen gevonden."
#: src/components/command-palette.tsx:111
#: src/components/routes/settings/layout.tsx:56
#: src/components/routes/settings/notifications.tsx:74
msgid "Notifications"
msgstr "Meldingen"
#: src/components/login/auth-form.tsx:308
msgid "OAuth 2 / OIDC support"
msgstr "OAuth 2 / OIDC ondersteuning"
#: 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 "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:219
msgid "Open menu"
msgstr "Open menu"
#: src/components/login/auth-form.tsx:227
msgid "Or continue with"
msgstr "Of ga verder met"
#: src/components/alerts/alert-button.tsx:109
msgid "Overwrite existing alerts"
msgstr "Overschrijf bestaande waarschuwingen"
#: src/components/command-palette.tsx:85
msgid "Page"
msgstr "Pagina"
#: src/components/command-palette.tsx:72
msgid "Pages / Settings"
msgstr "Pagina's / Instellingen"
#: src/components/login/auth-form.tsx:171
#: src/components/login/auth-form.tsx:176
msgid "Password"
msgstr "Wachtwoord"
#: src/components/login/auth-form.tsx:17
msgid "Password must be at least 10 characters."
msgstr "Het wachtwoord moet tenminste 10 tekens lang zijn."
#: src/components/login/forgot-pass-form.tsx:33
msgid "Password reset request received"
msgstr "Wachtwoord reset aanvraag ontvangen"
#: src/components/systems-table/systems-table.tsx:241
msgid "Pause"
msgstr "Pauze"
#: src/components/routes/settings/notifications.tsx:95
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."
#: src/components/alerts/alerts-system.tsx:28
msgid "Please check logs for more details."
msgstr "Controleer de logs voor meer details."
#: src/components/login/auth-form.tsx:43
#: src/components/login/forgot-pass-form.tsx:16
msgid "Please check your credentials and try again"
msgstr "Controleer je aanmeldgegevens en probeer het opnieuw"
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "Maak een beheerdersaccount aan"
#: src/components/login/auth-form.tsx:257
msgid "Please enable pop-ups for this site"
msgstr "Activeer pop-ups voor deze website"
#: src/lib/utils.ts:39
msgid "Please log in again"
msgstr "Meld je opnieuw aan"
#: src/components/login/auth-form.tsx:316
msgid "Please see <0>the documentation</0> for instructions."
msgstr "Bekijk <0>de documentatie</0> voor instructies."
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "Meld je aan bij je account"
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "Poort"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
msgid "Precise utilization at the recorded time"
msgstr "Nauwkeurig gebruik op de opgenomen tijd"
#: src/components/routes/settings/general.tsx:58
msgid "Preferred Language"
msgstr "Voorkeurstaal"
#. Use 'Key' if your language requires many more characters
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "Publieke sleutel"
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "Lezen"
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "Ontvangen"
#: src/components/login/forgot-pass-form.tsx:76
msgid "Reset Password"
msgstr "Wachtwoord resetten"
#: src/components/systems-table/systems-table.tsx:236
msgid "Resume"
msgstr "Hervatten"
#: src/components/routes/settings/notifications.tsx:117
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."
#: src/components/routes/settings/general.tsx:106
#: src/components/routes/settings/notifications.tsx:167
msgid "Save Settings"
msgstr "Instellingen opslaan"
#: src/components/navbar.tsx:142
msgid "Search"
msgstr "Zoeken"
#: src/components/command-palette.tsx:47
msgid "Search for systems or settings..."
msgstr "Zoek naar systemen of instellingen..."
#: src/components/alerts/alert-button.tsx:71
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "Zie <0>notificatie-instellingen</0> om te configureren hoe je meldingen ontvangt."
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "Verzonden"
#: src/components/routes/settings/general.tsx:100
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."
#: 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 "Instellingen"
#: src/components/routes/settings/layout.tsx:33
msgid "Settings saved"
msgstr "Instellingen opgeslagen"
#: src/components/login/auth-form.tsx:215
msgid "Sign in"
msgstr "Aanmelden"
#: src/components/command-palette.tsx:201
msgid "SMTP settings"
msgstr "SMTP-instellingen"
#: src/lib/utils.ts:282
msgid "Status"
msgstr "Status"
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "Swap ruimte gebruikt door het systeem"
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "Swap gebruik"
#. System theme
#: src/components/mode-toggle.tsx:26
#: src/components/systems-table/systems-table.tsx:110
#: src/components/systems-table/systems-table.tsx:121
msgid "System"
msgstr "Systeem"
#: src/components/navbar.tsx:78
msgid "Systems"
msgstr "Systemen"
#: 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 "Systemen kunnen worden beheerd in een <0>config.yml</0> bestand in je data map."
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "Temperatuur"
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "Temperatuur van systeem sensoren"
#: src/components/routes/settings/notifications.tsx:211
msgid "Test <0>URL</0>"
msgstr "Test <0>URL</0>"
#: src/components/routes/settings/notifications.tsx:182
msgid "Test notification sent"
msgstr "Testmelding verzonden"
#: src/components/add-system.tsx:104
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."
#: src/components/add-system.tsx:95
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."
#: 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 vervolgens in op de backend en reset het wachtwoord van je gebruikersaccount in het gebruikersoverzicht."
#: src/components/systems-table/systems-table.tsx:264
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."
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "Doorvoer van {extraFsName}"
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "Doorvoer van het root bestandssysteem"
#: src/components/routes/settings/notifications.tsx:106
msgid "To email(s)"
msgstr "Naar e-mail(s)"
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "Schakel raster"
#: src/components/mode-toggle.tsx:33
msgid "Toggle theme"
msgstr "Schakel thema"
#: src/lib/utils.ts:317
msgid "Triggers when any sensor exceeds a threshold"
msgstr "Triggert wanneer een sensor een drempelwaarde overschrijdt"
#: src/lib/utils.ts:310
msgid "Triggers when combined up/down exceeds a threshold"
msgstr "Triggert wanneer de gecombineerde up/down een drempelwaarde overschrijdt"
#: src/lib/utils.ts:292
msgid "Triggers when CPU usage exceeds a threshold"
msgstr "Triggert wanneer het CPU-gebruik een drempelwaarde overschrijdt"
#: src/lib/utils.ts:298
msgid "Triggers when memory usage exceeds a threshold"
msgstr "Triggert wanneer het geheugengebruik een drempelwaarde overschrijdt"
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "Triggert wanneer de status schakelt tussen up en down"
#: src/lib/utils.ts:304
msgid "Triggers when usage of any disk exceeds a threshold"
msgstr "Triggert wanneer het gebruik van een schijf een drempelwaarde overschrijdt"
#: src/components/systems-table/systems-table.tsx:320
msgid "Updated in real time. Click on a system to view information."
msgstr "In realtime bijgewerkt. Klik op een systeem om informatie te bekijken."
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "Actief"
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "Gebruik"
#: src/components/routes/system.tsx:424
msgid "Usage of root partition"
msgstr "Gebruik van root-partitie"
#: src/components/charts/area-chart.tsx:73
#: src/components/charts/mem-chart.tsx:65
#: src/components/charts/swap-chart.tsx:56
msgid "Used"
msgstr "Gebruikt"
#: src/components/login/auth-form.tsx:138
msgid "username"
msgstr "gebruikersnaam"
#: src/components/login/auth-form.tsx:131
msgid "Username"
msgstr "Gebruikersnaam"
#: src/components/command-palette.tsx:143
#: src/components/navbar.tsx:70
msgid "Users"
msgstr "Gebruikers"
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "Wachtend op genoeg records om weer te geven"
#: 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 "Wil je ons helpen onze vertalingen nog beter te maken? Bekijk <0>Crowdin</0> voor meer informatie."
#: src/components/routes/settings/notifications.tsx:124
msgid "Webhook / Push notifications"
msgstr "Webhook / Pushmeldingen"
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "Schrijven"
#: src/components/routes/settings/layout.tsx:61
msgid "YAML Config"
msgstr "YAML Configuratie"
#: src/components/routes/settings/config-yaml.tsx:45
msgid "YAML Configuration"
msgstr "YAML Configuratie"
#: src/components/routes/settings/layout.tsx:34
msgid "Your user settings have been updated."
msgstr "Je gebruikersinstellingen zijn bijgewerkt."

View File

@@ -0,0 +1,824 @@
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: pl\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-05 14:26\n"
"Last-Translator: \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"
"X-Crowdin-Project: beszel\n"
"X-Crowdin-Project-ID: 733311\n"
"X-Crowdin-Language: pl\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
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# dzień} few {# dni} many {# dni} other {# dni}}"
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {godzinę} few {# godziny} many {# godzin} other {# godziny}}"
#: src/lib/utils.ts:139
msgid "1 hour"
msgstr "1 godzina"
#: src/lib/utils.ts:162
msgid "1 week"
msgstr "1 tydzień"
#: src/lib/utils.ts:147
msgid "12 hours"
msgstr "12 godzin"
#: src/lib/utils.ts:155
msgid "24 hours"
msgstr "24 godziny"
#: src/lib/utils.ts:170
msgid "30 days"
msgstr "30 dni"
#. Table column
#: src/components/systems-table/systems-table.tsx:207
msgid "Actions"
msgstr "Akcje"
#: src/components/routes/home.tsx:62
msgid "Active Alerts"
msgstr "Aktywne alerty"
#: src/components/add-system.tsx:74
msgid "Add <0>System</0>"
msgstr "Dodaj <0>system</0>"
#: src/components/add-system.tsx:83
msgid "Add New System"
msgstr "Dodaj nowy system"
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "Dodaj system"
#: src/components/routes/settings/notifications.tsx:156
msgid "Add URL"
msgstr "Dodaj URL"
#: src/components/routes/settings/general.tsx:81
msgid "Adjust display options for charts."
msgstr "Dostosuj opcje wyświetlania wykresów."
#: 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
#: src/components/command-palette.tsx:204
msgid "Admin"
msgstr "Admin"
#: src/components/systems-table/systems-table.tsx:186
msgid "Agent"
msgstr "Agent"
#: src/components/alerts/alert-button.tsx:32
#: src/components/alerts/alert-button.tsx:68
msgid "Alerts"
msgstr "Alerty"
#: src/components/alerts/alert-button.tsx:88
#: src/components/systems-table/systems-table.tsx:317
msgid "All Systems"
msgstr "Wszystkie systemy"
#: src/components/systems-table/systems-table.tsx:261
msgid "Are you sure you want to delete {name}?"
msgstr "Czy na pewno chcesz usunąć {name}?"
#: src/components/command-palette.tsx:186
#: src/components/navbar.tsx:102
msgid "Auth Providers"
msgstr "Dostawcy Autoryzacji"
#: src/components/copy-to-clipboard.tsx:16
msgid "Automatic copy requires a secure context."
msgstr "Automatyczne kopiowanie wymaga bezpiecznego kontekstu."
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "Średnia"
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "Średnie wykorzystanie procesora przez kontenery"
#: src/components/alerts/alerts-system.tsx:204
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "Średnia przekracza <0>{value}{0}</0>"
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "Średnie wykorzystanie procesora w całym systemie"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "Kopie"
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "Przepustowość"
#: src/components/login/auth-form.tsx:313
msgid "Beszel supports OpenID Connect and many OAuth2 authentication providers."
msgstr "Beszel obsługuje OpenID Connect i wielu dostawców uwierzytelniania OAuth2."
#: src/components/routes/settings/notifications.tsx:127
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ń."
#: src/components/add-system.tsx:88
msgid "Binary"
msgstr "Plik binarny"
#: src/components/charts/mem-chart.tsx:89
msgid "Cache / Buffers"
msgstr "Pamięć podręczna / Bufory"
#: src/components/systems-table/systems-table.tsx:272
msgid "Cancel"
msgstr "Anuluj"
#: src/components/routes/settings/config-yaml.tsx:68
msgid "Caution - potential data loss"
msgstr "Uwaga- potencjalna utrata danych."
#: src/components/routes/settings/general.tsx:36
msgid "Change general application options."
msgstr "Zmiana ogólnych ustawień aplikacji."
#: src/components/routes/settings/general.tsx:78
msgid "Chart options"
msgstr "Opcje wykresu"
#: src/components/login/forgot-pass-form.tsx:34
msgid "Check {email} for a reset link."
msgstr "Sprawdź {email}, aby uzyskać link do resetowania."
#: src/components/routes/settings/layout.tsx:40
msgid "Check logs for more details."
msgstr "Sprawdź logi, aby uzyskać więcej informacji."
#: src/components/routes/settings/notifications.tsx:183
msgid "Check your notification service"
msgstr "Sprawdź swój serwis powiadomień"
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "Kliknij, aby skopiować"
#. Context: table columns
#: src/components/systems-table/systems-table.tsx:328
msgid "Columns"
msgstr "Kolumny"
#: src/components/login/forgot-pass-form.tsx:83
#: src/components/login/forgot-pass-form.tsx:89
msgid "Command line instructions"
msgstr "Instrukcje wiersza poleceń"
#: src/components/routes/settings/notifications.tsx:77
msgid "Configure how you receive alert notifications."
msgstr "Skonfiguruj sposób otrzymywania powiadomień."
#: src/components/login/auth-form.tsx:189
#: src/components/login/auth-form.tsx:194
msgid "Confirm password"
msgstr "Potwierdź hasło"
#: src/components/systems-table/systems-table.tsx:278
msgid "Continue"
msgstr "Kontynuuj"
#: src/lib/utils.ts:25
msgid "Copied to clipboard"
msgstr "Skopiowano do schowka"
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "Kopiuj"
#: src/components/systems-table/systems-table.tsx:247
msgid "Copy host"
msgstr "Kopiuj host"
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "Kopiuj polecenie Linux"
#: src/components/copy-to-clipboard.tsx:13
msgid "Copy text"
msgstr "Kopiuj tekst"
#: src/components/systems-table/systems-table.tsx:152
msgid "CPU"
msgstr "Procesor"
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "Użycie procesora"
#: src/components/login/auth-form.tsx:215
msgid "Create account"
msgstr "Utwórz konto"
#. Dark theme
#: src/components/mode-toggle.tsx:21
msgid "Dark"
msgstr "Ciemny"
#: src/components/command-palette.tsx:82
#: src/components/routes/home.tsx:35
msgid "Dashboard"
msgstr "Panel kontrolny"
#: src/components/routes/settings/general.tsx:85
msgid "Default time period"
msgstr "Domyślny przedział czasu"
#: src/components/systems-table/systems-table.tsx:253
msgid "Delete"
msgstr "Usuń"
#: src/components/systems-table/systems-table.tsx:166
msgid "Disk"
msgstr "Dysk"
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "Dysk I/O"
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "Użycie dysku"
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "Wykorzystanie dysku {extraFsName}"
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Wykorzystanie procesora przez Docker"
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Wykorzystanie pamięci przez Docker"
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "Sieć Docker I/O"
#: src/components/command-palette.tsx:125
msgid "Documentation"
msgstr "Dokumentacja"
#: src/components/login/auth-form.tsx:158
msgid "email"
msgstr "e-mail"
#: src/components/login/auth-form.tsx:152
#: src/components/login/forgot-pass-form.tsx:53
msgid "Email"
msgstr "E-mail"
#: src/components/routes/settings/notifications.tsx:91
msgid "Email notifications"
msgstr "Powiadomienia e-mail"
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "Wprowadź adres e-mail, aby zresetować hasło"
#: src/components/routes/settings/notifications.tsx:111
msgid "Enter email address..."
msgstr "Wprowadź adres e-mail..."
#: src/components/login/auth-form.tsx:256
#: src/components/routes/settings/config-yaml.tsx:28
#: src/components/routes/settings/notifications.tsx:187
msgid "Error"
msgstr "Błąd"
#: src/components/routes/home.tsx:81
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}}"
#: 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 "Istniejące systemy, które nie są zdefiniowane w <0>config.yml</0>, zostaną usunięte. Proszę regularnie tworzyć kopie zapasowe."
#: src/components/routes/settings/config-yaml.tsx:93
msgid "Export configuration"
msgstr "Eksportuj konfigurację"
#: src/components/routes/settings/config-yaml.tsx:48
msgid "Export your current systems configuration."
msgstr "Eksportuj aktualną konfigurację systemów."
#: src/lib/utils.ts:38
msgid "Failed to authenticate"
msgstr "Błąd autoryzacji"
#: src/components/routes/settings/layout.tsx:39
#: src/components/routes/settings/notifications.tsx:62
msgid "Failed to save settings"
msgstr "Nie udało się zapisać ustawień"
#: src/components/routes/settings/notifications.tsx:188
msgid "Failed to send test notification"
msgstr "Nie udało się wysłać testowego powiadomienia"
#: src/components/alerts/alerts-system.tsx:27
msgid "Failed to update alert"
msgstr "Nie udało się zaktualizować powiadomienia"
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "Filtruj..."
#: src/components/alerts/alerts-system.tsx:225
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Na <0>{min}</0> {min, plural, one {minutę} other {minut}}"
#: src/components/login/auth-form.tsx:337
msgid "Forgot password?"
msgstr "Zapomniałeś hasła?"
#. Context: General settings
#: src/components/routes/settings/general.tsx:33
#: src/components/routes/settings/layout.tsx:51
msgid "General"
msgstr "Ogólne"
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "Host / adres 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 "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
msgid "Invalid email address."
msgstr "Nieprawidłowy adres e-mail."
#. Linux kernel
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "Jądro"
#: src/components/routes/settings/general.tsx:45
msgid "Language"
msgstr "Język"
#. Light theme
#: src/components/mode-toggle.tsx:16
msgid "Light"
msgstr "Jasny"
#: src/components/navbar.tsx:113
msgid "Log Out"
msgstr "Wyloguj"
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "Logowanie"
#: src/components/login/auth-form.tsx:42
#: src/components/login/forgot-pass-form.tsx:15
msgid "Login attempt failed"
msgstr "Próba logowania nie powiodła się"
#: src/components/command-palette.tsx:157
#: src/components/navbar.tsx:86
msgid "Logs"
msgstr "Logi"
#: src/components/routes/settings/notifications.tsx:80
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."
#: src/components/routes/settings/layout.tsx:85
msgid "Manage display and notification preferences."
msgstr "Zarządzaj preferencjami wyświetlania i powiadomień."
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "Maks. 1 min"
#: src/components/systems-table/systems-table.tsx:159
msgid "Memory"
msgstr "Pamięć"
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "Wykorzystanie pamięci"
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Użycie pamięci przez kontenery Docker."
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "Nazwa"
#: src/components/systems-table/systems-table.tsx:173
msgid "Net"
msgstr "Sieć"
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Ruch sieciowy kontenerów Docker."
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "Ruch sieciowy interfejsów publicznych"
#: src/components/command-palette.tsx:50
msgid "No results found."
msgstr "Brak wyników."
#: src/components/systems-table/systems-table.tsx:400
msgid "No systems found."
msgstr "Nie znaleziono systemów."
#: src/components/command-palette.tsx:111
#: src/components/routes/settings/layout.tsx:56
#: src/components/routes/settings/notifications.tsx:74
msgid "Notifications"
msgstr "Powiadomienia"
#: src/components/login/auth-form.tsx:308
msgid "OAuth 2 / OIDC support"
msgstr "Wsparcie 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 "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:219
msgid "Open menu"
msgstr "Otwórz menu"
#: src/components/login/auth-form.tsx:227
msgid "Or continue with"
msgstr "Lub kontynuuj z"
#: src/components/alerts/alert-button.tsx:109
msgid "Overwrite existing alerts"
msgstr "Nadpisz istniejące alerty"
#: src/components/command-palette.tsx:85
msgid "Page"
msgstr "Strona"
#: src/components/command-palette.tsx:72
msgid "Pages / Settings"
msgstr "Strony / Ustawienia"
#: src/components/login/auth-form.tsx:171
#: src/components/login/auth-form.tsx:176
msgid "Password"
msgstr "Hasło"
#: src/components/login/auth-form.tsx:17
msgid "Password must be at least 10 characters."
msgstr "Hasło musi mieć co najmniej 10 znaków."
#: src/components/login/forgot-pass-form.tsx:33
msgid "Password reset request received"
msgstr "Otrzymane żądanie resetowania hasła"
#: src/components/systems-table/systems-table.tsx:241
msgid "Pause"
msgstr "Pauza"
#: src/components/routes/settings/notifications.tsx:95
msgid "Please <0>configure an SMTP server</0> to ensure alerts are delivered."
msgstr "Proszę <0>skonfigurować serwer SMTP</0>, aby zapewnić dostarczanie powiadomień."
#: src/components/alerts/alerts-system.tsx:28
msgid "Please check logs for more details."
msgstr "Sprawdź logi, aby uzyskać więcej informacji."
#: src/components/login/auth-form.tsx:43
#: src/components/login/forgot-pass-form.tsx:16
msgid "Please check your credentials and try again"
msgstr "Sprawdź swoje poświadczenia i spróbuj ponownie"
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "Utwórz konto administratora"
#: src/components/login/auth-form.tsx:257
msgid "Please enable pop-ups for this site"
msgstr "Włącz wyskakujące okna dla tej strony"
#: src/lib/utils.ts:39
msgid "Please log in again"
msgstr "Zaloguj się ponownie"
#: src/components/login/auth-form.tsx:316
msgid "Please see <0>the documentation</0> for instructions."
msgstr "Proszę zapoznać się z <0>dokumentacją</0>."
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "Zaloguj się na swoje konto"
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "Port"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
msgid "Precise utilization at the recorded time"
msgstr "Dokładne wykorzystanie w zarejestrowanym czasie"
#: src/components/routes/settings/general.tsx:58
msgid "Preferred Language"
msgstr "Preferowany język"
#. Use 'Key' if your language requires many more characters
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "Klucz publiczny"
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "Czytaj"
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "Otrzymane"
#: src/components/login/forgot-pass-form.tsx:76
msgid "Reset Password"
msgstr "Resetuj hasło"
#: src/components/systems-table/systems-table.tsx:236
msgid "Resume"
msgstr "Wznów"
#: src/components/routes/settings/notifications.tsx:117
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."
#: src/components/routes/settings/general.tsx:106
#: src/components/routes/settings/notifications.tsx:167
msgid "Save Settings"
msgstr "Zapisz ustawienia"
#: src/components/navbar.tsx:142
msgid "Search"
msgstr "Szukaj"
#: src/components/command-palette.tsx:47
msgid "Search for systems or settings..."
msgstr "Szukaj systemów lub ustawień..."
#: src/components/alerts/alert-button.tsx:71
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "Zobacz <0>ustawienia powiadomień</0>, aby skonfigurować sposób, w jaki otrzymujesz powiadomienia."
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "Wysłane"
#: src/components/routes/settings/general.tsx:100
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."
#: 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 "Ustawienia"
#: src/components/routes/settings/layout.tsx:33
msgid "Settings saved"
msgstr "Ustawienia zapisane"
#: src/components/login/auth-form.tsx:215
msgid "Sign in"
msgstr "Zaloguj się"
#: src/components/command-palette.tsx:201
msgid "SMTP settings"
msgstr "Ustawienia SMTP"
#: src/lib/utils.ts:282
msgid "Status"
msgstr "Status"
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "Pamięć wymiany używana przez system"
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "Użycie pamięci wymiany"
#. System theme
#: src/components/mode-toggle.tsx:26
#: src/components/systems-table/systems-table.tsx:110
#: src/components/systems-table/systems-table.tsx:121
msgid "System"
msgstr "System"
#: src/components/navbar.tsx:78
msgid "Systems"
msgstr "Systemy"
#: 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 "Systemy mogą być zarządzane w pliku <0>config.yml</0> znajdującym się w Twoim katalogu danych."
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "Temperatura"
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "Temperatury czujników systemowych."
#: src/components/routes/settings/notifications.tsx:211
msgid "Test <0>URL</0>"
msgstr "Test <0>URL</0>"
#: src/components/routes/settings/notifications.tsx:182
msgid "Test notification sent"
msgstr "Testowe powiadomienie wysłane."
#: src/components/add-system.tsx:104
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."
#: src/components/add-system.tsx:95
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."
#: 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 "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:264
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."
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "Przepustowość {extraFsName}"
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "Przepustowość głównego systemu plików"
#: src/components/routes/settings/notifications.tsx:106
msgid "To email(s)"
msgstr "Do e-mail(ów)"
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "Przełącz siatkę"
#: src/components/mode-toggle.tsx:33
msgid "Toggle theme"
msgstr "Zmień motyw"
#: src/lib/utils.ts:317
msgid "Triggers when any sensor exceeds a threshold"
msgstr "Wyzwalane, gdy jakikolwiek czujnik przekroczy ustalony próg."
#: src/lib/utils.ts:310
msgid "Triggers when combined up/down exceeds a threshold"
msgstr "Wyzwalane, gdy łączna wartość w górę/w dół przekroczy próg"
#: src/lib/utils.ts:292
msgid "Triggers when CPU usage exceeds a threshold"
msgstr "Wyzwalane, gdy użycie procesora przekracza próg"
#: src/lib/utils.ts:298
msgid "Triggers when memory usage exceeds a threshold"
msgstr "Wyzwalane, wykorzystanie pamięci przekroczy ustalony próg."
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "Wyzwalane, gdy status przełącza się między stanem aktywnym a nieaktywnym"
#: src/lib/utils.ts:304
msgid "Triggers when usage of any disk exceeds a threshold"
msgstr "Wyzwalane, gdy wykorzystanie któregokolwiek dysku przekroczy ustalony próg"
#: src/components/systems-table/systems-table.tsx:320
msgid "Updated in real time. Click on a system to view information."
msgstr "Aktualizowane w czasie rzeczywistym. Kliknij system, aby zobaczyć informacje."
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "Czas pracy"
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "Wykorzystanie"
#: src/components/routes/system.tsx:424
msgid "Usage of root partition"
msgstr "Użycie partycji głównej"
#: src/components/charts/area-chart.tsx:73
#: src/components/charts/mem-chart.tsx:65
#: src/components/charts/swap-chart.tsx:56
msgid "Used"
msgstr "Używane"
#: src/components/login/auth-form.tsx:138
msgid "username"
msgstr "nazwa użytkownika"
#: src/components/login/auth-form.tsx:131
msgid "Username"
msgstr "Nazwa użytkownika"
#: src/components/command-palette.tsx:143
#: src/components/navbar.tsx:70
msgid "Users"
msgstr "Użytkownicy"
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "Oczekiwanie na wystarczającą liczbę rekordów do wyświetlenia"
#: 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 "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
msgid "Webhook / Push notifications"
msgstr "Webhook / Powiadomienia push"
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "Napisz"
#: src/components/routes/settings/layout.tsx:61
msgid "YAML Config"
msgstr "Konf. YAML"
#: src/components/routes/settings/config-yaml.tsx:45
msgid "YAML Configuration"
msgstr "Konfiguracja YAML"
#: src/components/routes/settings/layout.tsx:34
msgid "Your user settings have been updated."
msgstr "Twoje ustawienia użytkownika zostały zaktualizowane."

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-02 02:14\n"
"PO-Revision-Date: 2024-11-04 20:46\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,11 +18,11 @@ msgstr ""
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
"X-Crowdin-File-ID: 16\n"
#: src/components/routes/system.tsx:242
#: src/components/routes/system.tsx:250
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# dia} other {# dias}}"
#: src/components/routes/system.tsx:240
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# hora} other {# horas}}"
@@ -63,8 +63,8 @@ msgstr "Adicionar <0>Sistema</0>"
msgid "Add New System"
msgstr "Adicionar Novo Sistema"
#: src/components/add-system.tsx:167
#: src/components/add-system.tsx:178
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "Adicionar sistema"
@@ -112,11 +112,11 @@ msgstr "Provedores de Autenticação"
msgid "Automatic copy requires a secure context."
msgstr "A cópia automática requer um contexto seguro."
#: src/components/routes/system.tsx:568
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "Média"
#: src/components/routes/system.tsx:387
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "Utilização média de CPU dos contêineres"
@@ -124,16 +124,24 @@ msgstr "Utilização média de CPU dos contêineres"
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "A média excede <0>{value}{0}</0>"
#: src/components/routes/system.tsx:376
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "Utilização média de CPU em todo o sistema"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "Backups"
#: src/components/routes/system.tsx:436
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "Largura de Banda"
@@ -182,7 +190,7 @@ msgstr "Verifique os logs para mais detalhes."
msgid "Check your notification service"
msgstr "Verifique seu serviço de notificação"
#: src/components/add-system.tsx:153
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "Clique para copiar"
@@ -213,7 +221,7 @@ msgstr "Continuar"
msgid "Copied to clipboard"
msgstr "Copiado para a área de transferência"
#: src/components/add-system.tsx:164
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "Copiar"
@@ -221,7 +229,7 @@ msgstr "Copiar"
msgid "Copy host"
msgstr "Copiar host"
#: src/components/add-system.tsx:175
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "Copiar comando Linux"
@@ -233,8 +241,8 @@ msgstr "Copiar texto"
msgid "CPU"
msgstr "CPU"
#: src/components/charts/area-chart.tsx:52
#: src/components/routes/system.tsx:375
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "Uso de CPU"
@@ -265,29 +273,29 @@ msgstr "Excluir"
msgid "Disk"
msgstr "Disco"
#: src/components/routes/system.tsx:426
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "E/S de Disco"
#: src/components/charts/disk-chart.tsx:74
#: src/components/routes/system.tsx:415
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "Uso de Disco"
#: src/components/routes/system.tsx:495
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "Uso de disco de {extraFsName}"
#: src/components/routes/system.tsx:386
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Uso de CPU do Docker"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Uso de Memória do Docker"
#: src/components/routes/system.tsx:452
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "E/S de Rede do Docker"
@@ -308,7 +316,7 @@ msgstr "Email"
msgid "Email notifications"
msgstr "Notificações por email"
#: src/components/login/login.tsx:36
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "Digite o endereço de email para redefinir a senha"
@@ -355,7 +363,7 @@ msgstr "Falha ao enviar notificação de teste"
msgid "Failed to update alert"
msgstr "Falha ao atualizar alerta"
#: src/components/routes/system.tsx:539
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "Filtrar..."
@@ -374,7 +382,11 @@ msgstr "Esqueceu a senha?"
msgid "General"
msgstr "Geral"
#: src/components/add-system.tsx:119
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "Host / IP"
@@ -387,7 +399,7 @@ msgid "Invalid email address."
msgstr "Endereço de email inválido."
#. Linux kernel
#: src/components/routes/system.tsx:254
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "Kernel"
@@ -404,7 +416,7 @@ msgstr "Claro"
msgid "Log Out"
msgstr "Sair"
#: src/components/login/login.tsx:17
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "Entrar"
@@ -427,7 +439,7 @@ msgid "Manage display and notification preferences."
msgstr "Gerenciar preferências de exibição e notificação."
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:571
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "Máx 1 min"
@@ -435,16 +447,16 @@ msgstr "Máx 1 min"
msgid "Memory"
msgstr "Memória"
#: src/components/routes/system.tsx:397
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "Uso de Memória"
#: src/components/routes/system.tsx:408
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Uso de memória dos contêineres Docker"
#: src/components/add-system.tsx:113
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "Nome"
@@ -452,11 +464,11 @@ msgstr "Nome"
msgid "Net"
msgstr "Rede"
#: src/components/routes/system.tsx:453
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Tráfego de rede dos contêineres Docker"
#: src/components/routes/system.tsx:438
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "Tráfego de rede das interfaces públicas"
@@ -532,7 +544,7 @@ msgstr "Por favor, verifique os logs para mais detalhes."
msgid "Please check your credentials and try again"
msgstr "Por favor, verifique suas credenciais e tente novamente"
#: src/components/login/login.tsx:34
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "Por favor, crie uma conta de administrador"
@@ -548,31 +560,36 @@ msgstr "Por favor, faça login novamente"
msgid "Please see <0>the documentation</0> for instructions."
msgstr "Por favor, veja <0>a documentação</0> para instruções."
#: src/components/login/login.tsx:38
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "Por favor, entre na sua conta"
#: src/components/add-system.tsx:125
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "Porta"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
msgid "Precise utilization at the recorded time"
msgstr "Utilização precisa no momento registrado"
#: src/components/routes/settings/general.tsx:58
msgid "Preferred Language"
msgstr "Idioma Preferido"
#. Use 'Key' if your language requires many more characters
#: src/components/add-system.tsx:131
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "Chave Pública"
#. Context is disk read
#: src/components/charts/area-chart.tsx:56
#: src/components/charts/area-chart.tsx:65
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "Ler"
#. Context is network bytes received (download)
#: src/components/charts/area-chart.tsx:61
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "Recebido"
@@ -605,8 +622,8 @@ msgstr "Pesquisar por sistemas ou configurações..."
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "Veja <0>configurações de notificação</0> para configurar como você recebe alertas."
#. Context is network bytes sent (upload)
#: src/components/charts/area-chart.tsx:60
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "Enviado"
@@ -638,11 +655,11 @@ msgstr "Configurações SMTP"
msgid "Status"
msgstr "Status"
#: src/components/routes/system.tsx:467
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "Espaço de swap usado pelo sistema"
#: src/components/routes/system.tsx:466
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "Uso de Swap"
@@ -661,12 +678,12 @@ msgstr "Sistemas"
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."
#: src/components/routes/system.tsx:477
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "Temperatura"
#: src/components/routes/system.tsx:478
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "Temperaturas dos sensores do sistema"
@@ -694,11 +711,11 @@ msgstr "Em seguida, faça login no backend e redefina a senha da sua conta de us
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."
#: src/components/routes/system.tsx:507
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "Taxa de transferência de {extraFsName}"
#: src/components/routes/system.tsx:427
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "Taxa de transferência do sistema de arquivos raiz"
@@ -706,8 +723,8 @@ msgstr "Taxa de transferência do sistema de arquivos raiz"
msgid "To email(s)"
msgstr "Para email(s)"
#: src/components/routes/system.tsx:350
#: src/components/routes/system.tsx:363
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "Alternar grade"
@@ -731,10 +748,6 @@ msgstr "Dispara quando o uso de CPU excede um limite"
msgid "Triggers when memory usage exceeds a threshold"
msgstr "Dispara quando o uso de memória excede um limite"
#: src/components/routes/system.tsx:398
msgid "Triggers when memory usage exceeds a threshold."
msgstr "Dispara quando o uso de memória excede um limite."
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "Dispara quando o status alterna entre ativo e inativo"
@@ -747,18 +760,21 @@ msgstr "Dispara quando o uso de qualquer disco excede um limite"
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."
#: src/components/routes/system.tsx:253
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "Tempo de Atividade"
#: src/components/routes/system.tsx:494
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "Uso"
#: src/components/routes/system.tsx:415
#: src/components/routes/system.tsx:424
msgid "Usage of root partition"
msgstr "Uso da partição raiz"
#: src/components/charts/area-chart.tsx:73
#: src/components/charts/mem-chart.tsx:65
#: src/components/charts/swap-chart.tsx:56
msgid "Used"
@@ -777,7 +793,7 @@ msgstr "Nome de usuário"
msgid "Users"
msgstr "Usuários"
#: src/components/routes/system.tsx:603
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "Aguardando registros suficientes para exibir"
@@ -789,9 +805,9 @@ msgstr "Quer nos ajudar a melhorar ainda mais nossas traduções? Confira <0>Cro
msgid "Webhook / Push notifications"
msgstr "Notificações Webhook / Push"
#. Context is disk write
#: src/components/charts/area-chart.tsx:55
#: src/components/charts/area-chart.tsx:66
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "Escrever"

File diff suppressed because one or more lines are too long

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: ru\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-02 02:14\n"
"PO-Revision-Date: 2024-11-04 20:46\n"
"Last-Translator: \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"
@@ -18,11 +18,11 @@ msgstr ""
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
"X-Crowdin-File-ID: 16\n"
#: src/components/routes/system.tsx:242
#: src/components/routes/system.tsx:250
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# день} other {# дней}}"
#: src/components/routes/system.tsx:240
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# час} other {# часов}}"
@@ -63,8 +63,8 @@ msgstr "Добавить <0>Систему</0>"
msgid "Add New System"
msgstr "Добавить новую систему"
#: src/components/add-system.tsx:167
#: src/components/add-system.tsx:178
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "Добавить систему"
@@ -112,11 +112,11 @@ msgstr "Поставщики аутентификации"
msgid "Automatic copy requires a secure context."
msgstr "Автоматическое копирование требует безопасного контекста."
#: src/components/routes/system.tsx:568
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "Среднее"
#: src/components/routes/system.tsx:387
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "Среднее использование CPU контейнерами"
@@ -124,16 +124,24 @@ msgstr "Среднее использование CPU контейнерами"
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "Среднее превышает <0>{value}{0}</0>"
#: src/components/routes/system.tsx:376
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "Среднее использование CPU по всей системе"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "Резервные копии"
#: src/components/routes/system.tsx:436
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "Пропускная способность"
@@ -182,7 +190,7 @@ msgstr "Проверьте журналы для получения более
msgid "Check your notification service"
msgstr "Проверьте ваш сервис уведомлений"
#: src/components/add-system.tsx:153
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "Нажмите, чтобы скопировать"
@@ -213,7 +221,7 @@ msgstr "Продолжить"
msgid "Copied to clipboard"
msgstr "Скопировано в буфер обмена"
#: src/components/add-system.tsx:164
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "Копировать"
@@ -221,7 +229,7 @@ msgstr "Копировать"
msgid "Copy host"
msgstr "Копировать хост"
#: src/components/add-system.tsx:175
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "Копировать команду Linux"
@@ -233,8 +241,8 @@ msgstr "Копировать текст"
msgid "CPU"
msgstr "CPU"
#: src/components/charts/area-chart.tsx:52
#: src/components/routes/system.tsx:375
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "Использование CPU"
@@ -265,29 +273,29 @@ msgstr "Удалить"
msgid "Disk"
msgstr "Диск"
#: src/components/routes/system.tsx:426
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "Дисковый ввод/вывод"
#: src/components/charts/disk-chart.tsx:74
#: src/components/routes/system.tsx:415
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "Использование диска"
#: src/components/routes/system.tsx:495
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "Использование диска {extraFsName}"
#: src/components/routes/system.tsx:386
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Использование CPU Docker"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Использование памяти Docker"
#: src/components/routes/system.tsx:452
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "Сетевой ввод/вывод Docker"
@@ -308,7 +316,7 @@ msgstr "Электронная почта"
msgid "Email notifications"
msgstr "Уведомления по электронной почте"
#: src/components/login/login.tsx:36
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "Введите адрес электронной почты для сброса пароля"
@@ -355,7 +363,7 @@ msgstr "Не удалось отправить тестовое уведомле
msgid "Failed to update alert"
msgstr "Не удалось обновить оповещение"
#: src/components/routes/system.tsx:539
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "Фильтр..."
@@ -374,7 +382,11 @@ msgstr "Забыли пароль?"
msgid "General"
msgstr "Общие"
#: src/components/add-system.tsx:119
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "Хост / IP"
@@ -387,7 +399,7 @@ msgid "Invalid email address."
msgstr "Неверный адрес электронной почты."
#. Linux kernel
#: src/components/routes/system.tsx:254
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "Ядро"
@@ -404,7 +416,7 @@ msgstr "Светлая"
msgid "Log Out"
msgstr "Выйти"
#: src/components/login/login.tsx:17
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "Вход"
@@ -427,7 +439,7 @@ msgid "Manage display and notification preferences."
msgstr "Управляйте предпочтениями отображения и уведомлений."
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:571
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "Макс 1 мин"
@@ -435,16 +447,16 @@ msgstr "Макс 1 мин"
msgid "Memory"
msgstr "Память"
#: src/components/routes/system.tsx:397
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "Использование памяти"
#: src/components/routes/system.tsx:408
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Использование памяти контейнерами Docker"
#: src/components/add-system.tsx:113
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "Имя"
@@ -452,11 +464,11 @@ msgstr "Имя"
msgid "Net"
msgstr "Сеть"
#: src/components/routes/system.tsx:453
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Сетевой трафик контейнеров Docker"
#: src/components/routes/system.tsx:438
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "Сетевой трафик публичных интерфейсов"
@@ -532,7 +544,7 @@ msgstr "Пожалуйста, проверьте журналы для полу
msgid "Please check your credentials and try again"
msgstr "Пожалуйста, проверьте свои учетные данные и попробуйте снова"
#: src/components/login/login.tsx:34
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "Пожалуйста, создайте учетную запись администратора"
@@ -548,31 +560,36 @@ msgstr "Пожалуйста, войдите снова"
msgid "Please see <0>the documentation</0> for instructions."
msgstr "Пожалуйста, смотрите <0>документацию</0> для получения инструкций."
#: src/components/login/login.tsx:38
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "Пожалуйста, войдите в свою учетную запись"
#: src/components/add-system.tsx:125
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "Порт"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
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:131
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "Ключ"
#. Context is disk read
#: src/components/charts/area-chart.tsx:56
#: src/components/charts/area-chart.tsx:65
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "Чтение"
#. Context is network bytes received (download)
#: src/components/charts/area-chart.tsx:61
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "Получено"
@@ -605,8 +622,8 @@ msgstr "Поиск систем или настроек..."
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "Смотрите <0>настройки уведомлений</0>, чтобы настроить, как вы получаете оповещения."
#. Context is network bytes sent (upload)
#: src/components/charts/area-chart.tsx:60
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "Отправлено"
@@ -638,11 +655,11 @@ msgstr "Настройки SMTP"
msgid "Status"
msgstr "Статус"
#: src/components/routes/system.tsx:467
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "Используемое системой пространство подкачки"
#: src/components/routes/system.tsx:466
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "Использование подкачки"
@@ -661,12 +678,12 @@ msgstr "Системы"
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
msgstr "Системы могут управляться в файле <0>config.yml</0> внутри вашего каталога данных."
#: src/components/routes/system.tsx:477
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "Температура"
#: src/components/routes/system.tsx:478
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "Температуры датчиков системы"
@@ -694,11 +711,11 @@ msgstr "Затем войдите в бэкенд и сбросьте парол
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:507
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "Пропускная способность {extraFsName}"
#: src/components/routes/system.tsx:427
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "Пропускная способность корневой файловой системы"
@@ -706,8 +723,8 @@ msgstr "Пропускная способность корневой файло
msgid "To email(s)"
msgstr "На электронную почту"
#: src/components/routes/system.tsx:350
#: src/components/routes/system.tsx:363
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "Переключить сетку"
@@ -731,10 +748,6 @@ msgstr "Срабатывает, когда использование CPU пре
msgid "Triggers when memory usage exceeds a threshold"
msgstr "Срабатывает, когда использование памяти превышает порог"
#: src/components/routes/system.tsx:398
msgid "Triggers when memory usage exceeds a threshold."
msgstr "Срабатывает, когда использование памяти превышает порог."
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "Срабатывает, когда статус переключается между включено и выключено"
@@ -747,18 +760,21 @@ msgstr "Срабатывает, когда использование любог
msgid "Updated in real time. Click on a system to view information."
msgstr "Обновляется в реальном времени. Нажмите на систему, чтобы просмотреть информацию."
#: src/components/routes/system.tsx:253
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "Время работы"
#: src/components/routes/system.tsx:494
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "Использование"
#: src/components/routes/system.tsx:415
#: src/components/routes/system.tsx:424
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"
@@ -777,7 +793,7 @@ msgstr "Имя пользователя"
msgid "Users"
msgstr "Пользователи"
#: src/components/routes/system.tsx:603
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "Ожидание достаточного количества записей для отображения"
@@ -789,9 +805,9 @@ msgstr "Хотите помочь нам улучшить наши перево
msgid "Webhook / Push notifications"
msgstr "Webhook / Push уведомления"
#. Context is disk write
#: src/components/charts/area-chart.tsx:55
#: src/components/charts/area-chart.tsx:66
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "Запись"

File diff suppressed because one or more lines are too long

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: tr\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-02 02:14\n"
"PO-Revision-Date: 2024-11-04 20:46\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -18,11 +18,11 @@ msgstr ""
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
"X-Crowdin-File-ID: 16\n"
#: src/components/routes/system.tsx:242
#: src/components/routes/system.tsx:250
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# gün} other {# gün}}"
#: src/components/routes/system.tsx:240
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# saat} other {# saat}}"
@@ -63,8 +63,8 @@ msgstr "<0>Sistem</0> Ekle"
msgid "Add New System"
msgstr "Yeni Sistem Ekle"
#: src/components/add-system.tsx:167
#: src/components/add-system.tsx:178
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "Sistem ekle"
@@ -112,11 +112,11 @@ msgstr "Kimlik Sağlayıcılar"
msgid "Automatic copy requires a secure context."
msgstr "Otomatik kopyalama güvenli bir bağlam gerektirir."
#: src/components/routes/system.tsx:568
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "Ortalama"
#: src/components/routes/system.tsx:387
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "Konteynerlerin ortalama CPU kullanımı"
@@ -124,16 +124,24 @@ msgstr "Konteynerlerin ortalama CPU kullanımı"
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "Ortalama <0>{value}{0}</0> aşıyor"
#: src/components/routes/system.tsx:376
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "Sistem genelinde ortalama CPU kullanımı"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "Yedekler"
#: src/components/routes/system.tsx:436
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "Bant Genişliği"
@@ -182,7 +190,7 @@ msgstr "Daha fazla ayrıntı için günlükleri kontrol edin."
msgid "Check your notification service"
msgstr "Bildirim hizmetinizi kontrol edin"
#: src/components/add-system.tsx:153
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "Kopyalamak için tıklayın"
@@ -213,7 +221,7 @@ msgstr "Devam et"
msgid "Copied to clipboard"
msgstr "Panoya kopyalandı"
#: src/components/add-system.tsx:164
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "Kopyala"
@@ -221,7 +229,7 @@ msgstr "Kopyala"
msgid "Copy host"
msgstr "Ana bilgisayarı kopyala"
#: src/components/add-system.tsx:175
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "Linux komutunu kopyala"
@@ -233,8 +241,8 @@ msgstr "Metni kopyala"
msgid "CPU"
msgstr "CPU"
#: src/components/charts/area-chart.tsx:52
#: src/components/routes/system.tsx:375
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "CPU Kullanımı"
@@ -265,29 +273,29 @@ msgstr "Sil"
msgid "Disk"
msgstr "Disk"
#: src/components/routes/system.tsx:426
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "Disk G/Ç"
#: src/components/charts/disk-chart.tsx:74
#: src/components/routes/system.tsx:415
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "Disk Kullanımı"
#: src/components/routes/system.tsx:495
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "{extraFsName} disk kullanımı"
#: src/components/routes/system.tsx:386
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Docker CPU Kullanımı"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Docker Bellek Kullanımı"
#: src/components/routes/system.tsx:452
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "Docker Ağ G/Ç"
@@ -308,7 +316,7 @@ msgstr "E-posta"
msgid "Email notifications"
msgstr "E-posta bildirimleri"
#: src/components/login/login.tsx:36
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "Şifreyi sıfırlamak için e-posta adresini girin"
@@ -355,7 +363,7 @@ msgstr "Test bildirimi gönderilemedi"
msgid "Failed to update alert"
msgstr "Uyarı güncellenemedi"
#: src/components/routes/system.tsx:539
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "Filtrele..."
@@ -374,7 +382,11 @@ msgstr "Şifrenizi mi unuttunuz?"
msgid "General"
msgstr "Genel"
#: src/components/add-system.tsx:119
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "Host / IP"
@@ -387,7 +399,7 @@ msgid "Invalid email address."
msgstr "Geçersiz e-posta adresi."
#. Linux kernel
#: src/components/routes/system.tsx:254
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "Çekirdek"
@@ -404,7 +416,7 @@ msgstr "Açık"
msgid "Log Out"
msgstr "Çıkış Yap"
#: src/components/login/login.tsx:17
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "Giriş Yap"
@@ -427,7 +439,7 @@ msgid "Manage display and notification preferences."
msgstr "Görüntüleme ve bildirim tercihlerini yönetin."
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:571
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "Maks 1 dk"
@@ -435,16 +447,16 @@ msgstr "Maks 1 dk"
msgid "Memory"
msgstr "Bellek"
#: src/components/routes/system.tsx:397
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "Bellek Kullanımı"
#: src/components/routes/system.tsx:408
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Docker konteynerlerinin bellek kullanımı"
#: src/components/add-system.tsx:113
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "Ad"
@@ -452,11 +464,11 @@ msgstr "Ad"
msgid "Net"
msgstr "Ağ"
#: src/components/routes/system.tsx:453
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Docker konteynerlerinin ağ trafiği"
#: src/components/routes/system.tsx:438
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "Genel arayüzlerin ağ trafiği"
@@ -532,7 +544,7 @@ msgstr "Daha fazla ayrıntı için lütfen günlükleri kontrol edin."
msgid "Please check your credentials and try again"
msgstr "Lütfen kimlik bilgilerinizi kontrol edin ve tekrar deneyin"
#: src/components/login/login.tsx:34
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "Lütfen bir yönetici hesabı oluşturun"
@@ -548,31 +560,36 @@ msgstr "Lütfen tekrar giriş yapın"
msgid "Please see <0>the documentation</0> for instructions."
msgstr "Talimatlar için lütfen <0>dokümantasyonu</0> inceleyin."
#: src/components/login/login.tsx:38
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "Lütfen hesabınıza giriş yapın"
#: src/components/add-system.tsx:125
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "Port"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
msgid "Precise utilization at the recorded time"
msgstr "Kayıtlı zamanda kesin kullanım"
#: src/components/routes/settings/general.tsx:58
msgid "Preferred Language"
msgstr "Tercih Edilen Dil"
#. Use 'Key' if your language requires many more characters
#: src/components/add-system.tsx:131
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "Genel Anahtar"
#. Context is disk read
#: src/components/charts/area-chart.tsx:56
#: src/components/charts/area-chart.tsx:65
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "Oku"
#. Context is network bytes received (download)
#: src/components/charts/area-chart.tsx:61
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "Alındı"
@@ -605,8 +622,8 @@ msgstr "Sistemler veya ayarlar için ara..."
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "Uyarıları nasıl alacağınızı yapılandırmak için <0>bildirim ayarlarını</0> inceleyin."
#. Context is network bytes sent (upload)
#: src/components/charts/area-chart.tsx:60
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "Gönderildi"
@@ -638,11 +655,11 @@ msgstr "SMTP ayarları"
msgid "Status"
msgstr "Durum"
#: src/components/routes/system.tsx:467
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "Sistem tarafından kullanılan takas alanı"
#: src/components/routes/system.tsx:466
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "Takas Kullanımı"
@@ -661,12 +678,12 @@ msgstr "Sistemler"
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."
#: src/components/routes/system.tsx:477
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "Sıcaklık"
#: src/components/routes/system.tsx:478
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "Sistem sensörlerinin sıcaklıkları"
@@ -694,11 +711,11 @@ msgstr "Ardından arka uca giriş yapın ve kullanıcılar tablosunda kullanıc
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."
#: src/components/routes/system.tsx:507
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "{extraFsName} verimliliği"
#: src/components/routes/system.tsx:427
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "Kök dosya sisteminin verimliliği"
@@ -706,8 +723,8 @@ msgstr "Kök dosya sisteminin verimliliği"
msgid "To email(s)"
msgstr "E-posta(lar)a"
#: src/components/routes/system.tsx:350
#: src/components/routes/system.tsx:363
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "Izgarayı değiştir"
@@ -731,10 +748,6 @@ msgstr "CPU kullanımı bir eşiği aştığında tetiklenir"
msgid "Triggers when memory usage exceeds a threshold"
msgstr "Bellek kullanımı bir eşiği aştığında tetiklenir"
#: src/components/routes/system.tsx:398
msgid "Triggers when memory usage exceeds a threshold."
msgstr "Bellek kullanımı bir eşiği aştığında tetiklenir."
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "Durum yukarı ve aşağı arasında değiştiğinde tetiklenir"
@@ -747,18 +760,21 @@ msgstr "Herhangi bir diskin kullanımı bir eşiği aştığında tetiklenir"
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."
#: src/components/routes/system.tsx:253
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "Çalışma Süresi"
#: src/components/routes/system.tsx:494
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "Kullanım"
#: src/components/routes/system.tsx:415
#: src/components/routes/system.tsx:424
msgid "Usage of root partition"
msgstr "Kök bölümün kullanımı"
#: src/components/charts/area-chart.tsx:73
#: src/components/charts/mem-chart.tsx:65
#: src/components/charts/swap-chart.tsx:56
msgid "Used"
@@ -777,7 +793,7 @@ msgstr "Kullanıcı Adı"
msgid "Users"
msgstr "Kullanıcılar"
#: src/components/routes/system.tsx:603
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "Görüntülemek için yeterli kayıt bekleniyor"
@@ -789,9 +805,9 @@ msgstr "Çevirilerimizi daha iyi hale getirmemize yardımcı olmak ister misiniz
msgid "Webhook / Push notifications"
msgstr "Webhook / Anlık bildirimler"
#. Context is disk write
#: src/components/charts/area-chart.tsx:55
#: src/components/charts/area-chart.tsx:66
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "Yaz"

File diff suppressed because one or more lines are too long

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: uk\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-02 02:14\n"
"PO-Revision-Date: 2024-11-04 20:46\n"
"Last-Translator: \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"
@@ -18,13 +18,13 @@ msgstr ""
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
"X-Crowdin-File-ID: 16\n"
#: src/components/routes/system.tsx:242
#: src/components/routes/system.tsx:250
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# день} other {# днів}}"
msgstr "{0, plural, one {# день} few {# дні} many {# днів} other {# дня}}"
#: src/components/routes/system.tsx:240
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# година} other {# годин}}"
msgstr "{hours, plural, one {# година} few {# години} many {# годин} other {# години}}"
#: src/lib/utils.ts:139
msgid "1 hour"
@@ -63,8 +63,8 @@ msgstr "Додати <0>Систему</0>"
msgid "Add New System"
msgstr "Додати нову систему"
#: src/components/add-system.tsx:167
#: src/components/add-system.tsx:178
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "Додати систему"
@@ -112,11 +112,11 @@ msgstr "Постачальники автентифікації"
msgid "Automatic copy requires a secure context."
msgstr "Автоматичне копіювання вимагає безпечного контексту."
#: src/components/routes/system.tsx:568
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "Середнє"
#: src/components/routes/system.tsx:387
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "Середнє використання CPU контейнерами"
@@ -124,16 +124,24 @@ msgstr "Середнє використання CPU контейнерами"
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "Середнє перевищує <0>{value}{0}</0>"
#: src/components/routes/system.tsx:376
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "Середнє використання CPU по всій системі"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "Резервні копії"
#: src/components/routes/system.tsx:436
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "Пропускна здатність"
@@ -182,7 +190,7 @@ msgstr "Перевірте журнали для отримання додатк
msgid "Check your notification service"
msgstr "Перевірте свій сервіс сповіщень"
#: src/components/add-system.tsx:153
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "Натисніть, щоб скопіювати"
@@ -213,7 +221,7 @@ msgstr "Продовжити"
msgid "Copied to clipboard"
msgstr "Скопійовано в буфер обміну"
#: src/components/add-system.tsx:164
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "Копіювати"
@@ -221,7 +229,7 @@ msgstr "Копіювати"
msgid "Copy host"
msgstr "Копіювати хост"
#: src/components/add-system.tsx:175
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "Копіювати команду Linux"
@@ -233,8 +241,8 @@ msgstr "Копіювати текст"
msgid "CPU"
msgstr "ЦП"
#: src/components/charts/area-chart.tsx:52
#: src/components/routes/system.tsx:375
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "Використання ЦП"
@@ -265,29 +273,29 @@ msgstr "Видалити"
msgid "Disk"
msgstr "Диск"
#: src/components/routes/system.tsx:426
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "Дисковий ввід/вивід"
#: src/components/charts/disk-chart.tsx:74
#: src/components/routes/system.tsx:415
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "Використання диска"
#: src/components/routes/system.tsx:495
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "Використання диска {extraFsName}"
#: src/components/routes/system.tsx:386
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Використання ЦП Docker"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Використання пам'яті Docker"
#: src/components/routes/system.tsx:452
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "Мережевий ввід/вивід Docker"
@@ -308,7 +316,7 @@ msgstr "Електронна пошта"
msgid "Email notifications"
msgstr "Сповіщення електронною поштою"
#: src/components/login/login.tsx:36
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "Введіть адресу електронної пошти для скидання пароля"
@@ -355,7 +363,7 @@ msgstr "Не вдалося надіслати тестове сповіщенн
msgid "Failed to update alert"
msgstr "Не вдалося оновити сповіщення"
#: src/components/routes/system.tsx:539
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "Фільтр..."
@@ -374,7 +382,11 @@ msgstr "Забули пароль?"
msgid "General"
msgstr "Загальні"
#: src/components/add-system.tsx:119
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "Хост / IP"
@@ -387,7 +399,7 @@ msgid "Invalid email address."
msgstr "Неправильна адреса електронної пошти."
#. Linux kernel
#: src/components/routes/system.tsx:254
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "Ядро"
@@ -404,7 +416,7 @@ msgstr "Світлий"
msgid "Log Out"
msgstr "Вийти"
#: src/components/login/login.tsx:17
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "Увійти"
@@ -427,7 +439,7 @@ msgid "Manage display and notification preferences."
msgstr "Керуйте параметрами відображення та сповіщень."
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:571
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "Макс 1 хв"
@@ -435,28 +447,28 @@ msgstr "Макс 1 хв"
msgid "Memory"
msgstr "Пам'ять"
#: src/components/routes/system.tsx:397
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "Використання пам'яті"
#: src/components/routes/system.tsx:408
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Використання пам'яті контейнерами Docker"
#: src/components/add-system.tsx:113
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "Ім'я"
#: src/components/systems-table/systems-table.tsx:173
msgid "Net"
msgstr "Мереж"
msgstr "Мережа"
#: src/components/routes/system.tsx:453
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Мережевий трафік контейнерів Docker"
#: src/components/routes/system.tsx:438
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "Мережевий трафік публічних інтерфейсів"
@@ -532,7 +544,7 @@ msgstr "Будь ласка, перевірте журнали для отрим
msgid "Please check your credentials and try again"
msgstr "Будь ласка, перевірте свої облікові дані та спробуйте ще раз"
#: src/components/login/login.tsx:34
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "Будь ласка, створіть адміністративний обліковий запис"
@@ -548,31 +560,36 @@ msgstr "Будь ласка, увійдіть знову"
msgid "Please see <0>the documentation</0> for instructions."
msgstr "Будь ласка, перегляньте <0>документацію</0> для отримання інструкцій."
#: src/components/login/login.tsx:38
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "Будь ласка, увійдіть у свій обліковий запис"
#: src/components/add-system.tsx:125
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "Порт"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
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:131
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "Ключ"
#. Context is disk read
#: src/components/charts/area-chart.tsx:56
#: src/components/charts/area-chart.tsx:65
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "Читання"
#. Context is network bytes received (download)
#: src/components/charts/area-chart.tsx:61
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "Отримано"
@@ -605,8 +622,8 @@ msgstr "Шукати системи або налаштування..."
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "Перегляньте <0>налаштування сповіщень</0>, щоб налаштувати, як ви отримуєте сповіщення."
#. Context is network bytes sent (upload)
#: src/components/charts/area-chart.tsx:60
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "Відправлено"
@@ -638,11 +655,11 @@ msgstr "Налаштування SMTP"
msgid "Status"
msgstr "Статус"
#: src/components/routes/system.tsx:467
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "Область підкачки, використана системою"
#: src/components/routes/system.tsx:466
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "Використання підкачки"
@@ -661,12 +678,12 @@ msgstr "Системи"
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
msgstr "Системи можуть керуватися у файлі <0>config.yml</0> у вашій директорії даних."
#: src/components/routes/system.tsx:477
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "Температура"
#: src/components/routes/system.tsx:478
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "Температури датчиків системи"
@@ -694,11 +711,11 @@ msgstr "Потім увійдіть у бекенд і скиньте парол
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:507
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "Пропускна здатність {extraFsName}"
#: src/components/routes/system.tsx:427
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "Пропускна здатність кореневої файлової системи"
@@ -706,8 +723,8 @@ msgstr "Пропускна здатність кореневої файлово
msgid "To email(s)"
msgstr "На електронну пошту"
#: src/components/routes/system.tsx:350
#: src/components/routes/system.tsx:363
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "Перемкнути сітку"
@@ -721,7 +738,7 @@ msgstr "Спрацьовує, коли будь-який датчик перев
#: src/lib/utils.ts:310
msgid "Triggers when combined up/down exceeds a threshold"
msgstr "Спрацьовує, коли комбіноване підняття/опускання перевищує поріг"
msgstr "Спрацьовує, коли комбіноване підняття/падіння перевищує поріг"
#: src/lib/utils.ts:292
msgid "Triggers when CPU usage exceeds a threshold"
@@ -731,13 +748,9 @@ msgstr "Спрацьовує, коли використання ЦП перев
msgid "Triggers when memory usage exceeds a threshold"
msgstr "Спрацьовує, коли використання пам'яті перевищує поріг"
#: src/components/routes/system.tsx:398
msgid "Triggers when memory usage exceeds a threshold."
msgstr "Спрацьовує, коли використання пам'яті перевищує поріг."
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "Спрацьовує, коли статус переключається між підняттям і опусканням"
msgstr "Спрацьовує, коли статус перемикається між підняттям і падінням"
#: src/lib/utils.ts:304
msgid "Triggers when usage of any disk exceeds a threshold"
@@ -747,18 +760,21 @@ msgstr "Спрацьовує, коли використання будь-яко
msgid "Updated in real time. Click on a system to view information."
msgstr "Оновлюється в реальному часі. Натисніть на систему, щоб переглянути інформацію."
#: src/components/routes/system.tsx:253
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "Час роботи"
#: src/components/routes/system.tsx:494
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "Використання"
#: src/components/routes/system.tsx:415
#: src/components/routes/system.tsx:424
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"
@@ -777,7 +793,7 @@ msgstr "Ім'я користувача"
msgid "Users"
msgstr "Користувачі"
#: src/components/routes/system.tsx:603
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "Очікування достатньої кількості записів для відображення"
@@ -789,9 +805,9 @@ msgstr "Хочете допомогти нам зробити наші пере
msgid "Webhook / Push notifications"
msgstr "Webhook / Push сповіщення"
#. Context is disk write
#: src/components/charts/area-chart.tsx:55
#: src/components/charts/area-chart.tsx:66
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "Запис"

File diff suppressed because one or more lines are too long

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: vi\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-02 02:14\n"
"PO-Revision-Date: 2024-11-04 20:47\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -18,11 +18,11 @@ msgstr ""
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
"X-Crowdin-File-ID: 16\n"
#: src/components/routes/system.tsx:242
#: src/components/routes/system.tsx:250
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# ngày} other {# ngày}}"
#: src/components/routes/system.tsx:240
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# giờ} other {# giờ}}"
@@ -63,8 +63,8 @@ msgstr "Thêm <0>Hệ thống</0>"
msgid "Add New System"
msgstr "Thêm Hệ thống Mới"
#: src/components/add-system.tsx:167
#: src/components/add-system.tsx:178
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "Thêm hệ thống"
@@ -112,11 +112,11 @@ msgstr "Nhà cung cấp Xác thực"
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."
#: src/components/routes/system.tsx:568
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "Trung bình"
#: src/components/routes/system.tsx:387
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "Sử dụng CPU trung bình của các container"
@@ -124,16 +124,24 @@ msgstr "Sử dụng CPU trung bình của các container"
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "Trung bình vượt quá <0>{value}{0}</0>"
#: src/components/routes/system.tsx:376
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "Sử dụng CPU trung bình toàn hệ thống"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "Sao lưu"
#: src/components/routes/system.tsx:436
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "Băng thông"
@@ -182,7 +190,7 @@ msgstr "Kiểm tra nhật ký để biết thêm chi tiết."
msgid "Check your notification service"
msgstr "Kiểm tra dịch vụ thông báo của bạn"
#: src/components/add-system.tsx:153
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "Nhấp để sao chép"
@@ -213,7 +221,7 @@ msgstr "Tiếp tục"
msgid "Copied to clipboard"
msgstr "Đã sao chép vào clipboard"
#: src/components/add-system.tsx:164
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "Sao chép"
@@ -221,7 +229,7 @@ msgstr "Sao chép"
msgid "Copy host"
msgstr "Sao chép máy chủ"
#: src/components/add-system.tsx:175
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "Sao chép lệnh Linux"
@@ -233,8 +241,8 @@ msgstr "Sao chép văn bản"
msgid "CPU"
msgstr "CPU"
#: src/components/charts/area-chart.tsx:52
#: src/components/routes/system.tsx:375
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "Sử dụng CPU"
@@ -265,29 +273,29 @@ msgstr "Xóa"
msgid "Disk"
msgstr "Đĩa"
#: src/components/routes/system.tsx:426
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "Đĩa I/O"
#: src/components/charts/disk-chart.tsx:74
#: src/components/routes/system.tsx:415
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "Sử dụng Đĩa"
#: src/components/routes/system.tsx:495
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "Sử dụng đĩa của {extraFsName}"
#: src/components/routes/system.tsx:386
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Sử dụng CPU Docker"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Sử dụng Bộ nhớ Docker"
#: src/components/routes/system.tsx:452
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "Mạng I/O Docker"
@@ -308,7 +316,7 @@ msgstr "Email"
msgid "Email notifications"
msgstr "Thông báo email"
#: src/components/login/login.tsx:36
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "Nhập địa chỉ email để đặt lại mật khẩu"
@@ -355,7 +363,7 @@ msgstr "Gửi thông báo thử nghiệm thất bại"
msgid "Failed to update alert"
msgstr "Cập nhật cảnh báo thất bại"
#: src/components/routes/system.tsx:539
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "Lọc..."
@@ -374,7 +382,11 @@ msgstr "Quên mật khẩu?"
msgid "General"
msgstr "Chung"
#: src/components/add-system.tsx:119
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "Máy chủ / IP"
@@ -387,7 +399,7 @@ msgid "Invalid email address."
msgstr "Địa chỉ email không hợp lệ."
#. Linux kernel
#: src/components/routes/system.tsx:254
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "Nhân"
@@ -404,7 +416,7 @@ msgstr "Sáng"
msgid "Log Out"
msgstr "Đăng xuất"
#: src/components/login/login.tsx:17
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "Đăng nhập"
@@ -427,7 +439,7 @@ msgid "Manage display and notification preferences."
msgstr "Quản lý tùy chọn hiển thị và thông báo."
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:571
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "Tối đa 1 phút"
@@ -435,16 +447,16 @@ msgstr "Tối đa 1 phút"
msgid "Memory"
msgstr "Bộ nhớ"
#: src/components/routes/system.tsx:397
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "Sử dụng Bộ nhớ"
#: src/components/routes/system.tsx:408
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Sử dụng bộ nhớ của các container Docker"
#: src/components/add-system.tsx:113
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "Tên"
@@ -452,11 +464,11 @@ msgstr "Tên"
msgid "Net"
msgstr "Mạng"
#: src/components/routes/system.tsx:453
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Lưu lượng mạng của các container Docker"
#: src/components/routes/system.tsx:438
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "Lưu lượng mạng của các giao diện công cộng"
@@ -532,7 +544,7 @@ msgstr "Vui lòng kiểm tra nhật ký để biết thêm chi tiết."
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"
#: src/components/login/login.tsx:34
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "Vui lòng tạo một tài khoản quản trị viên"
@@ -548,31 +560,36 @@ msgstr "Vui lòng đăng nhập lại"
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."
#: src/components/login/login.tsx:38
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "Vui lòng đăng nhập vào tài khoản của bạn"
#: src/components/add-system.tsx:125
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "Cổng"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
msgid "Precise utilization at the recorded time"
msgstr "Sử dụng chính xác tại thời điểm ghi nhận"
#: src/components/routes/settings/general.tsx:58
msgid "Preferred Language"
msgstr "Ngôn ngữ Ưa thích"
#. Use 'Key' if your language requires many more characters
#: src/components/add-system.tsx:131
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "Khóa"
#. Context is disk read
#: src/components/charts/area-chart.tsx:56
#: src/components/charts/area-chart.tsx:65
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "Đọc"
#. Context is network bytes received (download)
#: src/components/charts/area-chart.tsx:61
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "Đã nhận"
@@ -605,8 +622,8 @@ msgstr "Tìm kiếm hệ thống hoặc cài đặt..."
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "Xem <0>cài đặt thông báo</0> để cấu hình cách bạn nhận cảnh báo."
#. Context is network bytes sent (upload)
#: src/components/charts/area-chart.tsx:60
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "Đã gửi"
@@ -638,11 +655,11 @@ msgstr "Cài đặt SMTP"
msgid "Status"
msgstr "Trạng thái"
#: src/components/routes/system.tsx:467
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "Không gian hoán đổi được sử dụng bởi hệ thống"
#: src/components/routes/system.tsx:466
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "Sử dụng Hoán đổi"
@@ -661,12 +678,12 @@ msgstr "Các hệ thống"
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."
#: src/components/routes/system.tsx:477
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "Nhiệt độ"
#: src/components/routes/system.tsx:478
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "Nhiệt độ của các cảm biến hệ thống"
@@ -694,11 +711,11 @@ msgstr "Sau đó đăng nhập vào backend và đặt lại mật khẩu tài k
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."
#: src/components/routes/system.tsx:507
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "Thông lượng của {extraFsName}"
#: src/components/routes/system.tsx:427
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "Thông lượng của hệ thống tệp gốc"
@@ -706,8 +723,8 @@ msgstr "Thông lượng của hệ thống tệp gốc"
msgid "To email(s)"
msgstr "Đến email(s)"
#: src/components/routes/system.tsx:350
#: src/components/routes/system.tsx:363
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "Chuyển đổi lưới"
@@ -731,10 +748,6 @@ msgstr "Kích hoạt khi sử dụng CPU vượt quá ngưỡng"
msgid "Triggers when memory usage exceeds a threshold"
msgstr "Kích hoạt khi sử dụng bộ nhớ vượt quá ngưỡng"
#: src/components/routes/system.tsx:398
msgid "Triggers when memory usage exceeds a threshold."
msgstr "Kích hoạt khi sử dụng bộ nhớ vượt quá ngưỡng."
#: src/lib/utils.ts:285
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"
@@ -747,18 +760,21 @@ msgstr "Kích hoạt khi sử dụng bất kỳ đĩa nào vượt quá ngưỡn
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."
#: src/components/routes/system.tsx:253
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "Thời gian hoạt động"
#: src/components/routes/system.tsx:494
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "Sử dụng"
#: src/components/routes/system.tsx:415
#: src/components/routes/system.tsx:424
msgid "Usage of root partition"
msgstr "Sử dụng phân vùng gốc"
#: src/components/charts/area-chart.tsx:73
#: src/components/charts/mem-chart.tsx:65
#: src/components/charts/swap-chart.tsx:56
msgid "Used"
@@ -777,7 +793,7 @@ msgstr "Tên người dùng"
msgid "Users"
msgstr "Người dùng"
#: src/components/routes/system.tsx:603
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "Đang chờ đủ bản ghi để hiển thị"
@@ -789,9 +805,9 @@ msgstr "Muốn giúp chúng tôi cải thiện bản dịch của mình? Xem <0>
msgid "Webhook / Push notifications"
msgstr "Thông báo Webhook / Push"
#. Context is disk write
#: src/components/charts/area-chart.tsx:55
#: src/components/charts/area-chart.tsx:66
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "Ghi"

File diff suppressed because one or more lines are too long

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-02 02:14\n"
"PO-Revision-Date: 2024-11-09 16:57\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -18,11 +18,11 @@ msgstr ""
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
"X-Crowdin-File-ID: 16\n"
#: src/components/routes/system.tsx:242
#: src/components/routes/system.tsx:250
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# 天} other {# 天}}"
#: src/components/routes/system.tsx:240
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# 小时} other {# 小时}}"
@@ -53,20 +53,20 @@ msgstr "操作"
#: src/components/routes/home.tsx:62
msgid "Active Alerts"
msgstr "活动警报"
msgstr "启用的警报"
#: src/components/add-system.tsx:74
msgid "Add <0>System</0>"
msgstr "添加<0>系统</0>"
msgstr "添加<0>客户端</0>"
#: src/components/add-system.tsx:83
msgid "Add New System"
msgstr "添加新系统"
msgstr "添加新客户端"
#: src/components/add-system.tsx:167
#: src/components/add-system.tsx:178
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "添加系统"
msgstr "添加客户端"
#: src/components/routes/settings/notifications.tsx:156
msgid "Add URL"
@@ -87,7 +87,7 @@ msgstr "管理员"
#: src/components/systems-table/systems-table.tsx:186
msgid "Agent"
msgstr "代理"
msgstr "客户端"
#: src/components/alerts/alert-button.tsx:32
#: src/components/alerts/alert-button.tsx:68
@@ -97,7 +97,7 @@ msgstr "警报"
#: src/components/alerts/alert-button.tsx:88
#: src/components/systems-table/systems-table.tsx:317
msgid "All Systems"
msgstr "所有系统"
msgstr "所有客户端"
#: src/components/systems-table/systems-table.tsx:261
msgid "Are you sure you want to delete {name}?"
@@ -106,17 +106,17 @@ msgstr "您确定要删除{name}吗?"
#: src/components/command-palette.tsx:186
#: src/components/navbar.tsx:102
msgid "Auth Providers"
msgstr "认证提供者"
msgstr "第三方认证供应商"
#: src/components/copy-to-clipboard.tsx:16
msgid "Automatic copy requires a secure context."
msgstr "自动复制需要安全上下文。"
msgstr "自动复制所需的安全上下文。"
#: src/components/routes/system.tsx:568
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "平均"
#: src/components/routes/system.tsx:387
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "容器的平均CPU使用率"
@@ -124,27 +124,35 @@ msgstr "容器的平均CPU使用率"
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "平均值超过<0>{value}{0}</0>"
#: src/components/routes/system.tsx:376
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "系统范围内的平均CPU使用率"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "备份"
#: src/components/routes/system.tsx:436
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "带宽"
#: src/components/login/auth-form.tsx:313
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
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:88
msgid "Binary"
@@ -160,11 +168,11 @@ msgstr "取消"
#: src/components/routes/settings/config-yaml.tsx:68
msgid "Caution - potential data loss"
msgstr "注意 - 可能的数据丢失"
msgstr "注意 - 数据可能已经丢失"
#: src/components/routes/settings/general.tsx:36
msgid "Change general application options."
msgstr "更改一般应用程序选项。"
msgstr "更改常规应用程序选项。"
#: src/components/routes/settings/general.tsx:78
msgid "Chart options"
@@ -182,14 +190,14 @@ msgstr "检查日志以获取更多详细信息。"
msgid "Check your notification service"
msgstr "检查您的通知服务"
#: src/components/add-system.tsx:153
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "点击复制"
#. Context: table columns
#: src/components/systems-table/systems-table.tsx:328
msgid "Columns"
msgstr "列"
msgstr "过滤列"
#: src/components/login/forgot-pass-form.tsx:83
#: src/components/login/forgot-pass-form.tsx:89
@@ -213,17 +221,17 @@ msgstr "继续"
msgid "Copied to clipboard"
msgstr "已复制到剪贴板"
#: src/components/add-system.tsx:164
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "复制"
#: src/components/systems-table/systems-table.tsx:247
msgid "Copy host"
msgstr "复制主机"
msgstr "复制主机"
#: src/components/add-system.tsx:175
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "复制Linux命令"
msgstr "复制Linux安装命令"
#: src/components/copy-to-clipboard.tsx:13
msgid "Copy text"
@@ -233,8 +241,8 @@ msgstr "复制文本"
msgid "CPU"
msgstr "CPU"
#: src/components/charts/area-chart.tsx:52
#: src/components/routes/system.tsx:375
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "CPU使用率"
@@ -246,7 +254,7 @@ msgstr "创建账户"
#. Dark theme
#: src/components/mode-toggle.tsx:21
msgid "Dark"
msgstr "深色"
msgstr "深色模式"
#: src/components/command-palette.tsx:82
#: src/components/routes/home.tsx:35
@@ -265,29 +273,29 @@ msgstr "删除"
msgid "Disk"
msgstr "磁盘"
#: src/components/routes/system.tsx:426
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "磁盘I/O"
#: src/components/charts/disk-chart.tsx:74
#: src/components/routes/system.tsx:415
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "磁盘使用"
#: src/components/routes/system.tsx:495
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "{extraFsName}的磁盘使用"
#: src/components/routes/system.tsx:386
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Docker CPU使用"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Docker内存使用"
#: src/components/routes/system.tsx:452
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "Docker网络I/O"
@@ -308,7 +316,7 @@ msgstr "电子邮件"
msgid "Email notifications"
msgstr "电子邮件通知"
#: src/components/login/login.tsx:36
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "输入电子邮件地址以重置密码"
@@ -328,7 +336,7 @@ 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>中定义的现有系统将被删除。请定期备份。"
msgstr "未在<0>config.yml</0>中定义的客户端将被删除。请定期备份。"
#: src/components/routes/settings/config-yaml.tsx:93
msgid "Export configuration"
@@ -355,7 +363,7 @@ msgstr "发送测试通知失败"
msgid "Failed to update alert"
msgstr "更新警报失败"
#: src/components/routes/system.tsx:539
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "过滤..."
@@ -374,7 +382,11 @@ msgstr "忘记密码?"
msgid "General"
msgstr "常规"
#: src/components/add-system.tsx:119
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "主机/IP"
@@ -387,7 +399,7 @@ msgid "Invalid email address."
msgstr "无效的电子邮件地址。"
#. Linux kernel
#: src/components/routes/system.tsx:254
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "内核"
@@ -398,13 +410,13 @@ msgstr "语言"
#. Light theme
#: src/components/mode-toggle.tsx:16
msgid "Light"
msgstr "浅色"
msgstr "浅色模式"
#: src/components/navbar.tsx:113
msgid "Log Out"
msgstr "登出"
#: src/components/login/login.tsx:17
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "登录"
@@ -427,24 +439,24 @@ msgid "Manage display and notification preferences."
msgstr "管理显示和通知偏好。"
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:571
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "最大1分钟"
msgstr "1分钟内最大值"
#: src/components/systems-table/systems-table.tsx:159
msgid "Memory"
msgstr "内存"
#: src/components/routes/system.tsx:397
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "内存使用"
#: src/components/routes/system.tsx:408
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Docker容器的内存使用"
#: src/components/add-system.tsx:113
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "名称"
@@ -452,11 +464,11 @@ msgstr "名称"
msgid "Net"
msgstr "网络"
#: src/components/routes/system.tsx:453
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Docker容器的网络流量"
#: src/components/routes/system.tsx:438
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "公共接口的网络流量"
@@ -488,7 +500,7 @@ msgstr "打开菜单"
#: src/components/login/auth-form.tsx:227
msgid "Or continue with"
msgstr "或继续使用"
msgstr "或使用以下方式登录"
#: src/components/alerts/alert-button.tsx:109
msgid "Overwrite existing alerts"
@@ -532,7 +544,7 @@ msgstr "请检查日志以获取更多详细信息。"
msgid "Please check your credentials and try again"
msgstr "请检查您的凭据并重试"
#: src/components/login/login.tsx:34
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "请创建一个管理员账户"
@@ -548,31 +560,36 @@ msgstr "请重新登录"
msgid "Please see <0>the documentation</0> for instructions."
msgstr "请参阅<0>文档</0>以获取说明。"
#: src/components/login/login.tsx:38
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "请登录您的账户"
#: src/components/add-system.tsx:125
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "端口"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
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:131
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "公钥"
#. Context is disk read
#: src/components/charts/area-chart.tsx:56
#: src/components/charts/area-chart.tsx:65
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "读取"
#. Context is network bytes received (download)
#: src/components/charts/area-chart.tsx:61
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "接收"
@@ -605,8 +622,8 @@ msgstr "搜索系统或设置..."
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "查看<0>通知设置</0>以配置您接收警报的方式。"
#. Context is network bytes sent (upload)
#: src/components/charts/area-chart.tsx:60
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "发送"
@@ -638,13 +655,13 @@ msgstr "SMTP设置"
msgid "Status"
msgstr "状态"
#: src/components/routes/system.tsx:467
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "系统使用的交换空间"
msgstr "系统使用的SWAP空间"
#: src/components/routes/system.tsx:466
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "交换使用"
msgstr "SWAP使用"
#. System theme
#: src/components/mode-toggle.tsx:26
@@ -661,12 +678,12 @@ msgstr "系统"
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
msgstr "系统可以在数据目录中的<0>config.yml</0>文件中管理。"
#: src/components/routes/system.tsx:477
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "温度"
#: src/components/routes/system.tsx:478
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "系统传感器的温度"
@@ -680,11 +697,11 @@ msgstr "测试通知已发送"
#: src/components/add-system.tsx:104
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:95
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>。"
#: src/components/login/forgot-pass-form.tsx:98
msgid "Then log into the backend and reset your user account password in the users table."
@@ -694,11 +711,11 @@ msgstr "然后登录到后台并在用户表中重置您的用户账户密码。
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:507
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "{extraFsName}的吞吐量"
#: src/components/routes/system.tsx:427
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "根文件系统的吞吐量"
@@ -706,8 +723,8 @@ msgstr "根文件系统的吞吐量"
msgid "To email(s)"
msgstr "发送到电子邮件"
#: src/components/routes/system.tsx:350
#: src/components/routes/system.tsx:363
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "切换网格"
@@ -721,7 +738,7 @@ msgstr "当任何传感器超过阈值时触发"
#: src/lib/utils.ts:310
msgid "Triggers when combined up/down exceeds a threshold"
msgstr "当组合的上/下超过阈值时触发"
msgstr "当网络的上/下行速度超过阈值时触发"
#: src/lib/utils.ts:292
msgid "Triggers when CPU usage exceeds a threshold"
@@ -731,34 +748,33 @@ msgstr "当CPU使用率超过阈值时触发"
msgid "Triggers when memory usage exceeds a threshold"
msgstr "当内存使用率超过阈值时触发"
#: src/components/routes/system.tsx:398
msgid "Triggers when memory usage exceeds a threshold."
msgstr "当内存使用率超过阈值时触发。"
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "当状态在上和下之间切换时触发"
msgstr "当状态在上线与掉线之间切换时触发"
#: src/lib/utils.ts:304
msgid "Triggers when usage of any disk exceeds a threshold"
msgstr "当任何磁盘的使用超过阈值时触发"
msgstr "当任何磁盘的使用超过阈值时触发"
#: src/components/systems-table/systems-table.tsx:320
msgid "Updated in real time. Click on a system to view information."
msgstr "实时更新。点击系统查看信息。"
#: src/components/routes/system.tsx:253
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "正常运行时间"
#: src/components/routes/system.tsx:494
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "使用"
#: src/components/routes/system.tsx:415
#: src/components/routes/system.tsx:424
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"
@@ -777,9 +793,9 @@ msgstr "用户名"
msgid "Users"
msgstr "用户"
#: src/components/routes/system.tsx:603
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "等待足够的记录以显示"
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."
@@ -789,9 +805,9 @@ msgstr "想帮助我们改进翻译吗?查看<0>Crowdin</0>以获取更多详
msgid "Webhook / Push notifications"
msgstr "Webhook / 推送通知"
#. Context is disk write
#: src/components/charts/area-chart.tsx:55
#: src/components/charts/area-chart.tsx:66
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "写入"

File diff suppressed because one or more lines are too long

View File

@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: beszel\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-11-02 02:14\n"
"PO-Revision-Date: 2024-11-04 20:47\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional, Hong Kong\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -18,11 +18,11 @@ msgstr ""
"X-Crowdin-File: /main/beszel/site/src/locales/en/en.po\n"
"X-Crowdin-File-ID: 16\n"
#: src/components/routes/system.tsx:242
#: src/components/routes/system.tsx:250
msgid "{0, plural, one {# day} other {# days}}"
msgstr "{0, plural, one {# 天} other {# 天}}"
#: src/components/routes/system.tsx:240
#: src/components/routes/system.tsx:248
msgid "{hours, plural, one {# hour} other {# hours}}"
msgstr "{hours, plural, one {# 小時} other {# 小時}}"
@@ -63,8 +63,8 @@ msgstr "添加<0>系統</0>"
msgid "Add New System"
msgstr "添加新系統"
#: src/components/add-system.tsx:167
#: src/components/add-system.tsx:178
#: src/components/add-system.tsx:161
#: src/components/add-system.tsx:172
msgid "Add system"
msgstr "添加系統"
@@ -112,11 +112,11 @@ msgstr "認證提供者"
msgid "Automatic copy requires a secure context."
msgstr "自動複製需要安全的上下文。"
#: src/components/routes/system.tsx:568
#: src/components/routes/system.tsx:625
msgid "Average"
msgstr "平均"
#: src/components/routes/system.tsx:387
#: src/components/routes/system.tsx:396
msgid "Average CPU utilization of containers"
msgstr "容器的平均CPU使用率"
@@ -124,16 +124,24 @@ msgstr "容器的平均CPU使用率"
msgid "Average exceeds <0>{value}{0}</0>"
msgstr "平均值超過<0>{value}{0}</0>"
#: src/components/routes/system.tsx:376
#: src/components/routes/system.tsx:497
msgid "Average power consumption of GPUs"
msgstr ""
#: src/components/routes/system.tsx:385
msgid "Average system-wide CPU utilization"
msgstr "系統範圍內的平均CPU使用率"
#: src/components/routes/system.tsx:515
msgid "Average utilization of {0}"
msgstr ""
#: src/components/command-palette.tsx:171
#: src/components/navbar.tsx:94
msgid "Backups"
msgstr "備份"
#: src/components/routes/system.tsx:436
#: src/components/routes/system.tsx:441
#: src/lib/utils.ts:307
msgid "Bandwidth"
msgstr "帶寬"
@@ -182,7 +190,7 @@ msgstr "檢查日誌以獲取更多詳細信息。"
msgid "Check your notification service"
msgstr "檢查您的通知服務"
#: src/components/add-system.tsx:153
#: src/components/add-system.tsx:147
msgid "Click to copy"
msgstr "點擊以複製"
@@ -213,7 +221,7 @@ msgstr "繼續"
msgid "Copied to clipboard"
msgstr "已複製到剪貼板"
#: src/components/add-system.tsx:164
#: src/components/add-system.tsx:158
msgid "Copy"
msgstr "複製"
@@ -221,7 +229,7 @@ msgstr "複製"
msgid "Copy host"
msgstr "複製主機"
#: src/components/add-system.tsx:175
#: src/components/add-system.tsx:169
msgid "Copy Linux command"
msgstr "複製Linux命令"
@@ -233,8 +241,8 @@ msgstr "複製文本"
msgid "CPU"
msgstr "CPU"
#: src/components/charts/area-chart.tsx:52
#: src/components/routes/system.tsx:375
#: src/components/charts/area-chart.tsx:56
#: src/components/routes/system.tsx:384
#: src/lib/utils.ts:289
msgid "CPU Usage"
msgstr "CPU使用率"
@@ -265,29 +273,29 @@ msgstr "刪除"
msgid "Disk"
msgstr "磁碟"
#: src/components/routes/system.tsx:426
#: src/components/routes/system.tsx:431
msgid "Disk I/O"
msgstr "磁碟I/O"
#: src/components/charts/disk-chart.tsx:74
#: src/components/routes/system.tsx:415
#: src/components/charts/disk-chart.tsx:79
#: src/components/routes/system.tsx:424
#: src/lib/utils.ts:301
msgid "Disk Usage"
msgstr "磁碟使用"
#: src/components/routes/system.tsx:495
#: src/components/routes/system.tsx:552
msgid "Disk usage of {extraFsName}"
msgstr "{extraFsName}的磁碟使用"
#: src/components/routes/system.tsx:386
#: src/components/routes/system.tsx:395
msgid "Docker CPU Usage"
msgstr "Docker CPU使用"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:416
msgid "Docker Memory Usage"
msgstr "Docker記憶體使用"
#: src/components/routes/system.tsx:452
#: src/components/routes/system.tsx:457
msgid "Docker Network I/O"
msgstr "Docker網絡I/O"
@@ -308,7 +316,7 @@ msgstr "電子郵件"
msgid "Email notifications"
msgstr "電子郵件通知"
#: src/components/login/login.tsx:36
#: src/components/login/login.tsx:38
msgid "Enter email address to reset password"
msgstr "輸入電子郵件地址以重置密碼"
@@ -355,7 +363,7 @@ msgstr "發送測試通知失敗"
msgid "Failed to update alert"
msgstr "更新警報失敗"
#: src/components/routes/system.tsx:539
#: src/components/routes/system.tsx:596
#: src/components/systems-table/systems-table.tsx:324
msgid "Filter..."
msgstr "篩選..."
@@ -374,7 +382,11 @@ msgstr "忘記密碼?"
msgid "General"
msgstr "一般"
#: src/components/add-system.tsx:119
#: src/components/routes/system.tsx:496
msgid "GPU Power Draw"
msgstr ""
#: src/components/add-system.tsx:116
msgid "Host / IP"
msgstr "主機 / IP"
@@ -387,7 +399,7 @@ msgid "Invalid email address."
msgstr "無效的電子郵件地址。"
#. Linux kernel
#: src/components/routes/system.tsx:254
#: src/components/routes/system.tsx:262
msgid "Kernel"
msgstr "內核"
@@ -404,7 +416,7 @@ msgstr "淺色"
msgid "Log Out"
msgstr "登出"
#: src/components/login/login.tsx:17
#: src/components/login/login.tsx:19
msgid "Login"
msgstr "登錄"
@@ -427,7 +439,7 @@ msgid "Manage display and notification preferences."
msgstr "管理顯示和通知偏好。"
#. Chart select field. Please try to keep this short.
#: src/components/routes/system.tsx:571
#: src/components/routes/system.tsx:628
msgid "Max 1 min"
msgstr "最大1分鐘"
@@ -435,16 +447,16 @@ msgstr "最大1分鐘"
msgid "Memory"
msgstr "記憶體"
#: src/components/routes/system.tsx:397
#: src/components/routes/system.tsx:406
#: src/lib/utils.ts:295
msgid "Memory Usage"
msgstr "記憶體使用"
#: src/components/routes/system.tsx:408
#: src/components/routes/system.tsx:417
msgid "Memory usage of docker containers"
msgstr "Docker容器的記憶體使用"
#: src/components/add-system.tsx:113
#: src/components/add-system.tsx:112
msgid "Name"
msgstr "名稱"
@@ -452,11 +464,11 @@ msgstr "名稱"
msgid "Net"
msgstr "網絡"
#: src/components/routes/system.tsx:453
#: src/components/routes/system.tsx:458
msgid "Network traffic of docker containers"
msgstr "Docker容器的網絡流量"
#: src/components/routes/system.tsx:438
#: src/components/routes/system.tsx:443
msgid "Network traffic of public interfaces"
msgstr "公共接口的網絡流量"
@@ -532,7 +544,7 @@ msgstr "請檢查日誌以獲取更多詳細信息。"
msgid "Please check your credentials and try again"
msgstr "請檢查您的憑證並重試"
#: src/components/login/login.tsx:34
#: src/components/login/login.tsx:36
msgid "Please create an admin account"
msgstr "請創建一個管理員帳戶"
@@ -548,31 +560,36 @@ msgstr "請重新登錄"
msgid "Please see <0>the documentation</0> for instructions."
msgstr "請參閱<0>文檔</0>以獲取說明。"
#: src/components/login/login.tsx:38
#: src/components/login/login.tsx:40
msgid "Please sign in to your account"
msgstr "請登錄到您的帳戶"
#: src/components/add-system.tsx:125
#: src/components/add-system.tsx:120
msgid "Port"
msgstr "端口"
#: src/components/routes/system.tsx:407
#: src/components/routes/system.tsx:523
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:131
#: src/components/add-system.tsx:124
msgid "Public Key"
msgstr "公鑰"
#. Context is disk read
#: src/components/charts/area-chart.tsx:56
#: src/components/charts/area-chart.tsx:65
#. Disk read
#: src/components/charts/area-chart.tsx:60
#: src/components/charts/area-chart.tsx:70
msgid "Read"
msgstr "讀取"
#. Context is network bytes received (download)
#: src/components/charts/area-chart.tsx:61
#. Network bytes received (download)
#: src/components/charts/area-chart.tsx:65
msgid "Received"
msgstr "接收"
@@ -605,8 +622,8 @@ msgstr "搜索系統或設置..."
msgid "See <0>notification settings</0> to configure how you receive alerts."
msgstr "查看<0>通知設置</0>以配置您接收警報的方式。"
#. Context is network bytes sent (upload)
#: src/components/charts/area-chart.tsx:60
#. Network bytes sent (upload)
#: src/components/charts/area-chart.tsx:64
msgid "Sent"
msgstr "發送"
@@ -638,11 +655,11 @@ msgstr "SMTP設置"
msgid "Status"
msgstr "狀態"
#: src/components/routes/system.tsx:467
#: src/components/routes/system.tsx:473
msgid "Swap space used by the system"
msgstr "系統使用的交換空間"
#: src/components/routes/system.tsx:466
#: src/components/routes/system.tsx:472
msgid "Swap Usage"
msgstr "交換使用"
@@ -661,12 +678,12 @@ msgstr "系統"
msgid "Systems may be managed in a <0>config.yml</0> file inside your data directory."
msgstr "系統可以在您的數據目錄中的<0>config.yml</0>文件中管理。"
#: src/components/routes/system.tsx:477
#: src/components/routes/system.tsx:484
#: src/lib/utils.ts:314
msgid "Temperature"
msgstr "溫度"
#: src/components/routes/system.tsx:478
#: src/components/routes/system.tsx:485
msgid "Temperatures of system sensors"
msgstr "系統傳感器的溫度"
@@ -694,11 +711,11 @@ msgstr "然後登錄到後端並在用戶表中重置您的用戶帳戶密碼。
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:507
#: src/components/routes/system.tsx:564
msgid "Throughput of {extraFsName}"
msgstr "{extraFsName}的吞吐量"
#: src/components/routes/system.tsx:427
#: src/components/routes/system.tsx:432
msgid "Throughput of root filesystem"
msgstr "根文件系統的吞吐量"
@@ -706,8 +723,8 @@ msgstr "根文件系統的吞吐量"
msgid "To email(s)"
msgstr "發送到電子郵件"
#: src/components/routes/system.tsx:350
#: src/components/routes/system.tsx:363
#: src/components/routes/system.tsx:359
#: src/components/routes/system.tsx:372
msgid "Toggle grid"
msgstr "切換網格"
@@ -731,10 +748,6 @@ msgstr "當CPU使用率超過閾值時觸發"
msgid "Triggers when memory usage exceeds a threshold"
msgstr "當記憶體使用率超過閾值時觸發"
#: src/components/routes/system.tsx:398
msgid "Triggers when memory usage exceeds a threshold."
msgstr "當記憶體使用率超過閾值時觸發。"
#: src/lib/utils.ts:285
msgid "Triggers when status switches between up and down"
msgstr "當狀態在上和下之間切換時觸發"
@@ -747,18 +760,21 @@ msgstr "當任何磁碟的使用超過閾值時觸發"
msgid "Updated in real time. Click on a system to view information."
msgstr "實時更新。點擊系統查看信息。"
#: src/components/routes/system.tsx:253
#: src/components/routes/system.tsx:261
msgid "Uptime"
msgstr "正常運行時間"
#: src/components/routes/system.tsx:494
#: src/components/charts/area-chart.tsx:73
#: src/components/routes/system.tsx:514
#: src/components/routes/system.tsx:551
msgid "Usage"
msgstr "使用"
#: src/components/routes/system.tsx:415
#: src/components/routes/system.tsx:424
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"
@@ -777,7 +793,7 @@ msgstr "用戶名"
msgid "Users"
msgstr "用戶"
#: src/components/routes/system.tsx:603
#: src/components/routes/system.tsx:662
msgid "Waiting for enough records to display"
msgstr "等待足夠的記錄以顯示"
@@ -789,9 +805,9 @@ msgstr "想幫助我們改進翻譯嗎?查看<0>Crowdin</0>以獲取更多詳
msgid "Webhook / Push notifications"
msgstr "Webhook / 推送通知"
#. Context is disk write
#: src/components/charts/area-chart.tsx:55
#: src/components/charts/area-chart.tsx:66
#. Disk write
#: src/components/charts/area-chart.tsx:59
#: src/components/charts/area-chart.tsx:69
msgid "Write"
msgstr "寫入"

File diff suppressed because one or more lines are too long

View File

@@ -34,6 +34,8 @@ export interface SystemInfo {
b: number
/** agent version */
v: string
/** system is using podman */
p?: boolean
}
export interface SystemStats {
@@ -81,6 +83,21 @@ export interface SystemStats {
t?: Record<string, number>
/** extra filesystems */
efs?: Record<string, ExtraFsStats>
/** GPU data */
g?: Record<string, GPUData>
}
export interface GPUData {
/** name */
n: string
/** memory used (mb) */
mu?: number
/** memory total (mb) */
mt?: number
/** usage (%) */
u: number
/** power (w) */
p?: number
}
export interface ExtraFsStats {

View File

@@ -8,7 +8,7 @@ module.exports = {
center: true,
padding: "1rem",
screens: {
"2xl": "1400px",
"2xl": "1420px",
},
},
extend: {

View File

@@ -1,6 +1,6 @@
package beszel
const (
Version = "0.7.0"
Version = "0.8.0"
AppName = "beszel"
)

View File

@@ -61,7 +61,7 @@ If you don't need network stats, remove that line from the compose file and map
### 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. The agent installer will be built into the web UI in the future.
> 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.
@@ -168,8 +168,8 @@ Mount a folder from the target filesystem in the container's `/extra-filesystems
```yaml
volumes:
- /mnt/disk1/.beszel:/extra-filesystems/disk1:ro
- /dev/mmcblk0/.beszel:/extra-filesystems/sd-card:ro
- /mnt/disk1/.beszel:/extra-filesystems/sdb1:ro
- /dev/mmcblk0/.beszel:/extra-filesystems/mmcblk0:ro
```
### Binary

View File

@@ -7,8 +7,7 @@ services:
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
# monitor other disks / partitions by mounting a folder in /extra-filesystems
# - /mnt/disk1/.beszel:/extra-filesystems/disk1:ro
# - /mnt/disk/.beszel:/extra-filesystems/sda1:ro
environment:
PORT: 45876
KEY: 'ssh-ed25519 YOUR_PUBLIC_KEY'
# FILESYSTEM: /dev/sda1 # override the root partition / device for disk I/O stats

View File

@@ -1,4 +1,27 @@
#!/bin/bash
#!/bin/sh
version=0.0.1
# Define default values
PORT=45876
UNINSTALL=false
# Read command line options
while getopts "k:p:uh" opt; do
case $opt in
k) KEY="$OPTARG";;
p) PORT="$OPTARG";;
u) UNINSTALL=true;;
h) printf "Beszel Agent installation script\n\n"
printf "Usage: ./install-agent.sh [options]\n\n"
printf "Options: \n"
printf " -k : SSH key (required, or interactive if not provided)\n"
printf " -p : Port (default: $PORT)\n"
printf " -u : Uninstall Beszel Agent\n"
printf " -h : Display this help message\n"
exit 0;;
?) echo "Invalid option: -$OPTARG"; exit 1;;
esac
done
# Check if running as root
if [ "$(id -u)" != "0" ]; then
@@ -12,106 +35,91 @@ if [ "$(id -u)" != "0" ]; then
fi
fi
version=0.0.1
# Define default values
PORT=45876
# Read command line options
while getopts ":k:p:uh" opt; do
case $opt in
k) KEY="$OPTARG";;
p) PORT="$OPTARG";;
u) UNINSTALL="true";;
h) printf "Beszel Agent installation script\n\n"
printf "Usage: ./install-agent.sh [options]\n\n"
printf "Options: \n"
printf " -k : SSH key (required, or interactive if not provided)\n"
printf " -p : Port (default: $PORT)\n"
printf " -u : Uninstall the Beszel Agent\n"
printf " -h : Display this help message\n"
exit 0;;
\?) echo "Invalid option: -$OPTARG"; exit 1;;
esac
done
if [ "$UNINSTALL" = "true" ]; then
# Stop and disable the Beszel Agent service
echo "Stopping and disabling the Beszel Agent service..."
# Uninstall process
if [ "$UNINSTALL" = true ]; then
echo "Stopping and disabling the agent service..."
systemctl stop beszel-agent.service
systemctl disable beszel-agent.service
# Remove the systemd service file
echo "Removing the systemd service file..."
rm /etc/systemd/system/beszel-agent.service
# Reload the systemd daemon
echo "Reloading the systemd daemon..."
# Remove the update timer and service if they exist
echo "Removing the daily update service and timer..."
systemctl stop beszel-agent-update.timer 2>/dev/null
systemctl disable beszel-agent-update.timer 2>/dev/null
rm -f /etc/systemd/system/beszel-agent-update.service
rm -f /etc/systemd/system/beszel-agent-update.timer
systemctl daemon-reload
# Remove the Beszel Agent directory
echo "Removing the Beszel Agent directory..."
rm -rf /opt/beszel-agent
# Remove the dedicated user for the Beszel Agent service
echo "Removing the dedicated user for the Beszel Agent service..."
echo "Removing the dedicated user for the agent service..."
killall beszel-agent
userdel beszel
echo "The Beszel Agent has been uninstalled successfully!"
echo "Beszel Agent has been uninstalled successfully!"
exit 0
fi
# Function to check if a package is installed
package_installed() {
command -v "$1" >/dev/null 2>&1
}
# Check for package manager and install necessary packages if not installed
if package_installed apt-get; then
if ! package_installed tar || ! package_installed curl; then
apt-get update
apt-get install -y tar curl
fi
elif package_installed yum; then
if ! package_installed tar || ! package_installed curl; then
yum install -y tar curl
fi
elif package_installed pacman; then
if ! package_installed tar || ! package_installed curl; then
pacman -Sy --noconfirm tar curl
fi
else
# Function to check if a package is installed
package_installed() {
command -v "$1" >/dev/null 2>&1
}
echo "Warning: Please ensure 'tar' and 'curl' are installed."
fi
# Check for package manager and install necessary packages if not installed
if package_installed apt-get; then
if ! package_installed tar || ! package_installed curl; then
apt-get update
apt-get install -y tar curl
fi
elif package_installed yum; then
if ! package_installed tar || ! package_installed curl; then
yum install -y tar curl
fi
elif package_installed pacman; then
if ! package_installed tar || ! package_installed curl; then
pacman -Sy --noconfirm tar curl
fi
else
echo "Warning: Please ensure 'tar' and 'curl' are installed."
fi
# If no SSH key is provided, ask for the SSH key interactively
if [ -z "$KEY" ]; then
printf "Enter your SSH key: "
read KEY
fi
# If no SSH key is provided, ask for the SSH key interactively
if [ -z "$KEY" ]; then
read -p "Enter your SSH key: " KEY
fi
# Create a dedicated user for the service if it doesn't exist
if ! id -u beszel > /dev/null 2>&1; then
echo "Creating a dedicated user for the Beszel Agent service..."
useradd -M -s /bin/false beszel
fi
# Add the user to the docker group to allow access to the Docker socket
usermod -aG docker beszel
# Create a dedicated user for the service if it doesn't exist
if ! id -u beszel > /dev/null 2>&1; then
echo "Creating a dedicated user for the Beszel Agent service..."
useradd -M -s /bin/false beszel
fi
# Add the user to the docker group to allow access to the Docker socket
usermod -aG docker beszel
# Create the directory for the Beszel Agent
if [ ! -d "/opt/beszel-agent" ]; then
echo "Creating the directory for the Beszel Agent..."
mkdir -p /opt/beszel-agent
chown beszel:beszel /opt/beszel-agent
chmod 755 /opt/beszel-agent
fi
# Create the directory for the Beszel Agent
if [ ! -d "/opt/beszel-agent" ]; then
echo "Creating the directory for the Beszel Agent..."
mkdir -p /opt/beszel-agent
chown beszel:beszel /opt/beszel-agent
chmod 755 /opt/beszel-agent
fi
# Download and install the Beszel Agent
echo "Downloading and installing the agent..."
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
mv ./beszel-agent /opt/beszel-agent/beszel-agent
chown beszel:beszel /opt/beszel-agent/beszel-agent
chmod 755 /opt/beszel-agent/beszel-agent
# Download and install the Beszel Agent
echo "Downloading and installing the Beszel Agent..."
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
mv ./beszel-agent /opt/beszel-agent/beszel-agent
chown beszel:beszel /opt/beszel-agent/beszel-agent
chmod 755 /opt/beszel-agent/beszel-agent
# Create the systemd service
echo "Creating the systemd service for the Beszel Agent..."
tee /etc/systemd/system/beszel-agent.service <<EOF
# Create the systemd service
echo "Creating the systemd service for the agent..."
cat > /etc/systemd/system/beszel-agent.service << EOF
[Unit]
Description=Beszel Agent Service
After=network.target
@@ -128,21 +136,56 @@ Restart=always
WantedBy=multi-user.target
EOF
# Load and start the service
printf "\nLoading and starting the Beszel Agent service...\n"
systemctl daemon-reload
systemctl enable beszel-agent.service
systemctl start beszel-agent.service
# Load and start the service
printf "\nLoading and starting the agent service...\n"
systemctl daemon-reload
systemctl enable beszel-agent.service
systemctl start beszel-agent.service
# Wait for the service to start or fail
sleep 1
# Prompt for auto-update setup
printf "\nWould you like to enable automatic daily updates for beszel-agent? (y/n): "
read AUTO_UPDATE
case "$AUTO_UPDATE" in
[Yy]*)
echo "Setting up daily automatic updates for beszel-agent..."
# Check if the service is running
if [ "$(systemctl is-active beszel-agent.service)" != "active" ]; then
echo "Error: The Beszel Agent service is not running."
echo "$(systemctl status beszel-agent.service)"
exit 1
fi
# Create systemd service for the daily update
cat > /etc/systemd/system/beszel-agent-update.service << EOF
[Unit]
Description=Update beszel-agent if needed
Wants=beszel-agent.service
echo "The Beszel Agent has been installed and configured successfully! It is now running on port $PORT."
[Service]
Type=oneshot
ExecStart=/bin/sh -c '/opt/beszel-agent/beszel-agent update | grep -q "Successfully updated" && systemctl restart beszel-agent'
EOF
# Create systemd timer for the daily update
cat > /etc/systemd/system/beszel-agent-update.timer << EOF
[Unit]
Description=Run beszel-agent update daily
[Timer]
OnCalendar=daily
Persistent=true
RandomizedDelaySec=4h
[Install]
WantedBy=timers.target
EOF
systemctl daemon-reload
systemctl enable --now beszel-agent-update.timer
printf "\nAutomatic daily updates have been enabled.\n"
;;
esac
# Wait for the service to start or fail
if [ "$(systemctl is-active beszel-agent.service)" != "active" ]; then
echo "Error: The Beszel Agent service is not running."
echo "$(systemctl status beszel-agent.service)"
exit 1
fi
printf "\n\033[32mBeszel Agent has been installed successfully! It is now running on port $PORT.\033[0m\n"