* fix: make PWA install and OpenCode update toasts dismissible Both 'Install OpenChamber' and 'OpenCode update available' toasts use duration: Infinity with no close affordance, so they persist on screen until the user accepts (install/update) or reloads the tab. For users who do not want to install the PWA or upgrade right now, this is intrusive and there is no opt-out. Add a Dismiss button (sonner cancel action) to both toasts. When the user dismisses: - PWA: persist a flag in localStorage so the prompt does not reappear on future sessions. Accepting Install still works as before. - OpenCode update: persist the dismissed version in localStorage. The toast will appear again only when a newer version becomes available. Adds new i18n keys pwa.installPrompt.dismiss and opencodeUpdate.toast.actions.dismiss across all seven locales (en, es, ko, pl, pt-BR, uk, zh-CN). * test: extract toast dedup helpers and cover with 28 unit tests Lift the dismissal-decision logic out of usePwaInstallPrompt and OpenCodeUpdateToast into a React-free sibling module so it can be unit-tested directly. The React surfaces remain sole owners of side effects (storage writes, toast.info, event listeners); the new module only answers 'should we show?'. New module openCodeUpdateDedup.ts exposes four helpers: - shouldShowPwaInstallToast(input) - three gates: dismissed, sessionShown, hasActiveToast. - shouldShowOpenCodeUpdateToast(input) - empty version, seen set, dismissed===version gates; a different dismissed version lets the toast resurface for the new release. - resolveOpenCodeUpdateVersion(detail) - parses CustomEvent payloads defensively (null/non-object/non-string -> ''). - resolveOpenCodeUpgradeStatusVersion(status) - parses upgrade status payloads (status falsy / available!==true / latestVersion non-string -> ''). Consumers now call the helpers and only run the side-effect when the decision is true. Behaviour is unchanged. Coverage: 28 tests via bun:test, 33 expects, all pass first try.
2281 lines
148 KiB
TypeScript
2281 lines
148 KiB
TypeScript
import type { I18nKey } from './en';
|
||
import { settingsDict } from './zh-CN.settings';
|
||
|
||
export const dict: Record<I18nKey, string> = {
|
||
...settingsDict,
|
||
'common.loading': '加载中...',
|
||
'common.unavailable': '不可用',
|
||
'common.language.english': 'English',
|
||
'common.language.simplifiedChinese': '简体中文',
|
||
'common.language.ukrainian': '乌克兰语',
|
||
'common.language.spanish': '西班牙语',
|
||
'common.language.brazilianPortuguese': '巴西葡萄牙语',
|
||
'common.language.korean': '韩语',
|
||
'common.language.polish': '波兰语',
|
||
'common.revealPath.finder': '在 Finder 中显示',
|
||
'common.revealPath.fileExplorer': '在文件资源管理器中打开',
|
||
'common.revealPath.fileManager': '在文件管理器中打开',
|
||
'pwa.installPrompt.description': '安装 OpenChamber 以便更快访问',
|
||
'pwa.installPrompt.action': '安装',
|
||
'pwa.installPrompt.dismiss': '忽略',
|
||
'pwa.installPrompt.started': '已开始安装',
|
||
'pwa.installPrompt.installed': 'OpenChamber 已安装',
|
||
'layout.mainTab.chat': '聊天',
|
||
'layout.mainTab.plan': '计划',
|
||
'layout.mainTab.diff': '差异',
|
||
'layout.mainTab.files': '文件',
|
||
'layout.mainTab.terminal': '终端',
|
||
'layout.rightSidebar.git': 'Git',
|
||
'layout.rightSidebar.files': '文件',
|
||
'layout.rightSidebar.context': '上下文',
|
||
'layout.services.instance': '实例',
|
||
'layout.services.usage': '用量',
|
||
'sessions.sidebar.header.actions.closeSessions': '关闭会话',
|
||
'sessions.sidebar.header.actions.addProject': '添加项目',
|
||
'sessions.sidebar.header.actions.newSession': '新建会话',
|
||
'sessions.sidebar.header.actions.newMultiRun': '新建多运行',
|
||
'sessions.sidebar.header.actions.scheduledTasks': '计划任务',
|
||
'sessions.scheduledTasks.dialog.title': '计划任务',
|
||
'sessions.scheduledTasks.dialog.description': '服务端任务会创建新会话并发送已配置的提示词。',
|
||
'sessions.scheduledTasks.dialog.project.label': '项目',
|
||
'sessions.scheduledTasks.dialog.project.placeholder': '选择项目',
|
||
'sessions.scheduledTasks.dialog.project.empty': '暂无项目',
|
||
'sessions.scheduledTasks.dialog.actions.newTask': '新建任务',
|
||
'sessions.scheduledTasks.dialog.actions.runNow': '立即运行',
|
||
'sessions.scheduledTasks.dialog.actions.edit': '编辑',
|
||
'sessions.scheduledTasks.dialog.actions.editAria': '编辑 {taskName}',
|
||
'sessions.scheduledTasks.dialog.actions.deleteAria': '删除 {taskName}',
|
||
'sessions.scheduledTasks.dialog.loading': '正在加载任务...',
|
||
'sessions.scheduledTasks.dialog.empty.noTasks': '暂无计划任务。',
|
||
'sessions.scheduledTasks.dialog.empty.selectProject': '请选择一个项目来管理计划任务。',
|
||
'sessions.scheduledTasks.dialog.error.chooseProjectFirst': '请先选择一个项目',
|
||
'sessions.scheduledTasks.dialog.toast.loadFailed': '加载计划任务失败',
|
||
'sessions.scheduledTasks.dialog.toast.saved': '计划任务已保存',
|
||
'sessions.scheduledTasks.dialog.toast.updateFailed': '更新任务失败',
|
||
'sessions.scheduledTasks.dialog.toast.deleted': '计划任务已删除',
|
||
'sessions.scheduledTasks.dialog.toast.deleteFailed': '删除任务失败',
|
||
'sessions.scheduledTasks.dialog.toast.started': '任务已启动',
|
||
'sessions.scheduledTasks.dialog.toast.runFailed': '运行任务失败',
|
||
'sessions.scheduledTasks.dialog.confirm.deleteTask': '删除计划任务“{taskName}”?',
|
||
'sessions.scheduledTasks.dialog.schedule.daily': '每天 {time}',
|
||
'sessions.scheduledTasks.dialog.schedule.dailyWithTimezone': '每天 {time}({timezone})',
|
||
'sessions.scheduledTasks.dialog.schedule.weekly': '每周 {days} {time}',
|
||
'sessions.scheduledTasks.dialog.schedule.weeklyWithTimezone': '每周 {days} {time}({timezone})',
|
||
'sessions.scheduledTasks.dialog.schedule.once': '一次性 {date} {time}',
|
||
'sessions.scheduledTasks.dialog.schedule.onceWithTimezone': '一次性 {date} {time}({timezone})',
|
||
'sessions.scheduledTasks.dialog.schedule.cron': 'Cron:{cron}',
|
||
'sessions.scheduledTasks.dialog.schedule.cronWithTimezone': 'Cron:{cron}({timezone})',
|
||
'sessions.scheduledTasks.dialog.schedule.unknownDate': '未知日期',
|
||
'sessions.scheduledTasks.dialog.schedule.weekdayShort.sun': '周日',
|
||
'sessions.scheduledTasks.dialog.schedule.weekdayShort.mon': '周一',
|
||
'sessions.scheduledTasks.dialog.schedule.weekdayShort.tue': '周二',
|
||
'sessions.scheduledTasks.dialog.schedule.weekdayShort.wed': '周三',
|
||
'sessions.scheduledTasks.dialog.schedule.weekdayShort.thu': '周四',
|
||
'sessions.scheduledTasks.dialog.schedule.weekdayShort.fri': '周五',
|
||
'sessions.scheduledTasks.dialog.schedule.weekdayShort.sat': '周六',
|
||
'sessions.scheduledTasks.dialog.schedule.weekdayShort.unknown': '?',
|
||
'sessions.scheduledTasks.dialog.relativeTime.inLessThanOneMinute': '不到 1 分钟后',
|
||
'sessions.scheduledTasks.dialog.relativeTime.justNow': '刚刚',
|
||
'sessions.scheduledTasks.dialog.relativeTime.inMinutes': '{count} 分钟后',
|
||
'sessions.scheduledTasks.dialog.relativeTime.minutesAgo': '{count} 分钟前',
|
||
'sessions.scheduledTasks.dialog.relativeTime.inDuration': '{duration} 后',
|
||
'sessions.scheduledTasks.dialog.relativeTime.durationAgo': '{duration} 前',
|
||
'sessions.scheduledTasks.dialog.status.success': '成功',
|
||
'sessions.scheduledTasks.dialog.status.error': '错误',
|
||
'sessions.scheduledTasks.dialog.status.running': '运行中',
|
||
'sessions.scheduledTasks.dialog.status.idle': '空闲',
|
||
'sessions.scheduledTasks.dialog.nextRun.label': '下次',
|
||
'sessions.scheduledTasks.dialog.lastRun.label': '上次运行',
|
||
'sessions.scheduledTasks.dialog.lastRun.runningNow': '正在运行',
|
||
'sessions.scheduledTasks.dialog.lastRun.never': '从未',
|
||
'sessions.scheduledTasks.dialog.taskToggle.enableAria': '启用 {taskName}',
|
||
'sessions.scheduledTasks.dialog.taskToggle.pauseAria': '暂停 {taskName}',
|
||
'sessions.scheduledTasks.dialog.taskToggle.enabled': '已启用',
|
||
'sessions.scheduledTasks.dialog.taskToggle.paused': '已暂停',
|
||
'sessions.scheduledTasks.editor.title.edit': '编辑计划任务',
|
||
'sessions.scheduledTasks.editor.title.new': '新建计划任务',
|
||
'sessions.scheduledTasks.editor.description': '配置一个服务端任务,用于创建新会话并发送提示词。',
|
||
'sessions.scheduledTasks.editor.taskName.label': '任务名称',
|
||
'sessions.scheduledTasks.editor.taskName.placeholder': '每日同步',
|
||
'sessions.scheduledTasks.editor.scheduleType.label': '计划类型',
|
||
'sessions.scheduledTasks.editor.scheduleType.daily': '每天',
|
||
'sessions.scheduledTasks.editor.scheduleType.weekly': '每周',
|
||
'sessions.scheduledTasks.editor.scheduleType.once': '一次性',
|
||
'sessions.scheduledTasks.editor.date.label': '日期',
|
||
'sessions.scheduledTasks.editor.date.placeholder': '选择日期',
|
||
'sessions.scheduledTasks.editor.date.previousMonth': '上个月',
|
||
'sessions.scheduledTasks.editor.date.nextMonth': '下个月',
|
||
'sessions.scheduledTasks.editor.date.jumpToToday': '跳转到今天',
|
||
'sessions.scheduledTasks.editor.date.today': '今天',
|
||
'sessions.scheduledTasks.editor.time.label': '时间',
|
||
'sessions.scheduledTasks.editor.time.hourAria': '小时',
|
||
'sessions.scheduledTasks.editor.time.minuteAria': '分钟',
|
||
'sessions.scheduledTasks.editor.time.periodAria': '时段',
|
||
'sessions.scheduledTasks.editor.time.period.am': 'AM',
|
||
'sessions.scheduledTasks.editor.time.period.pm': 'PM',
|
||
'sessions.scheduledTasks.editor.times.label': '时间点',
|
||
'sessions.scheduledTasks.editor.times.add': '添加时间',
|
||
'sessions.scheduledTasks.editor.times.removeAria': '移除时间',
|
||
'sessions.scheduledTasks.editor.timezone.label': '时区',
|
||
'sessions.scheduledTasks.editor.weekdays.label': '星期',
|
||
'sessions.scheduledTasks.editor.model.label': '模型',
|
||
'sessions.scheduledTasks.editor.thinkingLevel.label': '思考级别',
|
||
'sessions.scheduledTasks.editor.thinkingLevel.default': '默认',
|
||
'sessions.scheduledTasks.editor.agent.label': '智能体',
|
||
'sessions.scheduledTasks.editor.prompt.label': '提示词',
|
||
'sessions.scheduledTasks.editor.prompt.placeholder': '总结未完成任务并给出下一步建议',
|
||
'sessions.scheduledTasks.editor.enabled.aria': '启用任务',
|
||
'sessions.scheduledTasks.editor.enabled.label': '已启用',
|
||
'sessions.scheduledTasks.editor.actions.closeAria': '关闭',
|
||
'sessions.scheduledTasks.editor.actions.cancel': '取消',
|
||
'sessions.scheduledTasks.editor.actions.save': '保存',
|
||
'sessions.scheduledTasks.editor.actions.saving': '保存中...',
|
||
'sessions.scheduledTasks.editor.toast.saveFailed': '保存任务失败',
|
||
'sessions.scheduledTasks.editor.validation.taskNameRequired': '任务名称为必填项',
|
||
'sessions.scheduledTasks.editor.validation.promptRequired': '提示词为必填项',
|
||
'sessions.scheduledTasks.editor.validation.modelRequired': '模型为必填项',
|
||
'sessions.scheduledTasks.editor.validation.dateFormat': '日期格式必须是 YYYY-MM-DD',
|
||
'sessions.scheduledTasks.editor.validation.timeFormat': '时间格式必须是 HH:mm',
|
||
'sessions.scheduledTasks.editor.validation.atLeastOneTime': '请至少添加一个有效时间',
|
||
'sessions.scheduledTasks.editor.validation.atLeastOneWeekday': '请至少选择一个星期',
|
||
'sessions.scheduledTasks.editor.validation.timezoneRequired': '时区为必填项',
|
||
'multirun.launcher.title': '新建多运行',
|
||
'multirun.launcher.actions.closeEsc': '关闭 (Esc)',
|
||
'multirun.launcher.actions.cancel': '取消',
|
||
'multirun.launcher.actions.creating': '创建中...',
|
||
'multirun.launcher.actions.startWithModelCount': '开始({count} 个模型)',
|
||
'multirun.launcher.project.label': '项目',
|
||
'multirun.launcher.project.placeholder': '选择项目',
|
||
'multirun.launcher.project.empty': '请先添加项目。',
|
||
'multirun.launcher.project.gitRequired': '无 worktree 隔离:运行将使用同一目录。',
|
||
'multirun.launcher.groupName.label': '组名',
|
||
'multirun.launcher.groupName.info': '用于工作树目录和分支名称',
|
||
'multirun.launcher.groupName.placeholder': 'feature-auth, bugfix-login',
|
||
'multirun.launcher.baseBranch.label': '基础分支',
|
||
'multirun.launcher.baseBranch.info': '每个模型都会基于此分支创建新分支',
|
||
'multirun.launcher.isolateRuns.label': '隔离运行',
|
||
'multirun.launcher.agent.label': '智能体',
|
||
'multirun.launcher.agent.info': '所有运行使用同一智能体。默认使用你当前配置的智能体。',
|
||
'multirun.launcher.setupCommands.label': '设置命令',
|
||
'multirun.launcher.setupCommands.loading': '加载中...',
|
||
'multirun.launcher.setupCommands.commandPlaceholder': 'bun install',
|
||
'multirun.launcher.setupCommands.removeCommandAria': '移除命令',
|
||
'multirun.launcher.setupCommands.addCommand': '添加命令',
|
||
'multirun.launcher.prompt.label': '提示词',
|
||
'multirun.launcher.prompt.placeholder': '输入要发送给所有模型的提示词...',
|
||
'multirun.launcher.attachments.attach': '附加',
|
||
'multirun.launcher.attachments.tooltip': '相同文件会发送到所有运行',
|
||
'multirun.launcher.models.label': '模型',
|
||
'multirun.launcher.models.info': '选择 2-{max} 个模型。同一模型可重复添加。',
|
||
'multirun.launcher.toast.fileTooLarge': '文件“{fileName}”过大(最大 10MB)',
|
||
'multirun.launcher.toast.attachFailed': '附加“{fileName}”失败',
|
||
'multirun.launcher.toast.attachedSingle': '已附加 {count} 个文件',
|
||
'multirun.launcher.toast.attachedPlural': '已附加 {count} 个文件',
|
||
'multirun.modelMultiSelect.actions.addModel': '添加模型',
|
||
'multirun.modelMultiSelect.search.placeholder': '搜索模型',
|
||
'multirun.modelMultiSelect.search.noResults': '未找到模型',
|
||
'multirun.modelMultiSelect.sections.favorites': '收藏',
|
||
'multirun.modelMultiSelect.sections.recent': '最近',
|
||
'multirun.modelMultiSelect.variant.placeholder': '思考',
|
||
'multirun.modelMultiSelect.variant.default': '默认',
|
||
'multirun.modelMultiSelect.keyboard.hint': '↑↓ 导航 • Enter 选择 • Esc 关闭',
|
||
'multirun.modelMultiSelect.validation.minOnly': '请至少选择 {min} 个模型。',
|
||
'multirun.modelMultiSelect.validation.minToMax': '请选择 {min} 到 {max} 个模型。',
|
||
'multirun.agentSelector.placeholder': '选择智能体',
|
||
'multirun.fusion.title': '运行 fusion',
|
||
'multirun.fusion.description': '将选中的 multi-run 输出合并为一个更强的答案。',
|
||
'multirun.fusion.provider.placeholder': 'Provider',
|
||
'multirun.fusion.model.placeholder': 'Model',
|
||
'multirun.fusion.sources.label': '来源({count})',
|
||
'multirun.fusion.actions.cancel': '取消',
|
||
'multirun.fusion.actions.start': '开始 fusion',
|
||
'multirun.fusion.actions.starting': '正在开始...',
|
||
'multirun.fusion.toast.noOutputs': '未找到可用于 fusion 的助手输出。',
|
||
'multirun.fusion.toast.failed': '启动 fusion 失败。',
|
||
'sessions.sidebar.header.actions.searchSessions': '搜索会话',
|
||
'sessions.sidebar.header.actions.exitSelection': '退出选择',
|
||
'sessions.sidebar.header.actions.selectSessions': '选择会话',
|
||
'sessions.sidebar.header.actions.sessionDisplayMode': '会话显示模式',
|
||
'sessions.sidebar.header.displayMode.label': '显示模式',
|
||
'sessions.sidebar.header.displayMode.default': '默认',
|
||
'sessions.sidebar.header.displayMode.minimal': '精简',
|
||
'sessions.sidebar.header.displayMode.showRecent': '显示最近部分',
|
||
'sessions.sidebar.header.displayMode.collapseAll': '全部折叠',
|
||
'sessions.sidebar.header.displayMode.expandAll': '全部展开',
|
||
'sessions.sidebar.header.search.matchCountSingle': '{count} 个匹配',
|
||
'sessions.sidebar.header.search.matchCountPlural': '{count} 个匹配',
|
||
'sessions.sidebar.header.search.escapeHint': '按 Esc 清除',
|
||
'sessions.sidebar.header.search.placeholder': '搜索会话...',
|
||
'sessions.sidebar.header.search.clear': '清除搜索',
|
||
'sessions.sidebar.footer.actions.settings': '设置',
|
||
'sessions.sidebar.footer.actions.shortcuts': '快捷键',
|
||
'sessions.sidebar.footer.actions.aboutOpenChamber': '关于 OpenChamber',
|
||
'sessions.sidebar.footer.actions.update': '更新',
|
||
'sessions.sidebar.empty.noSessions.title': '暂无会话',
|
||
'sessions.sidebar.empty.noSessions.description': '创建你的第一个会话以开始编码。',
|
||
'sessions.sidebar.empty.noMatches.title': '没有匹配的会话',
|
||
'sessions.sidebar.empty.noMatches.description': '请尝试其他标题、分支、文件夹或路径。',
|
||
'sessions.sidebar.activity.recentTitle': '最近',
|
||
'sessions.switcher.openAria': '打开会话切换器',
|
||
'sessions.switcher.empty': '没有最近会话',
|
||
'sessions.switcher.draftTitle': '新会话',
|
||
'sessions.sidebar.updateCheck.errorTitle': '检查更新失败',
|
||
'sessions.sidebar.updateCheck.latestVersion': '你已是最新版本',
|
||
'sessions.sidebar.directory.errorAddProjectTitle': '添加项目失败',
|
||
'sessions.sidebar.directory.errorAddProjectDescription': '请选择有效的目录。',
|
||
'sessions.sidebar.directory.errorSelectDirectoryTitle': '选择目录失败',
|
||
'sessions.sidebar.folder.newFolderName': '新建文件夹',
|
||
'sessions.sidebar.bulkActions.delete': '删除',
|
||
'sessions.sidebar.bulkActions.archive': '归档',
|
||
'sessions.sidebar.bulkActions.selectedCount': '已选择 {count} 项',
|
||
'sessions.sidebar.bulkActions.moveToFolder': '移动到文件夹',
|
||
'sessions.sidebar.bulkActions.deletedSingle': '已删除 {count} 个会话',
|
||
'sessions.sidebar.bulkActions.deletedPlural': '已删除 {count} 个会话',
|
||
'sessions.sidebar.bulkActions.failedDeleteSingle': '删除 {count} 个会话失败',
|
||
'sessions.sidebar.bulkActions.failedDeletePlural': '删除 {count} 个会话失败',
|
||
'sessions.sidebar.bulkActions.archivedSingle': '已归档 {count} 个会话',
|
||
'sessions.sidebar.bulkActions.archivedPlural': '已归档 {count} 个会话',
|
||
'sessions.sidebar.bulkActions.failedArchiveSingle': '归档 {count} 个会话失败',
|
||
'sessions.sidebar.bulkActions.failedArchivePlural': '归档 {count} 个会话失败',
|
||
'sessions.sidebar.folders.none': '暂无文件夹',
|
||
'sessions.sidebar.folders.newFolderEllipsis': '新建文件夹...',
|
||
'sessions.sidebar.folders.removeFromFolder': '从文件夹中移除',
|
||
'sessions.sidebar.folders.moveToFolder': '移动到文件夹',
|
||
'sessions.sidebar.project.actions.newWorktree': '新建工作树',
|
||
'sessions.sidebar.project.actions.newWorktreeEllipsis': '新建工作树...',
|
||
'sessions.sidebar.project.actions.projectMenu': '项目菜单',
|
||
'sessions.sidebar.project.actions.newSession': '新建会话',
|
||
'sessions.sidebar.project.actions.closeProject': '关闭项目',
|
||
'sessions.sidebar.project.actions.newDraftSession': '新建草稿会话',
|
||
'sessions.sidebar.session.menu.rename': '重命名',
|
||
'sessions.sidebar.session.rename.save': '保存会话名称',
|
||
'sessions.sidebar.session.rename.cancel': '取消重命名会话',
|
||
'sessions.sidebar.session.menu.unpin': '取消置顶会话',
|
||
'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.runFusion': '运行 fusion',
|
||
'sessions.sidebar.session.menu.openInSidePanel': '在侧边面板中打开',
|
||
'sessions.sidebar.session.actions.openInEditor': '在编辑器中打开',
|
||
'sessions.sidebar.session.menu.betaBadge': 'beta',
|
||
'sessions.sidebar.session.menu.label': '会话菜单',
|
||
'sessions.sidebar.session.untitled': '未命名会话',
|
||
'sessions.sidebar.session.export.nothingToExport': '没有可导出的内容',
|
||
'sessions.sidebar.session.export.success': '会话已导出',
|
||
'sessions.sidebar.session.export.failedRevealPath': '显示路径失败',
|
||
'sessions.sidebar.session.export.untitledSubagent': '未命名子代理',
|
||
'sessions.sidebar.session.export.skippedSubtaskSingle': '会话已导出,但跳过了 {count} 个无法加载的子代理任务。',
|
||
'sessions.sidebar.session.export.skippedSubtaskMany': '会话已导出,但跳过了 {count} 个无法加载的子代理任务。',
|
||
'sessions.sidebar.session.export.dialog.title': '导出 Markdown',
|
||
'sessions.sidebar.session.export.dialog.descriptionSingle': '此会话有 {count} 个子代理任务。是否包含在导出中?',
|
||
'sessions.sidebar.session.export.dialog.descriptionMany': '此会话有 {count} 个子代理任务。是否包含在导出中?',
|
||
'sessions.sidebar.session.export.dialog.includeSubtasks': '包含子代理任务',
|
||
'sessions.sidebar.session.export.dialog.confirm': '导出',
|
||
'sessions.sidebar.session.status.active': '会话活跃中',
|
||
'sessions.sidebar.session.status.unread': '有未读更新',
|
||
'sessions.sidebar.session.status.pinned': '已置顶会话',
|
||
'sessions.sidebar.session.status.permissionRequired': '需要权限',
|
||
'sessions.sidebar.session.subsessions.collapse': '折叠子会话',
|
||
'sessions.sidebar.session.subsessions.expand': '展开子会话',
|
||
'sessions.sidebar.dialogs.deleteSession.title': '删除会话?',
|
||
'sessions.sidebar.dialogs.archiveSession.title': '归档会话?',
|
||
'sessions.sidebar.dialogs.deleteSession.withOneSubtask': '“{sessionTitle}”及其 {count} 个子任务将被永久删除。',
|
||
'sessions.sidebar.dialogs.deleteSession.withManySubtasks': '“{sessionTitle}”及其 {count} 个子任务将被永久删除。',
|
||
'sessions.sidebar.dialogs.archiveSession.withOneSubtask': '“{sessionTitle}”及其 {count} 个子任务将被归档。',
|
||
'sessions.sidebar.dialogs.archiveSession.withManySubtasks': '“{sessionTitle}”及其 {count} 个子任务将被归档。',
|
||
'sessions.sidebar.dialogs.deleteSession.single': '“{sessionTitle}”将被永久删除。',
|
||
'sessions.sidebar.dialogs.archiveSession.single': '“{sessionTitle}”将被归档。',
|
||
'sessions.sidebar.dialogs.neverAsk': '不再询问',
|
||
'sessions.sidebar.dialogs.cancel': '取消',
|
||
'sessions.sidebar.dialogs.deleteSession.titleAction': '删除会话',
|
||
'sessions.sidebar.dialogs.deleteSessions.titleAction': '删除会话',
|
||
'sessions.sidebar.dialogs.deleteSessions.title': '删除会话?',
|
||
'sessions.sidebar.dialogs.archiveSessions.title': '归档会话?',
|
||
'sessions.sidebar.dialogs.deleteSessions.singleDescription': '{count} 个会话将被永久删除。',
|
||
'sessions.sidebar.dialogs.deleteSessions.pluralDescription': '{count} 个会话将被永久删除。',
|
||
'sessions.sidebar.dialogs.archiveSessions.singleDescription': '{count} 个会话将被归档。',
|
||
'sessions.sidebar.dialogs.archiveSessions.pluralDescription': '{count} 个会话将被归档。',
|
||
'sessions.sidebar.dialogs.deleteFolder.title': '删除文件夹?',
|
||
'sessions.sidebar.dialogs.deleteFolder.withOneSubfolder': '“{folderName}”将被删除,并包含 {count} 个子文件夹。其中的会话不会被删除。',
|
||
'sessions.sidebar.dialogs.deleteFolder.withManySubfolders': '“{folderName}”将被删除,并包含 {count} 个子文件夹。其中的会话不会被删除。',
|
||
'sessions.sidebar.dialogs.deleteFolder.withContentsNoSubfolders': '“{folderName}”将被删除。其中的会话不会被删除。',
|
||
'sessions.sidebar.dialogs.deleteFolder.single': '“{folderName}”将被永久删除。',
|
||
'sessions.sidebar.dialogs.deleteResult.singleFailedToDelete': '{count} 个会话删除失败。',
|
||
'sessions.sidebar.dialogs.deleteResult.manyFailedToDelete': '{count} 个会话删除失败。',
|
||
'sessions.sidebar.dialogs.deleteResult.singleFailedToArchive': '{count} 个会话归档失败。',
|
||
'sessions.sidebar.dialogs.deleteResult.manyFailedToArchive': '{count} 个会话归档失败。',
|
||
'sessions.sidebar.dialogs.deleteResult.removedFromDate': '已移除 {dateLabel} 中的所有会话。',
|
||
'sessions.sidebar.dialogs.deleteResult.tryAgain': '请稍后重试。',
|
||
'sessions.sidebar.dialogs.worktreeDelete.descriptionNoLinked': '这将移除所选工作树。',
|
||
'sessions.sidebar.dialogs.worktreeDelete.descriptionOneLinked': '这将移除所选工作树并归档 {count} 个关联会话。',
|
||
'sessions.sidebar.dialogs.worktreeDelete.descriptionManyLinked': '这将移除所选工作树并归档 {count} 个关联会话。',
|
||
'sessions.sidebar.dialogs.sessionDelete.descriptionOne': '此操作将永久删除 1 个会话。',
|
||
'sessions.sidebar.dialogs.sessionDelete.descriptionOneWithDate': '此操作将永久删除来自 {dateLabel} 的 1 个会话。',
|
||
'sessions.sidebar.dialogs.sessionDelete.descriptionMany': '此操作将永久删除 {count} 个会话。',
|
||
'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.error': '无法分享会话',
|
||
'sessions.sidebar.session.share.copyUrlError': '复制 URL 失败',
|
||
'sessions.sidebar.session.unshare.success': '会话已取消分享',
|
||
'sessions.sidebar.session.unshare.error': '无法取消分享会话',
|
||
'sessions.sidebar.session.delete.success': '会话已删除',
|
||
'sessions.sidebar.session.delete.error': '删除会话失败',
|
||
'sessions.sidebar.session.archive.success': '会话已归档',
|
||
'sessions.sidebar.session.archive.error': '归档会话失败',
|
||
'sessions.sidebar.group.pr.checksPassed': '{success}/{total} 项检查已通过',
|
||
'sessions.sidebar.group.pr.failingCount': '{count} 项失败',
|
||
'sessions.sidebar.group.pr.pendingCount': '{count} 项等待中',
|
||
'sessions.sidebar.group.pr.conflictsOrBlocked': '有冲突或被阻止',
|
||
'sessions.sidebar.group.pr.mergeable': '可合并',
|
||
'sessions.sidebar.group.pr.mergeState': '合并状态:{state}',
|
||
'sessions.sidebar.group.pr.status.merged': '已合并',
|
||
'sessions.sidebar.group.pr.status.readyToMerge': '可合并',
|
||
'sessions.sidebar.group.pr.status.open': 'PR 已打开',
|
||
'sessions.sidebar.group.pr.status.mergeConflicts': '存在合并冲突',
|
||
'sessions.sidebar.group.pr.status.mergeBlocked': '合并被阻止',
|
||
'sessions.sidebar.group.pr.status.draft': '草稿 PR',
|
||
'sessions.sidebar.group.pr.status.closed': '已关闭',
|
||
'sessions.sidebar.group.empty.noArchivedSessions': '暂无已归档会话。',
|
||
'sessions.sidebar.group.empty.noSessionsInWorkspace': '该工作区暂无会话。',
|
||
'sessions.sidebar.group.showMoreSingle': '再显示 {count} 个会话',
|
||
'sessions.sidebar.group.showMorePlural': '再显示 {count} 个会话',
|
||
'sessions.sidebar.group.showFewer': '显示更少会话',
|
||
'sessions.sidebar.group.expandAria': '展开 {label}',
|
||
'sessions.sidebar.group.collapseAria': '折叠 {label}',
|
||
'sessions.sidebar.group.actions.deleteArchivedInGroupAria': '删除 {label} 中已归档会话',
|
||
'sessions.sidebar.group.actions.deleteArchivedSessions': '删除已归档会话',
|
||
'sessions.sidebar.group.actions.deleteGroupAria': '删除 {label}',
|
||
'sessions.sidebar.group.actions.deleteWorktree': '删除工作树',
|
||
'sessions.sidebar.group.actions.newDraftInGroupAria': '在 {label} 中新建草稿会话',
|
||
'sessions.sidebar.grouping.projectRoot': '项目根目录',
|
||
'sessions.sidebar.grouping.projectRootWithBranch': '项目根目录:{branch}',
|
||
'sessions.sidebar.grouping.archived': '已归档',
|
||
'sessions.sidebar.grouping.archivedDescription': '已归档且未分配的会话',
|
||
'sessions.sidebar.folderItem.expandAria': '展开文件夹 {folderName}',
|
||
'sessions.sidebar.folderItem.collapseAria': '折叠文件夹 {folderName}',
|
||
'sessions.sidebar.folderItem.namePlaceholder': '文件夹名称',
|
||
'sessions.sidebar.folderItem.newSessionAria': '在 {folderName} 中新建会话',
|
||
'sessions.sidebar.folderItem.newSubfolderAria': '在 {folderName} 中新建子文件夹',
|
||
'sessions.sidebar.folderItem.newSubfolder': '新建子文件夹',
|
||
'sessions.sidebar.folderItem.renameAria': '重命名文件夹 {folderName}',
|
||
'sessions.sidebar.folderItem.deleteArchivedInFolderAria': '删除文件夹 {folderName} 中已归档会话',
|
||
'sessions.sidebar.folderItem.deleteFolderAria': '删除文件夹 {folderName}',
|
||
'sessions.sidebar.folderItem.emptyFolder': '空文件夹',
|
||
'sessions.sidebar.sessionDialogs.ok': '确定',
|
||
'sessions.sidebar.sessionDialogs.linkedSessionSingle': '关联会话',
|
||
'sessions.sidebar.sessionDialogs.linkedSessionPlural': '关联会话',
|
||
'sessions.sidebar.sessionDialogs.delete.note': '工作树目录会保留。与所选会话关联的子会话也会被删除。',
|
||
'sessions.sidebar.sessionDialogs.directory.errorSelectTitle': '选择目录失败',
|
||
'sessions.sidebar.sessionDialogs.directory.errorOpenTitle': '打开目录失败',
|
||
'sessions.sidebar.sessionDialogs.directory.errorOpenDescription': '桌面端无法授予文件访问权限。',
|
||
'sessions.sidebar.sessionDialogs.directory.errorAddProjectTitle': '添加项目失败',
|
||
'sessions.sidebar.sessionDialogs.directory.errorAddProjectDescription': '请选择有效的目录路径。',
|
||
'sessions.sidebar.sessionDialogs.worktree.errorRemoveTitle': '移除工作树失败',
|
||
'sessions.sidebar.sessionDialogs.worktree.removedTitle': '工作树已移除',
|
||
'sessions.sidebar.sessionDialogs.worktree.removed': '工作树已移除。',
|
||
'sessions.sidebar.sessionDialogs.worktree.removedWithRemote': '工作树和远程分支已移除。',
|
||
'sessions.sidebar.sessionDialogs.worktree.attachedArchived': '关联工作树已归档。',
|
||
'sessions.sidebar.sessionDialogs.worktree.attachedArchivedPlural': '关联工作树已归档。',
|
||
'sessions.sidebar.sessionDialogs.worktree.archivedAndRemoteRemoved': '工作树已归档且远程分支已移除。',
|
||
'sessions.sidebar.sessionDialogs.worktree.label': '工作树',
|
||
'sessions.sidebar.sessionDialogs.worktree.pathUnavailable': '工作树路径不可用。',
|
||
'sessions.sidebar.sessionDialogs.worktree.uncommittedWarning': '未提交的更改将被丢弃。',
|
||
'sessions.sidebar.sessionDialogs.actions.deleteRemoteBranch': '删除远程分支',
|
||
'sessions.sidebar.sessionDialogs.actions.remoteBranchInfoUnavailable': '远程分支信息不可用',
|
||
'sessions.sidebar.sessionDialogs.actions.deleteLocalBranch': '删除本地分支',
|
||
'sessions.sidebar.sessionDialogs.actions.deleting': '删除中…',
|
||
'sessions.sidebar.sessionDialogs.actions.deleteWorktree': '删除工作树',
|
||
'gitView.branch.branchToMergeInto': '要合并到 {branch} 的分支',
|
||
'gitView.branch.branchToRebaseOnto': '要变基到其上的分支',
|
||
'gitView.branch.create': '创建新分支...',
|
||
'gitView.branch.currentBadge': '当前',
|
||
'gitView.branch.currentBranchFallback': '当前分支',
|
||
'gitView.branch.currentBranchTooltip': '当前分支',
|
||
'gitView.branch.detachedHead': '分离的 HEAD',
|
||
'gitView.branch.dialogDescriptionPrefix': '选择如何将另一个分支的更改带入',
|
||
'gitView.branch.empty': '未找到分支。',
|
||
'gitView.branch.localBranches': '本地分支',
|
||
'gitView.branch.mergeDescription': '使用合并提交合并分支,并保留历史。',
|
||
'gitView.branch.mergeRebase': '合并/变基',
|
||
'gitView.branch.mergeRebaseTooltip': '从另一个分支合并或变基更改。',
|
||
'gitView.branch.mergingInProgress': '正在合并...',
|
||
'gitView.branch.namePlaceholder': '分支名称',
|
||
'gitView.branch.newBranchPlaceholder': '新分支名称',
|
||
'gitView.branch.noLocalBranches': '没有本地分支',
|
||
'gitView.branch.noRemoteBranches': '没有远程分支',
|
||
'gitView.branch.operation': '操作',
|
||
'gitView.branch.operationCompleted': '操作已完成',
|
||
'gitView.branch.operationFailed': '操作失败',
|
||
'gitView.branch.pushToPrefix': '将',
|
||
'gitView.branch.pushToSuffix': '推送到:',
|
||
'gitView.branch.rebaseDescription': '将你的提交移动到另一分支之上,形成线性历史。',
|
||
'gitView.branch.rebasingInProgress': '正在变基...',
|
||
'gitView.branch.remoteBranches': '远程分支',
|
||
'gitView.branch.renameTitle': '重命名分支',
|
||
'gitView.branch.renameSave': '保存分支名称',
|
||
'gitView.branch.renameSaving': '正在保存分支名称',
|
||
'gitView.branch.renameCancel': '取消重命名分支',
|
||
'gitView.branch.searchPlaceholder': '搜索分支...',
|
||
'gitView.branch.selectBranch': '选择分支...',
|
||
'gitView.branch.summaryMergeInfix': '合并到',
|
||
'gitView.branch.summaryMergePrefix': '这将把',
|
||
'gitView.branch.summaryRebaseInfix': '变基到',
|
||
'gitView.branch.summaryRebasePrefix': '这将把',
|
||
'gitView.branch.updateDescriptionPrefix': '将另一个分支的更改带入',
|
||
'gitView.branch.updateTitle': '更新分支',
|
||
'gitView.changes.changedFilesAria': '已更改文件',
|
||
'gitView.changes.clearSelectionAria': '清除文件选择',
|
||
'gitView.changes.collapseDirectoryAria': '折叠目录 {path}',
|
||
'gitView.changes.expandDirectoryAria': '展开目录 {path}',
|
||
'gitView.changes.revertAll': '全部还原',
|
||
'gitView.changes.revertAllDescriptionPlural': '这将丢弃列表中 {count} 个文件的本地更改。',
|
||
'gitView.changes.revertAllDescriptionSingle': '这将丢弃列表中 {count} 个文件的本地更改。',
|
||
'gitView.changes.revertAllDialogTitle': '还原所有更改?',
|
||
'gitView.changes.revertFileAria': '还原 {path} 的更改',
|
||
'gitView.changes.revertFileTooltip': '还原更改',
|
||
'gitView.changes.reverting': '正在还原...',
|
||
'gitView.changes.selectAllAria': '全选文件',
|
||
'gitView.changes.selectFileAria': '选择 {path}',
|
||
'gitView.changes.title': '更改',
|
||
'gitView.changes.toggleDirectorySelectionAria': '切换目录 {path} 的选择',
|
||
'gitView.commit.addGitmoji': '添加 gitmoji',
|
||
'gitView.commit.aiHighlights.insertAria': '将高亮插入提交信息',
|
||
'gitView.commit.aiHighlights.insertTooltip': '将高亮追加到提交信息',
|
||
'gitView.commit.aiHighlights.title': '重点',
|
||
'gitView.commit.commit': '提交',
|
||
'gitView.commit.commitAria': '提交',
|
||
'gitView.commit.committing': '提交中...',
|
||
'gitView.commit.generate': '生成',
|
||
'gitView.commit.generateAria': '生成提交信息',
|
||
'gitView.commit.messagePlaceholder': '提交信息',
|
||
'gitView.commit.push': 'Commit & sync',
|
||
'gitView.commit.pushAria': 'Commit and sync',
|
||
'gitView.commit.pushing': 'sync 中...',
|
||
'gitView.commit.selectFilesHint': '在“更改”中选择文件以启用提交。',
|
||
'gitView.commit.title': '提交',
|
||
'gitView.common.cancel': '取消',
|
||
'gitView.common.close': '关闭',
|
||
'gitView.common.done': '完成',
|
||
'gitView.common.processing': '处理中...',
|
||
'gitView.common.reset': '重置',
|
||
'gitView.conflict.abortOperation': '中止 {operation}',
|
||
'gitView.conflict.conflictedFiles': '冲突文件:',
|
||
'gitView.conflict.continueLater': '稍后继续',
|
||
'gitView.conflict.detectedDescription': '{operation} 操作产生了需要解决的冲突。',
|
||
'gitView.conflict.detectedTitle': '检测到 {operation} 冲突',
|
||
'gitView.conflict.errorLoadingDetails': '加载详情失败:{message}',
|
||
'gitView.conflict.headInfo': 'HEAD 信息:',
|
||
'gitView.conflict.loadFailed': '加载冲突详情失败',
|
||
'gitView.conflict.loading': '正在加载冲突详情...',
|
||
'gitView.conflict.noActiveSession': '没有活动会话',
|
||
'gitView.conflict.noActiveSessionDescription': '请先打开一个聊天会话或新建会话。',
|
||
'gitView.conflict.resolveCurrentSession': '在当前会话中解决',
|
||
'gitView.conflict.resolveNewSession': '在新会话中解决',
|
||
'gitView.empty.cleanDescription': '所有更改都已提交',
|
||
'gitView.empty.cleanTitle': '工作区干净',
|
||
'gitView.empty.pullBehindPlural': '拉取 {count} 个提交',
|
||
'gitView.empty.pullBehindSingle': '拉取 {count} 个提交',
|
||
'gitView.header.identityTooltip': 'Git 身份',
|
||
'gitView.header.noIdentity': '无身份',
|
||
'gitView.header.noProfiles': '没有可应用的配置。',
|
||
'gitView.header.removeRemoteAria': '移除远程 {name}',
|
||
'gitView.header.removeRemoteTitle': '移除 {name}',
|
||
'gitView.history.binary': '二进制',
|
||
'gitView.history.binaryNoDiff': '二进制文件 — 无可用 diff',
|
||
'gitView.history.commitsPlaceholder': '提交数',
|
||
'gitView.history.copySha': '复制 SHA',
|
||
'gitView.history.diffError': '加载 diff 失败,点击重试。',
|
||
'gitView.history.largeDiffDescription': '渲染可能较慢。你仍可点击下方查看 diff。',
|
||
'gitView.history.largeDiffTitle': '大型 diff({count} 行变更)',
|
||
'gitView.history.loadingDiff': '正在加载 diff...',
|
||
'gitView.history.loadingFiles': '正在加载文件...',
|
||
'gitView.history.logSize100': '100 个提交',
|
||
'gitView.history.logSize25': '25 个提交',
|
||
'gitView.history.logSize50': '50 个提交',
|
||
'gitView.history.noCommits': '未找到提交',
|
||
'gitView.history.noFiles': '没有文件',
|
||
'gitView.history.renamedNoDiff': '已重命名文件 — 不支持 diff',
|
||
'gitView.history.renderDiffAnyway': '仍然渲染',
|
||
'gitView.history.title': '历史',
|
||
'gitView.integrate.checking': '检查中…',
|
||
'gitView.integrate.cherryPickAbortedToast': '已中止 cherry-pick',
|
||
'gitView.integrate.cherryPickConflictDescription': '请先解决冲突,然后继续。',
|
||
'gitView.integrate.cherryPickConflictToast': 'cherry-pick 冲突',
|
||
'gitView.integrate.cherryPickContinueFailedToast': '继续 cherry-pick 失败',
|
||
'gitView.integrate.cherryPickFinishedToast': 'cherry-pick 已完成',
|
||
'gitView.integrate.commitsMovedDescriptionPlural': '已将 {count} 个提交移动到 {branch}',
|
||
'gitView.integrate.commitsMovedDescriptionSingle': '已将 {count} 个提交移动到 {branch}',
|
||
'gitView.integrate.commitsMovedToast': '提交已移动',
|
||
'gitView.integrate.commitsToMove': '待移动提交',
|
||
'gitView.integrate.conflictsInFiles': '{count} 个文件存在冲突',
|
||
'gitView.integrate.currentCommit': '当前提交',
|
||
'gitView.integrate.currentSession': '当前会话',
|
||
'gitView.integrate.failedToMoveToast': '移动提交失败',
|
||
'gitView.integrate.moreFiles': '+{count} 个更多',
|
||
'gitView.integrate.move': '移动',
|
||
'gitView.integrate.moveCommits': '移动提交',
|
||
'gitView.integrate.moving': '移动中…',
|
||
'gitView.integrate.newSession': '新会话',
|
||
'gitView.integrate.noActiveSession': '没有活动会话',
|
||
'gitView.integrate.noActiveSessionDescription': '请先打开聊天会话或新建会话。',
|
||
'gitView.integrate.noCommitsToMove': '没有可移动的提交。',
|
||
'gitView.integrate.noCommitsToMoveToast': '没有可移动的提交',
|
||
'gitView.integrate.previewUnavailable': '预览不可用。',
|
||
'gitView.integrate.showAll': '显示全部',
|
||
'gitView.integrate.showLess': '收起',
|
||
'gitView.integrate.showingFirstCommits': '显示前 {count} 个提交。',
|
||
'gitView.integrate.target': '目标',
|
||
'gitView.integrate.title': '重新整合提交',
|
||
'gitView.integrate.toMoveCount': '{count} 待移动',
|
||
'gitView.operation.abort': '中止',
|
||
'gitView.operation.continue': '继续',
|
||
'gitView.operation.inProgressTitle': '{operation} 进行中',
|
||
'gitView.operation.merge': '合并',
|
||
'gitView.operation.mergeInProgressWithHead': '合并进行中({head})',
|
||
'gitView.operation.mergingMessage': '正在合并:{message}',
|
||
'gitView.operation.rebase': '变基',
|
||
'gitView.operation.rebaseInProgress': '变基进行中',
|
||
'gitView.operation.rebasingOnto': '正在将 {headName} 变基到 {onto}',
|
||
'gitView.operation.resolveConflictsHint': '解决冲突,然后继续操作。',
|
||
'gitView.operation.resolveWithAi': '使用 AI 解决',
|
||
'gitView.stash.confirmButton': '储藏并{operation}',
|
||
'gitView.stash.description': '你有未提交更改会被此次 {operation} 覆盖。是否先临时储藏这些更改?',
|
||
'gitView.stash.mergeWith': '与',
|
||
'gitView.stash.rebaseOnto': '变基到',
|
||
'gitView.stash.restoreAfterOperation': '{operation} 后恢复更改',
|
||
'gitView.stash.restoreAria': '在操作后恢复更改',
|
||
'gitView.stash.stepRestore': '恢复已储藏的更改',
|
||
'gitView.stash.stepStash': '储藏未提交的更改',
|
||
'gitView.stash.thisWill': '这将会:',
|
||
'gitView.stash.title': '未提交的更改',
|
||
'gitView.stashes.actions.apply': 'Apply',
|
||
'gitView.stashes.actions.drop': 'Drop',
|
||
'gitView.stashes.actions.pop': 'Pop',
|
||
'gitView.stashes.actions.stashCurrent': 'Stash current changes',
|
||
'gitView.stashes.actions.stashCurrentWithCount': 'Stash {count} files',
|
||
'gitView.stashes.confirm.drop': 'Drop {ref}?',
|
||
'gitView.stashes.description': 'Save, restore, and clean up Git stashes for this repository.',
|
||
'gitView.stashes.empty.list': 'No stashes yet.',
|
||
'gitView.stashes.empty.search': 'No matching stashes.',
|
||
'gitView.stashes.includeUntrackedHint': 'Untracked files are included automatically.',
|
||
'gitView.stashes.fileCount': '{count} files',
|
||
'gitView.stashes.fileCountLoading': 'counting files...',
|
||
'gitView.stashes.itemNumber': '#{number}',
|
||
'gitView.stashes.latestLabel': 'Latest',
|
||
'gitView.stashes.messagePlaceholder': 'Stash name',
|
||
'gitView.stashes.searchPlaceholder': 'Search stashes',
|
||
'gitView.stashes.title': 'Stashes',
|
||
'gitView.stashes.toast.applyFailed': 'Failed to apply stash',
|
||
'gitView.stashes.toast.applySuccess': 'Stash applied',
|
||
'gitView.stashes.toast.createFailed': 'Failed to stash changes',
|
||
'gitView.stashes.toast.created': 'Changes stashed',
|
||
'gitView.stashes.toast.dropFailed': 'Failed to drop stash',
|
||
'gitView.stashes.toast.dropSuccess': 'Stash dropped',
|
||
'gitView.stashes.toast.loadFailed': 'Failed to load stashes',
|
||
'gitView.stashes.toast.noChanges': 'No local changes to stash',
|
||
'gitView.stashes.toast.popFailed': 'Failed to pop stash',
|
||
'gitView.stashes.toast.popSuccess': 'Stash popped',
|
||
'gitView.stashes.untitled': 'Untitled stash',
|
||
'gitView.sync.fetch': '获取',
|
||
'gitView.sync.fetchFromRemote': '从 {name} 获取',
|
||
'gitView.sync.fetchTooltip': '从远程获取',
|
||
'gitView.sync.commitOrStashTooltip': '同步前请先提交或储藏你的更改',
|
||
'gitView.sync.moreActionsAria': '更多同步操作',
|
||
'gitView.sync.noRemoteTooltip': '未配置远程',
|
||
'gitView.sync.pull': '拉取',
|
||
'gitView.sync.pullTooltip': '拉取更改',
|
||
'gitView.sync.pullTooltipBehind': '拉取更改(落后 {count})',
|
||
'gitView.sync.push': '推送',
|
||
'gitView.sync.pushTooltip': '推送更改',
|
||
'gitView.sync.pushTooltipAhead': '推送更改(领先 {count})',
|
||
'gitView.sync.sync': 'sync',
|
||
'gitView.sync.syncChanges': 'Sync Changes',
|
||
'gitView.sync.syncChangesTooltip': 'Sync Changes({behind} 下,{ahead} 上)',
|
||
'gitView.sync.syncChangesWithCounts': 'Sync Changes {behind}↓ {ahead}↑',
|
||
'gitView.sync.syncCounts': '{behind}↓ {ahead}↑',
|
||
'gitView.branch.actionsUnavailable': '当前仓库状态下分支操作不可用',
|
||
'gitView.conflict.noDetailsAvailable': '没有可用的冲突详情',
|
||
'gitView.empty.notGitRepository': '当前目录不是 Git 仓库',
|
||
'gitView.empty.notGitRepositoryDescription': '请在此目录初始化 Git,或打开一个 Git 仓库。',
|
||
'gitView.empty.selectSessionOrDirectory': '请选择会话或目录以查看 Git 状态',
|
||
'gitView.empty.worktreeFeaturesUnavailable': '当前工作区模式下,worktree 功能不可用。',
|
||
'gitView.empty.worktreeSetupDescription': '正在完成 worktree 设置并准备仓库状态。',
|
||
'gitView.empty.worktreeSetupInProgress': 'worktree 设置进行中',
|
||
'gitView.gitmoji.empty': '未找到 gitmoji',
|
||
'gitView.gitmoji.searchPlaceholder': '搜索 gitmoji...',
|
||
'gitView.gitmoji.title': '插入 gitmoji',
|
||
'gitView.history.dialogDescription': '浏览最近提交并查看变更文件。',
|
||
'gitView.loading.checkingRepository': '正在检查仓库...',
|
||
'gitView.loading.loading': '加载中...',
|
||
'gitView.pr.actions.add': '添加',
|
||
'gitView.pr.actions.cancelEditing': '取消编辑',
|
||
'gitView.pr.actions.cancelEditingAria': '取消 PR 编辑',
|
||
'gitView.pr.actions.createPr': '创建 PR',
|
||
'gitView.pr.actions.edit': '编辑',
|
||
'gitView.pr.actions.editPr': '编辑 PR',
|
||
'gitView.pr.actions.editPrAria': '编辑拉取请求',
|
||
'gitView.pr.actions.hide': '隐藏',
|
||
'gitView.pr.actions.markReady': '标记为可审查',
|
||
'gitView.pr.actions.markReadyAria': '将拉取请求标记为可审查',
|
||
'gitView.pr.actions.mergePr': '合并 PR',
|
||
'gitView.pr.actions.mergePrAria': '合并拉取请求',
|
||
'gitView.pr.actions.openChecks': '打开检查',
|
||
'gitView.pr.actions.openChecksAria': '打开失败的检查',
|
||
'gitView.pr.actions.openComments': '打开评论',
|
||
'gitView.pr.actions.openCommentsAria': '打开拉取请求评论',
|
||
'gitView.pr.actions.openOnGitHub': '在 GitHub 中打开',
|
||
'gitView.pr.actions.openOnGitHubAria': '在 GitHub 中打开拉取请求',
|
||
'gitView.pr.actions.openSettings': '打开设置',
|
||
'gitView.pr.actions.repo': '仓库',
|
||
'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.toggleDraftAria': '切换草稿状态',
|
||
'gitView.pr.actions.refresh': '刷新 PR 状态',
|
||
'gitView.pr.actions.refreshAria': '刷新拉取请求状态',
|
||
'gitView.pr.additionalContext.added': '已添加',
|
||
'gitView.pr.additionalContext.hint': '添加额外上下文可提升审查质量。',
|
||
'gitView.pr.additionalContext.optional': '可选',
|
||
'gitView.pr.additionalContext.title': '补充上下文',
|
||
'gitView.pr.checkDetails.empty': '没有可用的检查详情',
|
||
'gitView.pr.checkDetails.title': '失败检查详情',
|
||
'gitView.pr.checkingStatus': '正在检查拉取请求状态...',
|
||
'gitView.pr.checks.label': 'checks',
|
||
'gitView.pr.checks.completedLabel': '完成时间',
|
||
'gitView.pr.checks.conclusionLabel': '结论',
|
||
'gitView.pr.checks.startedLabel': '开始时间',
|
||
'gitView.pr.checks.statusLabel': '状态',
|
||
'gitView.pr.checks.stepLabel': '步骤',
|
||
'gitView.pr.checks.steps': '步骤',
|
||
'gitView.pr.comments.empty': '未找到评论',
|
||
'gitView.pr.comments.generalContext': '普通评论',
|
||
'gitView.pr.comments.reviewContext': '审查评论',
|
||
'gitView.pr.comments.title': '评论',
|
||
'gitView.pr.comments.unknownAuthor': '未知作者',
|
||
'gitView.pr.createTitle': '创建拉取请求',
|
||
'gitView.pr.draftMustBeReady': '草稿 PR 必须先标记为可审查才能合并。',
|
||
'gitView.pr.field.baseBranch': '基准分支',
|
||
'gitView.pr.field.description': '描述',
|
||
'gitView.pr.field.draft': '草稿',
|
||
'gitView.pr.field.title': '标题',
|
||
'gitView.pr.githubNotConnected': 'GitHub 未连接',
|
||
'gitView.pr.loadingDescription': '正在加载描述...',
|
||
'gitView.pr.mergeMethod.merge': '创建合并提交',
|
||
'gitView.pr.mergeMethod.rebase': '变基并合并',
|
||
'gitView.pr.mergeMethod.squash': '压缩并合并',
|
||
'gitView.pr.noDescription': '无描述',
|
||
'gitView.pr.noMergePermission': '你没有权限合并此拉取请求。',
|
||
'gitView.pr.notMergeable': '不可合并',
|
||
'gitView.pr.numberLabel': 'PR #{number}',
|
||
'gitView.pr.placeholder.additionalContext': '补充约束、发布说明或评审上下文...',
|
||
'gitView.pr.placeholder.description': '描述此变更...',
|
||
'gitView.pr.placeholder.main': '总结你的拉取请求',
|
||
'gitView.pr.placeholder.selectBaseBranch': '选择基准分支',
|
||
'gitView.pr.placeholder.title': '拉取请求标题',
|
||
'gitView.pr.placeholder.whatChanged': '改了什么,为什么改?',
|
||
'gitView.pr.statusUnavailable': '拉取请求状态不可用',
|
||
'gitView.pr.toast.baseBranchRequired': '请选择基准分支',
|
||
'gitView.pr.toast.baseMustDifferFromHead': '基准分支必须与当前分支不同',
|
||
'gitView.pr.toast.createPrFailed': '创建拉取请求失败',
|
||
'gitView.pr.toast.generateDescriptionFailed': '生成拉取请求描述失败',
|
||
'gitView.pr.toast.githubApiUnavailable': 'GitHub API 不可用',
|
||
'gitView.pr.toast.loadCheckDetailsFailed': '加载检查详情失败',
|
||
'gitView.pr.toast.loadChecksFailed': '加载拉取请求检查失败',
|
||
'gitView.pr.toast.loadCommentsFailed': '加载评论失败',
|
||
'gitView.pr.toast.loadPrCommentsFailed': '加载拉取请求评论失败',
|
||
'gitView.pr.toast.markReadyFailed': '标记拉取请求可审查失败',
|
||
'gitView.pr.toast.markedReady': '拉取请求已标记为可审查',
|
||
'gitView.pr.toast.mergeFailed': '合并拉取请求失败',
|
||
'gitView.pr.toast.noActiveSession': '没有活动聊天会话',
|
||
'gitView.pr.toast.noActiveSessionDescription': '请先打开或创建聊天会话,再向智能体发送上下文。',
|
||
'gitView.pr.toast.noFailedChecks': '没有失败检查',
|
||
'gitView.pr.toast.noModelSelected': '请先选择模型',
|
||
'gitView.pr.toast.noPrComments': '未找到拉取请求评论',
|
||
'gitView.pr.toast.prCreated': '拉取请求已创建',
|
||
'gitView.pr.toast.prMerged': '拉取请求已合并',
|
||
'gitView.pr.toast.prNotMerged': '拉取请求未合并',
|
||
'gitView.pr.toast.prUpdated': '拉取请求已更新',
|
||
'gitView.pr.toast.sendMessageFailed': '向智能体发送消息失败',
|
||
'gitView.pr.toast.titleRequired': '标题不能为空',
|
||
'gitView.pr.toast.updatePrFailed': '更新拉取请求失败',
|
||
'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}',
|
||
'gitView.toast.applyIdentityFailed': '应用身份失败',
|
||
'gitView.toast.branchCreatedLocally': '分支已在本地创建,但设置上游失败。',
|
||
'gitView.toast.cannotCheckout': '无法切换分支:{reason}',
|
||
'gitView.toast.cannotCreateBranch': '无法创建分支:{reason}',
|
||
'gitView.toast.cannotRemoveOriginRemote': '不能移除 origin 远程',
|
||
'gitView.toast.cannotRenameBranch': '无法重命名分支:{reason}',
|
||
'gitView.toast.checkedOut': '已切换到 {name}',
|
||
'gitView.toast.checkoutFailed': '切换到 {name} 失败',
|
||
'gitView.toast.commitCreated': '提交已创建',
|
||
'gitView.toast.commitHashCopied': '提交哈希已复制',
|
||
'gitView.toast.continueOperationFailed': '继续操作失败',
|
||
'gitView.toast.copyFailed': '复制失败',
|
||
'gitView.toast.createBranchFailed': '创建分支失败',
|
||
'gitView.toast.createCommitFailed': '创建提交失败',
|
||
'gitView.toast.createdBranch': '已创建分支 {name}',
|
||
'gitView.toast.enterCommitMessage': '请输入提交信息',
|
||
'gitView.toast.fetchedFromRemote': '已从 {name} 获取',
|
||
'gitView.toast.generateCommitMessageFailed': '生成提交信息失败',
|
||
'gitView.toast.mergeAborted': '合并已中止',
|
||
'gitView.toast.mergeCompleted': '合并完成',
|
||
'gitView.toast.mergeConflictsDetected': '检测到合并冲突',
|
||
'gitView.toast.mergedIntoBranch': '已将 {branch} 合并到 {currentBranch}',
|
||
'gitView.toast.pulledFilesPlural': '已从 {name} 拉取 {count} 个文件',
|
||
'gitView.toast.pulledFilesSingle': '已从 {name} 拉取 {count} 个文件',
|
||
'gitView.toast.pushedToUpstream': '已推送到上游',
|
||
'gitView.toast.commitOrStashBeforeSync': '同步前请先提交或储藏你的更改',
|
||
'gitView.toast.alreadyUpToDate': '已是最新状态',
|
||
'gitView.toast.syncedPulledPluralAndPushed': '已从 {name} 拉取 {count} 个文件并推送到上游',
|
||
'gitView.toast.syncedPulledSingleAndPushed': '已从 {name} 拉取 {count} 个文件并推送到上游',
|
||
'gitView.toast.syncedChanges': '已同步更改',
|
||
'gitView.toast.rebaseAborted': '变基已中止',
|
||
'gitView.toast.rebaseConflictsDetected': '检测到变基冲突',
|
||
'gitView.toast.rebaseStepCompleted': '变基步骤已完成',
|
||
'gitView.toast.rebasedOntoBranch': '已将 {currentBranch} 变基到 {branch}',
|
||
'gitView.toast.refreshRepositoryFailed': '刷新仓库失败',
|
||
'gitView.toast.remoteNameRequired': '远程名称不能为空',
|
||
'gitView.toast.removedRemote': '已移除远程 {name}',
|
||
'gitView.toast.renameBranchFailed': '将 {oldName} 重命名为 {newName} 失败',
|
||
'gitView.toast.renamedBranch': '已将 {oldName} 重命名为 {newName}',
|
||
'gitView.toast.restoreStashFailed': '恢复储藏更改失败',
|
||
'gitView.toast.restoreStashManually': '请手动恢复储藏的更改',
|
||
'gitView.toast.revertFailed': '回退更改失败',
|
||
'gitView.toast.revertedFile': '已回退 {path}',
|
||
'gitView.toast.revertedFilesPlural': '已回退 {count} 个文件',
|
||
'gitView.toast.revertedFilesSingle': '已回退 {count} 个文件',
|
||
'gitView.toast.revertedSomePlural': '已回退 {success} 个文件,{failed} 个失败',
|
||
'gitView.toast.revertedSomeSingle': '已回退 {success} 个文件,{failed} 个失败',
|
||
'gitView.toast.selectFileToCommit': '请至少选择一个文件再提交',
|
||
'gitView.toast.selectFileToDescribe': '请至少选择一个文件再生成描述',
|
||
'gitView.toast.stashedRestored': '已恢复储藏的更改',
|
||
'gitView.toast.syncActionFailed': '{action} 失败',
|
||
'gitView.toast.upstreamSet': '已将 {branch} 的上游设置为 {remote}',
|
||
'gitView.worktree.availableInWorktreeMode': '仅在 worktree 模式可用',
|
||
'contextPanel.mode.chat': '聊天',
|
||
'contextPanel.mode.files': '文件',
|
||
'contextPanel.mode.diff': '对比',
|
||
'contextPanel.mode.plan': '计划',
|
||
'contextPanel.mode.context': '上下文',
|
||
'contextPanel.mode.preview': '预览',
|
||
'contextPanel.mode.browser': '浏览器',
|
||
'contextPanel.browser.open': '打开浏览器面板',
|
||
'contextPanel.browser.addressAria': '浏览器地址',
|
||
'contextPanel.browser.empty': '网页浏览器',
|
||
'contextPanel.browser.emptyHint': '在上方输入网址开始浏览',
|
||
'contextPanel.tab.closeTabAria': '关闭 {label} 标签',
|
||
'contextPanel.actions.collapsePanel': '折叠面板',
|
||
'contextPanel.actions.expandPanel': '展开面板',
|
||
'contextPanel.actions.closePanel': '关闭面板',
|
||
'contextPanel.actions.resizePanelAria': '调整上下文面板大小',
|
||
'contextPanel.iframe.sessionChatTitle': '会话聊天 {sessionID}',
|
||
'contextPanel.preview.actions.reload': '刷新预览',
|
||
'contextPanel.preview.actions.openExternal': '在浏览器中打开',
|
||
'contextPanel.preview.actions.retry': '重试',
|
||
'contextPanel.preview.iframeTitle': '预览',
|
||
'contextPanel.preview.invalidUrl': '预览需要有效的 http(s) URL。',
|
||
'contextPanel.preview.empty': '没有预览 URL',
|
||
'contextPanel.preview.loading': '正在连接预览代理...',
|
||
'contextPanel.preview.proxyError': '无法启动预览代理。',
|
||
'contextPanel.preview.upstreamUnreachable': '开发服务器无响应。',
|
||
'contextPanel.preview.upstreamUnreachableHint': '请确认开发服务器仍在运行,然后重试。',
|
||
|
||
'terminalView.preview.open': '预览',
|
||
'terminalView.preview.openTitle': '打开预览面板',
|
||
'sidebarFilesTree.menu.rename': '重命名',
|
||
'sidebarFilesTree.menu.copyPath': '复制路径',
|
||
'sidebarFilesTree.menu.save': '保存',
|
||
'sidebarFilesTree.menu.newFile': '新建文件',
|
||
'sidebarFilesTree.menu.newFolder': '新建文件夹',
|
||
'sidebarFilesTree.menu.delete': '删除',
|
||
'sidebarFilesTree.toast.pathCopied': '路径已复制',
|
||
'sidebarFilesTree.toast.copyFailed': '复制失败',
|
||
'sidebarFilesTree.toast.revealFailed': '定位路径失败',
|
||
'sidebarFilesTree.toast.filenameRequired': '文件名不能为空',
|
||
'sidebarFilesTree.toast.writeNotSupported': '不支持写入',
|
||
'sidebarFilesTree.toast.fileCreated': '文件已创建',
|
||
'sidebarFilesTree.toast.operationFailed': '操作失败',
|
||
'sidebarFilesTree.toast.folderNameRequired': '文件夹名不能为空',
|
||
'sidebarFilesTree.toast.folderCreated': '文件夹已创建',
|
||
'sidebarFilesTree.toast.nameRequired': '名称不能为空',
|
||
'sidebarFilesTree.toast.renameNotSupported': '不支持重命名',
|
||
'sidebarFilesTree.toast.renamedSuccessfully': '重命名成功',
|
||
'sidebarFilesTree.toast.deleteNotSupported': '不支持删除',
|
||
'sidebarFilesTree.toast.deletedSuccessfully': '删除成功',
|
||
'sidebarFilesTree.search.placeholder': '搜索文件...',
|
||
'sidebarFilesTree.search.clearAria': '清除搜索',
|
||
'sidebarFilesTree.actions.newFileTitle': '新建文件',
|
||
'sidebarFilesTree.actions.newFolderTitle': '新建文件夹',
|
||
'sidebarFilesTree.actions.refreshTitle': '刷新',
|
||
'sidebarFilesTree.state.searching': '搜索中...',
|
||
'sidebarFilesTree.state.loading': '加载中...',
|
||
'sidebarFilesTree.dialog.createFile.title': '新建文件',
|
||
'sidebarFilesTree.dialog.createFolder.title': '新建文件夹',
|
||
'sidebarFilesTree.dialog.rename.title': '重命名',
|
||
'sidebarFilesTree.dialog.delete.title': '删除',
|
||
'sidebarFilesTree.dialog.createFile.description': '在 {path} 中创建新文件',
|
||
'sidebarFilesTree.dialog.createFolder.description': '在 {path} 中创建新文件夹',
|
||
'sidebarFilesTree.dialog.rename.description': '重命名 {name}',
|
||
'sidebarFilesTree.dialog.delete.description': '确定要删除 {name} 吗?此操作不可撤销。',
|
||
'sidebarFilesTree.dialog.rootFallback': '根目录',
|
||
'sidebarFilesTree.dialog.rename.placeholder': '新名称',
|
||
'sidebarFilesTree.dialog.namePlaceholder': '名称',
|
||
'sidebarFilesTree.dialog.cancel': '取消',
|
||
'sidebarFilesTree.dialog.confirm': '确认',
|
||
'sidebarFilesTree.dialog.delete.confirm': '删除',
|
||
'filesView.dialog.createFile.title': '新建文件',
|
||
'filesView.dialog.createFolder.title': '新建文件夹',
|
||
'filesView.dialog.rename.title': '重命名',
|
||
'filesView.dialog.delete.title': '删除',
|
||
'filesView.dialog.createFile.description': '在 {path} 中创建新文件',
|
||
'filesView.dialog.createFolder.description': '在 {path} 中创建新文件夹',
|
||
'filesView.dialog.rename.description': '重命名 {name}',
|
||
'filesView.dialog.delete.description': '确定要删除 {name} 吗?此操作不可撤销。',
|
||
'filesView.dialog.rootFallback': '根目录',
|
||
'filesView.dialog.rename.placeholder': '新名称',
|
||
'filesView.dialog.namePlaceholder': '名称',
|
||
'filesView.dialog.cancel': '取消',
|
||
'filesView.dialog.confirm': '确认',
|
||
'filesView.dialog.delete.confirm': '删除',
|
||
'filesView.editor.saving': '保存中...',
|
||
'filesView.editor.saved': '已保存',
|
||
'filesView.editor.autoSaveOn': '自动保存已开启',
|
||
'filesView.editor.manualSave': '手动保存',
|
||
'filesView.editor.saveNowTitle': '立即保存({shortcut})- 1.5 秒后自动保存',
|
||
'filesView.editor.saveNowManualTitle': '立即保存({shortcut})',
|
||
'filesView.editor.saveAria': '保存({shortcut})',
|
||
'filesView.editor.openInDesktopApp': '在桌面应用中打开',
|
||
'filesView.editor.refreshApps': '刷新应用',
|
||
'filesView.editor.disableLineWrap': '关闭自动换行',
|
||
'filesView.editor.enableLineWrap': '开启自动换行',
|
||
'filesView.editor.findInFile': '文件内查找',
|
||
'filesView.editor.goToLine': '跳转到行',
|
||
'filesView.editor.switchToTextView': '切换到文本视图',
|
||
'filesView.editor.switchToTreeView': '切换到树视图',
|
||
'filesView.toast.copyFailed': '复制失败',
|
||
'filesView.toast.openInAppFailed': '在 {app} 中打开失败',
|
||
'filesView.toast.savingNotSupported': '不支持保存',
|
||
'filesView.toast.writeFileFailed': '写入文件失败',
|
||
'filesView.toast.saveFailed': '保存失败',
|
||
'filesView.editor.copyFileContents': '复制文件内容',
|
||
'filesView.editor.copyFilePathTitle': '复制文件路径({path})',
|
||
'filesView.editor.saveFile': '保存文件',
|
||
'filesView.editor.exitFullscreen': '退出全屏',
|
||
'filesView.editor.fullscreen': '全屏',
|
||
'filesView.unsaved.title': '未保存的更改',
|
||
'filesView.unsaved.description': '继续前是否保存你的编辑?',
|
||
'filesView.unsaved.saveChanges': '保存更改',
|
||
'filesView.unsaved.discard': '放弃',
|
||
'filesView.editor.back': '返回',
|
||
'filesView.editor.openFilesAria': '打开文件列表',
|
||
'filesView.editor.closeFileAria': '关闭 {name}',
|
||
'filesView.editor.selectFile': '选择一个文件',
|
||
'filesView.editor.showControlsAria': '显示编辑器控制项',
|
||
'filesView.editor.controlsTitle': '编辑器控制项',
|
||
'filesView.editor.pickFileFromTree': '请从文件树中选择一个文件。',
|
||
'filesView.state.loading': '加载中...',
|
||
'filesView.state.openingFileAtChange': '正在打开变更处的文件...',
|
||
'filesView.tree.search.placeholder': '搜索文件...',
|
||
'filesView.tree.search.clearAria': '清除搜索',
|
||
'filesView.tree.search.searching': '搜索中...',
|
||
'filesView.tree.actions.newFileTitle': '新建文件',
|
||
'filesView.tree.actions.newFolderTitle': '新建文件夹',
|
||
'filesView.editor.imageAltFallback': '图片',
|
||
'filesView.error.jsonViewerUnavailable': 'JSON 查看器不可用',
|
||
'filesView.error.switchToTextMode': '请切换到文本模式查看原始内容。',
|
||
'filesView.warning.largeFilePreviewLimited': '该文件较大({sizeKb}KB),预览可能受限。',
|
||
'filesView.error.previewUnavailable': '预览不可用',
|
||
'filesView.error.switchToEditMode': '请切换到编辑模式修复问题。',
|
||
'filesView.error.readFileFailed': '读取文件失败',
|
||
'filesView.editor.htmlPreviewTitle': 'HTML 预览',
|
||
'contextUsage.aria.label': '上下文用量',
|
||
'contextUsage.mobile.title': '上下文用量',
|
||
'contextUsage.mobile.usedTokens': '已用 Token',
|
||
'contextUsage.mobile.contextLimit': '上下文上限',
|
||
'contextUsage.mobile.outputLimit': '输出上限',
|
||
'contextUsage.mobile.usage': '使用率',
|
||
'contextUsage.tooltip.usedTokens': '已用 Token:{tokens}',
|
||
'contextUsage.tooltip.contextLimit': '上下文上限:{tokens}',
|
||
'contextUsage.tooltip.outputLimit': '输出上限:{tokens}',
|
||
'contextSidebar.session.untitled': '未命名会话',
|
||
'contextSidebar.empty.openSession': '请先打开会话以查看上下文。',
|
||
'contextSidebar.section.context': '上下文',
|
||
'contextSidebar.section.lastAssistantMessage': '最近一条助手消息',
|
||
'contextSidebar.section.rawMessages': '原始消息',
|
||
'contextSidebar.context.percentUsed': '已使用 {percent}%',
|
||
'contextSidebar.breakdown.user': '用户',
|
||
'contextSidebar.breakdown.assistant': '助手',
|
||
'contextSidebar.breakdown.toolCalls': '工具调用',
|
||
'contextSidebar.breakdown.other': '其他',
|
||
'contextSidebar.stats.messages': '消息',
|
||
'contextSidebar.stats.user': '用户',
|
||
'contextSidebar.stats.assistant': '助手',
|
||
'contextSidebar.stats.cost': '成本',
|
||
'contextSidebar.tokens.input': '输入',
|
||
'contextSidebar.tokens.output': '输出',
|
||
'contextSidebar.tokens.reasoning': '推理',
|
||
'contextSidebar.tokens.cacheRead': '缓存读取',
|
||
'contextSidebar.tokens.cacheWrite': '缓存写入',
|
||
'contextSidebar.actions.copyJson': '复制 JSON',
|
||
'contextSidebar.actions.copy': '复制',
|
||
'contextSidebar.actions.copied': '已复制',
|
||
'planView.file.defaultName': 'plan',
|
||
'planView.title.default': '计划',
|
||
'planView.error.saveFailed': '保存失败',
|
||
'planView.error.previewUnavailable': '预览不可用',
|
||
'planView.error.switchToEditMode': '请切换到编辑模式修复问题。',
|
||
'planView.error.writeFailed': '写入失败',
|
||
'planView.error.writePlanFileFailed': '写入计划文件失败({status})',
|
||
'planView.actions.improvePlanAria': '改进计划',
|
||
'planView.actions.improve': '改进',
|
||
'planView.actions.implementPlanAria': '执行计划',
|
||
'planView.actions.implement': '执行',
|
||
'planView.actions.sendToNewSession': '发送到新会话',
|
||
'planView.actions.sendToNewWorktreeSession': '发送到新 worktree 会话',
|
||
'planView.actions.copyPlanContents': '复制计划内容',
|
||
'planView.state.loading': '加载中...',
|
||
'diffView.binary.unavailable': '该文件内容无法查看。',
|
||
'diffView.change.untracked': '未跟踪文件',
|
||
'diffView.change.new': '新文件',
|
||
'diffView.change.deleted': '已删除文件',
|
||
'diffView.change.renamed': '已重命名文件',
|
||
'diffView.change.copied': '已复制文件',
|
||
'diffView.change.modified': '已修改文件',
|
||
'diffView.mode.single.label': '单文件',
|
||
'diffView.mode.single.description': '一次只显示一个文件',
|
||
'diffView.mode.stacked.label': '全部文件',
|
||
'diffView.mode.stacked.description': '将所有修改文件堆叠显示',
|
||
'diffView.selector.selectFile': '选择文件',
|
||
'diffView.selector.viewMode': '视图模式',
|
||
'diffView.image.original': '原始',
|
||
'diffView.image.modified': '已修改',
|
||
'diffView.image.new': '新文件',
|
||
'diffView.image.originalAlt': '原始:{path}',
|
||
'diffView.image.modifiedAlt': '已修改:{path}',
|
||
'diffView.section.files': '文件',
|
||
'diffView.state.selectSessionDirectory': '请选择会话目录以查看差异',
|
||
'diffView.state.loadingRepositoryStatus': '正在加载仓库状态...',
|
||
'diffView.state.notGitRepository': '当前不是 Git 仓库。请在 Git 标签中初始化或切换目录。',
|
||
'diffView.state.cleanWorkingTree': '工作区干净,没有可显示的改动',
|
||
'diffView.state.failedToLoadDiff': '加载差异失败',
|
||
'diffView.state.loadingDiff': '正在加载差异...',
|
||
'diffView.state.loadingChanges': '正在加载变更...',
|
||
'diffView.summary.changedFilesSingle': '{count} 个文件已变更',
|
||
'diffView.summary.changedFilesPlural': '{count} 个文件已变更',
|
||
'diffView.actions.retry': '重试',
|
||
'diffView.actions.disableLineWrap': '关闭自动换行',
|
||
'diffView.actions.enableLineWrap': '开启自动换行',
|
||
'diffView.actions.openFileInEditorAtChange': '在编辑器中打开此文件并定位变更',
|
||
'diffView.actions.openFileAtFirstChangedLine': '在首个变更行打开此文件',
|
||
'rightSidebar.contextNotesTodo.plan.defaultTitle': '计划',
|
||
'rightSidebar.contextNotesTodo.empty.selectProject': '请选择一个项目以添加笔记和待办事项。',
|
||
'rightSidebar.contextNotesTodo.notes.title': '快速笔记 - {project}',
|
||
'rightSidebar.contextNotesTodo.notes.placeholder': '记录上下文、提醒或链接',
|
||
'rightSidebar.contextNotesTodo.todo.title': '待办',
|
||
'rightSidebar.contextNotesTodo.todo.itemsSingle': '{count} 项',
|
||
'rightSidebar.contextNotesTodo.todo.itemsPlural': '{count} 项',
|
||
'rightSidebar.contextNotesTodo.todo.clearCompleted': '清除已完成',
|
||
'rightSidebar.contextNotesTodo.todo.inputPlaceholder': '添加待办',
|
||
'rightSidebar.contextNotesTodo.todo.addAria': '添加待办',
|
||
'rightSidebar.contextNotesTodo.todo.empty': '还没有待办。为此项目添加一个简短清单吧。',
|
||
'rightSidebar.contextNotesTodo.todo.actions.markComplete': '将“{text}”标记为已完成',
|
||
'rightSidebar.contextNotesTodo.todo.actions.collapse': '折叠待办“{text}”',
|
||
'rightSidebar.contextNotesTodo.todo.actions.expand': '展开待办“{text}”',
|
||
'rightSidebar.contextNotesTodo.todo.actions.delete': '删除“{text}”',
|
||
'rightSidebar.contextNotesTodo.todo.actions.send': '发送“{text}”',
|
||
'rightSidebar.contextNotesTodo.todo.actions.reorder': '重新排序"{text}"',
|
||
'rightSidebar.contextNotesTodo.todo.resizeAria': '调整待办列表大小',
|
||
'rightSidebar.contextNotesTodo.todo.sendMenu.currentSession': '发送到当前会话',
|
||
'rightSidebar.contextNotesTodo.todo.sendMenu.newSession': '发送到新会话',
|
||
'rightSidebar.contextNotesTodo.todo.sendMenu.newWorktreeSession': '发送到新 worktree 会话',
|
||
'rightSidebar.contextNotesTodo.plans.title': '计划',
|
||
'rightSidebar.contextNotesTodo.plans.filesSingle': '{count} 个文件',
|
||
'rightSidebar.contextNotesTodo.plans.filesPlural': '{count} 个文件',
|
||
'rightSidebar.contextNotesTodo.plans.importFromFile': '从文件导入计划',
|
||
'rightSidebar.contextNotesTodo.plans.empty': '还没有已保存的计划。',
|
||
'rightSidebar.contextNotesTodo.plans.deletePlan': '删除计划',
|
||
'rightSidebar.contextNotesTodo.plans.deletePlanWithTitle': '删除计划“{title}”',
|
||
'rightSidebar.contextNotesTodo.sendDialog.title.newSession': '发送到新会话',
|
||
'rightSidebar.contextNotesTodo.sendDialog.title.newWorktree': '发送到新 worktree',
|
||
'rightSidebar.contextNotesTodo.sendDialog.variant.default': '默认',
|
||
'rightSidebar.contextNotesTodo.sendDialog.actions.cancel': '取消',
|
||
'rightSidebar.contextNotesTodo.sendDialog.actions.send': '发送',
|
||
'rightSidebar.contextNotesTodo.sendDialog.actions.sending': '发送中',
|
||
'rightSidebar.contextNotesTodo.toast.saveNotesFailed': '保存项目笔记失败',
|
||
'rightSidebar.contextNotesTodo.toast.loadNotesFailed': '加载项目笔记失败',
|
||
'rightSidebar.contextNotesTodo.toast.noActiveSession': '未选择活动会话',
|
||
'rightSidebar.contextNotesTodo.toast.sentToCurrentSession': '待办已发送到当前会话',
|
||
'rightSidebar.contextNotesTodo.toast.worktreeRequiresGitRepo': '仅 Git 仓库支持 worktree 操作',
|
||
'rightSidebar.contextNotesTodo.toast.createSessionFailed': '创建会话失败',
|
||
'rightSidebar.contextNotesTodo.toast.sentToNewSession': '待办已发送到新会话',
|
||
'rightSidebar.contextNotesTodo.toast.sentToNewWorktreeSession': '待办已发送到新的 worktree 会话',
|
||
'rightSidebar.contextNotesTodo.toast.sendTodoFailed': '发送待办失败',
|
||
'rightSidebar.contextNotesTodo.toast.deletePlanFailed': '删除计划失败',
|
||
'rightSidebar.contextNotesTodo.toast.planFileEmpty': '计划文件为空',
|
||
'rightSidebar.contextNotesTodo.toast.importPlanFailed': '导入计划失败',
|
||
'rightSidebar.contextNotesTodo.toast.planImported': '计划已导入',
|
||
'rightSidebar.contextNotesTodo.toast.readPlanFileFailed': '读取计划文件失败',
|
||
'inlineComment.range.lines': '行 {start}-{end}',
|
||
'inlineComment.input.placeholder': '添加评论...(Cmd+Enter 保存)',
|
||
'inlineComment.actions.cancel': '取消',
|
||
'inlineComment.actions.save': '保存',
|
||
'inlineComment.actions.comment': '评论',
|
||
'inlineComment.actions.showLess': '收起',
|
||
'inlineComment.actions.showMore': '展开',
|
||
'inlineComment.actions.editComment': '编辑评论',
|
||
'inlineComment.actions.deleteComment': '删除评论',
|
||
'inlineComment.toast.selectSessionToSave': '请选择会话以保存评论',
|
||
'header.github.connectedWithLogin': 'GitHub:{login}',
|
||
'header.github.connected': 'GitHub 已连接',
|
||
'header.github.avatarWithLogin': '{login} 头像',
|
||
'header.github.avatar': 'GitHub 头像',
|
||
'header.github.accountsTitle': 'GitHub 账户',
|
||
'header.services.openWithCurrent': '打开实例、用量和 MCP(当前:{current})',
|
||
'header.services.open': '打开服务、用量和 MCP',
|
||
'header.services.tooltip.currentInstanceWithShortcuts': '当前实例:{current}({toggle};下一标签 {nextTab})',
|
||
'header.services.tooltip.servicesWithShortcuts': '服务({toggle};下一标签 {nextTab})',
|
||
'header.services.title': '服务',
|
||
'header.services.viewAria': '查看服务',
|
||
'header.services.closeAria': '关闭服务',
|
||
'header.services.rateLimits': '速率限制',
|
||
'header.services.refreshRateLimitsAria': '刷新速率限制',
|
||
'header.services.noRateLimits': '没有可用的速率限制。',
|
||
'header.services.noRateLimitsReported': '未上报速率限制。',
|
||
'header.services.used': '已用',
|
||
'header.services.remaining': '剩余',
|
||
'header.services.shutdownDev': '停止 OpenChamber',
|
||
'header.services.modelFamily.other': '其他',
|
||
'header.actions.openPlanAria': '打开计划',
|
||
'header.actions.planWithShortcut': '计划({shortcut})',
|
||
'header.actions.terminalPanelWithShortcut': '终端面板({shortcut})',
|
||
'header.actions.toggleTerminalPanelAria': '切换终端面板',
|
||
'terminalView.stream.processExitedMessage': '\r\n[进程已退出{exitCodeSegment}{signalSegment}]\r\n',
|
||
'terminalView.stream.processExitedWithCode': ',退出码 {exitCode}',
|
||
'terminalView.stream.processExitedWithSignal': '(信号 {signal})',
|
||
'terminalView.error.sessionEnded': '终端会话已结束',
|
||
'terminalView.error.connectionFailed': '连接失败:{message}',
|
||
'terminalView.error.startSessionFailed': '启动终端会话失败',
|
||
'terminalView.error.restartFailed': '重启终端失败',
|
||
'terminalView.error.sendInputFailed': '发送输入失败',
|
||
'terminalView.empty.noWorkingDirectory': '终端不可用,缺少工作目录。',
|
||
'terminalView.empty.selectSession': '选择一个会话以打开终端。',
|
||
'terminalView.empty.noWorkingDirectoryForSession': '此会话没有可用的工作目录。',
|
||
'terminalView.actions.retry': '重试',
|
||
'terminalView.actions.hardRestart': '强制重启',
|
||
'terminalView.actions.hardRestartTitle': '强制终止并创建全新会话',
|
||
'terminalView.quickKeys.escape': 'Esc',
|
||
'terminalView.quickKeys.tabAria': 'Tab 键',
|
||
'terminalView.quickKeys.controlLabel': 'Ctrl',
|
||
'terminalView.quickKeys.controlModifierAria': 'Control 修饰键',
|
||
'terminalView.quickKeys.commandModifierAria': 'Command 修饰键',
|
||
'terminalView.quickKeys.arrowUpAria': '上箭头',
|
||
'terminalView.quickKeys.arrowLeftAria': '左箭头',
|
||
'terminalView.quickKeys.arrowDownAria': '下箭头',
|
||
'terminalView.quickKeys.arrowRightAria': '右箭头',
|
||
'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': '选择一个文件夹添加为项目。',
|
||
'directoryExplorerDialog.toggle.showHidden': '显示隐藏项',
|
||
'directoryExplorerDialog.pathInput.placeholder': '输入路径或从树中选择...',
|
||
'directoryExplorerDialog.actions.openingFinder': '正在打开...',
|
||
'directoryExplorerDialog.actions.openInFinder': '在 Finder 中打开',
|
||
'directoryExplorerDialog.actions.adding': '添加中...',
|
||
'directoryExplorerDialog.actions.addProject': '添加项目',
|
||
'directoryExplorerDialog.actions.addLocalProject': '添加本地项目',
|
||
'directoryExplorerDialog.actions.cloneRepository': '克隆仓库',
|
||
'directoryExplorerDialog.actions.cloneAndAdd': '克隆并添加',
|
||
'directoryExplorerDialog.actions.cloning': '正在克隆...',
|
||
'directoryExplorerDialog.actions.createAndAdd': '创建并添加',
|
||
'directoryExplorerDialog.actions.alreadyAdded': '已添加',
|
||
'directoryExplorerDialog.clone.remoteUrlPlaceholder': '仓库 URL(HTTPS 或 SSH)',
|
||
'directoryExplorerDialog.browse.directories': '目录',
|
||
'directoryExplorerDialog.browse.loading': '正在加载目录...',
|
||
'directoryExplorerDialog.browse.empty': '没有匹配的目录。',
|
||
'directoryExplorerDialog.browse.parentDirectory': '上级目录',
|
||
'directoryExplorerDialog.browse.addedBadge': '已添加',
|
||
'directoryExplorerDialog.footer.navigate': '导航',
|
||
'directoryExplorerDialog.footer.select': '选择',
|
||
'directoryExplorerDialog.footer.add': '添加',
|
||
'directoryExplorerDialog.shortcut.enter': 'Enter',
|
||
'directoryExplorerDialog.toast.unableToAccessDirectory': '无法访问目录',
|
||
'directoryExplorerDialog.toast.desktopDeniedAccess': '桌面端拒绝了目录访问。',
|
||
'directoryExplorerDialog.toast.failedToOpenDirectory': '打开目录失败',
|
||
'directoryExplorerDialog.toast.desktopCouldNotGrantAccess': '桌面端无法授予文件访问权限。',
|
||
'directoryExplorerDialog.toast.failedToAddProject': '添加项目失败',
|
||
'directoryExplorerDialog.toast.cloneUrlRequired': '克隆前请输入仓库 URL。',
|
||
'directoryExplorerDialog.toast.selectValidDirectoryPath': '请选择有效的目录路径。',
|
||
'directoryExplorerDialog.toast.failedToSelectDirectory': '选择目录失败',
|
||
'directoryExplorerDialog.toast.unknownError': '发生未知错误。',
|
||
'directoryTree.actions.createNewDirectory': '创建新目录',
|
||
'directoryTree.actions.pinDirectory': '固定目录',
|
||
'directoryTree.actions.unpinDirectory': '取消固定目录',
|
||
'directoryTree.actions.createDirectory': '创建目录',
|
||
'directoryTree.actions.cancel': '取消',
|
||
'directoryTree.actions.selectWorkingDirectoryAria': '选择工作目录',
|
||
'directoryTree.state.locatingHomeDirectory': '正在定位主目录...',
|
||
'directoryTree.state.loading': '加载中...',
|
||
'directoryTree.state.noDirectoriesFound': '未找到目录',
|
||
'directoryTree.section.pinned': '已固定',
|
||
'directoryTree.section.browse': '浏览',
|
||
'aboutDialog.versionLabel': '版本 {version}',
|
||
'aboutDialog.openChamberVersionLabel': 'OpenChamber 版本 {version}',
|
||
'aboutDialog.openCodeVersionLabel': 'OpenCode 版本 {version}',
|
||
'aboutDialog.actions.copyDiagnostics': '复制诊断信息',
|
||
'aboutDialog.actions.preparingDiagnostics': '正在准备诊断信息...',
|
||
'aboutDialog.actions.diagnosticsCopied': '诊断信息已复制',
|
||
'aboutDialog.diagnosticsDescription': '包含 OpenChamber 状态、OpenCode 健康信息、目录和项目。',
|
||
'aboutDialog.footerNote': '为社区用心打造',
|
||
'aboutDialog.toast.copyFailed': '复制失败',
|
||
'aboutDialog.toast.diagnosticsNotReady': '诊断信息尚未就绪。请稍候重试。',
|
||
'aboutDialog.toast.diagnosticsCopied': '诊断信息已复制',
|
||
'helpDialog.title': '键盘快捷键',
|
||
'helpDialog.description': '使用这些快捷键可更高效地导航 OpenChamber',
|
||
'helpDialog.section.navigationCommands': '导航与命令',
|
||
'helpDialog.section.sessionManagement': '会话管理',
|
||
'helpDialog.section.panels': '面板',
|
||
'helpDialog.section.interface': '界面',
|
||
'helpDialog.item.openCommandPalette': '打开命令面板',
|
||
'helpDialog.item.showKeyboardShortcuts': '显示键盘快捷键(此对话框)',
|
||
'helpDialog.item.toggleSessionSidebar': '切换会话侧边栏',
|
||
'helpDialog.item.cycleAgent': '循环切换智能体(聊天输入)',
|
||
'helpDialog.item.openModelSelector': '打开模型选择器',
|
||
'helpDialog.item.navigateModels': '导航模型(选择器中)',
|
||
'helpDialog.item.adjustThinkingMode': '调整思考模式(选择器中,支持时)',
|
||
'helpDialog.item.cycleThinkingVariant': '循环思考变体(全局快捷键)',
|
||
'helpDialog.item.newWindow': '新建窗口(仅桌面端)',
|
||
'helpDialog.item.createNewSession': '创建新会话',
|
||
'helpDialog.item.createNewWorktreeDraft': '创建新 Worktree 草稿',
|
||
'helpDialog.item.focusChatInput': '聚焦聊天输入框',
|
||
'helpDialog.item.abortActiveRun': '中止当前运行(双击)',
|
||
'helpDialog.item.toggleRightSidebar': '切换右侧边栏',
|
||
'helpDialog.item.openRightSidebarGitTab': '打开右侧边栏 Git 标签',
|
||
'helpDialog.item.openRightSidebarFilesTab': '打开右侧边栏文件标签',
|
||
'helpDialog.item.cycleRightSidebarTab': '循环右侧边栏标签',
|
||
'helpDialog.item.toggleTerminalDock': '切换终端停靠栏',
|
||
'helpDialog.item.toggleTerminalExpanded': '切换终端展开状态',
|
||
'helpDialog.item.togglePlanContextPanel': '切换计划上下文面板',
|
||
'helpDialog.item.cycleTheme': '循环切换主题(浅色 → 深色 → 跟随系统)',
|
||
'helpDialog.item.switchProject': '切换项目',
|
||
'helpDialog.item.toggleServicesMenu': '切换服务菜单',
|
||
'helpDialog.item.cycleServicesTab': '循环服务标签',
|
||
'helpDialog.item.openSettings': '打开设置',
|
||
'helpDialog.keyCombiner.or': '或',
|
||
'helpDialog.proTips.title': '使用提示:',
|
||
'helpDialog.proTips.commandPalette': '使用命令面板({shortcut})可快速访问所有操作',
|
||
'helpDialog.proTips.recentSessions': '最近 5 个会话会显示在命令面板中',
|
||
'helpDialog.proTips.themeCycling': '主题循环会记住你在各会话中的偏好',
|
||
'header.actions.rightSidebarWithShortcut': '右侧边栏({shortcut})',
|
||
'header.actions.toggleRightSidebarAria': '切换右侧边栏',
|
||
'header.actions.openSessionsWithShortcut': '打开会话({shortcut})',
|
||
'header.actions.openSessionsAria': '打开会话',
|
||
'header.actions.closeSessionsAria': '关闭会话',
|
||
'header.actions.newSessionAria': '新建会话',
|
||
'header.actions.newSessionWithShortcut': '新建会话({shortcut})',
|
||
'header.actions.backAria': '返回',
|
||
'header.navigation.mainAria': '主导航',
|
||
'header.sessions.title': '会话',
|
||
'header.changes.availableAria': '有可用变更',
|
||
'session.githubIssuePicker.error.noActiveProject': '没有活动项目',
|
||
'session.githubIssuePicker.error.runtimeUnavailable': 'GitHub 运行时 API 不可用',
|
||
'session.githubIssuePicker.error.notConnected': 'GitHub 未连接',
|
||
'session.githubIssuePicker.error.repoNotResolvable': '无法解析仓库',
|
||
'session.githubIssuePicker.error.repoMustBeGithub': 'origin 远程仓库必须是 GitHub URL',
|
||
'session.githubIssuePicker.error.issueNotFound': '未找到 Issue',
|
||
'session.githubIssuePicker.error.noModelSelected': '未选择模型',
|
||
'session.githubIssuePicker.toast.loadMoreFailed': '加载更多 Issue 失败',
|
||
'session.githubIssuePicker.toast.loadIssueDetailsFailed': '加载 Issue 详情失败',
|
||
'session.githubIssuePicker.toast.sendContextFailed': '发送 Issue 上下文失败',
|
||
'session.githubIssuePicker.toast.sessionCreated': '已从 Issue 创建会话',
|
||
'session.githubIssuePicker.toast.startSessionFailed': '启动会话失败',
|
||
'session.githubIssuePicker.title.select': '关联 GitHub Issue',
|
||
'session.githubIssuePicker.title.createSession': '从 GitHub Issue 新建会话',
|
||
'session.githubIssuePicker.description.select': '选择一个 Issue 关联到当前会话。',
|
||
'session.githubIssuePicker.description.createSession': '使用隐藏的 Issue 上下文(标题/正文/标签/评论)初始化新会话。',
|
||
'session.githubIssuePicker.searchPlaceholder': '按标题或 #123 搜索,或粘贴 Issue URL',
|
||
'session.githubIssuePicker.empty.noActiveProject': '未选择活动项目。',
|
||
'session.githubIssuePicker.empty.runtimeUnavailable': 'GitHub 运行时 API 不可用。',
|
||
'session.githubIssuePicker.empty.notConnected': 'GitHub 未连接。请在设置中连接 GitHub 账号。',
|
||
'session.githubIssuePicker.empty.noIssuesFound': '未找到 Issue',
|
||
'session.githubIssuePicker.empty.noOpenIssuesFound': '没有未关闭的 Issue',
|
||
'session.githubIssuePicker.loading.issues': '正在加载 Issue...',
|
||
'session.githubIssuePicker.loading.more': '加载中...',
|
||
'session.githubIssuePicker.actions.openSettings': '打开设置',
|
||
'session.githubIssuePicker.actions.useIssue': '使用 Issue #{number}',
|
||
'session.githubIssuePicker.actions.openInGitHubAria': '在 GitHub 中打开',
|
||
'session.githubIssuePicker.actions.loadMore': '加载更多',
|
||
'session.githubIssuePicker.actions.sectionTitle': '操作',
|
||
'session.githubIssuePicker.actions.toggleWorktreeAria': '切换 worktree',
|
||
'session.githubIssuePicker.actions.createInWorktree': '在 worktree 中创建',
|
||
'session.githubIssuePicker.actions.openRepo': '打开仓库',
|
||
'session.githubIssuePicker.actions.refresh': '刷新',
|
||
'session.githubPrPicker.error.noActiveProject': '没有活动项目',
|
||
'session.githubPrPicker.error.runtimeUnavailable': 'GitHub 运行时 API 不可用',
|
||
'session.githubPrPicker.error.notConnected': 'GitHub 未连接',
|
||
'session.githubPrPicker.error.prNotFound': '未找到 Pull Request',
|
||
'session.githubPrPicker.error.repoNotResolvable': '无法解析仓库',
|
||
'session.githubPrPicker.error.repoMustBeGithub': 'origin 远程仓库必须是 GitHub URL',
|
||
'session.githubPrPicker.toast.loadMoreFailed': '加载更多 Pull Request 失败',
|
||
'session.githubPrPicker.toast.loadDetailsFailed': '加载 Pull Request 详情失败',
|
||
'session.githubPrPicker.title': '关联 GitHub Pull Request',
|
||
'session.githubPrPicker.description': '选择一个 Pull Request,将审查上下文附加到此消息。',
|
||
'session.githubPrPicker.searchPlaceholder': '按标题或 #123 搜索,或粘贴 Pull Request URL',
|
||
'session.githubPrPicker.includeDiffAria': '在附加上下文中包含 PR diff',
|
||
'session.githubPrPicker.includeDiff': '包含 PR diff',
|
||
'session.githubPrPicker.empty.noActiveProject': '未选择活动项目。',
|
||
'session.githubPrPicker.empty.runtimeUnavailable': 'GitHub 运行时 API 不可用。',
|
||
'session.githubPrPicker.empty.notConnected': 'GitHub 未连接。请在设置中连接 GitHub 账号。',
|
||
'session.githubPrPicker.empty.noPullRequestsFound': '未找到 Pull Request',
|
||
'session.githubPrPicker.empty.noOpenPullRequestsFound': '没有未关闭的 Pull Request',
|
||
'session.githubPrPicker.loading.pullRequests': '正在加载 Pull Request...',
|
||
'session.githubPrPicker.loading.more': '加载中...',
|
||
'session.githubPrPicker.actions.openSettings': '打开设置',
|
||
'session.githubPrPicker.actions.usePullRequest': '使用 Pull Request #{number}',
|
||
'session.githubPrPicker.actions.openInGitHubAria': '在 GitHub 中打开',
|
||
'session.githubPrPicker.actions.loadMore': '加载更多',
|
||
'session.newWorktree.title': '新建 Worktree',
|
||
'session.newWorktree.mode.newBranch': '新分支',
|
||
'session.newWorktree.mode.existingBranch': '现有分支',
|
||
'session.newWorktree.selectBranch': '选择分支',
|
||
'session.newWorktree.chooseBranch': '选择一个分支...',
|
||
'session.newWorktree.fetchBranches': '拉取分支',
|
||
'session.newWorktree.searchBranches': '搜索分支...',
|
||
'session.newWorktree.loadingBranches': '正在加载分支...',
|
||
'session.newWorktree.noBranchesFound': '未找到分支',
|
||
'session.newWorktree.matchingBranches': '匹配分支',
|
||
'session.newWorktree.noMatchingBranches': '没有匹配分支',
|
||
'session.newWorktree.localBranches': '本地分支',
|
||
'session.newWorktree.remoteBranches': '远程分支',
|
||
'session.newWorktree.otherLocalBranches': '其他本地分支',
|
||
'session.newWorktree.otherRemoteBranches': '其他远程分支',
|
||
'session.newWorktree.branchName': '分支名',
|
||
'session.newWorktree.branchNamePlaceholder': 'feature/my-awesome-feature',
|
||
'session.newWorktree.actions.change': '更改',
|
||
'session.newWorktree.actions.startFromGitHubIssuePr': '从 GitHub Issue/PR 开始',
|
||
'session.newWorktree.usingPrBranch': '使用 PR 分支:{branch}',
|
||
'session.newWorktree.fromIssue': '来自 Issue #{number}:{title}',
|
||
'session.newWorktree.worktreeDirectory': 'Worktree 目录',
|
||
'session.newWorktree.worktreeDirectoryPlaceholder': 'my-worktree-directory',
|
||
'session.newWorktree.resetToMatchBranchName': '重置为与分支名一致',
|
||
'session.newWorktree.sourceBranch': '源分支',
|
||
'session.newWorktree.selectSourceBranch': '选择源分支',
|
||
'session.newWorktree.selectSourceBranchPlaceholder': '选择源分支...',
|
||
'session.newWorktree.newBranchFromSource': '新分支将从 {source} 创建',
|
||
'session.newWorktree.issueNumber': 'Issue #{number}',
|
||
'session.newWorktree.prNumber': 'PR #{number}',
|
||
'session.newWorktree.includeDiffBadge': '+diff',
|
||
'session.newWorktree.newSessionTitle': '新会话',
|
||
'session.newWorktree.fromSource': '来自 {source}',
|
||
'session.newWorktree.actions.cancel': '取消',
|
||
'session.newWorktree.actions.creating': '创建中...',
|
||
'session.newWorktree.actions.createWorktree': '创建 Worktree',
|
||
'session.newWorktree.actions.reset': '重置',
|
||
'session.newWorktree.error.noModelSelected': '未选择模型',
|
||
'session.newWorktree.error.noActiveProject': '没有活动项目',
|
||
'session.newWorktree.error.branchNameRequired': '分支名是必填项',
|
||
'session.newWorktree.error.worktreeDirectoryRequired': 'Worktree 目录是必填项',
|
||
'session.newWorktree.error.sendGitHubContextFailed': '发送 GitHub 上下文失败',
|
||
'session.newWorktree.error.createWorktreeFailed': '创建 Worktree 失败',
|
||
'session.newWorktree.toast.sessionFromIssue': '已从 Issue 创建会话',
|
||
'session.newWorktree.toast.sessionFromPr': '已从 PR 创建会话',
|
||
'session.newWorktree.toast.worktreeCreated': 'Worktree 已创建',
|
||
'session.newWorktree.toast.worktreeCreatedDescription': '{target} - 正在后台初始化',
|
||
'session.githubIntegration.title': '从 GitHub 选择',
|
||
'session.githubIntegration.tabs.issues': 'Issues',
|
||
'session.githubIntegration.tabs.pullRequests': 'Pull Requests',
|
||
'session.githubIntegration.connect.title': '连接到 GitHub',
|
||
'session.githubIntegration.connect.description': '关联 Issue 或 Pull Request 以自动填充 worktree 详情',
|
||
'session.githubIntegration.connect.action': '连接 GitHub',
|
||
'session.githubIntegration.search.issuesPlaceholder': '搜索 Issue 或输入 #123...',
|
||
'session.githubIntegration.search.prsPlaceholder': '搜索 PR 或输入 #456...',
|
||
'session.githubIntegration.empty.noIssuesFound': '未找到 Issue',
|
||
'session.githubIntegration.empty.noPullRequestsFound': '未找到 Pull Request',
|
||
'session.githubIntegration.actions.loadMore': '加载更多',
|
||
'session.githubIntegration.actions.cancel': '取消',
|
||
'session.githubIntegration.actions.select': '选择',
|
||
'session.githubIntegration.selected.issueNumber': 'Issue #{number}',
|
||
'session.githubIntegration.selected.prNumber': 'PR #{number}',
|
||
'session.githubIntegration.includeDiffAria': '在会话上下文中包含 PR diff',
|
||
'session.githubIntegration.includeDiff': '包含 PR diff',
|
||
'session.githubIntegration.error.notConnected': 'GitHub 未连接',
|
||
'session.githubIntegration.error.loadDataFailed': '加载数据失败',
|
||
'session.githubIntegration.validation.branchAlreadyCheckedOut': '该分支已在某个 worktree 中检出',
|
||
'session.githubIntegration.validation.branchAlreadyExists': '该分支已在本地存在',
|
||
'session.githubIntegration.validation.failed': '校验失败',
|
||
'chat.fileAttachment.toast.attachFailed': '附加文件失败',
|
||
'chat.fileAttachment.toast.someFilesSkipped': '以下文件被跳过:\n{summary}',
|
||
'chat.fileAttachment.toast.vscodePickFailed': '在 VS Code 中选择文件失败',
|
||
'chat.fileAttachment.fileFallback': '文件',
|
||
'chat.fileAttachment.skippedFallback': '已跳过',
|
||
'chat.fileAttachment.actions.attachAria': '附加文件',
|
||
'chat.fileAttachment.actions.attach': '附加文件',
|
||
'chat.fileAttachment.actions.removeNamed': '移除 {name}',
|
||
'chat.fileAttachment.actions.removeImage': '移除图片',
|
||
'chat.fileAttachment.activeEditor.addFile': '将文件添加到上下文:{name}',
|
||
'chat.fileAttachment.activeEditor.pinSelection': '将选择固定到上下文',
|
||
'chat.fileAttachment.activeEditor.remove': '从上下文中移除',
|
||
'chat.pendingChanges.fileCountSingle': '{count} 个文件',
|
||
'chat.pendingChanges.fileCountPlural': '{count} 个文件',
|
||
'chat.pendingChanges.changedInWorkspace': '工作区中有变更',
|
||
'chat.changedFiles.title': '已更改文件',
|
||
'chat.changedFiles.actions.openFileTitle': '打开 {path}',
|
||
'chat.emptyState.opencodeUnreachable': '无法连接 OpenCode',
|
||
'chat.emptyState.startNewChat': '开始新的聊天',
|
||
'chat.scrollToBottom.aria': '滚动到底部',
|
||
'chat.timeline.relative.justNow': '刚刚',
|
||
'chat.timeline.relative.minutesAgo': '{count} 分钟前',
|
||
'chat.timeline.relative.hoursAgo': '{count} 小时前',
|
||
'chat.timeline.relative.daysAgo': '{count} 天前',
|
||
'chat.timeline.title': '会话时间线',
|
||
'chat.timeline.description': '跳转到会话中的任意位置,或从该处分叉新会话',
|
||
'chat.timeline.searchPlaceholder': '搜索消息...',
|
||
'chat.timeline.empty.search': '未找到消息',
|
||
'chat.timeline.empty.session': '当前会话还没有消息',
|
||
'chat.timeline.noTextContent': '[无文本内容]',
|
||
'chat.timeline.actions.title': '操作',
|
||
'chat.timeline.actions.revertFromHere': '从此处回退',
|
||
'chat.timeline.actions.forkFromHere': '从此处分叉',
|
||
'chat.timeline.actions.previousTurn': '上一轮',
|
||
'chat.timeline.actions.latest': '最新',
|
||
'chat.timeline.help.clickMessage': '点击消息可滚动到会话中的对应位置',
|
||
'chat.timeline.help.undoToPoint': '回退到该点(消息文本会填充到输入框)',
|
||
'chat.timeline.help.createSessionFromHere': '从此处开始创建新会话',
|
||
'chat.statusRow.todo.status.inProgress': '进行中',
|
||
'chat.statusRow.todo.status.pending': '待处理',
|
||
'chat.statusRow.todo.status.completed': '已完成',
|
||
'chat.statusRow.todo.status.cancelled': '已取消',
|
||
'chat.statusRow.todo.priority.high': '高优先级',
|
||
'chat.statusRow.todo.priority.medium': '中优先级',
|
||
'chat.statusRow.todo.priority.low': '低优先级',
|
||
'chat.statusRow.actions.stopGeneratingAria': '停止生成',
|
||
'chat.statusRow.tasksTitle': '任务',
|
||
'chat.statusRow.summary.activeLeft': '{active} 个活跃 · 剩余 {left} 个',
|
||
'chat.statusRow.aborted': '已中止',
|
||
'chat.revertIndicator.redo': '重做',
|
||
'chat.revertIndicator.redoAria': '重做 — 恢复已撤回的消息',
|
||
'chat.revertPopover.title': '已撤回',
|
||
'chat.revertPopover.noTextContent': '无文本内容',
|
||
'chat.revertPopover.forkFromHere': '从此处分支',
|
||
'chat.revertPopover.forkFromMessage': '从此消息分支',
|
||
'chat.revertPopover.restoreAll': '恢复全部',
|
||
'chat.revertPopover.restore': '恢复',
|
||
'chat.revertPopover.revert': '撤回',
|
||
'chat.revertPopover.fork': '分叉',
|
||
'chat.revert.toast.undo': '已撤回至 {preview}',
|
||
'chat.revert.toast.redo': '已重做',
|
||
'chat.revert.toast.restored': '已恢复全部消息',
|
||
'chat.errorBoundary.title': '聊天错误',
|
||
'chat.errorBoundary.description': '聊天界面发生错误,可能是临时网络问题或消息数据损坏导致。',
|
||
'chat.errorBoundary.sessionLabel': '会话',
|
||
'chat.errorBoundary.detailsSummary': '错误详情',
|
||
'chat.errorBoundary.resetAction': '重置聊天',
|
||
'chat.errorBoundary.persistentHint': '如果问题持续,请尝试刷新页面。',
|
||
'chat.autocomplete.tabs.commands': '命令',
|
||
'chat.autocomplete.tabs.agents': '智能体',
|
||
'chat.autocomplete.tabs.files': '文件',
|
||
'chat.autocomplete.keyboardHint': '↑↓ 导航 • Enter 选择 • Esc 关闭',
|
||
'chat.commandAutocomplete.command.initDescription': '创建/更新 AGENTS.md 文件',
|
||
'chat.commandAutocomplete.command.undoDescription': '撤销上一条消息',
|
||
'chat.commandAutocomplete.command.redoDescription': '重做之前撤销的消息',
|
||
'chat.commandAutocomplete.command.timelineDescription': '打开对话时间线',
|
||
'chat.commandAutocomplete.command.compactDescription': '使用 AI 压缩会话历史以减少上下文大小',
|
||
'chat.commandAutocomplete.command.summaryDescription': '非破坏性会话总结。命令后可选填主题提示。',
|
||
'chat.commandAutocomplete.command.workspaceReviewDescription': '仅审查当前工作区中高价值的问题。',
|
||
'chat.commandAutocomplete.badge.skill': '技能',
|
||
'chat.commandAutocomplete.badge.command': '命令',
|
||
'chat.commandAutocomplete.badge.system': '系统',
|
||
'chat.commandAutocomplete.empty': '未找到命令',
|
||
'chat.agentMentionAutocomplete.badge.system': '系统',
|
||
'chat.agentMentionAutocomplete.empty': '未找到智能体',
|
||
'chat.fileMentionAutocomplete.searchMoreAgents': '输入以搜索更多智能体',
|
||
'chat.fileMentionAutocomplete.empty': '未找到匹配项',
|
||
'chat.queuedMessage.attachments': '+{count} 个文件',
|
||
'chat.queuedMessage.empty': '(空)',
|
||
'chat.queuedMessage.removeAria': '从队列移除',
|
||
'chat.container.returnToParent.aria': '返回父会话',
|
||
'chat.container.returnToParent.titleNamed': '返回到:{title}',
|
||
'chat.container.returnToParent.title': '返回父会话',
|
||
'chat.container.returnToParent.label': '父级',
|
||
'chat.container.readOnlySubagentPromptBanner': '无法向子代理会话发送提示。',
|
||
'chat.unifiedControls.title': '控制',
|
||
'chat.unifiedControls.model.title': '模型',
|
||
'chat.unifiedControls.model.noRecent': '没有最近使用的模型',
|
||
'chat.unifiedControls.model.moreAria': '更多模型',
|
||
'chat.unifiedControls.effort.title': '思考强度',
|
||
'chat.unifiedControls.effort.moreAria': '更多强度选项',
|
||
'chat.questionCard.summaryTab': '总结',
|
||
'chat.questionCard.noAnswer': '(无答案)',
|
||
'chat.questionCard.inputNeeded': '需要输入',
|
||
'chat.questionCard.fromSubagent': '来自子智能体',
|
||
'chat.questionCard.questionFallback': '问题 {index}',
|
||
'chat.questionCard.selectMultiple': '可多选',
|
||
'chat.questionCard.recommended': '推荐',
|
||
'chat.questionCard.other': '其他…',
|
||
'chat.questionCard.yourAnswer': '你的回答',
|
||
'chat.questionCard.submit': '提交',
|
||
'chat.questionCard.next': '下一个',
|
||
'chat.questionCard.dismiss': '忽略',
|
||
'chat.questionCard.copyMarkdown': '复制为 Markdown',
|
||
'chat.questionCard.copyJson': '复制为 JSON',
|
||
'chat.questionCard.copiedMarkdown': '问题已复制为 Markdown',
|
||
'chat.questionCard.copiedJson': '问题已复制为 JSON',
|
||
'chat.questionCard.copyFailed': '复制问题失败',
|
||
'chat.textSelection.toast.noProject': '未找到此会话对应的项目',
|
||
'chat.textSelection.toast.addToNotesFailed': '添加到笔记失败',
|
||
'chat.textSelection.toast.addToNotesSuccess': '已将选中文本添加到笔记',
|
||
'chat.textSelection.toast.addToNotesSummaryFailed': '无法总结所选内容,已将所选文本添加到笔记',
|
||
'chat.textSelection.actions.addToChat': '添加到聊天',
|
||
'chat.textSelection.actions.newSession': '新建会话',
|
||
'chat.textSelection.actions.copy': '复制',
|
||
'chat.textSelection.actions.addToNotes': '添加到笔记',
|
||
'chat.textSelection.title.addToCurrentChat': '添加到当前聊天',
|
||
'chat.textSelection.title.newSessionWithSelection': '使用选中内容创建新会话',
|
||
'chat.textSelection.title.saveInsightToNotes': '将选中文本保存到笔记',
|
||
'chat.messageBody.actions.revertAria': '回退到这条消息',
|
||
'chat.messageBody.actions.revert': '从此处回退',
|
||
'chat.messageBody.actions.forkAria': '从这条消息分叉',
|
||
'chat.messageBody.actions.fork': '从此处分叉',
|
||
'chat.messageBody.actions.copyMessageAria': '复制消息文本',
|
||
'chat.messageBody.actions.copyMessage': '复制消息',
|
||
'chat.messageBody.actions.openPreviewAria': '打开预览',
|
||
'chat.messageBody.actions.openPreview': '打开预览',
|
||
'chat.messageBody.actions.copyAnswer': '复制回答',
|
||
'chat.messageBody.actions.savingImage': '正在保存图片...',
|
||
'chat.messageBody.actions.saveAsImage': '保存为图片',
|
||
'chat.messageBody.actions.saveAsPlan': '保存为计划',
|
||
'chat.messageBody.actions.startNewSession': '基于此回答开始新会话',
|
||
'chat.messageBody.actions.startNewMultiRun': '基于此回答开始新的多运行',
|
||
'chat.generatedResult.actions.copy': '复制',
|
||
'chat.generatedResult.actions.copied': '已复制',
|
||
'chat.generatedResult.commit.title': '生成的提交消息',
|
||
'chat.generatedResult.commit.highlights': '要点',
|
||
'chat.generatedResult.pullRequest.title': '生成的 Pull Request',
|
||
'chat.generatedResult.pullRequest.titleLabel': '标题',
|
||
'chat.generatedResult.pullRequest.bodyLabel': '正文',
|
||
'chat.messageBody.tts.stopSpeaking': '停止朗读',
|
||
'chat.messageBody.tts.readAloud': '朗读',
|
||
'chat.messageBody.tts.readAloudWithProvider': '朗读({provider} 语音)',
|
||
'chat.messageBody.toast.noProject': '未找到此会话对应的项目',
|
||
'chat.messageBody.toast.savePlanFailed': '保存计划失败',
|
||
'chat.messageBody.toast.planSaved': '计划已保存',
|
||
'chat.messageBody.toast.imageSaved': '图片已保存',
|
||
'chat.messageBody.toast.generateImageFailed': '生成图片失败',
|
||
'chat.chatInput.actions.commands': '命令',
|
||
'chat.chatInput.actions.attachFiles': '附加文件',
|
||
'chat.chatInput.actions.addAttachment': '添加附件',
|
||
'chat.chatInput.actions.linkGithubIssue': '关联 GitHub Issue',
|
||
'chat.chatInput.actions.linkGithubPr': '关联 GitHub PR',
|
||
'chat.chatInput.actions.modelAgentSettings': '模型与智能体设置',
|
||
'chat.chatInput.actions.sendMessageAria': '发送消息',
|
||
'chat.chatInput.actions.queueMessageAria': '将消息加入队列',
|
||
'chat.chatInput.actions.stopGeneratingAria': '停止生成',
|
||
'chat.chatInput.focusMode.toggleAria': '切换专注模式',
|
||
'chat.chatInput.focusMode.label': '专注模式',
|
||
'chat.chatInput.permissionAutoAccept.disable': '关闭权限自动接受',
|
||
'chat.chatInput.permissionAutoAccept.enable': '开启权限自动接受',
|
||
'chat.chatInput.permissionAutoAccept.on': '权限自动接受:开',
|
||
'chat.chatInput.permissionAutoAccept.off': '权限自动接受:关',
|
||
'chat.chatInput.linked.byAuthor': '由 {author}',
|
||
'chat.chatInput.linked.issue.openInBrowserAria': '在浏览器中打开 Issue',
|
||
'chat.chatInput.linked.issue.removeAria': '移除已关联的 Issue',
|
||
'chat.chatInput.linked.pr.number': 'PR #{number}',
|
||
'chat.chatInput.linked.pr.openInBrowserAria': '在浏览器中打开 Pull Request',
|
||
'chat.chatInput.linked.pr.removeAria': '移除已关联的 Pull Request',
|
||
'chat.chatInput.placeholder.shell': '输入 shell 命令...',
|
||
'chat.chatInput.placeholder.chat': '@ 用于文件/智能体;/ 用于命令;! 用于 shell',
|
||
'chat.chatInput.placeholder.selectSession': '选择或创建会话以开始聊天',
|
||
'chat.chatInput.toast.compactFailed': '压缩会话失败',
|
||
'chat.chatInput.toast.summaryFailed': '生成总结失败',
|
||
'chat.chatInput.toast.reviewFailed': '审查变更失败',
|
||
'chat.chatInput.toast.attachmentsTooLarge': '附件过大,无法发送。请减少图片数量或大小。',
|
||
'chat.chatInput.toast.sendAttachmentsFailed': '发送附件失败。请尝试更少文件或更小图片。',
|
||
'chat.chatInput.toast.messageSendFailed': '消息发送失败,附件已恢复。',
|
||
'chat.chatInput.toast.clipboardAttachFailed': '从剪贴板附加图片失败',
|
||
'chat.chatInput.toast.addedFileMentions': '已添加 {count} 个文件提及',
|
||
'chat.chatInput.toast.attachFileFailed': '附加文件失败',
|
||
'chat.chatInput.toast.attachNamedFailed': '附加 {name} 失败',
|
||
'chat.chatInput.toast.someFilesSkipped': '部分文件被跳过:\n{summary}',
|
||
'chat.chatInput.toast.vscodePickFailed': '在 VS Code 中选择文件失败',
|
||
'chat.chatInput.toast.openSessionFirst': '请先打开一个会话',
|
||
'chat.chatInput.toast.togglePermissionAutoAcceptFailed': '切换权限自动接受失败',
|
||
'chat.chatInput.reviewComments': '审查评论:',
|
||
'chat.chatInput.devServerLogs': 'Dev Server 日志:',
|
||
'chat.chatInput.devServerLogsRemove': '移除 Dev Server 日志',
|
||
'chat.chatInput.previewAnnotations': '预览注释:',
|
||
'chat.chatInput.previewContext': '预览上下文:',
|
||
'chat.chatInput.previewContextRemove': '移除预览上下文',
|
||
'chat.chatInput.projectRoot': '项目根目录',
|
||
'chat.chatInput.branch': '分支',
|
||
'chat.chatInput.worktrees': '工作树',
|
||
'chat.chatInput.worktreeNew': '+ 新建',
|
||
'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': '关闭图片预览',
|
||
'chat.toolOutputDialog.mermaid.missingSource': '缺少 Mermaid 源 URL。',
|
||
'chat.toolOutputDialog.mermaid.loadFailed': '无法加载 Mermaid 图表。',
|
||
'chat.toolOutputDialog.mermaid.closeAria': '关闭图表预览',
|
||
'chat.toolOutputDialog.mermaid.loading': '正在加载图表...',
|
||
'chat.toolOutputDialog.mermaid.renderFailed': '无法渲染 Mermaid 图表。',
|
||
'chat.toolOutputDialog.mermaid.retry': '重试',
|
||
'chat.toolOutputDialog.commandCompleted': '命令已成功完成',
|
||
'chat.toolOutputDialog.noOutputProduced': '没有产生输出',
|
||
'chat.toolPart.lspErrors': 'LSP 错误',
|
||
'chat.toolPart.moreErrors': '+{count} 个更多错误',
|
||
'chat.toolPart.error': '错误:',
|
||
'chat.toolPart.awaitingResponse': '等待响应...',
|
||
'chat.toolPart.noOutputProduced': '未产生输出',
|
||
'chat.toolPart.output': '输出',
|
||
'chat.toolPart.openSubtask': '打开{type}子任务',
|
||
'chat.todo.total': '总计',
|
||
'chat.todo.inProgress': '进行中',
|
||
'chat.todo.pending': '待处理',
|
||
'chat.todo.completed': '已完成',
|
||
'chat.todo.cancelled': '已取消',
|
||
'chat.permissionCard.workingDirectory': '工作目录:',
|
||
'chat.permissionCard.timeout': '超时:',
|
||
'chat.permissionCard.request': '请求:',
|
||
'chat.permissionCard.headers': '请求头:',
|
||
'chat.permissionCard.body': '请求体:',
|
||
'chat.permissionCard.action': '操作:',
|
||
'chat.permissionCard.details': '详情:',
|
||
'chat.permissionCard.patterns': '模式:',
|
||
'chat.permissionToast.sessionFallback': '会话',
|
||
'chat.permissionToast.permissionFallback': '权限详情不可用',
|
||
'chat.permissionToast.labels.session': '会话:',
|
||
'chat.permissionToast.labels.permission': '权限:',
|
||
'chat.permissionToast.actions.once': '一次',
|
||
'chat.permissionToast.actions.always': '始终',
|
||
'chat.permissionToast.actions.deny': '拒绝',
|
||
'chat.permissionToast.actions.approveOnceAria': '批准一次',
|
||
'chat.permissionToast.actions.approveOnceAriaWithSession': '为 {session} 批准一次',
|
||
'chat.permissionToast.actions.approveAlwaysAria': '始终批准',
|
||
'chat.permissionToast.actions.approveAlwaysAriaWithSession': '为 {session} 始终批准',
|
||
'chat.permissionToast.actions.denyAria': '拒绝权限',
|
||
'chat.permissionToast.actions.denyAriaWithSession': '拒绝 {session} 的权限',
|
||
'chat.permissionRequest.required': '需要权限:',
|
||
'chat.permissionRequest.actions.once': '一次',
|
||
'chat.permissionRequest.actions.always': '始终',
|
||
'chat.permissionRequest.actions.reject': '拒绝',
|
||
'chat.modelControls.provider': '提供商',
|
||
'chat.modelControls.capability.toolCalling': '工具调用',
|
||
'chat.modelControls.capability.reasoning': '推理',
|
||
'chat.modelControls.modality.text': '文本',
|
||
'chat.modelControls.modality.image': '图像',
|
||
'chat.modelControls.modality.video': '视频',
|
||
'chat.modelControls.modality.audio': '音频',
|
||
'chat.modelControls.modality.pdf': 'PDF',
|
||
'chat.modelControls.capabilities': '能力',
|
||
'chat.modelControls.modalities': '模态',
|
||
'chat.modelControls.input': '输入',
|
||
'chat.modelControls.output': '输出',
|
||
'chat.modelControls.limits': '限制',
|
||
'chat.modelControls.context': '上下文',
|
||
'chat.modelControls.metadata': '元数据',
|
||
'chat.modelControls.knowledge': '知识',
|
||
'chat.modelControls.release': '发布时间',
|
||
'chat.modelControls.mode': '模式',
|
||
'chat.modelControls.model': '模型',
|
||
'chat.modelControls.temperature': '温度',
|
||
'chat.modelControls.topP': 'Top P',
|
||
'chat.modelControls.permissions': '权限',
|
||
'chat.modelControls.edit': '编辑',
|
||
'chat.modelControls.bash': 'Bash',
|
||
'chat.modelControls.webFetch': 'WebFetch',
|
||
'chat.modelControls.customPrompt': '自定义提示词',
|
||
'chat.modelControls.selectModel': '选择模型',
|
||
'chat.modelControls.searchProvidersOrModels': '搜索提供商或模型',
|
||
'chat.modelControls.clearSearch': '清除搜索',
|
||
'chat.modelControls.current': '当前',
|
||
'chat.modelControls.thinking': '思考',
|
||
'chat.modelControls.default': '默认',
|
||
'chat.modelControls.selectAgent': '选择智能体',
|
||
'chat.modelControls.costPerMillion': '成本($/100万 tokens)',
|
||
'chat.modelControls.metadataUnavailable': '模型元数据不可用。',
|
||
'chat.modelControls.addNewProvider': '添加新提供商',
|
||
'chat.modelControls.noAgentSelected': '未选择智能体。',
|
||
'chat.modelControls.resetToDefault': '重置为默认',
|
||
'chat.modelControls.searchModels': '搜索模型',
|
||
'chat.modelControls.searchAgents': '搜索智能体',
|
||
'chat.modelControls.noModelsFound': '未找到模型',
|
||
'chat.modelControls.favorites': '收藏',
|
||
'chat.modelControls.recent': '最近',
|
||
'chat.modelControls.addToFavorites': '添加到收藏',
|
||
'chat.modelControls.removeFromFavorites': '从收藏中移除',
|
||
'chat.modelControls.favoriteAria': '收藏',
|
||
'chat.modelControls.unfavoriteAria': '取消收藏',
|
||
'chat.modelControls.collapseProvider': '折叠提供商',
|
||
'chat.modelControls.expandProvider': '展开提供商',
|
||
'chat.modelControls.keyboardHint': '↑↓ 导航{thinking} • Enter 选择 • Esc 关闭',
|
||
'chat.modelControls.keyboardHintNavigate': '↑↓ 导航',
|
||
'chat.modelControls.keyboardHintSwitchAgent': '{shortcut} 切换智能体',
|
||
'chat.modelControls.keyboardHintThinking': '←→ 思考',
|
||
'chat.modelControls.showThinkingModes': '显示思考模式',
|
||
'chat.modelControls.hideThinkingModes': '隐藏思考模式',
|
||
'chat.modelControls.moreThinkingModes': '更多思考模式',
|
||
'chat.modelControls.noProvidersOrModelsFound': '没有提供商或模型匹配你的搜索。',
|
||
'chat.modelControls.reorderFavoriteAria': '重新排序收藏',
|
||
'chat.modelControls.reorderFavoriteTitle': '拖动以重新排序收藏',
|
||
'chat.modelControls.permissionLabel.custom': '自定义',
|
||
'chat.modelControls.permissionLabel.allow': '允许',
|
||
'chat.modelControls.permissionLabel.deny': '拒绝',
|
||
'chat.modelControls.permissionLabel.ask': '询问',
|
||
'chat.modelControls.modeValue.primary': '主智能体',
|
||
'chat.modelControls.modeValue.subagent': '子智能体',
|
||
'chat.modelControls.modeValue.all': '全部',
|
||
'chat.modelControls.modeValue.none': '—',
|
||
'chat.reasoningTrace.thinking': '思考',
|
||
'chat.reasoningTrace.justification': '理由',
|
||
'chat.reasoningTrace.expandAria': '展开推理轨迹',
|
||
'chat.reasoningTrace.collapseAria': '折叠推理轨迹',
|
||
'chat.reasoningTrace.thought': '已思考',
|
||
'chat.messageBody.subtask.title': '委派任务',
|
||
'chat.messageBody.subtask.hidePrompt': '隐藏提示',
|
||
'chat.messageBody.subtask.showPrompt': '显示提示',
|
||
'chat.messageBody.subtask.openSession': '打开子任务会话',
|
||
'chat.messageBody.shellCommand.title': 'Shell 命令',
|
||
'chat.messageBody.shellCommand.hideOutput': '隐藏输出',
|
||
'chat.messageBody.shellCommand.showOutput': '显示输出',
|
||
'chat.messageBody.shellCommand.copied': '已复制',
|
||
'chat.messageBody.shellCommand.copyOutput': '复制输出',
|
||
'commandPalette.title': '命令面板',
|
||
'commandPalette.description': '搜索文件、会话和命令。',
|
||
'commandPalette.input.placeholder': '搜索文件、会话、命令...',
|
||
'commandPalette.empty.noResults': '未找到结果。',
|
||
'commandPalette.empty.searchingFiles': '正在搜索文件...',
|
||
'commandPalette.item.newSession': '新建会话',
|
||
'commandPalette.item.newMiniChat': '新建 Mini Chat 窗口',
|
||
'commandPalette.item.newWorktreeDraft': '新建工作树草稿',
|
||
'commandPalette.item.addProject': '添加项目',
|
||
'commandPalette.item.showSessionSwitcher': '显示会话切换器',
|
||
'commandPalette.item.toggleSidebar': '切换侧边栏',
|
||
'commandPalette.item.toggleRightSidebar': '切换右侧边栏',
|
||
'commandPalette.item.showContextUsage': '显示上下文用量',
|
||
'commandPalette.item.toggleTerminal': '切换终端',
|
||
'commandPalette.item.openSettings': '打开设置...',
|
||
'commandPalette.session.untitled': '未命名会话',
|
||
'openCodeStatusDialog.title': 'OpenCode 状态',
|
||
'openCodeStatusDialog.description': '查看当前 OpenCode 状态与诊断信息。',
|
||
'openCodeStatusDialog.actions.copy': '复制',
|
||
'openCodeStatusDialog.empty.noData': '无数据。',
|
||
'openCodeStatusDialog.toast.copiedTitle': '已复制',
|
||
'openCodeStatusDialog.toast.copiedDescription': '状态已复制到剪贴板',
|
||
'openCodeStatusDialog.toast.copyFailed': '复制状态失败',
|
||
'saveProjectPlanDialog.title': '保存项目计划',
|
||
'saveProjectPlanDialog.description': '将此计划以 Markdown 文件保存到你的项目中。',
|
||
'saveProjectPlanDialog.field.title': '标题',
|
||
'saveProjectPlanDialog.field.titlePlaceholder': '计划标题',
|
||
'saveProjectPlanDialog.field.contentPreview': '内容预览',
|
||
'saveProjectPlanDialog.actions.cancel': '取消',
|
||
'saveProjectPlanDialog.actions.save': '保存',
|
||
'saveProjectPlanDialog.actions.saving': '保存中...',
|
||
'branchPickerDialog.title': '分支选择器',
|
||
'branchPickerDialog.description.localBranchesForProject': '{project} 的本地分支',
|
||
'branchPickerDialog.description.selectProject': '请选择一个项目以查看分支',
|
||
'branchPickerDialog.search.placeholder': '搜索分支...',
|
||
'branchPickerDialog.search.renameBranchPlaceholder': '重命名分支',
|
||
'branchPickerDialog.state.noProjectSelected': '未选择项目',
|
||
'branchPickerDialog.state.loadingBranches': '正在加载分支...',
|
||
'branchPickerDialog.state.noMatchingBranches': '没有匹配分支',
|
||
'branchPickerDialog.state.noBranchesFound': '未找到分支',
|
||
'branchPickerDialog.badge.head': 'HEAD',
|
||
'branchPickerDialog.badge.worktree': '工作树',
|
||
'branchPickerDialog.actions.createWorktreeAria': '从分支创建工作树',
|
||
'branchPickerDialog.actions.renameAria': '重命名分支',
|
||
'branchPickerDialog.actions.deleteAria': '删除分支',
|
||
'branchPickerDialog.actions.deleteWorktreeAria': '移除工作树',
|
||
'branchPickerDialog.actions.confirmRenameAria': '确认重命名',
|
||
'branchPickerDialog.actions.cancelRenameAria': '取消重命名',
|
||
'branchPickerDialog.actions.confirmDeleteAria': '确认删除分支',
|
||
'branchPickerDialog.actions.cancelDeleteAria': '取消删除分支',
|
||
'branchPickerDialog.actions.deletePrompt': '删除',
|
||
'branchPickerDialog.actions.forceDeletePrompt': '强制删除',
|
||
'branchPickerDialog.tooltip.createWorktree': '创建工作树',
|
||
'branchPickerDialog.tooltip.worktreeAlreadyExists': '工作树已存在',
|
||
'branchPickerDialog.tooltip.rename': '重命名分支',
|
||
'branchPickerDialog.tooltip.renameDisabledForRoot': '不能重命名根分支',
|
||
'branchPickerDialog.tooltip.delete': '删除分支',
|
||
'branchPickerDialog.tooltip.deleteCurrentBranch': '不能删除当前分支',
|
||
'branchPickerDialog.tooltip.deleteDisabledForRoot': '不能删除根分支',
|
||
'branchPickerDialog.tooltip.deleteWorktree': '移除工作树',
|
||
'branchPickerDialog.tooltip.deleteWorktreeRootProtected': '不能移除根工作树',
|
||
'branchPickerDialog.toast.branchRenamed': '分支已重命名',
|
||
'branchPickerDialog.toast.failedToRenameBranch': '重命名分支失败',
|
||
'branchPickerDialog.toast.branchDeleted': '分支已删除',
|
||
'branchPickerDialog.toast.branchNotMerged': '分支尚未完全合并',
|
||
'branchPickerDialog.toast.confirmAgainToForceDelete': '再次确认以强制删除',
|
||
'branchPickerDialog.toast.failedToDeleteBranch': '删除分支失败',
|
||
'branchPickerDialog.toast.worktreeCreated': '工作树已创建',
|
||
'branchPickerDialog.toast.failedToCreateWorktree': '创建工作树失败',
|
||
'branchPickerDialog.error.failedToLoad': '加载分支失败',
|
||
'branchPickerDialog.error.renameRejected': '重命名被拒绝',
|
||
'branchPickerDialog.error.renameFailed': '重命名分支失败',
|
||
'branchPickerDialog.error.deleteRejected': '删除被拒绝',
|
||
'branchPickerDialog.error.deleteFailed': '删除分支失败',
|
||
'branchPickerDialog.error.createWorktreeFailed': '创建工作树失败',
|
||
'projectEditDialog.title': '编辑项目',
|
||
'projectEditDialog.field.name': '名称',
|
||
'projectEditDialog.field.namePlaceholder': '项目名称',
|
||
'projectEditDialog.field.color': '颜色',
|
||
'projectEditDialog.field.icon': '图标',
|
||
'projectEditDialog.field.preview': '预览',
|
||
'projectEditDialog.field.iconBackground': '图标背景',
|
||
'projectEditDialog.field.iconBackgroundAria': '项目图标背景色',
|
||
'projectEditDialog.option.none': '无',
|
||
'projectEditDialog.actions.uploadIcon': '上传图标',
|
||
'projectEditDialog.actions.uploading': '上传中...',
|
||
'projectEditDialog.actions.discoverFavicon': '发现站点图标',
|
||
'projectEditDialog.actions.discovering': '发现中...',
|
||
'projectEditDialog.actions.removeProjectIcon': '移除项目图标',
|
||
'projectEditDialog.actions.removing': '移除中...',
|
||
'projectEditDialog.actions.undoRemove': '撤销移除',
|
||
'projectEditDialog.actions.clear': '清除',
|
||
'projectEditDialog.actions.cancel': '取消',
|
||
'projectEditDialog.actions.save': '保存',
|
||
'projectEditDialog.toast.failedToUploadIcon': '上传项目图标失败',
|
||
'projectEditDialog.toast.iconUpdated': '项目图标已更新',
|
||
'projectEditDialog.toast.failedToRemoveIcon': '移除项目图标失败',
|
||
'projectEditDialog.toast.iconRemoved': '项目图标已移除',
|
||
'projectEditDialog.toast.failedToDiscoverIcon': '发现项目图标失败',
|
||
'projectEditDialog.toast.customIconAlreadySet': '该项目已设置自定义图标',
|
||
'projectEditDialog.toast.iconDiscovered': '项目图标已发现',
|
||
'agentManager.sidebar.search.placeholder': '搜索智能体组...',
|
||
'agentManager.sidebar.actions.newAgentGroup': '新建智能体组',
|
||
'agentManager.sidebar.actions.more': '... 更多({count})',
|
||
'agentManager.sidebar.actions.showLess': '收起',
|
||
'agentManager.sidebar.section.agentGroups': '智能体组',
|
||
'agentManager.sidebar.state.loading': '加载中...',
|
||
'agentManager.sidebar.state.noGroupsFound': '未找到分组',
|
||
'agentManager.sidebar.state.noGroupsYet': '还没有智能体组',
|
||
'agentManager.sidebar.state.createToGetStarted': '创建一个新的智能体组以开始使用',
|
||
'agentManager.sidebar.item.modelCountSingle': '{count} 个模型',
|
||
'agentManager.sidebar.item.modelCountPlural': '{count} 个模型',
|
||
'agentManager.sidebar.item.groupMenuAria': '分组菜单',
|
||
'agentManager.sidebar.item.delete': '删除',
|
||
'agentManager.sidebar.relativeTime.now': '刚刚',
|
||
'agentManager.sidebar.relativeTime.minutes': '{count} 分钟',
|
||
'agentManager.sidebar.relativeTime.hours': '{count} 小时',
|
||
'agentManager.sidebar.relativeTime.days': '{count} 天',
|
||
'agentManager.sidebar.dialog.deleteGroupTitle': '删除智能体组',
|
||
'agentManager.sidebar.dialog.deleteGroupDescription': '删除“{group}”?这会移除该组中的所有工作树和会话。',
|
||
'agentManager.sidebar.dialog.cancel': '取消',
|
||
'agentManager.sidebar.dialog.delete': '删除',
|
||
'agentManager.sidebar.dialog.deleting': '删除中...',
|
||
'agentManager.sidebar.toast.deletingGroup': '正在删除“{group}”...',
|
||
'agentManager.sidebar.toast.deletedGroup': '已删除“{group}”',
|
||
'agentManager.sidebar.toast.failedToDeleteGroup': '未能完全删除“{group}”',
|
||
'agentManager.detail.header.modelCountSingle': '{count} 个模型',
|
||
'agentManager.detail.header.modelCountPlural': '{count} 个模型',
|
||
'agentManager.detail.header.noBranch': '无分支',
|
||
'agentManager.detail.actions.worktreeActionsAria': '工作树操作',
|
||
'agentManager.detail.actions.removeThisWorktree': '移除此工作树',
|
||
'agentManager.detail.actions.keepThisRemoveOthers': '保留此项,移除其他',
|
||
'agentManager.detail.actions.copyWorktreePath': '复制工作树路径',
|
||
'agentManager.detail.dialog.removeWorktreeTitle': '移除工作树',
|
||
'agentManager.detail.dialog.removeOtherWorktreesTitle': '移除其他工作树',
|
||
'agentManager.detail.dialog.removeWorktreeDescription': '移除“{label}”?这将删除该工作树中的所有会话并移除工作树本身。',
|
||
'agentManager.detail.dialog.removeOtherWorktreesDescription': '保留“{label}”,并移除“{group}”中的其他工作树。',
|
||
'agentManager.detail.dialog.cancel': '取消',
|
||
'agentManager.detail.dialog.remove': '移除',
|
||
'agentManager.detail.dialog.removeOthers': '移除其他',
|
||
'agentManager.detail.dialog.working': '处理中...',
|
||
'agentManager.detail.state.loadingSessionFor': '正在加载 {label} 的会话',
|
||
'agentManager.detail.state.sessionId': '会话 ID:{id}',
|
||
'agentManager.detail.state.noSessionsInGroup': '该分组中没有会话',
|
||
'agentManager.detail.toast.noWorktreePath': '没有可用的工作树路径',
|
||
'agentManager.detail.toast.worktreePathCopied': '工作树路径已复制',
|
||
'agentManager.detail.toast.failedToCopyPath': '复制路径失败',
|
||
'agentManager.detail.toast.removingWorktree': '正在移除工作树...',
|
||
'agentManager.detail.toast.removingOtherWorktrees': '正在移除其他工作树...',
|
||
'agentManager.detail.toast.failedToFullyRemoveWorktree': '未能完全移除工作树',
|
||
'agentManager.detail.toast.worktreeRemoved': '工作树已移除',
|
||
'agentManager.detail.toast.otherWorktreesRemoved': '其他工作树已移除',
|
||
'agentManager.empty.groupName.label': '分组名称',
|
||
'agentManager.empty.groupName.placeholder': '例如:feature-auth, bugfix-login',
|
||
'agentManager.empty.groupName.description': '用于工作树目录和分支命名',
|
||
'agentManager.empty.baseBranch.label': '基础分支',
|
||
'agentManager.empty.baseBranch.description': '将从 {branch} 创建新分支',
|
||
'agentManager.empty.setupCommands.label': '初始化命令',
|
||
'agentManager.empty.setupCommands.configured': '已配置 {count} 条',
|
||
'agentManager.empty.setupCommands.description': '这些命令会在每个新工作树中运行。项目根目录可用 $ROOT_PROJECT_PATH。',
|
||
'agentManager.empty.setupCommands.loading': '加载中...',
|
||
'agentManager.empty.setupCommands.commandPlaceholder': '例如:bun install',
|
||
'agentManager.empty.setupCommands.removeCommandAria': '移除命令',
|
||
'agentManager.empty.setupCommands.addCommand': '添加命令',
|
||
'agentManager.empty.agent.label': '智能体',
|
||
'agentManager.empty.agent.description': '默认使用你配置的默认智能体',
|
||
'agentManager.empty.models.label': '模型',
|
||
'agentManager.empty.models.addModel': '添加模型',
|
||
'agentManager.empty.models.selectedSingle': '已选择 {count} 个模型',
|
||
'agentManager.empty.models.selectedPlural': '已选择 {count} 个模型',
|
||
'agentManager.empty.prompt.label': '提示词',
|
||
'agentManager.empty.prompt.placeholder': '问任何问题...',
|
||
'agentManager.empty.prompt.addAttachmentAria': '添加附件',
|
||
'agentManager.empty.actions.startAgentGroupAria': '启动智能体组',
|
||
'agentManager.empty.toast.fileTooLarge': '文件“{fileName}”过大(最大 10MB)',
|
||
'agentManager.empty.toast.failedToAttach': '附加“{fileName}”失败',
|
||
'agentManager.empty.toast.attachedSingle': '已附加 {count} 个文件',
|
||
'agentManager.empty.toast.attachedPlural': '已附加 {count} 个文件',
|
||
'agentManager.empty.toast.failedToCreateGroup': '创建智能体组失败',
|
||
'openInApp.actions.open': '打开',
|
||
'openInApp.actions.openInAria': '在 {app} 中打开',
|
||
'openInApp.actions.chooseAppAria': '选择要打开的应用',
|
||
'openInApp.actions.copyPath': '复制路径',
|
||
'openInApp.actions.refreshApps': '刷新应用',
|
||
'openInApp.toast.pathCopied': '路径已复制到剪贴板',
|
||
'projectActions.actions.addActionAria': '添加操作',
|
||
'projectActions.actions.addAction': '添加操作',
|
||
'projectActions.actions.addNewAction': '添加新操作',
|
||
'projectActions.actions.autoDiscover': '自动发现',
|
||
'projectActions.actions.chooseActionAria': '选择项目操作',
|
||
'projectActions.actions.openPreview': '打开 Preview',
|
||
'projectActions.actions.runNamedAria': '运行 {name}',
|
||
'projectActions.actions.stopNamedAria': '停止 {name}',
|
||
'projectActions.label.fallbackAction': '操作',
|
||
'projectActions.toast.openedUrlFromOutput': '已从操作输出中打开 URL',
|
||
'projectActions.toast.openedForwardedUrl': '已打开转发 URL',
|
||
'projectActions.toast.openedActionUrl': '已打开操作 URL',
|
||
'projectActions.error.noActiveDirectory': '没有活动目录',
|
||
'projectActions.error.noActiveDirectoryForAction': '没有可用于该操作的活动目录',
|
||
'projectActions.error.failedToCreateTerminalSession': '创建终端会话失败',
|
||
'projectActions.error.invalidCustomUrlFormat': '自定义 URL 格式无效',
|
||
'projectActions.error.selectedDesktopSshForwardUnavailable': '所选桌面 SSH 转发不可用',
|
||
'projectActions.error.failedToRunAction': '运行操作失败',
|
||
'mcpDropdown.title': 'MCP 服务器',
|
||
'mcpDropdown.actions.refreshAria': '刷新',
|
||
'mcpDropdown.actions.openAria': 'MCP 服务器',
|
||
'mcpDropdown.statusAria': 'MCP 状态',
|
||
'mcpDropdown.status.unknown': '未知',
|
||
'mcpDropdown.status.connected': '已连接',
|
||
'mcpDropdown.status.failed': '失败:{error}',
|
||
'mcpDropdown.status.unknownError': '未知错误',
|
||
'mcpDropdown.status.needsAuth': '需要认证',
|
||
'mcpDropdown.status.needsRegistration': '需要注册:{error}',
|
||
'mcpDropdown.empty.configureInConfig': '请在 OpenCode 配置中设置 MCP 服务器。',
|
||
'sessionAuth.error.rateLimitTitle': '尝试次数过多',
|
||
'sessionAuth.error.networkTitle': '无法连接服务器',
|
||
'sessionAuth.error.rateLimitDescriptionSingle': '请等待 {minutes} 分钟后再试。',
|
||
'sessionAuth.error.rateLimitDescriptionPlural': '请等待 {minutes} 分钟后再试。',
|
||
'sessionAuth.error.networkDescription': '无法验证 UI 会话。请检查服务是否运行后重试。',
|
||
'sessionAuth.error.retry': '重试',
|
||
'sessionAuth.error.passkeySetupFailed': 'Passkey 设置失败。',
|
||
'sessionAuth.error.incorrectPassword': '密码错误,请重试。',
|
||
'sessionAuth.error.unexpectedResponse': '服务器返回了意外响应。',
|
||
'sessionAuth.error.networkRetry': '网络错误。请检查连接后重试。',
|
||
'sessionAuth.error.passkeySignInCanceled': 'Passkey 登录已取消。',
|
||
'sessionAuth.error.enterPasswordForPasskey': '请输入密码以添加 passkey。',
|
||
'sessionAuth.locked.tunnelTitle': '需要隧道访问',
|
||
'sessionAuth.locked.unlockTitle': '解锁 OpenChamber',
|
||
'sessionAuth.locked.tunnelDescription': '请使用桌面应用提供的一次性连接链接打开该隧道。',
|
||
'sessionAuth.locked.passwordDescription': '此会话受密码保护。',
|
||
'sessionAuth.locked.hostSwitcherHint': '如果远程不可达,请使用 Local。',
|
||
'sessionAuth.actions.cancelPasskey': '取消 passkey',
|
||
'sessionAuth.actions.usePasskey': '使用 passkey',
|
||
'sessionAuth.actions.unlockingAria': '解锁中',
|
||
'sessionAuth.actions.unlockAria': '解锁',
|
||
'sessionAuth.actions.trustDevice': '信任此设备',
|
||
'sessionAuth.actions.trustDeviceAria': '信任此设备',
|
||
'sessionAuth.actions.cancelPasskeySetup': '取消 passkey 设置',
|
||
'sessionAuth.actions.addPasskey': '添加 passkey',
|
||
'sessionAuth.password.placeholder': '输入密码',
|
||
'sessionAuth.toast.passkeyAdded': 'Passkey 已添加',
|
||
'sessionAuth.toast.passkeySetupCanceled': 'Passkey 设置已取消',
|
||
'desktopHostSwitcher.title': '实例',
|
||
'desktopHostSwitcher.description': '在 Local 与远程 OpenChamber 服务器之间切换',
|
||
'desktopHostSwitcher.header.current': '当前',
|
||
'desktopHostSwitcher.header.default': '默认',
|
||
'desktopHostSwitcher.header.currentColon': '当前:',
|
||
'desktopHostSwitcher.header.currentDefaultColon': '当前默认:',
|
||
'desktopHostSwitcher.status.connected': '已连接',
|
||
'desktopHostSwitcher.status.authRequired': '需要认证',
|
||
'desktopHostSwitcher.status.wrongService': '服务不匹配',
|
||
'desktopHostSwitcher.status.unreachable': '不可达',
|
||
'desktopHostSwitcher.status.unknown': '未知',
|
||
'desktopHostSwitcher.status.ping': ' · {ms}ms 延迟',
|
||
'desktopHostSwitcher.statusAria': '实例状态',
|
||
'desktopHostSwitcher.sshPhase.ready': '已就绪',
|
||
'desktopHostSwitcher.sshPhase.error': '错误',
|
||
'desktopHostSwitcher.sshPhase.reconnecting': '重连中',
|
||
'desktopHostSwitcher.sshPhase.resolvingConfig': '解析配置中',
|
||
'desktopHostSwitcher.sshPhase.checkingAuth': '检查认证中',
|
||
'desktopHostSwitcher.sshPhase.connectingSsh': '连接 SSH 中',
|
||
'desktopHostSwitcher.sshPhase.probingRemote': '探测远程中',
|
||
'desktopHostSwitcher.sshPhase.installing': '安装中',
|
||
'desktopHostSwitcher.sshPhase.updating': '更新中',
|
||
'desktopHostSwitcher.sshPhase.detectingServer': '检测服务中',
|
||
'desktopHostSwitcher.sshPhase.startingServer': '启动服务中',
|
||
'desktopHostSwitcher.sshPhase.forwardingPorts': '端口转发中',
|
||
'desktopHostSwitcher.sshPhase.idle': '空闲',
|
||
'desktopHostSwitcher.ssh.needInstancesHint': '需要 SSH 实例?请在设置中管理。',
|
||
'desktopHostSwitcher.ssh.instanceFallback': 'SSH 实例',
|
||
'desktopHostSwitcher.ssh.connectingTo': '正在连接到 {host}',
|
||
'desktopHostSwitcher.actions.refresh': '刷新',
|
||
'desktopHostSwitcher.actions.refreshInstancesAria': '刷新实例',
|
||
'desktopHostSwitcher.actions.remoteSsh': '远程 SSH',
|
||
'desktopHostSwitcher.actions.instanceActionsAria': '实例操作',
|
||
'desktopHostSwitcher.actions.edit': '编辑',
|
||
'desktopHostSwitcher.actions.delete': '删除',
|
||
'desktopHostSwitcher.actions.connect': '连接',
|
||
'desktopHostSwitcher.actions.defaultInstanceAria': '默认实例',
|
||
'desktopHostSwitcher.actions.setAsDefaultAria': '设为默认',
|
||
'desktopHostSwitcher.actions.setAsDefault': '设为默认',
|
||
'desktopHostSwitcher.actions.openInNewWindowAria': '在新窗口打开',
|
||
'desktopHostSwitcher.actions.openInNewWindow': '在新窗口打开',
|
||
'desktopHostSwitcher.actions.addInstance': '添加实例',
|
||
'desktopHostSwitcher.actions.cancel': '取消',
|
||
'desktopHostSwitcher.actions.save': '保存',
|
||
'desktopHostSwitcher.actions.add': '添加',
|
||
'desktopHostSwitcher.actions.switchToLocal': '切换到 Local',
|
||
'desktopHostSwitcher.actions.retry': '重试',
|
||
'desktopHostSwitcher.actions.switchInstanceAria': '切换实例',
|
||
'desktopHostSwitcher.actions.switchInstance': '切换实例',
|
||
'desktopHostSwitcher.actions.switchToAria': '切换到 {instance}',
|
||
'desktopHostSwitcher.field.labelPlaceholder': '标签',
|
||
'desktopHostSwitcher.field.labelOptionalPlaceholder': '标签(可选)',
|
||
'desktopHostSwitcher.field.urlPlaceholder': 'https://host:port',
|
||
'desktopHostSwitcher.state.limitedOnPage': '此页面上的实例切换器功能受限。可使用 Local 恢复。',
|
||
'desktopHostSwitcher.state.loading': '加载中...',
|
||
'desktopHostSwitcher.state.instanceUnreachable': '实例不可达',
|
||
'desktopHostSwitcher.edit.title': '编辑实例',
|
||
'desktopHostSwitcher.add.title': '添加实例',
|
||
'desktopHostSwitcher.error.failedToSave': '保存失败',
|
||
'desktopHostSwitcher.error.failedToLoad': '加载失败',
|
||
'desktopHostSwitcher.error.invalidUrl': '无效 URL(必须是 http/https)',
|
||
'desktopHostSwitcher.error.failedToOpenNewWindow': '在新窗口打开失败',
|
||
'desktopHostSwitcher.instance.local': 'Local',
|
||
'desktopHostSwitcher.instance.fallback': '实例',
|
||
'desktopHostSwitcher.startup.title': '默认 SSH 实例不可用',
|
||
'desktopHostSwitcher.startup.connectingTo': '正在连接到 {host}...',
|
||
'desktopHostSwitcher.startup.failed': '连接默认 SSH 实例失败。',
|
||
'desktopHostSwitcher.toast.sshConnected': 'SSH 实例“{host}”已连接',
|
||
'desktopHostSwitcher.toast.sshFailedToConnect': 'SSH 实例“{host}”连接失败',
|
||
'desktopHostSwitcher.toast.instanceUnreachable': '实例“{host}”不可达',
|
||
'miniChat.header.newSession': '新会话',
|
||
'miniChat.header.session': '会话',
|
||
'miniChat.header.defaultAgent': '默认智能体',
|
||
'miniChat.header.noModel': '未选择模型',
|
||
'miniChat.status.busy': '运行中',
|
||
'miniChat.status.retry': '重试中',
|
||
'miniChat.status.idle': '空闲',
|
||
'miniChat.actions.pin': '固定在其他窗口上方',
|
||
'miniChat.actions.unpin': '取消固定窗口',
|
||
'miniChat.actions.pinAria': '固定 Mini Chat 窗口',
|
||
'miniChat.actions.unpinAria': '取消固定 Mini Chat 窗口',
|
||
'miniChat.actions.openMain': '在主窗口中打开',
|
||
'miniChat.actions.openMainAria': '在主窗口中打开会话',
|
||
'miniChat.unavailable.title': '会话不可用',
|
||
'miniChat.unavailable.description': '无法加载此会话。它可能已被删除、归档,或从其他项目上下文打开。',
|
||
'sessions.sidebar.session.menu.openMiniChatWindow': '在 Mini Chat 窗口中打开',
|
||
'header.actions.newMiniChat': '新建 Mini Chat 窗口',
|
||
'header.actions.newMiniChatAria': '打开新的 Mini Chat 窗口',
|
||
'header.actions.openSessionMiniChat': '在 Mini Chat 中打开会话',
|
||
'header.actions.openSessionMiniChatAria': '在 Mini Chat 中打开当前会话',
|
||
'errorBoundary.title': '发生错误',
|
||
'errorBoundary.description': '应用遇到意外错误,已记录用于调试。',
|
||
'errorBoundary.state.unknownError': '未知错误',
|
||
'errorBoundary.state.componentStackLabel': '组件堆栈:',
|
||
'errorBoundary.actions.errorDetails': '错误详情',
|
||
'errorBoundary.actions.tryAgain': '重试',
|
||
'errorBoundary.actions.copy': '复制',
|
||
'errorBoundary.actions.copied': '已复制',
|
||
'jsonTreeView.error.emptyJson': 'JSON 内容为空',
|
||
'jsonTreeView.error.invalidJson': '无效 JSON',
|
||
'jsonTreeView.error.invalidJsonTitle': '无效 JSON',
|
||
'jsonTreeView.actions.expandAll': '全部展开',
|
||
'jsonTreeView.actions.collapseAll': '全部折叠',
|
||
'numberInput.actions.decreaseAria': '减少数值',
|
||
'numberInput.actions.increaseAria': '增加数值',
|
||
'goToLineDialog.field.linePlaceholderShort': '行',
|
||
'goToLineDialog.field.linePlaceholder': '行号',
|
||
'goToLineDialog.actions.go': '前往',
|
||
'goToLineDialog.helper.editorUnavailable': '编辑器不可用。',
|
||
'goToLineDialog.helper.currentLineRange': '当前行:{current}。输入 1 到 {max} 之间的行号进行跳转。',
|
||
'goToLineDialog.helper.goToLine': '跳转到第 {line} 行',
|
||
'dialog.common.actions.close': '关闭',
|
||
'filesView.toast.relativePathCopied': '相对路径已复制',
|
||
'filesView.tree.menu.copyRelativePath': '复制相对路径',
|
||
'multiRun.branchSelector.placeholder.selectSourceBranch': '选择源分支...',
|
||
'multiRun.branchSelector.status.loadingBranches': '正在加载分支...',
|
||
'multiRun.branchSelector.status.noBranchesFound': '未找到分支',
|
||
'multiRun.branchSelector.status.notInGitRepository': '当前目录不是 Git 仓库。',
|
||
'multiRun.branchSelector.groups.localBranches': '本地分支',
|
||
'multiRun.branchSelector.groups.remoteBranches': '远程分支',
|
||
'multiRun.window.actions.closeAria': '关闭多运行窗口',
|
||
'multiRun.window.description': 'OpenChamber 多运行窗口。',
|
||
'voice.status.idle': '语音就绪',
|
||
'voice.status.listening': '监听中...',
|
||
'voice.status.processing': '处理中...',
|
||
'voice.status.speaking': '播放中...',
|
||
'voice.status.error': '语音错误',
|
||
'voice.status.conversationModeActiveAria': '会话模式已启用',
|
||
'voice.action.finishAndTranscribe': '结束并转写语音输入',
|
||
'onboarding.common.actions.back': '返回',
|
||
'onboarding.common.copyToClipboard': '复制到剪贴板',
|
||
'onboarding.common.status.copiedToClipboard': '已复制到剪贴板',
|
||
'onboarding.chooser.title': '欢迎使用 OpenChamber',
|
||
'onboarding.chooser.description': '选择你的连接方式以开始使用。',
|
||
'onboarding.chooser.tabs.localInstall': '本地安装',
|
||
'onboarding.chooser.tabs.connectRemote': '连接远程',
|
||
'onboarding.localSetup.title': '设置 OpenCode',
|
||
'onboarding.localSetup.description': '安装 OpenCode CLI 以继续。',
|
||
'onboarding.localSetup.dialog.selectOpencodeBinary': '选择 OpenCode 可执行文件',
|
||
'onboarding.localSetup.errors.cliNotReady': 'OpenCode CLI 尚未就绪。请确认安装完成后重试。',
|
||
'onboarding.localSetup.errors.detectionFailed': '检测失败',
|
||
'onboarding.localSetup.windows.title': 'Windows 设置(推荐 WSL)',
|
||
'onboarding.localSetup.windows.stepInstallWsl': '如需,请先在 PowerShell 中运行',
|
||
'onboarding.localSetup.windows.stepInstallWslSuffix': '安装 WSL。',
|
||
'onboarding.localSetup.windows.stepRunInstallInWsl': '在 WSL 终端中运行下方安装命令。',
|
||
'onboarding.localSetup.windows.stepSetBinaryPath': '如果 OpenChamber 未自动检测到 OpenCode,请在下方设置可执行文件路径。',
|
||
'onboarding.localSetup.intro': 'OpenCode 是 OpenChamber 的核心,先安装它即可开始。',
|
||
'onboarding.localSetup.docs.windows': 'OpenCode Windows + WSL 文档',
|
||
'onboarding.localSetup.docs.default': 'OpenCode 文档',
|
||
'onboarding.localSetup.actions.checking': '检测中...',
|
||
'onboarding.localSetup.actions.checkAndContinue': '我已完成安装,检测并继续',
|
||
'onboarding.localSetup.actions.checkNow': '立即检测',
|
||
'onboarding.localSetup.helper.checkAndContinue': '点击检测 OpenCode CLI 是否可用。成功后将自动进入主界面。',
|
||
'onboarding.localSetup.status.watching': '正在等待 OpenCode',
|
||
'onboarding.localSetup.status.autoContinue': '检测到后将自动继续。',
|
||
'onboarding.localSetup.field.alreadyInstalled': '已安装?设置 OpenCode CLI 路径:',
|
||
'onboarding.localSetup.advanced.title': '设置自定义二进制路径',
|
||
'onboarding.localSetup.troubleshoot.title': '遇到问题?',
|
||
'onboarding.localSetup.actions.browse': '浏览',
|
||
'onboarding.localSetup.actions.apply': '应用',
|
||
'onboarding.localSetup.helper.saveAndReload': '将保存到 OpenChamber 设置并重新加载 OpenCode 配置。',
|
||
'onboarding.localSetup.remotePreference': '更希望使用远程服务器?',
|
||
'onboarding.localSetup.actions.connectRemoteServer': '连接远程服务器 →',
|
||
'onboarding.localSetup.windows.hintInstallInWsl': '在 Windows 上,建议在 WSL 中安装并运行 OpenCode 以获得最佳兼容性。',
|
||
'onboarding.localSetup.windows.hintDetectionFailed': '若检测失败,请设置本地路径(opencode.cmd/opencode.exe)、wsl.exe,或 wsl:/usr/local/bin/opencode。',
|
||
'onboarding.localSetup.hint.ensurePath': '已安装?请确认 opencode 在你的 PATH 中。',
|
||
'onboarding.localSetup.hint.setEnv': '或设置 OPENCODE_BINARY 环境变量。',
|
||
'onboarding.localSetup.hint.missingRuntime': '如果看到 “env: node: No such file or directory” 或 “env: bun: No such file or directory”,请安装对应运行时或确保其在 PATH 中。',
|
||
'onboarding.remoteConnection.title': '连接远程服务器',
|
||
'onboarding.remoteConnection.titleRecovery': '连接到其他服务器',
|
||
'onboarding.remoteConnection.description': '输入要连接的 OpenChamber 服务器地址。',
|
||
'onboarding.remoteConnection.field.serverAddress': '服务器地址',
|
||
'onboarding.remoteConnection.field.serverAddressPlaceholder': 'https://your-server.example.com:4096',
|
||
'onboarding.remoteConnection.field.nameOptional': '名称(可选)',
|
||
'onboarding.remoteConnection.field.namePlaceholder': '我的远程服务器',
|
||
'onboarding.remoteConnection.errors.connectionTestFailed': '连接测试失败',
|
||
'onboarding.remoteConnection.errors.failedToSaveConnection': '保存连接失败',
|
||
'onboarding.remoteConnection.status.connectedSuccessfully': '连接成功({latencyMs}ms)',
|
||
'onboarding.remoteConnection.status.authWarning': '服务器需要身份验证。你仍可继续连接。',
|
||
'onboarding.remoteConnection.status.connectionFailed': '连接失败',
|
||
'onboarding.remoteConnection.status.suggestionsUnreachable': '建议:检查服务器地址、确认服务已启动,或检查网络连接。',
|
||
'onboarding.remoteConnection.status.suggestionsWrongService': '建议:确认 URL 指向 OpenChamber 服务器,或联系服务器管理员。',
|
||
'onboarding.remoteConnection.actions.testing': '测试中…',
|
||
'onboarding.remoteConnection.actions.testConnection': '测试连接',
|
||
'onboarding.remoteConnection.actions.connectAndRestart': '连接并重启',
|
||
'onboarding.remoteConnection.actions.whatToDo': '你希望如何处理?',
|
||
'onboarding.remoteConnection.actions.chooseDifferentServer': '选择其他服务器',
|
||
'onboarding.remoteConnection.actions.useLocalInstead': '改用本地',
|
||
'onboarding.remoteConnection.probe.authMessage': '服务器需要身份验证。你仍可连接,但可能需要提供凭据。',
|
||
'onboarding.remoteConnection.probe.wrongServiceMessage': '服务器有响应,但未运行 OpenChamber。请确认地址是否指向 OpenChamber 服务器。',
|
||
'onboarding.remoteConnection.probe.unreachableMessage': '服务器不可达。请检查网络连接并确认服务器地址。',
|
||
'onboarding.desktopRecovery.localUnavailable.title': '本地 OpenCode 不可用',
|
||
'onboarding.desktopRecovery.localUnavailable.description': 'OpenCode CLI 无法启动或未安装。请安装 OpenCode,或改为连接远程服务器。',
|
||
'onboarding.desktopRecovery.localUnavailable.retry': '重试本地',
|
||
'onboarding.desktopRecovery.localUnavailable.useLocal': '设置本地',
|
||
'onboarding.desktopRecovery.noDefaultConnection.title': '无默认连接',
|
||
'onboarding.desktopRecovery.noDefaultConnection.description': '找不到已保存的默认连接。请选择你的连接方式。',
|
||
'onboarding.desktopRecovery.remoteUnreachable.title': '远程服务器不可达',
|
||
'onboarding.desktopRecovery.remoteUnreachable.description': '无法连接到 “{host}”。请检查网络连接并确认服务器地址。',
|
||
'onboarding.desktopRecovery.remoteUnreachable.retry': '重试连接',
|
||
'onboarding.desktopRecovery.incompatibleServer.title': '服务器不兼容',
|
||
'onboarding.desktopRecovery.incompatibleServer.description': '“{host}” 上的服务器未运行 OpenChamber。请确认地址是否指向 OpenChamber 服务器。',
|
||
'onboarding.desktopRecovery.common.useLocal': '使用本地',
|
||
'onboarding.desktopRecovery.common.useRemote': '使用远程',
|
||
'onboarding.desktopRecovery.actions.retrying': '重试中…',
|
||
'onboarding.desktopRecovery.actions.retryConnection': '重试连接',
|
||
'startup.initRecovery.title': '启动失败',
|
||
'startup.initRecovery.description': 'OpenChamber 未能完成初始化。请检查服务器是否正在运行,然后重试。',
|
||
'startup.initRecovery.retry': '重试',
|
||
'startup.initRecovery.retrying': '重试中…',
|
||
'onboarding.desktopRecovery.placeholders.remoteServer': '远程服务器',
|
||
'onboarding.desktopRecovery.placeholders.unknownServer': '未知服务器',
|
||
'vscodeLayout.title.chat': '聊天',
|
||
'vscodeLayout.title.newSession': '新会话',
|
||
'vscodeLayout.title.sessions': '会话',
|
||
'vscodeLayout.title.sessionFallback': '会话',
|
||
'vscodeLayout.actions.backToSessionsAria': '返回会话列表',
|
||
'vscodeLayout.actions.newSessionAria': '新建会话',
|
||
'vscodeLayout.actions.openAgentManagerAria': '打开 Agent 管理器',
|
||
'vscodeLayout.actions.resizeSessionsSidebarAria': '调整会话侧边栏大小',
|
||
'vscodeLayout.actions.settingsAria': '设置',
|
||
'vscodeLayout.quota.title': '速率限制',
|
||
'vscodeLayout.quota.mode.used': '已用',
|
||
'vscodeLayout.quota.mode.remaining': '剩余',
|
||
'vscodeLayout.quota.lastUpdated': '上次更新 {time}',
|
||
'vscodeLayout.quota.noRateLimitsAvailable': '没有可用的速率限制数据。',
|
||
'vscodeLayout.quota.noRateLimitsReported': '未报告速率限制。',
|
||
'vscodeLayout.quota.actions.rateLimitsAria': '速率限制',
|
||
'vscodeLayout.quota.actions.showUsedAria': '显示已用配额',
|
||
'vscodeLayout.quota.actions.showRemainingAria': '显示剩余配额',
|
||
'vscodeLayout.quota.actions.refreshAria': '刷新速率限制',
|
||
'updateDialog.header.updateAvailable': '有可用更新',
|
||
'updateDialog.header.updating': '正在更新 OpenChamber...',
|
||
'updateDialog.changelog.title': '更新内容',
|
||
'updateDialog.status.installingUpdate': '正在安装更新...',
|
||
'updateDialog.status.serverRestarting': '服务器正在重启...',
|
||
'updateDialog.status.waitingForServer': '正在等待服务器...',
|
||
'updateDialog.status.autoReloadHint': '更新完成后页面将自动重新加载。',
|
||
'updateDialog.fallback.updateViaTerminal': '或通过终端更新:',
|
||
'updateDialog.actions.copyCommand': '复制命令',
|
||
'updateDialog.actions.copied': '已复制!',
|
||
'updateDialog.status.downloadingPayload': '正在下载更新包...',
|
||
'updateDialog.actions.downloadUpdate': '下载更新',
|
||
'updateDialog.status.downloading': '下载中...',
|
||
'updateDialog.actions.restartToUpdate': '重启以更新',
|
||
'updateDialog.actions.updateNow': '立即更新',
|
||
'updateDialog.status.updating': '更新中...',
|
||
'updateDialog.error.updateFailed': '更新失败',
|
||
'updateDialog.error.takingLonger': '更新耗时超出预期。请稍等后刷新,或运行:openchamber update',
|
||
'opencodeUpdate.toast.available.title': 'OpenCode 有可用更新',
|
||
'opencodeUpdate.toast.available.description': '版本 {version} 已可安装。',
|
||
'opencodeUpdate.toast.actions.update': '更新',
|
||
'opencodeUpdate.toast.actions.dismiss': '忽略',
|
||
'opencodeUpdate.toast.actions.reload': '重载 OpenCode',
|
||
'opencodeUpdate.toast.upgrading.title': '正在更新 OpenCode...',
|
||
'opencodeUpdate.toast.upgrading.description': '请保持 OpenChamber 打开。',
|
||
'opencodeUpdate.toast.updated.title': 'OpenCode 已更新',
|
||
'opencodeUpdate.toast.updated.description': '重载 OpenCode 以开始使用更新后的版本。',
|
||
'opencodeUpdate.toast.updated.descriptionWithVersion': '版本 {version} 已安装。重载 OpenCode 后即可使用。',
|
||
'opencodeUpdate.toast.failed.title': '无法更新 OpenCode',
|
||
'opencodeUpdate.toast.failed.description': 'OpenCode 升级失败。',
|
||
'opencodeUpdate.toast.reload.message': '正在重启 OpenCode...',
|
||
'memoryDebugPanel.title': '调试面板',
|
||
'memoryDebugPanel.tabs.memory': '内存',
|
||
'memoryDebugPanel.tabs.streaming': '流式',
|
||
'memoryDebugPanel.section.sessionsInMemory': '内存中的会话',
|
||
'memoryDebugPanel.section.uiStreamingMetrics': 'UI 流式指标',
|
||
'memoryDebugPanel.section.vscodeBridgeMetrics': 'VS Code 桥接指标',
|
||
'memoryDebugPanel.section.noUiSamples': '暂无 UI 流式采样。请开始一次流式输出并保持该面板开启。',
|
||
'memoryDebugPanel.section.noVscodeSamples': '暂无 VS Code 桥接采样。',
|
||
'memoryDebugPanel.metric.totalMessages': '消息总数',
|
||
'memoryDebugPanel.metric.cachedSessions': '缓存会话',
|
||
'memoryDebugPanel.metric.viewportWindow': '视口窗口',
|
||
'memoryDebugPanel.metric.zombieTimeout': '僵尸超时',
|
||
'memoryDebugPanel.metric.githubTotalRequests': 'GitHub 请求总数',
|
||
'memoryDebugPanel.metric.metrics': '指标',
|
||
'memoryDebugPanel.metric.samples': '采样',
|
||
'memoryDebugPanel.metric.lastUpdate': '最近更新',
|
||
'memoryDebugPanel.metric.uiMetrics': 'UI 指标',
|
||
'memoryDebugPanel.metric.vscodeMetrics': 'VS Code 指标',
|
||
'memoryDebugPanel.metric.messageListRenders': '消息列表渲染',
|
||
'memoryDebugPanel.metric.messageListStreamRenders': '消息列表流式渲染',
|
||
'memoryDebugPanel.metric.chatMessageRenders': 'ChatMessage 渲染',
|
||
'memoryDebugPanel.metric.chatMessageStreamRenders': 'ChatMessage 流式渲染',
|
||
'memoryDebugPanel.metric.chatMessageStaticDuringStream': '流式期间 ChatMessage 静态渲染',
|
||
'memoryDebugPanel.metric.chatMessageStaticOutsideActiveTurn': '活跃轮次外 ChatMessage 静态渲染',
|
||
'memoryDebugPanel.metric.messagesValue': '{count} 条消息',
|
||
'memoryDebugPanel.metric.minutesValue': '{count} 分钟',
|
||
'memoryDebugPanel.metric.msgsValue': '{count} 条',
|
||
'memoryDebugPanel.metric.countValue': '次数 {value}',
|
||
'memoryDebugPanel.metric.avgValue': '平均 {value}',
|
||
'memoryDebugPanel.metric.maxValue': '最大 {value}',
|
||
'memoryDebugPanel.metric.totalValue': '总计 {value}',
|
||
'memoryDebugPanel.actions.logState': '输出状态',
|
||
'memoryDebugPanel.actions.copyJson': '复制 JSON',
|
||
'memoryDebugPanel.tooltip.logCurrentState': '将当前内存状态输出到浏览器控制台',
|
||
'memoryDebugPanel.streaming.copy.copied': '流式调试 JSON 已复制',
|
||
'memoryDebugPanel.streaming.copy.failed': '复制 JSON 失败',
|
||
'memoryDebugPanel.streaming.copy.hint': '复制会导出 UI 与 VS Code 的流式指标 JSON',
|
||
'memoryDebugPanel.common.idle': '空闲',
|
||
'memoryDebugPanel.common.live': '实时',
|
||
'memoryDebugPanel.common.notAvailable': '无',
|
||
'memoryDebugPanel.common.untitled': '未命名',
|
||
'directoryTree.field.newDirectoryPlaceholder': 'new_directory',
|
||
'textarea.resizeHandleAria': '调整文本区域大小',
|
||
'sidebar.resize.leftPanelAria': '调整左侧面板大小',
|
||
'sidebar.resize.rightPanelAria': '调整右侧面板大小',
|
||
'mainLayout.mobile.closeDrawerAria': '关闭抽屉',
|
||
'sortableTabsStrip.aria.tabs': '标签页',
|
||
'openChamberLogo.aria.logo': 'OpenChamber 标志',
|
||
'markdownRenderer.table.actions.copyTitle': '复制表格',
|
||
'markdownRenderer.table.actions.downloadTitle': '下载表格',
|
||
'markdownRenderer.table.toast.downloadedAsFormat': '表格已下载为 {format}',
|
||
'markdownRenderer.mermaid.actions.copyTitle': '复制',
|
||
'markdownRenderer.mermaid.actions.copySourceTitle': '复制源码',
|
||
'markdownRenderer.mermaid.actions.downloadSvgTitle': '下载 SVG',
|
||
'markdownRenderer.mermaid.toast.downloadFailed': '下载图表失败',
|
||
'contextPanel.preview.title': '预览',
|
||
'contextPanel.preview.description': '使用项目操作或终端 Preview 按钮打开预览。',
|
||
'contextPanel.preview.startPreview': '启动预览',
|
||
'contextPanel.preview.starting': '正在启动...',
|
||
'contextPanel.preview.noDevServer': '未找到开发服务器命令。请配置项目操作或添加 "dev" 脚本到 package.json。',
|
||
'contextPanel.preview.startFailed': '启动预览服务器失败。',
|
||
'contextPanel.preview.serverExited': '开发服务器意外退出。',
|
||
'contextPanel.preview.noUrlDetected': '开发服务器已启动,但未在输出中检测到 URL。请打开预览终端标签页查看日志。',
|
||
'contextPanel.preview.serverExitedWithLog': '开发服务器意外退出。最后输出:\n\n{log}',
|
||
'contextPanel.preview.noUrlDetectedWithLog': '开发服务器未能响应。最后输出:\n\n{log}',
|
||
'contextPanel.preview.startingServer': '正在启动开发服务器...',
|
||
'contextPanel.preview.startingServerHint': '正在等待服务器开始接受连接。',
|
||
'contextPanel.preview.console.open': '打开预览控制台',
|
||
'contextPanel.preview.console.waiting': '正在等待预览控制台',
|
||
'contextPanel.preview.console.title': '预览控制台',
|
||
'contextPanel.preview.console.attach': '附加',
|
||
'contextPanel.preview.console.copy': '复制',
|
||
'contextPanel.preview.console.clear': '清除',
|
||
'contextPanel.preview.console.empty': '还没有预览控制台事件。',
|
||
'contextPanel.preview.console.noFilteredEvents': '没有匹配此筛选器的事件。',
|
||
'contextPanel.preview.console.runtimeError': '运行时错误',
|
||
'contextPanel.preview.console.copied': '预览控制台已复制',
|
||
'contextPanel.preview.console.copyFailed': '无法复制预览控制台',
|
||
'contextPanel.preview.console.attached': '预览控制台已附加到聊天',
|
||
'contextPanel.preview.console.attachNoSession': '请先打开聊天会话,再附加预览日志',
|
||
'contextPanel.preview.console.attachAnnotation': '这些是此项目开发服务器的浏览器控制台日志。',
|
||
'contextPanel.preview.inspect.toggle': '检查预览元素',
|
||
'contextPanel.preview.inspect.attached': '预览注释已附加到聊天',
|
||
'contextPanel.preview.inspect.attachNoSession': '请先打开聊天会话,再附加预览注释',
|
||
'contextPanel.preview.inspect.attachAnnotation': '这是内置预览中选中的 DOM 元素。',
|
||
'contextPanel.preview.inspect.attachAnnotationWithScreenshot': '这是内置预览中选中的 DOM 元素。已附加带有高亮选中元素的可见预览区域截图。',
|
||
'contextPanel.preview.console.filter.all': '全部',
|
||
'contextPanel.preview.console.filter.errors': '错误',
|
||
'contextPanel.preview.console.filter.warnings': '警告',
|
||
'contextPanel.preview.console.filter.logs': '日志',
|
||
};
|