304 lines
13 KiB
TypeScript
304 lines
13 KiB
TypeScript
export const dashboardZhCn = {
|
||
processing: '处理中...',
|
||
executingWith: (action: string) => `执行中:${action}`,
|
||
executing: 'Nanobot 正在执行工具...',
|
||
thinkingWith: (action: string) => `思考中:${action}`,
|
||
thinking: 'Nanobot 正在思考中...',
|
||
fileReadFail: '文件读取失败。',
|
||
workspaceLoadFail: '无法读取 workspace 目录。',
|
||
channelSaved: '渠道配置已保存(重启 Bot 后生效)。',
|
||
channelSaveFail: '渠道保存失败。',
|
||
channelAddFail: '新增渠道失败。',
|
||
channelDeleted: '渠道已删除。',
|
||
channelDeleteConfirm: (channelType: string) => `确认删除渠道 ${channelType}?`,
|
||
channelDeleteFail: '删除渠道失败。',
|
||
stopFail: '停止失败,请查看后端日志。',
|
||
startFail: '启动失败,请查看后端日志。',
|
||
backendDeliverFail: '后端未成功投递指令。',
|
||
sendFail: '发送失败。',
|
||
uploadFile: '上传文件',
|
||
uploadingFile: '上传中...',
|
||
uploadFail: '文件上传失败。',
|
||
attachmentAdded: (count: number) => `已添加 ${count} 个附件。`,
|
||
uploadTooLarge: (files: string, limitMb: number) => `以下文件超过上传上限 ${limitMb}MB:${files}`,
|
||
uploadTypeNotAllowed: (files: string, allowed: string) => `以下文件类型不允许上传:${files}。允许的后缀:${allowed}`,
|
||
attachmentMessage: '[附件消息]',
|
||
removeAttachment: '移除附件',
|
||
copyPrompt: '复制指令',
|
||
editPrompt: '编辑指令',
|
||
copyPromptDone: '指令已复制。',
|
||
copyPromptFail: '复制指令失败。',
|
||
editPromptDone: '已填入输入框。',
|
||
voiceInput: '语音输入',
|
||
textInput: '文字输入',
|
||
voiceUnavailable: '语音识别未启用。',
|
||
voiceUnsupported: '当前浏览器不支持录音。',
|
||
voicePermissionDenied: '麦克风权限被拒绝,请在浏览器设置中允许访问。',
|
||
voiceRecordFail: '录音失败,请重试。',
|
||
voiceReady: '点击麦克风开始录音',
|
||
voiceRecording: '录音中...',
|
||
voiceTranscribing: '语音识别中...',
|
||
voiceStart: '开始录音',
|
||
voiceStop: '停止录音',
|
||
voiceTranscribeDone: '语音已转为文本。',
|
||
voiceTranscribeEmpty: '未识别到有效语音内容。',
|
||
voiceTranscribeFail: '语音识别失败。',
|
||
copyReply: '复制回复',
|
||
copyReplyDone: '回复已复制。',
|
||
copyReplyFail: '复制回复失败。',
|
||
deleteMessage: '删除消息',
|
||
deleteMessageConfirm: (role: string) => `确认删除这条${role}消息?`,
|
||
deleteMessageDone: '消息已删除。',
|
||
deleteMessageFail: '删除消息失败。',
|
||
deleteMessagePending: '消息尚未同步,暂不可删除。',
|
||
quoteReply: '引用回复',
|
||
quotedReplyLabel: '已引用回复',
|
||
clearQuote: '取消引用',
|
||
quoteOnlyMessage: '[引用回复]',
|
||
stagedSubmissionEmpty: '仅包含附件或引用内容',
|
||
stagedSubmissionRestore: '编辑',
|
||
stagedSubmissionRemove: '移除',
|
||
stagedSubmissionQueued: '已加入暂存队列,前序任务结束后会自动提交。',
|
||
stagedSubmissionRestored: '暂存内容已恢复到输入框。',
|
||
stagedSubmissionAttachmentCount: (count: number) => `附件 ${count}`,
|
||
goodReply: '好回复',
|
||
badReply: '坏回复',
|
||
feedbackUpSaved: '已标记为好回复。',
|
||
feedbackDownSaved: '已标记为坏回复。',
|
||
feedbackCleared: '反馈已取消。',
|
||
feedbackSaveFail: '反馈保存失败。',
|
||
feedbackMessagePending: '消息尚未同步,暂不可反馈。',
|
||
sendFailMsg: (msg: string) => `指令发送失败:${msg}`,
|
||
providerRequired: '请填写 Provider、模型和 API Key 后再测试。',
|
||
connOk: (preview: string) => (preview ? `连接成功,模型: ${preview}` : '连接成功'),
|
||
connFail: (msg: string) => `连接失败: ${msg}`,
|
||
configUpdated: '配置已更新(重启 Bot 后生效)。',
|
||
saveFail: '保存失败。',
|
||
deleteBotConfirm: (id: string) => `确认删除 Bot ${id}?将删除对应 workspace。`,
|
||
deleteBotDone: 'Bot 与 workspace 已删除。',
|
||
deleteFail: '删除失败。',
|
||
titleBots: 'Bot 列表',
|
||
botSearchPlaceholder: '按 Bot 名称或 ID 搜索',
|
||
botSearchNoResult: '没有匹配的 Bot。',
|
||
workspaceSearchPlaceholder: '按文件名或路径搜索',
|
||
workspaceSearchNoResult: '没有匹配的文件或目录。',
|
||
searchAction: '搜索',
|
||
clearSearch: '清除搜索',
|
||
syncingPageSize: '正在同步分页设置...',
|
||
paginationPrev: '上一页',
|
||
paginationNext: '下一页',
|
||
paginationPage: (current: number, total: number) => `${current} / ${total}`,
|
||
newBot: '新建机器人',
|
||
manageImages: '镜像管理',
|
||
extensions: '扩展菜单',
|
||
templateManager: '模板管理',
|
||
templateManagerTitle: '模板管理',
|
||
templateTabAgent: '代理模板',
|
||
templateTabTopic: '主题预设模板',
|
||
templateAgentFile: '代理模板(5 个 MD)',
|
||
templateTopicFile: '主题预设模板(3 项)',
|
||
templateJsonHint: '请编辑 JSON 内容,保存后新建配置将读取最新模板。',
|
||
templateLoadFail: '读取模板失败。',
|
||
templateSaveFail: '保存模板失败。',
|
||
templateSaved: '模板已保存。',
|
||
batchStart: '批量启动',
|
||
batchStop: '批量停止',
|
||
batchStartNone: '当前没有可批量启动的 Bot。',
|
||
batchStopNone: '当前没有可批量停止的 Bot。',
|
||
batchStartConfirm: (count: number) => `确认批量启动 ${count} 个 Bot?`,
|
||
batchStopConfirm: (count: number) => `确认批量停止 ${count} 个 Bot?`,
|
||
batchStartDone: (ok: number, fail: number) => `批量启动完成:成功 ${ok},失败 ${fail}`,
|
||
batchStopDone: (ok: number, fail: number) => `批量停止完成:成功 ${ok},失败 ${fail}`,
|
||
templateAgentInvalid: '代理模板格式错误。',
|
||
templateTopicInvalid: '主题模板格式错误。',
|
||
templateParseFail: '模板 JSON 解析失败。',
|
||
image: '镜像',
|
||
disabled: '已禁用',
|
||
stop: '停止',
|
||
start: '启动',
|
||
enable: '启用',
|
||
disable: '禁用',
|
||
disableConfirm: (id: string) => `确认禁用 Bot ${id}?禁用后将立即停止且不可操作。`,
|
||
enableDone: 'Bot 已启用。',
|
||
disableDone: 'Bot 已禁用并停止。',
|
||
enableFail: '启用失败,请查看后端日志。',
|
||
disableFail: '禁用失败,请查看后端日志。',
|
||
restart: '重启 Bot',
|
||
restartConfirm: (id: string) => `确认重启 Bot ${id}?`,
|
||
restartFail: '重启失败,请查看后端日志。',
|
||
delete: '删除',
|
||
noConversation: '暂无对话消息。请先发送指令,Bot 回复会在这里按标准会话格式展示。',
|
||
clearHistory: '清空对话',
|
||
clearHistoryConfirm: (name: string) => `确认清空 ${name} 的面板对话历史?`,
|
||
clearHistoryDone: '对话历史已清空。',
|
||
clearHistoryFail: '清空对话历史失败。',
|
||
exportHistory: '导出对话',
|
||
exportHistoryFail: '导出对话失败。',
|
||
you: '你',
|
||
user: '用户',
|
||
inputPlaceholder: '输入指令后回车发送(Shift+Enter 换行)',
|
||
disabledPlaceholder: 'Bot 未运行,无法发送指令。',
|
||
controlCommands: '控制命令',
|
||
controlCommandsDesc: '发送 nanobot 内建 slash 指令',
|
||
controlCommandNew: '新会话',
|
||
controlCommandStop: '停止任务',
|
||
controlCommandRestart: '重启进程',
|
||
controlCommandHelp: '查看命令',
|
||
controlCommandsShow: '展开控制命令',
|
||
controlCommandsHide: '收起控制命令',
|
||
controlCommandSent: (command: string) => `已发送控制命令 ${command}。`,
|
||
sending: '发送中...',
|
||
send: '发送',
|
||
interrupt: '中断',
|
||
interruptSent: '已发送中断指令。',
|
||
botStarting: 'Bot 正在启动中...',
|
||
botStopping: 'Bot 正在停止中...',
|
||
botDisabledHint: 'Bot 已禁用,请先启用后再进行操作。',
|
||
chatDisabled: 'Bot 已停止,对话区已禁用。',
|
||
selectBot: '请选择 Bot 查看详情',
|
||
runtime: '运行状态',
|
||
base: '基础',
|
||
params: '模型',
|
||
channels: '渠道',
|
||
topic: '主题',
|
||
topicPanel: '主题管理',
|
||
topicPanelDesc: '管理该 Bot 的主题路由目标。仅启用的主题会接收投递;未配置主题时不投递。',
|
||
topicActive: '启用',
|
||
topicName: '主题名称',
|
||
topicDescription: '主题描述',
|
||
topicPurpose: '用途(purpose)',
|
||
topicIncludeWhen: '命中条件(include_when)',
|
||
topicExcludeWhen: '排除条件(exclude_when)',
|
||
topicExamplesPositive: '正例(examples.positive)',
|
||
topicExamplesNegative: '反例(examples.negative)',
|
||
topicPriority: '优先级(priority)',
|
||
topicListHint: '每行一条规则或示例',
|
||
topicFilterProgress: '过滤 progress 系统消息',
|
||
topicFilterToolHint: '过滤 tool-hint 系统消息',
|
||
topicSystemFilterHint: '建议保持开启,避免 feed 被过程噪声污染。',
|
||
topicEmpty: '暂无主题。',
|
||
topicAdd: '新增主题',
|
||
topicAddHint: '主题 Key 仅支持小写字母、数字、点、下划线和连字符。',
|
||
topicKey: '主题 Key',
|
||
topicKeyPlaceholder: '例如 finance_market',
|
||
topicKeyRequired: '请先填写主题 Key。',
|
||
topicSaved: '主题配置已保存。',
|
||
topicSaveFail: '主题配置保存失败。',
|
||
topicDeleted: '主题已删除。',
|
||
topicDeleteFail: '主题删除失败。',
|
||
topicDeleteConfirm: (topicKey: string) => `确认删除主题 ${topicKey}?`,
|
||
topicPresetPolitics: '预设:时政新闻',
|
||
topicPresetFinance: '预设:财经信息',
|
||
topicPresetTech: '预设:技术资讯',
|
||
topicPresetBlank: '空白主题',
|
||
topicPresetPoliticsApplied: '已填入“时政新闻”主题预设。',
|
||
topicPresetFinanceApplied: '已填入“财经信息”主题预设。',
|
||
topicPresetTechApplied: '已填入“技术资讯”主题预设。',
|
||
skills: '技能',
|
||
mcp: 'MCP',
|
||
tools: '工具',
|
||
skillsPanel: '技能面板',
|
||
skillsEmpty: '暂无技能。',
|
||
addSkill: '新增技能',
|
||
removeSkill: '移除技能',
|
||
uploadZipSkill: '上传 ZIP 技能包',
|
||
zipOnlyHint: '仅支持 .zip 文件',
|
||
invalidZipFile: '只能上传 .zip 文件',
|
||
envParams: '环境变量',
|
||
envParamsDesc: '配置该 Bot 的运行时环境变量(容器级)。',
|
||
noEnvParams: '暂无环境变量。',
|
||
envKey: '变量名(如 BRAVE_API_KEY)',
|
||
envValue: '变量值',
|
||
showEnvValue: '显示变量值',
|
||
hideEnvValue: '隐藏变量值',
|
||
addEnvParam: '新增环境变量',
|
||
removeEnvParam: '移除环境变量',
|
||
envParamsSaved: '环境变量已保存。',
|
||
envParamsSaveFail: '环境变量保存失败。',
|
||
envParamsHint: '修改后需重启 Bot 才会生效。',
|
||
mcpPanel: 'MCP 配置',
|
||
mcpPanelDesc: '配置该 Bot 的 MCP Servers(HTTP/SSE)。建议每个 Bot 使用独立的 X-Bot-Id / X-Bot-Secret。',
|
||
mcpEmpty: '暂无 MCP Server。',
|
||
mcpServer: 'MCP Server',
|
||
mcpName: '服务名称',
|
||
mcpNamePlaceholder: '如 biz_mcp',
|
||
mcpType: '传输类型',
|
||
mcpUrlPlaceholder: '如 http://mcp.internal:9001/mcp',
|
||
mcpBotIdPlaceholder: '如 mula_bot_b02',
|
||
mcpBotSecretPlaceholder: '输入该 Bot 对应的密钥',
|
||
mcpToolTimeout: 'Tool Timeout(秒)',
|
||
mcpDraftRequired: '请先填写 MCP 服务名称和 URL。',
|
||
mcpDraftAdded: '已加入 MCP 列表,记得保存配置。',
|
||
addMcpServer: '新增 MCP Server',
|
||
saveMcpConfig: '保存 MCP 配置',
|
||
mcpSaved: 'MCP 配置已保存。',
|
||
mcpSaveFail: 'MCP 配置保存失败。',
|
||
mcpHint: '保存后需重启 Bot 才会生效。',
|
||
toolsLoadFail: '读取工具技能失败。',
|
||
toolsAddFail: '新增工具失败。',
|
||
toolsRemoveFail: '移除工具失败。',
|
||
toolsRemoveConfirm: (name: string) => `确认移除技能 ${name}?该操作不可撤销。`,
|
||
agent: '代理',
|
||
container: '容器状态',
|
||
current: '当前状态',
|
||
lastAction: '最后动作',
|
||
workspaceOutputs: '工作区',
|
||
autoRefresh: '自动刷新',
|
||
loadingDir: '读取目录中...',
|
||
emptyDir: '当前目录为空。',
|
||
openingPreview: '正在打开文件预览...',
|
||
workspaceHint: '点击目录进入;点击 .md/.json 文件弹出预览。',
|
||
noPreviewFile: '本目录没有可预览文件。',
|
||
noTelemetry: '暂无可展示信息',
|
||
goUpTitle: '点击返回上级目录',
|
||
goUp: '返回上级',
|
||
openFolderTitle: '点击进入目录',
|
||
folder: '目录',
|
||
previewTitle: '点击打开预览',
|
||
fileNotPreviewable: '该文件类型不可预览',
|
||
baseConfig: '基础配置',
|
||
accessPassword: '访问密码',
|
||
accessPasswordPlaceholder: '留空表示不设置访问密码',
|
||
botIdReadonly: 'Bot ID(只读)',
|
||
botName: 'Bot 名称',
|
||
botNamePlaceholder: '输入 Bot 名称',
|
||
baseImageReadonly: '基础镜像',
|
||
modelName: '模型名称',
|
||
modelNamePlaceholder: '如 qwen-plus',
|
||
newApiKey: 'API Key',
|
||
newApiKeyPlaceholder: '请输入 API Key',
|
||
testing: '测试中...',
|
||
testModelConnection: '测试模型连接',
|
||
cancel: '取消',
|
||
save: '保存',
|
||
modelParams: '模型',
|
||
saveParams: '保存参数',
|
||
agentFiles: '代理文件配置',
|
||
saveFiles: '保存文件',
|
||
filePreview: '文件预览',
|
||
editFile: '编辑 Markdown',
|
||
previewMode: '预览模式',
|
||
fileTruncated: '文件较大,当前内容为截断预览。',
|
||
fileEditDisabled: '当前为截断预览,不能直接编辑保存。',
|
||
fileSaved: 'Markdown 已保存。',
|
||
fileSaveFail: 'Markdown 保存失败。',
|
||
download: '下载',
|
||
copyAddress: '复制地址',
|
||
urlCopied: '地址已复制。',
|
||
urlCopyFail: '复制地址失败。',
|
||
close: '关闭',
|
||
cronViewer: '定时任务',
|
||
cronReload: '刷新任务',
|
||
cronLoading: '读取任务中...',
|
||
cronEmpty: '暂无定时任务。',
|
||
cronEnabled: '启用',
|
||
cronDisabled: '已停用',
|
||
cronStart: '启用任务',
|
||
cronStop: '停止任务',
|
||
cronDelete: '删除任务',
|
||
cronStartFail: '启用任务失败。',
|
||
cronStopFail: '停止任务失败。',
|
||
cronDeleteFail: '删除任务失败。',
|
||
cronDeleteConfirm: (id: string) => `确认删除任务 ${id}?`,
|
||
};
|