{ "app": { "name": "Immich Watcher", "tagline": "Album notifications" }, "nav": { "dashboard": "Dashboard", "servers": "Servers", "trackers": "Trackers", "trackingConfigs": "Tracking", "templateConfigs": "Templates", "telegramBots": "Bots", "targets": "Targets", "users": "Users", "logout": "Logout" }, "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 6 characters", "loginWithImmich": "Login with Immich", "or": "or" }, "dashboard": { "title": "Dashboard", "description": "Overview of your Immich Watcher setup", "servers": "Servers", "activeTrackers": "Active Trackers", "targets": "Targets", "recentEvents": "Recent Events", "noEvents": "No events yet. Create a tracker to start monitoring albums.", "loading": "Loading..." }, "servers": { "title": "Servers", "description": "Manage Immich server connections", "addServer": "Add Server", "cancel": "Cancel", "name": "Name", "url": "Immich URL", "urlPlaceholder": "http://immich:2283", "apiKey": "API Key", "apiKeyKeep": "API Key (leave empty to keep current)", "connecting": "Connecting...", "noServers": "No servers configured yet.", "delete": "Delete", "confirmDelete": "Delete this server?", "online": "Online", "offline": "Offline", "checking": "Checking...", "loadError": "Failed to load servers." }, "trackers": { "title": "Trackers", "description": "Monitor albums for changes", "newTracker": "New Tracker", "cancel": "Cancel", "name": "Name", "namePlaceholder": "Family photos tracker", "server": "Server", "selectServer": "Select server...", "albums": "Albums", "eventTypes": "Event Types", "notificationTargets": "Notification Targets", "scanInterval": "Scan Interval (seconds)", "createTracker": "Create Tracker", "noTrackers": "No trackers yet. Add a server first, then create a tracker.", "active": "Active", "paused": "Paused", "pause": "Pause", "resume": "Resume", "delete": "Delete", "confirmDelete": "Delete this tracker?", "albums_count": "album(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" }, "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 destinations (Telegram, webhooks)", "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" }, "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" }, "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 result count", "responseMode": "Response mode", "modeMedia": "Media (send photos)", "modeText": "Text (send links)", "botLocale": "Bot language", "rateLimits": "Rate Limits", "rateSearch": "Search cooldown", "rateFind": "Find cooldown", "rateDefault": "Default cooldown", "syncCommands": "Sync to Telegram", "discoverChats": "Discover chats from Telegram", "clickToCopy": "Click to copy chat ID", "chatsDiscovered": "Chats discovered", "chatDeleted": "Chat removed" }, "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.", "eventTracking": "Event Tracking", "assetsAdded": "Assets added", "assetsRemoved": "Assets removed", "albumRenamed": "Album renamed", "albumDeleted": "Album deleted", "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)", "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" }, "templateConfig": { "title": "Template Configs", "description": "Define how notification messages are formatted", "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", "assetFormatting": "Asset Formatting", "imageTemplate": "Image item", "videoTemplate": "Video item", "assetsWrapper": "Assets wrapper", "moreMessage": "More message", "peopleFormat": "People format", "dateLocation": "Date & Location", "dateFormat": "Date 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?" }, "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" }, "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.", "favoritesOnly": "Only include assets marked as favorites in Immich.", "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 Immich server for changes, in seconds. Lower = faster detection but more API calls.", "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." }, "snack": { "serverSaved": "Server saved", "serverDeleted": "Server 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" }, "common": { "loading": "Loading...", "save": "Save", "cancel": "Cancel", "delete": "Delete", "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", "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" } }