From a8a4938c97fa4e30fc1a10dca5032e518bf1bdbf Mon Sep 17 00:00:00 2001 From: ZhaiSoul <842607283@qq.com> Date: Mon, 10 Mar 2025 23:45:43 +0800 Subject: [PATCH] chore: fix some key not work --- web/public/locales/en/views/live.json | 4 + web/public/locales/zh-CN/common.json | 1 + web/public/locales/zh-CN/views/live.json | 4 + .../filter/CalendarFilterButton.tsx | 2 +- .../components/filter/CameraGroupSelector.tsx | 32 ++-- .../components/filter/CamerasFilterButton.tsx | 6 +- .../components/filter/ReviewFilterGroup.tsx | 4 +- .../components/filter/SearchFilterGroup.tsx | 8 +- web/src/components/filter/ZoneMaskFilter.tsx | 8 +- web/src/components/input/SaveSearchDialog.tsx | 4 +- web/src/components/menu/GeneralSettings.tsx | 2 +- .../components/menu/SearchResultActions.tsx | 12 +- web/src/components/navigation/NavItem.tsx | 2 +- .../components/overlay/CameraInfoDialog.tsx | 6 +- .../components/overlay/CreateUserDialog.tsx | 14 +- .../components/overlay/DeleteUserDialog.tsx | 4 +- web/src/components/overlay/ExportDialog.tsx | 2 +- .../overlay/MobileReviewSettingsDrawer.tsx | 2 +- .../components/overlay/RoleChangeDialog.tsx | 8 +- .../components/overlay/SaveExportOverlay.tsx | 2 +- .../components/overlay/SetPasswordDialog.tsx | 4 +- .../overlay/detail/SearchDetailDialog.tsx | 6 +- .../overlay/dialog/RestartDialog.tsx | 4 +- .../overlay/dialog/SearchFilterDialog.tsx | 22 +-- .../overlay/dialog/TextEntryDialog.tsx | 4 +- .../settings/CameraStreamingDialog.tsx | 20 ++- .../settings/MotionMaskEditPane.tsx | 12 +- .../settings/ObjectMaskEditPane.tsx | 6 +- web/src/components/settings/PolygonItem.tsx | 12 +- web/src/components/settings/ZoneEditPane.tsx | 16 +- web/src/components/ui/calendar-range.tsx | 4 +- web/src/pages/Exports.tsx | 6 +- web/src/views/events/EventView.tsx | 6 +- web/src/views/live/DraggableGridLayout.tsx | 4 +- web/src/views/live/LiveCameraView.tsx | 62 +++++-- web/src/views/live/LiveDashboardView.tsx | 4 +- web/src/views/recording/RecordingView.tsx | 4 +- web/src/views/settings/AuthenticationView.tsx | 8 +- web/src/views/settings/CameraSettingsView.tsx | 170 ++++++++++-------- web/src/views/settings/MotionTunerView.tsx | 18 +- .../settings/NotificationsSettingsView.tsx | 6 +- web/src/views/settings/ObjectSettingsView.tsx | 2 +- web/src/views/settings/SearchSettingsView.tsx | 38 ++-- 43 files changed, 348 insertions(+), 217 deletions(-) diff --git a/web/public/locales/en/views/live.json b/web/public/locales/en/views/live.json index e1ebaa159..b82dc17c2 100644 --- a/web/public/locales/en/views/live.json +++ b/web/public/locales/en/views/live.json @@ -38,6 +38,10 @@ } } }, + "camera": { + "enable": "Enable Camera", + "disable": "Disable Camera" + }, "detect": { "enable": "Enable Detect", "disable": "Disable Detect" diff --git a/web/public/locales/zh-CN/common.json b/web/public/locales/zh-CN/common.json index a143765e5..18cf5cc73 100644 --- a/web/public/locales/zh-CN/common.json +++ b/web/public/locales/zh-CN/common.json @@ -64,6 +64,7 @@ "info": "信息" }, "menu": { + "system": "系统", "systemMetrics": "系统信息", "configuration": "配置", "systemLogs": "系统日志", diff --git a/web/public/locales/zh-CN/views/live.json b/web/public/locales/zh-CN/views/live.json index 401e300e7..3499449f6 100644 --- a/web/public/locales/zh-CN/views/live.json +++ b/web/public/locales/zh-CN/views/live.json @@ -38,6 +38,10 @@ } } }, + "camera": { + "enable": "开启摄像头", + "disable": "关闭摄像头" + }, "detect": { "enable": "启用检测", "disable": "关闭检测" diff --git a/web/src/components/filter/CalendarFilterButton.tsx b/web/src/components/filter/CalendarFilterButton.tsx index 0ef8207da..d04adf187 100644 --- a/web/src/components/filter/CalendarFilterButton.tsx +++ b/web/src/components/filter/CalendarFilterButton.tsx @@ -69,7 +69,7 @@ export default function CalendarFilterButton({ updateSelectedDay(undefined); }} > - {t("button.reset")} + {t("button.reset", { ns: "common" })} diff --git a/web/src/components/filter/CameraGroupSelector.tsx b/web/src/components/filter/CameraGroupSelector.tsx index 630e6a1da..aff94680a 100644 --- a/web/src/components/filter/CameraGroupSelector.tsx +++ b/web/src/components/filter/CameraGroupSelector.tsx @@ -76,7 +76,7 @@ import { Switch } from "../ui/switch"; import { CameraStreamingDialog } from "../settings/CameraStreamingDialog"; import { DialogTrigger } from "@radix-ui/react-dialog"; import { useStreamingSettings } from "@/context/streaming-settings-provider"; -import { useTranslation } from "react-i18next"; +import { Trans, useTranslation } from "react-i18next"; type CameraGroupSelectorProps = { className?: string; @@ -165,7 +165,7 @@ export function CameraGroupSelector({ className }: CameraGroupSelectorProps) { - {t("menu.live.allCameras")} + {t("menu.live.allCameras", { ns: "common" })} @@ -536,15 +536,19 @@ export function CameraGroupRow({ {t("group.delete.confirm")} - {t("group.delete.confirm.desc", { name: group[0] })} + + group.delete.confirm.desc + - {t("button.cancel")} + + {t("button.cancel", { ns: "common" })} + - {t("button.delete")} + {t("button.delete", { ns: "common" })} @@ -562,13 +566,13 @@ export function CameraGroupRow({ aria-label="Edit group" onClick={onEditGroup} > - {t("button.edit")} + {t("button.edit", { ns: "common" })} setDeleteDialogOpen(true)} > - {t("button.delete")} + {t("button.delete", { ns: "common" })} @@ -585,7 +589,9 @@ export function CameraGroupRow({ onClick={onEditGroup} /> - {t("button.edit")} + + {t("button.edit", { ns: "common" })} + @@ -596,7 +602,9 @@ export function CameraGroupRow({ onClick={() => setDeleteDialogOpen(true)} /> - {t("button.delete")} + + {t("button.delete", { ns: "common" })} + )} @@ -925,7 +933,7 @@ export function CameraGroupEdit({ aria-label="Cancel" onClick={onCancel} > - {t("button.cancel")} + {t("button.cancel", { ns: "common" })} diff --git a/web/src/components/filter/CamerasFilterButton.tsx b/web/src/components/filter/CamerasFilterButton.tsx index a9b4a4f15..cfd01d6da 100644 --- a/web/src/components/filter/CamerasFilterButton.tsx +++ b/web/src/components/filter/CamerasFilterButton.tsx @@ -42,7 +42,7 @@ export function CamerasFilterButton({ } if (!selectedCameras || selectedCameras.length == 0) { - return t("menu.live.allCameras"); + return t("menu.live.allCameras", { ns: "common" }); } return `${selectedCameras.includes("birdseye") ? selectedCameras.length - 1 : selectedCameras.length} Camera${selectedCameras.length !== 1 ? "s" : ""}`; @@ -236,7 +236,7 @@ export function CamerasFilterContent({ setOpen(false); }} > - {t("button.apply")} + {t("button.apply", { ns: "common" })} diff --git a/web/src/components/filter/ReviewFilterGroup.tsx b/web/src/components/filter/ReviewFilterGroup.tsx index 85a236bcc..888f6da5c 100644 --- a/web/src/components/filter/ReviewFilterGroup.tsx +++ b/web/src/components/filter/ReviewFilterGroup.tsx @@ -577,10 +577,10 @@ export function GeneralFilterContent({ onClose(); }} > - {t("button.apply")} + {t("button.apply", { ns: "common" })} diff --git a/web/src/components/filter/SearchFilterGroup.tsx b/web/src/components/filter/SearchFilterGroup.tsx index fb410fe33..6fc9bfe07 100644 --- a/web/src/components/filter/SearchFilterGroup.tsx +++ b/web/src/components/filter/SearchFilterGroup.tsx @@ -391,7 +391,7 @@ export function GeneralFilterContent({ onClose(); }} > - {t("button.apply")} + {t("button.apply", { ns: "common" })} @@ -567,7 +567,7 @@ export function SortTypeContent({ onClose(); }} > - {t("button.apply")} + {t("button.apply", { ns: "common" })} diff --git a/web/src/components/filter/ZoneMaskFilter.tsx b/web/src/components/filter/ZoneMaskFilter.tsx index 9d1d26d7f..ae87672f4 100644 --- a/web/src/components/filter/ZoneMaskFilter.tsx +++ b/web/src/components/filter/ZoneMaskFilter.tsx @@ -101,10 +101,10 @@ export function GeneralFilterContent({ > {t( "masksAndZones." + - item.replace(/_([a-z])/g, (letter) => - letter.toUpperCase(), - ) + - "s", + item + .replace(/_([a-z])/g, (letter) => letter.toUpperCase()) + .replace("_", "") + + "s.label", { ns: "views/settings" }, )} diff --git a/web/src/components/input/SaveSearchDialog.tsx b/web/src/components/input/SaveSearchDialog.tsx index ff53d615d..348f9e1c4 100644 --- a/web/src/components/input/SaveSearchDialog.tsx +++ b/web/src/components/input/SaveSearchDialog.tsx @@ -80,7 +80,7 @@ export function SaveSearchDialog({ )} diff --git a/web/src/components/menu/GeneralSettings.tsx b/web/src/components/menu/GeneralSettings.tsx index ef148d612..b2cb445d3 100644 --- a/web/src/components/menu/GeneralSettings.tsx +++ b/web/src/components/menu/GeneralSettings.tsx @@ -187,7 +187,7 @@ export default function GeneralSettings({ className }: GeneralSettingsProps) { > - Logout + {t("menu.user.logout", { ns: "common" })} diff --git a/web/src/components/menu/SearchResultActions.tsx b/web/src/components/menu/SearchResultActions.tsx index b8e5c6e58..2f45ab698 100644 --- a/web/src/components/menu/SearchResultActions.tsx +++ b/web/src/components/menu/SearchResultActions.tsx @@ -40,7 +40,7 @@ import { } from "@/components/ui/tooltip"; import useSWR from "swr"; -import { useTranslation } from "react-i18next"; +import { Trans, useTranslation } from "react-i18next"; type SearchResultActionsProps = { searchResult: SearchResult; @@ -154,7 +154,7 @@ export default function SearchResultActions({ onClick={() => setDeleteDialogOpen(true)} > - {t("button.delete")} + {t("button.delete", { ns: "common" })} ); @@ -170,15 +170,17 @@ export default function SearchResultActions({ {t("dialog.confirmDelete")} - {t("dialog.confirmDelete.desc")} + dialog.confirmDelete.desc - {t("button.cancel")} + + {t("button.cancel", { ns: "common" })} + - {t("button.delete")} + {t("button.delete", { ns: "common" })} diff --git a/web/src/components/navigation/NavItem.tsx b/web/src/components/navigation/NavItem.tsx index 2b425d678..a662b0a28 100644 --- a/web/src/components/navigation/NavItem.tsx +++ b/web/src/components/navigation/NavItem.tsx @@ -61,7 +61,7 @@ export default function NavItem({ {content} -

{t("{item.title}")}

+

{t(item.title)}

diff --git a/web/src/components/overlay/CameraInfoDialog.tsx b/web/src/components/overlay/CameraInfoDialog.tsx index 8f11bf179..9360fd6de 100644 --- a/web/src/components/overlay/CameraInfoDialog.tsx +++ b/web/src/components/overlay/CameraInfoDialog.tsx @@ -15,7 +15,7 @@ import { useEffect, useState } from "react"; import axios from "axios"; import { toast } from "sonner"; import { Toaster } from "../ui/sonner"; -import { useTranslation } from "react-i18next"; +import { Trans, useTranslation } from "react-i18next"; type CameraInfoDialogProps = { camera: CameraConfig; @@ -80,7 +80,7 @@ export default function CameraInfoDialog({ - {t("cameras.info.streamDataFromFFPROBE")} + cameras.info.streamDataFromFFPROBE
@@ -184,7 +184,7 @@ export default function CameraInfoDialog({ aria-label="Copy" onClick={() => onCopyFfprobe()} > - {t("button.copy")} + {t("button.copy", { ns: "common" })} diff --git a/web/src/components/overlay/CreateUserDialog.tsx b/web/src/components/overlay/CreateUserDialog.tsx index 0a22378d8..c72772f40 100644 --- a/web/src/components/overlay/CreateUserDialog.tsx +++ b/web/src/components/overlay/CreateUserDialog.tsx @@ -211,7 +211,7 @@ export default function CreateUserDialog({ render={({ field }) => ( - {t("role.title")} + {t("role.title", { ns: "common" })} - {t("role.desc")} + {t("role.desc", { ns: "common" })} @@ -261,7 +261,7 @@ export default function CreateUserDialog({ onClick={handleCancel} type="button" > - {t("button.cancel")} + {t("button.cancel", { ns: "common" })}
) : ( - t("button.save") + t("button.save", { ns: "common" }) )} diff --git a/web/src/components/overlay/DeleteUserDialog.tsx b/web/src/components/overlay/DeleteUserDialog.tsx index d24fcd5b1..4e14e0d74 100644 --- a/web/src/components/overlay/DeleteUserDialog.tsx +++ b/web/src/components/overlay/DeleteUserDialog.tsx @@ -48,7 +48,7 @@ export default function DeleteUserDialog({ onClick={onCancel} type="button" > - {t("button.cancel")} + {t("button.cancel", { ns: "common" })} diff --git a/web/src/components/overlay/ExportDialog.tsx b/web/src/components/overlay/ExportDialog.tsx index ac4045326..f28efb22e 100644 --- a/web/src/components/overlay/ExportDialog.tsx +++ b/web/src/components/overlay/ExportDialog.tsx @@ -321,7 +321,7 @@ export function ExportContent({ className={`cursor-pointer p-2 text-center ${isDesktop ? "" : "w-full"}`} onClick={onCancel} > - {t("button.cancel")} + {t("button.cancel", { ns: "common" })} diff --git a/web/src/components/overlay/RoleChangeDialog.tsx b/web/src/components/overlay/RoleChangeDialog.tsx index 265971e3d..3256cb83e 100644 --- a/web/src/components/overlay/RoleChangeDialog.tsx +++ b/web/src/components/overlay/RoleChangeDialog.tsx @@ -1,4 +1,4 @@ -import { useTranslation } from "react-i18next"; +import { Trans, useTranslation } from "react-i18next"; import { Button } from "../ui/button"; import { Dialog, @@ -52,7 +52,7 @@ export default function RoleChangeDialog({
- {t("users.dialog.changeRole.roleInfo")} + users.dialog.changeRole.roleInfo