2026-04-26 14:03:39 +03:00
export const settingsDict = {
2026-07-12 14:48:50 +03:00
'settings.providers.page.openCodeGo.title' : 'OpenCode Go usage tracking' ,
'settings.providers.page.openCodeGo.description' : 'Connect the OpenCode Go dashboard to show rolling, weekly, and monthly quota.' ,
'settings.providers.page.openCodeGo.workspaceId' : 'Workspace ID' ,
'settings.providers.page.openCodeGo.authCookie' : 'Auth cookie' ,
'settings.providers.page.openCodeGo.help' : 'Copy the workspace ID from the dashboard URL and the auth cookie from your browser developer tools. OpenChamber never scans browser cookie storage.' ,
'settings.providers.page.openCodeGo.save' : 'Save and validate' ,
'settings.providers.page.openCodeGo.replace' : 'Replace' ,
'settings.providers.page.openCodeGo.validate' : 'Validate' ,
'settings.providers.page.openCodeGo.delete' : 'Delete' ,
2026-07-13 10:28:02 +03:00
'settings.providers.page.quotaCredentials.saved' : '{provider} credentials saved.' ,
2026-07-19 19:15:03 +03:00
'settings.providers.page.quotaCredentials.accessToken' : 'Access token' ,
'settings.providers.page.quotaCredentials.refreshToken' : 'Refresh token' ,
'settings.providers.page.quotaCredentials.tokenPlaceholder' : 'Paste token' ,
2026-07-12 14:48:50 +03:00
'settings.providers.page.openCodeGo.saveFailed' : 'Could not validate OpenCode Go credentials.' ,
'settings.providers.page.openCodeGo.valid' : 'OpenCode Go credentials are valid.' ,
'settings.providers.page.openCodeGo.invalid' : 'OpenCode Go credentials are invalid or expired.' ,
'settings.providers.page.openCodeGo.deleted' : 'OpenCode Go credentials deleted.' ,
'settings.providers.page.openCodeGo.deleteFailed' : 'Could not delete OpenCode Go credentials.' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-05-25 12:20:04 -04:00
'settings.view.home.cards.plugins.title' : 'Plugins' ,
'settings.view.home.cards.plugins.description' : 'Manage opencode plugins' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-10 12:15:15 +03:00
'settings.view.search.placeholder' : 'Search settings' ,
'settings.view.search.aria' : 'Search settings' ,
'settings.view.search.clear' : 'Clear settings search' ,
'settings.view.search.noResults' : 'No matching settings' ,
2026-07-18 00:11:05 +03:00
'settings.view.nav.group.general' : 'OpenChamber' ,
'settings.view.nav.group.projects' : 'Workspace' ,
'settings.view.nav.group.opencode' : 'OpenCode' ,
'settings.view.nav.group.content' : 'Library' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-05-25 12:20:04 -04:00
'settings.page.plugins.title' : 'Plugins' ,
2026-04-26 14:03:39 +03:00
'settings.page.skills.title' : 'Skills' ,
'settings.page.skillsCatalog.title' : 'Skills Catalog' ,
'settings.page.git.title' : 'Git' ,
'settings.page.appearance.title' : 'Appearance' ,
2026-07-18 00:11:05 +03:00
'settings.page.appearance.description' : 'Customize how OpenChamber looks and feels.' ,
2026-04-26 14:03:39 +03:00
'settings.page.chat.title' : 'Chat' ,
2026-07-18 00:11:05 +03:00
'settings.page.chat.description' : 'Configure how messages and tools are displayed.' ,
2026-04-26 14:03:39 +03:00
'settings.page.shortcuts.title' : 'Shortcuts' ,
2026-07-18 00:11:05 +03:00
'settings.page.shortcuts.description' : 'Customize keyboard shortcuts.' ,
'settings.page.general.title' : 'General' ,
'settings.page.general.description' : 'App startup, security, connection, and privacy.' ,
2026-04-26 14:03:39 +03:00
'settings.page.sessions.title' : 'Sessions' ,
2026-07-18 00:11:05 +03:00
'settings.page.sessions.description' : 'Set defaults and retention for sessions.' ,
2026-04-26 14:03:39 +03:00
'settings.page.magicPrompts.title' : 'Magic Prompts' ,
'settings.page.notifications.title' : 'Notifications' ,
2026-07-18 00:11:05 +03:00
'settings.page.notifications.description' : 'Choose when and how you get notified.' ,
2026-04-26 14:03:39 +03:00
'settings.page.voice.title' : 'Voice' ,
2026-07-18 00:11:05 +03:00
'settings.page.voice.description' : 'Configure speech and dictation.' ,
'settings.page.tunnel.title' : 'External Tunnel' ,
'settings.page.tunnel.description' : 'Expose this instance over a remote tunnel.' ,
2026-06-10 12:00:10 +03:00
'settings.page.about.title' : 'About' ,
2026-05-21 20:00:35 +03:00
'settings.page.snippets.title' : 'Snippets' ,
'settings.snippets.sidebar.title' : 'Snippets' ,
'settings.snippets.sidebar.total' : 'Total: {count}' ,
'settings.snippets.sidebar.actions.create' : 'Create snippet' ,
'settings.snippets.sidebar.actions.more' : 'More actions for {name}' ,
'settings.snippets.sidebar.toast.deleted' : 'Snippet deleted' ,
'settings.snippets.sidebar.toast.deleteFailed' : 'Failed to delete snippet' ,
'settings.snippets.sidebar.dialog.deleteTitle' : 'Delete snippet?' ,
'settings.snippets.sidebar.dialog.deleteDescription' : 'This will permanently delete #{name}.' ,
'settings.snippets.page.empty.title' : 'Select a snippet' ,
'settings.snippets.page.empty.description' : 'Choose a snippet from the sidebar to edit it.' ,
'settings.snippets.page.title.new' : 'New snippet' ,
'settings.snippets.page.field.namePlaceholder' : 'snippet-name' ,
'settings.snippets.page.field.descriptionPlaceholder' : 'What this snippet does' ,
'settings.snippets.page.field.aliases' : 'Aliases' ,
'settings.snippets.page.field.aliasesPlaceholder' : 'safe, careful' ,
'settings.snippets.page.field.content' : 'Content' ,
'settings.snippets.page.field.contentPlaceholder' : 'Snippet markdown...' ,
'settings.snippets.page.hint' : 'Use #name in prompts. Supports aliases and prepend/append blocks compatible with opencode-snippets.' ,
'settings.snippets.page.toast.nameRequired' : 'Snippet name is required' ,
'settings.snippets.page.toast.contentRequired' : 'Snippet content is required' ,
'settings.snippets.page.toast.saveFailed' : 'Failed to save snippet' ,
'settings.snippets.page.toast.saved' : 'Snippet saved' ,
2026-05-21 09:35:42 -04:00
'settings.page.promptTemplates.title' : 'Prompt Templates' ,
'settings.promptTemplates.sidebar.title' : 'Prompt Templates' ,
'settings.promptTemplates.sidebar.total' : 'Total: {count}' ,
'settings.promptTemplates.sidebar.empty.title' : 'No prompt templates' ,
'settings.promptTemplates.sidebar.empty.description' : 'Create a prompt template to get started.' ,
'settings.promptTemplates.sidebar.toast.deleted' : 'Template "{name}" deleted' ,
'settings.promptTemplates.sidebar.toast.deleteFailed' : 'Failed to delete template' ,
'settings.promptTemplates.sidebar.toast.nameRequired' : 'Template name is required' ,
'settings.promptTemplates.sidebar.toast.renamed' : 'Template renamed' ,
'settings.promptTemplates.sidebar.toast.renameFailed' : 'Failed to rename template' ,
'settings.promptTemplates.sidebar.dialog.deleteTitle' : 'Delete template?' ,
'settings.promptTemplates.sidebar.dialog.deleteDescription' : 'This will permanently delete "{name}". This action cannot be undone.' ,
'settings.promptTemplates.sidebar.renameDialog.title' : 'Rename template' ,
'settings.promptTemplates.sidebar.renameDialog.description' : 'Enter a new name for "{name}".' ,
'settings.promptTemplates.sidebar.renameDialog.placeholder' : 'Template name' ,
'settings.promptTemplates.sidebar.badge.default' : 'default' ,
'settings.promptTemplates.page.empty.title' : 'Select a template' ,
'settings.promptTemplates.page.empty.description' : 'Choose a template from the sidebar to edit it.' ,
'settings.promptTemplates.page.title.new' : 'New template' ,
'settings.promptTemplates.page.subtitle.edit' : 'Edit template' ,
'settings.promptTemplates.page.subtitle.new' : 'Create a new prompt template' ,
'settings.promptTemplates.page.section.identity' : 'Identity' ,
'settings.promptTemplates.page.field.name' : 'Name' ,
'settings.promptTemplates.page.field.namePlaceholder' : 'Template name' ,
'settings.promptTemplates.page.section.template' : 'Template' ,
'settings.promptTemplates.page.field.templatePlaceholder' : 'Enter the prompt template text...' ,
'settings.promptTemplates.page.templateHint' : 'This text will be prepended to the user\'s prompt when selected in a multi-run group.' ,
'settings.promptTemplates.page.toast.nameRequired' : 'Template name is required' ,
'settings.promptTemplates.page.toast.updated' : 'Template updated' ,
'settings.promptTemplates.page.toast.updateFailed' : 'Failed to update template' ,
'settings.promptTemplates.page.toast.created' : 'Template created' ,
'settings.promptTemplates.page.toast.createFailed' : 'Failed to create template' ,
'settings.promptTemplates.page.toast.saveUnexpectedError' : 'An unexpected error occurred while saving' ,
2026-07-18 00:11:05 +03:00
'settings.openchamber.tunnel.title' : 'External Tunnel' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-05 15:01:22 +03:00
'settings.openchamber.tunnel.notAvailable.dependencyNotFound' : '{dependency} was not found.' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-05-25 18:43:23 +03:00
'settings.openchamber.tunnel.option.mode.quick.tooltip' : 'Quick Tunnel is best effort and uptime is not guaranteed.' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-05-29 12:08:01 +03:00
'settings.magicPrompts.sidebar.item.sessionExplore' : 'Codebase Tour' ,
2026-05-29 02:41:46 +03:00
'settings.magicPrompts.sidebar.item.sessionFeaturePlan' : 'Feature Planning' ,
2026-07-12 10:58:58 +03:00
'settings.magicPrompts.sidebar.item.sessionCraftGoal' : 'Goal Crafting' ,
'settings.magicPrompts.page.group.sessionCraftGoal.title' : 'Goal Crafting' ,
'settings.magicPrompts.page.group.sessionCraftGoal.description' : 'Prompts used by the /craft-goal slash command: visible user message + hidden instructions. Turns an idea or task into a clear, evidence-verifiable Goal through guided discovery.' ,
2026-05-29 02:56:44 +03:00
'settings.magicPrompts.sidebar.item.sessionCatchUp' : 'Catch Up' ,
'settings.magicPrompts.sidebar.item.sessionDebug' : 'Debugging' ,
2026-05-29 03:12:52 +03:00
'settings.magicPrompts.sidebar.item.sessionWeigh' : 'Weigh Options' ,
2026-05-15 13:26:46 +03:00
'settings.magicPrompts.sidebar.item.sessionFusion' : 'Fusion' ,
2026-04-26 14:03:39 +03:00
'settings.remoteInstances.sidebar.title' : 'Remote Instances' ,
'settings.remoteInstances.sidebar.total' : 'Total {count}' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.sidebar.newSshInstanceName' : 'New SSH connection' ,
'settings.remoteInstances.sidebar.actions.addSshInstance' : 'Add SSH connection' ,
2026-04-26 14:03:39 +03:00
'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?' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.sidebar.toast.createFailed' : 'Failed to create SSH connection' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.direct.sidebarTitle' : 'Server links' ,
'settings.remoteInstances.direct.sidebarDescription' : 'Connect with a link or token' ,
'settings.remoteInstances.direct.title' : 'Other OpenChamber servers' ,
2026-07-10 03:36:10 +03:00
'settings.remoteInstances.direct.description' : 'Servers this app can switch to. Import a pairing link from the other server, or add one by address.' ,
'settings.remoteInstances.direct.addDialog.description' : 'Add another OpenChamber server by URL. Use this when the server is already running and you have a connection token.' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.direct.field.labelPlaceholder' : 'Label (optional)' ,
'settings.remoteInstances.direct.field.urlPlaceholder' : 'https://host:port' ,
'settings.remoteInstances.direct.field.tokenPlaceholder' : 'Connection token (optional for trusted local servers)' ,
'settings.remoteInstances.direct.note' : 'Connection tokens are saved on this device and used only when this app connects to that server.' ,
2026-06-30 00:30:48 +03:00
'settings.remoteInstances.direct.headers.title' : 'Additional headers' ,
'settings.remoteInstances.direct.headers.description' : 'Optional HTTP headers for desktop API requests. Authorization is reserved for the connection token.' ,
'settings.remoteInstances.direct.headers.field.namePlaceholder' : 'Header name' ,
'settings.remoteInstances.direct.headers.field.valuePlaceholder' : 'Header value' ,
'settings.remoteInstances.direct.headers.actions.add' : 'Add header' ,
'settings.remoteInstances.direct.headers.removeAria' : 'Remove header' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.direct.actions.add' : 'Add Server' ,
'settings.remoteInstances.direct.import.description' : 'Paste a connection link from another OpenChamber server.' ,
'settings.remoteInstances.direct.import.placeholder' : 'openchamber://connect?...' ,
'settings.remoteInstances.direct.import.action' : 'Import Link' ,
'settings.remoteInstances.direct.error.invalidConnectLink' : 'Invalid OpenChamber connection link.' ,
'settings.remoteInstances.direct.state.loading' : 'Loading instances...' ,
'settings.remoteInstances.direct.state.empty' : 'No other servers added yet.' ,
'settings.remoteInstances.clientAuth.title' : 'Connect to this server' ,
'settings.remoteInstances.clientAuth.description' : 'Create a secure link or token so OpenChamber Desktop can connect to this server.' ,
2026-07-10 00:12:33 +03:00
'settings.remoteInstances.clientAuth.field.labelPlaceholder' : 'Device name — e.g. My iPhone' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.clientAuth.actions.create' : 'Create Token' ,
'settings.remoteInstances.clientAuth.actions.pair' : 'Create Link' ,
'settings.remoteInstances.clientAuth.actions.revoke' : 'Revoke' ,
'settings.remoteInstances.clientAuth.actions.clearRevoked' : 'Clear revoked' ,
'settings.remoteInstances.clientAuth.qrAlt' : 'OpenChamber connection QR code' ,
2026-07-10 00:12:33 +03:00
'settings.remoteInstances.clientAuth.qrEnlarge' : 'Enlarge QR code' ,
'settings.remoteInstances.clientAuth.qrScanHint' : 'Scan this with the OpenChamber app on your other device. It is single-use and expires.' ,
'settings.remoteInstances.clientAuth.qrDialogTitle' : 'Scan to connect' ,
'settings.remoteInstances.clientAuth.actions.addDevice' : 'Add a device' ,
'settings.remoteInstances.clientAuth.actions.copied' : 'Copied' ,
'settings.remoteInstances.clientAuth.addDevice.transportLabel' : 'Where will you use this device?' ,
'settings.remoteInstances.clientAuth.addDevice.subtitle' : 'Create a one-time QR code that connects another device to this server.' ,
'settings.remoteInstances.clientAuth.addDevice.transport.local' : 'This computer only' ,
'settings.remoteInstances.clientAuth.addDevice.transport.localHint' : 'For apps running on this same machine.' ,
'settings.remoteInstances.clientAuth.addDevice.transport.lan' : 'Home network only' ,
'settings.remoteInstances.clientAuth.addDevice.transport.lanHint' : 'Connects directly over your Wi-Fi. Does not work away from this network.' ,
'settings.remoteInstances.clientAuth.addDevice.transport.relay' : 'Anywhere' ,
'settings.remoteInstances.clientAuth.addDevice.transport.relayHint' : 'Works at home and away. Away traffic goes through OpenChamber Private Relay — an end-to-end encrypted tunnel. No setup needed.' ,
'settings.remoteInstances.clientAuth.addDevice.fallback.relay' : 'Also allow the encrypted relay when away from home' ,
'settings.remoteInstances.clientAuth.addDevice.fallback.preferLocal' : 'Prefer the direct home connection when available' ,
'settings.remoteInstances.clientAuth.addDevice.create' : 'Create QR code' ,
'settings.remoteInstances.clientAuth.addDevice.done' : 'Done' ,
2026-07-10 02:01:00 +03:00
'settings.remoteInstances.clientAuth.addDevice.connectedToast' : 'Device connected.' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.clientAuth.pairingUrl' : 'Connection link' ,
'settings.remoteInstances.clientAuth.createdToken' : 'Copy this token now. For security, it will not be shown again.' ,
'settings.remoteInstances.clientAuth.state.loading' : 'Loading tokens...' ,
'settings.remoteInstances.clientAuth.state.empty' : 'No devices connected yet.' ,
'settings.remoteInstances.clientAuth.state.revoked' : 'Revoked' ,
'settings.remoteInstances.clientAuth.state.thisDevice' : 'This device' ,
2026-07-10 00:12:33 +03:00
'settings.remoteInstances.clientAuth.state.pending' : 'Waiting to connect…' ,
'settings.remoteInstances.clientAuth.state.viaRelay' : 'Relay' ,
'settings.remoteInstances.clientAuth.state.connectedDirect' : 'Connected · Local network' ,
'settings.remoteInstances.clientAuth.state.connectedRelay' : 'Connected · Relay' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.clientAuth.lastUsed' : 'Last used {date}' ,
'settings.remoteInstances.clientAuth.neverUsed' : 'Never used' ,
2026-07-08 03:44:02 +03:00
'settings.remoteInstances.relay.title' : 'OpenChamber Relay' ,
2026-07-10 00:12:33 +03:00
'settings.remoteInstances.relay.autoHint' : 'Turns on automatically when you pair a device over the relay.' ,
2026-07-08 03:44:02 +03:00
'settings.remoteInstances.relay.description' : 'Let your other devices connect from anywhere without opening ports. Traffic is end-to-end encrypted — the relay cannot read it.' ,
'settings.remoteInstances.relay.enableHint' : 'Nothing is shared until you enable the relay on this server.' ,
'settings.remoteInstances.relay.actions.enable' : 'Enable Relay' ,
'settings.remoteInstances.relay.actions.disable' : 'Disable' ,
'settings.remoteInstances.relay.confirm.disable' : 'Disable the relay? Devices connected through it will be disconnected immediately.' ,
'settings.remoteInstances.relay.state.loading' : 'Checking relay status...' ,
'settings.remoteInstances.relay.state.disabled' : 'Disabled' ,
'settings.remoteInstances.relay.state.connecting' : 'Connecting' ,
'settings.remoteInstances.relay.state.connected' : 'Connected' ,
'settings.remoteInstances.relay.state.reconnecting' : 'Reconnecting' ,
'settings.remoteInstances.relay.state.error' : 'Error' ,
'settings.remoteInstances.relay.status.clientsOne' : '{count} device connected' ,
'settings.remoteInstances.relay.status.clientsMany' : '{count} devices connected' ,
'settings.remoteInstances.relay.pair.title' : 'Pair a device' ,
'settings.remoteInstances.relay.pair.labelPlaceholder' : 'Device name (optional)' ,
'settings.remoteInstances.relay.pair.includeToken' : 'Include access token (one-scan pairing)' ,
'settings.remoteInstances.relay.pair.noTokenHint' : 'Without a token, the device signs in with this server’ s UI password after connecting.' ,
'settings.remoteInstances.relay.pair.generate' : 'Create pairing link' ,
'settings.remoteInstances.relay.pair.requiresConnected' : 'Pairing becomes available once the relay is connected.' ,
'settings.remoteInstances.relay.pair.linkLabel' : 'Pairing link' ,
'settings.remoteInstances.relay.pair.warning' : 'This link grants access to this server. Do not share it.' ,
'settings.remoteInstances.relay.pair.qrAlt' : 'Relay pairing QR code' ,
'settings.remoteInstances.relay.pair.showQr' : 'Show QR code' ,
'settings.remoteInstances.relay.pair.qrDialogTitle' : 'Scan to pair' ,
'settings.remoteInstances.relay.pair.qrDialogDescription' : 'Scan this QR code with the OpenChamber app on your other device.' ,
'settings.remoteInstances.relay.pair.manageHint' : 'Manage or revoke paired devices in the “Connect to this server” list above.' ,
'settings.remoteInstances.relay.toast.enableFailed' : 'Failed to enable relay' ,
'settings.remoteInstances.relay.toast.disableFailed' : 'Failed to disable relay' ,
'settings.remoteInstances.relay.toast.offerFailed' : 'Failed to create pairing link' ,
'settings.remoteInstances.relay.toast.linkCopied' : 'Pairing link copied' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.section.instanceDescription' : 'Choose the SSH command and a display name for this connection.' ,
2026-04-26 14:03:39 +03:00
'settings.remoteInstances.page.field.mode' : 'Mode' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.field.modeHint' : 'Choose whether OpenChamber should start the server for you, or connect to one that is already running.' ,
2026-04-26 14:03:39 +03:00
'settings.remoteInstances.page.field.modePlaceholder' : 'Select mode' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.field.modeManaged' : 'Start it for me' ,
'settings.remoteInstances.page.field.modeExternal' : 'Already running' ,
2026-04-26 14:03:39 +03:00
'settings.remoteInstances.page.field.preferredRemotePort' : 'Preferred remote port' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.field.preferredRemotePortHint' : 'Port to use on the remote machine. Leave empty to choose one automatically.' ,
2026-04-26 14:03:39 +03:00
'settings.remoteInstances.page.field.keepServerRunning' : 'Keep server running' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.field.keepServerRunningHint' : 'Keep OpenChamber running on the remote machine after you disconnect.' ,
2026-04-26 14:03:39 +03:00
'settings.remoteInstances.page.field.bindHost' : 'Bind host' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.field.bindHostHint' : 'Where the local connection should listen. Use 127.0.0.1 or localhost unless you need LAN access.' ,
2026-04-26 14:03:39 +03:00
'settings.remoteInstances.page.field.preferredLocalPort' : 'Preferred local port' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.field.preferredLocalPortHint' : 'Local port to open for this connection. Leave empty to choose one automatically.' ,
2026-04-26 14:03:39 +03:00
'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)' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.toast.openLocalEndpointFailed' : 'Failed to open local address' ,
2026-04-26 14:03:39 +03:00
'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.' ,
2026-07-18 00:11:05 +03:00
'settings.common.infoAria' : 'More information' ,
2026-04-26 14:03:39 +03:00
'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...' ,
2026-07-18 00:11:05 +03:00
'settings.common.status.saved' : 'Saved' ,
'settings.common.status.saveFailed' : 'Save failed' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-05 15:09:24 +03:00
'settings.openchamber.about.field.openCodeVersion' : 'OpenCode version' ,
2026-04-26 14:03:39 +03:00
'settings.openchamber.about.state.checking' : 'Checking...' ,
'settings.openchamber.about.state.upToDate' : 'Up to date' ,
2026-06-05 15:09:24 +03:00
'settings.openchamber.about.state.unknown' : 'unknown' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-16 14:33:08 +03:00
'settings.agents.sidebar.toast.definitionNotFound' : 'Agent definition not found. Nothing was changed.' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-26 19:37:45 +03:00
'settings.agents.sidebar.toast.agentRenamed' : 'Agent renamed to "{name}"' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-26 19:37:45 +03:00
'settings.agents.page.toast.savedManualRestart' : 'Saved to disk. Restart your connected OpenCode server to apply the changes.' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-07-18 00:11:05 +03:00
'settings.agents.page.permissionsEditor.sectionInfo' : 'Edits this agent\'s own permission rules exactly as stored in its config. "Inherit" keeps a key unset so global config and defaults apply.' ,
'settings.agents.page.permissionsEditor.defaultLabel' : 'Default for all tools' ,
'settings.agents.page.permissionsEditor.defaultAria' : 'Default permission for all tools' ,
'settings.agents.page.permissionsEditor.defaultInfo' : 'The agent-level fallback (the * key). Applies to any tool without its own rule.' ,
'settings.agents.page.permissionsEditor.effectiveHint' : '→ {action}' ,
'settings.agents.page.permissionsEditor.ruleCount' : '{count} rules' ,
'settings.agents.page.permissionsEditor.keyAria' : 'Permission for {key}' ,
'settings.agents.page.permissionsEditor.patternPlaceholder' : 'Pattern, e.g. rm -rf * or /path/**' ,
'settings.agents.page.permissionsEditor.patternActionAria' : 'Action for {key} pattern' ,
'settings.agents.page.permissionsEditor.customKeyPlaceholder' : 'Custom permission key…' ,
'settings.agents.page.permissionsEditor.sessionRulesTitle' : 'Session-granted (not saved)' ,
'settings.agents.page.permissionsEditor.sessionRulesInfo' : 'Rules granted during live sessions (e.g. "always allow" answers). They apply right now but are not part of the saved config and disappear on restart.' ,
'settings.agents.page.permissionsEditor.action.default' : 'Default' ,
'settings.agents.page.permissionsEditor.action.inherit' : 'Inherit' ,
'settings.agents.page.permissionsEditor.action.allow' : 'Allow' ,
'settings.agents.page.permissionsEditor.action.ask' : 'Ask' ,
'settings.agents.page.permissionsEditor.action.deny' : 'Deny' ,
'settings.agents.page.permissionsEditor.actions.save' : 'Save permissions' ,
'settings.agents.page.permissionsEditor.actions.discard' : 'Discard' ,
'settings.agents.page.permissionsEditor.actions.addRule' : 'Add rule' ,
'settings.agents.page.permissionsEditor.actions.addKey' : 'Add key' ,
'settings.agents.page.permissionsEditor.actions.removeRuleAria' : 'Remove rule' ,
'settings.agents.page.permissionsEditor.actions.retry' : 'Retry' ,
'settings.agents.page.permissionsEditor.state.loadFailed' : 'Could not load the agent permission config.' ,
'settings.agents.page.permissionsEditor.toast.saved' : 'Permissions saved' ,
'settings.agents.page.permissionsEditor.toast.savedRestartRequired' : 'Permissions saved — restart the OpenCode server to apply' ,
'settings.agents.page.permissionsEditor.toast.saveFailed' : 'Failed to save permissions' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-24 07:22:59 +11:00
'settings.agents.page.field.variant' : 'Thinking Variant' ,
'settings.agents.page.field.variantTooltip' : 'Controls the thinking/reasoning depth for this agent. Maps to provider-specific parameters (e.g. Anthropic variant, OpenAI reasoning effort).' ,
'settings.agents.page.field.variantHint' : 'e.g. high, max, low' ,
'settings.agents.page.field.variantPlaceholder' : 'default' ,
2026-04-26 14:03:39 +03:00
'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. *)' ,
2026-04-30 14:39:55 -07:00
'settings.page.behavior.title' : 'Behavior' ,
2026-07-18 00:11:05 +03:00
'settings.page.behavior.description' : 'Guide how the agent responds.' ,
2026-04-30 14:39:55 -07:00
'settings.behavior.page.title' : 'Behavior' ,
'settings.behavior.page.warning.title' : 'Global rules are combined with project rules' ,
'settings.behavior.page.warning.description' : 'Changes made here update {path}. OpenCode also includes any project-level AGENTS.md rules when they exist.' ,
'settings.behavior.page.section.systemPrompt' : 'Global AGENTS.md' ,
'settings.behavior.page.field.systemPromptPlaceholder' : 'You are a helpful AI assistant...\n\nUse this space to define absolute rules for how the AI should behave across all sessions and providers.' ,
2026-05-01 01:27:31 +03:00
'settings.behavior.page.section.responseStyle' : 'Response style' ,
'settings.behavior.page.responseStyle.tooltip' : 'When enabled, these instructions guide how the assistant responds in each new conversation. They are sent with your first message and do not change your global AGENTS.md rules.' ,
'settings.behavior.page.responseStyle.enableAria' : 'Enable response style instructions' ,
'settings.behavior.page.responseStyle.enable' : 'Add response style instructions to new conversations' ,
'settings.behavior.page.responseStyle.preset' : 'Preset' ,
'settings.behavior.page.responseStyle.option.concise' : 'Concise' ,
'settings.behavior.page.responseStyle.option.detailed' : 'Detailed' ,
'settings.behavior.page.responseStyle.option.mentor' : 'Mentor' ,
'settings.behavior.page.responseStyle.option.pushback' : 'Pushback' ,
'settings.behavior.page.responseStyle.option.noFiller' : 'No filler' ,
'settings.behavior.page.responseStyle.option.matchEnergy' : 'Match my energy' ,
'settings.behavior.page.responseStyle.option.warmPeer' : 'Warm peer' ,
'settings.behavior.page.responseStyle.option.custom' : 'Custom' ,
'settings.behavior.page.responseStyle.customPlaceholder' : 'Write the instruction to add to the first message...' ,
2026-04-30 14:39:55 -07:00
'settings.behavior.page.toast.saved' : 'Behavior saved successfully' ,
'settings.behavior.page.toast.saveFailed' : 'Failed to save behavior' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-18 23:51:40 +03:00
'settings.gitIdentities.editor.section.commitSigning' : 'Commit signing' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-18 23:51:40 +03:00
'settings.gitIdentities.editor.field.signCommits' : 'Sign commits with this identity' ,
'settings.gitIdentities.editor.field.signingKey' : 'Signing key' ,
'settings.gitIdentities.editor.field.signingKeyPlaceholder' : '~/.ssh/id_ed25519.pub' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-18 23:51:40 +03:00
'settings.gitIdentities.editor.toast.signingKeyRequired' : 'Signing key is required when commit signing is enabled' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-05-17 00:47:51 +03:00
'settings.skills.sidebar.badge.opencode' : 'opencode' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-05-17 00:47:51 +03:00
'settings.skills.location.option.userClaude.label' : 'User / Claude' ,
'settings.skills.location.option.userClaude.description' : 'Global Claude skills location' ,
'settings.skills.location.option.projectClaude.label' : 'Project / Claude' ,
'settings.skills.location.option.projectClaude.description' : 'Current project .claude location' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-07-13 08:59:31 +03:00
'settings.openchamber.desktopNetwork.field.windowControlsPosition' : 'Window controls position' ,
2026-07-26 13:39:46 +03:00
'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription' : 'Choose where minimize, maximize, and close buttons appear. Defaults to the right.' ,
2026-07-13 08:59:31 +03:00
'settings.openchamber.desktopNetwork.field.windowControlsPositionAria' : 'Window controls position' ,
'settings.openchamber.desktopNetwork.option.windowControlsLeft' : 'Left' ,
'settings.openchamber.desktopNetwork.option.windowControlsRight' : 'Right' ,
2026-05-26 01:36:11 +03:00
'settings.openchamber.desktopNetwork.field.launchAtLoginAria' : 'Start OpenChamber at login' ,
'settings.openchamber.desktopNetwork.field.launchAtLogin' : 'Start OpenChamber when you log in' ,
2026-07-10 17:40:48 +08:00
'settings.openchamber.desktopNetwork.field.launchAtLoginDescription' : 'Starts the app in the background without opening a window. Use the desktop status icon to open it.' ,
2026-07-22 10:08:58 +03:00
'settings.openchamber.desktopNetwork.field.macMenuBarAria' : 'Show OpenChamber in the macOS menu bar' ,
'settings.openchamber.desktopNetwork.field.macMenuBar' : 'Show OpenChamber in the menu bar' ,
'settings.openchamber.desktopNetwork.field.macMenuBarDescription' : 'Requires an app restart. When off, OpenChamber does not create the menu bar item or run its session, approval, and usage updates.' ,
2026-07-10 17:40:48 +08:00
'settings.openchamber.desktopNetwork.field.minimizeToTrayAria' : 'Minimize and close OpenChamber to the system tray' ,
'settings.openchamber.desktopNetwork.field.minimizeToTray' : 'Minimize and close to the system tray' ,
2026-07-24 09:59:32 +03:00
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription' : 'Keeps OpenChamber running in the system tray when the main window is minimized or closed.' ,
2026-07-01 19:07:20 +03:00
'settings.openchamber.desktopNetwork.field.keepAwakeAria' : 'Keep computer awake while OpenChamber is running' ,
'settings.openchamber.desktopNetwork.field.keepAwake' : 'Keep computer awake while OpenChamber is running' ,
'settings.openchamber.desktopNetwork.field.keepAwakeDescription' : 'Prevents system sleep so phones can keep reaching this app. The screen can still turn off.' ,
2026-04-26 14:03:39 +03:00
'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.' ,
2026-06-12 18:24:07 +03:00
'settings.openchamber.desktopNetwork.field.passwordRequiredWarning' : 'LAN access requires a Desktop UI Password. Until one is set, the desktop app starts local-only.' ,
2026-07-18 00:11:05 +03:00
'settings.openchamber.desktopPassword.actions.showPassword' : 'Show password' ,
'settings.openchamber.desktopPassword.actions.hidePassword' : 'Hide password' ,
2026-05-25 15:20:56 +03:00
'settings.openchamber.desktopPassword.field.password' : 'Desktop UI Password' ,
'settings.openchamber.desktopPassword.field.passwordPlaceholder' : 'No password required' ,
'settings.openchamber.desktopPassword.field.passwordDescription' : 'OpenChamber asks after restart, then when the login session expires: after 12 hours, or 7 days with Trust this device. Leave empty to disable login.' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-05-26 01:36:11 +03:00
'settings.openchamber.desktopNetwork.error.launchAtLoginUnsupported' : 'Launch at login is not supported on this system' ,
'settings.openchamber.desktopNetwork.error.launchAtLoginSaveFailed' : 'Failed to update launch at login setting' ,
2026-07-10 17:40:48 +08:00
'settings.openchamber.desktopNetwork.error.minimizeToTrayUnsupported' : 'System tray background mode is not supported on this system' ,
'settings.openchamber.desktopNetwork.error.minimizeToTraySaveFailed' : 'Failed to update system tray setting' ,
2026-07-01 19:07:20 +03:00
'settings.openchamber.desktopNetwork.error.keepAwakeUnsupported' : 'Preventing sleep is not supported on this system' ,
'settings.openchamber.desktopNetwork.error.keepAwakeSaveFailed' : 'Failed to update keep awake setting' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-05-15 21:38:57 +03:00
'settings.openchamber.opencodeCli.field.showUpdateNotifications' : 'Show OpenCode update notifications' ,
'settings.openchamber.opencodeCli.field.showUpdateNotificationsAria' : 'Show OpenCode update notifications' ,
2026-07-24 21:54:28 +03:00
'settings.openchamber.opencodeCli.field.agentControlTool' : 'Agent control tool' ,
'settings.openchamber.opencodeCli.field.agentControlToolAria' : 'Enable the agent control tool' ,
'settings.openchamber.opencodeCli.field.agentControlToolInfo' : 'Let agents orchestrate your work from chat: spin up sessions and worktrees, delegate prompts to other agents, and manage scheduled tasks. Adds a small tool description to each session. Applies after Save + Reload.' ,
2026-04-26 14:03:39 +03:00
'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.' ,
2026-05-25 12:20:04 -04:00
'settings.plugins.sidebar.title' : 'Plugins' ,
'settings.plugins.sidebar.total' : 'Total {count}' ,
'settings.plugins.sidebar.actions.addTitle' : 'Add plugin' ,
'settings.plugins.sidebar.actions.deleting' : 'Deleting…' ,
'settings.plugins.sidebar.empty.title' : 'No plugins configured' ,
'settings.plugins.sidebar.empty.description' : 'Use the + button above to add one' ,
'settings.plugins.sidebar.group.userEntries' : 'User config' ,
'settings.plugins.sidebar.group.userFiles' : 'User plugin file' ,
'settings.plugins.sidebar.group.projectEntries' : 'Project config' ,
'settings.plugins.sidebar.group.projectFiles' : 'Project plugin file' ,
'settings.plugins.sidebar.kind.npm' : 'npm package' ,
'settings.plugins.sidebar.kind.path' : 'Local path' ,
'settings.plugins.sidebar.kind.file' : 'Plugin file' ,
'settings.plugins.sidebar.deleteDialog.title' : 'Delete plugin' ,
'settings.plugins.sidebar.deleteDialog.description' : 'Are you sure you want to delete "{name}"?' ,
'settings.plugins.sidebar.toast.deleted' : 'Plugin "{name}" deleted' ,
'settings.plugins.sidebar.toast.deleteFailed' : 'Failed to delete plugin' ,
'settings.plugins.page.empty.select' : 'Select a plugin to view or edit' ,
'settings.plugins.page.empty.add' : 'Or click + to add a new plugin' ,
'settings.plugins.page.header.entry' : 'Installed plugin' ,
'settings.plugins.page.header.file' : 'Plugin file' ,
'settings.plugins.page.field.spec' : 'Spec' ,
'settings.plugins.page.field.spec.placeholder' : 'npm-package@version or /absolute/path' ,
'settings.plugins.page.field.options' : 'Options (JSON)' ,
'settings.plugins.page.field.options.invalidJson' : 'Invalid JSON' ,
'settings.plugins.page.field.fileName' : 'Filename' ,
'settings.plugins.page.field.content' : 'Content' ,
'settings.plugins.page.field.scope' : 'Scope' ,
'settings.plugins.scope.user' : 'User' ,
'settings.plugins.scope.project' : 'Project' ,
'settings.plugins.page.action.save' : 'Save' ,
'settings.plugins.page.action.discard' : 'Discard' ,
'settings.plugins.dialog.add.title' : 'Add plugin' ,
'settings.plugins.dialog.add.tab.npm' : 'From npm' ,
'settings.plugins.dialog.add.tab.path' : 'From local path' ,
'settings.plugins.dialog.add.tab.file' : 'New file' ,
'settings.plugins.dialog.add.action.submit' : 'Add' ,
'settings.plugins.dialog.add.action.cancel' : 'Cancel' ,
'settings.plugins.toast.created' : 'Plugin added' ,
'settings.plugins.toast.updated' : 'Plugin updated' ,
'settings.plugins.toast.reloadFailed' : 'opencode reload failed — restart required' ,
'settings.plugins.validation.fileName' : 'Filename must be lowercase, end in .js / .ts / .mjs / .cjs' ,
'settings.plugins.validation.specRequired' : 'Spec is required' ,
'settings.plugins.registry.badge.update.label' : '↑ {version}' ,
'settings.plugins.registry.badge.update.tooltip' : 'Update available: {current} → {latest}' ,
'settings.plugins.registry.badge.malformed.tooltip' : 'Spec is malformed' ,
'settings.plugins.registry.badge.missingPackage.tooltip' : 'Package {name} not found on npm' ,
'settings.plugins.registry.badge.missingVersion.tooltip' : 'Version {version} of {name} not published' ,
'settings.plugins.registry.badge.pathMissing.tooltip' : 'File not found: {path}' ,
'settings.plugins.registry.badge.pathUnreadable.tooltip' : 'File not readable: {path}' ,
'settings.plugins.registry.badge.network.tooltip' : 'Could not reach npm registry' ,
'settings.plugins.registry.banner.updateAvailable.title' : 'Update available' ,
'settings.plugins.registry.banner.updateAvailable.description' : '{current} → {latest}' ,
'settings.plugins.registry.banner.updateAvailable.action' : 'Update to {latest}' ,
'settings.plugins.registry.banner.invalid.title' : 'Invalid plugin' ,
'settings.plugins.registry.banner.invalid.malformed' : 'Spec syntax is malformed' ,
'settings.plugins.registry.banner.invalid.missingPackage' : 'Package not found on npm' ,
'settings.plugins.registry.banner.invalid.missingVersion' : 'Version not published' ,
'settings.plugins.registry.banner.invalid.pathMissing' : 'File does not exist' ,
'settings.plugins.registry.banner.invalid.pathUnreadable' : 'File is not readable' ,
'settings.plugins.sidebar.actions.updateToLatest' : 'Update to latest' ,
'settings.plugins.sidebar.actions.refresh' : 'Check for updates' ,
'settings.plugins.sidebar.group.updatesAvailable_one' : '{count} update available' ,
'settings.plugins.sidebar.group.updatesAvailable_other' : '{count} updates available' ,
'settings.plugins.toast.updatedToLatest' : 'Plugin updated to {version}' ,
'settings.plugins.toast.refreshing' : 'Checking npm for updates…' ,
'settings.plugins.toast.refreshFailed' : 'Could not check npm registry' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-05-08 12:22:59 +03:00
'settings.openchamber.keyboardShortcuts.action.new_mini_chat.label' : 'New Mini Chat window' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-05-15 00:27:39 +03:00
'settings.openchamber.keyboardShortcuts.action.cycle_agent.label' : 'Cycle agent' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-26 19:37:45 +03:00
'settings.openchamber.keyboardShortcuts.action.open_model_selector.label' : 'Open model selector' ,
2026-04-26 14:03:39 +03:00
'settings.openchamber.keyboardShortcuts.action.expand_input.label' : 'Expand input' ,
2026-05-05 16:21:06 +08:00
'settings.openchamber.keyboardShortcuts.action.open_timeline_dialog.label' : 'Open conversation timeline' ,
2026-07-13 09:02:14 +03:00
'settings.openchamber.keyboardShortcuts.action.toggle_prompt_navigator.label' : 'Toggle prompt navigator' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-07-09 13:54:05 +03:00
'settings.projects.page.field.defaultModel' : 'Default model for new chats' ,
'settings.projects.page.field.defaultModelDescription' : 'Used when starting a new chat in this project. Falls back to global defaults when unset.' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-07-09 13:54:05 +03:00
'settings.projects.page.toast.saveFailed' : 'Failed to save project settings' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-05-26 01:54:24 +03:00
'settings.usage.sidebar.field.showPredictions' : 'Show predictions' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.description' : 'Connect to another machine over SSH and open OpenChamber there.' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.section.actionsDescription' : 'Connect, reconnect, view logs, or remove this connection.' ,
'settings.remoteInstances.page.section.remoteServer' : 'OpenChamber on the remote machine' ,
'settings.remoteInstances.page.section.remoteServerDescription' : 'Choose how OpenChamber should run after SSH connects.' ,
'settings.remoteInstances.page.section.mainTunnel' : 'Local access' ,
'settings.remoteInstances.page.section.mainTunnelDescription' : 'Choose the local address used to open this remote OpenChamber server.' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.section.portForwardsDescription' : 'Optional extra ports to make available through this SSH connection.' ,
2026-04-26 14:03:39 +03:00
'settings.remoteInstances.page.field.sshCommand' : 'SSH command' ,
'settings.remoteInstances.page.field.sshCommandPlaceholder' : 'ssh user@host' ,
'settings.remoteInstances.page.field.nickname' : 'Nickname' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.field.nicknamePlaceholder' : 'Work laptop' ,
2026-04-26 14:03:39 +03:00
'settings.remoteInstances.page.field.connectionTimeoutSeconds' : 'Connection timeout (seconds)' ,
'settings.remoteInstances.page.field.installMethod' : 'Install method' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.field.installMethodHint' : 'How OpenChamber should be placed on the remote machine when this app starts it for you.' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.field.forwardTypeHint' : 'Choose what kind of port access this SSH connection should provide.' ,
2026-04-26 14:03:39 +03:00
'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)' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.forwardTypeDescription.local' : 'Open a local port that connects to something on the remote machine.' ,
'settings.remoteInstances.page.forwardTypeDescription.remote' : 'Open a port on the remote machine that connects back to your computer.' ,
'settings.remoteInstances.page.forwardTypeDescription.dynamic' : 'Open a local SOCKS proxy through the SSH connection.' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.import.sectionTitle' : 'Saved SSH hosts' ,
2026-04-26 14:03:39 +03:00
'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.' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.patternDialog.title' : 'Choose an SSH destination' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-02 00:43:05 +03:00
'settings.remoteInstances.page.phase.probingRemote' : 'Checking remote machine' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-26 20:16:42 +11:00
'settings.openchamber.worktrees.setup.waitForCommands' : 'Wait for setup commands before creating or sending a session' ,
'settings.openchamber.worktrees.setup.waitForCommandsAria' : 'Wait for Worktree setup commands before creating or sending a session' ,
2026-07-09 13:54:05 +03:00
'settings.openchamber.worktrees.setup.toast.saveFailed' : 'Failed to save worktree setup commands' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-07-05 23:19:10 +03:00
'settings.openchamber.defaults.smallModel.title' : 'Small Model' ,
'settings.openchamber.defaults.smallModel.description' : 'A cheap model for quick utility tasks like short recaps and summaries.' ,
'settings.openchamber.defaults.smallModel.useDefault' : 'Use default small model' ,
'settings.openchamber.defaults.smallModel.useDefaultAria' : 'Use default small model' ,
'settings.openchamber.defaults.smallModel.overrideModel' : 'Override model' ,
2026-07-13 02:07:46 +03:00
'settings.openchamber.defaults.field.openFilesPreviewAria' : 'Open previewable files in preview mode' ,
'settings.openchamber.defaults.field.openFilesPreview' : 'Open previewable files in preview mode' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-11 19:30:19 +03:00
'settings.github.page.accountSource.oauth' : 'OAuth' ,
'settings.github.page.accountSource.cli' : 'CLI' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-11 18:59:58 +03:00
'settings.github.page.oauth.title' : 'GitHub OAuth Token' ,
'settings.github.page.ghCli.title' : 'GitHub CLI Token' ,
2026-06-11 11:43:41 -04:00
'settings.github.page.ghCli.activeDescription' : 'Authenticated via the gh CLI' ,
'settings.github.page.ghCli.fallbackDescription' : 'Available as fallback if OpenChamber auth is removed' ,
'settings.github.page.ghCli.disabledDescription' : 'Installed but not used as a fallback' ,
'settings.github.page.ghCli.actions.disable' : 'Disable' ,
'settings.github.page.ghCli.actions.enable' : 'Enable' ,
'settings.github.page.toast.ghCliEnabled' : 'gh CLI fallback enabled' ,
'settings.github.page.toast.ghCliDisabled' : 'gh CLI fallback disabled' ,
'settings.github.page.toast.ghCliUpdateFailed' : 'Failed to update gh CLI setting' ,
2026-04-26 14:03:39 +03:00
'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.speechRecognition' : 'Speech Recognition' ,
2026-07-04 02:48:07 +03:00
'settings.voice.page.field.enableVoiceInput' : 'Enable voice input' ,
'settings.voice.page.field.enableVoiceInputAria' : 'Enable voice input (dictation)' ,
2026-05-19 02:06:52 +03:00
'settings.voice.page.section.playbackAndSummary' : 'Playback' ,
2026-04-26 14:03:39 +03:00
'settings.voice.page.field.provider' : 'Provider' ,
'settings.voice.page.provider.browser' : 'Browser' ,
2026-07-18 00:11:05 +03:00
'settings.voice.page.provider.openai' : 'OpenAI' ,
2026-04-26 14:03:39 +03:00
'settings.voice.page.provider.custom' : 'Custom' ,
'settings.voice.page.provider.say' : 'Say' ,
'settings.voice.page.provider.server' : 'Server' ,
2026-07-04 02:48:07 +03:00
'settings.voice.page.provider.local' : 'Local' ,
'settings.voice.page.tooltip.sttLocal' : 'On-device transcription on the OpenChamber server. Models download automatically; no API key needed.' ,
'settings.voice.page.tooltip.localTts' : 'On-device synthesis on the OpenChamber server (Kokoro, English). The model downloads automatically; no API key needed.' ,
'settings.voice.page.stt.model.parakeetV2' : 'Parakeet v2 (English)' ,
'settings.voice.page.stt.model.parakeetV3' : 'Parakeet v3 (25 European languages)' ,
'settings.voice.page.stt.model.whisperBase' : 'Whisper base (multilingual)' ,
'settings.voice.page.stt.model.whisperTiny' : 'Whisper tiny (multilingual)' ,
'settings.voice.page.stt.badge.bestForEnglish' : 'Best for English' ,
'settings.voice.page.stt.badge.bestForMultilingual' : 'Best for multilingual' ,
'settings.voice.page.stt.meta.accuracy' : 'Accuracy' ,
'settings.voice.page.stt.meta.speed' : 'Speed' ,
'settings.voice.page.stt.modelInstalled' : 'Model installed' ,
'settings.voice.page.stt.modelDownloading' : 'Downloading model...' ,
'settings.voice.page.stt.modelDownloadingProgress' : 'Downloading model... {percent}%' ,
'settings.voice.page.stt.modelNotInstalled' : 'Model not downloaded' ,
'settings.voice.page.stt.modelDownload' : 'Download' ,
'settings.voice.page.stt.modelDelete' : 'Delete model' ,
'settings.voice.page.stt.modelRetry' : 'Retry' ,
2026-05-14 01:19:52 +03:00
'settings.voice.page.provider.wasm' : 'Local' ,
'settings.voice.page.stt.wasmModel' : 'Whisper Model' ,
'settings.voice.page.stt.wasmLoaded' : 'Model loaded, ready' ,
'settings.voice.page.stt.wasmDownloading' : 'Downloading model...' ,
'settings.voice.page.stt.wasmLoading' : 'Loading model...' ,
'settings.voice.page.stt.wasmNotLoaded' : 'Model will load on first voice use' ,
'settings.voice.page.stt.wasmDownload' : 'Load' ,
'settings.voice.page.stt.wasmRetry' : 'Retry' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-05-13 19:30:25 +07:00
'settings.voice.page.field.transcribeOnStopAria' : 'Transcribe when stopping recording' ,
'settings.voice.page.field.transcribeOnStop' : 'Transcribe on Stop' ,
2026-04-26 14:03:39 +03:00
'settings.voice.page.field.millisecondsUnit' : 'ms' ,
'settings.voice.page.field.messageReadAloudButtonAria' : 'Message read aloud button' ,
2026-06-07 09:19:46 +03:00
'settings.voice.page.field.messageReadAloudButton' : 'Read message aloud button' ,
2026-04-26 14:03:39 +03:00
'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.' ,
2026-06-09 00:31:21 +08:00
'settings.voice.page.field.ttsInputMode' : 'TTS Input Mode' ,
'settings.voice.page.field.ttsInputModeSanitized' : 'Sanitized' ,
'settings.voice.page.field.ttsInputModeRaw' : 'Raw Markdown' ,
2026-07-05 23:19:10 +03:00
'settings.voice.page.field.ttsInputModeSummarized' : 'summarized' ,
2026-04-26 14:03:39 +03:00
'settings.openchamber.visual.section.colorMode' : 'Color Mode' ,
2026-07-18 00:11:05 +03:00
'settings.openchamber.visual.section.colorModeAndTheme' : 'Color mode & Theme' ,
2026-06-02 00:43:05 +03:00
'settings.openchamber.visual.section.mobileLayout' : 'Mobile Layout' ,
2026-06-02 21:01:43 +03:00
'settings.openchamber.visual.option.mobileLayout.default' : 'Old' ,
2026-06-02 00:43:05 +03:00
'settings.openchamber.visual.option.mobileLayout.new' : 'New' ,
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' ,
2026-07-18 00:11:05 +03:00
'settings.openchamber.visual.section.densityAndType' : 'Density & type' ,
'settings.openchamber.visual.section.appInstall' : 'App install' ,
2026-04-26 14:03:39 +03:00
'settings.openchamber.visual.section.navigation' : 'Navigation' ,
'settings.openchamber.visual.section.chatRenderMode' : 'Chat Render Mode' ,
'settings.openchamber.visual.section.chatRenderModeAria' : 'Chat render mode' ,
2026-07-18 00:11:05 +03:00
'settings.openchamber.visual.section.chatDisplay' : 'Display' ,
'settings.openchamber.visual.section.chatMessageOptions' : 'Message options' ,
'settings.openchamber.visual.section.chatFeatures' : 'Features' ,
2026-04-26 14:03:39 +03:00
'settings.openchamber.visual.section.messageStreamTransport' : 'Message Stream Transport' ,
'settings.openchamber.visual.section.activityDefault' : 'Activity Default' ,
'settings.openchamber.visual.section.activityDefaultAria' : 'Activity default mode' ,
2026-07-18 00:11:05 +03:00
'settings.openchamber.visual.section.showToolsOpenedByDefault' : 'Show tools opened by default' ,
2026-07-13 01:33:19 +03:00
'settings.openchamber.visual.section.sessionAssistance' : 'Session Assistance' ,
'settings.openchamber.visual.section.reasoning' : 'Reasoning' ,
'settings.openchamber.visual.section.messageAppearance' : 'Message Appearance' ,
'settings.openchamber.visual.section.toolsAndFiles' : 'Tools & Files' ,
'settings.openchamber.visual.section.composer' : 'Composer' ,
2026-04-26 14:03:39 +03:00
'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.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...' ,
2026-06-09 18:38:01 +03:00
'settings.openchamber.visual.field.macVibrancy' : 'Window transparency' ,
'settings.openchamber.visual.field.macVibrancyHint' : 'Use the native macOS blur (vibrancy) behind the sidebar. Turn off for fully solid, opaque surfaces.' ,
2026-06-28 01:07:52 +03:00
'settings.openchamber.visual.field.dockBadge' : 'Dock badge' ,
'settings.openchamber.visual.field.dockBadgeHint' : 'Show a count of chats with unseen activity on the macOS dock icon.' ,
2026-06-09 18:38:01 +03:00
'settings.openchamber.visual.actions.saveAndRestart' : 'Save & restart' ,
'settings.openchamber.visual.actions.restarting' : 'Restarting…' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-05-05 16:26:34 +07:00
'settings.openchamber.visual.field.mobileKeyboardMode' : 'Mobile Keyboard Behavior' ,
'settings.openchamber.visual.field.mobileKeyboardModeHint' : 'Default browser behavior is safest. Resize content asks supported browsers to shrink the app when the on-screen keyboard opens.' ,
'settings.openchamber.visual.field.mobileKeyboardModeAria' : 'Mobile keyboard behavior' ,
'settings.openchamber.visual.field.selectMobileKeyboardModePlaceholder' : 'Select keyboard behavior' ,
'settings.openchamber.visual.actions.resetMobileKeyboardModeAria' : 'Reset mobile keyboard behavior' ,
2026-04-26 14:03:39 +03:00
'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-07-17 13:17:21 +03:00
'settings.openchamber.visual.field.terminalShell' : 'Terminal Shell' ,
'settings.openchamber.visual.field.terminalShellAria' : 'Select terminal shell' ,
'settings.openchamber.visual.field.terminalShellHint' : 'Restart the terminal to apply this change to the current session.' ,
'settings.openchamber.visual.field.terminalLoginShell' : 'Start as login shell' ,
'settings.openchamber.visual.option.terminalShell.auto' : 'Auto' ,
2026-07-11 22:45:27 +11:00
'settings.openchamber.visual.field.editorFontSize' : 'Editor 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' ,
2026-07-11 22:45:27 +11:00
'settings.openchamber.visual.actions.resetEditorFontSizeAria' : 'Reset editor font size' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-06-08 11:10:32 -05:00
'settings.openchamber.visual.field.fileEditorKeymap' : 'File editor keymap' ,
'settings.openchamber.visual.option.fileEditorKeymap.default' : 'Default' ,
'settings.openchamber.visual.option.fileEditorKeymap.vim' : 'Vim' ,
2026-04-26 14:03:39 +03:00
'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}' ,
2026-07-06 22:54:31 +03:00
'settings.openchamber.visual.field.sessionRecap' : 'Generate Session Recap' ,
'settings.openchamber.visual.field.sessionRecapAria' : 'Generate a recap after the agent finishes' ,
'settings.openchamber.visual.field.sessionSuggestion' : 'Generate Next User Message Suggestion' ,
'settings.openchamber.visual.field.sessionSuggestionAria' : 'Generate a suggested next user message after the agent finishes' ,
2026-07-12 01:23:22 +03:00
'settings.openchamber.visual.field.sessionGoal' : 'Enable Session Goals' ,
'settings.openchamber.visual.field.sessionGoalAria' : 'Keep the session working toward a goal automatically' ,
'settings.openchamber.visual.goal.sectionTitle' : 'Goal' ,
'settings.openchamber.visual.goal.budgetLabel' : 'Default token budget' ,
'settings.openchamber.visual.goal.budgetAria' : 'Apply a default token budget to new goals' ,
'settings.openchamber.visual.goal.description' : 'Arm the target button in the composer and the next message becomes a goal: the agent keeps working toward it automatically, audited by the small model, even while you are away.' ,
2026-04-26 14:03:39 +03:00
'settings.openchamber.visual.field.showReasoningTracesAria' : 'Show reasoning traces' ,
'settings.openchamber.visual.field.showReasoningTraces' : 'Show Reasoning Traces' ,
2026-05-16 17:20:16 +03:00
'settings.openchamber.visual.field.collapsibleThinkingBlocksAria' : 'Enable collapsible reasoning blocks' ,
'settings.openchamber.visual.field.collapsibleThinkingBlocks' : 'Enable Collapsible Reasoning Blocks' ,
2026-06-11 01:26:50 +03:00
'settings.openchamber.visual.field.collapsibleUserMessagesAria' : 'Collapse long user messages' ,
'settings.openchamber.visual.field.collapsibleUserMessages' : 'Collapse Long User Messages' ,
2026-04-26 14:03:39 +03:00
'settings.openchamber.visual.field.stickyUserHeaderAria' : 'Sticky user header' ,
'settings.openchamber.visual.field.stickyUserHeader' : 'Sticky User Header' ,
2026-07-13 09:02:14 +03:00
'settings.openchamber.visual.field.promptNavigatorEnabledAria' : 'Prompt navigator' ,
'settings.openchamber.visual.field.promptNavigatorEnabled' : 'Prompt Navigator' ,
2026-06-12 18:01:07 -03:00
'settings.openchamber.visual.field.expandedEditorToolbarAria' : 'Always show editor toolbar' ,
'settings.openchamber.visual.field.expandedEditorToolbar' : 'Always show editor toolbar (docked under the file tabs)' ,
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-07-08 14:46:44 +03:00
'settings.openchamber.visual.field.codeBlockLineWrapAria' : 'Wrap code block lines' ,
'settings.openchamber.visual.field.codeBlockLineWrap' : 'Wrap Code Block Lines' ,
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-07-13 01:06:44 +03:00
'settings.openchamber.visual.field.allowPromptingSubagentSessionsAria' : 'Allow prompting subagent sessions' ,
'settings.openchamber.visual.field.allowPromptingSubagentSessions' : 'Allow Prompting Subagent Sessions' ,
2026-07-24 23:07:39 +03:00
'settings.openchamber.visual.field.draftStartersVisible' : 'Show Starters on New Session Screen' ,
'settings.openchamber.visual.field.draftStartersVisibleAria' : 'Show starters on the new session screen' ,
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' ,
2026-06-03 22:11:37 +03:00
'settings.openchamber.visual.field.showTurnChangedFilesAria' : 'Show changed files for completed turns' ,
'settings.openchamber.visual.field.showTurnChangedFiles' : 'Show Changed Files for Completed Turns' ,
2026-04-26 14:03:39 +03:00
'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' ,
2026-07-18 00:11:05 +03:00
'settings.openchamber.visual.option.themeMode.system.description' : 'Follow system setting' ,
2026-04-26 14:03:39 +03:00
'settings.openchamber.visual.option.themeMode.light' : 'Light' ,
2026-07-18 00:11:05 +03:00
'settings.openchamber.visual.option.themeMode.light.description' : 'Always use light appearance' ,
2026-04-26 14:03:39 +03:00
'settings.openchamber.visual.option.themeMode.dark' : 'Dark' ,
2026-07-18 00:11:05 +03:00
'settings.openchamber.visual.option.themeMode.dark.description' : 'Always use dark appearance' ,
2026-04-26 14:03:39 +03:00
'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.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.' ,
2026-05-05 16:26:34 +07:00
'settings.openchamber.visual.option.mobileKeyboardMode.native.label' : 'Follow browser' ,
'settings.openchamber.visual.option.mobileKeyboardMode.native.description' : 'Use the browser default for panning and viewport changes when the keyboard opens.' ,
'settings.openchamber.visual.option.mobileKeyboardMode.resizeContent.label' : 'Resize content' ,
'settings.openchamber.visual.option.mobileKeyboardMode.resizeContent.description' : 'Ask supported browsers to shrink the app layout instead of relying only on panning.' ,
2026-04-26 14:03:39 +03:00
'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.' ,
2026-06-11 01:26:50 +03:00
'chat.message.userText.collapseAria' : 'Collapse user message' ,
2026-04-26 14:03:39 +03:00
'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-05-29 12:08:01 +03:00
'settings.magicPrompts.page.group.sessionExplore.title' : 'Codebase Tour' ,
'settings.magicPrompts.page.group.sessionExplore.description' : 'Prompts used by the /explore slash command: visible user message + hidden instructions. Investigates the repository and gives a structured orientation — the big picture, main modules, how they connect, and where to start — rather than a file-by-file dump.' ,
2026-05-29 12:42:42 +03:00
'settings.magicPrompts.page.group.sessionWorkspaceReview.description' : 'Prompts used by the /workspace-review slash command: visible user message + hidden instructions. Reviews the workspace diff for whether it achieves its intent and is correct and adequate, classifying findings by severity.' ,
2026-05-29 02:41:46 +03:00
'settings.magicPrompts.page.group.sessionFeaturePlan.title' : 'Feature Planning' ,
'settings.magicPrompts.page.group.sessionFeaturePlan.description' : 'Prompts used by the /plan-feature slash command: visible user message + hidden instructions. Runs a guided dialogue that researches the code and asks clarifying questions in small batches before producing an implementation plan.' ,
2026-05-29 02:56:44 +03:00
'settings.magicPrompts.page.group.sessionCatchUp.title' : 'Catch Up' ,
2026-05-29 12:34:29 +03:00
'settings.magicPrompts.page.group.sessionCatchUp.description' : 'Prompts used by the /catch-up slash command: visible user message + hidden instructions. Builds branch-aware context — the branch\'s commits, its PR, and uncommitted work together — to understand what you were doing, then gives a digestible summary and a product-focused next step.' ,
2026-05-29 02:56:44 +03:00
'settings.magicPrompts.page.group.sessionDebug.title' : 'Debugging' ,
'settings.magicPrompts.page.group.sessionDebug.description' : 'Prompts used by the /debug slash command: visible user message + hidden instructions. Runs a guided root-cause investigation — captures the symptom, forms hypotheses, checks them against the code, and confirms the cause before proposing a fix.' ,
2026-05-29 03:12:52 +03:00
'settings.magicPrompts.page.group.sessionWeigh.title' : 'Weigh Options' ,
'settings.magicPrompts.page.group.sessionWeigh.description' : 'Prompts used by the /weigh slash command: visible user message + hidden instructions. Investigates the code, then lays out 2-3 distinct approaches with trade-offs and a recommendation — without writing a plan or code.' ,
2026-05-15 13:26:46 +03:00
'settings.magicPrompts.page.group.sessionFusion.title' : 'Fusion' ,
'settings.magicPrompts.page.group.sessionFusion.description' : 'Prompts used when combining multi-run outputs into one final answer: visible user message + hidden instructions before source results.' ,
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' ,
2026-06-29 09:28:20 +11:00
'settings.openchamber.visual.section.followUpBehavior' : 'Follow-up behavior' ,
'settings.openchamber.visual.section.followUpBehaviorAria' : 'Follow-up behavior' ,
'settings.openchamber.visual.field.followUpBehaviorAria' : 'Follow-up behavior: {option}' ,
'settings.openchamber.visual.field.followUpBehaviorDescription' : 'Choose what happens when you press Enter on a follow-up message while the agent is still responding.' ,
2026-06-29 01:41:35 +03:00
'settings.openchamber.visual.option.followUpBehavior.steer.label' : 'Steer' ,
'settings.openchamber.visual.option.followUpBehavior.queue.label' : 'Queue' ,
2026-04-26 14:03:39 +03:00
} as const ;