Merge remote-tracking branch 'origin/main' into feat/german-locale

This commit is contained in:
Bohdan Triapitsyn
2026-08-03 01:57:04 +03:00
935 changed files with 84236 additions and 42097 deletions
@@ -9,6 +9,9 @@ export const settingsDict = {
'settings.providers.page.openCodeGo.validate': 'Validate',
'settings.providers.page.openCodeGo.delete': 'Delete',
'settings.providers.page.quotaCredentials.saved': '{provider} credentials saved.',
'settings.providers.page.quotaCredentials.accessToken': 'Access token',
'settings.providers.page.quotaCredentials.refreshToken': 'Refresh token',
'settings.providers.page.quotaCredentials.tokenPlaceholder': 'Paste token',
'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.',
@@ -47,6 +50,10 @@ export const settingsDict = {
'settings.view.search.aria': 'Search settings',
'settings.view.search.clear': 'Clear settings search',
'settings.view.search.noResults': 'No matching settings',
'settings.view.nav.group.general': 'OpenChamber',
'settings.view.nav.group.projects': 'Workspace',
'settings.view.nav.group.opencode': 'OpenCode',
'settings.view.nav.group.content': 'Library',
'settings.page.projects.title': 'Projects',
'settings.page.remoteInstances.title': 'Remote Instances',
'settings.page.providers.title': 'Providers',
@@ -59,13 +66,22 @@ export const settingsDict = {
'settings.page.skillsCatalog.title': 'Skills Catalog',
'settings.page.git.title': 'Git',
'settings.page.appearance.title': 'Appearance',
'settings.page.appearance.description': 'Customize how OpenChamber looks and feels.',
'settings.page.chat.title': 'Chat',
'settings.page.chat.description': 'Configure how messages and tools are displayed.',
'settings.page.shortcuts.title': 'Shortcuts',
'settings.page.shortcuts.description': 'Customize keyboard shortcuts.',
'settings.page.general.title': 'General',
'settings.page.general.description': 'App startup, security, connection, and privacy.',
'settings.page.sessions.title': 'Sessions',
'settings.page.sessions.description': 'Set defaults and retention for sessions.',
'settings.page.magicPrompts.title': 'Magic Prompts',
'settings.page.notifications.title': 'Notifications',
'settings.page.notifications.description': 'Choose when and how you get notified.',
'settings.page.voice.title': 'Voice',
'settings.page.tunnel.title': 'Remote Tunnel',
'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.',
'settings.page.about.title': 'About',
'settings.page.snippets.title': 'Snippets',
'settings.snippets.sidebar.title': 'Snippets',
@@ -123,7 +139,7 @@ export const settingsDict = {
'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',
'settings.openchamber.tunnel.title': 'Remote Tunnel',
'settings.openchamber.tunnel.title': 'External Tunnel',
'settings.openchamber.tunnel.description': 'Configure secure remote access with quick links or your own managed remote Cloudflare tunnel.',
'settings.openchamber.tunnel.note.serverSideEnforced': 'Secure tunnel access is enforced server-side.',
'settings.openchamber.tunnel.note.connectLinksOneTime': 'Connect links are one-time and are revoked when tunnel stops or connect-link TTL expires.',
@@ -399,6 +415,7 @@ export const settingsDict = {
'settings.remoteInstances.page.logsDialog.selectedInstanceFallback': 'Selected instance',
'settings.remoteInstances.page.patternDialog.descriptionWithHost': '{host} requires a concrete destination.',
'settings.remoteInstances.page.patternDialog.description': 'Enter destination.',
'settings.common.infoAria': 'More information',
'settings.common.actions.cancel': 'Cancel',
'settings.common.actions.create': 'Create',
'settings.common.actions.delete': 'Delete',
@@ -409,6 +426,8 @@ export const settingsDict = {
'settings.common.actions.copyAll': 'Copy all',
'settings.common.actions.clear': 'Clear',
'settings.common.actions.saving': 'Saving...',
'settings.common.status.saved': 'Saved',
'settings.common.status.saveFailed': 'Save failed',
'settings.common.actions.saveChanges': 'Save Changes',
'settings.common.scope.global': 'Global',
'settings.common.scope.project': 'Project',
@@ -493,6 +512,33 @@ export const settingsDict = {
'settings.agents.page.section.identityRole': 'Identity & Role',
'settings.agents.page.section.modelParameters': 'Model & Parameters',
'settings.agents.page.section.systemPrompt': 'System Prompt',
'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',
'settings.agents.page.section.toolPermissions': 'Tool Permissions',
'settings.agents.page.field.agentName': 'Agent Name',
'settings.agents.page.field.agentNamePlaceholder': 'agent-name',
@@ -528,10 +574,16 @@ export const settingsDict = {
'settings.agents.page.permissions.permissionPlaceholder': 'Permission...',
'settings.agents.page.permissions.patternPlaceholder': 'Pattern (e.g. *)',
'settings.page.behavior.title': 'Behavior',
'settings.page.behavior.description': 'Guide how the agent responds.',
'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.section.systemPromptOptimization': 'System prompt optimization',
'settings.behavior.page.systemPromptOptimization.enable': 'Optimize system prompt size',
'settings.behavior.page.systemPromptOptimization.enableAria': 'Optimize OpenCode system prompt size',
'settings.behavior.page.systemPromptOptimization.info': 'Reduces the system prompt by an estimated 40% for the build and plan agents. Other agents are not changed. This can remove custom definitions that override build or plan, so do not enable it for workflows that customize those agents. Restarting OpenCode applies the change.',
'settings.behavior.page.systemPromptOptimization.restarting': 'Restarting OpenCode to apply system prompt optimization…',
'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.',
'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.',
@@ -894,17 +946,24 @@ export const settingsDict = {
'settings.openchamber.sessionRetention.toast.failedDeleteCount': 'Failed to delete {count} session(s)',
'settings.openchamber.desktopNetwork.title': 'Desktop Network Access',
'settings.openchamber.desktopNetwork.field.windowControlsPosition': 'Window controls position',
'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': 'Choose where minimize, maximize, and close buttons appear. Auto follows your operating system.',
'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': 'Choose where minimize, maximize, and close buttons appear. Defaults to the right.',
'settings.openchamber.desktopNetwork.field.windowControlsPositionAria': 'Window controls position',
'settings.openchamber.desktopNetwork.option.windowControlsAuto': 'Auto',
'settings.openchamber.desktopNetwork.option.windowControlsLeft': 'Left',
'settings.openchamber.desktopNetwork.option.windowControlsRight': 'Right',
'settings.openchamber.desktopNetwork.field.windowControls': 'Window controls',
'settings.openchamber.desktopNetwork.field.windowControlsStyle': 'Style',
'settings.openchamber.desktopNetwork.field.windowControlsStyleAria': 'Window controls style',
'settings.openchamber.desktopNetwork.option.windowControlsClassic': 'Classic',
'settings.openchamber.desktopNetwork.option.windowControlsTrafficLights': 'Traffic lights',
'settings.openchamber.desktopNetwork.field.launchAtLoginAria': 'Start OpenChamber at login',
'settings.openchamber.desktopNetwork.field.launchAtLogin': 'Start OpenChamber when you log in',
'settings.openchamber.desktopNetwork.field.launchAtLoginDescription': 'Starts the app in the background without opening a window. Use the desktop status icon to open it.',
'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.',
'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',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': 'Keeps OpenChamber running in the Windows system tray when the main window is minimized or closed.',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': 'Keeps OpenChamber running in the system tray when the main window is minimized or closed.',
'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.',
@@ -913,6 +972,8 @@ export const settingsDict = {
'settings.openchamber.desktopNetwork.field.allowLanAccessDescription': 'Restarts the app so phones, tablets, and other computers on your Wi-Fi can open it.',
'settings.openchamber.desktopNetwork.field.warning': 'Warning: while enabled, the app is reachable by anyone on the same local network.',
'settings.openchamber.desktopNetwork.field.passwordRequiredWarning': 'LAN access requires a Desktop UI Password. Until one is set, the desktop app starts local-only.',
'settings.openchamber.desktopPassword.actions.showPassword': 'Show password',
'settings.openchamber.desktopPassword.actions.hidePassword': 'Hide password',
'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.',
@@ -935,6 +996,9 @@ export const settingsDict = {
'settings.openchamber.opencodeCli.field.binaryPathPlaceholder': '/Users/you/.bun/bin/opencode',
'settings.openchamber.opencodeCli.field.showUpdateNotifications': 'Show OpenCode update notifications',
'settings.openchamber.opencodeCli.field.showUpdateNotificationsAria': 'Show OpenCode update notifications',
'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.',
'settings.openchamber.opencodeCli.actions.browseAria': 'Browse for OpenCode binary path',
'settings.openchamber.opencodeCli.actions.browse': 'Browse',
'settings.openchamber.opencodeCli.actions.saveAndReload': 'Save + Reload',
@@ -1041,10 +1105,9 @@ export const settingsDict = {
'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.toggle_right_sidebar.label': 'Toggle context panel',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': 'Open Git surface',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': 'Open Files surface',
'settings.openchamber.keyboardShortcuts.action.new_chat.label': 'New session',
'settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label': 'New worktree draft',
'settings.openchamber.keyboardShortcuts.action.new_mini_chat.label': 'New Mini Chat window',
@@ -1230,7 +1293,7 @@ export const settingsDict = {
'settings.openchamber.worktrees.setup.waitForCommandsAria': 'Wait for Worktree setup commands before creating or sending a session',
'settings.openchamber.worktrees.setup.toast.saveFailed': 'Failed to save worktree setup commands',
'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.tooltip': 'Deleting a worktree also removes its 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',
@@ -1491,6 +1554,10 @@ export const settingsDict = {
'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',
'settings.openchamber.defaults.walkthroughModel.title': 'Changes Walkthrough Model',
'settings.openchamber.defaults.walkthroughModel.description': 'The AI review of your changes needs structured output and room for a whole diff, which a cheap small model often cannot give. Models the catalog reports as unable to produce structured output are hidden from this picker. Leave it unset and the small model is used.',
'settings.openchamber.defaults.walkthroughModel.overrideModel': 'Walkthrough model',
'settings.openchamber.defaults.walkthroughModel.usesSmallModel': 'Small model',
'settings.openchamber.defaults.field.openFilesPreviewAria': 'Open previewable files in preview mode',
'settings.openchamber.defaults.field.openFilesPreview': 'Open previewable files in preview mode',
'settings.openchamber.defaults.option.default': 'Default',
@@ -1618,6 +1685,7 @@ export const settingsDict = {
'settings.voice.page.section.playbackAndSummary': 'Playback',
'settings.voice.page.field.provider': 'Provider',
'settings.voice.page.provider.browser': 'Browser',
'settings.voice.page.provider.openai': 'OpenAI',
'settings.voice.page.provider.custom': 'Custom',
'settings.voice.page.provider.say': 'Say',
'settings.voice.page.provider.server': 'Server',
@@ -1697,18 +1765,24 @@ export const settingsDict = {
'settings.voice.page.field.ttsInputModeRaw': 'Raw Markdown',
'settings.voice.page.field.ttsInputModeSummarized': 'summarized',
'settings.openchamber.visual.section.colorMode': 'Color Mode',
'settings.openchamber.visual.section.colorModeAndTheme': 'Color mode & Theme',
'settings.openchamber.visual.section.mobileLayout': 'Mobile Layout',
'settings.openchamber.visual.option.mobileLayout.default': 'Old',
'settings.openchamber.visual.option.mobileLayout.new': 'New',
'settings.openchamber.visual.section.localization': 'Localization',
'settings.openchamber.visual.section.spacingAndLayout': 'Spacing & Layout',
'settings.openchamber.visual.section.densityAndType': 'Density & type',
'settings.openchamber.visual.section.appInstall': 'App install',
'settings.openchamber.visual.section.navigation': 'Navigation',
'settings.openchamber.visual.section.chatRenderMode': 'Chat Render Mode',
'settings.openchamber.visual.section.chatRenderModeAria': 'Chat render mode',
'settings.openchamber.visual.section.chatDisplay': 'Display',
'settings.openchamber.visual.section.chatMessageOptions': 'Message options',
'settings.openchamber.visual.section.chatFeatures': 'Features',
'settings.openchamber.visual.section.messageStreamTransport': 'Message Stream Transport',
'settings.openchamber.visual.section.activityDefault': 'Activity Default',
'settings.openchamber.visual.section.activityDefaultAria': 'Activity default mode',
'settings.openchamber.visual.section.showToolsOpenedByDefault': 'Show tools opened by default:',
'settings.openchamber.visual.section.showToolsOpenedByDefault': 'Show tools opened by default',
'settings.openchamber.visual.section.sessionAssistance': 'Session Assistance',
'settings.openchamber.visual.section.reasoning': 'Reasoning',
'settings.openchamber.visual.section.messageAppearance': 'Message Appearance',
@@ -1761,6 +1835,11 @@ export const settingsDict = {
'settings.openchamber.visual.field.fontSizePercentageAria': 'Font size percentage',
'settings.openchamber.visual.actions.resetFontSizeAria': 'Reset font size',
'settings.openchamber.visual.field.terminalFontSize': 'Terminal Font Size',
'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',
'settings.openchamber.visual.field.editorFontSize': 'Editor Font Size',
'settings.openchamber.visual.field.codeFont': 'Code Font',
'settings.openchamber.visual.field.selectCodeFontAria': 'Select code font',
@@ -1808,6 +1887,9 @@ export const settingsDict = {
'settings.openchamber.visual.field.promptNavigatorEnabled': 'Prompt Navigator',
'settings.openchamber.visual.field.expandedEditorToolbarAria': 'Always show editor toolbar',
'settings.openchamber.visual.field.expandedEditorToolbar': 'Always show editor toolbar (docked under the file tabs)',
'settings.openchamber.visual.field.autoSaveEnabledAria': 'Auto-save files',
'settings.openchamber.visual.field.autoSaveEnabled': 'Auto-save files',
'settings.openchamber.visual.field.autoSaveEnabledInfo': 'Automatically save file edits after you stop typing. Disable to require manual save.',
'settings.openchamber.visual.field.wideChatLayoutAria': 'Wide chat layout',
'settings.openchamber.visual.field.wideChatLayout': 'Wide Chat Layout',
'settings.openchamber.visual.field.codeBlockLineWrapAria': 'Wrap code block lines',
@@ -1817,6 +1899,8 @@ export const settingsDict = {
'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.',
'settings.openchamber.visual.field.allowPromptingSubagentSessionsAria': 'Allow prompting subagent sessions',
'settings.openchamber.visual.field.allowPromptingSubagentSessions': 'Allow Prompting Subagent Sessions',
'settings.openchamber.visual.field.draftStartersVisible': 'Show Starters on New Session Screen',
'settings.openchamber.visual.field.draftStartersVisibleAria': 'Show starters on the new session screen',
'settings.openchamber.visual.field.showToolFileIconsAria': 'Show tool file icons',
'settings.openchamber.visual.field.showToolFileIcons': 'Show Tool File Icons',
'settings.openchamber.visual.field.showTurnChangedFilesAria': 'Show changed files for completed turns',
@@ -1834,8 +1918,11 @@ export const settingsDict = {
'settings.openchamber.visual.field.sendAnonymousUsageReports': 'Send anonymous usage reports',
'settings.openchamber.visual.field.sendAnonymousUsageReportsHint': 'Helps us understand which app versions are actively used so we can prioritize improvements. Only app version, platform, and runtime are collected - no personal data or code.',
'settings.openchamber.visual.option.themeMode.system': 'System',
'settings.openchamber.visual.option.themeMode.system.description': 'Follow system setting',
'settings.openchamber.visual.option.themeMode.light': 'Light',
'settings.openchamber.visual.option.themeMode.light.description': 'Always use light appearance',
'settings.openchamber.visual.option.themeMode.dark': 'Dark',
'settings.openchamber.visual.option.themeMode.dark.description': 'Always use dark appearance',
'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',
+170 -43
View File
@@ -2,6 +2,15 @@ import { settingsDict } from './en.settings';
export const dict = {
...settingsDict,
'terminalView.actions.attachSelection': 'Attach selected output',
'terminalView.actions.restart': 'Restart terminal',
'chat.message.terminalContext': '{terminal}, lines {start}-{end}',
'chat.chatInput.terminalContext': '{terminal}, lines {start}-{end}',
'chat.chatInput.terminalContextRemove': 'Remove terminal context',
'chat.chatInput.prCommentContext': 'PR comments',
'chat.chatInput.prCommentContextRemove': 'Remove PR comments context',
'chat.chatInput.prCheckContext': 'Failed PR checks',
'chat.chatInput.prCheckContextRemove': 'Remove PR checks context',
'common.loading': 'Loading...',
'common.unavailable': 'Unavailable',
'common.language.english': 'English',
@@ -44,6 +53,9 @@ export const dict = {
'mobile.connect.unlockButton': 'Unlock and connect',
'mobile.connect.cancelPassword': 'Use another server',
'mobile.connect.connecting': 'Connecting...',
'mobile.connect.notice.unreachable': 'Couldn\'t reach {label}. Check that the server is running.',
'mobile.connect.notice.authExpired': 'Access to {label} has expired or was revoked. Sign in again.',
'mobile.connect.recovery.description': 'Could not connect to the saved server. Check that it is running, or pick another instance.',
'mobile.connect.scanQr': 'Scan QR code',
'mobile.connect.welcome.scanHint': 'On your computer, open «Add a device» to show a QR code, then scan it here.',
'mobile.connect.advanced': 'Advanced',
@@ -79,14 +91,14 @@ export const dict = {
'mobile.nav.changes': 'Changes',
'mobile.nav.settings': 'Settings',
'mobile.surface.closeAria': 'Close',
'mobile.header.openMenuAria': 'Open menu',
'mobile.header.openWorkspaceAria': 'Open workspace panel',
'mobile.header.openMetadataAria': 'Open session metadata',
'mobile.header.metadata.context': 'Context',
'mobile.header.metadata.branch': 'Branch',
'mobile.header.metadata.usage': 'Usage',
'mobile.menu.titleAria': 'Workspace tools',
'mobile.menu.files': 'Files',
'mobile.menu.changes': 'Changes',
'mobile.menu.terminal': 'Terminal',
'mobile.menu.mcp': 'MCP',
'mobile.menu.instances': 'Instances',
'mobile.menu.update': 'Update',
@@ -113,18 +125,20 @@ export const dict = {
'mobile.sessions.newChat': 'New chat',
'mobile.sessions.editOrder': 'Reorder projects',
'mobile.sessions.doneEditing': 'Done',
'mobile.sessions.editOrderHint': 'Drag the handle to reorder projects. Tap the check to finish.',
'mobile.sessions.editOrderHint': 'Drag the handle to reorder projects. Tap a project to show its worktrees and drag those too. Tap the check to finish.',
'mobile.sessions.editProjectAria': 'Edit {label}',
'mobile.sessions.dragHandleAria': 'Drag {label} to reorder',
'mobile.sessions.moveUpAria': 'Move {label} up',
'mobile.sessions.moveDownAria': 'Move {label} down',
'mobile.sessions.removeProjectAria': 'Remove {label}',
'mobile.sessions.cancelRemoveProjectAria': 'Cancel removing {label}',
'mobile.sessions.confirmRemoveProject': 'Close',
'mobile.sessions.confirmRemoveProjectAria': 'Confirm removing {label}',
'mobile.sessions.toast.projectRemoved': 'Removed {label}',
'mobile.sessions.archiveSessionAria': 'Archive {title}',
'mobile.sessions.cancelArchiveAria': 'Cancel archiving {title}',
'mobile.sessions.renameSessionAria': 'Rename {title}',
'mobile.sessions.renameError': 'Failed to rename session',
'mobile.sessions.deleteSessionAria': 'Delete {title}',
'mobile.sessions.confirmDeleteSessionAria': 'Confirm deleting {title}',
'mobile.projectEdit.worktreesTitle': 'Worktrees',
'mobile.projectEdit.worktreesEmpty': 'No worktrees in this project yet.',
'mobile.projectEdit.reorderHint': 'Drag to reorder worktrees.',
@@ -170,6 +184,8 @@ export const dict = {
'mobile.files.copyPathAria': 'Copy file path',
'mobile.files.copyContent': 'Copy content',
'mobile.files.copyContentAria': 'Copy file content',
'mobile.files.editAria': 'Edit file',
'mobile.files.doneEditingAria': 'Done editing',
'mobile.files.toast.pathCopied': 'Path copied',
'mobile.files.toast.contentCopied': 'Content copied',
'mobile.files.toast.copyFailed': 'Copy failed',
@@ -291,6 +307,8 @@ export const dict = {
'sessions.scheduledTasks.editor.goal.aria': 'Run this task as a goal the agent pursues to completion',
'sessions.scheduledTasks.editor.goal.budgetLabel': 'Token budget',
'sessions.scheduledTasks.editor.goal.budgetAria': 'Limit the goal to a token budget',
'sessions.scheduledTasks.editor.permissionAutoAccept.label': 'Auto-accept permissions',
'sessions.scheduledTasks.editor.permissionAutoAccept.aria': 'Start the task session with permission auto-accept enabled',
'sessions.scheduledTasks.editor.actions.closeAria': 'Close',
'sessions.scheduledTasks.editor.actions.cancel': 'Cancel',
'sessions.scheduledTasks.editor.actions.save': 'Save',
@@ -409,6 +427,28 @@ export const dict = {
'sessions.sidebar.empty.noMatches.title': 'No matching sessions',
'sessions.sidebar.empty.noMatches.description': 'Try a different title, branch, folder, or path.',
'sessions.sidebar.activity.recentTitle': 'recent',
'sessions.archivePage.allDirectories': 'All directories',
'sessions.sidebar.header.displayMode.stickyHeaders': 'Sticky project headers',
'sessions.sidebar.header.grouping.label': 'Group sessions',
'sessions.sidebar.header.grouping.byWorktree': 'By worktree',
'sessions.sidebar.header.grouping.flat': 'Flat list',
'sessions.sidebar.project.actions.manageWorktrees': 'Manage worktrees',
'sessions.worktreesPage.title': 'Worktrees in {project}',
'sessions.worktreesPage.description': 'Create, inspect, and remove git worktrees for this project.',
'sessions.worktreesPage.closeAria': 'Close worktrees',
'sessions.scheduledTasks.page.closeAria': 'Close scheduled tasks',
'sessions.sidebar.nav.archive': 'Archive',
'sessions.archivePage.title': 'Archive',
'sessions.archivePage.countSingle': '{count} archived session',
'sessions.archivePage.countPlural': '{count} archived sessions',
'sessions.archivePage.closeAria': 'Close archive',
'sessions.archivePage.searchPlaceholder': 'Search archived sessions',
'sessions.archivePage.empty.noArchived': 'No archived sessions',
'sessions.archivePage.empty.noMatches': 'No matching archived sessions',
'sessions.archivePage.otherProjects': 'other projects',
'sessions.archivePage.deleteProject': 'Delete all archived sessions in this project',
'sessions.archivePage.deleteProjectAria': 'Delete all archived sessions in {label}',
'sessions.archivePage.deleteSessionAria': 'Delete {title}',
'sessions.switcher.openAria': 'Open session switcher',
'sessions.switcher.empty': 'No recent sessions',
'sessions.switcher.draftTitle': 'New session',
@@ -442,6 +482,10 @@ export const dict = {
'sessions.sidebar.project.actions.closeProject': 'Close project',
'sessions.sidebar.project.actions.newDraftSession': 'New draft session',
'sessions.sidebar.session.menu.rename': 'Rename',
'sessions.sidebar.session.menu.copyId': 'Copy session ID',
'sessions.sidebar.session.copyId.success': 'Session ID copied',
'sessions.sidebar.session.copyId.error': 'Failed to copy session ID',
'header.sessionActions.openAria': 'Open session actions',
'sessions.sidebar.session.rename.save': 'Save session name',
'sessions.sidebar.session.rename.cancel': 'Cancel renaming session',
'sessions.sidebar.session.menu.unpin': 'Unpin session',
@@ -451,6 +495,12 @@ export const dict = {
'sessions.sidebar.session.menu.copyLink': 'Copy link',
'sessions.sidebar.session.menu.unshare': 'Unshare',
'sessions.sidebar.session.menu.exportMarkdown': 'Export Markdown',
'sessions.sidebar.session.menu.moveToWorktree': 'Move to new worktree',
'sessions.sidebar.session.moveToWorktree.success': 'Session moved to a new worktree',
'sessions.sidebar.session.moveToWorktree.failed': 'Failed to move session to a new worktree',
'sessions.sidebar.session.moveToWorktree.tooltip': 'Creates a new worktree from the current branch, transfers uncommitted changes, and moves this session and its sub-sessions there.',
'sessions.sidebar.session.moveToWorktree.tooltipBusy': 'Available when the session is idle. Stop or wait for the current activity to finish.',
'sessions.sidebar.session.moveToWorktree.tooltipMoving': 'This session is already being moved to a new worktree.',
'sessions.sidebar.session.menu.runFusion': 'Run fusion',
'sessions.sidebar.session.menu.openInSidePanel': 'Open in Side Panel',
'sessions.sidebar.session.actions.openInEditor': 'Open in Editor',
@@ -458,6 +508,7 @@ export const dict = {
'sessions.sidebar.session.menu.label': 'Session menu',
'sessions.sidebar.session.untitled': 'Untitled Session',
'sessions.sidebar.session.export.nothingToExport': 'Nothing to export',
'sessions.sidebar.session.export.failedLoadHistory': 'Failed to load the complete session history',
'sessions.sidebar.session.export.success': 'Session exported',
'sessions.sidebar.session.export.failedRevealPath': 'Failed to reveal path',
'sessions.sidebar.session.export.untitledSubagent': 'Untitled Sub-agent',
@@ -471,6 +522,7 @@ export const dict = {
'sessions.sidebar.session.status.active': 'Session active',
'sessions.sidebar.session.status.unread': 'Unread updates',
'sessions.sidebar.session.status.pinned': 'Pinned session',
'sessions.sidebar.session.status.movingToWorktree': 'Moving session to a new worktree',
'sessions.sidebar.session.status.permissionRequired': 'Permission required',
'sessions.sidebar.session.subsessions.collapse': 'Collapse subsessions',
'sessions.sidebar.session.subsessions.expand': 'Expand subsessions',
@@ -512,7 +564,7 @@ export const dict = {
'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': 'This action permanently removes {count} sessions from {dateLabel}.',
'sessions.sidebar.dialogs.sessionList.more': '+{count} more',
'sessions.sidebar.session.share.successTitle': 'Session shared',
'sessions.sidebar.session.share.successDescription': 'You can copy the link from the menu.',
'sessions.sidebar.session.share.successDescription': 'Share link copied to clipboard.',
'sessions.sidebar.session.share.error': 'Unable to share session',
'sessions.sidebar.session.share.copyUrlError': 'Failed to copy URL',
'sessions.sidebar.session.unshare.success': 'Session unshared',
@@ -694,6 +746,8 @@ export const dict = {
'gitView.header.noIdentity': 'No identity',
'gitView.header.noProfiles': 'No profiles available to apply.',
'gitView.header.repositoryViews': 'Repository views',
'gitView.header.updateBranch': 'Update branch',
'gitView.header.openPullRequest': 'Open pull request',
'gitView.header.removeRemoteAria': 'Remove remote {name}',
'gitView.header.removeRemoteTitle': 'Remove remote {name}',
'gitView.header.upstreamSynced': 'synced',
@@ -745,6 +799,7 @@ export const dict = {
'gitView.history.renamedNoDiff': 'Renamed file — diff not supported',
'gitView.history.renderDiffAnyway': 'Render anyway',
'gitView.history.title': 'History',
'gitView.history.refresh': 'Refresh',
'gitView.graph.title': 'Graph',
'gitView.integrate.checking': 'Checking…',
'gitView.integrate.cherryPickAbortedToast': 'Cherry-pick aborted',
@@ -779,12 +834,15 @@ export const dict = {
'gitView.operation.abort': 'Abort',
'gitView.operation.continue': 'Continue',
'gitView.operation.inProgressTitle': '{operation} in progress',
'gitView.operation.inProgressTitleManyConflicts': '{operation} in progress: {count} conflicts',
'gitView.operation.inProgressTitleOneConflict': '{operation} in progress: {count} conflict',
'gitView.operation.merge': 'Merge',
'gitView.operation.mergeInProgressWithHead': 'Merging {head}',
'gitView.operation.mergingMessage': 'Merging: {message}',
'gitView.operation.rebase': 'Rebase',
'gitView.operation.rebaseInProgress': 'Rebase in progress',
'gitView.operation.rebasingOnto': 'Rebasing {headName} onto {onto}',
'gitView.operation.readyToContinueHint': 'All conflicts resolved. Continue to finish the operation.',
'gitView.operation.resolveConflictsHint': 'Resolve conflicts, then continue the operation.',
'gitView.operation.resolveWithAi': 'Resolve with AI',
'gitView.stash.confirmButton': '{operation}',
@@ -879,15 +937,15 @@ export const dict = {
'gitView.pr.actions.openOnGitHubAria': 'Open pull request on GitHub',
'gitView.pr.actions.openSettings': 'Open settings',
'gitView.pr.actions.repo': 'Repository',
'gitView.pr.actions.resolveFailedChecks': 'Resolve failed checks',
'gitView.pr.actions.resolveFailedChecksAria': 'Send failed checks to agent',
'gitView.pr.actions.resolveFailedChecks': 'Attach failed checks',
'gitView.pr.actions.resolveFailedChecksAria': 'Attach failed checks to chat context',
'gitView.pr.actions.savePr': 'Save PR',
'gitView.pr.actions.savePrAria': 'Save pull request changes',
'gitView.pr.actions.sendCommentToAgent': 'Send comment to agent',
'gitView.pr.actions.sendCommentToAgentAria': 'Send this comment to agent',
'gitView.pr.actions.sendToAgent': 'Send to agent',
'gitView.pr.actions.shareComments': 'Share comments',
'gitView.pr.actions.shareCommentsAria': 'Send pull request comments to agent',
'gitView.pr.actions.sendCommentToAgent': 'Attach comment to chat context',
'gitView.pr.actions.sendCommentToAgentAria': 'Attach this comment to chat context',
'gitView.pr.actions.sendToAgent': 'Attach to chat',
'gitView.pr.actions.shareComments': 'Attach comments',
'gitView.pr.actions.shareCommentsAria': 'Attach pull request comments to chat context',
'gitView.pr.actions.toggleDraftAria': 'Toggle draft state',
'gitView.pr.actions.refresh': 'Refresh PR status',
'gitView.pr.actions.refreshAria': 'Refresh pull request status',
@@ -925,6 +983,10 @@ export const dict = {
'gitView.pr.noMergePermission': 'You do not have permission to merge this pull request.',
'gitView.pr.notMergeable': 'Not mergeable',
'gitView.pr.numberLabel': 'PR #{number}',
'gitView.pr.segment.overview': 'Overview',
'gitView.pr.segment.checks': 'Checks',
'gitView.pr.segment.comments': 'Comments',
'gitView.pr.comments.addAll': 'Attach all to chat',
'gitView.pr.placeholder.additionalContext': 'Any constraints, rollout notes, or reviewer context...',
'gitView.pr.placeholder.description': 'Describe the change...',
'gitView.pr.placeholder.main': 'Summarize your pull request',
@@ -959,9 +1021,6 @@ export const dict = {
'gitView.pullRequest.createHint': 'Create and manage pull requests from this branch.',
'gitView.pullRequest.availableOnFeatureBranches': 'Available when the current branch can open a pull request.',
'gitView.pullRequest.title': 'Pull request',
'gitView.tabs.commit': 'Commit',
'gitView.tabs.pr': 'PR',
'gitView.tabs.update': 'Update',
'gitView.tabs.worktree': 'Worktree',
'gitView.toast.abortOperationFailed': 'Failed to abort operation',
'gitView.toast.appliedIdentity': 'Applied identity: {name}',
@@ -1028,9 +1087,81 @@ export const dict = {
'contextPanel.mode.stagedDiff': 'Staged Diff',
'contextPanel.mode.workingDiff': 'Working Diff',
'contextPanel.mode.plan': 'Plan',
'contextPanel.mode.pr': 'Pull Request',
'contextPanel.mode.context': 'Context',
'contextPanel.mode.preview': 'Preview',
'contextPanel.mode.browser': 'Browser',
'contextRail.aria.rail': 'Panel surfaces',
'contextPanel.editorEmpty.title': 'No file open',
'contextPanel.editorEmpty.description': 'Pick a file from the tree to start editing.',
'contextRail.surface.editor.description': 'Edit project files',
'contextRail.surface.git.description': 'Commits, branches, and pull requests',
'contextRail.surface.terminal.description': 'Built-in terminal',
'contextRail.surface.diff.description': 'Review working changes',
'contextPanel.mode.walkthrough': 'Walkthrough',
'contextRail.surface.walkthrough.description': 'An AI-guided walkthrough of your changes',
'walkthrough.scope.all': 'All uncommitted',
'walkthrough.scope.group.workingTree': 'Working tree',
'walkthrough.scope.group.committed': 'Committed',
'walkthrough.scope.staged': 'Staged',
'walkthrough.scope.working': 'Unstaged',
'walkthrough.scope.branch': 'This branch',
'walkthrough.scope.selectorAria': 'Select what to review',
'walkthrough.language.menuLabel': 'Walkthrough language',
'walkthrough.missing.language': 'No walkthrough in {requested} yet — showing the one in {shown}.',
'walkthrough.missing.model': 'No walkthrough from {model} yet — showing the last one generated here.',
'walkthrough.missing.languageAndModel': 'No walkthrough in this language from this model yet — showing the last one generated here.',
'walkthrough.language.selectorAria': 'Select the walkthrough language',
'walkthrough.scope.pullRequest': 'PR #{number}',
'walkthrough.action.generate': 'Generate walkthrough',
'walkthrough.action.regenerate': 'Regenerate',
'walkthrough.action.cancel': 'Cancel',
'walkthrough.action.next': 'Next step',
'walkthrough.action.previous': 'Previous step',
'walkthrough.action.refresh': 'Refresh',
'walkthrough.action.open': 'Walkthrough',
'walkthrough.stage.collecting': 'Collecting the changes',
'walkthrough.stage.asking': 'Waiting on the model',
'walkthrough.stage.assembling': 'Assembling the walkthrough',
'walkthrough.empty.title': 'No walkthrough yet',
'walkthrough.empty.description': 'Build a guided reading path through these changes. This calls the small model and costs tokens, so it only ever runs when you ask.',
'walkthrough.stale.banner': 'The code changed after this review. Outdated steps: {count}',
'walkthrough.stop.staleAll': 'All of the code this step described has changed.',
'walkthrough.stop.stalePartial': 'Part of the code this step described has changed. Missing pieces: {count}',
'walkthrough.stop.staleShort': 'Outdated',
'walkthrough.stop.noCode': 'None of the code for this step is in the current diff.',
'walkthrough.uncovered.title': 'Changes the review left out: {count}',
'walkthrough.uncovered.description': 'The review treated these as routine. Expand to check them yourself.',
'walkthrough.toc.moreFiles': 'More files: {count}',
'walkthrough.toc.uncovered': 'Not covered: {count}',
'walkthrough.toc.resize': 'Resize the contents column',
'walkthrough.importance.critical': 'Critical',
'walkthrough.importance.context': 'Context',
'walkthrough.blocked.noModel.title': 'No small model available',
'walkthrough.blocked.noModel.description': 'Sign in to a model provider to generate a review.',
'walkthrough.blocked.emptyDiff.title': 'Nothing to review',
'walkthrough.blocked.emptyDiff.description': 'There are no changes in this scope yet.',
'walkthrough.blocked.contextTooSmall.title': 'This diff is too large for the current model',
'walkthrough.blocked.contextTooSmall.description': '{model} fits about {available}K characters and this diff needs about {required}K. Nothing gets truncated — pick a model with a larger context instead.',
'walkthrough.blocked.structuredOutput.title': 'This model cannot produce structured output',
'walkthrough.blocked.structuredOutput.description': '{model} does not support the structured responses a walkthrough needs.',
'walkthrough.blocked.chooseModel': 'Choose the small model',
'walkthrough.blocked.outputExhausted.title': 'This model ran out of answer budget',
'walkthrough.blocked.outputExhausted.description': '{model} spent its whole output allowance on reasoning and returned nothing. Reasoning models often do this on large diffs — a model that thinks less, or reviewing a narrower scope, will get through.',
'walkthrough.blocked.outputExhausted.descriptionUnknownModel': 'The small model spent its whole output allowance on reasoning and returned nothing. Reasoning models often do this on large diffs — a model that thinks less, or reviewing a narrower scope, will get through.',
'walkthrough.blocked.onlyGenerated.title': 'Only generated files changed',
'walkthrough.blocked.onlyGenerated.description': 'Every change here is a lockfile or other tool-produced output, which the review deliberately skips.',
'walkthrough.blocked.contextTooSmall.descriptionUnknownModel': 'The small model fits about {available}K characters and this diff needs about {required}K. Nothing gets truncated — pick a model with a larger context instead.',
'walkthrough.blocked.structuredOutput.descriptionUnknownModel': 'The small model does not support the structured responses a walkthrough needs.',
'contextRail.surface.plan.description': 'View the current plan',
'contextRail.surface.pr.description': 'Create, review, and merge the pull request for the current branch',
'contextRail.surface.notes.description': 'Notes, todos, and plans for the project',
'contextRail.surface.context.description': 'Session context and token usage',
'contextRail.surface.browser.description': 'Built-in web browser',
'contextRail.surface.preview.description': 'Dev server preview',
'contextRail.surface.chat.description': 'Session opened side by side',
'contextRail.surface.notes': 'Project notes',
'contextRail.editorTree.toggle': 'Toggle file tree',
'contextPanel.browser.open': 'Open browser panel',
'contextPanel.browser.addressAria': 'Browser address',
'contextPanel.browser.empty': 'Web browser',
@@ -1116,6 +1247,7 @@ export const dict = {
'sidebarFilesTree.actions.newFileTitle': 'New File',
'sidebarFilesTree.actions.newFolderTitle': 'New Folder',
'sidebarFilesTree.actions.refreshTitle': 'Refresh',
'sidebarFilesTree.actions.collapseAllTitle': 'Collapse all folders',
'sidebarFilesTree.actions.fileMenuTitle': 'File menu',
'sidebarFilesTree.state.searching': 'Searching...',
'sidebarFilesTree.state.loading': 'Loading...',
@@ -1185,6 +1317,8 @@ export const dict = {
'filesView.editor.showControlsAria': 'Show editor controls',
'filesView.editor.controlsTitle': 'Editor controls',
'filesView.editor.pickFileFromTree': 'Pick a file from the tree.',
'filesView.editor.cannotPreviewBinary': 'Cannot preview binary file',
'filesView.editor.binaryFileDescription': 'This file is binary and cannot be edited in OpenChamber. Download it to open with another app.',
'filesView.state.loading': 'Loading...',
'filesView.state.openingFileAtChange': 'Opening file at change...',
'filesView.tree.search.placeholder': 'Search files...',
@@ -1468,6 +1602,8 @@ export const dict = {
'terminalView.quickKeys.tabAria': 'Tab',
'terminalView.quickKeys.controlLabel': 'Ctrl',
'terminalView.quickKeys.controlModifierAria': 'Control modifier',
'terminalView.quickKeys.altLabel': 'Alt',
'terminalView.quickKeys.altModifierAria': 'Alt modifier',
'terminalView.quickKeys.commandModifierAria': 'Command modifier',
'terminalView.quickKeys.arrowUpAria': 'Arrow up',
'terminalView.quickKeys.arrowLeftAria': 'Arrow left',
@@ -1476,13 +1612,6 @@ export const dict = {
'terminalView.quickKeys.enterAria': 'Enter',
'terminalView.tabs.closeTabTitle': 'Close tab',
'terminalView.tabs.newTabTitle': 'New tab',
'terminalView.bottomDock.resizeAria': 'Resize terminal panel',
'terminalView.bottomDock.restoreTitle': 'Restore terminal panel height',
'terminalView.bottomDock.restoreAria': 'Restore terminal panel height',
'terminalView.bottomDock.expandTitle': 'Expand terminal panel',
'terminalView.bottomDock.expandAria': 'Expand terminal panel',
'terminalView.bottomDock.closeTitle': 'Close terminal panel',
'terminalView.bottomDock.closeAria': 'Close terminal panel',
'terminalView.viewport.inputAria': 'Terminal input',
'directoryExplorerDialog.title': 'Add project directory',
'directoryExplorerDialog.description': 'Choose a folder to add as a project.',
@@ -1560,10 +1689,9 @@ export const dict = {
'helpDialog.item.focusChatInput': 'Focus Chat Input',
'helpDialog.item.togglePromptNavigator': 'Toggle Prompt Navigator',
'helpDialog.item.abortActiveRun': 'Abort active run (double press)',
'helpDialog.item.toggleRightSidebar': 'Toggle Right Sidebar',
'helpDialog.item.openRightSidebarGitTab': 'Open Right Sidebar Git Tab',
'helpDialog.item.openRightSidebarFilesTab': 'Open Right Sidebar Files Tab',
'helpDialog.item.cycleRightSidebarTab': 'Cycle Right Sidebar Tab',
'helpDialog.item.toggleRightSidebar': 'Toggle context panel',
'helpDialog.item.openRightSidebarGitTab': 'Open Git surface',
'helpDialog.item.openRightSidebarFilesTab': 'Open Files surface',
'helpDialog.item.toggleTerminalDock': 'Toggle Terminal Dock',
'helpDialog.item.toggleTerminalExpanded': 'Toggle Terminal Expanded',
'helpDialog.item.togglePlanContextPanel': 'Toggle Plan Context Panel',
@@ -1743,6 +1871,7 @@ export const dict = {
'chat.draftPresets.weigh.label': 'Weigh my options',
'chat.draftPresets.plan.label': 'Start feature planning',
'chat.draftPresets.craftGoal.label': 'Craft a Goal',
'chat.draftPresets.scheduleTask.label': 'Schedule a Task',
'chat.draftPresets.debug.label': 'Debug an issue',
'chat.draftPresets.review.label': 'Review my changes',
'chat.draftStarters.add': 'Add a starter',
@@ -1783,6 +1912,7 @@ export const dict = {
'chat.statusRow.todo.priority.low': 'Low priority',
'chat.statusRow.actions.stopGeneratingAria': 'Stop generating',
'chat.statusRow.tasksTitle': 'Tasks',
'chat.statusRow.modelStatus': '{model} is {status}',
'chat.statusRow.summary.activeLeft': '{active} active · {left} left',
'chat.statusRow.aborted': 'Aborted',
'chat.revertIndicator.redo': 'Redo',
@@ -1818,7 +1948,9 @@ export const dict = {
'chat.commandAutocomplete.command.handoffReviewDescription': 'Create or reuse a separate review session from a generated handoff.',
'chat.commandAutocomplete.command.featurePlanDescription': 'Start a guided, back-and-forth planning session for a new feature.',
'chat.commandAutocomplete.command.craftGoalDescription': 'Turn an idea or task into a clear, verifiable Goal.',
'chat.commandAutocomplete.command.scheduleTaskDescription': 'Define a scheduled task through a guided dialogue.',
'chat.chatInput.toast.craftGoalFailed': 'Failed to start Goal crafting',
'chat.chatInput.toast.scheduleTaskFailed': 'Failed to start scheduled task setup',
'chat.commandAutocomplete.command.catchUpDescription': 'Re-establish context: what you were doing and where to pick up.',
'chat.commandAutocomplete.command.debugDescription': 'Guided root-cause investigation for a bug before proposing a fix.',
'chat.commandAutocomplete.command.weighDescription': 'Weigh 2-3 approaches with trade-offs and a recommendation before you commit.',
@@ -1843,6 +1975,12 @@ export const dict = {
'chat.container.returnToParent.title': 'Return to parent session',
'chat.container.returnToParent.label': 'Parent',
'chat.container.readOnlySubagentPromptBanner': 'Subagent sessions cannot be prompted.',
'chat.container.sessionLoadError.title': 'Session could not be loaded',
'chat.container.sessionLoadError.description': 'Check the connection and try loading this session again.',
'chat.container.sessionLoadError.retry': 'Try again',
'sessions.sidebar.group.empty.loadingSessions': 'Loading sessions…',
'sessions.sidebar.group.empty.loadFailed': 'Could not refresh sessions.',
'sessions.sidebar.group.empty.retry': 'Try again',
'chat.unifiedControls.title': 'Controls',
'chat.unifiedControls.model.title': 'Model',
'chat.unifiedControls.model.noRecent': 'No recent models',
@@ -1887,6 +2025,9 @@ export const dict = {
'chat.messageBody.actions.fork': 'Fork from here',
'chat.messageBody.actions.copyMessageAria': 'Copy message text',
'chat.messageBody.actions.copyMessage': 'Copy message',
'chat.messageBody.actions.pinContext': 'Pin into context (survives compaction)',
'chat.messageBody.actions.unpinContext': 'Unpin from context (will not survive compaction)',
'chat.messageBody.actions.contextPinFailed': 'Could not update the context pin',
'chat.messageBody.actions.openPreviewAria': 'Open preview',
'chat.messageBody.actions.openPreview': 'Open preview',
'chat.messageBody.actions.copyAnswer': 'Copy answer',
@@ -1976,6 +2117,7 @@ export const dict = {
'chat.chatInput.toast.addedFileMentions': 'Added {count} file mention(s)',
'chat.chatInput.toast.attachFileFailed': 'Failed to attach file',
'chat.chatInput.toast.attachNamedFailed': 'Failed to attach {name}',
'chat.chatInput.toast.unsupportedAttachmentModalities': '{model} does not support {modalities} input required by {files}. You can still send the message, but these attachments may be ignored.',
'chat.chatInput.toast.someFilesSkipped': 'Some files were skipped:\n{summary}',
'chat.chatInput.toast.vscodePickFailed': 'Failed to pick files in VS Code',
'chat.chatInput.toast.openSessionFirst': 'Open a session first',
@@ -1997,21 +2139,6 @@ export const dict = {
'chat.chatInput.drop.insertMention': 'Drop to insert as mention',
'chat.chatInput.drop.attachFiles': 'Drop files here to attach',
'chat.chatInput.fileFallback': 'file',
'chat.mobileStatus.editProjects.title': 'Edit Projects',
'chat.mobileStatus.editProjects.footer': 'Drag items to reorder, or use arrows to move. Tap edit to change details.',
'chat.mobileStatus.editProjects.empty': 'No projects to edit',
'chat.mobileStatus.projects.empty': 'No projects',
'chat.mobileStatus.projects.addAria': 'Add project',
'chat.mobileStatus.projects.removeTitle': 'Remove Project',
'chat.mobileStatus.projects.removeDescriptionPrefix': 'Are you sure you want to remove',
'chat.mobileStatus.projects.cancel': 'Cancel',
'chat.mobileStatus.projects.remove': 'Remove',
'chat.mobileStatus.new': 'New',
'chat.mobileStatus.noSessionsInProject': 'No sessions in this project',
'chat.mobileStatus.swipeHint': '← Swipe here to open sidebars →',
'chat.mobileStatus.toast.addProjectFailed': 'Failed to add project',
'chat.mobileStatus.toast.selectValidDirectory': 'Please select a valid directory.',
'chat.mobileStatus.toast.selectDirectoryFailed': 'Failed to select directory',
'chat.toolOutputDialog.image.previousAria': 'Previous image',
'chat.toolOutputDialog.image.nextAria': 'Next image',
'chat.toolOutputDialog.image.closeAria': 'Close image preview',
@@ -2166,7 +2293,6 @@ export const dict = {
'commandPalette.item.addProject': 'Add Project',
'commandPalette.item.showSessionSwitcher': 'Show Session Switcher',
'commandPalette.item.toggleSidebar': 'Toggle Sidebar',
'commandPalette.item.toggleRightSidebar': 'Toggle Right Sidebar',
'commandPalette.item.showContextUsage': 'Show Context Usage',
'commandPalette.item.toggleTerminal': 'Toggle Terminal',
'commandPalette.item.openSettings': 'Open Settings...',
@@ -2344,6 +2470,7 @@ export const dict = {
'projectActions.actions.addAction': 'Add action',
'projectActions.actions.addNewAction': 'Add new action',
'projectActions.actions.autoDiscover': 'Auto-discover',
'projectActions.actions.autoDiscoverTooltip': 'Automatically discover and run the development server',
'projectActions.actions.chooseActionAria': 'Choose project action',
'projectActions.actions.openPreview': 'Open Preview',
'projectActions.actions.runNamedAria': 'Run {name}',
@@ -9,6 +9,9 @@ export const settingsDict = {
'settings.providers.page.openCodeGo.validate': 'Validar',
'settings.providers.page.openCodeGo.delete': 'Eliminar',
'settings.providers.page.quotaCredentials.saved': 'Credenciales de {provider} guardadas.',
'settings.providers.page.quotaCredentials.accessToken': 'Token de acceso',
'settings.providers.page.quotaCredentials.refreshToken': 'Token de actualización',
'settings.providers.page.quotaCredentials.tokenPlaceholder': 'Pega el token',
'settings.providers.page.openCodeGo.saveFailed': 'No se pudieron validar las credenciales de OpenCode Go.',
'settings.providers.page.openCodeGo.valid': 'Las credenciales de OpenCode Go son válidas.',
'settings.providers.page.openCodeGo.invalid': 'Las credenciales de OpenCode Go no son válidas o han caducado.',
@@ -47,6 +50,10 @@ export const settingsDict = {
"settings.view.search.aria": "Buscar configuración",
"settings.view.search.clear": "Borrar búsqueda de configuración",
"settings.view.search.noResults": "No hay configuraciones coincidentes",
"settings.view.nav.group.general": "OpenChamber",
"settings.view.nav.group.projects": "Espacio de trabajo",
"settings.view.nav.group.opencode": "OpenCode",
"settings.view.nav.group.content": "Biblioteca",
"settings.page.projects.title": "Proyectos",
"settings.page.remoteInstances.title": "Instancias remotas",
"settings.page.providers.title": "Proveedores",
@@ -59,13 +66,22 @@ export const settingsDict = {
"settings.page.skillsCatalog.title": "Catálogo de habilidades",
"settings.page.git.title": "Git",
"settings.page.appearance.title": "Apariencia",
"settings.page.appearance.description": "Personaliza el aspecto y la sensación de OpenChamber.",
"settings.page.chat.title": "Chat",
"settings.page.chat.description": "Configura cómo se muestran los mensajes y las herramientas.",
"settings.page.shortcuts.title": "Atajos",
"settings.page.shortcuts.description": "Personaliza los atajos de teclado.",
"settings.page.general.title": "General",
"settings.page.general.description": "Inicio de la aplicación, seguridad, conexión y privacidad.",
"settings.page.sessions.title": "Sesiones",
"settings.page.sessions.description": "Define valores predeterminados y retención de sesiones.",
"settings.page.magicPrompts.title": "Prompts mágicos",
"settings.page.notifications.title": "Notificaciones",
"settings.page.notifications.description": "Elige cuándo y cómo recibir notificaciones.",
"settings.page.voice.title": "Voz",
"settings.page.tunnel.title": "Túnel remoto",
"settings.page.voice.description": "Configura la voz y el dictado.",
"settings.page.tunnel.title": "Túnel externo",
"settings.page.tunnel.description": "Expón esta instancia a través de un túnel remoto.",
"settings.page.about.title": "Acerca de",
"settings.page.snippets.title": "Snippets",
"settings.snippets.sidebar.title": "Snippets",
@@ -90,7 +106,7 @@ export const settingsDict = {
"settings.snippets.page.toast.contentRequired": "El contenido del snippet es obligatorio",
"settings.snippets.page.toast.saveFailed": "No se pudo guardar el snippet",
"settings.snippets.page.toast.saved": "Snippet guardado",
"settings.openchamber.tunnel.title": "Túnel remoto",
"settings.openchamber.tunnel.title": "Túnel externo",
"settings.openchamber.tunnel.description": "Configura el acceso remoto seguro con enlaces rápidos o tu propio túnel gestionado de Cloudflare.",
"settings.openchamber.tunnel.note.serverSideEnforced": "El acceso seguro al túnel se aplica en el servidor.",
"settings.openchamber.tunnel.note.connectLinksOneTime": "Los enlaces de conexión son de un solo uso: se revocan cuando el túnel se detiene o vence el TTL del enlace.",
@@ -366,6 +382,7 @@ export const settingsDict = {
"settings.remoteInstances.page.logsDialog.selectedInstanceFallback": "Instancia seleccionada",
"settings.remoteInstances.page.patternDialog.descriptionWithHost": "{host} requiere un destino concreto.",
"settings.remoteInstances.page.patternDialog.description": "Introduce destino.",
"settings.common.infoAria": "Más información",
"settings.common.actions.cancel": "Cancelar",
"settings.common.actions.create": "Crear",
"settings.common.actions.delete": "Eliminar",
@@ -376,6 +393,8 @@ export const settingsDict = {
"settings.common.actions.copyAll": "Copiar todo",
"settings.common.actions.clear": "Limpiar",
"settings.common.actions.saving": "Guardando...",
'settings.common.status.saved': 'Guardado',
'settings.common.status.saveFailed': 'Error al guardar',
"settings.common.actions.saveChanges": "Guardar cambios",
"settings.common.scope.global": "Global",
"settings.common.scope.project": "Proyecto",
@@ -460,6 +479,33 @@ export const settingsDict = {
"settings.agents.page.section.identityRole": "Identidad y rol",
"settings.agents.page.section.modelParameters": "Modelo y parámetros",
"settings.agents.page.section.systemPrompt": "Prompt del sistema",
"settings.agents.page.permissionsEditor.sectionInfo": "Edita las reglas de permisos propias de este agente tal como están guardadas en su config. «Heredar» deja la clave sin definir y aplican la config global y los valores por defecto.",
"settings.agents.page.permissionsEditor.defaultLabel": "Predeterminado para todas las herramientas",
"settings.agents.page.permissionsEditor.defaultAria": "Permiso predeterminado para todas las herramientas",
"settings.agents.page.permissionsEditor.defaultInfo": "El valor de reserva del agente (la clave *). Aplica a cualquier herramienta sin regla propia.",
"settings.agents.page.permissionsEditor.effectiveHint": "→ {action}",
"settings.agents.page.permissionsEditor.ruleCount": "{count} reglas",
"settings.agents.page.permissionsEditor.keyAria": "Permiso para {key}",
"settings.agents.page.permissionsEditor.patternPlaceholder": "Patrón, p. ej. rm -rf * o /path/**",
"settings.agents.page.permissionsEditor.patternActionAria": "Acción para el patrón de {key}",
"settings.agents.page.permissionsEditor.customKeyPlaceholder": "Clave de permiso personalizada…",
"settings.agents.page.permissionsEditor.sessionRulesTitle": "Concedidos en sesión (no guardados)",
"settings.agents.page.permissionsEditor.sessionRulesInfo": "Reglas concedidas durante sesiones en vivo (respuestas de «permitir siempre»). Aplican ahora, pero no forman parte de la config guardada y desaparecen al reiniciar.",
"settings.agents.page.permissionsEditor.action.default": "Predeterminado",
"settings.agents.page.permissionsEditor.action.inherit": "Heredar",
"settings.agents.page.permissionsEditor.action.allow": "Permitir",
"settings.agents.page.permissionsEditor.action.ask": "Preguntar",
"settings.agents.page.permissionsEditor.action.deny": "Denegar",
"settings.agents.page.permissionsEditor.actions.save": "Guardar permisos",
"settings.agents.page.permissionsEditor.actions.discard": "Descartar",
"settings.agents.page.permissionsEditor.actions.addRule": "Añadir regla",
"settings.agents.page.permissionsEditor.actions.addKey": "Añadir clave",
"settings.agents.page.permissionsEditor.actions.removeRuleAria": "Eliminar regla",
"settings.agents.page.permissionsEditor.actions.retry": "Reintentar",
"settings.agents.page.permissionsEditor.state.loadFailed": "No se pudo cargar la config de permisos del agente.",
"settings.agents.page.permissionsEditor.toast.saved": "Permisos guardados",
"settings.agents.page.permissionsEditor.toast.savedRestartRequired": "Permisos guardados: reinicia el servidor de OpenCode para aplicarlos",
"settings.agents.page.permissionsEditor.toast.saveFailed": "No se pudieron guardar los permisos",
"settings.agents.page.section.toolPermissions": "Permisos de herramientas",
"settings.agents.page.field.agentName": "Nombre del agente",
"settings.agents.page.field.agentNamePlaceholder": "nombre-agente",
@@ -495,16 +541,22 @@ export const settingsDict = {
"settings.agents.page.permissions.permissionPlaceholder": "Permiso...",
"settings.agents.page.permissions.patternPlaceholder": "Patrón (ej. *)",
"settings.page.behavior.title": "Comportamiento",
'settings.page.behavior.description': 'Guía cómo responde el agente.',
"settings.behavior.page.title": "Comportamiento",
"settings.behavior.page.warning.title": "Las reglas globales se combinan con las reglas del proyecto",
"settings.behavior.page.warning.description": "Los cambios realizados aquí actualizan {path}. OpenCode también incluye cualquier AGENTS.md a nivel de proyecto cuando existe.",
"settings.behavior.page.section.systemPrompt": "AGENTS.md global",
"settings.behavior.page.section.systemPromptOptimization": "Optimización del prompt del sistema",
"settings.behavior.page.systemPromptOptimization.enable": "Optimizar el tamaño del prompt del sistema",
"settings.behavior.page.systemPromptOptimization.enableAria": "Optimizar el tamaño del prompt del sistema de OpenCode",
"settings.behavior.page.systemPromptOptimization.info": "Reduce el prompt del sistema aproximadamente un 40 % para los agentes build y plan. Los demás agentes no cambian. Puede eliminar definiciones personalizadas que sobrescriban build o plan, así que no lo actives en esos flujos de trabajo. El cambio se aplica al reiniciar OpenCode.",
"settings.behavior.page.systemPromptOptimization.restarting": "Reiniciando OpenCode para aplicar la optimización del prompt del sistema…",
"settings.behavior.page.field.systemPromptPlaceholder": "Eres un asistente de IA útil...\n\nUsa este espacio para definir reglas absolutas sobre cómo la IA debe comportarse en todas las sesiones y proveedores.",
"settings.behavior.page.section.responseStyle": "Estilo de respuesta",
"settings.behavior.page.responseStyle.tooltip": "Cuando está habilitado, estas instrucciones guían cómo responde el asistente en cada conversación nueva. Se envían con tu primer mensaje y no cambian tus reglas globales de AGENTS.md.",
"settings.behavior.page.responseStyle.enableAria": "Habilitar instrucciones de estilo de respuesta",
"settings.behavior.page.responseStyle.enable": "Agregar instrucciones de estilo de respuesta a conversaciones nuevas",
"settings.behavior.page.responseStyle.preset": "Preset",
"settings.behavior.page.responseStyle.preset": "Preajuste",
"settings.behavior.page.responseStyle.option.concise": "Conciso",
"settings.behavior.page.responseStyle.option.detailed": "Detallado",
"settings.behavior.page.responseStyle.option.mentor": "Mentor",
@@ -861,17 +913,24 @@ export const settingsDict = {
"settings.openchamber.sessionRetention.toast.failedDeleteCount": "No se pudo eliminar {count} sesión(es)",
"settings.openchamber.desktopNetwork.title": "Acceso de red de escritorio",
"settings.openchamber.desktopNetwork.field.windowControlsPosition": "Posición de los controles de ventana",
"settings.openchamber.desktopNetwork.field.windowControlsPositionDescription": "Elige dónde aparecen los botones de minimizar, maximizar y cerrar. Automático sigue el sistema operativo.",
"settings.openchamber.desktopNetwork.field.windowControlsPositionDescription": "Elige dónde aparecen los botones de minimizar, maximizar y cerrar. Por defecto a la derecha.",
"settings.openchamber.desktopNetwork.field.windowControlsPositionAria": "Posición de los controles de ventana",
"settings.openchamber.desktopNetwork.option.windowControlsAuto": "Automático",
"settings.openchamber.desktopNetwork.option.windowControlsLeft": "Izquierda",
"settings.openchamber.desktopNetwork.option.windowControlsRight": "Derecha",
"settings.openchamber.desktopNetwork.field.windowControls": "Controles de ventana",
"settings.openchamber.desktopNetwork.field.windowControlsStyle": "Estilo",
"settings.openchamber.desktopNetwork.field.windowControlsStyleAria": "Estilo de los controles de ventana",
"settings.openchamber.desktopNetwork.option.windowControlsClassic": "Clásico",
"settings.openchamber.desktopNetwork.option.windowControlsTrafficLights": "Semáforo",
"settings.openchamber.desktopNetwork.field.launchAtLoginAria": "Iniciar OpenChamber al iniciar sesión",
"settings.openchamber.desktopNetwork.field.launchAtLogin": "Iniciar OpenChamber al iniciar sesión",
"settings.openchamber.desktopNetwork.field.launchAtLoginDescription": "Inicia la app en segundo plano sin abrir una ventana. Usa el icono de estado del escritorio para abrirla.",
"settings.openchamber.desktopNetwork.field.macMenuBarAria": "Mostrar OpenChamber en la barra de menús de macOS",
"settings.openchamber.desktopNetwork.field.macMenuBar": "Mostrar OpenChamber en la barra de menús",
"settings.openchamber.desktopNetwork.field.macMenuBarDescription": "Requiere reiniciar la aplicación. Al desactivarlo, OpenChamber no crea el elemento de la barra de menús ni ejecuta sus actualizaciones de sesiones, aprobaciones y uso.",
"settings.openchamber.desktopNetwork.field.minimizeToTrayAria": "Minimizar y cerrar OpenChamber a la bandeja del sistema",
"settings.openchamber.desktopNetwork.field.minimizeToTray": "Minimizar y cerrar a la bandeja del sistema",
"settings.openchamber.desktopNetwork.field.minimizeToTrayDescription": "Mantiene OpenChamber en ejecución en la bandeja del sistema de Windows cuando la ventana principal se minimiza o se cierra.",
"settings.openchamber.desktopNetwork.field.minimizeToTrayDescription": "Mantiene OpenChamber en ejecución en la bandeja del sistema cuando la ventana principal se minimiza o se cierra.",
"settings.openchamber.desktopNetwork.field.keepAwakeAria": "Mantener el ordenador activo mientras OpenChamber está en ejecución",
"settings.openchamber.desktopNetwork.field.keepAwake": "Mantener el ordenador activo mientras OpenChamber está en ejecución",
"settings.openchamber.desktopNetwork.field.keepAwakeDescription": "Para que los teléfonos puedan seguir abriendo esta app. La pantalla aún puede apagarse.",
@@ -880,6 +939,8 @@ export const settingsDict = {
"settings.openchamber.desktopNetwork.field.allowLanAccessDescription": "Reinicia la aplicación para que los teléfonos, tablets y otros ordenadores en tu Wi-Fi puedan abrirla.",
"settings.openchamber.desktopNetwork.field.warning": "Advertencia: mientras esté habilitado, la aplicación es accesible por cualquiera en la misma red local.",
"settings.openchamber.desktopNetwork.field.passwordRequiredWarning": "El acceso LAN requiere una contraseña de UI de escritorio. Hasta que se configure, la app de escritorio se inicia solo localmente.",
"settings.openchamber.desktopPassword.actions.showPassword": "Mostrar contraseña",
"settings.openchamber.desktopPassword.actions.hidePassword": "Ocultar contraseña",
"settings.openchamber.desktopPassword.field.password": "Contraseña de UI de escritorio",
"settings.openchamber.desktopPassword.field.passwordPlaceholder": "No se requiere contraseña",
"settings.openchamber.desktopPassword.field.passwordDescription": "OpenChamber la pide después del reinicio y luego cuando vence la sesión: tras 12 horas, o 7 días con Confiar en este dispositivo. Déjalo vacío para desactivar el inicio de sesión.",
@@ -902,6 +963,9 @@ export const settingsDict = {
"settings.openchamber.opencodeCli.field.binaryPathPlaceholder": "/Users/you/.bun/bin/opencode",
"settings.openchamber.opencodeCli.field.showUpdateNotifications": "Mostrar notificaciones de actualización de OpenCode",
"settings.openchamber.opencodeCli.field.showUpdateNotificationsAria": "Mostrar notificaciones de actualización de OpenCode",
"settings.openchamber.opencodeCli.field.agentControlTool": "Herramienta de control para agentes",
"settings.openchamber.opencodeCli.field.agentControlToolAria": "Activar la herramienta de control para agentes",
"settings.openchamber.opencodeCli.field.agentControlToolInfo": "Permite que los agentes orquesten tu trabajo desde el chat: crear sesiones y worktrees, delegar prompts a otros agentes y gestionar tareas programadas. Añade una pequeña descripción de herramienta a cada sesión. Se aplica tras Save + Reload.",
"settings.openchamber.opencodeCli.actions.browseAria": "Buscar ruta del ejecutable de OpenCode",
"settings.openchamber.opencodeCli.actions.browse": "Buscar",
"settings.openchamber.opencodeCli.actions.saveAndReload": "Guardar + Recargar",
@@ -1008,10 +1072,9 @@ export const settingsDict = {
"settings.openchamber.keyboardShortcuts.action.toggle_terminal.label": "Mostrar u ocultar panel de terminal",
"settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label": "Expandir o contraer terminal",
"settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label": "Mostrar u ocultar barra lateral",
"settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label": "Mostrar u ocultar barra lateral derecha",
"settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label": "Abrir pestaña de Git en barra lateral derecha",
"settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label": "Abrir pestaña de Archivos en barra lateral derecha",
"settings.openchamber.keyboardShortcuts.action.cycle_right_sidebar_tab.label": "Cambiar pestaña de la barra lateral derecha",
"settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label": 'Alternar panel de contexto',
"settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label": 'Abrir superficie de Git',
"settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label": 'Abrir superficie de archivos',
"settings.openchamber.keyboardShortcuts.action.new_chat.label": "Nueva sesión",
"settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label": "Nuevo borrador de worktree",
"settings.openchamber.keyboardShortcuts.action.new_mini_chat.label": "Nueva ventana Mini Chat",
@@ -1197,7 +1260,7 @@ export const settingsDict = {
"settings.openchamber.worktrees.setup.waitForCommandsAria": "Esperar los comandos de configuración de Worktree antes de crear o enviar una sesión",
"settings.openchamber.worktrees.setup.toast.saveFailed": "Error al guardar los comandos de configuración del worktree",
"settings.openchamber.worktrees.list.title": "Worktrees existentes",
"settings.openchamber.worktrees.list.tooltip": "Los worktrees existen fuera del repositorio (gestionados por OpenCode). Eliminar un worktree también elimina las sesiones vinculadas.",
"settings.openchamber.worktrees.list.tooltip": "Eliminar un worktree también elimina las sesiones vinculadas.",
"settings.openchamber.worktrees.list.loading": "Cargando worktrees...",
"settings.openchamber.worktrees.list.empty": "No se encontraron worktrees para este proyecto",
"settings.openchamber.worktrees.list.detachedHead": "HEAD desvinculado",
@@ -1457,6 +1520,10 @@ export const settingsDict = {
"settings.openchamber.defaults.smallModel.useDefault": "Usar el modelo pequeño predeterminado",
"settings.openchamber.defaults.smallModel.useDefaultAria": "Usar el modelo pequeño predeterminado",
"settings.openchamber.defaults.smallModel.overrideModel": "Modelo de anulación",
"settings.openchamber.defaults.walkthroughModel.title": "Modelo del recorrido de cambios",
"settings.openchamber.defaults.walkthroughModel.description": "La revisión con IA de tus cambios necesita salida estructurada y espacio para un diff completo, algo que un modelo pequeño y barato a menudo no ofrece. Los modelos que el catálogo declara incapaces de producir salida estructurada se ocultan aquí. Si no eliges nada, se usa el modelo pequeño.",
"settings.openchamber.defaults.walkthroughModel.overrideModel": "Modelo del recorrido",
"settings.openchamber.defaults.walkthroughModel.usesSmallModel": "Modelo pequeño",
"settings.openchamber.defaults.field.showDeletionDialog": "Mostrar diálogo de eliminación",
"settings.openchamber.defaults.field.openFilesPreviewAria": "Abrir archivos previsualizables en modo vista previa",
"settings.openchamber.defaults.field.openFilesPreview": "Abrir archivos previsualizables en modo vista previa",
@@ -1585,6 +1652,7 @@ export const settingsDict = {
"settings.voice.page.section.playbackAndSummary": "Reproducción",
"settings.voice.page.field.provider": "Proveedor",
"settings.voice.page.provider.browser": "Navegador",
"settings.voice.page.provider.openai": "OpenAI",
"settings.voice.page.provider.custom": "Personalizado",
"settings.voice.page.provider.say": "Decir",
"settings.voice.page.provider.server": "Servidor",
@@ -1664,18 +1732,24 @@ export const settingsDict = {
"settings.voice.page.field.ttsInputModeRaw": "Markdown sin procesar",
"settings.voice.page.field.ttsInputModeSummarized": "resumido",
"settings.openchamber.visual.section.colorMode": "Modo de color",
"settings.openchamber.visual.section.colorModeAndTheme": "Modo de color y tema",
"settings.openchamber.visual.section.mobileLayout": "Diseño móvil",
"settings.openchamber.visual.option.mobileLayout.default": "Anterior",
"settings.openchamber.visual.option.mobileLayout.new": "Nuevo",
"settings.openchamber.visual.section.localization": "Localización",
"settings.openchamber.visual.section.spacingAndLayout": "Espaciado y diseño",
"settings.openchamber.visual.section.densityAndType": "Densidad y tipografía",
"settings.openchamber.visual.section.appInstall": "Instalación de la app",
"settings.openchamber.visual.section.navigation": "Navegación",
"settings.openchamber.visual.section.chatRenderMode": "Modo de renderizado de chat",
"settings.openchamber.visual.section.chatRenderModeAria": "Modo de renderizado de chat",
"settings.openchamber.visual.section.chatDisplay": "Visualización",
"settings.openchamber.visual.section.chatMessageOptions": "Opciones de mensajes",
"settings.openchamber.visual.section.chatFeatures": "Funciones",
"settings.openchamber.visual.section.messageStreamTransport": "Transporte del flujo de mensajes",
"settings.openchamber.visual.section.activityDefault": "Modo predeterminado de actividad",
"settings.openchamber.visual.section.activityDefaultAria": "Modo predeterminado de actividad",
"settings.openchamber.visual.section.showToolsOpenedByDefault": "Mostrar herramientas abiertas por defecto:",
"settings.openchamber.visual.section.showToolsOpenedByDefault": "Mostrar herramientas abiertas por defecto",
"settings.openchamber.visual.section.sessionAssistance": "Asistencia de sesión",
"settings.openchamber.visual.section.reasoning": "Razonamiento",
"settings.openchamber.visual.section.messageAppearance": "Apariencia de los mensajes",
@@ -1728,6 +1802,11 @@ export const settingsDict = {
"settings.openchamber.visual.field.fontSizePercentageAria": "Porcentaje de tamaño de fuente",
"settings.openchamber.visual.actions.resetFontSizeAria": "Restablecer tamaño de fuente",
"settings.openchamber.visual.field.terminalFontSize": "Tamaño de fuente del terminal",
"settings.openchamber.visual.field.terminalShell": "Shell del terminal",
"settings.openchamber.visual.field.terminalShellAria": "Seleccionar shell del terminal",
"settings.openchamber.visual.field.terminalShellHint": "Reinicia el terminal para aplicar este cambio a la sesión actual.",
"settings.openchamber.visual.field.terminalLoginShell": "Iniciar como shell de inicio de sesión",
"settings.openchamber.visual.option.terminalShell.auto": "Automático",
"settings.openchamber.visual.field.editorFontSize": "Tamaño de fuente del editor",
"settings.openchamber.visual.field.codeFont": "Fuente de código",
"settings.openchamber.visual.field.selectCodeFontAria": "Seleccionar fuente de código",
@@ -1775,6 +1854,9 @@ export const settingsDict = {
"settings.openchamber.visual.field.promptNavigatorEnabled": "Navegador de prompts",
"settings.openchamber.visual.field.expandedEditorToolbarAria": "Mostrar siempre la barra de herramientas del editor",
"settings.openchamber.visual.field.expandedEditorToolbar": "Mostrar siempre la barra de herramientas del editor (anclada bajo las pestañas)",
"settings.openchamber.visual.field.autoSaveEnabledAria": "Guardado automático de archivos",
"settings.openchamber.visual.field.autoSaveEnabled": "Guardado automático de archivos",
"settings.openchamber.visual.field.autoSaveEnabledInfo": "Guarda automáticamente las ediciones del archivo después de dejar de escribir. Desactívalo para exigir un guardado manual.",
"settings.openchamber.visual.field.wideChatLayoutAria": "Diseño de chat ancho",
"settings.openchamber.visual.field.wideChatLayout": "Diseño de chat ancho",
"settings.openchamber.visual.field.showSplitAssistantMessageActionsAria": "Acciones en línea del asistente",
@@ -1782,6 +1864,8 @@ export const settingsDict = {
"settings.openchamber.visual.field.showSplitAssistantMessageActionsTooltip": "Muestra Copiar respuesta, Guardar como imagen y Leer en voz alta en bloques de texto del asistente que aparecen antes de llamadas a herramientas posteriores dentro de la misma respuesta.",
"settings.openchamber.visual.field.allowPromptingSubagentSessionsAria": "Permitir enviar solicitudes a sesiones de subagentes",
"settings.openchamber.visual.field.allowPromptingSubagentSessions": "Permitir solicitudes en sesiones de subagentes",
"settings.openchamber.visual.field.draftStartersVisible": "Mostrar iniciadores en la pantalla de nueva sesión",
"settings.openchamber.visual.field.draftStartersVisibleAria": "Mostrar iniciadores en la pantalla de nueva sesión",
"settings.openchamber.visual.field.showToolFileIconsAria": "Mostrar iconos de archivos de herramientas",
"settings.openchamber.visual.field.codeBlockLineWrapAria": "Ajustar líneas de bloques de código",
"settings.openchamber.visual.field.codeBlockLineWrap": "Ajustar líneas de bloques de código",
@@ -1801,8 +1885,11 @@ export const settingsDict = {
"settings.openchamber.visual.field.sendAnonymousUsageReports": "Enviar informes anónimos de uso",
"settings.openchamber.visual.field.sendAnonymousUsageReportsHint": "Nos ayuda a entender qué versiones de la aplicación se usan activamente para priorizar mejoras. Solo se recopilan la versión de la aplicación, la plataforma y el entorno de ejecución ; no se recopilan datos personales ni código.",
"settings.openchamber.visual.option.themeMode.system": "Sistema",
"settings.openchamber.visual.option.themeMode.system.description": "Seguir la configuración del sistema",
"settings.openchamber.visual.option.themeMode.light": "Claro",
"settings.openchamber.visual.option.themeMode.light.description": "Usar siempre la apariencia clara",
"settings.openchamber.visual.option.themeMode.dark": "Oscuro",
"settings.openchamber.visual.option.themeMode.dark.description": "Usar siempre la apariencia oscura",
"settings.openchamber.visual.option.diffLayout.dynamic.label": "Dinámico",
"settings.openchamber.visual.option.diffLayout.dynamic.description": "Nuevo en línea, modificado lado a lado.",
"settings.openchamber.visual.option.diffLayout.inline.label": "Siempre en línea",
+170 -43
View File
@@ -3,6 +3,15 @@ import { settingsDict } from './es.settings';
export const dict: Record<I18nKey, string> = {
...settingsDict,
'terminalView.actions.attachSelection': 'Adjuntar salida seleccionada',
'terminalView.actions.restart': 'Reiniciar terminal',
'chat.message.terminalContext': '{terminal}, líneas {start}-{end}',
'chat.chatInput.terminalContext': '{terminal}, líneas {start}-{end}',
'chat.chatInput.terminalContextRemove': 'Eliminar contexto del terminal',
'chat.chatInput.prCommentContext': 'Comentarios del PR',
'chat.chatInput.prCommentContextRemove': 'Quitar el contexto de comentarios del PR',
'chat.chatInput.prCheckContext': 'Comprobaciones del PR fallidas',
'chat.chatInput.prCheckContextRemove': 'Quitar el contexto de comprobaciones del PR',
"common.loading": "Cargando...",
"common.unavailable": "No disponible",
"common.language.english": "Inglés",
@@ -44,6 +53,9 @@ export const dict: Record<I18nKey, string> = {
"mobile.connect.unlockButton": "Desbloquear y conectar",
"mobile.connect.cancelPassword": "Usar otro servidor",
"mobile.connect.connecting": "Conectando...",
"mobile.connect.notice.unreachable": "No se pudo conectar con {label}. Comprueba que el servidor esté en marcha.",
"mobile.connect.notice.authExpired": "El acceso a {label} caducó o fue revocado. Inicia sesión de nuevo.",
"mobile.connect.recovery.description": "No se pudo conectar con el servidor guardado. Comprueba que esté en marcha o elige otra instancia.",
"mobile.connect.scanQr": "Escanear código QR",
"mobile.connect.welcome.scanHint": "En tu ordenador, abre «Añadir un dispositivo» para mostrar un código QR y escanéalo aquí.",
"mobile.connect.advanced": "Avanzado",
@@ -79,14 +91,14 @@ export const dict: Record<I18nKey, string> = {
"mobile.nav.changes": "Cambios",
"mobile.nav.settings": "Ajustes",
"mobile.surface.closeAria": "Cerrar",
"mobile.header.openMenuAria": "Abrir menú",
"mobile.header.openWorkspaceAria": "Abrir panel de trabajo",
"mobile.header.openMetadataAria": "Abrir metadatos de la sesión",
"mobile.header.metadata.context": "Contexto",
"mobile.header.metadata.branch": "Rama",
"mobile.header.metadata.usage": "Uso",
"mobile.menu.titleAria": "Herramientas del espacio de trabajo",
"mobile.menu.files": "Archivos",
"mobile.menu.changes": "Cambios",
"mobile.menu.terminal": "Terminal",
"mobile.menu.mcp": "MCP",
"mobile.menu.instances": "Instancias",
"mobile.menu.update": "Actualizar",
@@ -113,17 +125,19 @@ export const dict: Record<I18nKey, string> = {
"mobile.sessions.newChat": "Nuevo chat",
"mobile.sessions.editOrder": "Reordenar proyectos",
"mobile.sessions.doneEditing": "Listo",
"mobile.sessions.editOrderHint": "Arrastra el asa o usa las flechas para reordenar los proyectos. Toca la marca para finalizar.",
"mobile.sessions.editOrderHint": "Arrastra el asa para reordenar los proyectos. Toca un proyecto para mostrar sus worktrees y arrástralos también. Toca la marca para terminar.",
"mobile.sessions.dragHandleAria": "Arrastra {label} para reordenar",
"mobile.sessions.moveUpAria": "Mover {label} arriba",
"mobile.sessions.moveDownAria": "Mover {label} abajo",
"mobile.sessions.removeProjectAria": "Eliminar {label}",
"mobile.sessions.cancelRemoveProjectAria": "Cancelar eliminación de {label}",
"mobile.sessions.confirmRemoveProject": "Cerrar",
"mobile.sessions.confirmRemoveProjectAria": "Confirmar eliminación de {label}",
"mobile.sessions.toast.projectRemoved": "Se eliminó {label}",
"mobile.sessions.archiveSessionAria": "Archivar {title}",
"mobile.sessions.cancelArchiveAria": "Cancelar archivar {title}",
"mobile.sessions.renameSessionAria": "Renombrar {title}",
"mobile.sessions.renameError": "No se pudo renombrar la sesión",
"mobile.sessions.deleteSessionAria": "Eliminar {title}",
"mobile.sessions.confirmDeleteSessionAria": "Confirmar eliminación de {title}",
"mobile.sessions.editProjectAria": "Editar {label}",
"mobile.projectEdit.worktreesTitle": "Worktrees",
"mobile.projectEdit.worktreesEmpty": "Este proyecto aún no tiene worktrees.",
@@ -170,6 +184,8 @@ export const dict: Record<I18nKey, string> = {
"mobile.files.copyPathAria": "Copiar ruta del archivo",
"mobile.files.copyContent": "Copiar contenido",
"mobile.files.copyContentAria": "Copiar contenido del archivo",
"mobile.files.editAria": "Editar archivo",
"mobile.files.doneEditingAria": "Terminar edición",
"mobile.files.toast.pathCopied": "Ruta copiada",
"mobile.files.toast.contentCopied": "Contenido copiado",
"mobile.files.toast.copyFailed": "No se pudo copiar",
@@ -291,6 +307,8 @@ export const dict: Record<I18nKey, string> = {
"sessions.scheduledTasks.editor.goal.aria": "Ejecutar esta tarea como un objetivo que el agente persigue hasta completarlo",
"sessions.scheduledTasks.editor.goal.budgetLabel": "Presupuesto de tokens",
"sessions.scheduledTasks.editor.goal.budgetAria": "Limitar el objetivo a un presupuesto de tokens",
"sessions.scheduledTasks.editor.permissionAutoAccept.label": "Aceptar permisos automáticamente",
"sessions.scheduledTasks.editor.permissionAutoAccept.aria": "Iniciar la sesión de la tarea con la aceptación automática de permisos activada",
"sessions.scheduledTasks.editor.actions.closeAria": "Cerrar",
"sessions.scheduledTasks.editor.actions.cancel": "Cancelar",
"sessions.scheduledTasks.editor.actions.save": "Guardar",
@@ -409,6 +427,28 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.empty.noMatches.title": "No hay sesiones coincidentes",
"sessions.sidebar.empty.noMatches.description": "Inténtalo con un título, rama, carpeta o ruta diferente.",
"sessions.sidebar.activity.recentTitle": "reciente",
"sessions.archivePage.allDirectories": "Todos los directorios",
"sessions.sidebar.header.displayMode.stickyHeaders": "Encabezados de proyecto fijos",
"sessions.sidebar.header.grouping.label": "Agrupar sesiones",
"sessions.sidebar.header.grouping.byWorktree": "Por worktree",
"sessions.sidebar.header.grouping.flat": "Lista plana",
"sessions.sidebar.project.actions.manageWorktrees": "Gestionar worktrees",
"sessions.worktreesPage.title": "Worktrees en {project}",
"sessions.worktreesPage.description": "Crea, inspecciona y elimina los worktrees de git de este proyecto.",
"sessions.worktreesPage.closeAria": "Cerrar worktrees",
"sessions.scheduledTasks.page.closeAria": "Cerrar tareas programadas",
"sessions.sidebar.nav.archive": "Archivo",
"sessions.archivePage.title": "Archivo",
"sessions.archivePage.countSingle": "{count} sesión archivada",
"sessions.archivePage.countPlural": "{count} sesiones archivadas",
"sessions.archivePage.closeAria": "Cerrar archivo",
"sessions.archivePage.searchPlaceholder": "Buscar sesiones archivadas",
"sessions.archivePage.empty.noArchived": "No hay sesiones archivadas",
"sessions.archivePage.empty.noMatches": "No hay sesiones archivadas coincidentes",
"sessions.archivePage.otherProjects": "otros proyectos",
"sessions.archivePage.deleteProject": "Eliminar todas las sesiones archivadas de este proyecto",
"sessions.archivePage.deleteProjectAria": "Eliminar todas las sesiones archivadas de {label}",
"sessions.archivePage.deleteSessionAria": "Eliminar {title}",
"sessions.switcher.openAria": "Abrir selector de sesiones",
"sessions.switcher.empty": "No hay sesiones recientes",
"sessions.switcher.draftTitle": "Nueva sesión",
@@ -442,6 +482,10 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.project.actions.edit": "Editar",
"sessions.sidebar.project.actions.newDraftSession": "Nueva sesión de borrador",
"sessions.sidebar.session.menu.rename": "Cambiar nombre",
"sessions.sidebar.session.menu.copyId": "Copiar ID de sesión",
"sessions.sidebar.session.copyId.success": "ID de sesión copiado",
"sessions.sidebar.session.copyId.error": "No se pudo copiar el ID de sesión",
"header.sessionActions.openAria": "Abrir acciones de sesión",
"sessions.sidebar.session.rename.save": "Guardar nombre de sesión",
"sessions.sidebar.session.rename.cancel": "Cancelar cambio de nombre de sesión",
"sessions.sidebar.session.menu.unpin": "Desanclar sesión",
@@ -451,6 +495,12 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.session.menu.copyLink": "Copiar enlace",
"sessions.sidebar.session.menu.unshare": "Dejar de compartir",
"sessions.sidebar.session.menu.exportMarkdown": "Exportar Markdown",
"sessions.sidebar.session.menu.moveToWorktree": "Mover a un worktree nuevo",
"sessions.sidebar.session.moveToWorktree.success": "Sesión movida a un worktree nuevo",
"sessions.sidebar.session.moveToWorktree.failed": "No se pudo mover la sesión a un worktree nuevo",
"sessions.sidebar.session.moveToWorktree.tooltip": "Crea un worktree nuevo desde la rama actual, transfiere los cambios sin confirmar y mueve allí esta sesión y sus subsesiones.",
"sessions.sidebar.session.moveToWorktree.tooltipBusy": "Disponible cuando la sesión está inactiva. Detén la actividad actual o espera a que termine.",
"sessions.sidebar.session.moveToWorktree.tooltipMoving": "Esta sesión ya se está moviendo a un worktree nuevo.",
"sessions.sidebar.session.menu.runFusion": "Ejecutar fusion",
"sessions.sidebar.session.menu.openInSidePanel": "Abrir en panel lateral",
"sessions.sidebar.session.actions.openInEditor": "Abrir en el editor",
@@ -458,6 +508,7 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.session.menu.label": "Menú de sesión",
"sessions.sidebar.session.untitled": "Sesión sin título",
"sessions.sidebar.session.export.nothingToExport": "No hay nada para exportar",
"sessions.sidebar.session.export.failedLoadHistory": "No se pudo cargar el historial completo de la sesión",
"sessions.sidebar.session.export.success": "Sesión exportada",
"sessions.sidebar.session.export.failedRevealPath": "No se pudo mostrar la ruta",
"sessions.sidebar.session.export.untitledSubagent": "Subagente sin título",
@@ -471,6 +522,7 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.session.status.active": "Sesión activa",
"sessions.sidebar.session.status.unread": "Actualizaciones no leídas",
"sessions.sidebar.session.status.pinned": "Sesión anclada",
"sessions.sidebar.session.status.movingToWorktree": "Moviendo la sesión a un worktree nuevo",
"sessions.sidebar.session.status.permissionRequired": "Permiso requerido",
"sessions.sidebar.session.subsessions.collapse": "Colapsar subsesiones",
"sessions.sidebar.session.subsessions.expand": "Expandir subsesiones",
@@ -512,7 +564,7 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate": "Esta acción elimina permanentemente {count} sesiones de {dateLabel}.",
"sessions.sidebar.dialogs.sessionList.more": "+{count} más",
"sessions.sidebar.session.share.successTitle": "Sesión compartida",
"sessions.sidebar.session.share.successDescription": "Puedes copiar el enlace desde el menú.",
"sessions.sidebar.session.share.successDescription": "El enlace para compartir se copió al portapapeles.",
"sessions.sidebar.session.share.error": "No se puede compartir la sesión",
"sessions.sidebar.session.share.copyUrlError": "No se pudo copiar la URL",
"sessions.sidebar.session.unshare.success": "Sesión dejó de compartirse",
@@ -694,6 +746,8 @@ export const dict: Record<I18nKey, string> = {
"gitView.header.noIdentity": "Sin identidad",
"gitView.header.noProfiles": "No hay perfiles disponibles para aplicar.",
"gitView.header.repositoryViews": "Vistas del repositorio",
"gitView.header.updateBranch": "Actualizar rama",
"gitView.header.openPullRequest": "Abrir pull request",
"gitView.header.removeRemoteAria": "Eliminar remoto",
"gitView.header.removeRemoteTitle": "Eliminar remoto",
"gitView.header.upstreamSynced": "sincronizado",
@@ -745,6 +799,7 @@ export const dict: Record<I18nKey, string> = {
"gitView.history.renamedNoDiff": "Archivo renombrado — diff no soportado",
"gitView.history.renderDiffAnyway": "Renderizar igualmente",
"gitView.history.title": "Historial",
"gitView.history.refresh": "Actualizar",
"gitView.graph.title": "Grafo",
"gitView.integrate.checking": "Verificando…",
"gitView.integrate.cherryPickAbortedToast": "Cherry-pick abortado",
@@ -779,12 +834,15 @@ export const dict: Record<I18nKey, string> = {
"gitView.operation.abort": "Abortar",
"gitView.operation.continue": "Continuar",
"gitView.operation.inProgressTitle": "{operation} en progreso",
"gitView.operation.inProgressTitleManyConflicts": "{operation} en curso: {count} conflictos",
"gitView.operation.inProgressTitleOneConflict": "{operation} en curso: {count} conflicto",
"gitView.operation.merge": "Merge",
"gitView.operation.mergeInProgressWithHead": "Haciendo merge de {head}",
"gitView.operation.mergingMessage": "Haciendo merge: {message}",
"gitView.operation.rebase": "Rebase",
"gitView.operation.rebaseInProgress": "Rebase en progreso",
"gitView.operation.rebasingOnto": "Haciendo rebase de {headName} sobre {onto}",
"gitView.operation.readyToContinueHint": "Todos los conflictos están resueltos. Continúa para finalizar la operación.",
"gitView.operation.resolveConflictsHint": "Resuelve los conflictos y luego continúa la operación.",
"gitView.operation.resolveWithAi": "Resolver con IA",
"gitView.stash.confirmButton": "Guardar cambios y continuar",
@@ -879,15 +937,15 @@ export const dict: Record<I18nKey, string> = {
"gitView.pr.actions.openOnGitHubAria": "Abrir PR en GitHub",
"gitView.pr.actions.openSettings": "Abrir configuración",
"gitView.pr.actions.repo": "Repositorio",
"gitView.pr.actions.resolveFailedChecks": "Resolver checks fallidos",
"gitView.pr.actions.resolveFailedChecksAria": "Enviar checks fallidos al agente",
"gitView.pr.actions.resolveFailedChecks": "Adjuntar comprobaciones fallidas",
"gitView.pr.actions.resolveFailedChecksAria": "Adjuntar comprobaciones fallidas al contexto del chat",
"gitView.pr.actions.savePr": "Guardar PR",
"gitView.pr.actions.savePrAria": "Guardar cambios de la PR",
"gitView.pr.actions.sendCommentToAgent": "Enviar comentario al agente",
"gitView.pr.actions.sendCommentToAgentAria": "Enviar este comentario al agente",
"gitView.pr.actions.sendToAgent": "Enviar al agente",
"gitView.pr.actions.shareComments": "Compartir comentarios",
"gitView.pr.actions.shareCommentsAria": "Enviar comentarios de la PR al agente",
"gitView.pr.actions.sendCommentToAgent": "Adjuntar comentario al contexto del chat",
"gitView.pr.actions.sendCommentToAgentAria": "Adjuntar este comentario al contexto del chat",
"gitView.pr.actions.sendToAgent": "Adjuntar al chat",
"gitView.pr.actions.shareComments": "Adjuntar comentarios",
"gitView.pr.actions.shareCommentsAria": "Adjuntar los comentarios del pull request al contexto del chat",
"gitView.pr.actions.toggleDraftAria": "Alternar estado de borrador",
"gitView.pr.actions.refresh": "Actualizar estado de la PR",
"gitView.pr.actions.refreshAria": "Actualizar estado del pull request",
@@ -925,6 +983,10 @@ export const dict: Record<I18nKey, string> = {
"gitView.pr.noMergePermission": "No tienes permiso para hacer merge de esta PR.",
"gitView.pr.notMergeable": "No se puede hacer merge",
"gitView.pr.numberLabel": "PR # {number}",
"gitView.pr.segment.overview": "Resumen",
"gitView.pr.segment.checks": "Comprobaciones",
"gitView.pr.segment.comments": "Comentarios",
"gitView.pr.comments.addAll": "Adjuntar todo al chat",
"gitView.pr.placeholder.additionalContext": "Cualquier restricción, nota de lanzamiento o contexto para revisor...",
"gitView.pr.placeholder.description": "Describe el cambio...",
"gitView.pr.placeholder.main": "Resume tu PR",
@@ -959,9 +1021,6 @@ export const dict: Record<I18nKey, string> = {
"gitView.pullRequest.createHint": "Crea y gestiona PR desde esta rama.",
"gitView.pullRequest.availableOnFeatureBranches": "Disponible cuando la rama actual puede abrir un PR.",
"gitView.pullRequest.title": "PR",
"gitView.tabs.commit": "Commit",
"gitView.tabs.pr": "PR",
"gitView.tabs.update": "Actualizar",
"gitView.tabs.worktree": "Árbol de trabajo",
"gitView.toast.abortOperationFailed": "No se pudo abortar la operación",
"gitView.toast.appliedIdentity": "Identidad aplicada: {name}",
@@ -1028,9 +1087,81 @@ export const dict: Record<I18nKey, string> = {
"contextPanel.mode.stagedDiff": "Staged Diff",
"contextPanel.mode.workingDiff": "Working Diff",
"contextPanel.mode.plan": "Plan",
"contextPanel.mode.pr": "Pull Request",
"contextPanel.mode.context": "Contexto",
"contextPanel.mode.preview": "Vista previa",
"contextPanel.mode.browser": "Navegador",
"contextRail.aria.rail": "Superficies del panel",
"contextPanel.editorEmpty.title": "Ningún archivo abierto",
"contextPanel.editorEmpty.description": "Elige un archivo del árbol para empezar a editar.",
"contextRail.surface.editor.description": "Editar archivos del proyecto",
"contextRail.surface.git.description": "Commits, ramas y pull requests",
"contextRail.surface.terminal.description": "Terminal integrada",
"contextRail.surface.diff.description": "Revisar cambios en curso",
"contextPanel.mode.walkthrough": "Recorrido",
"contextRail.surface.walkthrough.description": "Un recorrido por tus cambios guiado por IA",
"walkthrough.scope.all": "Todo sin confirmar",
"walkthrough.scope.group.workingTree": "Árbol de trabajo",
"walkthrough.scope.group.committed": "Confirmado",
"walkthrough.scope.staged": "Preparados",
"walkthrough.scope.working": "Sin preparar",
"walkthrough.scope.branch": "Esta rama",
"walkthrough.scope.selectorAria": "Elegir qué revisar",
"walkthrough.language.menuLabel": "Idioma del recorrido",
"walkthrough.missing.language": "Aún no hay un recorrido en {requested}: se muestra el de {shown}.",
"walkthrough.missing.model": "Aún no hay un recorrido de {model}: se muestra el último generado aquí.",
"walkthrough.missing.languageAndModel": "Aún no hay un recorrido en este idioma con este modelo: se muestra el último generado aquí.",
"walkthrough.language.selectorAria": "Elegir el idioma del recorrido",
"walkthrough.scope.pullRequest": "PR n.º {number}",
"walkthrough.action.generate": "Generar recorrido",
"walkthrough.action.regenerate": "Regenerar",
"walkthrough.action.cancel": "Cancelar",
"walkthrough.action.next": "Paso siguiente",
"walkthrough.action.previous": "Paso anterior",
"walkthrough.action.refresh": "Actualizar",
"walkthrough.action.open": "Recorrido con IA",
"walkthrough.stage.collecting": "Reuniendo los cambios",
"walkthrough.stage.asking": "Esperando al modelo",
"walkthrough.stage.assembling": "Montando el recorrido",
"walkthrough.empty.title": "Todavía no hay recorrido",
"walkthrough.empty.description": "Crea una ruta de lectura guiada por estos cambios. Esto llama al modelo pequeño y consume tokens, así que solo se ejecuta cuando lo pides.",
"walkthrough.stale.banner": "El código cambió después de esta revisión. Pasos desactualizados: {count}",
"walkthrough.stop.staleAll": "Todo el código que describía este paso ha cambiado.",
"walkthrough.stop.stalePartial": "Parte del código que describía este paso ha cambiado. Fragmentos perdidos: {count}",
"walkthrough.stop.staleShort": "Desactualizado",
"walkthrough.stop.noCode": "El código de este paso no está en el diff actual.",
"walkthrough.uncovered.title": "Cambios que la revisión omitió: {count}",
"walkthrough.uncovered.description": "La revisión los consideró rutinarios. Despliega para revisarlos tú mismo.",
"walkthrough.toc.moreFiles": "Más archivos: {count}",
"walkthrough.toc.uncovered": "Sin cubrir: {count}",
"walkthrough.toc.resize": "Cambiar el ancho de la columna de contenidos",
"walkthrough.importance.critical": "Crítico",
"walkthrough.importance.context": "Contexto",
"walkthrough.blocked.noModel.title": "No hay ningún modelo pequeño disponible",
"walkthrough.blocked.noModel.description": "Inicia sesión en un proveedor de modelos para generar una revisión.",
"walkthrough.blocked.emptyDiff.title": "Nada que revisar",
"walkthrough.blocked.emptyDiff.description": "Todavía no hay cambios en este ámbito.",
"walkthrough.blocked.contextTooSmall.title": "Este diff es demasiado grande para el modelo actual",
"walkthrough.blocked.contextTooSmall.description": "{model} admite unos {available} mil caracteres y este diff necesita unos {required} mil. No se recorta nada: elige un modelo con más contexto.",
"walkthrough.blocked.structuredOutput.title": "Este modelo no puede generar salida estructurada",
"walkthrough.blocked.structuredOutput.description": "{model} no admite las respuestas estructuradas que necesita un recorrido.",
"walkthrough.blocked.chooseModel": "Elige el modelo pequeño",
"walkthrough.blocked.outputExhausted.title": "El modelo se quedó sin presupuesto de respuesta",
"walkthrough.blocked.outputExhausted.description": "{model} gastó todo su margen de salida razonando y no devolvió nada. Los modelos de razonamiento suelen hacerlo con diffs grandes: prueba con un modelo que razone menos o revisa un ámbito más reducido.",
"walkthrough.blocked.outputExhausted.descriptionUnknownModel": "El modelo pequeño gastó todo su margen de salida razonando y no devolvió nada. Los modelos de razonamiento suelen hacerlo con diffs grandes: prueba con un modelo que razone menos o revisa un ámbito más reducido.",
"walkthrough.blocked.onlyGenerated.title": "Solo cambiaron archivos generados",
"walkthrough.blocked.onlyGenerated.description": "Todos los cambios son archivos de bloqueo u otra salida generada por herramientas, que la revisión omite a propósito.",
"walkthrough.blocked.contextTooSmall.descriptionUnknownModel": "El modelo pequeño admite unos {available} mil caracteres y este diff necesita unos {required} mil. No se recorta nada: elige un modelo con más contexto.",
"walkthrough.blocked.structuredOutput.descriptionUnknownModel": "El modelo pequeño no admite las respuestas estructuradas que necesita un recorrido.",
"contextRail.surface.plan.description": "Ver el plan actual",
"contextRail.surface.pr.description": "Crea, revisa y fusiona el pull request de la rama actual",
"contextRail.surface.notes.description": "Notas, tareas y planes del proyecto",
"contextRail.surface.context.description": "Contexto de la sesión y uso de tokens",
"contextRail.surface.browser.description": "Navegador web integrado",
"contextRail.surface.preview.description": "Vista previa del servidor de desarrollo",
"contextRail.surface.chat.description": "Sesión abierta en paralelo",
"contextRail.surface.notes": "Notas del proyecto",
"contextRail.editorTree.toggle": "Alternar árbol de archivos",
"contextPanel.browser.open": "Abrir panel del navegador",
"contextPanel.browser.addressAria": "Dirección del navegador",
"contextPanel.browser.empty": "Navegador web",
@@ -1081,6 +1212,7 @@ export const dict: Record<I18nKey, string> = {
"sidebarFilesTree.actions.newFileTitle": "Nuevo archivo",
"sidebarFilesTree.actions.newFolderTitle": "Nueva carpeta",
"sidebarFilesTree.actions.refreshTitle": "Actualizar",
"sidebarFilesTree.actions.collapseAllTitle": "Contraer todas las carpetas",
"sidebarFilesTree.actions.fileMenuTitle": "Menú de archivo",
"sidebarFilesTree.state.searching": "Buscando...",
"sidebarFilesTree.state.loading": "Cargando...",
@@ -1150,6 +1282,8 @@ export const dict: Record<I18nKey, string> = {
"filesView.editor.showControlsAria": "Mostrar controles del editor",
"filesView.editor.controlsTitle": "Controles del editor",
"filesView.editor.pickFileFromTree": "Selecciona un archivo del árbol.",
"filesView.editor.cannotPreviewBinary": "No se puede previsualizar el archivo binario",
"filesView.editor.binaryFileDescription": "Este archivo es binario y no se puede editar en OpenChamber. Descárgalo para abrirlo con otra aplicación.",
"filesView.state.loading": "Cargando...",
"filesView.state.openingFileAtChange": "Abriendo archivo en cambio...",
"filesView.tree.search.placeholder": "Buscar archivos...",
@@ -1445,6 +1579,8 @@ export const dict: Record<I18nKey, string> = {
"terminalView.quickKeys.tabAria": "Tab",
"terminalView.quickKeys.controlLabel": "Ctrl",
"terminalView.quickKeys.controlModifierAria": "Modificador de control",
"terminalView.quickKeys.altLabel": "Alt",
"terminalView.quickKeys.altModifierAria": "Modificador Alt",
"terminalView.quickKeys.commandModifierAria": "Modificador de comando",
"terminalView.quickKeys.arrowUpAria": "Flecha arriba",
"terminalView.quickKeys.arrowLeftAria": "Flecha izquierda",
@@ -1453,13 +1589,6 @@ export const dict: Record<I18nKey, string> = {
"terminalView.quickKeys.enterAria": "Enter",
"terminalView.tabs.closeTabTitle": "Cerrar pestaña",
"terminalView.tabs.newTabTitle": "Nueva pestaña",
"terminalView.bottomDock.resizeAria": "Ajustar tamaño del panel de terminal",
"terminalView.bottomDock.restoreTitle": "Restaurar altura del panel de terminal",
"terminalView.bottomDock.restoreAria": "Restaurar altura del panel de terminal",
"terminalView.bottomDock.expandTitle": "Expandir panel de terminal",
"terminalView.bottomDock.expandAria": "Expandir panel de terminal",
"terminalView.bottomDock.closeTitle": "Cerrar panel de terminal",
"terminalView.bottomDock.closeAria": "Cerrar panel de terminal",
"terminalView.viewport.inputAria": "Entrada de terminal",
"directoryExplorerDialog.title": "Añadir directorio de proyecto",
"directoryExplorerDialog.description": "Elige una carpeta para añadir como proyecto.",
@@ -1537,10 +1666,9 @@ export const dict: Record<I18nKey, string> = {
"helpDialog.item.focusChatInput": "Enfocar entrada de chat",
"helpDialog.item.togglePromptNavigator": "Mostrar u ocultar navegador de prompts",
"helpDialog.item.abortActiveRun": "Detener ejecución activa (doble presionar)",
"helpDialog.item.toggleRightSidebar": "Mostrar u ocultar barra lateral derecha",
"helpDialog.item.openRightSidebarGitTab": "Abrir pestaña de Git en barra lateral derecha",
"helpDialog.item.openRightSidebarFilesTab": "Abrir pestaña de archivos en barra lateral derecha",
"helpDialog.item.cycleRightSidebarTab": "Cambiar pestaña de la barra lateral derecha",
"helpDialog.item.toggleRightSidebar": 'Alternar panel de contexto',
"helpDialog.item.openRightSidebarGitTab": 'Abrir superficie de Git',
"helpDialog.item.openRightSidebarFilesTab": 'Abrir superficie de archivos',
"helpDialog.item.toggleTerminalDock": "Mostrar u ocultar dock de terminal",
"helpDialog.item.toggleTerminalExpanded": "Expandir o contraer terminal",
"helpDialog.item.togglePlanContextPanel": "Alternar panel de contexto del plan",
@@ -1720,6 +1848,7 @@ export const dict: Record<I18nKey, string> = {
"chat.draftPresets.weigh.label": "Weigh my options",
"chat.draftPresets.plan.label": "Start feature planning",
"chat.draftPresets.craftGoal.label": "Crear un Goal",
"chat.draftPresets.scheduleTask.label": "Programar una tarea",
"chat.draftPresets.debug.label": "Debug an issue",
"chat.draftPresets.review.label": "Review my changes",
"chat.draftStarters.add": "Add a starter",
@@ -1760,6 +1889,7 @@ export const dict: Record<I18nKey, string> = {
"chat.statusRow.todo.priority.low": "Prioridad baja",
"chat.statusRow.actions.stopGeneratingAria": "Detener la generación",
"chat.statusRow.tasksTitle": "Tareas",
"chat.statusRow.modelStatus": "{model} · {status}",
"chat.statusRow.summary.activeLeft": "{active} activas · {left} restantes",
"chat.statusRow.aborted": "Interrumpido",
"chat.revertIndicator.redo": "Rehacer",
@@ -1795,7 +1925,9 @@ export const dict: Record<I18nKey, string> = {
"chat.commandAutocomplete.command.handoffReviewDescription": "Crea o reutiliza una sesión de revisión separada a partir de un handoff generado.",
"chat.commandAutocomplete.command.featurePlanDescription": "Inicia una sesión de planificación guiada e interactiva para una nueva función.",
"chat.commandAutocomplete.command.craftGoalDescription": "Convierte una idea o tarea en un Goal claro y verificable.",
"chat.commandAutocomplete.command.scheduleTaskDescription": "Define una tarea programada mediante un diálogo guiado.",
"chat.chatInput.toast.craftGoalFailed": "No se pudo iniciar la creación del Goal",
"chat.chatInput.toast.scheduleTaskFailed": "No se pudo iniciar la configuración de la tarea programada",
"chat.commandAutocomplete.command.catchUpDescription": "Recupera el contexto: qué estabas haciendo y por dónde continuar.",
"chat.commandAutocomplete.command.debugDescription": "Investigación guiada de la causa raíz de un error antes de proponer una solución.",
"chat.commandAutocomplete.command.weighDescription": "Compara 2-3 enfoques con sus ventajas y desventajas y una recomendación antes de decidir.",
@@ -1820,6 +1952,12 @@ export const dict: Record<I18nKey, string> = {
"chat.container.returnToParent.title": "Volver a la sesión principal",
"chat.container.returnToParent.label": "Principal",
"chat.container.readOnlySubagentPromptBanner": "Las sesiones de subagentes no pueden recibir prompts.",
"chat.container.sessionLoadError.title": "No se pudo cargar la sesión",
"chat.container.sessionLoadError.description": "Comprueba la conexión e intenta cargar esta sesión de nuevo.",
"chat.container.sessionLoadError.retry": "Reintentar",
"sessions.sidebar.group.empty.loadingSessions": "Cargando sesiones…",
"sessions.sidebar.group.empty.loadFailed": "No se pudieron actualizar las sesiones.",
"sessions.sidebar.group.empty.retry": "Reintentar",
"chat.unifiedControls.title": "Controles",
"chat.unifiedControls.model.title": "Modelo",
"chat.unifiedControls.model.noRecent": "No hay modelos recientes",
@@ -1864,6 +2002,9 @@ export const dict: Record<I18nKey, string> = {
"chat.messageBody.actions.fork": "Bifurcar desde aquí",
"chat.messageBody.actions.copyMessageAria": "Copiar texto del mensaje",
"chat.messageBody.actions.copyMessage": "Copiar mensaje",
"chat.messageBody.actions.pinContext": "Fijar en el contexto (se conserva tras la compactación)",
"chat.messageBody.actions.unpinContext": "Quitar del contexto (no se conservará tras la compactación)",
"chat.messageBody.actions.contextPinFailed": "No se pudo actualizar el mensaje fijado en el contexto",
"chat.messageBody.actions.openPreviewAria": "Abrir vista previa",
"chat.messageBody.actions.openPreview": "Abrir vista previa",
"chat.messageBody.actions.copyAnswer": "Copiar respuesta",
@@ -1941,6 +2082,7 @@ export const dict: Record<I18nKey, string> = {
"chat.chatInput.toast.addedFileMentions": "Se añadieron {count} mención(es) de archivo",
"chat.chatInput.toast.attachFileFailed": "No se pudo adjuntar el archivo",
"chat.chatInput.toast.attachNamedFailed": "No se pudo adjuntar {name}",
"chat.chatInput.toast.unsupportedAttachmentModalities": "{model} no admite la entrada de {modalities} necesaria para {files}. Aún puedes enviar el mensaje, pero estos adjuntos podrían ignorarse.",
"chat.chatInput.toast.someFilesSkipped": "Algunos archivos se omitieron:\n{summary}",
"chat.chatInput.toast.vscodePickFailed": "No se pudieron seleccionar archivos en VS Code",
"chat.chatInput.toast.openSessionFirst": "Abre una sesión primero",
@@ -1962,21 +2104,6 @@ export const dict: Record<I18nKey, string> = {
"chat.chatInput.drop.insertMention": "Suelta para insertar como mención",
"chat.chatInput.drop.attachFiles": "Suelta archivos aquí para adjuntar",
"chat.chatInput.fileFallback": "archivo",
"chat.mobileStatus.editProjects.title": "Editar proyectos",
"chat.mobileStatus.editProjects.footer": "Arrastra los elementos para reordenar, o use flechas para mover. Toca editar para cambiar los detalles.",
"chat.mobileStatus.editProjects.empty": "No hay proyectos para editar",
"chat.mobileStatus.projects.empty": "No hay proyectos",
"chat.mobileStatus.projects.addAria": "Añadir proyecto",
"chat.mobileStatus.projects.removeTitle": "Eliminar proyecto",
"chat.mobileStatus.projects.removeDescriptionPrefix": "¿Estás seguro de que quieres eliminar",
"chat.mobileStatus.projects.cancel": "Cancelar",
"chat.mobileStatus.projects.remove": "Eliminar",
"chat.mobileStatus.new": "Nuevo",
"chat.mobileStatus.noSessionsInProject": "No hay sesiones en este proyecto",
"chat.mobileStatus.swipeHint": "← Desliza aquí para abrir los paneles laterales →",
"chat.mobileStatus.toast.addProjectFailed": "No se pudo añadir el proyecto",
"chat.mobileStatus.toast.selectValidDirectory": "Selecciona un directorio válido.",
"chat.mobileStatus.toast.selectDirectoryFailed": "No se pudo seleccionar el directorio",
"chat.toolOutputDialog.image.previousAria": "Imagen anterior",
"chat.toolOutputDialog.image.nextAria": "Imagen siguiente",
"chat.toolOutputDialog.image.closeAria": "Cerrar vista previa de imagen",
@@ -2131,7 +2258,6 @@ export const dict: Record<I18nKey, string> = {
"commandPalette.item.addProject": "Añadir proyecto",
"commandPalette.item.showSessionSwitcher": "Mostrar cambiador de sesiones",
"commandPalette.item.toggleSidebar": "Mostrar u ocultar barra lateral",
"commandPalette.item.toggleRightSidebar": "Mostrar u ocultar barra lateral derecha",
"commandPalette.item.showContextUsage": "Mostrar uso del contexto",
"commandPalette.item.toggleTerminal": "Mostrar u ocultar terminal",
"commandPalette.item.openSettings": "Abrir configuración...",
@@ -2309,6 +2435,7 @@ export const dict: Record<I18nKey, string> = {
"projectActions.actions.addAction": "Añadir acción",
"projectActions.actions.addNewAction": "Añadir nueva acción",
"projectActions.actions.autoDiscover": "Autodetectar",
"projectActions.actions.autoDiscoverTooltip": "Detecta y ejecuta automáticamente el servidor de desarrollo",
"projectActions.actions.chooseActionAria": "Elegir acción del proyecto",
"projectActions.actions.openPreview": "Abrir Preview",
"projectActions.actions.runNamedAria": "Ejecutar {name}",
@@ -9,6 +9,9 @@ export const settingsDict = {
'settings.providers.page.openCodeGo.validate': 'Valider',
'settings.providers.page.openCodeGo.delete': 'Supprimer',
'settings.providers.page.quotaCredentials.saved': 'Identifiants de {provider} enregistrés.',
'settings.providers.page.quotaCredentials.accessToken': 'Jeton d’accès',
'settings.providers.page.quotaCredentials.refreshToken': 'Jeton d’actualisation',
'settings.providers.page.quotaCredentials.tokenPlaceholder': 'Collez le jeton',
'settings.providers.page.openCodeGo.saveFailed': 'Impossible de valider les identifiants OpenCode Go.',
'settings.providers.page.openCodeGo.valid': 'Les identifiants OpenCode Go sont valides.',
'settings.providers.page.openCodeGo.invalid': 'Les identifiants OpenCode Go sont invalides ou expirés.',
@@ -55,13 +58,22 @@ export const settingsDict = {
'settings.page.skillsCatalog.title': 'Catalogue de skills',
'settings.page.git.title': 'Git',
'settings.page.appearance.title': 'Apparence',
'settings.page.appearance.description': 'Personnalisez l’apparence et le ressenti d’OpenChamber.',
'settings.page.chat.title': 'Chat',
'settings.page.chat.description': 'Configurez l’affichage des messages et des outils.',
'settings.page.shortcuts.title': 'Raccourcis',
'settings.page.shortcuts.description': 'Personnalisez les raccourcis clavier.',
'settings.page.general.title': 'Général',
'settings.page.general.description': 'Démarrage de l\'application, sécurité, connexion et confidentialité.',
'settings.page.sessions.title': 'Sessions',
'settings.page.sessions.description': 'Définissez les valeurs par défaut et la conservation des sessions.',
'settings.page.magicPrompts.title': 'Prompts magiques',
'settings.page.notifications.title': 'Notifications',
'settings.page.notifications.description': 'Choisissez quand et comment être notifié.',
'settings.page.voice.title': 'Voix',
'settings.page.tunnel.title': 'Tunnel à distance',
'settings.page.voice.description': 'Configurez la synthèse vocale et la dictée.',
'settings.page.tunnel.title': 'Tunnel externe',
'settings.page.tunnel.description': 'Exposez cette instance via un tunnel distant.',
'settings.page.snippets.title': 'Extraits',
'settings.snippets.sidebar.title': 'Extraits',
'settings.snippets.sidebar.total': 'Total : {count}',
@@ -118,7 +130,7 @@ export const settingsDict = {
'settings.promptTemplates.page.toast.created': 'Modèle créé',
'settings.promptTemplates.page.toast.createFailed': 'Échec de la création du modèle',
'settings.promptTemplates.page.toast.saveUnexpectedError': 'Une erreur inattendue s\'est produite lors de l\'enregistrement',
'settings.openchamber.tunnel.title': 'Tunnel à distance',
'settings.openchamber.tunnel.title': 'Tunnel externe',
'settings.openchamber.tunnel.description': 'Configurez un accès à distance sécurisé avec des liens rapides ou votre propre tunnel Cloudflare distant géré.',
'settings.openchamber.tunnel.note.serverSideEnforced': 'L\'accès au tunnel sécurisé est appliqué côté serveur.',
'settings.openchamber.tunnel.note.connectLinksOneTime': 'Les liens de connexion sont uniques et sont révoqués lorsque le tunnel s\'arrête ou lorsque la durée de vie du lien de connexion expire.',
@@ -293,6 +305,7 @@ export const settingsDict = {
'settings.remoteInstances.page.logsDialog.selectedInstanceFallback': 'Instance sélectionnée',
'settings.remoteInstances.page.patternDialog.descriptionWithHost': '{host} nécessite une destination concrète.',
'settings.remoteInstances.page.patternDialog.description': 'Entrez la destination.',
'settings.common.infoAria': 'Plus d’informations',
'settings.common.actions.cancel': 'Annuler',
'settings.common.actions.create': 'Créer',
'settings.common.actions.delete': 'Supprimer',
@@ -303,6 +316,8 @@ export const settingsDict = {
'settings.common.actions.copyAll': 'Copier tout',
'settings.common.actions.clear': 'Effacer',
'settings.common.actions.saving': 'Enregistrement...',
'settings.common.status.saved': 'Enregistré',
'settings.common.status.saveFailed': 'Échec de l’enregistrement',
'settings.common.actions.saveChanges': 'Enregistrer les modifications',
'settings.common.scope.global': 'Mondial',
'settings.common.scope.project': 'Projet',
@@ -385,6 +400,33 @@ export const settingsDict = {
'settings.agents.page.section.identityRole': 'Identité et rôle',
'settings.agents.page.section.modelParameters': 'Modèle et paramètres',
'settings.agents.page.section.systemPrompt': 'Prompt système',
'settings.agents.page.permissionsEditor.sectionInfo': 'Modifie les règles de permissions propres à cet agent, telles qu\'enregistrées dans sa config. « Hériter » laisse la clé non définie : la config globale et les valeurs par défaut s\'appliquent.',
'settings.agents.page.permissionsEditor.defaultLabel': 'Défaut pour tous les outils',
'settings.agents.page.permissionsEditor.defaultAria': 'Permission par défaut pour tous les outils',
'settings.agents.page.permissionsEditor.defaultInfo': 'Le repli au niveau de l\'agent (la clé *). S\'applique à tout outil sans règle propre.',
'settings.agents.page.permissionsEditor.effectiveHint': '→ {action}',
'settings.agents.page.permissionsEditor.ruleCount': '{count} règles',
'settings.agents.page.permissionsEditor.keyAria': 'Permission pour {key}',
'settings.agents.page.permissionsEditor.patternPlaceholder': 'Motif, p. ex. rm -rf * ou /path/**',
'settings.agents.page.permissionsEditor.patternActionAria': 'Action pour le motif de {key}',
'settings.agents.page.permissionsEditor.customKeyPlaceholder': 'Clé de permission personnalisée…',
'settings.agents.page.permissionsEditor.sessionRulesTitle': 'Accordées en session (non enregistrées)',
'settings.agents.page.permissionsEditor.sessionRulesInfo': 'Règles accordées pendant des sessions (réponses « toujours autoriser »). Elles s\'appliquent maintenant mais ne font pas partie de la config enregistrée et disparaissent au redémarrage.',
'settings.agents.page.permissionsEditor.action.default': 'Par défaut',
'settings.agents.page.permissionsEditor.action.inherit': 'Hériter',
'settings.agents.page.permissionsEditor.action.allow': 'Autoriser',
'settings.agents.page.permissionsEditor.action.ask': 'Demander',
'settings.agents.page.permissionsEditor.action.deny': 'Refuser',
'settings.agents.page.permissionsEditor.actions.save': 'Enregistrer les permissions',
'settings.agents.page.permissionsEditor.actions.discard': 'Annuler',
'settings.agents.page.permissionsEditor.actions.addRule': 'Ajouter une règle',
'settings.agents.page.permissionsEditor.actions.addKey': 'Ajouter une clé',
'settings.agents.page.permissionsEditor.actions.removeRuleAria': 'Supprimer la règle',
'settings.agents.page.permissionsEditor.actions.retry': 'Réessayer',
'settings.agents.page.permissionsEditor.state.loadFailed': 'Impossible de charger la config de permissions de l\'agent.',
'settings.agents.page.permissionsEditor.toast.saved': 'Permissions enregistrées',
'settings.agents.page.permissionsEditor.toast.savedRestartRequired': 'Permissions enregistrées — redémarrez le serveur OpenCode pour les appliquer',
'settings.agents.page.permissionsEditor.toast.saveFailed': 'Échec de l\'enregistrement des permissions',
'settings.agents.page.section.toolPermissions': 'Autorisations des outils',
'settings.agents.page.field.agentName': 'Nom de l\'agent',
'settings.agents.page.field.agentNamePlaceholder': 'nom-agent',
@@ -420,10 +462,16 @@ export const settingsDict = {
'settings.agents.page.permissions.permissionPlaceholder': 'Autorisation...',
'settings.agents.page.permissions.patternPlaceholder': 'Modèle (e.g. *)',
'settings.page.behavior.title': 'Comportement',
'settings.page.behavior.description': 'Guidez la façon dont l\'agent répond.',
'settings.behavior.page.title': 'Comportement',
'settings.behavior.page.warning.title': 'Les règles globales sont combinées avec les règles du projet',
'settings.behavior.page.warning.description': 'Les modifications apportées ici mettent à jour {path}. OpenCode inclut également toutes les règles AGENTS.md au niveau du projet lorsqu\'elles existent.',
'settings.behavior.page.section.systemPrompt': 'Mondial AGENTS.md',
'settings.behavior.page.section.systemPromptOptimization': 'Optimisation du prompt système',
'settings.behavior.page.systemPromptOptimization.enable': 'Optimiser la taille du prompt système',
'settings.behavior.page.systemPromptOptimization.enableAria': 'Optimiser la taille du prompt système d’OpenCode',
'settings.behavior.page.systemPromptOptimization.info': 'Réduit le prompt système d’environ 40 % pour les agents build et plan. Les autres agents ne sont pas modifiés. Cela peut supprimer les définitions personnalisées qui remplacent build ou plan ; ne l’activez donc pas pour ces workflows. Le redémarrage d’OpenCode applique la modification.',
'settings.behavior.page.systemPromptOptimization.restarting': 'Redémarrage d’OpenCode pour appliquer l’optimisation du prompt système…',
'settings.behavior.page.field.systemPromptPlaceholder': 'Vous êtes un assistant IA utile...\n\nUtilisez cet espace pour définir des règles absolues sur la façon dont l\'IA doit se comporter dans toutes les sessions et tous les fournisseurs.',
'settings.behavior.page.section.responseStyle': 'Style de réponse',
'settings.behavior.page.responseStyle.tooltip': 'Lorsqu\'elles sont activées, ces instructions guident la manière dont l\'assistant répond à chaque nouvelle conversation. Ils sont envoyés avec votre premier message et ne modifient pas vos règles globales AGENTS.md.',
@@ -786,17 +834,24 @@ export const settingsDict = {
'settings.openchamber.sessionRetention.toast.failedDeleteCount': 'Échec de la suppression des sessions {count}',
'settings.openchamber.desktopNetwork.title': 'Accès au réseau de bureau',
'settings.openchamber.desktopNetwork.field.windowControlsPosition': 'Position des contrôles de fenêtre',
'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': 'Choisissez où apparaissent les boutons Réduire, Agrandir et Fermer. Auto suit le système d’exploitation.',
'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': 'Choisissez où apparaissent les boutons Réduire, Agrandir et Fermer. Par défaut à droite.',
'settings.openchamber.desktopNetwork.field.windowControlsPositionAria': 'Position des contrôles de fenêtre',
'settings.openchamber.desktopNetwork.option.windowControlsAuto': 'Auto',
'settings.openchamber.desktopNetwork.option.windowControlsLeft': 'Gauche',
'settings.openchamber.desktopNetwork.option.windowControlsRight': 'Droite',
'settings.openchamber.desktopNetwork.field.windowControls': 'Contrôles de fenêtre',
'settings.openchamber.desktopNetwork.field.windowControlsStyle': 'Style',
'settings.openchamber.desktopNetwork.field.windowControlsStyleAria': 'Style des contrôles de fenêtre',
'settings.openchamber.desktopNetwork.option.windowControlsClassic': 'Classique',
'settings.openchamber.desktopNetwork.option.windowControlsTrafficLights': 'Feux de circulation',
'settings.openchamber.desktopNetwork.field.launchAtLoginAria': 'Démarrez OpenChamber lors de la connexion',
'settings.openchamber.desktopNetwork.field.launchAtLogin': 'Démarrez OpenChamber lorsque vous vous connectez',
'settings.openchamber.desktopNetwork.field.launchAtLoginDescription': 'Démarre l\'application en arrière-plan sans ouvrir de fenêtre. Utilisez l\'icône d\'état du bureau pour l\'ouvrir.',
'settings.openchamber.desktopNetwork.field.macMenuBarAria': 'Afficher OpenChamber dans la barre des menus macOS',
'settings.openchamber.desktopNetwork.field.macMenuBar': 'Afficher OpenChamber dans la barre des menus',
'settings.openchamber.desktopNetwork.field.macMenuBarDescription': 'Nécessite un redémarrage de l\'application. Lorsque cette option est désactivée, OpenChamber ne crée pas l\'élément de barre des menus et n\'exécute pas ses mises à jour de sessions, d\'approbations et d\'utilisation.',
'settings.openchamber.desktopNetwork.field.minimizeToTrayAria': 'Réduire et fermer OpenChamber dans la zone de notification',
'settings.openchamber.desktopNetwork.field.minimizeToTray': 'Réduire et fermer dans la zone de notification',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': 'Garde OpenChamber actif dans la zone de notification Windows lorsque la fenêtre principale est réduite ou fermée.',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': 'Garde OpenChamber actif dans la zone de notification lorsque la fenêtre principale est réduite ou fermée.',
'settings.openchamber.desktopNetwork.field.keepAwakeAria': 'Garder l\'ordinateur éveillé pendant qu\'OpenChamber fonctionne',
'settings.openchamber.desktopNetwork.field.keepAwake': 'Garder l\'ordinateur éveillé pendant qu\'OpenChamber fonctionne',
'settings.openchamber.desktopNetwork.field.keepAwakeDescription': 'Pour que les téléphones puissent continuer à ouvrir cette application. L\'écran peut toujours s\'éteindre.',
@@ -805,6 +860,8 @@ export const settingsDict = {
'settings.openchamber.desktopNetwork.field.allowLanAccessDescription': 'Redémarre l\'application afin que les téléphones, tablettes et autres ordinateurs connectés à votre réseau Wi-Fi puissent l\'ouvrir.',
'settings.openchamber.desktopNetwork.field.warning': 'Attention : lorsqu\'elle est activée, l\'application est accessible à toute personne se trouvant sur le même réseau local.',
'settings.openchamber.desktopNetwork.field.passwordRequiredWarning': 'L\'accès LAN nécessite un mot de passe de l\'interface utilisateur du bureau. Tant qu\'il n\'est pas défini, l\'application de bureau démarre en accès local uniquement.',
'settings.openchamber.desktopPassword.actions.showPassword': 'Afficher le mot de passe',
'settings.openchamber.desktopPassword.actions.hidePassword': 'Masquer le mot de passe',
'settings.openchamber.desktopPassword.field.password': 'Mot de passe de l\'interface utilisateur du bureau',
'settings.openchamber.desktopPassword.field.passwordPlaceholder': 'Aucun mot de passe requis',
'settings.openchamber.desktopPassword.field.passwordDescription': 'OpenChamber demande après le redémarrage, puis quand la session de connexion expire : après 12 heures, ou 7 jours avec Trust this device. Laissez vide pour désactiver la connexion.',
@@ -827,6 +884,9 @@ export const settingsDict = {
'settings.openchamber.opencodeCli.field.binaryPathPlaceholder': '/Users/you/.bun/bin/opencode',
'settings.openchamber.opencodeCli.field.showUpdateNotifications': 'Afficher les notifications de mise à jour de OpenCode',
'settings.openchamber.opencodeCli.field.showUpdateNotificationsAria': 'Afficher les notifications de mise à jour de OpenCode',
'settings.openchamber.opencodeCli.field.agentControlTool': 'Outil de contrôle pour les agents',
'settings.openchamber.opencodeCli.field.agentControlToolAria': 'Activer l’outil de contrôle pour les agents',
'settings.openchamber.opencodeCli.field.agentControlToolInfo': 'Laissez les agents orchestrer votre travail depuis le chat : créer des sessions et des worktrees, déléguer des prompts à d’autres agents et gérer les tâches planifiées. Ajoute une courte description d’outil à chaque session. Appliqué après Save + Reload.',
'settings.openchamber.opencodeCli.actions.browseAria': 'Rechercher le chemin binaire OpenCode',
'settings.openchamber.opencodeCli.actions.browse': 'Parcourir',
'settings.openchamber.opencodeCli.actions.saveAndReload': 'Enregistrer + Recharger',
@@ -933,10 +993,9 @@ export const settingsDict = {
'settings.openchamber.keyboardShortcuts.action.toggle_terminal.label': 'Basculer la station d\'accueil du terminal',
'settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label': 'Terminal à bascule étendu',
'settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label': 'Basculer la barre latérale',
'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': 'Basculer la barre latérale droite',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': 'Ouvrir l\'onglet Git de la barre latérale droite',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': 'Ouvrir l\'onglet Fichiers de la barre latérale droite',
'settings.openchamber.keyboardShortcuts.action.cycle_right_sidebar_tab.label': 'Faire défiler l\'onglet de la barre latérale droite',
'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': 'Afficher/masquer le panneau de contexte',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': 'Ouvrir la surface Git',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': 'Ouvrir la surface Fichiers',
'settings.openchamber.keyboardShortcuts.action.new_chat.label': 'Nouvelle session',
'settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label': 'Nouvelle ébauche d\'worktree',
'settings.openchamber.keyboardShortcuts.action.new_mini_chat.label': 'Nouvelle fenêtre de mini-chat',
@@ -1122,7 +1181,7 @@ export const settingsDict = {
'settings.openchamber.worktrees.setup.waitForCommandsAria': 'Attendre les commandes de configuration Worktree avant de créer ou d\'envoyer une session',
'settings.openchamber.worktrees.setup.toast.saveFailed': 'Échec de l\'enregistrement des commandes de configuration Worktree',
'settings.openchamber.worktrees.list.title': 'Worktrees existants',
'settings.openchamber.worktrees.list.tooltip': 'Les worktrees vivent en dehors du dépôt (gérés par OpenCode). La suppression d\'un worktree supprime également les sessions liées.',
'settings.openchamber.worktrees.list.tooltip': 'La suppression d\'un worktree supprime également les sessions liées.',
'settings.openchamber.worktrees.list.loading': 'Chargement des worktrees...',
'settings.openchamber.worktrees.list.empty': 'Aucun worktree trouvé pour ce projet',
'settings.openchamber.worktrees.list.detachedHead': 'HEAD détaché',
@@ -1382,6 +1441,10 @@ export const settingsDict = {
'settings.openchamber.defaults.smallModel.useDefault': 'Utiliser le petit modèle par défaut',
'settings.openchamber.defaults.smallModel.useDefaultAria': 'Utiliser le petit modèle par défaut',
'settings.openchamber.defaults.smallModel.overrideModel': 'Modèle de remplacement',
'settings.openchamber.defaults.walkthroughModel.title': 'Modèle du parcours des modifications',
'settings.openchamber.defaults.walkthroughModel.description': 'La revue par IA de vos modifications exige une sortie structurée et de la place pour un diff entier, ce qu’un petit modèle économique ne fournit pas toujours. Les modèles que le catalogue déclare incapables de sortie structurée sont masqués ici. Sans choix explicite, le petit modèle est utilisé.',
'settings.openchamber.defaults.walkthroughModel.overrideModel': 'Modèle du parcours',
'settings.openchamber.defaults.walkthroughModel.usesSmallModel': 'Petit modèle',
'settings.openchamber.defaults.field.showDeletionDialog': 'Afficher la boîte de dialogue de suppression',
'settings.openchamber.defaults.field.openFilesPreviewAria': 'Ouvrir les fichiers prévisualisables en mode aperçu',
'settings.openchamber.defaults.field.openFilesPreview': 'Ouvrir les fichiers prévisualisables en mode aperçu',
@@ -1510,6 +1573,7 @@ export const settingsDict = {
'settings.voice.page.section.playbackAndSummary': 'Lecture',
'settings.voice.page.field.provider': 'Fournisseur',
'settings.voice.page.provider.browser': 'Navigateur',
'settings.voice.page.provider.openai': 'OpenAI',
'settings.voice.page.provider.custom': 'Personnalisé',
'settings.voice.page.provider.say': 'Dire',
'settings.voice.page.provider.server': 'Serveur',
@@ -1585,15 +1649,21 @@ export const settingsDict = {
'settings.voice.page.preview.voiceLine': 'Bonjour! Je m\'appelle {voiceName}. C\'est ainsi que je parle.',
'settings.voice.page.preview.customServerLine': 'Bonjour! Ceci est un aperçu du serveur TTS personnalisé.',
'settings.openchamber.visual.section.colorMode': 'Mode couleur',
'settings.openchamber.visual.section.colorModeAndTheme': 'Mode couleur et thème',
'settings.openchamber.visual.section.localization': 'Localisation',
'settings.openchamber.visual.section.spacingAndLayout': 'Espacement et disposition',
'settings.openchamber.visual.section.densityAndType': 'Densité et typographie',
'settings.openchamber.visual.section.appInstall': 'Installation de l’app',
'settings.openchamber.visual.section.navigation': 'Navigation',
'settings.openchamber.visual.section.chatRenderMode': 'Mode de rendu du chat',
'settings.openchamber.visual.section.chatRenderModeAria': 'Mode de rendu du chat',
'settings.openchamber.visual.section.chatDisplay': 'Affichage',
'settings.openchamber.visual.section.chatMessageOptions': 'Options des messages',
'settings.openchamber.visual.section.chatFeatures': 'Fonctionnalités',
'settings.openchamber.visual.section.messageStreamTransport': 'Transport de flux de messages',
'settings.openchamber.visual.section.activityDefault': 'Activité par défaut',
'settings.openchamber.visual.section.activityDefaultAria': 'Mode d\'activité par défaut',
'settings.openchamber.visual.section.showToolsOpenedByDefault': 'Afficher les outils ouverts par défaut :',
'settings.openchamber.visual.section.showToolsOpenedByDefault': 'Afficher les outils ouverts par défaut',
'settings.openchamber.visual.section.sessionAssistance': 'Assistance de session',
'settings.openchamber.visual.section.reasoning': 'Raisonnement',
'settings.openchamber.visual.section.messageAppearance': 'Apparence des messages',
@@ -1640,6 +1710,11 @@ export const settingsDict = {
'settings.openchamber.visual.field.fontSizePercentageAria': 'Pourcentage de taille de police',
'settings.openchamber.visual.actions.resetFontSizeAria': 'Réinitialiser la taille de la police',
'settings.openchamber.visual.field.terminalFontSize': 'Taille de la police du terminal',
'settings.openchamber.visual.field.terminalShell': 'Shell du terminal',
'settings.openchamber.visual.field.terminalShellAria': 'Sélectionner le shell du terminal',
'settings.openchamber.visual.field.terminalShellHint': 'Redémarrez le terminal pour appliquer cette modification à la session actuelle.',
'settings.openchamber.visual.field.terminalLoginShell': 'Démarrer comme shell de connexion',
'settings.openchamber.visual.option.terminalShell.auto': 'Automatique',
'settings.openchamber.visual.field.editorFontSize': 'Taille de la police de l\'éditeur',
'settings.openchamber.visual.field.codeFont': 'Police de code',
'settings.openchamber.visual.field.selectCodeFontAria': 'Sélectionnez la police du code',
@@ -1684,6 +1759,9 @@ export const settingsDict = {
'settings.openchamber.visual.field.promptNavigatorEnabled': 'Navigateur de prompts',
'settings.openchamber.visual.field.expandedEditorToolbarAria': 'Toujours afficher la barre d’outils de l’éditeur',
'settings.openchamber.visual.field.expandedEditorToolbar': 'Toujours afficher la barre d’outils de l’éditeur (ancrée sous les onglets de fichiers)',
'settings.openchamber.visual.field.autoSaveEnabledAria': 'Enregistrement automatique des fichiers',
'settings.openchamber.visual.field.autoSaveEnabled': 'Enregistrement automatique des fichiers',
'settings.openchamber.visual.field.autoSaveEnabledInfo': 'Enregistre automatiquement les modifications après l’arrêt de la saisie. Désactivez pour exiger un enregistrement manuel.',
'settings.openchamber.visual.field.wideChatLayoutAria': 'Large disposition de discussion',
'settings.openchamber.visual.field.wideChatLayout': 'Disposition de discussion large',
'settings.openchamber.visual.field.showSplitAssistantMessageActionsAria': 'Actions intégrées de l\'assistant',
@@ -1691,6 +1769,8 @@ export const settingsDict = {
'settings.openchamber.visual.field.showSplitAssistantMessageActionsTooltip': 'Afficher Copier la réponse, Enregistrer en image et Lire à haute voix sur les blocs de texte de l\'assistant qui apparaissent avant les appels d\'outil suivants dans la même réponse.',
'settings.openchamber.visual.field.allowPromptingSubagentSessionsAria': 'Autoriser les requêtes dans les sessions de sous-agents',
'settings.openchamber.visual.field.allowPromptingSubagentSessions': 'Autoriser les requêtes dans les sessions de sous-agents',
'settings.openchamber.visual.field.draftStartersVisible': 'Afficher les raccourcis sur l’écran de nouvelle session',
'settings.openchamber.visual.field.draftStartersVisibleAria': 'Afficher les raccourcis sur l’écran de nouvelle session',
'settings.openchamber.visual.field.showToolFileIconsAria': 'Afficher les icônes des fichiers d\'outils',
'settings.openchamber.visual.field.codeBlockLineWrapAria': 'Renvoyer à la ligne les blocs de code',
'settings.openchamber.visual.field.codeBlockLineWrap': 'Renvoyer à la ligne les blocs de code',
@@ -1708,8 +1788,11 @@ export const settingsDict = {
'settings.openchamber.visual.field.sendAnonymousUsageReports': 'Envoyer des rapports d\'utilisation anonymes',
'settings.openchamber.visual.field.sendAnonymousUsageReportsHint': 'Nous aide à comprendre quelles versions de l\'application sont activement utilisées afin que nous puissions prioriser les améliorations. Seules la version de l’application, la plate-forme et le runtime sont collectés – aucune donnée personnelle ni code.',
'settings.openchamber.visual.option.themeMode.system': 'Système',
'settings.openchamber.visual.option.themeMode.system.description': 'Suivre le réglage système',
'settings.openchamber.visual.option.themeMode.light': 'Clair',
'settings.openchamber.visual.option.themeMode.light.description': 'Toujours utiliser l’apparence claire',
'settings.openchamber.visual.option.themeMode.dark': 'Sombre',
'settings.openchamber.visual.option.themeMode.dark.description': 'Toujours utiliser l’apparence sombre',
'settings.openchamber.visual.option.diffLayout.dynamic.label': 'Dynamique',
'settings.openchamber.visual.option.diffLayout.dynamic.description': 'Choisit automatiquement entre la vue côte à côte et la vue intégrée selon le contenu modifié.',
'settings.openchamber.visual.option.diffLayout.inline.label': 'Toujours intégré',
@@ -1795,6 +1878,10 @@ export const settingsDict = {
'settings.view.search.aria': 'Rechercher dans les paramètres',
'settings.view.search.clear': 'Effacer la recherche des paramètres',
'settings.view.search.noResults': 'Aucun paramètre correspondant',
'settings.view.nav.group.general': 'OpenChamber',
'settings.view.nav.group.projects': 'Espace de travail',
'settings.view.nav.group.opencode': 'OpenCode',
'settings.view.nav.group.content': 'Bibliothèque',
'settings.page.about.title': 'À propos',
'settings.openchamber.tunnel.notAvailable.dependencyNotFound': '{dependency} est introuvable.',
'settings.magicPrompts.sidebar.item.sessionExplore': 'Tour du codebase',
+170 -43
View File
@@ -2,6 +2,15 @@ import { settingsDict } from './fr.settings';
export const dict = {
...settingsDict,
'terminalView.actions.attachSelection': 'Joindre la sortie sélectionnée',
'terminalView.actions.restart': 'Redémarrer le terminal',
'chat.message.terminalContext': '{terminal}, lignes {start}-{end}',
'chat.chatInput.terminalContext': '{terminal}, lignes {start}-{end}',
'chat.chatInput.terminalContextRemove': 'Supprimer le contexte du terminal',
'chat.chatInput.prCommentContext': 'Commentaires de PR',
'chat.chatInput.prCommentContextRemove': 'Retirer le contexte des commentaires de PR',
'chat.chatInput.prCheckContext': 'Vérifications de PR échouées',
'chat.chatInput.prCheckContextRemove': 'Retirer le contexte des vérifications de PR',
'common.loading': 'Chargement...',
'common.unavailable': 'Indisponible',
'common.language.english': 'Anglais',
@@ -134,6 +143,8 @@ export const dict = {
'sessions.scheduledTasks.editor.goal.aria': 'Exécuter cette tâche comme un objectif que l\'agent poursuit jusqu\'au bout',
'sessions.scheduledTasks.editor.goal.budgetLabel': 'Budget de tokens',
'sessions.scheduledTasks.editor.goal.budgetAria': 'Limiter l’objectif à un budget de tokens',
'sessions.scheduledTasks.editor.permissionAutoAccept.label': 'Accepter automatiquement les autorisations',
'sessions.scheduledTasks.editor.permissionAutoAccept.aria': 'Démarrer la session de la tâche avec l’acceptation automatique des autorisations activée',
'sessions.scheduledTasks.editor.actions.closeAria': 'Fermer',
'sessions.scheduledTasks.editor.actions.cancel': 'Annuler',
'sessions.scheduledTasks.editor.actions.save': 'Sauvegarder',
@@ -251,6 +262,28 @@ export const dict = {
'sessions.sidebar.empty.noMatches.title': 'Aucune session correspondante',
'sessions.sidebar.empty.noMatches.description': 'Essayez un autre titre, branche, dossier ou chemin.',
'sessions.sidebar.activity.recentTitle': 'récent',
'sessions.archivePage.allDirectories': 'Tous les répertoires',
'sessions.sidebar.header.displayMode.stickyHeaders': 'Épingler les en-têtes de projet',
'sessions.sidebar.header.grouping.label': 'Regrouper les sessions',
'sessions.sidebar.header.grouping.byWorktree': 'Par worktree',
'sessions.sidebar.header.grouping.flat': 'Liste plate',
'sessions.sidebar.project.actions.manageWorktrees': 'Gérer les worktrees',
'sessions.worktreesPage.title': 'Worktrees dans {project}',
'sessions.worktreesPage.description': 'Créez, inspectez et supprimez les worktrees git de ce projet.',
'sessions.worktreesPage.closeAria': 'Fermer les worktrees',
'sessions.scheduledTasks.page.closeAria': 'Fermer les tâches planifiées',
'sessions.sidebar.nav.archive': 'Archives',
'sessions.archivePage.title': 'Archives',
'sessions.archivePage.countSingle': '{count} session archivée',
'sessions.archivePage.countPlural': '{count} sessions archivées',
'sessions.archivePage.closeAria': 'Fermer les archives',
'sessions.archivePage.searchPlaceholder': 'Rechercher des sessions archivées',
'sessions.archivePage.empty.noArchived': 'Aucune session archivée',
'sessions.archivePage.empty.noMatches': 'Aucune session archivée correspondante',
'sessions.archivePage.otherProjects': 'autres projets',
'sessions.archivePage.deleteProject': 'Supprimer toutes les sessions archivées de ce projet',
'sessions.archivePage.deleteProjectAria': 'Supprimer toutes les sessions archivées de {label}',
'sessions.archivePage.deleteSessionAria': 'Supprimer {title}',
'sessions.switcher.openAria': 'Sélecteur de session ouvert',
'sessions.switcher.empty': 'Aucune session récente',
'sessions.switcher.draftTitle': 'Nouvelle session',
@@ -284,6 +317,10 @@ export const dict = {
'sessions.sidebar.project.actions.edit': 'Modifier',
'sessions.sidebar.project.actions.newDraftSession': 'Nouveau brouillon de session',
'sessions.sidebar.session.menu.rename': 'Rebaptiser',
'sessions.sidebar.session.menu.copyId': 'Copier l’ID de session',
'sessions.sidebar.session.copyId.success': 'ID de session copié',
'sessions.sidebar.session.copyId.error': 'Impossible de copier l’ID de session',
'header.sessionActions.openAria': 'Ouvrir les actions de session',
'sessions.sidebar.session.rename.save': 'Enregistrer le nom de la session',
'sessions.sidebar.session.rename.cancel': 'Annuler la session de changement de nom',
'sessions.sidebar.session.menu.unpin': 'Désépingler la session',
@@ -293,6 +330,12 @@ export const dict = {
'sessions.sidebar.session.menu.copyLink': 'Copier le lien',
'sessions.sidebar.session.menu.unshare': 'Annuler le partage',
'sessions.sidebar.session.menu.exportMarkdown': 'Exporter le Markdown',
'sessions.sidebar.session.menu.moveToWorktree': 'Déplacer vers un nouveau worktree',
'sessions.sidebar.session.moveToWorktree.success': 'Session déplacée vers un nouveau worktree',
'sessions.sidebar.session.moveToWorktree.failed': 'Impossible de déplacer la session vers un nouveau worktree',
'sessions.sidebar.session.moveToWorktree.tooltip': 'Crée un nouveau worktree depuis la branche actuelle, transfère les modifications non validées et y déplace cette session et ses sous-sessions.',
'sessions.sidebar.session.moveToWorktree.tooltipBusy': 'Disponible lorsque la session est inactive. Arrêtez l’activité en cours ou attendez sa fin.',
'sessions.sidebar.session.moveToWorktree.tooltipMoving': 'Cette session est déjà en cours de déplacement vers un nouveau worktree.',
'sessions.sidebar.session.menu.runFusion': 'Exécuter la fusion',
'sessions.sidebar.session.menu.openInSidePanel': 'Ouvrir dans le panneau latéral',
'sessions.sidebar.session.actions.openInEditor': 'Ouvrir dans l\'éditeur',
@@ -300,6 +343,7 @@ export const dict = {
'sessions.sidebar.session.menu.label': 'Menu des sessions',
'sessions.sidebar.session.untitled': 'Session sans titre',
'sessions.sidebar.session.export.nothingToExport': 'Rien à exporter',
'sessions.sidebar.session.export.failedLoadHistory': 'Impossible de charger l’historique complet de la session',
'sessions.sidebar.session.export.success': 'Session exportée',
'sessions.sidebar.session.export.failedRevealPath': 'Impossible de révéler le chemin',
'sessions.sidebar.session.export.untitledSubagent': 'Sous-agent sans titre',
@@ -313,6 +357,7 @@ export const dict = {
'sessions.sidebar.session.status.active': 'Session active',
'sessions.sidebar.session.status.unread': 'Mises à jour non lues',
'sessions.sidebar.session.status.pinned': 'Session épinglée',
'sessions.sidebar.session.status.movingToWorktree': 'Déplacement de la session vers un nouveau worktree',
'sessions.sidebar.session.status.permissionRequired': 'Autorisation requise',
'sessions.sidebar.session.subsessions.collapse': 'Réduire les sous-sessions',
'sessions.sidebar.session.subsessions.expand': 'Développer les sous-sessions',
@@ -354,7 +399,7 @@ export const dict = {
'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': 'Cette action supprime définitivement les sessions {count} de {dateLabel}.',
'sessions.sidebar.dialogs.sessionList.more': '+{count} plus',
'sessions.sidebar.session.share.successTitle': 'Session partagée',
'sessions.sidebar.session.share.successDescription': 'Vous pouvez copier le lien depuis le menu.',
'sessions.sidebar.session.share.successDescription': 'Le lien de partage a été copié dans le presse-papiers.',
'sessions.sidebar.session.share.error': 'Impossible de partager la session',
'sessions.sidebar.session.share.copyUrlError': 'Échec de la copie de URL',
'sessions.sidebar.session.unshare.success': 'Session non partagée',
@@ -529,6 +574,8 @@ export const dict = {
'gitView.header.noIdentity': 'Aucune identité',
'gitView.header.noProfiles': 'Aucun profil disponible à appliquer.',
'gitView.header.repositoryViews': 'Vues du dépôt',
'gitView.header.updateBranch': 'Mettre à jour la branche',
'gitView.header.openPullRequest': 'Ouvrir la pull request',
'gitView.header.removeRemoteAria': 'Supprimer le remote',
'gitView.header.removeRemoteTitle': 'Supprimer le remote',
'gitView.header.upstreamSynced': 'synchronisé',
@@ -579,6 +626,7 @@ export const dict = {
'gitView.history.renamedNoDiff': 'Fichier renommé – diff non pris en charge',
'gitView.history.renderDiffAnyway': 'Rendre quand même',
'gitView.history.title': 'Historique',
'gitView.history.refresh': 'Actualiser',
'gitView.graph.title': 'Graphique',
'gitView.integrate.checking': 'Vérification…',
'gitView.integrate.cherryPickAbortedToast': 'Cherry-pick annulé',
@@ -613,12 +661,15 @@ export const dict = {
'gitView.operation.abort': 'Avorter',
'gitView.operation.continue': 'Continuer',
'gitView.operation.inProgressTitle': '{operation} en cours',
'gitView.operation.inProgressTitleManyConflicts': '{operation} en cours : {count} conflits',
'gitView.operation.inProgressTitleOneConflict': '{operation} en cours : {count} conflit',
'gitView.operation.merge': 'Fusionner',
'gitView.operation.mergeInProgressWithHead': 'Fusion de {head}',
'gitView.operation.mergingMessage': 'Fusion : {message}',
'gitView.operation.rebase': 'Rebase',
'gitView.operation.rebaseInProgress': 'Rebase en cours',
'gitView.operation.rebasingOnto': 'Rebaser {headName} sur {onto}',
'gitView.operation.readyToContinueHint': 'Tous les conflits sont résolus. Poursuivez pour terminer l’opération.',
'gitView.operation.resolveConflictsHint': 'Résolvez les conflits, puis poursuivez l\'opération.',
'gitView.operation.resolveWithAi': 'Résoudre avec l\'IA',
'gitView.stash.confirmButton': 'Confirmer',
@@ -710,15 +761,15 @@ export const dict = {
'gitView.pr.actions.openOnGitHubAria': 'Ouvrir la PR sur GitHub',
'gitView.pr.actions.openSettings': 'Ouvrir les paramètres',
'gitView.pr.actions.repo': 'Dépôt',
'gitView.pr.actions.resolveFailedChecks': 'Résoudre les contrôles échoués',
'gitView.pr.actions.resolveFailedChecksAria': 'Envoyer les chèques échoués à l\'agent',
'gitView.pr.actions.resolveFailedChecks': 'Joindre les vérifications échouées',
'gitView.pr.actions.resolveFailedChecksAria': 'Joindre les vérifications échouées au contexte du chat',
'gitView.pr.actions.savePr': 'Enregistrer la PR',
'gitView.pr.actions.savePrAria': 'Enregistrer les modifications de la PR',
'gitView.pr.actions.sendCommentToAgent': 'Envoyer le commentaire à l\'agent',
'gitView.pr.actions.sendCommentToAgentAria': 'Envoyer ce commentaire à l\'agent',
'gitView.pr.actions.sendToAgent': 'Envoyer à l\'agent',
'gitView.pr.actions.shareComments': 'Partager les commentaires',
'gitView.pr.actions.shareCommentsAria': 'Envoyer les commentaires de la PR à l\'agent',
'gitView.pr.actions.sendCommentToAgent': 'Joindre le commentaire au contexte du chat',
'gitView.pr.actions.sendCommentToAgentAria': 'Joindre ce commentaire au contexte du chat',
'gitView.pr.actions.sendToAgent': 'Joindre au chat',
'gitView.pr.actions.shareComments': 'Joindre les commentaires',
'gitView.pr.actions.shareCommentsAria': 'Joindre les commentaires de la pull request au contexte du chat',
'gitView.pr.actions.toggleDraftAria': 'Basculer l\'état de brouillon',
'gitView.pr.actions.refresh': 'Actualiser le statut PR',
'gitView.pr.actions.refreshAria': 'Actualiser l\'état de la demande d\'extraction',
@@ -756,6 +807,10 @@ export const dict = {
'gitView.pr.noMergePermission': 'Vous n\'êtes pas autorisé à fusionner cette demande d\'extraction.',
'gitView.pr.notMergeable': 'Non fusionnable',
'gitView.pr.numberLabel': 'PR #{number}',
'gitView.pr.segment.overview': 'Aperçu',
'gitView.pr.segment.checks': 'Vérifications',
'gitView.pr.segment.comments': 'Commentaires',
'gitView.pr.comments.addAll': 'Tout joindre au chat',
'gitView.pr.placeholder.additionalContext': 'Toute contrainte, note de déploiement ou contexte du réviseur...',
'gitView.pr.placeholder.description': 'Décrivez le changement...',
'gitView.pr.placeholder.main': 'Résumez votre PR',
@@ -790,9 +845,6 @@ export const dict = {
'gitView.pullRequest.createHint': 'Créez et gérez les PR depuis cette branche.',
'gitView.pullRequest.availableOnFeatureBranches': 'Disponible lorsque la branche actuelle peut ouvrir une PR.',
'gitView.pullRequest.title': 'PR',
'gitView.tabs.commit': 'Commettre',
'gitView.tabs.pr': 'PR',
'gitView.tabs.update': 'Mise à jour',
'gitView.tabs.worktree': 'Worktree',
'gitView.toast.abortOperationFailed': 'Échec de l\'annulation de l\'opération',
'gitView.toast.appliedIdentity': 'Identité appliquée : {name}',
@@ -859,9 +911,81 @@ export const dict = {
'contextPanel.mode.stagedDiff': 'Différence par étapes',
'contextPanel.mode.workingDiff': 'Différentiel de travail',
'contextPanel.mode.plan': 'Plan',
'contextPanel.mode.pr': 'Pull Request',
'contextPanel.mode.context': 'Contexte',
'contextPanel.mode.preview': 'Aperçu',
'contextPanel.mode.browser': 'Navigateur',
'contextRail.aria.rail': 'Surfaces du panneau',
'contextPanel.editorEmpty.title': 'Aucun fichier ouvert',
'contextPanel.editorEmpty.description': 'Choisissez un fichier dans l’arborescence pour commencer.',
'contextRail.surface.editor.description': 'Modifier les fichiers du projet',
'contextRail.surface.git.description': 'Commits, branches et pull requests',
'contextRail.surface.terminal.description': 'Terminal intégré',
'contextRail.surface.diff.description': 'Passer en revue les modifications',
'contextPanel.mode.walkthrough': 'Parcours',
'contextRail.surface.walkthrough.description': 'Un parcours de vos modifications guidé par l’IA',
'walkthrough.scope.all': 'Tout non validé',
'walkthrough.scope.group.workingTree': 'Copie de travail',
'walkthrough.scope.group.committed': 'Validé',
'walkthrough.scope.staged': 'Indexées',
'walkthrough.scope.working': 'Non indexées',
'walkthrough.scope.branch': 'Cette branche',
'walkthrough.scope.selectorAria': 'Choisir ce qui est examiné',
'walkthrough.language.menuLabel': 'Langue du parcours',
'walkthrough.missing.language': 'Pas encore de parcours en {requested} — voici celui en {shown}.',
'walkthrough.missing.model': 'Pas encore de parcours généré par {model} — voici le dernier généré ici.',
'walkthrough.missing.languageAndModel': 'Pas encore de parcours dans cette langue avec ce modèle — voici le dernier généré ici.',
'walkthrough.language.selectorAria': 'Choisir la langue du parcours',
'walkthrough.scope.pullRequest': 'PR n° {number}',
'walkthrough.action.generate': 'Générer le parcours',
'walkthrough.action.regenerate': 'Régénérer',
'walkthrough.action.cancel': 'Annuler',
'walkthrough.action.next': 'Étape suivante',
'walkthrough.action.previous': 'Étape précédente',
'walkthrough.action.refresh': 'Actualiser',
'walkthrough.action.open': 'Parcours',
'walkthrough.stage.collecting': 'Collecte des modifications',
'walkthrough.stage.asking': 'En attente du modèle',
'walkthrough.stage.assembling': 'Assemblage du parcours',
'walkthrough.empty.title': 'Aucun parcours pour l’instant',
'walkthrough.empty.description': 'Construisez un parcours de lecture guidé à travers ces modifications. Cela appelle le petit modèle et consomme des jetons, donc rien ne se lance sans votre demande.',
'walkthrough.stale.banner': 'Le code a changé après cette revue. Étapes obsolètes : {count}',
'walkthrough.stop.staleAll': 'Tout le code décrit par cette étape a changé.',
'walkthrough.stop.stalePartial': 'Une partie du code décrit par cette étape a changé. Fragments manquants : {count}',
'walkthrough.stop.staleShort': 'Obsolète',
'walkthrough.stop.noCode': 'Le code de cette étape est absent du diff actuel.',
'walkthrough.uncovered.title': 'Modifications non traitées par la revue : {count}',
'walkthrough.uncovered.description': 'La revue les a jugées courantes. Dépliez pour les vérifier vous-même.',
'walkthrough.toc.moreFiles': 'Autres fichiers : {count}',
'walkthrough.toc.uncovered': 'Non traité : {count}',
'walkthrough.toc.resize': 'Redimensionner la colonne du sommaire',
'walkthrough.importance.critical': 'Critique',
'walkthrough.importance.context': 'Contexte',
'walkthrough.blocked.noModel.title': 'Aucun petit modèle disponible',
'walkthrough.blocked.noModel.description': 'Connectez-vous à un fournisseur de modèles pour générer une revue.',
'walkthrough.blocked.emptyDiff.title': 'Rien à examiner',
'walkthrough.blocked.emptyDiff.description': 'Il n’y a encore aucune modification dans cette portée.',
'walkthrough.blocked.contextTooSmall.title': 'Ce diff est trop volumineux pour le modèle actuel',
'walkthrough.blocked.contextTooSmall.description': '{model} accepte environ {available} k caractères et ce diff en demande environ {required} k. Rien n’est tronqué : choisissez un modèle au contexte plus large.',
'walkthrough.blocked.structuredOutput.title': 'Ce modèle ne produit pas de sortie structurée',
'walkthrough.blocked.structuredOutput.description': '{model} ne prend pas en charge les réponses structurées nécessaires à un parcours.',
'walkthrough.blocked.chooseModel': 'Choisissez le petit modèle',
'walkthrough.blocked.outputExhausted.title': 'Le modèle a épuisé son budget de réponse',
'walkthrough.blocked.outputExhausted.description': '{model} a dépensé toute sa marge de sortie en raisonnement et n’a rien renvoyé. Les modèles de raisonnement le font souvent sur de gros diffs : essayez un modèle qui réfléchit moins, ou une portée plus étroite.',
'walkthrough.blocked.outputExhausted.descriptionUnknownModel': 'Le petit modèle a dépensé toute sa marge de sortie en raisonnement et n’a rien renvoyé. Les modèles de raisonnement le font souvent sur de gros diffs : essayez un modèle qui réfléchit moins, ou une portée plus étroite.',
'walkthrough.blocked.onlyGenerated.title': 'Seuls des fichiers générés ont changé',
'walkthrough.blocked.onlyGenerated.description': 'Toutes les modifications concernent des fichiers de verrouillage ou d’autres sorties générées, que la revue ignore délibérément.',
'walkthrough.blocked.contextTooSmall.descriptionUnknownModel': 'Le petit modèle accepte environ {available} k caractères et ce diff en demande environ {required} k. Rien n’est tronqué : choisissez un modèle au contexte plus large.',
'walkthrough.blocked.structuredOutput.descriptionUnknownModel': 'Le petit modèle ne prend pas en charge les réponses structurées nécessaires à un parcours.',
'contextRail.surface.plan.description': 'Voir le plan actuel',
'contextRail.surface.pr.description': 'Créer, relire et fusionner la pull request de la branche actuelle',
'contextRail.surface.notes.description': 'Notes, tâches et plans du projet',
'contextRail.surface.context.description': 'Contexte de session et utilisation des tokens',
'contextRail.surface.browser.description': 'Navigateur web intégré',
'contextRail.surface.preview.description': 'Aperçu du serveur de développement',
'contextRail.surface.chat.description': 'Session ouverte côte à côte',
'contextRail.surface.notes': 'Notes du projet',
'contextRail.editorTree.toggle': 'Afficher/masquer l’arborescence de fichiers',
'contextPanel.browser.open': 'Ouvrir le panneau du navigateur',
'contextPanel.browser.addressAria': 'Adresse du navigateur',
'contextPanel.browser.empty': 'Navigateur Internet',
@@ -944,6 +1068,7 @@ export const dict = {
'sidebarFilesTree.actions.newFileTitle': 'Nouveau fichier',
'sidebarFilesTree.actions.newFolderTitle': 'Nouveau dossier',
'sidebarFilesTree.actions.refreshTitle': 'Rafraîchir',
'sidebarFilesTree.actions.collapseAllTitle': 'Réduire tous les dossiers',
'sidebarFilesTree.actions.fileMenuTitle': 'Menu Fichier',
'sidebarFilesTree.state.searching': 'Recherche...',
'sidebarFilesTree.state.loading': 'Chargement...',
@@ -1013,6 +1138,8 @@ export const dict = {
'filesView.editor.showControlsAria': 'Afficher les contrôles de l\'éditeur',
'filesView.editor.controlsTitle': 'Contrôles de l\'éditeur',
'filesView.editor.pickFileFromTree': 'Choisissez un fichier dans l\'arborescence.',
'filesView.editor.cannotPreviewBinary': 'Impossible de prévisualiser le fichier binaire',
'filesView.editor.binaryFileDescription': 'Ce fichier est binaire et ne peut pas être modifié dans OpenChamber. Téléchargez-le pour l’ouvrir avec une autre application.',
'filesView.state.loading': 'Chargement...',
'filesView.state.openingFileAtChange': 'Ouverture du fichier lors du changement...',
'filesView.tree.search.placeholder': 'Rechercher des fichiers...',
@@ -1287,6 +1414,8 @@ export const dict = {
'terminalView.quickKeys.tabAria': 'Languette',
'terminalView.quickKeys.controlLabel': 'Ctrl',
'terminalView.quickKeys.controlModifierAria': 'Modificateur de contrôle',
'terminalView.quickKeys.altLabel': 'Alt',
'terminalView.quickKeys.altModifierAria': 'Modificateur Alt',
'terminalView.quickKeys.commandModifierAria': 'Modificateur de commande',
'terminalView.quickKeys.arrowUpAria': 'Flèche vers le haut',
'terminalView.quickKeys.arrowLeftAria': 'Flèche vers la gauche',
@@ -1295,13 +1424,6 @@ export const dict = {
'terminalView.quickKeys.enterAria': 'Entrer',
'terminalView.tabs.closeTabTitle': 'Fermer l\'onglet',
'terminalView.tabs.newTabTitle': 'Nouvel onglet',
'terminalView.bottomDock.resizeAria': 'Redimensionner le panneau à bornes',
'terminalView.bottomDock.restoreTitle': 'Restaurer la hauteur du bornier',
'terminalView.bottomDock.restoreAria': 'Restaurer la hauteur du bornier',
'terminalView.bottomDock.expandTitle': 'Développer le panneau de connexion',
'terminalView.bottomDock.expandAria': 'Développer le panneau de connexion',
'terminalView.bottomDock.closeTitle': 'Fermer le panneau à bornes',
'terminalView.bottomDock.closeAria': 'Fermer le panneau à bornes',
'terminalView.viewport.inputAria': 'Entrée de borne',
'directoryExplorerDialog.title': 'Ajouter un répertoire de projet',
'directoryExplorerDialog.description': 'Choisissez un dossier à ajouter en tant que projet.',
@@ -1379,10 +1501,9 @@ export const dict = {
'helpDialog.item.focusChatInput': 'Concentration sur la saisie du chat',
'helpDialog.item.togglePromptNavigator': 'Afficher ou masquer le navigateur de prompts',
'helpDialog.item.abortActiveRun': 'Abandonner l’exécution active (double pression)',
'helpDialog.item.toggleRightSidebar': 'Basculer la barre latérale droite',
'helpDialog.item.openRightSidebarGitTab': 'Ouvrir l\'onglet Git de la barre latérale droite',
'helpDialog.item.openRightSidebarFilesTab': 'Ouvrir l\'onglet Fichiers de la barre latérale droite',
'helpDialog.item.cycleRightSidebarTab': 'Onglet de la barre latérale droite du cycle',
'helpDialog.item.toggleRightSidebar': 'Afficher/masquer le panneau de contexte',
'helpDialog.item.openRightSidebarGitTab': 'Ouvrir la surface Git',
'helpDialog.item.openRightSidebarFilesTab': 'Ouvrir la surface Fichiers',
'helpDialog.item.toggleTerminalDock': 'Basculer la station d\'accueil du terminal',
'helpDialog.item.toggleTerminalExpanded': 'Terminal à bascule étendu',
'helpDialog.item.togglePlanContextPanel': 'Toggle Panneau contextuel du plan',
@@ -1587,6 +1708,7 @@ export const dict = {
'chat.statusRow.todo.priority.low': 'Faible priorité',
'chat.statusRow.actions.stopGeneratingAria': 'Arrêter de générer',
'chat.statusRow.tasksTitle': 'Tâches',
'chat.statusRow.modelStatus': '{model} · {status}',
'chat.statusRow.summary.activeLeft': '{active} actif · {left} gauche',
'chat.statusRow.aborted': 'Avorté',
'chat.revertIndicator.redo': 'Refaire',
@@ -1639,6 +1761,12 @@ export const dict = {
'chat.container.returnToParent.title': 'Retour à la session parents',
'chat.container.returnToParent.label': 'Mère',
'chat.container.readOnlySubagentPromptBanner': 'Les sessions de sous-agent ne peuvent pas être invitées.',
'chat.container.sessionLoadError.title': 'Impossible de charger la session',
'chat.container.sessionLoadError.description': 'Vérifiez la connexion et essayez de charger à nouveau cette session.',
'chat.container.sessionLoadError.retry': 'Réessayer',
'sessions.sidebar.group.empty.loadingSessions': 'Chargement des sessions…',
'sessions.sidebar.group.empty.loadFailed': 'Impossible d’actualiser les sessions.',
'sessions.sidebar.group.empty.retry': 'Réessayer',
'chat.unifiedControls.title': 'Contrôles',
'chat.unifiedControls.model.title': 'Modèle',
'chat.unifiedControls.model.noRecent': 'Aucun modèle récent',
@@ -1679,6 +1807,9 @@ export const dict = {
'chat.messageBody.actions.fork': 'Fourche d\'ici',
'chat.messageBody.actions.copyMessageAria': 'Copier le texte du message',
'chat.messageBody.actions.copyMessage': 'Copier le message',
'chat.messageBody.actions.pinContext': 'Épingler dans le contexte (conservé après compactage)',
'chat.messageBody.actions.unpinContext': 'Désépingler du contexte (non conservé après compactage)',
'chat.messageBody.actions.contextPinFailed': 'Impossible de modifier l’épinglage dans le contexte',
'chat.messageBody.actions.openPreviewAria': 'Ouvrir l\'aperçu',
'chat.messageBody.actions.openPreview': 'Ouvrir l\'aperçu',
'chat.messageBody.actions.copyAnswer': 'Copier la réponse',
@@ -1754,6 +1885,7 @@ export const dict = {
'chat.chatInput.toast.addedFileMentions': 'Ajout des mentions du fichier {count}',
'chat.chatInput.toast.attachFileFailed': 'Impossible de joindre le fichier',
'chat.chatInput.toast.attachNamedFailed': 'Échec de la connexion du {name}',
'chat.chatInput.toast.unsupportedAttachmentModalities': '{model} ne prend pas en charge l’entrée {modalities} requise par {files}. Vous pouvez tout de même envoyer le message, mais ces pièces jointes risquent d’être ignorées.',
'chat.chatInput.toast.someFilesSkipped': 'Certains fichiers ont été ignorés :\n{summary}',
'chat.chatInput.toast.vscodePickFailed': 'Échec de la sélection des fichiers dans VS Code',
'chat.chatInput.toast.openSessionFirst': 'Ouvrir d\'abord une session',
@@ -1774,21 +1906,6 @@ export const dict = {
'chat.chatInput.drop.insertMention': 'Déposer pour insérer comme mention',
'chat.chatInput.drop.attachFiles': 'Déposez les fichiers ici pour les joindre',
'chat.chatInput.fileFallback': 'déposer',
'chat.mobileStatus.editProjects.title': 'Modifier des projets',
'chat.mobileStatus.editProjects.footer': 'Faites glisser les éléments pour les réorganiser ou utilisez les flèches pour les déplacer. Appuyez sur modifier pour modifier les détails.',
'chat.mobileStatus.editProjects.empty': 'Aucun projet à modifier',
'chat.mobileStatus.projects.empty': 'Aucun projet',
'chat.mobileStatus.projects.addAria': 'Ajouter un projet',
'chat.mobileStatus.projects.removeTitle': 'Supprimer le projet',
'chat.mobileStatus.projects.removeDescriptionPrefix': 'Etes-vous sûr de vouloir supprimer',
'chat.mobileStatus.projects.cancel': 'Annuler',
'chat.mobileStatus.projects.remove': 'Retirer',
'chat.mobileStatus.new': 'Nouveau',
'chat.mobileStatus.noSessionsInProject': 'Aucune session dans ce projet',
'chat.mobileStatus.swipeHint': '← Glissez ici pour ouvrir les barres latérales →',
'chat.mobileStatus.toast.addProjectFailed': 'Échec de l\'ajout du projet',
'chat.mobileStatus.toast.selectValidDirectory': 'Veuillez sélectionner un répertoire valide.',
'chat.mobileStatus.toast.selectDirectoryFailed': 'Échec de la sélection du répertoire',
'chat.toolOutputDialog.image.previousAria': 'Image précédente',
'chat.toolOutputDialog.image.nextAria': 'Image suivante',
'chat.toolOutputDialog.image.closeAria': 'Fermer l\'aperçu de l\'image',
@@ -1935,7 +2052,6 @@ export const dict = {
'commandPalette.item.addProject': 'Ajouter un projet',
'commandPalette.item.showSessionSwitcher': 'Afficher le sélecteur de session',
'commandPalette.item.toggleSidebar': 'Basculer la barre latérale',
'commandPalette.item.toggleRightSidebar': 'Basculer la barre latérale droite',
'commandPalette.item.showContextUsage': 'Afficher l\'utilisation du contexte',
'commandPalette.item.toggleTerminal': 'Basculer le terminal',
'commandPalette.item.openSettings': 'Ouvrez les paramètres...',
@@ -2113,6 +2229,7 @@ export const dict = {
'projectActions.actions.addAction': 'Ajouter une action',
'projectActions.actions.addNewAction': 'Ajouter une nouvelle action',
'projectActions.actions.autoDiscover': 'Découverte automatique',
'projectActions.actions.autoDiscoverTooltip': 'Détecte et lance automatiquement le serveur de développement',
'projectActions.actions.chooseActionAria': 'Choisir l\'action du projet',
'projectActions.actions.openPreview': 'Ouvrir l\'aperçu',
'projectActions.actions.runNamedAria': 'Exécutez {name}',
@@ -2552,6 +2669,9 @@ export const dict = {
'mobile.connect.unlockButton': 'Déverrouiller et se connecter',
'mobile.connect.cancelPassword': 'Utiliser un autre serveur',
'mobile.connect.connecting': 'Connexion...',
'mobile.connect.notice.unreachable': 'Impossible de joindre {label}. Vérifiez que le serveur est en marche.',
'mobile.connect.notice.authExpired': 'L\'accès à {label} a expiré ou a été révoqué. Reconnectez-vous.',
'mobile.connect.recovery.description': 'Connexion au serveur enregistré impossible. Vérifiez qu\'il est en marche ou choisissez une autre instance.',
'mobile.connect.scanQr': 'Scanner le code QR',
'mobile.connect.welcome.scanHint': 'Sur votre ordinateur, ouvrez « Ajouter un appareil » pour afficher un code QR, puis scannez-le ici.',
'mobile.connect.advanced': 'Avancé',
@@ -2587,14 +2707,14 @@ export const dict = {
'mobile.nav.changes': 'Modifications',
'mobile.nav.settings': 'Paramètres',
'mobile.surface.closeAria': 'Fermer',
'mobile.header.openMenuAria': 'Ouvrir le menu',
'mobile.header.openWorkspaceAria': 'Ouvrir le panneau de travail',
'mobile.header.openMetadataAria': 'Ouvrir les métadonnées de session',
'mobile.header.metadata.context': 'Contexte',
'mobile.header.metadata.branch': 'Branche',
'mobile.header.metadata.usage': 'Utilisation',
'mobile.menu.titleAria': 'Outils de l’espace de travail',
'mobile.menu.files': 'Fichiers',
'mobile.menu.changes': 'Modifications',
'mobile.menu.terminal': 'Terminal',
'mobile.menu.mcp': 'MCP',
'mobile.menu.instances': 'Instances',
'mobile.menu.update': 'Mettre à jour',
@@ -2621,18 +2741,20 @@ export const dict = {
'mobile.sessions.newChat': 'Nouveau chat',
'mobile.sessions.editOrder': 'Réordonner les projets',
'mobile.sessions.doneEditing': 'Terminé',
'mobile.sessions.editOrderHint': 'Faites glisser la poignée pour réordonner les projets. Touchez la coche pour terminer.',
'mobile.sessions.editOrderHint': 'Faites glisser la poignée pour réorganiser les projets. Touchez un projet pour afficher ses worktrees et les faire glisser aussi. Touchez la coche pour terminer.',
'mobile.sessions.editProjectAria': 'Modifier {label}',
'mobile.sessions.dragHandleAria': 'Faire glisser {label} pour réordonner',
'mobile.sessions.moveUpAria': 'Déplacer {label} vers le haut',
'mobile.sessions.moveDownAria': 'Déplacer {label} vers le bas',
'mobile.sessions.removeProjectAria': 'Supprimer {label}',
'mobile.sessions.cancelRemoveProjectAria': 'Annuler la suppression de {label}',
'mobile.sessions.confirmRemoveProject': 'Fermer',
'mobile.sessions.confirmRemoveProjectAria': 'Confirmer la suppression de {label}',
'mobile.sessions.toast.projectRemoved': '{label} supprimé',
'mobile.sessions.archiveSessionAria': 'Archiver {title}',
'mobile.sessions.cancelArchiveAria': 'Annuler l’archivage de {title}',
'mobile.sessions.renameSessionAria': 'Renommer {title}',
'mobile.sessions.renameError': 'Échec du renommage de la session',
'mobile.sessions.deleteSessionAria': 'Supprimer {title}',
'mobile.sessions.confirmDeleteSessionAria': 'Confirmer la suppression de {title}',
'mobile.projectEdit.worktreesTitle': 'Worktrees',
'mobile.projectEdit.worktreesEmpty': 'Aucun worktree dans ce projet pour le moment.',
'mobile.projectEdit.reorderHint': 'Faites glisser pour réordonner les worktrees.',
@@ -2678,6 +2800,8 @@ export const dict = {
'mobile.files.copyPathAria': 'Copier le chemin du fichier',
'mobile.files.copyContent': 'Copier le contenu',
'mobile.files.copyContentAria': 'Copier le contenu du fichier',
'mobile.files.editAria': 'Modifier le fichier',
'mobile.files.doneEditingAria': 'Terminer la modification',
'mobile.files.toast.pathCopied': 'Chemin copié',
'mobile.files.toast.contentCopied': 'Contenu copié',
'mobile.files.toast.copyFailed': 'Échec de la copie',
@@ -2721,6 +2845,7 @@ export const dict = {
'chat.draftPresets.weigh.label': 'Comparer mes options',
'chat.draftPresets.plan.label': 'Lancer la planification de fonctionnalité',
'chat.draftPresets.craftGoal.label': 'Créer un Goal',
'chat.draftPresets.scheduleTask.label': 'Planifier une tâche',
'chat.draftPresets.debug.label': 'Déboguer un problème',
'chat.draftPresets.review.label': 'Revoir mes modifications',
'chat.draftStarters.add': 'Ajouter un démarrage',
@@ -2733,7 +2858,9 @@ export const dict = {
'chat.commandAutocomplete.command.handoffReviewDescription': 'Créer ou réutiliser une session de revue séparée à partir d’un handoff généré.',
'chat.commandAutocomplete.command.featurePlanDescription': 'Lancer une session guidée et interactive de planification pour une nouvelle fonctionnalité.',
'chat.commandAutocomplete.command.craftGoalDescription': 'Transformer une idée ou une tâche en Goal clair et vérifiable.',
'chat.commandAutocomplete.command.scheduleTaskDescription': 'Définir une tâche planifiée via un dialogue guidé.',
'chat.chatInput.toast.craftGoalFailed': 'Impossible de démarrer la création du Goal',
'chat.chatInput.toast.scheduleTaskFailed': 'Impossible de démarrer la configuration de la tâche planifiée',
'chat.commandAutocomplete.command.catchUpDescription': 'Rétablir le contexte : ce que vous faisiez et où reprendre.',
'chat.commandAutocomplete.command.debugDescription': 'Investigation guidée de la cause racine d’un bug avant de proposer une correction.',
'chat.commandAutocomplete.command.weighDescription': 'Comparer 2 à 3 approches avec compromis et recommandation avant de vous engager.',
@@ -9,6 +9,9 @@ export const settingsDict = {
'settings.providers.page.openCodeGo.validate': '検証',
'settings.providers.page.openCodeGo.delete': '削除',
'settings.providers.page.quotaCredentials.saved': '{provider} の認証情報を保存しました。',
'settings.providers.page.quotaCredentials.accessToken': 'アクセストークン',
'settings.providers.page.quotaCredentials.refreshToken': '更新トークン',
'settings.providers.page.quotaCredentials.tokenPlaceholder': 'トークンを貼り付け',
'settings.providers.page.openCodeGo.saveFailed': 'OpenCode Go の認証情報を検証できませんでした。',
'settings.providers.page.openCodeGo.valid': 'OpenCode Go の認証情報は有効です。',
'settings.providers.page.openCodeGo.invalid': 'OpenCode Go の認証情報が無効または期限切れです。',
@@ -47,6 +50,10 @@ export const settingsDict = {
'settings.view.search.aria': '設定を検索',
'settings.view.search.clear': '設定検索をクリア',
'settings.view.search.noResults': '該当する設定がありません',
'settings.view.nav.group.general': 'OpenChamber',
'settings.view.nav.group.projects': 'ワークスペース',
'settings.view.nav.group.opencode': 'OpenCode',
'settings.view.nav.group.content': 'ライブラリ',
'settings.page.projects.title': 'プロジェクト',
'settings.page.remoteInstances.title': 'リモートインスタンス',
'settings.page.providers.title': 'プロバイダー',
@@ -59,13 +66,22 @@ export const settingsDict = {
'settings.page.skillsCatalog.title': 'スキルカタログ',
'settings.page.git.title': 'Git',
'settings.page.appearance.title': '外観',
'settings.page.appearance.description': 'OpenChamber の見た目と操作感をカスタマイズします。',
'settings.page.chat.title': 'チャット',
'settings.page.chat.description': 'メッセージとツールの表示方法を設定します。',
'settings.page.shortcuts.title': 'ショートカット',
'settings.page.shortcuts.description': 'キーボードショートカットをカスタマイズします。',
'settings.page.general.title': '一般',
'settings.page.general.description': 'アプリの起動、セキュリティ、接続、プライバシー。',
'settings.page.sessions.title': 'セッション',
'settings.page.sessions.description': 'セッションのデフォルトと保持期間を設定します。',
'settings.page.magicPrompts.title': 'マジックプロンプト',
'settings.page.notifications.title': '通知',
'settings.page.notifications.description': '通知のタイミングと方法を選択します。',
'settings.page.voice.title': '音声',
'settings.page.tunnel.title': 'リモートトンネル',
'settings.page.voice.description': '音声読み上げとディクテーションを設定します。',
'settings.page.tunnel.title': '外部トンネル',
'settings.page.tunnel.description': 'このインスタンスをリモートトンネルで公開します。',
'settings.page.about.title': '概要',
'settings.page.snippets.title': 'スニペット',
'settings.snippets.sidebar.title': 'スニペット',
@@ -123,7 +139,7 @@ export const settingsDict = {
'settings.promptTemplates.page.toast.created': 'Template を作成しました',
'settings.promptTemplates.page.toast.createFailed': 'Template の作成に失敗しました',
'settings.promptTemplates.page.toast.saveUnexpectedError': '保存中に予期しないエラーが発生しました',
'settings.openchamber.tunnel.title': 'リモートトンネル',
'settings.openchamber.tunnel.title': '外部トンネル',
'settings.openchamber.tunnel.description': 'クイックリンクまたは自身で管理するリモート Cloudflare Tunnel を使用して安全なリモートアクセスを設定します。',
'settings.openchamber.tunnel.note.serverSideEnforced': '安全な Tunnel アクセスはサーバー側で強制されます。',
'settings.openchamber.tunnel.note.connectLinksOneTime': '接続リンクは一度きりで、Tunnel が停止するか接続リンクの TTL が期限切れになると無効になります。',
@@ -399,6 +415,7 @@ export const settingsDict = {
'settings.remoteInstances.page.logsDialog.selectedInstanceFallback': '選択したインスタンス',
'settings.remoteInstances.page.patternDialog.descriptionWithHost': '{host} には具体的な接続先が必要です。',
'settings.remoteInstances.page.patternDialog.description': '接続先を入力してください。',
'settings.common.infoAria': '詳細情報',
'settings.common.actions.cancel': 'キャンセル',
'settings.common.actions.create': '作成',
'settings.common.actions.delete': '削除',
@@ -409,6 +426,8 @@ export const settingsDict = {
'settings.common.actions.copyAll': 'すべてコピー',
'settings.common.actions.clear': 'クリア',
'settings.common.actions.saving': '保存中...',
'settings.common.status.saved': '保存済み',
'settings.common.status.saveFailed': '保存に失敗しました',
'settings.common.actions.saveChanges': '変更を保存',
'settings.common.scope.global': 'グローバル',
'settings.common.scope.project': 'プロジェクト',
@@ -493,6 +512,33 @@ export const settingsDict = {
'settings.agents.page.section.identityRole': '識別情報と役割',
'settings.agents.page.section.modelParameters': 'モデルとパラメーター',
'settings.agents.page.section.systemPrompt': 'システムプロンプト',
'settings.agents.page.permissionsEditor.sectionInfo': 'このエージェント自身の権限ルールを、設定に保存されているとおりに編集します。「継承」はキーを未設定のままにし、グローバル設定とデフォルトが適用されます。',
'settings.agents.page.permissionsEditor.defaultLabel': '全ツールのデフォルト',
'settings.agents.page.permissionsEditor.defaultAria': '全ツールのデフォルト権限',
'settings.agents.page.permissionsEditor.defaultInfo': 'エージェントレベルのフォールバック(* キー)。個別ルールのないツールに適用されます。',
'settings.agents.page.permissionsEditor.effectiveHint': '→ {action}',
'settings.agents.page.permissionsEditor.ruleCount': '{count} 件のルール',
'settings.agents.page.permissionsEditor.keyAria': '{key} の権限',
'settings.agents.page.permissionsEditor.patternPlaceholder': 'パターン(例: rm -rf * や /path/**)',
'settings.agents.page.permissionsEditor.patternActionAria': '{key} パターンのアクション',
'settings.agents.page.permissionsEditor.customKeyPlaceholder': 'カスタム権限キー…',
'settings.agents.page.permissionsEditor.sessionRulesTitle': 'セッションで許可(未保存)',
'settings.agents.page.permissionsEditor.sessionRulesInfo': 'ライブセッション中に許可されたルール(「常に許可」の回答など)。現在は有効ですが、保存された設定には含まれず、再起動で消えます。',
'settings.agents.page.permissionsEditor.action.default': 'デフォルト',
'settings.agents.page.permissionsEditor.action.inherit': '継承',
'settings.agents.page.permissionsEditor.action.allow': '許可',
'settings.agents.page.permissionsEditor.action.ask': '確認',
'settings.agents.page.permissionsEditor.action.deny': '拒否',
'settings.agents.page.permissionsEditor.actions.save': '権限を保存',
'settings.agents.page.permissionsEditor.actions.discard': '破棄',
'settings.agents.page.permissionsEditor.actions.addRule': 'ルールを追加',
'settings.agents.page.permissionsEditor.actions.addKey': 'キーを追加',
'settings.agents.page.permissionsEditor.actions.removeRuleAria': 'ルールを削除',
'settings.agents.page.permissionsEditor.actions.retry': '再試行',
'settings.agents.page.permissionsEditor.state.loadFailed': 'エージェントの権限設定を読み込めませんでした。',
'settings.agents.page.permissionsEditor.toast.saved': '権限を保存しました',
'settings.agents.page.permissionsEditor.toast.savedRestartRequired': '権限を保存しました — 適用するには OpenCode サーバーを再起動してください',
'settings.agents.page.permissionsEditor.toast.saveFailed': '権限の保存に失敗しました',
'settings.agents.page.section.toolPermissions': 'ツール権限',
'settings.agents.page.field.agentName': 'Agent 名',
'settings.agents.page.field.agentNamePlaceholder': 'agent-name',
@@ -528,10 +574,16 @@ export const settingsDict = {
'settings.agents.page.permissions.permissionPlaceholder': '権限...',
'settings.agents.page.permissions.patternPlaceholder': 'パターン(例: *)',
'settings.page.behavior.title': '動作',
'settings.page.behavior.description': 'エージェントの応答の仕方をガイドします。',
'settings.behavior.page.title': '動作',
'settings.behavior.page.warning.title': 'グローバルルールはプロジェクトルールと組み合わされます',
'settings.behavior.page.warning.description': 'ここでの変更は {path} を更新します。OpenCode はプロジェクトレベルの AGENTS.md ルールも存在する場合は含めます。',
'settings.behavior.page.section.systemPrompt': 'グローバル AGENTS.md',
'settings.behavior.page.section.systemPromptOptimization': 'システムプロンプトの最適化',
'settings.behavior.page.systemPromptOptimization.enable': 'システムプロンプトのサイズを最適化',
'settings.behavior.page.systemPromptOptimization.enableAria': 'OpenCode のシステムプロンプトサイズを最適化',
'settings.behavior.page.systemPromptOptimization.info': 'build と plan エージェントのシステムプロンプトを約 40% 削減します。他のエージェントは変更されません。build または plan を上書きするカスタム定義が削除される可能性があるため、そのようなワークフローでは有効にしないでください。OpenCode の再起動後に変更が適用されます。',
'settings.behavior.page.systemPromptOptimization.restarting': 'システムプロンプトの最適化を適用するため OpenCode を再起動しています…',
'settings.behavior.page.field.systemPromptPlaceholder': 'あなたは役立つ AI アシスタントです...\n\nこのスペースを使用して、すべての Session と Provider にわたって AI の動作方法に関する絶対的なルールを定義してください。',
'settings.behavior.page.section.responseStyle': '応答スタイル',
'settings.behavior.page.responseStyle.tooltip': '有効にすると、これらの指示は新しい会話ごとにアシスタントの応答方法をガイドします。最初のメッセージとともに送信され、グローバル AGENTS.md ルールは変更しません。',
@@ -894,17 +946,24 @@ export const settingsDict = {
'settings.openchamber.sessionRetention.toast.failedDeleteCount': '{count} 個の Session の削除に失敗しました',
'settings.openchamber.desktopNetwork.title': 'Desktop ネットワークアクセス',
'settings.openchamber.desktopNetwork.field.windowControlsPosition': 'ウィンドウコントロールの位置',
'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': '最小化・最大化・閉じるボタンの表示位置を選びます。自動は OS に合わせます。',
'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': '最小化・最大化・閉じるボタンの表示位置を選びます。デフォルトは右側です。',
'settings.openchamber.desktopNetwork.field.windowControlsPositionAria': 'ウィンドウコントロールの位置',
'settings.openchamber.desktopNetwork.option.windowControlsAuto': '自動',
'settings.openchamber.desktopNetwork.option.windowControlsLeft': '左',
'settings.openchamber.desktopNetwork.option.windowControlsRight': '右',
'settings.openchamber.desktopNetwork.field.windowControls': 'ウィンドウコントロール',
'settings.openchamber.desktopNetwork.field.windowControlsStyle': 'スタイル',
'settings.openchamber.desktopNetwork.field.windowControlsStyleAria': 'ウィンドウコントロールのスタイル',
'settings.openchamber.desktopNetwork.option.windowControlsClassic': 'クラシック',
'settings.openchamber.desktopNetwork.option.windowControlsTrafficLights': 'トラフィックライト',
'settings.openchamber.desktopNetwork.field.launchAtLoginAria': 'ログイン時に OpenChamber を起動',
'settings.openchamber.desktopNetwork.field.launchAtLogin': 'ログイン時に OpenChamber を起動',
'settings.openchamber.desktopNetwork.field.launchAtLoginDescription': 'ウィンドウを開かずにバックグラウンドでアプリを起動します。デスクトップのステータスアイコンから開けます。',
'settings.openchamber.desktopNetwork.field.macMenuBarAria': 'macOS のメニューバーに OpenChamber を表示',
'settings.openchamber.desktopNetwork.field.macMenuBar': 'メニューバーに OpenChamber を表示',
'settings.openchamber.desktopNetwork.field.macMenuBarDescription': 'アプリの再起動が必要です。オフにすると、OpenChamber はメニューバー項目を作成せず、セッション、承認、使用量の更新も実行しません。',
'settings.openchamber.desktopNetwork.field.minimizeToTrayAria': 'OpenChamber をシステムトレイへ最小化または閉じる',
'settings.openchamber.desktopNetwork.field.minimizeToTray': 'システムトレイへ最小化または閉じる',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': 'メインウィンドウを最小化または閉じたときも、OpenChamber を Windows のシステムトレイで実行し続けます。',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': 'メインウィンドウを最小化または閉じたときも、OpenChamber をシステムトレイで実行し続けます。',
'settings.openchamber.desktopNetwork.field.keepAwakeAria': 'OpenChamber の実行中はコンピューターのスリープを防止',
'settings.openchamber.desktopNetwork.field.keepAwake': 'OpenChamber の実行中はコンピューターのスリープを防止',
'settings.openchamber.desktopNetwork.field.keepAwakeDescription': 'スマートフォンがこのアプリを開き続けられるようにします。ディスプレイはオフにできます。',
@@ -913,6 +972,8 @@ export const settingsDict = {
'settings.openchamber.desktopNetwork.field.allowLanAccessDescription': 'アプリを再起動して、Wi-Fi 上の他のデバイスから開けるようにします。',
'settings.openchamber.desktopNetwork.field.warning': '警告: 有効にすると、アプリは同じローカルネットワーク上の誰からもアクセス可能になります。',
'settings.openchamber.desktopNetwork.field.passwordRequiredWarning': 'LAN アクセスには Desktop UI パスワードが必要です。設定されるまで、Desktop アプリはローカルのみで起動します。',
'settings.openchamber.desktopPassword.actions.showPassword': 'パスワードを表示',
'settings.openchamber.desktopPassword.actions.hidePassword': 'パスワードを非表示',
'settings.openchamber.desktopPassword.field.password': 'Desktop UI パスワード',
'settings.openchamber.desktopPassword.field.passwordPlaceholder': 'パスワード不要',
'settings.openchamber.desktopPassword.field.passwordDescription': 'OpenChamber は再起動後、およびログイン Session の有効期限後(12時間、または「このデバイスを信頼」の場合は7日)に確認を求めます。空のままにするとログインが無効になります。',
@@ -935,6 +996,9 @@ export const settingsDict = {
'settings.openchamber.opencodeCli.field.binaryPathPlaceholder': '/Users/you/.bun/bin/opencode',
'settings.openchamber.opencodeCli.field.showUpdateNotifications': 'OpenCode のアップデート通知を表示',
'settings.openchamber.opencodeCli.field.showUpdateNotificationsAria': 'OpenCode のアップデート通知を表示',
'settings.openchamber.opencodeCli.field.agentControlTool': 'エージェント制御ツール',
'settings.openchamber.opencodeCli.field.agentControlToolAria': 'エージェント制御ツールを有効にする',
'settings.openchamber.opencodeCli.field.agentControlToolInfo': 'エージェントがチャットから作業をオーケストレーションできるようにします。セッションや worktree の作成、他のエージェントへのプロンプト委任、スケジュールタスクの管理が可能です。各セッションに小さなツール説明が追加されます。Save + Reload 後に適用されます。',
'settings.openchamber.opencodeCli.actions.browseAria': 'OpenCode バイナリパスを参照',
'settings.openchamber.opencodeCli.actions.browse': '参照',
'settings.openchamber.opencodeCli.actions.saveAndReload': '保存して再読み込み',
@@ -1041,10 +1105,9 @@ export const settingsDict = {
'settings.openchamber.keyboardShortcuts.action.toggle_terminal.label': 'ターミナルドックの切替',
'settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label': 'ターミナル拡大の切替',
'settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label': 'サイドバーの切替',
'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': '右サイドバーの切替',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': '右サイドバー Git タブを開く',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': '右サイドバー ファイルタブを開く',
'settings.openchamber.keyboardShortcuts.action.cycle_right_sidebar_tab.label': '右サイドバータブを順に切替',
'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': 'コンテキストパネルの表示切替',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': 'Git サーフェスを開く',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': 'ファイルサーフェスを開く',
'settings.openchamber.keyboardShortcuts.action.new_chat.label': '新しい Session',
'settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label': '新しい Worktree 下書き',
'settings.openchamber.keyboardShortcuts.action.new_mini_chat.label': '新しいミニチャットウィンドウ',
@@ -1230,7 +1293,7 @@ export const settingsDict = {
'settings.openchamber.worktrees.setup.waitForCommandsAria': 'Worktree セットアップコマンドの完了を待ってからセッションを作成または送信する',
'settings.openchamber.worktrees.setup.toast.saveFailed': 'ワークツリー設定コマンドの保存に失敗しました',
'settings.openchamber.worktrees.list.title': '既存の Worktree',
'settings.openchamber.worktrees.list.tooltip': 'Worktree はリポジトリの外にあり(OpenCode 管理)、削除するとリンクされた Session も削除されます。',
'settings.openchamber.worktrees.list.tooltip': 'Worktree を削除すると、リンクされたセッションも削除されます。',
'settings.openchamber.worktrees.list.loading': 'Worktree を読み込み中...',
'settings.openchamber.worktrees.list.empty': 'このプロジェクトに Worktree は見つかりません',
'settings.openchamber.worktrees.list.detachedHead': '分離 HEAD',
@@ -1490,6 +1553,10 @@ export const settingsDict = {
'settings.openchamber.defaults.smallModel.useDefault': 'デフォルトの小型モデルを使用',
'settings.openchamber.defaults.smallModel.useDefaultAria': 'デフォルトの小型モデルを使用',
'settings.openchamber.defaults.smallModel.overrideModel': '上書きモデル',
'settings.openchamber.defaults.walkthroughModel.title': '変更ウォークスルーのモデル',
'settings.openchamber.defaults.walkthroughModel.description': '変更の AI レビューには構造化出力と差分全体が収まる余裕が必要で、安価なスモールモデルでは足りないことがあります。カタログが構造化出力に非対応と示すモデルは、この一覧から除外されます。 未選択のままならスモールモデルが使われます。',
'settings.openchamber.defaults.walkthroughModel.overrideModel': 'ウォークスルーのモデル',
'settings.openchamber.defaults.walkthroughModel.usesSmallModel': 'スモールモデル',
'settings.openchamber.defaults.field.showDeletionDialog': '削除ダイアログを表示',
'settings.openchamber.defaults.field.openFilesPreviewAria': 'プレビュー可能なファイルをプレビューモードで開く',
'settings.openchamber.defaults.field.openFilesPreview': 'プレビュー可能なファイルをプレビューモードで開く',
@@ -1618,6 +1685,7 @@ export const settingsDict = {
'settings.voice.page.section.playbackAndSummary': '再生',
'settings.voice.page.field.provider': 'プロバイダー',
'settings.voice.page.provider.browser': 'ブラウザ',
'settings.voice.page.provider.openai': 'OpenAI',
'settings.voice.page.provider.custom': 'カスタム',
'settings.voice.page.provider.say': 'Say',
'settings.voice.page.provider.server': 'サーバー',
@@ -1697,18 +1765,24 @@ export const settingsDict = {
'settings.voice.page.field.ttsInputModeRaw': '生 Markdown',
'settings.voice.page.field.ttsInputModeSummarized': '要約',
'settings.openchamber.visual.section.colorMode': 'カラーモード',
'settings.openchamber.visual.section.colorModeAndTheme': 'カラーモードとテーマ',
'settings.openchamber.visual.section.mobileLayout': 'モバイルレイアウト',
'settings.openchamber.visual.option.mobileLayout.default': '旧',
'settings.openchamber.visual.option.mobileLayout.new': '新',
'settings.openchamber.visual.section.localization': 'ローカライゼーション',
'settings.openchamber.visual.section.spacingAndLayout': '間隔とレイアウト',
'settings.openchamber.visual.section.densityAndType': '密度と書体',
'settings.openchamber.visual.section.appInstall': 'アプリのインストール',
'settings.openchamber.visual.section.navigation': 'ナビゲーション',
'settings.openchamber.visual.section.chatRenderMode': 'Chat 表示モード',
'settings.openchamber.visual.section.chatRenderModeAria': 'Chat 表示モード',
'settings.openchamber.visual.section.chatDisplay': '表示',
'settings.openchamber.visual.section.chatMessageOptions': 'メッセージオプション',
'settings.openchamber.visual.section.chatFeatures': '機能',
'settings.openchamber.visual.section.messageStreamTransport': 'メッセージストリーム転送',
'settings.openchamber.visual.section.activityDefault': 'アクティビティデフォルト',
'settings.openchamber.visual.section.activityDefaultAria': 'アクティビティデフォルトモード',
'settings.openchamber.visual.section.showToolsOpenedByDefault': 'デフォルトで開くツールを表示:',
'settings.openchamber.visual.section.showToolsOpenedByDefault': 'デフォルトで開くツールを表示',
'settings.openchamber.visual.section.sessionAssistance': 'セッション支援',
'settings.openchamber.visual.section.reasoning': '推論',
'settings.openchamber.visual.section.messageAppearance': 'メッセージの外観',
@@ -1761,6 +1835,11 @@ export const settingsDict = {
'settings.openchamber.visual.field.fontSizePercentageAria': 'フォントサイズの割合',
'settings.openchamber.visual.actions.resetFontSizeAria': 'フォントサイズをリセット',
'settings.openchamber.visual.field.terminalFontSize': 'ターミナルフォントサイズ',
'settings.openchamber.visual.field.terminalShell': 'ターミナルシェル',
'settings.openchamber.visual.field.terminalShellAria': 'ターミナルシェルを選択',
'settings.openchamber.visual.field.terminalShellHint': 'この変更を現在のセッションに適用するには、ターミナルを再起動してください。',
'settings.openchamber.visual.field.terminalLoginShell': 'ログインシェルとして起動',
'settings.openchamber.visual.option.terminalShell.auto': '自動',
'settings.openchamber.visual.field.editorFontSize': 'エディターフォントサイズ',
'settings.openchamber.visual.field.codeFont': 'コードフォント',
'settings.openchamber.visual.field.selectCodeFontAria': 'コードフォントを選択',
@@ -1808,6 +1887,9 @@ export const settingsDict = {
'settings.openchamber.visual.field.promptNavigatorEnabled': 'プロンプトナビゲーター',
'settings.openchamber.visual.field.expandedEditorToolbarAria': 'エディターツールバーを常に表示',
'settings.openchamber.visual.field.expandedEditorToolbar': 'エディターツールバーを常に表示(ファイルタブの下にドッキング)',
'settings.openchamber.visual.field.autoSaveEnabledAria': 'ファイルの自動保存',
'settings.openchamber.visual.field.autoSaveEnabled': 'ファイルの自動保存',
'settings.openchamber.visual.field.autoSaveEnabledInfo': '入力を止めた後にファイルの編集内容を自動保存します。無効にすると手動保存が必要になります。',
'settings.openchamber.visual.field.wideChatLayoutAria': 'ワイドチャットレイアウト',
'settings.openchamber.visual.field.wideChatLayout': 'ワイドチャットレイアウト',
'settings.openchamber.visual.field.showSplitAssistantMessageActionsAria': 'インラインアシスタントアクション',
@@ -1815,6 +1897,8 @@ export const settingsDict = {
'settings.openchamber.visual.field.showSplitAssistantMessageActionsTooltip': '同じ応答内の後のツール呼び出しの前に表示されるアシスタントテキストブロックに、回答コピー、画像保存、読み上げを表示します。',
'settings.openchamber.visual.field.allowPromptingSubagentSessionsAria': 'サブエージェントセッションへのプロンプトを許可',
'settings.openchamber.visual.field.allowPromptingSubagentSessions': 'サブエージェントセッションへのプロンプトを許可',
'settings.openchamber.visual.field.draftStartersVisible': '新規セッション画面にスターターを表示',
'settings.openchamber.visual.field.draftStartersVisibleAria': '新規セッション画面にスターターを表示',
'settings.openchamber.visual.field.showToolFileIconsAria': 'ツールファイルアイコンを表示',
'settings.openchamber.visual.field.codeBlockLineWrapAria': 'コードブロックの行を折り返す',
'settings.openchamber.visual.field.codeBlockLineWrap': 'コードブロックの行を折り返す',
@@ -1834,8 +1918,11 @@ export const settingsDict = {
'settings.openchamber.visual.field.sendAnonymousUsageReports': '匿名使用状況レポートを送信',
'settings.openchamber.visual.field.sendAnonymousUsageReportsHint': 'どのアプリバージョンがアクティブに使用されているかを把握し、改善の優先順位を決めるのに役立ちます。収集されるのはアプリバージョン、プラットフォーム、ランタイムのみで、個人データやコードは収集されません。',
'settings.openchamber.visual.option.themeMode.system': 'システム',
'settings.openchamber.visual.option.themeMode.system.description': 'システム設定に合わせる',
'settings.openchamber.visual.option.themeMode.light': 'ライト',
'settings.openchamber.visual.option.themeMode.light.description': '常にライト表示を使用',
'settings.openchamber.visual.option.themeMode.dark': 'ダーク',
'settings.openchamber.visual.option.themeMode.dark.description': '常にダーク表示を使用',
'settings.openchamber.visual.option.diffLayout.dynamic.label': '動的',
'settings.openchamber.visual.option.diffLayout.dynamic.description': '新規はインライン、変更は並列表示。',
'settings.openchamber.visual.option.diffLayout.inline.label': '常にインライン',
+170 -43
View File
@@ -3,6 +3,15 @@ import { settingsDict } from './ja.settings';
export const dict: Record<I18nKey, string> = {
...settingsDict,
'terminalView.actions.attachSelection': '選択した出力を添付',
'terminalView.actions.restart': 'ターミナルを再起動',
'chat.message.terminalContext': '{terminal}、{start}〜{end}行',
'chat.chatInput.terminalContext': '{terminal}、{start}〜{end}行',
'chat.chatInput.terminalContextRemove': 'ターミナルコンテキストを削除',
'chat.chatInput.prCommentContext': 'PRコメント',
'chat.chatInput.prCommentContextRemove': 'PRコメントのコンテキストを削除',
'chat.chatInput.prCheckContext': '失敗したPRチェック',
'chat.chatInput.prCheckContextRemove': 'PRチェックのコンテキストを削除',
'common.loading': '読み込み中...',
'common.unavailable': '利用できません',
'common.language.english': '英語',
@@ -47,6 +56,9 @@ export const dict: Record<I18nKey, string> = {
'mobile.connect.token.hint': 'サーバーがパスワードの代わりにトークンを必要とする場合のみ必要です。',
'mobile.connect.connectButton': '接続',
'mobile.connect.connecting': '接続中...',
'mobile.connect.notice.unreachable': '{label}に接続できませんでした。サーバーが起動しているか確認してください。',
'mobile.connect.notice.authExpired': '{label}へのアクセスは期限切れか取り消されました。再度サインインしてください。',
'mobile.connect.recovery.description': '保存済みサーバーに接続できませんでした。サーバーが起動しているか確認するか、別のインスタンスを選んでください。',
'mobile.connect.password.label': 'パスワード',
'mobile.connect.password.placeholder': 'OpenChamber のパスワード',
'mobile.connect.unlockButton': 'ロックを解除して接続',
@@ -80,14 +92,14 @@ export const dict: Record<I18nKey, string> = {
'mobile.instances.confirmDeleteAria': '{label} の削除を確定',
'mobile.instances.cancelDeleteAria': '{label} を残す',
'mobile.surface.closeAria': '閉じる',
'mobile.header.openMenuAria': 'メニューを開く',
'mobile.header.openWorkspaceAria': 'ワークスペースパネルを開く',
'mobile.header.openMetadataAria': 'セッションメタデータを開く',
'mobile.header.metadata.context': 'コンテキスト',
'mobile.header.metadata.branch': 'ブランチ',
'mobile.header.metadata.usage': '使用量',
'mobile.menu.titleAria': 'ワークスペースツール',
'mobile.menu.files': 'ファイル',
'mobile.menu.changes': '変更',
'mobile.menu.terminal': 'ターミナル',
'mobile.menu.mcp': 'MCP',
'mobile.menu.update': '更新',
'mobile.menu.settings': '設定',
@@ -113,18 +125,20 @@ export const dict: Record<I18nKey, string> = {
'mobile.sessions.newChat': '新しいチャット',
'mobile.sessions.editOrder': 'プロジェクトの並び替え',
'mobile.sessions.doneEditing': '完了',
'mobile.sessions.editOrderHint': 'ハンドルをドラッグしてプロジェクトを並び替えます。チェックをタップして完了します。',
'mobile.sessions.editOrderHint': 'ハンドルをドラッグしてプロジェクトを並べ替えます。プロジェクトをタップするとワークツリーが表示され、同様にドラッグできます。チェックをタップして完了します。',
'mobile.sessions.editProjectAria': '{label}を編集',
'mobile.sessions.dragHandleAria': '{label}をドラッグして並び替え',
'mobile.sessions.moveUpAria': '{label}を上に移動',
'mobile.sessions.moveDownAria': '{label}を下に移動',
'mobile.sessions.removeProjectAria': '{label}を削除',
'mobile.sessions.cancelRemoveProjectAria': '{label}の削除をキャンセル',
'mobile.sessions.confirmRemoveProject': '閉じる',
'mobile.sessions.confirmRemoveProjectAria': '{label}の削除を確認',
'mobile.sessions.toast.projectRemoved': '{label}を削除しました',
'mobile.sessions.archiveSessionAria': '{title}をアーカイブ',
'mobile.sessions.cancelArchiveAria': '{title}のアーカイブをキャンセル',
'mobile.sessions.renameSessionAria': '{title}の名前を変更',
'mobile.sessions.renameError': 'セッション名の変更に失敗しました',
'mobile.sessions.deleteSessionAria': '{title}を削除',
'mobile.sessions.confirmDeleteSessionAria': '{title}の削除を確認',
'mobile.projectEdit.worktreesTitle': 'ワークツリー',
'mobile.projectEdit.worktreesEmpty': 'このプロジェクトにはまだワークツリーがありません。',
'mobile.projectEdit.reorderHint': 'ドラッグしてワークツリーを並び替え。',
@@ -170,6 +184,8 @@ export const dict: Record<I18nKey, string> = {
'mobile.files.copyPathAria': 'ファイルパスをコピー',
'mobile.files.copyContent': '内容をコピー',
'mobile.files.copyContentAria': 'ファイル内容をコピー',
'mobile.files.editAria': 'ファイルを編集',
'mobile.files.doneEditingAria': '編集を終了',
'mobile.files.toast.pathCopied': 'パスをコピーしました',
'mobile.files.toast.contentCopied': '内容をコピーしました',
'mobile.files.toast.copyFailed': 'コピーに失敗しました',
@@ -291,6 +307,8 @@ export const dict: Record<I18nKey, string> = {
'sessions.scheduledTasks.editor.goal.aria': 'このタスクをエージェントが完了まで追求するゴールとして実行します',
'sessions.scheduledTasks.editor.goal.budgetLabel': 'トークン予算',
'sessions.scheduledTasks.editor.goal.budgetAria': 'ゴールをトークン予算で制限します',
'sessions.scheduledTasks.editor.permissionAutoAccept.label': '権限を自動承認',
'sessions.scheduledTasks.editor.permissionAutoAccept.aria': '権限の自動承認を有効にしてタスクのセッションを開始します',
'sessions.scheduledTasks.editor.actions.closeAria': '閉じる',
'sessions.scheduledTasks.editor.actions.cancel': 'キャンセル',
'sessions.scheduledTasks.editor.actions.save': '保存',
@@ -409,6 +427,28 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.empty.noMatches.title': '一致するセッションがありません',
'sessions.sidebar.empty.noMatches.description': '別のタイトル、ブランチ、フォルダ、パスをお試しください。',
'sessions.sidebar.activity.recentTitle': '最近',
'sessions.archivePage.allDirectories': 'すべてのディレクトリ',
'sessions.sidebar.header.displayMode.stickyHeaders': 'プロジェクトヘッダーを固定',
'sessions.sidebar.header.grouping.label': 'セッションのグループ化',
'sessions.sidebar.header.grouping.byWorktree': 'ワークツリー別',
'sessions.sidebar.header.grouping.flat': 'フラットリスト',
'sessions.sidebar.project.actions.manageWorktrees': 'ワークツリーを管理',
'sessions.worktreesPage.title': '{project} のワークツリー',
'sessions.worktreesPage.description': 'このプロジェクトの git ワークツリーを作成・確認・削除します。',
'sessions.worktreesPage.closeAria': 'ワークツリーを閉じる',
'sessions.scheduledTasks.page.closeAria': 'スケジュールタスクを閉じる',
'sessions.sidebar.nav.archive': 'アーカイブ',
'sessions.archivePage.title': 'アーカイブ',
'sessions.archivePage.countSingle': 'アーカイブ済みセッション {count} 件',
'sessions.archivePage.countPlural': 'アーカイブ済みセッション {count} 件',
'sessions.archivePage.closeAria': 'アーカイブを閉じる',
'sessions.archivePage.searchPlaceholder': 'アーカイブ済みセッションを検索',
'sessions.archivePage.empty.noArchived': 'アーカイブ済みセッションはありません',
'sessions.archivePage.empty.noMatches': '一致するアーカイブ済みセッションはありません',
'sessions.archivePage.otherProjects': 'その他のプロジェクト',
'sessions.archivePage.deleteProject': 'このプロジェクトのアーカイブ済みセッションをすべて削除',
'sessions.archivePage.deleteProjectAria': '{label} のアーカイブ済みセッションをすべて削除',
'sessions.archivePage.deleteSessionAria': '{title} を削除',
'sessions.switcher.openAria': 'セッションスイッチャーを開く',
'sessions.switcher.empty': '最近のセッションはありません',
'sessions.switcher.draftTitle': '新しいセッション',
@@ -442,6 +482,10 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.project.actions.edit': '編集',
'sessions.sidebar.project.actions.newDraftSession': '新しい下書きセッション',
'sessions.sidebar.session.menu.rename': '名前の変更',
'sessions.sidebar.session.menu.copyId': 'セッションIDをコピー',
'sessions.sidebar.session.copyId.success': 'セッションIDをコピーしました',
'sessions.sidebar.session.copyId.error': 'セッションIDをコピーできませんでした',
'header.sessionActions.openAria': 'セッション操作を開く',
'sessions.sidebar.session.rename.save': 'セッション名を保存',
'sessions.sidebar.session.rename.cancel': 'セッション名の変更をキャンセル',
'sessions.sidebar.session.menu.unpin': 'セッションのピン留めを解除',
@@ -451,6 +495,12 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.menu.copyLink': 'リンクをコピー',
'sessions.sidebar.session.menu.unshare': '共有解除',
'sessions.sidebar.session.menu.exportMarkdown': 'Markdownでエクスポート',
'sessions.sidebar.session.menu.moveToWorktree': '新しいworktreeへ移動',
'sessions.sidebar.session.moveToWorktree.success': 'セッションを新しいworktreeへ移動しました',
'sessions.sidebar.session.moveToWorktree.failed': 'セッションを新しいworktreeへ移動できませんでした',
'sessions.sidebar.session.moveToWorktree.tooltip': '現在のブランチから新しいworktreeを作成し、未コミットの変更とこのセッションおよびサブセッションを移動します。',
'sessions.sidebar.session.moveToWorktree.tooltipBusy': 'セッションがアイドル状態のときに利用できます。現在の処理を停止するか、完了するまでお待ちください。',
'sessions.sidebar.session.moveToWorktree.tooltipMoving': 'このセッションはすでに新しいworktreeへ移動中です。',
'sessions.sidebar.session.menu.runFusion': 'フュージョンを実行',
'sessions.sidebar.session.menu.openInSidePanel': 'サイドパネルで開く',
'sessions.sidebar.session.actions.openInEditor': 'エディターで開く',
@@ -458,6 +508,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.menu.label': 'セッションメニュー',
'sessions.sidebar.session.untitled': '無題のセッション',
'sessions.sidebar.session.export.nothingToExport': 'エクスポートするものがありません',
'sessions.sidebar.session.export.failedLoadHistory': 'セッション履歴全体を読み込めませんでした',
'sessions.sidebar.session.export.success': 'セッションをエクスポートしました',
'sessions.sidebar.session.export.failedRevealPath': 'パスの表示に失敗しました',
'sessions.sidebar.session.export.untitledSubagent': '無題のサブエージェント',
@@ -471,6 +522,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.status.active': 'セッションアクティブ',
'sessions.sidebar.session.status.unread': '未読の更新',
'sessions.sidebar.session.status.pinned': 'ピン留めされたセッション',
'sessions.sidebar.session.status.movingToWorktree': 'セッションを新しいworktreeへ移動中',
'sessions.sidebar.session.status.permissionRequired': '権限が必要です',
'sessions.sidebar.session.subsessions.collapse': 'サブセッションを折りたたむ',
'sessions.sidebar.session.subsessions.expand': 'サブセッションを展開',
@@ -512,7 +564,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': 'この操作は{dateLabel}の{count}セッションを完全に削除します。',
'sessions.sidebar.dialogs.sessionList.more': 'さらに{count}件',
'sessions.sidebar.session.share.successTitle': 'セッションを共有しました',
'sessions.sidebar.session.share.successDescription': 'メニューからリンクをコピーできます。',
'sessions.sidebar.session.share.successDescription': '共有リンクをクリップボードにコピーしました。',
'sessions.sidebar.session.share.error': 'セッションを共有できません',
'sessions.sidebar.session.share.copyUrlError': 'URLのコピーに失敗しました',
'sessions.sidebar.session.unshare.success': 'セッションの共有を解除しました',
@@ -691,6 +743,8 @@ export const dict: Record<I18nKey, string> = {
'gitView.header.noIdentity': 'IDがありません',
'gitView.header.noProfiles': '適用できるプロファイルがありません。',
'gitView.header.repositoryViews': 'リポジトリビュー',
'gitView.header.updateBranch': 'ブランチを更新',
'gitView.header.openPullRequest': 'プルリクエストを開く',
'gitView.header.removeRemoteAria': 'リモート{name}を削除',
'gitView.header.removeRemoteTitle': 'リモート{name}を削除',
'gitView.header.upstreamSynced': '同期済み',
@@ -741,6 +795,7 @@ export const dict: Record<I18nKey, string> = {
'gitView.history.renamedNoDiff': '名前変更されたファイル — 差分はサポートされていません',
'gitView.history.renderDiffAnyway': 'とにかくレンダリング',
'gitView.history.title': '履歴',
'gitView.history.refresh': '更新',
'gitView.graph.title': 'グラフ',
'gitView.integrate.checking': '確認中…',
'gitView.integrate.cherryPickAbortedToast': 'チェリーピックを中止しました',
@@ -775,12 +830,15 @@ export const dict: Record<I18nKey, string> = {
'gitView.operation.abort': '中止',
'gitView.operation.continue': '続行',
'gitView.operation.inProgressTitle': '{operation}進行中',
'gitView.operation.inProgressTitleManyConflicts': '{operation} 進行中: 競合 {count} 件',
'gitView.operation.inProgressTitleOneConflict': '{operation} 進行中: 競合 {count} 件',
'gitView.operation.merge': 'マージ',
'gitView.operation.mergeInProgressWithHead': '{head}をマージ中',
'gitView.operation.mergingMessage': 'マージ中: {message}',
'gitView.operation.rebase': 'リベース',
'gitView.operation.rebaseInProgress': 'リベース進行中',
'gitView.operation.rebasingOnto': '{headName}を{onto}にリベース中',
'gitView.operation.readyToContinueHint': 'すべての競合が解決されました。続行して操作を完了してください。',
'gitView.operation.resolveConflictsHint': '競合を解決してから操作を続行してください。',
'gitView.operation.resolveWithAi': 'AIで解決',
'gitView.stash.confirmButton': '{operation}',
@@ -875,15 +933,15 @@ export const dict: Record<I18nKey, string> = {
'gitView.pr.actions.openOnGitHubAria': 'プルリクエストをGitHubで開く',
'gitView.pr.actions.openSettings': '設定を開く',
'gitView.pr.actions.repo': 'リポジトリ',
'gitView.pr.actions.resolveFailedChecks': '失敗したチェックを解決',
'gitView.pr.actions.resolveFailedChecksAria': '失敗したチェックをエージェントに送信',
'gitView.pr.actions.resolveFailedChecks': '失敗したチェックを添付',
'gitView.pr.actions.resolveFailedChecksAria': '失敗したチェックをチャットのコンテキストに添付',
'gitView.pr.actions.savePr': 'PRを保存',
'gitView.pr.actions.savePrAria': 'プルリクエストの変更を保存',
'gitView.pr.actions.sendCommentToAgent': 'コメントをエージェントに送信',
'gitView.pr.actions.sendCommentToAgentAria': 'このコメントをエージェントに送信',
'gitView.pr.actions.sendToAgent': 'エージェントに送信',
'gitView.pr.actions.shareComments': 'コメントを共有',
'gitView.pr.actions.shareCommentsAria': 'プルリクエストのコメントをエージェントに送信',
'gitView.pr.actions.sendCommentToAgent': 'コメントをチャットのコンテキストに添付',
'gitView.pr.actions.sendCommentToAgentAria': 'このコメントをチャットのコンテキストに添付',
'gitView.pr.actions.sendToAgent': 'チャットに添付',
'gitView.pr.actions.shareComments': 'コメントを添付',
'gitView.pr.actions.shareCommentsAria': 'プルリクエストのコメントをチャットのコンテキストに添付',
'gitView.pr.actions.toggleDraftAria': '下書き状態を切り替え',
'gitView.pr.actions.refresh': 'PRステータスを更新',
'gitView.pr.actions.refreshAria': 'プルリクエストのステータスを更新',
@@ -921,6 +979,10 @@ export const dict: Record<I18nKey, string> = {
'gitView.pr.noMergePermission': 'このプルリクエストをマージする権限がありません。',
'gitView.pr.notMergeable': 'マージ不可',
'gitView.pr.numberLabel': 'PR #{number}',
'gitView.pr.segment.overview': '概要',
'gitView.pr.segment.checks': 'チェック',
'gitView.pr.segment.comments': 'コメント',
'gitView.pr.comments.addAll': 'すべてチャットに添付',
'gitView.pr.placeholder.additionalContext': '制約、ロールアウトノート、レビューアーコンテキスト...',
'gitView.pr.placeholder.description': '変更内容を説明...',
'gitView.pr.placeholder.main': 'プルリクエストを要約',
@@ -955,9 +1017,6 @@ export const dict: Record<I18nKey, string> = {
'gitView.pullRequest.createHint': 'このブランチからプルリクエストを作成・管理します。',
'gitView.pullRequest.availableOnFeatureBranches': '現在のブランチがプルリクエストを開ける場合に利用可能です。',
'gitView.pullRequest.title': 'プルリクエスト',
'gitView.tabs.commit': 'コミット',
'gitView.tabs.pr': 'PR',
'gitView.tabs.update': '更新',
'gitView.tabs.worktree': 'ワークツリー',
'gitView.toast.abortOperationFailed': '操作の中止に失敗しました',
'gitView.toast.appliedIdentity': 'IDを適用しました: {name}',
@@ -1024,9 +1083,81 @@ export const dict: Record<I18nKey, string> = {
'contextPanel.mode.stagedDiff': 'ステージ済み差分',
'contextPanel.mode.workingDiff': '作業中差分',
'contextPanel.mode.plan': '計画',
'contextPanel.mode.pr': 'プルリクエスト',
'contextPanel.mode.context': 'コンテキスト',
'contextPanel.mode.preview': 'プレビュー',
'contextPanel.mode.browser': 'ブラウザ',
'contextRail.aria.rail': 'パネルサーフェス',
'contextPanel.editorEmpty.title': 'ファイルが開かれていません',
'contextPanel.editorEmpty.description': 'ツリーからファイルを選んで編集を始めましょう。',
'contextRail.surface.editor.description': 'プロジェクトのファイルを編集',
'contextRail.surface.git.description': 'コミット・ブランチ・プルリクエスト',
'contextRail.surface.terminal.description': '内蔵ターミナル',
'contextRail.surface.diff.description': '作業中の変更をレビュー',
'contextPanel.mode.walkthrough': 'ウォークスルー',
'contextRail.surface.walkthrough.description': 'AI による変更のガイド付きウォークスルー',
'walkthrough.scope.all': '未コミットすべて',
'walkthrough.scope.group.workingTree': '作業ツリー',
'walkthrough.scope.group.committed': 'コミット済み',
'walkthrough.scope.staged': 'ステージ済み',
'walkthrough.scope.working': '未ステージ',
'walkthrough.scope.branch': 'このブランチ',
'walkthrough.scope.selectorAria': 'レビュー対象を選択',
'walkthrough.language.menuLabel': 'ウォークスルーの言語',
'walkthrough.missing.language': '{requested}のウォークスルーはまだありません。{shown}のものを表示しています。',
'walkthrough.missing.model': '{model} が生成したウォークスルーはまだありません。ここで最後に生成されたものを表示しています。',
'walkthrough.missing.languageAndModel': 'この言語・このモデルのウォークスルーはまだありません。ここで最後に生成されたものを表示しています。',
'walkthrough.language.selectorAria': 'ウォークスルーの言語を選択',
'walkthrough.scope.pullRequest': 'PR #{number}',
'walkthrough.action.generate': 'ウォークスルーを生成',
'walkthrough.action.regenerate': '再生成',
'walkthrough.action.cancel': 'キャンセル',
'walkthrough.action.next': '次のステップ',
'walkthrough.action.previous': '前のステップ',
'walkthrough.action.refresh': '更新',
'walkthrough.action.open': 'ウォークスルー',
'walkthrough.stage.collecting': '変更を集めています',
'walkthrough.stage.asking': 'モデルの応答を待っています',
'walkthrough.stage.assembling': 'ウォークスルーを組み立てています',
'walkthrough.empty.title': 'ウォークスルーはまだありません',
'walkthrough.empty.description': 'この変更を読み進めるためのガイドを作成します。スモールモデルを呼び出してトークンを消費するため、実行は明示的な操作時のみです。',
'walkthrough.stale.banner': 'このレビュー後にコードが変更されました。古くなったステップ: {count}',
'walkthrough.stop.staleAll': 'このステップが説明していたコードはすべて変更されました。',
'walkthrough.stop.stalePartial': 'このステップが説明していたコードの一部が変更されました。失われた箇所: {count}',
'walkthrough.stop.staleShort': '古い内容',
'walkthrough.stop.noCode': 'このステップのコードは現在の差分にありません。',
'walkthrough.uncovered.title': 'レビューが扱わなかった変更: {count}',
'walkthrough.uncovered.description': 'レビューは定型的と判断しました。展開してご自身で確認できます。',
'walkthrough.toc.moreFiles': 'その他のファイル: {count}',
'walkthrough.toc.uncovered': '未対応: {count}',
'walkthrough.toc.resize': '目次の列幅を変更',
'walkthrough.importance.critical': '重要',
'walkthrough.importance.context': '補足',
'walkthrough.blocked.noModel.title': '利用できるスモールモデルがありません',
'walkthrough.blocked.noModel.description': 'レビューを生成するにはモデルプロバイダーにサインインしてください。',
'walkthrough.blocked.emptyDiff.title': 'レビュー対象がありません',
'walkthrough.blocked.emptyDiff.description': 'この範囲にはまだ変更がありません。',
'walkthrough.blocked.contextTooSmall.title': 'この差分は現在のモデルには大きすぎます',
'walkthrough.blocked.contextTooSmall.description': '{model} が扱えるのは約 {available} 千文字ですが、この差分には約 {required} 千文字が必要です。切り詰めは行いません。コンテキストの大きいモデルを選んでください。',
'walkthrough.blocked.structuredOutput.title': 'このモデルは構造化出力に対応していません',
'walkthrough.blocked.structuredOutput.description': '{model} はウォークスルーに必要な構造化応答をサポートしていません。',
'walkthrough.blocked.chooseModel': 'スモールモデルを選択',
'walkthrough.blocked.outputExhausted.title': 'モデルの出力枠が尽きました',
'walkthrough.blocked.outputExhausted.description': '{model} は出力枠をすべて推論に使い、回答を返しませんでした。推論モデルは大きな差分でよくこうなります。推論の少ないモデルを選ぶか、対象範囲を絞ってください。',
'walkthrough.blocked.outputExhausted.descriptionUnknownModel': 'スモールモデルは出力枠をすべて推論に使い、回答を返しませんでした。推論モデルは大きな差分でよくこうなります。推論の少ないモデルを選ぶか、対象範囲を絞ってください。',
'walkthrough.blocked.onlyGenerated.title': '生成ファイルのみが変更されています',
'walkthrough.blocked.onlyGenerated.description': 'ここでの変更はロックファイルなどツールが生成した出力だけで、レビューは意図的にこれらを対象外にしています。',
'walkthrough.blocked.contextTooSmall.descriptionUnknownModel': 'スモールモデルが扱えるのは約 {available} 千文字ですが、この差分には約 {required} 千文字が必要です。切り詰めは行いません。コンテキストの大きいモデルを選んでください。',
'walkthrough.blocked.structuredOutput.descriptionUnknownModel': 'スモールモデルはウォークスルーに必要な構造化応答をサポートしていません。',
'contextRail.surface.plan.description': '現在のプランを表示',
'contextRail.surface.pr.description': '現在のブランチのプルリクエストを作成・確認・マージ',
'contextRail.surface.notes.description': 'プロジェクトのノート・ToDo・プラン',
'contextRail.surface.context.description': 'セッションのコンテキストとトークン使用量',
'contextRail.surface.browser.description': '内蔵ウェブブラウザ',
'contextRail.surface.preview.description': '開発サーバーのプレビュー',
'contextRail.surface.chat.description': '並べて開いたセッション',
'contextRail.surface.notes': 'プロジェクトノート',
'contextRail.editorTree.toggle': 'ファイルツリーの表示切替',
'contextPanel.browser.open': 'ブラウザパネルを開く',
'contextPanel.browser.addressAria': 'ブラウザアドレス',
'contextPanel.browser.empty': 'ウェブブラウザ',
@@ -1111,6 +1242,7 @@ export const dict: Record<I18nKey, string> = {
'sidebarFilesTree.actions.newFileTitle': '新しいファイル',
'sidebarFilesTree.actions.newFolderTitle': '新しいフォルダ',
'sidebarFilesTree.actions.refreshTitle': '更新',
'sidebarFilesTree.actions.collapseAllTitle': 'すべてのフォルダを折りたたむ',
'sidebarFilesTree.actions.fileMenuTitle': 'ファイルメニュー',
'sidebarFilesTree.state.searching': '検索中...',
'sidebarFilesTree.state.loading': '読み込み中...',
@@ -1180,6 +1312,8 @@ export const dict: Record<I18nKey, string> = {
'filesView.editor.showControlsAria': 'エディターコントロールを表示',
'filesView.editor.controlsTitle': 'エディターコントロール',
'filesView.editor.pickFileFromTree': 'ツリーからファイルを選択してください。',
'filesView.editor.cannotPreviewBinary': 'バイナリファイルはプレビューできません',
'filesView.editor.binaryFileDescription': 'このファイルはバイナリのため、OpenChamberでは編集できません。別のアプリで開くにはダウンロードしてください。',
'filesView.state.loading': '読み込み中...',
'filesView.state.openingFileAtChange': '変更箇所のファイルを開いています...',
'filesView.tree.search.placeholder': 'ファイルを検索...',
@@ -1463,6 +1597,8 @@ export const dict: Record<I18nKey, string> = {
'terminalView.quickKeys.tabAria': 'Tab',
'terminalView.quickKeys.controlLabel': 'Ctrl',
'terminalView.quickKeys.controlModifierAria': 'Control修飾キー',
'terminalView.quickKeys.altLabel': 'Alt',
'terminalView.quickKeys.altModifierAria': 'Alt修飾キー',
'terminalView.quickKeys.commandModifierAria': 'Command修飾キー',
'terminalView.quickKeys.arrowUpAria': '上矢印',
'terminalView.quickKeys.arrowLeftAria': '左矢印',
@@ -1471,13 +1607,6 @@ export const dict: Record<I18nKey, string> = {
'terminalView.quickKeys.enterAria': 'Enter',
'terminalView.tabs.closeTabTitle': 'タブを閉じる',
'terminalView.tabs.newTabTitle': '新しいタブ',
'terminalView.bottomDock.resizeAria': 'ターミナルパネルのサイズを変更',
'terminalView.bottomDock.restoreTitle': 'ターミナルパネルの高さを復元',
'terminalView.bottomDock.restoreAria': 'ターミナルパネルの高さを復元',
'terminalView.bottomDock.expandTitle': 'ターミナルパネルを展開',
'terminalView.bottomDock.expandAria': 'ターミナルパネルを展開',
'terminalView.bottomDock.closeTitle': 'ターミナルパネルを閉じる',
'terminalView.bottomDock.closeAria': 'ターミナルパネルを閉じる',
'terminalView.viewport.inputAria': 'ターミナル入力',
'directoryExplorerDialog.title': 'プロジェクトディレクトリを追加',
'directoryExplorerDialog.description': 'プロジェクトとして追加するフォルダを選択してください。',
@@ -1555,10 +1684,9 @@ export const dict: Record<I18nKey, string> = {
'helpDialog.item.focusChatInput': 'チャット入力にフォーカス',
'helpDialog.item.togglePromptNavigator': 'プロンプトナビゲーターの表示切替',
'helpDialog.item.abortActiveRun': 'アクティブな実行を中止(ダブルプレス)',
'helpDialog.item.toggleRightSidebar': '右サイドバーの切り替え',
'helpDialog.item.openRightSidebarGitTab': '右サイドバーのGitタブを開く',
'helpDialog.item.openRightSidebarFilesTab': '右サイドバーのファイルタブを開く',
'helpDialog.item.cycleRightSidebarTab': '右サイドバータブの切り替え',
'helpDialog.item.toggleRightSidebar': 'コンテキストパネルの表示切替',
'helpDialog.item.openRightSidebarGitTab': 'Git サーフェスを開く',
'helpDialog.item.openRightSidebarFilesTab': 'ファイルサーフェスを開く',
'helpDialog.item.toggleTerminalDock': 'ターミナルドックの切り替え',
'helpDialog.item.toggleTerminalExpanded': 'ターミナル展開の切り替え',
'helpDialog.item.togglePlanContextPanel': '計画コンテキストパネルの切り替え',
@@ -1738,6 +1866,7 @@ export const dict: Record<I18nKey, string> = {
'chat.draftPresets.weigh.label': '選択肢を比較検討',
'chat.draftPresets.plan.label': '機能の計画を開始',
'chat.draftPresets.craftGoal.label': 'Goal を作成',
'chat.draftPresets.scheduleTask.label': 'タスクをスケジュール',
'chat.draftPresets.debug.label': '問題をデバッグ',
'chat.draftPresets.review.label': '変更をレビュー',
'chat.draftStarters.add': 'スターターを追加',
@@ -1778,6 +1907,7 @@ export const dict: Record<I18nKey, string> = {
'chat.statusRow.todo.priority.low': '低優先度',
'chat.statusRow.actions.stopGeneratingAria': '生成を停止',
'chat.statusRow.tasksTitle': 'タスク',
'chat.statusRow.modelStatus': '{model} · {status}',
'chat.statusRow.summary.activeLeft': '{active}アクティブ · {left}残り',
'chat.statusRow.aborted': '中止されました',
'chat.revertIndicator.redo': 'やり直し',
@@ -1813,7 +1943,9 @@ export const dict: Record<I18nKey, string> = {
'chat.commandAutocomplete.command.handoffReviewDescription': '生成されたハンドオフから別のレビューセッションを作成または再利用。',
'chat.commandAutocomplete.command.featurePlanDescription': '新機能のガイド付き対話型計画セッションを開始。',
'chat.commandAutocomplete.command.craftGoalDescription': 'アイデアやタスクを明確で検証可能な Goal に変換します。',
'chat.commandAutocomplete.command.scheduleTaskDescription': '対話形式でスケジュールタスクを定義します。',
'chat.chatInput.toast.craftGoalFailed': 'Goal の作成を開始できませんでした',
'chat.chatInput.toast.scheduleTaskFailed': 'スケジュールタスクの設定を開始できませんでした',
'chat.commandAutocomplete.command.catchUpDescription': 'コンテキストを再確立: 何をしていたか、どこから再開するか。',
'chat.commandAutocomplete.command.debugDescription': '修正を提案する前に、バグのガイド付き根本原因調査。',
'chat.commandAutocomplete.command.weighDescription': 'トレードオフと推奨事項を含む2~3のアプローチを比較検討してからコミット。',
@@ -1838,6 +1970,12 @@ export const dict: Record<I18nKey, string> = {
'chat.container.returnToParent.title': '親セッションに戻る',
'chat.container.returnToParent.label': '親',
'chat.container.readOnlySubagentPromptBanner': 'サブエージェントセッションはプロンプトを受け付けません。',
'chat.container.sessionLoadError.title': 'セッションを読み込めませんでした',
'chat.container.sessionLoadError.description': '接続を確認して、このセッションをもう一度読み込んでください。',
'chat.container.sessionLoadError.retry': '再試行',
'sessions.sidebar.group.empty.loadingSessions': 'セッションを読み込んでいます…',
'sessions.sidebar.group.empty.loadFailed': 'セッションを更新できませんでした。',
'sessions.sidebar.group.empty.retry': '再試行',
'chat.unifiedControls.title': 'コントロール',
'chat.unifiedControls.model.title': 'モデル',
'chat.unifiedControls.model.noRecent': '最近のモデルはありません',
@@ -1882,6 +2020,9 @@ export const dict: Record<I18nKey, string> = {
'chat.messageBody.actions.fork': 'ここからフォーク',
'chat.messageBody.actions.copyMessageAria': 'メッセージテキストをコピー',
'chat.messageBody.actions.copyMessage': 'メッセージをコピー',
'chat.messageBody.actions.pinContext': 'コンテキストに固定(圧縮後も保持)',
'chat.messageBody.actions.unpinContext': 'コンテキストから固定解除(圧縮後は保持されません)',
'chat.messageBody.actions.contextPinFailed': 'コンテキストの固定を更新できませんでした',
'chat.messageBody.actions.openPreviewAria': 'プレビューを開く',
'chat.messageBody.actions.openPreview': 'プレビューを開く',
'chat.messageBody.actions.copyAnswer': '回答をコピー',
@@ -1974,6 +2115,7 @@ export const dict: Record<I18nKey, string> = {
'gitView.commit.aiHighlights.insertTooltip': '挿入のツールチップ',
'gitView.commit.commitAria': 'コミットのariaラベル',
'chat.chatInput.toast.attachNamedFailed': '{name}の添付に失敗しました',
'chat.chatInput.toast.unsupportedAttachmentModalities': '{model} は {files} に必要な {modalities} 入力をサポートしていません。メッセージは送信できますが、これらの添付ファイルは無視される可能性があります。',
'chat.chatInput.toast.someFilesSkipped': '一部のファイルがスキップされました:\n{summary}',
'chat.chatInput.toast.vscodePickFailed': 'VS Codeでのファイル選択に失敗しました',
'chat.chatInput.toast.openSessionFirst': '先にセッションを開いてください',
@@ -1995,21 +2137,6 @@ export const dict: Record<I18nKey, string> = {
'chat.chatInput.drop.insertMention': 'ドロップしてメンションとして挿入',
'chat.chatInput.drop.attachFiles': 'ここにファイルをドロップして添付',
'chat.chatInput.fileFallback': 'ファイル',
'chat.mobileStatus.editProjects.title': 'プロジェクトを編集',
'chat.mobileStatus.editProjects.footer': '項目をドラッグして並び替え、または矢印で移動。編集をタップして詳細を変更します。',
'chat.mobileStatus.editProjects.empty': '編集するプロジェクトがありません',
'chat.mobileStatus.projects.empty': 'プロジェクトがありません',
'chat.mobileStatus.projects.addAria': 'プロジェクトを追加',
'chat.mobileStatus.projects.removeTitle': 'プロジェクトを削除',
'chat.mobileStatus.projects.removeDescriptionPrefix': '本当に削除しますか?',
'chat.mobileStatus.projects.cancel': 'キャンセル',
'chat.mobileStatus.projects.remove': '削除',
'chat.mobileStatus.new': '新規',
'chat.mobileStatus.noSessionsInProject': 'このプロジェクトにセッションはありません',
'chat.mobileStatus.swipeHint': '← ここをスワイプでサイドバーを開く →',
'chat.mobileStatus.toast.addProjectFailed': 'プロジェクトの追加に失敗しました',
'chat.mobileStatus.toast.selectValidDirectory': '有効なディレクトリを選択してください。',
'chat.mobileStatus.toast.selectDirectoryFailed': 'ディレクトリの選択に失敗しました',
'chat.toolOutputDialog.image.previousAria': '前の画像',
'chat.toolOutputDialog.image.nextAria': '次の画像',
'chat.toolOutputDialog.image.closeAria': '画像プレビューを閉じる',
@@ -2164,7 +2291,6 @@ export const dict: Record<I18nKey, string> = {
'commandPalette.item.addProject': 'プロジェクトを追加',
'commandPalette.item.showSessionSwitcher': 'セッションスイッチャーを表示',
'commandPalette.item.toggleSidebar': 'サイドバーの切り替え',
'commandPalette.item.toggleRightSidebar': '右サイドバーの切り替え',
'commandPalette.item.showContextUsage': 'コンテキスト使用量を表示',
'commandPalette.item.toggleTerminal': 'ターミナルの切り替え',
'commandPalette.item.openSettings': '設定を開く...',
@@ -2342,6 +2468,7 @@ export const dict: Record<I18nKey, string> = {
'projectActions.actions.addAction': 'アクションを追加',
'projectActions.actions.addNewAction': '新しいアクションを追加',
'projectActions.actions.autoDiscover': '自動検出',
'projectActions.actions.autoDiscoverTooltip': '開発サーバーを自動的に検出して実行します',
'projectActions.actions.chooseActionAria': 'プロジェクトアクションを選択',
'projectActions.actions.openPreview': 'プレビューを開く',
'projectActions.actions.runNamedAria': '{name}を実行',
@@ -9,6 +9,9 @@ export const settingsDict = {
'settings.providers.page.openCodeGo.validate': '검증',
'settings.providers.page.openCodeGo.delete': '삭제',
'settings.providers.page.quotaCredentials.saved': '{provider} 인증 정보를 저장했습니다.',
'settings.providers.page.quotaCredentials.accessToken': '액세스 토큰',
'settings.providers.page.quotaCredentials.refreshToken': '새로 고침 토큰',
'settings.providers.page.quotaCredentials.tokenPlaceholder': '토큰 붙여넣기',
'settings.providers.page.openCodeGo.saveFailed': 'OpenCode Go 인증 정보를 검증할 수 없습니다.',
'settings.providers.page.openCodeGo.valid': 'OpenCode Go 인증 정보가 유효합니다.',
'settings.providers.page.openCodeGo.invalid': 'OpenCode Go 인증 정보가 유효하지 않거나 만료되었습니다.',
@@ -47,6 +50,10 @@ export const settingsDict = {
'settings.view.search.aria': '설정 검색',
'settings.view.search.clear': '설정 검색 지우기',
'settings.view.search.noResults': '일치하는 설정이 없습니다',
'settings.view.nav.group.general': 'OpenChamber',
'settings.view.nav.group.projects': '워크스페이스',
'settings.view.nav.group.opencode': 'OpenCode',
'settings.view.nav.group.content': '라이브러리',
'settings.page.projects.title': '프로젝트',
'settings.page.remoteInstances.title': '원격 인스턴스',
'settings.page.providers.title': '프로바이더',
@@ -59,13 +66,22 @@ export const settingsDict = {
'settings.page.skillsCatalog.title': '스킬 카탈로그',
'settings.page.git.title': 'Git',
'settings.page.appearance.title': '외관',
'settings.page.appearance.description': 'OpenChamber의 모양과 느낌을 맞춤 설정하세요.',
'settings.page.chat.title': '채팅',
'settings.page.chat.description': '메시지와 도구가 표시되는 방식을 구성합니다.',
'settings.page.shortcuts.title': '단축키',
'settings.page.shortcuts.description': '키보드 단축키를 맞춤 설정합니다.',
'settings.page.general.title': '일반',
'settings.page.general.description': '앱 시작, 보안, 연결 및 개인정보.',
'settings.page.sessions.title': '세션',
'settings.page.sessions.description': '세션 기본값과 보관 기간을 설정합니다.',
'settings.page.magicPrompts.title': '매직 프롬프트',
'settings.page.notifications.title': '알림',
'settings.page.notifications.description': '알림을 받을 시점과 방식을 선택합니다.',
'settings.page.voice.title': '음성',
'settings.page.tunnel.title': '원격 터널',
'settings.page.voice.description': '음성 및 받아쓰기를 구성합니다.',
'settings.page.tunnel.title': '외부 터널',
'settings.page.tunnel.description': '원격 터널로 이 인스턴스를 노출합니다.',
'settings.page.about.title': '정보',
'settings.page.snippets.title': '스니펫',
'settings.snippets.sidebar.title': '스니펫',
@@ -90,7 +106,7 @@ export const settingsDict = {
'settings.snippets.page.toast.contentRequired': '스니펫 내용은 필수입니다',
'settings.snippets.page.toast.saveFailed': '스니펫 저장 실패',
'settings.snippets.page.toast.saved': '스니펫이 저장되었습니다',
'settings.openchamber.tunnel.title': '원격 터널',
'settings.openchamber.tunnel.title': '외부 터널',
'settings.openchamber.tunnel.description': '퀵 링크나 직접 관리하는 Cloudflare 터널로 안전한 원격 접속을 설정하세요.',
'settings.openchamber.tunnel.note.serverSideEnforced': '보안 터널 접근은 서버 측에서 강제됩니다.',
'settings.openchamber.tunnel.note.connectLinksOneTime': '접속 링크는 일회용이며, 터널이 중지되거나 링크 TTL이 만료되면 폐기됩니다.',
@@ -366,6 +382,7 @@ export const settingsDict = {
'settings.remoteInstances.page.logsDialog.selectedInstanceFallback': '선택한 인스턴스',
'settings.remoteInstances.page.patternDialog.descriptionWithHost': '{host}에는 구체적인 대상이 필요합니다.',
'settings.remoteInstances.page.patternDialog.description': '대상을 입력하세요.',
'settings.common.infoAria': '자세한 정보',
'settings.common.actions.cancel': '취소',
'settings.common.actions.create': '생성',
'settings.common.actions.delete': '삭제',
@@ -376,6 +393,8 @@ export const settingsDict = {
'settings.common.actions.copyAll': '모두 복사',
'settings.common.actions.clear': '지우기',
'settings.common.actions.saving': '저장 중...',
'settings.common.status.saved': '저장됨',
'settings.common.status.saveFailed': '저장 실패',
'settings.common.actions.saveChanges': '변경 사항 저장',
'settings.common.scope.global': '전역',
'settings.common.scope.project': '프로젝트',
@@ -460,6 +479,33 @@ export const settingsDict = {
'settings.agents.page.section.identityRole': '정체성 및 역할',
'settings.agents.page.section.modelParameters': '모델 및 파라미터',
'settings.agents.page.section.systemPrompt': '시스템 프롬프트',
'settings.agents.page.permissionsEditor.sectionInfo': '이 에이전트 자체의 권한 규칙을 설정 파일에 저장된 그대로 편집합니다. "상속"은 키를 설정하지 않은 상태로 두어 전역 설정과 기본값이 적용됩니다.',
'settings.agents.page.permissionsEditor.defaultLabel': '모든 도구 기본값',
'settings.agents.page.permissionsEditor.defaultAria': '모든 도구의 기본 권한',
'settings.agents.page.permissionsEditor.defaultInfo': '에이전트 수준 폴백(* 키)입니다. 자체 규칙이 없는 도구에 적용됩니다.',
'settings.agents.page.permissionsEditor.effectiveHint': '→ {action}',
'settings.agents.page.permissionsEditor.ruleCount': '규칙 {count}개',
'settings.agents.page.permissionsEditor.keyAria': '{key} 권한',
'settings.agents.page.permissionsEditor.patternPlaceholder': '패턴, 예: rm -rf * 또는 /path/**',
'settings.agents.page.permissionsEditor.patternActionAria': '{key} 패턴의 동작',
'settings.agents.page.permissionsEditor.customKeyPlaceholder': '사용자 지정 권한 키…',
'settings.agents.page.permissionsEditor.sessionRulesTitle': '세션에서 허용됨(저장 안 됨)',
'settings.agents.page.permissionsEditor.sessionRulesInfo': '라이브 세션 중 허용된 규칙("항상 허용" 응답 등)입니다. 지금은 적용되지만 저장된 설정에는 포함되지 않으며 재시작 시 사라집니다.',
'settings.agents.page.permissionsEditor.action.default': '기본값',
'settings.agents.page.permissionsEditor.action.inherit': '상속',
'settings.agents.page.permissionsEditor.action.allow': '허용',
'settings.agents.page.permissionsEditor.action.ask': '확인',
'settings.agents.page.permissionsEditor.action.deny': '거부',
'settings.agents.page.permissionsEditor.actions.save': '권한 저장',
'settings.agents.page.permissionsEditor.actions.discard': '취소',
'settings.agents.page.permissionsEditor.actions.addRule': '규칙 추가',
'settings.agents.page.permissionsEditor.actions.addKey': '키 추가',
'settings.agents.page.permissionsEditor.actions.removeRuleAria': '규칙 삭제',
'settings.agents.page.permissionsEditor.actions.retry': '다시 시도',
'settings.agents.page.permissionsEditor.state.loadFailed': '에이전트 권한 설정을 불러오지 못했습니다.',
'settings.agents.page.permissionsEditor.toast.saved': '권한이 저장되었습니다',
'settings.agents.page.permissionsEditor.toast.savedRestartRequired': '권한이 저장되었습니다 — 적용하려면 OpenCode 서버를 재시작하세요',
'settings.agents.page.permissionsEditor.toast.saveFailed': '권한 저장에 실패했습니다',
'settings.agents.page.section.toolPermissions': '도구 권한',
'settings.agents.page.field.agentName': '에이전트 이름',
'settings.agents.page.field.agentNamePlaceholder': 'agent-name (예: code-reviewer)',
@@ -495,10 +541,16 @@ export const settingsDict = {
'settings.agents.page.permissions.permissionPlaceholder': '권한...',
'settings.agents.page.permissions.patternPlaceholder': '패턴(예: *)',
'settings.page.behavior.title': '동작',
'settings.page.behavior.description': '에이전트의 응답 방식을 안내합니다.',
'settings.behavior.page.title': '동작',
'settings.behavior.page.warning.title': '전역 규칙은 프로젝트 규칙과 함께 사용됩니다',
'settings.behavior.page.warning.description': '여기에서 변경한 내용은 {path}를 업데이트합니다. 프로젝트 수준의 AGENTS.md가 있으면 OpenCode도 함께 포함합니다.',
'settings.behavior.page.section.systemPrompt': '전역 AGENTS.md',
'settings.behavior.page.section.systemPromptOptimization': '시스템 프롬프트 최적화',
'settings.behavior.page.systemPromptOptimization.enable': '시스템 프롬프트 크기 최적화',
'settings.behavior.page.systemPromptOptimization.enableAria': 'OpenCode 시스템 프롬프트 크기 최적화',
'settings.behavior.page.systemPromptOptimization.info': 'build 및 plan 에이전트의 시스템 프롬프트를 약 40% 줄입니다. 다른 에이전트는 변경되지 않습니다. build 또는 plan을 재정의하는 사용자 지정 정의가 제거될 수 있으므로 이러한 워크플로에서는 활성화하지 마세요. OpenCode를 다시 시작하면 변경 사항이 적용됩니다.',
'settings.behavior.page.systemPromptOptimization.restarting': '시스템 프롬프트 최적화를 적용하기 위해 OpenCode를 다시 시작하는 중…',
'settings.behavior.page.field.systemPromptPlaceholder': '당신은 유용한 AI 어시스턴트입니다...\n\n모든 세션과 공급자에서 AI가 어떻게 행동해야 하는지에 대한 절대적인 규칙을 정의할 수 있습니다.',
'settings.behavior.page.section.responseStyle': '응답 스타일',
'settings.behavior.page.responseStyle.tooltip': '활성화하면 이 지침이 새 대화에서 어시스턴트의 응답 방식을 안내합니다. 첫 메시지와 함께 전송되며 전역 AGENTS.md 규칙은 변경하지 않습니다.',
@@ -861,17 +913,24 @@ export const settingsDict = {
'settings.openchamber.sessionRetention.toast.failedDeleteCount': '세션 {count}개를 삭제하지 못했습니다',
'settings.openchamber.desktopNetwork.title': 'Desktop 네트워크 접속',
'settings.openchamber.desktopNetwork.field.windowControlsPosition': '창 컨트롤 위치',
'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': '최소화, 최대화, 닫기 버튼이 표시될 위치를 선택합니다. 자동은 운영체제를 따릅니다.',
'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': '최소화, 최대화, 닫기 버튼이 표시될 위치를 선택합니다. 기본값은 오른쪽입니다.',
'settings.openchamber.desktopNetwork.field.windowControlsPositionAria': '창 컨트롤 위치',
'settings.openchamber.desktopNetwork.option.windowControlsAuto': '자동',
'settings.openchamber.desktopNetwork.option.windowControlsLeft': '왼쪽',
'settings.openchamber.desktopNetwork.option.windowControlsRight': '오른쪽',
'settings.openchamber.desktopNetwork.field.windowControls': '창 컨트롤',
'settings.openchamber.desktopNetwork.field.windowControlsStyle': '스타일',
'settings.openchamber.desktopNetwork.field.windowControlsStyleAria': '창 컨트롤 스타일',
'settings.openchamber.desktopNetwork.option.windowControlsClassic': '클래식',
'settings.openchamber.desktopNetwork.option.windowControlsTrafficLights': '트래픽 라이트',
'settings.openchamber.desktopNetwork.field.launchAtLoginAria': '로그인 시 OpenChamber 시작',
'settings.openchamber.desktopNetwork.field.launchAtLogin': '로그인 시 OpenChamber 시작',
'settings.openchamber.desktopNetwork.field.launchAtLoginDescription': '창을 열지 않고 백그라운드에서 앱을 시작합니다. 데스크톱 상태 아이콘으로 열 수 있습니다.',
'settings.openchamber.desktopNetwork.field.macMenuBarAria': 'macOS 메뉴 막대에 OpenChamber 표시',
'settings.openchamber.desktopNetwork.field.macMenuBar': '메뉴 막대에 OpenChamber 표시',
'settings.openchamber.desktopNetwork.field.macMenuBarDescription': '앱을 다시 시작해야 합니다. 끄면 OpenChamber가 메뉴 막대 항목을 만들지 않으며 세션, 승인 및 사용량 업데이트도 실행하지 않습니다.',
'settings.openchamber.desktopNetwork.field.minimizeToTrayAria': 'OpenChamber를 시스템 트레이로 최소화하거나 닫기',
'settings.openchamber.desktopNetwork.field.minimizeToTray': '시스템 트레이로 최소화하고 닫기',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': '메인 창을 최소화하거나 닫아도 OpenChamber가 Windows 시스템 트레이에서 계속 실행됩니다.',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': '메인 창을 최소화하거나 닫아도 OpenChamber가 시스템 트레이에서 계속 실행됩니다.',
'settings.openchamber.desktopNetwork.field.keepAwakeAria': 'OpenChamber가 실행되는 동안 컴퓨터 절전 방지',
'settings.openchamber.desktopNetwork.field.keepAwake': 'OpenChamber가 실행되는 동안 컴퓨터 절전 방지',
'settings.openchamber.desktopNetwork.field.keepAwakeDescription': '휴대폰이 이 앱을 계속 열 수 있도록 합니다. 디스플레이는 꺼질 수 있습니다.',
@@ -880,6 +939,8 @@ export const settingsDict = {
'settings.openchamber.desktopNetwork.field.allowLanAccessDescription': '휴대폰, 태블릿, Wi-Fi의 다른 컴퓨터에서 열 수 있도록 앱을 다시 시작합니다.',
'settings.openchamber.desktopNetwork.field.warning': '경고: 활성화된 동안 같은 로컬 네트워크의 누구나 앱에 접속할 수 있습니다.',
'settings.openchamber.desktopNetwork.field.passwordRequiredWarning': 'LAN 접속에는 Desktop UI 비밀번호가 필요합니다. 설정하기 전까지 desktop 앱은 로컬 전용으로 시작됩니다.',
'settings.openchamber.desktopPassword.actions.showPassword': '비밀번호 표시',
'settings.openchamber.desktopPassword.actions.hidePassword': '비밀번호 숨기기',
'settings.openchamber.desktopPassword.field.password': 'Desktop UI 비밀번호',
'settings.openchamber.desktopPassword.field.passwordPlaceholder': '비밀번호 필요 없음',
'settings.openchamber.desktopPassword.field.passwordDescription': 'OpenChamber는 다시 시작 후 비밀번호를 요청하고, 이후 로그인 세션이 만료되면 다시 요청합니다. 기본 12시간, 이 디바이스 신뢰 선택 시 7일입니다. 로그인을 끄려면 비워 두세요.',
@@ -902,6 +963,9 @@ export const settingsDict = {
'settings.openchamber.opencodeCli.field.binaryPathPlaceholder': '/Users/you/.bun/bin/opencode',
'settings.openchamber.opencodeCli.field.showUpdateNotifications': 'OpenCode 업데이트 알림 표시',
'settings.openchamber.opencodeCli.field.showUpdateNotificationsAria': 'OpenCode 업데이트 알림 표시',
'settings.openchamber.opencodeCli.field.agentControlTool': '에이전트 제어 도구',
'settings.openchamber.opencodeCli.field.agentControlToolAria': '에이전트 제어 도구 활성화',
'settings.openchamber.opencodeCli.field.agentControlToolInfo': '에이전트가 채팅에서 작업을 오케스트레이션할 수 있습니다. 세션과 worktree 생성, 다른 에이전트에게 프롬프트 위임, 예약 작업 관리가 가능합니다. 각 세션에 작은 도구 설명이 추가됩니다. Save + Reload 후 적용됩니다.',
'settings.openchamber.opencodeCli.actions.browseAria': 'OpenCode binary 경로 찾아보기',
'settings.openchamber.opencodeCli.actions.browse': '찾아보기',
'settings.openchamber.opencodeCli.actions.saveAndReload': '저장 + 다시 로드',
@@ -1008,10 +1072,9 @@ export const settingsDict = {
'settings.openchamber.keyboardShortcuts.action.toggle_terminal.label': '터미널 dock 토글',
'settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label': '터미널 확장 토글',
'settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label': '사이드바 토글',
'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': '오른쪽 사이드바 토글',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': '오른쪽 사이드바 Git 탭 열기',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': '오른쪽 사이드바 Files 탭 열기',
'settings.openchamber.keyboardShortcuts.action.cycle_right_sidebar_tab.label': '오른쪽 사이드바 탭 순환',
'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': '컨텍스트 패널 표시 전환',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': 'Git 서피스 열기',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': '파일 서피스 열기',
'settings.openchamber.keyboardShortcuts.action.new_chat.label': '새 세션',
'settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label': '새 worktree 초안',
'settings.openchamber.keyboardShortcuts.action.new_mini_chat.label': '새 Mini Chat 창',
@@ -1197,7 +1260,7 @@ export const settingsDict = {
'settings.openchamber.worktrees.setup.waitForCommandsAria': '세션을 만들거나 보내기 전에 Worktree 설정 명령이 끝날 때까지 기다리기',
'settings.openchamber.worktrees.setup.toast.saveFailed': 'Worktree 설정 명령 저장에 실패했습니다',
'settings.openchamber.worktrees.list.title': '기존 worktree',
'settings.openchamber.worktrees.list.tooltip': 'Worktree는 repo 외부에 있습니다(OpenCode 관리). worktree를 삭제하면 연결된 세션도 제거됩니다.',
'settings.openchamber.worktrees.list.tooltip': 'Worktree를 삭제하면 연결된 세션도 제거됩니다.',
'settings.openchamber.worktrees.list.loading': 'worktree 로딩 중...',
'settings.openchamber.worktrees.list.empty': '이 프로젝트의 worktree를 찾을 수 없습니다',
'settings.openchamber.worktrees.list.detachedHead': 'Detached HEAD',
@@ -1457,6 +1520,10 @@ export const settingsDict = {
'settings.openchamber.defaults.smallModel.useDefault': '기본 소형 모델 사용',
'settings.openchamber.defaults.smallModel.useDefaultAria': '기본 소형 모델 사용',
'settings.openchamber.defaults.smallModel.overrideModel': '재정의 모델',
'settings.openchamber.defaults.walkthroughModel.title': '변경 워크스루 모델',
'settings.openchamber.defaults.walkthroughModel.description': '변경 사항의 AI 리뷰에는 구조화된 출력과 전체 diff를 담을 여유가 필요한데, 저렴한 스몰 모델로는 부족할 때가 많습니다. 카탈로그가 구조화된 출력을 지원하지 않는다고 알리는 모델은 이 목록에서 숨겨집니다. 선택하지 않으면 스몰 모델이 사용됩니다.',
'settings.openchamber.defaults.walkthroughModel.overrideModel': '워크스루 모델',
'settings.openchamber.defaults.walkthroughModel.usesSmallModel': '스몰 모델',
'settings.openchamber.defaults.field.showDeletionDialog': '삭제 확인 대화상자 표시',
'settings.openchamber.defaults.field.openFilesPreviewAria': '미리보기 가능한 파일을 미리보기 모드로 열기',
'settings.openchamber.defaults.field.openFilesPreview': '미리보기 가능한 파일을 미리보기 모드로 열기',
@@ -1585,6 +1652,7 @@ export const settingsDict = {
'settings.voice.page.section.playbackAndSummary': '재생',
'settings.voice.page.field.provider': '프로바이더',
'settings.voice.page.provider.browser': '브라우저',
'settings.voice.page.provider.openai': 'OpenAI',
'settings.voice.page.provider.custom': '사용자 정의',
'settings.voice.page.provider.say': 'Say',
'settings.voice.page.provider.server': '서버',
@@ -1664,18 +1732,24 @@ export const settingsDict = {
'settings.voice.page.field.ttsInputModeRaw': '원본 Markdown',
'settings.voice.page.field.ttsInputModeSummarized': '요약',
'settings.openchamber.visual.section.colorMode': '색상 모드',
'settings.openchamber.visual.section.colorModeAndTheme': '색상 모드 및 테마',
'settings.openchamber.visual.section.mobileLayout': '모바일 레이아웃',
'settings.openchamber.visual.option.mobileLayout.default': '이전',
'settings.openchamber.visual.option.mobileLayout.new': '새로움',
'settings.openchamber.visual.section.localization': '지역화',
'settings.openchamber.visual.section.spacingAndLayout': '간격 및 레이아웃',
'settings.openchamber.visual.section.densityAndType': '밀도 및 서체',
'settings.openchamber.visual.section.appInstall': '앱 설치',
'settings.openchamber.visual.section.navigation': '내비게이션',
'settings.openchamber.visual.section.chatRenderMode': '채팅 렌더링 모드',
'settings.openchamber.visual.section.chatRenderModeAria': '채팅 렌더링 모드',
'settings.openchamber.visual.section.chatDisplay': '표시',
'settings.openchamber.visual.section.chatMessageOptions': '메시지 옵션',
'settings.openchamber.visual.section.chatFeatures': '기능',
'settings.openchamber.visual.section.messageStreamTransport': '메시지 스트림 전송',
'settings.openchamber.visual.section.activityDefault': 'Activity 기본값',
'settings.openchamber.visual.section.activityDefaultAria': 'Activity 기본 모드',
'settings.openchamber.visual.section.showToolsOpenedByDefault': '도구를 기본으로 펼쳐 표시:',
'settings.openchamber.visual.section.showToolsOpenedByDefault': '도구를 기본으로 펼쳐 표시',
'settings.openchamber.visual.section.sessionAssistance': '세션 지원',
'settings.openchamber.visual.section.reasoning': '추론',
'settings.openchamber.visual.section.messageAppearance': '메시지 모양',
@@ -1728,6 +1802,11 @@ export const settingsDict = {
'settings.openchamber.visual.field.fontSizePercentageAria': '폰트 크기 비율',
'settings.openchamber.visual.actions.resetFontSizeAria': '폰트 크기 초기화',
'settings.openchamber.visual.field.terminalFontSize': '터미널 폰트 크기',
'settings.openchamber.visual.field.terminalShell': '터미널 셸',
'settings.openchamber.visual.field.terminalShellAria': '터미널 셸 선택',
'settings.openchamber.visual.field.terminalShellHint': '이 변경 사항을 현재 세션에 적용하려면 터미널을 다시 시작하세요.',
'settings.openchamber.visual.field.terminalLoginShell': '로그인 셸로 시작',
'settings.openchamber.visual.option.terminalShell.auto': '자동',
'settings.openchamber.visual.field.editorFontSize': '에디터 폰트 크기',
'settings.openchamber.visual.field.codeFont': '코드 폰트',
'settings.openchamber.visual.field.selectCodeFontAria': '코드 폰트 선택',
@@ -1775,6 +1854,9 @@ export const settingsDict = {
'settings.openchamber.visual.field.promptNavigatorEnabled': '프롬프트 탐색기',
'settings.openchamber.visual.field.expandedEditorToolbarAria': 'Always show editor toolbar',
'settings.openchamber.visual.field.expandedEditorToolbar': 'Always show editor toolbar (docked under the file tabs)',
'settings.openchamber.visual.field.autoSaveEnabledAria': '파일 자동 저장',
'settings.openchamber.visual.field.autoSaveEnabled': '파일 자동 저장',
'settings.openchamber.visual.field.autoSaveEnabledInfo': '입력을 멈춘 후 파일 편집 내용을 자동으로 저장합니다. 끄면 수동으로 저장해야 합니다.',
'settings.openchamber.visual.field.wideChatLayoutAria': '넓은 채팅 레이아웃',
'settings.openchamber.visual.field.wideChatLayout': '넓은 채팅 레이아웃',
'settings.openchamber.visual.field.showSplitAssistantMessageActionsAria': '인라인 어시스턴트 작업',
@@ -1782,6 +1864,8 @@ export const settingsDict = {
'settings.openchamber.visual.field.showSplitAssistantMessageActionsTooltip': '같은 응답에서 이후 도구 호출 앞에 나타나는 어시스턴트 텍스트 블록에 답변 복사, 이미지로 저장, 소리 내어 읽기 작업을 표시합니다.',
'settings.openchamber.visual.field.allowPromptingSubagentSessionsAria': '하위 에이전트 세션에 프롬프트 허용',
'settings.openchamber.visual.field.allowPromptingSubagentSessions': '하위 에이전트 세션에 프롬프트 허용',
'settings.openchamber.visual.field.draftStartersVisible': '새 세션 화면에 시작 항목 표시',
'settings.openchamber.visual.field.draftStartersVisibleAria': '새 세션 화면에 시작 항목 표시',
'settings.openchamber.visual.field.showToolFileIconsAria': '도구 파일 아이콘 표시',
'settings.openchamber.visual.field.codeBlockLineWrapAria': '코드 블록 줄 바꿈',
'settings.openchamber.visual.field.codeBlockLineWrap': '코드 블록 줄 바꿈',
@@ -1801,8 +1885,11 @@ export const settingsDict = {
'settings.openchamber.visual.field.sendAnonymousUsageReports': '익명 사용량 보고서 보내기',
'settings.openchamber.visual.field.sendAnonymousUsageReportsHint': '활성 사용 앱 버전을 파악해 개선 우선순위를 정하는 데 도움이 됩니다. 앱 버전, 플랫폼, 런타임만 수집되며 개인 데이터나 코드는 수집되지 않습니다.',
'settings.openchamber.visual.option.themeMode.system': 'System',
'settings.openchamber.visual.option.themeMode.system.description': '시스템 설정 따르기',
'settings.openchamber.visual.option.themeMode.light': 'Light',
'settings.openchamber.visual.option.themeMode.light.description': '항상 라이트 모양 사용',
'settings.openchamber.visual.option.themeMode.dark': 'Dark',
'settings.openchamber.visual.option.themeMode.dark.description': '항상 다크 모양 사용',
'settings.openchamber.visual.option.diffLayout.dynamic.label': '동적',
'settings.openchamber.visual.option.diffLayout.dynamic.description': '새 항목은 inline, 수정 항목은 side-by-side로 표시합니다.',
'settings.openchamber.visual.option.diffLayout.inline.label': '항상 inline',
+170 -43
View File
@@ -3,6 +3,15 @@ import { settingsDict } from './ko.settings';
export const dict: Record<I18nKey, string> = {
...settingsDict,
'terminalView.actions.attachSelection': '선택한 출력 첨부',
'terminalView.actions.restart': '터미널 다시 시작',
'chat.message.terminalContext': '{terminal}, {start}-{end}행',
'chat.chatInput.terminalContext': '{terminal}, {start}-{end}행',
'chat.chatInput.terminalContextRemove': '터미널 컨텍스트 제거',
'chat.chatInput.prCommentContext': 'PR 댓글',
'chat.chatInput.prCommentContextRemove': 'PR 댓글 컨텍스트 제거',
'chat.chatInput.prCheckContext': '실패한 PR 체크',
'chat.chatInput.prCheckContextRemove': 'PR 체크 컨텍스트 제거',
'common.loading': '로딩 중...',
'common.unavailable': '사용할 수 없음',
'common.language.english': '영어',
@@ -44,6 +53,9 @@ export const dict: Record<I18nKey, string> = {
'mobile.connect.unlockButton': '잠금 해제 후 연결',
'mobile.connect.cancelPassword': '다른 서버 사용',
'mobile.connect.connecting': '연결 중...',
'mobile.connect.notice.unreachable': '{label}에 연결할 수 없습니다. 서버가 실행 중인지 확인하세요.',
'mobile.connect.notice.authExpired': '{label} 액세스가 만료되었거나 취소되었습니다. 다시 로그인하세요.',
'mobile.connect.recovery.description': '저장된 서버에 연결할 수 없습니다. 서버가 실행 중인지 확인하거나 다른 인스턴스를 선택하세요.',
'mobile.connect.scanQr': 'QR 코드 스캔',
'mobile.connect.welcome.scanHint': '컴퓨터에서 「기기 추가」를 열어 QR 코드를 표시한 뒤 여기에서 스캔하세요.',
'mobile.connect.advanced': '고급',
@@ -79,14 +91,14 @@ export const dict: Record<I18nKey, string> = {
'mobile.nav.changes': '변경사항',
'mobile.nav.settings': '설정',
'mobile.surface.closeAria': '닫기',
'mobile.header.openMenuAria': '메뉴 열기',
'mobile.header.openWorkspaceAria': '작업 공간 패널 열기',
'mobile.header.openMetadataAria': '세션 메타데이터 열기',
'mobile.header.metadata.context': '컨텍스트',
'mobile.header.metadata.branch': '브랜치',
'mobile.header.metadata.usage': '사용량',
'mobile.menu.titleAria': '작업 공간 도구',
'mobile.menu.files': '파일',
'mobile.menu.changes': '변경사항',
'mobile.menu.terminal': '터미널',
'mobile.menu.mcp': 'MCP',
'mobile.menu.instances': '인스턴스',
'mobile.menu.update': '업데이트',
@@ -113,17 +125,19 @@ export const dict: Record<I18nKey, string> = {
'mobile.sessions.newChat': '새 채팅',
'mobile.sessions.editOrder': '프로젝트 순서 변경',
'mobile.sessions.doneEditing': '완료',
'mobile.sessions.editOrderHint': '핸들을 드래그하거나 화살표로 프로젝트 순서를 변경하세요. 완료하려면 체크를 누르세요.',
'mobile.sessions.editOrderHint': '핸들을 드래그하여 프로젝트 순서를 변경하세요. 프로젝트를 탭하면 워크트리가 표시되며 같은 방식으로 드래그할 수 있습니다. 체크를 탭하면 완료됩니다.',
'mobile.sessions.dragHandleAria': '{label} 드래그하여 순서 변경',
'mobile.sessions.moveUpAria': '{label} 위로 이동',
'mobile.sessions.moveDownAria': '{label} 아래로 이동',
'mobile.sessions.removeProjectAria': '{label} 제거',
'mobile.sessions.cancelRemoveProjectAria': '{label} 제거 취소',
'mobile.sessions.confirmRemoveProject': '닫기',
'mobile.sessions.confirmRemoveProjectAria': '{label} 제거 확인',
'mobile.sessions.toast.projectRemoved': '{label} 제거됨',
'mobile.sessions.archiveSessionAria': '{title} 보관',
'mobile.sessions.cancelArchiveAria': '{title} 보관 취소',
'mobile.sessions.renameSessionAria': '{title} 이름 바꾸기',
'mobile.sessions.renameError': '세션 이름 변경에 실패했습니다',
'mobile.sessions.deleteSessionAria': '{title} 삭제',
'mobile.sessions.confirmDeleteSessionAria': '{title} 삭제 확인',
'mobile.sessions.editProjectAria': '{label} 편집',
'mobile.projectEdit.worktreesTitle': '워크트리',
'mobile.projectEdit.worktreesEmpty': '이 프로젝트에는 아직 워크트리가 없습니다.',
@@ -170,6 +184,8 @@ export const dict: Record<I18nKey, string> = {
'mobile.files.copyPathAria': '파일 경로 복사',
'mobile.files.copyContent': '내용 복사',
'mobile.files.copyContentAria': '파일 내용 복사',
'mobile.files.editAria': '파일 편집',
'mobile.files.doneEditingAria': '편집 완료',
'mobile.files.toast.pathCopied': '경로가 복사되었습니다',
'mobile.files.toast.contentCopied': '내용이 복사되었습니다',
'mobile.files.toast.copyFailed': '복사하지 못했습니다',
@@ -291,6 +307,8 @@ export const dict: Record<I18nKey, string> = {
'sessions.scheduledTasks.editor.goal.aria': '이 작업을 에이전트가 완료까지 추진하는 목표로 실행합니다',
'sessions.scheduledTasks.editor.goal.budgetLabel': '토큰 예산',
'sessions.scheduledTasks.editor.goal.budgetAria': '목표를 토큰 예산으로 제한합니다',
'sessions.scheduledTasks.editor.permissionAutoAccept.label': '권한 자동 승인',
'sessions.scheduledTasks.editor.permissionAutoAccept.aria': '권한 자동 승인이 켜진 상태로 작업 세션을 시작합니다',
'sessions.scheduledTasks.editor.actions.closeAria': '닫기',
'sessions.scheduledTasks.editor.actions.cancel': '취소',
'sessions.scheduledTasks.editor.actions.save': '저장',
@@ -409,6 +427,28 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.empty.noMatches.title': '일치하는 세션 없음',
'sessions.sidebar.empty.noMatches.description': '다른 제목, 브랜치, 폴더 또는 경로로 검색해 보세요.',
'sessions.sidebar.activity.recentTitle': '최근',
'sessions.archivePage.allDirectories': '모든 디렉터리',
'sessions.sidebar.header.displayMode.stickyHeaders': '프로젝트 헤더 고정',
'sessions.sidebar.header.grouping.label': '세션 그룹화',
'sessions.sidebar.header.grouping.byWorktree': '워크트리별',
'sessions.sidebar.header.grouping.flat': '평면 목록',
'sessions.sidebar.project.actions.manageWorktrees': '워크트리 관리',
'sessions.worktreesPage.title': '{project}의 워크트리',
'sessions.worktreesPage.description': '이 프로젝트의 git 워크트리를 생성, 확인, 삭제합니다.',
'sessions.worktreesPage.closeAria': '워크트리 닫기',
'sessions.scheduledTasks.page.closeAria': '예약 작업 닫기',
'sessions.sidebar.nav.archive': '보관함',
'sessions.archivePage.title': '보관함',
'sessions.archivePage.countSingle': '보관된 세션 {count}개',
'sessions.archivePage.countPlural': '보관된 세션 {count}개',
'sessions.archivePage.closeAria': '보관함 닫기',
'sessions.archivePage.searchPlaceholder': '보관된 세션 검색',
'sessions.archivePage.empty.noArchived': '보관된 세션이 없습니다',
'sessions.archivePage.empty.noMatches': '일치하는 보관된 세션이 없습니다',
'sessions.archivePage.otherProjects': '기타 프로젝트',
'sessions.archivePage.deleteProject': '이 프로젝트의 보관된 세션 모두 삭제',
'sessions.archivePage.deleteProjectAria': '{label}의 보관된 세션 모두 삭제',
'sessions.archivePage.deleteSessionAria': '{title} 삭제',
'sessions.switcher.openAria': '세션 전환기 열기',
'sessions.switcher.empty': '최근 세션 없음',
'sessions.switcher.draftTitle': '새 세션',
@@ -442,6 +482,10 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.project.actions.edit': '편집',
'sessions.sidebar.project.actions.newDraftSession': '새 드래프트 세션',
'sessions.sidebar.session.menu.rename': '이름 변경',
'sessions.sidebar.session.menu.copyId': '세션 ID 복사',
'sessions.sidebar.session.copyId.success': '세션 ID가 복사되었습니다',
'sessions.sidebar.session.copyId.error': '세션 ID를 복사하지 못했습니다',
'header.sessionActions.openAria': '세션 작업 열기',
'sessions.sidebar.session.rename.save': '세션 이름 저장',
'sessions.sidebar.session.rename.cancel': '세션 이름 변경 취소',
'sessions.sidebar.session.menu.unpin': '세션 고정 해제',
@@ -451,6 +495,12 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.menu.copyLink': '링크 복사',
'sessions.sidebar.session.menu.unshare': '공유 해제',
'sessions.sidebar.session.menu.exportMarkdown': 'Markdown 내보내기',
'sessions.sidebar.session.menu.moveToWorktree': '새 worktree로 이동',
'sessions.sidebar.session.moveToWorktree.success': '세션을 새 worktree로 이동했습니다',
'sessions.sidebar.session.moveToWorktree.failed': '세션을 새 worktree로 이동하지 못했습니다',
'sessions.sidebar.session.moveToWorktree.tooltip': '현재 브랜치에서 새 worktree를 만들고 커밋되지 않은 변경 사항과 이 세션 및 하위 세션을 이동합니다.',
'sessions.sidebar.session.moveToWorktree.tooltipBusy': '세션이 유휴 상태일 때 사용할 수 있습니다. 현재 작업을 중지하거나 완료될 때까지 기다리세요.',
'sessions.sidebar.session.moveToWorktree.tooltipMoving': '이 세션은 이미 새 worktree로 이동 중입니다.',
'sessions.sidebar.session.menu.runFusion': 'fusion 실행',
'sessions.sidebar.session.menu.openInSidePanel': '사이드 패널에서 열기',
'sessions.sidebar.session.actions.openInEditor': '편집기에서 열기',
@@ -458,6 +508,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.menu.label': '세션 메뉴',
'sessions.sidebar.session.untitled': '제목 없는 세션',
'sessions.sidebar.session.export.nothingToExport': '내보낼 내용 없음',
'sessions.sidebar.session.export.failedLoadHistory': '전체 세션 기록을 불러오지 못했습니다',
'sessions.sidebar.session.export.success': '세션 내보냄',
'sessions.sidebar.session.export.failedRevealPath': '경로 표시 실패',
'sessions.sidebar.session.export.untitledSubagent': '제목 없는 서브 에이전트',
@@ -471,6 +522,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.status.active': '활성 세션',
'sessions.sidebar.session.status.unread': '읽지 않은 업데이트',
'sessions.sidebar.session.status.pinned': '고정된 세션',
'sessions.sidebar.session.status.movingToWorktree': '세션을 새 worktree로 이동하는 중',
'sessions.sidebar.session.status.permissionRequired': '권한 필요',
'sessions.sidebar.session.subsessions.collapse': '하위 세션 접기',
'sessions.sidebar.session.subsessions.expand': '하위 세션 펼치기',
@@ -512,7 +564,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': '이 작업은 {dateLabel}의 세션 {count}개를 영구 삭제합니다.',
'sessions.sidebar.dialogs.sessionList.more': '+{count}개 더 보기',
'sessions.sidebar.session.share.successTitle': '세션 공유됨',
'sessions.sidebar.session.share.successDescription': '메뉴에서 링크를 복사할 수 있습니다.',
'sessions.sidebar.session.share.successDescription': '공유 링크가 클립보드에 복사되었습니다.',
'sessions.sidebar.session.share.error': '세션을 공유할 수 없음',
'sessions.sidebar.session.share.copyUrlError': 'URL 복사 실패',
'sessions.sidebar.session.unshare.success': '세션 공유 해제됨',
@@ -694,6 +746,8 @@ export const dict: Record<I18nKey, string> = {
'gitView.header.noIdentity': '인증 정보 없음',
'gitView.header.noProfiles': '적용할 프로필 없음',
'gitView.header.repositoryViews': '저장소 보기',
'gitView.header.updateBranch': '브랜치 업데이트',
'gitView.header.openPullRequest': '풀 리퀘스트 열기',
'gitView.header.removeRemoteAria': '리모트 제거',
'gitView.header.removeRemoteTitle': '리모트 제거',
'gitView.header.upstreamSynced': '동기화됨',
@@ -745,6 +799,7 @@ export const dict: Record<I18nKey, string> = {
'gitView.history.renamedNoDiff': '이름 변경된 파일 — diff 미지원',
'gitView.history.renderDiffAnyway': '그래도 렌더링',
'gitView.history.title': '히스토리',
'gitView.history.refresh': '새로고침',
'gitView.graph.title': '그래프',
'gitView.integrate.checking': '확인 중…',
'gitView.integrate.cherryPickAbortedToast': 'Cherry-pick이 중단되었습니다',
@@ -779,12 +834,15 @@ export const dict: Record<I18nKey, string> = {
'gitView.operation.abort': '중단',
'gitView.operation.continue': '계속',
'gitView.operation.inProgressTitle': '{operation} 진행 중',
'gitView.operation.inProgressTitleManyConflicts': '{operation} 진행 중: 충돌 {count}개',
'gitView.operation.inProgressTitleOneConflict': '{operation} 진행 중: 충돌 {count}개',
'gitView.operation.merge': '병합',
'gitView.operation.mergeInProgressWithHead': '{head} 병합 진행 중',
'gitView.operation.mergingMessage': '병합 중: {message}',
'gitView.operation.rebase': '리베이스',
'gitView.operation.rebaseInProgress': '리베이스 진행 중',
'gitView.operation.rebasingOnto': '{headName}을(를) {onto} 위로 리베이스 중',
'gitView.operation.readyToContinueHint': '모든 충돌이 해결되었습니다. 계속하여 작업을 완료하세요.',
'gitView.operation.resolveConflictsHint': '충돌을 해결한 뒤 작업을 계속하세요.',
'gitView.operation.resolveWithAi': 'AI로 해결',
'gitView.stash.confirmButton': '확인',
@@ -879,15 +937,15 @@ export const dict: Record<I18nKey, string> = {
'gitView.pr.actions.openOnGitHubAria': 'GitHub에서 PR 열기',
'gitView.pr.actions.openSettings': '설정 열기',
'gitView.pr.actions.repo': '레포지토리',
'gitView.pr.actions.resolveFailedChecks': '실패한 체크 해결',
'gitView.pr.actions.resolveFailedChecksAria': '실패한 검사를 에이전트에 보내기',
'gitView.pr.actions.resolveFailedChecks': '실패한 체크 첨부',
'gitView.pr.actions.resolveFailedChecksAria': '실패한 체크를 채팅 컨텍스트에 첨부',
'gitView.pr.actions.savePr': '저장 PR',
'gitView.pr.actions.savePrAria': 'PR 변경 사항 저장',
'gitView.pr.actions.sendCommentToAgent': '보내기 댓글로 에이전트',
'gitView.pr.actions.sendCommentToAgentAria': '이 댓글을 에이전트에 보내기',
'gitView.pr.actions.sendToAgent': '보내기로 에이전트',
'gitView.pr.actions.shareComments': '댓글 공유',
'gitView.pr.actions.shareCommentsAria': '보내기 PR 댓글로 에이전트',
'gitView.pr.actions.sendCommentToAgent': '댓글을 채팅 컨텍스트에 첨부',
'gitView.pr.actions.sendCommentToAgentAria': '이 댓글을 채팅 컨텍스트에 첨부',
'gitView.pr.actions.sendToAgent': '채팅에 첨부',
'gitView.pr.actions.shareComments': '댓글 첨부',
'gitView.pr.actions.shareCommentsAria': '풀 리퀘스트 댓글을 채팅 컨텍스트에 첨부',
'gitView.pr.actions.toggleDraftAria': '드래프트 상태 전환',
'gitView.pr.actions.refresh': 'PR 상태 새로고침',
'gitView.pr.actions.refreshAria': '풀 리퀘스트 상태 새로고침',
@@ -925,6 +983,10 @@ export const dict: Record<I18nKey, string> = {
'gitView.pr.noMergePermission': '이 PR을 병합할 권한이 없습니다.',
'gitView.pr.notMergeable': '병합 불가',
'gitView.pr.numberLabel': 'PR #{number}',
'gitView.pr.segment.overview': '개요',
'gitView.pr.segment.checks': '체크',
'gitView.pr.segment.comments': '댓글',
'gitView.pr.comments.addAll': '모두 채팅에 첨부',
'gitView.pr.placeholder.additionalContext': '제약 사항, 배포 메모 또는 리뷰어 참고사항을 입력하세요…',
'gitView.pr.placeholder.description': '변경 사항 설명…',
'gitView.pr.placeholder.main': 'PR 요약',
@@ -959,9 +1021,6 @@ export const dict: Record<I18nKey, string> = {
'gitView.pullRequest.createHint': '이 브랜치에서 PR을 만들고 관리하세요.',
'gitView.pullRequest.availableOnFeatureBranches': '현재 브랜치에서 PR을 열 수 있을 때 사용할 수 있습니다.',
'gitView.pullRequest.title': 'PR',
'gitView.tabs.commit': '커밋',
'gitView.tabs.pr': 'PR',
'gitView.tabs.update': '업데이트',
'gitView.tabs.worktree': '워크트리',
'gitView.toast.abortOperationFailed': '작업 중단 실패',
'gitView.toast.appliedIdentity': '인증 정보를 적용했습니다: {name}',
@@ -1028,9 +1087,81 @@ export const dict: Record<I18nKey, string> = {
'contextPanel.mode.stagedDiff': 'Staged Diff',
'contextPanel.mode.workingDiff': 'Working Diff',
'contextPanel.mode.plan': '계획',
'contextPanel.mode.pr': '풀 리퀘스트',
'contextPanel.mode.context': '컨텍스트',
'contextPanel.mode.preview': '미리보기',
'contextPanel.mode.browser': '브라우저',
'contextRail.aria.rail': '패널 서피스',
'contextPanel.editorEmpty.title': '열린 파일 없음',
'contextPanel.editorEmpty.description': '트리에서 파일을 선택해 편집을 시작하세요.',
'contextRail.surface.editor.description': '프로젝트 파일 편집',
'contextRail.surface.git.description': '커밋, 브랜치, 풀 리퀘스트',
'contextRail.surface.terminal.description': '내장 터미널',
'contextRail.surface.diff.description': '작업 중인 변경 사항 검토',
'contextPanel.mode.walkthrough': '워크스루',
'contextRail.surface.walkthrough.description': 'AI가 안내하는 변경 사항 워크스루',
'walkthrough.scope.all': '커밋되지 않은 전체',
'walkthrough.scope.group.workingTree': '작업 트리',
'walkthrough.scope.group.committed': '커밋됨',
'walkthrough.scope.staged': '스테이지됨',
'walkthrough.scope.working': '스테이지 안 됨',
'walkthrough.scope.branch': '이 브랜치',
'walkthrough.scope.selectorAria': '리뷰 대상 선택',
'walkthrough.language.menuLabel': '워크스루 언어',
'walkthrough.missing.language': '{requested} 워크스루가 아직 없어 {shown} 워크스루를 표시합니다.',
'walkthrough.missing.model': '{model}(으)로 생성한 워크스루가 아직 없어 마지막으로 생성된 것을 표시합니다.',
'walkthrough.missing.languageAndModel': '이 언어와 이 모델로 생성한 워크스루가 아직 없어 마지막으로 생성된 것을 표시합니다.',
'walkthrough.language.selectorAria': '워크스루 언어 선택',
'walkthrough.scope.pullRequest': 'PR #{number}',
'walkthrough.action.generate': '워크스루 생성',
'walkthrough.action.regenerate': '다시 생성',
'walkthrough.action.cancel': '취소',
'walkthrough.action.next': '다음 단계',
'walkthrough.action.previous': '이전 단계',
'walkthrough.action.refresh': '새로 고침',
'walkthrough.action.open': '워크스루',
'walkthrough.stage.collecting': '변경 사항을 모으는 중',
'walkthrough.stage.asking': '모델을 기다리는 중',
'walkthrough.stage.assembling': '워크스루를 조립하는 중',
'walkthrough.empty.title': '아직 워크스루가 없습니다',
'walkthrough.empty.description': '이 변경 사항을 따라 읽을 수 있는 경로를 만듭니다. 스몰 모델을 호출해 토큰을 사용하므로 요청할 때만 실행됩니다.',
'walkthrough.stale.banner': '이 리뷰 이후에 코드가 바뀌었습니다. 오래된 단계: {count}',
'walkthrough.stop.staleAll': '이 단계가 설명하던 코드가 모두 바뀌었습니다.',
'walkthrough.stop.stalePartial': '이 단계가 설명하던 코드 일부가 바뀌었습니다. 사라진 부분: {count}',
'walkthrough.stop.staleShort': '오래됨',
'walkthrough.stop.noCode': '이 단계의 코드는 현재 diff에 없습니다.',
'walkthrough.uncovered.title': '리뷰가 다루지 않은 변경: {count}',
'walkthrough.uncovered.description': '리뷰가 일상적인 변경으로 판단했습니다. 펼쳐서 직접 확인하세요.',
'walkthrough.toc.moreFiles': '다른 파일: {count}',
'walkthrough.toc.uncovered': '미포함: {count}',
'walkthrough.toc.resize': '목차 열 너비 조절',
'walkthrough.importance.critical': '중요',
'walkthrough.importance.context': '참고',
'walkthrough.blocked.noModel.title': '사용할 수 있는 스몰 모델이 없습니다',
'walkthrough.blocked.noModel.description': '리뷰를 생성하려면 모델 제공자에 로그인하세요.',
'walkthrough.blocked.emptyDiff.title': '리뷰할 내용이 없습니다',
'walkthrough.blocked.emptyDiff.description': '이 범위에는 아직 변경 사항이 없습니다.',
'walkthrough.blocked.contextTooSmall.title': '이 diff는 현재 모델에 너무 큽니다',
'walkthrough.blocked.contextTooSmall.description': '{model}은 약 {available}천 자를 담을 수 있는데 이 diff에는 약 {required}천 자가 필요합니다. 잘라내지 않으니 컨텍스트가 더 큰 모델을 선택하세요.',
'walkthrough.blocked.structuredOutput.title': '이 모델은 구조화된 출력을 지원하지 않습니다',
'walkthrough.blocked.structuredOutput.description': '{model}은 워크스루에 필요한 구조화된 응답을 지원하지 않습니다.',
'walkthrough.blocked.chooseModel': '스몰 모델 선택',
'walkthrough.blocked.outputExhausted.title': '모델의 응답 예산이 바닥났습니다',
'walkthrough.blocked.outputExhausted.description': '{model}이(가) 출력 예산을 모두 추론에 쓰고 아무것도 반환하지 않았습니다. 추론 모델은 큰 diff에서 흔히 이렇게 됩니다. 덜 추론하는 모델을 고르거나 범위를 좁혀 보세요.',
'walkthrough.blocked.outputExhausted.descriptionUnknownModel': '스몰 모델이 출력 예산을 모두 추론에 쓰고 아무것도 반환하지 않았습니다. 추론 모델은 큰 diff에서 흔히 이렇게 됩니다. 덜 추론하는 모델을 고르거나 범위를 좁혀 보세요.',
'walkthrough.blocked.onlyGenerated.title': '생성된 파일만 변경되었습니다',
'walkthrough.blocked.onlyGenerated.description': '여기의 변경은 모두 잠금 파일이거나 도구가 만든 산출물이며, 리뷰는 이런 파일을 의도적으로 건너뜁니다.',
'walkthrough.blocked.contextTooSmall.descriptionUnknownModel': '스몰 모델은 약 {available}천 자를 담을 수 있는데 이 diff에는 약 {required}천 자가 필요합니다. 잘라내지 않으니 컨텍스트가 더 큰 모델을 선택하세요.',
'walkthrough.blocked.structuredOutput.descriptionUnknownModel': '스몰 모델은 워크스루에 필요한 구조화된 응답을 지원하지 않습니다.',
'contextRail.surface.plan.description': '현재 계획 보기',
'contextRail.surface.pr.description': '현재 브랜치의 풀 리퀘스트를 생성, 검토, 병합',
'contextRail.surface.notes.description': '프로젝트의 노트, 할 일, 계획',
'contextRail.surface.context.description': '세션 컨텍스트 및 토큰 사용량',
'contextRail.surface.browser.description': '내장 웹 브라우저',
'contextRail.surface.preview.description': '개발 서버 미리보기',
'contextRail.surface.chat.description': '나란히 연 세션',
'contextRail.surface.notes': '프로젝트 노트',
'contextRail.editorTree.toggle': '파일 트리 표시 전환',
'contextPanel.browser.open': '브라우저 패널 열기',
'contextPanel.browser.addressAria': '브라우저 주소',
'contextPanel.browser.empty': '웹 브라우저',
@@ -1118,6 +1249,7 @@ export const dict: Record<I18nKey, string> = {
'sidebarFilesTree.actions.newFileTitle': '새 파일',
'sidebarFilesTree.actions.newFolderTitle': '새 폴더',
'sidebarFilesTree.actions.refreshTitle': '새로고침',
'sidebarFilesTree.actions.collapseAllTitle': '모든 폴더 접기',
'sidebarFilesTree.actions.fileMenuTitle': '파일 메뉴',
'sidebarFilesTree.state.searching': '검색 중…',
'sidebarFilesTree.state.loading': '로드 중…',
@@ -1187,6 +1319,8 @@ export const dict: Record<I18nKey, string> = {
'filesView.editor.showControlsAria': '편집기 컨트롤 표시',
'filesView.editor.controlsTitle': '편집기 컨트롤',
'filesView.editor.pickFileFromTree': '트리에서 파일을 선택하세요.',
'filesView.editor.cannotPreviewBinary': '바이너리 파일을 미리볼 수 없음',
'filesView.editor.binaryFileDescription': '이 파일은 바이너리이므로 OpenChamber에서 편집할 수 없습니다. 다른 앱으로 열려면 다운로드하세요.',
'filesView.state.loading': '로드 중…',
'filesView.state.openingFileAtChange': '변경 위치에서 파일 여는 중…',
'filesView.tree.search.placeholder': '파일 검색…',
@@ -1469,6 +1603,8 @@ export const dict: Record<I18nKey, string> = {
'terminalView.quickKeys.tabAria': 'Tab',
'terminalView.quickKeys.controlLabel': 'Ctrl',
'terminalView.quickKeys.controlModifierAria': 'Control 수정키',
'terminalView.quickKeys.altLabel': 'Alt',
'terminalView.quickKeys.altModifierAria': 'Alt 수정키',
'terminalView.quickKeys.commandModifierAria': 'Command 수정키',
'terminalView.quickKeys.arrowUpAria': '위쪽 화살표',
'terminalView.quickKeys.arrowLeftAria': '왼쪽 화살표',
@@ -1477,13 +1613,6 @@ export const dict: Record<I18nKey, string> = {
'terminalView.quickKeys.enterAria': 'Enter',
'terminalView.tabs.closeTabTitle': '탭 닫기',
'terminalView.tabs.newTabTitle': '새 탭',
'terminalView.bottomDock.resizeAria': '터미널 패널 크기 조정',
'terminalView.bottomDock.restoreTitle': '터미널 패널 높이 복원',
'terminalView.bottomDock.restoreAria': '터미널 패널 높이 복원',
'terminalView.bottomDock.expandTitle': '펼치기 터미널 패널',
'terminalView.bottomDock.expandAria': '펼치기 터미널 패널',
'terminalView.bottomDock.closeTitle': '터미널 패널 닫기',
'terminalView.bottomDock.closeAria': '터미널 패널 닫기',
'terminalView.viewport.inputAria': '터미널 입력',
'directoryExplorerDialog.title': '프로젝트 디렉터리 추가',
'directoryExplorerDialog.description': '프로젝트로 추가할 폴더를 선택하세요.',
@@ -1561,10 +1690,9 @@ export const dict: Record<I18nKey, string> = {
'helpDialog.item.focusChatInput': '채팅 입력창으로 포커스 이동',
'helpDialog.item.togglePromptNavigator': '프롬프트 탐색기 표시/숨기기',
'helpDialog.item.abortActiveRun': '활성 실행 중단(두 번 누르기)',
'helpDialog.item.toggleRightSidebar': '오른쪽 사이드바 전환',
'helpDialog.item.openRightSidebarGitTab': '오른쪽 사이드바 Git 탭 열기',
'helpDialog.item.openRightSidebarFilesTab': '오른쪽 사이드바 파일 탭 열기',
'helpDialog.item.cycleRightSidebarTab': '오른쪽 사이드바 탭 순환',
'helpDialog.item.toggleRightSidebar': '컨텍스트 패널 표시 전환',
'helpDialog.item.openRightSidebarGitTab': 'Git 서피스 열기',
'helpDialog.item.openRightSidebarFilesTab': '파일 서피스 열기',
'helpDialog.item.toggleTerminalDock': '터미널 독 전환',
'helpDialog.item.toggleTerminalExpanded': '터미널 펼치기/접기',
'helpDialog.item.togglePlanContextPanel': '플랜 컨텍스트 패널 전환',
@@ -1744,6 +1872,7 @@ export const dict: Record<I18nKey, string> = {
'chat.draftPresets.weigh.label': 'Weigh my options',
'chat.draftPresets.plan.label': 'Start feature planning',
'chat.draftPresets.craftGoal.label': 'Goal 만들기',
'chat.draftPresets.scheduleTask.label': '작업 예약하기',
'chat.draftPresets.debug.label': 'Debug an issue',
'chat.draftPresets.review.label': 'Review my changes',
'chat.draftStarters.add': 'Add a starter',
@@ -1784,6 +1913,7 @@ export const dict: Record<I18nKey, string> = {
'chat.statusRow.todo.priority.low': '낮은 우선순위',
'chat.statusRow.actions.stopGeneratingAria': '생성 중지',
'chat.statusRow.tasksTitle': '작업',
'chat.statusRow.modelStatus': '{model} · {status}',
'chat.statusRow.summary.activeLeft': '{active}개 활성 · {left}개 남음',
'chat.statusRow.aborted': '중단됨',
'chat.revertIndicator.redo': '다시 실행',
@@ -1819,7 +1949,9 @@ export const dict: Record<I18nKey, string> = {
'chat.commandAutocomplete.command.handoffReviewDescription': '생성된 인수인계로 별도의 리뷰 세션을 만들거나 재사용합니다.',
'chat.commandAutocomplete.command.featurePlanDescription': '새 기능을 위한 대화형 가이드 계획 세션을 시작합니다.',
'chat.commandAutocomplete.command.craftGoalDescription': '아이디어나 작업을 명확하고 검증 가능한 Goal로 만듭니다.',
'chat.commandAutocomplete.command.scheduleTaskDescription': '안내형 대화를 통해 예약 작업을 정의합니다.',
'chat.chatInput.toast.craftGoalFailed': 'Goal 만들기를 시작하지 못했습니다',
'chat.chatInput.toast.scheduleTaskFailed': '예약 작업 설정을 시작하지 못했습니다',
'chat.commandAutocomplete.command.catchUpDescription': '맥락을 다시 파악합니다: 무엇을 하고 있었고 어디서 이어서 할지.',
'chat.commandAutocomplete.command.debugDescription': '수정안을 제시하기 전에 버그의 근본 원인을 단계적으로 조사합니다.',
'chat.commandAutocomplete.command.weighDescription': '결정하기 전에 2~3가지 접근 방식을 장단점과 함께 비교하고 추천을 제시합니다.',
@@ -1844,6 +1976,12 @@ export const dict: Record<I18nKey, string> = {
'chat.container.returnToParent.title': '상위 세션으로 돌아가기',
'chat.container.returnToParent.label': '상위',
'chat.container.readOnlySubagentPromptBanner': '하위 에이전트 세션에는 프롬프트를 보낼 수 없습니다.',
'chat.container.sessionLoadError.title': '세션을 불러올 수 없습니다',
'chat.container.sessionLoadError.description': '연결을 확인한 후 이 세션을 다시 불러오세요.',
'chat.container.sessionLoadError.retry': '다시 시도',
'sessions.sidebar.group.empty.loadingSessions': '세션을 불러오는 중…',
'sessions.sidebar.group.empty.loadFailed': '세션을 새로 고칠 수 없습니다.',
'sessions.sidebar.group.empty.retry': '다시 시도',
'chat.unifiedControls.title': '컨트롤',
'chat.unifiedControls.model.title': '모델',
'chat.unifiedControls.model.noRecent': '최근 모델 없음',
@@ -1888,6 +2026,9 @@ export const dict: Record<I18nKey, string> = {
'chat.messageBody.actions.fork': '여기서 분기 시작',
'chat.messageBody.actions.copyMessageAria': '메시지 텍스트 복사',
'chat.messageBody.actions.copyMessage': '메시지 복사',
'chat.messageBody.actions.pinContext': '컨텍스트에 고정(압축 후에도 유지)',
'chat.messageBody.actions.unpinContext': '컨텍스트에서 고정 해제(압축 후 유지되지 않음)',
'chat.messageBody.actions.contextPinFailed': '컨텍스트 고정을 업데이트하지 못했습니다',
'chat.messageBody.actions.copyAnswer': '답변 복사',
'chat.messageBody.actions.savingImage': '이미지 저장 중…',
'chat.messageBody.actions.saveAsImage': '이미지로 저장',
@@ -1975,6 +2116,7 @@ export const dict: Record<I18nKey, string> = {
'chat.chatInput.toast.addedFileMentions': '파일 멘션 {count}개 추가됨',
'chat.chatInput.toast.attachFileFailed': '첨부 파일 실패',
'chat.chatInput.toast.attachNamedFailed': '첨부 {name} 실패',
'chat.chatInput.toast.unsupportedAttachmentModalities': '{model}은(는) {files}에 필요한 {modalities} 입력을 지원하지 않습니다. 메시지를 보낼 수는 있지만 해당 첨부 파일이 무시될 수 있습니다.',
'chat.chatInput.toast.someFilesSkipped': '일부 파일을 건너뛰었습니다:\n{summary}',
'chat.chatInput.toast.vscodePickFailed': 'VS Code에서 파일 선택에 실패했습니다',
'chat.chatInput.toast.openSessionFirst': '먼저 세션을 여세요',
@@ -1996,21 +2138,6 @@ export const dict: Record<I18nKey, string> = {
'chat.chatInput.drop.insertMention': '여기에 놓아 멘션으로 추가',
'chat.chatInput.drop.attachFiles': '여기에 놓아 파일 첨부',
'chat.chatInput.fileFallback': '파일',
'chat.mobileStatus.editProjects.title': '편집 프로젝트',
'chat.mobileStatus.editProjects.footer': '항목을 드래그하여 순서를 바꾸거나 화살표로 이동하세요. 세부 정보는 편집을 탭해 변경하세요.',
'chat.mobileStatus.editProjects.empty': '편집할 프로젝트 없음',
'chat.mobileStatus.projects.empty': '프로젝트 없음',
'chat.mobileStatus.projects.addAria': '프로젝트 추가',
'chat.mobileStatus.projects.removeTitle': '프로젝트 제거',
'chat.mobileStatus.projects.removeDescriptionPrefix': '다음을 제거하시겠습니까:',
'chat.mobileStatus.projects.cancel': '취소',
'chat.mobileStatus.projects.remove': '제거',
'chat.mobileStatus.new': '새로 만들기',
'chat.mobileStatus.noSessionsInProject': '이 프로젝트에 세션 없음',
'chat.mobileStatus.swipeHint': '← 여기서 스와이프해 사이드바 열기 →',
'chat.mobileStatus.toast.addProjectFailed': '프로젝트 추가 실패',
'chat.mobileStatus.toast.selectValidDirectory': '유효한 디렉터리를 선택하세요.',
'chat.mobileStatus.toast.selectDirectoryFailed': '디렉터리 선택 실패',
'chat.toolOutputDialog.image.previousAria': '이전 이미지',
'chat.toolOutputDialog.image.nextAria': '다음 이미지',
'chat.toolOutputDialog.image.closeAria': '이미지 미리보기 닫기',
@@ -2165,7 +2292,6 @@ export const dict: Record<I18nKey, string> = {
'commandPalette.item.addProject': '프로젝트 추가',
'commandPalette.item.showSessionSwitcher': '세션 전환기 표시',
'commandPalette.item.toggleSidebar': '토글 사이드바',
'commandPalette.item.toggleRightSidebar': '오른쪽 사이드바 전환',
'commandPalette.item.showContextUsage': '컨텍스트 사용량 표시',
'commandPalette.item.toggleTerminal': '토글 터미널',
'commandPalette.item.openSettings': '설정... 열기',
@@ -2343,6 +2469,7 @@ export const dict: Record<I18nKey, string> = {
'projectActions.actions.addAction': '작업 추가',
'projectActions.actions.addNewAction': '새 작업 추가',
'projectActions.actions.autoDiscover': '자동 검색',
'projectActions.actions.autoDiscoverTooltip': '개발 서버를 자동으로 검색하고 실행합니다',
'projectActions.actions.chooseActionAria': '프로젝트 작업 선택',
'projectActions.actions.openPreview': '미리보기 열기',
'projectActions.actions.runNamedAria': '실행 {name}',
@@ -9,6 +9,9 @@ export const settingsDict = {
'settings.providers.page.openCodeGo.validate': 'Sprawdź',
'settings.providers.page.openCodeGo.delete': 'Usuń',
'settings.providers.page.quotaCredentials.saved': 'Dane uwierzytelniające {provider} zostały zapisane.',
'settings.providers.page.quotaCredentials.accessToken': 'Token dostępu',
'settings.providers.page.quotaCredentials.refreshToken': 'Token odświeżania',
'settings.providers.page.quotaCredentials.tokenPlaceholder': 'Wklej token',
'settings.providers.page.openCodeGo.saveFailed': 'Nie udało się sprawdzić danych OpenCode Go.',
'settings.providers.page.openCodeGo.valid': 'Dane OpenCode Go są prawidłowe.',
'settings.providers.page.openCodeGo.invalid': 'Dane OpenCode Go są nieprawidłowe lub wygasły.',
@@ -69,6 +72,33 @@ export const settingsDict = {
'settings.agents.page.section.identityRole': 'Tożsamość i Rola',
'settings.agents.page.section.modelParameters': 'Model i Parametry',
'settings.agents.page.section.systemPrompt': 'System Prompt',
'settings.agents.page.permissionsEditor.sectionInfo': 'Edytuje własne reguły uprawnień tego agenta dokładnie tak, jak są zapisane w jego konfiguracji. „Dziedzicz” pozostawia klucz nieustawiony — obowiązują konfiguracja globalna i domyślne.',
'settings.agents.page.permissionsEditor.defaultLabel': 'Domyślne dla wszystkich narzędzi',
'settings.agents.page.permissionsEditor.defaultAria': 'Domyślne uprawnienie dla wszystkich narzędzi',
'settings.agents.page.permissionsEditor.defaultInfo': 'Rezerwa na poziomie agenta (klucz *). Dotyczy narzędzi bez własnej reguły.',
'settings.agents.page.permissionsEditor.effectiveHint': '→ {action}',
'settings.agents.page.permissionsEditor.ruleCount': '{count} reguł',
'settings.agents.page.permissionsEditor.keyAria': 'Uprawnienie dla {key}',
'settings.agents.page.permissionsEditor.patternPlaceholder': 'Wzorzec, np. rm -rf * lub /path/**',
'settings.agents.page.permissionsEditor.patternActionAria': 'Akcja dla wzorca {key}',
'settings.agents.page.permissionsEditor.customKeyPlaceholder': 'Własny klucz uprawnienia…',
'settings.agents.page.permissionsEditor.sessionRulesTitle': 'Przyznane w sesji (niezapisane)',
'settings.agents.page.permissionsEditor.sessionRulesInfo': 'Reguły przyznane w trakcie sesji (odpowiedzi „zawsze zezwalaj”). Działają teraz, ale nie są częścią zapisanej konfiguracji i znikną po restarcie.',
'settings.agents.page.permissionsEditor.action.default': 'Domyślnie',
'settings.agents.page.permissionsEditor.action.inherit': 'Dziedzicz',
'settings.agents.page.permissionsEditor.action.allow': 'Zezwól',
'settings.agents.page.permissionsEditor.action.ask': 'Pytaj',
'settings.agents.page.permissionsEditor.action.deny': 'Odmów',
'settings.agents.page.permissionsEditor.actions.save': 'Zapisz uprawnienia',
'settings.agents.page.permissionsEditor.actions.discard': 'Odrzuć',
'settings.agents.page.permissionsEditor.actions.addRule': 'Dodaj regułę',
'settings.agents.page.permissionsEditor.actions.addKey': 'Dodaj klucz',
'settings.agents.page.permissionsEditor.actions.removeRuleAria': 'Usuń regułę',
'settings.agents.page.permissionsEditor.actions.retry': 'Ponów',
'settings.agents.page.permissionsEditor.state.loadFailed': 'Nie udało się wczytać konfiguracji uprawnień agenta.',
'settings.agents.page.permissionsEditor.toast.saved': 'Uprawnienia zapisane',
'settings.agents.page.permissionsEditor.toast.savedRestartRequired': 'Uprawnienia zapisane — uruchom ponownie serwer OpenCode, aby zastosować',
'settings.agents.page.permissionsEditor.toast.saveFailed': 'Nie udało się zapisać uprawnień',
'settings.agents.page.section.toolPermissions': 'Uprawnienia do narzędzi',
'settings.agents.page.subtitle.edit': 'Edytuj ustawienia agenta',
'settings.agents.page.subtitle.new': 'Skonfiguruj nową personę asystenta',
@@ -117,10 +147,15 @@ export const settingsDict = {
'settings.behavior.page.responseStyle.option.noFiller': 'Bez zbędnych treści',
'settings.behavior.page.responseStyle.option.pushback': 'Krytyczne podejście',
'settings.behavior.page.responseStyle.option.warmPeer': 'Przyjazny kolega',
'settings.behavior.page.responseStyle.preset': 'Preset',
'settings.behavior.page.responseStyle.preset': 'Predefiniowany styl',
'settings.behavior.page.responseStyle.tooltip': 'Jeśli jest włączone, instrukcje te określają sposób odpowiadania asystenta w każdej nowej rozmowie. Są one przesyłane z Twoją pierwszą wiadomością i nie zmieniają Twoich globalnych reguł AGENTS.md.',
'settings.behavior.page.section.responseStyle': 'Styl odpowiedzi',
'settings.behavior.page.section.systemPrompt': 'Globalny AGENTS.md',
'settings.behavior.page.section.systemPromptOptimization': 'Optymalizacja promptu systemowego',
'settings.behavior.page.systemPromptOptimization.enable': 'Optymalizuj rozmiar promptu systemowego',
'settings.behavior.page.systemPromptOptimization.enableAria': 'Optymalizuj rozmiar promptu systemowego OpenCode',
'settings.behavior.page.systemPromptOptimization.info': 'Zmniejsza prompt systemowy o około 40% dla agentów build i plan. Inni agenci pozostają bez zmian. Może to usunąć niestandardowe definicje zastępujące build lub plan, dlatego nie włączaj tej opcji w takich przepływach pracy. Zmiana zostanie zastosowana po ponownym uruchomieniu OpenCode.',
'settings.behavior.page.systemPromptOptimization.restarting': 'Ponowne uruchamianie OpenCode w celu zastosowania optymalizacji promptu systemowego…',
'settings.behavior.page.title': 'Zachowanie',
'settings.behavior.page.toast.saveFailed': 'Nie udało się zapisać zachowania',
'settings.behavior.page.toast.saved': 'Zachowanie zostało zapisane pomyślnie',
@@ -173,6 +208,7 @@ export const settingsDict = {
'settings.commands.sidebar.toast.renameFailed': 'Nie udało się zmienić nazwy polecenia',
'settings.commands.sidebar.toast.resetFailed': 'Nie udało się zresetować polecenia',
'settings.commands.sidebar.total': 'Suma: {count}',
'settings.common.infoAria': 'Więcej informacji',
'settings.common.actions.cancel': 'Anuluj',
'settings.common.actions.clear': 'Wyczyść',
'settings.common.actions.copyAll': 'Kopiuj wszystko',
@@ -184,6 +220,8 @@ export const settingsDict = {
'settings.common.actions.reset': 'Zresetuj',
'settings.common.actions.saveChanges': 'Zapisz zmiany',
'settings.common.actions.saving': 'Zapisywanie...',
'settings.common.status.saved': 'Zapisano',
'settings.common.status.saveFailed': 'Nie udało się zapisać',
'settings.common.badge.modified': 'Zmodyfikowano',
'settings.common.badge.new': 'Nowy',
'settings.common.field.description': 'Opis',
@@ -701,6 +739,10 @@ export const settingsDict = {
'settings.openchamber.defaults.smallModel.useDefault': 'Używaj domyślnego małego modelu',
'settings.openchamber.defaults.smallModel.useDefaultAria': 'Używaj domyślnego małego modelu',
'settings.openchamber.defaults.smallModel.overrideModel': 'Model zastępczy',
'settings.openchamber.defaults.walkthroughModel.title': 'Model przewodnika po zmianach',
'settings.openchamber.defaults.walkthroughModel.description': 'Przegląd zmian przez AI wymaga ustrukturyzowanej odpowiedzi i miejsca na całe różnice, czego tani mały model często nie zapewnia. Modele, które katalog zgłasza jako niezdolne do ustrukturyzowanej odpowiedzi, są tu ukryte. Bez wyboru używany jest mały model.',
'settings.openchamber.defaults.walkthroughModel.overrideModel': 'Model przewodnika',
'settings.openchamber.defaults.walkthroughModel.usesSmallModel': 'Mały model',
'settings.openchamber.defaults.field.thinkingPlaceholder': 'Myślenie',
'settings.openchamber.defaults.option.default': 'Domyślne',
'settings.openchamber.defaults.option.defaultLowercase': 'domyślne',
@@ -723,14 +765,19 @@ export const settingsDict = {
'settings.openchamber.desktopNetwork.field.launchAtLogin': 'Uruchamiaj OpenChamber przy logowaniu',
'settings.openchamber.desktopNetwork.field.launchAtLoginAria': 'Uruchamiaj OpenChamber przy logowaniu',
'settings.openchamber.desktopNetwork.field.launchAtLoginDescription': 'Uruchamia aplikację w tle bez otwierania okna. Otworzysz ją z ikony stanu na pulpicie.',
'settings.openchamber.desktopNetwork.field.macMenuBarAria': 'Pokazuj OpenChamber na pasku menu macOS',
'settings.openchamber.desktopNetwork.field.macMenuBar': 'Pokazuj OpenChamber na pasku menu',
'settings.openchamber.desktopNetwork.field.macMenuBarDescription': 'Wymaga ponownego uruchomienia aplikacji. Po wyłączeniu OpenChamber nie tworzy elementu paska menu ani nie uruchamia aktualizacji sesji, zatwierdzeń i użycia.',
'settings.openchamber.desktopNetwork.field.minimizeToTrayAria': 'Minimalizuj i zamykaj OpenChamber do zasobnika systemowego',
'settings.openchamber.desktopNetwork.field.minimizeToTray': 'Minimalizuj i zamykaj do zasobnika systemowego',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': 'Utrzymuje OpenChamber w zasobniku systemowym Windows, gdy główne okno jest zminimalizowane lub zamknięte.',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': 'Utrzymuje OpenChamber w zasobniku systemowym, gdy główne okno jest zminimalizowane lub zamknięte.',
'settings.openchamber.desktopNetwork.field.keepAwakeAria': 'Utrzymuj komputer aktywny, gdy OpenChamber jest uruchomiony',
'settings.openchamber.desktopNetwork.field.keepAwake': 'Utrzymuj komputer aktywny, gdy OpenChamber jest uruchomiony',
'settings.openchamber.desktopNetwork.field.keepAwakeDescription': 'Aby telefony nadal mogły otwierać tę aplikację. Ekran nadal może się wyłączyć.',
'settings.openchamber.desktopNetwork.field.warning': 'Ostrzeżenie: po włączeniu aplikacja jest dostępna dla każdego w tej samej sieci lokalnej.',
'settings.openchamber.desktopNetwork.field.passwordRequiredWarning': 'Dostęp LAN wymaga hasła UI pulpitu. Dopóki go nie ustawisz, aplikacja pulpitu uruchamia się tylko lokalnie.',
'settings.openchamber.desktopPassword.actions.showPassword': 'Pokaż hasło',
'settings.openchamber.desktopPassword.actions.hidePassword': 'Ukryj hasło',
'settings.openchamber.desktopPassword.field.password': 'Hasło UI pulpitu',
'settings.openchamber.desktopPassword.field.passwordPlaceholder': 'Hasło nie jest wymagane',
'settings.openchamber.desktopPassword.field.passwordDescription': 'OpenChamber pyta po restarcie, a potem po wygaśnięciu sesji logowania: po 12 godzinach albo po 7 dniach z opcją Zaufaj temu urządzeniu. Zostaw puste, aby wyłączyć logowanie.',
@@ -738,11 +785,15 @@ export const settingsDict = {
'settings.openchamber.desktopNetwork.hint.openNow': 'Otwórz z innego urządzenia: ',
'settings.openchamber.desktopNetwork.title': 'Dostęp sieciowy pulpitu',
'settings.openchamber.desktopNetwork.field.windowControlsPosition': 'Pozycja elementów sterujących oknem',
'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': 'Wybierz, gdzie mają się pojawiać przyciski minimalizacji, maksymalizacji i zamykania. Automatycznie dopasowuje się do systemu operacyjnego.',
'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': 'Wybierz, gdzie mają się pojawiać przyciski minimalizacji, maksymalizacji i zamykania. Domyślnie po prawej.',
'settings.openchamber.desktopNetwork.field.windowControlsPositionAria': 'Pozycja elementów sterujących oknem',
'settings.openchamber.desktopNetwork.option.windowControlsAuto': 'Automatycznie',
'settings.openchamber.desktopNetwork.option.windowControlsLeft': 'Lewo',
'settings.openchamber.desktopNetwork.option.windowControlsRight': 'Prawo',
'settings.openchamber.desktopNetwork.field.windowControls': 'Elementy sterujące oknem',
'settings.openchamber.desktopNetwork.field.windowControlsStyle': 'Styl',
'settings.openchamber.desktopNetwork.field.windowControlsStyleAria': 'Styl elementów sterujących oknem',
'settings.openchamber.desktopNetwork.option.windowControlsClassic': 'Klasyczny',
'settings.openchamber.desktopNetwork.option.windowControlsTrafficLights': 'Sygnalizacja świetlna',
'settings.openchamber.git.changesViewAria': 'Tryb widoku zmian Git',
'settings.openchamber.git.changesViewTitle': 'Widok zmian',
'settings.openchamber.git.enableGitmoji': 'Włącz wybieranie Gitmoji',
@@ -756,7 +807,6 @@ export const settingsDict = {
'settings.openchamber.keyboardShortcuts.action.cycle_favorite_model_backward.label': 'Przełącz ulubiony model wstecz',
'settings.openchamber.keyboardShortcuts.action.open_model_selector.label': 'Otwórz wybór modelu',
'settings.openchamber.keyboardShortcuts.action.cycle_favorite_model_forward.label': 'Przełącz ulubiony model w przód',
'settings.openchamber.keyboardShortcuts.action.cycle_right_sidebar_tab.label': 'Przełącz zakładkę prawego paska bocznego',
'settings.openchamber.keyboardShortcuts.action.cycle_services_tab.label': 'Przełącz zakładkę usług',
'settings.openchamber.keyboardShortcuts.action.cycle_theme.label': 'Przełącz motyw',
'settings.openchamber.keyboardShortcuts.action.cycle_agent.label': 'Przełącz agenta',
@@ -769,11 +819,11 @@ export const settingsDict = {
'settings.openchamber.keyboardShortcuts.action.open_command_palette.label': 'Otwórz paletę poleceń',
'settings.openchamber.keyboardShortcuts.action.open_go_to_line.label': 'Przejdź do linii (edytor plików)',
'settings.openchamber.keyboardShortcuts.action.open_help.label': 'Otwórz skróty klawiszowe',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': 'Otwórz zakładkę Pliki w prawym pasku bocznym',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': 'Otwórz zakładkę Git w prawym pasku bocznym',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': 'Otwórz powierzchnię plików',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': 'Otwórz powierzchnię Git',
'settings.openchamber.keyboardShortcuts.action.open_settings.label': 'Otwórz ustawienia',
'settings.openchamber.keyboardShortcuts.action.toggle_context_plan.label': 'Przełącz panel kontekstu planu',
'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': 'Przełącz prawy pasek boczny',
'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': 'Przełącz panel kontekstu',
'settings.openchamber.keyboardShortcuts.action.toggle_services_menu.label': 'Przełącz menu usług',
'settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label': 'Przełącz pasek boczny',
'settings.openchamber.keyboardShortcuts.action.toggle_terminal.label': 'Przełącz dokowanie terminala',
@@ -795,6 +845,9 @@ export const settingsDict = {
'settings.openchamber.opencodeCli.field.binaryPathPlaceholder': '/Users/you/.bun/bin/opencode',
'settings.openchamber.opencodeCli.field.showUpdateNotifications': 'Pokazuj powiadomienia o aktualizacjach OpenCode',
'settings.openchamber.opencodeCli.field.showUpdateNotificationsAria': 'Pokazuj powiadomienia o aktualizacjach OpenCode',
'settings.openchamber.opencodeCli.field.agentControlTool': 'Narzędzie sterowania dla agentów',
'settings.openchamber.opencodeCli.field.agentControlToolAria': 'Włącz narzędzie sterowania dla agentów',
'settings.openchamber.opencodeCli.field.agentControlToolInfo': 'Pozwól agentom orkiestrować Twoją pracę z czatu: tworzyć sesje i worktree, delegować prompty innym agentom oraz zarządzać zaplanowanymi zadaniami. Dodaje krótki opis narzędzia do każdej sesji. Zastosowane po Save + Reload.',
'settings.openchamber.opencodeCli.tipMiddle': 'zmienna środowiskowa, ale to ustawienie jest zapisywane w',
'settings.openchamber.opencodeCli.tipPrefix': 'Wskazówka: możesz również użyć',
'settings.openchamber.opencodeCli.title': 'OpenCode CLI',
@@ -915,7 +968,7 @@ export const settingsDict = {
'settings.openchamber.tunnel.state.noExpiry': 'Bez wygaśnięcia',
'settings.openchamber.tunnel.state.revoked': 'Unieważniony',
'settings.openchamber.tunnel.state.tunnelReady': 'Tunel gotowy',
'settings.openchamber.tunnel.title': 'Zdalny Tunel',
'settings.openchamber.tunnel.title': 'Tunel zewnętrzny',
'settings.openchamber.tunnel.toast.addManagedRemoteTokenBeforeStarting': 'Dodaj token tunelu managed remote przed uruchomieniem',
'settings.openchamber.tunnel.toast.checkAvailabilityFailed': 'Nie udało się sprawdzić dostępności tunelu',
'settings.openchamber.tunnel.toast.connectLinkCopied': 'Link połączenia został skopiowany',
@@ -1026,6 +1079,8 @@ export const settingsDict = {
'settings.openchamber.visual.field.showSplitAssistantMessageActionsTooltip': 'Pokaż Kopiuj odpowiedź, Zapisz jako obraz i Odczytaj na głos w blokach tekstu asystenta, które pojawiają się przed późniejszymi wywołaniami narzędzi w tej samej odpowiedzi.',
'settings.openchamber.visual.field.allowPromptingSubagentSessionsAria': 'Zezwalaj na wysyłanie promptów do sesji podagentów',
'settings.openchamber.visual.field.allowPromptingSubagentSessions': 'Zezwalaj na prompty w sesjach podagentów',
'settings.openchamber.visual.field.draftStartersVisible': 'Pokazuj startery na ekranie nowej sesji',
'settings.openchamber.visual.field.draftStartersVisibleAria': 'Pokazuj startery na ekranie nowej sesji',
'settings.openchamber.visual.field.showToolFileIcons': 'Pokaż ikony plików narzędzi',
'settings.openchamber.visual.field.showToolFileIconsAria': 'Pokaż ikony plików narzędzi',
'settings.openchamber.visual.field.codeBlockLineWrapAria': 'Zawijaj wiersze bloków kodu',
@@ -1039,7 +1094,15 @@ export const settingsDict = {
'settings.openchamber.visual.field.promptNavigatorEnabled': 'Nawigator promptów',
'settings.openchamber.visual.field.expandedEditorToolbarAria': 'Always show editor toolbar',
'settings.openchamber.visual.field.expandedEditorToolbar': 'Always show editor toolbar (docked under the file tabs)',
'settings.openchamber.visual.field.autoSaveEnabledAria': 'Autozapis plików',
'settings.openchamber.visual.field.autoSaveEnabled': 'Autozapis plików',
'settings.openchamber.visual.field.autoSaveEnabledInfo': 'Automatycznie zapisuje edycje pliku po zatrzymaniu pisania. Wyłącz, aby wymagać ręcznego zapisu.',
'settings.openchamber.visual.field.terminalFontSize': 'Rozmiar czcionki terminala',
'settings.openchamber.visual.field.terminalShell': 'Powłoka terminala',
'settings.openchamber.visual.field.terminalShellAria': 'Wybierz powłokę terminala',
'settings.openchamber.visual.field.terminalShellHint': 'Uruchom terminal ponownie, aby zastosować tę zmianę w bieżącej sesji.',
'settings.openchamber.visual.field.terminalLoginShell': 'Uruchamiaj jako powłokę logowania',
'settings.openchamber.visual.option.terminalShell.auto': 'Automatycznie',
'settings.openchamber.visual.field.editorFontSize': 'Rozmiar czcionki edytora',
'settings.openchamber.visual.field.terminalQuickKeys': 'Szybkie klawisze terminala',
'settings.openchamber.visual.field.terminalQuickKeysAria': 'Szybkie klawisze terminala',
@@ -1085,8 +1148,11 @@ export const settingsDict = {
'settings.openchamber.visual.option.pwaOrientation.system.description': 'Uwzględniaj ustawienie obrotu urządzenia.',
'settings.openchamber.visual.option.pwaOrientation.system.label': 'Zgodnie z systemem',
'settings.openchamber.visual.option.themeMode.dark': 'Ciemny',
'settings.openchamber.visual.option.themeMode.dark.description': 'Zawsze używaj ciemnego wyglądu',
'settings.openchamber.visual.option.themeMode.light': 'Jasny',
'settings.openchamber.visual.option.themeMode.light.description': 'Zawsze używaj jasnego wyglądu',
'settings.openchamber.visual.option.themeMode.system': 'Systemowy',
'settings.openchamber.visual.option.themeMode.system.description': 'Zgodnie z ustawieniem systemu',
'settings.openchamber.visual.option.timeFormat.12h.description': 'Pokazuj czas jako 02:15 PM.',
'settings.openchamber.visual.option.timeFormat.12h.label': '12-godzinny',
'settings.openchamber.visual.option.timeFormat.24h.description': 'Pokazuj czas jako 14:15.',
@@ -1106,7 +1172,11 @@ export const settingsDict = {
'settings.openchamber.visual.section.activityDefaultAria': 'Domyślny tryb aktywności',
'settings.openchamber.visual.section.chatRenderMode': 'Tryb renderowania czatu',
'settings.openchamber.visual.section.chatRenderModeAria': 'Tryb renderowania czatu',
'settings.openchamber.visual.section.chatDisplay': 'Wyświetlanie',
'settings.openchamber.visual.section.chatMessageOptions': 'Opcje wiadomości',
'settings.openchamber.visual.section.chatFeatures': 'Funkcje',
'settings.openchamber.visual.section.colorMode': 'Tryb kolorów',
'settings.openchamber.visual.section.colorModeAndTheme': 'Tryb kolorów i motyw',
'settings.openchamber.visual.section.mobileLayout': 'Układ mobilny',
'settings.openchamber.visual.option.mobileLayout.default': 'Poprzedni',
'settings.openchamber.visual.option.mobileLayout.new': 'Nowy',
@@ -1118,13 +1188,15 @@ export const settingsDict = {
'settings.openchamber.visual.section.messageStreamTransport': 'Transport strumienia wiadomości',
'settings.openchamber.visual.section.navigation': 'Nawigacja',
'settings.openchamber.visual.section.privacy': 'Prywatność',
'settings.openchamber.visual.section.showToolsOpenedByDefault': 'Pokaż narzędzia domyślnie otwarte:',
'settings.openchamber.visual.section.showToolsOpenedByDefault': 'Pokaż narzędzia domyślnie otwarte',
'settings.openchamber.visual.section.sessionAssistance': 'Wsparcie sesji',
'settings.openchamber.visual.section.reasoning': 'Rozumowanie',
'settings.openchamber.visual.section.messageAppearance': 'Wygląd wiadomości',
'settings.openchamber.visual.section.toolsAndFiles': 'Narzędzia i pliki',
'settings.openchamber.visual.section.composer': 'Pole wiadomości',
'settings.openchamber.visual.section.spacingAndLayout': 'Odstępy i układ',
'settings.openchamber.visual.section.densityAndType': 'Gęstość i typografia',
'settings.openchamber.visual.section.appInstall': 'Instalacja aplikacji',
'settings.openchamber.visual.section.userMessageRendering': 'Renderowanie wiadomości użytkownika',
'settings.openchamber.visual.section.userMessageRenderingAria': 'Tryb renderowania wiadomości użytkownika',
'settings.openchamber.worktrees.list.deleteWorktreeAria': 'Usuń worktree {name}',
@@ -1132,7 +1204,7 @@ export const settingsDict = {
'settings.openchamber.worktrees.list.empty': 'Nie znaleziono worktree dla tego projektu',
'settings.openchamber.worktrees.list.loading': 'Ładowanie worktree...',
'settings.openchamber.worktrees.list.title': 'Istniejące worktree',
'settings.openchamber.worktrees.list.tooltip': 'Worktree znajdują się poza repozytorium i są zarządzane przez OpenCode. Usunięcie worktree usuwa także powiązane sesje.',
'settings.openchamber.worktrees.list.tooltip': 'Usunięcie worktree usuwa także powiązane sesje.',
'settings.openchamber.worktrees.setup.addCommand': 'Dodaj polecenie',
'settings.openchamber.worktrees.setup.commandPlaceholder': 'np. bun install',
'settings.openchamber.worktrees.setup.loading': 'Ładowanie...',
@@ -1147,22 +1219,31 @@ export const settingsDict = {
'settings.openchamber.worktrees.state.selectProject': 'Wybierz projekt, aby zarządzać worktree.',
'settings.page.agents.title': 'Agenci',
'settings.page.appearance.title': 'Wygląd',
'settings.page.appearance.description': 'Dostosuj wygląd i odczucie OpenChamber.',
'settings.page.behavior.title': 'Zachowanie',
'settings.page.behavior.description': 'Kieruj sposobem, w jaki agent odpowiada.',
'settings.page.chat.title': 'Czat',
'settings.page.chat.description': 'Skonfiguruj sposób wyświetlania wiadomości i narzędzi.',
'settings.page.commands.title': 'Polecenia',
'settings.page.git.title': 'Git',
'settings.page.magicPrompts.title': 'Magiczne Prompty',
'settings.page.mcp.title': 'MCP',
'settings.page.plugins.title': 'Plugins',
'settings.page.notifications.title': 'Powiadomienia',
'settings.page.notifications.description': 'Wybierz, kiedy i jak otrzymywać powiadomienia.',
'settings.page.projects.title': 'Projekty',
'settings.page.providers.title': 'Dostawcy',
'settings.page.remoteInstances.title': 'Zdalne instancje',
'settings.page.general.title': 'Ogólne',
'settings.page.general.description': 'Uruchamianie aplikacji, bezpieczeństwo, połączenie i prywatność.',
'settings.page.sessions.title': 'Sesje',
'settings.page.sessions.description': 'Ustaw wartości domyślne i retencję sesji.',
'settings.page.shortcuts.title': 'Skróty',
'settings.page.shortcuts.description': 'Dostosuj skróty klawiszowe.',
'settings.page.skills.title': 'Umiejętności',
'settings.page.skillsCatalog.title': 'Katalog umiejętności',
'settings.page.tunnel.title': 'Zdalny Tunel',
'settings.page.tunnel.title': 'Tunel zewnętrzny',
'settings.page.tunnel.description': 'Udostępnij tę instancję przez zdalny tunel.',
'settings.page.about.title': 'O aplikacji',
'settings.page.snippets.title': 'Fragmenty',
'settings.snippets.sidebar.title': 'Fragmenty',
@@ -1222,6 +1303,7 @@ export const settingsDict = {
'settings.promptTemplates.page.toast.saveUnexpectedError': 'Wystąpił nieoczekiwany błąd podczas zapisywania',
'settings.page.usage.title': 'Użycie',
'settings.page.voice.title': 'Głos',
'settings.page.voice.description': 'Skonfiguruj mowę i dyktowanie.',
'settings.projects.actions.actions.add': 'Dodaj akcję',
'settings.projects.actions.actions.save': 'Zapisz akcje',
'settings.projects.actions.description': 'Polecenia dla projektu wyświetlane w nagłówku obok nazwy projektu.',
@@ -1836,6 +1918,10 @@ export const settingsDict = {
'settings.view.search.aria': 'Szukaj ustawień',
'settings.view.search.clear': 'Wyczyść wyszukiwanie ustawień',
'settings.view.search.noResults': 'Brak pasujących ustawień',
'settings.view.nav.group.general': 'OpenChamber',
'settings.view.nav.group.projects': 'Przestrzeń robocza',
'settings.view.nav.group.opencode': 'OpenCode',
'settings.view.nav.group.content': 'Biblioteka',
'settings.view.badge.beta': 'beta',
'settings.view.home.cards.agents.description': 'Prompty, narzędzia, uprawnienia',
'settings.view.home.cards.agents.title': 'Agenci',
@@ -1894,6 +1980,7 @@ export const settingsDict = {
'settings.voice.page.preview.customServerLine': 'Cześć! To jest podgląd własnego serwera TTS.',
'settings.voice.page.preview.voiceLine': 'Cześć! Jestem {voiceName}. Tak brzmi mój głos.',
'settings.voice.page.provider.browser': 'Przeglądarka',
'settings.voice.page.provider.openai': 'OpenAI',
'settings.voice.page.provider.custom': 'Własny',
'settings.voice.page.provider.say': 'Say',
'settings.voice.page.provider.server': 'Serwer',
+170 -43
View File
@@ -3,6 +3,15 @@ import { settingsDict } from './pl.settings';
export const dict: Record<I18nKey, string> = {
...settingsDict,
'terminalView.actions.attachSelection': 'Dołącz zaznaczone dane wyjściowe',
'terminalView.actions.restart': 'Uruchom terminal ponownie',
'chat.message.terminalContext': '{terminal}, wiersze {start}-{end}',
'chat.chatInput.terminalContext': '{terminal}, wiersze {start}-{end}',
'chat.chatInput.terminalContextRemove': 'Usuń kontekst terminala',
'chat.chatInput.prCommentContext': 'Komentarze PR',
'chat.chatInput.prCommentContextRemove': 'Usuń kontekst komentarzy PR',
'chat.chatInput.prCheckContext': 'Nieudane kontrole PR',
'chat.chatInput.prCheckContextRemove': 'Usuń kontekst kontroli PR',
'common.loading': 'Ładowanie...',
'common.unavailable': 'Niedostępne',
@@ -45,6 +54,9 @@ export const dict: Record<I18nKey, string> = {
'mobile.connect.unlockButton': 'Odblokuj i połącz',
'mobile.connect.cancelPassword': 'Użyj innego serwera',
'mobile.connect.connecting': 'Łączenie...',
'mobile.connect.notice.unreachable': 'Nie udało się połączyć z {label}. Sprawdź, czy serwer działa.',
'mobile.connect.notice.authExpired': 'Dostęp do {label} wygasł lub został cofnięty. Zaloguj się ponownie.',
'mobile.connect.recovery.description': 'Nie udało się połączyć z zapisanym serwerem. Sprawdź, czy działa, albo wybierz inną instancję.',
'mobile.connect.scanQr': 'Skanuj kod QR',
'mobile.connect.welcome.scanHint': 'Na komputerze otwórz «Dodaj urządzenie», aby wyświetlić kod QR, i zeskanuj go tutaj.',
'mobile.connect.advanced': 'Zaawansowane',
@@ -80,14 +92,14 @@ export const dict: Record<I18nKey, string> = {
'mobile.nav.changes': 'Zmiany',
'mobile.nav.settings': 'Ustawienia',
'mobile.surface.closeAria': 'Zamknij',
'mobile.header.openMenuAria': 'Otwórz menu',
'mobile.header.openWorkspaceAria': 'Otwórz panel roboczy',
'mobile.header.openMetadataAria': 'Otwórz metadane sesji',
'mobile.header.metadata.context': 'Kontekst',
'mobile.header.metadata.branch': 'Gałąź',
'mobile.header.metadata.usage': 'Użycie',
'mobile.menu.titleAria': 'Narzędzia obszaru roboczego',
'mobile.menu.files': 'Pliki',
'mobile.menu.changes': 'Zmiany',
'mobile.menu.terminal': 'Terminal',
'mobile.menu.mcp': 'MCP',
'mobile.menu.instances': 'Instancje',
'mobile.menu.update': 'Aktualizuj',
@@ -114,17 +126,19 @@ export const dict: Record<I18nKey, string> = {
'mobile.sessions.newChat': 'Nowy czat',
'mobile.sessions.editOrder': 'Zmień kolejność projektów',
'mobile.sessions.doneEditing': 'Gotowe',
'mobile.sessions.editOrderHint': 'Przeciągnij uchwyt lub użyj strzałek, aby zmienić kolejność. Naciśnij znacznik, aby zakończyć.',
'mobile.sessions.editOrderHint': 'Przeciągnij uchwyt, aby zmienić kolejność projektów. Stuknij projekt, aby pokazać jego worktree i również je przeciągać. Stuknij znacznik, aby zakończyć.',
'mobile.sessions.dragHandleAria': 'Przeciągnij {label}, aby zmienić kolejność',
'mobile.sessions.moveUpAria': 'Przenieś {label} w górę',
'mobile.sessions.moveDownAria': 'Przenieś {label} w dół',
'mobile.sessions.removeProjectAria': 'Usuń {label}',
'mobile.sessions.cancelRemoveProjectAria': 'Anuluj usuwanie {label}',
'mobile.sessions.confirmRemoveProject': 'Zamknij',
'mobile.sessions.confirmRemoveProjectAria': 'Potwierdź usunięcie {label}',
'mobile.sessions.toast.projectRemoved': 'Usunięto {label}',
'mobile.sessions.archiveSessionAria': 'Zarchiwizuj {title}',
'mobile.sessions.cancelArchiveAria': 'Anuluj archiwizację {title}',
'mobile.sessions.renameSessionAria': 'Zmień nazwę {title}',
'mobile.sessions.renameError': 'Nie udało się zmienić nazwy sesji',
'mobile.sessions.deleteSessionAria': 'Usuń {title}',
'mobile.sessions.confirmDeleteSessionAria': 'Potwierdź usunięcie {title}',
'mobile.sessions.editProjectAria': 'Edytuj {label}',
'mobile.projectEdit.worktreesTitle': 'Worktree',
'mobile.projectEdit.worktreesEmpty': 'Ten projekt nie ma jeszcze worktree.',
@@ -171,6 +185,8 @@ export const dict: Record<I18nKey, string> = {
'mobile.files.copyPathAria': 'Kopiuj ścieżkę pliku',
'mobile.files.copyContent': 'Kopiuj zawartość',
'mobile.files.copyContentAria': 'Kopiuj zawartość pliku',
'mobile.files.editAria': 'Edytuj plik',
'mobile.files.doneEditingAria': 'Zakończ edycję',
'mobile.files.toast.pathCopied': 'Ścieżka skopiowana',
'mobile.files.toast.contentCopied': 'Zawartość skopiowana',
'mobile.files.toast.copyFailed': 'Kopiowanie nie powiodło się',
@@ -227,6 +243,28 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.empty.noMatches.title': 'Brak pasujących sesji',
'sessions.sidebar.empty.noMatches.description': 'Spróbuj innego tytułu, gałęzi, folderu lub ścieżki.',
'sessions.sidebar.activity.recentTitle': 'ostatnie',
'sessions.archivePage.allDirectories': 'Wszystkie katalogi',
'sessions.sidebar.header.displayMode.stickyHeaders': 'Przyklejone nagłówki projektów',
'sessions.sidebar.header.grouping.label': 'Grupowanie sesji',
'sessions.sidebar.header.grouping.byWorktree': 'Według worktree',
'sessions.sidebar.header.grouping.flat': 'Płaska lista',
'sessions.sidebar.project.actions.manageWorktrees': 'Zarządzaj worktree',
'sessions.worktreesPage.title': 'Worktree w {project}',
'sessions.worktreesPage.description': 'Twórz, przeglądaj i usuwaj worktree gita tego projektu.',
'sessions.worktreesPage.closeAria': 'Zamknij worktree',
'sessions.scheduledTasks.page.closeAria': 'Zamknij zaplanowane zadania',
'sessions.sidebar.nav.archive': 'Archiwum',
'sessions.archivePage.title': 'Archiwum',
'sessions.archivePage.countSingle': '{count} zarchiwizowana sesja',
'sessions.archivePage.countPlural': '{count} zarchiwizowanych sesji',
'sessions.archivePage.closeAria': 'Zamknij archiwum',
'sessions.archivePage.searchPlaceholder': 'Szukaj zarchiwizowanych sesji',
'sessions.archivePage.empty.noArchived': 'Brak zarchiwizowanych sesji',
'sessions.archivePage.empty.noMatches': 'Brak pasujących zarchiwizowanych sesji',
'sessions.archivePage.otherProjects': 'inne projekty',
'sessions.archivePage.deleteProject': 'Usuń wszystkie zarchiwizowane sesje tego projektu',
'sessions.archivePage.deleteProjectAria': 'Usuń wszystkie zarchiwizowane sesje w {label}',
'sessions.archivePage.deleteSessionAria': 'Usuń {title}',
'sessions.switcher.openAria': 'Otwórz przełącznik sesji',
'sessions.switcher.empty': 'Brak ostatnich sesji',
'sessions.switcher.draftTitle': 'Nowa sesja',
@@ -247,6 +285,10 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.project.actions.edit': 'Edytuj',
'sessions.sidebar.project.actions.newDraftSession': 'Nowa sesja robocza',
'sessions.sidebar.session.menu.rename': 'Zmień nazwę',
'sessions.sidebar.session.menu.copyId': 'Kopiuj ID sesji',
'sessions.sidebar.session.copyId.success': 'Skopiowano ID sesji',
'sessions.sidebar.session.copyId.error': 'Nie udało się skopiować ID sesji',
'header.sessionActions.openAria': 'Otwórz działania sesji',
'sessions.sidebar.session.rename.save': 'Zapisz nazwę sesji',
'sessions.sidebar.session.rename.cancel': 'Anuluj zmianę nazwy sesji',
'sessions.sidebar.session.menu.unpin': 'Odepnij sesję',
@@ -256,6 +298,12 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.menu.copyLink': 'Kopiuj link',
'sessions.sidebar.session.menu.unshare': 'Cofnij udostępnienie',
'sessions.sidebar.session.menu.exportMarkdown': 'Eksportuj Markdown',
'sessions.sidebar.session.menu.moveToWorktree': 'Przenieś do nowego worktree',
'sessions.sidebar.session.moveToWorktree.success': 'Sesja została przeniesiona do nowego worktree',
'sessions.sidebar.session.moveToWorktree.failed': 'Nie udało się przenieść sesji do nowego worktree',
'sessions.sidebar.session.moveToWorktree.tooltip': 'Tworzy nowy worktree z bieżącej gałęzi, przenosi niezacommitowane zmiany oraz tę sesję i jej podsesje.',
'sessions.sidebar.session.moveToWorktree.tooltipBusy': 'Dostępne, gdy sesja jest bezczynna. Zatrzymaj bieżącą aktywność lub poczekaj na jej zakończenie.',
'sessions.sidebar.session.moveToWorktree.tooltipMoving': 'Ta sesja jest już przenoszona do nowego worktree.',
'sessions.sidebar.session.menu.runFusion': 'Uruchom fusion',
'sessions.sidebar.session.menu.openInSidePanel': 'Otwórz w panelu bocznym',
'sessions.sidebar.session.actions.openInEditor': 'Otwórz w edytorze',
@@ -263,6 +311,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.menu.label': 'Menu sesji',
'sessions.sidebar.session.untitled': 'Nienazwana Sesja',
'sessions.sidebar.session.export.nothingToExport': 'Brak danych do eksportu',
'sessions.sidebar.session.export.failedLoadHistory': 'Nie udało się wczytać pełnej historii sesji',
'sessions.sidebar.session.export.success': 'Sesja wyeksportowana',
'sessions.sidebar.session.export.failedRevealPath': 'Nie udało się ujawnić ścieżki',
'sessions.sidebar.session.export.untitledSubagent': 'Nienazwane Pod-agent',
@@ -379,6 +428,8 @@ export const dict: Record<I18nKey, string> = {
'sessions.scheduledTasks.editor.goal.aria': 'Uruchom to zadanie jako cel, do którego agent dąży aż do ukończenia',
'sessions.scheduledTasks.editor.goal.budgetLabel': 'Budżet tokenów',
'sessions.scheduledTasks.editor.goal.budgetAria': 'Ogranicz cel budżetem tokenów',
'sessions.scheduledTasks.editor.permissionAutoAccept.label': 'Automatycznie akceptuj uprawnienia',
'sessions.scheduledTasks.editor.permissionAutoAccept.aria': 'Uruchom sesję zadania z włączonym automatycznym akceptowaniem uprawnień',
'sessions.scheduledTasks.editor.actions.closeAria': 'Zamknij',
'sessions.scheduledTasks.editor.actions.cancel': 'Anuluj',
'sessions.scheduledTasks.editor.actions.save': 'Zapisz',
@@ -471,6 +522,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.status.active': 'Sesja aktywna',
'sessions.sidebar.session.status.unread': 'Nieprzeczytane aktualizacje',
'sessions.sidebar.session.status.pinned': 'Przypięta sesja',
'sessions.sidebar.session.status.movingToWorktree': 'Przenoszenie sesji do nowego worktree',
'sessions.sidebar.session.status.permissionRequired': 'Wymagane uprawnienie',
'sessions.sidebar.session.subsessions.collapse': 'Zwiń pod-sesje',
'sessions.sidebar.session.subsessions.expand': 'Rozwiń pod-sesje',
@@ -512,7 +564,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': 'Ta akcja trwale usuwa {count} sesji z {dateLabel}.',
'sessions.sidebar.dialogs.sessionList.more': '+{count} więcej',
'sessions.sidebar.session.share.successTitle': 'Sesja udostępniona',
'sessions.sidebar.session.share.successDescription': 'Możesz skopiować link z menu.',
'sessions.sidebar.session.share.successDescription': 'Link udostępniania skopiowano do schowka.',
'sessions.sidebar.session.share.error': 'Nie można udostępnić sesji',
'sessions.sidebar.session.share.copyUrlError': 'Nie udało się skopiować URL',
'sessions.sidebar.session.unshare.success': 'Cofnięto udostępnienie sesji',
@@ -634,6 +686,7 @@ export const dict: Record<I18nKey, string> = {
'chat.draftPresets.weigh.label': 'Weigh my options',
'chat.draftPresets.plan.label': 'Start feature planning',
'chat.draftPresets.craftGoal.label': 'Utwórz Goal',
'chat.draftPresets.scheduleTask.label': 'Zaplanuj zadanie',
'chat.draftPresets.debug.label': 'Debug an issue',
'chat.draftPresets.review.label': 'Review my changes',
'chat.draftStarters.add': 'Add a starter',
@@ -674,6 +727,7 @@ export const dict: Record<I18nKey, string> = {
'chat.statusRow.todo.priority.low': 'Niski priorytet',
'chat.statusRow.actions.stopGeneratingAria': 'Zatrzymaj generowanie',
'chat.statusRow.tasksTitle': 'Zadania',
'chat.statusRow.modelStatus': '{model} · {status}',
'chat.statusRow.summary.activeLeft': '{active} aktywne · {left} pozostało',
'chat.statusRow.aborted': 'Przerwane',
'chat.revertIndicator.redo': 'Ponów',
@@ -708,7 +762,9 @@ export const dict: Record<I18nKey, string> = {
'chat.commandAutocomplete.command.handoffReviewDescription': 'Utwórz lub użyj ponownie osobnej sesji przeglądu z wygenerowanego handoffu.',
'chat.commandAutocomplete.command.featurePlanDescription': 'Rozpocznij prowadzoną, interaktywną sesję planowania nowej funkcji.',
'chat.commandAutocomplete.command.craftGoalDescription': 'Przekształć pomysł lub zadanie w jasny, weryfikowalny Goal.',
'chat.commandAutocomplete.command.scheduleTaskDescription': 'Zdefiniuj zaplanowane zadanie w prowadzonym dialogu.',
'chat.chatInput.toast.craftGoalFailed': 'Nie udało się rozpocząć tworzenia Goal',
'chat.chatInput.toast.scheduleTaskFailed': 'Nie udało się rozpocząć konfiguracji zaplanowanego zadania',
'chat.commandAutocomplete.command.catchUpDescription': 'Przywróć kontekst: nad czym pracowałeś i od czego kontynuować.',
'chat.commandAutocomplete.command.debugDescription': 'Prowadzone badanie pierwotnej przyczyny błędu przed zaproponowaniem poprawki.',
'chat.commandAutocomplete.command.weighDescription': 'Rozważ 2-3 podejścia z kompromisami i rekomendacją, zanim się zdecydujesz.',
@@ -733,6 +789,12 @@ export const dict: Record<I18nKey, string> = {
'chat.container.returnToParent.title': 'Powrót do sesji nadrzędnej',
'chat.container.returnToParent.label': 'Nadrzędna',
'chat.container.readOnlySubagentPromptBanner': 'Sesje podagentów nie mogą otrzymywać promptów.',
'chat.container.sessionLoadError.title': 'Nie udało się wczytać sesji',
'chat.container.sessionLoadError.description': 'Sprawdź połączenie i spróbuj ponownie wczytać tę sesję.',
'chat.container.sessionLoadError.retry': 'Spróbuj ponownie',
'sessions.sidebar.group.empty.loadingSessions': 'Wczytywanie sesji…',
'sessions.sidebar.group.empty.loadFailed': 'Nie udało się odświeżyć sesji.',
'sessions.sidebar.group.empty.retry': 'Spróbuj ponownie',
'chat.unifiedControls.title': 'Kontrolki',
'chat.unifiedControls.model.title': 'Model',
'chat.unifiedControls.model.noRecent': 'Brak ostatnich modeli',
@@ -777,6 +839,9 @@ export const dict: Record<I18nKey, string> = {
'chat.messageBody.actions.fork': 'Rozwidl od tego miejsca',
'chat.messageBody.actions.copyMessageAria': 'Kopiuj tekst wiadomości',
'chat.messageBody.actions.copyMessage': 'Kopiuj wiadomość',
'chat.messageBody.actions.pinContext': 'Przypnij do kontekstu (przetrwa kompakcję)',
'chat.messageBody.actions.unpinContext': 'Odepnij od kontekstu (nie przetrwa kompakcji)',
'chat.messageBody.actions.contextPinFailed': 'Nie udało się zaktualizować przypięcia w kontekście',
'chat.messageBody.actions.openPreviewAria': 'Otwórz podgląd',
'chat.messageBody.actions.openPreview': 'Otwórz podgląd',
'chat.messageBody.actions.copyAnswer': 'Kopiuj odpowiedź',
@@ -1144,6 +1209,7 @@ export const dict: Record<I18nKey, string> = {
'chat.chatInput.toast.addedFileMentions': 'Dodano {count} wzmianek o plikach',
'chat.chatInput.toast.attachFileFailed': 'Nie udało się dołączyć pliku',
'chat.chatInput.toast.attachNamedFailed': 'Nie udało się dołączyć {name}',
'chat.chatInput.toast.unsupportedAttachmentModalities': 'Model {model} nie obsługuje danych wejściowych {modalities} wymaganych przez {files}. Nadal możesz wysłać wiadomość, ale te załączniki mogą zostać zignorowane.',
'chat.chatInput.toast.attachmentsTooLarge': 'Załączniki są zbyt duże, aby je wysłać. Spróbuj zmniejszyć liczbę lub rozmiar obrazów.',
'chat.chatInput.toast.clipboardAttachFailed': 'Nie udało się dołączyć obrazu ze schowka',
'chat.chatInput.toast.compactFailed': 'Nie udało się skompaktować sesji',
@@ -1178,21 +1244,6 @@ export const dict: Record<I18nKey, string> = {
'chat.reasoningTrace.expandAria': 'Rozwiń ślad rozumowania',
'chat.reasoningTrace.collapseAria': 'Zwiń ślad rozumowania',
'chat.reasoningTrace.thought': 'Przemyślał',
'chat.mobileStatus.editProjects.empty': 'Brak projektów do edycji',
'chat.mobileStatus.editProjects.footer': 'Przeciągnij elementy, aby zmienić kolejność, lub użyj strzałek do przesuwania. Dotknij „edytuj”, aby zmienić szczegóły.',
'chat.mobileStatus.editProjects.title': 'Edytuj projekty',
'chat.mobileStatus.new': 'Nowy',
'chat.mobileStatus.noSessionsInProject': 'Brak sesji w tym projekcie',
'chat.mobileStatus.projects.addAria': 'Dodaj projekt',
'chat.mobileStatus.projects.cancel': 'Anuluj',
'chat.mobileStatus.projects.empty': 'Brak projektów',
'chat.mobileStatus.projects.remove': 'Usuń',
'chat.mobileStatus.projects.removeDescriptionPrefix': 'Czy na pewno chcesz usunąć',
'chat.mobileStatus.projects.removeTitle': 'Usuń projekt',
'chat.mobileStatus.swipeHint': '← Przesuń tutaj, aby otworzyć paski boczne →',
'chat.mobileStatus.toast.addProjectFailed': 'Nie udało się dodać projektu',
'chat.mobileStatus.toast.selectDirectoryFailed': 'Nie udało się wybrać katalogu',
'chat.mobileStatus.toast.selectValidDirectory': 'Wybierz prawidłowy katalog.',
'chat.modelControls.addNewProvider': 'Dodaj nowego dostawcę',
'chat.modelControls.addToFavorites': 'Dodaj do ulubionych',
'chat.modelControls.bash': 'Bash',
@@ -1333,7 +1384,6 @@ export const dict: Record<I18nKey, string> = {
'commandPalette.item.openSettings': 'Otwórz ustawienia...',
'commandPalette.item.showContextUsage': 'Pokaż użycie kontekstu',
'commandPalette.item.showSessionSwitcher': 'Pokaż przełącznik sesji',
'commandPalette.item.toggleRightSidebar': 'Przełącz prawy panel boczny',
'commandPalette.item.toggleSidebar': 'Przełącz panel boczny',
'commandPalette.item.toggleTerminal': 'Przełącz terminal',
'commandPalette.session.untitled': 'Nienazwana sesja',
@@ -1350,8 +1400,80 @@ export const dict: Record<I18nKey, string> = {
'contextPanel.mode.workingDiff': 'Working Diff',
'contextPanel.mode.files': 'Pliki',
'contextPanel.mode.plan': 'Plan',
'contextPanel.mode.pr': 'Pull Request',
'contextPanel.mode.preview': 'Podgląd',
'contextPanel.mode.browser': 'Przeglądarka',
'contextRail.aria.rail': 'Powierzchnie panelu',
'contextPanel.editorEmpty.title': 'Brak otwartego pliku',
'contextPanel.editorEmpty.description': 'Wybierz plik z drzewa, aby rozpocząć edycję.',
'contextRail.surface.editor.description': 'Edytuj pliki projektu',
'contextRail.surface.git.description': 'Commity, gałęzie i pull requesty',
'contextRail.surface.terminal.description': 'Wbudowany terminal',
'contextRail.surface.diff.description': 'Przeglądaj bieżące zmiany',
'contextPanel.mode.walkthrough': 'Przewodnik',
'contextRail.surface.walkthrough.description': 'Przewodnik po zmianach prowadzony przez AI',
'walkthrough.scope.all': 'Wszystko niezatwierdzone',
'walkthrough.scope.group.workingTree': 'Drzewo robocze',
'walkthrough.scope.group.committed': 'Zatwierdzone',
'walkthrough.scope.staged': 'W poczekalni',
'walkthrough.scope.working': 'Poza poczekalnią',
'walkthrough.scope.branch': 'Ta gałąź',
'walkthrough.scope.selectorAria': 'Wybierz, co przejrzeć',
'walkthrough.language.menuLabel': 'Język przewodnika',
'walkthrough.missing.language': 'Nie ma jeszcze przewodnika w języku {requested} — pokazujemy ten w języku {shown}.',
'walkthrough.missing.model': 'Nie ma jeszcze przewodnika od modelu {model} — pokazujemy ostatni wygenerowany tutaj.',
'walkthrough.missing.languageAndModel': 'Nie ma jeszcze przewodnika w tym języku od tego modelu — pokazujemy ostatni wygenerowany tutaj.',
'walkthrough.language.selectorAria': 'Wybierz język przewodnika',
'walkthrough.scope.pullRequest': 'PR #{number}',
'walkthrough.action.generate': 'Wygeneruj przewodnik',
'walkthrough.action.regenerate': 'Wygeneruj ponownie',
'walkthrough.action.cancel': 'Anuluj',
'walkthrough.action.next': 'Następny krok',
'walkthrough.action.previous': 'Poprzedni krok',
'walkthrough.action.refresh': 'Odśwież',
'walkthrough.action.open': 'Przewodnik',
'walkthrough.stage.collecting': 'Zbieram zmiany',
'walkthrough.stage.asking': 'Czekam na model',
'walkthrough.stage.assembling': 'Składam przewodnik',
'walkthrough.empty.title': 'Nie ma jeszcze przewodnika',
'walkthrough.empty.description': 'Zbuduj prowadzoną ścieżkę czytania tych zmian. Wywołuje to mały model i zużywa tokeny, więc uruchamia się tylko na Twoje żądanie.',
'walkthrough.stale.banner': 'Kod zmienił się po tym przeglądzie. Nieaktualne kroki: {count}',
'walkthrough.stop.staleAll': 'Cały kod opisywany przez ten krok uległ zmianie.',
'walkthrough.stop.stalePartial': 'Część kodu opisywanego przez ten krok uległa zmianie. Brakujące fragmenty: {count}',
'walkthrough.stop.staleShort': 'Nieaktualne',
'walkthrough.stop.noCode': 'Kodu z tego kroku nie ma w bieżących różnicach.',
'walkthrough.uncovered.title': 'Zmiany pominięte w przeglądzie: {count}',
'walkthrough.uncovered.description': 'Przegląd uznał je za rutynowe. Rozwiń, aby sprawdzić je samodzielnie.',
'walkthrough.toc.moreFiles': 'Więcej plików: {count}',
'walkthrough.toc.uncovered': 'Nieuwzględnione: {count}',
'walkthrough.toc.resize': 'Zmień szerokość kolumny spisu treści',
'walkthrough.importance.critical': 'Krytyczne',
'walkthrough.importance.context': 'Kontekst',
'walkthrough.blocked.noModel.title': 'Brak dostępnego małego modelu',
'walkthrough.blocked.noModel.description': 'Zaloguj się u dostawcy modeli, aby wygenerować przegląd.',
'walkthrough.blocked.emptyDiff.title': 'Nie ma czego przeglądać',
'walkthrough.blocked.emptyDiff.description': 'W tym zakresie nie ma jeszcze zmian.',
'walkthrough.blocked.contextTooSmall.title': 'Te różnice są za duże dla bieżącego modelu',
'walkthrough.blocked.contextTooSmall.description': '{model} mieści około {available} tys. znaków, a te różnice potrzebują około {required} tys. Nic nie jest obcinane — wybierz model z większym kontekstem.',
'walkthrough.blocked.structuredOutput.title': 'Ten model nie tworzy ustrukturyzowanych odpowiedzi',
'walkthrough.blocked.structuredOutput.description': '{model} nie obsługuje ustrukturyzowanych odpowiedzi wymaganych przez przewodnik.',
'walkthrough.blocked.chooseModel': 'Wybierz mały model',
'walkthrough.blocked.outputExhausted.title': 'Modelowi zabrakło budżetu na odpowiedź',
'walkthrough.blocked.outputExhausted.description': '{model} zużył cały limit wyjścia na rozumowanie i nic nie zwrócił. Modele rozumujące często tak robią przy dużych różnicach — pomoże model mniej „myślący” albo węższy zakres przeglądu.',
'walkthrough.blocked.outputExhausted.descriptionUnknownModel': 'Mały model zużył cały limit wyjścia na rozumowanie i nic nie zwrócił. Modele rozumujące często tak robią przy dużych różnicach — pomoże model mniej „myślący” albo węższy zakres przeglądu.',
'walkthrough.blocked.onlyGenerated.title': 'Zmieniły się tylko pliki generowane',
'walkthrough.blocked.onlyGenerated.description': 'Wszystkie zmiany to pliki blokad lub inne wyniki pracy narzędzi, które przegląd celowo pomija.',
'walkthrough.blocked.contextTooSmall.descriptionUnknownModel': 'Mały model mieści około {available} tys. znaków, a te różnice potrzebują około {required} tys. Nic nie jest obcinane — wybierz model z większym kontekstem.',
'walkthrough.blocked.structuredOutput.descriptionUnknownModel': 'Mały model nie obsługuje ustrukturyzowanych odpowiedzi wymaganych przez przewodnik.',
'contextRail.surface.plan.description': 'Zobacz bieżący plan',
'contextRail.surface.pr.description': 'Twórz, przeglądaj i scalaj pull request bieżącej gałęzi',
'contextRail.surface.notes.description': 'Notatki, zadania i plany projektu',
'contextRail.surface.context.description': 'Kontekst sesji i zużycie tokenów',
'contextRail.surface.browser.description': 'Wbudowana przeglądarka',
'contextRail.surface.preview.description': 'Podgląd serwera deweloperskiego',
'contextRail.surface.chat.description': 'Sesja otwarta obok',
'contextRail.surface.notes': 'Notatki projektu',
'contextRail.editorTree.toggle': 'Przełącz drzewo plików',
'contextPanel.browser.open': 'Otwórz panel przeglądarki',
'contextPanel.browser.addressAria': 'Adres przeglądarki',
'contextPanel.browser.empty': 'Przeglądarka internetowa',
@@ -1657,6 +1779,8 @@ export const dict: Record<I18nKey, string> = {
'filesView.editor.openFilesAria': 'Otwarte pliki',
'filesView.editor.openInDesktopApp': 'Otwórz w aplikacji desktopowej',
'filesView.editor.pickFileFromTree': 'Wybierz plik z drzewa.',
'filesView.editor.cannotPreviewBinary': 'Nie można podglądać pliku binarnego',
'filesView.editor.binaryFileDescription': 'Ten plik jest binarny i nie można go edytować w OpenChamber. Pobierz go, aby otworzyć w innej aplikacji.',
'filesView.editor.refreshApps': 'Odśwież aplikacje',
'filesView.editor.saveAria': 'Zapisz ({shortcut})',
'filesView.editor.saveFile': 'Zapisz plik',
@@ -1813,6 +1937,8 @@ export const dict: Record<I18nKey, string> = {
'gitView.header.noIdentity': 'No identity',
'gitView.header.noProfiles': 'No profiles available to apply.',
'gitView.header.repositoryViews': 'Widoki repozytorium',
'gitView.header.updateBranch': 'Zaktualizuj gałąź',
'gitView.header.openPullRequest': 'Otwórz pull request',
'gitView.header.removeRemoteAria': 'Usuń remote {name}',
'gitView.header.removeRemoteTitle': 'Usuń remote {name}',
'gitView.header.upstreamSynced': 'zsynchronizowano',
@@ -1865,6 +1991,7 @@ export const dict: Record<I18nKey, string> = {
'gitView.history.renamedNoDiff': 'Renamed file — diff not supported',
'gitView.history.renderDiffAnyway': 'Render anyway',
'gitView.history.title': 'History',
'gitView.history.refresh': 'Odśwież',
'gitView.graph.title': 'Graf',
'gitView.integrate.checking': 'Sprawdzanie…',
'gitView.integrate.cherryPickAbortedToast': 'Cherry-pick został przerwany',
@@ -1901,12 +2028,15 @@ export const dict: Record<I18nKey, string> = {
'gitView.operation.abort': 'Przerwij',
'gitView.operation.continue': 'Kontynuuj',
'gitView.operation.inProgressTitle': 'Operacja w toku',
'gitView.operation.inProgressTitleManyConflicts': '{operation} w toku: {count} konfliktów',
'gitView.operation.inProgressTitleOneConflict': '{operation} w toku: {count} konflikt',
'gitView.operation.merge': 'Scal',
'gitView.operation.mergeInProgressWithHead': 'Trwa scalanie z HEAD',
'gitView.operation.mergingMessage': 'Trwa scalanie',
'gitView.operation.rebase': 'Rebase',
'gitView.operation.rebaseInProgress': 'Trwa rebase',
'gitView.operation.rebasingOnto': 'Wykonywanie rebase na',
'gitView.operation.readyToContinueHint': 'Wszystkie konflikty rozwiązane. Kontynuuj, aby zakończyć operację.',
'gitView.operation.resolveConflictsHint': 'Rozwiąż konflikty, aby kontynuować.',
'gitView.operation.resolveWithAi': 'Rozwiąż za pomocą AI',
'gitView.pr.actions.add': 'Dodaj',
@@ -1931,15 +2061,15 @@ export const dict: Record<I18nKey, string> = {
'gitView.pr.actions.refresh': 'Odśwież status PR',
'gitView.pr.actions.refreshAria': 'Odśwież status pull requesta',
'gitView.pr.actions.repo': 'Repozytorium',
'gitView.pr.actions.resolveFailedChecks': 'Rozwiąż nieudane checki',
'gitView.pr.actions.resolveFailedChecksAria': 'Wyślij nieudane checki do agenta',
'gitView.pr.actions.resolveFailedChecks': 'Dołącz nieudane kontrole',
'gitView.pr.actions.resolveFailedChecksAria': 'Dołącz nieudane kontrole do kontekstu czatu',
'gitView.pr.actions.savePr': 'Zapisz PR',
'gitView.pr.actions.savePrAria': 'Zapisz zmiany pull requesta',
'gitView.pr.actions.sendCommentToAgent': 'Wyślij komentarz do agenta',
'gitView.pr.actions.sendCommentToAgentAria': 'Wyślij ten komentarz do agenta',
'gitView.pr.actions.sendToAgent': 'Wyślij do agenta',
'gitView.pr.actions.shareComments': 'Udostępnij komentarze',
'gitView.pr.actions.shareCommentsAria': 'Wyślij komentarze pull requesta do agenta',
'gitView.pr.actions.sendCommentToAgent': 'Dołącz komentarz do kontekstu czatu',
'gitView.pr.actions.sendCommentToAgentAria': 'Dołącz ten komentarz do kontekstu czatu',
'gitView.pr.actions.sendToAgent': 'Dołącz do czatu',
'gitView.pr.actions.shareComments': 'Dołącz komentarze',
'gitView.pr.actions.shareCommentsAria': 'Dołącz komentarze pull requesta do kontekstu czatu',
'gitView.pr.actions.toggleDraftAria': 'Przełącz stan szkicu',
'gitView.pr.additionalContext.added': 'Dodano',
'gitView.pr.additionalContext.hint': 'Dodaj dodatkowy kontekst, aby poprawić jakość recenzji.',
@@ -1974,6 +2104,10 @@ export const dict: Record<I18nKey, string> = {
'gitView.pr.noMergePermission': 'Nie masz uprawnień do scalenia tego pull requesta.',
'gitView.pr.notMergeable': 'Nie można scalić',
'gitView.pr.numberLabel': 'PR #{number}',
'gitView.pr.segment.overview': 'Przegląd',
'gitView.pr.segment.checks': 'Kontrole',
'gitView.pr.segment.comments': 'Komentarze',
'gitView.pr.comments.addAll': 'Dołącz wszystko do czatu',
'gitView.pr.placeholder.additionalContext': 'Ograniczenia, notatki wdrożeniowe lub kontekst dla recenzenta...',
'gitView.pr.placeholder.description': 'Opisz zmianę...',
'gitView.pr.placeholder.main': 'Podsumuj swój pull request',
@@ -2025,9 +2159,6 @@ export const dict: Record<I18nKey, string> = {
'gitView.sync.push': 'Wypchnij',
'gitView.sync.pushTooltip': 'Wypchnij zmiany',
'gitView.sync.pushTooltipAhead': 'Wypchnij zmiany ({count} do przodu)',
'gitView.tabs.commit': 'Commit',
'gitView.tabs.pr': 'PR',
'gitView.tabs.update': 'Aktualizuj',
'gitView.tabs.worktree': 'Drzewo pracy',
'gitView.toast.abortOperationFailed': 'Nie udało się przerwać operacji',
'gitView.toast.appliedIdentity': 'Zastosowano tożsamość: {name}',
@@ -2175,7 +2306,6 @@ export const dict: Record<I18nKey, string> = {
'helpDialog.item.createNewSession': 'Utwórz nową sesję',
'helpDialog.item.createNewWorktreeDraft': 'Utwórz nowy szkic drzewa pracy',
'helpDialog.item.cycleAgent': 'Przełącz agenta (w polu czatu)',
'helpDialog.item.cycleRightSidebarTab': 'Przełącz kartę prawego panelu',
'helpDialog.item.cycleServicesTab': 'Przełącz kartę usług',
'helpDialog.item.cycleTheme': 'Przełącz motyw (Jasny → Ciemny → Systemowy)',
'helpDialog.item.cycleThinkingVariant': 'Przełącz wariant myślenia (skrót globalny)',
@@ -2185,13 +2315,13 @@ export const dict: Record<I18nKey, string> = {
'helpDialog.item.newWindow': 'Nowe okno (tylko desktop)',
'helpDialog.item.openCommandPalette': 'Otwórz paletę poleceń',
'helpDialog.item.openModelSelector': 'Otwórz selektor modeli',
'helpDialog.item.openRightSidebarFilesTab': 'Otwórz kartę Pliki w prawym panelu',
'helpDialog.item.openRightSidebarGitTab': 'Otwórz kartę Git w prawym panelu',
'helpDialog.item.openRightSidebarFilesTab': 'Otwórz powierzchnię plików',
'helpDialog.item.openRightSidebarGitTab': 'Otwórz powierzchnię Git',
'helpDialog.item.openSettings': 'Otwórz ustawienia',
'helpDialog.item.showKeyboardShortcuts': 'Pokaż skróty klawiaturowe (to okno)',
'helpDialog.item.switchProject': 'Przełącz projekt',
'helpDialog.item.togglePlanContextPanel': 'Przełącz panel kontekstu planu',
'helpDialog.item.toggleRightSidebar': 'Przełącz prawy panel boczny',
'helpDialog.item.toggleRightSidebar': 'Przełącz panel kontekstu',
'helpDialog.item.toggleServicesMenu': 'Przełącz menu usług',
'helpDialog.item.toggleSessionSidebar': 'Przełącz panel sesji',
'helpDialog.item.toggleTerminalDock': 'Przełącz dolny terminal',
@@ -2320,6 +2450,7 @@ export const dict: Record<I18nKey, string> = {
'projectActions.actions.addActionAria': 'Dodaj akcję',
'projectActions.actions.addNewAction': 'Dodaj nową akcję',
'projectActions.actions.autoDiscover': 'Wykryj automatycznie',
'projectActions.actions.autoDiscoverTooltip': 'Automatycznie wykrywa i uruchamia serwer deweloperski',
'projectActions.actions.chooseActionAria': 'Wybierz akcję projektu',
'projectActions.actions.openPreview': 'Otwórz podgląd',
'projectActions.actions.runNamedAria': 'Uruchom {name}',
@@ -2554,6 +2685,7 @@ export const dict: Record<I18nKey, string> = {
'sidebarFilesTree.actions.newFileTitle': 'Nowy plik',
'sidebarFilesTree.actions.newFolderTitle': 'Nowy folder',
'sidebarFilesTree.actions.refreshTitle': 'Odśwież',
'sidebarFilesTree.actions.collapseAllTitle': 'Zwiń wszystkie foldery',
'sidebarFilesTree.actions.fileMenuTitle': 'Menu pliku',
'sidebarFilesTree.dialog.cancel': 'Anuluj',
'sidebarFilesTree.dialog.confirm': 'Potwierdź',
@@ -2597,13 +2729,6 @@ export const dict: Record<I18nKey, string> = {
'terminalView.actions.hardRestart': 'Hard Restart',
'terminalView.actions.hardRestartTitle': 'Force kill and create fresh session',
'terminalView.actions.retry': 'Ponów',
'terminalView.bottomDock.closeAria': 'Close terminal panel',
'terminalView.bottomDock.closeTitle': 'Close terminal panel',
'terminalView.bottomDock.expandAria': 'Expand terminal panel',
'terminalView.bottomDock.expandTitle': 'Expand terminal panel',
'terminalView.bottomDock.resizeAria': 'Resize terminal panel',
'terminalView.bottomDock.restoreAria': 'Restore terminal panel height',
'terminalView.bottomDock.restoreTitle': 'Restore terminal panel height',
'terminalView.empty.noWorkingDirectory': 'No working directory available for terminal.',
'terminalView.empty.noWorkingDirectoryForSession': 'No working directory available for this session.',
'terminalView.empty.selectSession': 'Select a session to open the terminal.',
@@ -2621,6 +2746,8 @@ export const dict: Record<I18nKey, string> = {
'terminalView.quickKeys.commandModifierAria': 'Command modifier',
'terminalView.quickKeys.controlLabel': 'Ctrl',
'terminalView.quickKeys.controlModifierAria': 'Control modifier',
'terminalView.quickKeys.altLabel': 'Alt',
'terminalView.quickKeys.altModifierAria': 'Modyfikator Alt',
'terminalView.quickKeys.enterAria': 'Enter',
'terminalView.quickKeys.escape': 'Esc',
'terminalView.quickKeys.tabAria': 'Tab',
@@ -9,6 +9,9 @@ export const settingsDict = {
'settings.providers.page.openCodeGo.validate': 'Validar',
'settings.providers.page.openCodeGo.delete': 'Excluir',
'settings.providers.page.quotaCredentials.saved': 'Credenciais de {provider} salvas.',
'settings.providers.page.quotaCredentials.accessToken': 'Token de acesso',
'settings.providers.page.quotaCredentials.refreshToken': 'Token de atualização',
'settings.providers.page.quotaCredentials.tokenPlaceholder': 'Cole o token',
'settings.providers.page.openCodeGo.saveFailed': 'Não foi possível validar as credenciais do OpenCode Go.',
'settings.providers.page.openCodeGo.valid': 'As credenciais do OpenCode Go são válidas.',
'settings.providers.page.openCodeGo.invalid': 'As credenciais do OpenCode Go são inválidas ou expiraram.',
@@ -47,6 +50,10 @@ export const settingsDict = {
"settings.view.search.aria": "Buscar configurações",
"settings.view.search.clear": "Limpar busca de configurações",
"settings.view.search.noResults": "Nenhuma configuração encontrada",
"settings.view.nav.group.general": "OpenChamber",
"settings.view.nav.group.projects": "Espaço de trabalho",
"settings.view.nav.group.opencode": "OpenCode",
"settings.view.nav.group.content": "Biblioteca",
"settings.page.projects.title": "Projetos",
"settings.page.remoteInstances.title": "Instâncias remotas",
"settings.page.providers.title": "Provedores",
@@ -59,13 +66,22 @@ export const settingsDict = {
"settings.page.skillsCatalog.title": "Catálogo de habilidades",
"settings.page.git.title": "Git",
"settings.page.appearance.title": "Aparência",
"settings.page.appearance.description": "Personalize a aparência e a sensação do OpenChamber.",
"settings.page.chat.title": "Chat",
"settings.page.chat.description": "Configure como as mensagens e as ferramentas são exibidas.",
"settings.page.shortcuts.title": "Atalhos",
"settings.page.shortcuts.description": "Personalize os atalhos de teclado.",
"settings.page.general.title": "Geral",
"settings.page.general.description": "Inicialização do aplicativo, segurança, conexão e privacidade.",
"settings.page.sessions.title": "Sessões",
"settings.page.sessions.description": "Defina padrões e retenção das sessões.",
"settings.page.magicPrompts.title": "Prompts mágicos",
"settings.page.notifications.title": "Notificações",
"settings.page.notifications.description": "Escolha quando e como receber notificações.",
"settings.page.voice.title": "Voz",
"settings.page.tunnel.title": "Túnel remoto",
"settings.page.voice.description": "Configure fala e ditado.",
"settings.page.tunnel.title": "Túnel externo",
"settings.page.tunnel.description": "Exponha esta instância por um túnel remoto.",
"settings.page.about.title": "Sobre",
"settings.page.snippets.title": "Snippets",
"settings.snippets.sidebar.title": "Snippets",
@@ -90,7 +106,7 @@ export const settingsDict = {
"settings.snippets.page.toast.contentRequired": "O conteúdo do snippet é obrigatório",
"settings.snippets.page.toast.saveFailed": "Falha ao salvar snippet",
"settings.snippets.page.toast.saved": "Snippet salvo",
"settings.openchamber.tunnel.title": "Túnel remoto",
"settings.openchamber.tunnel.title": "Túnel externo",
"settings.openchamber.tunnel.description": "Configure acesso remoto seguro com links rápidos ou com seu próprio túnel gerenciado da Cloudflare.",
"settings.openchamber.tunnel.note.serverSideEnforced": "O acesso seguro ao túnel é aplicado no servidor.",
"settings.openchamber.tunnel.note.connectLinksOneTime": "Os links de conexão são de uso único: eles são revogados quando o túnel para ou quando o TTL do link expira.",
@@ -366,6 +382,7 @@ export const settingsDict = {
"settings.remoteInstances.page.logsDialog.selectedInstanceFallback": "Instância selecionada",
"settings.remoteInstances.page.patternDialog.descriptionWithHost": "{host} exige um destino concreto.",
"settings.remoteInstances.page.patternDialog.description": "Digite destino.",
"settings.common.infoAria": "Mais informações",
"settings.common.actions.cancel": "Cancelar",
"settings.common.actions.create": "Criar",
"settings.common.actions.delete": "Excluir",
@@ -376,6 +393,8 @@ export const settingsDict = {
"settings.common.actions.copyAll": "Copiar tudo",
"settings.common.actions.clear": "Limpar",
"settings.common.actions.saving": "Salvando...",
'settings.common.status.saved': 'Salvo',
'settings.common.status.saveFailed': 'Falha ao salvar',
"settings.common.actions.saveChanges": "Salvar alterações",
"settings.common.scope.global": "Global",
"settings.common.scope.project": "Projeto",
@@ -460,6 +479,33 @@ export const settingsDict = {
"settings.agents.page.section.identityRole": "Identidade e função",
"settings.agents.page.section.modelParameters": "Modelo e parâmetros",
"settings.agents.page.section.systemPrompt": "Prompt do sistema",
"settings.agents.page.permissionsEditor.sectionInfo": "Edita as regras de permissão do próprio agente exatamente como estão salvas na config. “Herdar” deixa a chave sem definição — valem a config global e os padrões.",
"settings.agents.page.permissionsEditor.defaultLabel": "Padrão para todas as ferramentas",
"settings.agents.page.permissionsEditor.defaultAria": "Permissão padrão para todas as ferramentas",
"settings.agents.page.permissionsEditor.defaultInfo": "O fallback no nível do agente (a chave *). Vale para ferramentas sem regra própria.",
"settings.agents.page.permissionsEditor.effectiveHint": "→ {action}",
"settings.agents.page.permissionsEditor.ruleCount": "{count} regras",
"settings.agents.page.permissionsEditor.keyAria": "Permissão para {key}",
"settings.agents.page.permissionsEditor.patternPlaceholder": "Padrão, ex.: rm -rf * ou /path/**",
"settings.agents.page.permissionsEditor.patternActionAria": "Ação para o padrão de {key}",
"settings.agents.page.permissionsEditor.customKeyPlaceholder": "Chave de permissão personalizada…",
"settings.agents.page.permissionsEditor.sessionRulesTitle": "Concedidas na sessão (não salvas)",
"settings.agents.page.permissionsEditor.sessionRulesInfo": "Regras concedidas em sessões ao vivo (respostas “sempre permitir”). Valem agora, mas não fazem parte da config salva e somem ao reiniciar.",
"settings.agents.page.permissionsEditor.action.default": "Padrão",
"settings.agents.page.permissionsEditor.action.inherit": "Herdar",
"settings.agents.page.permissionsEditor.action.allow": "Permitir",
"settings.agents.page.permissionsEditor.action.ask": "Perguntar",
"settings.agents.page.permissionsEditor.action.deny": "Negar",
"settings.agents.page.permissionsEditor.actions.save": "Salvar permissões",
"settings.agents.page.permissionsEditor.actions.discard": "Descartar",
"settings.agents.page.permissionsEditor.actions.addRule": "Adicionar regra",
"settings.agents.page.permissionsEditor.actions.addKey": "Adicionar chave",
"settings.agents.page.permissionsEditor.actions.removeRuleAria": "Remover regra",
"settings.agents.page.permissionsEditor.actions.retry": "Tentar novamente",
"settings.agents.page.permissionsEditor.state.loadFailed": "Não foi possível carregar a config de permissões do agente.",
"settings.agents.page.permissionsEditor.toast.saved": "Permissões salvas",
"settings.agents.page.permissionsEditor.toast.savedRestartRequired": "Permissões salvas — reinicie o servidor OpenCode para aplicar",
"settings.agents.page.permissionsEditor.toast.saveFailed": "Falha ao salvar as permissões",
"settings.agents.page.section.toolPermissions": "Permissões de ferramentas",
"settings.agents.page.field.agentName": "Nome do agente",
"settings.agents.page.field.agentNamePlaceholder": "nome-agente",
@@ -495,10 +541,16 @@ export const settingsDict = {
"settings.agents.page.permissions.permissionPlaceholder": "Permissão...",
"settings.agents.page.permissions.patternPlaceholder": "Padrão (ex.: *)",
"settings.page.behavior.title": "Comportamento",
"settings.page.behavior.description": "Oriente como o agente responde.",
"settings.behavior.page.title": "Comportamento",
"settings.behavior.page.warning.title": "Regras globais são combinadas com regras do projeto",
"settings.behavior.page.warning.description": "As alterações feitas aqui atualizam {path}. O OpenCode também inclui qualquer AGENTS.md a nível de projeto quando existir.",
"settings.behavior.page.section.systemPrompt": "AGENTS.md global",
"settings.behavior.page.section.systemPromptOptimization": "Otimização do prompt do sistema",
"settings.behavior.page.systemPromptOptimization.enable": "Otimizar o tamanho do prompt do sistema",
"settings.behavior.page.systemPromptOptimization.enableAria": "Otimizar o tamanho do prompt do sistema do OpenCode",
"settings.behavior.page.systemPromptOptimization.info": "Reduz o prompt do sistema em cerca de 40% para os agentes build e plan. Os outros agentes não são alterados. Isso pode remover definições personalizadas que substituem build ou plan, portanto não ative nesses fluxos de trabalho. A alteração é aplicada após reiniciar o OpenCode.",
"settings.behavior.page.systemPromptOptimization.restarting": "Reiniciando o OpenCode para aplicar a otimização do prompt do sistema…",
"settings.behavior.page.field.systemPromptPlaceholder": "Você é um assistente de IA útil...\n\nUse este espaço para definir regras absolutas sobre como a IA deve se comportar em todas as sessões e provedores.",
"settings.behavior.page.section.responseStyle": "Estilo de resposta",
"settings.behavior.page.responseStyle.tooltip": "Quando habilitado, estas instruções orientam como o assistente responde em cada nova conversa. Elas são enviadas com sua primeira mensagem e não alteram suas regras globais de AGENTS.md.",
@@ -861,17 +913,24 @@ export const settingsDict = {
"settings.openchamber.sessionRetention.toast.failedDeleteCount": "Não foi possível excluir {count} sessão(es)",
"settings.openchamber.desktopNetwork.title": "Acesso de rede do desktop",
"settings.openchamber.desktopNetwork.field.windowControlsPosition": "Posição dos controles da janela",
"settings.openchamber.desktopNetwork.field.windowControlsPositionDescription": "Escolha onde os botões de minimizar, maximizar e fechar aparecem. Automático segue o sistema operacional.",
"settings.openchamber.desktopNetwork.field.windowControlsPositionDescription": "Escolha onde os botões de minimizar, maximizar e fechar aparecem. O padrão é à direita.",
"settings.openchamber.desktopNetwork.field.windowControlsPositionAria": "Posição dos controles da janela",
"settings.openchamber.desktopNetwork.option.windowControlsAuto": "Automático",
"settings.openchamber.desktopNetwork.option.windowControlsLeft": "Esquerda",
"settings.openchamber.desktopNetwork.option.windowControlsRight": "Direita",
"settings.openchamber.desktopNetwork.field.windowControls": "Controles da janela",
"settings.openchamber.desktopNetwork.field.windowControlsStyle": "Estilo",
"settings.openchamber.desktopNetwork.field.windowControlsStyleAria": "Estilo dos controles da janela",
"settings.openchamber.desktopNetwork.option.windowControlsClassic": "Clássico",
"settings.openchamber.desktopNetwork.option.windowControlsTrafficLights": "Semáforo",
"settings.openchamber.desktopNetwork.field.launchAtLoginAria": "Iniciar o OpenChamber ao fazer login",
"settings.openchamber.desktopNetwork.field.launchAtLogin": "Iniciar o OpenChamber ao fazer login",
"settings.openchamber.desktopNetwork.field.launchAtLoginDescription": "Inicia o app em segundo plano sem abrir uma janela. Use o ícone de status da área de trabalho para abrir.",
"settings.openchamber.desktopNetwork.field.macMenuBarAria": "Mostrar o OpenChamber na barra de menus do macOS",
"settings.openchamber.desktopNetwork.field.macMenuBar": "Mostrar o OpenChamber na barra de menus",
"settings.openchamber.desktopNetwork.field.macMenuBarDescription": "Exige reiniciar o aplicativo. Quando desativado, o OpenChamber não cria o item da barra de menus nem executa as atualizações de sessões, aprovações e uso.",
"settings.openchamber.desktopNetwork.field.minimizeToTrayAria": "Minimizar e fechar o OpenChamber na bandeja do sistema",
"settings.openchamber.desktopNetwork.field.minimizeToTray": "Minimizar e fechar na bandeja do sistema",
"settings.openchamber.desktopNetwork.field.minimizeToTrayDescription": "Mantém o OpenChamber em execução na bandeja do sistema do Windows quando a janela principal é minimizada ou fechada.",
"settings.openchamber.desktopNetwork.field.minimizeToTrayDescription": "Mantém o OpenChamber em execução na bandeja do sistema quando a janela principal é minimizada ou fechada.",
"settings.openchamber.desktopNetwork.field.keepAwakeAria": "Manter o computador ativo enquanto o OpenChamber estiver em execução",
"settings.openchamber.desktopNetwork.field.keepAwake": "Manter o computador ativo enquanto o OpenChamber estiver em execução",
"settings.openchamber.desktopNetwork.field.keepAwakeDescription": "Para que telefones continuem abrindo este app. A tela ainda pode desligar.",
@@ -880,6 +939,8 @@ export const settingsDict = {
"settings.openchamber.desktopNetwork.field.allowLanAccessDescription": "Reinicia o aplicativo para que os telefones, tablets e outros computadores em seu Wi-Fi possam abri-lo.",
"settings.openchamber.desktopNetwork.field.warning": "Aviso: enquanto estiver habilitado, o aplicativo ficará acessível a qualquer pessoa na mesma rede local.",
"settings.openchamber.desktopNetwork.field.passwordRequiredWarning": "O acesso LAN exige uma senha da UI do desktop. Até configurar uma, o app de desktop inicia apenas localmente.",
"settings.openchamber.desktopPassword.actions.showPassword": "Mostrar senha",
"settings.openchamber.desktopPassword.actions.hidePassword": "Ocultar senha",
"settings.openchamber.desktopPassword.field.password": "Senha da UI do desktop",
"settings.openchamber.desktopPassword.field.passwordPlaceholder": "Nenhuma senha obrigatória",
"settings.openchamber.desktopPassword.field.passwordDescription": "O OpenChamber pede após reiniciar e depois quando a sessão expira: em 12 horas, ou 7 dias com Confiar neste dispositivo. Deixe vazio para desativar o login.",
@@ -902,6 +963,9 @@ export const settingsDict = {
"settings.openchamber.opencodeCli.field.binaryPathPlaceholder": "/Users/you/.bun/bin/opencode",
"settings.openchamber.opencodeCli.field.showUpdateNotifications": "Mostrar notificações de atualização do OpenCode",
"settings.openchamber.opencodeCli.field.showUpdateNotificationsAria": "Mostrar notificações de atualização do OpenCode",
"settings.openchamber.opencodeCli.field.agentControlTool": "Ferramenta de controle para agentes",
"settings.openchamber.opencodeCli.field.agentControlToolAria": "Ativar a ferramenta de controle para agentes",
"settings.openchamber.opencodeCli.field.agentControlToolInfo": "Permita que agentes orquestrem seu trabalho pelo chat: criar sessões e worktrees, delegar prompts a outros agentes e gerenciar tarefas agendadas. Adiciona uma pequena descrição de ferramenta a cada sessão. Aplicado após Save + Reload.",
"settings.openchamber.opencodeCli.actions.browseAria": "Buscar caminho do executável do OpenCode",
"settings.openchamber.opencodeCli.actions.browse": "Buscar",
"settings.openchamber.opencodeCli.actions.saveAndReload": "Salvar + Recarregar",
@@ -1008,10 +1072,9 @@ export const settingsDict = {
"settings.openchamber.keyboardShortcuts.action.toggle_terminal.label": "Mostrar ou ocultar painel de terminal",
"settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label": "Expandir ou recolher terminal",
"settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label": "Mostrar ou ocultar barra lateral",
"settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label": "Mostrar ou ocultar barra lateral direita",
"settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label": "Abrir aba de Git em barra lateral direita",
"settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label": "Abrir aba de Arquivos em barra lateral direita",
"settings.openchamber.keyboardShortcuts.action.cycle_right_sidebar_tab.label": "Alternar aba da barra lateral direita",
"settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label": 'Alternar painel de contexto',
"settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label": 'Abrir superfície do Git',
"settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label": 'Abrir superfície de arquivos',
"settings.openchamber.keyboardShortcuts.action.new_chat.label": "Nova sessão",
"settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label": "Novo rascunho de worktree",
"settings.openchamber.keyboardShortcuts.action.new_mini_chat.label": "Nova janela Mini Chat",
@@ -1197,7 +1260,7 @@ export const settingsDict = {
"settings.openchamber.worktrees.setup.waitForCommandsAria": "Aguardar os comandos de configuração do Worktree antes de criar ou enviar uma sessão",
"settings.openchamber.worktrees.setup.toast.saveFailed": "Falha ao salvar os comandos de configuração do Worktree",
"settings.openchamber.worktrees.list.title": "Worktrees existentes",
"settings.openchamber.worktrees.list.tooltip": "Os worktrees existem fuera do repositório (gerenciados por OpenCode). Excluir um worktree também remove sessões vinculadas.",
"settings.openchamber.worktrees.list.tooltip": "Excluir um worktree também remove as sessões vinculadas.",
"settings.openchamber.worktrees.list.loading": "Carregando worktrees...",
"settings.openchamber.worktrees.list.empty": "Nenhum worktree encontrado para este projeto",
"settings.openchamber.worktrees.list.detachedHead": "HEAD desvinculado",
@@ -1457,6 +1520,10 @@ export const settingsDict = {
"settings.openchamber.defaults.smallModel.useDefault": "Usar o modelo pequeno padrão",
"settings.openchamber.defaults.smallModel.useDefaultAria": "Usar o modelo pequeno padrão",
"settings.openchamber.defaults.smallModel.overrideModel": "Modelo de substituição",
"settings.openchamber.defaults.walkthroughModel.title": "Modelo do percurso de mudanças",
"settings.openchamber.defaults.walkthroughModel.description": "A revisão das suas mudanças por IA precisa de saída estruturada e espaço para um diff inteiro, o que um modelo pequeno e barato muitas vezes não oferece. Modelos que o catálogo indica como incapazes de saída estruturada ficam ocultos aqui. Sem escolha, o modelo pequeno é usado.",
"settings.openchamber.defaults.walkthroughModel.overrideModel": "Modelo do percurso",
"settings.openchamber.defaults.walkthroughModel.usesSmallModel": "Modelo pequeno",
"settings.openchamber.defaults.field.showDeletionDialog": "Mostrar diálogo de eliminación",
"settings.openchamber.defaults.field.openFilesPreviewAria": "Abrir arquivos com visualização em modo de prévia",
"settings.openchamber.defaults.field.openFilesPreview": "Abrir arquivos com visualização em modo de prévia",
@@ -1585,6 +1652,7 @@ export const settingsDict = {
"settings.voice.page.section.playbackAndSummary": "Reprodução",
"settings.voice.page.field.provider": "Provedor",
"settings.voice.page.provider.browser": "Navegador",
"settings.voice.page.provider.openai": "OpenAI",
"settings.voice.page.provider.custom": "Personalizado",
"settings.voice.page.provider.say": "Falar",
"settings.voice.page.provider.server": "Servidor",
@@ -1664,18 +1732,24 @@ export const settingsDict = {
"settings.voice.page.field.ttsInputModeRaw": "Markdown bruto",
"settings.voice.page.field.ttsInputModeSummarized": "resumido",
"settings.openchamber.visual.section.colorMode": "Modo de cor",
"settings.openchamber.visual.section.colorModeAndTheme": "Modo de cor e tema",
"settings.openchamber.visual.section.mobileLayout": "Layout móvel",
"settings.openchamber.visual.option.mobileLayout.default": "Anterior",
"settings.openchamber.visual.option.mobileLayout.new": "Novo",
"settings.openchamber.visual.section.localization": "Localização",
"settings.openchamber.visual.section.spacingAndLayout": "Espaçamento e layout",
"settings.openchamber.visual.section.densityAndType": "Densidade e tipografia",
"settings.openchamber.visual.section.appInstall": "Instalação do app",
"settings.openchamber.visual.section.navigation": "Navegação",
"settings.openchamber.visual.section.chatRenderMode": "Modo de renderizado de chat",
"settings.openchamber.visual.section.chatRenderModeAria": "Modo de renderizado de chat",
"settings.openchamber.visual.section.chatDisplay": "Exibição",
"settings.openchamber.visual.section.chatMessageOptions": "Opções de mensagem",
"settings.openchamber.visual.section.chatFeatures": "Recursos",
"settings.openchamber.visual.section.messageStreamTransport": "Transporte do fluxo de mensagens",
"settings.openchamber.visual.section.activityDefault": "Modo padrão de atividade",
"settings.openchamber.visual.section.activityDefaultAria": "Modo padrão de atividade",
"settings.openchamber.visual.section.showToolsOpenedByDefault": "Mostrar ferramentas abertas por padrão:",
"settings.openchamber.visual.section.showToolsOpenedByDefault": "Mostrar ferramentas abertas por padrão",
"settings.openchamber.visual.section.sessionAssistance": "Assistência da sessão",
"settings.openchamber.visual.section.reasoning": "Raciocínio",
"settings.openchamber.visual.section.messageAppearance": "Aparência das mensagens",
@@ -1728,6 +1802,11 @@ export const settingsDict = {
"settings.openchamber.visual.field.fontSizePercentageAria": "Porcentagem do tamanho base",
"settings.openchamber.visual.actions.resetFontSizeAria": "Redefinir tamanho base",
"settings.openchamber.visual.field.terminalFontSize": "Tamanho base do terminal",
"settings.openchamber.visual.field.terminalShell": "Shell do terminal",
"settings.openchamber.visual.field.terminalShellAria": "Selecionar shell do terminal",
"settings.openchamber.visual.field.terminalShellHint": "Reinicie o terminal para aplicar esta alteração à sessão atual.",
"settings.openchamber.visual.field.terminalLoginShell": "Iniciar como shell de login",
"settings.openchamber.visual.option.terminalShell.auto": "Automático",
"settings.openchamber.visual.field.editorFontSize": "Tamanho base do editor",
"settings.openchamber.visual.field.codeFont": "Fonte do código",
"settings.openchamber.visual.field.selectCodeFontAria": "Selecionar fonte do código",
@@ -1775,6 +1854,9 @@ export const settingsDict = {
"settings.openchamber.visual.field.promptNavigatorEnabled": "Navegador de prompts",
"settings.openchamber.visual.field.expandedEditorToolbarAria": "Mostrar sempre a barra de ferramentas do editor",
"settings.openchamber.visual.field.expandedEditorToolbar": "Mostrar sempre a barra de ferramentas do editor (ancorada sob as abas)",
"settings.openchamber.visual.field.autoSaveEnabledAria": "Salvamento automático de arquivos",
"settings.openchamber.visual.field.autoSaveEnabled": "Salvamento automático de arquivos",
"settings.openchamber.visual.field.autoSaveEnabledInfo": "Salva automaticamente as edições do arquivo depois que você parar de digitar. Desative para exigir salvamento manual.",
"settings.openchamber.visual.field.wideChatLayoutAria": "Layout de chat amplo",
"settings.openchamber.visual.field.wideChatLayout": "Layout de chat amplo",
"settings.openchamber.visual.field.showSplitAssistantMessageActionsAria": "Ações inline do assistente",
@@ -1782,6 +1864,8 @@ export const settingsDict = {
"settings.openchamber.visual.field.showSplitAssistantMessageActionsTooltip": "Mostra Copiar resposta, Salvar como imagem e Ler em voz alta em blocos de texto do assistente que aparecem antes de chamadas de ferramenta posteriores na mesma resposta.",
"settings.openchamber.visual.field.allowPromptingSubagentSessionsAria": "Permitir prompts em sessões de subagentes",
"settings.openchamber.visual.field.allowPromptingSubagentSessions": "Permitir prompts em sessões de subagentes",
"settings.openchamber.visual.field.draftStartersVisible": "Mostrar atalhos na tela de nova sessão",
"settings.openchamber.visual.field.draftStartersVisibleAria": "Mostrar atalhos na tela de nova sessão",
"settings.openchamber.visual.field.showToolFileIconsAria": "Mostrar ícones de arquivos de ferramentas",
"settings.openchamber.visual.field.codeBlockLineWrapAria": "Quebrar linhas de blocos de código",
"settings.openchamber.visual.field.codeBlockLineWrap": "Quebrar linhas de blocos de código",
@@ -1801,8 +1885,11 @@ export const settingsDict = {
"settings.openchamber.visual.field.sendAnonymousUsageReports": "Enviar relatórios anônimos de uso",
"settings.openchamber.visual.field.sendAnonymousUsageReportsHint": "Ajuda-nos a entender quais versões do aplicativo são usadas ativamente para priorizar melhorias. Coletamos apenas a versão do aplicativo, a plataforma e o ambiente de execução; não coletamos dados pessoais nem código.",
"settings.openchamber.visual.option.themeMode.system": "Sistema",
"settings.openchamber.visual.option.themeMode.system.description": "Seguir configuração do sistema",
"settings.openchamber.visual.option.themeMode.light": "Claro",
"settings.openchamber.visual.option.themeMode.light.description": "Sempre usar aparência clara",
"settings.openchamber.visual.option.themeMode.dark": "Escuro",
"settings.openchamber.visual.option.themeMode.dark.description": "Sempre usar aparência escura",
"settings.openchamber.visual.option.diffLayout.dynamic.label": "Dinâmico",
"settings.openchamber.visual.option.diffLayout.dynamic.description": "Novo em linha, modificado lado a lado.",
"settings.openchamber.visual.option.diffLayout.inline.label": "Sempre em linha",
+171 -44
View File
@@ -2,7 +2,16 @@ import type { I18nKey } from './en';
import { settingsDict } from './pt-BR.settings';
export const dict: Record<I18nKey, string> = {
...settingsDict,
...settingsDict,
'terminalView.actions.attachSelection': 'Anexar saída selecionada',
'terminalView.actions.restart': 'Reiniciar terminal',
'chat.message.terminalContext': '{terminal}, linhas {start}-{end}',
'chat.chatInput.terminalContext': '{terminal}, linhas {start}-{end}',
'chat.chatInput.terminalContextRemove': 'Remover contexto do terminal',
'chat.chatInput.prCommentContext': 'Comentários do PR',
'chat.chatInput.prCommentContextRemove': 'Remover contexto de comentários do PR',
'chat.chatInput.prCheckContext': 'Verificações do PR com falha',
'chat.chatInput.prCheckContextRemove': 'Remover contexto de verificações do PR',
"common.loading": "Carregando...",
"common.unavailable": "Indisponível",
"common.language.english": "Inglês",
@@ -44,6 +53,9 @@ export const dict: Record<I18nKey, string> = {
"mobile.connect.unlockButton": "Desbloquear e conectar",
"mobile.connect.cancelPassword": "Usar outro servidor",
"mobile.connect.connecting": "Conectando...",
"mobile.connect.notice.unreachable": "Não foi possível conectar a {label}. Verifique se o servidor está em execução.",
"mobile.connect.notice.authExpired": "O acesso a {label} expirou ou foi revogado. Entre novamente.",
"mobile.connect.recovery.description": "Não foi possível conectar ao servidor salvo. Verifique se ele está em execução ou escolha outra instância.",
"mobile.connect.scanQr": "Ler código QR",
"mobile.connect.welcome.scanHint": "No seu computador, abra «Adicionar um dispositivo» para mostrar um código QR e escaneie aqui.",
"mobile.connect.advanced": "Avançado",
@@ -79,14 +91,14 @@ export const dict: Record<I18nKey, string> = {
"mobile.nav.changes": "Alterações",
"mobile.nav.settings": "Configurações",
"mobile.surface.closeAria": "Fechar",
"mobile.header.openMenuAria": "Abrir menu",
"mobile.header.openWorkspaceAria": "Abrir painel de trabalho",
"mobile.header.openMetadataAria": "Abrir metadados da sessão",
"mobile.header.metadata.context": "Contexto",
"mobile.header.metadata.branch": "Branch",
"mobile.header.metadata.usage": "Uso",
"mobile.menu.titleAria": "Ferramentas do espaço de trabalho",
"mobile.menu.files": "Arquivos",
"mobile.menu.changes": "Alterações",
"mobile.menu.terminal": "Terminal",
"mobile.menu.mcp": "MCP",
"mobile.menu.instances": "Instâncias",
"mobile.menu.update": "Atualizar",
@@ -113,17 +125,19 @@ export const dict: Record<I18nKey, string> = {
"mobile.sessions.newChat": "Novo chat",
"mobile.sessions.editOrder": "Reordenar projetos",
"mobile.sessions.doneEditing": "Concluído",
"mobile.sessions.editOrderHint": "Arraste a alça ou use as setas para reordenar os projetos. Toque na marca para finalizar.",
"mobile.sessions.editOrderHint": "Arraste a alça para reordenar os projetos. Toque em um projeto para mostrar seus worktrees e arraste-os também. Toque na marca para concluir.",
"mobile.sessions.dragHandleAria": "Arrastar {label} para reordenar",
"mobile.sessions.moveUpAria": "Mover {label} para cima",
"mobile.sessions.moveDownAria": "Mover {label} para baixo",
"mobile.sessions.removeProjectAria": "Remover {label}",
"mobile.sessions.cancelRemoveProjectAria": "Cancelar remoção de {label}",
"mobile.sessions.confirmRemoveProject": "Fechar",
"mobile.sessions.confirmRemoveProjectAria": "Confirmar remoção de {label}",
"mobile.sessions.toast.projectRemoved": "Removido {label}",
"mobile.sessions.archiveSessionAria": "Arquivar {title}",
"mobile.sessions.cancelArchiveAria": "Cancelar arquivamento de {title}",
"mobile.sessions.renameSessionAria": "Renomear {title}",
"mobile.sessions.renameError": "Falha ao renomear a sessão",
"mobile.sessions.deleteSessionAria": "Excluir {title}",
"mobile.sessions.confirmDeleteSessionAria": "Confirmar exclusão de {title}",
"mobile.sessions.editProjectAria": "Editar {label}",
"mobile.projectEdit.worktreesTitle": "Worktrees",
"mobile.projectEdit.worktreesEmpty": "Este projeto ainda não tem worktrees.",
@@ -170,6 +184,8 @@ export const dict: Record<I18nKey, string> = {
"mobile.files.copyPathAria": "Copiar caminho do arquivo",
"mobile.files.copyContent": "Copiar conteúdo",
"mobile.files.copyContentAria": "Copiar conteúdo do arquivo",
"mobile.files.editAria": "Editar arquivo",
"mobile.files.doneEditingAria": "Concluir edição",
"mobile.files.toast.pathCopied": "Caminho copiado",
"mobile.files.toast.contentCopied": "Conteúdo copiado",
"mobile.files.toast.copyFailed": "Falha ao copiar",
@@ -291,6 +307,8 @@ export const dict: Record<I18nKey, string> = {
"sessions.scheduledTasks.editor.goal.aria": "Executar esta tarefa como um objetivo que o agente persegue até concluir",
"sessions.scheduledTasks.editor.goal.budgetLabel": "Orçamento de tokens",
"sessions.scheduledTasks.editor.goal.budgetAria": "Limitar o objetivo a um orçamento de tokens",
"sessions.scheduledTasks.editor.permissionAutoAccept.label": "Aceitar permissões automaticamente",
"sessions.scheduledTasks.editor.permissionAutoAccept.aria": "Iniciar a sessão da tarefa com a aceitação automática de permissões ativada",
"sessions.scheduledTasks.editor.actions.closeAria": "Fechar",
"sessions.scheduledTasks.editor.actions.cancel": "Cancelar",
"sessions.scheduledTasks.editor.actions.save": "Salvar",
@@ -409,6 +427,28 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.empty.noMatches.title": "Não há sessões coincidentes",
"sessions.sidebar.empty.noMatches.description": "Tente com outro título, branch, pasta ou caminho.",
"sessions.sidebar.activity.recentTitle": "recente",
"sessions.archivePage.allDirectories": "Todos os diretórios",
"sessions.sidebar.header.displayMode.stickyHeaders": "Cabeçalhos de projeto fixos",
"sessions.sidebar.header.grouping.label": "Agrupar sessões",
"sessions.sidebar.header.grouping.byWorktree": "Por worktree",
"sessions.sidebar.header.grouping.flat": "Lista plana",
"sessions.sidebar.project.actions.manageWorktrees": "Gerenciar worktrees",
"sessions.worktreesPage.title": "Worktrees em {project}",
"sessions.worktreesPage.description": "Crie, inspecione e remova os worktrees git deste projeto.",
"sessions.worktreesPage.closeAria": "Fechar worktrees",
"sessions.scheduledTasks.page.closeAria": "Fechar tarefas agendadas",
"sessions.sidebar.nav.archive": "Arquivo",
"sessions.archivePage.title": "Arquivo",
"sessions.archivePage.countSingle": "{count} sessão arquivada",
"sessions.archivePage.countPlural": "{count} sessões arquivadas",
"sessions.archivePage.closeAria": "Fechar arquivo",
"sessions.archivePage.searchPlaceholder": "Pesquisar sessões arquivadas",
"sessions.archivePage.empty.noArchived": "Nenhuma sessão arquivada",
"sessions.archivePage.empty.noMatches": "Nenhuma sessão arquivada correspondente",
"sessions.archivePage.otherProjects": "outros projetos",
"sessions.archivePage.deleteProject": "Excluir todas as sessões arquivadas deste projeto",
"sessions.archivePage.deleteProjectAria": "Excluir todas as sessões arquivadas de {label}",
"sessions.archivePage.deleteSessionAria": "Excluir {title}",
"sessions.switcher.openAria": "Abrir seletor de sessões",
"sessions.switcher.empty": "Nenhuma sessão recente",
"sessions.switcher.draftTitle": "Nova sessão",
@@ -442,6 +482,10 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.project.actions.edit": "Editar",
"sessions.sidebar.project.actions.newDraftSession": "Nova sessão de rascunho",
"sessions.sidebar.session.menu.rename": "Renomear",
"sessions.sidebar.session.menu.copyId": "Copiar ID da sessão",
"sessions.sidebar.session.copyId.success": "ID da sessão copiado",
"sessions.sidebar.session.copyId.error": "Não foi possível copiar o ID da sessão",
"header.sessionActions.openAria": "Abrir ações da sessão",
"sessions.sidebar.session.rename.save": "Salvar nome da sessão",
"sessions.sidebar.session.rename.cancel": "Cancelar renomeação da sessão",
"sessions.sidebar.session.menu.unpin": "Desfixar sessão",
@@ -451,6 +495,12 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.session.menu.copyLink": "Copiar link",
"sessions.sidebar.session.menu.unshare": "Parar de compartilhar",
"sessions.sidebar.session.menu.exportMarkdown": "Exportar Markdown",
"sessions.sidebar.session.menu.moveToWorktree": "Mover para um novo worktree",
"sessions.sidebar.session.moveToWorktree.success": "Sessão movida para um novo worktree",
"sessions.sidebar.session.moveToWorktree.failed": "Não foi possível mover a sessão para um novo worktree",
"sessions.sidebar.session.moveToWorktree.tooltip": "Cria um novo worktree a partir da branch atual, transfere alterações não commitadas e move esta sessão e suas subsessões para lá.",
"sessions.sidebar.session.moveToWorktree.tooltipBusy": "Disponível quando a sessão está ociosa. Interrompa a atividade atual ou aguarde sua conclusão.",
"sessions.sidebar.session.moveToWorktree.tooltipMoving": "Esta sessão já está sendo movida para um novo worktree.",
"sessions.sidebar.session.menu.runFusion": "Executar fusion",
"sessions.sidebar.session.menu.openInSidePanel": "Abrir no painel lateral",
"sessions.sidebar.session.actions.openInEditor": "Abrir no editor",
@@ -458,6 +508,7 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.session.menu.label": "Menu da sessão",
"sessions.sidebar.session.untitled": "Sessão sem título",
"sessions.sidebar.session.export.nothingToExport": "Não há nada para exportar",
"sessions.sidebar.session.export.failedLoadHistory": "Não foi possível carregar o histórico completo da sessão",
"sessions.sidebar.session.export.success": "Sessão exportada",
"sessions.sidebar.session.export.failedRevealPath": "Não foi possível mostrar o caminho",
"sessions.sidebar.session.export.untitledSubagent": "Subagente sem título",
@@ -471,6 +522,7 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.session.status.active": "Sessão ativa",
"sessions.sidebar.session.status.unread": "Atualizações não lidas",
"sessions.sidebar.session.status.pinned": "Sessão fixada",
"sessions.sidebar.session.status.movingToWorktree": "Movendo a sessão para um novo worktree",
"sessions.sidebar.session.status.permissionRequired": "Permissão obrigatória",
"sessions.sidebar.session.subsessions.collapse": "Recolher subsessões",
"sessions.sidebar.session.subsessions.expand": "Expandir subsessões",
@@ -512,7 +564,7 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate": "Esta ação remove permanentemente {count} sessões de {dateLabel}.",
"sessions.sidebar.dialogs.sessionList.more": "+{count} mais",
"sessions.sidebar.session.share.successTitle": "Sessão compartida",
"sessions.sidebar.session.share.successDescription": "Você pode copiar o link pelo menu.",
"sessions.sidebar.session.share.successDescription": "O link de compartilhamento foi copiado para a área de transferência.",
"sessions.sidebar.session.share.error": "Não é possível compartilhar a sessão",
"sessions.sidebar.session.share.copyUrlError": "Não foi possível copiar a URL",
"sessions.sidebar.session.unshare.success": "Sessão dejó de compartilharse",
@@ -694,6 +746,8 @@ export const dict: Record<I18nKey, string> = {
"gitView.header.noIdentity": "Sem identidade",
"gitView.header.noProfiles": "Não há perfiles disponíveis para aplicar.",
"gitView.header.repositoryViews": "Visualizações do repositório",
"gitView.header.updateBranch": "Atualizar branch",
"gitView.header.openPullRequest": "Abrir pull request",
"gitView.header.removeRemoteAria": "Excluir remoto",
"gitView.header.removeRemoteTitle": "Excluir remoto",
"gitView.header.upstreamSynced": "sincronizado",
@@ -745,6 +799,7 @@ export const dict: Record<I18nKey, string> = {
"gitView.history.renamedNoDiff": "Arquivo renomeado — diff não suportado",
"gitView.history.renderDiffAnyway": "Renderizar mesmo assim",
"gitView.history.title": "Histórico",
"gitView.history.refresh": "Atualizar",
"gitView.graph.title": "Grafo",
"gitView.integrate.checking": "Verificando…",
"gitView.integrate.cherryPickAbortedToast": "Cherry-pick abortado",
@@ -779,12 +834,15 @@ export const dict: Record<I18nKey, string> = {
"gitView.operation.abort": "Abortar",
"gitView.operation.continue": "Continuar",
"gitView.operation.inProgressTitle": "{operation} em andamento",
"gitView.operation.inProgressTitleManyConflicts": "{operation} em andamento: {count} conflitos",
"gitView.operation.inProgressTitleOneConflict": "{operation} em andamento: {count} conflito",
"gitView.operation.merge": "Merge",
"gitView.operation.mergeInProgressWithHead": "Fazendo merge de {head}",
"gitView.operation.mergingMessage": "Fazendo merge: {message}",
"gitView.operation.rebase": "Rebase",
"gitView.operation.rebaseInProgress": "Rebase em andamento",
"gitView.operation.rebasingOnto": "Fazendo rebase de {headName} sobre {onto}",
"gitView.operation.readyToContinueHint": "Todos os conflitos foram resolvidos. Continue para finalizar a operação.",
"gitView.operation.resolveConflictsHint": "Resolva os conflitos e depois continue a operação.",
"gitView.operation.resolveWithAi": "Resolver com IA",
"gitView.stash.confirmButton": "Salvar alterações e continuar",
@@ -879,15 +937,15 @@ export const dict: Record<I18nKey, string> = {
"gitView.pr.actions.openOnGitHubAria": "Abrir PR em GitHub",
"gitView.pr.actions.openSettings": "Abrir configurações",
"gitView.pr.actions.repo": "Repositório",
"gitView.pr.actions.resolveFailedChecks": "Resolver checks com falha",
"gitView.pr.actions.resolveFailedChecksAria": "Enviar checks com falha ao agente",
"gitView.pr.actions.resolveFailedChecks": "Anexar verificações com falha",
"gitView.pr.actions.resolveFailedChecksAria": "Anexar verificações com falha ao contexto do chat",
"gitView.pr.actions.savePr": "Salvar PR",
"gitView.pr.actions.savePrAria": "Salvar alterações da PR",
"gitView.pr.actions.sendCommentToAgent": "Enviar comentário ao agente",
"gitView.pr.actions.sendCommentToAgentAria": "Enviar este comentário ao agente",
"gitView.pr.actions.sendToAgent": "Enviar ao agente",
"gitView.pr.actions.shareComments": "Compartilhar comentários",
"gitView.pr.actions.shareCommentsAria": "Enviar comentários da PR ao agente",
"gitView.pr.actions.sendCommentToAgent": "Anexar comentário ao contexto do chat",
"gitView.pr.actions.sendCommentToAgentAria": "Anexar este comentário ao contexto do chat",
"gitView.pr.actions.sendToAgent": "Anexar ao chat",
"gitView.pr.actions.shareComments": "Anexar comentários",
"gitView.pr.actions.shareCommentsAria": "Anexar comentários do pull request ao contexto do chat",
"gitView.pr.actions.toggleDraftAria": "Alternar status de rascunho",
"gitView.pr.actions.refresh": "Atualizar status da PR",
"gitView.pr.actions.refreshAria": "Atualizar status do pull request",
@@ -925,6 +983,10 @@ export const dict: Record<I18nKey, string> = {
"gitView.pr.noMergePermission": "Você não tem permissão para fazer merge desta PR.",
"gitView.pr.notMergeable": "Não é possível fazer merge",
"gitView.pr.numberLabel": "PR # {number}",
"gitView.pr.segment.overview": "Visão geral",
"gitView.pr.segment.checks": "Verificações",
"gitView.pr.segment.comments": "Comentários",
"gitView.pr.comments.addAll": "Anexar tudo ao chat",
"gitView.pr.placeholder.additionalContext": "Quaisquer restrições, notas de lançamento ou contexto para revisão...",
"gitView.pr.placeholder.description": "Descreva a alteração...",
"gitView.pr.placeholder.main": "Resume seu PR",
@@ -959,9 +1021,6 @@ export const dict: Record<I18nKey, string> = {
"gitView.pullRequest.createHint": "Crie e gerencie PRs desta branch.",
"gitView.pullRequest.availableOnFeatureBranches": "Disponível quando a branch atual pode abrir uma PR.",
"gitView.pullRequest.title": "PR",
"gitView.tabs.commit": "Commit",
"gitView.tabs.pr": "PR",
"gitView.tabs.update": "Atualizar",
"gitView.tabs.worktree": "Worktree",
"gitView.toast.abortOperationFailed": "Não foi possível abortar a operación",
"gitView.toast.appliedIdentity": "Identidad aplicada: {name}",
@@ -1028,9 +1087,81 @@ export const dict: Record<I18nKey, string> = {
"contextPanel.mode.stagedDiff": "Staged Diff",
"contextPanel.mode.workingDiff": "Working Diff",
"contextPanel.mode.plan": "Plano",
"contextPanel.mode.pr": "Pull Request",
"contextPanel.mode.context": "Contexto",
"contextPanel.mode.preview": "Prévia",
"contextPanel.mode.browser": "Navegador",
"contextRail.aria.rail": "Superfícies do painel",
"contextPanel.editorEmpty.title": "Nenhum arquivo aberto",
"contextPanel.editorEmpty.description": "Escolha um arquivo na árvore para começar a editar.",
"contextRail.surface.editor.description": "Editar arquivos do projeto",
"contextRail.surface.git.description": "Commits, branches e pull requests",
"contextRail.surface.terminal.description": "Terminal integrado",
"contextRail.surface.diff.description": "Revisar alterações em andamento",
"contextPanel.mode.walkthrough": "Percurso",
"contextRail.surface.walkthrough.description": "Um percurso pelas suas mudanças guiado por IA",
"walkthrough.scope.all": "Tudo sem commit",
"walkthrough.scope.group.workingTree": "Árvore de trabalho",
"walkthrough.scope.group.committed": "Com commit",
"walkthrough.scope.staged": "No stage",
"walkthrough.scope.working": "Fora do stage",
"walkthrough.scope.branch": "Este branch",
"walkthrough.scope.selectorAria": "Escolher o que revisar",
"walkthrough.language.menuLabel": "Idioma do percurso",
"walkthrough.missing.language": "Ainda não há um percurso em {requested} — exibindo o de {shown}.",
"walkthrough.missing.model": "Ainda não há um percurso gerado por {model} — exibindo o último gerado aqui.",
"walkthrough.missing.languageAndModel": "Ainda não há um percurso neste idioma com este modelo — exibindo o último gerado aqui.",
"walkthrough.language.selectorAria": "Escolher o idioma do percurso",
"walkthrough.scope.pullRequest": "PR nº {number}",
"walkthrough.action.generate": "Gerar percurso",
"walkthrough.action.regenerate": "Gerar novamente",
"walkthrough.action.cancel": "Cancelar",
"walkthrough.action.next": "Próxima etapa",
"walkthrough.action.previous": "Etapa anterior",
"walkthrough.action.refresh": "Atualizar",
"walkthrough.action.open": "Percurso com IA",
"walkthrough.stage.collecting": "Reunindo as mudanças",
"walkthrough.stage.asking": "Aguardando o modelo",
"walkthrough.stage.assembling": "Montando o percurso",
"walkthrough.empty.title": "Ainda não há percurso",
"walkthrough.empty.description": "Monte um percurso de leitura por estas mudanças. Isso chama o modelo pequeno e consome tokens, então só roda quando você pede.",
"walkthrough.stale.banner": "O código mudou depois desta revisão. Etapas desatualizadas: {count}",
"walkthrough.stop.staleAll": "Todo o código que esta etapa descrevia mudou.",
"walkthrough.stop.stalePartial": "Parte do código que esta etapa descrevia mudou. Trechos perdidos: {count}",
"walkthrough.stop.staleShort": "Desatualizado",
"walkthrough.stop.noCode": "O código desta etapa não está no diff atual.",
"walkthrough.uncovered.title": "Mudanças que a revisão deixou de fora: {count}",
"walkthrough.uncovered.description": "A revisão considerou essas mudanças rotineiras. Expanda para conferir você mesmo.",
"walkthrough.toc.moreFiles": "Mais arquivos: {count}",
"walkthrough.toc.uncovered": "Sem cobertura: {count}",
"walkthrough.toc.resize": "Redimensionar a coluna de conteúdo",
"walkthrough.importance.critical": "Crítico",
"walkthrough.importance.context": "Contexto",
"walkthrough.blocked.noModel.title": "Nenhum modelo pequeno disponível",
"walkthrough.blocked.noModel.description": "Entre em um provedor de modelos para gerar uma revisão.",
"walkthrough.blocked.emptyDiff.title": "Nada para revisar",
"walkthrough.blocked.emptyDiff.description": "Ainda não há mudanças neste escopo.",
"walkthrough.blocked.contextTooSmall.title": "Este diff é grande demais para o modelo atual",
"walkthrough.blocked.contextTooSmall.description": "{model} comporta cerca de {available} mil caracteres e este diff precisa de cerca de {required} mil. Nada é cortado — escolha um modelo com contexto maior.",
"walkthrough.blocked.structuredOutput.title": "Este modelo não produz saída estruturada",
"walkthrough.blocked.structuredOutput.description": "{model} não suporta as respostas estruturadas que um percurso exige.",
"walkthrough.blocked.chooseModel": "Escolha o modelo pequeno",
"walkthrough.blocked.outputExhausted.title": "O modelo ficou sem orçamento de resposta",
"walkthrough.blocked.outputExhausted.description": "{model} gastou toda a margem de saída raciocinando e não devolveu nada. Modelos de raciocínio costumam fazer isso em diffs grandes — escolha um modelo que raciocine menos ou revise um escopo menor.",
"walkthrough.blocked.outputExhausted.descriptionUnknownModel": "O modelo pequeno gastou toda a margem de saída raciocinando e não devolveu nada. Modelos de raciocínio costumam fazer isso em diffs grandes — escolha um modelo que raciocine menos ou revise um escopo menor.",
"walkthrough.blocked.onlyGenerated.title": "Só mudaram arquivos gerados",
"walkthrough.blocked.onlyGenerated.description": "Todas as mudanças são arquivos de lock ou outra saída gerada por ferramentas, que a revisão ignora de propósito.",
"walkthrough.blocked.contextTooSmall.descriptionUnknownModel": "O modelo pequeno comporta cerca de {available} mil caracteres e este diff precisa de cerca de {required} mil. Nada é cortado — escolha um modelo com contexto maior.",
"walkthrough.blocked.structuredOutput.descriptionUnknownModel": "O modelo pequeno não suporta as respostas estruturadas que um percurso exige.",
"contextRail.surface.plan.description": "Ver o plano atual",
"contextRail.surface.pr.description": "Crie, revise e faça merge do pull request do branch atual",
"contextRail.surface.notes.description": "Notas, tarefas e planos do projeto",
"contextRail.surface.context.description": "Contexto da sessão e uso de tokens",
"contextRail.surface.browser.description": "Navegador web integrado",
"contextRail.surface.preview.description": "Pré-visualização do servidor de desenvolvimento",
"contextRail.surface.chat.description": "Sessão aberta lado a lado",
"contextRail.surface.notes": "Notas do projeto",
"contextRail.editorTree.toggle": "Alternar árvore de arquivos",
"contextPanel.browser.open": "Abrir painel do navegador",
"contextPanel.browser.addressAria": "Endereço do navegador",
"contextPanel.browser.empty": "Navegador web",
@@ -1081,6 +1212,7 @@ export const dict: Record<I18nKey, string> = {
"sidebarFilesTree.actions.newFileTitle": "Novo arquivo",
"sidebarFilesTree.actions.newFolderTitle": "Nova pasta",
"sidebarFilesTree.actions.refreshTitle": "Atualizar",
"sidebarFilesTree.actions.collapseAllTitle": "Recolher todas as pastas",
"sidebarFilesTree.actions.fileMenuTitle": "Menu do arquivo",
"sidebarFilesTree.state.searching": "Buscando...",
"sidebarFilesTree.state.loading": "Carregando...",
@@ -1150,6 +1282,8 @@ export const dict: Record<I18nKey, string> = {
"filesView.editor.showControlsAria": "Mostrar controles do editor",
"filesView.editor.controlsTitle": "Controles do editor",
"filesView.editor.pickFileFromTree": "Selecione um arquivo na árvore.",
"filesView.editor.cannotPreviewBinary": "Não é possível pré-visualizar o arquivo binário",
"filesView.editor.binaryFileDescription": "Este arquivo é binário e não pode ser editado no OpenChamber. Baixe-o para abrir em outro aplicativo.",
"filesView.state.loading": "Carregando...",
"filesView.state.openingFileAtChange": "Abrindo arquivo na alteração...",
"filesView.tree.search.placeholder": "Pesquisar arquivos...",
@@ -1445,6 +1579,8 @@ export const dict: Record<I18nKey, string> = {
"terminalView.quickKeys.tabAria": "Tab",
"terminalView.quickKeys.controlLabel": "Ctrl",
"terminalView.quickKeys.controlModifierAria": "Modificador Control",
"terminalView.quickKeys.altLabel": "Alt",
"terminalView.quickKeys.altModifierAria": "Modificador Alt",
"terminalView.quickKeys.commandModifierAria": "Modificador de comando",
"terminalView.quickKeys.arrowUpAria": "Flecha acima",
"terminalView.quickKeys.arrowLeftAria": "Flecha esquerda",
@@ -1453,13 +1589,6 @@ export const dict: Record<I18nKey, string> = {
"terminalView.quickKeys.enterAria": "Enter",
"terminalView.tabs.closeTabTitle": "Fechar aba",
"terminalView.tabs.newTabTitle": "Nova aba",
"terminalView.bottomDock.resizeAria": "Ajustar tamanho do painel de terminal",
"terminalView.bottomDock.restoreTitle": "Restaurar altura do painel de terminal",
"terminalView.bottomDock.restoreAria": "Restaurar altura do painel de terminal",
"terminalView.bottomDock.expandTitle": "Expandir painel de terminal",
"terminalView.bottomDock.expandAria": "Expandir painel de terminal",
"terminalView.bottomDock.closeTitle": "Fechar painel de terminal",
"terminalView.bottomDock.closeAria": "Fechar painel de terminal",
"terminalView.viewport.inputAria": "Entrada de terminal",
"directoryExplorerDialog.title": "Adicionar diretório de projeto",
"directoryExplorerDialog.description": "Escolha uma pasta para adicionar como projeto.",
@@ -1537,10 +1666,9 @@ export const dict: Record<I18nKey, string> = {
"helpDialog.item.focusChatInput": "Focar entrada do chat",
"helpDialog.item.togglePromptNavigator": "Mostrar ou ocultar navegador de prompts",
"helpDialog.item.abortActiveRun": "Interromper execução ativa (duplo clique)",
"helpDialog.item.toggleRightSidebar": "Mostrar ou ocultar barra lateral direita",
"helpDialog.item.openRightSidebarGitTab": "Abrir aba de Git em barra lateral direita",
"helpDialog.item.openRightSidebarFilesTab": "Abrir aba de arquivos em barra lateral direita",
"helpDialog.item.cycleRightSidebarTab": "Alternar aba da barra lateral direita",
"helpDialog.item.toggleRightSidebar": 'Alternar painel de contexto',
"helpDialog.item.openRightSidebarGitTab": 'Abrir superfície do Git',
"helpDialog.item.openRightSidebarFilesTab": 'Abrir superfície de arquivos',
"helpDialog.item.toggleTerminalDock": "Mostrar ou ocultar dock de terminal",
"helpDialog.item.toggleTerminalExpanded": "Expandir ou recolher o terminal",
"helpDialog.item.togglePlanContextPanel": "Alternar painel de contexto do plano",
@@ -1720,6 +1848,7 @@ export const dict: Record<I18nKey, string> = {
"chat.draftPresets.weigh.label": "Weigh my options",
"chat.draftPresets.plan.label": "Start feature planning",
"chat.draftPresets.craftGoal.label": "Criar um Goal",
"chat.draftPresets.scheduleTask.label": "Agendar uma tarefa",
"chat.draftPresets.debug.label": "Debug an issue",
"chat.draftPresets.review.label": "Review my changes",
"chat.draftStarters.add": "Add a starter",
@@ -1760,6 +1889,7 @@ export const dict: Record<I18nKey, string> = {
"chat.statusRow.todo.priority.low": "Prioridade baixa",
"chat.statusRow.actions.stopGeneratingAria": "Parar a geração",
"chat.statusRow.tasksTitle": "Tarefas",
"chat.statusRow.modelStatus": "{model} · {status}",
"chat.statusRow.summary.activeLeft": "{active} ativas · {left} restantes",
"chat.statusRow.aborted": "Interrompido",
"chat.revertIndicator.redo": "Refazer",
@@ -1795,7 +1925,9 @@ export const dict: Record<I18nKey, string> = {
"chat.commandAutocomplete.command.handoffReviewDescription": "Crie ou reutilize uma sessão separada de revisão a partir de um handoff gerado.",
"chat.commandAutocomplete.command.featurePlanDescription": "Inicie uma sessão de planejamento guiada e interativa para uma nova funcionalidade.",
"chat.commandAutocomplete.command.craftGoalDescription": "Transforme uma ideia ou tarefa em um Goal claro e verificável.",
"chat.commandAutocomplete.command.scheduleTaskDescription": "Defina uma tarefa agendada por meio de um diálogo guiado.",
"chat.chatInput.toast.craftGoalFailed": "Não foi possível iniciar a criação do Goal",
"chat.chatInput.toast.scheduleTaskFailed": "Não foi possível iniciar a configuração da tarefa agendada",
"chat.commandAutocomplete.command.catchUpDescription": "Retome o contexto: o que você estava fazendo e por onde continuar.",
"chat.commandAutocomplete.command.debugDescription": "Investigação guiada da causa raiz de um bug antes de propor uma correção.",
"chat.commandAutocomplete.command.weighDescription": "Compare 2-3 abordagens com seus prós e contras e uma recomendação antes de decidir.",
@@ -1820,6 +1952,12 @@ export const dict: Record<I18nKey, string> = {
"chat.container.returnToParent.title": "Voltar para a sessão principal",
"chat.container.returnToParent.label": "Principal",
"chat.container.readOnlySubagentPromptBanner": "Sessões de subagente não podem receber prompts.",
"chat.container.sessionLoadError.title": "Não foi possível carregar a sessão",
"chat.container.sessionLoadError.description": "Verifique a conexão e tente carregar esta sessão novamente.",
"chat.container.sessionLoadError.retry": "Tentar novamente",
"sessions.sidebar.group.empty.loadingSessions": "Carregando sessões…",
"sessions.sidebar.group.empty.loadFailed": "Não foi possível atualizar as sessões.",
"sessions.sidebar.group.empty.retry": "Tentar novamente",
"chat.unifiedControls.title": "Controles",
"chat.unifiedControls.model.title": "Modelo",
"chat.unifiedControls.model.noRecent": "Não há modelos recentes",
@@ -1864,6 +2002,9 @@ export const dict: Record<I18nKey, string> = {
"chat.messageBody.actions.fork": "Bifurcar daqui",
"chat.messageBody.actions.copyMessageAria": "Copiar texto da mensagem",
"chat.messageBody.actions.copyMessage": "Copiar mensagem",
"chat.messageBody.actions.pinContext": "Fixar no contexto (permanece após a compactação)",
"chat.messageBody.actions.unpinContext": "Desafixar do contexto (não permanece após a compactação)",
"chat.messageBody.actions.contextPinFailed": "Não foi possível atualizar a fixação no contexto",
"chat.messageBody.actions.openPreviewAria": "Abrir visualização",
"chat.messageBody.actions.openPreview": "Abrir visualização",
"chat.messageBody.actions.copyAnswer": "Copiar resposta",
@@ -1941,6 +2082,7 @@ export const dict: Record<I18nKey, string> = {
"chat.chatInput.toast.addedFileMentions": "Foram adicionadas {count} menção(es) de arquivo",
"chat.chatInput.toast.attachFileFailed": "Não foi possível anexar o arquivo",
"chat.chatInput.toast.attachNamedFailed": "Não foi possível anexar {name}",
"chat.chatInput.toast.unsupportedAttachmentModalities": "{model} não oferece suporte à entrada de {modalities} exigida por {files}. Você ainda pode enviar a mensagem, mas esses anexos podem ser ignorados.",
"chat.chatInput.toast.someFilesSkipped": "Alguns arquivos foram omitidos:\n{summary}",
"chat.chatInput.toast.vscodePickFailed": "Não foi possível selecionar arquivos em VS Code",
"chat.chatInput.toast.openSessionFirst": "Abra uma sessão primeiro",
@@ -1962,21 +2104,6 @@ export const dict: Record<I18nKey, string> = {
"chat.chatInput.drop.insertMention": "Solte para inserir como menção",
"chat.chatInput.drop.attachFiles": "Solte arquivos aqui para anexar",
"chat.chatInput.fileFallback": "arquivo",
"chat.mobileStatus.editProjects.title": "Editar projetos",
"chat.mobileStatus.editProjects.footer": "Arraste os itens para reordenar ou use as setas para mover. Toque em editar para alterar os detalhes.",
"chat.mobileStatus.editProjects.empty": "Não há projetos para editar",
"chat.mobileStatus.projects.empty": "Não há projetos",
"chat.mobileStatus.projects.addAria": "Adicionar projeto",
"chat.mobileStatus.projects.removeTitle": "Excluir projeto",
"chat.mobileStatus.projects.removeDescriptionPrefix": "Tem certeza de que deseja excluir",
"chat.mobileStatus.projects.cancel": "Cancelar",
"chat.mobileStatus.projects.remove": "Excluir",
"chat.mobileStatus.new": "Novo",
"chat.mobileStatus.noSessionsInProject": "Não há sessões neste projeto",
"chat.mobileStatus.swipeHint": "← Deslize aqui para abrir os painéis laterais →",
"chat.mobileStatus.toast.addProjectFailed": "Não foi possível adicionar o projeto",
"chat.mobileStatus.toast.selectValidDirectory": "Selecione um diretório válido.",
"chat.mobileStatus.toast.selectDirectoryFailed": "Não foi possível selecionar o diretório",
"chat.toolOutputDialog.image.previousAria": "Imagem anterior",
"chat.toolOutputDialog.image.nextAria": "Próxima imagem",
"chat.toolOutputDialog.image.closeAria": "Fechar prévia de imagem",
@@ -2131,7 +2258,6 @@ export const dict: Record<I18nKey, string> = {
"commandPalette.item.addProject": "Adicionar projeto",
"commandPalette.item.showSessionSwitcher": "Mostrar seletor de sessões",
"commandPalette.item.toggleSidebar": "Mostrar ou ocultar barra lateral",
"commandPalette.item.toggleRightSidebar": "Mostrar ou ocultar barra lateral direita",
"commandPalette.item.showContextUsage": "Mostrar uso do contexto",
"commandPalette.item.toggleTerminal": "Mostrar ou ocultar terminal",
"commandPalette.item.openSettings": "Abrir configurações...",
@@ -2309,6 +2435,7 @@ export const dict: Record<I18nKey, string> = {
"projectActions.actions.addAction": "Adicionar ação",
"projectActions.actions.addNewAction": "Adicionar nova ação",
"projectActions.actions.autoDiscover": "Detectar automaticamente",
"projectActions.actions.autoDiscoverTooltip": "Detecta e executa automaticamente o servidor de desenvolvimento",
"projectActions.actions.chooseActionAria": "Escolher ação do projeto",
"projectActions.actions.openPreview": "Abrir Preview",
"projectActions.actions.runNamedAria": "Executar {name}",
@@ -9,6 +9,9 @@ export const settingsDict = {
'settings.providers.page.openCodeGo.validate': 'Перевірити',
'settings.providers.page.openCodeGo.delete': 'Видалити',
'settings.providers.page.quotaCredentials.saved': 'Облікові дані {provider} збережено.',
'settings.providers.page.quotaCredentials.accessToken': 'Токен доступу',
'settings.providers.page.quotaCredentials.refreshToken': 'Токен оновлення',
'settings.providers.page.quotaCredentials.tokenPlaceholder': 'Вставте токен',
'settings.providers.page.openCodeGo.saveFailed': 'Не вдалося перевірити дані OpenCode Go.',
'settings.providers.page.openCodeGo.valid': 'Дані OpenCode Go дійсні.',
'settings.providers.page.openCodeGo.invalid': 'Дані OpenCode Go недійсні або протерміновані.',
@@ -47,6 +50,10 @@ export const settingsDict = {
"settings.view.search.aria": "Пошук налаштувань",
"settings.view.search.clear": "Очистити пошук налаштувань",
"settings.view.search.noResults": "Нічого не знайдено",
"settings.view.nav.group.general": "OpenChamber",
"settings.view.nav.group.projects": "Робочий простір",
"settings.view.nav.group.opencode": "OpenCode",
"settings.view.nav.group.content": "Бібліотека",
"settings.page.projects.title": "Проєкти",
"settings.page.remoteInstances.title": "Віддалені інстанси",
"settings.page.providers.title": "Провайдери",
@@ -59,13 +66,22 @@ export const settingsDict = {
"settings.page.skillsCatalog.title": "Каталог навичок",
"settings.page.git.title": "Git",
"settings.page.appearance.title": "Зовнішній вигляд",
"settings.page.appearance.description": "Налаштуйте вигляд і відчуття OpenChamber.",
"settings.page.chat.title": "Чат",
"settings.page.chat.description": "Налаштуйте відображення повідомлень і інструментів.",
"settings.page.shortcuts.title": "Гарячі клавіші",
"settings.page.shortcuts.description": "Налаштуйте комбінації клавіш.",
"settings.page.general.title": "Загальні",
"settings.page.general.description": "Запуск застосунку, безпека, з'єднання та приватність.",
"settings.page.sessions.title": "Сесії",
"settings.page.sessions.description": "Встановіть значення за замовчуванням і зберігання сесій.",
"settings.page.magicPrompts.title": "Магічні промпти",
"settings.page.notifications.title": "Сповіщення",
"settings.page.notifications.description": "Оберіть, коли і як отримувати сповіщення.",
"settings.page.voice.title": "Голос",
"settings.page.tunnel.title": "Віддалений тунель",
"settings.page.voice.description": "Налаштуйте мовлення та диктування.",
"settings.page.tunnel.title": "Зовнішній тунель",
"settings.page.tunnel.description": "Відкрийте цей екземпляр через віддалений тунель.",
"settings.page.about.title": "Про застосунок",
"settings.page.snippets.title": "Сніпети",
"settings.snippets.sidebar.title": "Сніпети",
@@ -90,7 +106,7 @@ export const settingsDict = {
"settings.snippets.page.toast.contentRequired": "Вміст сніпета обов'язковий",
"settings.snippets.page.toast.saveFailed": "Не вдалося зберегти сніпет",
"settings.snippets.page.toast.saved": "Сніпет збережено",
"settings.openchamber.tunnel.title": "Віддалений тунель",
"settings.openchamber.tunnel.title": "Зовнішній тунель",
"settings.openchamber.tunnel.description": "Налаштуйте безпечний віддалений доступ за допомогою швидких посилань або власного керованого тунелю Cloudflare.",
"settings.openchamber.tunnel.note.serverSideEnforced": "Безпечний доступ до тунелю забезпечується на стороні сервера.",
"settings.openchamber.tunnel.note.connectLinksOneTime": "Посилання для підключення одноразові: вони відкликаються, коли тунель зупиняється або минає TTL посилання.",
@@ -366,6 +382,7 @@ export const settingsDict = {
"settings.remoteInstances.page.logsDialog.selectedInstanceFallback": "Вибраний інстанс",
"settings.remoteInstances.page.patternDialog.descriptionWithHost": "Для {host} потрібно вказати конкретне призначення.",
"settings.remoteInstances.page.patternDialog.description": "Введіть призначення.",
"settings.common.infoAria": "Докладніше",
"settings.common.actions.cancel": "Скасувати",
"settings.common.actions.create": "Створити",
"settings.common.actions.delete": "Видалити",
@@ -376,6 +393,8 @@ export const settingsDict = {
"settings.common.actions.copyAll": "Копіювати все",
"settings.common.actions.clear": "Очистити",
"settings.common.actions.saving": "Збереження...",
'settings.common.status.saved': 'Збережено',
'settings.common.status.saveFailed': 'Не вдалося зберегти',
"settings.common.actions.saveChanges": "Зберегти зміни",
"settings.common.scope.global": "Глобальний",
"settings.common.scope.project": "Проєкт",
@@ -460,6 +479,33 @@ export const settingsDict = {
"settings.agents.page.section.identityRole": "Ідентичність і роль",
"settings.agents.page.section.modelParameters": "Модель і параметри",
"settings.agents.page.section.systemPrompt": "Системний промпт",
"settings.agents.page.permissionsEditor.sectionInfo": "Редагує власні правила доступу цього агента рівно так, як вони збережені в його конфігу. «Успадкувати» лишає ключ незаданим — діють глобальний конфіг і дефолти.",
"settings.agents.page.permissionsEditor.defaultLabel": "Дефолт для всіх інструментів",
"settings.agents.page.permissionsEditor.defaultAria": "Дефолтний дозвіл для всіх інструментів",
"settings.agents.page.permissionsEditor.defaultInfo": "Фолбек рівня агента (ключ *). Діє для інструментів без власного правила.",
"settings.agents.page.permissionsEditor.effectiveHint": "→ {action}",
"settings.agents.page.permissionsEditor.ruleCount": "{count} правил",
"settings.agents.page.permissionsEditor.keyAria": "Дозвіл для {key}",
"settings.agents.page.permissionsEditor.patternPlaceholder": "Патерн, напр. rm -rf * або /path/**",
"settings.agents.page.permissionsEditor.patternActionAria": "Дія для патерна {key}",
"settings.agents.page.permissionsEditor.customKeyPlaceholder": "Власний ключ дозволу…",
"settings.agents.page.permissionsEditor.sessionRulesTitle": "Надані в сесії (не збережені)",
"settings.agents.page.permissionsEditor.sessionRulesInfo": "Правила, надані під час живих сесій (відповіді «завжди дозволяти»). Вони діють зараз, але не є частиною збереженого конфігу і зникнуть після рестарту.",
"settings.agents.page.permissionsEditor.action.default": "Стандартно",
"settings.agents.page.permissionsEditor.action.inherit": "Успадкувати",
"settings.agents.page.permissionsEditor.action.allow": "Дозволити",
"settings.agents.page.permissionsEditor.action.ask": "Питати",
"settings.agents.page.permissionsEditor.action.deny": "Заборонити",
"settings.agents.page.permissionsEditor.actions.save": "Зберегти дозволи",
"settings.agents.page.permissionsEditor.actions.discard": "Скасувати",
"settings.agents.page.permissionsEditor.actions.addRule": "Додати правило",
"settings.agents.page.permissionsEditor.actions.addKey": "Додати ключ",
"settings.agents.page.permissionsEditor.actions.removeRuleAria": "Видалити правило",
"settings.agents.page.permissionsEditor.actions.retry": "Повторити",
"settings.agents.page.permissionsEditor.state.loadFailed": "Не вдалося завантажити конфіг дозволів агента.",
"settings.agents.page.permissionsEditor.toast.saved": "Дозволи збережено",
"settings.agents.page.permissionsEditor.toast.savedRestartRequired": "Дозволи збережено — перезапустіть сервер OpenCode, щоб застосувати",
"settings.agents.page.permissionsEditor.toast.saveFailed": "Не вдалося зберегти дозволи",
"settings.agents.page.section.toolPermissions": "Дозволи інструмента",
"settings.agents.page.field.agentName": "Ім'я агента",
"settings.agents.page.field.agentNamePlaceholder": "Ім’я агента",
@@ -495,10 +541,16 @@ export const settingsDict = {
"settings.agents.page.permissions.permissionPlaceholder": "Дозвіл...",
"settings.agents.page.permissions.patternPlaceholder": "Шаблон (наприклад, *)",
"settings.page.behavior.title": "Поведінка",
"settings.page.behavior.description": "Керуйте тим, як агент відповідає.",
"settings.behavior.page.title": "Поведінка",
"settings.behavior.page.warning.title": "Глобальні правила поєднуються з правилами проєкту",
"settings.behavior.page.warning.description": "Зміни тут оновлюють {path}. OpenCode також додає правила з AGENTS.md на рівні проєкту, якщо вони існують.",
"settings.behavior.page.section.systemPrompt": "Глобальний AGENTS.md",
"settings.behavior.page.section.systemPromptOptimization": "Оптимізація системного промпту",
"settings.behavior.page.systemPromptOptimization.enable": "Оптимізувати розмір системного промпту",
"settings.behavior.page.systemPromptOptimization.enableAria": "Оптимізувати розмір системного промпту OpenCode",
"settings.behavior.page.systemPromptOptimization.info": "Зменшує системний промпт орієнтовно на 40% для агентів build і plan. Інші агенти не змінюються. Це може видалити власні визначення, які перевизначають build або plan, тому не вмикайте цю функцію для таких робочих процесів. Зміна застосовується після перезапуску OpenCode.",
"settings.behavior.page.systemPromptOptimization.restarting": "Перезапуск OpenCode для застосування оптимізації системного промпту…",
"settings.behavior.page.field.systemPromptPlaceholder": "Ви — корисний AI-асистент...\n\nВикористовуйте цей простір для визначення абсолютних правил поведінки AI для всіх сесій та провайдерів.",
"settings.behavior.page.section.responseStyle": "Стиль відповіді",
"settings.behavior.page.responseStyle.tooltip": "Якщо увімкнено, ці інструкції задають стиль відповідей асистента в кожній новій розмові. Вони надсилаються разом із вашим першим повідомленням і не змінюють глобальні правила AGENTS.md.",
@@ -861,17 +913,24 @@ export const settingsDict = {
"settings.openchamber.sessionRetention.toast.failedDeleteCount": "Не вдалося видалити сесій: {count}",
"settings.openchamber.desktopNetwork.title": "Мережевий доступ десктопного застосунку",
"settings.openchamber.desktopNetwork.field.windowControlsPosition": "Позиція елементів керування вікном",
"settings.openchamber.desktopNetwork.field.windowControlsPositionDescription": "Виберіть, де з’являються кнопки згортання, розгортання та закриття. Авто відповідає вашій операційній системі.",
"settings.openchamber.desktopNetwork.field.windowControlsPositionDescription": "Виберіть, де з’являються кнопки згортання, розгортання та закриття. За замовчуванням справа.",
"settings.openchamber.desktopNetwork.field.windowControlsPositionAria": "Позиція елементів керування вікном",
"settings.openchamber.desktopNetwork.option.windowControlsAuto": "Авто",
"settings.openchamber.desktopNetwork.option.windowControlsLeft": "Зліва",
"settings.openchamber.desktopNetwork.option.windowControlsRight": "Справа",
"settings.openchamber.desktopNetwork.field.windowControls": "Елементи керування вікном",
"settings.openchamber.desktopNetwork.field.windowControlsStyle": "Стиль",
"settings.openchamber.desktopNetwork.field.windowControlsStyleAria": "Стиль елементів керування вікном",
"settings.openchamber.desktopNetwork.option.windowControlsClassic": "Класичний",
"settings.openchamber.desktopNetwork.option.windowControlsTrafficLights": "Світлофор",
"settings.openchamber.desktopNetwork.field.launchAtLoginAria": "Запускати OpenChamber під час входу в систему",
"settings.openchamber.desktopNetwork.field.launchAtLogin": "Запускати OpenChamber під час входу в систему",
"settings.openchamber.desktopNetwork.field.launchAtLoginDescription": "Запускає застосунок у фоні без відкриття вікна. Відкрийте його через піктограму стану на робочому столі.",
"settings.openchamber.desktopNetwork.field.macMenuBarAria": "Показувати OpenChamber у смузі меню macOS",
"settings.openchamber.desktopNetwork.field.macMenuBar": "Показувати OpenChamber у смузі меню",
"settings.openchamber.desktopNetwork.field.macMenuBarDescription": "Потребує перезапуску застосунку. Якщо вимкнено, OpenChamber не створює елемент смуги меню та не запускає пов’язані оновлення сесій, запитів на підтвердження й використання.",
"settings.openchamber.desktopNetwork.field.minimizeToTrayAria": "Згортати й закривати OpenChamber у системний трей",
"settings.openchamber.desktopNetwork.field.minimizeToTray": "Згортати й закривати в системний трей",
"settings.openchamber.desktopNetwork.field.minimizeToTrayDescription": "Залишає OpenChamber запущеним у системному треї Windows, коли головне вікно згорнуто або закрито.",
"settings.openchamber.desktopNetwork.field.minimizeToTrayDescription": "Залишає OpenChamber запущеним у системному треї, коли головне вікно згорнуто або закрито.",
"settings.openchamber.desktopNetwork.field.keepAwakeAria": "Не давати комп’ютеру засинати, поки OpenChamber запущено",
"settings.openchamber.desktopNetwork.field.keepAwake": "Не давати комп’ютеру засинати, поки OpenChamber запущено",
"settings.openchamber.desktopNetwork.field.keepAwakeDescription": "Щоб телефон і далі міг відкривати застосунок. Екран усе одно може вимикатися.",
@@ -880,6 +939,8 @@ export const settingsDict = {
"settings.openchamber.desktopNetwork.field.allowLanAccessDescription": "Перезапускає застосунок, щоб телефони, планшети та інші комп’ютери в мережі Wi-Fi могли його відкрити.",
"settings.openchamber.desktopNetwork.field.warning": "Попередження: якщо це ввімкнено, застосунок доступний усім у тій самій локальній мережі.",
"settings.openchamber.desktopNetwork.field.passwordRequiredWarning": "Для LAN-доступу потрібен пароль десктопного UI. Доки його не задано, десктопний застосунок запускається лише локально.",
"settings.openchamber.desktopPassword.actions.showPassword": "Показати пароль",
"settings.openchamber.desktopPassword.actions.hidePassword": "Приховати пароль",
"settings.openchamber.desktopPassword.field.password": "Пароль для десктопного UI",
"settings.openchamber.desktopPassword.field.passwordPlaceholder": "Пароль не потрібен",
"settings.openchamber.desktopPassword.field.passwordDescription": "OpenChamber попросить пароль після перезапуску, а потім коли сесія логіну спливе: через 12 годин або через 7 днів із «Довіряти цьому пристрою». Залиште порожнім, щоб вимкнути логін.",
@@ -902,6 +963,9 @@ export const settingsDict = {
"settings.openchamber.opencodeCli.field.binaryPathPlaceholder": "/Users/you/.bun/bin/opencode",
"settings.openchamber.opencodeCli.field.showUpdateNotifications": "Показувати сповіщення про оновлення OpenCode",
"settings.openchamber.opencodeCli.field.showUpdateNotificationsAria": "Показувати сповіщення про оновлення OpenCode",
"settings.openchamber.opencodeCli.field.agentControlTool": "Інструмент керування для агентів",
"settings.openchamber.opencodeCli.field.agentControlToolAria": "Увімкнути інструмент керування для агентів",
"settings.openchamber.opencodeCli.field.agentControlToolInfo": "Дозвольте агентам оркеструвати вашу роботу з чату: створювати сесії та worktree, делегувати запити іншим агентам і керувати запланованими задачами. Додає невеликий опис інструмента до кожної сесії. Застосовується після Save + Reload.",
"settings.openchamber.opencodeCli.actions.browseAria": "Вибрати шлях до виконуваного файла OpenCode",
"settings.openchamber.opencodeCli.actions.browse": "Огляд",
"settings.openchamber.opencodeCli.actions.saveAndReload": "Зберегти й перезавантажити",
@@ -1008,10 +1072,9 @@ export const settingsDict = {
"settings.openchamber.keyboardShortcuts.action.toggle_terminal.label": "Перемкнути панель терміналу",
"settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label": "Розгорнути або згорнути термінал",
"settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label": "Перемкнути бічну панель",
"settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label": "Перемкнути праву бічну панель",
"settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label": "Відкрити вкладку Git правої бічної панелі",
"settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label": "Відкрити вкладку «Файли» правої бічної панелі",
"settings.openchamber.keyboardShortcuts.action.cycle_right_sidebar_tab.label": "Перемкнути вкладку правої бічної панелі",
"settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label": 'Перемкнути контекстну панель',
"settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label": 'Відкрити поверхню Git',
"settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label": 'Відкрити поверхню файлів',
"settings.openchamber.keyboardShortcuts.action.new_chat.label": "Нова сесія",
"settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label": "Нова чернетка worktree",
"settings.openchamber.keyboardShortcuts.action.new_mini_chat.label": "Нове вікно Mini Chat",
@@ -1197,7 +1260,7 @@ export const settingsDict = {
"settings.openchamber.worktrees.setup.waitForCommandsAria": "Чекати завершення команд налаштування Worktree перед створенням або надсиланням сесії",
"settings.openchamber.worktrees.setup.toast.saveFailed": "Не вдалося зберегти команди налаштування Worktree",
"settings.openchamber.worktrees.list.title": "Наявні worktree",
"settings.openchamber.worktrees.list.tooltip": "Worktree розташовані поза репозиторієм і керуються OpenCode. Видалення worktree також видаляє пов’язані сесії.",
"settings.openchamber.worktrees.list.tooltip": "Видалення worktree також видаляє пов’язані з ним сесії.",
"settings.openchamber.worktrees.list.loading": "Завантаження worktree...",
"settings.openchamber.worktrees.list.empty": "Для цього проєкту не знайдено worktree",
"settings.openchamber.worktrees.list.detachedHead": "Відокремлено HEAD",
@@ -1457,6 +1520,10 @@ export const settingsDict = {
"settings.openchamber.defaults.smallModel.useDefault": "Використовувати типову малу модель",
"settings.openchamber.defaults.smallModel.useDefaultAria": "Використовувати типову малу модель",
"settings.openchamber.defaults.smallModel.overrideModel": "Модель заміни",
"settings.openchamber.defaults.walkthroughModel.title": "Модель для розбору змін",
"settings.openchamber.defaults.walkthroughModel.description": "AI-розбір ваших змін потребує structured output і місця під увесь diff, чого дешева small model часто дати не може. Моделі, які за каталогом не вміють structured output, у цьому списку приховані. Якщо нічого не обрано, використовується small model.",
"settings.openchamber.defaults.walkthroughModel.overrideModel": "Модель для розбору",
"settings.openchamber.defaults.walkthroughModel.usesSmallModel": "Small model",
"settings.openchamber.defaults.field.showDeletionDialog": "Показати діалогове вікно видалення",
"settings.openchamber.defaults.field.openFilesPreviewAria": "Відкривати файли з підтримкою перегляду в режимі попереднього перегляду",
"settings.openchamber.defaults.field.openFilesPreview": "Відкривати файли з підтримкою перегляду в режимі попереднього перегляду",
@@ -1585,6 +1652,7 @@ export const settingsDict = {
"settings.voice.page.section.playbackAndSummary": "Відтворення",
"settings.voice.page.field.provider": "Провайдер",
"settings.voice.page.provider.browser": "Браузер",
"settings.voice.page.provider.openai": "OpenAI",
"settings.voice.page.provider.custom": "Власний",
"settings.voice.page.provider.say": "Say",
"settings.voice.page.provider.server": "Сервер",
@@ -1664,18 +1732,24 @@ export const settingsDict = {
"settings.voice.page.field.ttsInputModeRaw": "Сирий Markdown",
"settings.voice.page.field.ttsInputModeSummarized": "скорочений",
"settings.openchamber.visual.section.colorMode": "Режим теми",
"settings.openchamber.visual.section.colorModeAndTheme": "Режим кольору та тема",
"settings.openchamber.visual.section.mobileLayout": "Мобільний макет",
"settings.openchamber.visual.option.mobileLayout.default": "Попередній",
"settings.openchamber.visual.option.mobileLayout.new": "Новий",
"settings.openchamber.visual.section.localization": "Локалізація",
"settings.openchamber.visual.section.spacingAndLayout": "Відступи й компонування",
"settings.openchamber.visual.section.densityAndType": "Щільність і шрифти",
"settings.openchamber.visual.section.appInstall": "Встановлення застосунку",
"settings.openchamber.visual.section.navigation": "Навігація",
"settings.openchamber.visual.section.chatRenderMode": "Режим візуалізації чату",
"settings.openchamber.visual.section.chatRenderModeAria": "Режим візуалізації чату",
"settings.openchamber.visual.section.chatDisplay": "Відображення",
"settings.openchamber.visual.section.chatMessageOptions": "Параметри повідомлень",
"settings.openchamber.visual.section.chatFeatures": "Функції",
"settings.openchamber.visual.section.messageStreamTransport": "Транспорт потокових повідомлень",
"settings.openchamber.visual.section.activityDefault": "Активність за замовчуванням",
"settings.openchamber.visual.section.activityDefaultAria": "Режим активності за замовчуванням",
"settings.openchamber.visual.section.showToolsOpenedByDefault": "Показувати інструменти відкритими за замовчуванням:",
"settings.openchamber.visual.section.showToolsOpenedByDefault": "Показувати інструменти відкритими за замовчуванням",
"settings.openchamber.visual.section.sessionAssistance": "Допомога із сесією",
"settings.openchamber.visual.section.reasoning": "Міркування",
"settings.openchamber.visual.section.messageAppearance": "Вигляд повідомлень",
@@ -1728,6 +1802,11 @@ export const settingsDict = {
"settings.openchamber.visual.field.fontSizePercentageAria": "Розмір шрифту у відсотках",
"settings.openchamber.visual.actions.resetFontSizeAria": "Скинути розмір шрифту",
"settings.openchamber.visual.field.terminalFontSize": "Розмір шрифту терміналу",
"settings.openchamber.visual.field.terminalShell": "Оболонка терміналу",
"settings.openchamber.visual.field.terminalShellAria": "Вибрати оболонку терміналу",
"settings.openchamber.visual.field.terminalShellHint": "Перезапустіть термінал, щоб застосувати цю зміну до поточної сесії.",
"settings.openchamber.visual.field.terminalLoginShell": "Запускати як оболонку входу",
"settings.openchamber.visual.option.terminalShell.auto": "Автоматично",
"settings.openchamber.visual.field.editorFontSize": "Розмір шрифту редактора",
"settings.openchamber.visual.field.codeFont": "Шрифт коду",
"settings.openchamber.visual.field.selectCodeFontAria": "Вибрати шрифт коду",
@@ -1775,6 +1854,9 @@ export const settingsDict = {
"settings.openchamber.visual.field.promptNavigatorEnabled": "Навігатор промптів",
"settings.openchamber.visual.field.expandedEditorToolbarAria": "Завжди показувати панель інструментів редактора",
"settings.openchamber.visual.field.expandedEditorToolbar": "Завжди показувати панель інструментів редактора (закріплена під вкладками)",
"settings.openchamber.visual.field.autoSaveEnabledAria": "Автозбереження файлів",
"settings.openchamber.visual.field.autoSaveEnabled": "Автозбереження файлів",
"settings.openchamber.visual.field.autoSaveEnabledInfo": "Автоматично зберігати зміни у файлі після того, як ви припините друкувати. Вимкніть, щоб зберігати лише вручну.",
"settings.openchamber.visual.field.wideChatLayoutAria": "Широкий макет чату",
"settings.openchamber.visual.field.wideChatLayout": "Широкий макет чату",
"settings.openchamber.visual.field.showSplitAssistantMessageActionsAria": "Вбудовані дії асистента",
@@ -1782,6 +1864,8 @@ export const settingsDict = {
"settings.openchamber.visual.field.showSplitAssistantMessageActionsTooltip": "Показує «Скопіювати відповідь», «Зберегти як зображення» та озвучення для текстових блоків асистента, які з’являються перед пізнішими викликами інструментів у тій самій відповіді.",
"settings.openchamber.visual.field.allowPromptingSubagentSessionsAria": "Дозволити надсилати запити в сесії субагентів",
"settings.openchamber.visual.field.allowPromptingSubagentSessions": "Дозволити запити в сесіях субагентів",
"settings.openchamber.visual.field.draftStartersVisible": "Показувати стартери на екрані нової сесії",
"settings.openchamber.visual.field.draftStartersVisibleAria": "Показувати стартери на екрані нової сесії",
"settings.openchamber.visual.field.showToolFileIconsAria": "Показати значки файлів інструментів",
"settings.openchamber.visual.field.codeBlockLineWrapAria": "Переносити рядки блоків коду",
"settings.openchamber.visual.field.codeBlockLineWrap": "Переносити рядки блоків коду",
@@ -1801,8 +1885,11 @@ export const settingsDict = {
"settings.openchamber.visual.field.sendAnonymousUsageReports": "Надсилати анонімні звіти про використання",
"settings.openchamber.visual.field.sendAnonymousUsageReportsHint": "Допомагає нам зрозуміти, які версії застосунків активно використовуються, щоб ми могли визначити пріоритети покращень. Збираються лише версія застосунку, платформа та середовище виконання – без особистих даних чи коду.",
"settings.openchamber.visual.option.themeMode.system": "Системна",
"settings.openchamber.visual.option.themeMode.system.description": "Дотримуватися системних налаштувань",
"settings.openchamber.visual.option.themeMode.light": "Світла",
"settings.openchamber.visual.option.themeMode.light.description": "Завжди використовувати світлий вигляд",
"settings.openchamber.visual.option.themeMode.dark": "Темна",
"settings.openchamber.visual.option.themeMode.dark.description": "Завжди використовувати темний вигляд",
"settings.openchamber.visual.option.diffLayout.dynamic.label": "Динамічний",
"settings.openchamber.visual.option.diffLayout.dynamic.description": "Нові файли показуються inline, змінені — поруч.",
"settings.openchamber.visual.option.diffLayout.inline.label": "Завжди inline",
+175 -48
View File
@@ -3,6 +3,15 @@ import { settingsDict } from './uk.settings';
export const dict: Record<I18nKey, string> = {
...settingsDict,
'terminalView.actions.attachSelection': 'Прикріпити вибраний вивід',
'terminalView.actions.restart': 'Перезапустити термінал',
'chat.message.terminalContext': '{terminal}, рядки {start}-{end}',
'chat.chatInput.terminalContext': '{terminal}, рядки {start}-{end}',
'chat.chatInput.terminalContextRemove': 'Видалити контекст термінала',
'chat.chatInput.prCommentContext': 'Коментарі PR',
'chat.chatInput.prCommentContextRemove': 'Прибрати контекст коментарів PR',
'chat.chatInput.prCheckContext': 'Зафейлені чеки PR',
'chat.chatInput.prCheckContextRemove': 'Прибрати контекст чеків PR',
"common.loading": "Завантаження...",
"common.unavailable": "Недоступно",
"common.language.english": "англійська",
@@ -44,6 +53,9 @@ export const dict: Record<I18nKey, string> = {
"mobile.connect.unlockButton": "Розблокувати і підключити",
"mobile.connect.cancelPassword": "Інший сервер",
"mobile.connect.connecting": "Підключення...",
"mobile.connect.notice.unreachable": "Не вдалося з'єднатися з {label}. Перевірте, що сервер запущено.",
"mobile.connect.notice.authExpired": "Доступ до {label} протух або був відкликаний. Увійдіть знову.",
"mobile.connect.recovery.description": "Не вдалося з'єднатися зі збереженим сервером. Перевірте, що він запущений, або оберіть інший інстанс.",
"mobile.connect.scanQr": "Сканувати QR-код",
"mobile.connect.welcome.scanHint": "На компʼютері відкрийте «Додати пристрій», щоб показати QR-код, і відскануйте його тут.",
"mobile.connect.advanced": "Додатково",
@@ -79,14 +91,14 @@ export const dict: Record<I18nKey, string> = {
"mobile.nav.changes": "Зміни",
"mobile.nav.settings": "Налаштування",
"mobile.surface.closeAria": "Закрити",
"mobile.header.openMenuAria": "Відкрити меню",
"mobile.header.openWorkspaceAria": "Відкрити робочу панель",
"mobile.header.openMetadataAria": "Відкрити метадані сесії",
"mobile.header.metadata.context": "Контекст",
"mobile.header.metadata.branch": "Гілка",
"mobile.header.metadata.usage": "Використання",
"mobile.menu.titleAria": "Інструменти робочого простору",
"mobile.menu.files": "Файли",
"mobile.menu.changes": "Зміни",
"mobile.menu.terminal": "Термінал",
"mobile.menu.mcp": "MCP",
"mobile.menu.instances": "Інстанси",
"mobile.menu.update": "Оновити",
@@ -113,17 +125,19 @@ export const dict: Record<I18nKey, string> = {
"mobile.sessions.newChat": "Новий чат",
"mobile.sessions.editOrder": "Змінити порядок проєктів",
"mobile.sessions.doneEditing": "Готово",
"mobile.sessions.editOrderHint": "Перетягни ручку або скористайся стрілками, щоб змінити порядок проєктів. Натисни галочку щоб завершити.",
"mobile.sessions.editOrderHint": "Перетягни ручку, щоб змінити порядок проєктів. Торкнись проєкту, щоб показати його worktree, і перетягуй їх так само. Натисни галочку, щоб завершити.",
"mobile.sessions.dragHandleAria": "Перетягни {label}, щоб змінити порядок",
"mobile.sessions.moveUpAria": "Перемістити {label} вгору",
"mobile.sessions.moveDownAria": "Перемістити {label} вниз",
"mobile.sessions.removeProjectAria": "Видалити {label}",
"mobile.sessions.cancelRemoveProjectAria": "Скасувати видалення {label}",
"mobile.sessions.confirmRemoveProject": "Закрити",
"mobile.sessions.confirmRemoveProjectAria": "Підтвердити видалення {label}",
"mobile.sessions.toast.projectRemoved": "Видалено {label}",
"mobile.sessions.archiveSessionAria": "Архівувати {title}",
"mobile.sessions.cancelArchiveAria": "Скасувати архівування {title}",
"mobile.sessions.renameSessionAria": "Перейменувати {title}",
"mobile.sessions.renameError": "Не вдалося перейменувати сесію",
"mobile.sessions.deleteSessionAria": "Видалити {title}",
"mobile.sessions.confirmDeleteSessionAria": "Підтвердити видалення {title}",
"mobile.sessions.editProjectAria": "Редагувати {label}",
"mobile.projectEdit.worktreesTitle": "Ворктрі",
"mobile.projectEdit.worktreesEmpty": "У цьому проєкті ще немає ворктрі.",
@@ -170,6 +184,8 @@ export const dict: Record<I18nKey, string> = {
"mobile.files.copyPathAria": "Скопіювати шлях до файлу",
"mobile.files.copyContent": "Скопіювати вміст",
"mobile.files.copyContentAria": "Скопіювати вміст файлу",
"mobile.files.editAria": "Редагувати файл",
"mobile.files.doneEditingAria": "Завершити редагування",
"mobile.files.toast.pathCopied": "Шлях скопійовано",
"mobile.files.toast.contentCopied": "Вміст скопійовано",
"mobile.files.toast.copyFailed": "Не вдалося скопіювати",
@@ -291,6 +307,8 @@ export const dict: Record<I18nKey, string> = {
"sessions.scheduledTasks.editor.goal.aria": "Виконати це завдання як ціль, яку агент веде до завершення",
"sessions.scheduledTasks.editor.goal.budgetLabel": "Бюджет токенів",
"sessions.scheduledTasks.editor.goal.budgetAria": "Обмежити ціль бюджетом токенів",
"sessions.scheduledTasks.editor.permissionAutoAccept.label": "Автоматично приймати дозволи",
"sessions.scheduledTasks.editor.permissionAutoAccept.aria": "Запускати сесію завдання з увімкненим автоматичним прийняттям дозволів",
"sessions.scheduledTasks.editor.actions.closeAria": "Закрити",
"sessions.scheduledTasks.editor.actions.cancel": "Скасувати",
"sessions.scheduledTasks.editor.actions.save": "Зберегти",
@@ -409,6 +427,28 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.empty.noMatches.title": "Немає відповідних сесій",
"sessions.sidebar.empty.noMatches.description": "Спробуйте інший заголовок, гілку, папку або шлях.",
"sessions.sidebar.activity.recentTitle": "Останні",
"sessions.archivePage.allDirectories": "Всі директорії",
"sessions.sidebar.header.displayMode.stickyHeaders": "Липкі заголовки проектів",
"sessions.sidebar.header.grouping.label": "Групування сесій",
"sessions.sidebar.header.grouping.byWorktree": "За worktree",
"sessions.sidebar.header.grouping.flat": "Плаский список",
"sessions.sidebar.project.actions.manageWorktrees": "Керувати worktree",
"sessions.worktreesPage.title": "Worktree у {project}",
"sessions.worktreesPage.description": "Створюйте, переглядайте та видаляйте git worktree цього проєкту.",
"sessions.worktreesPage.closeAria": "Закрити worktree",
"sessions.scheduledTasks.page.closeAria": "Закрити заплановані завдання",
"sessions.sidebar.nav.archive": "Архів",
"sessions.archivePage.title": "Архів",
"sessions.archivePage.countSingle": "{count} архівна сесія",
"sessions.archivePage.countPlural": "{count} архівних сесій",
"sessions.archivePage.closeAria": "Закрити архів",
"sessions.archivePage.searchPlaceholder": "Пошук архівних сесій",
"sessions.archivePage.empty.noArchived": "Немає архівних сесій",
"sessions.archivePage.empty.noMatches": "Немає збігів серед архівних сесій",
"sessions.archivePage.otherProjects": "інші проєкти",
"sessions.archivePage.deleteProject": "Видалити всі архівні сесії цього проєкту",
"sessions.archivePage.deleteProjectAria": "Видалити всі архівні сесії у {label}",
"sessions.archivePage.deleteSessionAria": "Видалити {title}",
"sessions.switcher.openAria": "Відкрити перемикач сесій",
"sessions.switcher.empty": "Немає недавніх сесій",
"sessions.switcher.draftTitle": "Нова сесія",
@@ -442,15 +482,25 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.project.actions.edit": "Редагувати",
"sessions.sidebar.project.actions.newDraftSession": "Нова чернетка сесії",
"sessions.sidebar.session.menu.rename": "Перейменувати",
"sessions.sidebar.session.menu.copyId": "Копіювати ID сесії",
"sessions.sidebar.session.copyId.success": "ID сесії скопійовано",
"sessions.sidebar.session.copyId.error": "Не вдалося скопіювати ID сесії",
"header.sessionActions.openAria": "Відкрити дії із сесією",
"sessions.sidebar.session.rename.save": "Зберегти назву сесії",
"sessions.sidebar.session.rename.cancel": "Скасувати перейменування сесії",
"sessions.sidebar.session.menu.unpin": "Відкріпити сесія",
"sessions.sidebar.session.menu.pin": "Закріпити сесія",
"sessions.sidebar.session.menu.pin": "Прикріпити сесія",
"sessions.sidebar.session.menu.share": "Поділитися",
"sessions.sidebar.session.menu.copied": "Скопійовано",
"sessions.sidebar.session.menu.copyLink": "Копіювати посилання",
"sessions.sidebar.session.menu.unshare": "Скасувати спільний доступ",
"sessions.sidebar.session.menu.exportMarkdown": "Експорт Markdown",
"sessions.sidebar.session.menu.moveToWorktree": "Перенести в новий worktree",
"sessions.sidebar.session.moveToWorktree.success": "Сесію перенесено в новий worktree",
"sessions.sidebar.session.moveToWorktree.failed": "Не вдалося перенести сесію в новий worktree",
"sessions.sidebar.session.moveToWorktree.tooltip": "Створює новий worktree з поточної гілки, переносить незакомічені зміни та переміщує туди цю сесію і її підсесії.",
"sessions.sidebar.session.moveToWorktree.tooltipBusy": "Доступно, коли сесія неактивна. Зупиніть поточну активність або дочекайтеся її завершення.",
"sessions.sidebar.session.moveToWorktree.tooltipMoving": "Ця сесія вже переноситься в новий worktree.",
"sessions.sidebar.session.menu.runFusion": "Запустити fusion",
"sessions.sidebar.session.menu.openInSidePanel": "Відкрити на бічній панелі",
"sessions.sidebar.session.actions.openInEditor": "Відкрити в редакторі",
@@ -458,6 +508,7 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.session.menu.label": "Меню сесії",
"sessions.sidebar.session.untitled": "Сесія без назви",
"sessions.sidebar.session.export.nothingToExport": "Нічого для експорту",
"sessions.sidebar.session.export.failedLoadHistory": "Не вдалося завантажити повну історію сесії",
"sessions.sidebar.session.export.success": "Сесія експортовано",
"sessions.sidebar.session.export.failedRevealPath": "Не вдалося відкрити шлях",
"sessions.sidebar.session.export.untitledSubagent": "Під-агент без назви",
@@ -471,6 +522,7 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.session.status.active": "Сесія активний",
"sessions.sidebar.session.status.unread": "Непрочитані оновлення",
"sessions.sidebar.session.status.pinned": "Закріплений сесія",
"sessions.sidebar.session.status.movingToWorktree": "Перенесення сесії в новий worktree",
"sessions.sidebar.session.status.permissionRequired": "Потрібен дозвіл",
"sessions.sidebar.session.subsessions.collapse": "Згорнути підсесії",
"sessions.sidebar.session.subsessions.expand": "Розгорнути підсесії",
@@ -512,7 +564,7 @@ export const dict: Record<I18nKey, string> = {
"sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate": "Ця дія назавжди видаляє сесії {count} з {dateLabel}.",
"sessions.sidebar.dialogs.sessionList.more": "+{count} більше",
"sessions.sidebar.session.share.successTitle": "Сесією поділилися",
"sessions.sidebar.session.share.successDescription": "Ви можете скопіювати посилання з меню.",
"sessions.sidebar.session.share.successDescription": "Посилання для поширення скопійовано в буфер обміну.",
"sessions.sidebar.session.share.error": "Не вдалося поділитися сесією",
"sessions.sidebar.session.share.copyUrlError": "Не вдалося скопіювати URL",
"sessions.sidebar.session.unshare.success": "Спільний доступ до сесій закрито",
@@ -694,6 +746,8 @@ export const dict: Record<I18nKey, string> = {
"gitView.header.noIdentity": "Ідентичність не вибрано",
"gitView.header.noProfiles": "Немає доступних профілів для застосування.",
"gitView.header.repositoryViews": "Перегляди репозиторію",
"gitView.header.updateBranch": "Оновити гілку",
"gitView.header.openPullRequest": "Відкрити pull request",
"gitView.header.removeRemoteAria": "Видалити remote",
"gitView.header.removeRemoteTitle": "Видалити remote",
"gitView.header.upstreamSynced": "синхронізовано",
@@ -745,6 +799,7 @@ export const dict: Record<I18nKey, string> = {
"gitView.history.renamedNoDiff": "Перейменований файл — diff не підтримується",
"gitView.history.renderDiffAnyway": "Показати все одно",
"gitView.history.title": "Історія",
"gitView.history.refresh": "Оновити",
"gitView.graph.title": "Граф",
"gitView.integrate.checking": "Перевірка…",
"gitView.integrate.cherryPickAbortedToast": "Cherry-pick перервано",
@@ -779,12 +834,15 @@ export const dict: Record<I18nKey, string> = {
"gitView.operation.abort": "Перервати",
"gitView.operation.continue": "Продовжити",
"gitView.operation.inProgressTitle": "Виконується {operation}",
"gitView.operation.inProgressTitleManyConflicts": "{operation} у процесі: {count} конфліктів",
"gitView.operation.inProgressTitleOneConflict": "{operation} у процесі: {count} конфлікт",
"gitView.operation.merge": "Злити",
"gitView.operation.mergeInProgressWithHead": "Виконується злиття з {head}",
"gitView.operation.mergingMessage": "Виконується злиття: {message}",
"gitView.operation.rebase": "Перебазувати",
"gitView.operation.rebaseInProgress": "Виконується перебазування",
"gitView.operation.rebasingOnto": "Перебазування {headName} на {onto}",
"gitView.operation.readyToContinueHint": "Усі конфлікти вирішено. Продовжте, щоб завершити операцію.",
"gitView.operation.resolveConflictsHint": "Вирішіть конфлікти, потім продовжіть операцію.",
"gitView.operation.resolveWithAi": "Вирішити за допомогою ШІ",
"gitView.stash.confirmButton": "Підтвердити",
@@ -879,15 +937,15 @@ export const dict: Record<I18nKey, string> = {
"gitView.pr.actions.openOnGitHubAria": "Відкрити PR на GitHub",
"gitView.pr.actions.openSettings": "Відкрити налаштування",
"gitView.pr.actions.repo": "Репозиторій",
"gitView.pr.actions.resolveFailedChecks": "Виправити невдалі перевірки",
"gitView.pr.actions.resolveFailedChecksAria": "Надіслати невдалі перевірки агенту",
"gitView.pr.actions.resolveFailedChecks": "Прикріпити зафейлені чеки",
"gitView.pr.actions.resolveFailedChecksAria": "Прикріпити зафейлені чеки до контексту чату",
"gitView.pr.actions.savePr": "Зберегти PR",
"gitView.pr.actions.savePrAria": "Зберегти зміни PR",
"gitView.pr.actions.sendCommentToAgent": "Надіслати коментар агенту",
"gitView.pr.actions.sendCommentToAgentAria": "Надіслати цей коментар агенту",
"gitView.pr.actions.sendToAgent": "Надіслати агенту",
"gitView.pr.actions.shareComments": "Поділитися коментарями",
"gitView.pr.actions.shareCommentsAria": "Надсилати агенту коментарі PR",
"gitView.pr.actions.sendCommentToAgent": "Прикріпити коментар до контексту чату",
"gitView.pr.actions.sendCommentToAgentAria": "Прикріпити цей коментар до контексту чату",
"gitView.pr.actions.sendToAgent": "Прикріпити в чат",
"gitView.pr.actions.shareComments": "Прикріпити коментарі",
"gitView.pr.actions.shareCommentsAria": "Прикріпити коментарі pull request до контексту чату",
"gitView.pr.actions.toggleDraftAria": "Перемкнути стан чернетки",
"gitView.pr.actions.refresh": "Оновити статус PR",
"gitView.pr.actions.refreshAria": "Оновити статус pull request",
@@ -925,6 +983,10 @@ export const dict: Record<I18nKey, string> = {
"gitView.pr.noMergePermission": "Ви не маєте дозволу на об’єднання цього запиту.",
"gitView.pr.notMergeable": "Неможливо злити",
"gitView.pr.numberLabel": "PR #{number}",
"gitView.pr.segment.overview": "Огляд",
"gitView.pr.segment.checks": "Перевірки",
"gitView.pr.segment.comments": "Коментарі",
"gitView.pr.comments.addAll": "Прикріпити все в чат",
"gitView.pr.placeholder.additionalContext": "Будь-які обмеження, примітки щодо розгортання чи контекст рецензента...",
"gitView.pr.placeholder.description": "Опишіть зміну...",
"gitView.pr.placeholder.main": "Узагальніть свій PR",
@@ -959,9 +1021,6 @@ export const dict: Record<I18nKey, string> = {
"gitView.pullRequest.createHint": "Створюйте PR з цієї гілки та керуйте ними.",
"gitView.pullRequest.availableOnFeatureBranches": "Доступно, коли поточна гілка може відкрити PR.",
"gitView.pullRequest.title": "PR",
"gitView.tabs.commit": "Коміт",
"gitView.tabs.pr": "PR",
"gitView.tabs.update": "Оновлення",
"gitView.tabs.worktree": "Worktree",
"gitView.toast.abortOperationFailed": "Не вдалося перервати операцію",
"gitView.toast.appliedIdentity": "Застосовано ідентичність: {name}",
@@ -1028,9 +1087,81 @@ export const dict: Record<I18nKey, string> = {
"contextPanel.mode.stagedDiff": "Staged Diff",
"contextPanel.mode.workingDiff": "Working Diff",
"contextPanel.mode.plan": "План",
"contextPanel.mode.pr": "Pull Request",
"contextPanel.mode.context": "Контекст",
"contextPanel.mode.preview": "Перегляд",
"contextPanel.mode.browser": "Браузер",
"contextRail.aria.rail": "Поверхні панелі",
"contextPanel.editorEmpty.title": "Файл не відкрито",
"contextPanel.editorEmpty.description": "Виберіть файл у дереві, щоб почати редагування.",
"contextRail.surface.editor.description": "Редагування файлів проєкту",
"contextRail.surface.git.description": "Коміти, гілки та pull request-и",
"contextRail.surface.terminal.description": "Вбудований термінал",
"contextRail.surface.diff.description": "Перегляд поточних змін",
"contextPanel.mode.walkthrough": "Розбір",
"contextRail.surface.walkthrough.description": "Покроковий розбір ваших змін за допомогою AI",
"walkthrough.scope.all": "Усе незакомічене",
"walkthrough.scope.group.workingTree": "Робоче дерево",
"walkthrough.scope.group.committed": "Закомічене",
"walkthrough.scope.staged": "В індексі",
"walkthrough.scope.working": "Поза індексом",
"walkthrough.scope.branch": "Ця гілка",
"walkthrough.scope.selectorAria": "Обрати, що розбирати",
"walkthrough.language.menuLabel": "Мова розбору",
"walkthrough.missing.language": "Розбору мовою {requested} ще немає — показано той, що мовою {shown}.",
"walkthrough.missing.model": "Розбору від {model} ще немає — показано останній згенерований тут.",
"walkthrough.missing.languageAndModel": "Розбору цією мовою від цієї моделі ще немає — показано останній згенерований тут.",
"walkthrough.language.selectorAria": "Обрати мову розбору",
"walkthrough.scope.pullRequest": "PR #{number}",
"walkthrough.action.generate": "Створити розбір",
"walkthrough.action.regenerate": "Створити заново",
"walkthrough.action.cancel": "Скасувати",
"walkthrough.action.next": "Наступний крок",
"walkthrough.action.previous": "Попередній крок",
"walkthrough.action.refresh": "Оновити",
"walkthrough.action.open": "AI-розбір",
"walkthrough.stage.collecting": "Збираю зміни",
"walkthrough.stage.asking": "Чекаю на модель",
"walkthrough.stage.assembling": "Складаю розбір",
"walkthrough.empty.title": "Розбору ще немає",
"walkthrough.empty.description": "Побудуйте маршрут читання цих змін. Це звертається до small model і витрачає токени, тому запускається лише на ваш запит.",
"walkthrough.stale.banner": "Код змінився після цього розбору. Застарілих кроків: {count}",
"walkthrough.stop.staleAll": "Увесь код, який описував цей крок, змінився.",
"walkthrough.stop.stalePartial": "Частина коду, який описував цей крок, змінилася. Втрачених фрагментів: {count}",
"walkthrough.stop.staleShort": "Застаріле",
"walkthrough.stop.noCode": "Коду для цього кроку немає в поточному diff.",
"walkthrough.uncovered.title": "Зміни, які розбір не описав: {count}",
"walkthrough.uncovered.description": "Розбір визнав їх рутинними. Розгорніть, щоб переглянути самостійно.",
"walkthrough.toc.moreFiles": "Ще файлів: {count}",
"walkthrough.toc.uncovered": "Не описано: {count}",
"walkthrough.toc.resize": "Змінити ширину колонки змісту",
"walkthrough.importance.critical": "Критично",
"walkthrough.importance.context": "Контекст",
"walkthrough.blocked.noModel.title": "Немає доступної small model",
"walkthrough.blocked.noModel.description": "Увійдіть до провайдера моделей, щоб створити розбір.",
"walkthrough.blocked.emptyDiff.title": "Немає що оглядати",
"walkthrough.blocked.emptyDiff.description": "У цій області поки що немає змін.",
"walkthrough.blocked.contextTooSmall.title": "Цей diff завеликий для поточної моделі",
"walkthrough.blocked.contextTooSmall.description": "{model} вміщає близько {available} тис. символів, а цьому diff потрібно близько {required} тис. Нічого не обрізається — оберіть модель із більшим контекстом.",
"walkthrough.blocked.structuredOutput.title": "Ця модель не вміє structured output",
"walkthrough.blocked.structuredOutput.description": "{model} не підтримує структуровані відповіді, потрібні для розбору.",
"walkthrough.blocked.chooseModel": "Оберіть small model",
"walkthrough.blocked.outputExhausted.title": "Моделі забракло бюджету на відповідь",
"walkthrough.blocked.outputExhausted.description": "{model} витратила весь бюджет виводу на роздуми й нічого не повернула. Reasoning-моделі часто так поводяться на великих diff — допоможе модель, яка менше «думає», або вужча область огляду.",
"walkthrough.blocked.outputExhausted.descriptionUnknownModel": "Small model витратила весь бюджет виводу на роздуми й нічого не повернула. Reasoning-моделі часто так поводяться на великих diff — допоможе модель, яка менше «думає», або вужча область огляду.",
"walkthrough.blocked.onlyGenerated.title": "Змінились лише згенеровані файли",
"walkthrough.blocked.onlyGenerated.description": "Усі зміни тут — це lock-файли чи інший результат роботи інструментів, які розбір свідомо пропускає.",
"walkthrough.blocked.contextTooSmall.descriptionUnknownModel": "Small model вміщає близько {available} тис. символів, а цьому diff потрібно близько {required} тис. Нічого не обрізається — оберіть модель із більшим контекстом.",
"walkthrough.blocked.structuredOutput.descriptionUnknownModel": "Small model не підтримує структуровані відповіді, потрібні для розбору.",
"contextRail.surface.plan.description": "Перегляд поточного плану",
"contextRail.surface.pr.description": "Створюйте, переглядайте та зливайте pull request поточної гілки",
"contextRail.surface.notes.description": "Нотатки, задачі та плани проєкту",
"contextRail.surface.context.description": "Контекст сесії та використання токенів",
"contextRail.surface.browser.description": "Вбудований браузер",
"contextRail.surface.preview.description": "Перегляд дев-сервера",
"contextRail.surface.chat.description": "Сесія, відкрита поруч",
"contextRail.surface.notes": "Нотатки проєкту",
"contextRail.editorTree.toggle": "Перемкнути дерево файлів",
"contextPanel.browser.open": "Відкрити панель браузера",
"contextPanel.browser.addressAria": "Адреса браузера",
"contextPanel.browser.empty": "Веб-браузер",
@@ -1081,6 +1212,7 @@ export const dict: Record<I18nKey, string> = {
"sidebarFilesTree.actions.newFileTitle": "Новий файл",
"sidebarFilesTree.actions.newFolderTitle": "Нова папка",
"sidebarFilesTree.actions.refreshTitle": "Оновити",
"sidebarFilesTree.actions.collapseAllTitle": "Згорнути всі папки",
"sidebarFilesTree.actions.fileMenuTitle": "Меню файлу",
"sidebarFilesTree.state.searching": "Пошук...",
"sidebarFilesTree.state.loading": "Завантаження...",
@@ -1150,6 +1282,8 @@ export const dict: Record<I18nKey, string> = {
"filesView.editor.showControlsAria": "Показати елементи керування редактора",
"filesView.editor.controlsTitle": "Елементи керування редактора",
"filesView.editor.pickFileFromTree": "Вибрати файл із дерева.",
"filesView.editor.cannotPreviewBinary": "Неможливо попередньо переглянути бінарний файл",
"filesView.editor.binaryFileDescription": "Цей файл є бінарним і його не можна редагувати в OpenChamber. Завантажте його, щоб відкрити в іншій програмі.",
"filesView.state.loading": "Завантаження...",
"filesView.state.openingFileAtChange": "Відкриття файлу на зміні...",
"filesView.tree.search.placeholder": "Пошук файлів...",
@@ -1445,6 +1579,8 @@ export const dict: Record<I18nKey, string> = {
"terminalView.quickKeys.tabAria": "Tab",
"terminalView.quickKeys.controlLabel": "Ctrl",
"terminalView.quickKeys.controlModifierAria": "Модифікатор Ctrl",
"terminalView.quickKeys.altLabel": "Alt",
"terminalView.quickKeys.altModifierAria": "Модифікатор Alt",
"terminalView.quickKeys.commandModifierAria": "Модифікатор Command",
"terminalView.quickKeys.arrowUpAria": "Стрілка вгору",
"terminalView.quickKeys.arrowLeftAria": "Стрілка вліво",
@@ -1453,13 +1589,6 @@ export const dict: Record<I18nKey, string> = {
"terminalView.quickKeys.enterAria": "Enter",
"terminalView.tabs.closeTabTitle": "Закрити вкладку",
"terminalView.tabs.newTabTitle": "Нова вкладка",
"terminalView.bottomDock.resizeAria": "Змінити розмір панелі терміналу",
"terminalView.bottomDock.restoreTitle": "Відновити висоту панелі терміналу",
"terminalView.bottomDock.restoreAria": "Відновити висоту панелі терміналу",
"terminalView.bottomDock.expandTitle": "Розгорнути панель терміналу",
"terminalView.bottomDock.expandAria": "Розгорнути панель терміналу",
"terminalView.bottomDock.closeTitle": "Закрити панель терміналу",
"terminalView.bottomDock.closeAria": "Закрити панель терміналу",
"terminalView.viewport.inputAria": "Ввід терміналу",
"directoryExplorerDialog.title": "Додати каталог проєкту",
"directoryExplorerDialog.description": "Виберіть папку, щоб додати її як проєкт.",
@@ -1496,7 +1625,7 @@ export const dict: Record<I18nKey, string> = {
"directoryExplorerDialog.toast.failedToSelectDirectory": "Не вдалося вибрати каталог",
"directoryExplorerDialog.toast.unknownError": "Сталася невідома помилка.",
"directoryTree.actions.createNewDirectory": "Створити новий каталог",
"directoryTree.actions.pinDirectory": "Закріпити каталог",
"directoryTree.actions.pinDirectory": "Прикріпити каталог",
"directoryTree.actions.unpinDirectory": "Відкріпити каталог",
"directoryTree.actions.createDirectory": "Створити каталог",
"directoryTree.actions.cancel": "Скасувати",
@@ -1537,10 +1666,9 @@ export const dict: Record<I18nKey, string> = {
"helpDialog.item.focusChatInput": "Фокус на полі вводу чату",
"helpDialog.item.togglePromptNavigator": "Показати або приховати навігатор промптів",
"helpDialog.item.abortActiveRun": "Перервати активний запуск (подвійне натискання)",
"helpDialog.item.toggleRightSidebar": "Перемкнути праву бічну панель",
"helpDialog.item.openRightSidebarGitTab": "Відкрити вкладку Git у правій бічній панелі",
"helpDialog.item.openRightSidebarFilesTab": "Відкрити вкладку «Файли» у правій бічній панелі",
"helpDialog.item.cycleRightSidebarTab": "Перемкнути вкладку правої бічної панелі",
"helpDialog.item.toggleRightSidebar": 'Перемкнути контекстну панель',
"helpDialog.item.openRightSidebarGitTab": 'Відкрити поверхню Git',
"helpDialog.item.openRightSidebarFilesTab": 'Відкрити поверхню файлів',
"helpDialog.item.toggleTerminalDock": "Перемкнути панель терміналу",
"helpDialog.item.toggleTerminalExpanded": "Розгорнути або згорнути термінал",
"helpDialog.item.togglePlanContextPanel": "Перемкнути панель контексту плану",
@@ -1703,7 +1831,7 @@ export const dict: Record<I18nKey, string> = {
"chat.fileAttachment.actions.removeNamed": "Видалити {name}",
"chat.fileAttachment.actions.removeImage": "Видалити зображення",
"chat.fileAttachment.activeEditor.addFile": "Додати файл:{name} до контексту",
"chat.fileAttachment.activeEditor.pinSelection": "Закріпити вибір у контексті",
"chat.fileAttachment.activeEditor.pinSelection": "Прикріпити вибір у контексті",
"chat.fileAttachment.activeEditor.remove": "Видалити з контексту",
"chat.fileAttachment.openInDiagram": "Відкрити в перегляді діаграми",
"chat.pendingChanges.fileCountSingle": "Файл: {count}",
@@ -1720,6 +1848,7 @@ export const dict: Record<I18nKey, string> = {
"chat.draftPresets.weigh.label": "Зважити варіанти",
"chat.draftPresets.plan.label": "Розпочати планування фічі",
"chat.draftPresets.craftGoal.label": "Сформувати Goal",
"chat.draftPresets.scheduleTask.label": "Запланувати задачу",
"chat.draftPresets.debug.label": "Дебаг проблеми",
"chat.draftPresets.review.label": "Переглянути мої зміни",
"chat.draftStarters.add": "Додати стартер",
@@ -1760,6 +1889,7 @@ export const dict: Record<I18nKey, string> = {
"chat.statusRow.todo.priority.low": "Низький пріоритет",
"chat.statusRow.actions.stopGeneratingAria": "Припинити генерацію",
"chat.statusRow.tasksTitle": "завдання",
"chat.statusRow.modelStatus": "{model} · {status}",
"chat.statusRow.summary.activeLeft": "Активних: {active} · залишилось: {left}",
"chat.statusRow.aborted": "Перервано",
"chat.revertIndicator.redo": "Повторити",
@@ -1795,7 +1925,9 @@ export const dict: Record<I18nKey, string> = {
"chat.commandAutocomplete.command.handoffReviewDescription": "Створити або повторно використати окрему сесію ревʼю зі згенерованого handoff.",
"chat.commandAutocomplete.command.featurePlanDescription": "Розпочати покрокову діалогову сесію планування нової фічі.",
"chat.commandAutocomplete.command.craftGoalDescription": "Перетворити ідею або завдання на чіткий Goal, який можна перевірити.",
"chat.commandAutocomplete.command.scheduleTaskDescription": "Визначити заплановану задачу через керований діалог.",
"chat.chatInput.toast.craftGoalFailed": "Не вдалося розпочати формування Goal",
"chat.chatInput.toast.scheduleTaskFailed": "Не вдалося розпочати налаштування запланованої задачі",
"chat.commandAutocomplete.command.catchUpDescription": "Повернутись у контекст: над чим працювали і звідки продовжити.",
"chat.commandAutocomplete.command.debugDescription": "Кероване дослідження першопричини бага перед тим, як пропонувати фікс.",
"chat.commandAutocomplete.command.weighDescription": "Зважити 2-3 підходи з trade-offs і рекомендацією перш ніж братися до роботи.",
@@ -1820,6 +1952,12 @@ export const dict: Record<I18nKey, string> = {
"chat.container.returnToParent.title": "Повернутися до батьківської сесії",
"chat.container.returnToParent.label": "Батьківська",
"chat.container.readOnlySubagentPromptBanner": "Сесії субагентів не можна запитувати.",
"chat.container.sessionLoadError.title": "Не вдалося завантажити сесію",
"chat.container.sessionLoadError.description": "Перевірте з’єднання та спробуйте завантажити цю сесію ще раз.",
"chat.container.sessionLoadError.retry": "Спробувати знову",
"sessions.sidebar.group.empty.loadingSessions": "Завантаження сесій…",
"sessions.sidebar.group.empty.loadFailed": "Не вдалося оновити сесії.",
"sessions.sidebar.group.empty.retry": "Спробувати знову",
"chat.unifiedControls.title": "Елементи керування",
"chat.unifiedControls.model.title": "Модель",
"chat.unifiedControls.model.noRecent": "Немає останніх моделей",
@@ -1864,6 +2002,9 @@ export const dict: Record<I18nKey, string> = {
"chat.messageBody.actions.fork": "Відгалузити звідси",
"chat.messageBody.actions.copyMessageAria": "Копіювати текст повідомлення",
"chat.messageBody.actions.copyMessage": "Копіювати повідомлення",
"chat.messageBody.actions.pinContext": "Прикріпити в контексті (збережеться після стиснення)",
"chat.messageBody.actions.unpinContext": "Відкріпити від контексту (не збережеться після стиснення)",
"chat.messageBody.actions.contextPinFailed": "Не вдалося оновити закріплення в контексті",
"chat.messageBody.actions.openPreviewAria": "Відкрити попередній перегляд",
"chat.messageBody.actions.openPreview": "Відкрити попередній перегляд",
"chat.messageBody.actions.copyAnswer": "Скопіювати відповідь",
@@ -1941,6 +2082,7 @@ export const dict: Record<I18nKey, string> = {
"chat.chatInput.toast.addedFileMentions": "Додано згадки файлів {count}",
"chat.chatInput.toast.attachFileFailed": "Не вдалося прикріпити файл",
"chat.chatInput.toast.attachNamedFailed": "Не вдалося прикріпити {name}",
"chat.chatInput.toast.unsupportedAttachmentModalities": "{model} не підтримує вхідні дані {modalities}, потрібні для {files}. Повідомлення все одно можна надіслати, але ці вкладення можуть бути проігноровані.",
"chat.chatInput.toast.someFilesSkipped": "Деякі файли були пропущені:\n{summary}",
"chat.chatInput.toast.vscodePickFailed": "Не вдалося вибрати файли в VS Code",
"chat.chatInput.toast.openSessionFirst": "Спочатку відкрийте сесію",
@@ -1962,21 +2104,6 @@ export const dict: Record<I18nKey, string> = {
"chat.chatInput.drop.insertMention": "Відпустіть, щоб вставити як згадку",
"chat.chatInput.drop.attachFiles": "Перетягніть файли сюди, щоб прикріпити",
"chat.chatInput.fileFallback": "файл",
"chat.mobileStatus.editProjects.title": "Редагувати проєкти",
"chat.mobileStatus.editProjects.footer": "Перетягніть елементи, щоб змінити порядок, або використовуйте стрілки, щоб перемістити. Натисніть «Редагувати», щоб змінити деталі.",
"chat.mobileStatus.editProjects.empty": "Немає проєктів для редагування",
"chat.mobileStatus.projects.empty": "Жодних проєктів",
"chat.mobileStatus.projects.addAria": "Додати проєкт",
"chat.mobileStatus.projects.removeTitle": "Видалити проєкт",
"chat.mobileStatus.projects.removeDescriptionPrefix": "Ви впевнені, що хочете видалити",
"chat.mobileStatus.projects.cancel": "Скасувати",
"chat.mobileStatus.projects.remove": "Видалити",
"chat.mobileStatus.new": "Новий",
"chat.mobileStatus.noSessionsInProject": "У цьому проєкті немає сесій",
"chat.mobileStatus.swipeHint": "← Проведіть пальцем тут, щоб відкрити бічні панелі →",
"chat.mobileStatus.toast.addProjectFailed": "Не вдалося додати проєкт",
"chat.mobileStatus.toast.selectValidDirectory": "Виберіть правильний каталог.",
"chat.mobileStatus.toast.selectDirectoryFailed": "Не вдалося вибрати каталог",
"chat.toolOutputDialog.image.previousAria": "Попереднє зображення",
"chat.toolOutputDialog.image.nextAria": "Наступне зображення",
"chat.toolOutputDialog.image.closeAria": "Закрити попередній перегляд зображення",
@@ -2131,7 +2258,6 @@ export const dict: Record<I18nKey, string> = {
"commandPalette.item.addProject": "Додати проєкт",
"commandPalette.item.showSessionSwitcher": "Показати перемикач сесій",
"commandPalette.item.toggleSidebar": "Перемкнути бічну панель",
"commandPalette.item.toggleRightSidebar": "Перемкнути праву бічну панель",
"commandPalette.item.showContextUsage": "Показати використання контексту",
"commandPalette.item.toggleTerminal": "Перемкнути термінал",
"commandPalette.item.openSettings": "Відкрити налаштування...",
@@ -2309,6 +2435,7 @@ export const dict: Record<I18nKey, string> = {
"projectActions.actions.addAction": "Додати дію",
"projectActions.actions.addNewAction": "Додати нову дію",
"projectActions.actions.autoDiscover": "Автовиявлення",
"projectActions.actions.autoDiscoverTooltip": "Автоматично знаходить і запускає сервер розробки",
"projectActions.actions.chooseActionAria": "Вибрати дію проєкту",
"projectActions.actions.openPreview": "Відкрити Preview",
"projectActions.actions.runNamedAria": "Запустити {name}",
@@ -2442,9 +2569,9 @@ export const dict: Record<I18nKey, string> = {
"miniChat.status.busy": "Виконується",
"miniChat.status.retry": "Повторна спроба",
"miniChat.status.idle": "Очікує",
"miniChat.actions.pin": "Закріпити над іншими вікнами",
"miniChat.actions.pin": "Прикріпити над іншими вікнами",
"miniChat.actions.unpin": "Відкріпити вікно",
"miniChat.actions.pinAria": "Закріпити вікно Mini Chat",
"miniChat.actions.pinAria": "Прикріпити вікно Mini Chat",
"miniChat.actions.unpinAria": "Відкріпити вікно Mini Chat",
"miniChat.actions.openMain": "Відкрити в головному вікні",
"miniChat.actions.openMainAria": "Відкрити сесію в головному вікні",
@@ -9,6 +9,9 @@ export const settingsDict = {
'settings.providers.page.openCodeGo.validate': '验证',
'settings.providers.page.openCodeGo.delete': '删除',
'settings.providers.page.quotaCredentials.saved': '已保存 {provider} 凭据。',
'settings.providers.page.quotaCredentials.accessToken': '访问令牌',
'settings.providers.page.quotaCredentials.refreshToken': '刷新令牌',
'settings.providers.page.quotaCredentials.tokenPlaceholder': '粘贴令牌',
'settings.providers.page.openCodeGo.saveFailed': '无法验证 OpenCode Go 凭据。',
'settings.providers.page.openCodeGo.valid': 'OpenCode Go 凭据有效。',
'settings.providers.page.openCodeGo.invalid': 'OpenCode Go 凭据无效或已过期。',
@@ -47,6 +50,10 @@ export const settingsDict = {
'settings.view.search.aria': '搜索设置',
'settings.view.search.clear': '清除设置搜索',
'settings.view.search.noResults': '没有匹配的设置',
'settings.view.nav.group.general': 'OpenChamber',
'settings.view.nav.group.projects': '工作区',
'settings.view.nav.group.opencode': 'OpenCode',
'settings.view.nav.group.content': '资源库',
'settings.page.projects.title': '项目',
'settings.page.remoteInstances.title': '远程实例',
'settings.page.providers.title': '提供商',
@@ -59,13 +66,22 @@ export const settingsDict = {
'settings.page.skillsCatalog.title': '技能目录',
'settings.page.git.title': 'Git',
'settings.page.appearance.title': '外观',
'settings.page.appearance.description': '自定义 OpenChamber 的外观与体验。',
'settings.page.chat.title': '聊天',
'settings.page.chat.description': '配置消息和工具的显示方式。',
'settings.page.shortcuts.title': '快捷键',
'settings.page.shortcuts.description': '自定义键盘快捷键。',
'settings.page.general.title': '通用',
'settings.page.general.description': '应用启动、安全、连接与隐私。',
'settings.page.sessions.title': '会话',
'settings.page.sessions.description': '设置会话的默认值和保留策略。',
'settings.page.magicPrompts.title': '魔法提示词',
'settings.page.notifications.title': '通知',
'settings.page.notifications.description': '选择何时以及如何接收通知。',
'settings.page.voice.title': '语音',
'settings.page.tunnel.title': '远程隧道',
'settings.page.voice.description': '配置语音朗读与听写。',
'settings.page.tunnel.title': '外部隧道',
'settings.page.tunnel.description': '通过远程隧道公开此实例。',
'settings.page.about.title': '关于',
'settings.page.snippets.title': '代码片段',
'settings.snippets.sidebar.title': '代码片段',
@@ -90,7 +106,7 @@ export const settingsDict = {
'settings.snippets.page.toast.contentRequired': '代码片段内容为必填项',
'settings.snippets.page.toast.saveFailed': '保存代码片段失败',
'settings.snippets.page.toast.saved': '代码片段已保存',
'settings.openchamber.tunnel.title': '远程隧道',
'settings.openchamber.tunnel.title': '外部隧道',
'settings.openchamber.tunnel.description': '通过快速链接或你自己的 Cloudflare Managed Remote 隧道配置安全远程访问。',
'settings.openchamber.tunnel.note.serverSideEnforced': '安全隧道访问在服务端强制执行。',
'settings.openchamber.tunnel.note.connectLinksOneTime': '连接链接为一次性,隧道停止或连接链接 TTL 到期后会被吊销。',
@@ -366,6 +382,7 @@ export const settingsDict = {
'settings.remoteInstances.page.logsDialog.selectedInstanceFallback': '所选实例',
'settings.remoteInstances.page.patternDialog.descriptionWithHost': '{host} 需要一个具体目标地址。',
'settings.remoteInstances.page.patternDialog.description': '输入目标地址。',
'settings.common.infoAria': '更多信息',
'settings.common.actions.cancel': '取消',
'settings.common.actions.create': '创建',
'settings.common.actions.delete': '删除',
@@ -376,6 +393,8 @@ export const settingsDict = {
'settings.common.actions.copyAll': '全部复制',
'settings.common.actions.clear': '清除',
'settings.common.actions.saving': '保存中...',
'settings.common.status.saved': '已保存',
'settings.common.status.saveFailed': '保存失败',
'settings.common.actions.saveChanges': '保存更改',
'settings.common.scope.global': '全局',
'settings.common.scope.project': '项目',
@@ -460,6 +479,33 @@ export const settingsDict = {
'settings.agents.page.section.identityRole': '身份与角色',
'settings.agents.page.section.modelParameters': '模型与参数',
'settings.agents.page.section.systemPrompt': '系统提示词',
'settings.agents.page.permissionsEditor.sectionInfo': '按配置文件中保存的原样编辑此代理自身的权限规则。“继承”表示不设置该键,将应用全局配置和默认值。',
'settings.agents.page.permissionsEditor.defaultLabel': '所有工具的默认值',
'settings.agents.page.permissionsEditor.defaultAria': '所有工具的默认权限',
'settings.agents.page.permissionsEditor.defaultInfo': '代理级别的回退(* 键),适用于没有单独规则的工具。',
'settings.agents.page.permissionsEditor.effectiveHint': '→ {action}',
'settings.agents.page.permissionsEditor.ruleCount': '{count} 条规则',
'settings.agents.page.permissionsEditor.keyAria': '{key} 的权限',
'settings.agents.page.permissionsEditor.patternPlaceholder': '模式,例如 rm -rf * 或 /path/**',
'settings.agents.page.permissionsEditor.patternActionAria': '{key} 模式的操作',
'settings.agents.page.permissionsEditor.customKeyPlaceholder': '自定义权限键…',
'settings.agents.page.permissionsEditor.sessionRulesTitle': '会话中授予(未保存)',
'settings.agents.page.permissionsEditor.sessionRulesInfo': '在会话中授予的规则(如“始终允许”的回答)。当前生效,但不属于已保存的配置,重启后消失。',
'settings.agents.page.permissionsEditor.action.default': '默认',
'settings.agents.page.permissionsEditor.action.inherit': '继承',
'settings.agents.page.permissionsEditor.action.allow': '允许',
'settings.agents.page.permissionsEditor.action.ask': '询问',
'settings.agents.page.permissionsEditor.action.deny': '拒绝',
'settings.agents.page.permissionsEditor.actions.save': '保存权限',
'settings.agents.page.permissionsEditor.actions.discard': '放弃',
'settings.agents.page.permissionsEditor.actions.addRule': '添加规则',
'settings.agents.page.permissionsEditor.actions.addKey': '添加键',
'settings.agents.page.permissionsEditor.actions.removeRuleAria': '删除规则',
'settings.agents.page.permissionsEditor.actions.retry': '重试',
'settings.agents.page.permissionsEditor.state.loadFailed': '无法加载代理的权限配置。',
'settings.agents.page.permissionsEditor.toast.saved': '权限已保存',
'settings.agents.page.permissionsEditor.toast.savedRestartRequired': '权限已保存 — 重启 OpenCode 服务器后生效',
'settings.agents.page.permissionsEditor.toast.saveFailed': '保存权限失败',
'settings.agents.page.section.toolPermissions': '工具权限',
'settings.agents.page.field.agentName': '智能体名称',
'settings.agents.page.field.agentNamePlaceholder': 'agent-name',
@@ -495,10 +541,16 @@ export const settingsDict = {
'settings.agents.page.permissions.permissionPlaceholder': '权限...',
'settings.agents.page.permissions.patternPlaceholder': '模式(例如 *)',
'settings.page.behavior.title': '行为',
'settings.page.behavior.description': '引导智能体的回复方式。',
'settings.behavior.page.title': '行为',
'settings.behavior.page.warning.title': '全局规则会与项目规则合并使用',
'settings.behavior.page.warning.description': '此处所做的更改会更新 {path}。当项目级 AGENTS.md 存在时,OpenCode 也会包含它。',
'settings.behavior.page.section.systemPrompt': '全局 AGENTS.md',
'settings.behavior.page.section.systemPromptOptimization': '系统提示词优化',
'settings.behavior.page.systemPromptOptimization.enable': '优化系统提示词大小',
'settings.behavior.page.systemPromptOptimization.enableAria': '优化 OpenCode 系统提示词大小',
'settings.behavior.page.systemPromptOptimization.info': '预计可将 build 和 plan 代理的系统提示词缩减约 40%,其他代理不会改变。这可能会移除覆盖 build 或 plan 的自定义定义,因此此类工作流请勿启用。重启 OpenCode 后应用更改。',
'settings.behavior.page.systemPromptOptimization.restarting': '正在重启 OpenCode 以应用系统提示词优化…',
'settings.behavior.page.field.systemPromptPlaceholder': '你是一个有帮助的 AI 助手...\n\n使用此空间定义 AI 在所有会话和提供商中的绝对行为规则。',
'settings.behavior.page.section.responseStyle': '回复风格',
'settings.behavior.page.responseStyle.tooltip': '启用后,这些说明会指导助手在每个新对话中的回复方式。它们会随你的第一条消息一起发送,不会更改全局 AGENTS.md 规则。',
@@ -861,17 +913,24 @@ export const settingsDict = {
'settings.openchamber.sessionRetention.toast.failedDeleteCount': '删除 {count} 个会话失败',
'settings.openchamber.desktopNetwork.title': '桌面端网络访问',
'settings.openchamber.desktopNetwork.field.windowControlsPosition': '窗口控件位置',
'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': '选择最小化、最大化和关闭按钮的显示位置。自动会按操作系统决定。',
'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': '选择最小化、最大化和关闭按钮的显示位置。默认在右侧。',
'settings.openchamber.desktopNetwork.field.windowControlsPositionAria': '窗口控件位置',
'settings.openchamber.desktopNetwork.option.windowControlsAuto': '自动',
'settings.openchamber.desktopNetwork.option.windowControlsLeft': '左侧',
'settings.openchamber.desktopNetwork.option.windowControlsRight': '右侧',
'settings.openchamber.desktopNetwork.field.windowControls': '窗口控件',
'settings.openchamber.desktopNetwork.field.windowControlsStyle': '样式',
'settings.openchamber.desktopNetwork.field.windowControlsStyleAria': '窗口控件样式',
'settings.openchamber.desktopNetwork.option.windowControlsClassic': '经典',
'settings.openchamber.desktopNetwork.option.windowControlsTrafficLights': '红绿灯',
'settings.openchamber.desktopNetwork.field.launchAtLoginAria': '登录时启动 OpenChamber',
'settings.openchamber.desktopNetwork.field.launchAtLogin': '登录时启动 OpenChamber',
'settings.openchamber.desktopNetwork.field.launchAtLoginDescription': '在后台启动应用且不打开窗口。可通过桌面状态图标打开。',
'settings.openchamber.desktopNetwork.field.macMenuBarAria': '在 macOS 菜单栏中显示 OpenChamber',
'settings.openchamber.desktopNetwork.field.macMenuBar': '在菜单栏中显示 OpenChamber',
'settings.openchamber.desktopNetwork.field.macMenuBarDescription': '需要重启应用。关闭后,OpenChamber 不会创建菜单栏项目,也不会运行相关的会话、审批和用量更新。',
'settings.openchamber.desktopNetwork.field.minimizeToTrayAria': '将 OpenChamber 最小化和关闭到系统托盘',
'settings.openchamber.desktopNetwork.field.minimizeToTray': '最小化和关闭到系统托盘',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': '主窗口最小化或关闭时,让 OpenChamber 继续在 Windows 系统托盘中运行。',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': '主窗口最小化或关闭时,让 OpenChamber 继续在系统托盘中运行。',
'settings.openchamber.desktopNetwork.field.keepAwakeAria': 'OpenChamber 运行时保持电脑唤醒',
'settings.openchamber.desktopNetwork.field.keepAwake': 'OpenChamber 运行时保持电脑唤醒',
'settings.openchamber.desktopNetwork.field.keepAwakeDescription': '让手机可以继续打开此应用。屏幕仍可关闭。',
@@ -880,6 +939,8 @@ export const settingsDict = {
'settings.openchamber.desktopNetwork.field.allowLanAccessDescription': '会重启应用,以便手机、平板和同一 Wi‑Fi 下的其他电脑访问。',
'settings.openchamber.desktopNetwork.field.warning': '警告:启用后,同一本地网络中的任何人都可访问此应用。',
'settings.openchamber.desktopNetwork.field.passwordRequiredWarning': '局域网访问需要桌面 UI 密码。在设置密码之前,桌面应用只会以本机访问模式启动。',
'settings.openchamber.desktopPassword.actions.showPassword': '显示密码',
'settings.openchamber.desktopPassword.actions.hidePassword': '隐藏密码',
'settings.openchamber.desktopPassword.field.password': '桌面 UI 密码',
'settings.openchamber.desktopPassword.field.passwordPlaceholder': '不需要密码',
'settings.openchamber.desktopPassword.field.passwordDescription': 'OpenChamber 会在重启后要求输入密码,之后在登录会话过期时再次要求:12 小时后,或选择“信任此设备”后 7 天。留空可关闭登录。',
@@ -902,6 +963,9 @@ export const settingsDict = {
'settings.openchamber.opencodeCli.field.binaryPathPlaceholder': '/Users/you/.bun/bin/opencode',
'settings.openchamber.opencodeCli.field.showUpdateNotifications': '显示 OpenCode 更新通知',
'settings.openchamber.opencodeCli.field.showUpdateNotificationsAria': '显示 OpenCode 更新通知',
'settings.openchamber.opencodeCli.field.agentControlTool': '智能体控制工具',
'settings.openchamber.opencodeCli.field.agentControlToolAria': '启用智能体控制工具',
'settings.openchamber.opencodeCli.field.agentControlToolInfo': '让智能体在聊天中编排你的工作:创建会话和 worktree、将提示委派给其他智能体、管理计划任务。会为每个会话添加少量工具说明。在 Save + Reload 后生效。',
'settings.openchamber.opencodeCli.actions.browseAria': '浏览 OpenCode 可执行文件路径',
'settings.openchamber.opencodeCli.actions.browse': '浏览',
'settings.openchamber.opencodeCli.actions.saveAndReload': '保存并重载',
@@ -1008,10 +1072,9 @@ export const settingsDict = {
'settings.openchamber.keyboardShortcuts.action.toggle_terminal.label': '切换终端停靠区',
'settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label': '切换终端展开',
'settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label': '切换侧边栏',
'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': '切换右侧边栏',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': '打开右侧边栏 Git 标签',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': '打开右侧边栏 Files 标签',
'settings.openchamber.keyboardShortcuts.action.cycle_right_sidebar_tab.label': '轮换右侧边栏标签',
'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': '切换上下文面板',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': '打开 Git 界面',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': '打开文件界面',
'settings.openchamber.keyboardShortcuts.action.new_chat.label': '新建会话',
'settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label': '新建工作树草稿',
'settings.openchamber.keyboardShortcuts.action.new_mini_chat.label': '新建 Mini Chat 窗口',
@@ -1197,7 +1260,7 @@ export const settingsDict = {
'settings.openchamber.worktrees.setup.waitForCommandsAria': '创建或发送会话前等待 Worktree 初始化命令完成',
'settings.openchamber.worktrees.setup.toast.saveFailed': '保存 Worktree 初始化命令失败',
'settings.openchamber.worktrees.list.title': '现有工作树',
'settings.openchamber.worktrees.list.tooltip': '工作树位于仓库外部(由 OpenCode 管理)。删除工作树也会删除关联会话。',
'settings.openchamber.worktrees.list.tooltip': '删除工作树也会删除其关联会话。',
'settings.openchamber.worktrees.list.loading': '正在加载工作树...',
'settings.openchamber.worktrees.list.empty': '该项目未找到工作树',
'settings.openchamber.worktrees.list.detachedHead': '分离 HEAD',
@@ -1457,6 +1520,10 @@ export const settingsDict = {
'settings.openchamber.defaults.smallModel.useDefault': '使用默认小模型',
'settings.openchamber.defaults.smallModel.useDefaultAria': '使用默认小模型',
'settings.openchamber.defaults.smallModel.overrideModel': '覆盖模型',
'settings.openchamber.defaults.walkthroughModel.title': '改动导读模型',
'settings.openchamber.defaults.walkthroughModel.description': 'AI 评审改动需要结构化输出和容纳整份差异的空间,廉价的小模型往往做不到。目录中标注为不支持结构化输出的模型不会出现在此列表里。 未选择时将使用小模型。',
'settings.openchamber.defaults.walkthroughModel.overrideModel': '导读模型',
'settings.openchamber.defaults.walkthroughModel.usesSmallModel': '小模型',
'settings.openchamber.defaults.field.showDeletionDialog': '显示删除对话框',
'settings.openchamber.defaults.field.openFilesPreviewAria': '以预览模式打开可预览文件',
'settings.openchamber.defaults.field.openFilesPreview': '以预览模式打开可预览文件',
@@ -1585,6 +1652,7 @@ export const settingsDict = {
'settings.voice.page.section.playbackAndSummary': '播放',
'settings.voice.page.field.provider': '提供方',
'settings.voice.page.provider.browser': '浏览器',
'settings.voice.page.provider.openai': 'OpenAI',
'settings.voice.page.provider.custom': '自定义',
'settings.voice.page.provider.say': 'Say',
'settings.voice.page.provider.server': '服务器',
@@ -1664,18 +1732,24 @@ export const settingsDict = {
'settings.voice.page.field.ttsInputModeRaw': '原始 Markdown',
'settings.voice.page.field.ttsInputModeSummarized': '摘要',
'settings.openchamber.visual.section.colorMode': '颜色模式',
'settings.openchamber.visual.section.colorModeAndTheme': '颜色模式与主题',
'settings.openchamber.visual.section.mobileLayout': '移动端布局',
'settings.openchamber.visual.option.mobileLayout.default': '旧版',
'settings.openchamber.visual.option.mobileLayout.new': '新版',
'settings.openchamber.visual.section.localization': '本地化',
'settings.openchamber.visual.section.spacingAndLayout': '间距与布局',
'settings.openchamber.visual.section.densityAndType': '密度与字体',
'settings.openchamber.visual.section.appInstall': '应用安装',
'settings.openchamber.visual.section.navigation': '导航',
'settings.openchamber.visual.section.chatRenderMode': '聊天渲染模式',
'settings.openchamber.visual.section.chatRenderModeAria': '聊天渲染模式',
'settings.openchamber.visual.section.chatDisplay': '显示',
'settings.openchamber.visual.section.chatMessageOptions': '消息选项',
'settings.openchamber.visual.section.chatFeatures': '功能',
'settings.openchamber.visual.section.messageStreamTransport': '消息流传输方式',
'settings.openchamber.visual.section.activityDefault': '活动默认状态',
'settings.openchamber.visual.section.activityDefaultAria': '活动默认模式',
'settings.openchamber.visual.section.showToolsOpenedByDefault': '默认展开以下工具:',
'settings.openchamber.visual.section.showToolsOpenedByDefault': '默认展开以下工具',
'settings.openchamber.visual.section.sessionAssistance': '会话辅助',
'settings.openchamber.visual.section.reasoning': '推理',
'settings.openchamber.visual.section.messageAppearance': '消息外观',
@@ -1728,6 +1802,11 @@ export const settingsDict = {
'settings.openchamber.visual.field.fontSizePercentageAria': '字体大小百分比',
'settings.openchamber.visual.actions.resetFontSizeAria': '重置字体大小',
'settings.openchamber.visual.field.terminalFontSize': '终端字体大小',
'settings.openchamber.visual.field.terminalShell': '终端 Shell',
'settings.openchamber.visual.field.terminalShellAria': '选择终端 Shell',
'settings.openchamber.visual.field.terminalShellHint': '重启终端以将此更改应用到当前会话。',
'settings.openchamber.visual.field.terminalLoginShell': '作为登录 Shell 启动',
'settings.openchamber.visual.option.terminalShell.auto': '自动',
'settings.openchamber.visual.field.editorFontSize': '编辑器字体大小',
'settings.openchamber.visual.field.codeFont': '代码字体',
'settings.openchamber.visual.field.selectCodeFontAria': '选择代码字体',
@@ -1775,6 +1854,9 @@ export const settingsDict = {
'settings.openchamber.visual.field.promptNavigatorEnabled': '提示词导航',
'settings.openchamber.visual.field.expandedEditorToolbarAria': 'Always show editor toolbar',
'settings.openchamber.visual.field.expandedEditorToolbar': 'Always show editor toolbar (docked under the file tabs)',
'settings.openchamber.visual.field.autoSaveEnabledAria': '自动保存文件',
'settings.openchamber.visual.field.autoSaveEnabled': '自动保存文件',
'settings.openchamber.visual.field.autoSaveEnabledInfo': '停止输入后自动保存文件编辑内容。关闭后需手动保存。',
'settings.openchamber.visual.field.wideChatLayoutAria': '宽聊天布局',
'settings.openchamber.visual.field.wideChatLayout': '宽聊天布局',
'settings.openchamber.visual.field.showSplitAssistantMessageActionsAria': '内联助手操作',
@@ -1782,6 +1864,8 @@ export const settingsDict = {
'settings.openchamber.visual.field.showSplitAssistantMessageActionsTooltip': '在同一条回复中,如果助手文本块后面还有工具调用,则显示“复制回答”“保存为图片”和“朗读”操作。',
'settings.openchamber.visual.field.allowPromptingSubagentSessionsAria': '允许向子智能体会话发送提示',
'settings.openchamber.visual.field.allowPromptingSubagentSessions': '允许向子智能体会话发送提示',
'settings.openchamber.visual.field.draftStartersVisible': '在新会话页面显示快捷入口',
'settings.openchamber.visual.field.draftStartersVisibleAria': '在新会话页面显示快捷入口',
'settings.openchamber.visual.field.showToolFileIconsAria': '显示工具文件图标',
'settings.openchamber.visual.field.codeBlockLineWrapAria': '代码块自动换行',
'settings.openchamber.visual.field.codeBlockLineWrap': '代码块自动换行',
@@ -1801,8 +1885,11 @@ export const settingsDict = {
'settings.openchamber.visual.field.sendAnonymousUsageReports': '发送匿名使用报告',
'settings.openchamber.visual.field.sendAnonymousUsageReportsHint': '帮助我们了解哪些应用版本正在被积极使用,以便优先改进。仅收集应用版本、平台和运行时信息,不收集个人数据或代码。',
'settings.openchamber.visual.option.themeMode.system': '跟随系统',
'settings.openchamber.visual.option.themeMode.system.description': '跟随系统设置',
'settings.openchamber.visual.option.themeMode.light': '浅色',
'settings.openchamber.visual.option.themeMode.light.description': '始终使用浅色外观',
'settings.openchamber.visual.option.themeMode.dark': '深色',
'settings.openchamber.visual.option.themeMode.dark.description': '始终使用深色外观',
'settings.openchamber.visual.option.diffLayout.dynamic.label': '动态',
'settings.openchamber.visual.option.diffLayout.dynamic.description': '新增文件用行内视图,修改文件用并排视图。',
'settings.openchamber.visual.option.diffLayout.inline.label': '始终行内',
+170 -43
View File
@@ -3,6 +3,15 @@ import { settingsDict } from './zh-CN.settings';
export const dict: Record<I18nKey, string> = {
...settingsDict,
'terminalView.actions.attachSelection': '附加所选输出',
'terminalView.actions.restart': '重启终端',
'chat.message.terminalContext': '{terminal},第 {start}-{end} 行',
'chat.chatInput.terminalContext': '{terminal},第 {start}-{end} 行',
'chat.chatInput.terminalContextRemove': '移除终端上下文',
'chat.chatInput.prCommentContext': 'PR 评论',
'chat.chatInput.prCommentContextRemove': '移除 PR 评论上下文',
'chat.chatInput.prCheckContext': '失败的 PR 检查',
'chat.chatInput.prCheckContextRemove': '移除 PR 检查上下文',
'common.loading': '加载中...',
'common.unavailable': '不可用',
'common.language.english': 'English',
@@ -44,6 +53,9 @@ export const dict: Record<I18nKey, string> = {
'mobile.connect.unlockButton': '解锁并连接',
'mobile.connect.cancelPassword': '使用其他服务器',
'mobile.connect.connecting': '连接中...',
'mobile.connect.notice.unreachable': '无法连接到 {label}。请确认服务器正在运行。',
'mobile.connect.notice.authExpired': '对 {label} 的访问已过期或被撤销。请重新登录。',
'mobile.connect.recovery.description': '无法连接到已保存的服务器。请确认它正在运行,或选择其他实例。',
'mobile.connect.scanQr': '扫描二维码',
'mobile.connect.welcome.scanHint': '在电脑上打开「添加设备」显示二维码,然后在这里扫描。',
'mobile.connect.advanced': '高级',
@@ -79,14 +91,14 @@ export const dict: Record<I18nKey, string> = {
'mobile.nav.changes': '更改',
'mobile.nav.settings': '设置',
'mobile.surface.closeAria': '关闭',
'mobile.header.openMenuAria': '打开菜单',
'mobile.header.openWorkspaceAria': '打开工作区面板',
'mobile.header.openMetadataAria': '打开会话元数据',
'mobile.header.metadata.context': '上下文',
'mobile.header.metadata.branch': '分支',
'mobile.header.metadata.usage': '用量',
'mobile.menu.titleAria': '工作区工具',
'mobile.menu.files': '文件',
'mobile.menu.changes': '更改',
'mobile.menu.terminal': '终端',
'mobile.menu.mcp': 'MCP',
'mobile.menu.instances': '实例',
'mobile.menu.update': '更新',
@@ -113,17 +125,19 @@ export const dict: Record<I18nKey, string> = {
'mobile.sessions.newChat': '新会话',
'mobile.sessions.editOrder': '重新排序项目',
'mobile.sessions.doneEditing': '完成',
'mobile.sessions.editOrderHint': '拖动手柄或使用箭头重新排序。点击对勾以完成。',
'mobile.sessions.editOrderHint': '拖动手柄以重新排序项目。点按项目可显示其工作树并同样拖动排序。点按对勾完成。',
'mobile.sessions.dragHandleAria': '拖动 {label} 以重新排序',
'mobile.sessions.moveUpAria': '将 {label} 上移',
'mobile.sessions.moveDownAria': '将 {label} 下移',
'mobile.sessions.removeProjectAria': '移除 {label}',
'mobile.sessions.cancelRemoveProjectAria': '取消移除 {label}',
'mobile.sessions.confirmRemoveProject': '关闭',
'mobile.sessions.confirmRemoveProjectAria': '确认移除 {label}',
'mobile.sessions.toast.projectRemoved': '已移除 {label}',
'mobile.sessions.archiveSessionAria': '归档 {title}',
'mobile.sessions.cancelArchiveAria': '取消归档 {title}',
'mobile.sessions.renameSessionAria': '重命名 {title}',
'mobile.sessions.renameError': '重命名会话失败',
'mobile.sessions.deleteSessionAria': '删除 {title}',
'mobile.sessions.confirmDeleteSessionAria': '确认删除 {title}',
'mobile.sessions.editProjectAria': '编辑 {label}',
'mobile.projectEdit.worktreesTitle': '工作树',
'mobile.projectEdit.worktreesEmpty': '此项目还没有工作树。',
@@ -170,6 +184,8 @@ export const dict: Record<I18nKey, string> = {
'mobile.files.copyPathAria': '复制文件路径',
'mobile.files.copyContent': '复制内容',
'mobile.files.copyContentAria': '复制文件内容',
'mobile.files.editAria': '编辑文件',
'mobile.files.doneEditingAria': '完成编辑',
'mobile.files.toast.pathCopied': '路径已复制',
'mobile.files.toast.contentCopied': '内容已复制',
'mobile.files.toast.copyFailed': '复制失败',
@@ -291,6 +307,8 @@ export const dict: Record<I18nKey, string> = {
'sessions.scheduledTasks.editor.goal.aria': '将此任务作为代理持续推进直至完成的目标运行',
'sessions.scheduledTasks.editor.goal.budgetLabel': '令牌预算',
'sessions.scheduledTasks.editor.goal.budgetAria': '用令牌预算限制该目标',
'sessions.scheduledTasks.editor.permissionAutoAccept.label': '自动接受权限',
'sessions.scheduledTasks.editor.permissionAutoAccept.aria': '启动任务会话时启用权限自动接受',
'sessions.scheduledTasks.editor.actions.closeAria': '关闭',
'sessions.scheduledTasks.editor.actions.cancel': '取消',
'sessions.scheduledTasks.editor.actions.save': '保存',
@@ -409,6 +427,28 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.empty.noMatches.title': '没有匹配的会话',
'sessions.sidebar.empty.noMatches.description': '请尝试其他标题、分支、文件夹或路径。',
'sessions.sidebar.activity.recentTitle': '最近',
'sessions.archivePage.allDirectories': '所有目录',
'sessions.sidebar.header.displayMode.stickyHeaders': '固定项目标题',
'sessions.sidebar.header.grouping.label': '会话分组',
'sessions.sidebar.header.grouping.byWorktree': '按工作树',
'sessions.sidebar.header.grouping.flat': '平铺列表',
'sessions.sidebar.project.actions.manageWorktrees': '管理工作树',
'sessions.worktreesPage.title': '{project} 的工作树',
'sessions.worktreesPage.description': '创建、查看和删除此项目的 git 工作树。',
'sessions.worktreesPage.closeAria': '关闭工作树',
'sessions.scheduledTasks.page.closeAria': '关闭计划任务',
'sessions.sidebar.nav.archive': '归档',
'sessions.archivePage.title': '归档',
'sessions.archivePage.countSingle': '{count} 个已归档会话',
'sessions.archivePage.countPlural': '{count} 个已归档会话',
'sessions.archivePage.closeAria': '关闭归档',
'sessions.archivePage.searchPlaceholder': '搜索已归档会话',
'sessions.archivePage.empty.noArchived': '没有已归档会话',
'sessions.archivePage.empty.noMatches': '没有匹配的已归档会话',
'sessions.archivePage.otherProjects': '其他项目',
'sessions.archivePage.deleteProject': '删除此项目的所有已归档会话',
'sessions.archivePage.deleteProjectAria': '删除 {label} 的所有已归档会话',
'sessions.archivePage.deleteSessionAria': '删除 {title}',
'sessions.switcher.openAria': '打开会话切换器',
'sessions.switcher.empty': '没有最近会话',
'sessions.switcher.draftTitle': '新会话',
@@ -442,6 +482,10 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.project.actions.edit': '编辑',
'sessions.sidebar.project.actions.newDraftSession': '新建草稿会话',
'sessions.sidebar.session.menu.rename': '重命名',
'sessions.sidebar.session.menu.copyId': '复制会话 ID',
'sessions.sidebar.session.copyId.success': '会话 ID 已复制',
'sessions.sidebar.session.copyId.error': '无法复制会话 ID',
'header.sessionActions.openAria': '打开会话操作',
'sessions.sidebar.session.rename.save': '保存会话名称',
'sessions.sidebar.session.rename.cancel': '取消重命名会话',
'sessions.sidebar.session.menu.unpin': '取消置顶会话',
@@ -451,6 +495,12 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.menu.copyLink': '复制链接',
'sessions.sidebar.session.menu.unshare': '取消分享',
'sessions.sidebar.session.menu.exportMarkdown': '导出 Markdown',
'sessions.sidebar.session.menu.moveToWorktree': '移至新工作树',
'sessions.sidebar.session.moveToWorktree.success': '会话已移至新工作树',
'sessions.sidebar.session.moveToWorktree.failed': '无法将会话移至新工作树',
'sessions.sidebar.session.moveToWorktree.tooltip': '从当前分支创建新工作树,转移未提交的更改,并将此会话及其子会话移至其中。',
'sessions.sidebar.session.moveToWorktree.tooltipBusy': '仅在会话空闲时可用。请停止当前活动或等待其完成。',
'sessions.sidebar.session.moveToWorktree.tooltipMoving': '此会话已在移至新工作树。',
'sessions.sidebar.session.menu.runFusion': '运行融合',
'sessions.sidebar.session.menu.openInSidePanel': '在侧边面板中打开',
'sessions.sidebar.session.actions.openInEditor': '在编辑器中打开',
@@ -458,6 +508,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.menu.label': '会话菜单',
'sessions.sidebar.session.untitled': '未命名会话',
'sessions.sidebar.session.export.nothingToExport': '没有可导出的内容',
'sessions.sidebar.session.export.failedLoadHistory': '无法加载完整的会话历史记录',
'sessions.sidebar.session.export.success': '会话已导出',
'sessions.sidebar.session.export.failedRevealPath': '显示路径失败',
'sessions.sidebar.session.export.untitledSubagent': '未命名子智能体',
@@ -471,6 +522,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.status.active': '会话活跃中',
'sessions.sidebar.session.status.unread': '有未读更新',
'sessions.sidebar.session.status.pinned': '已置顶会话',
'sessions.sidebar.session.status.movingToWorktree': '正在将会话移至新工作树',
'sessions.sidebar.session.status.permissionRequired': '需要权限',
'sessions.sidebar.session.subsessions.collapse': '折叠子会话',
'sessions.sidebar.session.subsessions.expand': '展开子会话',
@@ -512,7 +564,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': '此操作将永久删除来自 {dateLabel} 的 {count} 个会话。',
'sessions.sidebar.dialogs.sessionList.more': '+{count} 更多',
'sessions.sidebar.session.share.successTitle': '会话已分享',
'sessions.sidebar.session.share.successDescription': '你可以在菜单中复制链接。',
'sessions.sidebar.session.share.successDescription': '分享链接已复制到剪贴板。',
'sessions.sidebar.session.share.error': '无法分享会话',
'sessions.sidebar.session.share.copyUrlError': '复制 URL 失败',
'sessions.sidebar.session.unshare.success': '会话已取消分享',
@@ -694,6 +746,8 @@ export const dict: Record<I18nKey, string> = {
'gitView.header.noIdentity': '无身份',
'gitView.header.noProfiles': '没有可应用的配置。',
'gitView.header.repositoryViews': '仓库视图',
'gitView.header.updateBranch': '更新分支',
'gitView.header.openPullRequest': '打开拉取请求',
'gitView.header.removeRemoteAria': '移除远程 {name}',
'gitView.header.removeRemoteTitle': '移除 {name}',
'gitView.header.upstreamSynced': '已同步',
@@ -745,6 +799,7 @@ export const dict: Record<I18nKey, string> = {
'gitView.history.renamedNoDiff': '已重命名文件,不支持显示差异',
'gitView.history.renderDiffAnyway': '仍然渲染',
'gitView.history.title': '历史',
'gitView.history.refresh': '刷新',
'gitView.graph.title': '图谱',
'gitView.integrate.checking': '检查中…',
'gitView.integrate.cherryPickAbortedToast': '已中止 cherry-pick',
@@ -779,12 +834,15 @@ export const dict: Record<I18nKey, string> = {
'gitView.operation.abort': '中止',
'gitView.operation.continue': '继续',
'gitView.operation.inProgressTitle': '{operation} 进行中',
'gitView.operation.inProgressTitleManyConflicts': '{operation} 进行中:{count} 个冲突',
'gitView.operation.inProgressTitleOneConflict': '{operation} 进行中:{count} 个冲突',
'gitView.operation.merge': '合并',
'gitView.operation.mergeInProgressWithHead': '合并进行中({head})',
'gitView.operation.mergingMessage': '正在合并:{message}',
'gitView.operation.rebase': '变基',
'gitView.operation.rebaseInProgress': '变基进行中',
'gitView.operation.rebasingOnto': '正在将 {headName} 变基到 {onto}',
'gitView.operation.readyToContinueHint': '所有冲突已解决。继续以完成操作。',
'gitView.operation.resolveConflictsHint': '解决冲突,然后继续操作。',
'gitView.operation.resolveWithAi': '使用 AI 解决',
'gitView.stash.confirmButton': '储藏并{operation}',
@@ -879,15 +937,15 @@ export const dict: Record<I18nKey, string> = {
'gitView.pr.actions.openOnGitHubAria': '在 GitHub 中打开拉取请求',
'gitView.pr.actions.openSettings': '打开设置',
'gitView.pr.actions.repo': '仓库',
'gitView.pr.actions.resolveFailedChecks': '处理失败检查',
'gitView.pr.actions.resolveFailedChecksAria': '将失败检查发送给智能体',
'gitView.pr.actions.resolveFailedChecks': '附加失败的检查',
'gitView.pr.actions.resolveFailedChecksAria': '将失败的检查附加到聊天上下文',
'gitView.pr.actions.savePr': '保存 PR',
'gitView.pr.actions.savePrAria': '保存拉取请求更改',
'gitView.pr.actions.sendCommentToAgent': '将评论发送给智能体',
'gitView.pr.actions.sendCommentToAgentAria': '将此评论发送给智能体',
'gitView.pr.actions.sendToAgent': '发送给智能体',
'gitView.pr.actions.shareComments': '分享评论',
'gitView.pr.actions.shareCommentsAria': '将拉取请求评论发送给智能体',
'gitView.pr.actions.sendCommentToAgent': '将评论附加到聊天上下文',
'gitView.pr.actions.sendCommentToAgentAria': '将此评论附加到聊天上下文',
'gitView.pr.actions.sendToAgent': '附加到聊天',
'gitView.pr.actions.shareComments': '附加评论',
'gitView.pr.actions.shareCommentsAria': '将拉取请求评论附加到聊天上下文',
'gitView.pr.actions.toggleDraftAria': '切换草稿状态',
'gitView.pr.actions.refresh': '刷新 PR 状态',
'gitView.pr.actions.refreshAria': '刷新拉取请求状态',
@@ -925,6 +983,10 @@ export const dict: Record<I18nKey, string> = {
'gitView.pr.noMergePermission': '你没有权限合并此拉取请求。',
'gitView.pr.notMergeable': '不可合并',
'gitView.pr.numberLabel': 'PR #{number}',
'gitView.pr.segment.overview': '概览',
'gitView.pr.segment.checks': '检查',
'gitView.pr.segment.comments': '评论',
'gitView.pr.comments.addAll': '全部附加到聊天',
'gitView.pr.placeholder.additionalContext': '补充约束、发布说明或评审上下文...',
'gitView.pr.placeholder.description': '描述此变更...',
'gitView.pr.placeholder.main': '总结你的拉取请求',
@@ -959,9 +1021,6 @@ export const dict: Record<I18nKey, string> = {
'gitView.pullRequest.createHint': '从当前分支创建并管理拉取请求。',
'gitView.pullRequest.availableOnFeatureBranches': '当前分支可以打开 PR 时可用。',
'gitView.pullRequest.title': '拉取请求',
'gitView.tabs.commit': '提交',
'gitView.tabs.pr': 'PR',
'gitView.tabs.update': '更新',
'gitView.tabs.worktree': '工作树',
'gitView.toast.abortOperationFailed': '中止操作失败',
'gitView.toast.appliedIdentity': '已应用身份:{name}',
@@ -1028,9 +1087,81 @@ export const dict: Record<I18nKey, string> = {
'contextPanel.mode.stagedDiff': 'Staged Diff',
'contextPanel.mode.workingDiff': 'Working Diff',
'contextPanel.mode.plan': '计划',
'contextPanel.mode.pr': '拉取请求',
'contextPanel.mode.context': '上下文',
'contextPanel.mode.preview': '预览',
'contextPanel.mode.browser': '浏览器',
'contextRail.aria.rail': '面板界面',
'contextPanel.editorEmpty.title': '未打开文件',
'contextPanel.editorEmpty.description': '从文件树中选择一个文件开始编辑。',
'contextRail.surface.editor.description': '编辑项目文件',
'contextRail.surface.git.description': '提交、分支和拉取请求',
'contextRail.surface.terminal.description': '内置终端',
'contextRail.surface.diff.description': '查看工作区更改',
'contextPanel.mode.walkthrough': '导读',
'contextRail.surface.walkthrough.description': '由 AI 引导的改动导读',
'walkthrough.scope.all': '全部未提交',
'walkthrough.scope.group.workingTree': '工作区',
'walkthrough.scope.group.committed': '已提交',
'walkthrough.scope.staged': '已暂存',
'walkthrough.scope.working': '未暂存',
'walkthrough.scope.branch': '当前分支',
'walkthrough.scope.selectorAria': '选择评审范围',
'walkthrough.language.menuLabel': '导读语言',
'walkthrough.missing.language': '尚无{requested}导读,当前显示的是{shown}版本。',
'walkthrough.missing.model': '尚无由 {model} 生成的导读,当前显示最近一次生成的版本。',
'walkthrough.missing.languageAndModel': '尚无使用该语言和该模型生成的导读,当前显示最近一次生成的版本。',
'walkthrough.language.selectorAria': '选择导读语言',
'walkthrough.scope.pullRequest': 'PR #{number}',
'walkthrough.action.generate': '生成导读',
'walkthrough.action.regenerate': '重新生成',
'walkthrough.action.cancel': '取消',
'walkthrough.action.next': '下一步',
'walkthrough.action.previous': '上一步',
'walkthrough.action.refresh': '刷新',
'walkthrough.action.open': '导读',
'walkthrough.stage.collecting': '正在收集改动',
'walkthrough.stage.asking': '正在等待模型',
'walkthrough.stage.assembling': '正在组装导读',
'walkthrough.empty.title': '还没有导读',
'walkthrough.empty.description': '为这些改动生成一条引导式阅读路线。该操作会调用小模型并消耗 token,因此只在你主动请求时运行。',
'walkthrough.stale.banner': '本次评审之后代码有变动。过时的步骤:{count}',
'walkthrough.stop.staleAll': '该步骤描述的代码已全部变动。',
'walkthrough.stop.stalePartial': '该步骤描述的部分代码已变动。缺失片段:{count}',
'walkthrough.stop.staleShort': '已过时',
'walkthrough.stop.noCode': '当前差异中没有该步骤的代码。',
'walkthrough.uncovered.title': '评审未涵盖的改动:{count}',
'walkthrough.uncovered.description': '评审认为这些改动较常规。展开可自行查看。',
'walkthrough.toc.moreFiles': '其他文件:{count}',
'walkthrough.toc.uncovered': '未涵盖:{count}',
'walkthrough.toc.resize': '调整目录栏宽度',
'walkthrough.importance.critical': '关键',
'walkthrough.importance.context': '背景',
'walkthrough.blocked.noModel.title': '没有可用的小模型',
'walkthrough.blocked.noModel.description': '请登录模型提供方后再生成评审。',
'walkthrough.blocked.emptyDiff.title': '没有可评审的内容',
'walkthrough.blocked.emptyDiff.description': '该范围内暂无改动。',
'walkthrough.blocked.contextTooSmall.title': '当前模型无法容纳这份差异',
'walkthrough.blocked.contextTooSmall.description': '{model} 大约可容纳 {available} 千字符,而这份差异约需 {required} 千字符。我们不会截断内容,请改选上下文更大的模型。',
'walkthrough.blocked.structuredOutput.title': '该模型不支持结构化输出',
'walkthrough.blocked.structuredOutput.description': '{model} 不支持导读所需的结构化响应。',
'walkthrough.blocked.chooseModel': '选择小模型',
'walkthrough.blocked.outputExhausted.title': '模型的回答额度已用尽',
'walkthrough.blocked.outputExhausted.description': '{model} 把全部输出额度用在了推理上,没有返回结果。推理模型在大差异上经常如此——可以换一个少推理的模型,或缩小评审范围。',
'walkthrough.blocked.outputExhausted.descriptionUnknownModel': '小模型把全部输出额度用在了推理上,没有返回结果。推理模型在大差异上经常如此——可以换一个少推理的模型,或缩小评审范围。',
'walkthrough.blocked.onlyGenerated.title': '只有生成文件发生了改动',
'walkthrough.blocked.onlyGenerated.description': '这里的改动全部是锁文件或其他工具生成的产物,评审会有意跳过它们。',
'walkthrough.blocked.contextTooSmall.descriptionUnknownModel': '小模型大约可容纳 {available} 千字符,而这份差异约需 {required} 千字符。我们不会截断内容,请改选上下文更大的模型。',
'walkthrough.blocked.structuredOutput.descriptionUnknownModel': '小模型不支持导读所需的结构化响应。',
'contextRail.surface.plan.description': '查看当前计划',
'contextRail.surface.pr.description': '创建、审查并合并当前分支的拉取请求',
'contextRail.surface.notes.description': '项目的笔记、待办和计划',
'contextRail.surface.context.description': '会话上下文与令牌用量',
'contextRail.surface.browser.description': '内置网页浏览器',
'contextRail.surface.preview.description': '开发服务器预览',
'contextRail.surface.chat.description': '并排打开的会话',
'contextRail.surface.notes': '项目笔记',
'contextRail.editorTree.toggle': '切换文件树',
'contextPanel.browser.open': '打开浏览器面板',
'contextPanel.browser.addressAria': '浏览器地址',
'contextPanel.browser.empty': '网页浏览器',
@@ -1081,6 +1212,7 @@ export const dict: Record<I18nKey, string> = {
'sidebarFilesTree.actions.newFileTitle': '新建文件',
'sidebarFilesTree.actions.newFolderTitle': '新建文件夹',
'sidebarFilesTree.actions.refreshTitle': '刷新',
'sidebarFilesTree.actions.collapseAllTitle': '折叠所有文件夹',
'sidebarFilesTree.actions.fileMenuTitle': '文件菜单',
'sidebarFilesTree.state.searching': '搜索中...',
'sidebarFilesTree.state.loading': '加载中...',
@@ -1150,6 +1282,8 @@ export const dict: Record<I18nKey, string> = {
'filesView.editor.showControlsAria': '显示编辑器控制项',
'filesView.editor.controlsTitle': '编辑器控制项',
'filesView.editor.pickFileFromTree': '请从文件树中选择一个文件。',
'filesView.editor.cannotPreviewBinary': '无法预览二进制文件',
'filesView.editor.binaryFileDescription': '此文件为二进制文件,无法在 OpenChamber 中编辑。请下载后使用其他应用打开。',
'filesView.state.loading': '加载中...',
'filesView.state.openingFileAtChange': '正在打开变更处的文件...',
'filesView.tree.search.placeholder': '搜索文件...',
@@ -1433,6 +1567,8 @@ export const dict: Record<I18nKey, string> = {
'terminalView.quickKeys.tabAria': 'Tab 键',
'terminalView.quickKeys.controlLabel': 'Ctrl',
'terminalView.quickKeys.controlModifierAria': 'Control 修饰键',
'terminalView.quickKeys.altLabel': 'Alt',
'terminalView.quickKeys.altModifierAria': 'Alt 修饰键',
'terminalView.quickKeys.commandModifierAria': 'Command 修饰键',
'terminalView.quickKeys.arrowUpAria': '上箭头',
'terminalView.quickKeys.arrowLeftAria': '左箭头',
@@ -1441,13 +1577,6 @@ export const dict: Record<I18nKey, string> = {
'terminalView.quickKeys.enterAria': 'Enter 键',
'terminalView.tabs.closeTabTitle': '关闭标签页',
'terminalView.tabs.newTabTitle': '新建标签页',
'terminalView.bottomDock.resizeAria': '调整终端面板大小',
'terminalView.bottomDock.restoreTitle': '恢复终端面板高度',
'terminalView.bottomDock.restoreAria': '恢复终端面板高度',
'terminalView.bottomDock.expandTitle': '展开终端面板',
'terminalView.bottomDock.expandAria': '展开终端面板',
'terminalView.bottomDock.closeTitle': '关闭终端面板',
'terminalView.bottomDock.closeAria': '关闭终端面板',
'terminalView.viewport.inputAria': '终端输入',
'directoryExplorerDialog.title': '添加项目目录',
'directoryExplorerDialog.description': '选择一个文件夹添加为项目。',
@@ -1525,10 +1654,9 @@ export const dict: Record<I18nKey, string> = {
'helpDialog.item.focusChatInput': '聚焦聊天输入框',
'helpDialog.item.togglePromptNavigator': '显示或隐藏提示词导航',
'helpDialog.item.abortActiveRun': '中止当前运行(双击)',
'helpDialog.item.toggleRightSidebar': '切换右侧边栏',
'helpDialog.item.openRightSidebarGitTab': '打开右侧边栏 Git 标签',
'helpDialog.item.openRightSidebarFilesTab': '打开右侧边栏文件标签',
'helpDialog.item.cycleRightSidebarTab': '循环右侧边栏标签',
'helpDialog.item.toggleRightSidebar': '切换上下文面板',
'helpDialog.item.openRightSidebarGitTab': '打开 Git 界面',
'helpDialog.item.openRightSidebarFilesTab': '打开文件界面',
'helpDialog.item.toggleTerminalDock': '切换终端停靠栏',
'helpDialog.item.toggleTerminalExpanded': '切换终端展开状态',
'helpDialog.item.togglePlanContextPanel': '切换计划上下文面板',
@@ -1708,6 +1836,7 @@ export const dict: Record<I18nKey, string> = {
'chat.draftPresets.weigh.label': 'Weigh my options',
'chat.draftPresets.plan.label': 'Start feature planning',
'chat.draftPresets.craftGoal.label': '创建 Goal',
'chat.draftPresets.scheduleTask.label': '安排计划任务',
'chat.draftPresets.debug.label': 'Debug an issue',
'chat.draftPresets.review.label': 'Review my changes',
'chat.draftStarters.add': 'Add a starter',
@@ -1748,6 +1877,7 @@ export const dict: Record<I18nKey, string> = {
'chat.statusRow.todo.priority.low': '低优先级',
'chat.statusRow.actions.stopGeneratingAria': '停止生成',
'chat.statusRow.tasksTitle': '任务',
'chat.statusRow.modelStatus': '{model} · {status}',
'chat.statusRow.summary.activeLeft': '{active} 个活跃 · 剩余 {left} 个',
'chat.statusRow.aborted': '已中止',
'chat.revertIndicator.redo': '重做',
@@ -1783,7 +1913,9 @@ export const dict: Record<I18nKey, string> = {
'chat.commandAutocomplete.command.handoffReviewDescription': '根据生成的交接内容创建或复用独立的审查会话。',
'chat.commandAutocomplete.command.featurePlanDescription': '为新功能开始一次引导式的来回规划会话。',
'chat.commandAutocomplete.command.craftGoalDescription': '将想法或任务转化为清晰且可验证的 Goal。',
'chat.commandAutocomplete.command.scheduleTaskDescription': '通过引导式对话定义计划任务。',
'chat.chatInput.toast.craftGoalFailed': '无法开始创建 Goal',
'chat.chatInput.toast.scheduleTaskFailed': '无法开始设置计划任务',
'chat.commandAutocomplete.command.catchUpDescription': '重新进入上下文:你之前在做什么、从哪里继续。',
'chat.commandAutocomplete.command.debugDescription': '在提出修复方案前,引导式地排查 bug 的根本原因。',
'chat.commandAutocomplete.command.weighDescription': '在动手前,权衡 2-3 种方案的利弊并给出推荐。',
@@ -1808,6 +1940,12 @@ export const dict: Record<I18nKey, string> = {
'chat.container.returnToParent.title': '返回父会话',
'chat.container.returnToParent.label': '父级',
'chat.container.readOnlySubagentPromptBanner': '无法向子智能体会话发送提示。',
'chat.container.sessionLoadError.title': '无法加载会话',
'chat.container.sessionLoadError.description': '请检查连接,然后重新加载此会话。',
'chat.container.sessionLoadError.retry': '重试',
'sessions.sidebar.group.empty.loadingSessions': '正在加载会话…',
'sessions.sidebar.group.empty.loadFailed': '无法刷新会话。',
'sessions.sidebar.group.empty.retry': '重试',
'chat.unifiedControls.title': '控制',
'chat.unifiedControls.model.title': '模型',
'chat.unifiedControls.model.noRecent': '没有最近使用的模型',
@@ -1852,6 +1990,9 @@ export const dict: Record<I18nKey, string> = {
'chat.messageBody.actions.fork': '从此处分叉',
'chat.messageBody.actions.copyMessageAria': '复制消息文本',
'chat.messageBody.actions.copyMessage': '复制消息',
'chat.messageBody.actions.pinContext': '固定到上下文(压缩后仍保留)',
'chat.messageBody.actions.unpinContext': '从上下文取消固定(压缩后不再保留)',
'chat.messageBody.actions.contextPinFailed': '无法更新上下文固定状态',
'chat.messageBody.actions.openPreviewAria': '打开预览',
'chat.messageBody.actions.openPreview': '打开预览',
'chat.messageBody.actions.copyAnswer': '复制回答',
@@ -1941,6 +2082,7 @@ export const dict: Record<I18nKey, string> = {
'chat.chatInput.toast.addedFileMentions': '已添加 {count} 个文件提及',
'chat.chatInput.toast.attachFileFailed': '附加文件失败',
'chat.chatInput.toast.attachNamedFailed': '附加 {name} 失败',
'chat.chatInput.toast.unsupportedAttachmentModalities': '{model} 不支持 {files} 所需的 {modalities} 输入。你仍可发送消息,但这些附件可能会被忽略。',
'chat.chatInput.toast.someFilesSkipped': '部分文件被跳过:\n{summary}',
'chat.chatInput.toast.vscodePickFailed': '在 VS Code 中选择文件失败',
'chat.chatInput.toast.openSessionFirst': '请先打开一个会话',
@@ -1962,21 +2104,6 @@ export const dict: Record<I18nKey, string> = {
'chat.chatInput.drop.insertMention': '释放以插入为提及',
'chat.chatInput.drop.attachFiles': '将文件拖放到此处以附加',
'chat.chatInput.fileFallback': '文件',
'chat.mobileStatus.editProjects.title': '编辑项目',
'chat.mobileStatus.editProjects.footer': '拖动可重新排序,或使用箭头移动。点击编辑可修改详情。',
'chat.mobileStatus.editProjects.empty': '没有可编辑的项目',
'chat.mobileStatus.projects.empty': '没有项目',
'chat.mobileStatus.projects.addAria': '添加项目',
'chat.mobileStatus.projects.removeTitle': '移除项目',
'chat.mobileStatus.projects.removeDescriptionPrefix': '确定要移除',
'chat.mobileStatus.projects.cancel': '取消',
'chat.mobileStatus.projects.remove': '移除',
'chat.mobileStatus.new': '新建',
'chat.mobileStatus.noSessionsInProject': '该项目中没有会话',
'chat.mobileStatus.swipeHint': '← 在此滑动以打开侧边栏 →',
'chat.mobileStatus.toast.addProjectFailed': '添加项目失败',
'chat.mobileStatus.toast.selectValidDirectory': '请选择有效目录。',
'chat.mobileStatus.toast.selectDirectoryFailed': '选择目录失败',
'chat.toolOutputDialog.image.previousAria': '上一张图片',
'chat.toolOutputDialog.image.nextAria': '下一张图片',
'chat.toolOutputDialog.image.closeAria': '关闭图片预览',
@@ -2131,7 +2258,6 @@ export const dict: Record<I18nKey, string> = {
'commandPalette.item.addProject': '添加项目',
'commandPalette.item.showSessionSwitcher': '显示会话切换器',
'commandPalette.item.toggleSidebar': '切换侧边栏',
'commandPalette.item.toggleRightSidebar': '切换右侧边栏',
'commandPalette.item.showContextUsage': '显示上下文用量',
'commandPalette.item.toggleTerminal': '切换终端',
'commandPalette.item.openSettings': '打开设置...',
@@ -2309,6 +2435,7 @@ export const dict: Record<I18nKey, string> = {
'projectActions.actions.addAction': '添加操作',
'projectActions.actions.addNewAction': '添加新操作',
'projectActions.actions.autoDiscover': '自动发现',
'projectActions.actions.autoDiscoverTooltip': '自动发现并运行开发服务器',
'projectActions.actions.chooseActionAria': '选择项目操作',
'projectActions.actions.openPreview': '打开 Preview',
'projectActions.actions.runNamedAria': '运行 {name}',
@@ -9,6 +9,9 @@
'settings.providers.page.openCodeGo.validate': '驗證',
'settings.providers.page.openCodeGo.delete': '刪除',
'settings.providers.page.quotaCredentials.saved': '已儲存 {provider} 憑證。',
'settings.providers.page.quotaCredentials.accessToken': '存取權杖',
'settings.providers.page.quotaCredentials.refreshToken': '重新整理權杖',
'settings.providers.page.quotaCredentials.tokenPlaceholder': '貼上權杖',
'settings.providers.page.openCodeGo.saveFailed': '無法驗證 OpenCode Go 憑證。',
'settings.providers.page.openCodeGo.valid': 'OpenCode Go 憑證有效。',
'settings.providers.page.openCodeGo.invalid': 'OpenCode Go 憑證無效或已過期。',
@@ -45,6 +48,10 @@
'settings.view.search.aria': '搜尋設定',
'settings.view.search.clear': '清除設定搜尋',
'settings.view.search.noResults': '沒有符合的設定',
'settings.view.nav.group.general': 'OpenChamber',
'settings.view.nav.group.projects': '工作區',
'settings.view.nav.group.opencode': 'OpenCode',
'settings.view.nav.group.content': '資源庫',
'settings.page.projects.title': '專案',
'settings.page.remoteInstances.title': '遠端執行個體',
'settings.page.providers.title': '供應商',
@@ -56,13 +63,22 @@
'settings.page.skillsCatalog.title': 'Skills 目錄',
'settings.page.git.title': 'Git',
'settings.page.appearance.title': '外觀',
'settings.page.appearance.description': '自訂 OpenChamber 的外觀與體驗。',
'settings.page.chat.title': '聊天',
'settings.page.chat.description': '設定訊息與工具的顯示方式。',
'settings.page.shortcuts.title': '快速鍵',
'settings.page.shortcuts.description': '自訂鍵盤快速鍵。',
'settings.page.general.title': '一般',
'settings.page.general.description': '應用程式啟動、安全性、連線與隱私。',
'settings.page.sessions.title': '工作階段',
'settings.page.sessions.description': '設定工作階段的預設值與保留期限。',
'settings.page.magicPrompts.title': '魔法提示詞',
'settings.page.notifications.title': '通知',
'settings.page.notifications.description': '選擇何時以及如何收到通知。',
'settings.page.voice.title': '語音',
'settings.page.tunnel.title': 'Remote Tunnel',
'settings.page.voice.description': '設定語音朗讀與聽寫。',
'settings.page.tunnel.title': '外部通道',
'settings.page.tunnel.description': '透過遠端通道公開此實例。',
'settings.page.about.title': '關於',
'settings.page.snippets.title': '程式片段',
'settings.snippets.sidebar.title': '程式片段',
@@ -87,7 +103,7 @@
'settings.snippets.page.toast.contentRequired': '程式片段內容為必填項',
'settings.snippets.page.toast.saveFailed': '保存程式片段失敗',
'settings.snippets.page.toast.saved': '程式片段已保存',
'settings.openchamber.tunnel.title': 'Remote Tunnel',
'settings.openchamber.tunnel.title': '外部通道',
'settings.openchamber.tunnel.description': '透過快速連結或你自己的 Cloudflare managed remote tunnel 設定安全遠端存取。',
'settings.openchamber.tunnel.note.serverSideEnforced': '安全通道存取由伺服器端強制執行。',
'settings.openchamber.tunnel.note.connectLinksOneTime': '連線連結為一次性,Tunnel 停止或連線連結 TTL 到期後會被撤銷。',
@@ -363,6 +379,7 @@
'settings.remoteInstances.page.logsDialog.selectedInstanceFallback': '所選執行個體',
'settings.remoteInstances.page.patternDialog.descriptionWithHost': '{host} 需要一個具體目標地址。',
'settings.remoteInstances.page.patternDialog.description': '輸入目標地址。',
'settings.common.infoAria': '更多資訊',
'settings.common.actions.cancel': '取消',
'settings.common.actions.create': '建立',
'settings.common.actions.delete': '刪除',
@@ -373,6 +390,8 @@
'settings.common.actions.copyAll': '全部複製',
'settings.common.actions.clear': '清除',
'settings.common.actions.saving': '儲存中...',
'settings.common.status.saved': '已儲存',
'settings.common.status.saveFailed': '儲存失敗',
'settings.common.actions.saveChanges': '儲存變更',
'settings.common.scope.global': '全域',
'settings.common.scope.project': '專案',
@@ -457,6 +476,33 @@
'settings.agents.page.section.identityRole': '身分與角色',
'settings.agents.page.section.modelParameters': '模型與參數',
'settings.agents.page.section.systemPrompt': '系統提示詞',
'settings.agents.page.permissionsEditor.sectionInfo': '按設定檔中儲存的原樣編輯此代理自身的權限規則。「繼承」表示不設定該鍵,將套用全域設定與預設值。',
'settings.agents.page.permissionsEditor.defaultLabel': '所有工具的預設值',
'settings.agents.page.permissionsEditor.defaultAria': '所有工具的預設權限',
'settings.agents.page.permissionsEditor.defaultInfo': '代理層級的後備(* 鍵),適用於沒有個別規則的工具。',
'settings.agents.page.permissionsEditor.effectiveHint': '→ {action}',
'settings.agents.page.permissionsEditor.ruleCount': '{count} 條規則',
'settings.agents.page.permissionsEditor.keyAria': '{key} 的權限',
'settings.agents.page.permissionsEditor.patternPlaceholder': '模式,例如 rm -rf * 或 /path/**',
'settings.agents.page.permissionsEditor.patternActionAria': '{key} 模式的動作',
'settings.agents.page.permissionsEditor.customKeyPlaceholder': '自訂權限鍵…',
'settings.agents.page.permissionsEditor.sessionRulesTitle': '工作階段中授予(未儲存)',
'settings.agents.page.permissionsEditor.sessionRulesInfo': '在工作階段中授予的規則(如「一律允許」的回答)。目前生效,但不屬於已儲存的設定,重新啟動後會消失。',
'settings.agents.page.permissionsEditor.action.default': '預設',
'settings.agents.page.permissionsEditor.action.inherit': '繼承',
'settings.agents.page.permissionsEditor.action.allow': '允許',
'settings.agents.page.permissionsEditor.action.ask': '詢問',
'settings.agents.page.permissionsEditor.action.deny': '拒絕',
'settings.agents.page.permissionsEditor.actions.save': '儲存權限',
'settings.agents.page.permissionsEditor.actions.discard': '放棄',
'settings.agents.page.permissionsEditor.actions.addRule': '新增規則',
'settings.agents.page.permissionsEditor.actions.addKey': '新增鍵',
'settings.agents.page.permissionsEditor.actions.removeRuleAria': '刪除規則',
'settings.agents.page.permissionsEditor.actions.retry': '重試',
'settings.agents.page.permissionsEditor.state.loadFailed': '無法載入代理的權限設定。',
'settings.agents.page.permissionsEditor.toast.saved': '權限已儲存',
'settings.agents.page.permissionsEditor.toast.savedRestartRequired': '權限已儲存 — 重新啟動 OpenCode 伺服器後生效',
'settings.agents.page.permissionsEditor.toast.saveFailed': '儲存權限失敗',
'settings.agents.page.section.toolPermissions': '工具權限',
'settings.agents.page.field.agentName': 'Agent 名稱',
'settings.agents.page.field.agentNamePlaceholder': 'agent-name',
@@ -492,10 +538,16 @@
'settings.agents.page.permissions.permissionPlaceholder': '權限...',
'settings.agents.page.permissions.patternPlaceholder': '模式(例如 *)',
'settings.page.behavior.title': '行為',
'settings.page.behavior.description': '引導代理的回應方式。',
'settings.behavior.page.title': '行為',
'settings.behavior.page.warning.title': '全域規則會與專案規則合併使用',
'settings.behavior.page.warning.description': '此處所做的變更會更新 {path}。當專案級 AGENTS.md 存在時,OpenCode 也會包含它。',
'settings.behavior.page.section.systemPrompt': '全域 AGENTS.md',
'settings.behavior.page.section.systemPromptOptimization': '系統提示詞最佳化',
'settings.behavior.page.systemPromptOptimization.enable': '最佳化系統提示詞大小',
'settings.behavior.page.systemPromptOptimization.enableAria': '最佳化 OpenCode 系統提示詞大小',
'settings.behavior.page.systemPromptOptimization.info': '預計可將 build 和 plan 代理程式的系統提示詞縮減約 40%,其他代理程式不會變更。這可能會移除覆寫 build 或 plan 的自訂定義,因此此類工作流程請勿啟用。重新啟動 OpenCode 後套用變更。',
'settings.behavior.page.systemPromptOptimization.restarting': '正在重新啟動 OpenCode 以套用系統提示詞最佳化…',
'settings.behavior.page.field.systemPromptPlaceholder': '你是一個有幫助的 AI 助助理...\n\n在此設定 AI 在所有工作階段與服務提供者中都必須遵守的絕對行為規則。',
'settings.behavior.page.section.responseStyle': '回覆風格',
'settings.behavior.page.responseStyle.tooltip': '啟用後,這些說明會指導助理在每個新對話中的回覆方式。它們會隨你的第一則訊息一起送出,不會變更全域 AGENTS.md 規則。',
@@ -858,11 +910,15 @@
'settings.openchamber.sessionRetention.toast.failedDeleteCount': '刪除 {count} 個工作階段失敗',
'settings.openchamber.desktopNetwork.title': '桌面端網路存取',
'settings.openchamber.desktopNetwork.field.windowControlsPosition': '視窗控制項位置',
'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': '選擇最小化、最大化和關閉按鈕的顯示位置。自動會依作業系統決定。',
'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': '選擇最小化、最大化和關閉按鈕的顯示位置。預設在右側。',
'settings.openchamber.desktopNetwork.field.windowControlsPositionAria': '視窗控制項位置',
'settings.openchamber.desktopNetwork.option.windowControlsAuto': '自動',
'settings.openchamber.desktopNetwork.option.windowControlsLeft': '左側',
'settings.openchamber.desktopNetwork.option.windowControlsRight': '右側',
'settings.openchamber.desktopNetwork.field.windowControls': '視窗控制項',
'settings.openchamber.desktopNetwork.field.windowControlsStyle': '樣式',
'settings.openchamber.desktopNetwork.field.windowControlsStyleAria': '視窗控制項樣式',
'settings.openchamber.desktopNetwork.option.windowControlsClassic': '經典',
'settings.openchamber.desktopNetwork.option.windowControlsTrafficLights': '紅綠燈',
'settings.openchamber.desktopNetwork.field.allowLanAccessAria': '允許桌面 sidecar 區域網路存取',
'settings.openchamber.desktopNetwork.field.allowLanAccess': '允許你本機網路中的其他裝置開啟此應用程式',
'settings.openchamber.desktopNetwork.field.allowLanAccessDescription': '會重新啟動應用程式,以便手機、平板和同一 Wi‑Fi 下的其他電腦存取。',
@@ -881,6 +937,9 @@
'settings.openchamber.opencodeCli.field.binaryPathPlaceholder': '/Users/you/.bun/bin/opencode',
'settings.openchamber.opencodeCli.field.showUpdateNotifications': '顯示 OpenCode 更新通知',
'settings.openchamber.opencodeCli.field.showUpdateNotificationsAria': '顯示 OpenCode 更新通知',
'settings.openchamber.opencodeCli.field.agentControlTool': '智慧代理控制工具',
'settings.openchamber.opencodeCli.field.agentControlToolAria': '啟用智慧代理控制工具',
'settings.openchamber.opencodeCli.field.agentControlToolInfo': '讓代理從聊天中協調你的工作:建立工作階段與 worktree、將提示委派給其他代理、管理排程任務。會為每個工作階段加入少量工具說明。在 Save + Reload 後生效。',
'settings.openchamber.opencodeCli.actions.browseAria': '瀏覽 OpenCode 可執行檔路徑',
'settings.openchamber.opencodeCli.actions.browse': '瀏覽',
'settings.openchamber.opencodeCli.actions.saveAndReload': '儲存並重新載入',
@@ -920,10 +979,9 @@
'settings.openchamber.keyboardShortcuts.action.toggle_terminal.label': '切換終端機停靠區',
'settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label': '切換終端機展開',
'settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label': '切換側邊欄',
'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': '切換右側邊欄',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': '開啟右側邊欄 Git 分頁',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': '開啟右側邊欄 Files 分頁',
'settings.openchamber.keyboardShortcuts.action.cycle_right_sidebar_tab.label': '輪換右側邊欄分頁',
'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': '切換上下文面板',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': '開啟 Git 介面',
'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': '開啟檔案介面',
'settings.openchamber.keyboardShortcuts.action.new_chat.label': '新建工作階段',
'settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label': '新增 worktree 草稿',
'settings.openchamber.keyboardShortcuts.action.new_mini_chat.label': '新建 Mini Chat 視窗',
@@ -1108,7 +1166,7 @@
'settings.openchamber.worktrees.setup.waitForCommandsAria': '建立或傳送工作階段前等待 Worktree 設定命令完成',
'settings.openchamber.worktrees.setup.toast.saveFailed': '儲存 Worktree 設定命令失敗',
'settings.openchamber.worktrees.list.title': '現有 worktree',
'settings.openchamber.worktrees.list.tooltip': 'Worktree 位於儲存庫外部(由 OpenCode 管理)。刪除 worktree 也會刪除關聯工作階段。',
'settings.openchamber.worktrees.list.tooltip': '刪除 worktree 也會刪除其關聯工作階段。',
'settings.openchamber.worktrees.list.loading': '正在載入 worktree...',
'settings.openchamber.worktrees.list.empty': '該專案找不到 worktree',
'settings.openchamber.worktrees.list.detachedHead': '分離 HEAD',
@@ -1368,6 +1426,10 @@
'settings.openchamber.defaults.smallModel.useDefault': '使用預設小模型',
'settings.openchamber.defaults.smallModel.useDefaultAria': '使用預設小模型',
'settings.openchamber.defaults.smallModel.overrideModel': '覆寫模型',
'settings.openchamber.defaults.walkthroughModel.title': '變更導讀模型',
'settings.openchamber.defaults.walkthroughModel.description': 'AI 審閱變更需要結構化輸出與容納整份差異的空間,便宜的小模型常常做不到。目錄標示為不支援結構化輸出的模型不會出現在這份清單中。 未選擇時將使用小模型。',
'settings.openchamber.defaults.walkthroughModel.overrideModel': '導讀模型',
'settings.openchamber.defaults.walkthroughModel.usesSmallModel': '小模型',
'settings.openchamber.defaults.field.showDeletionDialog': '顯示刪除對話方塊',
'settings.openchamber.defaults.field.openFilesPreviewAria': '以預覽模式開啟可預覽檔案',
'settings.openchamber.defaults.field.openFilesPreview': '以預覽模式開啟可預覽檔案',
@@ -1496,6 +1558,7 @@
'settings.voice.page.section.playbackAndSummary': '播放',
'settings.voice.page.field.provider': '提供方',
'settings.voice.page.provider.browser': '瀏覽器',
'settings.voice.page.provider.openai': 'OpenAI',
'settings.voice.page.provider.custom': '自訂',
'settings.voice.page.provider.say': 'Say',
'settings.voice.page.provider.server': '伺服器',
@@ -1575,16 +1638,22 @@
'settings.voice.page.field.ttsInputModeRaw': '原始 Markdown',
'settings.voice.page.field.ttsInputModeSummarized': '摘要',
'settings.openchamber.visual.section.colorMode': '顏色模式',
'settings.openchamber.visual.section.colorModeAndTheme': '色彩模式與主題',
'settings.openchamber.visual.section.localization': '在地化',
'settings.openchamber.visual.section.spacingAndLayout': '間距與佈局',
'settings.openchamber.visual.section.densityAndType': '密度與字型',
'settings.openchamber.visual.section.appInstall': '應用程式安裝',
'settings.openchamber.visual.section.mobileLayout': '行動版版面',
'settings.openchamber.visual.section.navigation': '導覽',
'settings.openchamber.visual.section.chatRenderMode': '聊天渲染模式',
'settings.openchamber.visual.section.chatRenderModeAria': '聊天渲染模式',
'settings.openchamber.visual.section.chatDisplay': '顯示',
'settings.openchamber.visual.section.chatMessageOptions': '訊息選項',
'settings.openchamber.visual.section.chatFeatures': '功能',
'settings.openchamber.visual.section.messageStreamTransport': '訊息流傳輸方式',
'settings.openchamber.visual.section.activityDefault': '活動預設狀態',
'settings.openchamber.visual.section.activityDefaultAria': '活動預設模式',
'settings.openchamber.visual.section.showToolsOpenedByDefault': '預設展開以下工具:',
'settings.openchamber.visual.section.showToolsOpenedByDefault': '預設展開以下工具',
'settings.openchamber.visual.section.sessionAssistance': '工作階段輔助',
'settings.openchamber.visual.section.reasoning': '推理',
'settings.openchamber.visual.section.messageAppearance': '訊息外觀',
@@ -1639,6 +1708,11 @@
'settings.openchamber.visual.field.fontSizePercentageAria': '字體大小百分比',
'settings.openchamber.visual.actions.resetFontSizeAria': '重設字體大小',
'settings.openchamber.visual.field.terminalFontSize': '終端機字體大小',
'settings.openchamber.visual.field.terminalShell': '終端機 Shell',
'settings.openchamber.visual.field.terminalShellAria': '選擇終端機 Shell',
'settings.openchamber.visual.field.terminalShellHint': '重新啟動終端機,將此變更套用至目前的工作階段。',
'settings.openchamber.visual.field.terminalLoginShell': '作為登入 Shell 啟動',
'settings.openchamber.visual.option.terminalShell.auto': '自動',
'settings.openchamber.visual.field.editorFontSize': '編輯器字體大小',
'settings.openchamber.visual.field.codeFont': '程式碼字體',
'settings.openchamber.visual.field.selectCodeFontAria': '選擇程式碼字體',
@@ -1686,6 +1760,9 @@
'settings.openchamber.visual.field.promptNavigatorEnabled': '提示詞導覽',
'settings.openchamber.visual.field.expandedEditorToolbarAria': 'Always show editor toolbar',
'settings.openchamber.visual.field.expandedEditorToolbar': 'Always show editor toolbar (docked under the file tabs)',
'settings.openchamber.visual.field.autoSaveEnabledAria': '自動儲存檔案',
'settings.openchamber.visual.field.autoSaveEnabled': '自動儲存檔案',
'settings.openchamber.visual.field.autoSaveEnabledInfo': '停止輸入後自動儲存檔案編輯內容。關閉後需手動儲存。',
'settings.openchamber.visual.field.wideChatLayoutAria': '寬聊天佈局',
'settings.openchamber.visual.field.wideChatLayout': '寬聊天佈局',
'settings.openchamber.visual.field.showSplitAssistantMessageActionsAria': '行內助理操作',
@@ -1693,6 +1770,8 @@
'settings.openchamber.visual.field.showSplitAssistantMessageActionsTooltip': '在同一則回覆中,如果助理文字區塊後方還有工具呼叫,則顯示「複製回答」「儲存為圖片」和「朗讀」操作。',
'settings.openchamber.visual.field.allowPromptingSubagentSessionsAria': '允許向子 Agent 工作階段傳送提示',
'settings.openchamber.visual.field.allowPromptingSubagentSessions': '允許向子 Agent 工作階段傳送提示',
'settings.openchamber.visual.field.draftStartersVisible': '在新工作階段畫面顯示快速啟動項目',
'settings.openchamber.visual.field.draftStartersVisibleAria': '在新工作階段畫面顯示快速啟動項目',
'settings.openchamber.visual.field.showToolFileIconsAria': '顯示工具檔案圖示',
'settings.openchamber.visual.field.codeBlockLineWrapAria': '程式碼區塊自動換行',
'settings.openchamber.visual.field.codeBlockLineWrap': '程式碼區塊自動換行',
@@ -1712,8 +1791,11 @@
'settings.openchamber.visual.field.sendAnonymousUsageReports': '送出匿名使用報告',
'settings.openchamber.visual.field.sendAnonymousUsageReportsHint': '協助我們了解哪些應用程式版本仍在被積極使用,以便優先改進。僅收集應用程式版本、平台與執行階段資訊,不收集個人資料或程式碼。',
'settings.openchamber.visual.option.themeMode.system': '跟隨系統',
'settings.openchamber.visual.option.themeMode.system.description': '跟隨系統設定',
'settings.openchamber.visual.option.themeMode.light': '淺色',
'settings.openchamber.visual.option.themeMode.light.description': '一律使用淺色外觀',
'settings.openchamber.visual.option.themeMode.dark': '深色',
'settings.openchamber.visual.option.themeMode.dark.description': '一律使用深色外觀',
'settings.openchamber.visual.option.diffLayout.dynamic.label': '動態',
'settings.openchamber.visual.option.diffLayout.dynamic.description': '新增檔案用行內檢視,修改檔案用並排檢視。',
'settings.openchamber.visual.option.diffLayout.inline.label': '始終行內',
@@ -1866,12 +1948,17 @@
'settings.openchamber.desktopNetwork.field.launchAtLogin': '登入時自動啟動 OpenChamber',
'settings.openchamber.desktopNetwork.field.launchAtLoginAria': '登入時自動啟動 OpenChamber',
'settings.openchamber.desktopNetwork.field.launchAtLoginDescription': '在背景啟動應用程式,不開啟視窗。可透過桌面狀態圖示開啟。',
'settings.openchamber.desktopNetwork.field.macMenuBarAria': '在 macOS 選單列中顯示 OpenChamber',
'settings.openchamber.desktopNetwork.field.macMenuBar': '在選單列中顯示 OpenChamber',
'settings.openchamber.desktopNetwork.field.macMenuBarDescription': '需要重新啟動應用程式。關閉後,OpenChamber 不會建立選單列項目,也不會執行相關的工作階段、核准與用量更新。',
'settings.openchamber.desktopNetwork.field.minimizeToTrayAria': '將 OpenChamber 最小化和關閉到系統匣',
'settings.openchamber.desktopNetwork.field.minimizeToTray': '最小化和關閉到系統匣',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': '主視窗最小化或關閉時,讓 OpenChamber 繼續在 Windows 系統匣中執行。',
'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': '主視窗最小化或關閉時,讓 OpenChamber 繼續在系統匣中執行。',
'settings.openchamber.desktopNetwork.field.keepAwakeAria': 'OpenChamber 執行時保持電腦喚醒',
'settings.openchamber.desktopNetwork.field.keepAwake': 'OpenChamber 執行時保持電腦喚醒',
'settings.openchamber.desktopNetwork.field.keepAwakeDescription': '讓手機可以持續開啟此應用程式。螢幕仍可關閉。',
'settings.openchamber.desktopPassword.actions.showPassword': '顯示密碼',
'settings.openchamber.desktopPassword.actions.hidePassword': '隱藏密碼',
'settings.openchamber.desktopPassword.field.password': '桌面 UI 密碼',
'settings.openchamber.desktopPassword.field.passwordDescription': 'OpenChamber 會在重新啟動後要求輸入密碼,之後會在登入工作階段過期時再次要求:12 小時後,或選擇「信任此裝置」後 7 天。留空可停用登入。',
'settings.openchamber.desktopPassword.field.passwordPlaceholder': '不需要密碼',
+170 -43
View File
@@ -3,6 +3,15 @@ import { settingsDict } from './zh-TW.settings';
export const dict: Record<I18nKey, string> = {
...settingsDict,
'terminalView.actions.attachSelection': '附加所選輸出',
'terminalView.actions.restart': '重新啟動終端',
'chat.message.terminalContext': '{terminal},第 {start}-{end} 行',
'chat.chatInput.terminalContext': '{terminal},第 {start}-{end} 行',
'chat.chatInput.terminalContextRemove': '移除終端上下文',
'chat.chatInput.prCommentContext': 'PR 留言',
'chat.chatInput.prCommentContextRemove': '移除 PR 留言脈絡',
'chat.chatInput.prCheckContext': '失敗的 PR 檢查',
'chat.chatInput.prCheckContextRemove': '移除 PR 檢查脈絡',
'common.loading': '載入中...',
'common.unavailable': '無法使用',
'common.language.english': 'English',
@@ -44,6 +53,9 @@ export const dict: Record<I18nKey, string> = {
'mobile.connect.unlockButton': '解鎖並連線',
'mobile.connect.cancelPassword': '使用其他伺服器',
'mobile.connect.connecting': '連線中...',
'mobile.connect.notice.unreachable': '無法連線至 {label}。請確認伺服器正在執行。',
'mobile.connect.notice.authExpired': '對 {label} 的存取已過期或被撤銷。請重新登入。',
'mobile.connect.recovery.description': '無法連線至已儲存的伺服器。請確認它正在執行,或選擇其他執行個體。',
'mobile.connect.scanQr': '掃描 QR code',
'mobile.connect.welcome.scanHint': '在電腦上開啟「新增裝置」顯示 QR 代碼,然後在這裡掃描。',
'mobile.connect.advanced': '進階',
@@ -79,14 +91,14 @@ export const dict: Record<I18nKey, string> = {
'mobile.nav.changes': '變更',
'mobile.nav.settings': '設定',
'mobile.surface.closeAria': '關閉',
'mobile.header.openMenuAria': '開啟選單',
'mobile.header.openWorkspaceAria': '開啟工作區面板',
'mobile.header.openMetadataAria': '開啟工作階段中繼資料',
'mobile.header.metadata.context': '上下文',
'mobile.header.metadata.branch': '分支',
'mobile.header.metadata.usage': '用量',
'mobile.menu.titleAria': '工作區工具',
'mobile.menu.files': '檔案',
'mobile.menu.changes': '變更',
'mobile.menu.terminal': '終端機',
'mobile.menu.mcp': 'MCP',
'mobile.menu.instances': '執行個體',
'mobile.menu.update': '更新',
@@ -113,17 +125,19 @@ export const dict: Record<I18nKey, string> = {
'mobile.sessions.newChat': '新聊天',
'mobile.sessions.editOrder': '重新排序專案',
'mobile.sessions.doneEditing': '完成',
'mobile.sessions.editOrderHint': '拖曳把手或使用箭頭重新排序專案。點選勾號完成。',
'mobile.sessions.editOrderHint': '拖曳手柄以重新排序專案。點按專案可顯示其工作樹並同樣拖曳排序。點按勾號完成。',
'mobile.sessions.dragHandleAria': '拖曳 {label} 以重新排序',
'mobile.sessions.moveUpAria': '將 {label} 上移',
'mobile.sessions.moveDownAria': '將 {label} 下移',
'mobile.sessions.removeProjectAria': '移除 {label}',
'mobile.sessions.cancelRemoveProjectAria': '取消移除 {label}',
'mobile.sessions.confirmRemoveProject': '關閉',
'mobile.sessions.confirmRemoveProjectAria': '確認移除 {label}',
'mobile.sessions.toast.projectRemoved': '已移除 {label}',
'mobile.sessions.archiveSessionAria': '封存 {title}',
'mobile.sessions.cancelArchiveAria': '取消封存 {title}',
'mobile.sessions.renameSessionAria': '重新命名 {title}',
'mobile.sessions.renameError': '重新命名工作階段失敗',
'mobile.sessions.deleteSessionAria': '刪除 {title}',
'mobile.sessions.confirmDeleteSessionAria': '確認刪除 {title}',
'mobile.sessions.editProjectAria': '編輯 {label}',
'mobile.projectEdit.worktreesTitle': '工作樹',
'mobile.projectEdit.worktreesEmpty': '此專案還沒有工作樹。',
@@ -170,6 +184,8 @@ export const dict: Record<I18nKey, string> = {
'mobile.files.copyPathAria': '複製檔案路徑',
'mobile.files.copyContent': '複製內容',
'mobile.files.copyContentAria': '複製檔案內容',
'mobile.files.editAria': '編輯檔案',
'mobile.files.doneEditingAria': '完成編輯',
'mobile.files.toast.pathCopied': '路徑已複製',
'mobile.files.toast.contentCopied': '內容已複製',
'mobile.files.toast.copyFailed': '複製失敗',
@@ -304,6 +320,8 @@ export const dict: Record<I18nKey, string> = {
'sessions.scheduledTasks.editor.goal.aria': '將此任務作為代理持續推進直至完成的目標執行',
'sessions.scheduledTasks.editor.goal.budgetLabel': '權杖預算',
'sessions.scheduledTasks.editor.goal.budgetAria': '以權杖預算限制該目標',
'sessions.scheduledTasks.editor.permissionAutoAccept.label': '自動接受權限',
'sessions.scheduledTasks.editor.permissionAutoAccept.aria': '啟動任務工作階段時啟用權限自動接受',
'sessions.scheduledTasks.editor.actions.closeAria': '關閉',
'sessions.scheduledTasks.editor.actions.cancel': '取消',
'sessions.scheduledTasks.editor.actions.save': '儲存',
@@ -422,6 +440,28 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.empty.noMatches.title': '沒有符合的會話',
'sessions.sidebar.empty.noMatches.description': '請嘗試其他標題、分支、資料夾或路徑。',
'sessions.sidebar.activity.recentTitle': '最近',
'sessions.archivePage.allDirectories': '所有目錄',
'sessions.sidebar.header.displayMode.stickyHeaders': '固定專案標題',
'sessions.sidebar.header.grouping.label': '工作階段分組',
'sessions.sidebar.header.grouping.byWorktree': '依工作樹',
'sessions.sidebar.header.grouping.flat': '平面清單',
'sessions.sidebar.project.actions.manageWorktrees': '管理工作樹',
'sessions.worktreesPage.title': '{project} 的工作樹',
'sessions.worktreesPage.description': '建立、檢視及移除此專案的 git 工作樹。',
'sessions.worktreesPage.closeAria': '關閉工作樹',
'sessions.scheduledTasks.page.closeAria': '關閉排程任務',
'sessions.sidebar.nav.archive': '封存',
'sessions.archivePage.title': '封存',
'sessions.archivePage.countSingle': '{count} 個已封存工作階段',
'sessions.archivePage.countPlural': '{count} 個已封存工作階段',
'sessions.archivePage.closeAria': '關閉封存',
'sessions.archivePage.searchPlaceholder': '搜尋已封存工作階段',
'sessions.archivePage.empty.noArchived': '沒有已封存的工作階段',
'sessions.archivePage.empty.noMatches': '沒有符合的已封存工作階段',
'sessions.archivePage.otherProjects': '其他專案',
'sessions.archivePage.deleteProject': '刪除此專案的所有已封存工作階段',
'sessions.archivePage.deleteProjectAria': '刪除 {label} 的所有已封存工作階段',
'sessions.archivePage.deleteSessionAria': '刪除 {title}',
'sessions.switcher.openAria': '開啟會話切換器',
'sessions.switcher.empty': '沒有最近會話',
'sessions.switcher.draftTitle': '新會話',
@@ -455,6 +495,10 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.project.actions.edit': '編輯',
'sessions.sidebar.project.actions.newDraftSession': '新增草稿會話',
'sessions.sidebar.session.menu.rename': '重新命名',
'sessions.sidebar.session.menu.copyId': '複製工作階段 ID',
'sessions.sidebar.session.copyId.success': '已複製工作階段 ID',
'sessions.sidebar.session.copyId.error': '無法複製工作階段 ID',
'header.sessionActions.openAria': '開啟工作階段操作',
'sessions.sidebar.session.rename.save': '儲存會話名稱',
'sessions.sidebar.session.rename.cancel': '取消重新命名會話',
'sessions.sidebar.session.menu.unpin': '取消釘選會話',
@@ -464,6 +508,12 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.menu.copyLink': '複製連結',
'sessions.sidebar.session.menu.unshare': '取消分享',
'sessions.sidebar.session.menu.exportMarkdown': '匯出 Markdown',
'sessions.sidebar.session.menu.moveToWorktree': '移至新工作樹',
'sessions.sidebar.session.moveToWorktree.success': '工作階段已移至新工作樹',
'sessions.sidebar.session.moveToWorktree.failed': '無法將工作階段移至新工作樹',
'sessions.sidebar.session.moveToWorktree.tooltip': '從目前分支建立新工作樹,轉移未提交的變更,並將此工作階段及其子工作階段移至其中。',
'sessions.sidebar.session.moveToWorktree.tooltipBusy': '僅在工作階段閒置時可用。請停止目前活動或等待其完成。',
'sessions.sidebar.session.moveToWorktree.tooltipMoving': '此工作階段已在移至新工作樹。',
'sessions.sidebar.session.menu.runFusion': '執行 fusion',
'sessions.sidebar.session.menu.openInSidePanel': '在側邊面板中開啟',
'sessions.sidebar.session.actions.openInEditor': '在編輯器中開啟',
@@ -471,6 +521,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.menu.label': '會話選單',
'sessions.sidebar.session.untitled': '未命名會話',
'sessions.sidebar.session.export.nothingToExport': '沒有可匯出的內容',
'sessions.sidebar.session.export.failedLoadHistory': '無法載入完整的工作階段記錄',
'sessions.sidebar.session.export.success': '會話已匯出',
'sessions.sidebar.session.export.failedRevealPath': '顯示路徑失敗',
'sessions.sidebar.session.export.untitledSubagent': '未命名子 Agent',
@@ -484,6 +535,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.session.status.active': '會話活躍中',
'sessions.sidebar.session.status.unread': '有未讀更新',
'sessions.sidebar.session.status.pinned': '已釘選會話',
'sessions.sidebar.session.status.movingToWorktree': '正在將會話移至新工作樹',
'sessions.sidebar.session.status.permissionRequired': '需要權限',
'sessions.sidebar.session.subsessions.collapse': '摺疊子會話',
'sessions.sidebar.session.subsessions.expand': '展開子會話',
@@ -525,7 +577,7 @@ export const dict: Record<I18nKey, string> = {
'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': '此操作將永久刪除來自 {dateLabel} 的 {count} 個會話。',
'sessions.sidebar.dialogs.sessionList.more': '+{count} 更多',
'sessions.sidebar.session.share.successTitle': '會話已分享',
'sessions.sidebar.session.share.successDescription': '你可以在選單中複製連結。',
'sessions.sidebar.session.share.successDescription': '分享連結已複製到剪貼簿。',
'sessions.sidebar.session.share.error': '無法分享會話',
'sessions.sidebar.session.share.copyUrlError': '複製 URL 失敗',
'sessions.sidebar.session.unshare.success': '會話已取消分享',
@@ -707,6 +759,8 @@ export const dict: Record<I18nKey, string> = {
'gitView.header.noIdentity': '無身分',
'gitView.header.noProfiles': '沒有可套用的設定。',
'gitView.header.repositoryViews': '儲存庫檢視',
'gitView.header.updateBranch': '更新分支',
'gitView.header.openPullRequest': '開啟提取請求',
'gitView.header.removeRemoteAria': '移除遠端 {name}',
'gitView.header.removeRemoteTitle': '移除 {name}',
'gitView.header.upstreamSynced': '已同步',
@@ -757,6 +811,7 @@ export const dict: Record<I18nKey, string> = {
'gitView.history.renamedNoDiff': '已重新命名檔案 — 不支援 diff',
'gitView.history.renderDiffAnyway': '仍然渲染',
'gitView.history.title': '歷史紀錄',
'gitView.history.refresh': '重新整理',
'gitView.graph.title': '圖譜',
'gitView.integrate.checking': '檢查中…',
'gitView.integrate.cherryPickAbortedToast': '已中止 cherry-pick',
@@ -791,12 +846,15 @@ export const dict: Record<I18nKey, string> = {
'gitView.operation.abort': '中止',
'gitView.operation.continue': '繼續',
'gitView.operation.inProgressTitle': '{operation} 進行中',
'gitView.operation.inProgressTitleManyConflicts': '{operation} 進行中:{count} 個衝突',
'gitView.operation.inProgressTitleOneConflict': '{operation} 進行中:{count} 個衝突',
'gitView.operation.merge': '合併',
'gitView.operation.mergeInProgressWithHead': '合併進行中({head})',
'gitView.operation.mergingMessage': '正在合併:{message}',
'gitView.operation.rebase': 'Rebase',
'gitView.operation.rebaseInProgress': 'Rebase 進行中',
'gitView.operation.rebasingOnto': '正在將 {headName} Rebase 到 {onto}',
'gitView.operation.readyToContinueHint': '所有衝突已解決。繼續以完成操作。',
'gitView.operation.resolveConflictsHint': '解決衝突,然後繼續操作。',
'gitView.operation.resolveWithAi': '使用 AI 解決',
'gitView.stash.confirmButton': 'Stash 並 {operation}',
@@ -891,15 +949,15 @@ export const dict: Record<I18nKey, string> = {
'gitView.pr.actions.openOnGitHubAria': '在 GitHub 中開啟 Pull Request',
'gitView.pr.actions.openSettings': '開啟設定',
'gitView.pr.actions.repo': '儲存庫',
'gitView.pr.actions.resolveFailedChecks': '處理失敗檢查',
'gitView.pr.actions.resolveFailedChecksAria': '將失敗的檢查傳送給 Agent',
'gitView.pr.actions.resolveFailedChecks': '附加失敗的檢查',
'gitView.pr.actions.resolveFailedChecksAria': '將失敗的檢查附加到聊天脈絡',
'gitView.pr.actions.savePr': '儲存 PR',
'gitView.pr.actions.savePrAria': '儲存 Pull Request 變更',
'gitView.pr.actions.sendCommentToAgent': '將留言傳送給 Agent',
'gitView.pr.actions.sendCommentToAgentAria': '將此留言傳送給 Agent',
'gitView.pr.actions.sendToAgent': '傳送給 Agent',
'gitView.pr.actions.shareComments': '分享留言',
'gitView.pr.actions.shareCommentsAria': '將 Pull Request 留言傳送給 Agent',
'gitView.pr.actions.sendCommentToAgent': '將留言附加到聊天脈絡',
'gitView.pr.actions.sendCommentToAgentAria': '將此留言附加到聊天脈絡',
'gitView.pr.actions.sendToAgent': '附加到聊天',
'gitView.pr.actions.shareComments': '附加留言',
'gitView.pr.actions.shareCommentsAria': '將提取請求留言附加到聊天脈絡',
'gitView.pr.actions.toggleDraftAria': '切換草稿狀態',
'gitView.pr.actions.refresh': '重新整理 PR 狀態',
'gitView.pr.actions.refreshAria': '重新整理 Pull Request 狀態',
@@ -937,6 +995,10 @@ export const dict: Record<I18nKey, string> = {
'gitView.pr.noMergePermission': '你沒有權限合併此 Pull Request。',
'gitView.pr.notMergeable': '不可合併',
'gitView.pr.numberLabel': 'PR #{number}',
'gitView.pr.segment.overview': '概覽',
'gitView.pr.segment.checks': '檢查',
'gitView.pr.segment.comments': '留言',
'gitView.pr.comments.addAll': '全部附加到聊天',
'gitView.pr.placeholder.additionalContext': '補充約束、發布說明或評審上下文...',
'gitView.pr.placeholder.description': '描述此變更...',
'gitView.pr.placeholder.main': '總結你的 Pull Request',
@@ -971,9 +1033,6 @@ export const dict: Record<I18nKey, string> = {
'gitView.pullRequest.createHint': '從目前分支建立並管理 Pull Request。',
'gitView.pullRequest.availableOnFeatureBranches': '目前分支可以開啟 PR 時可用。',
'gitView.pullRequest.title': 'Pull Request',
'gitView.tabs.commit': '提交',
'gitView.tabs.pr': 'PR',
'gitView.tabs.update': '更新',
'gitView.tabs.worktree': 'Worktree',
'gitView.toast.abortOperationFailed': '中止操作失敗',
'gitView.toast.appliedIdentity': '已套用身分:{name}',
@@ -1040,9 +1099,81 @@ export const dict: Record<I18nKey, string> = {
'contextPanel.mode.stagedDiff': 'Staged Diff',
'contextPanel.mode.workingDiff': 'Working Diff',
'contextPanel.mode.plan': '計畫',
'contextPanel.mode.pr': '提取請求',
'contextPanel.mode.context': '上下文',
'contextPanel.mode.preview': '預覽',
'contextPanel.mode.browser': '瀏覽器',
'contextRail.aria.rail': '面板介面',
'contextPanel.editorEmpty.title': '未開啟檔案',
'contextPanel.editorEmpty.description': '從檔案樹選擇檔案開始編輯。',
'contextRail.surface.editor.description': '編輯專案檔案',
'contextRail.surface.git.description': '提交、分支與拉取請求',
'contextRail.surface.terminal.description': '內建終端機',
'contextRail.surface.diff.description': '檢視工作區變更',
'contextPanel.mode.walkthrough': '導讀',
'contextRail.surface.walkthrough.description': '由 AI 引導的變更導讀',
'walkthrough.scope.all': '全部未提交',
'walkthrough.scope.group.workingTree': '工作區',
'walkthrough.scope.group.committed': '已提交',
'walkthrough.scope.staged': '已暫存',
'walkthrough.scope.working': '未暫存',
'walkthrough.scope.branch': '目前分支',
'walkthrough.scope.selectorAria': '選擇審閱範圍',
'walkthrough.language.menuLabel': '導讀語言',
'walkthrough.missing.language': '尚無{requested}導讀,目前顯示的是{shown}版本。',
'walkthrough.missing.model': '尚無由 {model} 產生的導讀,目前顯示最近一次產生的版本。',
'walkthrough.missing.languageAndModel': '尚無使用該語言與該模型產生的導讀,目前顯示最近一次產生的版本。',
'walkthrough.language.selectorAria': '選擇導讀語言',
'walkthrough.scope.pullRequest': 'PR #{number}',
'walkthrough.action.generate': '產生導讀',
'walkthrough.action.regenerate': '重新產生',
'walkthrough.action.cancel': '取消',
'walkthrough.action.next': '下一步',
'walkthrough.action.previous': '上一步',
'walkthrough.action.refresh': '重新整理',
'walkthrough.action.open': '導讀',
'walkthrough.stage.collecting': '正在收集變更',
'walkthrough.stage.asking': '正在等待模型',
'walkthrough.stage.assembling': '正在組裝導讀',
'walkthrough.empty.title': '尚未有導讀',
'walkthrough.empty.description': '為這些變更建立一條引導式閱讀路線。此操作會呼叫小模型並消耗 token,因此只在你主動要求時執行。',
'walkthrough.stale.banner': '本次審閱之後程式碼有變動。過時的步驟:{count}',
'walkthrough.stop.staleAll': '此步驟描述的程式碼已全部變動。',
'walkthrough.stop.stalePartial': '此步驟描述的部分程式碼已變動。缺少的片段:{count}',
'walkthrough.stop.staleShort': '已過時',
'walkthrough.stop.noCode': '目前差異中沒有此步驟的程式碼。',
'walkthrough.uncovered.title': '審閱未涵蓋的變更:{count}',
'walkthrough.uncovered.description': '審閱認為這些變更較為例行。展開即可自行檢視。',
'walkthrough.toc.moreFiles': '其他檔案:{count}',
'walkthrough.toc.uncovered': '未涵蓋:{count}',
'walkthrough.toc.resize': '調整目錄欄寬度',
'walkthrough.importance.critical': '關鍵',
'walkthrough.importance.context': '背景',
'walkthrough.blocked.noModel.title': '沒有可用的小模型',
'walkthrough.blocked.noModel.description': '請先登入模型供應商再產生審閱。',
'walkthrough.blocked.emptyDiff.title': '沒有可審閱的內容',
'walkthrough.blocked.emptyDiff.description': '此範圍目前沒有變更。',
'walkthrough.blocked.contextTooSmall.title': '目前模型無法容納這份差異',
'walkthrough.blocked.contextTooSmall.description': '{model} 大約可容納 {available} 千字元,而這份差異約需 {required} 千字元。我們不會截斷內容,請改選上下文更大的模型。',
'walkthrough.blocked.structuredOutput.title': '此模型不支援結構化輸出',
'walkthrough.blocked.structuredOutput.description': '{model} 不支援導讀所需的結構化回應。',
'walkthrough.blocked.chooseModel': '選擇小模型',
'walkthrough.blocked.outputExhausted.title': '模型的回答額度已用完',
'walkthrough.blocked.outputExhausted.description': '{model} 把全部輸出額度用在推理上,沒有回傳結果。推理模型在大型差異上經常如此——可以改用較少推理的模型,或縮小審閱範圍。',
'walkthrough.blocked.outputExhausted.descriptionUnknownModel': '小模型把全部輸出額度用在推理上,沒有回傳結果。推理模型在大型差異上經常如此——可以改用較少推理的模型,或縮小審閱範圍。',
'walkthrough.blocked.onlyGenerated.title': '只有產生的檔案有變動',
'walkthrough.blocked.onlyGenerated.description': '這裡的變更全部是鎖定檔或其他工具產生的輸出,審閱會刻意略過它們。',
'walkthrough.blocked.contextTooSmall.descriptionUnknownModel': '小模型大約可容納 {available} 千字元,而這份差異約需 {required} 千字元。我們不會截斷內容,請改選上下文更大的模型。',
'walkthrough.blocked.structuredOutput.descriptionUnknownModel': '小模型不支援導讀所需的結構化回應。',
'contextRail.surface.plan.description': '檢視目前計畫',
'contextRail.surface.pr.description': '建立、審查並合併目前分支的提取請求',
'contextRail.surface.notes.description': '專案的筆記、待辦與計畫',
'contextRail.surface.context.description': '工作階段情境與權杖用量',
'contextRail.surface.browser.description': '內建網頁瀏覽器',
'contextRail.surface.preview.description': '開發伺服器預覽',
'contextRail.surface.chat.description': '並排開啟的工作階段',
'contextRail.surface.notes': '專案筆記',
'contextRail.editorTree.toggle': '切換檔案樹',
'contextPanel.browser.open': '開啟瀏覽器面板',
'contextPanel.browser.addressAria': '瀏覽器網址',
'contextPanel.browser.empty': '網頁瀏覽器',
@@ -1093,6 +1224,7 @@ export const dict: Record<I18nKey, string> = {
'sidebarFilesTree.actions.newFileTitle': '新增檔案',
'sidebarFilesTree.actions.newFolderTitle': '新增資料夾',
'sidebarFilesTree.actions.refreshTitle': '重新整理',
'sidebarFilesTree.actions.collapseAllTitle': '摺疊所有資料夾',
'sidebarFilesTree.state.searching': '搜尋中...',
'sidebarFilesTree.state.loading': '載入中...',
'sidebarFilesTree.dialog.createFile.title': '新增檔案',
@@ -1161,6 +1293,8 @@ export const dict: Record<I18nKey, string> = {
'filesView.editor.showControlsAria': '顯示編輯器控制項',
'filesView.editor.controlsTitle': '編輯器控制項',
'filesView.editor.pickFileFromTree': '請從檔案樹中選擇一個檔案。',
'filesView.editor.cannotPreviewBinary': '無法預覽二進位檔案',
'filesView.editor.binaryFileDescription': '此檔案為二進位檔案,無法在 OpenChamber 中編輯。請下載後使用其他應用程式開啟。',
'filesView.state.loading': '載入中...',
'filesView.state.openingFileAtChange': '正在開啟變更處的檔案...',
'filesView.tree.search.placeholder': '搜尋檔案...',
@@ -1437,6 +1571,8 @@ export const dict: Record<I18nKey, string> = {
'terminalView.quickKeys.tabAria': 'Tab 鍵',
'terminalView.quickKeys.controlLabel': 'Ctrl',
'terminalView.quickKeys.controlModifierAria': 'Control 修飾鍵',
'terminalView.quickKeys.altLabel': 'Alt',
'terminalView.quickKeys.altModifierAria': 'Alt 修飾鍵',
'terminalView.quickKeys.commandModifierAria': 'Command 修飾鍵',
'terminalView.quickKeys.arrowUpAria': '上箭頭',
'terminalView.quickKeys.arrowLeftAria': '左箭頭',
@@ -1445,13 +1581,6 @@ export const dict: Record<I18nKey, string> = {
'terminalView.quickKeys.enterAria': 'Enter 鍵',
'terminalView.tabs.closeTabTitle': '關閉分頁',
'terminalView.tabs.newTabTitle': '新增分頁',
'terminalView.bottomDock.resizeAria': '調整終端機面板大小',
'terminalView.bottomDock.restoreTitle': '恢復終端機面板高度',
'terminalView.bottomDock.restoreAria': '恢復終端機面板高度',
'terminalView.bottomDock.expandTitle': '展開終端機面板',
'terminalView.bottomDock.expandAria': '展開終端機面板',
'terminalView.bottomDock.closeTitle': '關閉終端機面板',
'terminalView.bottomDock.closeAria': '關閉終端機面板',
'terminalView.viewport.inputAria': '終端機輸入',
'directoryExplorerDialog.title': '新增專案目錄',
'directoryExplorerDialog.description': '選擇一個資料夾新增為專案。',
@@ -1529,10 +1658,9 @@ export const dict: Record<I18nKey, string> = {
'helpDialog.item.focusChatInput': '聚焦聊天輸入框',
'helpDialog.item.togglePromptNavigator': '顯示或隱藏提示詞導覽',
'helpDialog.item.abortActiveRun': '中止目前執行(連按兩下)',
'helpDialog.item.toggleRightSidebar': '切換右側邊欄',
'helpDialog.item.openRightSidebarGitTab': '開啟右側邊欄 Git 標籤',
'helpDialog.item.openRightSidebarFilesTab': '開啟右側邊欄檔案標籤',
'helpDialog.item.cycleRightSidebarTab': '循環右側邊欄標籤',
'helpDialog.item.toggleRightSidebar': '切換上下文面板',
'helpDialog.item.openRightSidebarGitTab': '開啟 Git 介面',
'helpDialog.item.openRightSidebarFilesTab': '開啟檔案介面',
'helpDialog.item.toggleTerminalDock': '切換終端機停靠欄',
'helpDialog.item.toggleTerminalExpanded': '切換終端機展開狀態',
'helpDialog.item.togglePlanContextPanel': '切換計畫上下文面板',
@@ -1712,6 +1840,7 @@ export const dict: Record<I18nKey, string> = {
'chat.draftPresets.weigh.label': 'Weigh my options',
'chat.draftPresets.plan.label': 'Start feature planning',
'chat.draftPresets.craftGoal.label': '建立 Goal',
'chat.draftPresets.scheduleTask.label': '排程任務',
'chat.draftPresets.debug.label': 'Debug an issue',
'chat.draftPresets.review.label': 'Review my changes',
'chat.draftStarters.add': 'Add a starter',
@@ -1752,6 +1881,7 @@ export const dict: Record<I18nKey, string> = {
'chat.statusRow.todo.priority.low': '低優先級',
'chat.statusRow.actions.stopGeneratingAria': '停止生成',
'chat.statusRow.tasksTitle': '任務',
'chat.statusRow.modelStatus': '{model} · {status}',
'chat.statusRow.summary.activeLeft': '{active} 個活躍 · 剩餘 {left} 個',
'chat.statusRow.aborted': '已中止',
'chat.revertIndicator.redo': '重做',
@@ -1787,7 +1917,9 @@ export const dict: Record<I18nKey, string> = {
'chat.commandAutocomplete.command.handoffReviewDescription': '根據生成的交接內容建立或重用獨立的審查會話。',
'chat.commandAutocomplete.command.featurePlanDescription': '為新功能開始一次引導式的來回規劃工作階段。',
'chat.commandAutocomplete.command.craftGoalDescription': '將想法或任務轉化為清晰且可驗證的 Goal。',
'chat.commandAutocomplete.command.scheduleTaskDescription': '透過引導式對話定義排程任務。',
'chat.chatInput.toast.craftGoalFailed': '無法開始建立 Goal',
'chat.chatInput.toast.scheduleTaskFailed': '無法開始設定排程任務',
'chat.commandAutocomplete.command.catchUpDescription': '重新進入上下文:你之前在做什麼、從哪裡繼續。',
'chat.commandAutocomplete.command.debugDescription': '在提出修復方案前,引導式地排查 bug 的根本原因。',
'chat.commandAutocomplete.command.weighDescription': '在動手前,權衡 2-3 種方案的利弊並給出推薦。',
@@ -1812,6 +1944,12 @@ export const dict: Record<I18nKey, string> = {
'chat.container.returnToParent.title': '返回父會話',
'chat.container.returnToParent.label': '父級',
'chat.container.readOnlySubagentPromptBanner': '無法向子 Agent 會話傳送提示。',
'chat.container.sessionLoadError.title': '無法載入工作階段',
'chat.container.sessionLoadError.description': '請檢查連線,然後重新載入此工作階段。',
'chat.container.sessionLoadError.retry': '再試一次',
'sessions.sidebar.group.empty.loadingSessions': '正在載入工作階段…',
'sessions.sidebar.group.empty.loadFailed': '無法重新整理工作階段。',
'sessions.sidebar.group.empty.retry': '再試一次',
'chat.unifiedControls.title': '控制',
'chat.unifiedControls.model.title': '模型',
'chat.unifiedControls.model.noRecent': '沒有最近使用的模型',
@@ -1856,6 +1994,9 @@ export const dict: Record<I18nKey, string> = {
'chat.messageBody.actions.fork': '從此處分支',
'chat.messageBody.actions.copyMessageAria': '複製訊息文字',
'chat.messageBody.actions.copyMessage': '複製訊息',
'chat.messageBody.actions.pinContext': '釘選到內容脈絡(壓縮後仍保留)',
'chat.messageBody.actions.unpinContext': '從內容脈絡取消釘選(壓縮後不再保留)',
'chat.messageBody.actions.contextPinFailed': '無法更新內容脈絡釘選狀態',
'chat.messageBody.actions.openPreviewAria': '開啟預覽',
'chat.messageBody.actions.openPreview': '開啟預覽',
'chat.messageBody.actions.copyAnswer': '複製回答',
@@ -1945,6 +2086,7 @@ export const dict: Record<I18nKey, string> = {
'chat.chatInput.toast.addedFileMentions': '已加入 {count} 個檔案提及',
'chat.chatInput.toast.attachFileFailed': '附加檔案失敗',
'chat.chatInput.toast.attachNamedFailed': '附加 {name} 失敗',
'chat.chatInput.toast.unsupportedAttachmentModalities': '{model} 不支援 {files} 所需的 {modalities} 輸入。你仍可傳送訊息,但這些附件可能會被忽略。',
'chat.chatInput.toast.someFilesSkipped': '部分檔案被跳過:\n{summary}',
'chat.chatInput.toast.vscodePickFailed': '在 VS Code 中選擇檔案失敗',
'chat.chatInput.toast.openSessionFirst': '請先開啟一個會話',
@@ -1966,21 +2108,6 @@ export const dict: Record<I18nKey, string> = {
'chat.chatInput.drop.insertMention': '放開以插入為提及',
'chat.chatInput.drop.attachFiles': '將檔案拖放至此處以附加',
'chat.chatInput.fileFallback': '檔案',
'chat.mobileStatus.editProjects.title': '編輯專案',
'chat.mobileStatus.editProjects.footer': '拖曳可重新排序,或使用箭頭移動。點擊編輯可修改詳情。',
'chat.mobileStatus.editProjects.empty': '沒有可編輯的專案',
'chat.mobileStatus.projects.empty': '沒有專案',
'chat.mobileStatus.projects.addAria': '新增專案',
'chat.mobileStatus.projects.removeTitle': '移除專案',
'chat.mobileStatus.projects.removeDescriptionPrefix': '確定要移除',
'chat.mobileStatus.projects.cancel': '取消',
'chat.mobileStatus.projects.remove': '移除',
'chat.mobileStatus.new': '新增',
'chat.mobileStatus.noSessionsInProject': '該專案中沒有會話',
'chat.mobileStatus.swipeHint': '← 在此滑動以開啟側邊欄 →',
'chat.mobileStatus.toast.addProjectFailed': '新增專案失敗',
'chat.mobileStatus.toast.selectValidDirectory': '請選擇有效目錄。',
'chat.mobileStatus.toast.selectDirectoryFailed': '選擇目錄失敗',
'chat.toolOutputDialog.image.previousAria': '上一張圖片',
'chat.toolOutputDialog.image.nextAria': '下一張圖片',
'chat.toolOutputDialog.image.closeAria': '關閉圖片預覽',
@@ -2135,7 +2262,6 @@ export const dict: Record<I18nKey, string> = {
'commandPalette.item.addProject': '新增專案',
'commandPalette.item.showSessionSwitcher': '顯示會話切換器',
'commandPalette.item.toggleSidebar': '切換側邊欄',
'commandPalette.item.toggleRightSidebar': '切換右側邊欄',
'commandPalette.item.showContextUsage': '顯示上下文用量',
'commandPalette.item.toggleTerminal': '切換終端機',
'commandPalette.item.openSettings': '開啟設定...',
@@ -2313,6 +2439,7 @@ export const dict: Record<I18nKey, string> = {
'projectActions.actions.addAction': '新增操作',
'projectActions.actions.addNewAction': '新增新操作',
'projectActions.actions.autoDiscover': '自動發現',
'projectActions.actions.autoDiscoverTooltip': '自動探索並執行開發伺服器',
'projectActions.actions.chooseActionAria': '選擇專案操作',
'projectActions.actions.openPreview': '開啟預覽',
'projectActions.actions.runNamedAria': '執行 {name}',