{ "app": { "name": "Notify Bridge", "tagline": "Service notifications" }, "nav": { "dashboard": "Dashboard", "providers": "Providers", "notificationTrackers": "Notif. Trackers", "trackingConfigs": "Tracking", "templateConfigs": "Templates", "telegramBots": "Bots", "targets": "Targets", "commandConfigs": "Cmd Configs", "commandTrackers": "Cmd Trackers", "cmdTemplateConfigs": "Cmd Templates", "users": "Users", "settings": "Settings", "logout": "Logout", "notification": "Notification", "commands": "Commands", "bots": "Bots", "trackers": "Trackers", "configs": "Configs", "templates": "Templates", "telegram": "Telegram", "email": "Email", "matrix": "Matrix", "common": "Common", "targetTelegram": "Telegram", "targetWebhook": "Webhook", "targetEmail": "Email", "targetDiscord": "Discord", "targetSlack": "Slack", "targetNtfy": "ntfy", "targetMatrix": "Matrix", "targetBroadcast": "Broadcast", "automation": "Automation", "actions": "Actions" }, "auth": { "signIn": "Sign in", "signInTitle": "Sign in to your account", "signingIn": "Signing in...", "username": "Username", "password": "Password", "confirmPassword": "Confirm password", "setupTitle": "Welcome", "setupDescription": "Create your admin account to get started", "createAccount": "Create account", "creatingAccount": "Creating account...", "passwordMismatch": "Passwords do not match", "passwordTooShort": "Password must be at least 8 characters", "or": "or" }, "dashboard": { "title": "Dashboard", "description": "Overview of your Notify Bridge setup", "providers": "Providers", "activeTrackers": "Active Trackers", "targets": "Targets", "recentEvents": "Events", "chart": "Event chart", "noEvents": "No events yet. Create a tracker to start monitoring.", "loading": "Loading...", "justNow": "just now", "minutesAgo": "{n}m ago", "hoursAgo": "{n}h ago", "daysAgo": "{n}d ago", "assetsAdded": "assets added", "assetsRemoved": "assets removed", "collectionRenamed": "collection renamed", "collectionDeleted": "collection deleted", "sharingChanged": "sharing changed", "searchEvents": "Search events...", "allEvents": "All Events", "filterAssetsAdded": "Assets Added", "filterAssetsRemoved": "Assets Removed", "filterRenamed": "Renamed", "filterDeleted": "Deleted", "filterSharingChanged": "Sharing Changed", "allProviders": "All Providers", "newestFirst": "Newest first", "oldestFirst": "Oldest first", "loadingEvents": "Loading events...", "asset": "asset", "assets": "assets", "eventActivity": "Event Activity", "last14days": "Last 14 days", "event": "event", "events": "events", "noChartData": "No event data yet" }, "providers": { "title": "Providers", "description": "Manage service provider connections", "addProvider": "Add Provider", "cancel": "Cancel", "type": "Provider Type", "name": "Name", "url": "Provider URL", "urlPlaceholder": "http://provider:2283", "apiKey": "API Key", "apiKeyKeep": "API Key (leave empty to keep current)", "connecting": "Connecting...", "noProviders": "No providers configured yet.", "delete": "Delete", "confirmDelete": "Delete this provider?", "online": "Online", "offline": "Offline", "checking": "Checking...", "typeImmich": "Immich", "typeGitea": "Gitea", "typePlanka": "Planka", "typeScheduler": "Scheduler", "typeNut": "NUT (UPS)", "typeGooglePhotos": "Google Photos", "typeWebhook": "Generic Webhook", "loadError": "Failed to load providers.", "externalDomain": "External Domain", "optional": "optional", "urlApiKeyRequired": "URL and API Key are required", "externalDomainHint": "Public-facing URL for notification links. Falls back to server URL.", "webhookSecret": "Webhook Secret", "webhookSecretKeep": "Webhook Secret (leave empty to keep current)", "webhookSecretHint": "Shared secret for HMAC-SHA256 signature verification. Set the same secret in Gitea webhook settings.", "plankaWebhookSecretHint": "Bearer token for webhook authentication. Set the same token as WEBHOOK_ACCESS_TOKEN in Planka.", "plankaApiKeyHint": "Optional. Needed for connection testing and board listing.", "plankaWebhookUrlHint": "Set this as the Webhook URL in Planka environment config (relative to your bridge host).", "authMode": "Authentication Mode", "authModeHint": "Choose hmac_sha256, bearer_token, or none", "genericWebhookSecretHint": "Secret for HMAC-SHA256 or Bearer token authentication. Leave empty for no authentication.", "webhookSecretRequired": "Webhook secret is required", "apiToken": "API Token", "apiTokenHint": "Optional. Needed for connection testing and repository listing.", "webhookUrl": "Webhook URL", "webhookUrlHint": "Set this as the Target URL in Gitea webhook settings (relative to your bridge host).", "nutHost": "NUT Server Host", "nutHostPlaceholder": "192.168.1.100 or ups.local", "nutPort": "NUT Server Port", "nutUsername": "Username", "nutPassword": "Password", "nutUsernameHint": "Optional — only needed if upsd requires authentication", "nutPasswordHint": "Optional — upsd user password", "gpClientId": "OAuth Client ID", "gpClientSecret": "OAuth Client Secret", "gpClientSecretKeep": "OAuth Client Secret (leave empty to keep current)", "gpRefreshToken": "Refresh Token", "gpRefreshTokenKeep": "Refresh Token (leave empty to keep current)", "gpRefreshTokenHint": "Obtain from Google OAuth Playground (developers.google.com/oauthplayground) with the Photos Library API scope.", "gpAllFieldsRequired": "Client ID, Client Secret, and Refresh Token are all required", "testAndSave": "Test & Save", "saveWithoutTest": "Save without testing" }, "notificationTracker": { "title": "Notification Trackers", "description": "Monitor albums for changes", "newTracker": "New Tracker", "cancel": "Cancel", "name": "Name", "namePlaceholder": "Family photos tracker", "server": "Provider", "selectServer": "Select provider...", "albums": "Albums", "selectAlbums": "Select albums...", "repositories": "Repositories", "selectRepositories": "Select repositories...", "boards": "Boards", "selectBoards": "Select boards...", "upsDevices": "UPS Devices", "selectUpsDevices": "Select UPS devices...", "eventTypes": "Event Types", "notificationTargets": "Notification Targets", "scanInterval": "Scan Interval (seconds)", "scheduleType": "Schedule", "intervalMode": "Interval", "cronMode": "Cron expression", "cronExpression": "Cron expression", "cronHint": "Standard 5-field cron: minute hour day month weekday. Example: 0 9 * * 1-5 (weekdays at 9:00)", "customVariables": "Custom Variables", "customVariablesHint": "Define key-value pairs available in templates as {{ key }}.", "addVariable": "Add variable", "createTracker": "Create Tracker", "noTrackers": "No trackers yet. Add a provider first, then create a tracker.", "active": "Active", "paused": "Paused", "pause": "Pause", "resume": "Resume", "delete": "Delete", "confirmDelete": "Delete this tracker?", "albums_count": "album(s)", "repos_count": "repo(s)", "boards_count": "board(s)", "devices_count": "device(s)", "collections_count": "collection(s)", "every": "every", "trackImages": "Track images", "trackVideos": "Track videos", "favoritesOnly": "Favorites only", "includePeople": "Include people in notifications", "includeAssetDetails": "Include asset details", "maxAssetsToShow": "Max assets to show", "sortBy": "Sort by", "sortOrder": "Sort order", "sortNone": "Original order", "sortDate": "Date", "sortRating": "Rating", "sortName": "Name", "sortRandom": "Random", "ascending": "Ascending", "descending": "Descending", "quietHoursStart": "Quiet hours start", "quietHoursEnd": "Quiet hours end", "batchDuration": "Batch duration (seconds)", "defaultTrackingConfig": "Default tracking config", "defaultTemplateConfig": "Default template config", "linkedTargets": "targets", "noLinkedTargets": "No targets linked. Add a target below.", "addTarget": "Add target", "selectTarget": "Select target to add...", "alreadyLinked": "Already linked", "testBasic": "Send test message", "testPeriodic": "Test periodic summary", "testScheduled": "Test scheduled assets", "testMemory": "Test memory / On This Day", "checkingLinks": "Checking links...", "missingLinksTitle": "Albums Missing Public Links", "missingLinksDesc": "The following albums don't have public shared links. Without links, notification recipients won't be able to view photos.", "expired": "Expired", "passwordProtected": "Password Protected", "noLink": "No Link", "saveWithoutLinks": "Save without links", "createLinks": "Create {count} link(s)", "linksNote": "You can also create links manually in Immich." }, "templates": { "title": "Templates", "description": "Jinja2 message templates for notifications", "newTemplate": "New Template", "cancel": "Cancel", "name": "Name", "body": "Template Body (Jinja2)", "variables": "Variables", "preview": "Preview", "edit": "Edit", "delete": "Delete", "confirmDelete": "Delete this template?", "create": "Create Template", "update": "Update Template", "noTemplates": "No templates yet. A default template will be used if none is configured.", "eventType": "Event type", "allEvents": "All events", "assetsAdded": "Assets added", "assetsRemoved": "Assets removed", "albumRenamed": "Album renamed", "albumDeleted": "Album deleted" }, "targets": { "title": "Targets", "description": "Notification delivery destinations", "descTelegram": "Telegram chat destinations for notifications", "descWebhook": "HTTP webhook endpoints for notification delivery", "descEmail": "Email recipients for notifications", "descDiscord": "Discord channel webhooks for notifications", "descSlack": "Slack channel webhooks for notifications", "descNtfy": "ntfy push notification topics", "descMatrix": "Matrix room destinations for notifications", "descBroadcast": "Send to multiple targets at once", "childTargets": "target(s)", "selectChildTargets": "Select child targets", "noChildTargets": "No child targets configured.", "noChildTargetsAvailable": "Create other targets first, then add them here.", "addTarget": "Add Target", "cancel": "Cancel", "type": "Type", "name": "Name", "namePlaceholder": "My notifications", "botToken": "Bot Token", "chatId": "Chat ID", "webhookUrl": "Webhook URL", "create": "Add Target", "test": "Test", "delete": "Delete", "confirmDelete": "Delete this target?", "noTargets": "No notification targets configured yet.", "testSent": "Test sent successfully!", "aiCaptions": "Enable AI captions", "telegramSettings": "Telegram Settings", "maxMedia": "Max media to send", "maxGroupSize": "Max group size", "chunkDelay": "Delay between groups (ms)", "maxAssetSize": "Max asset size (MB)", "videoWarning": "Video size warning", "disableUrlPreview": "Disable link previews", "sendLargeAsDocuments": "Send large photos as documents", "chatAction": "Chat action", "chatActionNone": "None (no action)", "chatActionTyping": "Typing", "chatActionUploadPhoto": "Upload Photo", "chatActionUploadVideo": "Upload Video", "chatActionUploadDoc": "Upload Doc", "chatActionRecordVideo": "Record Video", "chatActionRecordVoice": "Record Voice", "typeTelegram": "Telegram", "typeWebhook": "Webhook", "overrideUsername": "Override bot username", "ntfyServer": "ntfy Server URL", "ntfyTopic": "Topic", "ntfyToken": "Auth Token", "ntfyTokenPlaceholder": "Optional (for protected topics)", "selectEmailBot": "Select Email Bot", "selectMatrixBot": "Select Matrix Bot", "recipientEmail": "Recipient Email", "matrixRoomId": "Room ID", "receivers": "Receivers", "noReceivers": "No receivers yet", "alreadyAdded": "already added", "addReceiver": "Add Receiver", "receiverAdded": "Receiver added", "receiverDeleted": "Receiver deleted", "receiverUpdated": "Receiver updated", "confirmDeleteReceiver": "Delete this receiver?", "receiverEnabled": "Receiver enabled", "receiverDisabled": "Receiver disabled" }, "users": { "title": "Users", "description": "Manage user accounts (admin only)", "addUser": "Add User", "cancel": "Cancel", "username": "Username", "password": "Password", "role": "Role", "roleUser": "User", "roleAdmin": "Admin", "create": "Create User", "delete": "Delete", "confirmDelete": "Delete this user?", "joined": "joined", "noUsers": "No users found" }, "telegramBot": { "title": "Telegram Bots", "description": "Register and manage Telegram bots", "addBot": "Add Bot", "name": "Display name", "namePlaceholder": "Family notifications bot", "token": "Bot Token", "tokenPlaceholder": "123456:ABC-DEF...", "noBots": "No bots registered yet.", "chats": "Chats", "noChats": "No chats found. Send a message to the bot first.", "refreshChats": "Refresh", "selectBot": "Select bot", "selectChat": "Select chat", "private": "Private", "group": "Group", "supergroup": "Supergroup", "channel": "Channel", "confirmDelete": "Delete this bot?", "commands": "Commands", "enabledCommands": "Enabled commands", "defaultCount": "Default count", "responseMode": "Response mode", "modeMedia": "Media (files)", "modeText": "Text only", "botLocale": "Bot language", "rateLimits": "Rate Limits", "rateSearch": "Search cooldown", "rateFind": "Find cooldown", "rateDefault": "Default cooldown", "noCommandsForProvider": "This provider type does not support bot commands.", "syncCommands": "Sync Commands", "discoverChats": "Discover chats from Telegram", "clickToCopy": "Click to copy chat ID", "chatsDiscovered": "Chats discovered", "chatDeleted": "Chat removed", "chatName": "Name", "chatType": "Type", "chatLang": "Lang", "langOverride": "Override", "cmds": "Cmds", "commandsToggle": "Toggle command listening for this chat", "chatId": "Chat ID", "languageUpdated": "Chat language updated", "cmdLocale": "Bot language", "searchCooldown": "Search cooldown (s)", "saveConfig": "Save config", "commandsSynced": "Commands synced with Telegram", "registerWebhook": "Register webhook", "unregisterWebhook": "Unregister webhook", "webhookRegistered": "Webhook registered", "webhookUnregistered": "Webhook unregistered", "updateMode": "Update mode", "polling": "Polling", "webhook": "Webhook", "webhookStatus": "Webhook status", "webhookActive": "Webhook active", "webhookNotSet": "No webhook set", "webhookVerified": "Webhook verified", "webhookError": "Last error", "pendingUpdates": "pending updates", "pollingActive": "Polling active", "telegramSettings": "Telegram Settings", "externalUrl": "External URL", "externalUrlHint": "Public URL of this Notify Bridge instance. Required for webhook mode.", "webhookSecret": "Webhook secret", "webhookSecretHint": "Optional secret token to verify webhook requests from Telegram", "cacheTtl": "Media cache TTL (hours)", "cacheTtlHint": "How long to cache uploaded Telegram file_ids before re-uploading (default: 48h)", "settingsSaved": "Settings saved", "noExternalDomain": "External domain URL not configured" }, "trackingConfig": { "title": "Tracking Configs", "description": "Define what events and assets to react to", "newConfig": "New Config", "name": "Name", "namePlaceholder": "Default tracking", "noConfigs": "No tracking configs yet.", "unknownProviderType": "Unknown provider type", "eventTracking": "Event Tracking", "assetsAdded": "Assets added", "assetsRemoved": "Assets removed", "albumRenamed": "Album renamed", "albumDeleted": "Album deleted", "sharingChanged": "Sharing changed", "push": "Push", "issueOpened": "Issue opened", "issueClosed": "Issue closed", "issueCommented": "Issue commented", "prOpened": "PR opened", "prClosed": "PR closed", "prMerged": "PR merged", "prCommented": "PR commented", "releasePublished": "Release published", "cardCreated": "Card created", "cardUpdated": "Card updated", "cardMoved": "Card moved", "cardDeleted": "Card deleted", "cardCommented": "Card commented", "commentUpdated": "Comment updated", "boardCreated": "Board created", "boardUpdated": "Board updated", "boardDeleted": "Board deleted", "listCreated": "List created", "listUpdated": "List updated", "listDeleted": "List deleted", "attachmentCreated": "Attachment added", "cardLabelAdded": "Label added", "taskCompleted": "Task completed", "upsOnline": "UPS online (mains restored)", "upsOnBattery": "UPS on battery", "upsLowBattery": "Low battery", "upsBatteryRestored": "Battery recovered", "upsCommsLost": "Communication lost", "upsCommsRestored": "Communication restored", "upsReplaceBattery": "Replace battery", "upsOverload": "UPS overloaded", "scheduledMessage": "Scheduled message", "webhookReceived": "Webhook received", "trackImages": "Track images", "trackVideos": "Track videos", "favoritesOnly": "Favorites only", "assetDisplay": "Asset Display", "includePeople": "Include people", "includeDetails": "Include asset details", "maxAssets": "Max assets to show", "sortBy": "Sort by", "sortOrder": "Sort order", "periodicSummary": "Periodic Summary", "enabled": "Enabled", "intervalDays": "Interval (days)", "startDate": "Start date", "times": "Times (HH:MM)", "scheduledAssets": "Scheduled Assets", "albumMode": "Album mode", "limit": "Limit", "assetType": "Asset type", "minRating": "Min rating", "memoryMode": "Memory Mode (On This Day)", "memorySource": "Memory source", "memorySourceAlbums": "Scan tracked albums", "memorySourceNative": "Immich native memories", "test": "Test", "confirmDelete": "Delete this tracking config?", "sortNone": "None", "sortDate": "Date", "sortRating": "Rating", "sortName": "Name", "orderDesc": "Descending", "orderAsc": "Ascending", "albumModePerAlbum": "Per album", "albumModeCombined": "Combined", "albumModeRandom": "Random", "assetTypeAll": "All", "assetTypePhoto": "Photo", "assetTypeVideo": "Video", "periodic": "periodic", "scheduled": "scheduled", "memory": "memory", "added": "added", "removed": "removed", "renamed": "renamed", "deleted": "deleted", "providerType": "Provider Type", "sortRandom": "Random" }, "templateConfig": { "title": "Template Configs", "description": "Define how notification messages are formatted", "providerType": "Service Provider Type", "newConfig": "New Config", "name": "Name", "namePlaceholder": "Default EN", "descriptionPlaceholder": "e.g. English templates for family notifications", "noConfigs": "No template configs yet.", "eventMessages": "Event Messages", "assetsAdded": "Assets added", "assetsRemoved": "Assets removed", "albumRenamed": "Album renamed", "albumDeleted": "Album deleted", "sharingChanged": "Sharing changed", "assetFormatting": "Asset Formatting", "imageTemplate": "Image item", "videoTemplate": "Video item", "assetsWrapper": "Assets wrapper", "moreMessage": "More message", "peopleFormat": "People format", "dateLocation": "Date & Location", "dateFormat": "Date & time format", "dateOnlyFormat": "Date only format", "commonDate": "Common date", "uniqueDate": "Per-asset date", "locationFormat": "Location format", "commonLocation": "Common location", "uniqueLocation": "Per-asset location", "favoriteIndicator": "Favorite indicator", "scheduledMessages": "Scheduled Messages", "periodicSummary": "Periodic summary", "periodicAlbum": "Per-album item", "scheduledAssets": "Scheduled assets", "memoryMode": "Memory mode", "settings": "Settings", "previewAs": "Preview as", "preview": "Preview", "variables": "Variables", "assetFields": "Asset fields (in {% for asset in added_assets %})", "albumFields": "Album fields (in {% for album in albums %})", "confirmDelete": "Delete this template config?", "invalidFormat": "Invalid format string", "filterSlots": "Filter slots...", "slots": "slots" }, "templateVars": { "message_assets_added": { "description": "Notification when new assets are added to an album" }, "message_assets_removed": { "description": "Notification when assets are removed from an album" }, "message_album_renamed": { "description": "Notification when an album is renamed" }, "message_album_deleted": { "description": "Notification when an album is deleted" }, "periodic_summary_message": { "description": "Periodic album summary (scheduler not yet implemented)" }, "scheduled_assets_message": { "description": "Scheduled asset delivery (scheduler not yet implemented)" }, "memory_mode_message": { "description": "\"On This Day\" memories (scheduler not yet implemented)" }, "album_id": "Album ID (UUID)", "album_name": "Album name", "album_url": "Public share URL (empty if not shared)", "added_count": "Number of assets added", "removed_count": "Number of assets removed", "change_type": "Type of change (assets_added, assets_removed, album_renamed, album_deleted)", "people": "Detected people names (list, use {{ people | join(', ') }})", "added_assets": "List of asset dicts (use {% for asset in added_assets %})", "removed_assets": "List of removed asset IDs (strings)", "shared": "Whether album is shared (boolean)", "target_type": "Target type: 'telegram' or 'webhook'", "has_videos": "Whether added assets contain videos (boolean)", "has_photos": "Whether added assets contain photos (boolean)", "old_name": "Previous album name (rename events)", "new_name": "New album name (rename events)", "old_shared": "Was album shared before rename (boolean)", "new_shared": "Is album shared after rename (boolean)", "albums": "List of album dicts (use {% for album in albums %})", "assets": "List of asset dicts (use {% for asset in assets %})", "date": "Current date string", "asset_id": "Asset ID (UUID)", "asset_filename": "Original filename", "asset_type": "IMAGE or VIDEO", "asset_created_at": "Creation date/time (ISO 8601)", "asset_owner": "Owner display name", "asset_owner_id": "Owner user ID", "asset_description": "User or EXIF description", "asset_people": "People detected in this asset (list)", "asset_is_favorite": "Whether asset is favorited (boolean)", "asset_rating": "Star rating (1-5 or null)", "asset_latitude": "GPS latitude (float or null)", "asset_longitude": "GPS longitude (float or null)", "asset_city": "City name", "asset_state": "State/region name", "asset_country": "Country name", "asset_url": "Public viewer URL (if shared)", "asset_download_url": "Direct download URL (if shared)", "asset_photo_url": "Preview image URL (images only, if shared)", "asset_playback_url": "Video playback URL (videos only, if shared)", "album_name_field": "Album name (in album list)", "album_asset_count": "Total assets in album", "album_url_field": "Album share URL", "album_shared": "Whether album is shared" }, "settings": { "title": "Settings", "description": "Global application settings", "general": "General", "externalUrl": "External URL", "externalUrlHint": "Public URL of this Notify Bridge instance (e.g. https://notify.example.com)", "telegram": "Telegram", "webhookSecret": "Webhook Secret", "webhookSecretHint": "Secret token to verify webhook requests from Telegram", "cacheTtl": "Media Cache TTL (hours)", "cacheTtlHint": "How long to cache uploaded Telegram file_ids before re-uploading", "saved": "Settings saved" }, "hints": { "periodicSummary": "Sends a scheduled summary of all tracked albums at specified times. Great for daily/weekly digests.", "scheduledAssets": "Sends random or selected photos from tracked albums on a schedule. Like a daily photo pick.", "memoryMode": "\"On This Day\" — sends photos taken on this date in previous years. Nostalgic flashbacks.", "memorySource": "Albums: scans tracked albums for date-matching assets. Native: uses Immich's built-in memories (covers entire library, optionally filtered by tracked albums).", "favoritesOnly": "Only include assets marked as favorites.", "maxAssets": "Maximum number of asset details to include in a single notification message.", "periodicStartDate": "The reference date for calculating periodic intervals. Summaries are sent every N days from this date.", "times": "Time(s) of day to send notifications, in HH:MM format. Use commas for multiple times: 09:00,18:00", "albumMode": "Per album: separate notification per album. Combined: one notification with all albums. Random: pick one album randomly.", "minRating": "Only include assets with at least this star rating (0 = no filter).", "eventMessages": "Templates for real-time event notifications. Use {variables} for dynamic content.", "assetFormatting": "How individual assets are formatted within notification messages.", "dateLocation": "Date and location formatting in notifications. Uses strftime syntax for dates.", "scheduledMessages": "Templates for periodic summaries, scheduled photo picks, and On This Day memories.", "aiCaptions": "Use Claude AI to generate a natural-language caption for notifications instead of the template.", "maxMedia": "Maximum number of photos/videos to attach per notification (0 = text only).", "groupSize": "Telegram media groups can contain 2-10 items. Larger batches are split into chunks.", "chunkDelay": "Delay in milliseconds between sending media chunks. Prevents Telegram rate limiting.", "maxAssetSize": "Skip assets larger than this size in MB. Telegram limits files to 50 MB.", "trackingConfig": "Controls which events trigger notifications and how assets are filtered.", "templateConfig": "Controls the message format. Uses default templates if not set.", "scanInterval": "How often to poll the provider for changes, in seconds. Lower = faster detection but more API calls.", "batchDuration": "Time to accumulate changes before dispatching notifications. 0 = send immediately.", "defaultTrackingConfig": "Applied to all linked targets unless overridden per target.", "defaultTemplateConfig": "Applied to all linked targets unless overridden per target.", "defaultCount": "How many results to return when the user doesn't specify a count (1-20).", "responseMode": "Media: send actual photos. Text: send filenames/links only. Media mode uses more bandwidth.", "botLocale": "Language for command descriptions in Telegram's menu and bot response messages.", "rateLimits": "Cooldown in seconds between uses of each command category per chat. 0 = no limit." }, "matrixBot": { "title": "Matrix Bots", "description": "Matrix homeserver connections for room notifications", "addBot": "Add Matrix Bot", "name": "Name", "namePlaceholder": "Home Server Bot", "homeserverUrl": "Homeserver URL", "accessToken": "Access Token", "tokenPlaceholder": "syt_...", "tokenUnchanged": "(unchanged)", "displayName": "Display Name", "testConnection": "Test connection", "noBots": "No Matrix bots yet.", "confirmDelete": "Delete this Matrix bot?" }, "emailBot": { "title": "Email Bots", "description": "SMTP email senders for notifications", "addBot": "Add Email Bot", "name": "Name", "namePlaceholder": "Family Notifications", "email": "From Email", "smtpHost": "SMTP Host", "smtpPort": "Port", "smtpUsername": "Username", "smtpUsernamePlaceholder": "Same as email or app password", "smtpPassword": "Password", "passwordUnchanged": "(unchanged)", "useTls": "Use TLS/SSL", "testConnection": "Send test email", "noBots": "No email bots yet.", "confirmDelete": "Delete this email bot?" }, "cmdTemplateConfig": { "title": "Command Templates", "description": "Customize command response messages with Jinja2 templates", "newConfig": "New Config", "name": "Name", "namePlaceholder": "Default Immich Commands", "descriptionPlaceholder": "e.g. Custom response formats for family bot", "noConfigs": "No command template configs yet.", "confirmDelete": "Delete this command template config?", "commandResponses": "Command Responses", "commandResponsesHint": "Leave a slot empty to use the default hardcoded response." }, "commandConfig": { "title": "Command Configs", "description": "Define command settings for Telegram bot interactions", "newConfig": "New Config", "name": "Name", "namePlaceholder": "Default commands", "providerType": "Provider Type", "enabledCommands": "Enabled Commands", "locale": "Locale", "responseMode": "Response Mode", "modeMedia": "Media (files)", "modeText": "Text only", "defaultCount": "Default Count", "rateLimits": "Rate Limits", "searchCooldown": "Search cooldown (s)", "defaultCooldown": "Default cooldown (s)", "noConfigs": "No command configs yet.", "confirmDelete": "Delete this command config?", "commands": "commands", "responseTemplate": "Response Template", "noTemplate": "Default (hardcoded)" }, "commandTracker": { "title": "Command Trackers", "description": "Manage command trackers and their listeners", "newTracker": "New Tracker", "name": "Name", "namePlaceholder": "Family commands", "provider": "Provider", "selectProvider": "Select provider...", "commandConfig": "Command Config", "selectCommandConfig": "Select command config...", "listeners": "Listeners", "addListener": "Add Listener", "removeListener": "Remove", "noTrackers": "No command trackers yet.", "confirmDelete": "Delete this command tracker?", "enabled": "Enabled", "disabled": "Disabled", "noListeners": "No listeners attached.", "selectBot": "Select bot...", "listenerType": "telegram_bot" }, "snackbar": { "showDetails": "Show details", "hideDetails": "Hide details" }, "snack": { "providerSaved": "Provider saved", "providerDeleted": "Provider deleted", "trackerCreated": "Tracker created", "trackerUpdated": "Tracker updated", "trackerDeleted": "Tracker deleted", "trackerPaused": "Tracker paused", "trackerResumed": "Tracker resumed", "targetSaved": "Target saved", "targetDeleted": "Target deleted", "targetTestSent": "Test notification sent", "templateSaved": "Template config saved", "templateDeleted": "Template config deleted", "trackingConfigSaved": "Tracking config saved", "trackingConfigDeleted": "Tracking config deleted", "botRegistered": "Bot registered", "botDeleted": "Bot deleted", "userCreated": "User created", "userDeleted": "User deleted", "passwordChanged": "Password changed", "copied": "Copied to clipboard", "genericError": "Something went wrong", "commandsSaved": "Commands config saved", "commandsSynced": "Commands synced to Telegram", "targetLinked": "Target linked", "targetUnlinked": "Target unlinked", "botUpdated": "Bot updated", "commandConfigSaved": "Command config saved", "commandConfigDeleted": "Command config deleted", "commandTrackerCreated": "Command tracker created", "commandTrackerUpdated": "Command tracker updated", "commandTrackerDeleted": "Command tracker deleted", "commandTrackerEnabled": "Command tracker enabled", "commandTrackerDisabled": "Command tracker disabled", "listenerAdded": "Listener added", "listenerRemoved": "Listener removed", "cmdTemplateSaved": "Command template saved", "cmdTemplateDeleted": "Command template deleted", "emailBotCreated": "Email bot created", "emailBotUpdated": "Email bot updated", "emailBotDeleted": "Email bot deleted", "emailBotTestSent": "Test email sent successfully", "matrixBotCreated": "Matrix bot created", "matrixBotUpdated": "Matrix bot updated", "matrixBotDeleted": "Matrix bot deleted", "matrixBotTestOk": "Matrix connection verified" }, "common": { "loading": "Loading...", "save": "Save", "cancel": "Cancel", "delete": "Delete", "clone": "Clone", "edit": "Edit", "description": "Description", "close": "Close", "confirm": "Confirm", "error": "Error", "success": "Success", "none": "None", "noneDefault": "None (default)", "loadError": "Failed to load data", "headersInvalid": "Invalid JSON", "language": "Language", "theme": "Theme", "apiDocs": "API Docs", "light": "Light", "dark": "Dark", "system": "System", "test": "Test", "create": "Create", "changePassword": "Change Password", "currentPassword": "Current password", "newPassword": "New password", "passwordChanged": "Password changed successfully", "expand": "Expand", "collapse": "Collapse", "syntaxError": "Syntax error", "undefinedVar": "Unknown variable", "line": "line", "enable": "Enable", "disable": "Disable", "add": "Add", "filterByName": "Filter by name...", "allTypes": "All types", "allProviders": "All providers", "noFilterResults": "No items match the current filter.", "redirecting": "Redirecting..." }, "templateSlot": { "message_assets_added": "New assets added to album", "message_assets_removed": "Assets removed from album", "message_collection_renamed": "Album renamed", "message_collection_deleted": "Album deleted", "message_sharing_changed": "Sharing status changed", "periodic_summary_message": "Periodic album summary", "scheduled_assets_message": "Scheduled asset delivery", "memory_mode_message": "On This Day memories", "message_push": "Code pushed to repository", "message_issue_opened": "Issue opened", "message_issue_closed": "Issue closed", "message_issue_commented": "Comment on issue", "message_pr_opened": "Pull request opened", "message_pr_closed": "Pull request closed", "message_pr_merged": "Pull request merged", "message_pr_commented": "Comment on pull request", "message_release_published": "Release published", "message_scheduled_message": "Scheduled message", "message_card_created": "Card created", "message_card_updated": "Card updated", "message_card_moved": "Card moved between lists", "message_card_deleted": "Card deleted", "message_card_commented": "Comment added to card", "message_comment_updated": "Comment updated", "message_board_created": "Board created", "message_board_updated": "Board updated", "message_board_deleted": "Board deleted", "message_list_created": "List created", "message_list_updated": "List updated", "message_list_deleted": "List deleted", "message_attachment_created": "Attachment added to card", "message_card_label_added": "Label added to card", "message_task_completed": "Task completed", "message_ups_online": "UPS back on mains power", "message_ups_on_battery": "UPS switched to battery", "message_ups_low_battery": "Battery critically low", "message_ups_battery_restored": "Battery charge recovered", "message_ups_comms_lost": "Communication with UPS lost", "message_ups_comms_restored": "Communication with UPS restored", "message_ups_replace_battery": "Battery needs replacement", "message_ups_overload": "UPS load exceeded capacity" }, "gridDesc": { "sortNone": "No sorting applied", "sortDate": "Sort by creation date", "sortRating": "Sort by star rating", "sortName": "Sort by file name", "sortRandom": "Randomize order", "orderDesc": "Newest or highest first", "orderAsc": "Oldest or lowest first", "albumModePerAlbum": "One message per album", "albumModeCombined": "All albums in one message", "albumModeRandom": "Pick a random album", "assetTypeAll": "Photos and videos", "assetTypePhoto": "Photos only", "assetTypeVideo": "Videos only", "memorySourceAlbums": "Scan tracked albums for On This Day matches", "memorySourceNative": "Use Immich native memories API", "localeEn": "English interface", "localeRu": "Russian interface", "modeMedia": "Send actual photo/video files", "modeText": "Send file names and links only", "allEvents": "Show all event types", "assetsAdded": "New files added to album", "assetsRemoved": "Files removed from album", "renamed": "Album was renamed", "deleted": "Album was deleted", "sharingChanged": "Album sharing toggled", "newestFirst": "Most recent events on top", "oldestFirst": "Oldest events on top", "chatActionNone": "No indicator shown", "chatActionTyping": "Show typing... bubble", "chatActionUploadPhoto": "Show uploading photo...", "chatActionUploadVideo": "Show uploading video...", "chatActionUploadDoc": "Show uploading document...", "chatActionRecordVideo": "Show recording video...", "chatActionRecordVoice": "Show recording voice...", "previewTelegram": "Preview with Telegram HTML format", "previewWebhook": "Preview as plain text", "previewEmail": "Preview with email HTML format", "previewDiscord": "Preview with Discord markdown", "previewSlack": "Preview with Slack markdown", "providerImmich": "Self-hosted photo server", "providerGitea": "Self-hosted Git service", "providerPlanka": "Self-hosted Kanban board", "providerScheduler": "Time-based scheduled messages", "providerNut": "Network UPS monitoring", "providerGooglePhotos": "Google Photos albums & shared libraries" }, "error": { "notFound": "Page not found", "goHome": "Go home" }, "searchPalette": { "placeholder": "Search entities...", "noResults": "No results found", "typeToSearch": "Start typing to search", "navigate": "navigate", "open": "open", "close": "close" }, "actions": { "title": "Actions", "description": "Scheduled mutations on external services", "addAction": "Add Action", "noActions": "No actions configured yet.", "provider": "Provider", "selectProvider": "Select provider...", "actionType": "Action Type", "name": "Name", "schedule": "Schedule", "interval": "Interval", "seconds": "seconds", "cronHint": "Standard cron expression (e.g. 0 3 * * * for daily at 3 AM)", "enabled": "Enabled", "rules": "rules", "addRule": "Add Rule", "ruleName": "Rule Name", "ruleNamePlaceholder": "e.g. Alice → Family Album", "unnamedRule": "Unnamed rule", "noRules": "No rules yet. Add a rule to define what this action does.", "on": "ON", "off": "OFF", "criteria": "Criteria", "persons": "Persons", "addPerson": "Add person...", "searchQuery": "Smart Search Query", "searchQueryPlaceholder": "e.g. sunset, beach, birthday...", "assetType": "Asset type", "dateFrom": "From date", "dateTo": "To date", "favoritesOnly": "Favorites only", "targetAlbum": "Target Album", "selectAlbum": "Album", "selectAlbumPlaceholder": "Select album", "albumId": "Album ID", "createAlbumIfMissing": "Create album if it doesn't exist", "newAlbumName": "New album name", "execute": "Execute", "dryRun": "Dry Run", "history": "History", "affected": "affected", "executeResult": "Action executed: {affected} items affected", "dryRunResult": "Dry run: {affected} items would be affected", "saved": "Action saved", "deleted": "Action deleted", "ruleSaved": "Rule saved", "ruleDeleted": "Rule deleted", "confirmDelete": "Are you sure you want to delete this action? All rules and execution history will be lost.", "loadError": "Failed to load actions", "noExecutions": "No executions yet.", "triggerManual": "manual", "triggerDryRun": "dry-run", "triggerScheduled": "scheduled" } }