From 8c1ba16df22957c52ac1824e644bb5f6cafb506f Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 20 Aug 2025 07:15:14 -0600 Subject: [PATCH] Add missing keys --- web/public/locales/en/views/events.json | 4 +++- web/public/locales/en/views/explore.json | 9 +++++++++ .../overlay/detail/ReviewDetailDialog.tsx | 20 ++++++++++++------- .../player/PreviewThumbnailPlayer.tsx | 19 +++++------------- 4 files changed, 30 insertions(+), 22 deletions(-) diff --git a/web/public/locales/en/views/events.json b/web/public/locales/en/views/events.json index 98bc7c422..77c626adf 100644 --- a/web/public/locales/en/views/events.json +++ b/web/public/locales/en/views/events.json @@ -34,5 +34,7 @@ "selected_one": "{{count}} selected", "selected_other": "{{count}} selected", "camera": "Camera", - "detected": "detected" + "detected": "detected", + "suspiciousActivity": "Suspicious Activity", + "threateningActivity": "Threatening Activity" } diff --git a/web/public/locales/en/views/explore.json b/web/public/locales/en/views/explore.json index d754fee77..3e5e753d9 100644 --- a/web/public/locales/en/views/explore.json +++ b/web/public/locales/en/views/explore.json @@ -132,6 +132,9 @@ "label": "Top Score", "info": "The top score is the highest median score for the tracked object, so this may differ from the score shown on the search result thumbnail." }, + "score": { + "label": "Score" + }, "recognizedLicensePlate": "Recognized License Plate", "estimatedSpeed": "Estimated Speed", "objects": "Objects", @@ -213,5 +216,11 @@ "error": "Failed to delete tracked object: {{errorMessage}}" } } + }, + "aiAnalysis": { + "title": "AI Analysis" + }, + "concerns": { + "label": "Concerns" } } diff --git a/web/src/components/overlay/detail/ReviewDetailDialog.tsx b/web/src/components/overlay/detail/ReviewDetailDialog.tsx index 1f647fb04..346ce5806 100644 --- a/web/src/components/overlay/detail/ReviewDetailDialog.tsx +++ b/web/src/components/overlay/detail/ReviewDetailDialog.tsx @@ -86,10 +86,10 @@ export default function ReviewDetailDialog({ let concerns = ""; switch (aiAnalysis.potential_threat_level) { case ThreatLevel.SUSPICIOUS: - concerns = "• Suspicious Activity\n"; + concerns = `• ${t("suspiciousActivity", { ns: "views/events" })}\n`; break; case ThreatLevel.DANGER: - concerns = "• Danger\n"; + concerns = `• ${t("threateningActivity", { ns: "views/events" })}\n`; break; } @@ -98,7 +98,7 @@ export default function ReviewDetailDialog({ }); return concerns || "None"; - }, [aiAnalysis]); + }, [aiAnalysis, t]); const hasMismatch = useMemo(() => { if (!review || !events) { @@ -270,12 +270,18 @@ export default function ReviewDetailDialog({ isDesktop && "m-2 w-[90%]", )} > - AI Analysis -
Description
+ {t("aiAnalysis.title")} +
+ {t("description.label")} +
{aiAnalysis.scene}
-
Score
+
+ {t("score.label")} +
{aiAnalysis.confidence * 100}%
-
Concerns
+
+ {t("concerns.label")} +
{aiThreatLevel}
)} diff --git a/web/src/components/player/PreviewThumbnailPlayer.tsx b/web/src/components/player/PreviewThumbnailPlayer.tsx index 46f6a9f79..9d84a6697 100644 --- a/web/src/components/player/PreviewThumbnailPlayer.tsx +++ b/web/src/components/player/PreviewThumbnailPlayer.tsx @@ -317,20 +317,11 @@ export default function PreviewThumbnailPlayer({ - {[ - ...new Set([ - ...(review.data.objects || []), - ...(review.data.sub_labels || []), - ...(review.data.audio || []), - ]), - ] - .filter( - (item) => item !== undefined && !item.includes("-verified"), - ) - .map((text) => capitalizeFirstLetter(text)) - .sort() - .join(", ") - .replaceAll("-verified", "")} + {review.data.metadata.potential_threat_level == 1 ? ( + <>{t("suspiciousActivity", { ns: "views/events" })} + ) : ( + <>{t("threateningActivity", { ns: "views/events" })} + )} )}