{ "app.title": "Media Server", "auth.message": "Enter your API token to connect to the media server.", "auth.placeholder": "Enter API Token", "auth.connect": "Connect", "auth.help": "To get your token, run:", "auth.logout": "Logout", "auth.logout.title": "Clear saved token", "auth.invalid": "Invalid token. Please try again.", "auth.cleared": "Token cleared. Please enter a new token.", "auth.required": "Please enter a token", "player.theme": "Toggle theme", "accent.custom": "Custom", "player.locale": "Change language", "player.previous": "Previous", "player.play": "Play/Pause", "player.next": "Next", "player.mute": "Mute", "player.status.connected": "Connected", "player.status.disconnected": "Disconnected", "player.no_media": "No media playing", "player.title_unavailable": "Title unavailable", "player.source": "Source:", "player.unknown_source": "Unknown", "player.vinyl": "Vinyl mode", "state.playing": "Playing", "state.paused": "Paused", "state.stopped": "Stopped", "state.idle": "Idle", "scripts.quick_actions": "Quick Actions", "scripts.no_scripts": "No scripts configured", "scripts.management": "Script Management", "scripts.add": "Add", "scripts.table.name": "Name", "scripts.table.label": "Label", "scripts.table.command": "Command", "scripts.table.timeout": "Timeout", "scripts.table.actions": "Actions", "scripts.empty": "No scripts configured. Click 'Add' to create one.", "scripts.dialog.add": "Add Script", "scripts.dialog.edit": "Edit Script", "scripts.field.name": "Script Name *", "scripts.field.label": "Label", "scripts.field.command": "Command *", "scripts.field.description": "Description", "scripts.field.icon": "Icon (MDI)", "scripts.field.timeout": "Timeout (seconds)", "scripts.placeholder.name": "Only letters, numbers, and underscores allowed", "scripts.placeholder.label": "Human-readable name", "scripts.placeholder.command": "e.g., shutdown /s /t 0", "scripts.placeholder.description": "What does this script do?", "scripts.placeholder.icon": "e.g., mdi:power", "scripts.button.cancel": "Cancel", "scripts.button.save": "Save", "scripts.button.edit": "Edit", "scripts.button.delete": "Delete", "scripts.msg.executed": "{name} executed successfully", "scripts.msg.execute_failed": "Failed to execute {name}", "scripts.msg.execute_error": "Error executing {name}", "scripts.msg.created": "Script created successfully", "scripts.msg.updated": "Script updated successfully", "scripts.msg.create_failed": "Failed to create script", "scripts.msg.update_failed": "Failed to update script", "scripts.msg.deleted": "Script deleted successfully", "scripts.msg.delete_failed": "Failed to delete script", "scripts.msg.not_found": "Script not found", "scripts.msg.load_failed": "Failed to load script details", "scripts.msg.list_failed": "Failed to load scripts", "scripts.confirm.delete": "Are you sure you want to delete the script \"{name}\"?", "scripts.execution.title": "Execution Result", "scripts.execution.output": "Output", "scripts.execution.error_output": "Error Output", "scripts.execution.close": "Close", "scripts.confirm.unsaved": "You have unsaved changes. Are you sure you want to discard them?", "callbacks.management": "Callback Management", "callbacks.description": "Callbacks are scripts triggered automatically by media control events (play, pause, stop, etc.)", "callbacks.add": "Add", "callbacks.table.event": "Event", "callbacks.table.command": "Command", "callbacks.table.timeout": "Timeout", "callbacks.table.actions": "Actions", "callbacks.empty": "No callbacks configured. Click 'Add' to create one.", "callbacks.dialog.add": "Add Callback", "callbacks.dialog.edit": "Edit Callback", "callbacks.field.event": "Event *", "callbacks.field.command": "Command *", "callbacks.field.timeout": "Timeout (seconds)", "callbacks.field.workdir": "Working Directory", "callbacks.placeholder.event": "Select event...", "callbacks.placeholder.command": "e.g., shutdown /s /t 0", "callbacks.placeholder.workdir": "Optional", "callbacks.button.cancel": "Cancel", "callbacks.button.save": "Save", "callbacks.button.edit": "Edit", "callbacks.button.delete": "Delete", "callbacks.event.on_play": "on_play - After play succeeds", "callbacks.event.on_pause": "on_pause - After pause succeeds", "callbacks.event.on_stop": "on_stop - After stop succeeds", "callbacks.event.on_next": "on_next - After next track succeeds", "callbacks.event.on_previous": "on_previous - After previous track succeeds", "callbacks.event.on_volume": "on_volume - After volume change", "callbacks.event.on_mute": "on_mute - After mute toggle", "callbacks.event.on_seek": "on_seek - After seek succeeds", "callbacks.event.on_turn_on": "on_turn_on - Callback-only action", "callbacks.event.on_turn_off": "on_turn_off - Callback-only action", "callbacks.event.on_toggle": "on_toggle - Callback-only action", "callbacks.msg.created": "Callback created successfully", "callbacks.msg.updated": "Callback updated successfully", "callbacks.msg.create_failed": "Failed to create callback", "callbacks.msg.update_failed": "Failed to update callback", "callbacks.msg.deleted": "Callback deleted successfully", "callbacks.msg.delete_failed": "Failed to delete callback", "callbacks.msg.not_found": "Callback not found", "callbacks.msg.load_failed": "Failed to load callback details", "callbacks.msg.list_failed": "Failed to load callbacks", "callbacks.confirm.delete": "Are you sure you want to delete the callback \"{name}\"?", "callbacks.confirm.unsaved": "You have unsaved changes. Are you sure you want to discard them?", "tab.player": "Player", "tab.browser": "Browser", "tab.quick_access": "Quick Access", "tab.settings": "Settings", "tab.display": "Display", "settings.section.scripts": "Scripts", "settings.section.callbacks": "Callbacks", "settings.section.links": "Links", "quick_access.no_items": "No quick actions or links configured", "display.loading": "Loading monitors...", "display.error": "Failed to load monitors", "display.no_monitors": "No monitors detected", "display.power_on": "Turn on", "display.power_off": "Turn off", "display.primary": "Primary", "browser.title": "Media Browser", "browser.home": "Home", "browser.manage_folders": "Manage Folders", "browser.select_folder": "Select a folder...", "browser.select_folder_option": "Select a folder...", "browser.no_folder_selected": "Select a folder to browse media files", "browser.no_items": "No media files found in this folder", "browser.view_grid": "Grid view", "browser.view_compact": "Compact view", "browser.view_list": "List view", "browser.search": "Search...", "browser.items_per_page": "Items per page:", "browser.page": "Page", "browser.previous": "Previous", "browser.next": "Next", "browser.download": "Download", "browser.play_success": "Playing {filename}", "browser.play_error": "Failed to play file", "browser.play_all": "Play All", "browser.play_all_success": "Playing {count} files", "browser.play_all_error": "Failed to play folder", "browser.error_loading": "Error loading directory", "browser.error_loading_folders": "Failed to load media folders", "browser.manage_folders_hint": "Folder management coming soon! For now, edit config.yaml to add media folders.", "browser.folder_dialog.title_add": "Add Media Folder", "browser.folder_dialog.title_edit": "Edit Media Folder", "browser.folder_dialog.folder_id": "Folder ID *", "browser.folder_dialog.folder_id_help": "Alphanumeric and underscore only", "browser.folder_dialog.label": "Label *", "browser.folder_dialog.label_help": "Display name for this folder", "browser.folder_dialog.path": "Path *", "browser.folder_dialog.path_help": "Absolute path to media directory", "browser.folder_dialog.enabled": "Enabled", "browser.folder_dialog.cancel": "Cancel", "browser.folder_dialog.save": "Save", "browser.download_error": "Failed to download file", "connection.reconnecting": "Connection lost. Reconnecting (attempt {attempt})...", "connection.lost": "Connection lost. Server may be unavailable.", "connection.reconnect": "Reconnect", "dialog.cancel": "Cancel", "dialog.confirm": "Confirm", "links.description": "Quick links displayed as icons in the header bar. Click an icon to open the URL in a new tab.", "links.empty": "No links configured. Click 'Add' to create one.", "links.table.name": "Name", "links.table.url": "URL", "links.table.label": "Label", "links.table.actions": "Actions", "links.dialog.add": "Add Link", "links.dialog.edit": "Edit Link", "links.field.name": "Link Name *", "links.field.url": "URL *", "links.field.icon": "Icon (MDI)", "links.field.label": "Label", "links.field.description": "Description", "links.placeholder.name": "Only letters, numbers, and underscores allowed", "links.placeholder.url": "https://example.com", "links.placeholder.icon": "mdi:link", "links.placeholder.label": "Tooltip text", "links.placeholder.description": "What does this link point to?", "links.button.cancel": "Cancel", "links.button.save": "Save", "links.button.edit": "Edit", "links.button.delete": "Delete", "links.msg.created": "Link created successfully", "links.msg.updated": "Link updated successfully", "links.msg.create_failed": "Failed to create link", "links.msg.update_failed": "Failed to update link", "links.msg.deleted": "Link deleted successfully", "links.msg.delete_failed": "Failed to delete link", "links.msg.not_found": "Link not found", "links.msg.load_failed": "Failed to load link details", "links.confirm.delete": "Are you sure you want to delete the link \"{name}\"?", "links.confirm.unsaved": "You have unsaved changes. Are you sure you want to discard them?", "footer.created_by": "Created by", "footer.source_code": "Source Code" }