From 4b950723bcf1289afdb95e5e38bff76845bfb520 Mon Sep 17 00:00:00 2001
From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
Date: Wed, 4 Feb 2026 12:18:27 -0600
Subject: [PATCH] fix i18n keys
---
web/public/locales/en/common.json | 1 +
web/public/locales/en/config/groups.json | 64 +++++++++++++++----
web/public/locales/en/views/settings.json | 6 +-
.../CameraReviewClassification.tsx | 6 +-
.../config-form/sections/BaseSection.tsx | 13 ++--
.../theme/templates/ArrayFieldTemplate.tsx | 2 +-
.../theme/templates/ObjectFieldTemplate.tsx | 6 +-
.../theme/widgets/SwitchesWidget.tsx | 2 +-
web/src/views/settings/SingleSectionPage.tsx | 2 +-
9 files changed, 76 insertions(+), 26 deletions(-)
diff --git a/web/public/locales/en/common.json b/web/public/locales/en/common.json
index 67dc057ef..dc39e7c26 100644
--- a/web/public/locales/en/common.json
+++ b/web/public/locales/en/common.json
@@ -115,6 +115,7 @@
"internalID": "The Internal ID Frigate uses in the configuration and database"
},
"button": {
+ "add": "Add",
"apply": "Apply",
"reset": "Reset",
"undo": "Undo",
diff --git a/web/public/locales/en/config/groups.json b/web/public/locales/en/config/groups.json
index abff0d24d..e50ac8d36 100644
--- a/web/public/locales/en/config/groups.json
+++ b/web/public/locales/en/config/groups.json
@@ -1,28 +1,68 @@
{
"audio": {
- "detection": "Detection",
- "sensitivity": "Sensitivity"
+ "global": {
+ "detection": "Detection",
+ "sensitivity": "Sensitivity"
+ },
+ "cameras": {
+ "detection": "Detection",
+ "sensitivity": "Sensitivity"
+ }
},
"timestamp_style": {
- "appearance": "Appearance"
+ "global": {
+ "appearance": "Appearance"
+ },
+ "cameras": {
+ "appearance": "Appearance"
+ }
},
"motion": {
- "sensitivity": "Sensitivity",
- "algorithm": "Algorithm"
+ "global": {
+ "sensitivity": "Sensitivity",
+ "algorithm": "Algorithm"
+ },
+ "cameras": {
+ "sensitivity": "Sensitivity",
+ "algorithm": "Algorithm"
+ }
},
"snapshots": {
- "display": "Display"
+ "global": {
+ "display": "Display"
+ },
+ "cameras": {
+ "display": "Display"
+ }
},
"detect": {
- "resolution": "Resolution",
- "tracking": "Tracking"
+ "global": {
+ "resolution": "Resolution",
+ "tracking": "Tracking!!!"
+ },
+ "cameras": {
+ "resolution": "Resolution",
+ "tracking": "Tracking!!!"
+ }
},
"objects": {
- "tracking": "Tracking",
- "filtering": "Filtering"
+ "global": {
+ "tracking": "Tracking",
+ "filtering": "Filtering"
+ },
+ "cameras": {
+ "tracking": "Tracking",
+ "filtering": "Filtering"
+ }
},
"record": {
- "retention": "Retention",
- "events": "Events"
+ "global": {
+ "retention": "Retention",
+ "events": "Events"
+ },
+ "cameras": {
+ "retention": "Retention",
+ "events": "Events"
+ }
}
}
diff --git a/web/public/locales/en/views/settings.json b/web/public/locales/en/views/settings.json
index 10f813a11..c0e25e2c1 100644
--- a/web/public/locales/en/views/settings.json
+++ b/web/public/locales/en/views/settings.json
@@ -1244,8 +1244,12 @@
"objects": {
"title": "Object Settings"
},
+ "audioLabels": {
+ "summary": "{{count}} audio labels selected",
+ "empty": "No audio labels available"
+ },
"objectLabels": {
- "summary": "{{count}} selected",
+ "summary": "{{count}} object types selected",
"empty": "No object labels available"
},
"filters": {
diff --git a/web/src/components/config-form/sectionExtras/CameraReviewClassification.tsx b/web/src/components/config-form/sectionExtras/CameraReviewClassification.tsx
index f0286766a..f716ef39c 100644
--- a/web/src/components/config-form/sectionExtras/CameraReviewClassification.tsx
+++ b/web/src/components/config-form/sectionExtras/CameraReviewClassification.tsx
@@ -193,7 +193,7 @@ export default function CameraReviewClassification({
<>
@@ -256,7 +256,9 @@ export default function CameraReviewClassification({
<>
{selectDetections && (
diff --git a/web/src/components/config-form/sections/BaseSection.tsx b/web/src/components/config-form/sections/BaseSection.tsx
index 2eb1a2a90..7cfa78ab9 100644
--- a/web/src/components/config-form/sections/BaseSection.tsx
+++ b/web/src/components/config-form/sections/BaseSection.tsx
@@ -883,12 +883,15 @@ export function ConfigSection({
{isSaving ? (
<>
- {t("saving", { ns: "common", defaultValue: "Saving..." })}
+ {t("button.saving", {
+ ns: "common",
+ defaultValue: "Saving...",
+ })}
>
) : (
<>
- {t("save", { ns: "common", defaultValue: "Save" })}
+ {t("button.save", { ns: "common", defaultValue: "Save" })}
>
)}
@@ -909,7 +912,7 @@ export function ConfigSection({
- {t("cancel", { ns: "common" })}
+ {t("button.cancel", { ns: "common" })}
- {t("overridden", {
+ {t("button.overridden", {
ns: "common",
defaultValue: "Overridden",
})}
@@ -980,7 +983,7 @@ export function ConfigSection({
{title}
{showOverrideIndicator && level === "camera" && isOverridden && (
- {t("overridden", {
+ {t("button.overridden", {
ns: "common",
defaultValue: "Overridden",
})}
diff --git a/web/src/components/config-form/theme/templates/ArrayFieldTemplate.tsx b/web/src/components/config-form/theme/templates/ArrayFieldTemplate.tsx
index 4c5c4abb4..42b0a0585 100644
--- a/web/src/components/config-form/theme/templates/ArrayFieldTemplate.tsx
+++ b/web/src/components/config-form/theme/templates/ArrayFieldTemplate.tsx
@@ -52,7 +52,7 @@ export function ArrayFieldTemplate(props: ArrayFieldTemplateProps) {
className="gap-2"
>
- {t("add", { ns: "common", defaultValue: "Add" })}
+ {t("button.add", { ns: "common", defaultValue: "Add" })}
)}
diff --git a/web/src/components/config-form/theme/templates/ObjectFieldTemplate.tsx b/web/src/components/config-form/theme/templates/ObjectFieldTemplate.tsx
index 682c85b42..c8193b425 100644
--- a/web/src/components/config-form/theme/templates/ObjectFieldTemplate.tsx
+++ b/web/src/components/config-form/theme/templates/ObjectFieldTemplate.tsx
@@ -195,8 +195,8 @@ export function ObjectFieldTemplate(props: ObjectFieldTemplateProps) {
ordered.forEach((item) => grouped.add(item.name));
const label = domain
- ? t(`${domain}.${groupKey}`, {
- ns: "config/global",
+ ? t(`${sectionI18nPrefix}.${domain}.${groupKey}`, {
+ ns: "config/groups",
defaultValue: toTitle(groupKey),
})
: t(`groups.${groupKey}`, {
@@ -261,7 +261,7 @@ export function ObjectFieldTemplate(props: ObjectFieldTemplateProps) {
className="gap-2"
>
- {t("add", { ns: "common", defaultValue: "Add" })}
+ {t("button.add", { ns: "common", defaultValue: "Add" })}
);
};
diff --git a/web/src/components/config-form/theme/widgets/SwitchesWidget.tsx b/web/src/components/config-form/theme/widgets/SwitchesWidget.tsx
index 1d2e1f2e1..1f837c2f8 100644
--- a/web/src/components/config-form/theme/widgets/SwitchesWidget.tsx
+++ b/web/src/components/config-form/theme/widgets/SwitchesWidget.tsx
@@ -179,7 +179,7 @@ export function SwitchesWidget(props: WidgetProps) {
-
+
{availableEntities.length === 0 ? (
{emptyMessage}
) : (
diff --git a/web/src/views/settings/SingleSectionPage.tsx b/web/src/views/settings/SingleSectionPage.tsx
index 04f83da94..bc1a448e9 100644
--- a/web/src/views/settings/SingleSectionPage.tsx
+++ b/web/src/views/settings/SingleSectionPage.tsx
@@ -128,7 +128,7 @@ export function SingleSectionPage({
variant="secondary"
className="border-2 border-selected text-xs text-primary-variant"
>
- {t("overridden", {
+ {t("button.overridden", {
ns: "common",
defaultValue: "Overridden",
})}