From e9b43ec9f01075e1f45690f3218f9102700277f9 Mon Sep 17 00:00:00 2001
From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
Date: Mon, 23 Mar 2026 07:59:37 -0500
Subject: [PATCH] i18n fixes
- add missing translations
- fix dot notation keys
---
web/public/locales/en/common.json | 9 ++++++---
web/public/locales/en/components/camera.json | 3 ++-
.../locales/en/views/classificationModel.json | 8 +++++---
web/public/locales/en/views/events.json | 6 ++++--
web/public/locales/en/views/explore.json | 12 +++++++++++-
web/public/locales/en/views/exports.json | 6 ++++--
web/public/locales/en/views/live.json | 6 ++++--
web/public/locales/en/views/settings.json | 4 ++--
web/public/locales/en/views/system.json | 3 ++-
web/src/components/overlay/MobileTimelineDrawer.tsx | 2 +-
web/src/components/settings/CameraEditForm.tsx | 2 +-
web/src/components/settings/CameraWizardDialog.tsx | 4 ++--
web/src/pages/Exports.tsx | 2 +-
web/src/pages/Live.tsx | 2 +-
web/src/utils/passwordUtil.ts | 13 ++++++++++---
web/src/views/recording/RecordingView.tsx | 2 +-
16 files changed, 57 insertions(+), 27 deletions(-)
diff --git a/web/public/locales/en/common.json b/web/public/locales/en/common.json
index 8becd0c7f..23d9fde3a 100644
--- a/web/public/locales/en/common.json
+++ b/web/public/locales/en/common.json
@@ -161,7 +161,8 @@
"resetToDefault": "Reset to Default",
"saveAll": "Save All",
"savingAll": "Saving All…",
- "undoAll": "Undo All"
+ "undoAll": "Undo All",
+ "retry": "Retry"
},
"menu": {
"system": "System",
@@ -275,7 +276,8 @@
"error": {
"title": "Failed to save config changes: {{errorMessage}}",
"noMessage": "Failed to save config changes"
- }
+ },
+ "success": "Successfully saved config changes."
}
},
"role": {
@@ -310,5 +312,6 @@
"readTheDocumentation": "Read the documentation",
"information": {
"pixels": "{{area}}px"
- }
+ },
+ "no_items": "No items"
}
diff --git a/web/public/locales/en/components/camera.json b/web/public/locales/en/components/camera.json
index 864efa6c4..ed37d1771 100644
--- a/web/public/locales/en/components/camera.json
+++ b/web/public/locales/en/components/camera.json
@@ -81,6 +81,7 @@
"zones": "Zones",
"mask": "Mask",
"motion": "Motion",
- "regions": "Regions"
+ "regions": "Regions",
+ "paths": "Paths"
}
}
diff --git a/web/public/locales/en/views/classificationModel.json b/web/public/locales/en/views/classificationModel.json
index a07114b5c..03704fb50 100644
--- a/web/public/locales/en/views/classificationModel.json
+++ b/web/public/locales/en/views/classificationModel.json
@@ -23,15 +23,17 @@
},
"toast": {
"success": {
- "deletedCategory": "Deleted Class",
- "deletedImage": "Deleted Images",
"deletedModel_one": "Successfully deleted {{count}} model",
"deletedModel_other": "Successfully deleted {{count}} models",
"categorizedImage": "Successfully Classified Image",
"trainedModel": "Successfully trained model.",
"trainingModel": "Successfully started model training.",
"updatedModel": "Successfully updated model configuration",
- "renamedCategory": "Successfully renamed class to {{name}}"
+ "renamedCategory": "Successfully renamed class to {{name}}",
+ "deletedCategory_one": "Deleted {{count}} class",
+ "deletedCategory_other": "Deleted {{count}} classes",
+ "deletedImage_one": "Deleted {{count}} image",
+ "deletedImage_other": "Deleted {{count}} images"
},
"error": {
"deleteImageFailed": "Failed to delete: {{errorMessage}}",
diff --git a/web/public/locales/en/views/events.json b/web/public/locales/en/views/events.json
index 2efbd2652..a829d3687 100644
--- a/web/public/locales/en/views/events.json
+++ b/web/public/locales/en/views/events.json
@@ -15,8 +15,10 @@
"description": "Review items can only be created for a camera when recordings are enabled for that camera."
}
},
- "timeline": "Timeline",
- "timeline.aria": "Select timeline",
+ "timeline": {
+ "label": "Timeline",
+ "aria": "Select timeline"
+ },
"zoomIn": "Zoom In",
"zoomOut": "Zoom Out",
"events": {
diff --git a/web/public/locales/en/views/explore.json b/web/public/locales/en/views/explore.json
index 661a9a5e9..541b90e7b 100644
--- a/web/public/locales/en/views/explore.json
+++ b/web/public/locales/en/views/explore.json
@@ -169,7 +169,8 @@
},
"title": {
"label": "Title"
- }
+ },
+ "scoreInfo": "Score Information"
},
"itemMenu": {
"downloadVideo": {
@@ -220,12 +221,18 @@
"debugReplay": {
"label": "Debug replay",
"aria": "View this tracked object in the debug replay view"
+ },
+ "more": {
+ "aria": "More"
}
},
"dialog": {
"confirmDelete": {
"title": "Confirm Delete",
"desc": "Deleting this tracked object removes the snapshot, any saved embeddings, and any associated tracking details entries. Recorded footage of this tracked object in History view will NOT be deleted.
Are you sure you want to proceed?"
+ },
+ "toast": {
+ "error": "Error deleting this tracked object: {{errorMessage}}"
}
},
"noTrackedObjects": "No Tracked Objects Found",
@@ -248,5 +255,8 @@
},
"concerns": {
"label": "Concerns"
+ },
+ "objectLifecycle": {
+ "noImageFound": "No image found for this tracked object."
}
}
diff --git a/web/public/locales/en/views/exports.json b/web/public/locales/en/views/exports.json
index 8f9e8205e..46cd06ead 100644
--- a/web/public/locales/en/views/exports.json
+++ b/web/public/locales/en/views/exports.json
@@ -6,8 +6,10 @@
"cases": "Cases",
"uncategorizedExports": "Uncategorized Exports"
},
- "deleteExport": "Delete Export",
- "deleteExport.desc": "Are you sure you want to delete {{exportName}}?",
+ "deleteExport": {
+ "label": "Delete Export",
+ "desc": "Are you sure you want to delete {{exportName}}?"
+ },
"editExport": {
"title": "Rename Export",
"desc": "Enter a new name for this export.",
diff --git a/web/public/locales/en/views/live.json b/web/public/locales/en/views/live.json
index c2efef84f..878470187 100644
--- a/web/public/locales/en/views/live.json
+++ b/web/public/locales/en/views/live.json
@@ -1,6 +1,8 @@
{
- "documentTitle": "Live - Frigate",
- "documentTitle.withCamera": "{{camera}} - Live - Frigate",
+ "documentTitle": {
+ "default": "Live - Frigate",
+ "withCamera": "{{camera}} - Live - Frigate"
+ },
"lowBandwidthMode": "Low-bandwidth Mode",
"twoWayTalk": {
"enable": "Enable Two Way Talk",
diff --git a/web/public/locales/en/views/settings.json b/web/public/locales/en/views/settings.json
index 457ba9ccc..f5c20a410 100644
--- a/web/public/locales/en/views/settings.json
+++ b/web/public/locales/en/views/settings.json
@@ -515,7 +515,6 @@
"reviewClassification": {
"title": "Review Classification",
"desc": "Frigate categorizes review items as Alerts and Detections. By default, all person and car objects are considered Alerts. You can refine categorization of your review items by configuring required zones for them.",
-
"noDefinedZones": "No zones are defined for this camera.",
"objectAlertsTips": "All {{alertsLabels}} objects on {{cameraName}} will be shown as Alerts.",
"zoneObjectAlertsTips": "All {{alertsLabels}} objects detected in {{zone}} on {{cameraName}} will be shown as Alerts.",
@@ -1297,7 +1296,8 @@
},
"camera": {
"title": "Camera Settings",
- "description": "These settings apply only to this camera and override the global settings."
+ "description": "These settings apply only to this camera and override the global settings.",
+ "noCameras": "No cameras available"
},
"advancedSettingsCount": "Advanced Settings ({{count}})",
"advancedCount": "Advanced ({{count}})",
diff --git a/web/public/locales/en/views/system.json b/web/public/locales/en/views/system.json
index 460a1d337..0e3d6a35e 100644
--- a/web/public/locales/en/views/system.json
+++ b/web/public/locales/en/views/system.json
@@ -35,7 +35,8 @@
"cameras_count_other": "{{count}} Cameras"
},
"empty": "No messages captured yet",
- "count": "{{count}} messages",
+ "count_one": "{{count}} message",
+ "count_other": "{{count}} messages",
"expanded": {
"payload": "Payload"
}
diff --git a/web/src/components/overlay/MobileTimelineDrawer.tsx b/web/src/components/overlay/MobileTimelineDrawer.tsx
index 1d660f928..61da83412 100644
--- a/web/src/components/overlay/MobileTimelineDrawer.tsx
+++ b/web/src/components/overlay/MobileTimelineDrawer.tsx
@@ -40,7 +40,7 @@ export default function MobileTimelineDrawer({
setDrawer(false);
}}
>
- {t("timeline")}
+ {t("timeline.label")}