{ "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.kicker": "Now Playing", "player.modes": "Modes", "header.connected": "Connected", "header.volume": "Vol. I", "header.edition": "Studio Reference", "header.edition_sub": "Studio Reference Edition", "meta.state": "State", "meta.source": "Source", "player.title_unavailable": "Title unavailable", "player.source": "Source:", "player.unknown_source": "Unknown", "player.vinyl": "Vinyl mode", "player.visualizer": "Audio visualizer", "player.background": "Dynamic background", "player.fullscreen": "Fullscreen player", "player.fullscreen.exit": "Exit fullscreen", "player.fullscreen.exit_short": "Exit", "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?", "scripts.field.parameters": "Parameters", "scripts.params.add": "+ Add", "scripts.params.remove": "Remove parameter", "scripts.params.required": "Required", "scripts.params.name_placeholder": "param_name", "scripts.params.description_placeholder": "Parameter description", "scripts.params.default_placeholder": "Default", "scripts.params.options_placeholder": "option1, option2, ...", "scripts.params.execute": "Execute", "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": "Now Spinning", "tab.browser": "Library", "tab.quick_access": "Quick Access", "tab.settings": "Settings", "tab.display": "Display", "settings.section.scripts": "Scripts", "settings.section.callbacks": "Callbacks", "settings.section.links": "Links", "settings.section.audio": "Audio", "settings.audio.description": "Select which audio output device to capture for the visualizer.", "settings.audio.device": "Loopback Device", "settings.audio.auto": "Auto-detect", "settings.audio.status_active": "Capturing audio", "settings.audio.status_available": "Available, not capturing", "settings.audio.status_unavailable": "Unavailable", "settings.audio.device_changed": "Audio device changed", "settings.audio.device_change_failed": "Failed to change audio device", "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", "display.brightness": "Brightness", "display.contrast": "Contrast", "display.tuning": "Picture tuning", "display.input_source": "Input", "display.color_preset": "Color temp", "display.picture_mode": "Picture mode", "display.msg.contrast_failed": "Failed to set contrast", "display.msg.input_changed": "Input source switched", "display.msg.input_failed": "Failed to switch input source", "display.msg.color_changed": "Color preset applied", "display.msg.color_failed": "Failed to apply color preset", "display.msg.mode_changed": "Picture mode applied", "display.msg.mode_failed": "Failed to apply picture mode", "display.msg.power_on": "Monitor turned on", "display.msg.power_off": "Monitor turned off", "display.msg.power_failed": "Failed to change monitor power", "execution.result": "Execution Result", "execution.executing": "Executing", "execution.status": "Status", "execution.exit_code": "Exit Code", "execution.duration": "Duration", "execution.success": "Success", "execution.failed": "Failed", "execution.running": "Running...", "execution.no_output": "(no output)", "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 is disabled. Set media_folders_management: true in config.yaml to enable.", "browser.unavailable": "Unavailable", "browser.folder_available": "Available", "browser.folder_unavailable": "Unavailable (path not reachable)", "browser.folder_disabled": "disabled", "browser.folder_edit": "Edit folder", "browser.folder_delete": "Delete folder", "browser.folder_created": "Media folder created successfully", "browser.folder_updated": "Media folder updated successfully", "browser.folder_deleted": "Media folder deleted successfully", "browser.folder_save_error": "Failed to save media folder", "browser.folder_delete_error": "Failed to delete media folder", "browser.folder_confirm_delete": "Are you sure you want to delete the folder \"{name}\"?", "browser.folders_description": "Media folders available for browsing. Folders on network shares show availability status.", "browser.folders_empty": "No media folders configured. Click \"+\" to add one.", "browser.folders_table.id": "ID", "browser.folders_table.label": "Label", "browser.folders_table.path": "Path", "browser.folders_table.status": "Status", "browser.folders_table.actions": "Actions", "settings.section.media_folders": "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.list_header.name": "Name", "browser.list_header.bitrate": "Bitrate", "browser.list_header.duration": "Duration", "browser.list_header.size": "Size", "browser.showing_items": "Showing {from}\u2013{to} of {total}", "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?", "about.button_title": "About", "about.title": "About", "about.created_by": "Created by", "about.email": "Email", "about.repository": "Repository", "about.source_code": "Source Code", "dialog.close": "Close", "update.available": "Update available: v{version}", "update.view_release": "View Release" }