Compare commits

...

9 Commits

Author SHA1 Message Date
henrygd
806c4e51c5 v0.12.0-beta2 release 2025-07-12 21:19:57 -04:00
henrygd
6520783fe9 small ui tweaks 2025-07-12 21:16:40 -04:00
henrygd
48c8a3a4a5 update package-lock.json 2025-07-12 21:06:01 -04:00
henrygd
e0c839f78c add skip_upload: auto to goreleaser homebrew config 2025-07-12 19:56:48 -04:00
NeMeow
1ba362bafe Add 5m and 10m load avg alerts and table values (#816)
Co-authored-by: henrygd <hank@henrygd.me>
2025-07-12 19:47:33 -04:00
henrygd
b5d55ead4a send websocket close message to agent 2025-07-12 18:49:40 -04:00
henrygd
4f879ccc66 Fix universal tokens registering multiple systems 2025-07-12 17:11:53 -04:00
henrygd
cd9e0f7b5b fix typo in install scripts 2025-07-10 15:10:44 -04:00
henrygd
780644eeae Update translations on tokens page 2025-07-08 21:32:16 -04:00
56 changed files with 3424 additions and 2897 deletions

View File

@@ -119,8 +119,8 @@ scoops:
repository: repository:
owner: henrygd owner: henrygd
name: beszel-scoops name: beszel-scoops
homepage: 'https://beszel.dev' homepage: "https://beszel.dev"
description: 'Agent for Beszel, a lightweight server monitoring platform.' description: "Agent for Beszel, a lightweight server monitoring platform."
license: MIT license: MIT
# # Needs choco installed, so doesn't build on linux / default gh workflow :( # # Needs choco installed, so doesn't build on linux / default gh workflow :(
@@ -152,9 +152,10 @@ brews:
repository: repository:
owner: henrygd owner: henrygd
name: homebrew-beszel name: homebrew-beszel
homepage: 'https://beszel.dev' homepage: "https://beszel.dev"
description: 'Agent for Beszel, a lightweight server monitoring platform.' description: "Agent for Beszel, a lightweight server monitoring platform."
license: MIT license: MIT
skip_upload: auto
extra_install: | extra_install: |
(bin/"beszel-agent-launcher").write <<~EOS (bin/"beszel-agent-launcher").write <<~EOS
#!/bin/bash #!/bin/bash
@@ -181,12 +182,12 @@ winget:
package_identifier: henrygd.beszel-agent package_identifier: henrygd.beszel-agent
publisher: henrygd publisher: henrygd
license: MIT license: MIT
license_url: 'https://github.com/henrygd/beszel/blob/main/LICENSE' license_url: "https://github.com/henrygd/beszel/blob/main/LICENSE"
copyright: '2025 henrygd' copyright: "2025 henrygd"
homepage: 'https://beszel.dev' homepage: "https://beszel.dev"
release_notes_url: 'https://github.com/henrygd/beszel/releases/tag/v{{ .Version }}' release_notes_url: "https://github.com/henrygd/beszel/releases/tag/v{{ .Version }}"
publisher_support_url: 'https://github.com/henrygd/beszel/issues' publisher_support_url: "https://github.com/henrygd/beszel/issues"
short_description: 'Agent for Beszel, a lightweight server monitoring platform.' short_description: "Agent for Beszel, a lightweight server monitoring platform."
skip_upload: auto skip_upload: auto
description: | description: |
Beszel is a lightweight server monitoring platform that includes Docker Beszel is a lightweight server monitoring platform that includes Docker
@@ -218,5 +219,5 @@ changelog:
sort: asc sort: asc
filters: filters:
exclude: exclude:
- '^docs:' - "^docs:"
- '^test:' - "^test:"

View File

@@ -475,7 +475,7 @@ func TestWriteToSessionEncoding(t *testing.T) {
}, },
{ {
name: "matching beta version should use CBOR", name: "matching beta version should use CBOR",
hubVersion: "0.12.0-beta1", hubVersion: "0.12.0-beta2",
expectedUsesCbor: true, expectedUsesCbor: true,
}, },
} }

View File

@@ -14,6 +14,7 @@ import (
"github.com/shirou/gopsutil/v4/cpu" "github.com/shirou/gopsutil/v4/cpu"
"github.com/shirou/gopsutil/v4/disk" "github.com/shirou/gopsutil/v4/disk"
"github.com/shirou/gopsutil/v4/host" "github.com/shirou/gopsutil/v4/host"
"github.com/shirou/gopsutil/v4/load"
"github.com/shirou/gopsutil/v4/mem" "github.com/shirou/gopsutil/v4/mem"
psutilNet "github.com/shirou/gopsutil/v4/net" psutilNet "github.com/shirou/gopsutil/v4/net"
) )
@@ -77,6 +78,16 @@ func (a *Agent) getSystemStats() system.Stats {
systemStats.Cpu = twoDecimals(cpuPct[0]) systemStats.Cpu = twoDecimals(cpuPct[0])
} }
// load average
if avgstat, err := load.Avg(); err == nil {
systemStats.LoadAvg1 = twoDecimals(avgstat.Load1)
systemStats.LoadAvg5 = twoDecimals(avgstat.Load5)
systemStats.LoadAvg15 = twoDecimals(avgstat.Load15)
slog.Debug("Load average", "5m", systemStats.LoadAvg5, "15m", systemStats.LoadAvg15)
} else {
slog.Error("Error getting load average", "err", err)
}
// memory // memory
if v, err := mem.VirtualMemory(); err == nil { if v, err := mem.VirtualMemory(); err == nil {
// swap // swap
@@ -240,6 +251,8 @@ func (a *Agent) getSystemStats() system.Stats {
// update base system info // update base system info
a.systemInfo.Cpu = systemStats.Cpu a.systemInfo.Cpu = systemStats.Cpu
a.systemInfo.LoadAvg5 = systemStats.LoadAvg5
a.systemInfo.LoadAvg15 = systemStats.LoadAvg15
a.systemInfo.MemPct = systemStats.MemPct a.systemInfo.MemPct = systemStats.MemPct
a.systemInfo.DiskPct = systemStats.DiskPct a.systemInfo.DiskPct = systemStats.DiskPct
a.systemInfo.Uptime, _ = host.Uptime() a.systemInfo.Uptime, _ = host.Uptime()

View File

@@ -47,6 +47,8 @@ type SystemAlertStats struct {
NetSent float64 `json:"ns"` NetSent float64 `json:"ns"`
NetRecv float64 `json:"nr"` NetRecv float64 `json:"nr"`
Temperatures map[string]float32 `json:"t"` Temperatures map[string]float32 `json:"t"`
LoadAvg5 float64 `json:"l5"`
LoadAvg15 float64 `json:"l15"`
} }
type SystemAlertData struct { type SystemAlertData struct {

View File

@@ -54,6 +54,12 @@ func (am *AlertManager) HandleSystemAlerts(systemRecord *core.Record, data *syst
} }
val = data.Info.DashboardTemp val = data.Info.DashboardTemp
unit = "°C" unit = "°C"
case "LoadAvg5":
val = data.Info.LoadAvg5
unit = ""
case "LoadAvg15":
val = data.Info.LoadAvg15
unit = ""
} }
triggered := alertRecord.GetBool("triggered") triggered := alertRecord.GetBool("triggered")
@@ -190,6 +196,10 @@ func (am *AlertManager) HandleSystemAlerts(systemRecord *core.Record, data *syst
} }
alert.mapSums[key] += temp alert.mapSums[key] += temp
} }
case "LoadAvg5":
alert.val += stats.LoadAvg5
case "LoadAvg15":
alert.val += stats.LoadAvg15
default: default:
continue continue
} }
@@ -247,6 +257,10 @@ func (am *AlertManager) sendSystemAlert(alert SystemAlertData) {
if alert.name == "Disk" { if alert.name == "Disk" {
alert.name += " usage" alert.name += " usage"
} }
// format LoadAvg5 and LoadAvg15
if after, ok := strings.CutPrefix(alert.name, "LoadAvg"); ok {
alert.name = after + "m Load"
}
// make title alert name lowercase if not CPU // make title alert name lowercase if not CPU
titleAlertName := alert.name titleAlertName := alert.name

View File

@@ -31,6 +31,9 @@ type Stats struct {
Temperatures map[string]float64 `json:"t,omitempty" cbor:"20,keyasint,omitempty"` Temperatures map[string]float64 `json:"t,omitempty" cbor:"20,keyasint,omitempty"`
ExtraFs map[string]*FsStats `json:"efs,omitempty" cbor:"21,keyasint,omitempty"` ExtraFs map[string]*FsStats `json:"efs,omitempty" cbor:"21,keyasint,omitempty"`
GPUData map[string]GPUData `json:"g,omitempty" cbor:"22,keyasint,omitempty"` GPUData map[string]GPUData `json:"g,omitempty" cbor:"22,keyasint,omitempty"`
LoadAvg1 float64 `json:"l1,omitempty" cbor:"23,keyasint,omitempty,omitzero"`
LoadAvg5 float64 `json:"l5,omitempty" cbor:"24,keyasint,omitempty,omitzero"`
LoadAvg15 float64 `json:"l15,omitempty" cbor:"25,keyasint,omitempty,omitzero"`
} }
type GPUData struct { type GPUData struct {
@@ -89,6 +92,8 @@ type Info struct {
GpuPct float64 `json:"g,omitempty" cbor:"12,keyasint,omitempty"` GpuPct float64 `json:"g,omitempty" cbor:"12,keyasint,omitempty"`
DashboardTemp float64 `json:"dt,omitempty" cbor:"13,keyasint,omitempty"` DashboardTemp float64 `json:"dt,omitempty" cbor:"13,keyasint,omitempty"`
Os Os `json:"os" cbor:"14,keyasint"` Os Os `json:"os" cbor:"14,keyasint"`
LoadAvg5 float64 `json:"l5,omitempty" cbor:"15,keyasint,omitempty,omitzero"`
LoadAvg15 float64 `json:"l15,omitempty" cbor:"16,keyasint,omitempty,omitzero"`
} }
// Final data structure to return to the hub // Final data structure to return to the hub

View File

@@ -5,10 +5,10 @@ import (
"beszel/internal/hub/expirymap" "beszel/internal/hub/expirymap"
"beszel/internal/hub/ws" "beszel/internal/hub/ws"
"errors" "errors"
"fmt"
"net" "net"
"net/http" "net/http"
"strings" "strings"
"sync"
"time" "time"
"github.com/blang/semver" "github.com/blang/semver"
@@ -17,118 +17,96 @@ import (
"github.com/pocketbase/pocketbase/core" "github.com/pocketbase/pocketbase/core"
) )
// tokenMap maps tokens to user IDs for universal tokens // agentConnectRequest holds information related to an agent's connection attempt.
var tokenMap *expirymap.ExpiryMap[string]
type agentConnectRequest struct { type agentConnectRequest struct {
hub *Hub
req *http.Request
res http.ResponseWriter
token string token string
agentSemVer semver.Version agentSemVer semver.Version
// for universal token // isUniversalToken is true if the token is a universal token.
isUniversalToken bool isUniversalToken bool
userId string // userId is the user ID associated with the universal token.
remoteAddr string userId string
} }
// validateAgentHeaders validates the required headers from agent connection requests. // universalTokenMap stores active universal tokens and their associated user IDs.
func (h *Hub) validateAgentHeaders(headers http.Header) (string, string, error) { var universalTokenMap tokenMap
token := headers.Get("X-Token")
agentVersion := headers.Get("X-Beszel")
if agentVersion == "" || token == "" || len(token) > 512 { type tokenMap struct {
return "", "", errors.New("") store *expirymap.ExpiryMap[string]
} once sync.Once
return token, agentVersion, nil
} }
// getFingerprintRecord retrieves fingerprint data from the database by token. // getMap returns the expirymap, creating it if necessary.
func (h *Hub) getFingerprintRecord(token string, recordData *ws.FingerprintRecord) error { func (tm *tokenMap) GetMap() *expirymap.ExpiryMap[string] {
err := h.DB().NewQuery("SELECT id, system, fingerprint, token FROM fingerprints WHERE token = {:token}"). tm.once.Do(func() {
Bind(dbx.Params{ tm.store = expirymap.New[string](time.Hour)
"token": token, })
}). return tm.store
One(recordData)
return err
} }
// sendResponseError sends an HTTP error response with the given status code and message. // handleAgentConnect is the HTTP handler for an agent's connection request.
func sendResponseError(res http.ResponseWriter, code int, message string) error {
res.WriteHeader(code)
if message != "" {
res.Write([]byte(message))
}
return nil
}
// handleAgentConnect handles the incoming connection request from the agent.
func (h *Hub) handleAgentConnect(e *core.RequestEvent) error { func (h *Hub) handleAgentConnect(e *core.RequestEvent) error {
if err := h.agentConnect(e.Request, e.Response); err != nil { agentRequest := agentConnectRequest{req: e.Request, res: e.Response, hub: h}
return err _ = agentRequest.agentConnect()
}
return nil return nil
} }
// agentConnect handles agent connection requests, validating credentials and upgrading to WebSocket. // agentConnect validates agent credentials and upgrades the connection to a WebSocket.
func (h *Hub) agentConnect(req *http.Request, res http.ResponseWriter) (err error) { func (acr *agentConnectRequest) agentConnect() (err error) {
var agentConnectRequest agentConnectRequest
var agentVersion string var agentVersion string
// check if user agent and token are valid
agentConnectRequest.token, agentVersion, err = h.validateAgentHeaders(req.Header) acr.token, agentVersion, err = acr.validateAgentHeaders(acr.req.Header)
if err != nil { if err != nil {
return sendResponseError(res, http.StatusUnauthorized, "") return acr.sendResponseError(acr.res, http.StatusBadRequest, "")
} }
// Pull fingerprint from database matching token // Check if token is an active universal token
var fpRecord ws.FingerprintRecord acr.userId, acr.isUniversalToken = universalTokenMap.GetMap().GetOk(acr.token)
err = h.getFingerprintRecord(agentConnectRequest.token, &fpRecord)
// if no existing record, check if token is a universal token // Find matching fingerprint records for this token
if err != nil { fpRecords := getFingerprintRecordsByToken(acr.token, acr.hub)
if err = checkUniversalToken(&agentConnectRequest); err == nil { if len(fpRecords) == 0 && !acr.isUniversalToken {
// if this is a universal token, set the remote address and new record token // Invalid token - no records found and not a universal token
agentConnectRequest.remoteAddr = getRealIP(req) return acr.sendResponseError(acr.res, http.StatusUnauthorized, "Invalid token")
fpRecord.Token = agentConnectRequest.token
}
}
// If no matching token, return unauthorized
if err != nil {
return sendResponseError(res, http.StatusUnauthorized, "Invalid token")
} }
// Validate agent version // Validate agent version
agentConnectRequest.agentSemVer, err = semver.Parse(agentVersion) acr.agentSemVer, err = semver.Parse(agentVersion)
if err != nil { if err != nil {
return sendResponseError(res, http.StatusUnauthorized, "Invalid agent version") return acr.sendResponseError(acr.res, http.StatusUnauthorized, "Invalid agent version")
} }
// Upgrade connection to WebSocket // Upgrade connection to WebSocket
conn, err := ws.GetUpgrader().Upgrade(res, req) conn, err := ws.GetUpgrader().Upgrade(acr.res, acr.req)
if err != nil { if err != nil {
return sendResponseError(res, http.StatusInternalServerError, "WebSocket upgrade failed") return acr.sendResponseError(acr.res, http.StatusInternalServerError, "WebSocket upgrade failed")
} }
go h.verifyWsConn(conn, agentConnectRequest, fpRecord) go acr.verifyWsConn(conn, fpRecords)
return nil return nil
} }
// verifyWsConn verifies the WebSocket connection using agent's fingerprint and SSH key signature. // verifyWsConn verifies the WebSocket connection using the agent's fingerprint and
func (h *Hub) verifyWsConn(conn *gws.Conn, acr agentConnectRequest, fpRecord ws.FingerprintRecord) (err error) { // SSH key signature, then adds the system to the system manager.
func (acr *agentConnectRequest) verifyWsConn(conn *gws.Conn, fpRecords []ws.FingerprintRecord) (err error) {
wsConn := ws.NewWsConnection(conn) wsConn := ws.NewWsConnection(conn)
// must be set before the read loop
// must set wsConn in connection store before the read loop
conn.Session().Store("wsConn", wsConn) conn.Session().Store("wsConn", wsConn)
// make sure connection is closed if there is an error // make sure connection is closed if there is an error
defer func() { defer func() {
if err != nil { if err != nil {
wsConn.Close() wsConn.Close([]byte(err.Error()))
h.Logger().Error("WebSocket error", "error", err, "system", fpRecord.SystemId)
} }
}() }()
go conn.ReadLoop() go conn.ReadLoop()
signer, err := h.GetSSHKey("") signer, err := acr.hub.GetSSHKey("")
if err != nil { if err != nil {
return err return err
} }
@@ -138,40 +116,152 @@ func (h *Hub) verifyWsConn(conn *gws.Conn, acr agentConnectRequest, fpRecord ws.
return err return err
} }
// Create system if using universal token // Find or create the appropriate system for this token and fingerprint
if acr.isUniversalToken { fpRecord, err := acr.findOrCreateSystemForToken(fpRecords, agentFingerprint)
if acr.userId == "" { if err != nil {
return errors.New("token user not found") return err
}
fpRecord.SystemId, err = h.createSystemFromAgentData(&acr, agentFingerprint)
if err != nil {
return fmt.Errorf("failed to create system from universal token: %w", err)
}
} }
switch { return acr.hub.sm.AddWebSocketSystem(fpRecord.SystemId, acr.agentSemVer, wsConn)
// If no current fingerprint, update with new fingerprint (first time connecting)
case fpRecord.Fingerprint == "":
if err := h.SetFingerprint(&fpRecord, agentFingerprint.Fingerprint); err != nil {
return err
}
// Abort if fingerprint exists but doesn't match (different machine)
case fpRecord.Fingerprint != agentFingerprint.Fingerprint:
return errors.New("fingerprint mismatch")
}
return h.sm.AddWebSocketSystem(fpRecord.SystemId, acr.agentSemVer, wsConn)
} }
// createSystemFromAgentData creates a new system record using data from the agent // validateAgentHeaders extracts and validates the token and agent version from HTTP headers.
func (h *Hub) createSystemFromAgentData(acr *agentConnectRequest, agentFingerprint common.FingerprintResponse) (recordId string, err error) { func (acr *agentConnectRequest) validateAgentHeaders(headers http.Header) (string, string, error) {
systemsCollection, err := h.FindCollectionByNameOrId("systems") token := headers.Get("X-Token")
if err != nil { agentVersion := headers.Get("X-Beszel")
return "", fmt.Errorf("failed to find systems collection: %w", err)
if agentVersion == "" || token == "" || len(token) > 64 {
return "", "", errors.New("")
} }
return token, agentVersion, nil
}
// sendResponseError writes an HTTP error response.
func (acr *agentConnectRequest) sendResponseError(res http.ResponseWriter, code int, message string) error {
res.WriteHeader(code)
if message != "" {
res.Write([]byte(message))
}
return nil
}
// getFingerprintRecordsByToken retrieves all fingerprint records associated with a given token.
func getFingerprintRecordsByToken(token string, h *Hub) []ws.FingerprintRecord {
var records []ws.FingerprintRecord
// All will populate empty slice even on error
_ = h.DB().NewQuery("SELECT id, system, fingerprint, token FROM fingerprints WHERE token = {:token}").
Bind(dbx.Params{
"token": token,
}).
All(&records)
return records
}
// findOrCreateSystemForToken finds an existing system matching the token and fingerprint,
// or creates a new one for a universal token.
func (acr *agentConnectRequest) findOrCreateSystemForToken(fpRecords []ws.FingerprintRecord, agentFingerprint common.FingerprintResponse) (ws.FingerprintRecord, error) {
// No records - only valid for active universal tokens
if len(fpRecords) == 0 {
return acr.handleNoRecords(agentFingerprint)
}
// Single record - handle as regular token
if len(fpRecords) == 1 && !acr.isUniversalToken {
return acr.handleSingleRecord(fpRecords[0], agentFingerprint)
}
// Multiple records or universal token - look for matching fingerprint
return acr.handleMultipleRecordsOrUniversalToken(fpRecords, agentFingerprint)
}
// handleNoRecords handles the case where no fingerprint records are found for a token.
// A new system is created if the token is a valid universal token.
func (acr *agentConnectRequest) handleNoRecords(agentFingerprint common.FingerprintResponse) (ws.FingerprintRecord, error) {
var fpRecord ws.FingerprintRecord
if !acr.isUniversalToken || acr.userId == "" {
return fpRecord, errors.New("no matching fingerprints")
}
return acr.createNewSystemForUniversalToken(agentFingerprint)
}
// handleSingleRecord handles the case with a single fingerprint record. It validates
// the agent's fingerprint against the stored one, or sets it on first connect.
func (acr *agentConnectRequest) handleSingleRecord(fpRecord ws.FingerprintRecord, agentFingerprint common.FingerprintResponse) (ws.FingerprintRecord, error) {
// If no current fingerprint, update with new fingerprint (first time connecting)
if fpRecord.Fingerprint == "" {
if err := acr.hub.SetFingerprint(&fpRecord, agentFingerprint.Fingerprint); err != nil {
return fpRecord, err
}
// Update the record with the fingerprint that was set
fpRecord.Fingerprint = agentFingerprint.Fingerprint
return fpRecord, nil
}
// Abort if fingerprint exists but doesn't match (different machine)
if fpRecord.Fingerprint != agentFingerprint.Fingerprint {
return fpRecord, errors.New("fingerprint mismatch")
}
return fpRecord, nil
}
// handleMultipleRecordsOrUniversalToken finds a matching fingerprint from multiple records.
// If no match is found and the token is a universal token, a new system is created.
func (acr *agentConnectRequest) handleMultipleRecordsOrUniversalToken(fpRecords []ws.FingerprintRecord, agentFingerprint common.FingerprintResponse) (ws.FingerprintRecord, error) {
// Return existing record with matching fingerprint if found
for i := range fpRecords {
if fpRecords[i].Fingerprint == agentFingerprint.Fingerprint {
return fpRecords[i], nil
}
}
// No matching fingerprint record found, but it's
// an active universal token so create a new system
if acr.isUniversalToken {
return acr.createNewSystemForUniversalToken(agentFingerprint)
}
return ws.FingerprintRecord{}, errors.New("fingerprint mismatch")
}
// createNewSystemForUniversalToken creates a new system and fingerprint record for a universal token.
func (acr *agentConnectRequest) createNewSystemForUniversalToken(agentFingerprint common.FingerprintResponse) (ws.FingerprintRecord, error) {
var fpRecord ws.FingerprintRecord
if !acr.isUniversalToken || acr.userId == "" {
return fpRecord, errors.New("invalid token")
}
fpRecord.Token = acr.token
systemId, err := acr.createSystem(agentFingerprint)
if err != nil {
return fpRecord, err
}
fpRecord.SystemId = systemId
// Set the fingerprint for the new system
if err := acr.hub.SetFingerprint(&fpRecord, agentFingerprint.Fingerprint); err != nil {
return fpRecord, err
}
// Update the record with the fingerprint that was set
fpRecord.Fingerprint = agentFingerprint.Fingerprint
return fpRecord, nil
}
// createSystem creates a new system record in the database using details from the agent.
func (acr *agentConnectRequest) createSystem(agentFingerprint common.FingerprintResponse) (recordId string, err error) {
systemsCollection, err := acr.hub.FindCachedCollectionByNameOrId("systems")
if err != nil {
return "", err
}
remoteAddr := getRealIP(acr.req)
// separate port from address // separate port from address
if agentFingerprint.Hostname == "" { if agentFingerprint.Hostname == "" {
agentFingerprint.Hostname = acr.remoteAddr agentFingerprint.Hostname = remoteAddr
} }
if agentFingerprint.Port == "" { if agentFingerprint.Port == "" {
agentFingerprint.Port = "45876" agentFingerprint.Port = "45876"
@@ -179,14 +269,14 @@ func (h *Hub) createSystemFromAgentData(acr *agentConnectRequest, agentFingerpri
// create new record // create new record
systemRecord := core.NewRecord(systemsCollection) systemRecord := core.NewRecord(systemsCollection)
systemRecord.Set("name", agentFingerprint.Hostname) systemRecord.Set("name", agentFingerprint.Hostname)
systemRecord.Set("host", acr.remoteAddr) systemRecord.Set("host", remoteAddr)
systemRecord.Set("port", agentFingerprint.Port) systemRecord.Set("port", agentFingerprint.Port)
systemRecord.Set("users", []string{acr.userId}) systemRecord.Set("users", []string{acr.userId})
return systemRecord.Id, h.Save(systemRecord) return systemRecord.Id, acr.hub.Save(systemRecord)
} }
// SetFingerprint updates the fingerprint for a given record ID. // SetFingerprint creates or updates a fingerprint record in the database.
func (h *Hub) SetFingerprint(fpRecord *ws.FingerprintRecord, fingerprint string) (err error) { func (h *Hub) SetFingerprint(fpRecord *ws.FingerprintRecord, fingerprint string) (err error) {
// // can't use raw query here because it doesn't trigger SSE // // can't use raw query here because it doesn't trigger SSE
var record *core.Record var record *core.Record
@@ -207,25 +297,8 @@ func (h *Hub) SetFingerprint(fpRecord *ws.FingerprintRecord, fingerprint string)
return h.SaveNoValidate(record) return h.SaveNoValidate(record)
} }
func getTokenMap() *expirymap.ExpiryMap[string] { // getRealIP extracts the client's real IP address from request headers,
if tokenMap == nil { // checking common proxy headers before falling back to the remote address.
tokenMap = expirymap.New[string](time.Hour)
}
return tokenMap
}
func checkUniversalToken(acr *agentConnectRequest) (err error) {
if tokenMap == nil {
tokenMap = expirymap.New[string](time.Hour)
}
acr.userId, acr.isUniversalToken = tokenMap.GetOk(acr.token)
if !acr.isUniversalToken {
return errors.New("invalid token")
}
return nil
}
// getRealIP attempts to extract the real IP address from the request headers.
func getRealIP(r *http.Request) string { func getRealIP(r *http.Request) string {
if ip := r.Header.Get("CF-Connecting-IP"); ip != "" { if ip := r.Header.Get("CF-Connecting-IP"); ip != "" {
return ip return ip

File diff suppressed because it is too large Load Diff

View File

@@ -259,7 +259,7 @@ func (h *Hub) getUniversalToken(e *core.RequestEvent) error {
return apis.NewForbiddenError("Forbidden", nil) return apis.NewForbiddenError("Forbidden", nil)
} }
tokenMap := getTokenMap() tokenMap := universalTokenMap.GetMap()
userID := info.Auth.Id userID := info.Auth.Id
query := e.Request.URL.Query() query := e.Request.URL.Query()
token := query.Get("token") token := query.Get("token")

View File

@@ -254,5 +254,3 @@ func TestGetSSHKey(t *testing.T) {
} }
}) })
} }
// Helper function to create test records

View File

@@ -365,7 +365,7 @@ func (sys *System) closeSSHConnection() {
// The system will be set as down a few seconds later if the connection is not re-established. // The system will be set as down a few seconds later if the connection is not re-established.
func (sys *System) closeWebSocketConnection() { func (sys *System) closeWebSocketConnection() {
if sys.WsConn != nil { if sys.WsConn != nil {
sys.WsConn.Close() sys.WsConn.Close(nil)
} }
} }

View File

@@ -77,7 +77,7 @@ func (h *Handler) OnMessage(conn *gws.Conn, message *gws.Message) {
case wsConn.(*WsConn).responseChan <- message: case wsConn.(*WsConn).responseChan <- message:
default: default:
// close if the connection is not expecting a response // close if the connection is not expecting a response
wsConn.(*WsConn).Close() wsConn.(*WsConn).Close(nil)
} }
} }
@@ -100,9 +100,9 @@ func (h *Handler) OnClose(conn *gws.Conn, err error) {
} }
// Close terminates the WebSocket connection gracefully. // Close terminates the WebSocket connection gracefully.
func (ws *WsConn) Close() { func (ws *WsConn) Close(msg []byte) {
if ws.IsConnected() { if ws.IsConnected() {
ws.conn.WriteClose(1000, nil) ws.conn.WriteClose(1000, msg)
} }
} }
@@ -130,7 +130,7 @@ func (ws *WsConn) RequestSystemData(data *system.CombinedData) error {
}) })
select { select {
case <-time.After(10 * time.Second): case <-time.After(10 * time.Second):
ws.Close() ws.Close(nil)
return gws.ErrConnClosed return gws.ErrConnClosed
case message = <-ws.responseChan: case message = <-ws.responseChan:
} }
@@ -140,11 +140,12 @@ func (ws *WsConn) RequestSystemData(data *system.CombinedData) error {
// GetFingerprint authenticates with the agent using SSH signature and returns the agent's fingerprint. // GetFingerprint authenticates with the agent using SSH signature and returns the agent's fingerprint.
func (ws *WsConn) GetFingerprint(token string, signer ssh.Signer, needSysInfo bool) (common.FingerprintResponse, error) { func (ws *WsConn) GetFingerprint(token string, signer ssh.Signer, needSysInfo bool) (common.FingerprintResponse, error) {
var clientFingerprint common.FingerprintResponse
challenge := []byte(token) challenge := []byte(token)
signature, err := signer.Sign(nil, challenge) signature, err := signer.Sign(nil, challenge)
if err != nil { if err != nil {
return common.FingerprintResponse{}, err return clientFingerprint, err
} }
err = ws.sendMessage(common.HubRequest[any]{ err = ws.sendMessage(common.HubRequest[any]{
@@ -155,24 +156,19 @@ func (ws *WsConn) GetFingerprint(token string, signer ssh.Signer, needSysInfo bo
}, },
}) })
if err != nil { if err != nil {
return common.FingerprintResponse{}, err return clientFingerprint, err
} }
var message *gws.Message var message *gws.Message
var clientFingerprint common.FingerprintResponse
select { select {
case message = <-ws.responseChan: case message = <-ws.responseChan:
case <-time.After(10 * time.Second): case <-time.After(10 * time.Second):
return common.FingerprintResponse{}, errors.New("request expired") return clientFingerprint, errors.New("request expired")
} }
defer message.Close() defer message.Close()
err = cbor.Unmarshal(message.Data.Bytes(), &clientFingerprint) err = cbor.Unmarshal(message.Data.Bytes(), &clientFingerprint)
if err != nil { return clientFingerprint, err
return common.FingerprintResponse{}, err
}
return clientFingerprint, nil
} }
// IsConnected returns true if the WebSocket connection is active. // IsConnected returns true if the WebSocket connection is active.

View File

@@ -75,7 +75,9 @@ func init() {
"Memory", "Memory",
"Disk", "Disk",
"Temperature", "Temperature",
"Bandwidth" "Bandwidth",
"LoadAvg5",
"LoadAvg15"
] ]
}, },
{ {

View File

@@ -5,7 +5,7 @@ import (
m "github.com/pocketbase/pocketbase/migrations" m "github.com/pocketbase/pocketbase/migrations"
) )
var ( const (
TempAdminEmail = "_@b.b" TempAdminEmail = "_@b.b"
) )

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{ {
"name": "beszel", "name": "beszel",
"private": true, "private": true,
"version": "0.12.0-beta1", "version": "0.12.0-beta2",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",

View File

@@ -39,13 +39,33 @@ export default memo(function AlertsButton({ system }: { system: SystemRecord })
/> />
</Button> </Button>
</DialogTrigger> </DialogTrigger>
<DialogContent className="max-h-full overflow-auto max-w-[35rem]"> <DialogContent className="max-h-full sm:max-h-[95svh] overflow-auto max-w-[37rem]">
{opened && <AlertDialogContent system={system} />} {opened && <AlertDialogContent system={system} />}
</DialogContent> </DialogContent>
</Dialog> </Dialog>
), ),
[opened, hasAlert] [opened, hasAlert]
) )
// return useMemo(
// () => (
// <Sheet>
// <SheetTrigger asChild>
// <Button variant="ghost" size="icon" aria-label={t`Alerts`} data-nolink onClick={() => setOpened(true)}>
// <BellIcon
// className={cn("h-[1.2em] w-[1.2em] pointer-events-none", {
// "fill-primary": hasAlert,
// })}
// />
// </Button>
// </SheetTrigger>
// <SheetContent className="max-h-full overflow-auto w-[35em] p-4 sm:p-5">
// {opened && <AlertDialogContent system={system} />}
// </SheetContent>
// </Sheet>
// ),
// [opened, hasAlert]
// )
}) })
function AlertDialogContent({ system }: { system: SystemRecord }) { function AlertDialogContent({ system }: { system: SystemRecord }) {

View File

@@ -217,7 +217,7 @@ function AlertContent({ data }: { data: AlertData }) {
const [checked, setChecked] = useState(data.checked || false) const [checked, setChecked] = useState(data.checked || false)
const [min, setMin] = useState(data.min || 10) const [min, setMin] = useState(data.min || 10)
const [value, setValue] = useState(data.val || (singleDescription ? 0 : 80)) const [value, setValue] = useState(data.val || (singleDescription ? 0 : data.alert.start ?? 80))
const Icon = alertInfo[name].icon const Icon = alertInfo[name].icon
@@ -268,7 +268,8 @@ function AlertContent({ data }: { data: AlertData }) {
onValueChange={(val) => { onValueChange={(val) => {
setValue(val[0]) setValue(val[0])
}} }}
min={1} step={data.alert.step ?? 1}
min={data.alert.min ?? 1}
max={alertInfo[name].max ?? 99} max={alertInfo[name].max ?? 99}
/> />
</div> </div>

View File

@@ -95,8 +95,8 @@ export default function SettingsLayout() {
</CardHeader> </CardHeader>
<CardContent className="p-0"> <CardContent className="p-0">
<Separator className="hidden md:block my-5" /> <Separator className="hidden md:block my-5" />
<div className="flex flex-col gap-3.5 md:flex-row md:gap-5 lg:gap-10"> <div className="flex flex-col gap-3.5 md:flex-row md:gap-5 lg:gap-12">
<aside className="md:max-w-44 min-w-40"> <aside className="md:max-w-52 min-w-40">
<SidebarNav items={sidebarNavItems} /> <SidebarNav items={sidebarNavItems} />
</aside> </aside>
<div className="flex-1 min-w-0"> <div className="flex-1 min-w-0">

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/react/macro" import { Trans, useLingui } from "@lingui/react/macro"
import { t } from "@lingui/core/macro" import { t } from "@lingui/core/macro"
import { $publicKey, pb } from "@/lib/stores" import { $publicKey, pb } from "@/lib/stores"
import { memo, useEffect, useMemo, useState } from "react" import { memo, useEffect, useMemo, useState } from "react"
@@ -180,32 +180,33 @@ const SectionUniversalToken = memo(() => {
}) })
const ActionsButtonUniversalToken = memo(({ token, checked }: { token: string; checked: boolean }) => { const ActionsButtonUniversalToken = memo(({ token, checked }: { token: string; checked: boolean }) => {
const { t } = useLingui()
const publicKey = $publicKey.get() const publicKey = $publicKey.get()
const port = "45876" const port = "45876"
const dropdownItems: DropdownItem[] = [ const dropdownItems: DropdownItem[] = [
{ {
text: "Copy Docker Compose", text: t({ message: "Copy docker compose", context: "Button to copy docker compose file content" }),
onClick: () => copyDockerCompose(port, publicKey, token), onClick: () => copyDockerCompose(port, publicKey, token),
icons: [DockerIcon], icons: [DockerIcon],
}, },
{ {
text: "Copy Docker Run", text: t({ message: "Copy docker run", context: "Button to copy docker run command" }),
onClick: () => copyDockerRun(port, publicKey, token), onClick: () => copyDockerRun(port, publicKey, token),
icons: [DockerIcon], icons: [DockerIcon],
}, },
{ {
text: "Copy Linux Command", text: t`Copy Linux command`,
onClick: () => copyLinuxCommand(port, publicKey, token), onClick: () => copyLinuxCommand(port, publicKey, token),
icons: [TuxIcon], icons: [TuxIcon],
}, },
{ {
text: "Copy Brew Command", text: t({ message: "Homebrew command", context: "Button to copy install command" }),
onClick: () => copyLinuxCommand(port, publicKey, token, true), onClick: () => copyLinuxCommand(port, publicKey, token, true),
icons: [TuxIcon, AppleIcon], icons: [TuxIcon, AppleIcon],
}, },
{ {
text: "Copy Windows Command", text: t({ message: "Windows command", context: "Button to copy install command" }),
onClick: () => copyWindowsCommand(port, publicKey, token), onClick: () => copyWindowsCommand(port, publicKey, token),
icons: [WindowsIcon], icons: [WindowsIcon],
}, },
@@ -233,26 +234,28 @@ const ActionsButtonUniversalToken = memo(({ token, checked }: { token: string; c
}) })
const SectionTable = memo(({ fingerprints = [] }: { fingerprints: FingerprintRecord[] }) => { const SectionTable = memo(({ fingerprints = [] }: { fingerprints: FingerprintRecord[] }) => {
const { t } = useLingui()
const isReadOnly = isReadOnlyUser() const isReadOnly = isReadOnlyUser()
const headerCols = useMemo( const headerCols = useMemo(
() => [ () => [
{ {
label: "System", label: t`System`,
Icon: ServerIcon, Icon: ServerIcon,
w: "11em", w: "11em",
}, },
{ {
label: "Token", label: t`Token`,
Icon: KeyIcon, Icon: KeyIcon,
w: "20em", w: "20em",
}, },
{ {
label: "Fingerprint", label: t`Fingerprint`,
Icon: FingerprintIcon, Icon: FingerprintIcon,
w: "20em", w: "20em",
}, },
], ],
[] [t]
) )
return ( return (
<div className="rounded-md border overflow-hidden w-full mt-4"> <div className="rounded-md border overflow-hidden w-full mt-4">

View File

@@ -68,7 +68,7 @@ import { useStore } from "@nanostores/react"
import { cn, copyToClipboard, decimalString, isReadOnlyUser, useLocalStorage } from "@/lib/utils" import { cn, copyToClipboard, decimalString, isReadOnlyUser, useLocalStorage } from "@/lib/utils"
import AlertsButton from "../alerts/alert-button" import AlertsButton from "../alerts/alert-button"
import { $router, Link, navigate } from "../router" import { $router, Link, navigate } from "../router"
import { EthernetIcon, GpuIcon, ThermometerIcon } from "../ui/icons" import { EthernetIcon, GpuIcon, HourglassIcon, ThermometerIcon } from "../ui/icons"
import { useLingui, Trans } from "@lingui/react/macro" import { useLingui, Trans } from "@lingui/react/macro"
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "../ui/card" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "../ui/card"
import { Input } from "../ui/input" import { Input } from "../ui/input"
@@ -83,8 +83,8 @@ function CellFormatter(info: CellContext<SystemRecord, unknown>) {
const val = (info.getValue() as number) || 0 const val = (info.getValue() as number) || 0
return ( return (
<div className="flex gap-2 items-center tabular-nums tracking-tight"> <div className="flex gap-2 items-center tabular-nums tracking-tight">
<span className="min-w-[3.3em]">{decimalString(val, 1)}%</span> <span className="min-w-8">{decimalString(val, 1)}%</span>
<span className="grow min-w-10 block bg-muted h-[1em] relative rounded-sm overflow-hidden"> <span className="grow min-w-8 block bg-muted h-[1em] relative rounded-sm overflow-hidden">
<span <span
className={cn( className={cn(
"absolute inset-0 w-full h-full origin-left", "absolute inset-0 w-full h-full origin-left",
@@ -144,7 +144,6 @@ export default function SystemsTable() {
} }
return [ return [
{ {
// size: 200,
size: 200, size: 200,
minSize: 0, minSize: 0,
accessorKey: "name", accessorKey: "name",
@@ -163,6 +162,7 @@ export default function SystemsTable() {
return false return false
}, },
enableHiding: false, enableHiding: false,
invertSorting: false,
Icon: ServerIcon, Icon: ServerIcon,
cell: (info) => ( cell: (info) => (
<span className="flex gap-0.5 items-center text-base md:pe-5"> <span className="flex gap-0.5 items-center text-base md:pe-5">
@@ -181,28 +181,26 @@ export default function SystemsTable() {
header: sortableHeader, header: sortableHeader,
}, },
{ {
accessorKey: "info.cpu", accessorFn: (originalRow) => originalRow.info.cpu,
id: "cpu", id: "cpu",
name: () => t`CPU`, name: () => t`CPU`,
invertSorting: true,
cell: CellFormatter, cell: CellFormatter,
Icon: CpuIcon, Icon: CpuIcon,
header: sortableHeader, header: sortableHeader,
}, },
{ {
accessorKey: "info.mp", // accessorKey: "info.mp",
accessorFn: (originalRow) => originalRow.info.mp,
id: "memory", id: "memory",
name: () => t`Memory`, name: () => t`Memory`,
invertSorting: true,
cell: CellFormatter, cell: CellFormatter,
Icon: MemoryStickIcon, Icon: MemoryStickIcon,
header: sortableHeader, header: sortableHeader,
}, },
{ {
accessorKey: "info.dp", accessorFn: (originalRow) => originalRow.info.dp,
id: "disk", id: "disk",
name: () => t`Disk`, name: () => t`Disk`,
invertSorting: true,
cell: CellFormatter, cell: CellFormatter,
Icon: HardDriveIcon, Icon: HardDriveIcon,
header: sortableHeader, header: sortableHeader,
@@ -211,8 +209,6 @@ export default function SystemsTable() {
accessorFn: (originalRow) => originalRow.info.g, accessorFn: (originalRow) => originalRow.info.g,
id: "gpu", id: "gpu",
name: () => "GPU", name: () => "GPU",
invertSorting: true,
sortUndefined: -1,
cell: CellFormatter, cell: CellFormatter,
Icon: GpuIcon, Icon: GpuIcon,
header: sortableHeader, header: sortableHeader,
@@ -221,19 +217,50 @@ export default function SystemsTable() {
accessorFn: (originalRow) => originalRow.info.b || 0, accessorFn: (originalRow) => originalRow.info.b || 0,
id: "net", id: "net",
name: () => t`Net`, name: () => t`Net`,
invertSorting: true,
size: 50, size: 50,
Icon: EthernetIcon, Icon: EthernetIcon,
header: sortableHeader, header: sortableHeader,
cell(info) { cell(info) {
const val = info.getValue() as number const val = info.getValue() as number
return <span className="tabular-nums whitespace-nowrap">{decimalString(val, val >= 100 ? 1 : 2)} MB/s</span>
},
},
{
accessorFn: (originalRow) => originalRow.info.l5,
id: "l5",
name: () => t({ message: "L5", comment: "Load average 5 minutes" }),
size: 0,
hideSort: true,
Icon: HourglassIcon,
header: sortableHeader,
cell(info) {
const val = info.getValue() as number
if (!val) {
return null
}
return ( return (
<span <span className={cn("tabular-nums whitespace-nowrap", viewMode === "table" && "ps-1")}>
className={cn("tabular-nums whitespace-nowrap", { {decimalString(val)}
"ps-1": viewMode === "table", </span>
})} )
> },
{decimalString(val, val >= 100 ? 1 : 2)} MB/s },
{
accessorFn: (originalRow) => originalRow.info.l15,
id: "l15",
name: () => t({ message: "L15", comment: "Load average 15 minutes" }),
size: 0,
hideSort: true,
Icon: HourglassIcon,
header: sortableHeader,
cell(info) {
const val = info.getValue() as number
if (!val) {
return null
}
return (
<span className={cn("tabular-nums whitespace-nowrap", viewMode === "table" && "ps-1")}>
{decimalString(val)}
</span> </span>
) )
}, },
@@ -242,8 +269,6 @@ export default function SystemsTable() {
accessorFn: (originalRow) => originalRow.info.dt, accessorFn: (originalRow) => originalRow.info.dt,
id: "temp", id: "temp",
name: () => t({ message: "Temp", comment: "Temperature label in systems table" }), name: () => t({ message: "Temp", comment: "Temperature label in systems table" }),
invertSorting: true,
sortUndefined: -1,
size: 50, size: 50,
hideSort: true, hideSort: true,
Icon: ThermometerIcon, Icon: ThermometerIcon,
@@ -254,21 +279,17 @@ export default function SystemsTable() {
return null return null
} }
return ( return (
<span <span className={cn("tabular-nums whitespace-nowrap", viewMode === "table" && "ps-0.5")}>
className={cn("tabular-nums whitespace-nowrap", {
"ps-1.5": viewMode === "table",
})}
>
{decimalString(val)} °C {decimalString(val)} °C
</span> </span>
) )
}, },
}, },
{ {
accessorKey: "info.v", accessorFn: (originalRow) => originalRow.info.v,
id: "agent", id: "agent",
name: () => t`Agent`, name: () => t`Agent`,
invertSorting: true, // invertSorting: true,
size: 50, size: 50,
Icon: WifiIcon, Icon: WifiIcon,
hideSort: true, hideSort: true,
@@ -280,11 +301,7 @@ export default function SystemsTable() {
} }
const system = info.row.original const system = info.row.original
return ( return (
<span <span className={cn("flex gap-2 items-center md:pe-5 tabular-nums", viewMode === "table" && "ps-0.5")}>
className={cn("flex gap-2 items-center md:pe-5 tabular-nums", {
"ps-1": viewMode === "table",
})}
>
<IndicatorDot <IndicatorDot
system={system} system={system}
className={ className={
@@ -304,7 +321,7 @@ export default function SystemsTable() {
name: () => t({ message: "Actions", comment: "Table column" }), name: () => t({ message: "Actions", comment: "Table column" }),
size: 50, size: 50,
cell: ({ row }) => ( cell: ({ row }) => (
<div className="flex justify-end items-center gap-1"> <div className="flex justify-end items-center gap-1 -ms-3">
<AlertsButton system={row.original} /> <AlertsButton system={row.original} />
<ActionsButton system={row.original} /> <ActionsButton system={row.original} />
</div> </div>
@@ -328,6 +345,9 @@ export default function SystemsTable() {
columnVisibility, columnVisibility,
}, },
defaultColumn: { defaultColumn: {
// sortDescFirst: true,
invertSorting: true,
sortUndefined: "last",
minSize: 0, minSize: 0,
size: 900, size: 900,
maxSize: 900, maxSize: 900,
@@ -511,7 +531,7 @@ function SystemsTableHead({ table, colLength }: { table: TableType<SystemRecord>
<TableRow key={headerGroup.id}> <TableRow key={headerGroup.id}>
{headerGroup.headers.map((header) => { {headerGroup.headers.map((header) => {
return ( return (
<TableHead className="px-2" key={header.id}> <TableHead className="px-1" key={header.id}>
{flexRender(header.column.columnDef.header, header.getContext())} {flexRender(header.column.columnDef.header, header.getContext())}
</TableHead> </TableHead>
) )

View File

@@ -121,3 +121,12 @@ export function GpuIcon(props: SVGProps<SVGSVGElement>) {
</svg> </svg>
) )
} }
// Remix icons (Apache 2.0) https://github.com/Remix-Design/RemixIcon/blob/master/License
export function HourglassIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg viewBox="0 0 24 24" {...props} fill="currentColor">
<path d="M4 2h16v4.5L13.5 12l6.5 5.5V22H4v-4.5l6.5-5.5L4 6.5zm12.3 5L18 5.5V4H6v1.5L7.7 7zM12 13.3l-6 5.2V20h1l5-3 5 3h1v-1.5z" />
</svg>
)
}

View File

@@ -9,7 +9,7 @@ import { WritableAtom } from "nanostores"
import { timeDay, timeHour } from "d3-time" import { timeDay, timeHour } from "d3-time"
import { useEffect, useState } from "react" import { useEffect, useState } from "react"
import { CpuIcon, HardDriveIcon, MemoryStickIcon, ServerIcon } from "lucide-react" import { CpuIcon, HardDriveIcon, MemoryStickIcon, ServerIcon } from "lucide-react"
import { EthernetIcon, ThermometerIcon } from "@/components/ui/icons" import { EthernetIcon, HourglassIcon, ThermometerIcon } from "@/components/ui/icons"
import { prependBasePath } from "@/components/router" import { prependBasePath } from "@/components/router"
export function cn(...inputs: ClassValue[]) { export function cn(...inputs: ClassValue[]) {
@@ -342,6 +342,26 @@ export const alertInfo: Record<string, AlertInfo> = {
icon: ThermometerIcon, icon: ThermometerIcon,
desc: () => t`Triggers when any sensor exceeds a threshold`, desc: () => t`Triggers when any sensor exceeds a threshold`,
}, },
LoadAvg5: {
name: () => t`Load Average 5m`,
unit: "",
icon: HourglassIcon,
max: 100,
min: 0.1,
start: 10,
step: 0.1,
desc: () => t`Triggers when 5 minute load average exceeds a threshold`,
},
LoadAvg15: {
name: () => t`Load Average 15m`,
unit: "",
icon: HourglassIcon,
min: 0.1,
max: 100,
start: 10,
step: 0.1,
desc: () => t`Triggers when 15 minute load average exceeds a threshold`,
},
} }
/** /**

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "تم النسخ إلى الحافظة" msgstr "تم النسخ إلى الحافظة"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "نسخ docker compose" msgstr "نسخ docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "نسخ docker run" msgstr "نسخ docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "نسخ المضيف" msgstr "نسخ المضيف"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "نسخ أمر لينكس" msgstr "نسخ أمر لينكس"
@@ -396,6 +399,10 @@ msgstr "فشل في تحديث التنبيه"
msgid "Filter..." msgid "Filter..."
msgstr "تصفية..." msgstr "تصفية..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "لمدة <0>{min}</0> {min, plural, one {دقيقة} other {دقائق}}" msgstr "لمدة <0>{min}</0> {min, plural, one {دقيقة} other {دقائق}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "شبكة" msgstr "شبكة"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "أمر Homebrew" msgstr "أمر Homebrew"
@@ -440,6 +448,16 @@ msgstr "عنوان البريد الإشباكي غير صالح."
msgid "Kernel" msgid "Kernel"
msgstr "النواة" msgstr "النواة"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "اللغة" msgstr "اللغة"
@@ -453,6 +471,14 @@ msgstr "التخطيط"
msgid "Light" msgid "Light"
msgstr "فاتح" msgstr "فاتح"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "تسجيل الخروج" msgstr "تسجيل الخروج"
@@ -734,6 +760,7 @@ msgstr "استخدام التبديل"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "النظام" msgstr "النظام"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "تبديل السمة" msgstr "تبديل السمة"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "رمز مميز" msgstr "رمز مميز"
@@ -818,6 +846,14 @@ msgstr "تسمح الرموز المميزة للوكلاء بالاتصال و
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "تُستخدم الرموز المميزة والبصمات للمصادقة على اتصالات WebSocket إلى المحور." msgstr "تُستخدم الرموز المميزة والبصمات للمصادقة على اتصالات WebSocket إلى المحور."
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "يتم التفعيل عندما يتجاوز أي مستشعر عتبة معينة" msgstr "يتم التفعيل عندما يتجاوز أي مستشعر عتبة معينة"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "عند التفعيل، يسمح هذا الرمز المميز للوكلاء بالتسجيل الذاتي دون إنشاء نظام مسبق. ينتهي بعد ساعة واحدة أو عند إعادة تشغيل المحور." msgstr "عند التفعيل، يسمح هذا الرمز المميز للوكلاء بالتسجيل الذاتي دون إنشاء نظام مسبق. ينتهي بعد ساعة واحدة أو عند إعادة تشغيل المحور."
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "أمر Windows" msgstr "أمر Windows"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Записано в клипборда" msgstr "Записано в клипборда"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Копирай docker compose" msgstr "Копирай docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Копирай docker run" msgstr "Копирай docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Копирай хоста" msgstr "Копирай хоста"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Копирай linux командата" msgstr "Копирай linux командата"
@@ -396,6 +399,10 @@ msgstr "Неуспешно обнови тревога"
msgid "Filter..." msgid "Filter..."
msgstr "Филтрирай..." msgstr "Филтрирай..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "За <0>{min}</0> {min, plural, one {минута} other {минути}}" msgstr "За <0>{min}</0> {min, plural, one {минута} other {минути}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Мрежово" msgstr "Мрежово"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Команда Homebrew" msgstr "Команда Homebrew"
@@ -440,6 +448,16 @@ msgstr "Невалиден имейл адрес."
msgid "Kernel" msgid "Kernel"
msgstr "Linux Kernel" msgstr "Linux Kernel"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Език" msgstr "Език"
@@ -453,6 +471,14 @@ msgstr "Подреждане"
msgid "Light" msgid "Light"
msgstr "Светъл" msgstr "Светъл"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Изход" msgstr "Изход"
@@ -734,6 +760,7 @@ msgstr "Използване на swap"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "Система" msgstr "Система"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Включи тема" msgstr "Включи тема"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "" msgstr ""
@@ -818,6 +846,14 @@ msgstr ""
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "" msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Задейства се, когато някой даден сензор надвиши зададен праг" msgstr "Задейства се, когато някой даден сензор надвиши зададен праг"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "" msgstr ""
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Команда Windows" msgstr "Команда Windows"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Zkopírováno do schránky" msgstr "Zkopírováno do schránky"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Kopírovat docker compose" msgstr "Kopírovat docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "" msgstr ""
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Kopírovat hostitele" msgstr "Kopírovat hostitele"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Kopírovat příkaz Linux" msgstr "Kopírovat příkaz Linux"
@@ -396,6 +399,10 @@ msgstr "Nepodařilo se aktualizovat upozornění"
msgid "Filter..." msgid "Filter..."
msgstr "Filtr..." msgstr "Filtr..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Za <0>{min}</0> {min, plural, one {minutu} few {minuty} other {minut}}" msgstr "Za <0>{min}</0> {min, plural, one {minutu} few {minuty} other {minut}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Mřížka" msgstr "Mřížka"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "" msgstr ""
@@ -440,6 +448,16 @@ msgstr "Neplatná e-mailová adresa."
msgid "Kernel" msgid "Kernel"
msgstr "Kernel" msgstr "Kernel"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Jazyk" msgstr "Jazyk"
@@ -453,6 +471,14 @@ msgstr "Rozvržení"
msgid "Light" msgid "Light"
msgstr "Světlý" msgstr "Světlý"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Odhlásit" msgstr "Odhlásit"
@@ -734,6 +760,7 @@ msgstr "Swap využití"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "Systém" msgstr "Systém"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Přepnout motiv" msgstr "Přepnout motiv"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "" msgstr ""
@@ -818,6 +846,14 @@ msgstr ""
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "" msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Spustí se, když některý senzor překročí prahovou hodnotu" msgstr "Spustí se, když některý senzor překročí prahovou hodnotu"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "" msgstr ""
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "" msgstr ""

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Kopieret til udklipsholder" msgstr "Kopieret til udklipsholder"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Kopiér docker compose" msgstr "Kopiér docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Kopiér docker run" msgstr "Kopiér docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Kopier host" msgstr "Kopier host"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Kopier Linux kommando" msgstr "Kopier Linux kommando"
@@ -396,6 +399,10 @@ msgstr "Kunne ikke opdatere alarm"
msgid "Filter..." msgid "Filter..."
msgstr "Filter..." msgstr "Filter..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "For <0>{min}</0> {min, plural, one {minut} other {minutter}}" msgstr "For <0>{min}</0> {min, plural, one {minut} other {minutter}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Gitter" msgstr "Gitter"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Homebrew-kommando" msgstr "Homebrew-kommando"
@@ -440,6 +448,16 @@ msgstr "Ugyldig email adresse."
msgid "Kernel" msgid "Kernel"
msgstr "Kernel" msgstr "Kernel"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Sprog" msgstr "Sprog"
@@ -453,6 +471,14 @@ msgstr "Layout"
msgid "Light" msgid "Light"
msgstr "Lys" msgstr "Lys"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Log ud" msgstr "Log ud"
@@ -734,6 +760,7 @@ msgstr "Swap forbrug"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "System" msgstr "System"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Skift tema" msgstr "Skift tema"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "" msgstr ""
@@ -818,6 +846,14 @@ msgstr ""
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "" msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Udløser når en sensor overstiger en tærskel" msgstr "Udløser når en sensor overstiger en tærskel"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "" msgstr ""
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Windows-kommando" msgstr "Windows-kommando"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "In die Zwischenablage kopiert" msgstr "In die Zwischenablage kopiert"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Docker compose kopieren" msgstr "Docker compose kopieren"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Docker run kopieren" msgstr "Docker run kopieren"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Host kopieren" msgstr "Host kopieren"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Linux-Befehl kopieren" msgstr "Linux-Befehl kopieren"
@@ -396,6 +399,10 @@ msgstr "Warnung konnte nicht aktualisiert werden"
msgid "Filter..." msgid "Filter..."
msgstr "Filter..." msgstr "Filter..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Für <0>{min}</0> {min, plural, one {Minute} other {Minuten}}" msgstr "Für <0>{min}</0> {min, plural, one {Minute} other {Minuten}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Raster" msgstr "Raster"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Homebrew-Befehl" msgstr "Homebrew-Befehl"
@@ -440,6 +448,16 @@ msgstr "Ungültige E-Mail-Adresse."
msgid "Kernel" msgid "Kernel"
msgstr "Kernel" msgstr "Kernel"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Sprache" msgstr "Sprache"
@@ -453,6 +471,14 @@ msgstr "Anordnung"
msgid "Light" msgid "Light"
msgstr "Hell" msgstr "Hell"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Abmelden" msgstr "Abmelden"
@@ -734,6 +760,7 @@ msgstr "Swap-Nutzung"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "System" msgstr "System"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Darstellung umschalten" msgstr "Darstellung umschalten"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "Token" msgstr "Token"
@@ -818,6 +846,14 @@ msgstr "Tokens ermöglichen es Agents, sich zu verbinden und zu registrieren. Fi
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "Tokens und Fingerabdrücke werden verwendet, um WebSocket-Verbindungen zum Hub zu authentifizieren." msgstr "Tokens und Fingerabdrücke werden verwendet, um WebSocket-Verbindungen zum Hub zu authentifizieren."
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Löst aus, wenn ein Sensor einen Schwellenwert überschreitet" msgstr "Löst aus, wenn ein Sensor einen Schwellenwert überschreitet"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "Wenn aktiviert, ermöglicht dieser Token Agents, sich selbst zu registrieren, ohne vorherige Systemerstellung. Läuft nach einer Stunde oder beim Hub-Neustart ab." msgstr "Wenn aktiviert, ermöglicht dieser Token Agents, sich selbst zu registrieren, ohne vorherige Systemerstellung. Läuft nach einer Stunde oder beim Hub-Neustart ab."
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Windows-Befehl" msgstr "Windows-Befehl"

View File

@@ -206,11 +206,13 @@ msgid "Copied to clipboard"
msgstr "Copied to clipboard" msgstr "Copied to clipboard"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Copy docker compose" msgstr "Copy docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Copy docker run" msgstr "Copy docker run"
@@ -225,6 +227,7 @@ msgid "Copy host"
msgstr "Copy host" msgstr "Copy host"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Copy Linux command" msgstr "Copy Linux command"
@@ -391,6 +394,10 @@ msgstr "Failed to update alert"
msgid "Filter..." msgid "Filter..."
msgstr "Filter..." msgstr "Filter..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr "Fingerprint"
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgstr "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
@@ -414,6 +421,7 @@ msgid "Grid"
msgstr "Grid" msgstr "Grid"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Homebrew command" msgstr "Homebrew command"
@@ -435,6 +443,16 @@ msgstr "Invalid email address."
msgid "Kernel" msgid "Kernel"
msgstr "Kernel" msgstr "Kernel"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr "L15"
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr "L5"
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Language" msgstr "Language"
@@ -448,6 +466,14 @@ msgstr "Layout"
msgid "Light" msgid "Light"
msgstr "Light" msgstr "Light"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr "Load Average 15m"
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr "Load Average 5m"
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Log Out" msgstr "Log Out"
@@ -729,6 +755,7 @@ msgstr "Swap Usage"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "System" msgstr "System"
@@ -796,6 +823,7 @@ msgid "Toggle theme"
msgstr "Toggle theme" msgstr "Toggle theme"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "Token" msgstr "Token"
@@ -813,6 +841,14 @@ msgstr "Tokens allow agents to connect and register. Fingerprints are stable ide
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgstr "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr "Triggers when 15 minute load average exceeds a threshold"
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr "Triggers when 5 minute load average exceeds a threshold"
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Triggers when any sensor exceeds a threshold" msgstr "Triggers when any sensor exceeds a threshold"
@@ -901,6 +937,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "When enabled, this token allows agents to self-register without prior system creation. Expires after one hour or on hub restart." msgstr "When enabled, this token allows agents to self-register without prior system creation. Expires after one hour or on hub restart."
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Windows command" msgstr "Windows command"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Copiado al portapapeles" msgstr "Copiado al portapapeles"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Copiar docker compose" msgstr "Copiar docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Copiar docker run" msgstr "Copiar docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Copiar host" msgstr "Copiar host"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Copiar comando de Linux" msgstr "Copiar comando de Linux"
@@ -396,6 +399,10 @@ msgstr "Error al actualizar la alerta"
msgid "Filter..." msgid "Filter..."
msgstr "Filtrar..." msgstr "Filtrar..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Por <0>{min}</0> {min, plural, one {minuto} other {minutos}}" msgstr "Por <0>{min}</0> {min, plural, one {minuto} other {minutos}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Cuadrícula" msgstr "Cuadrícula"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Comando Homebrew" msgstr "Comando Homebrew"
@@ -440,6 +448,16 @@ msgstr "Dirección de correo electrónico no válida."
msgid "Kernel" msgid "Kernel"
msgstr "Kernel" msgstr "Kernel"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Idioma" msgstr "Idioma"
@@ -453,6 +471,14 @@ msgstr "Diseño"
msgid "Light" msgid "Light"
msgstr "Claro" msgstr "Claro"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Cerrar Sesión" msgstr "Cerrar Sesión"
@@ -734,6 +760,7 @@ msgstr "Uso de Swap"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "Sistema" msgstr "Sistema"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Alternar tema" msgstr "Alternar tema"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "Token" msgstr "Token"
@@ -818,6 +846,14 @@ msgstr "Los tokens permiten que los agentes se conecten y registren. Las huellas
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "Los tokens y las huellas digitales se utilizan para autenticar las conexiones WebSocket al hub." msgstr "Los tokens y las huellas digitales se utilizan para autenticar las conexiones WebSocket al hub."
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Se activa cuando cualquier sensor supera un umbral" msgstr "Se activa cuando cualquier sensor supera un umbral"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "Cuando está habilitado, este token permite que los agentes se auto-registren sin crear previamente el sistema. Expira después de una hora o al reiniciar el hub." msgstr "Cuando está habilitado, este token permite que los agentes se auto-registren sin crear previamente el sistema. Expira después de una hora o al reiniciar el hub."
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Comando Windows" msgstr "Comando Windows"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "در کلیپ‌بورد کپی شد" msgstr "در کلیپ‌بورد کپی شد"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "کپی docker compose" msgstr "کپی docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "کپی docker run" msgstr "کپی docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "کپی میزبان" msgstr "کپی میزبان"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "کپی دستور لینوکس" msgstr "کپی دستور لینوکس"
@@ -396,6 +399,10 @@ msgstr "به‌روزرسانی هشدار ناموفق بود"
msgid "Filter..." msgid "Filter..."
msgstr "فیلتر..." msgstr "فیلتر..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "برای <0>{min}</0> {min, plural, one {دقیقه} other {دقیقه}}" msgstr "برای <0>{min}</0> {min, plural, one {دقیقه} other {دقیقه}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "جدول" msgstr "جدول"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "دستور Homebrew" msgstr "دستور Homebrew"
@@ -440,6 +448,16 @@ msgstr "آدرس ایمیل نامعتبر است."
msgid "Kernel" msgid "Kernel"
msgstr "هسته" msgstr "هسته"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "زبان" msgstr "زبان"
@@ -453,6 +471,14 @@ msgstr "طرح‌بندی"
msgid "Light" msgid "Light"
msgstr "روشن" msgstr "روشن"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "خروج" msgstr "خروج"
@@ -734,6 +760,7 @@ msgstr "میزان استفاده از Swap"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "سیستم" msgstr "سیستم"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "تغییر تم" msgstr "تغییر تم"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "توکن" msgstr "توکن"
@@ -818,6 +846,14 @@ msgstr "توکن‌ها به عامل‌ها اجازه اتصال و ثبت‌
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "توکن‌ها و اثرات انگشت برای احراز هویت اتصالات WebSocket به هاب استفاده می‌شوند." msgstr "توکن‌ها و اثرات انگشت برای احراز هویت اتصالات WebSocket به هاب استفاده می‌شوند."
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "هنگامی که هر حسگری از یک آستانه فراتر رود، فعال می‌شود" msgstr "هنگامی که هر حسگری از یک آستانه فراتر رود، فعال می‌شود"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "هنگامی که فعال است، این توکن به عامل‌ها اجازه خودثبت‌نامی بدون ایجاد سیستم قبلی می‌دهد. پس از یک ساعت یا در راه‌اندازی مجدد هاب منقضی می‌شود." msgstr "هنگامی که فعال است، این توکن به عامل‌ها اجازه خودثبت‌نامی بدون ایجاد سیستم قبلی می‌دهد. پس از یک ساعت یا در راه‌اندازی مجدد هاب منقضی می‌شود."
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "دستور Windows" msgstr "دستور Windows"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Copié dans le presse-papiers" msgstr "Copié dans le presse-papiers"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Copier docker compose" msgstr "Copier docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Copier docker run" msgstr "Copier docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Copier l'hôte" msgstr "Copier l'hôte"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Copier la commande Linux" msgstr "Copier la commande Linux"
@@ -396,6 +399,10 @@ msgstr "Échec de la mise à jour de l'alerte"
msgid "Filter..." msgid "Filter..."
msgstr "Filtrer..." msgstr "Filtrer..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Pour <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgstr "Pour <0>{min}</0> {min, plural, one {minute} other {minutes}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Grille" msgstr "Grille"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Commande Homebrew" msgstr "Commande Homebrew"
@@ -440,6 +448,16 @@ msgstr "Adresse email invalide."
msgid "Kernel" msgid "Kernel"
msgstr "Noyau" msgstr "Noyau"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Langue" msgstr "Langue"
@@ -453,6 +471,14 @@ msgstr "Disposition"
msgid "Light" msgid "Light"
msgstr "Clair" msgstr "Clair"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Déconnexion" msgstr "Déconnexion"
@@ -734,6 +760,7 @@ msgstr "Utilisation du swap"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "Système" msgstr "Système"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Changer le thème" msgstr "Changer le thème"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "Token" msgstr "Token"
@@ -818,6 +846,14 @@ msgstr "Les tokens permettent aux agents de se connecter et de s'enregistrer. Le
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "Les tokens et les empreintes sont utilisés pour authentifier les connexions WebSocket vers le hub." msgstr "Les tokens et les empreintes sont utilisés pour authentifier les connexions WebSocket vers le hub."
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Déclenchement lorsque tout capteur dépasse un seuil" msgstr "Déclenchement lorsque tout capteur dépasse un seuil"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "Lorsqu'il est activé, ce token permet aux agents de s'auto-enregistrer sans création préalable du système. Expire après une heure ou au redémarrage du hub." msgstr "Lorsqu'il est activé, ce token permet aux agents de s'auto-enregistrer sans création préalable du système. Expire après une heure ou au redémarrage du hub."
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Commande Windows" msgstr "Commande Windows"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Kopirano u međuspremnik" msgstr "Kopirano u međuspremnik"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Kopiraj docker compose" msgstr "Kopiraj docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Kopiraj docker run" msgstr "Kopiraj docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Kopiraj hosta" msgstr "Kopiraj hosta"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Kopiraj Linux komandu" msgstr "Kopiraj Linux komandu"
@@ -396,6 +399,10 @@ msgstr "Ažuriranje upozorenja nije uspjelo"
msgid "Filter..." msgid "Filter..."
msgstr "Filter..." msgstr "Filter..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Za <0>{min}</0> {min, plural, one {minutu} other {minute}}" msgstr "Za <0>{min}</0> {min, plural, one {minutu} other {minute}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Mreža" msgstr "Mreža"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Homebrew naredba" msgstr "Homebrew naredba"
@@ -440,6 +448,16 @@ msgstr "Nevažeća adresa e-pošte."
msgid "Kernel" msgid "Kernel"
msgstr "Kernel" msgstr "Kernel"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Jezik" msgstr "Jezik"
@@ -453,6 +471,14 @@ msgstr "Izgled"
msgid "Light" msgid "Light"
msgstr "Svijetlo" msgstr "Svijetlo"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Odjava" msgstr "Odjava"
@@ -734,6 +760,7 @@ msgstr "Swap Iskorištenost"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "Sistem" msgstr "Sistem"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Uključi/isključi temu" msgstr "Uključi/isključi temu"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "" msgstr ""
@@ -818,6 +846,14 @@ msgstr ""
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "" msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Pokreće se kada bilo koji senzor prijeđe prag" msgstr "Pokreće se kada bilo koji senzor prijeđe prag"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "" msgstr ""
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Windows naredba" msgstr "Windows naredba"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Vágólapra másolva" msgstr "Vágólapra másolva"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Docker compose másolása" msgstr "Docker compose másolása"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Docker run másolása" msgstr "Docker run másolása"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Hoszt másolása" msgstr "Hoszt másolása"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Linux parancs másolása" msgstr "Linux parancs másolása"
@@ -396,6 +399,10 @@ msgstr "Nem sikerült frissíteni a riasztást"
msgid "Filter..." msgid "Filter..."
msgstr "Szűrő..." msgstr "Szűrő..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "A <0>{min}</0> {min, plural, one {perc} other {percek}}" msgstr "A <0>{min}</0> {min, plural, one {perc} other {percek}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Rács" msgstr "Rács"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Homebrew parancs" msgstr "Homebrew parancs"
@@ -440,6 +448,16 @@ msgstr "Érvénytelen e-mail cím."
msgid "Kernel" msgid "Kernel"
msgstr "Kernel" msgstr "Kernel"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Nyelv" msgstr "Nyelv"
@@ -453,6 +471,14 @@ msgstr "Elrendezés"
msgid "Light" msgid "Light"
msgstr "Világos" msgstr "Világos"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Kijelentkezés" msgstr "Kijelentkezés"
@@ -734,6 +760,7 @@ msgstr "Swap használat"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "Rendszer" msgstr "Rendszer"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Téma váltása" msgstr "Téma váltása"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "" msgstr ""
@@ -818,6 +846,14 @@ msgstr ""
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "" msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Bekapcsol, ha bármelyik érzékelő túllép egy küszöbértéket" msgstr "Bekapcsol, ha bármelyik érzékelő túllép egy küszöbértéket"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "" msgstr ""
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Windows parancs" msgstr "Windows parancs"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Afritað í klippiborð" msgstr "Afritað í klippiborð"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Afrita docker compose" msgstr "Afrita docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Afrita docker run" msgstr "Afrita docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Afrita host" msgstr "Afrita host"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Afrita Linux aðgerð" msgstr "Afrita Linux aðgerð"
@@ -396,6 +399,10 @@ msgstr "Mistókst að uppfæra tilkynningu"
msgid "Filter..." msgid "Filter..."
msgstr "Sía..." msgstr "Sía..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "" msgstr ""
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "" msgstr ""
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Homebrew skipun" msgstr "Homebrew skipun"
@@ -440,6 +448,16 @@ msgstr "Ógilt netfang."
msgid "Kernel" msgid "Kernel"
msgstr "" msgstr ""
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Tungumál" msgstr "Tungumál"
@@ -453,6 +471,14 @@ msgstr ""
msgid "Light" msgid "Light"
msgstr "Ljóst" msgstr "Ljóst"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Útskrá" msgstr "Útskrá"
@@ -734,6 +760,7 @@ msgstr "Skipti minni"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "Kerfi" msgstr "Kerfi"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Velja þema" msgstr "Velja þema"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "" msgstr ""
@@ -818,6 +846,14 @@ msgstr ""
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "" msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Virkjast þegar einhver skynjari fer yfir þröskuld" msgstr "Virkjast þegar einhver skynjari fer yfir þröskuld"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "" msgstr ""
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Windows skipun" msgstr "Windows skipun"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Copiato negli appunti" msgstr "Copiato negli appunti"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Copia docker compose" msgstr "Copia docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Copia docker run" msgstr "Copia docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Copia host" msgstr "Copia host"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Copia comando Linux" msgstr "Copia comando Linux"
@@ -396,6 +399,10 @@ msgstr "Aggiornamento dell'avviso fallito"
msgid "Filter..." msgid "Filter..."
msgstr "Filtra..." msgstr "Filtra..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Per <0>{min}</0> {min, plural, one {minuto} other {minuti}}" msgstr "Per <0>{min}</0> {min, plural, one {minuto} other {minuti}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Griglia" msgstr "Griglia"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Comando Homebrew" msgstr "Comando Homebrew"
@@ -440,6 +448,16 @@ msgstr "Indirizzo email non valido."
msgid "Kernel" msgid "Kernel"
msgstr "Kernel" msgstr "Kernel"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Lingua" msgstr "Lingua"
@@ -453,6 +471,14 @@ msgstr "Aspetto"
msgid "Light" msgid "Light"
msgstr "Chiaro" msgstr "Chiaro"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Disconnetti" msgstr "Disconnetti"
@@ -734,6 +760,7 @@ msgstr "Utilizzo Swap"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "Sistema" msgstr "Sistema"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Attiva/disattiva tema" msgstr "Attiva/disattiva tema"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "Token" msgstr "Token"
@@ -818,6 +846,14 @@ msgstr "I token consentono agli agenti di connettersi e registrarsi. Le impronte
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "I token e le impronte digitali vengono utilizzati per autenticare le connessioni WebSocket all'hub." msgstr "I token e le impronte digitali vengono utilizzati per autenticare le connessioni WebSocket all'hub."
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Attiva quando un sensore supera una soglia" msgstr "Attiva quando un sensore supera una soglia"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "Quando abilitato, questo token consente agli agenti di auto-registrarsi senza creazione preventiva del sistema. Scade dopo un'ora o al riavvio dell'hub." msgstr "Quando abilitato, questo token consente agli agenti di auto-registrarsi senza creazione preventiva del sistema. Scade dopo un'ora o al riavvio dell'hub."
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Comando Windows" msgstr "Comando Windows"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "クリップボードにコピーされました" msgstr "クリップボードにコピーされました"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "docker compose をコピー" msgstr "docker compose をコピー"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "docker run をコピー" msgstr "docker run をコピー"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "ホストをコピー" msgstr "ホストをコピー"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Linuxコマンドをコピー" msgstr "Linuxコマンドをコピー"
@@ -396,6 +399,10 @@ msgstr "アラートの更新に失敗しました"
msgid "Filter..." msgid "Filter..."
msgstr "フィルター..." msgstr "フィルター..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "<0>{min}</0> {min, plural, one {分} other {分}}の間" msgstr "<0>{min}</0> {min, plural, one {分} other {分}}の間"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "グリッド" msgstr "グリッド"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Homebrew コマンド" msgstr "Homebrew コマンド"
@@ -440,6 +448,16 @@ msgstr "無効なメールアドレスです。"
msgid "Kernel" msgid "Kernel"
msgstr "カーネル" msgstr "カーネル"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "言語" msgstr "言語"
@@ -453,6 +471,14 @@ msgstr "レイアウト"
msgid "Light" msgid "Light"
msgstr "ライト" msgstr "ライト"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "ログアウト" msgstr "ログアウト"
@@ -734,6 +760,7 @@ msgstr "スワップ使用量"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "システム" msgstr "システム"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "テーマを切り替え" msgstr "テーマを切り替え"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "トークン" msgstr "トークン"
@@ -818,6 +846,14 @@ msgstr "トークンはエージェントの接続と登録を可能にします
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "トークンとフィンガープリントは、ハブへのWebSocket接続の認証に使用されます。" msgstr "トークンとフィンガープリントは、ハブへのWebSocket接続の認証に使用されます。"
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "センサーがしきい値を超えたときにトリガーされます" msgstr "センサーがしきい値を超えたときにトリガーされます"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "有効にすると、このトークンはエージェントが事前のシステム作成なしに自己登録することを可能にします。1時間後またはハブの再起動時に期限切れになります。" msgstr "有効にすると、このトークンはエージェントが事前のシステム作成なしに自己登録することを可能にします。1時間後またはハブの再起動時に期限切れになります。"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Windows コマンド" msgstr "Windows コマンド"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "클립보드에 복사됨" msgstr "클립보드에 복사됨"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "docker compose 복사" msgstr "docker compose 복사"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "docker run 복사" msgstr "docker run 복사"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "호스트 복사" msgstr "호스트 복사"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "리눅스 명령어 복사" msgstr "리눅스 명령어 복사"
@@ -396,6 +399,10 @@ msgstr "알림 수정 실패"
msgid "Filter..." msgid "Filter..."
msgstr "필터..." msgstr "필터..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "<0>{min}</0> {min, plural, one {분} other {분}} 동안" msgstr "<0>{min}</0> {min, plural, one {분} other {분}} 동안"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "그리드" msgstr "그리드"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Homebrew 명령어" msgstr "Homebrew 명령어"
@@ -440,6 +448,16 @@ msgstr "잘못된 이메일 주소입니다."
msgid "Kernel" msgid "Kernel"
msgstr "커널" msgstr "커널"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "언어" msgstr "언어"
@@ -453,6 +471,14 @@ msgstr "레이아웃"
msgid "Light" msgid "Light"
msgstr "밝게" msgstr "밝게"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "로그아웃" msgstr "로그아웃"
@@ -734,6 +760,7 @@ msgstr "스왑 사용량"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "시스템" msgstr "시스템"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "테마 전환" msgstr "테마 전환"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "" msgstr ""
@@ -818,6 +846,14 @@ msgstr ""
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "" msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "센서가 임계값을 초과할 때 트리거됩니다." msgstr "센서가 임계값을 초과할 때 트리거됩니다."
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "" msgstr ""
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Windows 명령어" msgstr "Windows 명령어"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Gekopieerd naar het klembord" msgstr "Gekopieerd naar het klembord"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Docker compose kopiëren" msgstr "Docker compose kopiëren"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Docker run kopiëren" msgstr "Docker run kopiëren"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Kopieer host" msgstr "Kopieer host"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Kopieer Linux-opdracht" msgstr "Kopieer Linux-opdracht"
@@ -396,6 +399,10 @@ msgstr "Bijwerken waarschuwing mislukt"
msgid "Filter..." msgid "Filter..."
msgstr "Filter..." msgstr "Filter..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Voor <0>{min}</0> {min, plural, one {minuut} other {minuten}}" msgstr "Voor <0>{min}</0> {min, plural, one {minuut} other {minuten}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Raster" msgstr "Raster"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Homebrew-commando" msgstr "Homebrew-commando"
@@ -440,6 +448,16 @@ msgstr "Ongeldig e-mailadres."
msgid "Kernel" msgid "Kernel"
msgstr "Kernel" msgstr "Kernel"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Taal" msgstr "Taal"
@@ -453,6 +471,14 @@ msgstr "Indeling"
msgid "Light" msgid "Light"
msgstr "Licht" msgstr "Licht"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Afmelden" msgstr "Afmelden"
@@ -734,6 +760,7 @@ msgstr "Swap gebruik"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "Systeem" msgstr "Systeem"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Schakel thema" msgstr "Schakel thema"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "" msgstr ""
@@ -818,6 +846,14 @@ msgstr ""
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "" msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Triggert wanneer een sensor een drempelwaarde overschrijdt" msgstr "Triggert wanneer een sensor een drempelwaarde overschrijdt"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "" msgstr ""
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Windows-commando" msgstr "Windows-commando"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Kopiert til utklippstavlen" msgstr "Kopiert til utklippstavlen"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Kopier docker compose" msgstr "Kopier docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Kopier docker run" msgstr "Kopier docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Kopier vert" msgstr "Kopier vert"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Kopier Linux-kommando" msgstr "Kopier Linux-kommando"
@@ -396,6 +399,10 @@ msgstr "Kunne ikke oppdatere alarm"
msgid "Filter..." msgid "Filter..."
msgstr "Filter..." msgstr "Filter..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "I <0>{min}</0> {min, plural, one {minutt} other {minutter}}" msgstr "I <0>{min}</0> {min, plural, one {minutt} other {minutter}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Rutenett" msgstr "Rutenett"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Homebrew-kommando" msgstr "Homebrew-kommando"
@@ -440,6 +448,16 @@ msgstr "Ugyldig e-postadresse."
msgid "Kernel" msgid "Kernel"
msgstr "Kjerne" msgstr "Kjerne"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Språk" msgstr "Språk"
@@ -453,6 +471,14 @@ msgstr "Layout"
msgid "Light" msgid "Light"
msgstr "Lyst" msgstr "Lyst"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Logg Ut" msgstr "Logg Ut"
@@ -734,6 +760,7 @@ msgstr "Swap-bruk"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "System" msgstr "System"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Tema av/på" msgstr "Tema av/på"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "" msgstr ""
@@ -818,6 +846,14 @@ msgstr ""
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "" msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Slår inn når enhver sensor overstiger en grenseverdi" msgstr "Slår inn når enhver sensor overstiger en grenseverdi"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "" msgstr ""
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Windows-kommando" msgstr "Windows-kommando"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Skopiowano do schowka" msgstr "Skopiowano do schowka"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Skopiuj docker compose" msgstr "Skopiuj docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Skopiuj docker run" msgstr "Skopiuj docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Kopiuj host" msgstr "Kopiuj host"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Kopiuj polecenie Linux" msgstr "Kopiuj polecenie Linux"
@@ -396,6 +399,10 @@ msgstr "Nie udało się zaktualizować powiadomienia"
msgid "Filter..." msgid "Filter..."
msgstr "Filtruj..." msgstr "Filtruj..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Na <0>{min}</0> {min, plural, one {minutę} other {minut}}" msgstr "Na <0>{min}</0> {min, plural, one {minutę} other {minut}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Siatka" msgstr "Siatka"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Polecenie Homebrew" msgstr "Polecenie Homebrew"
@@ -440,6 +448,16 @@ msgstr "Nieprawidłowy adres e-mail."
msgid "Kernel" msgid "Kernel"
msgstr "Jądro" msgstr "Jądro"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Język" msgstr "Język"
@@ -453,6 +471,14 @@ msgstr "Układ"
msgid "Light" msgid "Light"
msgstr "Jasny" msgstr "Jasny"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Wyloguj" msgstr "Wyloguj"
@@ -734,6 +760,7 @@ msgstr "Użycie pamięci wymiany"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "System" msgstr "System"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Zmień motyw" msgstr "Zmień motyw"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "" msgstr ""
@@ -818,6 +846,14 @@ msgstr ""
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "" msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Wyzwalane, gdy jakikolwiek czujnik przekroczy ustalony próg." msgstr "Wyzwalane, gdy jakikolwiek czujnik przekroczy ustalony próg."
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "" msgstr ""
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Polecenie Windows" msgstr "Polecenie Windows"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Copiado para a área de transferência" msgstr "Copiado para a área de transferência"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Copiar docker compose" msgstr "Copiar docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Copiar docker run" msgstr "Copiar docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Copiar host" msgstr "Copiar host"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Copiar comando Linux" msgstr "Copiar comando Linux"
@@ -396,6 +399,10 @@ msgstr "Falha ao atualizar alerta"
msgid "Filter..." msgid "Filter..."
msgstr "Filtrar..." msgstr "Filtrar..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Por <0>{min}</0> {min, plural, one {minuto} other {minutos}}" msgstr "Por <0>{min}</0> {min, plural, one {minuto} other {minutos}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Grade" msgstr "Grade"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Comando Homebrew" msgstr "Comando Homebrew"
@@ -440,6 +448,16 @@ msgstr "Endereço de email inválido."
msgid "Kernel" msgid "Kernel"
msgstr "Kernel" msgstr "Kernel"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Idioma" msgstr "Idioma"
@@ -453,6 +471,14 @@ msgstr "Aspeto"
msgid "Light" msgid "Light"
msgstr "Claro" msgstr "Claro"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Sair" msgstr "Sair"
@@ -734,6 +760,7 @@ msgstr "Uso de Swap"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "Sistema" msgstr "Sistema"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Alternar tema" msgstr "Alternar tema"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "Token" msgstr "Token"
@@ -818,6 +846,14 @@ msgstr "Os tokens permitem que os agentes se conectem e registrem. As impressõe
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "Tokens e impressões digitais são usados para autenticar conexões WebSocket ao hub." msgstr "Tokens e impressões digitais são usados para autenticar conexões WebSocket ao hub."
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Dispara quando qualquer sensor excede um limite" msgstr "Dispara quando qualquer sensor excede um limite"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "Quando habilitado, este token permite que os agentes se registrem automaticamente sem criação prévia do sistema. Expira após uma hora ou na reinicialização do hub." msgstr "Quando habilitado, este token permite que os agentes se registrem automaticamente sem criação prévia do sistema. Expira após uma hora ou na reinicialização do hub."
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Comando Windows" msgstr "Comando Windows"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Скопировано в буфер обмена" msgstr "Скопировано в буфер обмена"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Скопировать docker compose" msgstr "Скопировать docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Скопировать docker run" msgstr "Скопировать docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Копировать хост" msgstr "Копировать хост"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Копировать команду Linux" msgstr "Копировать команду Linux"
@@ -396,6 +399,10 @@ msgstr "Не удалось обновить оповещение"
msgid "Filter..." msgid "Filter..."
msgstr "Фильтр..." msgstr "Фильтр..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "На <0>{min}</0> {min, plural, one {минуту} other {минут}}" msgstr "На <0>{min}</0> {min, plural, one {минуту} other {минут}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Сетка" msgstr "Сетка"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Команда Homebrew" msgstr "Команда Homebrew"
@@ -440,6 +448,16 @@ msgstr "Неверный адрес электронной почты."
msgid "Kernel" msgid "Kernel"
msgstr "Ядро" msgstr "Ядро"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Язык" msgstr "Язык"
@@ -453,6 +471,14 @@ msgstr "Макет"
msgid "Light" msgid "Light"
msgstr "Светлая" msgstr "Светлая"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Выйти" msgstr "Выйти"
@@ -734,6 +760,7 @@ msgstr "Использование подкачки"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "Система" msgstr "Система"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Переключить тему" msgstr "Переключить тему"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "" msgstr ""
@@ -818,6 +846,14 @@ msgstr ""
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "" msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Срабатывает, когда любой датчик превышает порог" msgstr "Срабатывает, когда любой датчик превышает порог"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "" msgstr ""
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Команда Windows" msgstr "Команда Windows"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Kopirano v odložišče" msgstr "Kopirano v odložišče"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Kopiraj docker compose" msgstr "Kopiraj docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Kopiraj docker run" msgstr "Kopiraj docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Kopiraj gostitelja" msgstr "Kopiraj gostitelja"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Kopiraj Linux ukaz" msgstr "Kopiraj Linux ukaz"
@@ -396,6 +399,10 @@ msgstr "Opozorila ni bilo mogoče posodobiti"
msgid "Filter..." msgid "Filter..."
msgstr "Filter..." msgstr "Filter..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Za <0>{min}</0> {min, plural, one {minuto} other {minut}}" msgstr "Za <0>{min}</0> {min, plural, one {minuto} other {minut}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Mreža" msgstr "Mreža"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Ukaz Homebrew" msgstr "Ukaz Homebrew"
@@ -440,6 +448,16 @@ msgstr "Napačen e-poštni naslov."
msgid "Kernel" msgid "Kernel"
msgstr "Jedro" msgstr "Jedro"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Jezik" msgstr "Jezik"
@@ -453,6 +471,14 @@ msgstr "Postavitev"
msgid "Light" msgid "Light"
msgstr "Svetlo" msgstr "Svetlo"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Odjava" msgstr "Odjava"
@@ -734,6 +760,7 @@ msgstr "Swap uporaba"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "Sistemsko" msgstr "Sistemsko"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Obrni temo" msgstr "Obrni temo"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "" msgstr ""
@@ -818,6 +846,14 @@ msgstr ""
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "" msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Sproži se, ko kateri koli senzor preseže prag" msgstr "Sproži se, ko kateri koli senzor preseže prag"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "" msgstr ""
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Ukaz Windows" msgstr "Ukaz Windows"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Kopierat till urklipp" msgstr "Kopierat till urklipp"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Kopiera docker compose" msgstr "Kopiera docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Kopiera docker run" msgstr "Kopiera docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Kopiera värd" msgstr "Kopiera värd"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Kopiera Linux-kommando" msgstr "Kopiera Linux-kommando"
@@ -396,6 +399,10 @@ msgstr "Kunde inte uppdatera larm"
msgid "Filter..." msgid "Filter..."
msgstr "Filtrera..." msgstr "Filtrera..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Under <0>{min}</0> {min, plural, one {minut} other {minuter}}" msgstr "Under <0>{min}</0> {min, plural, one {minut} other {minuter}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Rutnät" msgstr "Rutnät"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Homebrew-kommando" msgstr "Homebrew-kommando"
@@ -440,6 +448,16 @@ msgstr "Ogiltig e-postadress."
msgid "Kernel" msgid "Kernel"
msgstr "Kärna" msgstr "Kärna"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Språk" msgstr "Språk"
@@ -453,6 +471,14 @@ msgstr "Layout"
msgid "Light" msgid "Light"
msgstr "Ljust" msgstr "Ljust"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Logga ut" msgstr "Logga ut"
@@ -734,6 +760,7 @@ msgstr "Swap-användning"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "System" msgstr "System"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Växla tema" msgstr "Växla tema"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "" msgstr ""
@@ -818,6 +846,14 @@ msgstr ""
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "" msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Utlöses när någon sensor överskrider ett tröskelvärde" msgstr "Utlöses när någon sensor överskrider ett tröskelvärde"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "" msgstr ""
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Windows-kommando" msgstr "Windows-kommando"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Panoya kopyalandı" msgstr "Panoya kopyalandı"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Docker compose kopyala" msgstr "Docker compose kopyala"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Docker run kopyala" msgstr "Docker run kopyala"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Ana bilgisayarı kopyala" msgstr "Ana bilgisayarı kopyala"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Linux komutunu kopyala" msgstr "Linux komutunu kopyala"
@@ -396,6 +399,10 @@ msgstr "Uyarı güncellenemedi"
msgid "Filter..." msgid "Filter..."
msgstr "Filtrele..." msgstr "Filtrele..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "<0>{min}</0> {min, plural, one {dakika} other {dakika}} için" msgstr "<0>{min}</0> {min, plural, one {dakika} other {dakika}} için"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Izgara" msgstr "Izgara"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Homebrew komutu" msgstr "Homebrew komutu"
@@ -440,6 +448,16 @@ msgstr "Geçersiz e-posta adresi."
msgid "Kernel" msgid "Kernel"
msgstr "Çekirdek" msgstr "Çekirdek"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Dil" msgstr "Dil"
@@ -453,6 +471,14 @@ msgstr "Düzen"
msgid "Light" msgid "Light"
msgstr "Açık" msgstr "Açık"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Çıkış Yap" msgstr "Çıkış Yap"
@@ -734,6 +760,7 @@ msgstr "Takas Kullanımı"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "Sistem" msgstr "Sistem"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Temayı değiştir" msgstr "Temayı değiştir"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "Token" msgstr "Token"
@@ -818,6 +846,14 @@ msgstr "Token'lar agentların bağlanıp kaydolmasına izin verir. Parmak izleri
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "Token'lar ve parmak izleri hub'a WebSocket bağlantılarını doğrulamak için kullanılır." msgstr "Token'lar ve parmak izleri hub'a WebSocket bağlantılarını doğrulamak için kullanılır."
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Herhangi bir sensör bir eşiği aştığında tetiklenir" msgstr "Herhangi bir sensör bir eşiği aştığında tetiklenir"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "Etkinleştirildiğinde, bu token agentların önceden sistem oluşturmadan kendilerini kaydetmelerine izin verir. Bir saat sonra veya hub yeniden başlatıldığında sona erer." msgstr "Etkinleştirildiğinde, bu token agentların önceden sistem oluşturmadan kendilerini kaydetmelerine izin verir. Bir saat sonra veya hub yeniden başlatıldığında sona erer."
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Windows komutu" msgstr "Windows komutu"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Скопійовано в буфер обміну" msgstr "Скопійовано в буфер обміну"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Копіювати docker compose" msgstr "Копіювати docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Копіювати docker run" msgstr "Копіювати docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Копіювати хост" msgstr "Копіювати хост"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Копіювати команду Linux" msgstr "Копіювати команду Linux"
@@ -396,6 +399,10 @@ msgstr "Не вдалося оновити сповіщення"
msgid "Filter..." msgid "Filter..."
msgstr "Фільтр..." msgstr "Фільтр..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Протягом <0>{min}</0> {min, plural, one {хвилини} other {хвилин}}" msgstr "Протягом <0>{min}</0> {min, plural, one {хвилини} other {хвилин}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Сітка" msgstr "Сітка"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Команда Homebrew" msgstr "Команда Homebrew"
@@ -440,6 +448,16 @@ msgstr "Неправильна адреса електронної пошти."
msgid "Kernel" msgid "Kernel"
msgstr "Ядро" msgstr "Ядро"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Мова" msgstr "Мова"
@@ -453,6 +471,14 @@ msgstr "Макет"
msgid "Light" msgid "Light"
msgstr "Світлий" msgstr "Світлий"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Вийти" msgstr "Вийти"
@@ -734,6 +760,7 @@ msgstr "Використання підкачки"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "Система" msgstr "Система"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Перемкнути тему" msgstr "Перемкнути тему"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "Токен" msgstr "Токен"
@@ -818,6 +846,14 @@ msgstr "Токени дозволяють агентам підключатис
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "Токени та відбитки використовуються для автентифікації WebSocket з'єднань до хабу." msgstr "Токени та відбитки використовуються для автентифікації WebSocket з'єднань до хабу."
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Спрацьовує, коли будь-який датчик перевищує поріг" msgstr "Спрацьовує, коли будь-який датчик перевищує поріг"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "Коли увімкнено, цей токен дозволяє агентам самостійно реєструватися без попереднього створення системи. Термін дії закінчується через годину або при перезапуску хабу." msgstr "Коли увімкнено, цей токен дозволяє агентам самостійно реєструватися без попереднього створення системи. Термін дії закінчується через годину або при перезапуску хабу."
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Команда Windows" msgstr "Команда Windows"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "Đã sao chép vào clipboard" msgstr "Đã sao chép vào clipboard"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "Sao chép docker compose" msgstr "Sao chép docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "Sao chép docker run" msgstr "Sao chép docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "Sao chép máy chủ" msgstr "Sao chép máy chủ"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "Sao chép lệnh Linux" msgstr "Sao chép lệnh Linux"
@@ -396,6 +399,10 @@ msgstr "Cập nhật cảnh báo thất bại"
msgid "Filter..." msgid "Filter..."
msgstr "Lọc..." msgstr "Lọc..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "Trong <0>{min}</0> {min, plural, one {phút} other {phút}}" msgstr "Trong <0>{min}</0> {min, plural, one {phút} other {phút}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "Lưới" msgstr "Lưới"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "" msgstr ""
@@ -440,6 +448,16 @@ msgstr "Địa chỉ email không hợp lệ."
msgid "Kernel" msgid "Kernel"
msgstr "Nhân" msgstr "Nhân"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "Ngôn ngữ" msgstr "Ngôn ngữ"
@@ -453,6 +471,14 @@ msgstr "Bố cục"
msgid "Light" msgid "Light"
msgstr "Sáng" msgstr "Sáng"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "Đăng xuất" msgstr "Đăng xuất"
@@ -734,6 +760,7 @@ msgstr "Sử dụng Hoán đổi"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "Hệ thống" msgstr "Hệ thống"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "Chuyển đổi chủ đề" msgstr "Chuyển đổi chủ đề"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "" msgstr ""
@@ -818,6 +846,14 @@ msgstr ""
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "" msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "Kích hoạt khi bất kỳ cảm biến nào vượt quá ngưỡng" msgstr "Kích hoạt khi bất kỳ cảm biến nào vượt quá ngưỡng"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "" msgstr ""
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "" msgstr ""

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "已复制到剪贴板" msgstr "已复制到剪贴板"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "复制 docker compose 文件" msgstr "复制 docker compose 文件"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "复制 docker run 命令" msgstr "复制 docker run 命令"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "复制主机名" msgstr "复制主机名"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "复制 Linux 安装命令" msgstr "复制 Linux 安装命令"
@@ -396,6 +399,10 @@ msgstr "更新警报失败"
msgid "Filter..." msgid "Filter..."
msgstr "过滤..." msgstr "过滤..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "持续<0>{min}</0> {min, plural, one {分钟} other {分钟}}" msgstr "持续<0>{min}</0> {min, plural, one {分钟} other {分钟}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "网格" msgstr "网格"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Homebrew 安装命令" msgstr "Homebrew 安装命令"
@@ -440,6 +448,16 @@ msgstr "无效的电子邮件地址。"
msgid "Kernel" msgid "Kernel"
msgstr "内核" msgstr "内核"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "语言" msgstr "语言"
@@ -453,6 +471,14 @@ msgstr "布局"
msgid "Light" msgid "Light"
msgstr "浅色模式" msgstr "浅色模式"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "登出" msgstr "登出"
@@ -734,6 +760,7 @@ msgstr "SWAP 使用"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "系统" msgstr "系统"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "切换主题" msgstr "切换主题"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "令牌" msgstr "令牌"
@@ -818,6 +846,14 @@ msgstr "令牌允许客户端连接和注册。指纹是每个系统唯一的稳
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "令牌和指纹用于验证到中心的WebSocket连接。" msgstr "令牌和指纹用于验证到中心的WebSocket连接。"
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "当任何传感器超过阈值时触发" msgstr "当任何传感器超过阈值时触发"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "启用时,此令牌允许客户端在无需预先创建系统的情况下自动注册。在一小时后或中心重启时过期。" msgstr "启用时,此令牌允许客户端在无需预先创建系统的情况下自动注册。在一小时后或中心重启时过期。"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Windows 安装命令" msgstr "Windows 安装命令"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "已複製到剪貼板" msgstr "已複製到剪貼板"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "複製 docker compose" msgstr "複製 docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "複製 docker run" msgstr "複製 docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "複製主機" msgstr "複製主機"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "複製 Linux 指令" msgstr "複製 Linux 指令"
@@ -396,6 +399,10 @@ msgstr "更新警報失敗"
msgid "Filter..." msgid "Filter..."
msgstr "篩選..." msgstr "篩選..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "持續<0>{min}</0> {min, plural, one {分鐘} other {分鐘}}" msgstr "持續<0>{min}</0> {min, plural, one {分鐘} other {分鐘}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "網格" msgstr "網格"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Homebrew 指令" msgstr "Homebrew 指令"
@@ -440,6 +448,16 @@ msgstr "無效的電子郵件地址。"
msgid "Kernel" msgid "Kernel"
msgstr "Kernel" msgstr "Kernel"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "語言" msgstr "語言"
@@ -453,6 +471,14 @@ msgstr "版面配置"
msgid "Light" msgid "Light"
msgstr "淺色" msgstr "淺色"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "登出" msgstr "登出"
@@ -734,6 +760,7 @@ msgstr "交換使用"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "系統" msgstr "系統"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "切換主題" msgstr "切換主題"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "令牌" msgstr "令牌"
@@ -818,6 +846,14 @@ msgstr "令牌允許代理程式連接和註冊。指紋是每個系統唯一的
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "令牌和指紋用於驗證到中心的WebSocket連接。" msgstr "令牌和指紋用於驗證到中心的WebSocket連接。"
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "當任何傳感器超過閾值時觸發" msgstr "當任何傳感器超過閾值時觸發"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "啟用時,此令牌允許代理程式在無需預先創建系統的情況下自動註冊。在一小時後或中心重啟時過期。" msgstr "啟用時,此令牌允許代理程式在無需預先創建系統的情況下自動註冊。在一小時後或中心重啟時過期。"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Windows 指令" msgstr "Windows 指令"

View File

@@ -211,11 +211,13 @@ msgid "Copied to clipboard"
msgstr "已複製到剪貼簿" msgstr "已複製到剪貼簿"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker compose file content" msgctxt "Button to copy docker compose file content"
msgid "Copy docker compose" msgid "Copy docker compose"
msgstr "复制 docker compose" msgstr "复制 docker compose"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy docker run command" msgctxt "Button to copy docker run command"
msgid "Copy docker run" msgid "Copy docker run"
msgstr "复制 docker run" msgstr "复制 docker run"
@@ -230,6 +232,7 @@ msgid "Copy host"
msgstr "複製主機" msgstr "複製主機"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Copy Linux command" msgid "Copy Linux command"
msgstr "複製 Linux 指令" msgstr "複製 Linux 指令"
@@ -396,6 +399,10 @@ msgstr "更新警報失敗"
msgid "Filter..." msgid "Filter..."
msgstr "篩選..." msgstr "篩選..."
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Fingerprint"
msgstr ""
#: src/components/alerts/alerts-system.tsx #: src/components/alerts/alerts-system.tsx
msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}" msgid "For <0>{min}</0> {min, plural, one {minute} other {minutes}}"
msgstr "持續<0>{min}</0> {min, plural, one {分鐘} other {分鐘}}" msgstr "持續<0>{min}</0> {min, plural, one {分鐘} other {分鐘}}"
@@ -419,6 +426,7 @@ msgid "Grid"
msgstr "網格" msgstr "網格"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Homebrew command" msgid "Homebrew command"
msgstr "Homebrew 命令" msgstr "Homebrew 命令"
@@ -440,6 +448,16 @@ msgstr "無效的電子郵件地址。"
msgid "Kernel" msgid "Kernel"
msgstr "Kernel" msgstr "Kernel"
#. Load average 15 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L15"
msgstr ""
#. Load average 5 minutes
#: src/components/systems-table/systems-table.tsx
msgid "L5"
msgstr ""
#: src/components/routes/settings/general.tsx #: src/components/routes/settings/general.tsx
msgid "Language" msgid "Language"
msgstr "語言" msgstr "語言"
@@ -453,6 +471,14 @@ msgstr "版面配置"
msgid "Light" msgid "Light"
msgstr "淺色" msgstr "淺色"
#: src/lib/utils.ts
msgid "Load Average 15m"
msgstr ""
#: src/lib/utils.ts
msgid "Load Average 5m"
msgstr ""
#: src/components/navbar.tsx #: src/components/navbar.tsx
msgid "Log Out" msgid "Log Out"
msgstr "登出" msgstr "登出"
@@ -734,6 +760,7 @@ msgstr "虛擬記憶體使用量"
#: src/lib/utils.ts #: src/lib/utils.ts
#: src/components/mode-toggle.tsx #: src/components/mode-toggle.tsx
#: src/components/systems-table/systems-table.tsx #: src/components/systems-table/systems-table.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "System" msgid "System"
msgstr "系統" msgstr "系統"
@@ -801,6 +828,7 @@ msgid "Toggle theme"
msgstr "切換主題" msgstr "切換主題"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgid "Token" msgid "Token"
msgstr "令牌" msgstr "令牌"
@@ -818,6 +846,14 @@ msgstr "令牌允許代理程式連接和註冊。指紋是每個系統唯一的
msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub." msgid "Tokens and fingerprints are used to authenticate WebSocket connections to the hub."
msgstr "令牌和指紋用於驗證到中心的WebSocket連接。" msgstr "令牌和指紋用於驗證到中心的WebSocket連接。"
#: src/lib/utils.ts
msgid "Triggers when 15 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts
msgid "Triggers when 5 minute load average exceeds a threshold"
msgstr ""
#: src/lib/utils.ts #: src/lib/utils.ts
msgid "Triggers when any sensor exceeds a threshold" msgid "Triggers when any sensor exceeds a threshold"
msgstr "當任何感應器超過閾值時觸發" msgstr "當任何感應器超過閾值時觸發"
@@ -906,6 +942,7 @@ msgid "When enabled, this token allows agents to self-register without prior sys
msgstr "啟用時,此令牌允許代理程式在無需預先創建系統的情況下自動註冊。在一小時後或中心重啟時過期。" msgstr "啟用時,此令牌允許代理程式在無需預先創建系統的情況下自動註冊。在一小時後或中心重啟時過期。"
#: src/components/add-system.tsx #: src/components/add-system.tsx
#: src/components/routes/settings/tokens-fingerprints.tsx
msgctxt "Button to copy install command" msgctxt "Button to copy install command"
msgid "Windows command" msgid "Windows command"
msgstr "Windows 命令" msgstr "Windows 命令"

View File

@@ -44,6 +44,10 @@ export interface SystemInfo {
c: number c: number
/** cpu model */ /** cpu model */
m: string m: string
/** load average 5 minutes */
l5?: number
/** load average 15 minutes */
l15?: number
/** operating system */ /** operating system */
o?: string o?: string
/** uptime */ /** uptime */
@@ -71,6 +75,12 @@ export interface SystemStats {
cpu: number cpu: number
/** peak cpu */ /** peak cpu */
cpum?: number cpum?: number
/** load average 1 minute */
l1?: number
/** load average 5 minutes */
l5?: number
/** load average 15 minutes */
l15?: number
/** total memory (gb) */ /** total memory (gb) */
m: number m: number
/** memory used (gb) */ /** memory used (gb) */
@@ -218,6 +228,9 @@ interface AlertInfo {
icon: any icon: any
desc: () => string desc: () => string
max?: number max?: number
min?: number
step?: number
start?: number
/** Single value description (when there's only one value, like status) */ /** Single value description (when there's only one value, like status) */
singleDesc?: () => string singleDesc?: () => string
} }

View File

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

View File

@@ -3,8 +3,8 @@ package beszel
import "github.com/blang/semver" import "github.com/blang/semver"
const ( const (
Version = "0.12.0-beta1" Version = "0.12.0-beta2"
AppName = "beszel" AppName = "beszel"
) )
var MinVersionCbor = semver.MustParse("0.12.0-beta1") var MinVersionCbor = semver.MustParse("0.12.0-beta2")

View File

@@ -144,7 +144,7 @@ while [ $# -gt 0 ]; do
shift shift
HUB_URL="$1" HUB_URL="$1"
;; ;;
-v|--version) -v | --version)
shift shift
VERSION="$1" VERSION="$1"
;; ;;
@@ -353,8 +353,8 @@ if is_alpine; then
fi fi
# Add the user to the docker group to allow access to the Docker socket if group docker exists # Add the user to the docker group to allow access to the Docker socket if group docker exists
if getent group docker; then if getent group docker; then
echo "Adding besel to docker group" echo "Adding beszel to docker group"
usermod -aG docker beszel usermod -aG docker beszel
fi fi
else else
@@ -362,10 +362,10 @@ else
echo "Creating a dedicated user for the Beszel Agent service..." echo "Creating a dedicated user for the Beszel Agent service..."
useradd --system --home-dir /nonexistent --shell /bin/false beszel useradd --system --home-dir /nonexistent --shell /bin/false beszel
fi fi
# Add the user to the docker group to allow access to the Docker socket if group docker exists # Add the user to the docker group to allow access to the Docker socket if group docker exists
if getent group docker; then if getent group docker; then
echo "Adding besel to docker group" echo "Adding beszel to docker group"
usermod -aG docker beszel usermod -aG docker beszel
fi fi
fi fi

View File

@@ -323,8 +323,8 @@ if is_alpine; then
fi fi
# Add the user to the docker group to allow access to the Docker socket if group docker exists # Add the user to the docker group to allow access to the Docker socket if group docker exists
if getent group docker; then if getent group docker; then
echo "Adding besel to docker group" echo "Adding beszel to docker group"
usermod -aG docker beszel usermod -aG docker beszel
fi fi
else else
@@ -332,10 +332,10 @@ else
echo "Creating a dedicated user for the Beszel Agent service..." echo "Creating a dedicated user for the Beszel Agent service..."
useradd --system --home-dir /nonexistent --shell /bin/false beszel useradd --system --home-dir /nonexistent --shell /bin/false beszel
fi fi
# Add the user to the docker group to allow access to the Docker socket if group docker exists # Add the user to the docker group to allow access to the Docker socket if group docker exists
if getent group docker; then if getent group docker; then
echo "Adding besel to docker group" echo "Adding beszel to docker group"
usermod -aG docker beszel usermod -aG docker beszel
fi fi
fi fi