// English translations for the Codex++ manager UI, keyed by the original
// Chinese source text. Generated keys live in tools/i18n-keys.json; run
// `node tools/i18n-verify.mjs` to confirm this dictionary covers exactly that
// set (no missing or stale entries). See src/i18n.ts for how these are used.

// Plain strings: t("中文") -> EN_PLAIN["中文"].
export const EN_PLAIN: Record<string, string> = {
  "API Key 模式下扩展插件市场请求，尽量显示完整插件列表；官方/混合模式通常不需要。":
    "Expands plugin marketplace requests in API Key mode to show the full plugin list. Usually unnecessary in official/mixed mode.",
  "API Key 环境变量": "API Key environment variable",
  "Chat Completions 转 Responses": "Chat Completions to Responses",
  "Codex 启动参数": "Codex launch arguments",
  "Codex 工具与插件": "Codex tools & plugins",
  "Codex 应用": "Codex app",
  "Codex 应用路径": "Codex app path",
  "Codex 意外停止": "Codex stopped unexpectedly",
  "Codex 版本": "Codex version",
  "Codex 目标": "Codex goals",
  "Codex++ 官方中转站，主打稳定接入和划算价格，支持 GPT-5.6 全系列、Fable 5、Sonnet 5、GPT-5.5、GPT-5.4、Claude Opus 4.8、Claude Opus 4.7、gpt-image-2 等模型与图像能力。":
    "The official Codex++ relay, built for stable access and good value, supporting the full GPT-5.6 family, Fable 5, Sonnet 5, GPT-5.5, GPT-5.4, Claude Opus 4.8, Claude Opus 4.7, gpt-image-2 and other models plus image capabilities.",
  "Codex++ 导入": "Codex++ import",
  "Codex++ 版本": "Codex++ version",
  "Codex-Dream-Skin 风格主题和换图": "Codex-Dream-Skin style themes and image replacement",
  "Codex增强": "Codex enhancements",
  "Codex增强模式": "Codex enhancement mode",
  "Debug 端口": "Debug port",
  "Fast 按钮": "Fast button",
  "GitHub Release 更新": "GitHub Release update",
  "GitHub Release 检查": "GitHub Release check",
  "Helper 端口": "Helper port",
  "MCP、Skills、Plugins 作为全局配置独立管理，切换任意供应商都会合并。":
    "MCP, Skills and Plugins are managed independently as global config and merged in whenever you switch providers.",
  "Markdown 导出": "Markdown export",
  "Provider 同步目标": "Provider sync target",
  "Stepwise 直接发送": "Stepwise direct send",
  "基于当前对话生成下一步建议，使用独立 API 配置。": "Generate next-step suggestions from the current conversation using a separate API configuration.",
  "VLM API Key": "VLM API Key",
  "VLM Base URL": "VLM Base URL",
  "VLM Model": "VLM Model",
  "VLM 仅支持 Chat Completions 协议和聚合模式": "VLM only supports Chat Completions protocol and aggregate mode",
  "Vision Analysis Provider": "Vision Analysis Provider",
  "插件与模型": "Plugins and models",
  "管理插件市场、模型列表和服务档位相关增强。": "Manage enhancements for the plugin marketplace, model list and service tier.",
  "对话与输入": "Conversation and input",
  "调整会话管理、输入行为和对话阅读体验。": "Adjust session management, input behavior and conversation reading experience.",
  "界面与启动": "Interface and startup",
  "控制语言、启动速度和 Codex 原生界面调整。": "Control language, startup speed and Codex native UI adjustments.",
  "远程项目": "Remote projects",
  "连接 Zed Remote 和 upstream worktree 辅助能力。": "Connect Zed Remote and upstream worktree helper capabilities.",
  "皮肤管理": "Skin management",
  "Dream Skin 状态": "Dream Skin status",
  "主题库": "Theme library",
  "恢复 Dream Skin 默认主题": "Restore the default Dream Skin theme",
  "恢复 Codex 默认配色": "Restore Codex default colors",
  "外观模式": "Appearance mode",
  "自动": "Auto",
  "亮色": "Light",
  "暗色": "Dark",
  "跟随图片配色": "Use image colors",
  "亮暗模式直接控制 Codex 外观；强调色留空时自动从主题图片提取。":
    "The appearance mode directly controls Codex. Leave the accent empty to derive it from the theme image.",
  "主题市场": "Theme marketplace",
  "主题视图": "Theme view",
  "社区主题": "Community themes",
  "投稿主题": "Submit theme",
  "从 CodexPlusPlus-Themes 仓库加载可安装主题。": "Load installable themes from the CodexPlusPlus-Themes repository.",
  "远程仓库暂不可用，当前显示本地缓存。": "The remote repository is unavailable. Showing the local cache.",
  "正在加载主题市场…": "Loading theme marketplace…",
  "暂无主题说明。": "No theme description.",
  "来源": "Source",
  "Dream Skin 副本": "Dream Skin copy",
  "输入新的主题名称": "Enter a new theme name",
  "删除主题": "Delete theme",
  "保存 Dream Skin 截图": "Save Dream Skin screenshot",
  "保存截图": "Save screenshot",
  "实机验证": "Live verification",
  "项目来源：Fei-Away/Codex-Dream-Skin · 原作者 Fei-Away · MIT License · 第三方图片需自行确认授权":
    "Source: Fei-Away/Codex-Dream-Skin · Fei-Away · MIT License · Confirm third-party image rights before use",
  "运行状态": "Runtime status",
  "配置保存在 Codex++，实时操作通过本机回环 CDP 执行": "Configuration stays in Codex++; live operations use the local loopback CDP connection",
  "应用会保存当前图片与主题配置；恢复原始外观不会删除主题。":
    "Applying saves the current image and theme; restoring the original appearance does not delete the theme.",
  "当前状态": "Current status",
  "保存并应用主题；需要重启时只会标记为待应用": "Save and apply the theme; when a restart is required it will only be marked as pending",
  "应用皮肤": "Apply skin",
  "恢复 Codex 外观": "Restore Codex appearance",
  "Codex 原始外观": "Original Codex appearance",
  "刷新状态": "Refresh status",
  "图片与主题": "Image and theme",
  "自定义图片会被导入 Codex++ 托管目录；主题字段与目标项目 theme.json 对齐":
    "Custom images are imported into Codex++ managed storage; theme fields match the source theme.json.",
  "我的主题": "My themes",
  "选择卡片只会载入草稿；需要完整切换时会保存为待应用主题。":
    "Selecting a card only loads a draft. Complete switches are saved as a pending theme.",
  "选择其他卡片可继续调整待应用主题；当前界面不会自动重启。":
    "Select another card to update the pending theme. This screen will not restart Codex automatically.",
  "从图片创建": "Create from image",
  "保存为新主题": "Save as new theme",
  "保存主题": "Save theme",
  "应用主题": "Apply theme",
  "更新待应用": "Update pending theme",
  "保存主题；需要重启时不会打断当前操作": "Save the theme without interrupting your work when a restart is required",
  "主题已保存并设为待应用，不会自动重启 Codex。": "The theme was saved as pending. Codex will not restart automatically.",
  "待应用主题": "Pending theme",
  "待应用": "Pending",
  "当前运行": "Currently running",
  "当前皮肤": "Current skin",
  "配置已保存，可以继续浏览和编辑，稍后重启即可生效。":
    "The configuration is saved. You can keep browsing and editing, then restart later to apply it.",
  "重启并应用": "Restart and apply",
  "内置主题": "Built-in theme",
  "当前未保存主题": "Current unsaved theme",
  "用户主题": "User theme",
  "已修改": "Modified",
  "主题操作": "Theme actions",
  "重命名": "Rename",
  "正在加载主题库…": "Loading theme library...",
  "Windows 使用亮暗模式、图片取色和可选强调色；完整色板仅在 macOS 生效。":
    "Windows uses appearance mode, image-derived colors, and an optional accent; the full palette applies only on macOS.",
  "macOS 会应用主题中的图片、文字和颜色配置。":
    "macOS applies the image, text, and color settings from the theme.",
  "Dream Skin 图片预览": "Dream Skin image preview",
  "自定义托管图片": "Custom managed image",
  "目标项目默认图片": "Source project default image",
  "托管图片路径": "Managed image path",
  "使用目标项目默认图片": "Using the source project default image",
  "导入图片": "Import image",
  "恢复默认图片": "Restore default image",
  "主题 ID": "Theme ID",
  "主题名称": "Theme name",
  "品牌副标题": "Brand subtitle",
  "主题标语": "Theme tagline",
  "项目前缀": "Project prefix",
  "项目按钮文字": "Project button text",
  "状态文字": "Status text",
  "引用文字": "Quote text",
  "背景色": "Background",
  "面板色": "Panel",
  "次级面板色": "Alternate panel",
  "强调色": "Accent",
  "次级强调色": "Alternate accent",
  "辅助色": "Secondary",
  "高亮色": "Highlight",
  "文字色": "Text",
  "弱化文字色": "Muted text",
  "边线色": "Line",
  "自定义主题": "Customize theme",
  "图片、文字和配色等高级编辑项": "Advanced image, text and color settings",
  "有未保存修改": "Unsaved changes",
  "按需展开": "Expand when needed",
  "主题有未保存修改": "Theme has unsaved changes",
  "保存修改后继续，或放弃修改。": "Save your changes to continue, or discard them.",
  "保存并继续": "Save and continue",
  "放弃修改": "Discard changes",
  "诊断与验证": "Diagnostics and verification",
  "检查官方应用身份、CDP renderer、目标样式和页面布局": "Check the official app identity, CDP renderer, source styles, and page layout",
  "运行诊断": "Runtime diagnostics",
  "最近实机验证": "Latest live verification",
  "刷新状态后显示运行诊断。": "Refresh status to show runtime diagnostics.",
  "运行实机验证后显示页面检查结果。": "Run live verification to show page checks.",
  "注入版本": "Injection version",
  "截图路径": "Screenshot path",
  "未保存截图": "No screenshot saved",
  "刷新诊断": "Refresh diagnostics",
  "通过": "Pass",
  "警告": "Warning",
  "已应用并通过检查": "Applied and verified",
  "需要处理": "Needs attention",
  "验证失败": "Verification failed",
  "Codex 未运行或不可连接": "Codex is not running or cannot be reached",
  "选择皮肤图片": "Select skin image",
  "请先在 Codex增强 页面开启总开关。": "Enable the master switch on the Codex enhancements page first.",
  "启用 Codex 皮肤": "Enable Codex skin",
  "最多建议数": "Max suggestions",
  "最大输入字符": "Max input characters",
  "最大输出 tokens": "Max output tokens",
  "测试连接": "Test connection",
  "超时毫秒": "Timeout milliseconds",
  "连接": "Connection",
  "高级参数": "Advanced parameters",
  "TOML 配置体": "TOML config body",
  "Watcher 操作": "Watcher action",
  "Watcher 状态": "Watcher status",
  "Watcher 用于保持 Codex++ 接管状态": "The watcher keeps Codex++ in control",
  "Watcher 自动接管": "Watcher auto-takeover",
  "仅支持 V2 桌宠；不会修改宠物文件。将 V2 的 Computer Use 光标朝向动作映射到真实鼠标，V1 开启后安全不生效；拖拽、原生悬停或 Computer Use 活跃时自动让步。":
    "V2 pets only; pet files are never modified. Maps the V2 Computer Use cursor-look animation to the real mouse cursor. V1 pets safely remain unchanged, while dragging, native hover, and active Computer Use take priority.",
  "Zed 远程打开": "Zed remote open",
  "Zed 远程项目": "Zed remote projects",
  "Zed 项目记录": "Zed project history",
  "Zed 默认打开策略": "Default Zed open strategy",
  "Zed 默认行为": "Zed default behavior",
  "cc-switch 导入": "cc-switch import",
  "config.toml 预览": "config.toml preview",
  "provider 未记录": "provider not recorded",
  "ssh:// URL 已复制。": "ssh:// URL copied.",
  "、": ", ",
  "」的供应商": "”",
  "上一次切换还没有完成，请稍后再试。": "The previous switch hasn't finished yet. Please try again shortly.",
  "上下文大小": "Context size",
  "上下文窗口": "Context window",
  "上次修复结果": "Last repair result",
  "上次更新结果": "Last update result",
  "上游协议": "Upstream protocol",
  "上一页": "Previous page",
  "下一页": "Next page",
  "下载并运行安装包": "Download and run installer",
  "不写 API 文件": "Does not write API files",
  "与 Codex 内插件菜单使用同一个远端广告源": "Uses the same remote ad source as the in-Codex plugin menu",
  "个": "",
  "个会话": " session(s)",
  "中国官方": "China official",
  "主页": "Homepage",
  "主题和启动参数": "Theme and launch arguments",
  "从 GitHub 静态清单加载": "Loaded from the static GitHub manifest",
  "从 Word 等富文本粘贴到 Codex composer 时只保留纯文本，避免被识别为图片/文件附件。需重启 Codex 才生效。":
    "Keeps only plain text when pasting rich text (e.g. from Word) into the Codex composer, avoiding it being treated as an image/file attachment. Requires restarting Codex.",
  "从上游获取": "Fetch from upstream",
  "从最新 upstream 分支创建 Git worktree。": "Create a Git worktree from the latest upstream branch.",
  "从环境变量和 config.toml 的 /v1/models 拉取模型并补进模型列表。":
    "Pull models from environment variables and config.toml's /v1/models and add them to the model list.",
  "从第三方导入": "Import from third party",
  "从预设模板创建": "Create from a preset template",
  "会话": "Session",
  "会话 ID 标识": "Session ID badge",
  "会话删除": "Session deletion",
  "会话删除、导出、项目移动和用户脚本等界面能力": "UI capabilities like session deletion, export, project move and user scripts",
  "会话删除、导出、项目移动和脚本能力": "Session deletion, export, project move and script capabilities",
  "会话管理": "Session management",
  "会话项目移动": "Session project move",
  "使用": "Use",
  "使用中": "In use",
  "例如 C:\\Program Files\\WindowsApps\\OpenAI.Codex...\\app": "e.g. C:\\Program Files\\WindowsApps\\OpenAI.Codex...\\app",
  "例如 context7": "e.g. context7",
  "例如 deepseek-v4-pro": "e.g. deepseek-v4-pro",
  "例如 gpt-5.4-mini": "e.g. gpt-5.4-mini",
  "例如 主力聚合池": "e.g. Primary aggregate pool",
  "供": "P",
  "供应商": "Provider",
  "供应商切换": "Provider switch",
  "供应商切换不可用": "Provider switching unavailable",
  "供应商切换中": "Switching provider",
  "供应商列表": "Provider list",
  "供应商测试": "Provider test",
  "供应商测试模型": "Provider test model",
  "供应商配置": "Provider configuration",
  "供应商配置可能不正确": "Provider configuration may be incorrect",
  "供应商配置已关闭": "Provider configuration disabled",
  "供应商配置总开关已关闭": "The provider configuration master switch is off",
  "供应商配置总开关已关闭；当前只保存配置，不写入 Codex live 文件":
    "The provider configuration master switch is off; changes are only saved, not written to Codex live files",
  "供应商预设列表": "Provider preset list",
  "保存": "Save",
  "保存为默认路径": "Save as default path",
  "保存到 Codex++ state，不改写 Zed settings。": "Saved to Codex++ state, does not modify Zed settings.",
  "保存增强设置": "Save enhancement settings",
  "保存扩展项": "Save entry",
  "保存的应用路径": "Saved app path",
  "保存策略": "Save strategy",
  "保存自动修复设置": "Save auto-repair settings",
  "保存设置": "Save settings",
  "保存路径": "Saved path",
  "修复入口": "Repair entrypoints",
  "修复快捷方式": "Repair shortcuts",
  "修复插件市场": "Repair plugin marketplace",
  "健康检查": "Health check",
  "先添加至少 1 个已填写 Base URL / Key 的 API 供应商，再创建聚合供应商。":
    "Add at least 1 API provider with a Base URL / Key before creating an aggregate provider.",
  "免安装版或解包版只需要选择一次，之后静默启动会自动复用": "Portable or unpacked builds only need to be selected once; silent launch reuses it afterwards",
  "入口卸载": "Entrypoint uninstall",
  "入口安装": "Entrypoint install",
  "入口安装、修复、Watcher 与手动启动": "Entrypoint install, repair, watcher and manual launch",
  "入口管理": "Entrypoint management",
  "全选当前列表": "Select all in current list",
  "关于": "About",
  "关于 Codex++": "About Codex++",
  "关闭": "Off",
  "关闭后会停用删除、导出、项目移动、插件相关和菜单位置增强。":
    "When off, disables deletion, export, project move, plugin-related and menu placement enhancements.",
  "关闭后本工具不会在手动切换时写入 Codex 的 config.toml / auth.json；启动 Codex 时始终不会自动改这些文件。":
    "When off, this tool won't write Codex's config.toml / auth.json on manual switches; it never auto-modifies these files when launching Codex.",
  "兼容增强": "Compatible enhancement",
  "内容来自 BigPizzaV3/Ad-List，分为赞助商推荐和普通推荐。":
    "Content comes from BigPizzaV3/Ad-List, split into sponsor recommendations and regular recommendations.",
  "内置": "Built-in",
  "内置、手动和市场安装脚本；可在这里启停或删除用户脚本": "Built-in, manual and marketplace-installed scripts; enable, disable or delete user scripts here",
  "内置和用户自定义脚本清单": "Built-in and user-defined script inventory",
  "切换 thread 时恢复上一次浏览位置。": "Restore the last scroll position when switching threads.",
  "切换中": "Switching",
  "切换主题": "Toggle theme",
  "切换到此供应商时会写入 ~/.codex/auth.json": "Switching to this provider writes ~/.codex/auth.json",
  "切换到此供应商时会写入的预览；上下文开关变化会立即反映": "Preview of what gets written when switching to this provider; context toggles are reflected immediately",
  "切换到中文": "Switch to Chinese",
  "切换到英文": "Switch to English",
  "切换到浅色": "Switch to light",
  "切换到深色": "Switch to dark",
  "切换对话保留位置": "Preserve scroll position across threads",
  "点击建议后自动发送；关闭时只填入输入框。": "Automatically sends after clicking a suggestion. When off, it only fills the composer.",
  "刚刚启动": "Just launched",
  "删除": "Delete",
  "删除会创建本地备份；如果 Codex App 正在使用该会话，建议先关闭对应会话窗口再操作。":
    "Deletion creates a local backup; if the Codex app is using this session, close the session window first.",
  "删除会话": "Delete session",
  "删除供应商": "Delete provider",
  "删除已选": "Delete selected",
  "删除扩展项": "Delete entry",
  "删除模型": "Delete model",
  "刷新": "Refresh",
  "刷新会话": "Refresh sessions",
  "刷新列表": "Refresh list",
  "刷新市场": "Refresh marketplace",
  "刷新当前页面": "Refresh current page",
  "刷新推荐": "Refresh recommendations",
  "刷新本地": "Refresh local",
  "刷新项目": "Refresh projects",
  "加入当前工作区": "Add to current workspace",
  "包含版本、路径、设置和平台信息": "Includes version, paths, settings and platform info",
  "协议": "Protocol",
  "卸载入口": "Uninstall entrypoints",
  "卸载时移除 Codex++ 托管数据": "Remove Codex++ managed data on uninstall",
  "历史会话修复": "Historical session repair",
  "历史会话修复失败，请查看错误提示后重试。": "Historical session repair failed. Check the error message and retry.",
  "历史会话修复进度": "Historical session repair progress",
  "压缩上下文大小": "Compaction context size",
  "原生菜单栏位置": "Native menu bar placement",
  "原生菜单汉化": "Native menu localization",
  "反馈问题": "Report an issue",
  "发现": "Discovered",
  "发送 hi 测试": "Send a 'hi' test",
  "取消": "Cancel",
  "只保留非 MCP、Skills、Plugins 的跨供应商配置；工具与插件在独立页面管理。":
    "Keeps only cross-provider config that isn't MCP/Skills/Plugins; tools and plugins are managed on a separate page.",
  "只填写表头下面的内容，例如：\ncommand = \"npx\"\nargs = [\"-y\", \"@upstash/context7-mcp\"]":
    "Fill in only the content under the header, for example:\ncommand = \"npx\"\nargs = [\"-y\", \"@upstash/context7-mcp\"]",
  "只能勾选已填写 Base URL / Key 的 API 供应商，聚合供应商不会作为成员。":
    "Only API providers with a Base URL / Key can be selected; aggregate providers can't be members.",
  "可更新": "Update available",
  "同一对话保持一个成员，不同对话依次分配。": "Keeps one member per conversation; different conversations are assigned in turn.",
  "同步 Zed settings": "Sync Zed settings",
  "同步目标": "Sync target",
  "名称": "Name",
  "启动 Codex App 时追加到默认 CDP 参数后。留空则保持默认启动行为。":
    "Appended after the default CDP arguments when launching the Codex app. Leave empty to keep default launch behavior.",
  "启动 Codex++": "Launch Codex++",
  "启动任务": "Launch task",
  "启动前自动修复历史会话": "Auto-repair historical sessions before launch",
  "启动时通过本地主进程调试端口汉化 Codex 原生菜单；不修改安装包。需重启 Codex 才生效。":
    "Localizes the Codex native menu via the local main-process debug port at launch; doesn't modify the install package. Requires restarting Codex.",
  "启用": "Enable",
  "启用 Codex 图片覆盖层": "Enable Codex image overlay",
  "启用 Codex增强": "Enable Codex enhancements",
  "启用 Windows Computer Use Guard": "Enable Windows Computer Use Guard",
  "启用供应商配置切换": "Enable provider configuration switching",
  "启用此扩展项": "Enable this entry",
  "启用目标功能": "Enable goals feature",
  "图片": "Image",
  "图片覆盖层": "Image overlay",
  "在会话列表悬停显示删除按钮，并支持撤销。": "Show a delete button on hover in the session list, with undo support.",
  "在会话列表显示导出按钮，导出带时间戳的 Markdown。": "Show an export button in the session list to export timestamped Markdown.",
  "在 Codex 页面显示可拖动的后续建议浮层；建议由单独配置的 Stepwise API 生成。":
    "Shows a draggable follow-up suggestion overlay in the Codex page. Suggestions are generated by a separate Stepwise API.",
  "在侧边栏会话标题前显示短 ID 和 UUIDv7 创建时间，方便定位历史会话。":
    "Show a short ID and UUIDv7 creation time before session titles in the sidebar to help locate past sessions.",
  "基础设置": "Basic settings",
  "填写中转服务 Base URL": "Enter the relay service Base URL",
  "复制": "Copy",
  "复制 ssh:// URL": "Copy ssh:// URL",
  "复制失败": "Copy failed",
  "复制报告": "Copy report",
  "复用窗口": "Reuse window",
  "多选": "Multi-select",
  "失败": "Failed",
  "失败切换": "Failover",
  "失败切换会保留成员顺序，优先使用第一个可用供应商。": "Failover preserves member order, preferring the first available provider.",
  "如果使用官方模式或官方混入 API 模式，通常不需要开启插件市场解锁。":
    "If you use official mode or official mixed-API mode, you usually don't need plugin marketplace unlock.",
  "安装": "Install",
  "安装 watcher": "Install watcher",
  "安装入口": "Install entrypoints",
  "安装包更新失败，请查看错误提示后重试。": "Installer update failed. Check the error message and retry.",
  "安装包更新进度": "Installer update progress",
  "安装维护": "Install & maintenance",
  "完整增强": "Full enhancement",
  "官方": "Official",
  "官方中转站": "Official relay",
  "官方混入 API Key": "Official mixed-in API Key",
  "官方混合 API 不应在 auth.json 中保存 OPENAI_API_KEY。请清理此供应商的 auth.json 后再切换。":
    "Official mixed API should not store OPENAI_API_KEY in auth.json. Clear this provider's auth.json before switching.",
  "官方登录": "Official login",
  "官方登录模式": "Official login mode",
  "对话居中宽度": "Centered conversation width",
  "导入 Codex++ 供应商": "Import Codex++ provider",
  "尚未刷新": "Not refreshed yet",
  "尚未加载推荐内容": "Recommendations not loaded yet",
  "尚未检查 Codex 应用路径。": "Codex app path not checked yet.",
  "尚未检查 GitHub Release；更新会下载并启动安装包。": "GitHub Release not checked yet; updating downloads and launches the installer.",
  "尚未生成诊断报告。": "No diagnostic report generated yet.",
  "尚未运行安装包更新。": "Installer update has not run yet.",
  "尚未运行历史会话修复。": "Historical session repair hasn't run yet.",
  "尚未运行插件市场修复。": "Plugin marketplace repair hasn't run yet.",
  "尚未检查官方远端插件缓存。": "Official remote plugin cache has not been checked yet.",
  "正在检查内置官方远端插件缓存…": "Checking embedded official remote plugin cache…",
  "正在释放内置远端插件快照…": "Extracting embedded remote plugin snapshot…",
  "正在注册官方远端插件市场…": "Registering official remote plugin marketplace…",
  "正在刷新官方远端插件缓存状态…": "Refreshing official remote plugin cache status…",
  "正在处理…": "Processing…",
  "工具与插件": "Tools & plugins",
  "已切回官方登录；Codex增强已设为兼容增强。": "Switched back to official login; Codex enhancements set to compatible.",
  "已切换到纯 API；Codex增强已设为完整增强。": "Switched to pure API; Codex enhancements set to full.",
  "已刷新 Codex 应用、入口和 Watcher 状态。": "Refreshed Codex app, entrypoint and watcher status.",
  "已受理": "Accepted",
  "已安装": "Installed",
  "已归档": "Archived",
  "已打开聚合供应商详情；请先添加或完善至少 1 个普通 API 供应商的 Base URL / Key，再勾选为成员。":
    "Opened aggregate provider details; first add or complete the Base URL / Key of at least 1 regular API provider, then select it as a member.",
  "已找到": "Found",
  "已检测": "Detected",
  "已注册": "Registered",
  "已缓存未注册": "Cached, not registered",
  "已清除保存路径，后续启动会回到自动探测。": "Saved path cleared; future launches fall back to auto-detection.",
  "已登录": "Logged in",
  "已禁用": "Disabled",
  "已选择": "Selected",
  "市场状态": "Marketplace status",
  "市场脚本": "Marketplace scripts",
  "序列化字段": "Serialized fields",
  "应用路径已保存，之后启动会自动复用。": "App path saved; future launches reuse it automatically.",
  "应用路径留空时使用已保存路径；没有保存路径时使用自动探测": "When the app path is empty, the saved path is used; with no saved path, auto-detection is used",
  "应用路径覆盖": "App path override",
  "开启": "On",
  "开启后，通过 Codex++ 启动 Codex 前自动整理一次旧对话的归属标记。":
    "When on, tidies up ownership tags of old conversations once before launching Codex through Codex++.",
  "强制中文界面": "Force Chinese UI",
  "强制启用 Codex App 内置 zh-CN 语言包，避免 Statsig/VPN 不通时回退英文。需重启 Codex 才能完整生效。":
    "Forces the Codex app's built-in zh-CN language pack to avoid falling back to English when Statsig/VPN is unreachable. Requires restarting Codex to fully apply.",
  "当前": "Current",
  "当前页会话": "Sessions on this page",
  "当前页未归档": "Active on this page",
  "当前页已归档": "Archived on this page",
  "当前 provider": "current provider",
  "当前不会写入 Codex config.toml / auth.json。打开供应商配置总开关后再切换。":
    "Codex config.toml / auth.json won't be written right now. Turn on the provider configuration master switch before switching.",
  "当前为": "Currently ",
  "当前为兼容增强模式，插件市场解锁不会启用；其他页面功能仍可用。":
    "Currently in compatible enhancement mode; plugin marketplace unlock is not enabled, but other page features still work.",
  "当前会话": "Current session",
  "当前使用中：打开时从 ~/.codex/auth.json 回填，保存后会作为此供应商 auth 存档":
    "Currently in use: backfilled from ~/.codex/auth.json when opened; saving stores it as this provider's auth archive",
  "当前供应商 config.toml 里没有可提取的通用配置。": "The current provider's config.toml has no extractable common config.",
  "当前供应商切换后会写入的预览；上下文开关变化会立即反映": "Preview of what the current provider writes after switching; context toggles are reflected immediately",
  "当前供应商还没有完整 config.toml / API Key 存档。": "The current provider doesn't have a complete config.toml / API Key archive yet.",
  "当前共有": "There are currently ",
  "当前未登录官方账号，也未配置混入 API 的 Base URL / Key。": "Not logged into an official account, and no mixed-in API Base URL / Key configured.",
  "当前未登录官方账号；切到官方登录模式后仍需要先在 Codex/ChatGPT 登录。":
    "Not logged into an official account; after switching to official login mode you still need to log in via Codex/ChatGPT first.",
  "当前未登录官方账号；官方登录混入 API Key 需要先登录官方账号。":
    "Not logged into an official account; official login with a mixed-in API Key requires logging into an official account first.",
  "当前正在使用": "Currently in use",
  "当前识别": "Currently detected",
  "当前还没有填写混入 API 的 Base URL / Key。": "The mixed-in API Base URL / Key hasn't been filled in yet.",
  "当前进程": "Current process",
  "当前配置 provider": "Currently configured provider",
  "快捷方式修复": "Shortcut repair",
  "快捷方式写入系统实际桌面位置，不使用写死桌面路径": "Shortcuts are written to the system's actual desktop location, not a hardcoded desktop path",
  "快速启动": "Fast startup",
  "总权重": "Total weight",
  "成员供应商": "Member providers",
  "成员数量": "Member count",
  "或": " or ",
  "手动": "Manual",
  "手动启动": "Manual launch",
  "打开": "Open",
  "打开 JOJO Code": "Open JOJO Code",
  "打开关于": "Open About",
  "打开链接": "Open link",
  "打开项目主页": "Open project homepage",
  "扩展项": "entry",
  "批量删除会话": "Bulk delete sessions",
  "把 Codex++ 菜单插入 Codex 顶部原生菜单栏。": "Insert the Codex++ menu into Codex's top native menu bar.",
  "把主对话和输入框限制到固定最大宽度，适合大屏阅读。": "Constrain the main conversation and input box to a fixed max width, good for large-screen reading.",
  "把会话移动到普通对话或其他本地项目。": "Move a session to a regular conversation or another local project.",
  "投稿": "Submit",
  "拖动排序": "Drag to reorder",
  "按对话轮转": "Per-conversation round-robin",
  "按对话轮转会让同一对话尽量保持固定成员，降低上下文漂移。":
    "Per-conversation round-robin keeps the same conversation on a fixed member where possible, reducing context drift.",
  "按成员权重分配请求，权重越高承担越多。": "Distribute requests by member weight; higher weight takes on more.",
  "按成员顺序请求，失败后切到下一个供应商。": "Request members in order, switching to the next provider on failure.",
  "按请求轮转": "Per-request round-robin",
  "按请求轮转会逐请求切换成员，适合供应商能力接近的场景。":
    "Per-request round-robin switches members request by request, suited to providers with similar capabilities.",
  "接入模式": "Access mode",
  "推荐内容": "Recommendations",
  "提取当前供应商配置": "Extract current provider config",
  "插件": "Plugins",
  "插件列表全量展示": "Show full plugin list",
  "插件市场修复": "Plugin marketplace repair",
  "插件市场修复失败，请查看错误提示后重试。": "Plugin marketplace repair failed. Check the error message and retry.",
  "插件市场修复进度": "Plugin marketplace repair progress",
  "插件市场解锁": "Plugin marketplace unlock",
  "官方远端插件缓存": "Official remote plugin cache",
  "官方远端插件缓存进度": "Official remote plugin cache progress",
  "官方远端插件缓存修复失败，请查看错误提示后重试。": "Official remote plugin cache repair failed. Check the error message and retry.",
  "使用 Codex++ 内置快照补齐远端插件，API 模式也可显示和安装 Product Design 插件。":
    "Use the embedded Codex++ snapshot to add remote plugins, so API mode can also show and install the Product Design plugin.",
  "搜索供应商…": "Search providers…",
  "数据库": "Database",
  "新增": "Add ",
  "新建供应商需要先保存到列表": "A new provider must be saved to the list first",
  "新机器没有本地插件市场时，可从 openai/plugins 初始化到当前 CODEX_HOME。":
    "On a new machine without a local plugin marketplace, initialize it into the current CODEX_HOME from openai/plugins.",
  "新窗口": "New window",
  "日志已刷新": "Logs refreshed",
  "日志清理": "Log cleanup",
  "清理日志": "Clear logs",
  "日志已复制。": "Logs copied.",
  "时间": "Time",
  "桌宠跟随真实鼠标": "Real-mouse pet look",
  "释放并注册内置缓存": "Extract and register embedded cache",
  "显示服务模式切换按钮；Fast 仅支持 gpt-5.4 / gpt-5.5，其他模型按 Standard 发送。":
    "Show the service-tier toggle button; Fast only supports gpt-5.4 / gpt-5.5, other models are sent as Standard.",
  "普通推荐": "Regular recommendations",
  "多模态模型（支持图片输入的模型）请保持 send-as-is。": "Keep send-as-is for multimodal models that support image input.",
  "暂无": "None",
  "暂无启动状态。": "No launch status yet.",
  "暂无描述。": "No description.",
  "暂无日志。": "No logs.",
  "暂无普通推荐。": "No regular recommendations.",
  "暂无状态文件": "No status file",
  "暂无赞助商推荐。": "No sponsor recommendations.",
  "暂无项目。": "No projects.",
  "更多选项": "More options",
  "更新": "Update",
  "更新安装": "Update install",
  "最新版本": "Latest version",
  "最近启动": "Recent launches",
  "最近打开": "Recently opened",
  "最近日志": "Recent logs",
  "未发现可导入供应商": "No importable providers found",
  "未发现用户脚本。": "No user scripts found.",
  "未命名会话": "Untitled session",
  "未命名供应商": "Untitled provider",
  "未命名聚合供应商": "Untitled aggregate provider",
  "未填写": "Not filled in",
  "未填写 URL": "No URL filled in",
  "未安装": "Not installed",
  "未实现": "Not implemented",
  "未检查": "Not checked",
  "未检测到": "Not detected",
  "未检测到 Codex 应用版本。": "Codex app version not detected.",
  "未发现缓存": "Cache not found",
  "未发现本地缓存；点击按钮会从 Codex++ 内置快照释放并注册，无需官方账号预缓存。":
    "Local cache not found. Click the button to extract and register the embedded Codex++ snapshot; no official-account pre-cache is required.",
  "未知": "Unknown",
  "未知作者": "Unknown author",
  "未知来源": "Unknown source",
  "未知版本": "Unknown version",
  "未记录路径": "No path recorded",
  "未记录项目路径": "No project path recorded",
  "未读取到本地会话，或当前 SQLite 会话库不存在。": "No local sessions read, or the current SQLite session database doesn't exist.",
  "本地 Codex 增强、管理工具和安装包维护": "Local Codex enhancements, management tools and install package maintenance",
  "本地会话": "Local sessions",
  "本地整体": "Local overall",
  "本地脚本": "Local scripts",
  "权重": "Weight",
  "权重轮转": "Weighted round-robin",
  "权重轮转会读取每个成员的权重值，权重越高的成员获得更多请求。":
    "Weighted round-robin reads each member's weight; members with higher weight receive more requests.",
  "查看、删除和修复 Codex 本地会话": "View, delete and repair Codex local sessions",
  "检查": "Check",
  "检查与修复": "Check & repair",
  "检查入口、Codex 应用和 Watcher 状态": "Check entrypoint, Codex app and watcher status",
  "检查配置、模型列表和一次真实请求，定位供应商不可用原因。": "Check configuration, model list and one real request to find why a provider is unavailable.",
  "检查完成": "Check complete",
  "检查更新": "Check for updates",
  "检查问题、启动与快速修复": "Check issues, launch and quick fixes",
  "诊断供应商": "Diagnose provider",
  "检测": "Detect",
  "检测到 OPENAI 环境变量": "OPENAI environment variables detected",
  "检测到来自网页的供应商配置导入请求，确认后会写入本机 Codex++ 管理工具。":
    "A provider config import request from the web was detected; confirming writes it to this machine's Codex++ manager.",
  "概览": "Overview",
  "概览只展示关键问题，具体配置在对应页面处理": "The overview shows only key issues; specific configuration is handled on the relevant pages",
  "概览已检查": "Overview checked",
  "模型列表": "Model list",
  "模型名称": "Model name",
  "模型白名单解锁": "Model whitelist unlock",
  "模式": "Mode",
  "模式。": " mode.",
  "正在下载安装包…": "Downloading installer…",
  "正在下载插件市场快照…": "Downloading plugin marketplace snapshot…",
  "正在修复…": "Repairing…",
  "正在修复历史会话": "Repairing historical sessions",
  "正在准备安装包下载…": "Preparing installer download…",
  "正在启动安装包…": "Launching installer…",
  "正在写入 Codex 配置…": "Writing Codex config…",
  "正在写入修复与备份…": "Writing repairs and backups…",
  "正在删除…": "Deleting…",
  "正在扫描历史会话与索引…": "Scanning historical sessions and indexes…",
  "正在检查会话 provider 标记…": "Checking session provider tags…",
  "正在检查本地插件市场…": "Checking local plugin marketplace…",
  "正在获取 GitHub Release 信息…": "Fetching GitHub Release information…",
  "正在解压并校验插件文件…": "Extracting and verifying plugin files…",
  "正在连接 openai/plugins…": "Connecting to openai/plugins…",
  "正常": "OK",
  "此上游会通过本地 127.0.0.1:57321 转成 Responses API，需要从 Codex++ 启动 Codex。":
    "This upstream is converted to the Responses API via local 127.0.0.1:57321, which requires launching Codex from Codex++.",
  "此供应商会保留官方登录模式，并把请求混入当前 API Key；Codex增强仍使用兼容模式。":
    "This provider keeps official login mode and mixes the current API Key into requests; Codex enhancements stay in compatible mode.",
  "此供应商会切回官方登录模式，使用 ChatGPT 官方账号，不写入 API Key。":
    "This provider switches back to official login mode using the official ChatGPT account, without writing an API Key.",
  "此供应商会同时写入 config.toml 和 auth.json；API Key 也会注入到 provider bearer token。":
    "This provider writes both config.toml and auth.json; the API Key is also injected into the provider bearer token.",
  "每次请求按成员顺序切换，适合均匀摊请求量。": "Switches members in order on each request, good for evenly spreading request volume.",
  "每行一个参数，例如 --force_high_performance_gpu。不需要填写 open 或 --args。":
    "One argument per line, e.g. --force_high_performance_gpu. No need to include open or --args.",
  "每行一个模型；上下文窗口可填": "One model per line; the context window can be",
  "没有匹配「": "No providers matching “",
  "浅色": "Light",
  "测试模型": "Test model",
  "消息": "Message",
  "深色": "Dark",
  "混入 API": "Mixed-in API",
  "混入 API KEY": "Mix in API KEY",
  "混入 API Key": "Mix in API Key",
  "添加供应商": "Add provider",
  "添加模型": "Add model",
  "添加聚合供应商": "Add aggregate provider",
  "清空选择": "Clear selection",
  "清除保存路径": "Clear saved path",
  "清理幽灵任务索引": "Clean up ghost task index",
  "幽灵任务索引处理失败，请查看错误提示后重试。": "Ghost task index processing failed. Check the error message and retry.",
  "点击刷新会话读取本地数据库": "Click Refresh Sessions to read the local database",
  "点击刷新市场加载远程脚本。": "Click Refresh Marketplace to load remote scripts.",
  "版本信息、项目链接、GitHub Release 更新、日志与诊断": "Version info, project links, GitHub Release updates, logs and diagnostics",
  "状态": "Status",
  "独立管理 Codex 的 MCP、Skills、Plugins；切换任意供应商都会带上。":
    "Manage Codex's MCP, Skills and Plugins independently; they carry over whenever you switch providers.",
  "独立管理 MCP、Skills、Plugins": "Independently manage MCP, Skills and Plugins",
  "环境变量": "Environment variables",
  "环境变量检测": "Environment variable detection",
  "环境变量清理": "Environment variable cleanup",
  "用户": "User",
  "用户环境": "User environment",
  "界面主题": "UI theme",
  "留空不改写，例如 160000": "Leave empty to keep unchanged, e.g. 160000",
  "留空不改写，例如 200000": "Leave empty to keep unchanged, e.g. 200000",
  "留空使用默认值": "Leave empty to use the default",
  "登录状态": "Login status",
  "确认删除": "Confirm delete",
  "确认导入": "Confirm import",
  "禁用": "Disable",
  "禁用此扩展项": "Disable this entry",
  "移除 watcher": "Remove watcher",
  "移除最近记录": "Remove from recent",
  "立刻修复历史会话": "Repair historical sessions now",
  "第三方": "Third party",
  "策略": "Strategy",
  "管理 API 供应商、协议、Key 与配置文件": "Manage API providers, protocols, keys and config files",
  "管理 Codex SSH 项目并加入 Zed workspace": "Manage Codex SSH projects and add them to a Zed workspace",
  "管理工具入口": "Manager entrypoint",
  "管理控制台": "Management console",
  "管理控制台入口": "Management console entrypoint",
  "类型": "Type",
  "粘贴修复": "Paste fix",
  "索引": "Index",
  "纯 API": "Pure API",
  "纯文本模型请配置此项": "Configure this for text-only models",
  "纯 API 就绪：会同时写入 config.toml 和 auth.json。": "Pure API ready: writes both config.toml and auth.json.",
  "纯 API 模式": "Pure API mode",
  "纯 API 配置未完整写入：请检查此供应商是否有 OPENAI_API_KEY，且 config.toml 是否包含 model_provider / provider / base_url。":
    "Pure API config is incomplete: check whether this provider has OPENAI_API_KEY and whether config.toml includes model_provider / provider / base_url.",
  "维护 Codex++ 自己的远程项目最近列表。": "Maintain Codex++'s own recent list of remote projects.",
  "编辑": "Edit",
  "编辑后保存列表，再切换模式时会使用新配置": "After editing, save the list; the new config is used the next time you switch modes",
  "编辑扩展项": "Edit entry",
  "缺失": "Missing",
  "缺少 Codex++ 静默启动快捷方式时可在安装维护页修复。": "When the Codex++ silent launch shortcut is missing, repair it on the Install & Maintenance page.",
  "缺少管理工具快捷方式时可在安装维护页修复。": "When the manager shortcut is missing, repair it on the Install & Maintenance page.",
  "聚合": "Aggregate",
  "聚合/中转": "Aggregate/relay",
  "聚合供应商": "Aggregate provider",
  "聚合供应商会在真实对话中轮转成员，请测试成员供应商": "Aggregate providers rotate members in real conversations; test the member providers instead",
  "聚合供应商只保存成员和策略配置，成员来自已有 API 供应商；切为当前后会通过本地协议代理轮转请求。":
    "Aggregate providers only store member and strategy config drawn from existing API providers; once active, requests rotate through the local protocol proxy.",
  "聚合供应商至少需要勾选 1 个已填写 Base URL / Key 的 API 供应商。":
    "An aggregate provider needs at least 1 selected API provider with a Base URL / Key filled in.",
  "聚合策略": "Aggregate strategy",
  "聚合配置只引用已有供应商，不复制 Key 和配置文件": "Aggregate config only references existing providers; it doesn't copy keys or config files",
  "脚本市场": "Script marketplace",
  "自动接管": "Auto-takeover",
  "覆盖图片": "Overlay image",
  "背景适配方式": "Background fit mode",
  "原样发送图片": "Send images as-is",
  "为纯文本模型移除消息中的图片": "Remove images from messages for text-only models",
  "为纯文本模型配置图片分析路由": "Configure image analysis routing for text-only models",
  "若开启 VLM analysis，请确认 VLM 配置项完整且服务可用。": "If VLM analysis is enabled, make sure the VLM settings are complete and the service is available.",
  "仅在 Chat Completion 和聚合模式生效。": "Only effective in Chat Completion and aggregate mode.",
  "VLM 配置不完整：API Key、Model 和 Base URL 为必填项，否则 VLM 不会生效。":
    "Incomplete VLM configuration: API Key, Model, and Base URL are required, otherwise VLM will not take effect.",
  "填充": "Fill",
  "适应": "Fit",
  "拉伸": "Stretch",
  "平铺": "Tile",
  "居中": "Center",
  "记录最近打开": "Record recently opened",
  "设为当前": "Set as current",
  "设置": "Settings",
  "设置保存": "Settings saved",
  "设置已加载": "Settings loaded",
  "设置重置": "Settings reset",
  "诊断已生成": "Diagnostics generated",
  "诊断报告": "Diagnostic report",
  "诊断报告已复制。": "Diagnostic report copied.",
  "点击后会打开诊断弹框，按步骤检查供应商。": "Click to open the diagnostic dialog and check the provider step by step.",
  "正在诊断供应商，请稍候。": "Diagnosing provider, please wait.",
  "诊断已完成。": "Diagnosis complete.",
  "诊断中": "Diagnosing",
  "异常": "Error",
  "完成": "Complete",
  "配置完整性": "Configuration integrity",
  "等待检查 Base URL / API Key。": "Waiting to check Base URL / API Key.",
  "等待检查 /v1/models。": "Waiting to check /v1/models.",
  "真实请求": "Real request",
  "等待发送一次测试请求。": "Waiting to send one test request.",
  "处理建议": "Recommendation",
  "等待生成建议。": "Waiting to generate a recommendation.",
  "正在检查配置完整性…": "Checking configuration integrity…",
  "该步骤未执行。": "This step was not run.",
  "请先填写或选择应用路径。": "Fill in or select an app path first.",
  "请先选择要删除的会话。": "Select the sessions to delete first.",
  "读取 Codex 本地 SQLite 会话库，会删除数据库记录和对应 rollout 文件":
    "Reads Codex's local SQLite session database; deletes database records and the corresponding rollout files",
  "读取 cc-switch 供应商失败。": "Failed to read cc-switch providers.",
  "读取 ~/.cc-switch/cc-switch.db": "Reading ~/.cc-switch/cc-switch.db",
  "调用失败": "Call failed",
  "资源": "Asset",
  "赞助商推荐": "Sponsor recommendations",
  "赞助商推荐与普通推荐": "Sponsor and regular recommendations",
  "输入中转服务的 API Key": "Enter the relay service API Key",
  "运行中": "Running",
  "返回列表": "Back to list",
  "这些变量可能覆盖当前供应商写入的 config.toml / auth.json；CODEX_HOME 不会被清理。":
    "These variables may override the config.toml / auth.json written by the current provider; CODEX_HOME won't be cleaned up.",
  "进入插件页后自动连续展开“更多”，尽量一次显示完整插件列表。":
    "Automatically keep expanding 'More' on the plugins page to show the full plugin list at once.",
  "进度": "Progress",
  "远程 SSH 文件引用可直接用 Zed Remote Development 打开。": "Remote SSH file references can be opened directly with Zed Remote Development.",
  "选择全部候选记录": "Select all candidate records",
  "未命名任务": "Untitled task",
  "远程脚本": "Remote scripts",
  "适合官方登录或官方混入 API Key；保留会话删除、导出、项目移动和用户脚本，关闭插件市场相关增强。":
    "Suited to official login or official mixed-in API Key; keeps session deletion, export, project move and user scripts, while disabling plugin-marketplace-related enhancements.",
  "适合纯 API；启用插件市场、会话删除导出、项目移动等全部页面能力。":
    "Suited to pure API; enables all page capabilities including plugin marketplace, session deletion/export and project move.",
  "选择 Codex 应用目录": "Select Codex app directory",
  "选择 Codex.exe": "Select Codex.exe",
  "选择 Codex.exe 或 Codex.app": "Select Codex.exe or Codex.app",
  "选择 Codex.exe、Codex.app、app 目录或解包目录": "Select Codex.exe, Codex.app, the app directory or the unpacked directory",
  "选择 png / jpg / webp / gif / bmp": "Select png / jpg / webp / gif / bmp",
  "选择会话": "Select session",
  "选择图片": "Select image",
  "选择已有供应商作为成员，保存后写入 settings payload": "Select existing providers as members; saving writes them to the settings payload",
  "选择应用目录": "Select app directory",
  "选择覆盖图片": "Select overlay image",
  "通用配置文件": "Common config file",
  "配置": "Config",
  "配置文件": "Config file",
  "配置模型": "Config model",
  "重启 Codex++": "Restart Codex++",
  "重新安装": "Reinstall",
  "重新生成": "Regenerate",
  "重置背景": "Reset background",
  "静默启动入口": "Silent launch entrypoint",
  "项目地址": "Project URL",
  "额外参数": "Extra arguments",
  "高级选项，默认关闭；当前实现不主动改写 Zed settings。": "Advanced option, off by default; the current implementation doesn't actively modify Zed settings.",
  "默认中转": "Default relay",
  "默认关闭；开启后启动 Codex 时会自动保留官方 Computer Use 插件所需的 config.toml、bundled 插件和 notify 配置。":
    "Off by default; when on, launching Codex automatically preserves the config.toml, bundled plugins and notify config required by the official Computer Use plugin.",
  "默认启动 Codex 时使用的模型名，请勿带后缀；上下文窗口请在下方「模型列表」中按模型单独配置。":
    "The model name used by default when launching Codex; don't include a suffix. Configure context windows per model in the “Model list” below.",
  "默认关闭；无 VPN 时可开启，让 Statsig 初始化快速失败，减少启动时长。需重启 Codex 才生效。":
    "Off by default; enable it without a VPN to let Statsig initialization fail fast and reduce launch time. Requires restarting Codex.",
  "默认打开策略": "Default open strategy",
  "（": " (",
  "）": ")",
  "，可以从通用配置文件或这里新增。": "; you can add them from the common config file or here.",
  "，留空表示使用 Codex 默认长度。": "; leave empty to use Codex's default length.",
  "；这些条目独立于供应商保存，会写入所有供应商切换后的 config.toml。":
    "; these entries are saved independently of providers and written to config.toml after switching to any provider.",
  "中转站环境配置检测": "Relay environment check",
  "进程环境": "Process environment",
  "系统环境": "System environment",
  "Clash Verge Rev TUN 模式": "Clash Verge Rev TUN mode",
  "未发现 Clash Verge Rev 配置，按未开启处理。": "No Clash Verge Rev configuration was found; TUN is treated as disabled.",
  "等待检测。": "Waiting for check.",
  "系统代理环境变量": "System proxy environment variables",
  "未检测到 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY、NO_PROXY 或 FTP_PROXY。":
    "No HTTP_PROXY, HTTPS_PROXY, ALL_PROXY, NO_PROXY, or FTP_PROXY variable was detected.",
  "Codex .env 文件": "Codex .env file",
  "三项检测全部通过": "All three checks passed",
  "检测到需要处理的环境问题": "Environment issues need attention",
  "正在读取本机环境": "Reading the local environment",
  "重新检测": "Check again",
  "排查可能干扰中转站配置的本机环境": "Find local environment settings that may interfere with relay configuration",
};

// Interpolated strings: tf("前缀 {0}", [x]) -> EN_TEMPLATE["前缀 {0}"] with {0} filled.
export const EN_TEMPLATE: Record<string, string> = {
  "作者：{0} · {1}": "Author: {0} · {1}",
  "清单更新于 {0}，安装后会保存到“我的主题”。": "Manifest updated {0}. Installed themes are saved under My themes.",
  "，清理 {0} 条失效任务索引": ", pruned {0} stale task index entry/entries",
  "\n...以及另外 {0} 个会话": "\n...and {0} more session(s)",
  "{0}（{1}）": "{0} ({1})",
  "{0} · {1} 个成员": "{0} · {1} member(s)",
  "{0} 个": "{0}",
  "{0} 个 Codex++ 可识别项目，默认策略：{1}": "{0} project(s) recognized by Codex++, default strategy: {1}",
  "{0} 个供应商": "{0} provider(s)",
  "{0} 个供应商配置；可拖动排序，点编辑进入详情": "{0} provider configuration(s); drag to reorder, click edit for details",
  "{0} 个市场脚本，已安装 {1} 个，本地整体 {2}": "{0} marketplace script(s), {1} installed, local overall {2}",
  "{0} 个项目": "{0} project(s)",
  "{0} 副本": "{0} copy",
  "{0} 条": "{0} item(s)",
  "供应商 {0}": "Provider {0}",
  "供应商「{0}」缺少独立 config.toml，已停止切换，避免继续显示上一套配置文件。请先在该供应商详情里保存 config.toml。":
    "Provider “{0}” is missing its own config.toml, so the switch was stopped to avoid showing the previous config files. Save config.toml in this provider's details first.",
  "删除会话“{0}”？此操作会删除本地数据库记录和 rollout 文件，并创建备份。":
    "Delete session “{0}”? This deletes the local database record and rollout file, and creates a backup.",
  "删除主题“{0}”？此操作无法撤销。": "Delete theme “{0}”? This action cannot be undone.",
  "删除脚本“{0}”？此操作会移除本地脚本文件。": "Delete script “{0}”? This removes the local script file.",
  "删除这些环境变量？\n\n{0}\n\n删除前会写入备份。": "Delete these environment variables?\n\n{0}\n\nA backup is written before deletion.",
  "删除选中的 {0} 个会话？此操作会删除本地数据库记录和 rollout 文件，并为每个会话创建备份。\n\n{1}{2}":
    "Delete the {0} selected session(s)? This deletes the local database records and rollout files, and creates a backup for each session.\n\n{1}{2}",
  "发现 {0} 个 Codex 供应商": "Found {0} Codex provider(s)",
  "发现新版本 {0}": "New version {0} available",
  "在 GitHub 上支持作者：{0}": "Support the author on GitHub: {0}",
  "检测到 TUN 模式已开启，请在 Clash Verge Rev 中关闭。配置：{0}":
    "TUN mode is enabled. Disable it in Clash Verge Rev. Configuration: {0}",
  "TUN 模式已关闭。配置：{0}": "TUN mode is disabled. Configuration: {0}",
  "检测到代理环境变量：{0}。请清理后重新启动 Codex++。":
    "Proxy environment variables detected: {0}. Remove them and restart Codex++.",
  "检测到可能干扰供应商配置的 .env 文件：{0}": "A .env file that may interfere with provider configuration was found: {0}",
  "未发现 .env 文件：{0}": "No .env file found: {0}",
  "官方登录已就绪：{0}，会混入当前 API Key。": "Official login ready: {0}, the current API Key will be mixed in.",
  "官方账号已登录：{0}。": "Official account logged in: {0}.",
  "已删除 {0} 个会话。": "Deleted {0} session(s).",
  "已删除 {0} 个，失败 {1} 个：{2}": "Deleted {0}, failed {1}: {2}",
  "已加载 {0} 条推荐": "Loaded {0} recommendation(s)",
  "已同步到 {0}：修复 {1} 个会话文件，更新 {2} 行数据库索引{3}{4}。":
    "Synced to {0}: repaired {1} session file(s) and updated {2} database index row(s){3}{4}.",
  "已安装 {0}": "Installed {0}",
  "已缓存 {0} 个插件 / {1} 个技能。": "Cached {0} plugin(s) / {1} skill(s).",
  "已运行 {0} 分钟": "Running for {0} minute(s)",
  "已运行 {0} 小时 {1} 分钟": "Running for {0} hour(s) {1} minute(s)",
  "日志大小 {0}": "Log size {0}",
  "日志大小 {0}，仅显示末尾 {1} 行": "Log size {0}; showing only the last {1} lines",
  "市场 · {0}": "Marketplace · {0}",
  "当前版本 {0}": "Current version {0}",
  "第 {0} 页": "Page {0}",
  "第 {0} 页，每页最多 {1} 条，按更新时间倒序显示": "Page {0}, up to {1} sessions per page, newest first",
  "打开选择器失败：{0}": "Failed to open the picker: {0}",
  "正在同步到 {0}…": "Syncing to {0}…",
  "发现 {0} 条仅存在于 session_index.jsonl、未在本地数据库或 rollout 中找到来源的候选记录。它们也可能是云端或尚未落盘的任务，请逐项核对。任务标题仅用于预览，实际按 thread ID 与数据来源判断。清理前请先完全退出 Codex App / ChatGPT。":
    "Found {0} candidate record(s) that exist only in session_index.jsonl and have no source in the local databases or rollout files. They may still represent cloud-only or not-yet-persisted tasks, so review each item. Titles are shown only for preview; cleanup is decided by thread ID and data sources. Fully exit Codex App / ChatGPT before cleanup.",
  "确认清理 {0} 条": "Confirm cleanup of {0}",
  "清单更新时间：{0}": "Manifest updated at: {0}",
  "留空使用默认：{0}": "Leave empty to use the default: {0}",
  "聚合供应商 {0}": "Aggregate provider {0}",
  "聚合供应商已配置为{0}，包含 {1} 个成员；真实对话会走本地代理轮转。":
    "The aggregate provider is configured as {0} with {1} member(s); real conversations rotate through the local proxy.",
  "进程状态：{0}。是否要重新启动？": "Process status: {0}. Restart?",
  "选择会话 {0}": "Select session {0}",
  "透明度 {0}%": "Opacity {0}%",
  "，跳过 {0} 个占用文件": ", skipped {0} locked file(s)",
};

// Backend (Rust) messages returned via result.message. These are translated
// at the display layer (showNotice wraps message with t()). Exact-match first,
// then pattern-based for messages that embed dynamic values.
export const EN_BACKEND: Record<string, string> = {
  "主题市场已刷新。": "Theme marketplace refreshed.",
  "已加载主题市场缓存。": "Loaded the cached theme marketplace.",
  "主题 ID 不能为空。": "Theme ID cannot be empty.",
  "主题市场清单中未找到该主题。": "The theme was not found in the marketplace manifest.",
  "主题已安装到“我的主题”。": "Theme installed under My themes.",
  "后端版本已读取。": "Backend version loaded.",
  "启动参数已读取。": "Launch arguments loaded.",
  "概览后台任务失败。": "Overview background task failed.",
  "概览已加载。": "Overview loaded.",
  "启动任务已在后台开始，可稍后查看概览状态。": "Launch task started in the background. Check overview status later.",
  "设置已加载。": "Settings loaded.",
  "设置读取失败": "Failed to read settings",
  "设置保存后重新读取失败": "Failed to reload settings after save",
  "没有新的 cc-switch 供应商配置需要导入。": "No new cc-switch provider configs to import.",
  "导入供应商配置后重新读取设置失败": "Failed to reload settings after importing provider config",
  "待确认供应商导入已读取。": "Pending provider import loaded.",
  "没有待确认的供应商导入。": "No pending provider import.",
  "已取消供应商导入。": "Provider import cancelled.",
  "会话 ID 不能为空。": "Session ID must not be empty.",
  "推荐内容已加载。": "Recommendations loaded.",
  "脚本市场已刷新。": "Script marketplace refreshed.",
  "脚本 id 不能为空。": "Script ID must not be empty.",
  "市场清单中未找到该脚本。": "Script not found in marketplace manifest.",
  "脚本已安装。": "Script installed.",
  "脚本 key 不能为空。": "Script key must not be empty.",
  "脚本已启用。": "Script enabled.",
  "脚本已禁用。": "Script disabled.",
  "脚本启停失败": "Failed to toggle script",
  "脚本已删除。": "Script deleted.",
  "脚本删除失败": "Failed to delete script",
  "只允许打开 http 或 https 链接。": "Only http or https links can be opened.",
  "已在系统浏览器打开链接。": "Link opened in system browser.",
  "安装入口": "Install entrypoints",
  "卸载入口": "Uninstall entrypoints",
  "修复快捷方式": "Repair shortcuts",
  "修复后重新读取设置失败": "Failed to reload settings after repair",
  "插件市场需要初始化或注册。": "Plugin marketplace needs initialization or registration.",
  "插件市场已可用。": "Plugin marketplace is available.",
  "插件市场已从 openai/plugins 初始化并注册。": "Plugin marketplace initialized and registered from openai/plugins.",
  "已注册本地插件市场。": "Local plugin marketplace registered.",
  "插件市场已可用，无需修复。": "Plugin marketplace is available; no repair needed.",
  "官方远端插件缓存需要释放或注册。": "Official remote plugin cache needs extraction or registration.",
  "官方远端插件缓存已可用。": "Official remote plugin cache is available.",
  "已释放并注册内置官方远端插件缓存。": "Embedded official remote plugin cache extracted and registered.",
  "已注册官方远端插件缓存。": "Official remote plugin cache registered.",
  "官方远端插件缓存已可用，无需修复。": "Official remote plugin cache is available; no repair needed.",
  "发现可用更新。": "Update available.",
  "当前已是最新版本。": "Already on the latest version.",
  "请先检查更新并选择可下载的 Release asset。": "Check for updates first and select a downloadable release asset.",
  "安装包已下载并启动，请按安装向导完成更新。": "Installer downloaded and launched. Follow the setup wizard to finish updating.",
  "日志已读取。": "Logs loaded.",
  "诊断报告已生成。": "Diagnostics report generated.",
  "设置已重置为默认值。": "Settings reset to defaults.",
  "设置重置后重新读取失败": "Failed to reload settings after reset",
  "图片覆盖层设置已重置。": "Image overlay settings reset.",
  "图片覆盖层重置后重新读取失败": "Failed to reload settings after image overlay reset",
  "已检测到 ChatGPT 登录状态。": "ChatGPT login detected.",
  "未检测到 ChatGPT 登录状态，请先在 Codex/ChatGPT 中正常登录。": "ChatGPT login not detected. Please log in to Codex/ChatGPT first.",
  "配置文件内容已读取。": "Config file content loaded.",
  "未检测到会覆盖 Codex 供应商配置的 OPENAI 环境变量。": "No OPENAI environment variables found that would override the Codex provider config.",
  "检测到可能覆盖 Codex 供应商配置的 OPENAI 环境变量。": "OPENAI environment variables detected that may override the Codex provider config.",
  "环境变量已按确认项删除；重新启动 Codex 后生效。": "Environment variables deleted as confirmed. Restart Codex for changes to take effect.",
  "配置文件已保存。": "Config file saved.",
  "供应商切换锁已损坏，请重启管理器后再试。": "Provider switch lock is corrupted. Please restart the manager and try again.",
  "供应商已切换。": "Provider switched.",
  "当前供应商已不在配置列表中，已停止切换以避免覆盖用户改动。": "The current provider is no longer in the config list. Switching stopped to avoid overwriting user changes.",
  "当前供应商配置已从 live 文件回填。": "Current provider config backfilled from live files.",
  "工具与插件列表已读取。": "Tools & plugins list loaded.",
  "通用配置已按兼容切换规则提取。": "Common config extracted using compatibility switching rules.",
  "供应商配置总开关已关闭，未写入 config.toml / auth.json。": "Provider config master switch is off. Nothing written to config.toml / auth.json.",
  "已按兼容切换规则切换供应商。": "Provider switched using compatibility rules.",
  "未检测到 ChatGPT 登录状态": "ChatGPT login not detected",
  "未检测到 ChatGPT 登录状态，已停止写入中转配置。": "ChatGPT login not detected. Relay config not written.",
  "中转配置已写入，密钥未在界面明文显示。": "Relay config written. Keys are not shown in plaintext in the UI.",
  "聚合供应商配置已写入，真实请求会由本地代理按策略轮转。": "Aggregate provider config written. Real requests will be rotated by the local proxy according to the strategy.",
  "已清除 custom 中转 API 模式，并切换到官方 ChatGPT 登录模式。": "Custom relay API mode cleared. Switched to official ChatGPT login mode.",
  "纯 API 模式已写入：config.toml 已写入 custom provider，auth.json 已切换为当前供应商。": "Pure API mode written: config.toml now has a custom provider, auth.json switched to the current provider.",
  "纯 API 配置写入后未检测到完整 custom provider，请检查 config.toml 和供应商 API Key。": "After writing pure API config, no complete custom provider was detected. Please check config.toml and the provider API Key.",
  "供应商导入后重新读取设置失败": "Failed to reload settings after provider import",
  "诊断日志已写入。": "Diagnostics log written.",
  "未命名供应商": "Unnamed provider",
  "响应内容为空": "Response is empty",
};

// Pattern-based backend translations: [regex, replacement template].
// Checked when EN_BACKEND exact match fails — covers messages with dynamic values.
export const EN_BACKEND_PATTERNS: Array<[RegExp, string]> = [
  [/^主题市场加载失败：(.+)$/, "Failed to load theme marketplace: $1"],
  [/^安装市场主题失败：(.+)$/, "Failed to install marketplace theme: $1"],
  [/^启动静默入口失败：(.+)$/, "Failed to launch silent entrypoint: $1"],
  [/^无法启动 (.+?)：(.+)$/, "Cannot launch $1: $2"],
  [/^设置已保存。(.*)$/, "Settings saved.$1"],
  [/^保存设置失败：(.+)$/, "Failed to save settings: $1"],
  [/^已读取 cc-switch Codex 供应商配置：(\d+) 个。$/, "Read $1 cc-switch Codex provider config(s)."],
  [/^读取 cc-switch 供应商配置失败：(.+)$/, "Failed to read cc-switch provider configs: $1"],
  [/^已从 cc-switch 导入供应商配置：(\d+) 个。$/, "Imported $1 cc-switch provider config(s)."],
  [/^保存 cc-switch 供应商配置失败：(.+)$/, "Failed to save cc-switch provider configs: $1"],
  [/^已导入供应商配置：(.+)。$/, "Imported provider config: $1."],
  [/^供应商配置已存在：(.+)。$/, "Provider config already exists: $1."],
  [/^导入供应商配置失败：(.+)$/, "Failed to import provider config: $1"],
  [/^取消供应商导入失败：(.+)$/, "Failed to cancel provider import: $1"],
  [/^已读取 (\d+) 个本地会话。$/, "Read $1 local session(s)."],
  [/^读取部分本地会话失败：(.+)$/, "Failed to read some local sessions: $1"],
  [/^已读取 (\d+) 个 Zed 远程项目。$/, "Read $1 Zed remote project(s)."],
  [/^读取 Zed 远程项目失败。$/, "Failed to read Zed remote projects."],
  [/^已在 Zed Remote 打开项目。$/, "Project opened in Zed Remote."],
  [/^无法在 Zed Remote 打开项目。$/, "Cannot open project in Zed Remote."],
  [/^移除 Zed 远程项目失败。$/, "Failed to remove Zed remote project."],
  [/^供应商已同步一次：(\d+) 个会话文件，(\d+) 行索引，跳过 (\d+) 个占用文件。$/, "Provider synced: $1 session file(s), $2 index row(s), skipped $3 locked file(s)."],
  [/^供应商同步失败：(.+)$/, "Provider sync failed: $1"],
  [/^推荐内容加载失败：(.+)$/, "Failed to load recommendations: $1"],
  [/^脚本市场加载失败：(.+)$/, "Failed to load script marketplace: $1"],
  [/^安装脚本失败：(.+)$/, "Failed to install script: $1"],
  [/^脚本启停失败：(.+)$/, "Failed to toggle script: $1"],
  [/^脚本删除失败：(.+)$/, "Failed to delete script: $1"],
  [/^打开链接失败：(.+)$/, "Failed to open link: $1"],
  [/^插件市场修复失败：(.+)$/, "Plugin marketplace repair failed: $1"],
  [/^官方远端插件缓存修复失败：(.+)$/, "Official remote plugin cache repair failed: $1"],
  [/^检查更新失败：(.+)$/, "Failed to check for updates: $1"],
  [/^安装更新失败：(.+)$/, "Failed to install update: $1"],
  [/^安装 watcher 失败：(.+)$/, "Failed to install watcher: $1"],
  [/^移除 watcher 失败：(.+)$/, "Failed to remove watcher: $1"],
  [/^启用 watcher 失败：(.+)$/, "Failed to enable watcher: $1"],
  [/^禁用 watcher 失败：(.+)$/, "Failed to disable watcher: $1"],
  [/^读取日志失败：(.+)$/, "Failed to read logs: $1"],
  [/^重置设置失败：(.+)$/, "Failed to reset settings: $1"],
  [/^重置图片覆盖层失败：(.+)$/, "Failed to reset image overlay: $1"],
  [/^读取配置文件失败：(.+)$/, "Failed to read config file: $1"],
  [/^删除环境变量失败：(.+)$/, "Failed to delete environment variables: $1"],
  [/^保存配置文件失败：(.+)$/, "Failed to save config file: $1"],
  [/^供应商切换失败：(.+)$/, "Provider switch failed: $1"],
  [/^写入诊断日志失败：(.+)$/, "Failed to write diagnostics log: $1"],
  [/^回填当前供应商配置失败：(.+)$/, "Failed to backfill current provider config: $1"],
  [/^读取工具与插件列表失败：(.+)$/, "Failed to read tools & plugins list: $1"],
  [/^读取 live 工具与插件失败：(.+)$/, "Failed to read live tools & plugins: $1"],
  [/^保存工具与插件失败：(.+)$/, "Failed to save tools & plugins: $1"],
  [/^读取 live config.toml 失败：(.+)$/, "Failed to read live config.toml: $1"],
  [/^同步 live 工具与插件失败：(.+)$/, "Failed to sync live tools & plugins: $1"],
  [/^创建 Codex 配置目录失败：(.+)$/, "Failed to create Codex config directory: $1"],
  [/^写入 live config.toml 失败：(.+)$/, "Failed to write live config.toml: $1"],
  [/^读取同步后的 live 工具与插件失败：(.+)$/, "Failed to read live tools & plugins after sync: $1"],
  [/^删除工具与插件失败：(.+)$/, "Failed to delete tools & plugins: $1"],
  [/^提取通用配置失败：(.+)$/, "Failed to extract common config: $1"],
  [/^已向「(.+?)」用模型「(.+?)」发送 hi，HTTP (\d+)。(.*)$/, "Sent hi to \"$1\" using model \"$2\", HTTP $3.$4"],
  [/^测试「(.+?)」失败：(.+)$/, "Test \"$1\" failed: $2"],
  [/^已从「(.+?)」获取 (\d+) 个模型。$/, "Fetched $2 model(s) from \"$1\"."],
  [/^从「(.+?)」获取模型失败：(.+)$/, "Failed to fetch models from \"$1\": $2"],
  [/^切换完整中转配置失败：(.+)$/, "Failed to switch full relay config: $1"],
  [/^写入中转配置失败：(.+)$/, "Failed to write relay config: $1"],
  [/^写入聚合供应商配置失败：(.+)$/, "Failed to write aggregate provider config: $1"],
  [/^切换纯 API 配置失败：(.+)$/, "Failed to switch to pure API config: $1"],
  [/^写入纯 API 模式失败：(.+)$/, "Failed to write pure API mode: $1"],
  [/^清除中转配置失败：(.+)$/, "Failed to clear relay config: $1"],
  [/^未知配置文件类型：(.+)$/, "Unknown config file type: $1"],
  [/^启动系统浏览器失败：(.+)$/, "Failed to launch system browser: $1"],
  [/^诊断报告序列化失败：(.+)$/, "Failed to serialize diagnostics report: $1"],
  [/^响应：(.+)$/, "Response: $1"],
];
