summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/i18n
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-01-20 05:40:44 -0600
committerAdam <[email protected]>2026-01-20 17:58:06 -0600
commit92beae14100af23c20afe7b6bc2bb393643d698f (patch)
tree1047cf04130c98edac5dd322613608e3ec4b5f46 /packages/app/src/i18n
parent0470717c7fbb9ff175b70c6d76ffb2330ef40a1a (diff)
downloadopencode-92beae14100af23c20afe7b6bc2bb393643d698f.tar.gz
opencode-92beae14100af23c20afe7b6bc2bb393643d698f.zip
wip(app): i18n
Diffstat (limited to 'packages/app/src/i18n')
-rw-r--r--packages/app/src/i18n/en.ts196
-rw-r--r--packages/app/src/i18n/zh.ts210
2 files changed, 399 insertions, 7 deletions
diff --git a/packages/app/src/i18n/en.ts b/packages/app/src/i18n/en.ts
index c51b1a7d7..a5993eaa2 100644
--- a/packages/app/src/i18n/en.ts
+++ b/packages/app/src/i18n/en.ts
@@ -1,9 +1,205 @@
export const dict = {
+ "command.category.suggested": "Suggested",
+ "command.category.view": "View",
+ "command.category.project": "Project",
+ "command.category.provider": "Provider",
+ "command.category.server": "Server",
+ "command.category.session": "Session",
+ "command.category.theme": "Theme",
"command.category.language": "Language",
+ "command.category.file": "File",
+ "command.category.terminal": "Terminal",
+ "command.category.model": "Model",
+ "command.category.mcp": "MCP",
+ "command.category.agent": "Agent",
+ "command.category.permissions": "Permissions",
+
+ "theme.scheme.system": "System",
+ "theme.scheme.light": "Light",
+ "theme.scheme.dark": "Dark",
+
+ "command.sidebar.toggle": "Toggle sidebar",
+ "command.project.open": "Open project",
+ "command.provider.connect": "Connect provider",
+ "command.server.switch": "Switch server",
+ "command.session.previous": "Previous session",
+ "command.session.next": "Next session",
+ "command.session.archive": "Archive session",
+
+ "command.theme.cycle": "Cycle theme",
+ "command.theme.set": "Use theme: {{theme}}",
+ "command.theme.scheme.cycle": "Cycle color scheme",
+ "command.theme.scheme.set": "Use color scheme: {{scheme}}",
+
"command.language.cycle": "Cycle language",
"command.language.set": "Use language: {{language}}",
+
+ "command.session.new": "New session",
+ "command.file.open": "Open file",
+ "command.file.open.description": "Search files and commands",
+ "command.terminal.toggle": "Toggle terminal",
+ "command.review.toggle": "Toggle review",
+ "command.terminal.new": "New terminal",
+ "command.terminal.new.description": "Create a new terminal tab",
+ "command.steps.toggle": "Toggle steps",
+ "command.steps.toggle.description": "Show or hide steps for the current message",
+ "command.message.previous": "Previous message",
+ "command.message.previous.description": "Go to the previous user message",
+ "command.message.next": "Next message",
+ "command.message.next.description": "Go to the next user message",
+ "command.model.choose": "Choose model",
+ "command.model.choose.description": "Select a different model",
+ "command.mcp.toggle": "Toggle MCPs",
+ "command.mcp.toggle.description": "Toggle MCPs",
+ "command.agent.cycle": "Cycle agent",
+ "command.agent.cycle.description": "Switch to the next agent",
+ "command.agent.cycle.reverse": "Cycle agent backwards",
+ "command.agent.cycle.reverse.description": "Switch to the previous agent",
+ "command.model.variant.cycle": "Cycle thinking effort",
+ "command.model.variant.cycle.description": "Switch to the next effort level",
+ "command.permissions.autoaccept.enable": "Auto-accept edits",
+ "command.permissions.autoaccept.disable": "Stop auto-accepting edits",
+ "command.session.undo": "Undo",
+ "command.session.undo.description": "Undo the last message",
+ "command.session.redo": "Redo",
+ "command.session.redo.description": "Redo the last undone message",
+ "command.session.compact": "Compact session",
+ "command.session.compact.description": "Summarize the session to reduce context size",
+ "command.session.fork": "Fork from message",
+ "command.session.fork.description": "Create a new session from a previous message",
+ "command.session.share": "Share session",
+ "command.session.share.description": "Share this session and copy the URL to clipboard",
+ "command.session.unshare": "Unshare session",
+ "command.session.unshare.description": "Stop sharing this session",
+
+ "palette.search.placeholder": "Search files and commands",
+ "palette.empty": "No results found",
+ "palette.group.commands": "Commands",
+ "palette.group.files": "Files",
+
+ "dialog.provider.search.placeholder": "Search providers",
+ "dialog.provider.empty": "No providers found",
+ "dialog.provider.group.popular": "Popular",
+ "dialog.provider.group.other": "Other",
+ "dialog.provider.tag.recommended": "Recommended",
+ "dialog.provider.anthropic.note": "Connect with Claude Pro/Max or API key",
+
+ "dialog.model.select.title": "Select model",
+ "dialog.model.search.placeholder": "Search models",
+ "dialog.model.empty": "No model results",
+ "dialog.model.manage": "Manage models",
+ "dialog.model.manage.description": "Customize which models appear in the model selector.",
+
+ "dialog.model.unpaid.freeModels.title": "Free models provided by OpenCode",
+ "dialog.model.unpaid.addMore.title": "Add more models from popular providers",
+
+ "dialog.provider.viewAll": "View all providers",
+
+ "model.tag.free": "Free",
+ "model.tag.latest": "Latest",
+
+ "common.search.placeholder": "Search",
+ "common.loading": "Loading",
+ "common.cancel": "Cancel",
+ "common.save": "Save",
+ "common.saving": "Saving...",
+ "common.default": "Default",
+
+ "prompt.placeholder.shell": "Enter shell command...",
+ "prompt.placeholder.normal": "Ask anything... \"{{example}}\"",
+ "prompt.mode.shell": "Shell",
+ "prompt.mode.shell.exit": "esc to exit",
+
+ "dialog.mcp.title": "MCPs",
+ "dialog.mcp.description": "{{enabled}} of {{total}} enabled",
+ "dialog.mcp.empty": "No MCPs configured",
+
+ "mcp.status.connected": "connected",
+ "mcp.status.failed": "failed",
+ "mcp.status.needs_auth": "needs auth",
+ "mcp.status.disabled": "disabled",
+
+ "dialog.fork.empty": "No messages to fork from",
+
+ "dialog.directory.search.placeholder": "Search folders",
+ "dialog.directory.empty": "No folders found",
+
+ "dialog.server.title": "Servers",
+ "dialog.server.description": "Switch which OpenCode server this app connects to.",
+ "dialog.server.search.placeholder": "Search servers",
+ "dialog.server.empty": "No servers yet",
+ "dialog.server.add.title": "Add a server",
+ "dialog.server.add.url": "Server URL",
+ "dialog.server.add.error": "Could not connect to server",
+ "dialog.server.add.checking": "Checking...",
+ "dialog.server.add.button": "Add",
+ "dialog.server.default.title": "Default server",
+ "dialog.server.default.description": "Connect to this server on app launch instead of starting a local server. Requires restart.",
+ "dialog.server.default.none": "No server selected",
+ "dialog.server.default.set": "Set current server as default",
+ "dialog.server.default.clear": "Clear",
+
+ "dialog.project.edit.title": "Edit project",
+ "dialog.project.edit.name": "Name",
+ "dialog.project.edit.icon": "Icon",
+ "dialog.project.edit.icon.alt": "Project icon",
+ "dialog.project.edit.icon.hint": "Click or drag an image",
+ "dialog.project.edit.icon.recommended": "Recommended: 128x128px",
+ "dialog.project.edit.color": "Color",
+
+ "context.breakdown.title": "Context Breakdown",
+ "context.breakdown.note": "Approximate breakdown of input tokens. \"Other\" includes tool definitions and overhead.",
+ "context.breakdown.system": "System",
+ "context.breakdown.user": "User",
+ "context.breakdown.assistant": "Assistant",
+ "context.breakdown.tool": "Tool Calls",
+ "context.breakdown.other": "Other",
+
+ "context.systemPrompt.title": "System Prompt",
+ "context.rawMessages.title": "Raw messages",
+
+ "context.stats.session": "Session",
+ "context.stats.messages": "Messages",
+ "context.stats.provider": "Provider",
+ "context.stats.model": "Model",
+ "context.stats.limit": "Context Limit",
+ "context.stats.totalTokens": "Total Tokens",
+ "context.stats.usage": "Usage",
+ "context.stats.inputTokens": "Input Tokens",
+ "context.stats.outputTokens": "Output Tokens",
+ "context.stats.reasoningTokens": "Reasoning Tokens",
+ "context.stats.cacheTokens": "Cache Tokens (read/write)",
+ "context.stats.userMessages": "User Messages",
+ "context.stats.assistantMessages": "Assistant Messages",
+ "context.stats.totalCost": "Total Cost",
+ "context.stats.sessionCreated": "Session Created",
+ "context.stats.lastActivity": "Last Activity",
+
"language.en": "English",
"language.zh": "Chinese",
+
"toast.language.title": "Language",
"toast.language.description": "Switched to {{language}}",
+
+ "toast.theme.title": "Theme switched",
+ "toast.scheme.title": "Color scheme",
+
+ "toast.permissions.autoaccept.on.title": "Auto-accepting edits",
+ "toast.permissions.autoaccept.on.description": "Edit and write permissions will be automatically approved",
+ "toast.permissions.autoaccept.off.title": "Stopped auto-accepting edits",
+ "toast.permissions.autoaccept.off.description": "Edit and write permissions will require approval",
+
+ "toast.model.none.title": "No model selected",
+ "toast.model.none.description": "Connect a provider to summarize this session",
+
+ "toast.session.share.copyFailed.title": "Failed to copy URL to clipboard",
+ "toast.session.share.success.title": "Session shared",
+ "toast.session.share.success.description": "Share URL copied to clipboard!",
+ "toast.session.share.failed.title": "Failed to share session",
+ "toast.session.share.failed.description": "An error occurred while sharing the session",
+
+ "toast.session.unshare.success.title": "Session unshared",
+ "toast.session.unshare.success.description": "Session unshared successfully!",
+ "toast.session.unshare.failed.title": "Failed to unshare session",
+ "toast.session.unshare.failed.description": "An error occurred while unsharing the session",
}
diff --git a/packages/app/src/i18n/zh.ts b/packages/app/src/i18n/zh.ts
index 3f1360821..5d9a070c4 100644
--- a/packages/app/src/i18n/zh.ts
+++ b/packages/app/src/i18n/zh.ts
@@ -3,11 +3,207 @@ import { dict as en } from "./en"
type Keys = keyof typeof en
export const dict = {
- "command.category.language": "\u8bed\u8a00",
- "command.language.cycle": "\u5207\u6362\u8bed\u8a00",
- "command.language.set": "\u4f7f\u7528\u8bed\u8a00: {{language}}",
- "language.en": "\u82f1\u8bed",
- "language.zh": "\u4e2d\u6587",
- "toast.language.title": "\u8bed\u8a00",
- "toast.language.description": "\u5df2\u5207\u6362\u5230{{language}}",
+ "command.category.suggested": "建议",
+ "command.category.view": "视图",
+ "command.category.project": "项目",
+ "command.category.provider": "提供商",
+ "command.category.server": "服务器",
+ "command.category.session": "会话",
+ "command.category.theme": "主题",
+ "command.category.language": "语言",
+ "command.category.file": "文件",
+ "command.category.terminal": "终端",
+ "command.category.model": "模型",
+ "command.category.mcp": "MCP",
+ "command.category.agent": "智能体",
+ "command.category.permissions": "权限",
+
+ "theme.scheme.system": "系统",
+ "theme.scheme.light": "浅色",
+ "theme.scheme.dark": "深色",
+
+ "command.sidebar.toggle": "切换侧边栏",
+ "command.project.open": "打开项目",
+ "command.provider.connect": "连接提供商",
+ "command.server.switch": "切换服务器",
+ "command.session.previous": "上一个会话",
+ "command.session.next": "下一个会话",
+ "command.session.archive": "归档会话",
+
+ "command.theme.cycle": "切换主题",
+ "command.theme.set": "使用主题: {{theme}}",
+ "command.theme.scheme.cycle": "切换配色方案",
+ "command.theme.scheme.set": "使用配色方案: {{scheme}}",
+
+ "command.language.cycle": "切换语言",
+ "command.language.set": "使用语言: {{language}}",
+
+ "command.session.new": "新建会话",
+ "command.file.open": "打开文件",
+ "command.file.open.description": "搜索文件和命令",
+ "command.terminal.toggle": "切换终端",
+ "command.review.toggle": "切换审查",
+ "command.terminal.new": "新建终端",
+ "command.terminal.new.description": "创建新的终端标签页",
+ "command.steps.toggle": "切换步骤",
+ "command.steps.toggle.description": "显示或隐藏当前消息的步骤",
+ "command.message.previous": "上一条消息",
+ "command.message.previous.description": "跳转到上一条用户消息",
+ "command.message.next": "下一条消息",
+ "command.message.next.description": "跳转到下一条用户消息",
+ "command.model.choose": "选择模型",
+ "command.model.choose.description": "选择不同的模型",
+ "command.mcp.toggle": "切换 MCPs",
+ "command.mcp.toggle.description": "切换 MCPs",
+ "command.agent.cycle": "切换智能体",
+ "command.agent.cycle.description": "切换到下一个智能体",
+ "command.agent.cycle.reverse": "反向切换智能体",
+ "command.agent.cycle.reverse.description": "切换到上一个智能体",
+ "command.model.variant.cycle": "切换思考强度",
+ "command.model.variant.cycle.description": "切换到下一个强度等级",
+ "command.permissions.autoaccept.enable": "自动接受编辑",
+ "command.permissions.autoaccept.disable": "停止自动接受编辑",
+ "command.session.undo": "撤销",
+ "command.session.undo.description": "撤销上一条消息",
+ "command.session.redo": "重做",
+ "command.session.redo.description": "重做上一条撤销的消息",
+ "command.session.compact": "精简会话",
+ "command.session.compact.description": "总结会话以减少上下文大小",
+ "command.session.fork": "从消息分叉",
+ "command.session.fork.description": "从之前的消息创建新会话",
+ "command.session.share": "分享会话",
+ "command.session.share.description": "分享此会话并将链接复制到剪贴板",
+ "command.session.unshare": "取消分享会话",
+ "command.session.unshare.description": "停止分享此会话",
+
+ "palette.search.placeholder": "搜索文件和命令",
+ "palette.empty": "未找到结果",
+ "palette.group.commands": "命令",
+ "palette.group.files": "文件",
+
+ "dialog.provider.search.placeholder": "搜索提供商",
+ "dialog.provider.empty": "未找到提供商",
+ "dialog.provider.group.popular": "热门",
+ "dialog.provider.group.other": "其他",
+ "dialog.provider.tag.recommended": "推荐",
+ "dialog.provider.anthropic.note": "使用 Claude Pro/Max 或 API 密钥连接",
+
+ "dialog.model.select.title": "选择模型",
+ "dialog.model.search.placeholder": "搜索模型",
+ "dialog.model.empty": "未找到模型",
+ "dialog.model.manage": "管理模型",
+ "dialog.model.manage.description": "自定义模型选择器中显示的模型。",
+
+ "dialog.model.unpaid.freeModels.title": "OpenCode 提供的免费模型",
+ "dialog.model.unpaid.addMore.title": "从热门提供商添加更多模型",
+
+ "dialog.provider.viewAll": "查看全部提供商",
+
+ "model.tag.free": "免费",
+ "model.tag.latest": "最新",
+
+ "common.search.placeholder": "搜索",
+ "common.loading": "加载中",
+ "common.cancel": "取消",
+ "common.save": "保存",
+ "common.saving": "保存中...",
+ "common.default": "默认",
+
+ "prompt.placeholder.shell": "输入 shell 命令...",
+ "prompt.placeholder.normal": "随便问点什么... \"{{example}}\"",
+ "prompt.mode.shell": "Shell",
+ "prompt.mode.shell.exit": "按 esc 退出",
+
+ "dialog.mcp.title": "MCPs",
+ "dialog.mcp.description": "已启用 {{enabled}} / {{total}}",
+ "dialog.mcp.empty": "未配置 MCPs",
+
+ "mcp.status.connected": "已连接",
+ "mcp.status.failed": "失败",
+ "mcp.status.needs_auth": "需要授权",
+ "mcp.status.disabled": "已禁用",
+
+ "dialog.fork.empty": "没有可用于分叉的消息",
+
+ "dialog.directory.search.placeholder": "搜索文件夹",
+ "dialog.directory.empty": "未找到文件夹",
+
+ "dialog.server.title": "服务器",
+ "dialog.server.description": "切换此应用连接的 OpenCode 服务器。",
+ "dialog.server.search.placeholder": "搜索服务器",
+ "dialog.server.empty": "暂无服务器",
+ "dialog.server.add.title": "添加服务器",
+ "dialog.server.add.url": "服务器 URL",
+ "dialog.server.add.error": "无法连接到服务器",
+ "dialog.server.add.checking": "检查中...",
+ "dialog.server.add.button": "添加",
+ "dialog.server.default.title": "默认服务器",
+ "dialog.server.default.description": "应用启动时连接此服务器,而不是启动本地服务器。需要重启。",
+ "dialog.server.default.none": "未选择服务器",
+ "dialog.server.default.set": "将当前服务器设为默认",
+ "dialog.server.default.clear": "清除",
+
+ "dialog.project.edit.title": "编辑项目",
+ "dialog.project.edit.name": "名称",
+ "dialog.project.edit.icon": "图标",
+ "dialog.project.edit.icon.alt": "项目图标",
+ "dialog.project.edit.icon.hint": "点击或拖拽图片",
+ "dialog.project.edit.icon.recommended": "建议:128x128px",
+ "dialog.project.edit.color": "颜色",
+
+ "context.breakdown.title": "上下文拆分",
+ "context.breakdown.note": "输入 token 的大致拆分。“其他”包含工具定义和开销。",
+ "context.breakdown.system": "系统",
+ "context.breakdown.user": "用户",
+ "context.breakdown.assistant": "助手",
+ "context.breakdown.tool": "工具调用",
+ "context.breakdown.other": "其他",
+
+ "context.systemPrompt.title": "系统提示词",
+ "context.rawMessages.title": "原始消息",
+
+ "context.stats.session": "会话",
+ "context.stats.messages": "消息数",
+ "context.stats.provider": "提供商",
+ "context.stats.model": "模型",
+ "context.stats.limit": "上下文限制",
+ "context.stats.totalTokens": "总 token",
+ "context.stats.usage": "使用率",
+ "context.stats.inputTokens": "输入 token",
+ "context.stats.outputTokens": "输出 token",
+ "context.stats.reasoningTokens": "推理 token",
+ "context.stats.cacheTokens": "缓存 token(读/写)",
+ "context.stats.userMessages": "用户消息",
+ "context.stats.assistantMessages": "助手消息",
+ "context.stats.totalCost": "总成本",
+ "context.stats.sessionCreated": "创建时间",
+ "context.stats.lastActivity": "最后活动",
+
+ "language.en": "英语",
+ "language.zh": "中文",
+
+ "toast.language.title": "语言",
+ "toast.language.description": "已切换到{{language}}",
+
+ "toast.theme.title": "主题已切换",
+ "toast.scheme.title": "配色方案",
+
+ "toast.permissions.autoaccept.on.title": "自动接受编辑",
+ "toast.permissions.autoaccept.on.description": "编辑和写入权限将自动获批",
+ "toast.permissions.autoaccept.off.title": "已停止自动接受编辑",
+ "toast.permissions.autoaccept.off.description": "编辑和写入权限将需要手动批准",
+
+ "toast.model.none.title": "未选择模型",
+ "toast.model.none.description": "请先连接提供商以总结此会话",
+
+ "toast.session.share.copyFailed.title": "无法复制链接到剪贴板",
+ "toast.session.share.success.title": "会话已分享",
+ "toast.session.share.success.description": "分享链接已复制到剪贴板",
+ "toast.session.share.failed.title": "分享会话失败",
+ "toast.session.share.failed.description": "分享会话时发生错误",
+
+ "toast.session.unshare.success.title": "已取消分享会话",
+ "toast.session.unshare.success.description": "会话已成功取消分享",
+ "toast.session.unshare.failed.title": "取消分享失败",
+ "toast.session.unshare.failed.description": "取消分享会话时发生错误",
} satisfies Partial<Record<Keys, string>>