From 38b13a0cf1db2f5920461fefa92e75d8b651ebae Mon Sep 17 00:00:00 2001 From: ZhaiSoul <842607283@qq.com> Date: Sun, 9 Nov 2025 09:17:59 +0000 Subject: [PATCH 1/4] fix: fix the missing i18n key --- web/public/locales/en/common.json | 3 ++- web/src/views/recording/RecordingView.tsx | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/web/public/locales/en/common.json b/web/public/locales/en/common.json index 87f32a251..e0d57cbbf 100644 --- a/web/public/locales/en/common.json +++ b/web/public/locales/en/common.json @@ -144,7 +144,8 @@ "unselect": "Unselect", "export": "Export", "deleteNow": "Delete Now", - "next": "Next" + "next": "Next", + "continue": "Continue" }, "menu": { "system": "System", diff --git a/web/src/views/recording/RecordingView.tsx b/web/src/views/recording/RecordingView.tsx index a934e1cb9..5b4d5328c 100644 --- a/web/src/views/recording/RecordingView.tsx +++ b/web/src/views/recording/RecordingView.tsx @@ -649,7 +649,7 @@ export function RecordingView({ value="detail" aria-label="Detail Stream" > -
Detail
+
{t("detail.label")}
) : ( From 6214d5232af650872417d2e4aa97170cd2b532cc Mon Sep 17 00:00:00 2001 From: ZhaiSoul <842607283@qq.com> Date: Sun, 9 Nov 2025 09:19:18 +0000 Subject: [PATCH 2/4] fix: fix trackedObject i18n keys count variable --- web/src/components/timeline/DetailStream.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/components/timeline/DetailStream.tsx b/web/src/components/timeline/DetailStream.tsx index 8e80506bd..6127ab832 100644 --- a/web/src/components/timeline/DetailStream.tsx +++ b/web/src/components/timeline/DetailStream.tsx @@ -349,7 +349,7 @@ function ReviewGroup({ ? fetchedEvents.length : (review.data.objects ?? []).length; - return `${objectCount} ${t("detail.trackedObject", { count: objectCount })}`; + return `${t("detail.trackedObject", { count: objectCount })}`; }, [review, t, fetchedEvents]); const reviewDuration = useMemo( From 1c108bd9101e71c6a3924edcde0d8655165f1041 Mon Sep 17 00:00:00 2001 From: ZhaiSoul <842607283@qq.com> Date: Sun, 9 Nov 2025 09:19:51 +0000 Subject: [PATCH 3/4] fix: fix some pages audio label missing i18n --- .../components/filter/ReviewFilterGroup.tsx | 23 ++++++++++++++- web/src/components/input/InputWithTags.tsx | 29 +++++++++++++++++-- web/src/components/timeline/DetailStream.tsx | 25 ++++++++++++++-- 3 files changed, 72 insertions(+), 5 deletions(-) diff --git a/web/src/components/filter/ReviewFilterGroup.tsx b/web/src/components/filter/ReviewFilterGroup.tsx index d6df53987..76274ec3f 100644 --- a/web/src/components/filter/ReviewFilterGroup.tsx +++ b/web/src/components/filter/ReviewFilterGroup.tsx @@ -454,6 +454,24 @@ export function GeneralFilterContent({ onClose, }: GeneralFilterContentProps) { const { t } = useTranslation(["components/filter", "views/events"]); + const { data: config } = useSWR("config", { + revalidateOnFocus: false, + }); + const allAudioListenLabels = useMemo(() => { + if (!config) { + return []; + } + + const labels = new Set(); + Object.values(config.cameras).forEach((camera) => { + if (camera?.audio?.enabled) { + camera.audio.listen.forEach((label) => { + labels.add(label); + }); + } + }); + return [...labels].sort(); + }, [config]); return ( <>
@@ -504,7 +522,10 @@ export function GeneralFilterContent({ {allLabels.map((item) => ( { if (isChecked) { diff --git a/web/src/components/input/InputWithTags.tsx b/web/src/components/input/InputWithTags.tsx index 199209c7c..d1bd4da40 100755 --- a/web/src/components/input/InputWithTags.tsx +++ b/web/src/components/input/InputWithTags.tsx @@ -81,6 +81,22 @@ export default function InputWithTags({ revalidateOnFocus: false, }); + const allAudioListenLabels = useMemo(() => { + if (!config) { + return []; + } + + const labels = new Set(); + Object.values(config.cameras).forEach((camera) => { + if (camera?.audio?.enabled) { + camera.audio.listen.forEach((label) => { + labels.add(label); + }); + } + }); + return [...labels].sort(); + }, [config]); + const [inputValue, setInputValue] = useState(search || ""); const [currentFilterType, setCurrentFilterType] = useState( null, @@ -421,7 +437,11 @@ export default function InputWithTags({ ? t("button.yes", { ns: "common" }) : t("button.no", { ns: "common" }); } else if (filterType === "labels") { - return getTranslatedLabel(String(filterValues)); + const value = String(filterValues); + return getTranslatedLabel( + value, + allAudioListenLabels.includes(value) ? "audio" : "object", + ); } else if (filterType === "search_type") { return t("filter.searchType." + String(filterValues)); } else { @@ -828,7 +848,12 @@ export default function InputWithTags({ > {t("filter.label." + filterType)}:{" "} {filterType === "labels" ? ( - getTranslatedLabel(value) + getTranslatedLabel( + value, + allAudioListenLabels.includes(value) + ? "audio" + : "object", + ) ) : filterType === "cameras" ? ( ) : filterType === "zones" ? ( diff --git a/web/src/components/timeline/DetailStream.tsx b/web/src/components/timeline/DetailStream.tsx index 6127ab832..20bac9116 100644 --- a/web/src/components/timeline/DetailStream.tsx +++ b/web/src/components/timeline/DetailStream.tsx @@ -478,7 +478,7 @@ function ReviewGroup({
{getIconForLabel(audioLabel, "size-3 text-white")}
- {getTranslatedLabel(audioLabel)} + {getTranslatedLabel(audioLabel, "audio")}
))} @@ -513,7 +513,28 @@ function EventList({ const isSelected = selectedObjectIds.includes(event.id); - const label = event.sub_label || getTranslatedLabel(event.label); + const allAudioListenLabels = useMemo(() => { + if (!config) { + return []; + } + + const labels = new Set(); + Object.values(config.cameras).forEach((camera) => { + if (camera?.audio?.enabled) { + camera.audio.listen.forEach((label) => { + labels.add(label); + }); + } + }); + return [...labels].sort(); + }, [config]); + + const label = + event.sub_label || + getTranslatedLabel( + event.label, + allAudioListenLabels.includes(event.label) ? "audio" : "object", + ); const handleObjectSelect = (event: Event | undefined) => { if (event) { From bae32f8e40bbbd2667fd5f6947adcf82d4d195d4 Mon Sep 17 00:00:00 2001 From: ZhaiSoul <842607283@qq.com> Date: Sun, 9 Nov 2025 09:24:48 +0000 Subject: [PATCH 4/4] fix: add 6214d52 missing variable --- web/public/locales/en/views/events.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/public/locales/en/views/events.json b/web/public/locales/en/views/events.json index 6e242c1e3..d3cf78658 100644 --- a/web/public/locales/en/views/events.json +++ b/web/public/locales/en/views/events.json @@ -24,8 +24,8 @@ "label": "Detail", "noDataFound": "No detail data to review", "aria": "Toggle detail view", - "trackedObject_one": "object", - "trackedObject_other": "objects", + "trackedObject_one": "{{count}} object", + "trackedObject_other": "{{count}} objects", "noObjectDetailData": "No object detail data available.", "settings": "Detail View Settings", "alwaysExpandActive": {