2026-04-26 14:03:39 +03:00
export const settingsDict = {
'settings.appearance.language.label' : 'Language' ,
'settings.appearance.language.description' : 'Choose the interface language.' ,
'settings.appearance.language.select' : 'Select language' ,
'settings.window.description' : 'OpenChamber settings window.' ,
'settings.view.home.title' : 'Settings' ,
'settings.view.home.description' : 'Jump to common pages.' ,
'settings.view.home.cards.providers.title' : 'Providers' ,
'settings.view.home.cards.providers.description' : 'Connect models + credentials' ,
'settings.view.home.cards.agents.title' : 'Agents' ,
'settings.view.home.cards.agents.description' : 'Prompts, tools, permissions' ,
'settings.view.home.cards.skillsCatalog.title' : 'Skills Catalog' ,
'settings.view.home.cards.skillsCatalog.description' : 'Install skills from catalogs' ,
'settings.view.home.cards.mcp.title' : 'MCP' ,
'settings.view.home.cards.mcp.description' : 'Configure MCP servers + connections' ,
'settings.view.home.cards.usage.title' : 'Usage' ,
'settings.view.home.cards.usage.description' : 'Quota + spend visibility' ,
'settings.view.unavailable.title' : 'Not available' ,
'settings.view.unavailable.description' : 'This settings page is not available in this runtime.' ,
'settings.view.badge.beta' : 'beta' ,
'settings.view.actions.reloadOpenCode' : 'Reload OpenCode' ,
'settings.view.actions.reloadOpenCodeTooltip' : 'Restart OpenCode and reload its configuration.' ,
'settings.view.actions.backToSettings' : 'Back to Settings' ,
'settings.view.actions.closeSettings' : 'Close settings' ,
'settings.view.actions.openSectionList' : 'Open section list' ,
'settings.view.actions.closeSettingsWithShortcut' : 'Close Settings ({shortcut}+,)' ,
'settings.view.actions.back' : 'Back' ,
'settings.view.actions.resizeNavigation' : 'Resize settings navigation' ,
'settings.page.projects.title' : 'Projects' ,
'settings.page.remoteInstances.title' : 'Remote Instances' ,
'settings.page.providers.title' : 'Providers' ,
'settings.page.usage.title' : 'Usage' ,
'settings.page.agents.title' : 'Agents' ,
'settings.page.commands.title' : 'Commands' ,
'settings.page.mcp.title' : 'MCP' ,
'settings.page.skills.title' : 'Skills' ,
'settings.page.skillsCatalog.title' : 'Skills Catalog' ,
'settings.page.git.title' : 'Git' ,
'settings.page.appearance.title' : 'Appearance' ,
'settings.page.chat.title' : 'Chat' ,
'settings.page.shortcuts.title' : 'Shortcuts' ,
'settings.page.sessions.title' : 'Sessions' ,
'settings.page.magicPrompts.title' : 'Magic Prompts' ,
'settings.page.notifications.title' : 'Notifications' ,
'settings.page.voice.title' : 'Voice' ,
'settings.page.tunnel.title' : 'Remote Tunnel' ,
'settings.openchamber.tunnel.title' : 'Remote Tunnel' ,
'settings.openchamber.tunnel.description' : 'Configure secure remote access with quick links or your own managed remote Cloudflare tunnel.' ,
'settings.openchamber.tunnel.note.serverSideEnforced' : 'Secure tunnel access is enforced server-side.' ,
'settings.openchamber.tunnel.note.connectLinksOneTime' : 'Connect links are one-time and are revoked when tunnel stops or connect-link TTL expires.' ,
'settings.openchamber.tunnel.note.cloudflareConnectorTarget' : 'Cloudflare connector target:' ,
'settings.openchamber.tunnel.note.cloudflareConnectorTargetUse' : 'For Cloudflare connector target, use' ,
'settings.openchamber.tunnel.note.tokensSavedPerTunnel' : 'Tokens are saved per tunnel and reused from disk.' ,
'settings.openchamber.tunnel.note.customConfigUsed' : 'Custom config file will be used when starting the tunnel.' ,
'settings.openchamber.tunnel.note.defaultConfigUsed' : 'When empty, cloudflared uses its default config (~/.cloudflared/config.yml).' ,
'settings.openchamber.tunnel.note.managedRemoteRequiresDomain' : 'Managed remote tunnels require a purchased domain in your Cloudflare account.' ,
'settings.openchamber.tunnel.note.managedLocalUsesConfig' : 'Managed local tunnels use your local cloudflared configuration file.' ,
'settings.openchamber.tunnel.note.startModeAndGenerateLink' : 'Start a {mode} tunnel and generate a one-time connect link. Do not close the app while this tunnel is in use.' ,
'settings.openchamber.tunnel.note.scanQrToConnect' : 'Scan with your phone to connect.' ,
'settings.openchamber.tunnel.section.redeemedAccessLinks' : 'Redeemed access links' ,
'settings.openchamber.tunnel.section.savedManagedRemoteTunnels' : 'Saved managed remote tunnels' ,
'settings.openchamber.tunnel.notAvailable.cloudflaredNotFound' : 'cloudflared not found' ,
'settings.openchamber.tunnel.notAvailable.installHint' : 'Install it to enable remote tunnel access:' ,
'settings.openchamber.tunnel.field.provider' : 'Provider' ,
'settings.openchamber.tunnel.field.providerPlaceholder' : 'Select provider' ,
'settings.openchamber.tunnel.field.tunnelType' : 'Tunnel type' ,
'settings.openchamber.tunnel.field.connectLinkTtl' : 'Connect link TTL' ,
'settings.openchamber.tunnel.field.tunnelSessionTtl' : 'Tunnel session TTL' ,
'settings.openchamber.tunnel.field.hostnameLabel' : 'Hostname:' ,
'settings.openchamber.tunnel.field.savedTokenAvailablePlaceholder' : 'Saved token available (optional to replace)' ,
'settings.openchamber.tunnel.field.pasteTokenPlaceholder' : 'Paste token for this tunnel' ,
'settings.openchamber.tunnel.field.newPresetNamePlaceholder' : 'Tunnel name (e.g. Production)' ,
'settings.openchamber.tunnel.field.newPresetHostnamePlaceholder' : 'Hostname (e.g. oc.example.com)' ,
'settings.openchamber.tunnel.field.newPresetTokenPlaceholder' : 'Token' ,
'settings.openchamber.tunnel.field.managedRemoteTokenInfoAria' : 'Managed remote tunnel token info' ,
'settings.openchamber.tunnel.field.configurationFile' : 'Configuration file' ,
'settings.openchamber.tunnel.field.configurationFilePlaceholder' : 'Using default cloudflared config' ,
'settings.openchamber.tunnel.field.managedRemoteTunnelToConnect' : 'Managed remote tunnel to connect' ,
'settings.openchamber.tunnel.field.selectSavedTunnelPlaceholder' : 'Select saved tunnel' ,
'settings.openchamber.tunnel.field.publicUrlHint' : 'Public URL (not accessible without a token)' ,
'settings.openchamber.tunnel.field.connectLink' : 'Connect link' ,
'settings.openchamber.tunnel.field.expires' : 'Expires' ,
'settings.openchamber.tunnel.field.connectQrAlt' : 'Tunnel connect QR code' ,
'settings.openchamber.tunnel.actions.removePresetAria' : 'Remove {name}' ,
'settings.openchamber.tunnel.actions.saveToken' : 'Save token' ,
'settings.openchamber.tunnel.actions.browseConfigFileAria' : 'Browse config file' ,
'settings.openchamber.tunnel.actions.clearConfigFileAria' : 'Clear config file' ,
'settings.openchamber.tunnel.actions.openManagedRemoteDocs' : 'Check documentation on how to configure a managed remote tunnel' ,
'settings.openchamber.tunnel.actions.openManagedLocalDocs' : 'Check documentation on managed local tunnel configuration' ,
'settings.openchamber.tunnel.actions.startTunnel' : 'Start Tunnel' ,
'settings.openchamber.tunnel.actions.startingTunnel' : 'Starting tunnel...' ,
'settings.openchamber.tunnel.actions.stopTunnel' : 'Stop Tunnel' ,
'settings.openchamber.tunnel.actions.stopping' : 'Stopping...' ,
'settings.openchamber.tunnel.actions.newConnectLink' : 'New connect link' ,
'settings.openchamber.tunnel.actions.copied' : 'Copied' ,
'settings.openchamber.tunnel.actions.retry' : 'Retry' ,
'settings.openchamber.tunnel.option.moreProvidersSoon' : 'More providers coming soon' ,
'settings.openchamber.tunnel.option.mode.quick.label' : 'Quick' ,
'settings.openchamber.tunnel.option.mode.quick.tooltip' : 'Quick Tunnel is best effort and Cloudflare does not guarantee uptime.' ,
'settings.openchamber.tunnel.option.mode.managedRemote.label' : 'Managed Remote' ,
'settings.openchamber.tunnel.option.mode.managedRemote.tooltip' : 'Managed Remote uses your Cloudflare account and hostname for long-lived access.' ,
'settings.openchamber.tunnel.option.mode.managedLocal.label' : 'Managed Local' ,
'settings.openchamber.tunnel.option.mode.managedLocal.tooltip' : 'Managed Local uses your local cloudflared configuration file.' ,
'settings.openchamber.tunnel.warning.quickModeReliability' : 'For more reliable long-lived access, switch to Managed Remote or Managed Local tunnel mode.' ,
'settings.openchamber.tunnel.warning.replacesActiveTunnel' : 'Starting this tunnel replaces the active tunnel and revokes existing connect links and remote sessions.' ,
'settings.openchamber.tunnel.badge.quick' : 'QUICK' ,
'settings.openchamber.tunnel.badge.remote' : 'REMOTE' ,
'settings.openchamber.tunnel.badge.local' : 'LOCAL' ,
'settings.openchamber.tunnel.state.loading' : 'Loading' ,
'settings.openchamber.tunnel.state.expired' : 'Expired' ,
'settings.openchamber.tunnel.state.revoked' : 'Revoked' ,
'settings.openchamber.tunnel.state.inactive' : 'Inactive' ,
'settings.openchamber.tunnel.state.noExpiry' : 'No expiry' ,
'settings.openchamber.tunnel.state.never' : 'Never' ,
'settings.openchamber.tunnel.state.tunnelReady' : 'Tunnel ready' ,
'settings.openchamber.tunnel.session.redeemedAt' : 'Redeemed {time}' ,
'settings.openchamber.tunnel.session.expiresIn' : 'Expires in {remaining}' ,
'settings.openchamber.tunnel.session.inactiveWithReason' : 'Inactive ({reason})' ,
'settings.openchamber.tunnel.error.invalidConfigExtension' : 'Config file must use .yml, .yaml, or .json extension.' ,
'settings.openchamber.tunnel.tooltip.tokensSavedPath' : 'Tokens are saved in ~/.config/openchamber/cloudflare-managed-remote-tunnels.json.' ,
'settings.openchamber.tunnel.empty.noManagedRemoteTunnels' : 'No managed remote tunnels saved yet.' ,
'settings.openchamber.tunnel.toast.checkAvailabilityFailed' : 'Failed to check tunnel availability' ,
'settings.openchamber.tunnel.toast.saveSettingsFailed' : 'Failed to save tunnel settings' ,
'settings.openchamber.tunnel.toast.saveTtlFailed' : 'Failed to save tunnel TTL settings' ,
'settings.openchamber.tunnel.toast.saveTokenFailed' : 'Failed to save managed remote tunnel token' ,
'settings.openchamber.tunnel.toast.selectOrAddManagedRemoteFirst' : 'Select or add a managed remote tunnel first' ,
'settings.openchamber.tunnel.toast.managedRemoteTokenRequiredBeforeStarting' : 'Managed remote tunnel token is required before starting' ,
'settings.openchamber.tunnel.toast.addManagedRemoteTokenBeforeStarting' : 'Add a managed remote tunnel token before starting' ,
'settings.openchamber.tunnel.toast.startFailed' : 'Failed to start tunnel' ,
'settings.openchamber.tunnel.toast.startedButNoPublicUrl' : 'Tunnel started but no public URL was returned' ,
'settings.openchamber.tunnel.toast.replacedTunnelSingleSingle' : 'Replaced previous tunnel: revoked 1 link, invalidated 1 session.' ,
'settings.openchamber.tunnel.toast.replacedTunnelSingleManySessions' : 'Replaced previous tunnel: revoked 1 link, invalidated {invalidatedSessionCount} sessions.' ,
'settings.openchamber.tunnel.toast.replacedTunnelManyLinksSingleSession' : 'Replaced previous tunnel: revoked {revokedBootstrapCount} links, invalidated 1 session.' ,
'settings.openchamber.tunnel.toast.replacedTunnelManyMany' : 'Replaced previous tunnel: revoked {revokedBootstrapCount} links, invalidated {invalidatedSessionCount} sessions.' ,
'settings.openchamber.tunnel.toast.linkReady' : 'Tunnel link ready' ,
'settings.openchamber.tunnel.toast.stopped' : 'Tunnel stopped' ,
'settings.openchamber.tunnel.toast.stopFailed' : 'Failed to stop tunnel' ,
'settings.openchamber.tunnel.toast.connectLinkCopied' : 'Connect link copied' ,
'settings.openchamber.tunnel.toast.copyUrlFailed' : 'Failed to copy URL' ,
'settings.openchamber.tunnel.toast.saveSelectedManagedRemoteFailed' : 'Failed to save selected managed remote tunnel' ,
'settings.openchamber.tunnel.toast.tunnelNameRequired' : 'Tunnel name is required' ,
'settings.openchamber.tunnel.toast.managedRemoteHostnameRequired' : 'Managed remote tunnel hostname is required' ,
'settings.openchamber.tunnel.toast.managedRemoteTokenRequired' : 'Managed remote tunnel token is required' ,
'settings.openchamber.tunnel.toast.hostnameAlreadyExists' : 'This hostname already exists' ,
'settings.openchamber.tunnel.toast.managedRemoteSaved' : 'Managed remote tunnel saved' ,
'settings.openchamber.tunnel.toast.managedRemoteRemoved' : 'Managed remote tunnel removed' ,
'settings.magicPrompts.sidebar.title' : 'Magic Prompts' ,
'settings.magicPrompts.sidebar.description' : 'Select a prompt template to edit.' ,
'settings.magicPrompts.sidebar.group.git' : 'Git' ,
'settings.magicPrompts.sidebar.group.github' : 'GitHub' ,
'settings.magicPrompts.sidebar.group.planning' : 'Planning' ,
'settings.magicPrompts.sidebar.group.session' : 'Session' ,
'settings.magicPrompts.sidebar.item.gitCommitGenerate' : 'Commit Generation' ,
'settings.magicPrompts.sidebar.item.gitPrGenerate' : 'PR Generation' ,
'settings.magicPrompts.sidebar.item.gitConflictResolve' : 'Merge/Rebase Conflict Resolution' ,
'settings.magicPrompts.sidebar.item.gitCherrypickConflictResolve' : 'Cherry-pick Conflict Resolution' ,
'settings.magicPrompts.sidebar.item.githubPrReview' : 'PR Review' ,
'settings.magicPrompts.sidebar.item.githubIssueReview' : 'Issue Review' ,
'settings.magicPrompts.sidebar.item.githubPrFailedChecksReview' : 'PR Failed Checks Review' ,
'settings.magicPrompts.sidebar.item.githubPrCommentsReview' : 'PR Comments Review' ,
'settings.magicPrompts.sidebar.item.githubSinglePrCommentReview' : 'Single PR Comment Review' ,
'settings.magicPrompts.sidebar.item.planTodo' : 'Todo Planning' ,
'settings.magicPrompts.sidebar.item.planImprove' : 'Improve Plan' ,
'settings.magicPrompts.sidebar.item.planImplement' : 'Implement Plan' ,
'settings.magicPrompts.sidebar.item.sessionSummary' : 'Session Summary' ,
'settings.magicPrompts.sidebar.item.sessionWorkspaceReview' : 'Workspace Review' ,
'settings.remoteInstances.sidebar.title' : 'Remote Instances' ,
'settings.remoteInstances.sidebar.total' : 'Total {count}' ,
'settings.remoteInstances.sidebar.newSshInstanceName' : 'New SSH Instance' ,
'settings.remoteInstances.sidebar.actions.addSshInstance' : 'Add SSH instance' ,
'settings.remoteInstances.sidebar.actions.connect' : 'Connect' ,
'settings.remoteInstances.sidebar.actions.disconnect' : 'Disconnect' ,
'settings.remoteInstances.sidebar.actions.retry' : 'Retry' ,
'settings.remoteInstances.sidebar.actions.remove' : 'Remove' ,
'settings.remoteInstances.sidebar.confirm.localPortInUseRetry' : 'Local port is already in use. Pick a random free local port and retry?' ,
'settings.remoteInstances.sidebar.toast.createFailed' : 'Failed to create SSH instance' ,
'settings.remoteInstances.sidebar.toast.retriedWithRandomPort' : 'Retried with a random local port' ,
'settings.remoteInstances.sidebar.toast.connectFailed' : 'Failed to connect instance' ,
'settings.remoteInstances.sidebar.toast.disconnectFailed' : 'Failed to disconnect instance' ,
'settings.remoteInstances.sidebar.toast.retryFailed' : 'Failed to retry connection' ,
'settings.remoteInstances.sidebar.toast.removeFailed' : 'Failed to remove instance' ,
'settings.remoteInstances.sidebar.phase.ready' : 'Ready' ,
'settings.remoteInstances.sidebar.phase.error' : 'Error' ,
'settings.remoteInstances.sidebar.phase.reconnect' : 'Reconnect' ,
'settings.remoteInstances.sidebar.phase.installing' : 'Installing' ,
'settings.remoteInstances.sidebar.phase.updating' : 'Updating' ,
'settings.remoteInstances.sidebar.phase.forwarding' : 'Forwarding' ,
'settings.remoteInstances.sidebar.phase.starting' : 'Starting' ,
'settings.remoteInstances.sidebar.phase.connecting' : 'Connecting' ,
'settings.remoteInstances.sidebar.phase.idle' : 'Idle' ,
'settings.remoteInstances.page.section.instance' : 'Instance' ,
'settings.remoteInstances.page.section.instanceDescription' : 'Core SSH settings.' ,
'settings.remoteInstances.page.field.mode' : 'Mode' ,
'settings.remoteInstances.page.field.modeHint' : 'Managed installs/updates and starts OpenChamber remotely. External assumes it is already running.' ,
'settings.remoteInstances.page.field.modePlaceholder' : 'Select mode' ,
'settings.remoteInstances.page.field.modeManaged' : 'Managed (auto start)' ,
'settings.remoteInstances.page.field.modeExternal' : 'External (already running)' ,
'settings.remoteInstances.page.field.preferredRemotePort' : 'Preferred remote port' ,
'settings.remoteInstances.page.field.preferredRemotePortHint' : 'Port OpenChamber should use on the remote host. Leave empty to let the runtime choose.' ,
'settings.remoteInstances.page.field.keepServerRunning' : 'Keep server running' ,
'settings.remoteInstances.page.field.keepServerRunningHint' : 'If enabled, OpenChamber daemon is left running remotely when you disconnect.' ,
'settings.remoteInstances.page.field.bindHost' : 'Bind host' ,
'settings.remoteInstances.page.field.bindHostHint' : 'Network interface for the main local URL. Use 127.0.0.1/localhost for local-only access.' ,
'settings.remoteInstances.page.field.preferredLocalPort' : 'Preferred local port' ,
'settings.remoteInstances.page.field.preferredLocalPortHint' : 'Preferred local port for the main OpenChamber tunnel. Leave empty for auto-select.' ,
'settings.remoteInstances.page.field.forwardType' : 'Forward type' ,
'settings.remoteInstances.page.field.localHostPlaceholder' : '127.0.0.1' ,
'settings.remoteInstances.page.field.remoteHostPlaceholder' : '127.0.0.1' ,
'settings.remoteInstances.page.field.auto' : 'Auto' ,
'settings.remoteInstances.page.confirm.bindAllInterfaces' : 'Binding to 0.0.0.0 exposes forwarded ports to your local network. Continue?' ,
'settings.remoteInstances.page.preview.localSocks5' : '(local SOCKS5)' ,
'settings.remoteInstances.page.preview.local' : '(local)' ,
'settings.remoteInstances.page.preview.remote' : '(remote)' ,
'settings.remoteInstances.page.toast.openLocalEndpointFailed' : 'Failed to open local endpoint' ,
'settings.remoteInstances.page.toast.localUrlCopied' : 'Local URL copied' ,
'settings.remoteInstances.page.actions.copyLocalUrl' : 'Copy local URL' ,
'settings.remoteInstances.page.actions.open' : 'Open' ,
'settings.remoteInstances.page.logsDialog.selectedInstanceFallback' : 'Selected instance' ,
'settings.remoteInstances.page.patternDialog.descriptionWithHost' : '{host} requires a concrete destination.' ,
'settings.remoteInstances.page.patternDialog.description' : 'Enter destination.' ,
'settings.common.actions.cancel' : 'Cancel' ,
'settings.common.actions.create' : 'Create' ,
'settings.common.actions.delete' : 'Delete' ,
'settings.common.actions.reset' : 'Reset' ,
'settings.common.actions.rename' : 'Rename' ,
'settings.common.actions.duplicate' : 'Duplicate' ,
'settings.common.actions.import' : 'Import' ,
'settings.common.actions.copyAll' : 'Copy all' ,
'settings.common.actions.clear' : 'Clear' ,
'settings.common.actions.saving' : 'Saving...' ,
'settings.common.actions.saveChanges' : 'Save Changes' ,
'settings.common.scope.global' : 'Global' ,
'settings.common.scope.project' : 'Project' ,
'settings.common.field.description' : 'Description' ,
'settings.common.badge.new' : 'New' ,
'settings.common.badge.modified' : 'Modified' ,
'settings.common.permission.allow' : 'Allow' ,
'settings.common.permission.ask' : 'Ask' ,
'settings.common.permission.deny' : 'Deny' ,
'settings.common.state.comingSoon' : 'Coming soon...' ,
'settings.projects.actions.title' : 'Actions' ,
'settings.projects.actions.description' : 'Per-project commands shown in header next to project name.' ,
'settings.projects.actions.validation.fillNameAndCommand' : 'Fill action name and command before saving.' ,
'settings.projects.actions.state.loading' : 'Loading...' ,
'settings.projects.actions.state.empty' : 'No actions configured yet.' ,
'settings.projects.actions.state.untitled' : 'Untitled action' ,
'settings.projects.actions.state.noDesktopSshForwards' : 'No enabled local SSH forwards available.' ,
'settings.projects.actions.field.selectIconAria' : 'Select icon' ,
'settings.projects.actions.field.iconAria' : 'Icon {icon}' ,
'settings.projects.actions.field.actionNamePlaceholder' : 'Action name' ,
'settings.projects.actions.field.command' : 'Command' ,
'settings.projects.actions.field.commandPlaceholder' : 'e.g. bun run lint' ,
'settings.projects.actions.field.autoOpenUrl' : 'Auto-open URL' ,
'settings.projects.actions.field.autoOpenUrlForAria' : 'Auto-open URL for {title}' ,
'settings.projects.actions.field.autoOpenUrlDescription' : 'Open URL from output or custom URL below' ,
'settings.projects.actions.field.overrideUrlPlaceholder' : 'Override URL (optional)' ,
'settings.projects.actions.field.overrideUrlTooltip' : 'If this field is filled, custom URL is used. If empty, app opens best URL from output.' ,
'settings.projects.actions.field.desktopSshForward' : 'Desktop SSH forward' ,
'settings.projects.actions.field.useOutputManualUrl' : 'Use output/manual URL' ,
'settings.projects.actions.actions.add' : 'Add action' ,
'settings.projects.actions.actions.save' : 'Save Actions' ,
'settings.projects.actions.toast.saveFailed' : 'Failed to save actions' ,
'settings.projects.actions.toast.saved' : 'Project actions saved' ,
'settings.openchamber.about.title' : 'About OpenChamber' ,
'settings.openchamber.about.field.version' : 'Version' ,
'settings.openchamber.about.state.checking' : 'Checking...' ,
'settings.openchamber.about.state.upToDate' : 'Up to date' ,
'settings.openchamber.about.actions.checkUpdates' : 'Check updates' ,
'settings.openchamber.about.actions.update' : 'Update' ,
'settings.openchamber.about.actions.updateToVersion' : 'Update to {version}' ,
'settings.openchamber.about.actions.checkForUpdates' : 'Check for updates' ,
'settings.openchamber.about.toast.latestVersion' : 'You are on the latest version' ,
'settings.agents.sidebar.title' : 'Agents' ,
'settings.agents.sidebar.total' : 'Total {count}' ,
'settings.agents.sidebar.empty.title' : 'No agents configured' ,
'settings.agents.sidebar.empty.description' : 'Use the + button above to create one' ,
'settings.agents.sidebar.section.builtIn' : 'Built-in Agents' ,
'settings.agents.sidebar.section.custom' : 'Custom Agents' ,
'settings.agents.sidebar.badge.system' : 'system' ,
'settings.agents.sidebar.dialog.deleteTitle' : 'Delete Agent' ,
'settings.agents.sidebar.dialog.resetTitle' : 'Reset Agent' ,
'settings.agents.sidebar.dialog.deleteDescription' : 'Are you sure you want to delete agent "{name}"?' ,
'settings.agents.sidebar.dialog.resetDescription' : 'Are you sure you want to reset agent "{name}" to its default configuration?' ,
'settings.agents.sidebar.renameDialog.title' : 'Rename Agent' ,
'settings.agents.sidebar.renameDialog.description' : 'Enter a new name for the agent "@{name}"' ,
'settings.agents.sidebar.renameDialog.placeholder' : 'New agent name...' ,
'settings.agents.sidebar.toast.builtInCannotDelete' : 'Built-in agents cannot be deleted' ,
'settings.agents.sidebar.toast.agentDeleted' : 'Agent "{name}" deleted successfully' ,
'settings.agents.sidebar.toast.agentReset' : 'Agent "{name}" reset to default' ,
'settings.agents.sidebar.toast.deleteFailed' : 'Failed to delete agent' ,
'settings.agents.sidebar.toast.resetFailed' : 'Failed to reset agent' ,
'settings.agents.sidebar.toast.agentNameRequired' : 'Agent name is required' ,
'settings.agents.sidebar.toast.agentExists' : 'An agent with this name already exists' ,
'settings.agents.sidebar.toast.removeOldAfterRenameFailed' : 'Failed to remove old agent after rename' ,
'settings.agents.sidebar.toast.renameFailed' : 'Failed to rename agent' ,
'settings.agents.page.toast.permissionNameRequired' : 'Permission name is required' ,
'settings.agents.page.toast.created' : 'Agent created successfully' ,
'settings.agents.page.toast.updated' : 'Agent updated successfully' ,
'settings.agents.page.toast.createFailed' : 'Failed to create agent' ,
'settings.agents.page.toast.updateFailed' : 'Failed to update agent' ,
'settings.agents.page.toast.saveUnexpectedError' : 'An error occurred while saving' ,
'settings.agents.page.empty.title' : 'Select an agent from the sidebar' ,
'settings.agents.page.empty.description' : 'or create a new one' ,
'settings.agents.page.title.new' : 'New Agent' ,
'settings.agents.page.subtitle.new' : 'Configure a new assistant persona' ,
'settings.agents.page.subtitle.edit' : 'Edit agent settings' ,
'settings.agents.page.section.identityRole' : 'Identity & Role' ,
'settings.agents.page.section.modelParameters' : 'Model & Parameters' ,
'settings.agents.page.section.systemPrompt' : 'System Prompt' ,
'settings.agents.page.section.toolPermissions' : 'Tool Permissions' ,
'settings.agents.page.field.agentName' : 'Agent Name' ,
'settings.agents.page.field.agentNamePlaceholder' : 'agent-name' ,
'settings.agents.page.field.scopePlaceholder' : 'Scope' ,
'settings.agents.page.field.descriptionPlaceholder' : 'What does this agent do?' ,
'settings.agents.page.field.mode' : 'Mode' ,
'settings.agents.page.field.modeTooltip' : 'Primary vs Subagent visibility' ,
'settings.agents.page.field.overrideModel' : 'Override Model' ,
'settings.agents.page.field.temperature' : 'Temperature' ,
'settings.agents.page.field.temperatureTooltip' : 'Controls randomness. Higher = creative, Lower = focused.' ,
'settings.agents.page.field.temperatureRange' : '0.0 to 2.0' ,
'settings.agents.page.field.clearTemperatureAria' : 'Clear temperature override' ,
'settings.agents.page.field.topP' : 'Top P' ,
'settings.agents.page.field.topPTooltip' : 'Nucleus sampling diversity. Lower = likely tokens only.' ,
'settings.agents.page.field.topPRange' : '0.0 to 1.0' ,
'settings.agents.page.field.clearTopPAria' : 'Clear top p override' ,
'settings.agents.page.field.systemPromptPlaceholder' : 'You are an expert coding assistant...' ,
'settings.agents.page.mode.primary' : 'Primary' ,
'settings.agents.page.mode.subagent' : 'Subagent' ,
'settings.agents.page.mode.all' : 'All' ,
'settings.agents.page.permissions.defaultLabel' : 'Default' ,
'settings.agents.page.permissions.hideEditor' : 'Hide Editor' ,
'settings.agents.page.permissions.advancedEditor' : 'Advanced Editor' ,
'settings.agents.page.permissions.globalSummary' : 'Global: {summary}' ,
'settings.agents.page.permissions.rulesSummary' : 'Rules: {summary}' ,
'settings.agents.page.permissions.globalDefault' : 'Global Default' ,
'settings.agents.page.permissions.pattern' : 'Pattern' ,
'settings.agents.page.permissions.addCustomRule' : 'Add Custom Rule' ,
'settings.agents.page.permissions.permissionPlaceholder' : 'Permission...' ,
'settings.agents.page.permissions.patternPlaceholder' : 'Pattern (e.g. *)' ,
'settings.commands.sidebar.title' : 'Commands' ,
'settings.commands.sidebar.total' : 'Total {count}' ,
'settings.commands.sidebar.empty.title' : 'No commands configured' ,
'settings.commands.sidebar.empty.description' : 'Use the + button above to create one' ,
'settings.commands.sidebar.section.builtIn' : 'Built-in Commands' ,
'settings.commands.sidebar.section.custom' : 'Custom Commands' ,
'settings.commands.sidebar.dialog.deleteTitle' : 'Delete Command' ,
'settings.commands.sidebar.dialog.resetTitle' : 'Reset Command' ,
'settings.commands.sidebar.dialog.deleteDescription' : 'Are you sure you want to delete command "{name}"?' ,
'settings.commands.sidebar.dialog.resetDescription' : 'Are you sure you want to reset command "{name}" to its default configuration?' ,
'settings.commands.sidebar.renameDialog.title' : 'Rename Command' ,
'settings.commands.sidebar.renameDialog.description' : 'Enter a new name for the command "/{name}"' ,
'settings.commands.sidebar.renameDialog.placeholder' : 'New command name...' ,
'settings.commands.sidebar.toast.builtInCannotDelete' : 'Built-in commands cannot be deleted' ,
'settings.commands.sidebar.toast.commandDeleted' : 'Command "{name}" deleted successfully' ,
'settings.commands.sidebar.toast.commandReset' : 'Command "{name}" reset to default' ,
'settings.commands.sidebar.toast.deleteFailed' : 'Failed to delete command' ,
'settings.commands.sidebar.toast.resetFailed' : 'Failed to reset command' ,
'settings.commands.sidebar.toast.commandNameRequired' : 'Command name is required' ,
'settings.commands.sidebar.toast.commandExists' : 'A command with this name already exists' ,
'settings.commands.sidebar.toast.removeOldAfterRenameFailed' : 'Failed to remove old command after rename' ,
'settings.commands.sidebar.toast.renameFailed' : 'Failed to rename command' ,
'settings.commands.page.toast.templateRequired' : 'Command template is required' ,
'settings.commands.page.toast.created' : 'Command created successfully' ,
'settings.commands.page.toast.updated' : 'Command updated successfully' ,
'settings.commands.page.toast.createFailed' : 'Failed to create command' ,
'settings.commands.page.toast.updateFailed' : 'Failed to update command' ,
'settings.commands.page.toast.saveUnexpectedError' : 'An error occurred while saving' ,
'settings.commands.page.empty.title' : 'Select a command from the sidebar' ,
'settings.commands.page.empty.description' : 'or create a new one' ,
'settings.commands.page.title.new' : 'New Command' ,
'settings.commands.page.subtitle.new' : 'Configure a new slash command' ,
'settings.commands.page.subtitle.edit' : 'Edit command settings' ,
'settings.commands.page.section.identity' : 'Identity' ,
'settings.commands.page.section.executionContext' : 'Execution Context' ,
'settings.commands.page.section.template' : 'Command Template' ,
'settings.commands.page.field.commandName' : 'Command Name' ,
'settings.commands.page.field.commandNamePlaceholder' : 'command-name' ,
'settings.commands.page.field.descriptionPlaceholder' : 'What does this command do?' ,
'settings.commands.page.field.overrideAgent' : 'Override Agent' ,
'settings.commands.page.field.templatePlaceholder' : 'Your command template here...\n\nUse $ARGUMENTS to reference user input.\nUse !`shell command` to inject shell output.\nUse @filename to include file contents.' ,
'settings.commands.page.templateHint.userInput' : 'user input' ,
'settings.commands.page.templateHint.shellOutput' : 'shell output' ,
'settings.commands.page.templateHint.fileContents' : 'file contents' ,
'settings.commands.agentSelector.title' : 'Select agent' ,
'settings.commands.agentSelector.notSelected' : 'Not selected' ,
'settings.commands.agentSelector.selectAgentPlaceholder' : 'Select agent...' ,
'settings.gitIdentities.page.section.title' : 'Identities' ,
'settings.gitIdentities.page.empty.title' : 'No identities configured' ,
'settings.gitIdentities.page.empty.description' : 'Create one to manage Git author settings per project' ,
'settings.gitIdentities.page.discoveredCredentials.title' : 'Found in ~/.git-credentials' ,
'settings.gitIdentities.page.badge.default' : 'default' ,
'settings.gitIdentities.page.actions.setAsDefault' : 'Set as default' ,
'settings.gitIdentities.page.actions.unsetDefault' : 'Unset default' ,
'settings.gitIdentities.page.actions.import' : 'Import' ,
'settings.gitIdentities.page.toast.updateDefaultFailed' : 'Failed to update default identity' ,
'settings.gitIdentities.page.toast.defaultUpdated' : 'Default identity updated' ,
'settings.gitIdentities.page.toast.defaultUnset' : 'Default identity unset' ,
'settings.gitIdentities.page.toast.profileDeleted' : 'Profile "{name}" deleted' ,
'settings.gitIdentities.page.toast.deleteProfileFailed' : 'Failed to delete profile' ,
'settings.gitIdentities.page.deleteDialog.title' : 'Delete Profile' ,
'settings.gitIdentities.page.deleteDialog.description' : 'Are you sure you want to delete "{name}"?' ,
'settings.gitIdentities.editor.title.importCredential' : 'Import Credential' ,
'settings.gitIdentities.editor.title.newIdentity' : 'New Identity' ,
'settings.gitIdentities.editor.title.globalIdentity' : 'Global Identity' ,
'settings.gitIdentities.editor.title.editIdentity' : 'Edit Identity' ,
'settings.gitIdentities.editor.description.globalReadOnly' : 'System-wide Git identity (read-only)' ,
'settings.gitIdentities.editor.description.newProfile' : 'Create a new Git identity profile' ,
'settings.gitIdentities.editor.description.editProfile' : 'Edit identity profile settings' ,
'settings.gitIdentities.editor.field.profileName' : 'Profile Name' ,
'settings.gitIdentities.editor.field.profileNamePlaceholder' : 'Work Profile, Personal, etc.' ,
'settings.gitIdentities.editor.field.color' : 'Color' ,
'settings.gitIdentities.editor.field.icon' : 'Icon' ,
'settings.gitIdentities.editor.field.userName' : 'User Name' ,
'settings.gitIdentities.editor.field.userNameTooltip' : 'The name that will appear in Git commit messages.' ,
'settings.gitIdentities.editor.field.userNamePlaceholder' : 'John Doe' ,
'settings.gitIdentities.editor.field.emailAddress' : 'Email Address' ,
'settings.gitIdentities.editor.field.emailAddressTooltip' : 'Should match your email in GitHub/GitLab for proper attribution.' ,
'settings.gitIdentities.editor.field.emailAddressPlaceholder' : 'john@example.com' ,
'settings.gitIdentities.editor.field.authMethod' : 'Auth Method' ,
'settings.gitIdentities.editor.field.authToken' : 'Token' ,
'settings.gitIdentities.editor.field.sshKeyPath' : 'SSH Key Path' ,
'settings.gitIdentities.editor.field.sshKeyPathTooltip' : 'Optional path to private key. e.g. ~/.ssh/id_ed25519' ,
'settings.gitIdentities.editor.field.sshKeyPathPlaceholder' : '~/.ssh/id_ed25519' ,
'settings.gitIdentities.editor.field.host' : 'Host' ,
'settings.gitIdentities.editor.field.hostTooltip' : 'Token will be read from ~/.git-credentials for this host.' ,
'settings.gitIdentities.editor.field.hostPlaceholder' : 'github.com' ,
'settings.gitIdentities.editor.actions.close' : 'Close' ,
'settings.gitIdentities.editor.actions.create' : 'Create' ,
'settings.gitIdentities.editor.actions.save' : 'Save' ,
'settings.gitIdentities.editor.toast.userNameEmailRequired' : 'User name and email are required' ,
'settings.gitIdentities.editor.toast.hostRequiredForToken' : 'Host is required for token-based authentication' ,
'settings.gitIdentities.editor.toast.profileCreated' : 'Profile created' ,
'settings.gitIdentities.editor.toast.profileUpdated' : 'Profile updated' ,
'settings.gitIdentities.editor.toast.createProfileFailed' : 'Failed to create profile' ,
'settings.gitIdentities.editor.toast.updateProfileFailed' : 'Failed to update profile' ,
'settings.gitIdentities.editor.toast.saveUnexpectedError' : 'An error occurred while saving' ,
'settings.gitIdentities.editor.toast.profileDeleted' : 'Profile deleted' ,
'settings.gitIdentities.editor.toast.deleteProfileFailed' : 'Failed to delete profile' ,
'settings.gitIdentities.editor.toast.deleteUnexpectedError' : 'An error occurred while deleting' ,
'settings.skills.sidebar.title' : 'Skills' ,
'settings.skills.sidebar.total' : 'Total {count}' ,
'settings.skills.sidebar.section.project' : 'Project Skills' ,
'settings.skills.sidebar.section.user' : 'User Skills' ,
'settings.skills.sidebar.empty.title' : 'No skills configured' ,
'settings.skills.sidebar.empty.description' : 'Use the + button above to create one' ,
'settings.skills.sidebar.badge.claude' : 'claude' ,
'settings.skills.sidebar.badge.agents' : 'agents' ,
'settings.skills.sidebar.toast.skillDeleted' : 'Skill "{name}" deleted successfully' ,
'settings.skills.sidebar.toast.deleteSkillFailed' : 'Failed to delete skill' ,
'settings.skills.sidebar.toast.duplicateLoadFailed' : 'Failed to load skill details for duplication' ,
'settings.skills.sidebar.toast.renameLoadFailed' : 'Failed to load skill details' ,
'settings.skills.sidebar.toast.removeOldAfterRenameFailed' : 'Failed to remove old skill after rename' ,
'settings.skills.sidebar.toast.renameFailed' : 'Failed to rename skill' ,
'settings.skills.sidebar.deleteDialog.title' : 'Delete Skill' ,
'settings.skills.sidebar.deleteDialog.description' : 'Are you sure you want to delete skill "{name}"?' ,
'settings.skills.sidebar.renameDialog.title' : 'Rename Skill' ,
'settings.skills.sidebar.renameDialog.description' : 'Enter a new name for the skill "{name}"' ,
'settings.skills.sidebar.renameDialog.placeholder' : 'New skill name...' ,
'settings.skills.page.title.newSkill' : 'New Skill' ,
'settings.skills.page.subtitle.newSkill' : 'Configure a new skill' ,
'settings.skills.page.subtitle.skillLocation' : '{location} skill' ,
'settings.skills.page.section.basicInformation' : 'Basic Information' ,
'settings.skills.page.section.instructions' : 'Instructions' ,
'settings.skills.page.section.supportingFiles' : 'Supporting Files' ,
'settings.skills.page.field.skillNameLocation' : 'Skill Name & Location' ,
'settings.skills.page.field.skillNameHint' : 'Lowercase, numbers, hyphens' ,
'settings.skills.page.field.skillNamePlaceholder' : 'skill-name' ,
'settings.skills.page.field.descriptionHint' : 'The agent uses this to decide when to load the skill' ,
'settings.skills.page.field.descriptionPlaceholder' : 'Brief description of what this skill does...' ,
'settings.skills.page.field.instructionsPlaceholder' : 'Step-by-step instructions, guidelines, or reference content...' ,
'settings.skills.page.badge.claudeCompatible' : 'Claude-compatible' ,
'settings.skills.page.badge.pending' : 'pending' ,
'settings.skills.page.actions.addFile' : 'Add File' ,
'settings.skills.page.actions.createSkill' : 'Create Skill' ,
'settings.skills.page.actions.createFile' : 'Create File' ,
'settings.skills.page.supportingFiles.empty' : 'No supporting files. Use "Add File" to include reference materials.' ,
'settings.skills.page.loading.details' : 'Loading skill details...' ,
'settings.skills.page.loading.fileContent' : 'Loading file content...' ,
'settings.skills.page.empty.title' : 'Select a skill from the sidebar' ,
'settings.skills.page.empty.description' : 'or create a new one' ,
'settings.skills.page.deleteFileDialog.title' : 'Delete Supporting File' ,
'settings.skills.page.deleteFileDialog.description' : 'Are you sure you want to delete "{path}"?' ,
'settings.skills.page.fileDialog.titleEdit' : 'Edit Supporting File' ,
'settings.skills.page.fileDialog.titleAdd' : 'Add Supporting File' ,
'settings.skills.page.fileDialog.descriptionEdit' : 'Modify the file content' ,
'settings.skills.page.fileDialog.descriptionAdd' : 'Create a new file in the skill directory' ,
'settings.skills.page.fileDialog.field.filePath' : 'File Path' ,
'settings.skills.page.fileDialog.field.filePathPlaceholder' : 'example.md or docs/reference.txt' ,
'settings.skills.page.fileDialog.field.filePathHint' : 'Relative path within the skill directory. Subdirectories will be created automatically.' ,
'settings.skills.page.fileDialog.field.content' : 'Content' ,
'settings.skills.page.fileDialog.field.contentPlaceholder' : 'File content...' ,
'settings.skills.page.toast.skillNameRequired' : 'Skill name is required' ,
'settings.skills.page.toast.invalidSkillName' : 'Skill name must be 1-64 lowercase alphanumeric characters with hyphens, cannot start or end with hyphen' ,
'settings.skills.page.toast.descriptionRequired' : 'Description is required' ,
'settings.skills.page.toast.skillExists' : 'A skill with this name already exists' ,
'settings.skills.page.toast.skillCreated' : 'Skill created successfully' ,
'settings.skills.page.toast.skillUpdated' : 'Skill updated successfully' ,
'settings.skills.page.toast.createSkillFailed' : 'Failed to create skill' ,
'settings.skills.page.toast.updateSkillFailed' : 'Failed to update skill' ,
'settings.skills.page.toast.saveUnexpectedError' : 'An error occurred while saving' ,
'settings.skills.page.toast.loadFileContentFailed' : 'Failed to load file content' ,
'settings.skills.page.toast.fileNameRequired' : 'File name is required' ,
'settings.skills.page.toast.fileExists' : 'A file with this name already exists' ,
'settings.skills.page.toast.noSkillSelected' : 'No skill selected' ,
'settings.skills.page.toast.fileAdded' : 'File "{path}" added' ,
'settings.skills.page.toast.fileCreated' : 'File "{path}" created' ,
'settings.skills.page.toast.fileUpdated' : 'File "{path}" updated' ,
'settings.skills.page.toast.fileRemoved' : 'File "{path}" removed' ,
'settings.skills.page.toast.fileDeleted' : 'File "{path}" deleted' ,
'settings.skills.page.toast.createFileFailed' : 'Failed to create file' ,
'settings.skills.page.toast.updateFileFailed' : 'Failed to update file' ,
'settings.skills.page.toast.deleteFileFailed' : 'Failed to delete file' ,
'settings.skills.location.option.userOpencode.label' : 'User / OpenCode' ,
'settings.skills.location.option.userOpencode.description' : 'Global OpenCode config location' ,
'settings.skills.location.option.projectOpencode.label' : 'Project / OpenCode' ,
'settings.skills.location.option.projectOpencode.description' : 'Current project .opencode location' ,
'settings.skills.location.option.userAgents.label' : 'User / Agents' ,
'settings.skills.location.option.userAgents.description' : 'Global .agents compatibility location' ,
'settings.skills.location.option.projectAgents.label' : 'Project / Agents' ,
'settings.skills.location.option.projectAgents.description' : 'Current project .agents compatibility location' ,
'settings.skills.catalog.shared.field.repository' : 'Repository' ,
'settings.skills.catalog.shared.field.repositoryPlaceholder' : 'owner/repo or git@github.com:owner/repo.git' ,
'settings.skills.catalog.shared.field.optionalSubpath' : 'Optional subpath' ,
'settings.skills.catalog.shared.field.subpathPlaceholder' : 'e.g. skills' ,
'settings.skills.catalog.shared.field.targetLocation' : 'Target location' ,
'settings.skills.catalog.shared.field.project' : 'Project' ,
'settings.skills.catalog.shared.field.noProjects' : 'No projects available' ,
'settings.skills.catalog.shared.field.chooseProjectPlaceholder' : 'Choose project' ,
'settings.skills.catalog.shared.field.searchSkillsPlaceholder' : 'Search skills…' ,
'settings.skills.catalog.shared.toast.repositoryRequired' : 'Repository source is required' ,
'settings.skills.catalog.shared.toast.privateRepoNotSupportedVsCode' : 'Private repositories are not supported in VS Code yet' ,
'settings.skills.catalog.shared.toast.foundSkills' : 'Found {count} skill(s)' ,
'settings.skills.catalog.shared.noDescription' : 'No description provided' ,
'settings.skills.catalog.shared.actions.scan' : 'Scan' ,
'settings.skills.catalog.shared.actions.scanning' : 'Scanning...' ,
'settings.skills.catalog.shared.actions.install' : 'Install' ,
'settings.skills.catalog.shared.actions.installing' : 'Installing...' ,
'settings.skills.catalog.shared.auth.title' : 'Authentication required' ,
'settings.skills.catalog.shared.auth.description' : 'Select a Git identity (SSH key)' ,
'settings.skills.catalog.shared.auth.chooseIdentity' : 'Choose identity' ,
'settings.skills.catalog.shared.auth.footerHint' : 'Configure identities in Settings - Git Identities.' ,
'settings.skills.catalog.shared.auth.footerHintArrow' : 'Configure identities in Settings → Git Identities.' ,
'settings.skills.catalog.conflicts.title' : 'Skills already exist' ,
'settings.skills.catalog.conflicts.description' : 'Some selected skills are already installed in this scope. Choose whether to skip or overwrite them.' ,
'settings.skills.catalog.conflicts.count' : '{count} conflict(s)' ,
'settings.skills.catalog.conflicts.installedIn' : 'Installed in {scope} / {source}' ,
'settings.skills.catalog.conflicts.scope.user' : 'user' ,
'settings.skills.catalog.conflicts.scope.project' : 'project' ,
'settings.skills.catalog.conflicts.source.opencode' : 'opencode' ,
'settings.skills.catalog.conflicts.source.agents' : 'agents' ,
'settings.skills.catalog.conflicts.decision.skip' : 'Skip' ,
'settings.skills.catalog.conflicts.decision.overwrite' : 'Overwrite' ,
'settings.skills.catalog.conflicts.actions.skipAll' : 'Skip all' ,
'settings.skills.catalog.conflicts.actions.overwriteAll' : 'Overwrite all' ,
'settings.skills.catalog.conflicts.actions.continue' : 'Continue' ,
'settings.skills.catalog.installSkill.title' : 'Install skill' ,
'settings.skills.catalog.installSkill.descriptionPrefix' : 'Install' ,
'settings.skills.catalog.installSkill.descriptionSuffix' : 'into one of four target locations.' ,
'settings.skills.catalog.installSkill.field.destination' : 'Destination' ,
'settings.skills.catalog.installSkill.field.project' : 'Project' ,
'settings.skills.catalog.installSkill.field.noProjects' : 'No projects available' ,
'settings.skills.catalog.installSkill.field.chooseProjectPlaceholder' : 'Choose project' ,
'settings.skills.catalog.installSkill.actions.install' : 'Install' ,
'settings.skills.catalog.installSkill.actions.installing' : 'Installing...' ,
'settings.skills.catalog.installSkill.toast.installed' : 'Skill installed successfully' ,
'settings.skills.catalog.installSkill.toast.authRequired' : 'Authentication required' ,
'settings.skills.catalog.installSkill.toast.installFailed' : 'Failed to install skill' ,
'settings.skills.catalog.add.title' : 'Add skills catalog' ,
'settings.skills.catalog.add.descriptionPrefix' : 'Add a Git repository as a new catalog source. OpenChamber will scan it for folders containing' ,
'settings.skills.catalog.add.descriptionSuffix' : '.' ,
'settings.skills.catalog.add.field.catalogName' : 'Catalog name' ,
'settings.skills.catalog.add.field.catalogNamePlaceholder' : 'e.g. Team Skills' ,
'settings.skills.catalog.add.field.repository' : 'Repository' ,
'settings.skills.catalog.add.field.optionalSubpath' : 'Optional subpath' ,
'settings.skills.catalog.add.field.repositoryHint' : 'Public repos work everywhere. Private repos require SSH identity (Desktop/Web only).' ,
'settings.skills.catalog.add.scanResult' : 'Scan result: {count} skill(s) found' ,
'settings.skills.catalog.add.duplicateMessage' : 'This catalog is already added.' ,
'settings.skills.catalog.add.actions.addCatalog' : 'Add catalog' ,
'settings.skills.catalog.add.toast.repositoryRequired' : 'Repository source is required' ,
'settings.skills.catalog.add.toast.authenticationRequiredScan' : 'Authentication required. Select a Git identity and scan again.' ,
'settings.skills.catalog.add.toast.scanFailed' : 'Failed to scan repository' ,
'settings.skills.catalog.add.toast.noSkillsFound' : 'No skills found in this repository' ,
'settings.skills.catalog.add.toast.catalogNameRequired' : 'Catalog name is required' ,
'settings.skills.catalog.add.toast.scanBeforeAdd' : 'Scan the repository before adding this catalog' ,
'settings.skills.catalog.add.toast.catalogAlreadyExists' : 'This catalog already exists' ,
'settings.skills.catalog.add.toast.catalogAdded' : 'Catalog added' ,
'settings.skills.catalog.add.toast.saveFailed' : 'Failed to save catalog' ,
'settings.skills.catalog.installFromRepo.title' : 'Install from Git repository' ,
'settings.skills.catalog.installFromRepo.descriptionPrefix' : 'Scan a repository for folders containing' ,
'settings.skills.catalog.installFromRepo.descriptionSuffix' : ', then install selected skills.' ,
'settings.skills.catalog.installFromRepo.repositoryHintPrefix' : 'For GitHub shorthand, you can add a subpath like' ,
'settings.skills.catalog.installFromRepo.authDescription' : 'Select a Git identity (SSH key) that can access this repository.' ,
'settings.skills.catalog.installFromRepo.empty.noScanResultsTitle' : 'No scan results yet' ,
'settings.skills.catalog.installFromRepo.empty.noScanResultsDescription' : 'Scan a repository to discover skills' ,
'settings.skills.catalog.installFromRepo.actions.selectAll' : 'Select all' ,
'settings.skills.catalog.installFromRepo.actions.selectNone' : 'Select none' ,
'settings.skills.catalog.installFromRepo.actions.installSelected' : 'Install selected' ,
'settings.skills.catalog.installFromRepo.badge.installed' : 'installed ({scope}/{source})' ,
'settings.skills.catalog.installFromRepo.selectedCount' : 'Selected: {selected} / {total}' ,
'settings.skills.catalog.installFromRepo.toast.authenticationRequiredScan' : 'Authentication required. Select a Git identity and try scanning again.' ,
'settings.skills.catalog.installFromRepo.toast.authenticationRequiredInstall' : 'Authentication required. Select a Git identity and try installing again.' ,
'settings.skills.catalog.installFromRepo.toast.scanFailed' : 'Failed to scan repository' ,
'settings.skills.catalog.installFromRepo.toast.selectAtLeastOne' : 'Select at least one skill to install' ,
'settings.skills.catalog.installFromRepo.toast.installedCount' : 'Installed {count} skill(s)' ,
'settings.skills.catalog.installFromRepo.toast.installCompleted' : 'Installation completed' ,
'settings.skills.catalog.installFromRepo.toast.installFailed' : 'Failed to install skills' ,
'settings.skills.catalog.page.mode.manual' : 'Manual' ,
'settings.skills.catalog.page.mode.external' : 'External' ,
'settings.skills.catalog.page.title' : 'Skills Catalog' ,
'settings.skills.catalog.page.section.sourceRepository' : 'Source Repository' ,
'settings.skills.catalog.page.field.selectSourcePlaceholder' : 'Select source' ,
'settings.skills.catalog.page.actions.refreshTitle' : 'Refresh' ,
'settings.skills.catalog.page.actions.removeCatalogTitle' : 'Remove Catalog' ,
'settings.skills.catalog.page.actions.addCatalog' : 'Add Catalog' ,
'settings.skills.catalog.page.actions.removeCatalog' : 'Remove Catalog' ,
'settings.skills.catalog.page.actions.loadMoreSkills' : 'Load More Skills' ,
'settings.skills.catalog.page.loading.catalog' : 'Loading...' ,
'settings.skills.catalog.page.loading.skills' : 'Loading skills...' ,
'settings.skills.catalog.page.loading.more' : 'Loading...' ,
'settings.skills.catalog.page.foundCount' : '{count} skill(s) found' ,
'settings.skills.catalog.page.error.catalogTitle' : 'Catalog error' ,
'settings.skills.catalog.page.empty.noSkillsTitle' : 'No skills found' ,
'settings.skills.catalog.page.empty.noSkillsDescription' : 'Try a different search or refresh the catalog' ,
'settings.skills.catalog.page.badge.installed' : 'installed ({scope})' ,
'settings.skills.catalog.page.badge.notInstallable' : 'not installable' ,
'settings.skills.catalog.page.badge.unknown' : 'unknown' ,
'settings.skills.catalog.page.byOwnerPrefix' : 'by' ,
'settings.skills.catalog.page.removeDialog.title' : 'Remove Catalog' ,
'settings.skills.catalog.page.removeDialog.description' : 'Are you sure you want to remove this catalog?' ,
'settings.openchamber.passkeys.title' : 'Passkeys' ,
'settings.openchamber.passkeys.field.currentDevice' : 'Current device' ,
'settings.openchamber.passkeys.actions.add' : 'Add passkey' ,
'settings.openchamber.passkeys.actions.cancelSetup' : 'Cancel passkey setup' ,
'settings.openchamber.passkeys.actions.signOutEverywhere' : 'Sign out everywhere' ,
'settings.openchamber.passkeys.actions.signingOut' : 'Signing out…' ,
'settings.openchamber.passkeys.actions.removing' : 'Removing…' ,
'settings.openchamber.passkeys.state.uiPasswordRequired' : 'Passkeys are available only when the UI password lock is enabled.' ,
'settings.openchamber.passkeys.state.loading' : 'Loading passkeys…' ,
'settings.openchamber.passkeys.state.noneSaved' : 'No passkeys saved for this host yet.' ,
'settings.openchamber.passkeys.item.lastUsed' : 'Last used {time}' ,
'settings.openchamber.passkeys.item.added' : 'Added {time}' ,
'settings.openchamber.passkeys.time.neverUsed' : 'Never used' ,
'settings.openchamber.passkeys.toast.loadFailed' : 'Could not load passkeys.' ,
'settings.openchamber.passkeys.toast.enableUiPasswordFirst' : 'Enable the UI password lock before adding passkeys.' ,
'settings.openchamber.passkeys.toast.added' : 'Passkey added' ,
'settings.openchamber.passkeys.toast.setupCanceled' : 'Passkey setup canceled' ,
'settings.openchamber.passkeys.toast.addFailed' : 'Could not add passkey.' ,
'settings.openchamber.passkeys.toast.removed' : 'Passkey removed' ,
'settings.openchamber.passkeys.toast.removeFailed' : 'Could not remove passkey.' ,
'settings.openchamber.passkeys.toast.clearAuthFailed' : 'Could not clear saved authentication.' ,
'settings.openchamber.sessionRetention.title' : 'Session Retention' ,
'settings.openchamber.sessionRetention.tooltip' : 'Automatically archive or delete inactive sessions based on last activity. Keeps the 5 most recent sessions.' ,
'settings.openchamber.sessionRetention.field.enableAutoCleanupAria' : 'Enable auto-cleanup' ,
'settings.openchamber.sessionRetention.field.enableAutoCleanup' : 'Enable Auto-Cleanup' ,
'settings.openchamber.sessionRetention.field.retentionPeriod' : 'Retention Period' ,
'settings.openchamber.sessionRetention.field.retentionPeriodAria' : 'Retention period in days' ,
'settings.openchamber.sessionRetention.field.days' : 'days' ,
'settings.openchamber.sessionRetention.field.whenSessionsExpire' : 'When sessions expire' ,
'settings.openchamber.sessionRetention.actions.resetRetentionAria' : 'Reset retention period' ,
'settings.openchamber.sessionRetention.actions.runCleanupNow' : 'Run cleanup now' ,
'settings.openchamber.sessionRetention.actions.cleaningUp' : 'Cleaning up...' ,
'settings.openchamber.sessionRetention.action.archive' : 'Archive' ,
'settings.openchamber.sessionRetention.action.delete' : 'Delete' ,
'settings.openchamber.sessionRetention.manualCleanup.title' : 'Manual Cleanup' ,
'settings.openchamber.sessionRetention.manualCleanup.eligibleArchiveNow' : 'Eligible for archiving right now: {count}' ,
'settings.openchamber.sessionRetention.manualCleanup.eligibleDeleteNow' : 'Eligible for deletion right now: {count}' ,
'settings.openchamber.sessionRetention.toast.noneEligibleArchive' : 'No sessions eligible for archiving' ,
'settings.openchamber.sessionRetention.toast.noneEligibleDelete' : 'No sessions eligible for deletion' ,
'settings.openchamber.sessionRetention.toast.archivedCount' : 'Archived {count} session(s)' ,
'settings.openchamber.sessionRetention.toast.deletedCount' : 'Deleted {count} session(s)' ,
'settings.openchamber.sessionRetention.toast.failedArchiveCount' : 'Failed to archive {count} session(s)' ,
'settings.openchamber.sessionRetention.toast.failedDeleteCount' : 'Failed to delete {count} session(s)' ,
'settings.openchamber.desktopNetwork.title' : 'Desktop Network Access' ,
'settings.openchamber.desktopNetwork.field.allowLanAccessAria' : 'Allow LAN access to desktop sidecar' ,
'settings.openchamber.desktopNetwork.field.allowLanAccess' : 'Let other devices on your local network open this app' ,
'settings.openchamber.desktopNetwork.field.allowLanAccessDescription' : 'Restarts the app so phones, tablets, and other computers on your Wi-Fi can open it.' ,
'settings.openchamber.desktopNetwork.field.warning' : 'Warning: while enabled, the app is reachable by anyone on the same local network.' ,
'settings.openchamber.desktopNetwork.hint.openAfterRestart' : 'After restart, open from another device: ' ,
'settings.openchamber.desktopNetwork.hint.openNow' : 'Open from another device: ' ,
'settings.openchamber.desktopNetwork.actions.saveAndRestart' : 'Save + Restart' ,
'settings.openchamber.desktopNetwork.error.loadFailed' : 'Failed to load desktop settings' ,
'settings.openchamber.desktopNetwork.error.saveFailed' : 'Failed to save desktop settings' ,
'settings.openchamber.desktopNetwork.error.savedRestartFailed' : 'Saved, but failed to restart app' ,
'settings.openchamber.opencodeCli.title' : 'OpenCode CLI' ,
'settings.openchamber.opencodeCli.tooltipPrefix' : 'Optional absolute path to the' ,
'settings.openchamber.opencodeCli.tooltipSuffix' : 'binary.' ,
'settings.openchamber.opencodeCli.field.binaryPath' : 'OpenCode Binary Path' ,
'settings.openchamber.opencodeCli.field.binaryPathPlaceholder' : '/Users/you/.bun/bin/opencode' ,
'settings.openchamber.opencodeCli.actions.browseAria' : 'Browse for OpenCode binary path' ,
'settings.openchamber.opencodeCli.actions.browse' : 'Browse' ,
'settings.openchamber.opencodeCli.actions.saveAndReload' : 'Save + Reload' ,
'settings.openchamber.opencodeCli.actions.restartingOpenCode' : 'Restarting OpenCode…' ,
'settings.openchamber.opencodeCli.dialog.selectBinaryTitle' : 'Select opencode binary' ,
'settings.openchamber.opencodeCli.tipPrefix' : 'Tip: you can also use' ,
'settings.openchamber.opencodeCli.tipMiddle' : 'env var, but this setting persists in' ,
'settings.mcp.sidebar.title' : 'MCP Servers' ,
'settings.mcp.sidebar.total' : 'Total {count}' ,
'settings.mcp.sidebar.actions.refreshStatusAria' : 'Refresh MCP status' ,
'settings.mcp.sidebar.actions.refreshStatusTitle' : 'Refresh MCP status' ,
'settings.mcp.sidebar.actions.addServerTitle' : 'Add MCP server' ,
'settings.mcp.sidebar.actions.deleting' : 'Deleting…' ,
'settings.mcp.sidebar.empty.title' : 'No MCP servers configured' ,
'settings.mcp.sidebar.empty.description' : 'Use the + button above to add one' ,
'settings.mcp.sidebar.group.projectServers' : 'Project Servers' ,
'settings.mcp.sidebar.group.userServers' : 'User Servers' ,
'settings.mcp.sidebar.serverType.localTitle' : 'Local server' ,
'settings.mcp.sidebar.serverType.remoteTitle' : 'Remote server' ,
'settings.mcp.sidebar.deleteDialog.title' : 'Delete MCP Server' ,
'settings.mcp.sidebar.deleteDialog.descriptionPrefix' : 'Are you sure you want to delete "{name}"? This will remove it from' ,
'settings.mcp.sidebar.toast.deleteFailed' : 'Failed to delete MCP server' ,
'settings.mcp.sidebar.toast.serverDeleted' : 'MCP server "{name}" deleted' ,
'settings.mcp.sidebar.toast.refreshListIfStale' : 'Refresh the MCP list if the UI looks stale.' ,
'settings.openchamber.keyboardShortcuts.title' : 'Keyboard Shortcuts' ,
'settings.openchamber.keyboardShortcuts.actions.resetAll' : 'Reset All' ,
'settings.openchamber.keyboardShortcuts.actions.overwrite' : 'Overwrite' ,
'settings.openchamber.keyboardShortcuts.tooltip' : 'Capture a new key combo, save it, and bindings will update immediately.' ,
'settings.openchamber.keyboardShortcuts.overwritePrompt' : 'This combo is already used by another shortcut. Overwrite and clear that other mapping?' ,
'settings.openchamber.keyboardShortcuts.field.pressKeys' : 'Press keys...' ,
'settings.openchamber.keyboardShortcuts.error.captureFirst' : 'Capture a shortcut first.' ,
'settings.openchamber.keyboardShortcuts.warning.riskyBrowserShortcut' : 'This shortcut can conflict with browser defaults. It is still saved.' ,
'settings.openchamber.keyboardShortcuts.action.open_go_to_line.label' : 'Go to line (files editor)' ,
'settings.openchamber.keyboardShortcuts.action.open_command_palette.label' : 'Open command palette' ,
'settings.openchamber.keyboardShortcuts.action.focus_input.label' : 'Focus input' ,
'settings.openchamber.keyboardShortcuts.action.open_settings.label' : 'Open settings' ,
'settings.openchamber.keyboardShortcuts.action.toggle_terminal.label' : 'Toggle terminal dock' ,
'settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label' : 'Toggle terminal expanded' ,
'settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label' : 'Toggle sidebar' ,
'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label' : 'Toggle right sidebar' ,
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label' : 'Open right sidebar Git tab' ,
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label' : 'Open right sidebar Files tab' ,
'settings.openchamber.keyboardShortcuts.action.cycle_right_sidebar_tab.label' : 'Cycle right sidebar tab' ,
'settings.openchamber.keyboardShortcuts.action.new_chat.label' : 'New session' ,
'settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label' : 'New worktree draft' ,
'settings.openchamber.keyboardShortcuts.action.open_help.label' : 'Open keyboard shortcuts' ,
'settings.openchamber.keyboardShortcuts.action.toggle_context_plan.label' : 'Toggle plan context panel' ,
'settings.openchamber.keyboardShortcuts.action.toggle_services_menu.label' : 'Toggle services menu' ,
'settings.openchamber.keyboardShortcuts.action.cycle_services_tab.label' : 'Cycle services tab' ,
'settings.openchamber.keyboardShortcuts.action.cycle_theme.label' : 'Cycle theme' ,
'settings.openchamber.keyboardShortcuts.action.cycle_favorite_model_forward.label' : 'Cycle favorite model forward' ,
'settings.openchamber.keyboardShortcuts.action.cycle_favorite_model_backward.label' : 'Cycle favorite model backward' ,
'settings.openchamber.keyboardShortcuts.action.expand_input.label' : 'Expand input' ,
'settings.projects.sidebar.total' : 'Total {count}' ,
'settings.projects.sidebar.actions.addProject' : 'Add project' ,
'settings.projects.page.empty.noProjects' : 'No projects available.' ,
'settings.projects.page.title.default' : 'Project Settings' ,
'settings.projects.page.section.worktree' : 'Worktree' ,
'settings.projects.page.field.projectName' : 'Project Name' ,
'settings.projects.page.field.projectNamePlaceholder' : 'Project name' ,
'settings.projects.page.field.accentColor' : 'Accent Color' ,
'settings.projects.page.field.projectIcon' : 'Project Icon' ,
'settings.projects.page.field.projectIconBackgroundAria' : 'Project icon background color' ,
'settings.projects.page.field.clearIconBackgroundAria' : 'Clear icon background' ,
'settings.projects.page.field.clearBackground' : 'Clear background' ,
'settings.projects.page.field.none' : 'None' ,
'settings.projects.page.field.preview' : 'Preview' ,
'settings.projects.page.actions.uploadIcon' : 'Upload Icon' ,
'settings.projects.page.actions.uploading' : 'Uploading...' ,
'settings.projects.page.actions.discoverFavicon' : 'Discover Favicon' ,
'settings.projects.page.actions.discovering' : 'Discovering...' ,
'settings.projects.page.actions.removeProjectIcon' : 'Remove Project Icon' ,
'settings.projects.page.actions.removing' : 'Removing...' ,
'settings.projects.page.actions.undoRemove' : 'Undo Remove' ,
'settings.projects.page.toast.uploadIconFailed' : 'Failed to upload project icon' ,
'settings.projects.page.toast.iconUpdated' : 'Project icon updated' ,
'settings.projects.page.toast.removeIconFailed' : 'Failed to remove project icon' ,
'settings.projects.page.toast.iconRemoved' : 'Project icon removed' ,
'settings.projects.page.toast.discoverIconFailed' : 'Failed to discover project icon' ,
'settings.projects.page.toast.customIconAlreadySet' : 'Custom icon already set for this project' ,
'settings.projects.page.toast.iconDiscovered' : 'Project icon discovered' ,
'settings.usage.sidebar.title' : 'Usage' ,
'settings.usage.sidebar.total' : 'Total {count}' ,
'settings.usage.sidebar.actions.toggleAutoRefreshAria' : 'Toggle auto refresh' ,
'settings.usage.sidebar.actions.refreshAria' : 'Refresh usage' ,
'settings.usage.sidebar.actions.refreshTitle' : 'Refresh usage' ,
'settings.usage.sidebar.tooltip.autoRefresh' : 'Auto-refresh usage data at set interval' ,
'settings.usage.sidebar.field.intervalPlaceholder' : 'Interval' ,
'settings.usage.sidebar.field.display' : 'Display' ,
'settings.usage.sidebar.field.displayModePlaceholder' : 'Display mode' ,
'settings.usage.sidebar.field.displayModeUsage' : 'Usage' ,
'settings.usage.sidebar.field.displayModeRemaining' : 'Quota remaining' ,
'settings.usage.sidebar.status.notSet' : 'Not set' ,
'settings.usage.page.empty.selectProvider' : 'Select a provider to view usage details.' ,
'settings.usage.page.header.providerUsage' : '{provider} Usage' ,
'settings.usage.page.header.refreshing' : 'Refreshing usage...' ,
'settings.usage.page.header.lastUpdated' : 'Last updated: {time}' ,
'settings.usage.page.options.showInHeaderAria' : 'Show in header menu' ,
'settings.usage.page.options.showInHeader' : 'Show in Header Menu' ,
'settings.usage.page.options.showInHeaderTooltip' : 'When enabled, this provider\'s usage will be visible in the quick access dropdown menu in the app header.' ,
'settings.usage.page.state.noData' : 'No usage data available yet.' ,
'settings.usage.page.state.refreshFailedTitle' : 'Failed to refresh usage data' ,
'settings.usage.page.state.providerNotConfiguredTitle' : 'Provider not configured' ,
'settings.usage.page.state.providerNotConfiguredDescription' : 'Add credentials in the Providers tab to enable usage tracking.' ,
'settings.usage.page.section.modelQuotas' : 'Model Quotas' ,
'settings.usage.page.section.otherModels' : 'Other Models' ,
'settings.usage.page.state.noQuotaWindowsTitle' : 'No quota windows reported' ,
'settings.usage.page.state.noQuotaWindowsDescription' : 'This provider does not currently report any rate limits or usage quotas.' ,
'settings.usage.pace.status.onTrack' : 'On track' ,
'settings.usage.pace.status.slightlyFast' : 'Slightly fast' ,
'settings.usage.pace.status.tooFast' : 'Too fast' ,
'settings.usage.pace.status.usedUp' : 'Used up' ,
'settings.usage.pace.predictionTooltip' : 'Predicted usage at window end based on current pace: {prediction}' ,
'settings.usage.pace.wait' : 'Wait {duration}' ,
'settings.usage.pace.prediction' : 'Pred: {prediction}' ,
'settings.usage.pace.rate' : 'Pace: {rate}' ,
'settings.usage.pace.waitSeparator' : ' · Wait ' ,
'settings.usage.pace.predictionLabel' : 'Pred: ' ,
'settings.remoteInstances.page.title' : 'Remote Instance' ,
'settings.remoteInstances.page.description' : 'Configure SSH connection, remote server, and forwarding settings.' ,
'settings.remoteInstances.page.empty.selectInstance' : 'Select an instance to view and edit its settings.' ,
'settings.remoteInstances.page.empty.noExtraForwards' : 'No extra port forwards configured.' ,
'settings.remoteInstances.page.section.actions' : 'Actions' ,
'settings.remoteInstances.page.section.actionsDescription' : 'Connect, reconnect, inspect logs, or remove this instance.' ,
'settings.remoteInstances.page.section.remoteServer' : 'Remote Server' ,
'settings.remoteInstances.page.section.remoteServerDescription' : 'How OpenChamber is managed and started on the remote host.' ,
'settings.remoteInstances.page.section.mainTunnel' : 'Main Tunnel' ,
'settings.remoteInstances.page.section.mainTunnelDescription' : 'Primary local endpoint for this remote instance.' ,
'settings.remoteInstances.page.section.authentication' : 'Authentication' ,
'settings.remoteInstances.page.section.authenticationDescription' : 'Optional credentials for SSH and the remote OpenChamber UI.' ,
'settings.remoteInstances.page.section.portForwards' : 'Port Forwards' ,
'settings.remoteInstances.page.section.portForwardsDescription' : 'Additional SSH forwards beyond the main tunnel.' ,
'settings.remoteInstances.page.field.sshCommand' : 'SSH command' ,
'settings.remoteInstances.page.field.sshCommandPlaceholder' : 'ssh user@host' ,
'settings.remoteInstances.page.field.nickname' : 'Nickname' ,
'settings.remoteInstances.page.field.nicknamePlaceholder' : 'My remote host' ,
'settings.remoteInstances.page.field.connectionTimeoutSeconds' : 'Connection timeout (seconds)' ,
'settings.remoteInstances.page.field.installMethod' : 'Install method' ,
'settings.remoteInstances.page.field.installMethodHint' : 'How OpenChamber is installed when running in managed mode.' ,
'settings.remoteInstances.page.field.selectInstallMethodPlaceholder' : 'Select install method' ,
'settings.remoteInstances.page.field.installMethodDownloadRelease' : 'Download release' ,
'settings.remoteInstances.page.field.installMethodUploadBundle' : 'Upload bundle' ,
'settings.remoteInstances.page.field.selectBindHostPlaceholder' : 'Select bind host' ,
'settings.remoteInstances.page.field.sshPasswordOptional' : 'SSH password (optional)' ,
'settings.remoteInstances.page.field.sshPasswordPlaceholder' : 'Enter SSH password' ,
'settings.remoteInstances.page.field.uiPasswordOptional' : 'UI password (optional)' ,
'settings.remoteInstances.page.field.uiPasswordPlaceholder' : 'Enter UI password' ,
'settings.remoteInstances.page.field.forwardTypeHint' : 'Choose local (-L), remote (-R), or dynamic (-D) forwarding.' ,
'settings.remoteInstances.page.field.typePlaceholder' : 'Type' ,
'settings.remoteInstances.page.forwardType.local' : 'Local (-L)' ,
'settings.remoteInstances.page.forwardType.remote' : 'Remote (-R)' ,
'settings.remoteInstances.page.forwardType.dynamic' : 'Dynamic (-D)' ,
'settings.remoteInstances.page.forwardTypeDescription.local' : 'Forward local traffic to a remote destination.' ,
'settings.remoteInstances.page.forwardTypeDescription.remote' : 'Expose a remote endpoint and forward it back to your local machine.' ,
'settings.remoteInstances.page.forwardTypeDescription.dynamic' : 'Expose a local SOCKS5 proxy over SSH.' ,
'settings.remoteInstances.page.actions.create' : 'Create' ,
'settings.remoteInstances.page.actions.cancel' : 'Cancel' ,
'settings.remoteInstances.page.actions.connecting' : 'Connecting...' ,
'settings.remoteInstances.page.actions.reconnecting' : 'Reconnecting...' ,
'settings.remoteInstances.page.actions.reconnectNow' : 'Reconnect now' ,
'settings.remoteInstances.page.actions.logs' : 'SSH Logs' ,
'settings.remoteInstances.page.actions.pickRandomPort' : 'Pick random port' ,
'settings.remoteInstances.page.actions.enableForwardAria' : 'Enable forward' ,
'settings.remoteInstances.page.actions.openLocal' : 'Open local' ,
'settings.remoteInstances.page.actions.addForward' : 'Add forward' ,
'settings.remoteInstances.page.import.sectionTitle' : 'Import from SSH config' ,
'settings.remoteInstances.page.import.loading' : 'Loading SSH hosts...' ,
'settings.remoteInstances.page.import.noneFound' : 'No SSH hosts found.' ,
'settings.remoteInstances.page.import.noneAvailable' : 'No SSH hosts available to import.' ,
'settings.remoteInstances.page.import.patternSuffix' : '(pattern)' ,
'settings.remoteInstances.page.status.currentLocalUrl' : 'Current local URL:' ,
'settings.remoteInstances.page.status.reconnectStale' : 'Reconnection looks stuck. You can retry now.' ,
'settings.remoteInstances.page.logsDialog.title' : 'SSH Logs' ,
'settings.remoteInstances.page.logsDialog.loading' : 'Loading logs...' ,
'settings.remoteInstances.page.logsDialog.empty' : 'No SSH logs yet.' ,
'settings.remoteInstances.page.patternDialog.title' : 'Create from wildcard pattern' ,
'settings.remoteInstances.page.patternDialog.destinationPlaceholder' : 'user@host' ,
'settings.remoteInstances.page.phase.resolvingConfiguration' : 'Resolving configuration' ,
'settings.remoteInstances.page.phase.checkingAuth' : 'Checking authentication' ,
'settings.remoteInstances.page.phase.establishingSsh' : 'Establishing SSH connection' ,
'settings.remoteInstances.page.phase.probingRemote' : 'Probing remote host' ,
'settings.remoteInstances.page.phase.installingOpenChamber' : 'Installing OpenChamber' ,
'settings.remoteInstances.page.phase.updatingOpenChamber' : 'Updating OpenChamber' ,
'settings.remoteInstances.page.phase.detectingServer' : 'Detecting server' ,
'settings.remoteInstances.page.phase.startingServer' : 'Starting server' ,
'settings.remoteInstances.page.phase.forwardingPorts' : 'Forwarding ports' ,
'settings.remoteInstances.page.phase.reconnecting' : 'Reconnecting' ,
'settings.remoteInstances.page.confirm.storeSshPasswordPlaintext' : 'Store SSH password in plaintext on disk?' ,
'settings.remoteInstances.page.confirm.storeUiPasswordPlaintext' : 'Store UI password in plaintext on disk?' ,
'settings.remoteInstances.page.confirm.removeInstance' : 'Remove this remote instance?' ,
'settings.remoteInstances.page.toast.sshCommandRequired' : 'SSH command is required' ,
'settings.remoteInstances.page.toast.saveFailed' : 'Failed to save instance' ,
'settings.remoteInstances.page.toast.instanceSaved' : 'Instance saved' ,
'settings.remoteInstances.page.toast.instanceCreated' : 'Instance created' ,
'settings.remoteInstances.page.toast.destinationRequired' : 'Destination is required' ,
'settings.remoteInstances.page.toast.noLogsToCopy' : 'No logs to copy' ,
'settings.remoteInstances.page.toast.logsCopied' : 'Logs copied' ,
'settings.remoteInstances.page.toast.logsCleared' : 'Logs cleared' ,
'settings.remoteInstances.page.toast.clearLogsFailed' : 'Failed to clear logs' ,
'settings.remoteInstances.page.toast.instanceUrlUnavailable' : 'Instance URL is unavailable' ,
'settings.remoteInstances.page.toast.connectFailed' : 'Failed to connect instance' ,
'settings.remoteInstances.page.toast.cancelConnectionFailed' : 'Failed to cancel connection' ,
'settings.remoteInstances.page.toast.disconnectFailed' : 'Failed to disconnect instance' ,
'settings.remoteInstances.page.toast.retryFailed' : 'Failed to retry connection' ,
'settings.remoteInstances.page.toast.instanceRemoved' : 'Instance removed' ,
'settings.remoteInstances.page.toast.removeInstanceFailed' : 'Failed to remove instance' ,
'settings.openchamber.worktrees.state.selectProject' : 'Select a project to manage worktrees.' ,
'settings.openchamber.worktrees.state.gitOnly' : 'Worktree settings are only available for Git repositories.' ,
'settings.openchamber.worktrees.setup.title' : 'Setup commands' ,
'settings.openchamber.worktrees.setup.tooltipPrefix' : 'Run automatically inside the new worktree directory when a worktree is created. Use' ,
'settings.openchamber.worktrees.setup.tooltipSuffix' : 'for the project root.' ,
'settings.openchamber.worktrees.setup.loading' : 'Loading...' ,
'settings.openchamber.worktrees.setup.commandPlaceholder' : 'e.g., bun install' ,
'settings.openchamber.worktrees.setup.removeCommandAria' : 'Remove command' ,
'settings.openchamber.worktrees.setup.addCommand' : 'Add command' ,
'settings.openchamber.worktrees.list.title' : 'Existing worktrees' ,
'settings.openchamber.worktrees.list.tooltip' : 'Worktrees live outside the repo (OpenCode-managed). Deleting a worktree also removes linked sessions.' ,
'settings.openchamber.worktrees.list.loading' : 'Loading worktrees...' ,
'settings.openchamber.worktrees.list.empty' : 'No worktrees found for this project' ,
'settings.openchamber.worktrees.list.detachedHead' : 'Detached HEAD' ,
'settings.openchamber.worktrees.list.deleteWorktreeAria' : 'Delete worktree {name}' ,
'settings.agents.modelSelector.title' : 'Select model' ,
'settings.agents.modelSelector.searchPlaceholder' : 'Search models' ,
'settings.agents.modelSelector.selectPlaceholder' : 'Select model...' ,
'settings.agents.modelSelector.notSelected' : 'Not selected' ,
'settings.agents.modelSelector.noModelOptional' : 'No model (optional)' ,
'settings.agents.modelSelector.section.favorites' : 'Favorites' ,
'settings.agents.modelSelector.section.recents' : 'Recents' ,
'settings.agents.modelSelector.section.recent' : 'Recent' ,
'settings.agents.modelSelector.badge.current' : 'Current' ,
'settings.agents.modelSelector.actions.favorite' : 'Favorite' ,
'settings.agents.modelSelector.actions.unfavorite' : 'Unfavorite' ,
'settings.agents.modelSelector.actions.addToFavorites' : 'Add to favorites' ,
'settings.agents.modelSelector.actions.removeFromFavorites' : 'Remove from favorites' ,
'settings.agents.modelSelector.state.noModelsFound' : 'No models found' ,
'settings.agents.modelSelector.keyboardHints' : '↑↓ navigate • Enter select • Esc close' ,
'settings.providers.sidebar.title' : 'Providers' ,
'settings.providers.sidebar.total' : 'Total {count}' ,
'settings.providers.sidebar.actions.connectProviderAria' : 'Connect provider' ,
'settings.providers.sidebar.actions.connectProviderTitle' : 'Connect provider' ,
'settings.providers.sidebar.empty.title' : 'No providers found' ,
'settings.providers.sidebar.empty.description' : 'Check your OpenCode configuration' ,
'settings.providers.sidebar.section.userProviders' : 'User Providers' ,
'settings.providers.sidebar.section.projectProviders' : 'Project Providers' ,
'settings.providers.page.state.loading' : 'Loading...' ,
'settings.providers.page.state.unableToLoadProviderList' : 'Unable to load provider list' ,
'settings.providers.page.empty.noProvidersDetected' : 'No providers detected' ,
'settings.providers.page.empty.checkOpenCodeConfiguration' : 'Check your OpenCode configuration' ,
'settings.providers.page.empty.selectProviderFromSidebar' : 'Select a provider from the sidebar' ,
'settings.providers.page.empty.reviewDetailsAndConfigureAuth' : 'Review details and configure auth' ,
'settings.providers.page.connect.title' : 'Connect Provider' ,
'settings.providers.page.connect.selectProviderTitle' : 'Select Provider' ,
'settings.providers.page.connect.providerField' : 'Provider' ,
'settings.providers.page.connect.selectProviderPlaceholder' : 'Select provider' ,
'settings.providers.page.connect.searchProvidersPlaceholder' : 'Search...' ,
'settings.providers.page.connect.noProvidersFound' : 'No providers found' ,
'settings.providers.page.connect.allProvidersConnected' : 'All providers connected.' ,
'settings.providers.page.auth.title' : 'Authentication' ,
'settings.providers.page.auth.loadingMethods' : 'Loading authentication methods...' ,
'settings.providers.page.auth.apiKeyLabel' : 'API Key' ,
'settings.providers.page.auth.apiKeyTooltip' : 'Keys are sent directly to OpenCode and never stored by OpenChamber.' ,
'settings.providers.page.auth.apiKeyPlaceholder' : 'sk-...' ,
'settings.providers.page.auth.oauthMethodFallback' : 'OAuth method {index}' ,
'settings.providers.page.auth.pasteAuthorizationCodePlaceholder' : 'Paste authorization code' ,
'settings.providers.page.auth.connected' : 'Connected' ,
'settings.providers.page.auth.useReconnectHint' : '· Use Reconnect to update credentials' ,
'settings.providers.page.connectionDetails.title' : 'Connection Details' ,
'settings.providers.page.connectionDetails.configuredIn' : 'Configured in:' ,
'settings.providers.page.connectionDetails.noActiveSource' : 'No active configuration source' ,
'settings.providers.page.connectionDetails.source.authCredentials' : 'auth credentials' ,
'settings.providers.page.connectionDetails.source.userConfig' : 'user config' ,
'settings.providers.page.connectionDetails.source.projectConfig' : 'project config' ,
'settings.providers.page.connectionDetails.source.customConfig' : 'custom config' ,
'settings.providers.page.models.title' : 'Available Models' ,
'settings.providers.page.models.filterPlaceholder' : 'Filter models...' ,
'settings.providers.page.models.noModelsMatchFilter' : 'No models match this filter.' ,
'settings.providers.page.models.capability.toolCalling' : 'Tool calling' ,
'settings.providers.page.models.capability.reasoning' : 'Reasoning' ,
'settings.providers.page.models.capability.imageInput' : 'Image input' ,
'settings.providers.page.models.tokenBadge.context' : 'ctx' ,
'settings.providers.page.models.tokenBadge.output' : 'out' ,
'settings.providers.page.models.actions.hideModelFromSelectors' : 'Hide model from selectors' ,
'settings.providers.page.models.actions.showModelInSelectors' : 'Show model in selectors' ,
'settings.providers.page.models.actions.hideModel' : 'Hide model' ,
'settings.providers.page.models.actions.showModel' : 'Show model' ,
'settings.providers.page.actions.saving' : 'Saving...' ,
'settings.providers.page.actions.saveKey' : 'Save Key' ,
'settings.providers.page.actions.connect' : 'Connect' ,
'settings.providers.page.actions.copyCode' : 'Copy Code' ,
'settings.providers.page.actions.open' : 'Open' ,
'settings.providers.page.actions.copy' : 'Copy' ,
'settings.providers.page.actions.complete' : 'Complete' ,
'settings.providers.page.actions.hide' : 'Hide' ,
'settings.providers.page.actions.reconnect' : 'Reconnect' ,
'settings.providers.page.actions.disconnecting' : 'Disconnecting...' ,
'settings.providers.page.actions.disconnect' : 'Disconnect' ,
'settings.providers.page.actions.hideAll' : 'Hide all' ,
'settings.providers.page.actions.showAll' : 'Show all' ,
'settings.providers.page.toast.authMethodsLoadFailed' : 'Failed to load provider authentication methods' ,
'settings.providers.page.toast.providerSourcesLoadFailed' : 'Failed to load provider sources' ,
'settings.providers.page.toast.apiKeyRequired' : 'API key is required' ,
'settings.providers.page.toast.apiKeySaveFailed' : 'Failed to save API key' ,
'settings.providers.page.toast.apiKeySaved' : 'API key saved' ,
'settings.providers.page.toast.oauthStartFailed' : 'Failed to start OAuth flow' ,
'settings.providers.page.toast.oauthDetailsMissing' : 'No OAuth details returned' ,
'settings.providers.page.toast.completeOAuthInBrowser' : 'Complete the OAuth flow in your browser' ,
'settings.providers.page.toast.oauthCompleteFailed' : 'Failed to complete OAuth flow' ,
'settings.providers.page.toast.oauthCompleted' : 'OAuth connection completed' ,
'settings.providers.page.toast.oauthLinkCopied' : 'OAuth link copied' ,
'settings.providers.page.toast.oauthLinkCopyFailed' : 'Failed to copy OAuth link' ,
'settings.providers.page.toast.deviceCodeCopied' : 'Device code copied' ,
'settings.providers.page.toast.deviceCodeCopyFailed' : 'Failed to copy device code' ,
'settings.providers.page.toast.providerDisconnected' : 'Provider disconnected' ,
'settings.providers.page.toast.providerDisconnectFailed' : 'Failed to disconnect provider' ,
'settings.mcp.page.empty.selectServer' : 'Select an MCP server from the sidebar' ,
'settings.mcp.page.empty.addNewOne' : 'or add a new one' ,
'settings.mcp.page.header.newServer' : 'New MCP Server' ,
'settings.mcp.page.header.configureNewServer' : 'Configure a new MCP server' ,
'settings.mcp.page.header.transport' : '{type} transport' ,
'settings.mcp.page.transport.local' : 'Local · stdio' ,
'settings.mcp.page.transport.remote' : 'Remote · SSE' ,
'settings.mcp.page.status.label.connected' : 'Connected' ,
'settings.mcp.page.status.label.failed' : 'Failed' ,
'settings.mcp.page.status.label.needsAuth' : 'Needs auth' ,
'settings.mcp.page.status.label.needsRegistration' : 'Needs registration' ,
'settings.mcp.page.status.description.connected' : 'Connected and ready for OpenCode to discover tools and resources.' ,
'settings.mcp.page.status.description.failedDefault' : 'OpenCode could not reach this MCP server.' ,
'settings.mcp.page.status.description.needsAuth' : 'This remote MCP server requires authorization before it can connect.' ,
'settings.mcp.page.status.description.needsClientRegistrationDefault' : 'This remote MCP server requires client registration before authorization can complete.' ,
'settings.mcp.page.status.description.disabled' : 'This MCP server is disabled in configuration.' ,
'settings.mcp.page.status.description.default' : 'Refresh or test the connection to load live runtime status.' ,
'settings.mcp.page.status.runtimeStatus' : 'Runtime Status' ,
'settings.mcp.page.status.projectScopedTo' : 'Project-scoped to {directory}' ,
'settings.mcp.page.status.userScoped' : 'User-scoped configuration' ,
'settings.mcp.page.status.activeProject' : 'the active project' ,
'settings.mcp.page.actions.connect' : 'Connect' ,
'settings.mcp.page.actions.disconnect' : 'Disconnect' ,
'settings.mcp.page.actions.authorize' : 'Authorize' ,
'settings.mcp.page.actions.reauthorize' : 'Reauthorize' ,
'settings.mcp.page.actions.clearAuth' : 'Clear Auth' ,
'settings.mcp.page.actions.test' : 'Test' ,
'settings.mcp.page.actions.testConnection' : 'Test Connection' ,
'settings.mcp.page.actions.working' : 'Working...' ,
'settings.mcp.page.actions.starting' : 'Starting...' ,
'settings.mcp.page.actions.clearing' : 'Clearing...' ,
'settings.mcp.page.actions.testing' : 'Testing...' ,
'settings.mcp.page.actions.completing' : 'Completing...' ,
'settings.mcp.page.actions.completeAuthorization' : 'Complete Authorization' ,
'settings.mcp.page.actions.openInBrowser' : 'Open in Browser' ,
'settings.mcp.page.actions.copyLink' : 'Copy Link' ,
'settings.mcp.page.actions.deleting' : 'Deleting…' ,
'settings.mcp.page.auth.authorizationUrl' : 'Authorization URL' ,
'settings.mcp.page.auth.manualFallbackTitle' : 'Manual Authorization Fallback' ,
'settings.mcp.page.auth.manualFallbackDescription' : 'If the browser returns to a different machine or shows a callback URL with a code, paste that full URL or the raw code here.' ,
'settings.mcp.page.auth.callbackInputPlaceholder' : 'Paste the callback URL or authorization code' ,
'settings.mcp.page.auth.waitingForOpenCode' : 'Waiting for OpenCode to observe the completed browser authorization flow...' ,
'settings.mcp.page.server.title' : 'Server' ,
'settings.mcp.page.server.name' : 'Server Name' ,
'settings.mcp.page.server.namePlaceholder' : 'my-mcp-server' ,
'settings.mcp.page.server.importJson' : 'Import from JSON Snippet' ,
'settings.mcp.page.server.importJsonTitle' : 'Import a full MCP server configuration from a JSON snippet' ,
'settings.mcp.page.server.enable' : 'Enable Server' ,
'settings.mcp.page.server.enableAria' : 'Enable server' ,
'settings.mcp.page.server.transportMode' : 'Transport Mode' ,
'settings.mcp.page.connection.command' : 'Command' ,
'settings.mcp.page.connection.serverUrl' : 'Server URL' ,
'settings.mcp.page.connection.serverUrlPlaceholder' : 'https://mcp.example.com/mcp' ,
'settings.mcp.page.connection.pasteCommand' : 'Paste Command' ,
'settings.mcp.page.connection.pasteCommandTitle' : 'Paste a local command from clipboard and auto-split' ,
'settings.mcp.page.connection.previewArgs' : 'Preview ({count} args)' ,
'settings.mcp.page.advanced.title' : 'Advanced Remote Options' ,
'settings.mcp.page.advanced.configure' : 'Configure advanced options' ,
'settings.mcp.page.advanced.autoDetect' : 'Auto-detect' ,
'settings.mcp.page.advanced.custom' : 'Custom' ,
'settings.mcp.page.advanced.headers' : 'headers' ,
'settings.mcp.page.advanced.timeoutMs' : 'Timeout (ms)' ,
'settings.mcp.page.advanced.timeoutHint' : 'Leave blank to use OpenCode\'s default MCP timeout.' ,
'settings.mcp.page.advanced.requestHeaders' : 'Request Headers' ,
'settings.mcp.page.advanced.headerNamePlaceholder' : 'Header-Name' ,
'settings.mcp.page.advanced.pasteHeaders' : 'Paste headers' ,
'settings.mcp.page.advanced.pasteHeadersTitle' : 'Paste KEY=VALUE header lines from clipboard' ,
'settings.mcp.page.advanced.oauthAutoDetection' : 'Enable OAuth auto-detection' ,
'settings.mcp.page.advanced.oauthAutoDetectionAria' : 'Enable OAuth auto-detection' ,
'settings.mcp.page.advanced.oauthClientIdPlaceholder' : 'OAuth client ID' ,
'settings.mcp.page.advanced.oauthClientSecretPlaceholder' : 'OAuth client secret' ,
'settings.mcp.page.advanced.oauthScopesPlaceholder' : 'Scopes (space-delimited)' ,
'settings.mcp.page.advanced.oauthRedirectUriPlaceholder' : 'Redirect URI' ,
'settings.mcp.page.advanced.oauthHint' : 'Leave these fields blank to let OpenCode infer OAuth settings from the MCP server.' ,
'settings.mcp.page.advanced.oauthCallbackHint' : 'Browser-based MCP authorization uses this callback URL when the redirect URI is blank:' ,
'settings.mcp.page.env.title' : 'Environment Variables' ,
'settings.mcp.page.env.key' : 'Key' ,
'settings.mcp.page.env.value' : 'Value' ,
'settings.mcp.page.env.valuePlaceholder' : 'value' ,
'settings.mcp.page.env.hide' : 'Hide' ,
'settings.mcp.page.env.show' : 'Show' ,
'settings.mcp.page.env.addVariable' : 'Add variable' ,
'settings.mcp.page.env.addEnvironmentVariable' : 'Add environment variable' ,
'settings.mcp.page.env.keyPlaceholder' : 'API_KEY' ,
'settings.mcp.page.env.pasteEnv' : 'Paste .env' ,
'settings.mcp.page.env.pasteEnvTitle' : 'Paste KEY=VALUE lines from clipboard' ,
'settings.mcp.page.env.plainTextWarning' : '⚠ Values are stored as plain text in opencode.json' ,
'settings.mcp.page.env.removeVariableAria' : 'Remove variable' ,
'settings.mcp.page.importDialog.title' : 'Import JSON Snippet' ,
'settings.mcp.page.importDialog.description' : 'Paste a full MCP JSON snippet from docs or another config file. The parsed values will populate this form for review before saving.' ,
'settings.mcp.page.importDialog.pasteFromClipboard' : 'Paste JSON from Clipboard' ,
'settings.mcp.page.deleteDialog.title' : 'Delete "{name}"?' ,
'settings.mcp.page.deleteDialog.descriptionPrefix' : 'This removes the server from' ,
'settings.mcp.page.deleteDialog.descriptionSuffix' : 'OpenCode will need to reload.' ,
'settings.mcp.page.toast.clipboardReadFailed' : 'Cannot read clipboard' ,
'settings.mcp.page.toast.configImported' : 'MCP configuration imported' ,
'settings.mcp.page.toast.nameRequired' : 'Name is required' ,
'settings.mcp.page.toast.serverNameExists' : 'A server with this name already exists' ,
'settings.mcp.page.toast.localCommandRequired' : 'Command cannot be empty for a local server' ,
'settings.mcp.page.toast.remoteUrlRequired' : 'URL cannot be empty for a remote server' ,
'settings.mcp.page.toast.serverCreatedReloadFailed' : 'MCP server created, but OpenCode reload failed.' ,
'settings.mcp.page.toast.savedReloadFailed' : 'Saved, but OpenCode reload failed.' ,
'settings.mcp.page.toast.retryRefreshHint' : 'Retry refresh or reopen Settings before authorizing this server.' ,
'settings.mcp.page.toast.serverCreatedReloading' : 'MCP server created. OpenCode reloading…' ,
'settings.mcp.page.toast.savedReloading' : 'Saved. OpenCode reloading…' ,
'settings.mcp.page.toast.saveFailed' : 'Failed to save' ,
'settings.mcp.page.toast.unexpectedError' : 'An error occurred' ,
'settings.mcp.page.toast.serverDeletedReloadFailed' : '"{name}" deleted, but OpenCode reload failed' ,
'settings.mcp.page.toast.refreshListIfStale' : 'Refresh the MCP list if the UI looks stale.' ,
'settings.mcp.page.toast.serverDeleted' : '"{name}" deleted' ,
'settings.mcp.page.toast.deleteFailed' : 'Failed to delete' ,
'settings.mcp.page.toast.disconnected' : 'Disconnected' ,
'settings.mcp.page.toast.connected' : 'Connected' ,
'settings.mcp.page.toast.connectionNeedsAuthorization' : 'Connection requires authorization' ,
'settings.mcp.page.toast.connectionNeedsClientRegistration' : 'Connection requires client registration' ,
'settings.mcp.page.toast.connectionFailed' : 'Connection failed' ,
'settings.mcp.page.toast.connectionAttemptFinished' : 'Connection attempt finished. Refresh status for details.' ,
'settings.mcp.page.toast.createServerBeforeLiveActions' : 'Create the server before running live actions' ,
'settings.mcp.page.toast.saveBeforeLiveActions' : 'Save changes before running live actions' ,
'settings.mcp.page.toast.refreshStatusFailed' : 'Failed to refresh MCP status' ,
'settings.mcp.page.toast.oauthRedirectUrlBuildFailed' : 'Unable to build MCP OAuth redirect URL' ,
'settings.mcp.page.toast.oauthBrowserCallbackSaveFailed' : 'Failed to save the browser callback URL for MCP authorization' ,
'settings.mcp.page.toast.openCodeReloadFailedAfterCallbackSave' : 'OpenCode reload failed after saving the browser callback URL' ,
'settings.mcp.page.toast.completeAuthorizationInBrowserWithPaste' : 'Complete the MCP authorization flow in your browser, then paste the returned code or callback URL here' ,
'settings.mcp.page.toast.completeAuthorizationInBrowser' : 'Complete the MCP authorization flow in your browser' ,
'settings.mcp.page.toast.openAuthorizationUrlFailed' : 'Could not open the authorization URL automatically' ,
'settings.mcp.page.toast.authorizationStartFailed' : 'Failed to start authorization' ,
'settings.mcp.page.toast.authSessionExpired' : 'Authorization session expired or was cleared during reload. Click Authorize again.' ,
'settings.mcp.page.toast.savedAuthorizationRemoved' : 'Saved MCP authorization was removed' ,
'settings.mcp.page.toast.clearAuthorizationFailed' : 'Failed to clear authorization' ,
'settings.mcp.page.toast.authorizationUrlCopied' : 'Authorization URL copied' ,
'settings.mcp.page.toast.authorizationUrlCopyFailed' : 'Failed to copy authorization URL' ,
'settings.mcp.page.toast.pasteCallbackOrCodeFirst' : 'Paste the callback URL or authorization code first' ,
'settings.mcp.page.toast.missingServerDetails' : 'Missing MCP server details. Select the server again or paste the full callback URL.' ,
'settings.mcp.page.toast.authorizationCompleted' : 'MCP authorization completed' ,
'settings.mcp.page.toast.authorizationCompletedFor' : 'MCP authorization completed for {name}' ,
'settings.mcp.page.toast.authorizationCompleteFailed' : 'Failed to complete MCP authorization' ,
'settings.mcp.page.toast.enableServerBeforeTest' : 'Enable this server before testing the connection' ,
'settings.mcp.page.toast.connectionTestSucceeded' : 'Connection test succeeded' ,
'settings.mcp.page.toast.connectionTestFailed' : 'Connection test failed' ,
'settings.mcp.page.toast.connectionTestFinished' : 'Connection test finished. Refresh status for details.' ,
'settings.mcp.page.toast.authorizationFailed' : 'Authorization failed' ,
'settings.mcp.page.toast.authorizationStillInProgress' : 'Authorization is still in progress in your browser. Paste the callback URL or code if needed.' ,
'settings.mcp.page.toast.noKeyValuePairsFound' : 'No KEY=VALUE pairs found in clipboard' ,
'settings.mcp.page.toast.importedVariablesCount' : 'Imported variables: {count}' ,
'settings.mcp.page.toast.pastedArgumentsCount' : 'Pasted arguments: {count}' ,
'settings.shared.projectSelector.fallbackProject' : 'Project' ,
'settings.shared.projectSelector.switchProjectAria' : 'Switch project' ,
'settings.shared.projectSelector.switchProjectTitle' : 'Switch project' ,
'settings.openchamber.defaults.title' : 'Session Defaults' ,
'settings.openchamber.defaults.summaryPrefix' : 'New sessions will start with:' ,
'settings.openchamber.defaults.summaryOpenCodeDefault' : 'OpenCode agent default' ,
'settings.openchamber.defaults.field.defaultModel' : 'Default Model' ,
'settings.openchamber.defaults.field.defaultThinking' : 'Default Thinking' ,
'settings.openchamber.defaults.field.thinkingPlaceholder' : 'Thinking' ,
'settings.openchamber.defaults.field.defaultAgent' : 'Default Agent' ,
'settings.openchamber.defaults.field.showDeletionDialogAria' : 'Show deletion dialog' ,
'settings.openchamber.defaults.field.showDeletionDialog' : 'Show Deletion Dialog' ,
'settings.openchamber.defaults.field.openFilesPreviewAria' : 'Open files in preview mode' ,
'settings.openchamber.defaults.field.openFilesPreview' : 'Open files in preview mode' ,
'settings.openchamber.defaults.option.default' : 'Default' ,
'settings.openchamber.defaults.option.defaultLowercase' : 'default' ,
'settings.openchamber.git.title' : 'Git Preferences' ,
'settings.openchamber.git.changesViewTitle' : 'Changes View' ,
'settings.openchamber.git.changesViewAria' : 'Git changes view mode' ,
'settings.openchamber.git.option.flatList' : 'Flat List' ,
'settings.openchamber.git.option.treeView' : 'Tree View' ,
'settings.openchamber.git.optionAria' : 'Git changes view mode: {option}' ,
'settings.openchamber.git.enableGitmojiAria' : 'Enable Gitmoji picker' ,
'settings.openchamber.git.enableGitmoji' : 'Enable Gitmoji Picker' ,
'settings.openchamber.git.showGitignoredAria' : 'Display gitignored files' ,
'settings.openchamber.git.showGitignored' : 'Display Gitignored Files' ,
'settings.github.page.tooltip.connectAccount' : 'Connect a GitHub account for in-app PR and issue workflows.' ,
'settings.github.page.avatarAlt.withLogin' : '{login} avatar' ,
'settings.github.page.avatarAlt.fallback' : 'GitHub avatar' ,
'settings.github.page.label.unknownUser' : 'unknown' ,
'settings.github.page.label.scopes' : 'Scopes: {value}' ,
'settings.github.page.label.otherAccounts' : 'Other Accounts' ,
'settings.github.page.actions.disconnect' : 'Disconnect' ,
'settings.github.page.actions.connect' : 'Connect GitHub' ,
'settings.github.page.actions.switchTo' : 'Switch to' ,
'settings.github.page.actions.addAccount' : 'Add Account' ,
'settings.github.page.actions.openGithub' : 'Open GitHub' ,
'settings.github.page.status.notConnected' : 'Not Connected' ,
'settings.github.page.status.active' : 'Active' ,
'settings.github.page.flow.title' : 'Authorize OpenChamber' ,
'settings.github.page.flow.description' : 'In GitHub, enter the following code to authorize this device:' ,
'settings.github.page.flow.waiting' : 'Waiting for approval… (auto-refresh)' ,
'settings.github.page.toast.startConnectFailed' : 'Failed to start GitHub connect' ,
'settings.github.page.toast.connected' : 'GitHub connected' ,
'settings.github.page.toast.authorizationFailed' : 'GitHub authorization failed' ,
'settings.github.page.toast.disconnected' : 'GitHub disconnected' ,
'settings.github.page.toast.disconnectFailed' : 'Failed to disconnect GitHub' ,
'settings.github.page.toast.accountSwitched' : 'GitHub account switched' ,
'settings.github.page.toast.accountSwitchFailed' : 'Failed to switch GitHub account' ,
'settings.notifications.page.delivery.title' : 'Notification Delivery' ,
'settings.notifications.page.delivery.enableAria' : 'Enable notifications' ,
'settings.notifications.page.delivery.enableLabel' : 'Enable Notifications' ,
'settings.notifications.page.delivery.focusedAria' : 'Notify while app is focused' ,
'settings.notifications.page.delivery.focusedLabel' : 'Notify While App is Focused' ,
'settings.notifications.page.delivery.testAction' : 'Send test notification' ,
'settings.notifications.page.delivery.browserPermissionHint' : 'Your browser may ask for permission the first time.' ,
'settings.notifications.page.delivery.permissionDenied' : 'Notification permission denied. Enable it in your browser settings.' ,
'settings.notifications.page.delivery.permissionGrantedButDisabled' : 'Permission granted, but notifications are disabled.' ,
'settings.notifications.page.delivery.vscodeHint' : 'When enabled, notifications are delivered through VS Code native notifications.' ,
'settings.notifications.page.events.title' : 'Notification Events' ,
'settings.notifications.page.events.completionAria' : 'Agent completion' ,
'settings.notifications.page.events.completionLabel' : 'Agent Completion' ,
'settings.notifications.page.events.subtaskAria' : 'Subagent completion' ,
'settings.notifications.page.events.subtaskLabel' : 'Subagent Completion' ,
'settings.notifications.page.events.errorAria' : 'Agent errors' ,
'settings.notifications.page.events.errorLabel' : 'Agent Errors' ,
'settings.notifications.page.events.questionAria' : 'Agent questions' ,
'settings.notifications.page.events.questionLabel' : 'Agent Questions' ,
'settings.notifications.page.template.title' : 'Notification Templates' ,
'settings.notifications.page.template.variablesLabel' : 'Variables:' ,
'settings.notifications.page.template.event.completion' : 'completion' ,
'settings.notifications.page.template.event.subtask' : 'Subagent Completion' ,
'settings.notifications.page.template.event.error' : 'error' ,
'settings.notifications.page.template.event.question' : 'question' ,
'settings.notifications.page.template.field.title' : 'Title' ,
'settings.notifications.page.template.field.message' : 'Message' ,
'settings.notifications.page.template.defaults.completion.title' : '{agent_name} is ready' ,
'settings.notifications.page.template.defaults.completion.message' : '{model_name} completed the task' ,
'settings.notifications.page.template.defaults.error.title' : 'Tool error' ,
'settings.notifications.page.template.defaults.error.message' : '{last_message}' ,
'settings.notifications.page.template.defaults.question.title' : 'Input needed' ,
'settings.notifications.page.template.defaults.question.message' : '{last_message}' ,
'settings.notifications.page.template.defaults.subtask.title' : '{agent_name} is ready' ,
'settings.notifications.page.template.defaults.subtask.message' : '{model_name} completed the task' ,
'settings.notifications.page.summary.title' : 'AI Summarization' ,
'settings.notifications.page.summary.toggleAria' : 'Summarize last message' ,
'settings.notifications.page.summary.toggleLabel' : 'Summarize Last Message' ,
'settings.notifications.page.summary.requiresTemplateVariable' : 'Requires' ,
'settings.notifications.page.summary.modelLabel' : 'Summarization Model' ,
'settings.notifications.page.summary.modelTooltip' : 'Used for notification and voice summaries.' ,
'settings.notifications.page.summary.notSelected' : 'Not selected' ,
'settings.notifications.page.summary.thresholdLabel' : 'Threshold' ,
'settings.notifications.page.summary.thresholdHint' : 'Messages longer than this will be summarized' ,
'settings.notifications.page.summary.resetThresholdAria' : 'Reset threshold' ,
'settings.notifications.page.summary.lengthLabel' : 'Length' ,
'settings.notifications.page.summary.lengthHint' : 'Target character length of the summary' ,
'settings.notifications.page.summary.resetLengthAria' : 'Reset summary length' ,
'settings.notifications.page.summary.maxLengthLabel' : 'Max Length' ,
'settings.notifications.page.summary.maxLengthHint' : 'Truncate {last_message} to this length' ,
'settings.notifications.page.summary.resetMaxLengthAria' : 'Reset max message length' ,
'settings.notifications.page.push.title' : 'Background Push Notifications' ,
'settings.notifications.page.push.enableAria' : 'Enable push notifications' ,
'settings.notifications.page.push.enableLabel' : 'Enable push notifications' ,
'settings.notifications.page.push.unsupportedHint' : 'Push not supported. Desktop Chrome/Edge and Android support push. iOS requires an installed PWA.' ,
'settings.notifications.page.push.supportedHint' : 'Receive alerts via your operating system background service' ,
'settings.notifications.page.push.loadingAria' : 'Loading' ,
'settings.notifications.page.toast.permissionDenied.title' : 'Notification permission denied' ,
'settings.notifications.page.toast.permissionDenied.description' : 'Please enable notifications in your browser settings.' ,
'settings.notifications.page.toast.permissionDenied.enableInBrowser' : 'Enable notifications in your browser settings.' ,
'settings.notifications.page.toast.requestPermissionFailed' : 'Failed to request notification permission' ,
'settings.notifications.page.toast.notificationsApiUnavailable' : 'Notifications API not available' ,
'settings.notifications.page.toast.testNotificationSent' : 'Test notification sent successfully' ,
'settings.notifications.page.toast.testNotificationFailed' : 'Failed to send test notification' ,
'settings.notifications.page.toast.pushUnsupported' : 'Push notifications not supported' ,
'settings.notifications.page.toast.pushApiUnavailable' : 'Push API not available' ,
'settings.notifications.page.toast.pushKeyLoadFailed' : 'Failed to load push key' ,
'settings.notifications.page.toast.enableBackgroundFailed' : 'Failed to enable background notifications' ,
'settings.notifications.page.toast.backgroundEnabled' : 'Background notifications enabled' ,
'settings.notifications.page.toast.backgroundDisabled' : 'Background notifications disabled' ,
'settings.notifications.page.testNotification.title' : 'Test Notification' ,
'settings.notifications.page.testNotification.body' : 'This is a test notification from OpenChamber.' ,
'settings.voice.page.section.voiceSetup' : 'Voice Setup' ,
'settings.voice.page.section.speechRecognition' : 'Speech Recognition' ,
'settings.voice.page.section.playbackAndSummary' : 'Playback & Summarization' ,
'settings.voice.page.field.enableVoiceModeAria' : 'Enable voice mode' ,
'settings.voice.page.field.enableVoiceMode' : 'Enable Voice Mode' ,
'settings.voice.page.field.provider' : 'Provider' ,
'settings.voice.page.provider.browser' : 'Browser' ,
'settings.voice.page.provider.custom' : 'Custom' ,
'settings.voice.page.provider.say' : 'Say' ,
'settings.voice.page.provider.server' : 'Server' ,
'settings.voice.page.tooltip.browser' : 'Free, offline, limited mobile support.' ,
'settings.voice.page.tooltip.openai' : 'High quality, mobile ready, needs API key.' ,
'settings.voice.page.tooltip.custom' : 'OpenAI-compatible server (for example Kokoro).' ,
'settings.voice.page.tooltip.say' : 'macOS native. Fast, free, offline.' ,
'settings.voice.page.tooltip.sttBrowser' : 'Web Speech API (Chrome/Edge). Free, no setup.' ,
'settings.voice.page.tooltip.sttServer' : 'OpenAI-compatible Whisper server. Better accuracy, any language.' ,
'settings.voice.page.field.apiKey' : 'API Key' ,
'settings.voice.page.field.apiKeyHintUsingConfig' : 'Using key from configuration' ,
'settings.voice.page.field.apiKeyHintRequired' : 'OpenAI TTS requires an API key' ,
'settings.voice.page.field.apiKeyHintProvide' : 'Provide your OpenAI key' ,
'settings.voice.page.field.serverUrl' : 'Server URL' ,
'settings.voice.page.field.serverUrlHint' : 'Base URL of the OpenAI-compatible TTS server' ,
'settings.voice.page.field.model' : 'Model' ,
'settings.voice.page.field.voice' : 'Voice' ,
'settings.voice.page.field.voiceIdentifierHint' : 'Voice identifier supported by the server' ,
'settings.voice.page.field.configuredAbove' : 'Configured above' ,
'settings.voice.page.actions.preview' : 'Preview' ,
'settings.voice.page.field.selectVoicePlaceholder' : 'Select voice' ,
'settings.voice.page.field.auto' : 'Auto' ,
'settings.voice.page.field.speechRate' : 'Speech Rate' ,
'settings.voice.page.field.speechPitch' : 'Speech Pitch' ,
'settings.voice.page.field.speechVolume' : 'Speech Volume' ,
'settings.voice.page.field.language' : 'Language' ,
'settings.voice.page.field.selectLanguagePlaceholder' : 'Select language' ,
'settings.voice.page.field.sttBrowserSupportError' : 'MediaRecorder or AudioContext is not available in this browser. Server STT may not work.' ,
'settings.voice.page.field.sttServerUrlHint' : 'Base URL of the Whisper-compatible server' ,
'settings.voice.page.field.sttLanguageHint' : 'BCP-47 code (for example en, fr). Leave blank for auto-detect.' ,
'settings.voice.page.field.silenceThreshold' : 'Silence Threshold' ,
'settings.voice.page.field.silenceHold' : 'Silence Hold' ,
'settings.voice.page.field.millisecondsUnit' : 'ms' ,
'settings.voice.page.field.messageReadAloudButtonAria' : 'Message read aloud button' ,
'settings.voice.page.field.messageReadAloudButton' : 'Message Read Aloud Button' ,
'settings.voice.page.field.summarizeBeforePlaybackAria' : 'Summarize before playback' ,
'settings.voice.page.field.summarizeBeforePlayback' : 'Summarize Before Playback' ,
'settings.voice.page.field.summarizeVoiceModeResponsesAria' : 'Summarize voice mode responses' ,
'settings.voice.page.field.summarizeVoiceModeResponses' : 'Summarize Voice Mode Responses' ,
'settings.voice.page.field.summarizationThreshold' : 'Summarization Threshold' ,
'settings.voice.page.field.summaryMaxLength' : 'Summary Max Length' ,
'settings.voice.page.hint.shiftClickPrefix' : 'Press' ,
'settings.voice.page.hint.shiftClickSuffix' : 'on the mic button to toggle continuous mode' ,
'settings.voice.page.preview.browserVoiceFallback' : 'your browser voice' ,
'settings.voice.page.preview.voiceLine' : 'Hello! I\'m {voiceName}. This is how I sound.' ,
'settings.voice.page.preview.customServerLine' : 'Hello! This is a preview of the custom TTS server.' ,
'settings.openchamber.visual.section.colorMode' : 'Color Mode' ,
2026-04-26 17:21:52 +03:00
'settings.openchamber.visual.section.localization' : 'Localization' ,
2026-04-26 14:03:39 +03:00
'settings.openchamber.visual.section.spacingAndLayout' : 'Spacing & Layout' ,
'settings.openchamber.visual.section.navigation' : 'Navigation' ,
'settings.openchamber.visual.section.chatRenderMode' : 'Chat Render Mode' ,
'settings.openchamber.visual.section.chatRenderModeAria' : 'Chat render mode' ,
'settings.openchamber.visual.section.messageStreamTransport' : 'Message Stream Transport' ,
'settings.openchamber.visual.section.activityDefault' : 'Activity Default' ,
'settings.openchamber.visual.section.activityDefaultAria' : 'Activity default mode' ,
'settings.openchamber.visual.section.showToolsOpenedByDefault' : 'Show tools opened by default:' ,
'settings.openchamber.visual.section.userMessageRendering' : 'User Message Rendering' ,
'settings.openchamber.visual.section.userMessageRenderingAria' : 'User message rendering mode' ,
'settings.openchamber.visual.section.mermaidRendering' : 'Mermaid Rendering' ,
'settings.openchamber.visual.section.mermaidRenderingAria' : 'Mermaid rendering mode' ,
'settings.openchamber.visual.section.diffLayout' : 'Diff Layout' ,
'settings.openchamber.visual.section.diffLayoutAria' : 'Diff layout' ,
'settings.openchamber.visual.section.diffViewMode' : 'Diff View Mode' ,
'settings.openchamber.visual.section.diffViewModeAria' : 'Diff view mode' ,
'settings.openchamber.visual.section.privacy' : 'Privacy' ,
'settings.openchamber.visual.field.lightTheme' : 'Light Theme' ,
'settings.openchamber.visual.field.darkTheme' : 'Dark Theme' ,
'settings.openchamber.visual.field.selectLightThemeAria' : 'Select light theme' ,
'settings.openchamber.visual.field.selectDarkThemeAria' : 'Select dark theme' ,
'settings.openchamber.visual.field.selectThemePlaceholder' : 'Select theme' ,
'settings.openchamber.visual.field.timeFormat' : 'Time Format' ,
'settings.openchamber.visual.field.weekStartsOn' : 'Week Starts On' ,
'settings.openchamber.visual.field.selectTimeFormatAria' : 'Select time format' ,
'settings.openchamber.visual.field.selectWeekStartAria' : 'Select week start' ,
'settings.openchamber.visual.actions.reloadThemes' : 'Reload themes' ,
'settings.openchamber.visual.actions.reloadingThemes' : 'Reloading themes...' ,
'settings.openchamber.visual.field.themeImportInfoAria' : 'Theme import info' ,
'settings.openchamber.visual.field.themeImportInfoTooltip' : 'Import custom themes from ~/.config/openchamber/themes/' ,
'settings.openchamber.visual.field.installAppName' : 'Install App Name' ,
'settings.openchamber.visual.field.installAppNameHint' : 'Used by PWA installation process.' ,
'settings.openchamber.visual.field.pwaInstallAppNameAria' : 'PWA install app name' ,
'settings.openchamber.visual.actions.resetInstallAppNameAria' : 'Reset install app name' ,
'settings.openchamber.visual.field.installOrientation' : 'Install Orientation' ,
'settings.openchamber.visual.field.installOrientationHint' : 'Used by the installed web app. Reinstall the PWA after changing this.' ,
'settings.openchamber.visual.field.pwaInstallOrientationAria' : 'PWA install orientation' ,
'settings.openchamber.visual.field.selectOrientationPlaceholder' : 'Select orientation' ,
'settings.openchamber.visual.actions.resetInstallOrientationAria' : 'Reset install orientation' ,
'settings.openchamber.visual.field.interfaceFontSize' : 'Interface Font Size' ,
2026-04-26 18:48:43 +03:00
'settings.openchamber.visual.field.interfaceFont' : 'Interface Font' ,
'settings.openchamber.visual.field.selectInterfaceFontAria' : 'Select interface font' ,
'settings.openchamber.visual.actions.resetInterfaceFontAria' : 'Reset interface font' ,
2026-04-26 14:03:39 +03:00
'settings.openchamber.visual.field.fontSizePercentageAria' : 'Font size percentage' ,
'settings.openchamber.visual.actions.resetFontSizeAria' : 'Reset font size' ,
'settings.openchamber.visual.field.terminalFontSize' : 'Terminal Font Size' ,
2026-04-26 18:48:43 +03:00
'settings.openchamber.visual.field.codeFont' : 'Code Font' ,
'settings.openchamber.visual.field.selectCodeFontAria' : 'Select code font' ,
'settings.openchamber.visual.actions.resetCodeFontAria' : 'Reset code font' ,
2026-04-26 14:03:39 +03:00
'settings.openchamber.visual.actions.resetTerminalFontSizeAria' : 'Reset terminal font size' ,
'settings.openchamber.visual.field.spacingDensity' : 'Spacing Density' ,
'settings.openchamber.visual.actions.resetSpacingAria' : 'Reset spacing' ,
'settings.openchamber.visual.field.inputBarOffset' : 'Input Bar Offset' ,
'settings.openchamber.visual.field.inputBarOffsetTooltip' : 'Raise input bar to avoid OS-level screen obstructions like home bars.' ,
'settings.openchamber.visual.actions.resetInputBarOffsetAria' : 'Reset input bar offset' ,
'settings.openchamber.visual.field.terminalQuickKeysAria' : 'Terminal quick keys' ,
'settings.openchamber.visual.field.terminalQuickKeys' : 'Terminal Quick Keys' ,
'settings.openchamber.visual.field.terminalQuickKeysTooltip' : 'Show Esc, Ctrl, Arrows in terminal view' ,
'settings.openchamber.visual.field.activityDefaultModeAria' : 'Activity default mode: {option}' ,
'settings.openchamber.visual.field.showExpandedBashToolsAria' : 'Show expanded bash tools' ,
'settings.openchamber.visual.field.showExpandedEditToolsAria' : 'Show expanded edit tools' ,
'settings.openchamber.visual.field.bash' : 'Bash' ,
'settings.openchamber.visual.field.editTools' : 'Edit tools' ,
'settings.openchamber.visual.field.userMessageRenderingAria' : 'User message rendering: {option}' ,
'settings.openchamber.visual.field.mermaidRenderingAria' : 'Mermaid rendering: {option}' ,
'settings.openchamber.visual.field.diffLayoutAria' : 'Diff layout: {option}' ,
'settings.openchamber.visual.field.diffViewModeAria' : 'Diff view mode: {option}' ,
'settings.openchamber.visual.field.showReasoningTracesAria' : 'Show reasoning traces' ,
'settings.openchamber.visual.field.showReasoningTraces' : 'Show Reasoning Traces' ,
'settings.openchamber.visual.field.stickyUserHeaderAria' : 'Sticky user header' ,
'settings.openchamber.visual.field.stickyUserHeader' : 'Sticky User Header' ,
2026-04-30 00:45:25 +03:00
'settings.openchamber.visual.field.wideChatLayoutAria' : 'Wide chat layout' ,
'settings.openchamber.visual.field.wideChatLayout' : 'Wide Chat Layout' ,
2026-04-27 15:41:14 +07:00
'settings.openchamber.visual.field.showSplitAssistantMessageActionsAria' : 'Inline assistant actions' ,
'settings.openchamber.visual.field.showSplitAssistantMessageActions' : 'Inline Assistant Actions' ,
'settings.openchamber.visual.field.showSplitAssistantMessageActionsTooltip' : 'Show Copy Answer, Save as image, and Read aloud on assistant text blocks that appear before later tool calls in the same response.' ,
2026-04-26 14:03:39 +03:00
'settings.openchamber.visual.field.showToolFileIconsAria' : 'Show tool file icons' ,
'settings.openchamber.visual.field.showToolFileIcons' : 'Show Tool File Icons' ,
'settings.openchamber.visual.field.showMobileStatusBarAria' : 'Show mobile status bar' ,
'settings.openchamber.visual.field.showMobileStatusBar' : 'Show Mobile Status Bar' ,
'settings.openchamber.visual.field.showDotfilesAria' : 'Show dotfiles' ,
'settings.openchamber.visual.field.showDotfiles' : 'Show Dotfiles' ,
'settings.openchamber.visual.field.queueMessagesByDefaultAria' : 'Queue messages by default' ,
'settings.openchamber.visual.field.queueMessagesByDefault' : 'Queue Messages by Default' ,
'settings.openchamber.visual.field.queueMessagesByDefaultTooltip' : 'When enabled, Enter queues messages. Use {modifier}+Enter to send.' ,
'settings.openchamber.visual.field.persistDraftMessagesAria' : 'Persist draft messages' ,
'settings.openchamber.visual.field.persistDraftMessages' : 'Persist Draft Messages' ,
'settings.openchamber.visual.field.enableSpellcheckInTextInputsAria' : 'Enable spellcheck in text inputs' ,
'settings.openchamber.visual.field.enableSpellcheckInTextInputs' : 'Enable Spellcheck in Text Inputs' ,
'settings.openchamber.visual.field.sendAnonymousUsageReportsAria' : 'Send anonymous usage reports' ,
'settings.openchamber.visual.field.sendAnonymousUsageReports' : 'Send anonymous usage reports' ,
'settings.openchamber.visual.field.sendAnonymousUsageReportsHint' : 'Helps us understand which app versions are actively used so we can prioritize improvements. Only app version, platform, and runtime are collected - no personal data or code.' ,
'settings.openchamber.visual.option.themeMode.system' : 'System' ,
'settings.openchamber.visual.option.themeMode.light' : 'Light' ,
'settings.openchamber.visual.option.themeMode.dark' : 'Dark' ,
'settings.openchamber.visual.option.diffLayout.dynamic.label' : 'Dynamic' ,
'settings.openchamber.visual.option.diffLayout.dynamic.description' : 'New inline, modified side-by-side.' ,
'settings.openchamber.visual.option.diffLayout.inline.label' : 'Always inline' ,
'settings.openchamber.visual.option.diffLayout.inline.description' : 'Show as a single unified view.' ,
'settings.openchamber.visual.option.diffLayout.sideBySide.label' : 'Always side-by-side' ,
'settings.openchamber.visual.option.diffLayout.sideBySide.description' : 'Compare original and modified files.' ,
'settings.openchamber.visual.option.diffViewMode.single.label' : 'Single file' ,
'settings.openchamber.visual.option.diffViewMode.single.description' : 'Show one file at a time.' ,
'settings.openchamber.visual.option.diffViewMode.stacked.label' : 'All files' ,
'settings.openchamber.visual.option.diffViewMode.stacked.description' : 'Stack all changed files together.' ,
'settings.openchamber.visual.option.mermaidRendering.svg.label' : 'SVG' ,
'settings.openchamber.visual.option.mermaidRendering.svg.description' : 'Render diagrams as scalable graphics.' ,
'settings.openchamber.visual.option.mermaidRendering.ascii.label' : 'ASCII' ,
'settings.openchamber.visual.option.mermaidRendering.ascii.description' : 'Render diagrams as text blocks.' ,
'settings.openchamber.visual.option.pwaOrientation.system.label' : 'Follow system' ,
'settings.openchamber.visual.option.pwaOrientation.system.description' : 'Respect the device rotation setting.' ,
'settings.openchamber.visual.option.pwaOrientation.portrait.label' : 'Portrait lock' ,
'settings.openchamber.visual.option.pwaOrientation.portrait.description' : 'Install the app locked to portrait.' ,
'settings.openchamber.visual.option.pwaOrientation.landscape.label' : 'Landscape lock' ,
'settings.openchamber.visual.option.pwaOrientation.landscape.description' : 'Install the app locked to landscape.' ,
'settings.openchamber.visual.option.userMessageRendering.markdown.label' : 'Markdown' ,
'settings.openchamber.visual.option.userMessageRendering.markdown.description' : 'Render user text with markdown formatting.' ,
'settings.openchamber.visual.option.userMessageRendering.plain.label' : 'Plain text' ,
'settings.openchamber.visual.option.userMessageRendering.plain.description' : 'Render user text with preserved whitespace and links.' ,
'settings.openchamber.visual.option.chatRenderMode.sorted.label' : 'Sorted' ,
'settings.openchamber.visual.option.chatRenderMode.sorted.description' : 'Render completed assistant messages without live streaming.' ,
'settings.openchamber.visual.option.chatRenderMode.live.label' : 'Live' ,
'settings.openchamber.visual.option.chatRenderMode.live.description' : 'Stream assistant text and tools as they arrive.' ,
'settings.openchamber.visual.option.messageTransport.auto.label' : 'Auto' ,
'settings.openchamber.visual.option.messageTransport.auto.description' : 'Prefer WebSocket and fall back to SSE if needed.' ,
'settings.openchamber.visual.option.messageTransport.ws.label' : 'WebSocket' ,
'settings.openchamber.visual.option.messageTransport.ws.description' : 'Use WebSocket for message streaming.' ,
'settings.openchamber.visual.option.messageTransport.sse.label' : 'SSE' ,
'settings.openchamber.visual.option.messageTransport.sse.description' : 'Use Server-Sent Events for message streaming.' ,
'settings.openchamber.visual.option.activityRenderMode.collapsed.label' : 'Collapsed' ,
'settings.openchamber.visual.option.activityRenderMode.collapsed.description' : 'Keep Activity collapsed by default.' ,
'settings.openchamber.visual.option.activityRenderMode.summary.label' : 'Expanded' ,
'settings.openchamber.visual.option.activityRenderMode.summary.description' : 'Expand Activity by default.' ,
'settings.openchamber.visual.option.timeFormat.auto.label' : 'Auto' ,
'settings.openchamber.visual.option.timeFormat.auto.description' : 'Use system locale preference.' ,
'settings.openchamber.visual.option.timeFormat.24h.label' : '24-hour' ,
'settings.openchamber.visual.option.timeFormat.24h.description' : 'Show time as 14:15.' ,
'settings.openchamber.visual.option.timeFormat.12h.label' : '12-hour' ,
'settings.openchamber.visual.option.timeFormat.12h.description' : 'Show time as 02:15 PM.' ,
'settings.openchamber.visual.option.weekStart.auto.label' : 'Auto' ,
'settings.openchamber.visual.option.weekStart.auto.description' : 'Use locale week start.' ,
'settings.openchamber.visual.option.weekStart.monday.label' : 'Monday' ,
'settings.openchamber.visual.option.weekStart.sunday.label' : 'Sunday' ,
'settings.magicPrompts.page.loading.aria' : 'Loading' ,
'settings.magicPrompts.page.loading.text' : 'Loading Magic Prompts...' ,
'settings.magicPrompts.page.block.visiblePrompt' : 'Visible Prompt' ,
'settings.magicPrompts.page.block.instructions' : 'Instructions' ,
'settings.magicPrompts.page.group.gitCommitGenerate.title' : 'Commit Generation' ,
'settings.magicPrompts.page.group.gitCommitGenerate.description' : 'Prompts used for commit message generation: visible user message + hidden instructions.' ,
'settings.magicPrompts.page.group.gitPrGenerate.title' : 'PR Generation' ,
'settings.magicPrompts.page.group.gitPrGenerate.description' : 'Prompts used for PR title/body generation: visible user message + hidden instructions.' ,
'settings.magicPrompts.page.group.githubPrReview.title' : 'PR Review' ,
'settings.magicPrompts.page.group.githubPrReview.description' : 'Prompts used for PR review flow: visible user message + hidden instruction payload.' ,
'settings.magicPrompts.page.group.githubIssueReview.title' : 'Issue Review' ,
'settings.magicPrompts.page.group.githubIssueReview.description' : 'Prompts used for issue review flow: visible user message + hidden instruction payload.' ,
'settings.magicPrompts.page.group.githubPrFailedChecksReview.title' : 'PR Failed Checks Review' ,
'settings.magicPrompts.page.group.githubPrFailedChecksReview.description' : 'Prompts used for PR failed checks analysis.' ,
'settings.magicPrompts.page.group.githubPrCommentsReview.title' : 'PR Comments Review' ,
'settings.magicPrompts.page.group.githubPrCommentsReview.description' : 'Prompts used for PR comments analysis.' ,
'settings.magicPrompts.page.group.githubSinglePrCommentReview.title' : 'Single PR Comment Review' ,
'settings.magicPrompts.page.group.githubSinglePrCommentReview.description' : 'Prompts used for single PR comment analysis.' ,
'settings.magicPrompts.page.group.gitConflictResolve.title' : 'Merge/Rebase Conflict Resolution' ,
'settings.magicPrompts.page.group.gitConflictResolve.description' : 'Prompts used when resolving merge/rebase conflicts with AI.' ,
'settings.magicPrompts.page.group.gitCherrypickConflictResolve.title' : 'Cherry-pick Conflict Resolution' ,
'settings.magicPrompts.page.group.gitCherrypickConflictResolve.description' : 'Prompts used when resolving cherry-pick conflicts in integrate flow.' ,
'settings.magicPrompts.page.group.planImprove.title' : 'Improve Plan' ,
'settings.magicPrompts.page.group.planImprove.description' : 'Hidden prompt used when sending a saved plan into an improve flow.' ,
'settings.magicPrompts.page.group.planTodo.title' : 'Todo Planning' ,
'settings.magicPrompts.page.group.planTodo.description' : 'Hidden prompt used when sending a todo into a new planning session.' ,
'settings.magicPrompts.page.group.planImplement.title' : 'Implement Plan' ,
'settings.magicPrompts.page.group.planImplement.description' : 'Hidden prompt used when sending a saved plan into an implement flow.' ,
'settings.magicPrompts.page.group.sessionSummary.title' : 'Session Summary' ,
'settings.magicPrompts.page.group.sessionSummary.description' : 'Prompts used by the /summary slash command: visible user message + hidden instructions. Non-destructive - does not compact session history.' ,
'settings.magicPrompts.page.group.sessionWorkspaceReview.title' : 'Workspace Review' ,
2026-04-26 23:15:35 +03:00
'settings.magicPrompts.page.group.sessionWorkspaceReview.description' : 'Prompts used by the /workspace-review slash command: visible user message + hidden instructions. Reviews current workspace changes for high-signal issues only.' ,
2026-04-26 14:03:39 +03:00
'settings.magicPrompts.page.actions.resetting' : 'Resetting...' ,
'settings.magicPrompts.page.actions.resetAllOverrides' : 'Reset All Overrides' ,
'settings.magicPrompts.page.actions.resetToDefault' : 'Reset to Default' ,
'settings.magicPrompts.page.actions.save' : 'Save' ,
'settings.magicPrompts.page.placeholdersLabel' : 'Placeholders:' ,
'settings.magicPrompts.page.validation.visiblePromptRequired' : 'Visible prompt cannot be empty.' ,
'settings.magicPrompts.page.status.unsavedChanges' : 'Unsaved changes' ,
'settings.magicPrompts.page.status.usingSavedOverride' : 'Using saved override' ,
'settings.magicPrompts.page.status.usingBuiltinDefault' : 'Using built-in default' ,
'settings.magicPrompts.page.toast.loadFailed' : 'Failed to load Magic Prompts' ,
'settings.magicPrompts.page.toast.visiblePromptRequired' : 'Visible prompt cannot be empty' ,
'settings.magicPrompts.page.toast.saved' : 'Magic prompt saved' ,
'settings.magicPrompts.page.toast.saveFailed' : 'Failed to save magic prompt' ,
'settings.magicPrompts.page.toast.resetSuccess' : 'Prompt reset to default' ,
'settings.magicPrompts.page.toast.resetFailed' : 'Failed to reset prompt' ,
'settings.magicPrompts.page.toast.resetAllSuccess' : 'All prompt overrides reset' ,
'settings.magicPrompts.page.toast.resetAllFailed' : 'Failed to reset all prompts' ,
} as const ;