489 lines
24 KiB
TypeScript
489 lines
24 KiB
TypeScript
/**
|
||
* dsh-worktable locale namespace(NS 'worktable'):
|
||
* 侧边栏区块、视图菜单、管理项目、添加面板、快捷方式等全部文案。
|
||
* zh 为键集唯一来源;en 与 zh 键集完全对齐。
|
||
*/
|
||
|
||
/** Simplified Chinese dictionary (the key-set source of truth). */
|
||
export const zh = {
|
||
'title': '工作台',
|
||
'rail.title': '工作台(展开侧边栏查看)',
|
||
'handle.title': '按住拖动位置 · 双击复位',
|
||
'handle.aria': '拖动工作台位置',
|
||
'menu.search': '搜索项目',
|
||
'menu.viewOptions': '设置',
|
||
'menu.add': '添加项目',
|
||
'search.placeholder': '搜索项目…',
|
||
'search.close': '关闭搜索',
|
||
'sort.label': '排序方式',
|
||
'sort.manual': '手动',
|
||
'sort.recent': '最近',
|
||
'menu.manage': '管理项目…',
|
||
'add.guideTitle': '接入新项目',
|
||
'add.guideBody': '工作台里的项目就是 DSH 插件——插件注册一张「工作台项目卡片」即自动入驻(协议见项目 PRD §5.3)。已安装但未入驻的插件需在插件代码里完成注册。',
|
||
'add.market': '浏览插件市场',
|
||
'add.shortcutTitle': '本地快捷方式',
|
||
'add.shortcutDesc': '把任意网址收进工作台,点击新标签打开(仅存本机)。',
|
||
'add.shortcutNamePh': '名称',
|
||
'add.shortcutIcon': '图标(emoji,可选)',
|
||
'add.shortcutHref': '链接(http/https)',
|
||
'add.shortcutAdd': '添加',
|
||
'add.shortcutInvalid': '请填写名称与合法的 http/https 链接',
|
||
'manage.title': '管理项目',
|
||
'manage.done': '完成',
|
||
'manage.renamePh': '显示名',
|
||
'manage.hide': '隐藏',
|
||
'manage.show': '显示',
|
||
'manage.removed': '已删除的项目',
|
||
'manage.readd': '重新添加',
|
||
'manage.deleteShortcut': '删除快捷方式',
|
||
'shortcut.badge': '本地',
|
||
'add.chooseLayout': '选择布局模式',
|
||
'add.layoutNamePh': '布局名称',
|
||
'add.folderParent': '项目文件夹',
|
||
'add.folderPick': '选择位置…',
|
||
'add.folderNone': '未选择(点右侧「选择位置…」在资源管理器窗口里挑一个文件夹)',
|
||
'add.folderRequired': '请先选择项目文件夹的位置',
|
||
'add.folderPicking': '等待选择…',
|
||
'add.folderPickerHint': '正在等待文件夹选择;若未看到选择窗口,可检查任务栏,或使用「手动输入」。',
|
||
'add.folderPickFail': '目录选择失败:{msg}',
|
||
'add.folderPickerUnavailable': '系统目录选择器不可用,请用「手动输入」粘贴路径',
|
||
'add.folderManual': '手动输入',
|
||
'add.folderManualPh': '粘贴文件夹绝对路径,回车确认',
|
||
'add.folderManualOk': '使用此路径',
|
||
'add.folderManualEmpty': '请输入文件夹绝对路径',
|
||
'add.folderManualAbs': '请输入绝对路径(如 C:\\Users\\me\\Projects 或 /home/me/projects)',
|
||
'add.folderCreateFail': '项目文件夹创建失败,请检查路径后重试',
|
||
'add.layoutSave': '进入工作区',
|
||
'add.layoutInvalid': '请填写布局名称',
|
||
'manage.deleteLayout': '删除布局',
|
||
'manage.deleteProject': '删除项目',
|
||
'manage.changeView': '变更视图',
|
||
'viewPick.title': '选择新视图(内容窗自动迁入)',
|
||
'confirm.title': '删除项目',
|
||
'confirm.cancel': '取消',
|
||
'confirm.delete': '删除',
|
||
'confirm.layoutBody': '确定删除「{name}」?该工作区及其布局将被移除,此操作不可恢复。',
|
||
'confirm.shortcutBody': '确定删除快捷方式「{name}」?此操作不可恢复。',
|
||
'confirm.projectBody': '「{name}」将从工作台彻底移除(对话与项目文件都保留,只是不再显示项目卡片)。',
|
||
'pane.browser': '浏览器',
|
||
'pane.explorer': '资源管理器',
|
||
'pane.scm': '源代码管理',
|
||
'pane.tasks': '任务管理',
|
||
'pane.terminal': '终端',
|
||
'pane.custom': '自定义',
|
||
'pane.anim': '动画',
|
||
'pane.console': '控制室',
|
||
'pane.refresh': '刷新',
|
||
'pane.animUrlPh': '粘贴动画站点地址后回车',
|
||
'custom.title': '自定义这个窗口',
|
||
'custom.hint': '发送后将自动新建一个会话,专门负责这个窗口的自定义设计。',
|
||
'custom.placeholder': '告诉 AI 你想让这个窗口做什么,例如:做一个展示我旅行足迹的时间线页面…',
|
||
'custom.project': '所属项目',
|
||
'custom.modeNew': '新建对话',
|
||
'custom.modeSend': '发送到会话',
|
||
'custom.session': '选择会话',
|
||
'custom.sessionCurrent': '(当前)',
|
||
'custom.hintSend': '内容将直接发送到你选择的会话(默认当前会话),用于讨论这个窗口的自定义设计。',
|
||
'custom.send': '发送并新建对话',
|
||
'custom.sendToSession': '发送到该会话',
|
||
'custom.sent': '已发送到会话',
|
||
'custom.done': '已新建专属对话',
|
||
'custom.doneHint': 'AI 正在新会话中为你设计这个窗口。关闭本标签即可返回窗口选择。',
|
||
'custom.fail': '创建对话失败',
|
||
'custom.group': '分组(工作区)',
|
||
'custom.groupNone': '未分组',
|
||
'custom.groupNew': '+ 新建一个分组…',
|
||
'custom.groupNewParent': '分组父目录',
|
||
'custom.groupNewName': '新分组名',
|
||
'custom.groupNewParentPh': '例如 E:\\AI_Workspace\\DeepseekHarness',
|
||
'custom.groupNewNamePh': '例如 MyProject(将新建此文件夹并注册为分组)',
|
||
'custom.groupNeedPath': '请填写分组父目录和新分组名',
|
||
'bind.title': '绑定对话',
|
||
'bind.unbind': '解绑',
|
||
'bind.unbound': '未绑定对话',
|
||
'bind.titleUnbound': '绑定对话(未绑定 ○○):点击选择要跟随的对话',
|
||
'bind.titleBound': '已绑定对话(●●):点击更换或解绑',
|
||
'bind.tipUnbound': '未绑定对话:点击选择要跟随的对话',
|
||
'bind.tipDone': '(任务已完成,点击项目查看)',
|
||
'bind.tipBusy': '(对话正在处理任务…)',
|
||
'bind.tipNeed': '(需要你的决定,点击项目处理)',
|
||
'bind.folder': '项目文件夹',
|
||
'bind.folderChange': '更改',
|
||
'bind.folderNone': '未设置(建议设置:项目产出文件都会放进这里)',
|
||
'bind.tipBound': '已绑定对话:{name}',
|
||
'bind.clickPick': '点击选择对话',
|
||
'bind.hint': '打开项目时,右侧对话窗会自动切换到这个对话。',
|
||
'customLayout.add': '自定义',
|
||
'customLayout.addTitle': '自定义一个布局(生成提示词)',
|
||
'customLayout.title': '自定义布局',
|
||
'customLayout.placeholder': '描述你想要的布局,例如:右侧竖长对话窗,左侧上下两个一样大的窗…',
|
||
'customLayout.copy': '复制提示词到剪贴板',
|
||
'customLayout.copied': '提示词已复制到剪贴板。去任意一个 DSH 对话里粘贴发送,对方的 dsh 就知道要做什么了。',
|
||
'customLayout.copyFail': '复制失败,请手动全选输入框内容复制。',
|
||
'custom.autoBound': '已自动把这个项目绑定到这个对话(卡片上的 ●● 按钮可更换或解绑)。',
|
||
'custom.keptBinding': '该项目已有绑定的对话,按规则未自动更改。',
|
||
'console.name': '控制室',
|
||
'console.title': '控制室',
|
||
'console.themeLabel': '面板主题',
|
||
'console.cols': '每行',
|
||
'console.colsLabel': '每行显示项目数',
|
||
'console.shapeLabel': '卡片形状',
|
||
'console.bgLabel': '背景',
|
||
'console.bgPlain': '纯色背景',
|
||
'console.bgGlow': '流光背景',
|
||
'console.bgPhoto': '上传媒体',
|
||
'console.bgCustom': '自定义背景',
|
||
'console.bgEdit': '背景设置',
|
||
'console.bgEditPlain': '纯色背景设置',
|
||
'console.bgEditGlow': '流光背景设置',
|
||
'console.bgEditPhoto': '照片设置',
|
||
'console.bgEditBack': '返回',
|
||
'console.bgEditReset': '恢复初始',
|
||
'console.bgEditType': '点击或悬停输入数值',
|
||
'console.bgPhotoUse': '使用此照片',
|
||
'console.bgPhotoCurrent': '当前使用',
|
||
'console.bgPhotoNone': '还没有上传过照片',
|
||
'console.bgMediaDrag': '拖动调整顺序',
|
||
'console.bgPhotoDelete': '删除这条媒体',
|
||
'console.bgGridLabel': '网格背景',
|
||
'console.bgTipB': '贴片模糊程度',
|
||
'console.bgTipT': '网格线透明度',
|
||
'console.bgTipH': '色相',
|
||
'console.bgTipS': '饱和度',
|
||
'console.bgTipSpeed': '流光移动速度(0=完全不动,50=默认,100 最快 2×)',
|
||
'console.bgTipL': '明度',
|
||
'console.shapeSquare': '方形',
|
||
'console.shapeCircle': '圆形',
|
||
'console.themeDark': '深色',
|
||
'console.themeLight': '白色',
|
||
'console.themeSystem': '跟随系统',
|
||
'console.idle': '空闲',
|
||
'console.busy': '工作中',
|
||
'console.need': '待你决定',
|
||
'console.done': '已完成',
|
||
'console.kids': '子代理',
|
||
'console.noPreview': '暂无消息',
|
||
'console.unboundShort': '未绑定对话',
|
||
'console.jump': '跳转到绑定对话',
|
||
'console.empty': '还没有项目',
|
||
'console.joinExisting': '加入现有对话',
|
||
'console.newConv': '新建对话',
|
||
'console.groupNone': '无分组(用项目文件夹)',
|
||
'console.groupExisting': '加入现有分组',
|
||
'console.groupNew': '新建分组',
|
||
'console.chooseGroup': '选择分组…',
|
||
'console.blankNeedsGroup': '当前 DSH 的未分组空对话无法输入,请选择分组或加入现有对话。',
|
||
'console.newParentPh': '分组父目录,例如 E:\\AI_Workspace',
|
||
'console.newNamePh': '分组文件夹名(将创建并注册)',
|
||
'console.createBind': '新建并绑定',
|
||
'console.bindFail': '创建失败,请重试',
|
||
'console.noSessions': '没有可用对话',
|
||
'console.addProject': '添加项目',
|
||
'pane.wip': '开发中(后续版本接入)',
|
||
'pane.explorerNoCwd': '当前会话没有工作目录',
|
||
'pane.openLater': '该类型暂不支持预览',
|
||
'file.loading': '加载中…',
|
||
'file.fail': '文件读取失败',
|
||
'file.preview': '预览',
|
||
'file.edit': '编辑',
|
||
'file.save': '保存',
|
||
'file.saveFail': '保存失败',
|
||
'pane.gitNotRepo': '当前目录不是 git 仓库',
|
||
'pane.gitClean': '工作区干净',
|
||
'pane.jobsEmpty': '当前会话暂无后台任务',
|
||
'pane.termFail': '终端不可用(宿主缺少 node-pty/ws 或连接失败)',
|
||
'pane.closeTab': '关闭标签页',
|
||
'pane.collapse': '折叠窗格',
|
||
'annot.label': '标注:点击或拖动窗口中的位置提要求',
|
||
'annot.hint': '点击或拖动框选窗口中的任意位置,再输入你的要求;连续标注会依次追加到输入框',
|
||
'annot.placeholder': '对这里提要求…(Enter 确认,Shift+Enter 换行,Esc 取消)',
|
||
'annot.ok': '确认:注入对话框输入框(不发送)',
|
||
'annot.cancel': '取消',
|
||
'annot.updateTitle': '更新公告',
|
||
'annot.curVer': '当前版本',
|
||
'annot.checkNow': '检查更新',
|
||
'annot.checking': '检查中…',
|
||
'annot.autoCheck': '自动检查更新',
|
||
'annot.newVer': '发现新版本',
|
||
'annot.gotoRelease': '查看发布页',
|
||
'annot.skipVer': '忽略此版本',
|
||
'annot.latest': '已是最新版本',
|
||
'annot.checkFail': '检查失败,请稍后再试',
|
||
'annot.copyUpgrade': '复制升级指令',
|
||
'annot.copied': '已复制 ✓ 请在任意对话中发送',
|
||
'annot.howUpdate': '更新方法:点「复制升级指令」→ 粘贴给当前 AI 会话由它执行,完成后重启 DSH;或手动在终端运行升级命令。',
|
||
'pane.expand': '展开窗格',
|
||
'pane.jobsTitle': '后台任务',
|
||
'pane.subagents': '子代理',
|
||
'pane.subagentsEmpty': '当前会话暂无子代理',
|
||
'split.flip': '切换对话窗位置(左⇄右)',
|
||
'split.dragSwap': '拖动标题栏与其他窗交换位置',
|
||
'icons.title': '选择图标',
|
||
'icons.change': '更换图标',
|
||
'empty': '暂无项目',
|
||
'update.badgeTitle': '有新版本可用',
|
||
'update.available': '新版本可用',
|
||
'update.current': '当前版本',
|
||
'update.copyAi': '复制 AI 提示词',
|
||
'update.skip': '忽略此版本',
|
||
'update.autoCheck': '自动检查更新',
|
||
'update.checkNow': '立即检查',
|
||
'update.checkFail': '上次检查未成功',
|
||
'update.checking': '检查中…',
|
||
'update.upToDate': '已是最新版本',
|
||
'update.copied': '已复制',
|
||
'update.copyFail': '复制失败,请手动选择文本',
|
||
'update.skipDone': '已忽略此版本(下一版发布时再提醒)',
|
||
'update.upgradeHint': '执行命令后需重启 dsh web 并刷新页面',
|
||
'update.upgradeHintDesktop': '请使用桌面端自带 CLI;安装前完整退出,完成后手动重新打开桌面端',
|
||
} satisfies Record<string, string>
|
||
|
||
/** The worktable namespace key union. */
|
||
export type WorktableKey = keyof typeof zh
|
||
|
||
/** English dictionary, checked complete against the zh key set. */
|
||
export const en = {
|
||
'title': 'Worktable',
|
||
'rail.title': 'Worktable (expand sidebar to view)',
|
||
'handle.title': 'Drag to move · double-click to reset',
|
||
'handle.aria': 'Drag worktable position',
|
||
'menu.search': 'Search projects',
|
||
'menu.viewOptions': 'Settings',
|
||
'menu.add': 'Add project',
|
||
'search.placeholder': 'Search projects…',
|
||
'search.close': 'Close search',
|
||
'sort.label': 'Sort by',
|
||
'sort.manual': 'Manual',
|
||
'sort.recent': 'Recent',
|
||
'menu.manage': 'Manage projects…',
|
||
'add.guideTitle': 'Add a project',
|
||
'add.guideBody': 'Projects in the worktable are DSH plugins — a plugin joins by registering a worktable project card (protocol in the project PRD §5.3). Installed plugins that have not registered need to do so in their code.',
|
||
'add.market': 'Browse plugin marketplace',
|
||
'add.shortcutTitle': 'Local shortcut',
|
||
'add.shortcutDesc': 'Pin any URL into the worktable; opens in a new tab (stored locally only).',
|
||
'add.shortcutNamePh': 'Name',
|
||
'add.shortcutIcon': 'Icon (emoji, optional)',
|
||
'add.shortcutHref': 'URL (http/https)',
|
||
'add.shortcutAdd': 'Add',
|
||
'add.shortcutInvalid': 'Enter a name and a valid http/https URL',
|
||
'manage.title': 'Manage projects',
|
||
'manage.done': 'Done',
|
||
'manage.renamePh': 'Display name',
|
||
'manage.hide': 'Hide',
|
||
'manage.show': 'Show',
|
||
'manage.removed': 'Removed projects',
|
||
'manage.readd': 'Re-add',
|
||
'manage.deleteShortcut': 'Delete shortcut',
|
||
'shortcut.badge': 'Local',
|
||
'add.chooseLayout': 'Choose a layout',
|
||
'add.layoutNamePh': 'Layout name',
|
||
'add.folderParent': 'Project folder',
|
||
'add.folderPick': 'Choose…',
|
||
'add.folderNone': 'Not chosen (click Choose… to pick a folder in the explorer window)',
|
||
'add.folderRequired': 'Pick the project folder location first',
|
||
'add.folderPicking': 'Waiting for picker…',
|
||
'add.folderPickerHint': 'Waiting for the folder picker. If no window appears, check the taskbar or use “Manual”.',
|
||
'add.folderPickFail': 'Folder pick failed: {msg}',
|
||
'add.folderPickerUnavailable': 'System folder picker unavailable — paste the path via “Manual”',
|
||
'add.folderManual': 'Manual',
|
||
'add.folderManualPh': 'Paste an absolute folder path, Enter to confirm',
|
||
'add.folderManualOk': 'Use this path',
|
||
'add.folderManualEmpty': 'Enter an absolute folder path first',
|
||
'add.folderManualAbs': 'Absolute path required (e.g. C:\\Users\\me\\Projects or /home/me/projects)',
|
||
'add.folderCreateFail': 'Failed to create the project folder — check the path and retry',
|
||
'add.layoutSave': 'Enter workspace',
|
||
'add.layoutInvalid': 'Enter a layout name',
|
||
'manage.deleteLayout': 'Delete layout',
|
||
'manage.deleteProject': 'Delete project',
|
||
'manage.changeView': 'Change layout',
|
||
'viewPick.title': 'Pick a new layout (panes migrate automatically)',
|
||
'confirm.title': 'Delete project',
|
||
'confirm.cancel': 'Cancel',
|
||
'confirm.delete': 'Delete',
|
||
'confirm.layoutBody': 'Delete "{name}"? Its workspace and layout will be removed. This cannot be undone.',
|
||
'confirm.shortcutBody': 'Delete shortcut "{name}"? This cannot be undone.',
|
||
'confirm.projectBody': '"{name}" will be removed from the worktable permanently (the conversation and project files are kept).',
|
||
'pane.browser': 'Browser',
|
||
'pane.explorer': 'Explorer',
|
||
'pane.scm': 'Source control',
|
||
'pane.tasks': 'Tasks',
|
||
'pane.terminal': 'Terminal',
|
||
'pane.custom': 'Custom',
|
||
'pane.anim': 'Animation',
|
||
'pane.console': 'Console',
|
||
'pane.refresh': 'Refresh',
|
||
'pane.animUrlPh': 'Paste the animation site URL and press Enter',
|
||
'custom.title': 'Customize this pane',
|
||
'custom.hint': 'Sending will create a new conversation dedicated to designing this pane.',
|
||
'custom.placeholder': 'Tell the AI what you want this pane to do, e.g. a timeline page of my travels…',
|
||
'custom.project': 'Project',
|
||
'custom.modeNew': 'New conversation',
|
||
'custom.modeSend': 'Send to a conversation',
|
||
'custom.session': 'Conversation',
|
||
'custom.sessionCurrent': ' (current)',
|
||
'custom.hintSend': 'The content will be sent directly to the conversation you pick (current by default).',
|
||
'custom.send': 'Send & create conversation',
|
||
'custom.sendToSession': 'Send to this conversation',
|
||
'custom.sent': 'Sent to the conversation',
|
||
'custom.done': 'Conversation created',
|
||
'custom.doneHint': 'The AI is designing your pane in the new conversation. Close this tab to return to the pane picker.',
|
||
'custom.fail': 'Failed to create conversation',
|
||
'custom.group': 'Group (workspace)',
|
||
'custom.groupNone': 'Ungrouped',
|
||
'custom.groupNew': '+ Create a new group…',
|
||
'custom.groupNewParent': 'Group parent folder',
|
||
'custom.groupNewName': 'New group name',
|
||
'custom.groupNewParentPh': 'e.g. E:\\AI_Workspace\\DeepseekHarness',
|
||
'custom.groupNewNamePh': 'e.g. MyProject (folder will be created and registered)',
|
||
'custom.groupNeedPath': 'Fill in the parent folder and new group name',
|
||
'bind.title': 'Bind conversation',
|
||
'bind.unbind': 'Unbind',
|
||
'bind.unbound': 'No conversation bound',
|
||
'bind.titleUnbound': 'Bind conversation (unbound ○○): pick the conversation to follow',
|
||
'bind.titleBound': 'Conversation bound (●●): click to change or unbind',
|
||
'bind.tipUnbound': 'No conversation bound — click to pick one',
|
||
'bind.tipDone': ' (task completed — click the project to view)',
|
||
'bind.tipBusy': ' (conversation is working on the task…)',
|
||
'bind.tipNeed': ' (needs your decision — click the project to handle)',
|
||
'bind.folder': 'Project folder',
|
||
'bind.folderChange': 'Change',
|
||
'bind.folderNone': 'Not set (recommended: project outputs go here)',
|
||
'bind.tipBound': 'Bound to: {name}',
|
||
'bind.clickPick': 'click to pick',
|
||
'bind.hint': 'Opening the project switches the right chat pane to this conversation.',
|
||
'customLayout.add': 'Custom',
|
||
'customLayout.addTitle': 'Customize a layout (generate a prompt)',
|
||
'customLayout.title': 'Custom layout',
|
||
'customLayout.placeholder': 'Describe the layout you want, e.g. a tall chat column on the right and two equal panes stacked on the left…',
|
||
'customLayout.copy': 'Copy prompt to clipboard',
|
||
'customLayout.copied': 'Prompt copied to clipboard. Paste it into any DSH conversation and send — that dsh will know what to do.',
|
||
'customLayout.copyFail': 'Copy failed — select the text above and copy it manually.',
|
||
'custom.autoBound': 'This project was auto-bound to this conversation (use the ●● button on its card to change or unbind).',
|
||
'custom.keptBinding': 'This project already has a bound conversation, so it was not auto-changed.',
|
||
'console.name': 'Console',
|
||
'console.title': 'Console',
|
||
'console.themeLabel': 'Panel theme',
|
||
'console.cols': 'Per row',
|
||
'console.colsLabel': 'Projects per row',
|
||
'console.shapeLabel': 'Card shape',
|
||
'console.bgLabel': 'Background',
|
||
'console.bgPlain': 'Plain',
|
||
'console.bgGlow': 'Glow',
|
||
'console.bgPhoto': 'Upload media',
|
||
'console.bgCustom': 'Custom background',
|
||
'console.bgEdit': 'Background settings',
|
||
'console.bgEditPlain': 'Plain background',
|
||
'console.bgEditGlow': 'Glow background',
|
||
'console.bgEditPhoto': 'Photo setup',
|
||
'console.bgEditBack': 'Back',
|
||
'console.bgEditReset': 'Reset',
|
||
'console.bgEditType': 'Click or hover to type a value',
|
||
'console.bgPhotoUse': 'Use this photo',
|
||
'console.bgPhotoCurrent': 'In use',
|
||
'console.bgPhotoNone': 'No photos yet',
|
||
'console.bgMediaDrag': 'Drag to reorder',
|
||
'console.bgPhotoDelete': 'Delete this media',
|
||
'console.bgGridLabel': 'Background grid',
|
||
'console.bgTipB': 'Card blur',
|
||
'console.bgTipT': 'Grid opacity',
|
||
'console.bgTipH': 'Hue',
|
||
'console.bgTipS': 'Saturation',
|
||
'console.bgTipSpeed': 'Glow speed (0 = still, 50 = default, 100 = 2× fastest)',
|
||
'console.bgTipL': 'Lightness',
|
||
'console.shapeSquare': 'Square',
|
||
'console.shapeCircle': 'Circle',
|
||
'console.themeDark': 'Dark',
|
||
'console.themeLight': 'Light',
|
||
'console.themeSystem': 'System',
|
||
'console.idle': 'Idle',
|
||
'console.busy': 'Working',
|
||
'console.need': 'Needs you',
|
||
'console.done': 'Done',
|
||
'console.kids': 'subagents',
|
||
'console.noPreview': 'No messages yet',
|
||
'console.unboundShort': 'No conversation bound',
|
||
'console.jump': 'Jump to bound conversation',
|
||
'console.empty': 'No projects yet',
|
||
'console.joinExisting': 'Join existing conversation',
|
||
'console.newConv': 'New conversation',
|
||
'console.groupNone': 'No group (use project folder)',
|
||
'console.groupExisting': 'Join existing group',
|
||
'console.groupNew': 'New group',
|
||
'console.chooseGroup': 'Choose a group…',
|
||
'console.blankNeedsGroup': 'Blank ungrouped chats cannot accept input in this DSH. Choose a group or join an existing chat.',
|
||
'console.newParentPh': 'Group parent folder, e.g. E:\\AI_Workspace',
|
||
'console.newNamePh': 'Group folder name (created & registered)',
|
||
'console.createBind': 'Create & bind',
|
||
'console.bindFail': 'Creation failed, try again',
|
||
'console.noSessions': 'No sessions available',
|
||
'console.addProject': 'Add project',
|
||
'pane.wip': 'Coming in a later version',
|
||
'pane.explorerNoCwd': 'No working directory for the current session',
|
||
'pane.openLater': 'Preview not supported for this type',
|
||
'file.loading': 'Loading…',
|
||
'file.fail': 'Failed to read file',
|
||
'file.preview': 'Preview',
|
||
'file.edit': 'Edit',
|
||
'file.save': 'Save',
|
||
'file.saveFail': 'Save failed',
|
||
'pane.gitNotRepo': 'Not a git repository',
|
||
'pane.gitClean': 'Working tree clean',
|
||
'pane.jobsEmpty': 'No background jobs in the current session',
|
||
'pane.termFail': 'Terminal unavailable (host missing node-pty/ws, or connection failed)',
|
||
'pane.closeTab': 'Close tab',
|
||
'pane.collapse': 'Collapse pane',
|
||
'annot.label': 'Annotate: click or drag a spot in the window',
|
||
'annot.hint': 'Click or drag to select a spot in any window, then type your request; consecutive annotations append to the input.',
|
||
'annot.placeholder': 'Describe what to change here… (Enter to confirm, Shift+Enter newline, Esc cancel)',
|
||
'annot.ok': 'Confirm: put into chat input (not sent)',
|
||
'annot.cancel': 'Cancel',
|
||
'annot.updateTitle': 'Changelog',
|
||
'annot.curVer': 'Current version',
|
||
'annot.checkNow': 'Check now',
|
||
'annot.checking': 'Checking…',
|
||
'annot.autoCheck': 'Auto check',
|
||
'annot.newVer': 'New version',
|
||
'annot.gotoRelease': 'View release',
|
||
'annot.skipVer': 'Ignore this version',
|
||
'annot.latest': 'Up to date',
|
||
'annot.checkFail': 'Check failed — try again later',
|
||
'annot.copyUpgrade': 'Copy upgrade command',
|
||
'annot.copied': 'Copied ✓ paste it in any conversation',
|
||
'annot.howUpdate': 'How to update: click “Copy upgrade command” and paste it to your AI session to run, then restart DSH; or run the upgrade command in a terminal manually.',
|
||
'pane.expand': 'Expand pane',
|
||
'pane.jobsTitle': 'Background jobs',
|
||
'pane.subagents': 'Subagents',
|
||
'pane.subagentsEmpty': 'No subagents in the current session',
|
||
'split.flip': 'Flip chat side (left ⇄ right)',
|
||
'split.dragSwap': 'Drag the title bar to swap panes',
|
||
'icons.title': 'Pick an icon',
|
||
'icons.change': 'Change icon',
|
||
'empty': 'No projects yet',
|
||
'update.badgeTitle': 'New version available',
|
||
'update.available': 'New version available',
|
||
'update.current': 'Current version',
|
||
'update.copyAi': 'Copy AI prompt',
|
||
'update.skip': 'Skip this version',
|
||
'update.autoCheck': 'Auto-check updates',
|
||
'update.checkNow': 'Check now',
|
||
'update.checkFail': 'Last check failed',
|
||
'update.checking': 'Checking…',
|
||
'update.upToDate': 'Up to date',
|
||
'update.copied': 'Copied',
|
||
'update.copyFail': 'Copy failed — select the text manually',
|
||
'update.skipDone': 'Skipped (will remind on the next release)',
|
||
'update.upgradeHint': 'Run the command, then restart dsh web and refresh',
|
||
'update.upgradeHintDesktop': 'Use the Desktop bundled CLI; fully quit before installing, then reopen Desktop manually',
|
||
} satisfies Record<WorktableKey, string>
|
||
|
||
/** Locale namespace id registered under ctx.locale. */
|
||
export const NS = 'worktable'
|
||
|
||
declare module '@deepseek-ai/dsh-client-ui-slots' {
|
||
interface LocaleNamespaceMap {
|
||
/** The worktable sidebar copy. */
|
||
[NS]: WorktableKey
|
||
}
|
||
}
|