diff --git a/web/public/locales/en/views/system.json b/web/public/locales/en/views/system.json index 2865f3cb8..c57848a04 100644 --- a/web/public/locales/en/views/system.json +++ b/web/public/locales/en/views/system.json @@ -142,7 +142,10 @@ "ffmpegHighCpuUsage": "{{camera}} has high FFMPEG CPU usage ({{ffmpegAvg}}%)", "detectHighCpuUsage": "{{camera}} has high detect CPU usage ({{detectAvg}}%)", "healthy": "System is healthy", - "reindexingEmbeddings": "Reindexing embeddings ({{processed}}% complete)" + "reindexingEmbeddings": "Reindexing embeddings ({{processed}}% complete)", + "cameraIsOffline": "{{camera}} is offline", + "detectIsSlow": "{{detect}} is slow ({{speed}} ms)", + "detectIsVerySlow": "{{detect}} is very slow ({{speed}} ms)" }, "enrichments": { "title": "Enrichments", diff --git a/web/src/hooks/use-stats.ts b/web/src/hooks/use-stats.ts index 41f1b0dc6..5141742c0 100644 --- a/web/src/hooks/use-stats.ts +++ b/web/src/hooks/use-stats.ts @@ -36,13 +36,19 @@ export default function useStats(stats: FrigateStats | undefined) { Object.entries(memoizedStats["detectors"]).forEach(([key, det]) => { if (det["inference_speed"] > InferenceThreshold.error) { problems.push({ - text: `${capitalizeFirstLetter(key)} is very slow (${det["inference_speed"]} ms)`, + text: t("stats.detectIsVerySlow", { + detect: capitalizeFirstLetter(key), + speed: det["inference_speed"], + }), color: "text-danger", relevantLink: "/system#general", }); } else if (det["inference_speed"] > InferenceThreshold.warning) { problems.push({ - text: `${capitalizeFirstLetter(key)} is slow (${det["inference_speed"]} ms)`, + text: t("stats.detectIsSlow", { + detect: capitalizeFirstLetter(key), + speed: det["inference_speed"], + }), color: "text-orange-400", relevantLink: "/system#general", }); @@ -57,7 +63,9 @@ export default function useStats(stats: FrigateStats | undefined) { if (config.cameras[name].enabled && cam["camera_fps"] == 0) { problems.push({ - text: `${capitalizeFirstLetter(name.replaceAll("_", " "))} is offline`, + text: t("stats.cameraIsOffline", { + camera: capitalizeFirstLetter(name.replaceAll("_", " ")), + }), color: "text-danger", relevantLink: "logs", });