{ "documentTitle": { "default": "Settings - Frigate", "authentication": "Authentication Settings - Frigate", "camera": "Camera Settings - Frigate", "enrichments": "Enrichments Settings - Frigate", "masksAndZones": "Mask and Zone Editor - Frigate", "motionTuner": "Motion Tuner - Frigate", "object": "Debug - Frigate", "general": "General Settings - Frigate", "frigatePlus": "Frigate+ Settings - Frigate", "notifications": "Notification Settings - Frigate" }, "menu": { "ui": "UI", "enrichments": "Enrichments", "cameras": "Camera Settings", "masksAndZones": "Masks / Zones", "motionTuner": "Motion Tuner", "debug": "Debug", "users": "Users", "notifications": "Notifications", "frigateplus": "Frigate+" }, "dialog": { "unsavedChanges": { "title": "You have unsaved changes.", "desc": "Do you want to save your changes before continuing?" } }, "cameraSetting": { "camera": "Camera", "noCamera": "No Camera" }, "general": { "title": "General Settings", "liveDashboard": { "title": "Live Dashboard", "automaticLiveView": { "label": "Automatic Live View", "desc": "Automatically switch to a camera's live view when activity is detected. Disabling this option causes static camera images on the Live dashboard to only update once per minute." }, "playAlertVideos": { "label": "Play Alert Videos", "desc": "By default, recent alerts on the Live dashboard play as small looping videos. Disable this option to only show a static image of recent alerts on this device/browser." } }, "storedLayouts": { "title": "Stored Layouts", "desc": "The layout of cameras in a camera group can be dragged/resized. The positions are stored in your browser's local storage.", "clearAll": "Clear All Layouts" }, "cameraGroupStreaming": { "title": "Camera Group Streaming Settings", "desc": "Streaming settings for each camera group are stored in your browser's local storage.", "clearAll": "Clear All Streaming Settings" }, "recordingsViewer": { "title": "Recordings Viewer", "defaultPlaybackRate": { "label": "Default Playback Rate", "desc": "Default playback rate for recordings playback." } }, "calendar": { "title": "Calendar", "firstWeekday": { "label": "First Weekday", "desc": "The day that the weeks of the review calendar begin on.", "sunday": "Sunday", "monday": "Monday" } }, "toast": { "success": { "clearStoredLayout": "Cleared stored layout for {{cameraName}}", "clearStreamingSettings": "Cleared streaming settings for all camera groups." }, "error": { "clearStoredLayoutFailed": "Failed to clear stored layout: {{errorMessage}}", "clearStreamingSettingsFailed": "Failed to clear streaming settings: {{errorMessage}}" } } }, "enrichments": { "title": "Enrichments Settings", "unsavedChanges": "Unsaved Enrichments settings changes", "birdClassification": { "title": "Bird Classification", "desc": "Bird classification identifies known birds using a quantized Tensorflow model. When a known bird is recognized, its common name will be added as a sub_label. This information is included in the UI, filters, as well as in notifications." }, "semanticSearch": { "title": "Semantic Search", "desc": "Semantic Search in Frigate allows you to find tracked objects within your review items using either the image itself, a user-defined text description, or an automatically generated one.", "readTheDocumentation": "Read the Documentation", "reindexNow": { "label": "Reindex Now", "desc": "Reindexing will regenerate embeddings for all tracked object. This process runs in the background and may max out your CPU and take a fair amount of time depending on the number of tracked objects you have.", "confirmTitle": "Confirm Reindexing", "confirmDesc": "Are you sure you want to reindex all tracked object embeddings? This process will run in the background but it may max out your CPU and take a fair amount of time. You can watch the progress on the Explore page.", "confirmButton": "Reindex", "success": "Reindexing started successfully.", "alreadyInProgress": "Reindexing is already in progress.", "error": "Failed to start reindexing: {{errorMessage}}" }, "modelSize": { "label": "Model Size", "desc": "The size of the model used for semantic search embeddings.", "small": { "title": "small", "desc": "Using small employs a quantized version of the model that uses less RAM and runs faster on CPU with a very negligible difference in embedding quality." }, "large": { "title": "large", "desc": "Using large employs the full Jina model and will automatically run on the GPU if applicable." } } }, "faceRecognition": { "title": "Face Recognition", "desc": "Face recognition allows people to be assigned names and when their face is recognized Frigate will assign the person's name as a sub label. This information is included in the UI, filters, as well as in notifications.", "readTheDocumentation": "Read the Documentation", "modelSize": { "label": "Model Size", "desc": "The size of the model used for face recognition.", "small": { "title": "small", "desc": "Using small employs a FaceNet face embedding model that runs efficiently on most CPUs." }, "large": { "title": "large", "desc": "Using large employs an ArcFace face embedding model and will automatically run on the GPU if applicable." } } }, "licensePlateRecognition": { "title": "License Plate Recognition", "desc": "Frigate can recognize license plates on vehicles and automatically add the detected characters to the recognized_license_plate field or a known name as a sub_label to objects that are of type car. A common use case may be to read the license plates of cars pulling into a driveway or cars passing by on a street.", "readTheDocumentation": "Read the Documentation" }, "restart_required": "Restart required (Enrichments settings changed)", "toast": { "success": "Enrichments settings have been saved. Restart Frigate to apply your changes.", "error": "Failed to save config changes: {{errorMessage}}" } }, "camera": { "title": "Camera Settings", "streams": { "title": "Streams", "desc": "Temporarily disable a camera until Frigate restarts. Disabling a camera completely stops Frigate's processing of this camera's streams. Detection, recording, and debugging will be unavailable.
Note: This does not disable go2rtc restreams." }, "object_descriptions": { "title": "Generative AI Object Descriptions", "desc": "Temporarily enable/disable Generative AI object descriptions for this camera. When disabled, AI generated descriptions will not be requested for tracked objects on this camera." }, "review_descriptions": { "title": "Generative AI Review Descriptions", "desc": "Temporarily enable/disable Generative AI review descriptions for this camera. When disabled, AI generated descriptions will not be requested for review items on this camera." }, "review": { "title": "Review", "desc": "Temporarily enable/disable alerts and detections for this camera until Frigate restarts. When disabled, no new review items will be generated. ", "alerts": "Alerts ", "detections": "Detections " }, "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.", "readTheDocumentation": "Read the Documentation", "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.", "objectDetectionsTips": "All {{detectionsLabels}} objects not categorized on {{cameraName}} will be shown as Detections regardless of which zone they are in.", "zoneObjectDetectionsTips": { "text": "All {{detectionsLabels}} objects not categorized in {{zone}} on {{cameraName}} will be shown as Detections.", "notSelectDetections": "All {{detectionsLabels}} objects detected in {{zone}} on {{cameraName}} not categorized as Alerts will be shown as Detections regardless of which zone they are in.", "regardlessOfZoneObjectDetectionsTips": "All {{detectionsLabels}} objects not categorized on {{cameraName}} will be shown as Detections regardless of which zone they are in." }, "unsavedChanges": "Unsaved Review Classification settings for {{camera}}", "selectAlertsZones": "Select zones for Alerts", "selectDetectionsZones": "Select zones for Detections", "limitDetections": "Limit detections to specific zones", "toast": { "success": "Review Classification configuration has been saved. Restart Frigate to apply changes." } }, "addCamera": "Add New Camera", "editCamera": "Edit Camera:", "selectCamera": "Select a Camera", "backToSettings": "Back to Camera Settings", "cameraConfig": { "add": "Add Camera", "edit": "Edit Camera", "description": "Configure camera settings including stream inputs and roles.", "name": "Camera Name", "nameRequired": "Camera name is required", "nameInvalid": "Camera name must contain only letters, numbers, underscores, or hyphens", "namePlaceholder": "e.g., front_door", "enabled": "Enabled", "ffmpeg": { "inputs": "Input Streams", "path": "Stream Path", "pathRequired": "Stream path is required", "pathPlaceholder": "rtsp://...", "roles": "Roles", "rolesRequired": "At least one role is required", "rolesUnique": "Each role (audio, detect, record) can only be assigned to one stream", "addInput": "Add Input Stream", "removeInput": "Remove Input Stream", "inputsRequired": "At least one input stream is required" }, "toast": { "success": "Camera {{cameraName}} saved successfully" } } }, "masksAndZones": { "filter": { "all": "All Masks and Zones" }, "restart_required": "Restart required (masks/zones changed)", "toast": { "success": { "copyCoordinates": "Copied coordinates for {{polyName}} to clipboard." }, "error": { "copyCoordinatesFailed": "Could not copy coordinates to clipboard." } }, "motionMaskLabel": "Motion Mask {{number}}", "objectMaskLabel": "Object Mask {{number}} ({{label}})", "form": { "zoneName": { "error": { "mustBeAtLeastTwoCharacters": "Zone name must be at least 2 characters.", "mustNotBeSameWithCamera": "Zone name must not be the same as camera name.", "alreadyExists": "A zone with this name already exists for this camera.", "mustNotContainPeriod": "Zone name must not contain periods.", "hasIllegalCharacter": "Zone name contains illegal characters." } }, "distance": { "error": { "text": "Distance must be greater than or equal to 0.1.", "mustBeFilled": "All distance fields must be filled to use speed estimation." } }, "inertia": { "error": { "mustBeAboveZero": "Inertia must be above 0." } }, "loiteringTime": { "error": { "mustBeGreaterOrEqualZero": "Loitering time must be greater than or equal to 0." } }, "speed": { "error": { "mustBeGreaterOrEqualTo": "Speed threshold must greater than or equal to 0.1." } }, "polygonDrawing": { "removeLastPoint": "Remove last point", "reset": { "label": "Clear all points" }, "snapPoints": { "true": "Snap points", "false": "Don't Snap points" }, "delete": { "title": "Confirm Delete", "desc": "Are you sure you want to delete the {{type}} {{name}}?", "success": "{{name}} has been deleted." }, "error": { "mustBeFinished": "Polygon drawing must be finished before saving." } } }, "zones": { "label": "Zones", "documentTitle": "Edit Zone - Frigate", "desc": { "title": "Zones allow you to define a specific area of the frame so you can determine whether or not an object is within a particular area.", "documentation": "Documentation" }, "add": "Add Zone", "edit": "Edit Zone", "point_one": "{{count}} point", "point_other": "{{count}} points", "clickDrawPolygon": "Click to draw a polygon on the image.", "name": { "title": "Name", "inputPlaceHolder": "Enter a name…", "tips": "Name must be at least 2 characters and must not be the name of a camera or another zone." }, "inertia": { "title": "Inertia", "desc": "Specifies how many frames that an object must be in a zone before they are considered in the zone. Default: 3" }, "loiteringTime": { "title": "Loitering Time", "desc": "Sets a minimum amount of time in seconds that the object must be in the zone for it to activate. Default: 0" }, "objects": { "title": "Objects", "desc": "List of objects that apply to this zone." }, "allObjects": "All Objects", "speedEstimation": { "title": "Speed Estimation", "desc": "Enable speed estimation for objects in this zone. The zone must have exactly 4 points.", "docs": "Read the documentation", "lineADistance": "Line A distance ({{unit}})", "lineBDistance": "Line B distance ({{unit}})", "lineCDistance": "Line C distance ({{unit}})", "lineDDistance": "Line D distance ({{unit}})" }, "speedThreshold": { "title": "Speed Threshold ({{unit}})", "desc": "Specifies a minimum speed for objects to be considered in this zone.", "toast": { "error": { "pointLengthError": "Speed estimation has been disabled for this zone. Zones with speed estimation must have exactly 4 points.", "loiteringTimeError": "Zones with loitering times greater than 0 should not be used with speed estimation." } } }, "toast": { "success": "Zone ({{zoneName}}) has been saved. Restart Frigate to apply changes." } }, "motionMasks": { "label": "Motion Mask", "documentTitle": "Edit Motion Mask - Frigate", "desc": { "title": "Motion masks are used to prevent unwanted types of motion from triggering detection. Over masking will make it more difficult for objects to be tracked.", "documentation": "Documentation" }, "add": "New Motion Mask", "edit": "Edit Motion Mask", "context": { "title": "Motion masks are used to prevent unwanted types of motion from triggering detection (example: tree branches, camera timestamps). Motion masks should be used very sparingly, over-masking will make it more difficult for objects to be tracked.", "documentation": "Read the documentation" }, "point_one": "{{count}} point", "point_other": "{{count}} points", "clickDrawPolygon": "Click to draw a polygon on the image.", "polygonAreaTooLarge": { "title": "The motion mask is covering {{polygonArea}}% of the camera frame. Large motion masks are not recommended.", "tips": "Motion masks do not prevent objects from being detected. You should use a required zone instead.", "documentation": "Read the documentation" }, "toast": { "success": { "title": "{{polygonName}} has been saved. Restart Frigate to apply changes.", "noName": "Motion Mask has been saved. Restart Frigate to apply changes." } } }, "objectMasks": { "label": "Object Masks", "documentTitle": "Edit Object Mask - Frigate", "desc": { "title": "Object filter masks are used to filter out false positives for a given object type based on location.", "documentation": "Documentation" }, "add": "Add Object Mask", "edit": "Edit Object Mask", "context": "Object filter masks are used to filter out false positives for a given object type based on location.", "point_one": "{{count}} point", "point_other": "{{count}} points", "clickDrawPolygon": "Click to draw a polygon on the image.", "objects": { "title": "Objects", "desc": "The object type that applies to this object mask.", "allObjectTypes": "All object types" }, "toast": { "success": { "title": "{{polygonName}} has been saved. Restart Frigate to apply changes.", "noName": "Object Mask has been saved. Restart Frigate to apply changes." } } } }, "motionDetectionTuner": { "title": "Motion Detection Tuner", "unsavedChanges": "Unsaved Motion Tuner changes ({{camera}})", "desc": { "title": "Frigate uses motion detection as a first line check to see if there is anything happening in the frame worth checking with object detection.", "documentation": "Read the Motion Tuning Guide" }, "Threshold": { "title": "Threshold", "desc": "The threshold value dictates how much of a change in a pixel's luminance is required to be considered motion. Default: 30" }, "contourArea": { "title": "Contour Area", "desc": "The contour area value is used to decide which groups of changed pixels qualify as motion. Default: 10" }, "improveContrast": { "title": "Improve Contrast", "desc": "Improve contrast for darker scenes. Default: ON" }, "toast": { "success": "Motion settings have been saved." } }, "debug": { "title": "Debug", "detectorDesc": "Frigate uses your detectors ({{detectors}}) to detect objects in your camera's video stream.", "desc": "Debugging view shows a real-time view of tracked objects and their statistics. The object list shows a time-delayed summary of detected objects.", "debugging": "Debugging", "objectList": "Object List", "noObjects": "No objects", "boundingBoxes": { "title": "Bounding boxes", "desc": "Show bounding boxes around tracked objects", "colors": { "label": "Object Bounding Box Colors", "info": "
  • At startup, different colors will be assigned to each object label
  • A dark blue thin line indicates that object is not detected at this current point in time
  • A gray thin line indicates that object is detected as being stationary
  • A thick line indicates that object is the subject of autotracking (when enabled)
  • " } }, "timestamp": { "title": "Timestamp", "desc": "Overlay a timestamp on the image" }, "zones": { "title": "Zones", "desc": "Show an outline of any defined zones" }, "mask": { "title": "Motion masks", "desc": "Show motion mask polygons" }, "motion": { "title": "Motion boxes", "desc": "Show boxes around areas where motion is detected", "tips": "

    Motion Boxes


    Red boxes will be overlaid on areas of the frame where motion is currently being detected

    " }, "regions": { "title": "Regions", "desc": "Show a box of the region of interest sent to the object detector", "tips": "

    Region Boxes


    Bright green boxes will be overlaid on areas of interest in the frame that are being sent to the object detector.

    " }, "paths": { "title": "Paths", "desc": "Show significant points of the tracked object's path", "tips": "

    Paths


    Lines and circles will indicate significant points the tracked object has moved during its lifecycle.

    " }, "objectShapeFilterDrawing": { "title": "Object Shape Filter Drawing", "desc": "Draw a rectangle on the image to view area and ratio details", "tips": "Enable this option to draw a rectangle on the camera image to show its area and ratio. These values can then be used to set object shape filter parameters in your config.", "document": "Read the documentation ", "score": "Score", "ratio": "Ratio", "area": "Area" } }, "users": { "title": "Users", "management": { "title": "User Management", "desc": "Manage this Frigate instance's user accounts." }, "addUser": "Add User", "updatePassword": "Update Password", "toast": { "success": { "createUser": "User {{user}} created successfully", "deleteUser": "User {{user}} deleted successfully", "updatePassword": "Password updated successfully.", "roleUpdated": "Role updated for {{user}}" }, "error": { "setPasswordFailed": "Failed to save password: {{errorMessage}}", "createUserFailed": "Failed to create user: {{errorMessage}}", "deleteUserFailed": "Failed to delete user: {{errorMessage}}", "roleUpdateFailed": "Failed to update role: {{errorMessage}}" } }, "table": { "username": "Username", "actions": "Actions", "role": "Role", "noUsers": "No users found.", "changeRole": "Change user role", "password": "Password", "deleteUser": "Delete user" }, "dialog": { "form": { "user": { "title": "Username", "desc": "Only letters, numbers, periods and underscores allowed.", "placeholder": "Enter username" }, "password": { "title": "Password", "placeholder": "Enter password", "confirm": { "title": "Confirm Password", "placeholder": "Confirm Password" }, "strength": { "title": "Password strength: ", "weak": "Weak", "medium": "Medium", "strong": "Strong", "veryStrong": "Very Strong" }, "match": "Passwords match", "notMatch": "Passwords don't match" }, "newPassword": { "title": "New Password", "placeholder": "Enter new password", "confirm": { "placeholder": "Re-enter new password" } }, "usernameIsRequired": "Username is required", "passwordIsRequired": "Password is required" }, "createUser": { "title": "Create New User", "desc": "Add a new user account and specify an role for access to areas of the Frigate UI.", "usernameOnlyInclude": "Username may only include letters, numbers, . or _", "confirmPassword": "Please confirm your password" }, "deleteUser": { "title": "Delete User", "desc": "This action cannot be undone. This will permanently delete the user account and remove all associated data.", "warn": "Are you sure you want to delete {{username}}?" }, "passwordSetting": { "cannotBeEmpty": "Password cannot be empty", "doNotMatch": "Passwords do not match", "updatePassword": "Update Password for {{username}}", "setPassword": "Set Password", "desc": "Create a strong password to secure this account." }, "changeRole": { "title": "Change User Role", "select": "Select a role", "desc": "Update permissions for {{username}}", "roleInfo": { "intro": "Select the appropriate role for this user:", "admin": "Admin", "adminDesc": "Full access to all features.", "viewer": "Viewer", "viewerDesc": "Limited to Live dashboards, Review, Explore, and Exports only." } } } }, "notification": { "title": "Notifications", "notificationSettings": { "title": "Notification Settings", "desc": "Frigate can natively send push notifications to your device when it is running in the browser or installed as a PWA.", "documentation": "Read the Documentation" }, "notificationUnavailable": { "title": "Notifications Unavailable", "desc": "Web push notifications require a secure context (https://…). This is a browser limitation. Access Frigate securely to use notifications.", "documentation": "Read the Documentation" }, "globalSettings": { "title": "Global Settings", "desc": "Temporarily suspend notifications for specific cameras on all registered devices." }, "email": { "title": "Email", "placeholder": "e.g. example@email.com", "desc": "A valid email is required and will be used to notify you if there are any issues with the push service." }, "cameras": { "title": "Cameras", "noCameras": "No cameras available", "desc": "Select which cameras to enable notifications for." }, "deviceSpecific": "Device Specific Settings", "registerDevice": "Register This Device", "unregisterDevice": "Unregister This Device", "sendTestNotification": "Send a test notification", "unsavedRegistrations": "Unsaved Notification registrations", "unsavedChanges": "Unsaved Notification changes", "active": "Notifications Active", "suspended": "Notifications suspended {{time}}", "suspendTime": { "suspend": "Suspend", "5minutes": "Suspend for 5 minutes", "10minutes": "Suspend for 10 minutes", "30minutes": "Suspend for 30 minutes", "1hour": "Suspend for 1 hour", "12hours": "Suspend for 12 hours", "24hours": "Suspend for 24 hours", "untilRestart": "Suspend until restart" }, "cancelSuspension": "Cancel Suspension", "toast": { "success": { "registered": "Successfully registered for notifications. Restarting Frigate is required before any notifications (including a test notification) can be sent.", "settingSaved": "Notification settings have been saved." }, "error": { "registerFailed": "Failed to save notification registration." } } }, "frigatePlus": { "title": "Frigate+ Settings", "apiKey": { "title": "Frigate+ API Key", "validated": "Frigate+ API key is detected and validated", "notValidated": "Frigate+ API key is not detected or not validated", "desc": "The Frigate+ API key enables integration with the Frigate+ service.", "plusLink": "Read more about Frigate+" }, "snapshotConfig": { "title": "Snapshot Configuration", "desc": "Submitting to Frigate+ requires both snapshots and clean_copy snapshots to be enabled in your config.", "documentation": "Read the documentation", "cleanCopyWarning": "Some cameras have snapshots enabled but have the clean copy disabled. You need to enable clean_copy in your snapshot config to be able to submit images from these cameras to Frigate+.", "table": { "camera": "Camera", "snapshots": "Snapshots", "cleanCopySnapshots": "clean_copy Snapshots" } }, "modelInfo": { "title": "Model Information", "modelType": "Model Type", "trainDate": "Train Date", "baseModel": "Base Model", "plusModelType": { "baseModel": "Base Model", "userModel": "Fine-Tuned" }, "supportedDetectors": "Supported Detectors", "cameras": "Cameras", "loading": "Loading model information…", "error": "Failed to load model information", "availableModels": "Available Models", "loadingAvailableModels": "Loading available models…", "modelSelect": "Your available models on Frigate+ can be selected here. Note that only models compatible with your current detector configuration can be selected." }, "unsavedChanges": "Unsaved Frigate+ settings changes", "restart_required": "Restart required (Frigate+ model changed)", "toast": { "success": "Frigate+ settings have been saved. Restart Frigate to apply changes.", "error": "Failed to save config changes: {{errorMessage}}" } }, "triggers": { "documentTitle": "Triggers", "management": { "title": "Trigger Management", "desc": "Manage triggers for {{camera}}. Use the thumbnail type to trigger on similar thumbnails to your selected tracked object, and the description type to trigger on similar descriptions to text you specify." }, "addTrigger": "Add Trigger", "table": { "name": "Name", "type": "Type", "content": "Content", "threshold": "Threshold", "actions": "Actions", "noTriggers": "No triggers configured for this camera.", "edit": "Edit", "deleteTrigger": "Delete Trigger", "lastTriggered": "Last triggered" }, "type": { "thumbnail": "Thumbnail", "description": "Description" }, "actions": { "alert": "Mark as Alert", "notification": "Send Notification" }, "dialog": { "createTrigger": { "title": "Create Trigger", "desc": "Create a trigger for camera {{camera}}" }, "editTrigger": { "title": "Edit Trigger", "desc": "Edit the settings for trigger on camera {{camera}}" }, "deleteTrigger": { "title": "Delete Trigger", "desc": "Are you sure you want to delete the trigger {{triggerName}}? This action cannot be undone." }, "form": { "name": { "title": "Name", "placeholder": "Enter trigger name", "error": { "minLength": "Name must be at least 2 characters long.", "invalidCharacters": "Name can only contain letters, numbers, underscores, and hyphens.", "alreadyExists": "A trigger with this name already exists for this camera." } }, "enabled": { "description": "Enable or disable this trigger" }, "type": { "title": "Type", "placeholder": "Select trigger type" }, "content": { "title": "Content", "imagePlaceholder": "Select an image", "textPlaceholder": "Enter text content", "imageDesc": "Select an image to trigger this action when a similar image is detected.", "textDesc": "Enter text to trigger this action when a similar tracked object description is detected.", "error": { "required": "Content is required." } }, "threshold": { "title": "Threshold", "error": { "min": "Threshold must be at least 0", "max": "Threshold must be at most 1" } }, "actions": { "title": "Actions", "desc": "By default, Frigate fires an MQTT message for all triggers. Choose an additional action to perform when this trigger fires.", "error": { "min": "At least one action must be selected." } } } }, "toast": { "success": { "createTrigger": "Trigger {{name}} created successfully.", "updateTrigger": "Trigger {{name}} updated successfully.", "deleteTrigger": "Trigger {{name}} deleted successfully." }, "error": { "createTriggerFailed": "Failed to create trigger: {{errorMessage}}", "updateTriggerFailed": "Failed to update trigger: {{errorMessage}}", "deleteTriggerFailed": "Failed to delete trigger: {{errorMessage}}" } } } }