feat(ui): add locales and split catalogs
Adds Spanish, French, Russian, Japanese, and Simplified Chinese catalogs and wires supported locales into the i18n layer.
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
export const advancedSettingsMessages = {
|
||||
"advancedSettings.title": "高级设置",
|
||||
"advancedSettings.environmentVariables.title": "环境变量",
|
||||
"advancedSettings.environmentVariables.subtitle": "每当启动新的 OpenCode 实例时应用",
|
||||
"advancedSettings.actions.close": "关闭",
|
||||
} as const
|
||||
29
packages/ui/src/lib/i18n/messages/zh-Hans/app.ts
Normal file
29
packages/ui/src/lib/i18n/messages/zh-Hans/app.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
export const appMessages = {
|
||||
"app.launchError.title": "无法启动 OpenCode",
|
||||
"app.launchError.description": "我们无法启动所选的 OpenCode 可执行文件。请查看下面的错误输出,或在“高级设置”中选择其他可执行文件。",
|
||||
"app.launchError.binaryPathLabel": "可执行文件路径",
|
||||
"app.launchError.errorOutputLabel": "错误输出",
|
||||
"app.launchError.openAdvancedSettings": "打开高级设置",
|
||||
"app.launchError.close": "关闭",
|
||||
"app.launchError.closeTitle": "关闭 (Esc)",
|
||||
"app.launchError.fallbackMessage": "启动工作区失败",
|
||||
|
||||
"app.stopInstance.confirmMessage": "停止 OpenCode 实例?这将停止服务器。",
|
||||
"app.stopInstance.title": "停止实例",
|
||||
"app.stopInstance.confirmLabel": "停止",
|
||||
"app.stopInstance.cancelLabel": "继续运行",
|
||||
|
||||
"emptyState.logoAlt": "CodeNomad 徽标",
|
||||
"emptyState.brandTitle": "CodeNomad",
|
||||
"emptyState.tagline": "选择文件夹,开始与 AI 一起编码",
|
||||
"emptyState.actions.selectFolder": "选择文件夹",
|
||||
"emptyState.actions.selecting": "正在选择...",
|
||||
"emptyState.keyboardShortcut": "键盘快捷键:{shortcut}",
|
||||
"emptyState.examples": "示例:{example}",
|
||||
"emptyState.multipleInstances": "同一个文件夹可以同时打开多个实例",
|
||||
|
||||
"releases.upgradeRequired.title": "需要升级",
|
||||
"releases.upgradeRequired.message.withVersion": "更新到 CodeNomad {version} 以使用最新的 UI。",
|
||||
"releases.upgradeRequired.message.noVersion": "更新 CodeNomad 以使用最新的 UI。",
|
||||
"releases.upgradeRequired.action.getUpdate": "获取更新",
|
||||
} as const
|
||||
160
packages/ui/src/lib/i18n/messages/zh-Hans/commands.ts
Normal file
160
packages/ui/src/lib/i18n/messages/zh-Hans/commands.ts
Normal file
@@ -0,0 +1,160 @@
|
||||
export const commandMessages = {
|
||||
"commandPalette.title": "命令面板",
|
||||
"commandPalette.description": "搜索并执行命令",
|
||||
"commandPalette.searchPlaceholder": "输入命令或搜索...",
|
||||
"commandPalette.empty": "未找到与 \"{query}\" 匹配的命令",
|
||||
"commandPalette.category.customCommands": "自定义命令",
|
||||
"commandPalette.category.instance": "实例",
|
||||
"commandPalette.category.session": "会话",
|
||||
"commandPalette.category.agentModel": "智能体与模型",
|
||||
"commandPalette.category.inputFocus": "输入与焦点",
|
||||
"commandPalette.category.system": "系统",
|
||||
"commandPalette.category.other": "其他",
|
||||
|
||||
"commands.newInstance.label": "新建实例",
|
||||
"commands.newInstance.description": "打开文件夹选择器以创建新实例",
|
||||
"commands.newInstance.keywords": "folder, project, workspace, 文件夹, 项目, 工作区",
|
||||
|
||||
"commands.closeInstance.label": "关闭实例",
|
||||
"commands.closeInstance.description": "停止当前实例的服务器",
|
||||
"commands.closeInstance.keywords": "stop, quit, close, 停止, 退出, 关闭",
|
||||
|
||||
"commands.nextInstance.label": "下一个实例",
|
||||
"commands.nextInstance.description": "切换到下一个实例标签页",
|
||||
"commands.nextInstance.keywords": "switch, navigate, 切换, 导航",
|
||||
|
||||
"commands.previousInstance.label": "上一个实例",
|
||||
"commands.previousInstance.description": "切换到上一个实例标签页",
|
||||
"commands.previousInstance.keywords": "switch, navigate, 切换, 导航",
|
||||
|
||||
"commands.newSession.label": "新建会话",
|
||||
"commands.newSession.description": "创建新的父会话",
|
||||
"commands.newSession.keywords": "create, start, 创建, 开始",
|
||||
|
||||
"commands.closeSession.label": "关闭会话",
|
||||
"commands.closeSession.description": "关闭当前父会话",
|
||||
"commands.closeSession.keywords": "close, stop, 关闭, 停止",
|
||||
|
||||
"commands.scrubSessions.label": "清理会话",
|
||||
"commands.scrubSessions.description": "移除空会话、已完成主任务的子智能体会话,以及多余的分叉会话。",
|
||||
"commands.scrubSessions.keywords": "cleanup, blank, empty, sessions, remove, delete, scrub, 清理, 空白, 会话, 删除, 整理",
|
||||
|
||||
"commands.instanceInfo.label": "实例信息",
|
||||
"commands.instanceInfo.description": "打开实例概览以查看日志和状态",
|
||||
"commands.instanceInfo.keywords": "info, logs, console, output, 信息, 日志, 控制台, 输出",
|
||||
|
||||
"commands.nextSession.label": "下一个会话",
|
||||
"commands.nextSession.description": "切换到下一个会话标签页",
|
||||
"commands.nextSession.keywords": "switch, navigate, 切换, 导航",
|
||||
|
||||
"commands.previousSession.label": "上一个会话",
|
||||
"commands.previousSession.description": "切换到上一个会话标签页",
|
||||
"commands.previousSession.keywords": "switch, navigate, 切换, 导航",
|
||||
|
||||
"commands.compactSession.label": "压缩会话",
|
||||
"commands.compactSession.description": "总结并压缩当前会话",
|
||||
"commands.compactSession.keywords": "summarize, compress, 总结, 压缩",
|
||||
"commands.compactSession.errorFallback": "压缩会话失败",
|
||||
"commands.compactSession.alert.title": "压缩失败",
|
||||
"commands.compactSession.alert.message": "压缩失败:{message}",
|
||||
|
||||
"commands.undoLastMessage.label": "撤销上一条消息",
|
||||
"commands.undoLastMessage.description": "回退上一条消息",
|
||||
"commands.undoLastMessage.keywords": "revert, undo, 回退, 撤销",
|
||||
"commands.undoLastMessage.none.title": "没有可撤销的操作",
|
||||
"commands.undoLastMessage.none.message": "没有可撤销的内容",
|
||||
"commands.undoLastMessage.failed.title": "撤销失败",
|
||||
"commands.undoLastMessage.failed.message": "回退消息失败",
|
||||
|
||||
"commands.openModelSelector.label": "打开模型选择器",
|
||||
"commands.openModelSelector.description": "选择其他模型",
|
||||
"commands.openModelSelector.keywords": "model, llm, ai, 模型",
|
||||
|
||||
"commands.selectModelVariant.label": "选择模型变体",
|
||||
"commands.selectModelVariant.description": "为当前模型选择思考强度",
|
||||
"commands.selectModelVariant.keywords": "variant, thinking, reasoning, effort, 变体, 思考, 推理, 强度",
|
||||
|
||||
"commands.openAgentSelector.label": "打开智能体选择器",
|
||||
"commands.openAgentSelector.description": "选择其他智能体",
|
||||
"commands.openAgentSelector.keywords": "agent, mode, 智能体, 模式",
|
||||
|
||||
"commands.clearInput.label": "清空输入",
|
||||
"commands.clearInput.description": "清空 prompt 输入框",
|
||||
"commands.clearInput.keywords": "clear, reset, 清空, 重置",
|
||||
|
||||
"commands.thinkingBlocks.label.show": "显示思考块",
|
||||
"commands.thinkingBlocks.label.hide": "隐藏思考块",
|
||||
"commands.thinkingBlocks.description": "显示/隐藏 AI 思考过程",
|
||||
"commands.thinkingBlocks.keywords": "thinking, reasoning, toggle, show, hide, 思考, 推理, 切换, 显示, 隐藏",
|
||||
|
||||
"commands.timelineToolCalls.label.show": "显示时间轴工具调用",
|
||||
"commands.timelineToolCalls.label.hide": "隐藏时间轴工具调用",
|
||||
"commands.timelineToolCalls.description": "切换消息时间轴中的工具调用条目",
|
||||
"commands.timelineToolCalls.keywords": "timeline, tool, toggle, 时间轴, 工具, 切换",
|
||||
|
||||
"commands.common.expanded": "展开",
|
||||
"commands.common.collapsed": "折叠",
|
||||
"commands.common.visible": "可见",
|
||||
"commands.common.hidden": "隐藏",
|
||||
"commands.common.enabled": "启用",
|
||||
"commands.common.disabled": "禁用",
|
||||
|
||||
"commands.thinkingBlocksDefault.label": "思考块默认 · {state}",
|
||||
"commands.thinkingBlocksDefault.description": "切换思考块是否默认展开",
|
||||
"commands.thinkingBlocksDefault.keywords": "thinking, reasoning, expand, collapse, default, 思考, 推理, 展开, 折叠, 默认",
|
||||
|
||||
"commands.diffViewSplit.label": "使用分栏 Diff 视图",
|
||||
"commands.diffViewSplit.description": "并排显示工具调用的 diff",
|
||||
"commands.diffViewSplit.keywords": "diff, split, view, 差异, 分栏, 视图",
|
||||
|
||||
"commands.diffViewUnified.label": "使用统一 Diff 视图",
|
||||
"commands.diffViewUnified.description": "以内联方式显示工具调用的 diff",
|
||||
"commands.diffViewUnified.keywords": "diff, unified, view, 差异, 统一, 视图",
|
||||
|
||||
"commands.toolOutputsDefault.label": "工具输出默认 · {state}",
|
||||
"commands.toolOutputsDefault.description": "切换工具输出是否默认展开",
|
||||
"commands.toolOutputsDefault.keywords": "tool, output, expand, collapse, 工具, 输出, 展开, 折叠",
|
||||
|
||||
"commands.diagnosticsDefault.label": "诊断默认 · {state}",
|
||||
"commands.diagnosticsDefault.description": "切换诊断输出是否默认展开",
|
||||
"commands.diagnosticsDefault.keywords": "diagnostics, expand, collapse, 诊断, 展开, 折叠",
|
||||
|
||||
"commands.tokenUsageDisplay.label": "Token 使用显示 · {state}",
|
||||
"commands.tokenUsageDisplay.description": "显示或隐藏助手消息的 token 和费用统计",
|
||||
"commands.tokenUsageDisplay.keywords": "token, usage, cost, stats, 令牌, 用量, 费用, 统计",
|
||||
|
||||
"commands.autoCleanupBlankSessions.label": "自动清理空白会话 · {state}",
|
||||
"commands.autoCleanupBlankSessions.description": "在创建新会话时自动清理空白会话",
|
||||
"commands.autoCleanupBlankSessions.keywords": "auto, cleanup, blank, sessions, toggle, 自动, 清理, 空白, 会话, 切换",
|
||||
|
||||
"commands.showHelp.label": "显示帮助",
|
||||
"commands.showHelp.description": "显示键盘快捷键与帮助",
|
||||
"commands.showHelp.keywords": "shortcuts, help, 快捷键, 帮助",
|
||||
|
||||
"commands.custom.argumentsPrompt.message": "/{name} 的参数",
|
||||
"commands.custom.argumentsPrompt.title": "自定义命令",
|
||||
"commands.custom.argumentsPrompt.inputLabel": "参数",
|
||||
"commands.custom.argumentsPrompt.inputPlaceholder": "例如 foo bar",
|
||||
"commands.custom.argumentsPrompt.confirmLabel": "运行",
|
||||
"commands.custom.argumentsPrompt.cancelLabel": "取消",
|
||||
"commands.custom.argumentsPrompt.openFailed.message": "无法打开参数输入框。",
|
||||
"commands.custom.argumentsPrompt.openFailed.title": "命令参数",
|
||||
"commands.custom.entries.descriptionFallback": "自定义命令",
|
||||
"commands.custom.sessionRequired.message": "运行自定义命令前请先选择一个会话。",
|
||||
"commands.custom.sessionRequired.title": "需要会话",
|
||||
"commands.custom.runFailed.message": "运行自定义命令失败。请查看控制台了解详情。",
|
||||
"commands.custom.runFailed.title": "命令失败",
|
||||
|
||||
"unifiedPicker.loading.searching": "正在搜索...",
|
||||
"unifiedPicker.loading.loadingWorkspace": "正在加载工作区...",
|
||||
"unifiedPicker.title.command": "选择命令",
|
||||
"unifiedPicker.title.mention": "选择智能体或文件",
|
||||
"unifiedPicker.empty": "未找到结果",
|
||||
"unifiedPicker.sections.commands": "命令",
|
||||
"unifiedPicker.sections.agents": "智能体",
|
||||
"unifiedPicker.sections.files": "文件",
|
||||
"unifiedPicker.badge.subagent": "子智能体",
|
||||
"unifiedPicker.footer.navigate": "导航",
|
||||
"unifiedPicker.footer.select": "选择",
|
||||
"unifiedPicker.footer.close": "关闭",
|
||||
} as const
|
||||
16
packages/ui/src/lib/i18n/messages/zh-Hans/dialogs.ts
Normal file
16
packages/ui/src/lib/i18n/messages/zh-Hans/dialogs.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
export const dialogMessages = {
|
||||
"alertDialog.fallbackTitle.info": "提示",
|
||||
"alertDialog.fallbackTitle.warning": "请确认",
|
||||
"alertDialog.fallbackTitle.error": "出错了",
|
||||
"alertDialog.actions.confirm": "确认",
|
||||
"alertDialog.actions.run": "运行",
|
||||
"alertDialog.actions.ok": "确定",
|
||||
"alertDialog.actions.cancel": "取消",
|
||||
"alertDialog.prompt.inputLabel": "输入",
|
||||
|
||||
"backgroundProcessOutputDialog.title": "后台输出",
|
||||
"backgroundProcessOutputDialog.actions.close": "关闭",
|
||||
"backgroundProcessOutputDialog.loading": "正在加载输出...",
|
||||
"backgroundProcessOutputDialog.truncatedNotice": "为便于显示,输出已截断。",
|
||||
"backgroundProcessOutputDialog.loadErrorFallback": "加载输出失败。",
|
||||
} as const
|
||||
43
packages/ui/src/lib/i18n/messages/zh-Hans/filesystem.ts
Normal file
43
packages/ui/src/lib/i18n/messages/zh-Hans/filesystem.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
export const filesystemMessages = {
|
||||
"directoryBrowser.defaultDescription": "浏览已配置的工作区根目录下的文件夹。",
|
||||
"directoryBrowser.close": "关闭",
|
||||
"directoryBrowser.currentFolder": "当前文件夹",
|
||||
"directoryBrowser.selectCurrent": "选择当前",
|
||||
"directoryBrowser.newFolder": "新建文件夹",
|
||||
"directoryBrowser.creating": "正在创建…",
|
||||
"directoryBrowser.loadingFolders": "正在加载文件夹…",
|
||||
"directoryBrowser.noFolders": "没有可用的文件夹。",
|
||||
"directoryBrowser.upOneLevel": "上一级",
|
||||
"directoryBrowser.select": "选择",
|
||||
"directoryBrowser.load.errorFallback": "无法加载文件系统",
|
||||
"directoryBrowser.createFolder.promptMessage": "在当前目录中新建文件夹。",
|
||||
"directoryBrowser.createFolder.title": "新建文件夹",
|
||||
"directoryBrowser.createFolder.inputLabel": "文件夹名称",
|
||||
"directoryBrowser.createFolder.inputPlaceholder": "例如 my-new-project",
|
||||
"directoryBrowser.createFolder.confirmLabel": "创建",
|
||||
"directoryBrowser.createFolder.cancelLabel": "取消",
|
||||
"directoryBrowser.createFolder.invalidNameMessage": "请输入单个文件夹名称。",
|
||||
"directoryBrowser.createFolder.invalidNameDetail": "文件夹名称不能包含斜杠、\"..\" 或 \"~\"。",
|
||||
"directoryBrowser.createFolder.errorFallback": "无法创建文件夹",
|
||||
|
||||
"filesystemBrowser.descriptionFallback": "在已配置的工作区根目录下搜索路径。",
|
||||
"filesystemBrowser.rootLabel": "根目录:{root}",
|
||||
"filesystemBrowser.actions.close": "关闭",
|
||||
"filesystemBrowser.actions.retry": "重试",
|
||||
"filesystemBrowser.actions.select": "选择",
|
||||
"filesystemBrowser.filterLabel": "筛选",
|
||||
"filesystemBrowser.search.placeholder.directories": "搜索文件夹",
|
||||
"filesystemBrowser.search.placeholder.files": "搜索文件",
|
||||
"filesystemBrowser.currentFolder.label": "当前文件夹",
|
||||
"filesystemBrowser.currentFolder.selectCurrent": "选择当前",
|
||||
"filesystemBrowser.loading.filesystem": "文件系统",
|
||||
"filesystemBrowser.loading.workspaceRoot": "工作区根目录",
|
||||
"filesystemBrowser.loading.loadingWithPath": "正在加载 {path}…",
|
||||
"filesystemBrowser.empty.noEntries": "未找到任何条目。",
|
||||
"filesystemBrowser.navigation.upOneLevel": "上一级",
|
||||
"filesystemBrowser.hints.navigate": "导航",
|
||||
"filesystemBrowser.hints.select": "选择",
|
||||
"filesystemBrowser.hints.close": "关闭",
|
||||
"filesystemBrowser.errors.loadFilesystemFallback": "无法加载文件系统",
|
||||
"filesystemBrowser.errors.openDirectoryFallback": "无法打开目录",
|
||||
} as const
|
||||
34
packages/ui/src/lib/i18n/messages/zh-Hans/folderSelection.ts
Normal file
34
packages/ui/src/lib/i18n/messages/zh-Hans/folderSelection.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
export const folderSelectionMessages = {
|
||||
"folderSelection.logoAlt": "CodeNomad 徽标",
|
||||
"folderSelection.tagline": "选择文件夹,开始与 AI 一起编码",
|
||||
|
||||
"folderSelection.links.github": "CodeNomad 的 GitHub",
|
||||
"folderSelection.links.githubStars": "CodeNomad GitHub Star 数",
|
||||
"folderSelection.links.discord": "CodeNomad 的 Discord",
|
||||
|
||||
"folderSelection.empty.title": "没有最近的文件夹",
|
||||
"folderSelection.empty.description": "浏览并选择文件夹以开始使用",
|
||||
|
||||
"folderSelection.recent.title": "最近的文件夹",
|
||||
"folderSelection.recent.subtitle.one": "{count} 个文件夹可用",
|
||||
"folderSelection.recent.subtitle.other": "{count} 个文件夹可用",
|
||||
"folderSelection.recent.remove": "从最近列表移除",
|
||||
|
||||
"folderSelection.browse.title": "浏览文件夹",
|
||||
"folderSelection.browse.subtitle": "选择你电脑上的任意文件夹",
|
||||
"folderSelection.browse.button": "浏览文件夹",
|
||||
"folderSelection.browse.buttonOpening": "正在打开...",
|
||||
|
||||
"folderSelection.advancedSettings": "高级设置",
|
||||
|
||||
"folderSelection.hints.navigate": "导航",
|
||||
"folderSelection.hints.select": "选择",
|
||||
"folderSelection.hints.remove": "移除",
|
||||
"folderSelection.hints.browse": "浏览",
|
||||
|
||||
"folderSelection.loading.title": "正在启动实例...",
|
||||
"folderSelection.loading.subtitle": "正在准备你的工作区,请稍候。",
|
||||
|
||||
"folderSelection.dialog.title": "选择工作区",
|
||||
"folderSelection.dialog.description": "选择工作区以开始编码。",
|
||||
} as const
|
||||
36
packages/ui/src/lib/i18n/messages/zh-Hans/index.ts
Normal file
36
packages/ui/src/lib/i18n/messages/zh-Hans/index.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import { advancedSettingsMessages } from "./advancedSettings"
|
||||
import { appMessages } from "./app"
|
||||
import { commandMessages } from "./commands"
|
||||
import { dialogMessages } from "./dialogs"
|
||||
import { filesystemMessages } from "./filesystem"
|
||||
import { folderSelectionMessages } from "./folderSelection"
|
||||
import { instanceMessages } from "./instance"
|
||||
import { loadingScreenMessages } from "./loadingScreen"
|
||||
import { logMessages } from "./logs"
|
||||
import { markdownMessages } from "./markdown"
|
||||
import { messagingMessages } from "./messaging"
|
||||
import { remoteAccessMessages } from "./remoteAccess"
|
||||
import { sessionMessages } from "./session"
|
||||
import { settingsMessages } from "./settings"
|
||||
import { timeMessages } from "./time"
|
||||
import { toolCallMessages } from "./toolCall"
|
||||
import { mergeMessageParts } from "../merge"
|
||||
|
||||
export const zhHansMessages = mergeMessageParts(
|
||||
folderSelectionMessages,
|
||||
advancedSettingsMessages,
|
||||
loadingScreenMessages,
|
||||
timeMessages,
|
||||
appMessages,
|
||||
dialogMessages,
|
||||
filesystemMessages,
|
||||
instanceMessages,
|
||||
logMessages,
|
||||
sessionMessages,
|
||||
messagingMessages,
|
||||
toolCallMessages,
|
||||
markdownMessages,
|
||||
settingsMessages,
|
||||
remoteAccessMessages,
|
||||
commandMessages,
|
||||
)
|
||||
125
packages/ui/src/lib/i18n/messages/zh-Hans/instance.ts
Normal file
125
packages/ui/src/lib/i18n/messages/zh-Hans/instance.ts
Normal file
@@ -0,0 +1,125 @@
|
||||
export const instanceMessages = {
|
||||
"instanceTabs.new.title": "新建实例 (Cmd/Ctrl+N)",
|
||||
"instanceTabs.new.ariaLabel": "新建实例",
|
||||
"instanceTabs.remote.title": "远程连接",
|
||||
"instanceTabs.remote.ariaLabel": "远程连接",
|
||||
|
||||
"instanceInfo.title": "实例信息",
|
||||
"instanceInfo.labels.folder": "文件夹",
|
||||
"instanceInfo.labels.project": "项目",
|
||||
"instanceInfo.labels.versionControl": "版本控制",
|
||||
"instanceInfo.labels.opencodeVersion": "OpenCode 版本",
|
||||
"instanceInfo.labels.binaryPath": "可执行文件路径",
|
||||
"instanceInfo.labels.environmentVariables": "环境变量({count})",
|
||||
"instanceInfo.loading": "正在加载...",
|
||||
"instanceInfo.server.title": "服务器",
|
||||
"instanceInfo.server.port": "端口:",
|
||||
"instanceInfo.server.pid": "PID:",
|
||||
"instanceInfo.server.status": "状态:",
|
||||
|
||||
"instanceTab.status.permission": "等待权限",
|
||||
"instanceTab.status.compacting": "压缩中",
|
||||
"instanceTab.status.working": "工作中",
|
||||
"instanceTab.status.idle": "空闲",
|
||||
"instanceTab.status.ariaLabel": "实例状态:{status}",
|
||||
"instanceTab.actions.close.ariaLabel": "关闭实例",
|
||||
|
||||
"instanceShell.leftPanel.sessionsTitle": "会话",
|
||||
"instanceShell.leftPanel.instanceInfo": "实例信息",
|
||||
|
||||
"instanceShell.leftDrawer.pin": "固定左侧抽屉",
|
||||
"instanceShell.leftDrawer.unpin": "取消固定左侧抽屉",
|
||||
"instanceShell.leftDrawer.toggle.pinned": "左侧抽屉已固定",
|
||||
"instanceShell.leftDrawer.toggle.open": "打开左侧抽屉",
|
||||
"instanceShell.leftDrawer.toggle.close": "关闭左侧抽屉",
|
||||
|
||||
"instanceShell.rightDrawer.pin": "固定右侧抽屉",
|
||||
"instanceShell.rightDrawer.unpin": "取消固定右侧抽屉",
|
||||
"instanceShell.rightDrawer.toggle.pinned": "右侧抽屉已固定",
|
||||
"instanceShell.rightDrawer.toggle.open": "打开右侧抽屉",
|
||||
"instanceShell.rightDrawer.toggle.close": "关闭右侧抽屉",
|
||||
|
||||
"instanceShell.metrics.usedLabel": "已用",
|
||||
"instanceShell.metrics.availableLabel": "可用",
|
||||
|
||||
"instanceShell.commandPalette.openAriaLabel": "打开命令面板",
|
||||
"instanceShell.commandPalette.button": "命令面板",
|
||||
|
||||
"instanceShell.connection.ariaLabel": "连接 {status}",
|
||||
"instanceShell.connection.connected": "已连接",
|
||||
"instanceShell.connection.connecting": "连接中...",
|
||||
"instanceShell.connection.disconnected": "已断开",
|
||||
"instanceShell.connection.unknown": "未知",
|
||||
|
||||
"instanceWelcome.shortcuts.newSession": "新建会话",
|
||||
"instanceWelcome.empty.title": "没有历史会话",
|
||||
"instanceWelcome.empty.description": "在下方创建新会话以开始使用",
|
||||
"instanceWelcome.loading.title": "正在加载会话",
|
||||
"instanceWelcome.loading.description": "正在获取你的历史会话...",
|
||||
"instanceWelcome.resume.title": "继续会话",
|
||||
"instanceWelcome.resume.subtitle.one": "{count} 个会话可用",
|
||||
"instanceWelcome.resume.subtitle.other": "{count} 个会话可用",
|
||||
"instanceWelcome.session.untitled": "未命名会话",
|
||||
"instanceWelcome.new.title": "开始新会话",
|
||||
"instanceWelcome.new.subtitle": "将自动沿用上一次的智能体/模型",
|
||||
"instanceWelcome.new.createButton": "创建会话",
|
||||
"instanceWelcome.overlay.close": "关闭",
|
||||
"instanceWelcome.actions.viewInstanceInfo": "查看实例信息",
|
||||
"instanceWelcome.actions.renameTitle": "重命名会话",
|
||||
"instanceWelcome.actions.deleteTitle": "删除会话",
|
||||
"instanceWelcome.hints.navigate": "导航",
|
||||
"instanceWelcome.hints.jump": "跳转",
|
||||
"instanceWelcome.hints.firstLast": "首/末",
|
||||
"instanceWelcome.hints.resume": "继续",
|
||||
"instanceWelcome.hints.delete": "删除",
|
||||
"instanceWelcome.toasts.renameError": "无法重命名会话",
|
||||
|
||||
"instanceDisconnected.title": "实例已断开连接",
|
||||
"instanceDisconnected.folderFallback": "此工作区",
|
||||
"instanceDisconnected.reasonFallback": "服务器停止响应",
|
||||
"instanceDisconnected.description": "{folder} 已无法访问。关闭此标签页以继续工作。",
|
||||
"instanceDisconnected.details.title": "详情",
|
||||
"instanceDisconnected.details.folderLabel": "文件夹:",
|
||||
"instanceDisconnected.actions.closeInstance": "关闭实例",
|
||||
|
||||
"instanceShell.empty.title": "未选择会话",
|
||||
"instanceShell.empty.description": "选择会话以查看消息",
|
||||
|
||||
"instanceShell.rightPanel.title": "状态面板",
|
||||
"instanceShell.rightPanel.sections.plan": "计划",
|
||||
"instanceShell.rightPanel.sections.backgroundProcesses": "后台 Shell",
|
||||
"instanceShell.rightPanel.sections.mcp": "MCP 服务器",
|
||||
"instanceShell.rightPanel.sections.lsp": "LSP 服务器",
|
||||
"instanceShell.rightPanel.sections.plugins": "插件",
|
||||
|
||||
"instanceShell.plan.noSessionSelected": "选择会话以查看计划。",
|
||||
"instanceShell.plan.empty": "暂无计划。",
|
||||
|
||||
"instanceShell.backgroundProcesses.empty": "没有后台进程。",
|
||||
"instanceShell.backgroundProcesses.status": "状态:{status}",
|
||||
"instanceShell.backgroundProcesses.output": "输出:{sizeKb}KB",
|
||||
"instanceShell.backgroundProcesses.actions.output": "输出",
|
||||
"instanceShell.backgroundProcesses.actions.stop": "停止",
|
||||
"instanceShell.backgroundProcesses.actions.terminate": "终止",
|
||||
|
||||
"versionPill.appWithVersion": "应用 {version}",
|
||||
"versionPill.ui": "UI",
|
||||
"versionPill.uiWithVersion": "UI {version}",
|
||||
"versionPill.source": " ({source})",
|
||||
|
||||
"opencodeBinarySelector.title": "OpenCode 可执行文件",
|
||||
"opencodeBinarySelector.subtitle": "选择 OpenCode 要运行的可执行文件",
|
||||
"opencodeBinarySelector.customPath.placeholder": "输入 opencode 可执行文件路径…",
|
||||
"opencodeBinarySelector.actions.add": "添加",
|
||||
"opencodeBinarySelector.actions.browse": "浏览可执行文件…",
|
||||
"opencodeBinarySelector.actions.removeTitle": "移除可执行文件",
|
||||
"opencodeBinarySelector.badge.systemPath": "使用系统 PATH 中的可执行文件",
|
||||
"opencodeBinarySelector.status.checkingVersions": "正在检查版本…",
|
||||
"opencodeBinarySelector.status.checking": "正在检查…",
|
||||
"opencodeBinarySelector.dialog.title": "选择 OpenCode 可执行文件",
|
||||
"opencodeBinarySelector.dialog.description": "浏览 CLI 服务器暴露的文件。",
|
||||
"opencodeBinarySelector.validation.invalidBinary": "无效的 OpenCode 可执行文件",
|
||||
"opencodeBinarySelector.validation.alreadyValidating": "正在验证中",
|
||||
"opencodeBinarySelector.display.systemPath": "{name}(系统 PATH)",
|
||||
"opencodeBinarySelector.versionLabel": "v{version}",
|
||||
} as const
|
||||
17
packages/ui/src/lib/i18n/messages/zh-Hans/loadingScreen.ts
Normal file
17
packages/ui/src/lib/i18n/messages/zh-Hans/loadingScreen.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
export const loadingScreenMessages = {
|
||||
"loadingScreen.logoAlt": "CodeNomad 徽标",
|
||||
"loadingScreen.status.issue": "遇到问题",
|
||||
"loadingScreen.actions.showAnother": "换一句",
|
||||
"loadingScreen.errors.missingRoot": "未找到加载根元素",
|
||||
|
||||
"loadingScreen.phrases.neurons": "正在热身 AI 神经元…",
|
||||
"loadingScreen.phrases.daydreaming": "正在劝 AI 别再走神…",
|
||||
"loadingScreen.phrases.goggles": "正在擦亮 AI 的代码护目镜…",
|
||||
"loadingScreen.phrases.reorganizingFiles": "正在请求 AI 别再帮你重排文件…",
|
||||
"loadingScreen.phrases.coffee": "正在给 AI 加杯咖啡…",
|
||||
"loadingScreen.phrases.nodeModules": "正在教 AI 别再删除 node_modules(又一次)…",
|
||||
"loadingScreen.phrases.actNatural": "正在提醒 AI 在你到来前表现自然点…",
|
||||
"loadingScreen.phrases.rewritingHistory": "正在请 AI 别再重写历史…",
|
||||
"loadingScreen.phrases.stretch": "正在让 AI 在编码冲刺前伸个懒腰…",
|
||||
"loadingScreen.phrases.keyboardControl": "正在说服 AI 把键盘控制权交给你…",
|
||||
} as const
|
||||
18
packages/ui/src/lib/i18n/messages/zh-Hans/logs.ts
Normal file
18
packages/ui/src/lib/i18n/messages/zh-Hans/logs.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
export const logMessages = {
|
||||
"logsView.title": "服务器日志",
|
||||
"logsView.actions.show": "显示服务器日志",
|
||||
"logsView.actions.hide": "隐藏服务器日志",
|
||||
"logsView.envVars.title": "环境变量({count})",
|
||||
"logsView.paused.title": "服务器日志已暂停",
|
||||
"logsView.paused.description": "启用流式输出以查看 OpenCode 服务器活动。",
|
||||
"logsView.empty.waiting": "正在等待服务器输出...",
|
||||
"logsView.scrollToBottom": "滚动到底部",
|
||||
|
||||
"infoView.logs.title": "服务器日志",
|
||||
"infoView.logs.actions.show": "显示服务器日志",
|
||||
"infoView.logs.actions.hide": "隐藏服务器日志",
|
||||
"infoView.logs.paused.title": "服务器日志已暂停",
|
||||
"infoView.logs.paused.description": "启用流式输出以查看 OpenCode 服务器活动。",
|
||||
"infoView.logs.empty.waiting": "正在等待服务器输出...",
|
||||
"infoView.logs.scrollToBottom": "滚动到底部",
|
||||
} as const
|
||||
7
packages/ui/src/lib/i18n/messages/zh-Hans/markdown.ts
Normal file
7
packages/ui/src/lib/i18n/messages/zh-Hans/markdown.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
export const markdownMessages = {
|
||||
"markdown.codeBlock.copy.label": "复制",
|
||||
"markdown.codeBlock.copy.copied": "已复制!",
|
||||
"markdown.codeBlock.copy.failed": "失败",
|
||||
|
||||
"markdown.copy": "复制",
|
||||
} as const
|
||||
109
packages/ui/src/lib/i18n/messages/zh-Hans/messaging.ts
Normal file
109
packages/ui/src/lib/i18n/messages/zh-Hans/messaging.ts
Normal file
@@ -0,0 +1,109 @@
|
||||
export const messagingMessages = {
|
||||
"messageListHeader.sidebar.openSessionListAriaLabel": "打开会话列表",
|
||||
"messageListHeader.metrics.usedLabel": "已用",
|
||||
"messageListHeader.metrics.availableLabel": "可用",
|
||||
"messageListHeader.commandPalette.ariaLabel": "打开命令面板",
|
||||
"messageListHeader.commandPalette.button": "命令面板",
|
||||
"messageListHeader.connection.connected": "已连接",
|
||||
"messageListHeader.connection.connecting": "连接中...",
|
||||
"messageListHeader.connection.disconnected": "已断开",
|
||||
|
||||
"messageSection.empty.logoAlt": "CodeNomad 徽标",
|
||||
"messageSection.empty.brandTitle": "CodeNomad",
|
||||
"messageSection.empty.title": "开始对话",
|
||||
"messageSection.empty.description": "在下方输入消息,或打开命令面板:",
|
||||
"messageSection.empty.tips.commandPalette": "命令面板",
|
||||
"messageSection.empty.tips.askAboutCodebase": "询问你的代码库",
|
||||
"messageSection.empty.tips.attachFilesPrefix": "通过以下方式附加文件",
|
||||
"messageSection.loading.messages": "正在加载消息...",
|
||||
"messageSection.scroll.toFirstAriaLabel": "滚动到第一条消息",
|
||||
"messageSection.scroll.toLatestAriaLabel": "滚动到最新消息",
|
||||
"messageSection.quote.addAsQuote": "作为引用添加",
|
||||
"messageSection.quote.addAsCode": "作为代码添加",
|
||||
|
||||
"messageTimeline.ariaLabel": "消息时间线",
|
||||
"messageTimeline.segment.user.label": "你",
|
||||
"messageTimeline.segment.assistant.label": "助手",
|
||||
"messageTimeline.segment.compaction.label": "压缩",
|
||||
"messageTimeline.tool.fallbackLabel": "工具调用",
|
||||
"messageTimeline.tooltip.userFallback": "用户消息",
|
||||
"messageTimeline.tooltip.assistantFallback": "助手回复",
|
||||
"messageTimeline.tooltip.compaction.auto": "自动压缩",
|
||||
"messageTimeline.tooltip.compaction.manual": "手动压缩",
|
||||
"messageTimeline.text.filePrefix": "[文件] {filename}",
|
||||
"messageTimeline.text.attachment": "附件",
|
||||
|
||||
"messageBlock.tool.header": "工具调用",
|
||||
"messageBlock.tool.unknown": "未知",
|
||||
"messageBlock.tool.goToSession.label": "前往会话",
|
||||
"messageBlock.tool.goToSession.title": "前往会话",
|
||||
"messageBlock.tool.goToSession.unavailableTitle": "会话尚不可用",
|
||||
|
||||
"messageBlock.compaction.ariaLabel": "会话压缩",
|
||||
"messageBlock.compaction.autoLabel": "会话已自动压缩",
|
||||
"messageBlock.compaction.manualLabel": "会话已由你压缩",
|
||||
"messageBlock.usage.input": "输入",
|
||||
"messageBlock.usage.output": "输出",
|
||||
"messageBlock.usage.reasoning": "推理",
|
||||
"messageBlock.usage.cacheRead": "缓存读取",
|
||||
"messageBlock.usage.cacheWrite": "缓存写入",
|
||||
"messageBlock.usage.cost": "费用",
|
||||
"messageBlock.step.agentLabel": "智能体:{agent}",
|
||||
"messageBlock.step.modelLabel": "模型:{model}",
|
||||
"messageBlock.reasoning.thinkingLabel": "思考",
|
||||
"messageBlock.reasoning.expandAriaLabel": "展开思考",
|
||||
"messageBlock.reasoning.collapseAriaLabel": "折叠思考",
|
||||
"messageBlock.reasoning.indicator.hide": "隐藏",
|
||||
"messageBlock.reasoning.indicator.view": "查看",
|
||||
"messageBlock.reasoning.detailsAriaLabel": "推理详情",
|
||||
|
||||
"codeBlockInline.actions.copy": "复制",
|
||||
"codeBlockInline.actions.copied": "已复制!",
|
||||
|
||||
"messageItem.speaker.you": "你",
|
||||
"messageItem.speaker.assistant": "助手",
|
||||
"messageItem.actions.revert": "回退",
|
||||
"messageItem.actions.revertTitle": "回退到这条消息",
|
||||
"messageItem.actions.fork": "分叉",
|
||||
"messageItem.actions.forkTitle": "从这条消息分叉",
|
||||
"messageItem.actions.copy": "复制",
|
||||
"messageItem.actions.copyTitle": "复制消息",
|
||||
"messageItem.actions.copied": "已复制!",
|
||||
"messageItem.status.queued": "排队中",
|
||||
"messageItem.status.generating": "正在生成...",
|
||||
"messageItem.status.sending": "正在发送...",
|
||||
"messageItem.status.failedToSend": "消息发送失败",
|
||||
"messageItem.attachment.defaultName": "附件",
|
||||
"messageItem.attachment.downloadAriaLabel": "下载 {name}",
|
||||
"messageItem.agentMeta.agentLabel": "智能体:{agent}",
|
||||
"messageItem.agentMeta.modelLabel": "模型:{model}",
|
||||
"messageItem.errors.authenticationFallback": "认证错误",
|
||||
"messageItem.errors.outputLengthExceeded": "消息输出长度超限",
|
||||
"messageItem.errors.requestAborted": "请求已中止",
|
||||
"messageItem.errors.unknownFallback": "发生未知错误",
|
||||
|
||||
"attachmentChip.removeAriaLabel": "移除附件",
|
||||
|
||||
"expandButton.toggleAriaLabel": "切换聊天输入框高度",
|
||||
|
||||
"promptInput.placeholder.shell": "运行 shell 命令(Esc 退出)...",
|
||||
"promptInput.placeholder.default": "输入消息、@file、@agent,或粘贴图片与文本...",
|
||||
"promptInput.hints.shell.exit": "退出 shell 模式",
|
||||
"promptInput.hints.shell.enable": "Shell 模式",
|
||||
"promptInput.hints.commands": "命令",
|
||||
"promptInput.history.previousAriaLabel": "上一条 prompt",
|
||||
"promptInput.history.nextAriaLabel": "下一条 prompt",
|
||||
"promptInput.overlay.newLine": "换行",
|
||||
"promptInput.overlay.send": "发送",
|
||||
"promptInput.overlay.filesAgents": "文件/智能体",
|
||||
"promptInput.overlay.history": "历史",
|
||||
"promptInput.overlay.attachments": "• 已附加 {count} 个文件",
|
||||
"promptInput.overlay.shellModeActive": "Shell 模式已启用",
|
||||
"promptInput.overlay.press": "按下",
|
||||
"promptInput.overlay.againToAbort": "再次按下以中止会话",
|
||||
"promptInput.stopSession.ariaLabel": "停止会话",
|
||||
"promptInput.stopSession.title": "停止会话",
|
||||
"promptInput.send.ariaLabel": "发送消息",
|
||||
"promptInput.send.errorFallback": "发送消息失败",
|
||||
"promptInput.send.errorTitle": "发送失败",
|
||||
} as const
|
||||
51
packages/ui/src/lib/i18n/messages/zh-Hans/remoteAccess.ts
Normal file
51
packages/ui/src/lib/i18n/messages/zh-Hans/remoteAccess.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
export const remoteAccessMessages = {
|
||||
"remoteAccess.eyebrow": "远程接管",
|
||||
"remoteAccess.title": "远程连接到 CodeNomad",
|
||||
"remoteAccess.subtitle": "使用下面的地址从其他设备打开 CodeNomad。",
|
||||
"remoteAccess.close": "关闭远程访问",
|
||||
"remoteAccess.refresh": "刷新",
|
||||
|
||||
"remoteAccess.sections.listeningMode.label": "监听模式",
|
||||
"remoteAccess.sections.listeningMode.help": "通过绑定到所有接口或仅 localhost 来允许或限制远程接管。",
|
||||
"remoteAccess.toggle.on": "开",
|
||||
"remoteAccess.toggle.off": "关",
|
||||
"remoteAccess.toggle.title": "允许其他 IP 连接",
|
||||
"remoteAccess.toggle.caption.all": "绑定到 0.0.0.0",
|
||||
"remoteAccess.toggle.caption.local": "绑定到 127.0.0.1",
|
||||
"remoteAccess.toggle.note": "更改此项需要重启,并会暂时停止所有活动实例。服务器重启后再分享下方地址。",
|
||||
"remoteAccess.listeningMode.restartConfirm.message": "重启以应用监听模式?这将停止所有正在运行的实例。",
|
||||
"remoteAccess.listeningMode.restartConfirm.title.all": "对其他设备开放",
|
||||
"remoteAccess.listeningMode.restartConfirm.title.local": "仅限此设备",
|
||||
"remoteAccess.listeningMode.restartConfirm.confirmLabel": "立即重启",
|
||||
"remoteAccess.listeningMode.restartConfirm.cancelLabel": "取消",
|
||||
"remoteAccess.restart.errorManual": "无法自动重启。请手动重启应用以应用更改。",
|
||||
|
||||
"remoteAccess.sections.serverPassword.label": "服务器密码",
|
||||
"remoteAccess.sections.serverPassword.help": "远程接管需要密码。设置一个易记的密码,以允许其他设备登录。",
|
||||
"remoteAccess.authStatus.unavailable": "无法获取认证状态。",
|
||||
"remoteAccess.username": "用户名:{username}",
|
||||
"remoteAccess.password.status.set": "已为远程访问设置密码。",
|
||||
"remoteAccess.password.status.unset": "尚未设置易记密码。设置后可允许远程接管登录。",
|
||||
"remoteAccess.password.actions.cancel": "取消",
|
||||
"remoteAccess.password.actions.change": "修改密码",
|
||||
"remoteAccess.password.actions.set": "设置密码",
|
||||
"remoteAccess.password.form.newPassword": "新密码",
|
||||
"remoteAccess.password.form.confirmPassword": "确认密码",
|
||||
"remoteAccess.password.form.placeholder": "至少 8 个字符",
|
||||
"remoteAccess.password.error.tooShort": "密码至少需要 8 个字符。",
|
||||
"remoteAccess.password.error.mismatch": "两次输入的密码不一致。",
|
||||
"remoteAccess.password.save.saving": "正在保存…",
|
||||
"remoteAccess.password.save.label": "保存密码",
|
||||
|
||||
"remoteAccess.sections.addresses.label": "可访问地址",
|
||||
"remoteAccess.sections.addresses.help": "从另一台设备打开或扫描,以接管控制权。",
|
||||
"remoteAccess.addresses.loading": "正在加载地址…",
|
||||
"remoteAccess.addresses.none": "暂时没有可用地址。",
|
||||
"remoteAccess.address.scope.network": "网络",
|
||||
"remoteAccess.address.scope.loopback": "回环",
|
||||
"remoteAccess.address.scope.internal": "内部",
|
||||
"remoteAccess.address.open": "打开",
|
||||
"remoteAccess.address.showQr": "显示二维码",
|
||||
"remoteAccess.address.hideQr": "隐藏二维码",
|
||||
"remoteAccess.address.qrAlt": "{url} 的二维码",
|
||||
} as const
|
||||
67
packages/ui/src/lib/i18n/messages/zh-Hans/session.ts
Normal file
67
packages/ui/src/lib/i18n/messages/zh-Hans/session.ts
Normal file
@@ -0,0 +1,67 @@
|
||||
export const sessionMessages = {
|
||||
"sessionPicker.title": "OpenCode • {folder}",
|
||||
"sessionPicker.empty.noPrevious": "没有历史会话",
|
||||
"sessionPicker.resume.title": "继续会话({count}):",
|
||||
"sessionPicker.session.untitled": "未命名",
|
||||
"sessionPicker.divider.or": "或",
|
||||
"sessionPicker.new.title": "开始新会话:",
|
||||
"sessionPicker.agents.loading": "正在加载智能体...",
|
||||
"sessionPicker.actions.creating": "正在创建...",
|
||||
"sessionPicker.actions.createSession": "创建会话",
|
||||
"sessionPicker.actions.cancel": "取消",
|
||||
|
||||
"sessionList.header.title": "会话",
|
||||
"sessionList.session.untitled": "未命名",
|
||||
"sessionList.status.working": "工作中",
|
||||
"sessionList.status.compacting": "压缩中",
|
||||
"sessionList.status.idle": "空闲",
|
||||
"sessionList.status.needsPermission": "需要权限",
|
||||
"sessionList.status.needsInput": "需要输入",
|
||||
"sessionList.expand.collapseAriaLabel": "折叠会话",
|
||||
"sessionList.expand.expandAriaLabel": "展开会话",
|
||||
"sessionList.expand.collapseTitle": "折叠",
|
||||
"sessionList.expand.expandTitle": "展开",
|
||||
"sessionList.actions.copyId.ariaLabel": "复制会话 ID",
|
||||
"sessionList.actions.copyId.title": "复制会话 ID",
|
||||
"sessionList.actions.rename.ariaLabel": "重命名会话",
|
||||
"sessionList.actions.rename.title": "重命名会话",
|
||||
"sessionList.actions.delete.ariaLabel": "删除会话",
|
||||
"sessionList.actions.delete.title": "删除会话",
|
||||
"sessionList.copyId.success": "已复制会话 ID",
|
||||
"sessionList.copyId.error": "无法复制会话 ID",
|
||||
"sessionList.delete.error": "无法删除会话",
|
||||
"sessionList.rename.error": "无法重命名会话",
|
||||
|
||||
"sessionRenameDialog.title": "重命名会话",
|
||||
"sessionRenameDialog.description.withLabel": "更新“{label}”的标题。",
|
||||
"sessionRenameDialog.description.default": "为此会话设置新标题。",
|
||||
"sessionRenameDialog.input.label": "会话名称",
|
||||
"sessionRenameDialog.input.placeholder": "输入会话名称",
|
||||
"sessionRenameDialog.actions.cancel": "取消",
|
||||
"sessionRenameDialog.actions.rename": "重命名",
|
||||
"sessionRenameDialog.actions.renaming": "正在重命名…",
|
||||
|
||||
"sessionView.fallback.sessionNotFound": "未找到会话",
|
||||
"sessionView.alerts.abortFailed.message": "停止会话失败",
|
||||
"sessionView.alerts.abortFailed.title": "停止失败",
|
||||
"sessionView.alerts.revertFailed.message": "回退到消息失败",
|
||||
"sessionView.alerts.revertFailed.title": "回退失败",
|
||||
"sessionView.alerts.forkFailed.message": "分叉会话失败",
|
||||
"sessionView.alerts.forkFailed.title": "分叉失败",
|
||||
"sessionView.attachments.expandPastedTextAriaLabel": "展开粘贴的文本",
|
||||
"sessionView.attachments.insertPastedTextTitle": "插入粘贴的文本",
|
||||
"sessionView.attachments.removeAriaLabel": "移除附件",
|
||||
|
||||
"sessionEvents.sessionCompactedToast": "会话 {label} 已被压缩",
|
||||
"sessionEvents.sessionError.unknown": "未知错误",
|
||||
"sessionEvents.sessionError.title": "会话错误",
|
||||
"sessionEvents.sessionError.message": "错误:{message}",
|
||||
|
||||
"sessionState.cleanup.deepConfirm.message": "此清理可能较慢,并且可能删除你并不想删除的会话。确定要继续吗?",
|
||||
"sessionState.cleanup.deepConfirm.title": "深度清理会话",
|
||||
"sessionState.cleanup.deepConfirm.detail": "深度清理会话将删除所有没有消息的会话、移除已完成的子智能体会话,并清除会话中未使用的分叉。",
|
||||
"sessionState.cleanup.deepConfirm.confirmLabel": "继续",
|
||||
"sessionState.cleanup.deepConfirm.cancelLabel": "取消",
|
||||
"sessionState.cleanup.toast.one": "已清理 {count} 个空白会话",
|
||||
"sessionState.cleanup.toast.other": "已清理 {count} 个空白会话",
|
||||
} as const
|
||||
54
packages/ui/src/lib/i18n/messages/zh-Hans/settings.ts
Normal file
54
packages/ui/src/lib/i18n/messages/zh-Hans/settings.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
export const settingsMessages = {
|
||||
"instanceServiceStatus.sections.lsp": "LSP 服务器",
|
||||
"instanceServiceStatus.sections.mcp": "MCP 服务器",
|
||||
"instanceServiceStatus.sections.plugins": "插件",
|
||||
"instanceServiceStatus.lsp.loading": "正在加载 LSP 服务器...",
|
||||
"instanceServiceStatus.lsp.empty": "未检测到 LSP 服务器。",
|
||||
"instanceServiceStatus.lsp.status.connected": "已连接",
|
||||
"instanceServiceStatus.lsp.status.error": "错误",
|
||||
"instanceServiceStatus.mcp.loading": "正在加载 MCP 服务器...",
|
||||
"instanceServiceStatus.mcp.empty": "未检测到 MCP 服务器。",
|
||||
"instanceServiceStatus.mcp.toggleAriaLabel": "切换 {name} MCP 服务器",
|
||||
"instanceServiceStatus.plugins.loading": "正在加载插件...",
|
||||
"instanceServiceStatus.plugins.empty": "未配置插件。",
|
||||
|
||||
"permissionBanner.pendingRequests.one": "{count} 个待处理请求",
|
||||
"permissionBanner.pendingRequests.other": "{count} 个待处理请求",
|
||||
"permissionBanner.detail.permission.one": "{count} 项权限",
|
||||
"permissionBanner.detail.permission.other": "{count} 项权限",
|
||||
"permissionBanner.detail.question.one": "{count} 个问题",
|
||||
"permissionBanner.detail.question.other": "{count} 个问题",
|
||||
"permissionBanner.detail.wrapper": " ({detail})",
|
||||
|
||||
"agentSelector.placeholder": "选择智能体...",
|
||||
"agentSelector.badge.subagent": "子智能体",
|
||||
"agentSelector.none": "无",
|
||||
"agentSelector.trigger.primary": "智能体:{agent}",
|
||||
|
||||
"modelSelector.placeholder.search": "搜索模型...",
|
||||
"modelSelector.none": "无",
|
||||
"modelSelector.trigger.primary": "模型:{model}",
|
||||
|
||||
"thinkingSelector.variant.default": "默认",
|
||||
"thinkingSelector.label": "思考:{variant}",
|
||||
|
||||
"envEditor.title": "环境变量",
|
||||
"envEditor.count.one": "({count} 个变量)",
|
||||
"envEditor.count.other": "({count} 个变量)",
|
||||
"envEditor.fields.name.placeholder": "变量名",
|
||||
"envEditor.fields.name.readOnlyTitle": "变量名(只读)",
|
||||
"envEditor.fields.value.placeholder": "变量值",
|
||||
"envEditor.actions.remove.title": "移除变量",
|
||||
"envEditor.actions.add.title": "添加变量",
|
||||
"envEditor.empty": "未配置环境变量。在上方添加变量以自定义 OpenCode 环境。",
|
||||
"envEditor.help": "启动实例时,这些变量将在 OpenCode 环境中可用。",
|
||||
|
||||
"contextUsagePanel.headings.tokens": "Tokens",
|
||||
"contextUsagePanel.headings.context": "上下文",
|
||||
"contextUsagePanel.labels.input": "输入",
|
||||
"contextUsagePanel.labels.output": "输出",
|
||||
"contextUsagePanel.labels.cost": "费用",
|
||||
"contextUsagePanel.labels.used": "已用",
|
||||
"contextUsagePanel.labels.available": "可用",
|
||||
"contextUsagePanel.unavailable": "--",
|
||||
} as const
|
||||
6
packages/ui/src/lib/i18n/messages/zh-Hans/time.ts
Normal file
6
packages/ui/src/lib/i18n/messages/zh-Hans/time.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export const timeMessages = {
|
||||
"time.relative.justNow": "刚刚",
|
||||
"time.relative.daysAgoShort": "{count} 天前",
|
||||
"time.relative.hoursAgoShort": "{count} 小时前",
|
||||
"time.relative.minutesAgoShort": "{count} 分钟前",
|
||||
} as const
|
||||
121
packages/ui/src/lib/i18n/messages/zh-Hans/toolCall.ts
Normal file
121
packages/ui/src/lib/i18n/messages/zh-Hans/toolCall.ts
Normal file
@@ -0,0 +1,121 @@
|
||||
export const toolCallMessages = {
|
||||
"toolCall.pending.waitingToRun": "等待运行...",
|
||||
"toolCall.error.label": "错误:",
|
||||
|
||||
"toolCall.diff.label": "Diff",
|
||||
"toolCall.diff.label.withPath": "Diff · {path}",
|
||||
"toolCall.diff.viewMode.ariaLabel": "Diff 视图模式",
|
||||
"toolCall.diff.viewMode.split": "分栏",
|
||||
"toolCall.diff.viewMode.unified": "统一",
|
||||
|
||||
"toolCall.diagnostics.title": "诊断",
|
||||
"toolCall.diagnostics.ariaLabel": "诊断",
|
||||
"toolCall.diagnostics.ariaLabel.withLabel": "诊断 {label}",
|
||||
"toolCall.diagnostics.severity.error.short": "ERR",
|
||||
"toolCall.diagnostics.severity.warning.short": "WARN",
|
||||
"toolCall.diagnostics.severity.info.short": "INFO",
|
||||
|
||||
"toolCall.renderer.toolName.shell": "Shell",
|
||||
"toolCall.renderer.toolName.fetch": "Fetch",
|
||||
"toolCall.renderer.toolName.invalid": "无效",
|
||||
"toolCall.renderer.toolName.plan": "计划",
|
||||
"toolCall.renderer.toolName.applyPatch": "应用补丁",
|
||||
|
||||
"toolCall.renderer.action.working": "处理中...",
|
||||
"toolCall.renderer.action.writingCommand": "正在编写命令...",
|
||||
"toolCall.renderer.action.preparingEdit": "正在准备编辑...",
|
||||
"toolCall.renderer.action.readingFile": "正在读取文件...",
|
||||
"toolCall.renderer.action.preparingWrite": "正在准备写入...",
|
||||
"toolCall.renderer.action.preparingPatch": "正在准备补丁...",
|
||||
"toolCall.renderer.action.planning": "正在规划...",
|
||||
"toolCall.renderer.action.fetchingFromWeb": "正在从网络获取...",
|
||||
"toolCall.renderer.action.findingFiles": "正在查找文件...",
|
||||
"toolCall.renderer.action.searchingContent": "正在搜索内容...",
|
||||
"toolCall.renderer.action.listingDirectory": "正在列出目录...",
|
||||
|
||||
"toolCall.renderer.bash.title.timeout": "超时:{timeout}",
|
||||
"toolCall.renderer.read.detail.offset": "偏移:{offset}",
|
||||
"toolCall.renderer.read.detail.limit": "限制:{limit}",
|
||||
|
||||
"toolCall.renderer.todo.empty": "暂无计划项。",
|
||||
"toolCall.renderer.todo.status.pending": "待处理",
|
||||
"toolCall.renderer.todo.status.inProgress": "进行中",
|
||||
"toolCall.renderer.todo.status.completed": "已完成",
|
||||
"toolCall.renderer.todo.status.cancelled": "已取消",
|
||||
"toolCall.renderer.todo.title.plan": "计划",
|
||||
"toolCall.renderer.todo.title.creating": "正在创建计划",
|
||||
"toolCall.renderer.todo.title.completing": "正在完成计划",
|
||||
"toolCall.renderer.todo.title.updating": "正在更新计划",
|
||||
|
||||
"toolCall.permission.status.required": "需要权限",
|
||||
"toolCall.permission.status.queued": "权限已排队",
|
||||
"toolCall.permission.requestedDiff.label": "请求的 Diff",
|
||||
"toolCall.permission.requestedDiff.withPath": "请求的 Diff · {path}",
|
||||
"toolCall.permission.queuedText": "正在等待更早的权限响应。",
|
||||
"toolCall.permission.actions.allowOnce": "仅允许一次",
|
||||
"toolCall.permission.actions.alwaysAllow": "始终允许",
|
||||
"toolCall.permission.actions.deny": "拒绝",
|
||||
"toolCall.permission.shortcuts.allowOnce": "仅允许一次",
|
||||
"toolCall.permission.shortcuts.alwaysAllow": "始终允许",
|
||||
"toolCall.permission.shortcuts.deny": "拒绝",
|
||||
"toolCall.permission.errors.unableToUpdate": "无法更新权限",
|
||||
|
||||
"permissionApproval.title": "请求",
|
||||
"permissionApproval.empty": "暂无待处理请求。",
|
||||
"permissionApproval.kind.permission": "权限",
|
||||
"permissionApproval.kind.question": "问题",
|
||||
"permissionApproval.questionCount.one": "{count} 个问题",
|
||||
"permissionApproval.questionCount.other": "{count} 个问题",
|
||||
"permissionApproval.status.active": "活动",
|
||||
"permissionApproval.actions.closeAriaLabel": "关闭",
|
||||
"permissionApproval.actions.goToSession": "前往会话",
|
||||
"permissionApproval.actions.loadingSession": "正在加载…",
|
||||
"permissionApproval.actions.loadSession": "加载会话",
|
||||
"permissionApproval.actions.allowOnce": "仅允许一次",
|
||||
"permissionApproval.actions.alwaysAllow": "始终允许",
|
||||
"permissionApproval.actions.deny": "拒绝",
|
||||
"permissionApproval.fallbackHint": "加载会话以查看更多信息。",
|
||||
"permissionApproval.errors.unableToUpdatePermission": "无法更新权限",
|
||||
|
||||
"toolCall.question.status.required": "需要回答问题",
|
||||
"toolCall.question.status.queued": "问题已排队",
|
||||
"toolCall.question.status.questions": "问题",
|
||||
"toolCall.question.action.awaitingAnswers": "等待回答...",
|
||||
"toolCall.question.title.questions": "问题",
|
||||
"toolCall.question.title.askingQuestions": "正在提问",
|
||||
"toolCall.question.type.one": "问题",
|
||||
"toolCall.question.type.other": "问题",
|
||||
"toolCall.question.number": "Q{number}:",
|
||||
"toolCall.question.multiple": "多个",
|
||||
"toolCall.question.custom.title": "输入自定义答案",
|
||||
"toolCall.question.custom.label": "自定义答案",
|
||||
"toolCall.question.custom.placeholder": "输入你的答案",
|
||||
"toolCall.question.actions.submit": "提交",
|
||||
"toolCall.question.actions.dismiss": "忽略",
|
||||
"toolCall.question.shortcuts.submit": "提交",
|
||||
"toolCall.question.shortcuts.dismiss": "忽略",
|
||||
"toolCall.question.queuedText": "正在等待更早的响应。",
|
||||
"toolCall.question.validation.answerAll": "请先回答所有问题再提交。",
|
||||
"toolCall.question.errors.unableToReply": "无法回复",
|
||||
"toolCall.question.errors.unableToDismiss": "无法忽略",
|
||||
|
||||
"toolCall.task.action.delegating": "正在委派...",
|
||||
"toolCall.task.sections.prompt": "Prompt",
|
||||
"toolCall.task.sections.steps": "步骤",
|
||||
"toolCall.task.sections.output": "输出",
|
||||
"toolCall.task.steps.count": "{count} 个步骤",
|
||||
"toolCall.task.meta.agentModel": "智能体:{agent} • 模型:{model}",
|
||||
"toolCall.task.meta.agent": "智能体:{agent}",
|
||||
"toolCall.task.meta.model": "模型:{model}",
|
||||
|
||||
"toolCall.status.pending": "待处理",
|
||||
"toolCall.status.running": "运行中",
|
||||
"toolCall.status.completed": "已完成",
|
||||
"toolCall.status.error": "错误",
|
||||
"toolCall.status.unknown": "未知",
|
||||
|
||||
"toolCall.applyPatch.action.preparing": "正在准备 apply_patch...",
|
||||
"toolCall.applyPatch.title.withFileCount.one": "{tool}({count} 个文件)",
|
||||
"toolCall.applyPatch.title.withFileCount.other": "{tool}({count} 个文件)",
|
||||
"toolCall.applyPatch.fileFallback": "文件 {number}",
|
||||
} as const
|
||||
Reference in New Issue
Block a user